SURVEY_swarmkey & doc/Fat Protocols

This commit is contained in:
qo-op 2020-03-27 04:04:10 +01:00
parent 7ffd053c65
commit a67892e5e1
80 changed files with 14097 additions and 19 deletions

View File

@ -0,0 +1,682 @@
<!DOCTYPE html>
<html lang="en-US"><head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<!-- Google Tag Manager -->
<script async="" src="Fat%20Protocols%20|%20Union%20Square%20Ventures_fichiers/gtm.js"></script><script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push(
{'gtm.start': new Date().getTime(),event:'gtm.js'}
);var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-5QBJTNC');</script>
<!-- End Google Tag Manager -->
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async="" src="Fat%20Protocols%20|%20Union%20Square%20Ventures_fichiers/js"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-11198485-1');
</script>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="profile" href="https://gmpg.org/xfn/11">
<link rel="apple-touch-icon" sizes="57x57" href="https://www.usv.com/wp-content/themes/unionsquareventures/frontend/static/favicon/apple-icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="https://www.usv.com/wp-content/themes/unionsquareventures/frontend/static/favicon/apple-icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="https://www.usv.com/wp-content/themes/unionsquareventures/frontend/static/favicon/apple-icon-72x72.png">
<link rel="apple-touch-icon" sizes="76x76" href="https://www.usv.com/wp-content/themes/unionsquareventures/frontend/static/favicon/apple-icon-76x76.png">
<link rel="apple-touch-icon" sizes="114x114" href="https://www.usv.com/wp-content/themes/unionsquareventures/frontend/static/favicon/apple-icon-114x114.png">
<link rel="apple-touch-icon" sizes="120x120" href="https://www.usv.com/wp-content/themes/unionsquareventures/frontend/static/favicon/apple-icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="https://www.usv.com/wp-content/themes/unionsquareventures/frontend/static/favicon/apple-icon-144x144.png">
<link rel="apple-touch-icon" sizes="152x152" href="https://www.usv.com/wp-content/themes/unionsquareventures/frontend/static/favicon/apple-icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="https://www.usv.com/wp-content/themes/unionsquareventures/frontend/static/favicon/apple-icon-180x180.png">
<link rel="icon" type="image/png" sizes="192x192" href="https://www.usv.com/wp-content/themes/unionsquareventures/frontend/static/favicon/android-icon-192x192.png">
<link rel="icon" type="image/png" sizes="32x32" href="https://www.usv.com/wp-content/themes/unionsquareventures/frontend/static/favicon/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="96x96" href="https://www.usv.com/wp-content/themes/unionsquareventures/frontend/static/favicon/favicon-96x96.png">
<link rel="icon" type="image/png" sizes="16x16" href="https://www.usv.com/wp-content/themes/unionsquareventures/frontend/static/favicon/favicon-16x16.png">
<link rel="manifest" href="https://www.usv.com/wp-content/themes/unionsquareventures/frontend/static/favicon/manifest.json">
<meta name="msapplication-TileColor" content="#ffffff">
<meta name="msapplication-TileImage" content="https://www.usv.com/wp-content/themes/unionsquareventures/frontend/static/favicon/ms-icon-144x144.png">
<meta name="theme-color" content="#ffffff">
<link rel="alternate" type="application/rss+xml" href="https://www.usv.com/writing/feed" title="USV Blog RSS">
<link rel="alternate" type="application/rss+xml" href="https://www.usv.com/team-posts/feed" title="USV Team Posts RSS">
<title>Fat Protocols | Union Square Ventures</title>
<!-- This site is optimized with the Yoast SEO plugin v12.5 - https://yoast.com/wordpress/plugins/seo/ -->
<meta name="description" content="Here's one way to think about the differences between the Internet and the Blockchain. The previous generation of shared protocols (TCP/IP, HTTP, SMTP,">
<meta name="robots" content="max-snippet:-1, max-image-preview:large, max-video-preview:-1">
<link rel="canonical" href="https://www.usv.com/writing/2016/08/fat-protocols/">
<meta property="og:locale" content="en_US">
<meta property="og:type" content="article">
<meta property="og:title" content="Fat Protocols | Union Square Ventures">
<meta property="og:description" content="Here's one way to think about the differences between the Internet and the Blockchain. The previous generation of shared protocols (TCP/IP, HTTP, SMTP,">
<meta property="og:url" content="https://www.usv.com/writing/2016/08/fat-protocols/">
<meta property="og:site_name" content="Union Square Ventures">
<meta property="article:section" content="USV Blog">
<meta property="article:published_time" content="2016-08-08T09:35:39-04:00">
<meta property="article:modified_time" content="2019-08-26T13:53:04-04:00">
<meta property="og:updated_time" content="2019-08-26T13:53:04-04:00">
<meta property="og:image" content="http://i.imgur.com/6uKSty0.png">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:description" content="Here's one way to think about the differences between the Internet and the Blockchain. The previous generation of shared protocols (TCP/IP, HTTP, SMTP,">
<meta name="twitter:title" content="Fat Protocols | Union Square Ventures">
<meta name="twitter:site" content="@usv">
<meta name="twitter:image" content="http://i.imgur.com/6uKSty0.png">
<meta name="twitter:creator" content="@usv">
<!-- / Yoast SEO plugin. -->
<link rel="dns-prefetch" href="https://cdn.jsdelivr.net/">
<link rel="dns-prefetch" href="https://s.w.org/">
<script type="text/javascript">
window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/12.0.0-1\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/12.0.0-1\/svg\/","svgExt":".svg","source":{"concatemoji":"https:\/\/www.usv.com\/wp-includes\/js\/wp-emoji-release.min.js?ver=5.3.2"}};
!function(e,a,t){var r,n,o,i,p=a.createElement("canvas"),s=p.getContext&&p.getContext("2d");function c(e,t){var a=String.fromCharCode;s.clearRect(0,0,p.width,p.height),s.fillText(a.apply(this,e),0,0);var r=p.toDataURL();return s.clearRect(0,0,p.width,p.height),s.fillText(a.apply(this,t),0,0),r===p.toDataURL()}function l(e){if(!s||!s.fillText)return!1;switch(s.textBaseline="top",s.font="600 32px Arial",e){case"flag":return!c([127987,65039,8205,9895,65039],[127987,65039,8203,9895,65039])&&(!c([55356,56826,55356,56819],[55356,56826,8203,55356,56819])&&!c([55356,57332,56128,56423,56128,56418,56128,56421,56128,56430,56128,56423,56128,56447],[55356,57332,8203,56128,56423,8203,56128,56418,8203,56128,56421,8203,56128,56430,8203,56128,56423,8203,56128,56447]));case"emoji":return!c([55357,56424,55356,57342,8205,55358,56605,8205,55357,56424,55356,57340],[55357,56424,55356,57342,8203,55358,56605,8203,55357,56424,55356,57340])}return!1}function d(e){var t=a.createElement("script");t.src=e,t.defer=t.type="text/javascript",a.getElementsByTagName("head")[0].appendChild(t)}for(i=Array("flag","emoji"),t.supports={everything:!0,everythingExceptFlag:!0},o=0;o<i.length;o++)t.supports[i[o]]=l(i[o]),t.supports.everything=t.supports.everything&&t.supports[i[o]],"flag"!==i[o]&&(t.supports.everythingExceptFlag=t.supports.everythingExceptFlag&&t.supports[i[o]]);t.supports.everythingExceptFlag=t.supports.everythingExceptFlag&&!t.supports.flag,t.DOMReady=!1,t.readyCallback=function(){t.DOMReady=!0},t.supports.everything||(n=function(){t.readyCallback()},a.addEventListener?(a.addEventListener("DOMContentLoaded",n,!1),e.addEventListener("load",n,!1)):(e.attachEvent("onload",n),a.attachEvent("onreadystatechange",function(){"complete"===a.readyState&&t.readyCallback()})),(r=t.source||{}).concatemoji?d(r.concatemoji):r.wpemoji&&r.twemoji&&(d(r.twemoji),d(r.wpemoji)))}(window,document,window._wpemojiSettings);
</script><script src="Fat%20Protocols%20|%20Union%20Square%20Ventures_fichiers/wp-emoji-release.js" type="text/javascript" defer="defer"></script>
<style type="text/css">
img.wp-smiley,
img.emoji {
display: inline !important;
border: none !important;
box-shadow: none !important;
height: 1em !important;
width: 1em !important;
margin: 0 .07em !important;
vertical-align: -0.1em !important;
background: none !important;
padding: 0 !important;
}
</style>
<link rel="stylesheet" id="wp-block-library-css" href="Fat%20Protocols%20|%20Union%20Square%20Ventures_fichiers/style.css" type="text/css" media="all">
<link rel="stylesheet" id="wp-block-library-theme-css" href="Fat%20Protocols%20|%20Union%20Square%20Ventures_fichiers/theme.css" type="text/css" media="all">
<link rel="stylesheet" id="mpp_gutenberg-css" href="Fat%20Protocols%20|%20Union%20Square%20Ventures_fichiers/blocks.css" type="text/css" media="all">
<link rel="stylesheet" id="wpt-twitter-feed-css" href="Fat%20Protocols%20|%20Union%20Square%20Ventures_fichiers/twitter-feed.css" type="text/css" media="all">
<link rel="stylesheet" id="parent-style-css" href="Fat%20Protocols%20|%20Union%20Square%20Ventures_fichiers/style_002.css" type="text/css" media="all">
<link rel="stylesheet" id="custom-styles-css" href="Fat%20Protocols%20|%20Union%20Square%20Ventures_fichiers/main.css" type="text/css" media="all">
<link rel="stylesheet" id="twentynineteen-style-css" href="Fat%20Protocols%20|%20Union%20Square%20Ventures_fichiers/style_003.css" type="text/css" media="all">
<link rel="stylesheet" id="twentynineteen-print-style-css" href="Fat%20Protocols%20|%20Union%20Square%20Ventures_fichiers/print.css" type="text/css" media="print">
<script type="text/javascript" src="Fat%20Protocols%20|%20Union%20Square%20Ventures_fichiers/jquery_002.js"></script>
<script type="text/javascript" src="Fat%20Protocols%20|%20Union%20Square%20Ventures_fichiers/jquery-migrate.js"></script>
<link rel="https://api.w.org/" href="https://www.usv.com/wp-json/">
<link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://www.usv.com/xmlrpc.php?rsd">
<link rel="wlwmanifest" type="application/wlwmanifest+xml" href="https://www.usv.com/wp-includes/wlwmanifest.xml">
<meta name="generator" content="WordPress 5.3.2">
<link rel="shortlink" href="https://www.usv.com/?p=443">
<link rel="alternate" type="application/json+oembed" href="https://www.usv.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwww.usv.com%2Fwriting%2F2016%2F08%2Ffat-protocols%2F">
<link rel="alternate" type="text/xml+oembed" href="https://www.usv.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwww.usv.com%2Fwriting%2F2016%2F08%2Ffat-protocols%2F&amp;format=xml">
<!-- This site is optimized with the Schema plugin v1.7.8 - https://schema.press -->
<script type="application/ld+json">{"@context":"http:\/\/schema.org\/","@type":"BlogPosting","mainEntityOfPage":{"@type":"WebPage","@id":"https:\/\/www.usv.com\/writing\/2016\/08\/fat-protocols\/"},"url":"https:\/\/www.usv.com\/writing\/2016\/08\/fat-protocols\/","headline":"Fat...","datePublished":"2016-08-08T09:35:39-04:00","dateModified":"2019-08-26T13:53:04-04:00","publisher":{"@type":"Organization","@id":"https:\/\/www.usv.com\/#organization","name":"Union Square Ventures","logo":{"@type":"ImageObject","url":"https:\/\/dev-union-square-ventures.pantheonsite.io\/wp-content\/uploads\/2019\/04\/usv_logo.jpg","width":600,"height":60}},"image":{"@type":"ImageObject","url":"http:\/\/i.imgur.com\/6uKSty0.png","width":696,"height":"515"},"articleSection":"USV Blog","description":"Here's one way to think about the differences between the Internet and the Blockchain. The previous generation of shared protocols (TCP\/IP, HTTP, SMTP, etc.) produced immeasurable amounts of value, but most of it got captured and re-aggregated on top at the applications layer, largely in the form of data","author":{"@type":"Person","name":"Joel Monegro","url":"https:\/\/www.usv.com\/people\/joel-monegro\/","description":"\"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\"","image":{"@type":"ImageObject","url":"https:\/\/secure.gravatar.com\/avatar\/eca9bf219907c268f52652417960552d?s=96&d=mm&r=g","height":96,"width":96}}}</script>
<!-- Stream WordPress user activity plugin v3.4.2 -->
<link rel="icon" href="https://www.usv.com/wp-content/uploads/2019/04/cropped-usv_logo-32x32.jpg" sizes="32x32">
<link rel="icon" href="https://www.usv.com/wp-content/uploads/2019/04/cropped-usv_logo-192x192.jpg" sizes="192x192">
<link rel="apple-touch-icon-precomposed" href="https://www.usv.com/wp-content/uploads/2019/04/cropped-usv_logo-180x180.jpg">
<meta name="msapplication-TileImage" content="https://www.usv.com/wp-content/uploads/2019/04/cropped-usv_logo-270x270.jpg">
<style type="text/css" id="wp-custom-css">
.discuss-on-twitter-button {
background: #349f4e!important;
border: 2px solid #fff;
}
.discuss-on-twitter-button:hover {
background: #fff!important;
border: 2px solid #349f4e!important;
color: #349f4e !important;
} </style>
</head>
<body class="post-template-default single single-post postid-443 single-format-standard wp-custom-logo wp-embed-responsive section-writing singular image-filters-enabled">
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5QBJTNC"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
<div id="page" class="site">
<a class="skip-link screen-reader-text" href="#content">Skip to content</a>
<header id="masthead" class="site-header">
<div class="site-branding-container">
<div class="site-branding">
<section class="o__header container js-header">
<div class="o__header__container">
<div class="o__header__logo">
<div class="a__logo"><a href="https://www.usv.com/" class="custom-logo-link" rel="home"><img src="Fat%20Protocols%20|%20Union%20Square%20Ventures_fichiers/usv_logo.jpg" class="custom-logo" alt="Union Square Ventures" srcset="https://www.usv.com/wp-content/uploads/2019/04/usv_logo.jpg 190w, https://www.usv.com/wp-content/uploads/2019/04/usv_logo-150x150.jpg 150w" sizes="(max-width: 190px) 100vw, 190px" width="190" height="190"></a></div>
</div>
<div class="o__header__menu-container">
<button class="a__hamburger hamburger hamburger--slider js-hamburger " aria-label="Open menu" type="button">
<span class="hamburger-box">
<span class="hamburger-inner">
</span>
</span>
</button>
<nav class="o__header__menu-subcontainer ">
<ul id="menu-company" class="o__header__menu"><li id="menu-item-2505" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2505"><a href="https://www.usv.com/about/">About</a></li>
<li id="menu-item-1138" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1138"><a href="https://www.usv.com/people/">People</a></li>
<li id="menu-item-914" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-914"><a href="https://www.usv.com/companies">Companies</a></li>
<li id="menu-item-915" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-915"><a href="https://www.usv.com/network">Network</a></li>
<li id="menu-item-916" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-916"><a href="https://jobs.usv.com/">Jobs</a></li>
<li id="menu-item-917" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-917"><a href="https://www.usv.com/writing/">Writing</a></li>
</ul>
<a class="o__header__menu-mobilesearch" href="https://www.usv.com/?s">
<div class="a__icon a__icon--big">
<svg class="a__icons__magnifier" width="20px" height="20px" viewBox="0 0 20 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink">
<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g transform="translate(-1189.000000, -82.000000)" stroke="#0D0D0D">
<g>
<g transform="translate(1133.000000, 81.000000)">
<g transform="translate(56.000000, 2.000000)">
<circle stroke-width="1.50179841" transform="translate(9.500000, 4.500000) rotate(-270.000000) translate(-9.500000, -4.500000) " cx="9.5" cy="4.5" r="4.5"></circle>
<path d="M3.25745446,7.25168545 L3.49549041,15.7416187 L4.74254554,15.7483146 L4.50450959,7.25838128 L3.25745446,7.25168545 Z" stroke-width="0.500598971" fill="#0D0D0D" transform="translate(4.000000, 11.500000) rotate(-315.000000) translate(-4.000000, -11.500000) "></path>
</g>
</g>
</g>
</g>
</g>
</svg>
</div>
Search
</a>
<div class="o__header__menu-address">
<p><strong>Union Square Ventures</strong><br>
915 Broadway, 19th Floor<br>
New York, NY 10010</p>
</div>
</nav>
</div>
<div class="o__header__menu-social">
<a href="https://twitter.com/usv" target="_blank" aria-label="Share on Twitter">
<div class="a__icon a__icon--big">
<svg class="a__icons__twitter" width="22" height="22" viewBox="0 0 22 22" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink">
<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" opacity="0.900000036">
<g transform="translate(-76.000000, -195.000000)" fill="#0D0D0D">
<g>
<g transform="translate(76.000000, 61.000000)">
<g transform="translate(0.000000, 132.000000)">
<path d="M9.71114123,6.39666422 L9.75449454,7.11153991 L9.03193939,7.02400411 C6.40183864,6.68845022 4.10411326,5.55048483 2.15321435,3.63928657 L1.19944155,2.69098208 L0.9537728,3.39126847 C0.433533091,4.95232354 0.76590846,6.60091442 1.84974119,7.7097012 C2.42778531,8.32245179 2.29772538,8.40998759 1.30059927,8.04525509 C0.9537728,7.9285407 0.650299636,7.8410049 0.62139743,7.8847728 C0.520239709,7.98689789 0.867066182,9.31452417 1.14163714,9.83973896 C1.51736582,10.569204 2.28327428,11.2840796 3.12143825,11.7071693 L3.8295423,12.0427232 L2.99137833,12.0573125 C2.18211656,12.0573125 2.15321435,12.0719018 2.23992097,12.3782771 C2.52894303,13.3265816 3.67058017,14.3332433 4.94227724,14.7709223 L5.83824562,15.0772976 L5.05788606,15.5441552 C3.90179782,16.215263 2.54339413,16.5945848 1.18499045,16.6237634 C0.534690812,16.6383527 0,16.6967099 0,16.7404778 C0,16.8863707 1.76303457,17.7033715 2.78906288,18.0243361 C5.86714783,18.9726406 9.5232769,18.5641402 12.2689865,16.9447279 C14.2198854,15.7921733 16.1707843,13.5016532 17.0812038,11.2840796 C17.5725413,10.1023464 18.0638788,7.94312999 18.0638788,6.90728971 C18.0638788,6.23618192 18.1072321,6.14864612 18.9164939,5.34623464 C19.3933803,4.87937705 19.8413645,4.36875155 19.9280711,4.22285856 C20.0725821,3.94566186 20.058131,3.94566186 19.3211247,4.19367996 C18.092781,4.63135895 17.9193678,4.57300175 18.5263141,3.91648326 C18.9742983,3.44962567 19.5089891,2.60344628 19.5089891,2.35542819 C19.5089891,2.31166029 19.2922225,2.38460679 19.0465538,2.51591048 C18.7864339,2.66180348 18.2083898,2.88064298 17.7748567,3.01194668 L16.9944972,3.25996477 L16.2863931,2.77851788 C15.8962133,2.51591048 15.3470714,2.22412449 15.0580494,2.13658869 C14.3210431,1.93233849 13.1938571,1.96151709 12.5291063,2.19494589 C10.7227184,2.85146438 9.58108131,4.54382315 9.71114123,6.39666422 Z"></path>
</g>
</g>
</g>
</g>
</g>
</svg>
</div>
</a>
<a href="https://www.usv.com/?s" aria-label="Go to the search page">
<div class="a__icon a__icon--big">
<svg class="a__icons__magnifier" width="20px" height="20px" viewBox="0 0 20 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink">
<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g transform="translate(-1189.000000, -82.000000)" stroke="#0D0D0D">
<g>
<g transform="translate(1133.000000, 81.000000)">
<g transform="translate(56.000000, 2.000000)">
<circle stroke-width="1.50179841" transform="translate(9.500000, 4.500000) rotate(-270.000000) translate(-9.500000, -4.500000) " cx="9.5" cy="4.5" r="4.5"></circle>
<path d="M3.25745446,7.25168545 L3.49549041,15.7416187 L4.74254554,15.7483146 L4.50450959,7.25838128 L3.25745446,7.25168545 Z" stroke-width="0.500598971" fill="#0D0D0D" transform="translate(4.000000, 11.500000) rotate(-315.000000) translate(-4.000000, -11.500000) "></path>
</g>
</g>
</g>
</g>
</g>
</svg>
</div>
</a>
</div>
</div>
</section>
</div>
</div><!-- .layout-wrap -->
</header><!-- #masthead -->
<div id="content" class="site-content">
<section class="content-area">
<div class="site-main">
<article id="post-443" class="post-443 post type-post status-publish format-standard hentry category-usv-blog Topic-blockchains-crypto Topic-open-decentralized-data Thesis-2-0 entry">
<header class="entry-header">
<h1 class="entry-title">Fat Protocols</h1>
<div class="blog-post-meta">
<div class="blog-post-meta__profile">
<img src="Fat%20Protocols%20|%20Union%20Square%20Ventures_fichiers/eca9bf219907c268f52652417960552d.jpeg" alt="Joel Monegro">
</div>
<p>
<a class="blog-post-meta__author" href="https://www.usv.com/people/joel-monegro/">
Joel Monegro
</a>
Aug 8, 2016 </p>
</div>
</header><!-- .entry-header -->
<div class="entry-content gutenberg-blocks__common">
<p>Heres one way to think about the differences between the Internet
and the Blockchain. The previous generation of shared protocols (TCP/IP,
HTTP, SMTP, etc.) produced immeasurable amounts of value, but most of
it got captured and re-aggregated on top at the applications layer,
largely in the form of data (think Google, Facebook and so on). The
Internet stack, in terms of how value is <em>distributed,</em> is
composed of “thin” protocols and “fat” applications. As the market
developed, we learned that investing in applications produced high
returns whereas investing directly in protocol technologies generally
produced low returns.</p>
<p><img alt="Value distribution on the web" src="Fat%20Protocols%20|%20Union%20Square%20Ventures_fichiers/6uKSty0.png" width="400" height="515"></p>
<p>This relationship between protocols and applications is reversed in
the blockchain application stack. Value concentrates at the shared
protocol layer and only a fraction of that value is distributed along at
the applications layer. Its a stack with “fat” protocols and “thin”
applications.</p>
<p>We see this very clearly in the two dominant blockchain networks,
Bitcoin and Ethereum. The Bitcoin network has a $10B market cap yet the
largest companies built on top are worth a few hundred million at best,
and most are probably overvalued by “business fundamentals” standards.
Similarly, Ethereum has a $1B market cap even before the emergence of a
real breakout application on top and only a year after its public
release.</p>
<p><img alt="Value distribution on the blockchain" src="Fat%20Protocols%20|%20Union%20Square%20Ventures_fichiers/cz6Xrwn.png" width="400" height="517"></p>
<p>There are two things about most blockchain-based protocols that cause
this to happen: the first is the shared data layer, and the second is
the introduction cryptographic “access” token with some speculative
value.</p>
<p><a href="http://joel.mn/post/104755282493/the-shared-data-layer-of-the-blockchain">I wrote about the shared data layer about a year ago</a>.
Though the post has gathered some dust since, the main point remains:
by replicating and storing user data across an open and decentralized
network rather than individual applications controlling access to
disparate silos of information, we reduce the barriers to entry for new
players and create a more vibrant and competitive ecosystem of products
and services on top. As a concrete example, consider how easy it is to
switch from <a href="https://poloniex.com/">Poloniex</a> to <a href="https://gdax.com/">GDAX</a>,
or to any of the dozens of cryptocurrency exchanges out there, and
vice-versa in large part because they all have equal and free access to
the underlying data, blockchain transactions. Here you have several
competing, non-cooperating services which are interoperable with each
other by virtue of building their services on top of the same open
protocols. This forces the market to find ways to reduce costs, build
better products, and <a href="http://whaleclub.co/">invent radical new ones</a> to succeed.</p>
<p>But an open network and a shared data layer alone are not not enough
of an incentive to promote adoption. The second component, the protocol
token[1] which is used to access the service provided by the network
(transactions in the case of Bitcoin, computing power in the case of
Ethereum, file storage in the case of Sia and Storj, and so on) fills
that gap.</p>
<p><a href="http://continuations.com/">Albert</a> and <a href="http://avc.com/">Fred</a> wrote about this last week after we had a number discussions at USV about investing in blockchain-based networks. <a href="http://continuations.com/post/148098927445/crypto-tokens-and-the-coming-age-of-protocol">Albert looked at protocol tokens from the point of view of incentivizing open protocol innovation</a>,
as a way of funding research and development (via crowdsales), creating
value for shareholders (via token value appreciation), or both.</p>
<p>Alberts post will help you understand how tokens incentivize
protocol development. Here, Im going focus on how tokens incentivize
protocol adoption and how they affect value distribution via what I will
call the token feedback loop.</p>
<p><img alt="Token Feedback Loop" src="Fat%20Protocols%20|%20Union%20Square%20Ventures_fichiers/IqGC7W3.png" width="400" height="375"></p>
<p>When a token appreciates in value, it draws the attention of early
speculators, developers and entrepreneurs. They become stakeholders in
the protocol itself and are financially invested in its success. Then
some of these early adopters, perhaps financed in part by the profits of
getting in at the start, build products and services around the
protocol, recognizing that its success would further increase the value
of their tokens. Then some of these become successful and bring in new
users to the network and perhaps VCs and other kinds of investors. This
further increases the value of the tokens, which draws more attention
from more entrepreneurs, which leads to more applications, and so
on.&nbsp;</p>
<p>There are two things I want to point out about this feedback loop.
First is how much of the initial growth is driven by speculation.
Because most tokens are programmed to be scarce, as interest in the
protocol grows so does the price per token and thus the market cap of
the network. Sometimes interest grows a lot faster than the supply of
tokens and it leads to bubble-style appreciation.</p>
<p>With the exception of deliberately fraudulent schemes, this is a good
thing. Speculation is often the engine of technological adoption [2].
Both aspects of irrational speculation — the boom and the bust — can be
very beneficial to technological innovation. The boom attracts financial
capital through&nbsp;early profits, some of which are reinvested in
innovation (how many of Ethereums investors were re-investing their
Bitcoin profits, or DAO investors their Ethereum profits?), and the bust
can actually support&nbsp;the adoption long-term adoption of the new
technology as prices depress and out-of-the-money stakeholders look to
be made whole by promoting and creating value around it (just look at
how many of todays Bitcoin companies were started by early adopters
after the crash of 2013).</p>
<p>The second aspect worth pointing out is what happens towards the end
of the loop. When applications begin to emerge and show early signs of
success (whether measured by increased usage or by the attention (or
capital) paid by financial investors), two things happen in the market
for a protocols token: new users are drawn to the protocol, increasing
demand for tokens (since you need them to access the service — see
Alberts analogy of tickets in a fair), and existing investors hold onto
their tokens anticipating future price increases, further constraining
supply. The combination forces up the price (assuming sufficient
scarcity in new token creation), the newly-increased market cap of the
protocol attracts new entrepreneurs and new investors, and the loop
repeats itself.</p>
<p>Whats significant about this dynamic is the effect it has on how value is distributed along the stack: <strong>the market cap of the protocol always</strong> <strong>grows
faster than the combined value of the applications built on top, since
the success of the application layer drives further speculation at the
protocol layer</strong>. And again, increasing value at the protocol
layer attracts and incentivises competition at the application layer.
Together with a shared data layer, which dramatically lowers the
barriers to entry, the end result is a vibrant and competitive ecosystem
of applications and the bulk value distributed to a widespread pool of
shareholders. This is how tokenized protocols become “fat” and its
applications “thin”.</p>
<p>This is a big shift. The combination of shared open data with an
incentive system that prevents “winner-take-all” markets changes the
game at the application layer and creates an entire new category of
companies with fundamentally different business models at the protocol
layer. Many of the established rules about building businesses and
investing in innovation dont apply to this new model and today we
probably have more questions than answers. But were quickly learning
the ins and outs of this market through our blockchain portfolio and in
typical USV fashion were going to share that knowledge as we go along.</p>
<p>[1] Also known as <em>App Coins,</em><a href="https://startupboy.com/2014/03/09/the-bitcoin-model-for-crowdfunding/"> as coined pun intended by Naval in 2014</a></p>
<p>[2] <a href="https://www.goodreads.com/book/show/91360.Devil_Take_the_Hindmost">Edward Chancellor</a>
writes a thorough and entertaining history of financial speculation and
its place in society (youll be in awe by how similar cryptocurrency
speculation today is to prior bursts of financial exuberance!) and <a href="https://en.m.wikipedia.org/wiki/Technological_Revolutions_and_Financial_Capital">Carlota Perez</a>
describes the important role of bubbles in the development of new
technologies by attracting financial capital to research and
development.</p>
</div><!-- .entry-content -->
<div class="entry-content-footer">
<div class="" style="clear:both;">
<div class="discuss-on-twitter">
<a class="discuss-on-twitter-button reply-on-twitter" href="https://twitter.com/intent/tweet?url=https://www.usv.com/writing/2016/08/fat-protocols/&amp;text=@usv">
<span class="dashicons dashicons-twitter"></span>
Discuss on Twitter
</a>
<a class="discuss-on-twitter-button view-reactions" href="https://twitter.com/search?q=https%3A%2F%2Fwww.usv.com%2Fwriting%2F2016%2F08%2Ffat-protocols%2F" target="_twitter-443">
View Discussion
</a>
</div>
</div>
</div>
</article><!-- #post-${ID} -->
<div class="single-entry">
<div class="m__list-items m__list-items--default">
<header class="m__list-items__header">
<h4 class="a__lh_36">Recommended in Blockchains &amp; Crypto</h4>
</header>
<div class="m__list-items__list">
<div class="m__list-items__list-item">
<h6 class="m__list-items__list-item__title">
<a href="https://avc.com/2019/07/business-model-innovation/" rel="bookmark" title="Permanent Link to Business Model Innovation" class="m__list-items__list-item__title-link" target="_blank">
Business Model Innovation
<div class="a__icon-small">
<svg width="20px" height="20px" viewBox="0 0 20 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink">
<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g fill="#28A055" fill-rule="nonzero">
<g>
<path d="M16.1544835,0.00747252747 L10.7957473,0.00747252747 C10.3660769,0.00747252747 10.0178571,0.355692308 10.0178571,0.785362637 C10.0178571,1.21503297 10.3660769,1.56325275 10.7957473,1.56325275 L14.3629451,1.56325275 L6.72901099,9.19718681 C6.42506593,9.50094505 6.42506593,9.99357143 6.72901099,10.2973297 C6.88089011,10.4492088 7.08003297,10.5252418 7.27898901,10.5252418 C7.47794505,10.5252418 7.67708791,10.4492088 7.82896703,10.2973297 L15.3765934,2.74951648 L15.3765934,6.14391209 C15.3765934,6.57358242 15.7248132,6.9218022 16.1544835,6.9218022 C16.5841538,6.9218022 16.9323736,6.57358242 16.9323736,6.14391209 L16.9323736,0.785362637 C16.9323736,0.355692308 16.5841538,0.00747252747 16.1544835,0.00747252747 Z"></path>
<path d="M13.4638132,7.84167033 C13.0341429,7.84167033 12.6859231,8.18989011 12.6859231,8.61956044 L12.6859231,14.7567473 C12.6859231,15.0379011 12.4484835,15.2753407 12.1673297,15.2753407 L2.24941758,15.2753407 C1.96826374,15.2753407 1.73082418,15.0379011 1.73082418,14.7567473 L1.73082418,4.83883516 C1.73082418,4.55768132 1.96826374,4.32024176 2.24941758,4.32024176 L8.40827473,4.32024176 C8.83794505,4.32024176 9.18616484,3.97202198 9.18616484,3.54235165 C9.18616484,3.11268132 8.83794505,2.76446154 8.40827473,2.76446154 L2.24941758,2.76446154 C1.10556044,2.76446154 0.175043956,3.69497802 0.175043956,4.83883516 L0.175043956,14.7567473 C0.175043956,15.9006044 1.10556044,16.8311209 2.24941758,16.8311209 L12.1673297,16.8311209 C13.3111868,16.8311209 14.2417033,15.9006044 14.2417033,14.7567473 L14.2417033,8.61956044 C14.2417033,8.19007692 13.8934835,7.84167033 13.4638132,7.84167033 Z"></path>
</g>
</g>
</g>
</svg>
</div>
</a>
</h6>
<div class="m__list-items__list-item__meta">
<div class="blog-post-meta blog-post-meta--variant2">
<p>
<a class="blog-post-meta__author" href="https://www.usv.com/people/fred-wilson/">
Fred Wilson
</a>
Jul 8, 2019
</p>
</div>
</div>
</div>
<div class="m__list-items__list-item">
<h6 class="m__list-items__list-item__title">
<a href="https://www.usv.com/writing/2019/03/arweave-project-ideas/" rel="bookmark" title="Permanent Link to Arweave Project Ideas" class="m__list-items__list-item__title-link">
Arweave Project Ideas
</a>
</h6>
<div class="m__list-items__list-item__meta">
<div class="blog-post-meta blog-post-meta--variant2">
<p>
<a class="blog-post-meta__author" href="https://www.usv.com/people/dani-grant/">
Dani Grant
</a>
Mar 5, 2019
</p>
</div>
</div>
</div>
<div class="m__list-items__list-item">
<h6 class="m__list-items__list-item__title">
<a href="https://www.usv.com/writing/2018/10/the-myth-of-the-infrastructure-phase/" rel="bookmark" title="Permanent Link to The Myth of The Infrastructure Phase" class="m__list-items__list-item__title-link">
The Myth of The Infrastructure Phase
</a>
</h6>
<div class="m__list-items__list-item__meta">
<div class="blog-post-meta blog-post-meta--variant2">
<p>
<a class="blog-post-meta__author" href="https://www.usv.com/people/dani-grant/">Dani Grant</a> and <a class="blog-post-meta__author" href="https://www.usv.com/people/nick-grossman/">Nick Grossman</a>
Oct 1, 2018
</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div><!-- #main -->
</section><!-- #primary -->
</div><!-- #content -->
<footer class="o__footer">
<div class="o__footer-info">
<div class="m__footer-info3">
<p><strong>Union Square Ventures</strong><br>
915 Broadway, 19th Floor<br>
New York, NY 10010</p>
<div class="m__footerleft-socialinks">
<a class="m__footerleft-socialinks__link" rel="noreferrer" href="https://twitter.com/usv" target="_blank" aria-label="Share on twitter">
<div class="a__icon a__icon--small">
<svg class="a__icons__twitter" width="22" height="22" viewBox="0 0 22 22" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink">
<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" opacity="0.900000036">
<g transform="translate(-76.000000, -195.000000)" fill="#0D0D0D">
<g>
<g transform="translate(76.000000, 61.000000)">
<g transform="translate(0.000000, 132.000000)">
<path d="M9.71114123,6.39666422 L9.75449454,7.11153991 L9.03193939,7.02400411 C6.40183864,6.68845022 4.10411326,5.55048483 2.15321435,3.63928657 L1.19944155,2.69098208 L0.9537728,3.39126847 C0.433533091,4.95232354 0.76590846,6.60091442 1.84974119,7.7097012 C2.42778531,8.32245179 2.29772538,8.40998759 1.30059927,8.04525509 C0.9537728,7.9285407 0.650299636,7.8410049 0.62139743,7.8847728 C0.520239709,7.98689789 0.867066182,9.31452417 1.14163714,9.83973896 C1.51736582,10.569204 2.28327428,11.2840796 3.12143825,11.7071693 L3.8295423,12.0427232 L2.99137833,12.0573125 C2.18211656,12.0573125 2.15321435,12.0719018 2.23992097,12.3782771 C2.52894303,13.3265816 3.67058017,14.3332433 4.94227724,14.7709223 L5.83824562,15.0772976 L5.05788606,15.5441552 C3.90179782,16.215263 2.54339413,16.5945848 1.18499045,16.6237634 C0.534690812,16.6383527 0,16.6967099 0,16.7404778 C0,16.8863707 1.76303457,17.7033715 2.78906288,18.0243361 C5.86714783,18.9726406 9.5232769,18.5641402 12.2689865,16.9447279 C14.2198854,15.7921733 16.1707843,13.5016532 17.0812038,11.2840796 C17.5725413,10.1023464 18.0638788,7.94312999 18.0638788,6.90728971 C18.0638788,6.23618192 18.1072321,6.14864612 18.9164939,5.34623464 C19.3933803,4.87937705 19.8413645,4.36875155 19.9280711,4.22285856 C20.0725821,3.94566186 20.058131,3.94566186 19.3211247,4.19367996 C18.092781,4.63135895 17.9193678,4.57300175 18.5263141,3.91648326 C18.9742983,3.44962567 19.5089891,2.60344628 19.5089891,2.35542819 C19.5089891,2.31166029 19.2922225,2.38460679 19.0465538,2.51591048 C18.7864339,2.66180348 18.2083898,2.88064298 17.7748567,3.01194668 L16.9944972,3.25996477 L16.2863931,2.77851788 C15.8962133,2.51591048 15.3470714,2.22412449 15.0580494,2.13658869 C14.3210431,1.93233849 13.1938571,1.96151709 12.5291063,2.19494589 C10.7227184,2.85146438 9.58108131,4.54382315 9.71114123,6.39666422 Z"></path>
</g>
</g>
</g>
</g>
</g>
</svg>
</div>
</a>
<a class="m__footerleft-socialinks__link" rel="noreferrer" href="https://www.linkedin.com/company/union-square-ventures" target="_blank" aria-label="Share on linkedin">
<div class="a__icon-small a__icon__linkedin">
<svg width="20px" height="20px" viewBox="0 0 20 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink">
<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" opacity="0.900000036">
<g transform="translate(-116.000000, -193.000000)" fill="#1A1A1A">
<g transform="translate(76.000000, 61.000000)">
<g transform="translate(40.000000, 132.000000)">
<path d="M17.0432512,17.0422222 L14.0770577,17.0422222 L14.0770577,12.4005556 C14.0770577,11.2938889 14.0581683,9.87 12.5359038,9.87 C10.991972,9.87 10.7564099,11.0761111 10.7564099,12.3216667 L10.7564099,17.0422222 L7.79354982,17.0422222 L7.79354982,7.49777778 L10.6369621,7.49777778 L10.6369621,8.80277778 L10.6780744,8.80277778 C11.0736409,8.05222222 12.0414456,7.26111111 13.4842635,7.26111111 C16.4882358,7.26111111 17.0432512,9.23722222 17.0432512,11.8077778 L17.0432512,17.0422222 Z M4.44901247,6.19388889 C3.49620823,6.19388889 2.72785355,5.42333333 2.72785355,4.47333333 C2.72785355,3.52388889 3.49620823,2.75333333 4.44901247,2.75333333 C5.39792772,2.75333333 6.16794911,3.52388889 6.16794911,4.47333333 C6.16794911,5.42333333 5.39792772,6.19388889 4.44901247,6.19388889 Z M2.96341565,17.0422222 L5.93294258,17.0422222 L5.93294258,7.49777778 L2.96341565,7.49777778 L2.96341565,17.0422222 Z M18.5205145,0 L1.47504097,0 C0.661129476,0 0,0.645555556 0,1.44222222 L0,18.5566667 C0,19.3533333 0.661129476,20 1.47504097,20 L18.5205145,20 C19.3360927,20 20,19.3533333 20,18.5566667 L20,1.44222222 C20,0.645555556 19.3360927,0 18.5205145,0 L18.5205145,0 Z"></path>
</g>
</g>
</g>
</g>
</svg>
</div>
</a>
</div>
</div>
<div class="m__footer-info3">
<p class="m__footer-info3__title">Company</p>
<nav id="site-navigation" class="main-navigation m__footerleft-menu" aria-label="Top Menu">
<div class="menu-company-container"><ul id="menu-company-1" class="menu"><li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2505"><a href="https://www.usv.com/about/">About</a></li>
<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1138"><a href="https://www.usv.com/people/">People</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-914"><a href="https://www.usv.com/companies">Companies</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-915"><a href="https://www.usv.com/network">Network</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-916"><a href="https://jobs.usv.com/">Jobs</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-917"><a href="https://www.usv.com/writing/">Writing</a></li>
</ul></div> </nav><!-- #site-navigation -->
</div>
<div class="m__footer-info6">
<p><strong>Contact Us</strong></p>
<p>If you would like to share your ideas, business, or feedback with us,
please email us. All business plan submissions must include a clear
description of your operations and current progress.</p>
<div class="m__footerright-contact">
<p>
Email: <a class="a__underline-link" href="mailto:info@usv.com">
info@usv.com</a>
</p>
<p>
Call: <a class="" href="tel:2129947880">
(212) 994-7880</a>
</p>
<p>
Fax: <a class="" href="tel:2129947399">
(212) 994-7399</a>
</p>
</div>
</div>
</div>
<div class="o__footer-legal">
<div class="o__footer-logo">
<div class="a__site-logo"><a href="https://www.usv.com/" class="custom-logo-link" rel="home"><img src="Fat%20Protocols%20|%20Union%20Square%20Ventures_fichiers/usv_logo.jpg" class="custom-logo" alt="Union Square Ventures" srcset="https://www.usv.com/wp-content/uploads/2019/04/usv_logo.jpg 190w, https://www.usv.com/wp-content/uploads/2019/04/usv_logo-150x150.jpg 150w" sizes="(max-width: 190px) 100vw, 190px" width="190" height="190"></a></div>
</div>
<nav class="o__footer-legalmenu" aria-label="Footer Menu">
<div class="menu-legal-container"><ul id="menu-legal" class="menu"><li id="menu-item-2474" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2474"><a href="https://www.usv.com/policy-against-harassment/">Policy Against Harassment</a></li>
</ul></div> </nav><!-- .footer-navigation -->
</div>
</footer><!-- #colophon -->
</div><!-- #page -->
<link rel="stylesheet" id="dashicons-css" href="Fat%20Protocols%20|%20Union%20Square%20Ventures_fichiers/dashicons.css" type="text/css" media="all">
<link rel="stylesheet" id="discuss-on-twitter-css" href="Fat%20Protocols%20|%20Union%20Square%20Ventures_fichiers/styles.css" type="text/css" media="all">
<script type="text/javascript" src="Fat%20Protocols%20|%20Union%20Square%20Ventures_fichiers/mpp-frontend.js"></script>
<script type="text/javascript">
/* <![CDATA[ */
var icons_html = {"external":"<div class=\"a__icon-small\">\n <svg width=\"20px\" height=\"20px\" viewBox=\"0 0 20 20\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" xmlns:xlink=\"http:\/\/www.w3.org\/1999\/xlink\">\n <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n <g fill=\"#28A055\" fill-rule=\"nonzero\">\n <g>\n <path d=\"M16.1544835,0.00747252747 L10.7957473,0.00747252747 C10.3660769,0.00747252747 10.0178571,0.355692308 10.0178571,0.785362637 C10.0178571,1.21503297 10.3660769,1.56325275 10.7957473,1.56325275 L14.3629451,1.56325275 L6.72901099,9.19718681 C6.42506593,9.50094505 6.42506593,9.99357143 6.72901099,10.2973297 C6.88089011,10.4492088 7.08003297,10.5252418 7.27898901,10.5252418 C7.47794505,10.5252418 7.67708791,10.4492088 7.82896703,10.2973297 L15.3765934,2.74951648 L15.3765934,6.14391209 C15.3765934,6.57358242 15.7248132,6.9218022 16.1544835,6.9218022 C16.5841538,6.9218022 16.9323736,6.57358242 16.9323736,6.14391209 L16.9323736,0.785362637 C16.9323736,0.355692308 16.5841538,0.00747252747 16.1544835,0.00747252747 Z\"><\/path>\n <path d=\"M13.4638132,7.84167033 C13.0341429,7.84167033 12.6859231,8.18989011 12.6859231,8.61956044 L12.6859231,14.7567473 C12.6859231,15.0379011 12.4484835,15.2753407 12.1673297,15.2753407 L2.24941758,15.2753407 C1.96826374,15.2753407 1.73082418,15.0379011 1.73082418,14.7567473 L1.73082418,4.83883516 C1.73082418,4.55768132 1.96826374,4.32024176 2.24941758,4.32024176 L8.40827473,4.32024176 C8.83794505,4.32024176 9.18616484,3.97202198 9.18616484,3.54235165 C9.18616484,3.11268132 8.83794505,2.76446154 8.40827473,2.76446154 L2.24941758,2.76446154 C1.10556044,2.76446154 0.175043956,3.69497802 0.175043956,4.83883516 L0.175043956,14.7567473 C0.175043956,15.9006044 1.10556044,16.8311209 2.24941758,16.8311209 L12.1673297,16.8311209 C13.3111868,16.8311209 14.2417033,15.9006044 14.2417033,14.7567473 L14.2417033,8.61956044 C14.2417033,8.19007692 13.8934835,7.84167033 13.4638132,7.84167033 Z\"><\/path>\n <\/g>\n <\/g>\n <\/g>\n <\/svg>\n<\/div>\n"};
/* ]]> */
</script>
<script type="text/javascript" src="Fat%20Protocols%20|%20Union%20Square%20Ventures_fichiers/main.js"></script>
<script type="text/javascript" src="Fat%20Protocols%20|%20Union%20Square%20Ventures_fichiers/instantsearch.js"></script>
<script type="text/javascript" src="Fat%20Protocols%20|%20Union%20Square%20Ventures_fichiers/jquery.js"></script>
<script type="text/javascript" src="Fat%20Protocols%20|%20Union%20Square%20Ventures_fichiers/skip-link-focus-fix.js"></script>
<script type="text/javascript" src="Fat%20Protocols%20|%20Union%20Square%20Ventures_fichiers/priority-menu.js"></script>
<script type="text/javascript" src="Fat%20Protocols%20|%20Union%20Square%20Ventures_fichiers/widgets.js"></script>
</body></html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 125 KiB

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,9 @@
jQuery( document ).ready( function( $ ) {
$( '.mpp-gutenberg-tab' ).on( 'click', function( e ) {
$('.mpp-author-tabs li').removeClass('active');
$(this).addClass('active');
var $tabs = $('.mpp-tab').removeClass('mpp-tab-active');
var new_tab = $(this).data('tab');
$('.' + new_tab).addClass('mpp-tab-active');
} );
} );

View File

@ -0,0 +1,163 @@
@charset "UTF-8";
/*
Theme Name: Twenty Nineteen
Adding print support. The print styles are based on the the great work of
Andreas Hecht in https://www.jotform.com/blog/css-perfect-print-stylesheet-98272/.
*/
/*--------------------------------------------------------------
>>> TABLE OF CONTENTS:
----------------------------------------------------------------
# Margins
# Typography÷
# Page breaks
# Links
# Visibility
--------------------------------------------------------------*/
@media print {
/* Margins */
@page {
margin: 2cm;
}
.entry {
margin-top: 1em;
}
.entry .entry-header, .site-footer .site-info {
margin: 0;
}
/* Fonts */
body {
font: 13pt Georgia, "Times New Roman", Times, serif;
line-height: 1.3;
background: #fff !important;
color: #000;
}
h1 {
font-size: 24pt;
}
h2,
h3,
h4,
.has-regular-font-size,
.has-large-font-size,
h2.author-title,
p.author-bio,
.comments-title, h3 {
font-size: 14pt;
margin-top: 25px;
}
/* Page breaks */
a {
page-break-inside: avoid;
}
blockquote {
page-break-inside: avoid;
}
h1,
h2,
h3,
h4,
h5,
h6 {
page-break-after: avoid;
page-break-inside: avoid;
}
img {
page-break-inside: avoid;
page-break-after: avoid;
}
table, pre {
page-break-inside: avoid;
}
ul, ol, dl {
page-break-before: avoid;
}
/* Links */
a:link, a:visited, a {
background: transparent;
font-weight: bold;
text-decoration: underline;
text-align: left;
}
a {
page-break-inside: avoid;
}
a[href^=http]:after {
content: " < " attr(href) "> ";
}
a:after > img {
content: "";
}
article a[href^="#"]:after {
content: "";
}
a:not(:local-link):after {
content: " < " attr(href) "> ";
}
/* Visibility */
.main-navigation,
.site-title + .main-navigation,
.social-navigation,
.site-branding-container:before,
.entry .entry-title:before,
.entry-footer,
.author-description:before,
.post-navigation,
.widget-area,
.comment-form-flex,
.comment-reply,
.comment .comment-metadata .edit-link {
display: none;
}
.entry .entry-content .wp-block-button .wp-block-button__link,
.entry .entry-content .button {
color: #000;
background: none;
}
/* Site Header (With Featured Image) */
.site-header.featured-image {
min-height: 0;
}
.site-header.featured-image .main-navigation a,
.site-header.featured-image .main-navigation a + svg,
.site-header.featured-image .social-navigation a,
.site-header.featured-image .site-title a,
.site-header.featured-image .site-featured-image a,
.site-header.featured-image .site-branding .site-title,
.site-header.featured-image .site-branding .site-description,
.site-header.featured-image .main-navigation a:after,
.site-header.featured-image .main-navigation .main-menu > li.menu-item-has-children:after,
.site-header.featured-image .main-navigation li,
.site-header.featured-image .social-navigation li,
.site-header.featured-image .entry-meta,
.site-header.featured-image .entry-title,
.site-header.featured-image#masthead .site-title a {
color: #000;
text-shadow: none;
}
.site-header.featured-image .site-featured-image .entry-header,
.site-header.featured-image .site-branding-container {
margin-top: 0;
margin-bottom: 0;
}
.site-header.featured-image .site-featured-image .post-thumbnail img {
position: relative;
height: initial;
width: initial;
object-fit: none;
min-width: 0;
min-height: 0;
max-width: 100%;
margin-top: 1rem;
}
/* Remove image filters from featured image */
.image-filters-enabled *:after {
display: none !important;
}
.image-filters-enabled .site-header.featured-image .site-featured-image:before {
display: none;
}
.image-filters-enabled .site-header.featured-image .site-featured-image .post-thumbnail img {
filter: none;
}
}

View File

@ -0,0 +1,216 @@
(function() {
/**
* Debounce
*
* @param {Function} func
* @param {number} wait
* @param {boolean} immediate
*/
function debounce(func, wait, immediate) {
'use strict';
var timeout;
wait = (typeof wait !== 'undefined') ? wait : 20;
immediate = (typeof immediate !== 'undefined') ? immediate : true;
return function() {
var context = this, args = arguments;
var later = function() {
timeout = null;
if (!immediate) {
func.apply(context, args);
}
};
var callNow = immediate && !timeout;
clearTimeout(timeout);
timeout = setTimeout(later, wait);
if (callNow) {
func.apply(context, args);
}
};
}
/**
* Prepends an element to a container.
*
* @param {Element} container
* @param {Element} element
*/
function prependElement(container, element) {
if (container.firstChild.nextSibling) {
return container.insertBefore(element, container.firstChild.nextSibling);
} else {
return container.appendChild(element);
}
}
/**
* Shows an element by adding a hidden className.
*
* @param {Element} element
*/
function showButton(element) {
// classList.remove is not supported in IE11
element.className = element.className.replace('is-empty', '');
}
/**
* Hides an element by removing the hidden className.
*
* @param {Element} element
*/
function hideButton(element) {
// classList.add is not supported in IE11
if (!element.classList.contains('is-empty')) {
element.className += ' is-empty';
}
}
/**
* Returns the currently available space in the menu container.
*
* @returns {number} Available space
*/
function getAvailableSpace( button, container ) {
return container.offsetWidth - button.offsetWidth - 22;
}
/**
* Returns whether the current menu is overflowing or not.
*
* @returns {boolean} Is overflowing
*/
function isOverflowingNavivation( list, button, container ) {
return list.offsetWidth > getAvailableSpace( button, container );
}
/**
* Set menu container variable
*/
var navContainer = document.querySelector('.main-navigation');
var breaks = [];
/**
* Lets bail if we our menu doesn't exist
*/
if ( ! navContainer ) {
return;
}
/**
* Refreshes the list item from the menu depending on the menu size
*/
function updateNavigationMenu( container ) {
/**
* Lets bail if our menu is empty
*/
if ( ! container.parentNode.querySelector('.main-menu[id]') ) {
return;
}
// Adds the necessary UI to operate the menu.
var visibleList = container.parentNode.querySelector('.main-menu[id]');
var hiddenList = visibleList.parentNode.nextElementSibling.querySelector('.hidden-links');
var toggleButton = visibleList.parentNode.nextElementSibling.querySelector('.main-menu-more-toggle');
if ( isOverflowingNavivation( visibleList, toggleButton, container ) ) {
// Record the width of the list
breaks.push( visibleList.offsetWidth );
// Move last item to the hidden list
prependElement( hiddenList, ! visibleList.lastChild || null === visibleList.lastChild ? visibleList.previousElementSibling : visibleList.lastChild );
// Show the toggle button
showButton( toggleButton );
} else {
// There is space for another item in the nav
if ( getAvailableSpace( toggleButton, container ) > breaks[breaks.length - 1] ) {
// Move the item to the visible list
visibleList.appendChild( hiddenList.firstChild.nextSibling );
breaks.pop();
}
// Hide the dropdown btn if hidden list is empty
if (breaks.length < 2) {
hideButton( toggleButton );
}
}
// Recur if the visible list is still overflowing the nav
if ( isOverflowingNavivation( visibleList, toggleButton, container ) ) {
updateNavigationMenu( container );
}
}
/**
* Run our priority+ function as soon as the document is `ready`
*/
document.addEventListener( 'DOMContentLoaded', function() {
updateNavigationMenu( navContainer );
// Also, run our priority+ function on selective refresh in the customizer
var hasSelectiveRefresh = (
'undefined' !== typeof wp &&
wp.customize &&
wp.customize.selectiveRefresh &&
wp.customize.navMenusPreview.NavMenuInstancePartial
);
if ( hasSelectiveRefresh ) {
// Re-run our priority+ function on Nav Menu partial refreshes
wp.customize.selectiveRefresh.bind( 'partial-content-rendered', function ( placement ) {
var isNewNavMenu = (
placement &&
placement.partial.id.includes( 'nav_menu_instance' ) &&
'null' !== placement.container[0].parentNode &&
placement.container[0].parentNode.classList.contains( 'main-navigation' )
);
if ( isNewNavMenu ) {
updateNavigationMenu( placement.container[0].parentNode );
}
});
}
});
/**
* Run our priority+ function on load
*/
window.addEventListener( 'load', function() {
updateNavigationMenu( navContainer );
});
/**
* Run our priority+ function every time the window resizes
*/
var isResizing = false;
window.addEventListener( 'resize',
debounce( function() {
if ( isResizing ) {
return;
}
isResizing = true;
setTimeout( function() {
updateNavigationMenu( navContainer );
isResizing = false;
}, 150 );
} )
);
/**
* Run our priority+ function
*/
updateNavigationMenu( navContainer );
})();

View File

@ -0,0 +1,31 @@
/**
* File skip-link-focus-fix.js.
*
* Helps with accessibility for keyboard only users.
*
* Learn more: https://git.io/vWdr2
*/
( function() {
var isIe = /(trident|msie)/i.test( navigator.userAgent );
if ( isIe && document.getElementById && window.addEventListener ) {
window.addEventListener( 'hashchange', function() {
var id = location.hash.substring( 1 ),
element;
if ( ! ( /^[A-z0-9_-]+$/.test( id ) ) ) {
return;
}
element = document.getElementById( id );
if ( element ) {
if ( ! ( /^(?:a|select|input|button|textarea)$/i.test( element.tagName ) ) ) {
element.tabIndex = -1;
}
element.focus();
}
}, false );
}
} )();

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,19 @@
@charset "UTF-8";
/*
Theme Name: Union Square Ventures
Description: Union Square Ventures Theme
Author: Nolte
Template: twentynineteen
Version: 1.0.1
*/
.discuss-on-twitter-button {
border-radius: 0 !important;
}
.discuss-on-twitter-button:hover {
background: #76d1ff !important;
color: #fff !important;
}
.discuss-on-twitter-button:visited {
color: #fff !important;
}

View File

@ -0,0 +1,30 @@
.discuss-on-twitter {
white-space:nowrap;
}
.discuss-on-twitter-button {
display: inline-block;
background: #1da0f1;
color: #fff;
padding: .5em 1.5em;
font-size: 1em;
margin: 10px 0 20px;
}
.discuss-on-twitter-button.reply-on-twitter {
border-radius: 12px 0 0 12px;
}
.discuss-on-twitter-button.view-reactions {
border-radius: 0 12px 12px 0;
}
.discuss-on-twitter-button.view-and-reply {
border-radius: 12px;
}
.discuss-on-twitter-button:hover {
background: #fff;
color: #1da0f1;
}
.discuss-on-twitter-button .dashicons-twitter {
line-height: 1.5em;
margin-right: 10px;
font-size: 1.1em;
display:none;
}

View File

@ -0,0 +1 @@
.wp-block-audio figcaption{color:#555d66;font-size:13px;text-align:center}.wp-block-code{font-family:Menlo,Consolas,monaco,monospace;font-size:14px;color:#23282d;padding:.8em 1em;border:1px solid #e2e4e7;border-radius:4px}.blocks-gallery-caption,.wp-block-embed figcaption,.wp-block-image figcaption{color:#555d66;font-size:13px;text-align:center}.wp-block-preformatted pre{font-family:Menlo,Consolas,monaco,monospace;color:#23282d;font-size:16px}@media (min-width:600px){.wp-block-preformatted pre{font-size:14px}}.wp-block-pullquote{border-top:4px solid #555d66;border-bottom:4px solid #555d66;margin-bottom:28px;color:#40464d}.wp-block-pullquote__citation,.wp-block-pullquote cite,.wp-block-pullquote footer{color:#40464d;text-transform:uppercase;font-size:13px;font-style:normal}.wp-block-quote{border-left:4px solid #000;margin:0 0 28px;padding-left:1em}.wp-block-quote__citation,.wp-block-quote cite,.wp-block-quote footer{color:#6c7781;font-size:13px;margin-top:1em;position:relative;font-style:normal}.wp-block-quote.has-text-align-right{border-left:none;border-right:4px solid #000;padding-left:0;padding-right:1em}.wp-block-quote.has-text-align-center{border:none;padding-left:0}.wp-block-quote.is-large,.wp-block-quote.is-style-large{border:none}.wp-block-search .wp-block-search__label{font-weight:700}.wp-block-group.has-background{padding:20px 30px;margin-top:0;margin-bottom:0}.wp-block-separator{border:none;border-bottom:2px solid #8f98a1;margin-left:auto;margin-right:auto}.wp-block-separator:not(.is-style-wide):not(.is-style-dots){max-width:100px}.wp-block-separator.has-background:not(.is-style-dots){border-bottom:none;height:1px}.wp-block-separator.has-background:not(.is-style-wide):not(.is-style-dots){height:2px}.wp-block-table{border-collapse:collapse}.wp-block-table td,.wp-block-table th{padding:.5em;border:1px solid;word-break:normal}.wp-block-video figcaption{color:#555d66;font-size:13px;text-align:center}

View File

@ -0,0 +1,98 @@
.wpt-header iframe {
float: right;
}
.wpt-left {
float: left;
margin-right: 10px;
}
.wpt-right {
float: right;
margin-left: 10px;
}
.wpt-twitter-name {
font-size: 120%;
line-height: 1;
}
.wpt-twitter-id {
display: inline-block;
margin-top: .5em;
}
.wpt-tweet-time {
font-size: 90%;
}
.wpt-latest-tweets li, .wpt-search-tweets li {
margin-bottom: .75em;
list-style-type: none;
}
.wpt-intents-border {
border-top: 1px solid;
opacity: .3;
margin: 5px 0;
}
.wpt-intents {
padding: 0 0 5px;
text-align: center;
font-size: 12px;
}
.wpt-twitter-image {
width: 100%;
height: auto;
}
.wpt-intents a span {
width: 16px;
height: 16px;
display: inline-block;
margin-right: 3px;
position: relative;
top: 2px;
}
.wpt-intents .wpt-reply span {
background: url(../images/spritev2.png) 0px;
}
.wpt-intents .wpt-retweet span {
background: url(../images/spritev2.png) -80px;
}
.wpt-intents .wpt-favorite span {
background: url(../images/spritev2.png) -32px;
}
.wpt-intents .wpt-reply:hover span, .wpt-intents .wpt-reply:focus span {
background-position: -16px;
}
.wpt-intents .wpt-retweet:hover span, .wpt-intents .wpt-retweet:focus span {
background-position: -96px;
}
.wpt-intents .wpt-favorite:hover span, .wpt-intents .wpt-favorite:focus span {
background-position: -48px;
}
.retweeted .wpt-intents .wpt-retweet span {
background-position: -112px;
}
.favorited .wpt-intents .wpt-favorite span {
background-position: -64px;
}
.wpt-intents a span.intent-text {
width: auto;
height: auto;
margin: 0;
top: 0;
background: none;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 320 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 278 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 313 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 164 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 381 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 247 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 384 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 136 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

View File

@ -0,0 +1 @@
parselyStartCallback({set: "", got: "pid=7e588b28114f930c14e5348e44ba6e3b"});

View File

@ -0,0 +1 @@
parselyStartCallback({set: "", got: "pid=7e588b28114f930c14e5348e44ba6e3b"});

View File

@ -0,0 +1 @@
parselyStartCallback({set: "", got: "pid=7e588b28114f930c14e5348e44ba6e3b"});

View File

@ -0,0 +1 @@
parselyStartCallback({set: "", got: "pid=7e588b28114f930c14e5348e44ba6e3b"});

View File

@ -0,0 +1 @@
parselyStartCallback({set: "", got: "pid=7e588b28114f930c14e5348e44ba6e3b"});

View File

@ -0,0 +1 @@
parselyStartCallback({set: "", got: "pid=7e588b28114f930c14e5348e44ba6e3b"});

View File

@ -0,0 +1 @@
parselyStartCallback({set: "", got: "pid=7e588b28114f930c14e5348e44ba6e3b"});

View File

@ -0,0 +1 @@
parselyStartCallback({set: "", got: "pid=7e588b28114f930c14e5348e44ba6e3b"});

View File

@ -0,0 +1 @@
parselyStartCallback({set: "", got: "pid=7e588b28114f930c14e5348e44ba6e3b"});

View File

@ -0,0 +1,591 @@
// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL-3.0
//============================================
// Wayback Common JS Library
//============================================
var WB_wombat_replayServer;
var WB_wombat_replayPrefix;
var WB_wombat_replayDatePrefix;
var WB_wombat_captureDatePart;
var WB_wombat_origHost;
//Location objects
var WB_wombat_self_location;
var WB_wombat_top_location;
var WB_wombat_opener_location;
// Domain
var WB_wombat_document_domain;
//function to allow jquery expando requests (http://stackoverflow.com/questions/7200722/jquery-expando-properties),
//which return a function that has its name defined in a parameter of the request, to be executed. we rewrite the function call elsewhere (see
//ArchiveUrlReplay.xml) and then define it here to ensure it exists. expando function include current timestamp so we can never replay them without
//overriding default expando behavior
function jQueryREWRITTEN_BY_WAYBACK() {
o=arguments;
}
function WB_Get_Domain(href) {
var a = document.createElement('a');
a.href = href;
return a.protocol + "//" + a.hostname;
}
function WB_StripPort(str) {
var hostWithPort = str.match(/^http:\/\/[\w\d@.-]+:\d+/);
if (hostWithPort) {
var hostName = hostWithPort[0].substr(0, hostWithPort[0].lastIndexOf(':'));
return hostName + str.substr(hostWithPort[0].length);
}
return str;
}
function WB_IsHostUrl(str) {
// Good guess that's its a hostname
if (str.indexOf("www.") == 0) {
return true;
}
// hostname:port (port required)
var matches = str.match(/^[\w-]+(\.[\w-_]+)+(:\d+)(\/|$)/);
if (matches && (matches[0].length < 64)) {
return true;
}
// ip:port
matches = str.match(/^\d+\.\d+\.\d+\.\d+(:\d+)?(\/|$)/);
if (matches && (matches[0].length < 64)) {
return true;
}
return false;
}
function WB_RewriteUrl(url) {
var httpPrefix = "http://";
var httpsPrefix = "https://";
if (!url) {
return url;
}
// If not dealing with a string, get string version and try to convert it
if ((typeof url) != "string") {
url = url.toString();
}
// If starts with prefix, no rewriting needed
// Only check replay prefix (no date) as date may be different for each capture
if (url.indexOf(WB_wombat_replayServer) == 0) {
return url;
}
// If server relative url, add prefix and original host
if (WB_IsRelativeUrl(url)) {
// Already a relative url, don't make any changes!
if (url.indexOf(WB_wombat_captureDatePart) >= 0) {
return url;
}
return WB_wombat_replayDatePrefix + WB_wombat_origHost + url;
}
// If full url starting with http:// add http prefix
if (url.indexOf(httpPrefix) == 0) {
return WB_wombat_replayDatePrefix.replace("https://", "http://") + url;
}
// If full url starting with https:// add https prefix
if (url.indexOf(httpsPrefix) == 0) {
return WB_wombat_replayDatePrefix.replace("http://", "https://") + url;
}
// May or may not be a hostname, call function to determine
// If it is, add the prefix and make sure port is removed
if (WB_IsHostUrl(url)) {
return WB_wombat_replayDatePrefix + httpPrefix + url;
}
return url;
}
//determine if url is server or path relative or not
function WB_IsRelativeUrl(url) {
if (url) {
var urlType = (typeof url);
if (urlType == "string") {
return (url.charAt(0) == "/" || url.charAt(0) == ".");
} else if (urlType == "object") {
return (url.href && (url.href.charAt(0) == "/" || url.charAt(0) == "."));
}
}
return false;
}
//http://wayback.archive-it.org/1000000016/20140801164720/http://www.w3.org/2000/svg -> http://www.w3.org/2000/svg - for https://webarchive.jira.com/browse/ARI-3906
function WB_UnRewriteUrl(url) {
return WB_ExtractOrig(url);
}
function WB_CopyObjectFields(obj) {
var newObj = {};
for (prop in obj) {
if ((typeof obj[prop]) != "function") {
newObj[prop] = obj[prop];
}
}
return newObj;
}
function WB_ExtractOrigNoProtocol(href) {
var lHref = WB_ExtractOrig(href);
if (lHref.slice(0, 5) == "http:") {
return lHref.slice(5);
}
else if (lHref.slice(0, 6) == "https:") {
return lHref.slice(6);
}
return lHref;
}
function WB_ExtractOrig(href) {
if (!href) {
return "";
}
href = href.toString();
var index = href.indexOf("/http", 1);
if (index > 0) {
return href.substr(index + 1);
} else {
return href;
}
}
//solution from http://stackoverflow.com/questions/4497531/javascript-get-url-path
function WB_GetPath(href) {
var a = document.createElement('a');
a.href = href;
return a.pathname;
}
//solution from http://stackoverflow.com/questions/4497531/javascript-get-url-path
//specifically, user stecb's answer
function WB_ExtractOrigPathname(href) {
var origHref = WB_ExtractOrig(href);
return WB_GetPath(origHref);
}
function WB_ExtractOrigPathnameAndQueryString(href) {
var origHref = WB_ExtractOrig(href);
var a = document.createElement('a');
a.href = origHref;
if (WB_EndsWith(origHref, "?")) {
return a.pathname + "?";
}
return a.pathname + a.search;
}
function WB_EndsWith(str, endingStr) {
return str.indexOf(endingStr, str.length - endingStr.length) !== -1;
}
//solution from http://stackoverflow.com/questions/4497531/javascript-get-url-path
function WB_ExtractOrigSearch(href) {
var origHref = WB_ExtractOrig(href);
var a = document.createElement('a');
a.href = origHref;
return a.search;
}
// rewrite orig href to https if it is http and the page is being loaded as https
// this is to deal with Firefox mixed content security which restricts loading http urls from a page
// loaded over https
function WB_fixProtocol(href) {
if (!href) {
return "";
}
if (location.protocol == "https:") {
if (href.slice(0, 5) == "http:") {
href = "https:" + href.slice(5);
}
}
return href;
}
function WB_CopyLocationObj(loc) {
var newLoc = WB_CopyObjectFields(loc);
newLoc._origLoc = loc;
newLoc._origHref = loc.href;
// Rewrite replace and assign functions
newLoc.replace = function(url) { this._origLoc.replace(WB_RewriteUrl(url)); };
newLoc.assign = function(url) { this._origLoc.assign(WB_RewriteUrl(url)); };
newLoc.reload = function() { this._origLoc.reload(); };
newLoc.href = WB_fixProtocol(WB_ExtractOrig(newLoc._origHref));
newLoc.pathname = WB_ExtractOrigPathname(newLoc._origHref);
newLoc.search = WB_ExtractOrigSearch(newLoc._origHref);
newLoc.toString = function() { return this.href; };
newLoc.hash = loc.hash;
newLoc.lasthash = loc.hash;
newLoc.lastSearch = newLoc.search
return newLoc;
}
//override createElementNS JS function in order to ensure namespace is correct - for https://webarchive.jira.com/browse/ARI-3906
function WB_CreateElementNS(namespace, elementName) {
namespace = WB_UnRewriteUrl(namespace);
return document.createElementNS(namespace, elementName);
}
function WB_wombat_updateLoc(reqHref, origHref, loc, wbSearchLoc) {
if (reqHref) {
if (WB_IsRelativeUrl(reqHref)) {
//for relative paths, just compare the paths + query string, not full urls
if (WB_ExtractOrigPathnameAndQueryString(origHref) != reqHref) {
loc.href = WB_RewriteUrl(reqHref);
return true;
}
}
else {
//for full urls, compare everything but leading protocol (http or https)
if (WB_ExtractOrigNoProtocol(origHref) != WB_ExtractOrigNoProtocol(reqHref)) {
loc.href = WB_RewriteUrl(reqHref);
return true;
}
}
}
if (wbSearchLoc) {
if (loc.search != wbSearchLoc) {
console.log('replacing browser location.search with %s', wbSearchLoc);
loc.search = wbSearchLoc;
}
}
return false;
}
function WB_wombat_checkLocationChange(wbLoc, isTop) {
var has_updated = null;
var locType = (typeof wbLoc);
var location = (isTop ? window.top.location : window.location);
// String has been assigned to location, so assign it
if (locType == "string") {
has_updated = WB_wombat_updateLoc(wbLoc, location.href, location);
} else if (locType == "object") {
var search = wbLoc.search != wbLoc.lastSearch ? wbLoc.search : null;
has_updated = WB_wombat_updateLoc(wbLoc.href, wbLoc._origHref, location, search);
}
if (WB_wombat_self_location.hash != WB_wombat_self_location.lasthash) {
//if wombat hash has been updated, make sure it's in sync with window.location hash
window.location.hash = WB_wombat_self_location.hash;
} else if (window.location.hash != WB_wombat_self_location.hash) {
//if window.location.hash has been updated before wombat hash, handle this here
WB_wombat_self_location.hash = window.location.hash;
}
WB_wombat_self_location.lasthash = WB_wombat_self_location.hash;
return has_updated;
}
var wombat_updating = false;
function WB_wombat_checkLocations() {
if (wombat_updating) {
return false;
}
wombat_updating = true;
var updated_self = WB_wombat_checkLocationChange(document.WB_wombat_self_location, false);
if (!updated_self) {
updated_self = WB_wombat_checkLocationChange(WB_wombat_self_location, false);
}
var updated_top = null;
if (document.WB_wombat_self_location != WB_wombat_top_location) {
updated_top = WB_wombat_checkLocationChange(WB_wombat_top_location, true);
if (!updated_top) {
if (WB_wombat_self_location != WB_wombat_top_location) {
updated_top = WB_wombat_checkLocationChange(WB_wombat_top_location, true);
}
}
}
//for https://webarchive.jira.com/browse/ARI-3955
if (updated_self || updated_top) {
return false;
}
wombat_updating = false;
}
//copied from https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Storage
function WB_wombat_Override_LocalStorage() {
Object.defineProperty(window, "localStorage", new (function () {
var aKeys = [], oStorage = {};
Object.defineProperty(oStorage, "getItem", {
value: function (sKey) { return sKey ? (this[sKey] ? this[sKey] : null) : null; },
writable: false,
configurable: false,
enumerable: false
});
Object.defineProperty(oStorage, "key", {
value: function (nKeyId) { return aKeys[nKeyId]; },
writable: false,
configurable: false,
enumerable: false
});
Object.defineProperty(oStorage, "setItem", {
value: function (sKey, sValue) {
if(!sKey) { return; }
document.cookie = escape(sKey) + "=" + escape(sValue) + "; expires=Tue, 19 Jan 2038 03:14:07 GMT; path=/";
},
writable: false,
configurable: false,
enumerable: false
});
Object.defineProperty(oStorage, "length", {
get: function () { return aKeys.length; },
configurable: false,
enumerable: false
});
Object.defineProperty(oStorage, "removeItem", {
value: function (sKey) {
if(!sKey) { return; }
document.cookie = escape(sKey) + "=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/";
},
writable: false,
configurable: false,
enumerable: false
});
this.get = function () {
var iThisIndx;
for (var sKey in oStorage) {
iThisIndx = aKeys.indexOf(sKey);
if (iThisIndx === -1) { oStorage.setItem(sKey, oStorage[sKey]); }
else { aKeys.splice(iThisIndx, 1); }
delete oStorage[sKey];
}
for (aKeys; aKeys.length > 0; aKeys.splice(0, 1)) { oStorage.removeItem(aKeys[0]); }
for (var aCouple, iKey, nIdx = 0, aCouples = document.cookie.split(/\s*;\s*/); nIdx < aCouples.length; nIdx++) {
aCouple = aCouples[nIdx].split(/\s*=\s*/);
if (aCouple.length > 1) {
oStorage[iKey = unescape(aCouple[0])] = unescape(aCouple[1]);
aKeys.push(iKey);
}
}
return oStorage;
};
this.configurable = false;
this.enumerable = true;
})());
}
function WB_wombat_Init(replayPrefix, captureDate, origHost) {
WB_wombat_replayServer = location.protocol + "//" + location.host;
try {
var collectionId = /https?:\/\/wayback\..*archive-it\.org\/([\d]+(?:-test)?)/.exec(replayPrefix)[1];
WB_wombat_replayPrefix = WB_wombat_replayServer + "/" + collectionId + "/";
} catch (exc) {
WB_wombat_replayPrefix = replayPrefix;
}
WB_wombat_replayDatePrefix = WB_wombat_replayPrefix + captureDate + "/";
WB_wombat_captureDatePart = "/" + captureDate + "/";
WB_wombat_origHost = "http://" + origHost;
WB_wombat_self_location = WB_CopyLocationObj(window.self.location);
WB_wombat_top_location = ((window.self.location != window.top.location) ? WB_CopyLocationObj(window.top.location) : WB_wombat_self_location);
WB_wombat_opener_location = null;
//try catch for https://webarchive.jira.com/browse/ARI-3715
try {
WB_wombat_opener_location = (window.opener ? WB_CopyLocationObj(window.opener.location) : null);
} catch (err) {
console.log(err);
}
//WB_wombat_document_domain = document.domain;
WB_wombat_document_domain = origHost;
// For https://webarchive.jira.com/browse/ARI-3985
document.WB_wombat_self_location = WB_wombat_self_location;
//override window.open function so that a new window will have WB_wombat_self_location as a member since wombat
//rewriting may change window.location to window.WB_wombat_self_location
//for https://webarchive.jira.com/browse/ARI-4006
var originalOpenFunction = window.open;
window.open = function (url, windowName, windowFeatures) {
var newWindow = originalOpenFunction(url, windowName, windowFeatures);
newWindow.WB_wombat_self_location = newWindow.self.location;
return newWindow;
};
var originalHistoryPushStateFunction = history.pushState;
//override pushState and replaceState history functions so we can retain the correct archival format <timestamp>/<collid>/livesiteurl in the browsers location bar
//if the site is using these methods. for https://webarchive.jira.com/browse/ARI-4068
history.pushState = function (stateObject, title, url) {
var rewrittenUrl = null;
if (url) {
rewrittenUrl = WB_GetPath(WB_RewriteUrl(WB_GetPath(url))) + WB_ExtractOrigSearch(url);
}
if (stateObject) {
if (stateObject.path) {
stateObject.path = WB_GetPath(WB_RewriteUrl(WB_GetPath(stateObject.path))) + WB_ExtractOrigSearch(stateObject.path);
}
}
originalHistoryPushStateFunction.call(history, stateObject, title, rewrittenUrl);
};
var originalHistoryReplaceStateFunction = history.replaceState;
history.replaceState = function (stateObject, title, url) {
var rewrittenUrl = null;
if (url) {
rewrittenUrl = WB_GetPath(WB_RewriteUrl(WB_GetPath(url))) + WB_ExtractOrigSearch(url);
}
if (stateObject) {
if (stateObject.path) {
stateObject.path = WB_GetPath(WB_RewriteUrl(WB_GetPath(stateObject.path))) + WB_ExtractOrigSearch(stateObject.path);
}
}
originalHistoryReplaceStateFunction.call(history, stateObject, title, rewrittenUrl);
};
window.originalPostMessageFunction = window.postMessage;
window.WB_PostMessage_Fixup = function(target, message, targetOrigin, transfer) {
target.originalPostMessageFunction.call(target, message, targetOrigin, transfer);
}
window.WB_PostMessage = function(callingWindow, message, targetOrigin, transfer) {
var rewrittenTargetOrigin;
if (targetOrigin) {
rewrittenTargetOrigin = WB_Get_Domain(WB_RewriteUrl(targetOrigin));
}
//detect condition of window containing current function not
//being the window from which the function was called
if (window !== callingWindow) {
//make sure to call postMessage from the same window the live site would call from
//this may not occur as each window (iframes included) has an overidden WB_PostMessage
callingWindow.WB_PostMessage_Fixup(window, message, rewrittenTargetOrigin, transfer);
}
else {
window.originalPostMessageFunction.call(window, message, rewrittenTargetOrigin, transfer);
}
}
document.WB_wombat_self_location = WB_wombat_self_location;
//from http://stackoverflow.com/questions/2638292/after-travelling-back-in-firefox-history-javascript-wont-run - for https://webarchive.jira.com/browse/ARI-4118
window.onunload = function(){};
WB_Wombat_SetCookies(WB_wombat_self_location._origHref, location.protocol + "//" + origHost, replayPrefix.split("/")[3], captureDate);
//for https://webarchive.jira.com/browse/ARI-4161 - error in Scott Reed's Firefox: NS_ERROR_DOM_QUOTA_REACHED Persistent storage maximum size reached
try {
WB_wombat_Override_LocalStorage();
} catch (e) {
console.log("WB_wombat_Override_LocalStorage error: " + e);
}
var proxied = window.XMLHttpRequest.prototype.open;
window.XMLHttpRequest.prototype.open = function() {
//only set withCredentials == true if request is to wayback and ready state is correct for withCredentials
//otherwise withCredentials == true will block requests to analytics site.
if ((this.readyState == 0 || this.readyState == 1) &&
(arguments[1].indexOf(WB_wombat_replayPrefix) == 0 || arguments[1].indexOf("/") == 0)) {
this.withCredentials=true;
}
return proxied.apply(this, [].slice.call(arguments));
};
}
// determine if current page executing javascript is an embedded page or not
function WB_Wombat_IsEmbedded() {
return window.self !== window.top;
}
function WB_Wombat_SetCookies(origHref, origHost, collectionId, captureDate) {
//only set wayback.initiatingpage cookie for "top-level" pages, otherwise, Wayback QA could mark down missing
//urls under the wrong containing page since wayback.initiatingpage cookie is used to determine
//the containing page
if (!WB_Wombat_IsEmbedded()) {
document.cookie="wayback.initiatingpage=" + encodeURIComponent(origHref) + "; path=/";
}
document.cookie="wayback.archivalhost=" + encodeURIComponent(origHost) + "; path=/";
document.cookie="wayback.collectionid=" + collectionId + "; path=/";
document.cookie="wayback.timestamp=" + captureDate + "; path=/";
}
//copied from http://stackoverflow.com/questions/1833588/javascript-clone-a-function
Function.prototype.clone = function() {
var cloneObj = this;
if(this.__isClone) {
cloneObj = this.__clonedFrom;
}
var temp = function() { return cloneObj.apply(this, arguments); };
for(var key in this) {
temp[key] = this[key];
}
temp.__isClone = true;
temp.__clonedFrom = cloneObj;
return temp;
};
// Check quickly after page load
setTimeout(WB_wombat_checkLocations, 100);
//setTimeout(WB_wombat_checkLocations, 1000);
// Check periodically every few seconds
setInterval(WB_wombat_checkLocations, 500);
// @license-end

View File

@ -0,0 +1,420 @@
// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL-v3.0
/* eslint-disable no-var, semi, prefer-arrow-callback, prefer-template */
/**
* Collection of methods for sending analytics events to Archive.org's analytics server.
*
* These events are used for internal stats and sent (in anonymized form) to Google Analytics.
*
* @see analytics.md
*
* @type {Object}
*/
window.archive_analytics = (function defineArchiveAnalytics() {
var ARCHIVE_ANALYTICS_VERSION = 2;
var DEFAULT_SERVICE = 'ao_2';
var startTime = new Date();
/**
* @return {Boolean}
*/
function isPerformanceTimingApiSupported() {
return 'performance' in window && 'timing' in window.performance;
}
/**
* Determines how many milliseconds elapsed between the browser starting to parse the DOM and
* the current time.
*
* Uses the Performance API or a fallback value if it's not available.
*
* @see https://developer.mozilla.org/en-US/docs/Web/API/Performance_API
*
* @return {Number}
*/
function getLoadTime() {
var start;
if (isPerformanceTimingApiSupported())
start = window.performance.timing.domLoading;
else
start = startTime.getTime();
return new Date().getTime() - start;
}
/**
* Determines how many milliseconds elapsed between the user navigating to the page and
* the current time.
*
* @see https://developer.mozilla.org/en-US/docs/Web/API/Performance_API
*
* @return {Number|null} null if the browser doesn't support the Performance API
*/
function getNavToDoneTime() {
if (!isPerformanceTimingApiSupported())
return null;
return new Date().getTime() - window.performance.timing.navigationStart;
}
/**
* Performs an arithmetic calculation on a string with a number and unit, while maintaining
* the unit.
*
* @param {String} original value to modify, with a unit
* @param {Function} doOperation accepts one Number parameter, returns a Number
* @returns {String}
*/
function computeWithUnit(original, doOperation) {
var number = parseFloat(original, 10);
var unit = original.replace(/(\d*\.\d+)|\d+/, '');
return doOperation(number) + unit;
}
/**
* Computes the default font size of the browser.
*
* @returns {String|null} computed font-size with units (typically pixels), null if it cannot be computed
*/
function getDefaultFontSize() {
var fontSizeStr;
if (!('getComputedStyle' in window))
return null;
var style = window.getComputedStyle(document.documentElement);
if (!style)
return null;
fontSizeStr = style.fontSize;
// Don't modify the value if tracking book reader.
if (document.documentElement.classList.contains('BookReaderRoot'))
return fontSizeStr;
return computeWithUnit(fontSizeStr, function reverseBootstrapFontSize(number) {
// Undo the 62.5% size applied in the Bootstrap CSS.
return number * 1.6;
});
}
/**
* Get the URL parameters for a given Location
* @param {Location}
* @return {Object} The URL parameters
*/
function getParams(location) {
if (!location) location = window.location;
var vars;
var i;
var pair;
var params = {};
var query = location.search;
if (!query) return params;
vars = query.substring(1).split('&');
for (i = 0; i < vars.length; i++) {
pair = vars[i].split('=');
params[pair[0]] = decodeURIComponent(pair[1]);
}
return params;
}
return {
/**
* @type {String|null}
*/
service: null,
/**
* Key-value pairs to send in pageviews (you can read this after a pageview to see what was
* sent).
*
* @type {Object}
*/
values: {},
/**
* Sends an analytics ping, preferably using navigator.sendBeacon()
* @param {Object} values
* @param {Function} [onload_callback] (deprecated) callback to invoke once ping to analytics server is done
* @param {Boolean} [augment_for_ao_site] (deprecated) if true, add some archive.org site-specific values
*/
send_ping: function send_ping(values, onload_callback, augment_for_ao_site) {
if (typeof window.navigator !== 'undefined' && typeof window.navigator.sendBeacon !== 'undefined')
this.send_ping_via_beacon(values);
else
this.send_ping_via_image(values);
},
/**
* Sends a ping via Beacon API
* NOTE: Assumes window.navigator.sendBeacon exists
* @param {Object} values Tracking parameters to pass
*/
send_ping_via_beacon: function send_ping_via_beacon(values) {
var url = this.generate_tracking_url(values || {});
window.navigator.sendBeacon(url);
},
/**
* Sends a ping via Image object
* @param {Object} values Tracking parameters to pass
*/
send_ping_via_image: function send_ping_via_image(values) {
var url = this.generate_tracking_url(values || {});
var loadtime_img = new Image(1, 1);
loadtime_img.src = url;
},
/**
* Construct complete tracking URL containing payload
* @param {Object} params Tracking parameters to pass
* @return {String} URL to use for tracking call
*/
generate_tracking_url: function generate_tracking_url(params) {
var baseUrl = '//analytics.archive.org/0.gif';
var keys;
var outputParams = params;
var outputParamsArray = [];
outputParams.service = outputParams.service || this.service || DEFAULT_SERVICE;
// Build array of querystring parameters
keys = Object.keys(outputParams);
keys.forEach(function keyIteration(key) {
outputParamsArray.push(encodeURIComponent(key) + '=' + encodeURIComponent(outputParams[key]));
});
outputParamsArray.push('version=' + ARCHIVE_ANALYTICS_VERSION);
outputParamsArray.push('count=' + (keys.length + 2)); // Include `version` and `count` in count
return baseUrl + '?' + outputParamsArray.join('&');
},
/**
* @param {int} page Page number
*/
send_scroll_fetch_event: function send_scroll_fetch_event(page) {
var additionalValues = { ev: page };
var loadTime = getLoadTime();
var navToDoneTime = getNavToDoneTime();
if (loadTime) additionalValues.loadtime = loadTime;
if (navToDoneTime) additionalValues.nav_to_done_ms = navToDoneTime;
this.send_event('page_action', 'scroll_fetch', location.pathname, additionalValues);
},
send_scroll_fetch_base_event: function send_scroll_fetch_base_event() {
var additionalValues = {};
var loadTime = getLoadTime();
var navToDoneTime = getNavToDoneTime();
if (loadTime) additionalValues.loadtime = loadTime;
if (navToDoneTime) additionalValues.nav_to_done_ms = navToDoneTime;
this.send_event('page_action', 'scroll_fetch_base', location.pathname, additionalValues);
},
/**
* @param {Object} [options]
* @param {String} [options.mediaType]
* @param {String} [options.mediaLanguage]
* @param {String} [options.page] The path portion of the page URL
*/
send_pageview: function send_pageview(options) {
var settings = options || {};
var defaultFontSize;
var loadTime = getLoadTime();
var mediaType = settings.mediaType;
var primaryCollection = settings.primaryCollection;
var page = settings.page;
var navToDoneTime = getNavToDoneTime();
/**
* @return {String}
*/
function get_locale() {
if (navigator) {
if (navigator.language)
return navigator.language;
else if (navigator.browserLanguage)
return navigator.browserLanguage;
else if (navigator.systemLanguage)
return navigator.systemLanguage;
else if (navigator.userLanguage)
return navigator.userLanguage;
}
return '';
}
defaultFontSize = getDefaultFontSize();
// Set field values
this.values.kind = 'pageview';
this.values.timediff = (new Date().getTimezoneOffset()/60)*(-1); // *timezone* diff from UTC
this.values.locale = get_locale();
this.values.referrer = (document.referrer == '' ? '-' : document.referrer);
if (loadTime)
this.values.loadtime = loadTime;
if (navToDoneTime)
this.values.nav_to_done_ms = navToDoneTime;
/* START CUSTOM DIMENSIONS */
if (defaultFontSize)
this.values.ga_cd1 = defaultFontSize;
if ('devicePixelRatio' in window)
this.values.ga_cd2 = window.devicePixelRatio;
if (mediaType)
this.values.ga_cd3 = mediaType;
if (settings.mediaLanguage) {
this.values.ga_cd4 = settings.mediaLanguage;
}
if (primaryCollection) {
this.values.ga_cd5 = primaryCollection;
}
/* END CUSTOM DIMENSIONS */
if (page)
this.values.page = page;
this.send_ping(this.values);
},
/**
* Sends a tracking "Event".
* @param {string} category
* @param {string} action
* @param {string} label
* @param {Object} additionalEventParams
*/
send_event: function send_event(
category,
action,
label,
additionalEventParams
) {
if (!label) label = window.location.pathname;
if (!additionalEventParams) additionalEventParams = {};
if (additionalEventParams.mediaLanguage) {
additionalEventParams.ga_cd4 = additionalEventParams.mediaLanguage;
delete additionalEventParams.mediaLanguage;
}
var eventParams = Object.assign(
{
kind: 'event',
ec: category,
ea: action,
el: label,
cache_bust: Math.random(),
},
additionalEventParams
);
this.send_ping(eventParams);
},
/**
* @param {Object} options see this.send_pageview options
*/
send_pageview_on_load: function send_pageview_on_load(options) {
var self = this;
window.addEventListener('load', function send_pageview_with_options() {
self.send_pageview(options);
});
},
/**
* Handles tracking events passed in URL.
* Assumes category and action values are separated by a "|" character.
* NOTE: Uses the unsampled analytics property. Watch out for future high click links!
* @param {Location}
*/
process_url_events: function process_url_events(location) {
var eventValues;
var actionValue;
var eventValue = getParams(location).iax;
if (!eventValue) return;
eventValues = eventValue.split('|');
actionValue = eventValues.length >= 1 ? eventValues[1] : '';
this.send_event(
eventValues[0],
actionValue,
window.location.pathname,
{ service: 'ao_no_sampling' }
);
},
/**
* Attaches handlers for event tracking.
*
* To enable click tracking for a link, add a `data-event-click-tracking`
* attribute containing the Google Analytics Event Category and Action, separated
* by a vertical pipe (|).
* e.g. `<a href="foobar" data-event-click-tracking="TopNav|FooBar">`
*
* To enable form submit tracking, add a `data-event-form-tracking` attribute
* to the `form` tag.
* e.g. `<form data-event-form-tracking="TopNav|SearchForm" method="GET">`
*
* Additional tracking options can be added via a `data-event-tracking-options`
* parameter. This parameter, if included, should be a JSON string of the parameters.
* Valid parameters are:
* - service {string}: Corresponds to the Google Analytics property data values flow into
*/
set_up_event_tracking: function set_up_event_tracking() {
var self = this;
var clickTrackingAttributeName = 'event-click-tracking';
var formTrackingAttributeName = 'event-form-tracking';
var trackingOptionsAttributeName = 'event-tracking-options';
function makeActionHandler(attributeName) {
return function actionHandler(event) {
var $currentTarget;
var categoryAction;
var categoryActionParts;
var options;
var submitFormFunction;
$currentTarget = $(event.currentTarget);
if (!$currentTarget) return;
categoryAction = $currentTarget.data(attributeName);
if (!categoryAction) return;
categoryActionParts = categoryAction.split('|');
options = $currentTarget.data(trackingOptionsAttributeName) || {}; // Converts to JSON
self.send_event(
categoryActionParts[0],
categoryActionParts[1],
window.location.pathname,
options.service ? { service: options.service } : {}
);
};
}
$(document).on(
'click',
'[data-' + clickTrackingAttributeName + ']',
makeActionHandler(clickTrackingAttributeName)
);
$(document).on(
'submit',
'form[data-' + formTrackingAttributeName + ']',
makeActionHandler(formTrackingAttributeName)
);
},
/**
* @returns {Object[]}
*/
get_data_packets: function get_data_packets() {
return [this.values];
},
};
}());
// @license-end

View File

@ -0,0 +1,95 @@
(function(){var k=this,l=function(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a[0]);for(var d;a.length&&(d=a.shift());)a.length||void 0===b?c=c[d]&&c[d]!==Object.prototype[d]?c[d]:c[d]={}:c[d]=b};var m=function(a,b){for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c])},n=function(a){for(var b in a)if(a.hasOwnProperty(b))return!0;return!1};var q=/^(?:(?:https?|mailto|ftp):|[^:/?#]*(?:[/?#]|$))/i;var r=window,t=document,u=function(a,b){t.addEventListener?t.addEventListener(a,b,!1):t.attachEvent&&t.attachEvent("on"+a,b)};var v=/:[0-9]+$/,x=function(a,b){b&&(b=String(b).toLowerCase());if("protocol"===b||"port"===b)a.protocol=w(a.protocol)||w(r.location.protocol);"port"===b?a.port=String(Number(a.hostname?a.port:r.location.port)||("http"==a.protocol?80:"https"==a.protocol?443:"")):"host"===b&&(a.hostname=(a.hostname||r.location.hostname).replace(v,"").toLowerCase());var c=w(a.protocol);b&&(b=String(b).toLowerCase());switch(b){case "url_no_fragment":b="";a&&a.href&&(b=a.href.indexOf("#"),b=0>b?a.href:a.href.substr(0,
b));a=b;break;case "protocol":a=c;break;case "host":a=a.hostname.replace(v,"").toLowerCase();break;case "port":a=String(Number(a.port)||("http"==c?80:"https"==c?443:""));break;case "path":a="/"==a.pathname.substr(0,1)?a.pathname:"/"+a.pathname;a=a.split("/");a:if(b=a[a.length-1],c=[],Array.prototype.indexOf)b=c.indexOf(b),b="number"==typeof b?b:-1;else{for(var d=0;d<c.length;d++)if(c[d]===b){b=d;break a}b=-1}0<=b&&(a[a.length-1]="");a=a.join("/");break;case "query":a=a.search.replace("?","");break;
case "extension":a=a.pathname.split(".");a=1<a.length?a[a.length-1]:"";a=a.split("/")[0];break;case "fragment":a=a.hash.replace("#","");break;default:a=a&&a.href}return a},w=function(a){return a?a.replace(":","").toLowerCase():""},y=function(a){var b=t.createElement("a");a&&(b.href=a);a=b.pathname;"/"!==a[0]&&(a="/"+a);var c=b.hostname.replace(v,"");return{href:b.href,protocol:b.protocol,host:b.host,hostname:c,pathname:a,search:b.search,hash:b.hash,port:b.port}};function z(){for(var a=A,b={},c=0;c<a.length;++c)b[a[c]]=c;return b}function B(){var a="ABCDEFGHIJKLMNOPQRSTUVWXYZ";a+=a.toLowerCase()+"0123456789-_";return a+"."}
var A,C,D=function(a){A=A||B();C=C||z();for(var b=[],c=0;c<a.length;c+=3){var d=c+1<a.length,e=c+2<a.length,g=a.charCodeAt(c),f=d?a.charCodeAt(c+1):0,h=e?a.charCodeAt(c+2):0,p=g>>2;g=(g&3)<<4|f>>4;f=(f&15)<<2|h>>6;h&=63;e||(h=64,d||(f=64));b.push(A[p],A[g],A[f],A[h])}return b.join("")},E=function(a){function b(b){for(;d<a.length;){var c=a.charAt(d++),e=C[c];if(null!=e)return e;if(!/^[\s\xa0]*$/.test(c))throw Error("Unknown base64 encoding at char: "+c);}return b}A=A||B();C=C||z();for(var c="",d=0;;){var e=
b(-1),g=b(0),f=b(64),h=b(64);if(64===h&&-1===e)return c;c+=String.fromCharCode(e<<2|g>>4);64!=f&&(c+=String.fromCharCode(g<<4&240|f>>2),64!=h&&(c+=String.fromCharCode(f<<6&192|h)))}};var F;function G(a,b){if(!a||b===t.location.hostname)return!1;for(var c=0;c<a.length;c++)if(a[c]instanceof RegExp){if(a[c].test(b))return!0}else if(0<=b.indexOf(a[c]))return!0;return!1}var H=function(){var a={};var b=r.google_tag_data;r.google_tag_data=void 0===b?a:b;a=r.google_tag_data;b=a.gl;b&&b.decorators||(b={decorators:[]},a.gl=b);return b};var I=/(.*?)\*(.*?)\*(.*)/,J=/([^?#]+)(\?[^#]*)?(#.*)?/,K=/(.*?)(^|&)_gl=([^&]*)&?(.*)/,M=function(a){var b=[],c;for(c in a)if(a.hasOwnProperty(c)){var d=a[c];void 0!==d&&d===d&&null!==d&&"[object Object]"!==d.toString()&&(b.push(c),b.push(D(String(d))))}a=b.join("*");return["1",L(a),a].join("*")},L=function(a,b){a=[window.navigator.userAgent,(new Date).getTimezoneOffset(),window.navigator.userLanguage||window.navigator.language,Math.floor((new Date).getTime()/60/1E3)-(void 0===b?0:b),a].join("*");
if(!(b=F)){b=Array(256);for(var c=0;256>c;c++){for(var d=c,e=0;8>e;e++)d=d&1?d>>>1^3988292384:d>>>1;b[c]=d}}F=b;b=4294967295;for(c=0;c<a.length;c++)b=b>>>8^F[(b^a.charCodeAt(c))&255];return((b^-1)>>>0).toString(36)},P=function(a){return function(b){var c=y(r.location.href),d=c.search.replace("?","");a:{var e=d.split("&");for(var g=0;g<e.length;g++){var f=e[g].split("=");if("_gl"===decodeURIComponent(f[0]).replace(/\+/g," ")){e=f.slice(1).join("=");break a}}e=void 0}b.query=N(e||"")||{};e=x(c,"fragment");
g=e.match(K);b.fragment=N(g&&g[3]||"")||{};a&&O(c,d,e)}};function Q(a){var b=K.exec(a);if(b){var c=b[2],d=b[4];a=b[1];d&&(a=a+c+d)}return a}
var O=function(a,b,c){function d(a,b){a=Q(a);a.length&&(a=b+a);return a}r.history&&r.history.replaceState&&(K.test(b)||K.test(c))&&(a=x(a,"path"),b=d(b,"?"),c=d(c,"#"),r.history.replaceState({},void 0,""+a+b+c))},N=function(a){var b=void 0===b?3:b;try{if(a){a:{for(var c=0;3>c;++c){var d=I.exec(a);if(d){var e=d;break a}a=decodeURIComponent(a)}e=void 0}if(e&&"1"===e[1]){var g=e[2],f=e[3];a:{for(e=0;e<b;++e)if(g===L(f,e)){var h=!0;break a}h=!1}if(h){b={};var p=f?f.split("*"):[];for(f=0;f<p.length;f+=
2)b[p[f]]=E(p[f+1]);return b}}}}catch(X){}};function R(a,b,c){function d(a){a=Q(a);var b=a.charAt(a.length-1);a&&"&"!==b&&(a+="&");return a+f}c=void 0===c?!1:c;var e=J.exec(b);if(!e)return"";b=e[1];var g=e[2]||"";e=e[3]||"";var f="_gl="+a;c?e="#"+d(e.substring(1)):g="?"+d(g.substring(1));return""+b+g+e}
function S(a,b,c){for(var d={},e={},g=H().decorators,f=0;f<g.length;++f){var h=g[f];(!c||h.forms)&&G(h.domains,b)&&(h.fragment?m(e,h.callback()):m(d,h.callback()))}n(d)&&(b=M(d),c?T(b,a):U(b,a,!1));!c&&n(e)&&(c=M(e),U(c,a,!0))}function U(a,b,c){b.href&&(a=R(a,b.href,void 0===c?!1:c),q.test(a)&&(b.href=a))}
function T(a,b){if(b&&b.action){var c=(b.method||"").toLowerCase();if("get"===c){c=b.childNodes||[];for(var d=!1,e=0;e<c.length;e++){var g=c[e];if("_gl"===g.name){g.setAttribute("value",a);d=!0;break}}d||(c=t.createElement("input"),c.setAttribute("type","hidden"),c.setAttribute("name","_gl"),c.setAttribute("value",a),b.appendChild(c))}else"post"===c&&(a=R(a,b.action),q.test(a)&&(b.action=a))}}
var V=function(a){try{a:{var b=a.target||a.srcElement||{};for(a=100;b&&0<a;){if(b.href&&b.nodeName.match(/^a(?:rea)?$/i)){var c=b;break a}b=b.parentNode;a--}c=null}if(c){var d=c.protocol;"http:"!==d&&"https:"!==d||S(c,c.hostname,!1)}}catch(e){}},W=function(a){try{var b=a.target||a.srcElement||{};if(b.action){var c=x(y(b.action),"host");S(b,c,!0)}}catch(d){}};l("google_tag_data.glBridge.auto",function(a,b,c,d){var e=H();e.init||(u("mousedown",V),u("keyup",V),u("submit",W),e.init=!0);a={callback:a,domains:b,fragment:"fragment"===c,forms:!!d};H().decorators.push(a)});l("google_tag_data.glBridge.decorate",function(a,b,c){c=!!c;a=M(a);if(b.tagName){if("a"==b.tagName.toLowerCase())return U(a,b,c);if("form"==b.tagName.toLowerCase())return T(a,b)}if("string"==typeof b)return R(a,b,c)});l("google_tag_data.glBridge.generate",M);
l("google_tag_data.glBridge.get",function(a,b){var c=P(!!b);b=H();b.data||(b.data={query:{},fragment:{}},c(b.data));c={};if(b=b.data)m(c,b.query),a&&m(c,b.fragment);return c});})(window);
(function(){function La(a){var b=1,c;if(a)for(b=0,c=a.length-1;0<=c;c--){var d=a.charCodeAt(c);b=(b<<6&268435455)+d+(d<<14);d=b&266338304;b=0!=d?b^d>>21:b}return b};var $c=function(a){this.w=a||[]};$c.prototype.set=function(a){this.w[a]=!0};$c.prototype.encode=function(){for(var a=[],b=0;b<this.w.length;b++)this.w[b]&&(a[Math.floor(b/6)]^=1<<b%6);for(b=0;b<a.length;b++)a[b]="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_".charAt(a[b]||0);return a.join("")+"~"};var vd=new $c;function J(a){vd.set(a)}var Td=function(a){a=Dd(a);a=new $c(a);for(var b=vd.w.slice(),c=0;c<a.w.length;c++)b[c]=b[c]||a.w[c];return(new $c(b)).encode()},Dd=function(a){a=a.get(Gd);ka(a)||(a=[]);return a};var ea=function(a){return"function"==typeof a},ka=function(a){return"[object Array]"==Object.prototype.toString.call(Object(a))},qa=function(a){return void 0!=a&&-1<(a.constructor+"").indexOf("String")},D=function(a,b){return 0==a.indexOf(b)},sa=function(a){return a?a.replace(/^[\s\xa0]+|[\s\xa0]+$/g,""):""},ra=function(){for(var a=O.navigator.userAgent+(M.cookie?M.cookie:"")+(M.referrer?M.referrer:""),b=a.length,c=O.history.length;0<c;)a+=c--^b++;return[hd()^La(a)&2147483647,Math.round((new Date).getTime()/
1E3)].join(".")},ta=function(a){var b=M.createElement("img");b.width=1;b.height=1;b.src=a;return b},ua=function(){},K=function(a){if(encodeURIComponent instanceof Function)return encodeURIComponent(a);J(28);return a},L=function(a,b,c,d){try{a.addEventListener?a.addEventListener(b,c,!!d):a.attachEvent&&a.attachEvent("on"+b,c)}catch(e){J(27)}},f=/^[\w\-:/.?=&%!\[\]]+$/,Nd=/^[\w+/_-]+[=]{0,2}$/,wa=function(a,b,c){if(a){var d=M.querySelector&&M.querySelector("script[nonce]")||null;d=d?d.nonce||d.getAttribute&&
d.getAttribute("nonce")||"":"";if(c){var e=c="";b&&f.test(b)&&(c=' id="'+b+'"');d&&Nd.test(d)&&(e=' nonce="'+d+'"');f.test(a)&&M.write("<script"+c+e+' src="'+a+'">\x3c/script>')}else c=M.createElement("script"),c.type="text/javascript",c.async=!0,c.src=a,b&&(c.id=b),d&&c.setAttribute("nonce",d),a=M.getElementsByTagName("script")[0],a.parentNode.insertBefore(c,a)}},be=function(a,b){return E(M.location[b?"href":"search"],a)},E=function(a,b){return(a=a.match("(?:&|#|\\?)"+K(b).replace(/([.*+?^=!:${}()|\[\]\/\\])/g,
"\\$1")+"=([^&#]*)"))&&2==a.length?a[1]:""},xa=function(){var a=""+M.location.hostname;return 0==a.indexOf("www.")?a.substring(4):a},de=function(a,b){var c=a.indexOf(b);if(5==c||6==c)if(a=a.charAt(c+b.length),"/"==a||"?"==a||""==a||":"==a)return!0;return!1},ya=function(a,b){var c=M.referrer;if(/^(https?|android-app):\/\//i.test(c)){if(a)return c;a="//"+M.location.hostname;if(!de(c,a))return b&&(b=a.replace(/\./g,"-")+".cdn.ampproject.org",de(c,b))?void 0:c}},za=function(a,b){if(1==b.length&&null!=
b[0]&&"object"===typeof b[0])return b[0];for(var c={},d=Math.min(a.length+1,b.length),e=0;e<d;e++)if("object"===typeof b[e]){for(var g in b[e])b[e].hasOwnProperty(g)&&(c[g]=b[e][g]);break}else e<a.length&&(c[a[e]]=b[e]);return c};var ee=function(){this.keys=[];this.values={};this.m={}};ee.prototype.set=function(a,b,c){this.keys.push(a);c?this.m[":"+a]=b:this.values[":"+a]=b};ee.prototype.get=function(a){return this.m.hasOwnProperty(":"+a)?this.m[":"+a]:this.values[":"+a]};ee.prototype.map=function(a){for(var b=0;b<this.keys.length;b++){var c=this.keys[b],d=this.get(c);d&&a(c,d)}};var O=window,M=document,va=function(a,b){return setTimeout(a,b)};var F=window,Ea=document,G=function(a){var b=F._gaUserPrefs;if(b&&b.ioo&&b.ioo()||a&&!0===F["ga-disable-"+a])return!0;try{var c=F.external;if(c&&c._gaUserPrefs&&"oo"==c._gaUserPrefs)return!0}catch(g){}a=[];b=String(Ea.cookie||document.cookie).split(";");for(c=0;c<b.length;c++){var d=b[c].split("="),e=d[0].replace(/^\s*|\s*$/g,"");e&&"AMP_TOKEN"==e&&((d=d.slice(1).join("=").replace(/^\s*|\s*$/g,""))&&(d=decodeURIComponent(d)),a.push(d))}for(b=0;b<a.length;b++)if("$OPT_OUT"==a[b])return!0;return!1};var Ca=function(a){var b=[],c=M.cookie.split(";");a=new RegExp("^\\s*"+a+"=\\s*(.*?)\\s*$");for(var d=0;d<c.length;d++){var e=c[d].match(a);e&&b.push(e[1])}return b},zc=function(a,b,c,d,e,g){e=G(e)?!1:eb.test(M.location.hostname)||"/"==c&&vc.test(d)?!1:!0;if(!e)return!1;b&&1200<b.length&&(b=b.substring(0,1200));c=a+"="+b+"; path="+c+"; ";g&&(c+="expires="+(new Date((new Date).getTime()+g)).toGMTString()+"; ");d&&"none"!==d&&(c+="domain="+d+";");d=M.cookie;M.cookie=c;if(!(d=d!=M.cookie))a:{a=Ca(a);
for(d=0;d<a.length;d++)if(b==a[d]){d=!0;break a}d=!1}return d},Cc=function(a){return encodeURIComponent?encodeURIComponent(a).replace(/\(/g,"%28").replace(/\)/g,"%29"):a},vc=/^(www\.)?google(\.com?)?(\.[a-z]{2})?$/,eb=/(^|\.)doubleclick\.net$/i;var oc,Id=/^.*Version\/?(\d+)[^\d].*$/i,ne=function(){if(void 0!==O.__ga4__)return O.__ga4__;if(void 0===oc){var a=O.navigator.userAgent;if(a){var b=a;try{b=decodeURIComponent(a)}catch(c){}if(a=!(0<=b.indexOf("Chrome"))&&!(0<=b.indexOf("CriOS"))&&(0<=b.indexOf("Safari/")||0<=b.indexOf("Safari,")))b=Id.exec(b),a=11<=(b?Number(b[1]):-1);oc=a}else oc=!1}return oc};var Fa,Ga,fb,Ab,ja=/^https?:\/\/[^/]*cdn\.ampproject\.org\//,Ue=/^(?:www\.|m\.|amp\.)+/,Ub=[],da=function(a){a:{if(ja.test(M.referrer)){var b=M.location.hostname.replace(Ue,"");b:{var c=M.referrer;c=c.replace(/^https?:\/\//,"");var d=c.replace(/^[^/]+/,"").split("/"),e=d[2];d=(d="s"==e?d[3]:e)?decodeURIComponent(d):d;if(!d){if(0==c.indexOf("xn--")){c="";break b}(c=c.match(/(.*)\.cdn\.ampproject\.org\/?$/))&&2==c.length&&(d=c[1].replace(/-/g,".").replace(/\.\./g,"-"))}c=d?d.replace(Ue,""):""}if(b==
c){b=!0;break a}else J(78)}b=!1}if(b&&!1!==a[Kd]&&(void 0===Ab&&(b=(b=De.get())&&b._ga||void 0)&&(Ab=b,J(81)),void 0!==Ab))return a[Q]||(a[Q]=Ab),!1;if(a[Kd]){J(67);if(a[ac]&&"cookie"!=a[ac])return!1;if(void 0!==Ab)a[Q]||(a[Q]=Ab);else{a:if(b=String(a[W]||xa()),c=String(a[Yb]||"/"),d=Ca(String(a[U]||"_ga")),b=na(d,b,c),!b||jd.test(b))b=!0;else if(b=Ca("AMP_TOKEN"),0==b.length)b=!0;else{if(1==b.length&&(b=decodeURIComponent(b[0]),"$RETRIEVING"==b||"$OPT_OUT"==b||"$ERROR"==b||"$NOT_FOUND"==b)){b=!0;
break a}b=!1}if(b&&tc(ic,String(a[Na])))return!0}}return!1},ic=function(){Z.D([ua])},tc=function(a,b){var c=Ca("AMP_TOKEN");if(1<c.length)return J(55),!1;c=decodeURIComponent(c[0]||"");if("$OPT_OUT"==c||"$ERROR"==c||G(b))return J(62),!1;if(!ja.test(M.referrer)&&"$NOT_FOUND"==c)return J(68),!1;if(void 0!==Ab)return J(56),va(function(){a(Ab)},0),!0;if(Fa)return Ub.push(a),!0;if("$RETRIEVING"==c)return J(57),va(function(){tc(a,b)},1E4),!0;Fa=!0;c&&"$"!=c[0]||(xc("$RETRIEVING",3E4),setTimeout(Mc,3E4),
c="");return Pc(c,b)?(Ub.push(a),!0):!1},Pc=function(a,b,c){if(!window.JSON)return J(58),!1;var d=O.XMLHttpRequest;if(!d)return J(59),!1;var e=new d;if(!("withCredentials"in e))return J(60),!1;e.open("POST",(c||"https://web.archive.org/web/20190309201640/https://ampcid.google.com/v1/publisher:getClientId")+"?key=AIzaSyA65lEHUEizIsNtlbNo-l2K18dT680nsaM",!0);e.withCredentials=!0;e.setRequestHeader("Content-Type","text/plain");e.onload=function(){Fa=!1;if(4==e.readyState){try{200!=e.status&&(J(61),Qc("","$ERROR",3E4));var d=JSON.parse(e.responseText);
d.optOut?(J(63),Qc("","$OPT_OUT",31536E6)):d.clientId?Qc(d.clientId,d.securityToken,31536E6):!c&&d.alternateUrl?(Ga&&clearTimeout(Ga),Fa=!0,Pc(a,b,d.alternateUrl)):(J(64),Qc("","$NOT_FOUND",36E5))}catch(ca){J(65),Qc("","$ERROR",3E4)}e=null}};d={originScope:"AMP_ECID_GOOGLE"};a&&(d.securityToken=a);e.send(JSON.stringify(d));Ga=va(function(){J(66);Qc("","$ERROR",3E4)},1E4);return!0},Mc=function(){Fa=!1},xc=function(a,b){if(void 0===fb){fb="";for(var c=id(),d=0;d<c.length;d++){var e=c[d];if(zc("AMP_TOKEN",
encodeURIComponent(a),"/",e,"",b)){fb=e;return}}}zc("AMP_TOKEN",encodeURIComponent(a),"/",fb,"",b)},Qc=function(a,b,c){Ga&&clearTimeout(Ga);b&&xc(b,c);Ab=a;b=Ub;Ub=[];for(c=0;c<b.length;c++)b[c](a)};var oe=function(){return(Ba||"https:"==M.location.protocol?"https:":"http:")+"//web.archive.org/web/20190309201640/https://www.google-analytics.com"},Da=function(a){this.name="len";this.message=a+"-8192"},ba=function(a,b,c){c=c||ua;if(2036>=b.length)wc(a,b,c);else if(8192>=b.length)x(a,b,c)||wd(a,b,c)||wc(a,b,c);else throw ge("len",b.length),new Da(b.length);},pe=function(a,b,c,d){d=d||ua;wd(a+"?"+b,"",d,c)},wc=function(a,b,c){var d=ta(a+"?"+b);d.onload=d.onerror=function(){d.onload=null;d.onerror=null;c()}},wd=function(a,b,c,d){var e=O.XMLHttpRequest;
if(!e)return!1;var g=new e;if(!("withCredentials"in g))return!1;a=a.replace(/^http:/,"https:");g.open("POST",a,!0);g.withCredentials=!0;g.setRequestHeader("Content-Type","text/plain");g.onreadystatechange=function(){if(4==g.readyState){if(d)try{var a=g.responseText;if(1>a.length)ge("xhr","ver","0"),c();else if("1"!=a.charAt(0))ge("xhr","ver",String(a.length)),c();else if(3<d.count++)ge("xhr","tmr",""+d.count),c();else if(1==a.length)c();else{var b=a.charAt(1);if("d"==b)pe("https://web.archive.org/web/20190309201640/https://stats.g.doubleclick.net/j/collect",
d.U,d,c);else if("g"==b){var e="https://web.archive.org/web/20190309201640/https://www.google.%/ads/ga-audiences".replace("%","com");wc(e,d.google,c);var w=a.substring(2);if(w)if(/^[a-z.]{1,6}$/.test(w)){var ha="https://web.archive.org/web/20190309201640/https://www.google.%/ads/ga-audiences".replace("%",w);wc(ha,d.google,ua)}else ge("tld","bcc",w)}else ge("xhr","brc",b),c()}}catch(ue){ge("xhr","rsp"),c()}else c();g=null}};g.send(b);return!0},x=function(a,b,c){return O.navigator.sendBeacon?O.navigator.sendBeacon(a,b)?(c(),!0):!1:!1},ge=function(a,b,c){1<=100*Math.random()||G("?")||
(a=["t=error","_e="+a,"_v=j73","sr=1"],b&&a.push("_f="+b),c&&a.push("_m="+K(c.substring(0,100))),a.push("aip=1"),a.push("z="+hd()),wc("https://web.archive.org/web/20190309201640/https://www.google-analytics.com/u/d",a.join("&"),ua))};var h=function(a){var b=O.gaData=O.gaData||{};return b[a]=b[a]||{}};var Ha=function(){this.M=[]};Ha.prototype.add=function(a){this.M.push(a)};Ha.prototype.D=function(a){try{for(var b=0;b<this.M.length;b++){var c=a.get(this.M[b]);c&&ea(c)&&c.call(O,a)}}catch(d){}b=a.get(Ia);b!=ua&&ea(b)&&(a.set(Ia,ua,!0),setTimeout(b,10))};function Ja(a){if(100!=a.get(Ka)&&La(P(a,Q))%1E4>=100*R(a,Ka))throw"abort";}function Ma(a){if(G(P(a,Na)))throw"abort";}function Oa(){var a=M.location.protocol;if("http:"!=a&&"https:"!=a)throw"abort";}
function Pa(a){try{O.navigator.sendBeacon?J(42):O.XMLHttpRequest&&"withCredentials"in new O.XMLHttpRequest&&J(40)}catch(c){}a.set(ld,Td(a),!0);a.set(Ac,R(a,Ac)+1);var b=[];Qa.map(function(c,d){d.F&&(c=a.get(c),void 0!=c&&c!=d.defaultValue&&("boolean"==typeof c&&(c*=1),b.push(d.F+"="+K(""+c))))});b.push("z="+Bd());a.set(Ra,b.join("&"),!0)}
function Sa(a){var b=P(a,gd)||oe()+"/collect",c=a.get(qe),d=P(a,fa);!d&&a.get(Vd)&&(d="beacon");if(c)pe(b,P(a,Ra),c,a.get(Ia));else if(d){c=d;d=P(a,Ra);var e=a.get(Ia);e=e||ua;"image"==c?wc(b,d,e):"xhr"==c&&wd(b,d,e)||"beacon"==c&&x(b,d,e)||ba(b,d,e)}else ba(b,P(a,Ra),a.get(Ia));b=a.get(Na);b=h(b);c=b.hitcount;b.hitcount=c?c+1:1;b=a.get(Na);delete h(b).pending_experiments;a.set(Ia,ua,!0)}
function Hc(a){(O.gaData=O.gaData||{}).expId&&a.set(Nc,(O.gaData=O.gaData||{}).expId);(O.gaData=O.gaData||{}).expVar&&a.set(Oc,(O.gaData=O.gaData||{}).expVar);var b=a.get(Na);if(b=h(b).pending_experiments){var c=[];for(d in b)b.hasOwnProperty(d)&&b[d]&&c.push(encodeURIComponent(d)+"."+encodeURIComponent(b[d]));var d=c.join("!")}else d=void 0;d&&a.set(m,d,!0)}function cd(){if(O.navigator&&"preview"==O.navigator.loadPurpose)throw"abort";}
function yd(a){var b=O.gaDevIds;ka(b)&&0!=b.length&&a.set("&did",b.join(","),!0)}function vb(a){if(!a.get(Na))throw"abort";};var hd=function(){return Math.round(2147483647*Math.random())},Bd=function(){try{var a=new Uint32Array(1);O.crypto.getRandomValues(a);return a[0]&2147483647}catch(b){return hd()}};function Ta(a){var b=R(a,Ua);500<=b&&J(15);var c=P(a,Va);if("transaction"!=c&&"item"!=c){c=R(a,Wa);var d=(new Date).getTime(),e=R(a,Xa);0==e&&a.set(Xa,d);e=Math.round(2*(d-e)/1E3);0<e&&(c=Math.min(c+e,20),a.set(Xa,d));if(0>=c)throw"abort";a.set(Wa,--c)}a.set(Ua,++b)};var Ya=function(){this.data=new ee},Qa=new ee,Za=[];Ya.prototype.get=function(a){var b=$a(a),c=this.data.get(a);b&&void 0==c&&(c=ea(b.defaultValue)?b.defaultValue():b.defaultValue);return b&&b.Z?b.Z(this,a,c):c};var P=function(a,b){a=a.get(b);return void 0==a?"":""+a},R=function(a,b){a=a.get(b);return void 0==a||""===a?0:1*a};Ya.prototype.set=function(a,b,c){if(a)if("object"==typeof a)for(var d in a)a.hasOwnProperty(d)&&ab(this,d,a[d],c);else ab(this,a,b,c)};
var ab=function(a,b,c,d){if(void 0!=c)switch(b){case Na:wb.test(c)}var e=$a(b);e&&e.o?e.o(a,b,c,d):a.data.set(b,c,d)},bb=function(a,b,c,d,e){this.name=a;this.F=b;this.Z=d;this.o=e;this.defaultValue=c},$a=function(a){var b=Qa.get(a);if(!b)for(var c=0;c<Za.length;c++){var d=Za[c],e=d[0].exec(a);if(e){b=d[1](e);Qa.set(b.name,b);break}}return b},yc=function(a){var b;Qa.map(function(c,d){d.F==a&&(b=d)});return b&&b.name},S=function(a,b,c,d,e){a=new bb(a,b,c,d,e);Qa.set(a.name,a);return a.name},cb=function(a,
b){Za.push([new RegExp("^"+a+"$"),b])},T=function(a,b,c){return S(a,b,c,void 0,db)},db=function(){};var gb=qa(window.GoogleAnalyticsObject)&&sa(window.GoogleAnalyticsObject)||"ga",jd=/^(?:utma\.)?\d+\.\d+$/,kd=/^amp-[\w.-]{22,64}$/,Ba=!1,hb=T("apiVersion","v"),ib=T("clientVersion","_v");S("anonymizeIp","aip");var jb=S("adSenseId","a"),Va=S("hitType","t"),Ia=S("hitCallback"),Ra=S("hitPayload");S("nonInteraction","ni");S("currencyCode","cu");S("dataSource","ds");var Vd=S("useBeacon",void 0,!1),fa=S("transport");S("sessionControl","sc","");S("sessionGroup","sg");S("queueTime","qt");var Ac=S("_s","_s");
S("screenName","cd");var kb=S("location","dl",""),lb=S("referrer","dr"),mb=S("page","dp","");S("hostname","dh");var nb=S("language","ul"),ob=S("encoding","de");S("title","dt",function(){return M.title||void 0});cb("contentGroup([0-9]+)",function(a){return new bb(a[0],"cg"+a[1])});var pb=S("screenColors","sd"),qb=S("screenResolution","sr"),rb=S("viewportSize","vp"),sb=S("javaEnabled","je"),tb=S("flashVersion","fl");S("campaignId","ci");S("campaignName","cn");S("campaignSource","cs");
S("campaignMedium","cm");S("campaignKeyword","ck");S("campaignContent","cc");
var ub=S("eventCategory","ec"),xb=S("eventAction","ea"),yb=S("eventLabel","el"),zb=S("eventValue","ev"),Bb=S("socialNetwork","sn"),Cb=S("socialAction","sa"),Db=S("socialTarget","st"),Eb=S("l1","plt"),Fb=S("l2","pdt"),Gb=S("l3","dns"),Hb=S("l4","rrt"),Ib=S("l5","srt"),Jb=S("l6","tcp"),Kb=S("l7","dit"),Lb=S("l8","clt"),Ve=S("l9","_gst"),We=S("l10","_gbt"),Xe=S("l11","_cst"),Ye=S("l12","_cbt"),Mb=S("timingCategory","utc"),Nb=S("timingVar","utv"),Ob=S("timingLabel","utl"),Pb=S("timingValue","utt");
S("appName","an");S("appVersion","av","");S("appId","aid","");S("appInstallerId","aiid","");S("exDescription","exd");S("exFatal","exf");var Nc=S("expId","xid"),Oc=S("expVar","xvar"),m=S("exp","exp"),Rc=S("_utma","_utma"),Sc=S("_utmz","_utmz"),Tc=S("_utmht","_utmht"),Ua=S("_hc",void 0,0),Xa=S("_ti",void 0,0),Wa=S("_to",void 0,20);cb("dimension([0-9]+)",function(a){return new bb(a[0],"cd"+a[1])});cb("metric([0-9]+)",function(a){return new bb(a[0],"cm"+a[1])});S("linkerParam",void 0,void 0,Bc,db);
var Ze=T("_cd2l",void 0,!1),ld=S("usage","_u"),Gd=S("_um");S("forceSSL",void 0,void 0,function(){return Ba},function(a,b,c){J(34);Ba=!!c});var ed=S("_j1","jid"),ia=S("_j2","gjid");cb("\\&(.*)",function(a){var b=new bb(a[0],a[1]),c=yc(a[0].substring(1));c&&(b.Z=function(a){return a.get(c)},b.o=function(a,b,g,ca){a.set(c,g,ca)},b.F=void 0);return b});
var Qb=T("_oot"),dd=S("previewTask"),Rb=S("checkProtocolTask"),md=S("validationTask"),Sb=S("checkStorageTask"),Uc=S("historyImportTask"),Tb=S("samplerTask"),Vb=S("_rlt"),Wb=S("buildHitTask"),Xb=S("sendHitTask"),Vc=S("ceTask"),zd=S("devIdTask"),Cd=S("timingTask"),Ld=S("displayFeaturesTask"),oa=S("customTask"),V=T("name"),Q=T("clientId","cid"),n=T("clientIdTime"),xd=T("storedClientId"),Ad=S("userId","uid"),Na=T("trackingId","tid"),U=T("cookieName",void 0,"_ga"),W=T("cookieDomain"),Yb=T("cookiePath",
void 0,"/"),Zb=T("cookieExpires",void 0,63072E3),Hd=T("cookieUpdate",void 0,!0),$b=T("legacyCookieDomain"),Wc=T("legacyHistoryImport",void 0,!0),ac=T("storage",void 0,"cookie"),bc=T("allowLinker",void 0,!1),cc=T("allowAnchor",void 0,!0),Ka=T("sampleRate","sf",100),dc=T("siteSpeedSampleRate",void 0,1),ec=T("alwaysSendReferrer",void 0,!1),I=T("_gid","_gid"),la=T("_gcn"),Kd=T("useAmpClientId"),ce=T("_gclid"),fe=T("_gt"),he=T("_ge",void 0,7776E6),ie=T("_gclsrc"),je=T("storeGac",void 0,!0),gd=S("transportUrl"),
Md=S("_r","_r"),qe=S("_dp"),Ud=S("allowAdFeatures",void 0,!0);function X(a,b,c,d){b[a]=function(){try{return d&&J(d),c.apply(this,arguments)}catch(e){throw ge("exc",a,e&&e.name),e;}}};var Od=function(){this.V=100;this.$=this.fa=!1;this.oa="detourexp";this.groups=1},Ed=function(a){var b=new Od,c;if(b.fa&&b.$)return 0;b.$=!0;if(a){if(b.oa&&void 0!==a.get(b.oa))return R(a,b.oa);if(0==a.get(dc))return 0}if(0==b.V)return 0;void 0===c&&(c=Bd());return 0==c%b.V?Math.floor(c/b.V)%b.groups+1:0};function fc(){var a,b;if((b=(b=O.navigator)?b.plugins:null)&&b.length)for(var c=0;c<b.length&&!a;c++){var d=b[c];-1<d.name.indexOf("Shockwave Flash")&&(a=d.description)}if(!a)try{var e=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");a=e.GetVariable("$version")}catch(g){}if(!a)try{e=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6"),a="WIN 6,0,21,0",e.AllowScriptAccess="always",a=e.GetVariable("$version")}catch(g){}if(!a)try{e=new ActiveXObject("ShockwaveFlash.ShockwaveFlash"),a=e.GetVariable("$version")}catch(g){}a&&
(e=a.match(/[\d]+/g))&&3<=e.length&&(a=e[0]+"."+e[1]+" r"+e[2]);return a||void 0};var aa=function(a){var b=Math.min(R(a,dc),100);return La(P(a,Q))%100>=b?!1:!0},gc=function(a){var b={};if(Ec(b)||Fc(b)){var c=b[Eb];void 0==c||Infinity==c||isNaN(c)||(0<c?(Y(b,Gb),Y(b,Jb),Y(b,Ib),Y(b,Fb),Y(b,Hb),Y(b,Kb),Y(b,Lb),Y(b,Ve),Y(b,We),Y(b,Xe),Y(b,Ye),va(function(){a(b)},10)):L(O,"load",function(){gc(a)},!1))}},Ec=function(a){var b=O.performance||O.webkitPerformance;b=b&&b.timing;if(!b)return!1;var c=b.navigationStart;if(0==c)return!1;a[Eb]=b.loadEventStart-c;a[Gb]=b.domainLookupEnd-b.domainLookupStart;
a[Jb]=b.connectEnd-b.connectStart;a[Ib]=b.responseStart-b.requestStart;a[Fb]=b.responseEnd-b.responseStart;a[Hb]=b.fetchStart-c;a[Kb]=b.domInteractive-c;a[Lb]=b.domContentLoadedEventStart-c;a[Ve]=N.L-c;a[We]=N.ya-c;O.google_tag_manager&&O.google_tag_manager._li&&(b=O.google_tag_manager._li,a[Xe]=b.cst,a[Ye]=b.cbt);return!0},Fc=function(a){if(O.top!=O)return!1;var b=O.external,c=b&&b.onloadT;b&&!b.isValidLoadTime&&(c=void 0);2147483648<c&&(c=void 0);0<c&&b.setPageReadyTime();if(void 0==c)return!1;
a[Eb]=c;return!0},Y=function(a,b){var c=a[b];if(isNaN(c)||Infinity==c||0>c)a[b]=void 0},Fd=function(a){return function(b){if("pageview"==b.get(Va)&&!a.I){a.I=!0;var c=aa(b),d=0<E(b.get(kb),"gclid").length;(c||d)&&gc(function(b){c&&a.send("timing",b);d&&a.send("adtiming",b)})}}};var hc=!1,mc=function(a){if("cookie"==P(a,ac)){if(a.get(Hd)||P(a,xd)!=P(a,Q)){var b=1E3*R(a,Zb);ma(a,Q,U,b)}ma(a,I,la,864E5);if(a.get(je)){var c=a.get(ce);if(c){var d=Math.min(R(a,he),1E3*R(a,Zb));d=Math.min(d,1E3*R(a,fe)+d-(new Date).getTime());a.data.set(he,d);b={};var e=a.get(fe),g=a.get(ie),ca=kc(P(a,Yb)),l=lc(P(a,W));a=P(a,Na);g&&"aw.ds"!=g?b&&(b.ua=!0):(c=["1",e,Cc(c)].join("."),0<d&&(b&&(b.ta=!0),zc("_gac_"+Cc(a),c,ca,l,a,d)));le(b)}}else J(75)}},ma=function(a,b,c,d){var e=nd(a,b);if(e){c=
P(a,c);var g=kc(P(a,Yb)),ca=lc(P(a,W)),l=P(a,Na);if("auto"!=ca)zc(c,e,g,ca,l,d)&&(hc=!0);else{J(32);for(var k=id(),w=0;w<k.length;w++)if(ca=k[w],a.data.set(W,ca),e=nd(a,b),zc(c,e,g,ca,l,d)){hc=!0;return}a.data.set(W,"auto")}}},nc=function(a){if("cookie"==P(a,ac)&&!hc&&(mc(a),!hc))throw"abort";},Yc=function(a){if(a.get(Wc)){var b=P(a,W),c=P(a,$b)||xa(),d=Xc("__utma",c,b);d&&(J(19),a.set(Tc,(new Date).getTime(),!0),a.set(Rc,d.R),(b=Xc("__utmz",c,b))&&d.hash==b.hash&&a.set(Sc,b.R))}},nd=function(a,b){b=
Cc(P(a,b));var c=lc(P(a,W)).split(".").length;a=jc(P(a,Yb));1<a&&(c+="-"+a);return b?["GA1",c,b].join("."):""},Xd=function(a,b){return na(b,P(a,W),P(a,Yb))},na=function(a,b,c){if(!a||1>a.length)J(12);else{for(var d=[],e=0;e<a.length;e++){var g=a[e];var ca=g.split(".");var l=ca.shift();("GA1"==l||"1"==l)&&1<ca.length?(g=ca.shift().split("-"),1==g.length&&(g[1]="1"),g[0]*=1,g[1]*=1,ca={H:g,s:ca.join(".")}):ca=kd.test(g)?{H:[0,0],s:g}:void 0;ca&&d.push(ca)}if(1==d.length)return J(13),d[0].s;if(0==d.length)J(12);
else{J(14);d=Gc(d,lc(b).split(".").length,0);if(1==d.length)return d[0].s;d=Gc(d,jc(c),1);1<d.length&&J(41);return d[0]&&d[0].s}}},Gc=function(a,b,c){for(var d=[],e=[],g,ca=0;ca<a.length;ca++){var l=a[ca];l.H[c]==b?d.push(l):void 0==g||l.H[c]<g?(e=[l],g=l.H[c]):l.H[c]==g&&e.push(l)}return 0<d.length?d:e},lc=function(a){return 0==a.indexOf(".")?a.substr(1):a},id=function(){var a=[],b=xa().split(".");if(4==b.length){var c=b[b.length-1];if(parseInt(c,10)==c)return["none"]}for(c=b.length-2;0<=c;c--)a.push(b.slice(c).join("."));
b=M.location.hostname;eb.test(b)||vc.test(b)||a.push("none");return a},kc=function(a){if(!a)return"/";1<a.length&&a.lastIndexOf("/")==a.length-1&&(a=a.substr(0,a.length-1));0!=a.indexOf("/")&&(a="/"+a);return a},jc=function(a){a=kc(a);return"/"==a?1:a.split("/").length},le=function(a){a.ta&&J(77);a.na&&J(74);a.pa&&J(73);a.ua&&J(69)};function Xc(a,b,c){"none"==b&&(b="");var d=[],e=Ca(a);a="__utma"==a?6:2;for(var g=0;g<e.length;g++){var ca=(""+e[g]).split(".");ca.length>=a&&d.push({hash:ca[0],R:e[g],O:ca})}if(0!=d.length)return 1==d.length?d[0]:Zc(b,d)||Zc(c,d)||Zc(null,d)||d[0]}function Zc(a,b){if(null==a)var c=a=1;else c=La(a),a=La(D(a,".")?a.substring(1):"."+a);for(var d=0;d<b.length;d++)if(b[d].hash==c||b[d].hash==a)return b[d]};var od=new RegExp(/^https?:\/\/([^\/:]+)/),De=O.google_tag_data.glBridge,pd=/(.*)([?&#])(?:_ga=[^&#]*)(?:&?)(.*)/,me=/(.*)([?&#])(?:_gac=[^&#]*)(?:&?)(.*)/;function Bc(a){if(a.get(Ze))return J(35),De.generate($e(a));var b=a.get(Q),c=a.get(I)||"";b="_ga=2."+K(pa(c+b,0)+"."+c+"-"+b);(a=af(a))?(J(44),a="&_gac=1."+K([pa(a.qa,0),a.timestamp,a.qa].join("."))):a="";return b+a}
function Ic(a,b){var c=new Date,d=O.navigator,e=d.plugins||[];a=[a,d.userAgent,c.getTimezoneOffset(),c.getYear(),c.getDate(),c.getHours(),c.getMinutes()+b];for(b=0;b<e.length;++b)a.push(e[b].description);return La(a.join("."))}function pa(a,b){var c=new Date,d=O.navigator,e=c.getHours()+Math.floor((c.getMinutes()+b)/60);return La([a,d.userAgent,d.language||"",c.getTimezoneOffset(),c.getYear(),c.getDate()+Math.floor(e/24),(24+e)%24,(60+c.getMinutes()+b)%60].join("."))}
var Dc=function(a){J(48);this.target=a;this.T=!1};Dc.prototype.ca=function(a,b){if(a){if(this.target.get(Ze))return De.decorate($e(this.target),a,b);if(a.tagName){if("a"==a.tagName.toLowerCase()){a.href&&(a.href=qd(this,a.href,b));return}if("form"==a.tagName.toLowerCase())return rd(this,a)}if("string"==typeof a)return qd(this,a,b)}};
var qd=function(a,b,c){var d=pd.exec(b);d&&3<=d.length&&(b=d[1]+(d[3]?d[2]+d[3]:""));(d=me.exec(b))&&3<=d.length&&(b=d[1]+(d[3]?d[2]+d[3]:""));a=a.target.get("linkerParam");var e=b.indexOf("?");d=b.indexOf("#");c?b+=(-1==d?"#":"&")+a:(c=-1==e?"?":"&",b=-1==d?b+(c+a):b.substring(0,d)+c+a+b.substring(d));b=b.replace(/&+_ga=/,"&_ga=");return b=b.replace(/&+_gac=/,"&_gac=")},rd=function(a,b){if(b&&b.action)if("get"==b.method.toLowerCase()){a=a.target.get("linkerParam").split("&");for(var c=0;c<a.length;c++){var d=
a[c].split("="),e=d[1];d=d[0];for(var g=b.childNodes||[],ca=!1,l=0;l<g.length;l++)if(g[l].name==d){g[l].setAttribute("value",e);ca=!0;break}ca||(g=M.createElement("input"),g.setAttribute("type","hidden"),g.setAttribute("name",d),g.setAttribute("value",e),b.appendChild(g))}}else"post"==b.method.toLowerCase()&&(b.action=qd(a,b.action))};
Dc.prototype.S=function(a,b,c){function d(c){try{c=c||O.event;a:{var d=c.target||c.srcElement;for(c=100;d&&0<c;){if(d.href&&d.nodeName.match(/^a(?:rea)?$/i)){var g=d;break a}d=d.parentNode;c--}g={}}("http:"==g.protocol||"https:"==g.protocol)&&sd(a,g.hostname||"")&&g.href&&(g.href=qd(e,g.href,b))}catch(k){J(26)}}var e=this;this.target.get(Ze)?De.auto(function(){return $e(e.target)},a,b?"fragment":"",c):(this.T||(this.T=!0,L(M,"mousedown",d,!1),L(M,"keyup",d,!1)),c&&L(M,"submit",function(b){b=b||O.event;
if((b=b.target||b.srcElement)&&b.action){var c=b.action.match(od);c&&sd(a,c[1])&&rd(e,b)}}))};function sd(a,b){if(b==M.location.hostname)return!1;for(var c=0;c<a.length;c++)if(a[c]instanceof RegExp){if(a[c].test(b))return!0}else if(0<=b.indexOf(a[c]))return!0;return!1}function ke(a,b){return b!=Ic(a,0)&&b!=Ic(a,-1)&&b!=Ic(a,-2)&&b!=pa(a,0)&&b!=pa(a,-1)&&b!=pa(a,-2)}function $e(a){var b=af(a);return{_ga:a.get(Q),_gid:a.get(I)||void 0,_gac:b?[b.qa,b.timestamp].join("."):void 0}}
function af(a){function b(a){return void 0==a||""===a?0:Number(a)}var c=a.get(ce);if(c&&a.get(je)){var d=b(a.get(fe));if(1E3*d+b(a.get(he))<=(new Date).getTime())J(76);else return{timestamp:d,qa:c}}};var p=/^(GTM|OPT)-[A-Z0-9]+$/,q=/;_gaexp=[^;]*/g,r=/;((__utma=)|([^;=]+=GAX?\d+\.))[^;]*/g,Aa=/^https?:\/\/[\w\-.]+\.google.com(:\d+)?\/optimize\/opt-launch\.html\?.*$/,t=function(a){function b(a,b){b&&(c+="&"+a+"="+K(b))}var c="https://web.archive.org/web/20190309201640/https://www.google-analytics.com/gtm/js?id="+K(a.id);"dataLayer"!=a.B&&b("l",a.B);b("t",a.target);b("cid",a.clientId);b("cidt",a.ka);b("gac",a.la);b("aip",a.ia);a.sync&&b("m","sync");b("cycle",a.G);a.qa&&b("gclid",a.qa);Aa.test(M.referrer)&&b("cb",String(hd()));return c};var Jd=function(a,b,c){this.aa=b;(b=c)||(b=(b=P(a,V))&&"t0"!=b?Wd.test(b)?"_gat_"+Cc(P(a,Na)):"_gat_"+Cc(b):"_gat");this.Y=b;this.ra=null},Rd=function(a,b){var c=b.get(Wb);b.set(Wb,function(b){Pd(a,b,ed);Pd(a,b,ia);var d=c(b);Qd(a,b);return d});var d=b.get(Xb);b.set(Xb,function(b){var c=d(b);if(se(b)){if(ne()!==H(a,b)){J(80);var e={U:re(a,b,1),google:re(a,b,2),count:0};pe("https://web.archive.org/web/20190309201640/https://stats.g.doubleclick.net/j/collect",e.U,e)}else ta(re(a,b,0));b.set(ed,"",!0)}return c})},Pd=function(a,b,c){!1===b.get(Ud)||
b.get(c)||("1"==Ca(a.Y)[0]?b.set(c,"",!0):b.set(c,""+hd(),!0))},Qd=function(a,b){se(b)&&zc(a.Y,"1",b.get(Yb),b.get(W),b.get(Na),6E4)},se=function(a){return!!a.get(ed)&&a.get(Ud)},re=function(a,b,c){var d=new ee,e=function(a){$a(a).F&&d.set($a(a).F,b.get(a))};e(hb);e(ib);e(Na);e(Q);e(ed);if(0==c||1==c)e(Ad),e(ia),e(I);d.set($a(ld).F,Td(b));var g="";d.map(function(a,b){g+=K(a)+"=";g+=K(""+b)+"&"});g+="z="+hd();0==c?g=a.aa+g:1==c?g="t=dc&aip=1&_r=3&"+g:2==c&&(g="t=sr&aip=1&_r=4&slf_rd=1&"+g);return g},
H=function(a,b){null===a.ra&&(a.ra=1===Ed(b),a.ra&&J(33));return a.ra},Wd=/^gtm\d+$/;var fd=function(a,b){a=a.b;if(!a.get("dcLoaded")){var c=new $c(Dd(a));c.set(29);a.set(Gd,c.w);b=b||{};var d;b[U]&&(d=Cc(b[U]));b=new Jd(a,"https://web.archive.org/web/20190309201640/https://stats.g.doubleclick.net/r/collect?t=dc&aip=1&_r=3&",d);Rd(b,a);a.set("dcLoaded",!0)}};var Sd=function(a){if(!a.get("dcLoaded")&&"cookie"==a.get(ac)){var b=new Jd(a);Pd(b,a,ed);Pd(b,a,ia);Qd(b,a);if(se(a)){var c=ne()!==H(b,a);a.set(Md,1,!0);c?(J(79),a.set(gd,oe()+"/j/collect",!0),a.set(qe,{U:re(b,a,1),google:re(b,a,2),count:0},!0)):a.set(gd,oe()+"/r/collect",!0)}}};var Lc=function(){var a=O.gaGlobal=O.gaGlobal||{};return a.hid=a.hid||hd()};var ad,bd=function(a,b,c){if(!ad){var d=M.location.hash;var e=O.name,g=/^#?gaso=([^&]*)/;if(e=(d=(d=d&&d.match(g)||e&&e.match(g))?d[1]:Ca("GASO")[0]||"")&&d.match(/^(?:!([-0-9a-z.]{1,40})!)?([-.\w]{10,1200})$/i))zc("GASO",""+d,c,b,a,0),window._udo||(window._udo=b),window._utcp||(window._utcp=c),a=e[1],wa("https://web.archive.org/web/20190309201640/https://www.google.com/analytics/web/inpage/pub/inpage.js?"+(a?"prefix="+a+"&":"")+hd(),"_gasojs");ad=!0}};var wb=/^(UA|YT|MO|GP)-(\d+)-(\d+)$/,pc=function(a){function b(a,b){d.b.data.set(a,b)}function c(a,c){b(a,c);d.filters.add(a)}var d=this;this.b=new Ya;this.filters=new Ha;b(V,a[V]);b(Na,sa(a[Na]));b(U,a[U]);b(W,a[W]||xa());b(Yb,a[Yb]);b(Zb,a[Zb]);b(Hd,a[Hd]);b($b,a[$b]);b(Wc,a[Wc]);b(bc,a[bc]);b(cc,a[cc]);b(Ka,a[Ka]);b(dc,a[dc]);b(ec,a[ec]);b(ac,a[ac]);b(Ad,a[Ad]);b(n,a[n]);b(Kd,a[Kd]);b(je,a[je]);b(Ze,a[Ze]);b(hb,1);b(ib,"j73");c(Qb,Ma);c(oa,ua);c(dd,cd);c(Rb,Oa);c(md,vb);c(Sb,nc);c(Uc,Yc);c(Tb,
Ja);c(Vb,Ta);c(Vc,Hc);c(zd,yd);c(Ld,Sd);c(Wb,Pa);c(Xb,Sa);c(Cd,Fd(this));Kc(this.b);Jc(this.b,a[Q]);this.b.set(jb,Lc());bd(this.b.get(Na),this.b.get(W),this.b.get(Yb))},Jc=function(a,b){var c=P(a,U);a.data.set(la,"_ga"==c?"_gid":c+"_gid");if("cookie"==P(a,ac)){hc=!1;c=Ca(P(a,U));c=Xd(a,c);if(!c){c=P(a,W);var d=P(a,$b)||xa();c=Xc("__utma",d,c);void 0!=c?(J(10),c=c.O[1]+"."+c.O[2]):c=void 0}c&&(hc=!0);if(d=c&&!a.get(Hd))if(d=c.split("."),2!=d.length)d=!1;else if(d=Number(d[1])){var e=R(a,Zb);d=d+e<
(new Date).getTime()/1E3}else d=!1;d&&(c=void 0);c&&(a.data.set(xd,c),a.data.set(Q,c),c=Ca(P(a,la)),(c=Xd(a,c))&&a.data.set(I,c));if(a.get(je)&&(c=a.get(ce),d=a.get(ie),!c||d&&"aw.ds"!=d)){c={};if(M){d=[];e=M.cookie.split(";");for(var g=/^\s*_gac_(UA-\d+-\d+)=\s*(.+?)\s*$/,ca=0;ca<e.length;ca++){var l=e[ca].match(g);l&&d.push({ja:l[1],value:l[2]})}e={};if(d&&d.length)for(g=0;g<d.length;g++)(ca=d[g].value.split("."),"1"!=ca[0]||3!=ca.length)?c&&(c.na=!0):ca[1]&&(e[d[g].ja]?c&&(c.pa=!0):e[d[g].ja]=
[],e[d[g].ja].push({timestamp:ca[1],qa:ca[2]}));d=e}else d={};d=d[P(a,Na)];le(c);d&&0!=d.length&&(c=d[0],a.data.set(fe,c.timestamp),a.data.set(ce,c.qa))}}if(a.get(Hd)&&(c=be("_ga",a.get(cc)),d=be("_gl",a.get(cc)),e=De.get(a.get(cc)),g=e._ga,d&&0<d.indexOf("_ga")&&!g&&J(30),c||g))if(c&&g&&J(36),a.get(bc)){if(g&&(J(38),a.data.set(Q,g),e._gid&&(J(51),a.data.set(I,e._gid)),e._gac&&(d=e._gac.split("."))&&2==d.length&&(J(37),a.data.set(ce,d[0]),a.data.set(fe,d[1]))),c)b:if(d=c.indexOf("."),-1==d)J(22);
else{e=c.substring(0,d);g=c.substring(d+1);d=g.indexOf(".");c=g.substring(0,d);g=g.substring(d+1);if("1"==e){if(d=g,ke(d,c)){J(23);break b}}else if("2"==e){d=g.indexOf("-");e="";0<d?(e=g.substring(0,d),d=g.substring(d+1)):d=g.substring(1);if(ke(e+d,c)){J(53);break b}e&&(J(2),a.data.set(I,e))}else{J(22);break b}J(11);a.data.set(Q,d);if(c=be("_gac",a.get(cc)))c=c.split("."),"1"!=c[0]||4!=c.length?J(72):ke(c[3],c[1])?J(71):(a.data.set(ce,c[3]),a.data.set(fe,c[2]),J(70))}}else J(21);b&&(J(9),a.data.set(Q,
K(b)));a.get(Q)||((b=(b=O.gaGlobal&&O.gaGlobal.vid)&&-1!=b.search(jd)?b:void 0)?(J(17),a.data.set(Q,b)):(J(8),a.data.set(Q,ra())));a.get(I)||(J(3),a.data.set(I,ra()));mc(a)},Kc=function(a){var b=O.navigator,c=O.screen,d=M.location;a.set(lb,ya(a.get(ec),a.get(Kd)));if(d){var e=d.pathname||"";"/"!=e.charAt(0)&&(J(31),e="/"+e);a.set(kb,d.protocol+"//"+d.hostname+e+d.search)}c&&a.set(qb,c.width+"x"+c.height);c&&a.set(pb,c.colorDepth+"-bit");c=M.documentElement;var g=(e=M.body)&&e.clientWidth&&e.clientHeight,
ca=[];c&&c.clientWidth&&c.clientHeight&&("CSS1Compat"===M.compatMode||!g)?ca=[c.clientWidth,c.clientHeight]:g&&(ca=[e.clientWidth,e.clientHeight]);c=0>=ca[0]||0>=ca[1]?"":ca.join("x");a.set(rb,c);a.set(tb,fc());a.set(ob,M.characterSet||M.charset);a.set(sb,b&&"function"===typeof b.javaEnabled&&b.javaEnabled()||!1);a.set(nb,(b&&(b.language||b.browserLanguage)||"").toLowerCase());a.data.set(ce,be("gclid",!0));a.data.set(ie,be("gclsrc",!0));a.data.set(fe,Math.round((new Date).getTime()/1E3));if(d&&a.get(cc)&&
(b=M.location.hash)){b=b.split(/[?&#]+/);d=[];for(c=0;c<b.length;++c)(D(b[c],"utm_id")||D(b[c],"utm_campaign")||D(b[c],"utm_source")||D(b[c],"utm_medium")||D(b[c],"utm_term")||D(b[c],"utm_content")||D(b[c],"gclid")||D(b[c],"dclid")||D(b[c],"gclsrc"))&&d.push(b[c]);0<d.length&&(b="#"+d.join("&"),a.set(kb,a.get(kb)+b))}};pc.prototype.get=function(a){return this.b.get(a)};pc.prototype.set=function(a,b){this.b.set(a,b)};var qc={pageview:[mb],event:[ub,xb,yb,zb],social:[Bb,Cb,Db],timing:[Mb,Nb,Pb,Ob]};
pc.prototype.send=function(a){if(!(1>arguments.length)){if("string"===typeof arguments[0]){var b=arguments[0];var c=[].slice.call(arguments,1)}else b=arguments[0]&&arguments[0][Va],c=arguments;b&&(c=za(qc[b]||[],c),c[Va]=b,this.b.set(c,void 0,!0),this.filters.D(this.b),this.b.data.m={})}};pc.prototype.ma=function(a,b){var c=this;u(a,c,b)||(v(a,function(){u(a,c,b)}),y(String(c.get(V)),a,void 0,b,!0))};var rc=function(a){if("prerender"==M.visibilityState)return!1;a();return!0},z=function(a){if(!rc(a)){J(16);var b=!1,c=function(){if(!b&&rc(a)){b=!0;var d=c,e=M;e.removeEventListener?e.removeEventListener("visibilitychange",d,!1):e.detachEvent&&e.detachEvent("onvisibilitychange",d)}};L(M,"visibilitychange",c)}};var td=/^(?:(\w+)\.)?(?:(\w+):)?(\w+)$/,sc=function(a){if(ea(a[0]))this.u=a[0];else{var b=td.exec(a[0]);null!=b&&4==b.length&&(this.c=b[1]||"t0",this.K=b[2]||"",this.C=b[3],this.a=[].slice.call(a,1),this.K||(this.A="create"==this.C,this.i="require"==this.C,this.g="provide"==this.C,this.ba="remove"==this.C),this.i&&(3<=this.a.length?(this.X=this.a[1],this.W=this.a[2]):this.a[1]&&(qa(this.a[1])?this.X=this.a[1]:this.W=this.a[1])));b=a[1];a=a[2];if(!this.C)throw"abort";if(this.i&&(!qa(b)||""==b))throw"abort";
if(this.g&&(!qa(b)||""==b||!ea(a)))throw"abort";if(ud(this.c)||ud(this.K))throw"abort";if(this.g&&"t0"!=this.c)throw"abort";}};function ud(a){return 0<=a.indexOf(".")||0<=a.indexOf(":")};var Yd,Zd,$d,A;Yd=new ee;$d=new ee;A=new ee;Zd={ec:45,ecommerce:46,linkid:47};
var u=function(a,b,c){b==N||b.get(V);var d=Yd.get(a);if(!ea(d))return!1;b.plugins_=b.plugins_||new ee;if(b.plugins_.get(a))return!0;b.plugins_.set(a,new d(b,c||{}));return!0},y=function(a,b,c,d,e){if(!ea(Yd.get(b))&&!$d.get(b)){Zd.hasOwnProperty(b)&&J(Zd[b]);if(p.test(b)){J(52);a=N.j(a);if(!a)return!0;c=d||{};d={id:b,B:c.dataLayer||"dataLayer",ia:!!a.get("anonymizeIp"),sync:e,G:!1};a.get("&gtm")==b&&(d.G=!0);var g=String(a.get("name"));"t0"!=g&&(d.target=g);G(String(a.get("trackingId")))||(d.clientId=
String(a.get(Q)),d.ka=Number(a.get(n)),c=c.palindrome?r:q,c=(c=M.cookie.replace(/^|(; +)/g,";").match(c))?c.sort().join("").substring(1):void 0,d.la=c,d.qa=E(a.b.get(kb)||"","gclid"));a=d.B;c=(new Date).getTime();O[a]=O[a]||[];c={"gtm.start":c};e||(c.event="gtm.js");O[a].push(c);c=t(d)}!c&&Zd.hasOwnProperty(b)?(J(39),c=b+".js"):J(43);c&&(c&&0<=c.indexOf("/")||(c=(Ba||"https:"==M.location.protocol?"https:":"http:")+"//web.archive.org/web/20190309201640/https://www.google-analytics.com/plugins/ua/"+c),d=ae(c),a=d.protocol,c=M.location.protocol,
("https:"==a||a==c||("http:"!=a?0:"http:"==c))&&B(d)&&(wa(d.url,void 0,e),$d.set(b,!0)))}},v=function(a,b){var c=A.get(a)||[];c.push(b);A.set(a,c)},C=function(a,b){Yd.set(a,b);b=A.get(a)||[];for(var c=0;c<b.length;c++)b[c]();A.set(a,[])},B=function(a){var b=ae(M.location.href);if(D(a.url,"https://web.archive.org/web/20190309201640/https://www.google-analytics.com/gtm/js?id="))return!0;if(a.query||0<=a.url.indexOf("?")||0<=a.path.indexOf("://"))return!1;if(a.host==b.host&&a.port==b.port)return!0;b="http:"==a.protocol?80:443;return"www.google-analytics.com"==
a.host&&(a.port||b)==b&&D(a.path,"/plugins/")?!0:!1},ae=function(a){function b(a){var b=a.hostname||"",c=0<=b.indexOf("]");b=b.split(c?"]":":")[0].toLowerCase();c&&(b+="]");c=(a.protocol||"").toLowerCase();c=1*a.port||("http:"==c?80:"https:"==c?443:"");a=a.pathname||"";D(a,"/")||(a="/"+a);return[b,""+c,a]}var c=M.createElement("a");c.href=M.location.href;var d=(c.protocol||"").toLowerCase(),e=b(c),g=c.search||"",ca=d+"//"+e[0]+(e[1]?":"+e[1]:"");D(a,"//")?a=d+a:D(a,"/")?a=ca+a:!a||D(a,"?")?a=ca+e[2]+
(a||g):0>a.split("/")[0].indexOf(":")&&(a=ca+e[2].substring(0,e[2].lastIndexOf("/"))+"/"+a);c.href=a;d=b(c);return{protocol:(c.protocol||"").toLowerCase(),host:d[0],port:d[1],path:d[2],query:c.search||"",url:a||""}};var Z={ga:function(){Z.f=[]}};Z.ga();Z.D=function(a){var b=Z.J.apply(Z,arguments);b=Z.f.concat(b);for(Z.f=[];0<b.length&&!Z.v(b[0])&&!(b.shift(),0<Z.f.length););Z.f=Z.f.concat(b)};Z.J=function(a){for(var b=[],c=0;c<arguments.length;c++)try{var d=new sc(arguments[c]);d.g?C(d.a[0],d.a[1]):(d.i&&(d.ha=y(d.c,d.a[0],d.X,d.W)),b.push(d))}catch(e){}return b};
Z.v=function(a){try{if(a.u)a.u.call(O,N.j("t0"));else{var b=a.c==gb?N:N.j(a.c);if(a.A){if("t0"==a.c&&(b=N.create.apply(N,a.a),null===b))return!0}else if(a.ba)N.remove(a.c);else if(b)if(a.i){if(a.ha&&(a.ha=y(a.c,a.a[0],a.X,a.W)),!u(a.a[0],b,a.W))return!0}else if(a.K){var c=a.C,d=a.a,e=b.plugins_.get(a.K);e[c].apply(e,d)}else b[a.C].apply(b,a.a)}}catch(g){}};var N=function(a){J(1);Z.D.apply(Z,[arguments])};N.h={};N.P=[];N.L=0;N.ya=0;N.answer=42;var uc=[Na,W,V];N.create=function(a){var b=za(uc,[].slice.call(arguments));b[V]||(b[V]="t0");var c=""+b[V];if(N.h[c])return N.h[c];if(da(b))return null;b=new pc(b);N.h[c]=b;N.P.push(b);return b};N.remove=function(a){for(var b=0;b<N.P.length;b++)if(N.P[b].get(V)==a){N.P.splice(b,1);N.h[a]=null;break}};N.j=function(a){return N.h[a]};N.getAll=function(){return N.P.slice(0)};
N.N=function(){"ga"!=gb&&J(49);var a=O[gb];if(!a||42!=a.answer){N.L=a&&a.l;N.ya=1*new Date;N.loaded=!0;var b=O[gb]=N;X("create",b,b.create);X("remove",b,b.remove);X("getByName",b,b.j,5);X("getAll",b,b.getAll,6);b=pc.prototype;X("get",b,b.get,7);X("set",b,b.set,4);X("send",b,b.send);X("requireSync",b,b.ma);b=Ya.prototype;X("get",b,b.get);X("set",b,b.set);if("https:"!=M.location.protocol&&!Ba){a:{b=M.getElementsByTagName("script");for(var c=0;c<b.length&&100>c;c++){var d=b[c].src;if(d&&0==d.indexOf("https://web.archive.org/web/20190309201640/https://www.google-analytics.com/analytics")){b=
!0;break a}}b=!1}b&&(Ba=!0)}(O.gaplugins=O.gaplugins||{}).Linker=Dc;b=Dc.prototype;C("linker",Dc);X("decorate",b,b.ca,20);X("autoLink",b,b.S,25);C("displayfeatures",fd);C("adfeatures",fd);a=a&&a.q;ka(a)?Z.D.apply(N,a):J(50)}};N.da=function(){for(var a=N.getAll(),b=0;b<a.length;b++)a[b].get(V)};var te=N.N,ve=O[gb];ve&&ve.r?te():z(te);z(function(){Z.D(["provide","render",ua])});})(window);
/*
FILE ARCHIVED ON 20:16:40 Mar 09, 2019 AND RETRIEVED FROM THE
INTERNET ARCHIVE ON 13:15:13 Mar 26, 2020.
JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE.
ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C.
SECTION 108(a)(3)).
*/
/*
playback timings (ms):
load_resource: 705.449
exclusion.robots.policy: 0.502
esindex: 0.017
RedisCDXSource: 37.896
PetaboxLoader3.resolve: 66.05
CDXLines.iter: 126.268 (3)
exclusion.robots: 0.529
PetaboxLoader3.datanode: 954.361 (7)
LoadShardBlock: 413.488 (6)
*/

View File

@ -0,0 +1,217 @@
// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL-3.0
var wbAutoComplete = (function(){
// "use strict";
function wbAutoComplete(options){
if (!document.querySelector) return;
// helpers
function hasClass(el, className){ return el.classList ? el.classList.contains(className) : new RegExp('\\b'+ className+'\\b').test(el.className); }
function addEvent(el, type, handler){
if (el.attachEvent) el.attachEvent('on'+type, handler); else el.addEventListener(type, handler);
}
function removeEvent(el, type, handler){
// if (el.removeEventListener) not working in IE11
if (el.detachEvent) el.detachEvent('on'+type, handler); else el.removeEventListener(type, handler);
}
function live(elClass, event, cb, context){
addEvent(context || document, event, function(e){
var found, el = e.target || e.srcElement;
while (el && !(found = hasClass(el, elClass))) el = el.parentElement;
if (found) cb.call(el, e);
});
}
var o = {
selector: 0,
source: 0,
minChars: 3,
delay: 150,
offsetLeft: 0,
offsetTop: 1,
cache: 1,
menuClass: '',
renderItem: function (item, search){
// escape special characters
search = search.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
var re = new RegExp("(" + search.split(' ').join('|') + ")", "gi");
return '<div class="wb-autocomplete-suggestion" data-val="' + item + '">' + item.replace(re, "<b>$1</b>") + '</div>';
},
onSelect: function(e, term, item){}
};
for (var k in options) { if (options.hasOwnProperty(k)) o[k] = options[k]; }
// init
var elems = typeof o.selector == 'object' ? [o.selector] : document.querySelectorAll(o.selector);
for (var i=0; i<elems.length; i++) {
var that = elems[i];
// create suggestions container "sc"
that.sc = document.createElement('div');
that.sc.className = 'wb-autocomplete-suggestions '+o.menuClass;
that.autocompleteAttr = that.getAttribute('autocomplete');
that.setAttribute('autocomplete', 'off');
that.cache = {};
that.last_val = '';
that.updateSC = function(resize, next){
var rect = that.getBoundingClientRect();
that.sc.style.left = Math.round(rect.left + (window.pageXOffset || document.documentElement.scrollLeft) + o.offsetLeft) + 'px';
that.sc.style.top = Math.round(rect.bottom + (window.pageYOffset || document.documentElement.scrollTop) + o.offsetTop) + 'px';
that.sc.style.width = Math.round(rect.right - rect.left) + 'px'; // outerWidth
if (!resize) {
that.sc.style.display = 'block';
if (!that.sc.maxHeight) { that.sc.maxHeight = parseInt((window.getComputedStyle ? getComputedStyle(that.sc, null) : that.sc.currentStyle).maxHeight); }
if (!that.sc.suggestionHeight) that.sc.suggestionHeight = that.sc.querySelector('.wb-autocomplete-suggestion').offsetHeight;
if (that.sc.suggestionHeight)
if (!next) that.sc.scrollTop = 0;
else {
var scrTop = that.sc.scrollTop, selTop = next.getBoundingClientRect().top - that.sc.getBoundingClientRect().top;
if (selTop + that.sc.suggestionHeight - that.sc.maxHeight > 0)
that.sc.scrollTop = selTop + that.sc.suggestionHeight + scrTop - that.sc.maxHeight;
else if (selTop < 0)
that.sc.scrollTop = selTop + scrTop;
}
}
}
addEvent(window, 'resize', that.updateSC);
document.body.appendChild(that.sc);
live('wb-autocomplete-suggestion', 'mouseleave', function(e){
var sel = that.sc.querySelector('.autocomplete-suggestion.selected');
if (sel) setTimeout(function(){ sel.className = sel.className.replace('selected', ''); }, 20);
}, that.sc);
live('wb-autocomplete-suggestion', 'mouseover', function(e){
var sel = that.sc.querySelector('.wb-autocomplete-suggestion.selected');
if (sel) sel.className = sel.className.replace('selected', '');
this.className += ' selected';
}, that.sc);
live('wb-autocomplete-suggestion', 'mousedown', function(e){
if (hasClass(this, 'wb-autocomplete-suggestion')) { // else outside click
var v = this.getAttribute('data-val');
that.value = v;
o.onSelect(e, v, this);
that.sc.style.display = 'none';
}
}, that.sc);
that.blurHandler = function(){
try { var over_sb = document.querySelector('.wb-autocomplete-suggestions:hover'); } catch(e){ var over_sb = 0; }
if (!over_sb) {
that.last_val = that.value;
that.sc.style.display = 'none';
setTimeout(function(){ that.sc.style.display = 'none'; }, 350); // hide suggestions on fast input
} else if (that !== document.activeElement) setTimeout(function(){ that.focus(); }, 20);
};
addEvent(that, 'blur', that.blurHandler);
var suggest = function(data){
var val = that.value;
that.cache[val] = data;
if (data.length && val.length >= o.minChars) {
var s = '';
for (var i=0;i<data.length;i++) s += o.renderItem(data[i], val);
that.sc.innerHTML = s;
that.updateSC(0);
}
else
that.sc.style.display = 'none';
}
that.keydownHandler = function(e){
var key = window.event ? e.keyCode : e.which;
// down (40), up (38)
if ((key == 40 || key == 38) && that.sc.innerHTML) {
var next, sel = that.sc.querySelector('.wb-autocomplete-suggestion.selected');
if (!sel) {
next = (key == 40) ? that.sc.querySelector('.wb-autocomplete-suggestion') : that.sc.childNodes[that.sc.childNodes.length - 1]; // first : last
next.className += ' selected';
that.value = next.getAttribute('data-val');
} else {
next = (key == 40) ? sel.nextSibling : sel.previousSibling;
if (next) {
sel.className = sel.className.replace('selected', '');
next.className += ' selected';
that.value = next.getAttribute('data-val');
}
else { sel.className = sel.className.replace('selected', ''); that.value = that.last_val; next = 0; }
}
that.updateSC(0, next);
return false;
}
// esc
else if (key == 27) { that.value = that.last_val; that.sc.style.display = 'none'; }
// enter
else if (key == 13 || key == 9) {
var sel = that.sc.querySelector('.wb-autocomplete-suggestion.selected');
if (sel && that.sc.style.display != 'none') { o.onSelect(e, sel.getAttribute('data-val'), sel); setTimeout(function(){ that.sc.style.display = 'none'; }, 20); }
}
};
addEvent(that, 'keydown', that.keydownHandler);
that.keyupHandler = function(e){
var key = window.event ? e.keyCode : e.which;
if (!key || (key < 35 || key > 40) && key != 13 && key != 27) {
var val = that.value;
if (val.length >= o.minChars) {
if (val != that.last_val) {
that.last_val = val;
clearTimeout(that.timer);
if (o.cache) {
if (val in that.cache) { suggest(that.cache[val]); return; }
// no requests if previous suggestions were empty
for (var i=1; i<val.length-o.minChars; i++) {
var part = val.slice(0, val.length-i);
if (part in that.cache && !that.cache[part].length) { suggest([]); return; }
}
}
that.timer = setTimeout(function(){ o.source(val, suggest) }, o.delay);
}
} else {
that.last_val = val;
that.sc.style.display = 'none';
}
}
};
addEvent(that, 'keyup', that.keyupHandler);
that.focusHandler = function(e){
that.last_val = '\n';
that.keyupHandler(e)
};
if (!o.minChars) addEvent(that, 'focus', that.focusHandler);
}
// public destroy method
this.destroy = function(){
for (var i=0; i<elems.length; i++) {
var that = elems[i];
removeEvent(window, 'resize', that.updateSC);
removeEvent(that, 'blur', that.blurHandler);
removeEvent(that, 'focus', that.focusHandler);
removeEvent(that, 'keydown', that.keydownHandler);
removeEvent(that, 'keyup', that.keyupHandler);
if (that.autocompleteAttr)
that.setAttribute('autocomplete', that.autocompleteAttr);
else
that.removeAttribute('autocomplete');
document.body.removeChild(that.sc);
that = null;
}
};
}
return wbAutoComplete;
})();
(function(){
if (typeof define === 'function' && define.amd)
define('wbAutoComplete', function () { return wbAutoComplete; });
else if (typeof module !== 'undefined' && module.exports)
module.exports = wbAutoComplete;
else
window.wbAutoComplete = wbAutoComplete;
})();
// @license-end

View File

@ -0,0 +1,422 @@
@import 'record.css'; /* for SPN1 */
#wm-ipp-base {
min-height:65px;
padding:0;
margin:0;
border:none;
background:none transparent;
}
#wm-ipp {
z-index: 2147483640;
}
#wm-ipp, #wm-ipp * {
font-family:Lucida Grande, Helvetica, Arial, sans-serif;
font-size:12px;
line-height:1.2;
letter-spacing:0;
width:auto;
height:auto;
max-width:none;
max-height:none;
min-width:0 !important;
min-height:0;
outline:none;
float:none;
text-align:left;
border:none;
color: #000;
text-indent: 0;
position: initial;
background: none;
}
#wm-ipp div, #wm-ipp canvas {
display: block;
}
#wm-ipp div, #wm-ipp tr, #wm-ipp td, #wm-ipp a, #wm-ipp form {
padding:0;
margin:0;
border:none;
border-radius:0;
background-color:transparent;
background-image:none;
/*z-index:2147483640;*/
height:auto;
}
#wm-ipp table {
border:none;
border-collapse:collapse;
margin:0;
padding:0;
width:auto;
font-size:inherit;
}
#wm-ipp form input {
padding:1px !important;
height:auto;
display:inline;
margin:0;
color: #000;
background: none #fff;
border: 1px solid #666;
}
#wm-ipp form input[type=submit] {
padding:0 8px !important;
margin:1px 0 1px 5px !important;
width:auto !important;
border: 1px solid #000 !important;
background: #fff !important;
color: #000 !important;
}
#wm-ipp a {
display: inline;
}
#wm-ipp a:hover{
text-decoration:underline;
}
#wm-ipp a.wm-btn:hover {
text-decoration:none;
color:#ff0 !important;
}
#wm-ipp a.wm-btn:hover span {
color:#ff0 !important;
}
#wm-ipp #wm-ipp-inside {
margin: 0 6px;
border:5px solid #000;
border-top:none;
background-color:rgba(255,255,255,0.9);
-moz-box-shadow:1px 1px 4px #333;
-webkit-box-shadow:1px 1px 4px #333;
box-shadow:1px 1px 4px #333;
border-radius:0 0 8px 8px;
}
/* selectors are intentionally verbose to ensure priority */
#wm-ipp #wm-logo {
padding:0 10px;
vertical-align:middle;
min-width:110px;
width:15%;
}
#wm-ipp table tr::before, #wm-ipp table tr::after {
margin: 0;
height: auto;
}
#wm-ipp table.c {
vertical-align:top;
margin-left: 4px;
}
#wm-ipp table.c td {
border:none !important;
}
#wm-ipp .c td.u {
padding:3px 0 !important;
text-align:center;
}
#wm-ipp .c td.n {
padding:0 0 0 5px !important;
vertical-align: bottom;
}
#wm-ipp .c td.n a {
text-decoration:none;
color:#33f;
font-weight:bold;
}
#wm-ipp .c td.n td.b {
padding:0 6px 0 0 !important;
text-align:right !important;
overflow:visible;
white-space:nowrap;
color:#99a;
vertical-align:middle;
}
#wm-ipp .c td.n tr.y td.b {
padding:0 6px 2px 0 !important;
}
#wm-ipp .c td.n td.c {
background:#000;
color:#ff0;
font-weight:bold;
padding:0 !important;
text-align:center;
}
#wm-ipp.hi .c td.n td.c {
color:#ec008c;
}
#wm-ipp .c td.n td.f {
padding:0 0 0 6px !important;
text-align:left !important;
overflow:visible;
white-space:nowrap;
color:#99a;
vertical-align:middle;
}
#wm-ipp .c td.n tr.m td {
text-transform:uppercase;
white-space:nowrap;
padding:2px 0;
}
#wm-ipp .c td.s {
padding:0 5px 0 0 !important;
text-align:center;
vertical-align:bottom;
}
#wm-ipp #wm-nav-captures {
white-space: nowrap;
}
#wm-ipp .c td.s a.t {
color:#33f;
font-weight:bold;
line-height: 1.8;
}
#wm-ipp .c td.s div.r {
color: #666;
font-size:9px;
white-space:nowrap;
}
#wm-ipp .c td.k {
vertical-align:bottom;
padding-bottom:2px;
}
#wm-ipp .c td.s {
padding:0 5px 2px 0 !important;
}
#wm-ipp td#displayMonthEl {
padding: 2px 0 !important;
}
#wm-ipp td#displayYearEl {
padding: 0 0 2px 0 !important;
}
div#wm-ipp-sparkline {
position:relative;/* for positioning markers */
white-space:nowrap;
background-color:#fff;
cursor:pointer;
line-height:0.9;
}
#sparklineImgId, #wm-sparkline-canvas {
position:relative;
z-index:9012;
max-width:none;
}
#wm-ipp-sparkline div.yt {
position:absolute;
z-index:9010 !important;
background-color:#ff0 !important;
top: 0;
}
#wm-ipp-sparkline div.mt {
position:absolute;
z-index:9013 !important;
background-color:#ec008c !important;
top: 0;
}
#wm-ipp .r {
position:relative;
}
#wm-ipp .r a {
color:#33f;
border:none;
position:relative;
background-color:transparent;
background-repeat:no-repeat !important;
background-position:100% 100% !important;
text-decoration: none;
}
#wm-ipp #wm-capinfo .c-logo {
display:block;
float:left;
margin-right:3px;
width:90px;
min-height:90px;
max-height: 290px;
border-radius:45px;
overflow:hidden;
background-position:50%;
background-size:auto 90px;
box-shadow: 0 0 2px 2px rgba(208,208,208,128) inset;
}
#wm-ipp #wm-capinfo .c-logo span {
display:inline-block;
}
#wm-ipp #wm-capinfo .c-logo img {
height:90px;
position:relative;
left:-50%;
}
#wm-ipp #wm-capinfo .wm-title {
font-size:130%;
}
#wm-ipp #wm-capinfo a.wm-selector {
display:inline-block;
color: #aaa;
text-decoration:none !important;
padding: 2px 8px;
}
#wm-ipp #wm-capinfo a.wm-selector.selected {
background-color:#666;
}
#wm-ipp #wm-capinfo a.wm-selector:hover {
color: #fff;
}
#wm-ipp #wm-expand {
right: 1px;
bottom: -1px;
color: #ffffff;
background-color: #666 !important;
padding:0 5px 0 3px !important;
border-radius: 3px 3px 0 0 !important;
}
#wm-ipp #wm-expand span {
color: #ffffff;
}
#wm-ipp #wm-expand #wm-expand-icon {
display: inline-block;
transition: transform 0.5s;
transform-origin: 50% 45%;
}
#wm-ipp #wm-expand.wm-open #wm-expand-icon {
transform: rotate(180deg);
}
#wm-ipp #wmtb {
text-align:right;
}
#wm-ipp #wmtb #wmtbURL {
width: calc(100% - 45px);
}
#wm-ipp #wm-graph-anchor {
border-right:1px solid #ccc;
}
/* time coherence */
html.wb-highlight {
box-shadow: inset 0 0 0 3px #a50e3a !important;
}
.wb-highlight {
outline: 3px solid #a50e3a !important;
}
@media (min-width:946px) {
#wm-ipp #wm-graph-anchor {
display:block !important;
}
}
@media (max-width:945px) {
#wm-ipp #wm-graph-anchor {
display:none !important;
}
#wm-ipp table.c {
width: 85%;
width: calc(100% - 131px);
}
}
@media (max-width:1096px) {
#wm-logo {
display:none !important;
}
}
#wm-btns {
white-space: nowrap;
}
#wm-btns>#wm-save-snapshot-open {
margin-right: 7px;
top: -6px;
}
#wm-btns>#wm-sign-in {
box-sizing: content-box;
display: none;
margin-right: 7px;
top: -8px;
/*
round border around sign in button
*/
border: 2px #000 solid;
border-radius: 14px;
padding-right: 2px;
padding-bottom: 2px;
width: 11px;
height: 11px;
}
#wm-btns>#wm-sign-in>.iconochive-person {
font-size: 12.5px;
}
#wm-save-snapshot-open > .iconochive-web {
color:#000;
font-size:160%;
}
#wm-ipp #wm-share {
display: flex;
align-items: flex-end;
justify-content: space-between;
}
#wm-share > #wm-screenshot {
display: inline-block;
margin-right: 3px;
visibility: hidden;
}
#wm-screenshot > .iconochive-image {
color:#000;
font-size:160%;
}
#wm-btns>#wm-save-snapshot-in-progress {
display: none;
font-size:160%;
opacity: 0.5;
position: relative;
margin-right: 7px;
top: -5px;
}
#wm-btns>#wm-save-snapshot-success {
display: none;
color: green;
position: relative;
top: -7px;
}
#wm-btns>#wm-save-snapshot-fail {
display: none;
color: red;
position: relative;
top: -7px;
}
.wm-icon-screen-shot {
background: url("../images/web-screenshot.svg") no-repeat !important;
background-size: contain !important;
width: 22px !important;
height: 19px !important;
display: inline-block;
}
#donato #donato-base {
height: 100%;
}
body.wm-modal {
height: auto !important;
overflow: hidden !important;
}
#donato #donato-base {
width: 100%;
height: 100%;
position: absolute;
z-index: 2147483639;
}
body.wm-modal #donato #donato-base {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
z-index: 2147483640;
}

View File

@ -0,0 +1,170 @@
(function() {var aa="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(c.get||c.set)throw new TypeError("ES3 does not support getters and setters.");a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)},ba="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global&&null!=global?global:this;
function ca(a,b){if(b){for(var c=ba,d=a.split("."),e=0;e<d.length-1;e++){var f=d[e];f in c||(c[f]={});c=c[f]}d=d[d.length-1];e=c[d];f=b(e);f!=e&&null!=f&&aa(c,d,{configurable:!0,writable:!0,value:f})}}
ca("String.prototype.includes",function(a){return a?a:function(b,a){if(null==this)throw new TypeError("The 'this' value for String.prototype.includes must not be null or undefined");if(b instanceof RegExp)throw new TypeError("First argument to String.prototype.includes must not be a regular expression");return-1!==(this+"").indexOf(b,a||0)}});ca("Number.isFinite",function(a){return a?a:function(b){return"number"!==typeof b?!1:!isNaN(b)&&Infinity!==b&&-Infinity!==b}});
ca("Number.isInteger",function(a){return a?a:function(b){return Number.isFinite(b)?b===Math.floor(b):!1}});
function da(a){var b=typeof a;if("object"==b)if(a){if(a instanceof Array)return"array";if(a instanceof Object)return b;var c=Object.prototype.toString.call(a);if("[object Window]"==c)return"object";if("[object Array]"==c||"number"==typeof a.length&&"undefined"!=typeof a.splice&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("splice"))return"array";if("[object Function]"==c||"undefined"!=typeof a.call&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("call"))return"function"}else return"null";
else if("function"==b&&"undefined"==typeof a.call)return"object";return b}function ea(a,b,c){return a.call.apply(a.bind,arguments)}function fa(a,b,c){if(!a)throw Error();if(2<arguments.length){var d=Array.prototype.slice.call(arguments,2);return function(){var c=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(c,d);return a.apply(b,c)}}return function(){return a.apply(b,arguments)}}
function ga(a,b,c){ga=Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?ea:fa;return ga.apply(null,arguments)};function h(a){var b=[];ha(new ia,a,b);return b.join("")}function ia(){}
function ha(a,b,c){if(null==b)c.push("null");else{if("object"==typeof b){if("array"==da(b)){var d=b;b=d.length;c.push("[");for(var e="",f=0;f<b;f++)c.push(e),e=d[f],ha(a,e,c),e=",";c.push("]");return}if(b instanceof String||b instanceof Number||b instanceof Boolean)b=b.valueOf();else{c.push("{");f="";for(d in b)Object.prototype.hasOwnProperty.call(b,d)&&(e=b[d],"function"!=typeof e&&(c.push(f),ja(d,c),c.push(":"),ha(a,e,c),f=","));c.push("}");return}}switch(typeof b){case "string":ja(b,c);break;case "number":c.push(isFinite(b)&&
!isNaN(b)?String(b):"null");break;case "boolean":c.push(String(b));break;case "function":c.push("null");break;default:throw Error("Unknown type: "+typeof b);}}}var ka={'"':'\\"',"\\":"\\\\","/":"\\/","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\x0B":"\\u000b"},la=/\uffff/.test("\uffff")?/[\\\"\x00-\x1f\x7f-\uffff]/g:/[\\\"\x00-\x1f\x7f-\xff]/g;
function ja(a,b){b.push('"',a.replace(la,function(b){var a=ka[b];a||(a="\\u"+(b.charCodeAt(0)|65536).toString(16).substr(1),ka[b]=a);return a}),'"')};function n(a){a=String(a);try{return JSON.parse(a)}catch(b){}throw Error("Invalid JSON string: "+a);}function q(a){try{return"object"===typeof JSON&&"function"===typeof JSON.stringify?JSON.stringify(a):h(a)}catch(b){}throw Error("Could not stringify object");};function ma(){function a(){if(b.length)b[0](function(){b.shift();a()})}var b=[];return function(c){b.push(c);1===b.length&&a()}};var na=2,oa=200,pa=5E3,r="",u={},qa="undefined"!==typeof window&&!!(window.performance&&window.performance.timing&&window.performance.timing.navigationStart),ra="";function sa(a){return a&&"number"===typeof a?(Date.now()-a).toString():null}var v=!1,ta={"/v1/open":{link_identifier:"\\d+"},"/v1/pageview":{event:"pageview"},"/v1/dismiss":{event:"dismiss"}},ua=!1;
function va(a,b){var c=document.createElement("a");c.href=a;c=c.pathname;"/"!=c[0]&&(c="/"+c);c=ta[c];if(!c)return!0;if(0<Object.keys(c).length){if(!b)return!0;for(var d in c){var e=new RegExp(c[d]);if(!b.hasOwnProperty(d)||!e.test(b[d]))return!0}}return!1}
function wa(a,b){if(a||b){for(var c="https://web.archive.org/web/20190309201851/https://bnc.lt/a/"+a+"?",d="tags alias channel feature stage campaign type duration sdk source data".split(" "),e=0;e<d.length;e++){var f=d[e],k=b[f];if(k)if("tags"===f&&Array.isArray(k))for(var g=0;g<k.length;g++)c=("?"===c[c.length-1]?c+f:c+"&"+f)+"="+encodeURIComponent(k[g]);else if("string"===typeof k&&0<k.length||"number"===typeof k)"data"===f&&"string"===typeof k&&(k=xa(k)),c=("?"===c[c.length-1]?c+f:c+"&"+f)+"="+encodeURIComponent(k)}return c}}
function ya(a){a&&(a.ga=null,a.M=null,a.G=null,a.v=null,a.C=null,a.B=null,a.o&&delete a.o,a.s&&delete a.s,a.c.remove("branch_view_enabled"),za(a.c,{},!0))}function w(a,b,c){a=a.replace(/\$(\d)/g,function(a,c){return b[parseInt(c,10)-1]});c&&(a+="\n Failure Code:"+c);return a}function Aa(a){return{data:a.data||"",data_parsed:a.data_parsed||{},has_app:a.has_app||null,identity:a.identity||null,referring_identity:a.referring_identity||null,referring_link:a.referring_link||null}}
function Ba(a){var b=/^\$journeys_\S+$/,c=a.data,d={};if(!c)return{};switch(typeof c){case "string":try{c=n(c)}catch(e){c={}}break;case "object":break;default:c={}}Object.keys(c).forEach(function(a){b.test(a)&&(d[a]=c[a])});return d}function Ca(){return x()?document.referrer:String(window.location)}
function Da(a){a.source="web-sdk";var b=a.data;switch(typeof b){case "string":try{b=n(b)}catch(c){b={_bncNoEval:!0}}break;case "object":break;default:b={}}b.$canonical_url||(b.$canonical_url=Ca());b.$og_title||(b.$og_title=y("title"));b.$og_description||(b.$og_description=y("description"));b.$og_image_url||(b.$og_image_url=y("image"));b.$og_video||(b.$og_video=y("video"));b.$og_type||(b.$og_type=y("type"));"string"===typeof b.$desktop_url&&(b.$desktop_url=b.$desktop_url.replace(/#r:[a-z0-9-_]+$/i,
"").replace(/([\?\&]_branch_match_id=\d+)/,""));try{n(b)}catch(c){b=h(b)}a.data=b;return a}function Ea(a){function b(b){return""!==b}if(!a||"string"!==typeof a)return"";var c=document.createElement("a");c.href=a;a=c.pathname&&c.pathname.split("/").filter(b);return Array.isArray(a)&&a.length?a[a.length-1]+c.search:c.search}function z(a,b){a&&"object"===typeof a||(a={});if(!b||"object"!==typeof b)return a;for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c]);return a}
function Fa(){try{var a=(x()&&Ga()?window.top.location.hash:window.location.hash).match(/r:([^&]*)/);if(a&&1<=a.length)return a[1]}catch(b){}}
function A(){var a=navigator.userAgent;return a.match(/android/i)?"android":a.match(/ipad/i)?"ipad":a.match(/i(os|p(hone|od))/i)?"ios":a.match(/\(BB[1-9][0-9]*\;/i)?"blackberry":a.match(/Windows Phone/i)?"windows_phone":a.match(/Kindle/i)||a.match(/Silk/i)||a.match(/KFTT/i)||a.match(/KFOT/i)||a.match(/KFJWA/i)||a.match(/KFJWI/i)||a.match(/KFSOWI/i)||a.match(/KFTHWA/i)||a.match(/KFTHWI/i)||a.match(/KFAPWA/i)||a.match(/KFAPWI/i)?"kindle":!1}
function Ha(){var a=navigator.userAgent,b;if(/^((?!chrome|android|crios|fxios).)*safari/i.test(a))a:{var c;c=11;if((a=/version\/([^ ]*)/i.exec(a))&&a[1])try{if(parseFloat(a[1])>=c){b=!0;break a}}catch(d){}b=!1}else b=!1;return b}function Ia(a){try{var b=(x()&&Ga()?window.top.location.search:window.location.search).substring(1).match(new RegExp(a+"=([^&]*)"));if(b&&1<=b.length)return b[1]}catch(c){}}function Ja(a){return a.replace(/(\-\w)/g,function(b){return b[1].toUpperCase()})}
function xa(a){var b="",c,d,e,f,k,g,l=0;a=a.replace(/\r\n/g,"\n");d="";for(e=0;e<a.length;e++)f=a.charCodeAt(e),128>f?d+=String.fromCharCode(f):(127<f&&2048>f?d+=String.fromCharCode(f>>6|192):(d+=String.fromCharCode(f>>12|224),d+=String.fromCharCode(f>>6&63|128)),d+=String.fromCharCode(f&63|128));for(a=d;l<a.length;)c=a.charCodeAt(l++),d=a.charCodeAt(l++),e=a.charCodeAt(l++),f=c>>2,c=(c&3)<<4|d>>4,k=(d&15)<<2|e>>6,g=e&63,isNaN(d)?g=k=64:isNaN(e)&&(g=64),b=b+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(f)+
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(c)+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(k)+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(g);return b}function Ka(a,b,c){"function"===typeof a.addEventListener?a.addEventListener(b,c,void 0):"function"===typeof a.attachEvent?a.attachEvent("on"+b,c):a["on"+b]=c}
function La(a){if(!a)return null;-1<a.indexOf("://")&&(a=a.split("://")[1]);return a.substring(a.indexOf("/")+1)}function B(a){if(!a)return null;-1<a.indexOf("://")?a=a.split("://")[1]:"/"===a.charAt(0)&&(a=a.slice(1));return a}function y(a){var b;a=String(a);b=b||null;(a=document.querySelector('meta[property="og:'+a+'"]'))&&a.content&&(b=a.content);return b}
function C(){var a=document.getElementsByTagName("meta"),b={};if(!a||0===a.length)return b;for(var c={hostedIOS:null,hostedAndroid:null,applinksIOS:null,applinksAndroid:null,twitterIOS:null,twitterAndroid:null},d=0;d<a.length;d++)if((a[d].getAttribute("name")||a[d].getAttribute("property"))&&a[d].getAttribute("content")){var e=a[d].getAttribute("name"),f=a[d].getAttribute("property"),e=e||f,f=e.split(":");3===f.length&&"branch"===f[0]&&"deeplink"===f[1]&&("$ios_deeplink_path"===f[2]?c.hostedIOS=B(a[d].getAttribute("content")):
"$android_deeplink_path"===f[2]?c.hostedAndroid=B(a[d].getAttribute("content")):b[f[2]]=a[d].getAttribute("content"));"al:ios:url"===e&&(c.applinksIOS=B(a[d].getAttribute("content")));"twitter:app:url:iphone"===e&&(c.twitterIOS=B(a[d].getAttribute("content")));"al:android:url"===e&&(c.applinksAndroid=B(a[d].getAttribute("content")));"twitter:app:url:googleplay"===e&&(c.twitterAndroid=B(a[d].getAttribute("content")))}c&&"object"===typeof c&&Object.keys(c).length&&(c.hostedIOS?b.$ios_deeplink_path=
c.hostedIOS:c.applinksIOS?b.$ios_deeplink_path=c.applinksIOS:c.twitterIOS&&(b.$ios_deeplink_path=c.twitterIOS),c.hostedAndroid?b.$android_deeplink_path=c.hostedAndroid:c.applinksAndroid?b.$android_deeplink_path=c.applinksAndroid:c.twitterAndroid&&(b.$android_deeplink_path=c.twitterAndroid),b.hasOwnProperty("$ios_deeplink_path")&&b.hasOwnProperty("$android_deeplink_path")&&b.$ios_deeplink_path===b.$android_deeplink_path&&(b.$deeplink_path=b.$ios_deeplink_path));return b}
function Ma(){var a;try{navigator.languages&&0<navigator.languages.length?a=navigator.languages[0]:navigator.language&&(a=navigator.language),a=a.substring(0,2).toUpperCase()}catch(b){a=null}return a}function Na(a,b){var c=[];b.forEach(function(b){-1===a.indexOf(b)&&c.push(b)});return c}
var Oa=["purchase"],Pa={missingPurchaseEvent:"event name is either missing, of the wrong type or not valid. Please specify 'purchase' as the event name.",missingCommerceData:"commerce_data is either missing, of the wrong type or empty. Please ensure that commerce_data is constructed correctly.",invalidKeysForRoot:"Please remove the following keys from the root of commerce_data: ",invalidKeysForProducts:"Please remove the following keys from commerce_data.products: ",invalidProductListType:"commerce_data.products must be an array of objects",
invalidProductType:"Each product in the products list must be an object"};
function Qa(a){var b="sku name price quantity brand category variant".split(" "),c=Na("common type transaction_id currency revenue revenue_in_usd exchange_rate shipping tax coupon affiliation persona products".split(" "),Object.keys(a));if(c.length)return Pa.invalidKeysForRoot+c.join(", ");var d=[],e;if(a.hasOwnProperty("products")){if(!Array.isArray(a.products))return Pa.invalidProductListType;a.products.forEach(function(a){"object"!==typeof a&&(e=Pa.invalidProductType);d=d.concat(Na(b,Object.keys(a)))});
if(e)return e;if(d.length)return Pa.invalidKeysForProducts+d.join(", ")}return null}function Ra(a,b){if(!a||"string"!==typeof a||-1===Oa.indexOf(a.toLowerCase()))return Pa.missingPurchaseEvent;if(!b||"object"!==typeof b||!Object.keys(b).length)return Pa.missingCommerceData;var c=Qa(b);return c?c:null}function D(a){return"string"!==typeof a?null:a.replace(/</g,"&lt;").replace(/>/g,"&gt;")}function E(a,b,c){if(c){if("object"===typeof c&&!Object.keys(c).length)return a;a[b]=c}return a}
function Sa(){var a={},b;b={};b=E(b,"$og_title",y("title"));b=E(b,"$og_description",y("description"));b=E(b,"$og_image_url",y("image"));b=E(b,"$og_video",y("video"));b=(b=E(b,"$og_type",y("type")))&&0<Object.keys(b).length?b:null;a=E(a,"og_data",b);a=E(a,"hosted_deeplink_data",C());b=document.getElementsByTagName("title");a=E(a,"title",0<b.length?b[0].innerText:null);b=document.querySelector('meta[name="description"]');a=E(a,"description",b&&b.content?b.content:null);b=document.querySelector('link[rel="canonical"]');
return(a=E(a,"canonical_url",b&&b.href?b.href:null))&&0<Object.keys(a).length?a:{}}var Ta="ADD_TO_CART ADD_TO_WISHLIST VIEW_CART INITIATE_PURCHASE ADD_PAYMENT_INFO PURCHASE SPEND_CREDITS SEARCH VIEW_ITEM VIEW_ITEMS RATE SHARE COMPLETE_REGISTRATION COMPLETE_TUTORIAL ACHIEVE_LEVEL UNLOCK_ACHIEVEMENT".split(" "),Ua="transaction_id revenue currency shipping tax coupon affiliation search_query description".split(" ");
function Va(a){if(!a||!Object.keys(a).length)return null;for(var b=Na(Ua,Object.keys(a)),c={},d=0;d<b.length;d++){var e=b[d];c[e]=a[e];delete a[e]}return{custom_data:Wa(c),event_data:a}}function F(a,b){return a&&b?"array"===b?Array.isArray(a):typeof a===b&&!Array.isArray(a):!1}
function Xa(a){var b={},b=E(b,"http_origin",document.URL),b=E(b,"user_agent",navigator.userAgent),b=E(b,"language",Ma()),b=E(b,"screen_width",screen.width),b=E(b,"screen_height",screen.height),b=E(b,"http_referrer",document.referrer),b=E(b,"browser_fingerprint_id",a.B),b=E(b,"developer_identity",a.C),b=E(b,"sdk","web");return b=E(b,"sdk_version","2.49.0")}function x(){return window.self!==window.top}
function Ga(){var a="true";try{window.top.location.search&&(a="true")}catch(b){return!1}return"true"===a}function Ya(a){return a?a:x()?Ga()?window.top.document.referrer:"":document.referrer}function Wa(a){if(F(a,"object")&&Object.keys(a).length){for(var b in a)a.hasOwnProperty(b)&&(a[b]=F(a[b],"object")||F(a[b],"array")?q(a[b]):a[b].toString());return a}}function Za(a,b){var c=a?z({},a):{};return b&&0<Object.keys(b).length?0<Object.keys(c).length?z(c,b):z({},b):c}
function G(a){""!==r&&a.setAttribute("nonce",r)};function H(a,b){return function(c,d,e){if(v)return!1;if("number"===typeof e||e)if(0===b){if("object"!==typeof e)return w("API request $1, parameter $2 is not $3",[c,d,"an object"])}else if(3===b){if(!(e instanceof Array))return w("API request $1, parameter $2 is not $3",[c,d,"an array"])}else if(2===b){if("number"!==typeof e)return w("API request $1, parameter $2 is not $3",[c,d,"a number"])}else if(4===b){if("boolean"!==typeof e)return w("API request $1, parameter $2 is not $3",[c,d,"a boolean"])}else{if("string"!==
typeof e)return w("API request $1, parameter $2 is not $3",[c,d,"a string"]);if(1!==b&&!b.test(e))return w("API request $1, parameter $2 is not $3",[c,d,"in the proper format"])}else if(a)return w("API request $1 missing parameter $2",[c,d]);return!1}}var I=/^[0-9]{15,20}$/;function J(a){return z(a,{browser_fingerprint_id:H(!0,I),identity_id:H(!0,I),sdk:H(!0,1),session_id:H(!0,I)})}
var $a={destination:"https://web.archive.org/web/20190309201851/https://api2.branch.io",endpoint:"/v1/open",method:"POST",a:{browser_fingerprint_id:H(!1,I),alternative_browser_fingerprint_id:H(!1,I),identity_id:H(!1,I),link_identifier:H(!1,1),sdk:H(!1,1),options:H(!1,0),initial_referrer:H(!1,1),tracking_disabled:H(!1,4)}},ab={destination:"https://web.archive.org/web/20190309201851/https://app.link",endpoint:"/_r",method:"GET",Y:!0,a:{sdk:H(!0,1),_t:H(!1,I),branch_key:H(!0,1)}},bb={destination:"",endpoint:"",method:"GET",f:{link_url:H(!0,1)},a:{click:H(!0,1)}},cb={destination:"https://web.archive.org/web/20190309201851/https://bnc.lt",
endpoint:"/c",method:"POST",f:{link_url:H(!0,1)},a:{sdk:H(!1,1),phone:H(!0,1)}},db={destination:"https://web.archive.org/web/20190309201851/https://api2.branch.io",endpoint:"/v1/referralcode",method:"POST",a:J({amount:H(!0,2),bucket:H(!1,1),calculation_type:H(!0,2),creation_source:H(!0,2),expiration:H(!1,1),location:H(!0,2),prefix:H(!1,1),type:H(!0,1)})},eb={destination:"https://web.archive.org/web/20190309201851/https://api2.branch.io",endpoint:"/v1/referralcode",method:"POST",f:{code:H(!0,1)},a:J({})},fb={destination:"https://web.archive.org/web/20190309201851/https://api2.branch.io",endpoint:"/v1/applycode",method:"POST",
f:{code:H(!0,1)},a:J({})},gb={destination:"https://web.archive.org/web/20190309201851/https://api2.branch.io",endpoint:"/v1/logout",method:"POST",a:J({session_id:H(!0,I)})},hb={destination:"https://web.archive.org/web/20190309201851/https://api2.branch.io",endpoint:"/v1/profile",method:"POST",a:J({identity_id:H(!0,I),identity:H(!0,1)})},ib={destination:"https://web.archive.org/web/20190309201851/https://api2.branch.io",endpoint:"/v1/referrals",method:"GET",f:{identity_id:H(!0,I)},a:J({})},jb={destination:"https://web.archive.org/web/20190309201851/https://api2.branch.io",endpoint:"/v1/credithistory",method:"GET",a:J({begin_after_id:H(!1,I),bucket:H(!1,1),direction:H(!1,
2),length:H(!1,2),link_click_id:H(!1,I)})},kb={destination:"https://web.archive.org/web/20190309201851/https://api2.branch.io",endpoint:"/v1/credits",method:"GET",a:J({branch_key:H(!0,1),identity:H(!0,1)})},lb={destination:"https://web.archive.org/web/20190309201851/https://api2.branch.io",endpoint:"/v1/redeem",method:"POST",a:J({amount:H(!0,2),bucket:H(!0,1),identity_id:H(!0,I)})},mb={destination:"https://web.archive.org/web/20190309201851/https://api2.branch.io",endpoint:"/v1/url",method:"POST",Aa:"obj",a:J({alias:H(!1,1),campaign:H(!1,1),channel:H(!1,1),data:H(!1,1),feature:H(!1,1),identity_id:H(!0,I),stage:H(!1,1),tags:H(!1,
3),type:H(!1,2),source:H(!1,1),instrumentation:H(!1,1)})},nb={destination:"https://web.archive.org/web/20190309201851/https://api2.branch.io",endpoint:"/v1/deepview",Y:!0,method:"POST",a:J({campaign:H(!1,1),_t:H(!1,I),channel:H(!1,1),data:H(!0,1),feature:H(!1,1),link_click_id:H(!1,1),open_app:H(!1,4),append_deeplink_path:H(!1,4),stage:H(!1,1),tags:H(!1,3),deepview_type:H(!0,1),source:H(!0,1)})},ob={destination:"https://web.archive.org/web/20190309201851/https://api2.branch.io",endpoint:"/v1/has-app",method:"GET",a:{browser_fingerprint_id:H(!0,I),instrumentation:H(!1,1)}},pb={destination:"https://web.archive.org/web/20190309201851/https://api2.branch.io",
endpoint:"/v1/event",method:"POST",a:J({event:H(!0,1),metadata:H(!0,0),initial_referrer:H(!1,1),tracking_disabled:H(!1,4)})},qb={destination:"https://web.archive.org/web/20190309201851/https://api2.branch.io",endpoint:"/v1/event",method:"POST",a:J({event:H(!0,1),metadata:H(!1,0),initial_referrer:H(!1,1),commerce_data:H(!0,0)})},rb={destination:"https://web.archive.org/web/20190309201851/https://api2.branch.io",endpoint:"/v2/event/standard",method:"POST",a:{name:H(!0,1),user_data:H(!0,1),custom_data:H(!1,1),event_data:H(!1,1),content_items:H(!1,1)}},sb={destination:"https://web.archive.org/web/20190309201851/https://api2.branch.io",
endpoint:"/v2/event/custom",method:"POST",a:{name:H(!0,1),user_data:H(!0,1),custom_data:H(!1,1)}},tb={destination:"https://web.archive.org/web/20190309201851/https://api2.branch.io",endpoint:"/v1/pageview",method:"POST",a:J({event:H(!0,1),metadata:H(!1,0),initial_referrer:H(!1,1),tracking_disabled:H(!1,4),branch_view_id:H(!1,1),no_journeys:H(!1,4),user_language:H(!1,1),open_app:H(!1,4),has_app_websdk:H(!1,4),source:H(!1,1),feature:H(!1,1),is_iframe:H(!1,4),data:H(!1,0),callback_string:H(!1,1),journey_displayed:H(!1,4),audience_rule_id:H(!1,
1),journey_dismissals:H(!1,0)})},ub={destination:"https://web.archive.org/web/20190309201851/https://api2.branch.io",endpoint:"/v1/dismiss",method:"POST",a:J({event:H(!0,1),metadata:H(!1,0),initial_referrer:H(!1,1),tracking_disabled:H(!1,4),branch_view_id:H(!1,1),no_journeys:H(!1,4),user_language:H(!1,1),open_app:H(!1,4),has_app_websdk:H(!1,4),source:H(!1,1),feature:H(!1,1),is_iframe:H(!1,4),data:H(!1,0),callback_string:H(!1,1),journey_displayed:H(!1,4),audience_rule_id:H(!1,1),journey_dismissals:H(!1,0)})};function vb(a){for(var b=0;b<a.length;b++){var c=this[a[b]],c="function"===typeof c?c():c;if(c.isEnabled())return c.u={},c}}function K(a){return"branch_session"===a||"branch_session_first"===a?a:"BRANCH_WEBSDK_KEY"+a}function wb(a){return"true"===a?!0:"false"===a?!1:a}function xb(a){return"branch_session"===a||"branch_session_first"===a||0===a.indexOf("BRANCH_WEBSDK_KEY")}function yb(a){a=a.trim();var b=a.indexOf("=");return{name:a.substring(0,b),value:wb(a.substring(b+1,a.length))}}
function zb(a){var b;try{b=a&&localStorage?localStorage:sessionStorage}catch(c){return{isEnabled:function(){return!1}}}return{getAll:function(){if("undefined"===typeof b)return null;var a=null,d;for(d in b)d.indexOf("BRANCH_WEBSDK_KEY")||(null===a&&(a={}),a[d.replace("BRANCH_WEBSDK_KEY","")]=wb(b.getItem(d)));return a},get:function(a,d){return wb(d&&localStorage?localStorage.getItem(K(a)):b.getItem(K(a)))},set:function(a,d,e){e&&localStorage?localStorage.setItem(K(a),d):b.setItem(K(a),d)},remove:function(a,
d){d&&localStorage?localStorage.removeItem(K(a)):b.removeItem(K(a))},clear:function(){Object.keys(b).forEach(function(a){a.indexOf("BRANCH_WEBSDK_KEY")||b.removeItem(a)})},isEnabled:function(){try{return b.setItem("test",""),b.removeItem("test"),!0}catch(c){return!1}}}}vb.prototype.local=function(){return zb(!0)};vb.prototype.session=function(){return zb(!1)};
function Ab(){function a(b,a){a&&(b=K(b));document.cookie=b+"=; expires=Thu, 01 Jan 1970 00:00:01 GMT; path=/"}return{getAll:function(){for(var a={},c=document.cookie.split(";"),d=0;d<c.length;d++){var e=yb(c[d]);e&&e.hasOwnProperty("name")&&e.hasOwnProperty("value")&&xb(e.name)&&(a[e.name.replace("BRANCH_WEBSDK_KEY","")]=e.value)}return a},get:function(a){a=K(a);for(var b=document.cookie.split(";"),d=0;d<b.length;d++){var e=yb(b[d]);if(e&&e.hasOwnProperty("name")&&e.hasOwnProperty("value")&&e.name===
a)return e.value}return null},set:function(a,c){document.cookie=K(a)+"="+c+"; path=/"},remove:function(b){a(b,!0)},clear:function(){for(var b=document.cookie.split(";"),c=0;c<b.length;c++){var d=yb(b[c]);d&&d.hasOwnProperty("name")&&xb(d.name)&&a(d.name,!1)}},isEnabled:function(){return navigator.cookieEnabled}}}vb.prototype.cookie=function(){return Ab()};
vb.prototype.pojo={getAll:function(){return this.u},get:function(a){return this.u[a]||null},set:function(a,b){this.u[a]=b},remove:function(a){delete this.u[a]},clear:function(){this.u={}},isEnabled:function(){return!0}};function L(a,b){try{return n(a.get(b?"branch_session_first":"branch_session",b))||null}catch(c){return null}}function za(a,b,c){a.set("branch_session",h(b));c&&a.set("branch_session_first",h(b),!0)}function Bb(a,b){if(b){var c=L(a)||{},c=z(c,b);a.set("branch_session",h(c))}};function Cb(){}Cb.prototype.g=0;function Db(a,b,c){if("undefined"===typeof b)return"";var d=[];if(b instanceof Array){for(a=0;a<b.length;a++)d.push(encodeURIComponent(c)+"="+encodeURIComponent(b[a]));return d.join("&")}for(var e in b)b.hasOwnProperty(e)&&(b[e]instanceof Array||"object"===typeof b[e]?d.push(Db(a,b[e],c?c+"."+e:e)):d.push(encodeURIComponent(c?c+"."+e:e)+"="+encodeURIComponent(b[e])));return d.join("&")}
function Eb(a,b,c){function d(a,c){"undefined"===typeof c&&(c={});if(a.branch_key&&l.test(a.branch_key))return c.branch_key=a.branch_key,c;if(a.app_id&&g.test(a.app_id))return c.app_id=a.app_id,c;if(a.instrumentation)c.instrumentation=a.instrumentation;else throw Error(w("API request $1 missing parameter $2",[b.endpoint,"branch_key or app_id"]));}var e,f,k=b.destination+b.endpoint,g=/^[0-9]{15,20}$/,l=/key_(live|test)_[A-Za-z0-9]{32}/;if("/v1/has-app"===b.endpoint)try{b.f=d(c,b.f)}catch(p){return{error:p.message}}if("undefined"!==
typeof b.f)for(e in b.f)if(b.f.hasOwnProperty(e)){if(f="function"===typeof b.f[e]?b.f[e](b.endpoint,e,c[e]):f)return{error:f};k+="/"+c[e]}var m={};if("undefined"!==typeof b.a&&"/v1/pageview"!==b.endpoint&&"/v1/dismiss"!==b.endpoint)for(e in b.a){if(b.a.hasOwnProperty(e)){if(f=b.a[e](b.endpoint,e,c[e]))return{error:f};f=c[e];"undefined"!==typeof f&&""!==f&&null!==f&&(m[e]=f)}}else"/v1/pageview"!==b.endpoint&&"/v1/dismiss"!==b.endpoint||z(m,c);if("POST"===b.method||"/v1/credithistory"===b.endpoint)try{c=
d(c,m)}catch(p){return{error:p.message}}"/v1/event"===b.endpoint&&(m.metadata=q(m.metadata||{}),m.hasOwnProperty("commerce_data")&&(m.commerce_data=q(m.commerce_data||{})));("/v1/pageview"===b.endpoint||"/v1/dismiss"===b.endpoint)&&m.metadata&&(m.metadata=q(m.metadata||{}));"/v1/open"===b.endpoint&&(m.options=q(m.options||{}));return{data:Db(a,m,""),url:k.replace(/^\//,"")}}
function Fb(a,b,c){var d=document.createElement("script");d.type="text/javascript";d.async=!0;d.src=a;G(d);a=document.getElementsByTagName("head");!a||1>a.length?"function"===typeof b&&b():(a[0].appendChild(d),"function"===typeof b&&Ka(d,"error",b),"function"===typeof c&&Ka(d,"load",c))}
function Gb(a,b,c,d,e){var f=Date.now(),k=ra;!a.g&&Ha()&&a.g++;var g="branch_callback__"+a.g++;a=0<=b.indexOf("branch.io")?"&data=":"&post_data=";c="POST"===d?encodeURIComponent(xa(h(c))):"";var l=window.setTimeout(function(){window[g]=function(){};E(u,k,sa(f));e(Error("Request timed out"),null,504)},pa);window[g]=function(a){window.clearTimeout(l);e(null,a)};Fb(b+(0>b.indexOf("?")?"?":"")+(c?a+c:"")+(0<=b.indexOf("/c/")?"&click=1":"")+"&callback="+g,function(){e(Error("Request blocked by client, probably adblock"),
null)},function(){E(u,k,sa(f));try{"function"===typeof this.remove?this.remove():this.parentNode.removeChild(this)}catch(m){}delete window[g]})}
function Hb(a,b,c,d,e,f){var k=Date.now(),g=ra,l=window.XMLHttpRequest?new XMLHttpRequest:new ActiveXObject("Microsoft.XMLHTTP");l.ontimeout=function(){E(u,g,sa(k));f(Error("Request timed out"),null,504)};l.onerror=function(a){f(Error(a.error||"Error in API: "+l.status),null,l.status)};l.onreadystatechange=function(){var a;if(4===l.readyState)if(E(u,g,sa(k)),200===l.status){try{a=n(l.responseText)}catch(p){a={}}f(null,a,l.status)}else if(402===l.status)f(Error("Not enough credits to redeem."),null,
l.status);else if("4"===l.status.toString().substring(0,1)||"5"===l.status.toString().substring(0,1))l.responseURL&&l.responseURL.includes("v2/event")?f(l.responseText,null,l.status):f(Error("Error in API: "+l.status),null,l.status)};try{l.open(d,b,!0),l.timeout=pa,l.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),l.send(c)}catch(m){e.set("use_jsonp",!0),Gb(a,b,c,d,f)}}
function Ib(a,b,c,d,e){function f(){d.get("use_jsonp")||b.Y?Gb(a,m,c,b.method,k):Hb(a,m,p,b.method,d,k)}function k(a,b,c){a&&0<t&&"5"===(c||"").toString().substring(0,1)?(t--,window.setTimeout(function(){f()},oa)):e(a,b)}ra="/v1/pageview"===b.endpoint&&c&&c.journey_displayed?b.endpoint+"-1-brtt":b.endpoint+"-brtt";("/v1/url"===b.endpoint||"/v1/has-app"===b.endpoint)&&1<Object.keys(u).length&&(delete u["-brtt"],c.instrumentation=q(z({},u)),u={});if(v)for(var g=["browser_fingerprint_id","alternative_browser_fingerprint_id",
"identity_id","session_id"],l=0;l<g.length;l++)c.hasOwnProperty(g[l])&&delete c[g[l]];g=Eb(a,b,c);if(g.error)return e(Error(q({message:g.error,endpoint:b.endpoint,data:c})));var m,p="";"GET"===b.method?m=g.url+"?"+g.data:(m=g.url,p=g.data);var t=na;if(v&&va(m,c))return ua?k(Error("Requested operation cannot be completed since tracking is disabled"),null,300):k(null,{},200);f()};function M(a){a&&a.parentNode.removeChild(a)}function Jb(a,b){a&&!a.className.match(new RegExp("(\\s|^)"+b+"(\\s|$)"))&&(a.className+=" "+b)}function Kb(a){var b=document.body;b&&b.className.match(new RegExp("(\\s|^)"+a+"(\\s|$)"))&&(b.className=b.className.replace(new RegExp("(\\s|^)"+a+"(\\s|$)")," "))}function Lb(a){var b=new Date;return b.setDate(b.getDate()+a)}
function Mb(a){return document.body.currentStyle?document.body.currentStyle[Ja(a)]:window.getComputedStyle(document.body).getPropertyValue(a)}
function Nb(a){function b(a){function c(){return Math.max(document.documentElement.clientHeight,window.innerHeight||0)/100}function e(){return Math.max(document.documentElement.clientWidth,window.innerWidth||0)/100}if(!a)return 0;var f=a.replace(/[0-9,\.]/g,"");a=a.match(/\d+/g);var k=parseInt(0<a.length?a[0]:"0",10);return parseInt({px:function(a){return a},em:function(a){return document.body.currentStyle?a*b(document.body.currentStyle.fontSize):a*parseFloat(window.getComputedStyle(document.body).fontSize)},
rem:function(a){return document.documentElement.currentStyle?a*b(document.documentElement.currentStyle.fontSize):a*parseFloat(window.getComputedStyle(document.documentElement).fontSize)},vw:function(a){return a*e()},vh:function(a){return a*c()},vmin:function(a){return a*Math.min(c(),e())},vmax:function(a){return a*Math.max(c(),e())},"%":function(){return document.body.clientWidth/100*k}}[f](k),10)}return(b("76px")+b(a)).toString()+"px"}
function Ob(a,b){var c=a.get("hideBanner",!0);if(b.pa&&navigator&&Number(navigator.doNotTrack))return!1;try{"string"===typeof c&&(c=n(c))}catch(e){c=!1}var c="number"===typeof c?new Date>=new Date(c):!c,d=b.K;"number"===typeof d&&(d=!1);return!document.getElementById("branch-banner")&&!document.getElementById("branch-banner-iframe")&&(c||d)&&(b.ra&&!A()||b.O&&"android"===A()||b.sa&&"ipad"===A()||b.T&&"ios"===A()||b.P&&"blackberry"===A()||b.S&&"windows_phone"===A()||b.R&&"kindle"===A())};function Pb(a,b){return"#branch-banner-iframe { position: "+("top"!==b||a?"fixed":"absolute")+"; }\n"}
function Qb(a,b){var c=".branch-banner-is-active { -webkit-transition: all 0.375s ease; transition: all 00.375s ease; }\n#branch-banner { width:100%; z-index: 99999; font-family: Helvetica Neue, Sans-serif; -webkit-font-smoothing: antialiased; -webkit-user-select: none; -moz-user-select: none; user-select: none; -webkit-transition: all 0.25s ease; transition: all 00.25s ease; }\n#branch-banner .button{ border: 1px solid "+(a.buttonBorderColor||("dark"===a.theme?"transparent":"#ccc"))+"; background: "+
(a.buttonBackgroundColor||"#fff")+"; color: "+(a.buttonFontColor||"#000")+"; cursor: pointer; margin-top: 0px; font-size: 14px; display: inline-block; margin-left: 5px; font-weight: 400; text-decoration: none; border-radius: 4px; padding: 6px 12px; transition: all .2s ease;}\n#branch-banner .button:hover { border: 1px solid "+(a.buttonBorderColorHover||("dark"===a.theme?"transparent":"#BABABA"))+"; background: "+(a.buttonBackgroundColorHover||"#E0E0E0")+"; color: "+(a.buttonFontColorHover||"#000")+
";}\n#branch-banner .button:focus { outline: none; }\n#branch-banner * { margin-right: 4px; position: relative; line-height: 1.2em; }\n#branch-banner-close { font-weight: 400; cursor: pointer; float: left; z-index: 2;padding: 0 5px 0 5px; margin-right: 0; }\n#branch-banner .content { width:100%; overflow: hidden; height: 76px; background: rgba(255, 255, 255, 0.95); color: #333; "+("top"===a.position?"border-bottom":"border-top")+': 1px solid #ddd; }\n#branch-banner-close { color: #000; font-size: 24px; top: 14px; opacity: .5; transition: opacity .3s ease; }\n#branch-banner-close:hover { opacity: 1; }\n#branch-banner .title { font-size: 18px; font-weight:bold; color: #555; }\n#branch-banner .description { font-size: 12px; font-weight: normal; color: #777; max-height: 30px; overflow: hidden; }\n#branch-banner .icon { float: left; padding-bottom: 40px; margin-right: 10px; margin-left: 5px; }\n#branch-banner .icon img { width: 63px; height: 63px; margin-right: 0; }\n#branch-banner .reviews { font-size:13px; margin: 1px 0 3px 0; color: #777; }\n#branch-banner .reviews .star { display:inline-block; position: relative; margin-right:0; }\n#branch-banner .reviews .star span { display: inline-block; margin-right: 0; color: #555; position: absolute; top: 0; left: 0; }\n#branch-banner .reviews .review-count { font-size:10px; }\n#branch-banner .reviews .star .half { width: 50%; overflow: hidden; display: block; }\n#branch-banner .content .left { padding: 6px 5px 6px 5px; }\n#branch-banner .vertically-align-middle { top: 50%; transform: translateY(-50%); -webkit-transform: translateY(-50%); -ms-transform: translateY(-50%); }\n#branch-banner .details > * { display: block; }\n#branch-banner .content .left { height: 63px; }\n#branch-banner .content .right { float: right; height: 63px; margin-bottom: 50px; padding-top: 22px; z-index: 1; }\n#branch-banner .right > div { float: left; }\n#branch-banner-action { top: 17px; }\n#branch-banner .content:after { content: ""; position: absolute; left: 0; right: 0; top: 100%; height: 1px; background: rgba(0, 0, 0, 0.2); }\n#branch-banner .theme-dark.content { background: rgba(51, 51, 51, 0.95); }\n#branch-banner .theme-dark #branch-banner-close{ color: #fff; text-shadow: 0 1px 1px rgba(0, 0, 0, .15); }\n#branch-banner .theme-dark .details { text-shadow: 0 1px 1px rgba(0, 0, 0, .15); }\n#branch-banner .theme-dark .title { color: #fff; }\n#branch-banner .theme-dark .description { color: #fff; }\n#branch-banner .theme-dark .reviews { color: #888; }\n#branch-banner .theme-dark .reviews .star span{ color: #fff; }\n#branch-banner .theme-dark .reviews .review-count{ color: #fff; }\n',
d=A();"ios"!==d&&"ipad"!==d||!a.T?"android"===d&&a.O?c+="#branch-banner { position: absolute; }\n#branch-banner .content .left .details .title { font-size: 12px; }\n#branch-mobile-action { white-space: nowrap; }\n#branch-banner .content .left .details .description { font-size: 11px; font-weight: normal; }\n@media only screen and (min-device-width: 320px) and (max-device-width: 350px) { #branch-banner .content .right { max-width: 120px; } }\n@media only screen and (min-device-width: 351px) and (max-device-width: 400px) and (orientation: landscape) { #branch-banner .content .right { max-width: 150px; } }\n@media only screen and (min-device-width: 401px) and (max-device-width: 480px) and (orientation: landscape) { #branch-banner .content .right { max-width: 180px; } }\n#branch-banner #branch-banner-close,#branch-banner .theme-dark #branch-banner-close { height:17px; width: 17px; text-align: center; font-size: 15px; top: 24px; border-radius:14px; border:0; line-height:14px; color:#b1b1b3; background:#efefef; padding: 0; opacity: 1; }\n#branch-banner .button { top: 0; text-decoration:none; border-bottom: 3px solid #A4C639; padding: 0 10px; height: 24px; line-height: 24px; text-align: center; color: #fff; margin-top: 2px; font-weight: bold; background-color: #A4C639; border-radius: 5px; }\n#branch-banner .button:hover { border-bottom:3px solid #8c9c29; background-color: #c1d739; }\n":
"blackberry"===d&&a.P?c+="#branch-banner { position: absolute; }\n#branch-banner .content .left .details .title { font-size: 12px; }\n#branch-mobile-action { white-space: nowrap; }\n#branch-banner .content .left .details .description { font-size: 11px; font-weight: normal; }\n@media only screen and (min-device-width: 320px) and (max-device-width: 350px) { #branch-banner .content .right { max-width: 120px; } }\n@media only screen and (min-device-width: 351px) and (max-device-width: 400px) and (orientation: landscape) { #branch-banner .content .right { max-width: 150px; } }\n@media only screen and (min-device-width: 401px) and (max-device-width: 480px) and (orientation: landscape) { #branch-banner .content .right { max-width: 180px; } }\n":
"windows_phone"===d&&a.S?c+="#branch-banner { position: absolute; }\n#branch-banner .content .left .details .title { font-size: 12px; }\n#branch-mobile-action { white-space: nowrap; }\n#branch-banner .content .left .details .description { font-size: 11px; font-weight: normal; }\n@media only screen and (min-device-width: 320px) and (max-device-width: 350px) { #branch-banner .content .right { max-width: 120px; } }\n@media only screen and (min-device-width: 351px) and (max-device-width: 400px) and (orientation: landscape) { #branch-banner .content .right { max-width: 150px; } }\n@media only screen and (min-device-width: 401px) and (max-device-width: 480px) and (orientation: landscape) { #branch-banner .content .right { max-width: 180px; } }\n":
"kindle"===d&&a.R?c+="#branch-banner { position: absolute; }\n#branch-banner .content .left .details .title { font-size: 12px; }\n#branch-mobile-action { white-space: nowrap; }\n#branch-banner .content .left .details .description { font-size: 11px; font-weight: normal; }\n@media only screen and (min-device-width: 320px) and (max-device-width: 350px) { #branch-banner .content .right { max-width: 120px; } }\n@media only screen and (min-device-width: 351px) and (max-device-width: 400px) and (orientation: landscape) { #branch-banner .content .right { max-width: 150px; } }\n@media only screen and (min-device-width: 401px) and (max-device-width: 480px) and (orientation: landscape) { #branch-banner .content .right { max-width: 180px; } }\n":
(c+="#branch-banner { position: fixed; min-width: 600px; }\n#branch-sms-block * { vertical-align: bottom; font-size: 15px; }\n#branch-sms-block { display: inline-block; }\n#branch-banner input{ border: 1px solid #ccc; font-weight: 400; border-radius: 4px; height: 30px; padding: 5px 7px 4px; width: 145px; font-size: 14px;}\n#branch-banner input:focus { outline: none; }\n#branch-banner input.error { color: rgb(194, 0, 0); border-color: rgb(194, 0, 0); }\n#branch-banner .branch-icon-wrapper { width:25px; height: 25px; vertical-align: middle; display: inline-block; margin-top: -18px; }\n@keyframes branch-spinner { 0% { transform: rotate(0deg); -webkit-transform: rotate(0deg); -ms-transform: rotate(0deg); } 100% { transform: rotate(360deg); -webkit-transform: rotate(360deg); -ms-transform: rotate(360deg); } }\n@-webkit-keyframes branch-spinner { 0% { transform: rotate(0deg); -webkit-transform: rotate(0deg); -ms-transform: rotate(0deg); } 100% { transform: rotate(360deg); -webkit-transform: rotate(360deg); -ms-transform: rotate(360deg); } }\n#branch-spinner { -webkit-animation: branch-spinner 1s ease-in-out infinite; animation: branch-spinner 1s ease-in-out infinite; transition: all 0.7s ease-in-out; border:2px solid #ddd; border-bottom-color:#428bca; width:80%; height:80%; border-radius:50%; -webkit-font-smoothing: antialiased !important; }\n#branch-banner .theme-dark input { border-color: transparent; }\n",
c=window.ActiveXObject?c+"#branch-banner .checkmark { color: #428bca; font-size: 22px; }\n":c+"#branch-banner .checkmark { stroke: #428bca; stroke-dashoffset: 745.74853515625; stroke-dasharray: 745.74853515625; -webkit-animation: dash 2s ease-out forwards; animation: dash 2s ease-out forwards; }\n@-webkit-keyframes dash { 0% { stroke-dashoffset: 745.748535 15625; } 100% { stroke-dashoffset: 0; } }\n@keyframes dash { 0% { stroke-dashoffset: 745.74853515625; } 100% { stroke-dashoffset: 0; } }\n"):c+=
"#branch-banner { position: absolute; }\n#branch-banner .content .left .details .title { font-size: 12px; }\n#branch-mobile-action { white-space: nowrap; }\n#branch-banner .content .left .details .description { font-size: 11px; font-weight: normal; }\n@media only screen and (min-device-width: 320px) and (max-device-width: 350px) { #branch-banner .content .right { max-width: 120px; } }\n@media only screen and (min-device-width: 351px) and (max-device-width: 400px) and (orientation: landscape) { #branch-banner .content .right { max-width: 150px; } }\n@media only screen and (min-device-width: 401px) and (max-device-width: 480px) and (orientation: landscape) { #branch-banner .content .right { max-width: 180px; } }\n";
c+=a.ea;a.D&&(c+="body { margin: 0; }\n",d=document.createElement("style"),d.type="text/css",d.id="branch-iframe-css",G(d),d.innerHTML="body { -webkit-transition: all 0.375s ease; transition: all 00.375s ease; }\n#branch-banner-iframe { box-shadow: 0 0 5px rgba(0, 0, 0, .35); width: 1px; min-width:100%; left: 0; right: 0; border: 0; height: 76px; z-index: 99999; -webkit-transition: all 0.25s ease; transition: all 00.25s ease; }\n"+(A()?Pb(a.la,a.position):Pb(a.fa,a.position)),(document.head||document.getElementsByTagName("head")[0]).appendChild(d));
d=document.createElement("style");d.type="text/css";d.id="branch-css";d.innerHTML=c;G(d);c=a.D?b.contentWindow.document:document;(c=c.head||c.getElementsByTagName("head")[0])&&"function"===typeof c.appendChild&&c.appendChild(d);"top"===a.position?b.style.top="-76px":"bottom"===a.position&&(b.style.bottom="-76px")};function Rb(a,b){var c;if(a.w||a.L){if(a.w){c="";for(var d=0;5>d;d++)c+='<span class="star"><svg class="star" fill="#555555" height="12" viewBox="3 2 20 19" width="12"><path d="M22 9.24l-7.19-.62L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21 12 17.27 18.18 21l-1.63-7.03L22 9.24zM12 15.4l-3.76 2.27 1-4.28-3.32-2.88 4.38-.38L12 6.1l1.71 4.04 4.38.38-3.32 2.88 1 4.28L12 15.4z"/><path d="M0 0h24v24H0z" fill="none"/><foreignObject display="none"><span class="star">\u2606</span></foreignObject></svg>',a.w>d&&
(c+=d+1>a.w&&a.w%1?'<span class="half"><svg fill="#555555" height="12" viewBox="3 2 20 19" width="12"><defs><path d="M0 0h24v24H0V0z" id="a"/></defs><clipPath id="b"><use overflow="visible" xlink:href="#a"/></clipPath><path clip-path="url(#b)" d="M22 9.24l-7.19-.62L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21 12 17.27 18.18 21l-1.63-7.03L22 9.24zM12 15.4V6.1l1.71 4.04 4.38.38-3.32 2.88 1 4.28L12 15.4z"/></svg><foreignObject display="none"><span class="half">\u2605</span></foreignObject></span>':'<span class="full"><svg fill="#555555" height="12" viewBox="3 2 20 19" width="12"><path d="M0 0h24v24H0z" fill="none"/><path d="M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z"/><path d="M0 0h24v24H0z" fill="none"/><foreignObject display="none"><span class="full">\u2605</span></foreignObject></svg> </span>'),
c+="</span>";c='<span class="stars">'+c+"</span>"}else c="";c='<div class="reviews">'+c+(a.L?'<span class="review-count">'+a.L+"</span>":"")+"</div>"}else c="";return'<div class="content'+(a.theme?" theme-"+a.theme:"")+'"><div class="right">'+b+'</div><div class="left">'+(a.ha?"":'<div id="branch-banner-close" class="branch-animation" aria-label="Close">&times;</div>')+'<div class="icon"><img src="'+a.icon+'" alt="Application icon"></div><div class="details vertically-align-middle"><div class="title">'+
a.title+"</div>"+c+'<div class="description">'+a.description+"</div></div></div></div>"}
function Sb(a,b){var c='<div id="branch-sms-form-container">'+(A()?'<a id="branch-mobile-action" class="button" href="#" target="_parent">'+((L(b)||{}).has_app?a.ma:a.ia)+"</a>":'<div class="branch-icon-wrapper" id="branch-loader-wrapper" style="opacity: 0;"><div id="branch-spinner"></div></div><div id="branch-sms-block"><form id="sms-form"><input type="phone" aria-label="Enter phone number" class="branch-animation" name="branch-sms-phone" id="branch-sms-phone" placeholder="'+a.oa+'"><button type="submit" id="branch-sms-send" class="branch-animation button">'+
a.qa+"</button></form></div>")+"</div>";if(a.D){var d=document.createElement("iframe");d.src="about:blank";d.style.overflow="hidden";d.scrolling="no";d.id="branch-banner-iframe";d.className="branch-animation";G(d);document.body.appendChild(d);var e=A(),c='<html><head></head><body class="'+("ios"===e||"ipad"===e?"branch-banner-ios":"android"===e?"branch-banner-android":"branch-banner-desktop")+'"><div id="branch-banner" class="branch-animation">'+Rb(a,c)+"</body></html>";d.contentWindow.document.open();
d.contentWindow.document.write(c);d.contentWindow.document.close()}else d=document.createElement("div"),d.id="branch-banner",d.className="branch-animation",d.innerHTML=Rb(a,c),document.body.appendChild(d);return c=d};function Tb(a,b,c,d){function e(){k();l.style.background="#FFD4D4";g.className="error";setTimeout(function(){l.style.background="#FFFFFF";g.className=""},2E3)}function f(){t=a.createElement("div");t.className="branch-icon-wrapper";t.id="branch-checkmark";t.style="opacity: 0;";t.innerHTML=window.ActiveXObject?'<span class="checkmark">&#x2713;</span>':'<svg version="1.1" id="Layer_1" x="0px" y="0px" viewBox="0 0 98.5 98.5" enable-background="new 0 0 98.5 98.5" xml:space="preserve"><path class="checkmark" fill="none" stroke-width="8" stroke-miterlimit="10" d="M81.7,17.8C73.5,9.3,62,4,49.2,4C24.3,4,4,24.3,4,49.2s20.3,45.2,45.2,45.2s45.2-20.3,45.2-45.2c0-8.6-2.4-16.6-6.5-23.4l0,0L45.6,68.2L24.7,47.3"/></svg>';
p.appendChild(t);l.style.opacity="0";g.style.opacity="0";m.style.opacity="0";setTimeout(function(){t.style.opacity="1"},20);g.value=""}function k(){l.removeAttribute("disabled");g.removeAttribute("disabled");l.style.opacity="1";g.style.opacity="1";m.style.opacity="0"}var g=a.getElementById("branch-sms-phone"),l=a.getElementById("branch-sms-send"),m=a.getElementById("branch-loader-wrapper"),p=a.getElementById("branch-sms-form-container"),t;if(g){var R=g.value;/^\d{7,}$/.test(R.replace(/[\s()+\-\.]|ext/gi,
""))?(N(b,"willSendBannerSMS"),l.setAttribute("disabled",""),g.setAttribute("disabled",""),l.style.opacity=".4",g.style.opacity=".4",m.style.opacity="1",g.className="",b.sendSMS(R,d,c,function(a){a?(N(b,"sendBannerSMSError"),e()):(N(b,"didSendBannerSMS"),f(),setTimeout(function(){p.removeChild(t);k()},3E3))})):e()}}
function Ub(a,b,c,d){function e(a,c){"function"===typeof a&&(c=a,a={});a=a||{};"top"===b.position?k.style.top="-76px":"bottom"===b.position&&(k.style.bottom="-76px");"number"===typeof b.K?d.set("hideBanner",Lb(b.K),!0):d.set("hideBanner",!0,!0);a.X?("top"===b.position?document.body.style.marginTop=m:"bottom"===b.position&&(document.body.style.marginBottom=t),Kb("branch-banner-is-active"),M(k),M(document.getElementById("branch-css")),c()):(setTimeout(function(){M(k);M(document.getElementById("branch-css"));
c()},270),setTimeout(function(){"top"===b.position?document.body.style.marginTop=m:"bottom"===b.position&&(document.body.style.marginBottom=t);Kb("branch-banner-is-active")},20))}function f(){"top"===b.position?k.style.top="0":"bottom"===b.position&&(k.style.bottom="0");N(a,"didShowBanner")}if(!Ob(d,b))return N(a,"willNotShowBanner"),null;N(a,"willShowBanner");var k=Sb(b,d);Qb(b,k);c.channel=c.channel||"app banner";var g=b.D?k.contentWindow.document:document;if(A()){b.open_app=b.na;b.append_deeplink_path=
b.ba;b.make_new_link=b.ka;b.deepview_type="banner";a.deepview(c,b);var l=g.getElementById("branch-mobile-action");l&&(l.onclick=function(b){b.preventDefault();a.deepviewCta()})}else g.getElementById("sms-form")?g.getElementById("sms-form").addEventListener("submit",function(d){d.preventDefault();Tb(g,a,b,c)}):k.onload=function(){g=k.contentWindow.document;g.getElementById("sms-form")&&g.getElementById("sms-form").addEventListener("submit",function(d){d.preventDefault();Tb(g,a,b,c)})};var l=Mb("margin-top"),
m=document.body.style.marginTop,p=Mb("margin-bottom"),t=document.body.style.marginBottom,R=g.getElementById("branch-banner-close");R&&(R.onclick=function(b){b.preventDefault();N(a,"willCloseBanner");e({},function(){N(a,"didCloseBanner")})});Jb(document.body,"branch-banner-is-active");"top"===b.position?document.body.style.marginTop=Nb(l):"bottom"===b.position&&(document.body.style.marginBottom=Nb(p));b.X?f():setTimeout(f,20);return e};var Vb,Wb=1,O="top",Xb="absolute",P="76px",Yb=!1,Zb=!1,Q=[],$b=window.innerHeight,ac=window.innerWidth;window.innerHeight<window.innerWidth&&($b=window.innerWidth,ac=window.innerHeight);
var bc=0,cc=0,dc=/<script type="application\/json">((.|\s)*?)<\/script>/,ec=/<script type="text\/javascript">((.|\s)*?)<\/script>/,fc=/<style type="text\/css" id="branch-css">((.|\s)*?)<\/style>/,gc=/#branch-banner-spacer {((.|\s)*?)}/,hc=/margin-bottom: (.*?);/,S=null,ic=null,jc=!1,kc=!1,lc=!1,mc=!1,nc=!1,oc="",pc=[],T=null;function qc(a){if(a=a.match(dc))return n(a[1])}
function rc(){var a=document.createElement("style");a.type="text/css";a.id="branch-iframe-css";bc=Mb("margin-top");var b=+bc.slice(0,-2);cc=Mb("margin-bottom");var c=+cc.slice(0,-2),d=+P.slice(0,-2);"top"===O?document.body.style.marginTop=(+d+b).toString()+"px":"bottom"===O&&(document.body.style.marginBottom=(+d+c).toString()+"px");0<Q.length&&Q.forEach(function(a){var b,c=window.getComputedStyle(a);c&&(b=Yb&&"fixed"===c.getPropertyValue("position"));b||(a.style.marginTop=P)});"top"===oc&&oc!==O&&
nc&&pc&&0<pc.length&&pc.forEach(function(a){a.style.marginTop=0});nc=!1;oc="";pc=[];mc=!1;a.innerHTML=sc();G(a);document.head.appendChild(a)}
function sc(){var a="",b="";document.body.style.transition="";document.getElementById("branch-banner-iframe")&&(document.getElementById("branch-banner-iframe").style.transition="");lc||(a="body { -webkit-transition: all 0.375s ease; }\n",document.body.style.transition="all 00.375s ease",b="-webkit-transition: all 0.25s ease; transition: all 00.25s ease;");return(a?a:"")+("#branch-banner-iframe { box-shadow: 0 0 5px rgba(0, 0, 0, .35); width: 1px; min-width:100%; left: 0; right: 0; border: 0; height: "+
P+"; z-index: 99999; "+b+" }\n#branch-banner-iframe { position: "+Xb+"; }\n@media only screen and (orientation: landscape) { body { "+("top"===O?"margin-top: ":"margin-bottom: ")+(Yb?ac+"px":P)+"; }\n#branch-banner-iframe { height: "+(Yb?ac+"px":P)+"; }")}function tc(a){Jb(document.body,"branch-banner-is-active");Yb&&"fixed"===Xb&&Jb(document.body,"branch-banner-no-scroll");setTimeout(function(){"top"===O?a.style.top="0":"bottom"===O&&(a.style.bottom="0");N(S,"didShowJourney",T);jc=!0},20)}
function uc(a){a=a.globalDismissPeriod;if("number"===typeof a){if(-1===a)a=!0;else{var b=new Date;a=b.setSeconds(b.getSeconds()+a)}return a}}
function vc(a,b,c,d,e,f,k){var g=U;d&&e&&(Array.prototype.forEach.call(e.contentWindow.document.querySelectorAll("#branch-mobile-action"),function(a){a.addEventListener("click",function(){N(S,"didClickJourneyCTA",T);mc=!0;d();wc(e)})}),xc(".branch-banner-continue","didClickJourneyContinue",c,e,a,b,f,k,g),xc(".branch-banner-close","didClickJourneyClose",c,e,a,b,f,k,g))}
function xc(a,b,c,d,e,f,k,g,l){Array.prototype.forEach.call(d.contentWindow.document.querySelectorAll(a),function(a){a.addEventListener("click",function(){zc(b,c,d,e,f,k,g,l)})})}function Ac(a,b,c){var d=a.get("journeyDismissals",!0),d=d?n(d):{};d[c]={view_id:b,dismiss_time:Date.now()};a.set("journeyDismissals",q(d),!0)}function Bc(a){var b={},c=C();c&&0<Object.keys(c).length&&(b.hosted_deeplink_data=c);return a.I(Cc(null,b),null,S,!0)}
function zc(a,b,c,d,e,f,k,g){var l=k?0:uc(f);N(S,a,T);mc=!0;wc(c);if(!k)if(void 0!==l&&b.set("globalJourneysDismiss",l,!0),Ac(b,d,e),f.dismissRedirect)window.location=f.dismissRedirect;else{var m=function(){S.removeListener(m);var a=Bc(g);S.b(ub,a,function(b,c){!b&&"object"===typeof c&&c.template&&g.N(c,null,!1)&&g.J(c.template,a,a.branch_view_id||c.event_data.branch_view_data.id,c.event_data.branch_view_data,!1,c.journey_link_data)})};S.addListener("branch_internal_event_didCloseJourney",m)}}
function Cc(a,b){return z({url:a&&a.url||Ca(),user_agent:navigator.userAgent,language:navigator.language,screen_width:screen.width||-1,screen_height:screen.height||-1},b||{})}
function wc(a,b){if(lc&&!kc){document.body.style.transition="all 00.375s ease";document.getElementById("branch-banner-iframe").style.transition="all 00.25s ease";var c=document.getElementById("branch-iframe-css").innerHTML+"\n";document.getElementById("branch-iframe-css").innerHTML="";document.getElementById("branch-iframe-css").innerHTML=c+"body { -webkit-transition: all 0.375s ease; }\n#branch-banner-iframe { -webkit-transition: all 0.25s ease; }\n"}"top"===O?a.style.top="-"+P:"bottom"===O&&(a.style.bottom=
"-"+P);N(S,"willCloseJourney",T);setTimeout(function(){M(a);M(document.getElementById("branch-css"));M(document.getElementById("branch-iframe-css"));M(document.getElementById("branch-journey-cta"));(!kc||mc)&&Q&&0<Q.length?Q.forEach(function(a){a.style.marginTop=0}):(nc=kc,oc=O,pc=Q);"top"===O?document.body.style.marginTop=bc:"bottom"===O&&(document.body.style.marginBottom=cc);Kb("branch-banner-is-active");Kb("branch-banner-no-scroll");N(S,"didCloseJourney",T);b||N(S,"branch_internal_event_didCloseJourney",
T);jc=!1},kc?0:270)}function Dc(a){var b={banner_id:Vb};if(a&&"object"===typeof a&&0<Object.keys(a).length){var c=["browser_fingerprint_id","app_id","source","open_app","link_click_id"];if(a&&"object"===typeof a&&!Array.isArray(a)&&0<Object.keys(a).length&&c&&Array.isArray(c)&&0<c.length)for(var d in a)a.hasOwnProperty(d)&&-1<c.indexOf(d)&&delete a[d];b.journey_link_data={};z(b.journey_link_data,a)}T=b};var U={};
function Ec(a,b){var c=b?"OPEN":"GET",d=a,e=qc(d);e&&e.bannerHeight&&e.position&&e.sticky?(P=e.bannerHeight,O=e.position,Xb=e.sticky):(d=d.match(gc))?(O="top",(d=d[1].match(hc))&&(P=d[1]),Xb="absolute"):(O="bottom",Xb="fixed");if(-1!==P.indexOf("vh")||-1!==P.indexOf("%"))d=P.indexOf("vh")?P.slice(0,-2):P.slice(0,-1),P=d/100*$b+"px",100>d?Zb=!0:Yb=!0;if(d=qc(a)){var f;b&&d&&d.ctaText&&d.ctaText.has_app?f=d.ctaText.has_app:d&&d.ctaText&&d.ctaText.no_app&&(f=d.ctaText.no_app);c=f;Q=[];if(d&&d.injectorSelector&&
(f=document.querySelectorAll(d.injectorSelector)))for(d=0;d<f.length;d++)Q.push(f[d].parentElement)}f=(f=a.match(fc))?f[1]:void 0;if(d=a.match(ec))d=d[1],e=document.createElement("script"),e.id="branch-journey-cta",G(e),e.innerHTML=d,document.body.appendChild(e);var d=a,e=d.match(dc),k=d.match(ec),g=d.match(fc);e&&(d=d.replace(dc,""));k&&(d=d.replace(ec,""));g&&(d=d.replace(fc,""));a=d;d=document.createElement("iframe");d.src="about:blank";d.style.overflow="hidden";d.scrolling="no";d.id="branch-banner-iframe";
d.className="branch-animation";d.title="Branch Banner";d.setAttribute("aria-label","Branch Banner");G(d);document.body.appendChild(d);e=A();e='<html><head></head><body class="'+("ios"===e||"ipad"===e?"branch-banner-ios":"android"===e?"branch-banner-android":"branch-banner-desktop")+'">'+a+"</body></html>";d.contentWindow.document.open();d.contentWindow.document.write(e);d.contentWindow.document.close();rc();e=document.createElement("style");e.type="text/css";e.id="branch-css";e.innerHTML=f;G(e);f=
d.contentWindow.document;f.head.appendChild(e);if(Zb||Yb){var l=f.getElementsByClassName("branch-banner-content")[0];l&&(l.style.height=P)}"top"===O?d.style.top="-"+P:"bottom"===O&&(d.style.bottom="-"+P);try{var l=f.getElementsByClassName("branch-banner-content")[0],m=window.getComputedStyle(l).getPropertyValue("background-color").split(", ");m[3]&&!parseFloat(m[3])&&(d.style.boxShadow="none")}catch(p){}d.contentWindow.document.getElementById("branch-mobile-action").innerHTML=c;N(S,"willShowJourney",
T);tc(d);return d}U.N=function(a,b,c){if(document.getElementById("branch-banner")||document.getElementById("branch-banner-iframe")||document.getElementById("branch-banner-container")||!A()||!a.event_data||!a.template)return!1;if(c)return!0;(a=!a.event_data.branch_view_data.id||b&&b.no_journeys)||(a=S,b=a.c.get("globalJourneysDismiss",!0),!0===b||b>Date.now()?a=!0:(a.c.remove("globalJourneysDismiss",!0),a=!1));return a?(U.za=1,!1):!0};
U.ja=function(a){S.b(tb,{event:"pageview",journey_displayed:!0,audience_rule_id:a.audience_rule_id,branch_view_id:a.branch_view_id},function(){})};
U.J=function(a,b,c,d,e,f){Vb=c;Dc(f);var k=d.audience_rule_id;(f=document.getElementById("branch-iframe-css"))&&f.parentElement.removeChild(f);f=document.createElement("div");f.id="branch-banner";document.body.insertBefore(f,null);Jb(f,"branch-banner-is-active");var g=!1,l=b.callback_string,m=null,p=null,t=S.c;if(a){var R=qc(a)||{},yc=window.setTimeout(function(){window[l]=function(){}},pa);window[l]=function(a){window.clearTimeout(yc);g||(p=a,vc(c,k,t,p,m,R,e))};ic=m=Ec(a,b.has_app_websdk);if(null===
m){g=!0;return}vc(c,k,t,p,m,R,e);qa&&(u["journey-load-time"]=(Date.now()-window.performance.timing.navigationStart).toString())}document.body.removeChild(f);v||e||U.ja(d)};
U.I=function(a,b,c,d){S=c;b||(b={});a||(a={});lc=b.disable_entry_animation||!1;kc=b.disable_exit_animation||!1;var e=z({},c.H),f=L(c.c)||{},k=f.hasOwnProperty("has_app")?f.has_app:!1,g=c.c.get("journeyDismissals",!0),l=(b.user_language||Ma()||"en").toLowerCase()||null,m=Ya(V(c)),p;(p=b.branch_view_id)||(p="_branch_view_id".replace(/[\[\]]/g,"\\$&"),p=(p=(new RegExp("[?&]"+p+"(=([^&#]*)|&|#|$)")).exec(Ca()))&&p[2]?decodeURIComponent(p[2].replace(/\+/g," ")):"");p=p||null;c=b.make_new_link?null:Ea(V(c));
e.event=d?"dismiss":"pageview";e.metadata=a;e=E(e,"initial_referrer",m);e=E(e,"branch_view_id",p);e=E(e,"no_journeys",b.no_journeys);e=E(e,"is_iframe",x());e=E(e,"journey_dismissals",g);e.user_language=l;e.open_app=b.open_app||!1;e.has_app_websdk=k;e.feature="journeys";e.callback_string="branch_view_callback__"+Wb++;e.data||(e.data={});e.data=z(C(),e.data);e.data=z(Ba(f||{}),e.data);c&&(e.data.link_click_id=c);(a=f.data?JSON.parse(f.data):null)&&a["+referrer"]&&(e.data["+referrer"]=a["+referrer"]);
return e=Da(e)};var W={androidAppIndexingTagsPresent:!1,iosAppIndexingTagsPresent:!1,androidDetailsComplete:!1,iosDetailsComplete:!1},X={};function Fc(a){var b;"android"===a&&W.androidDetailsComplete&&(b="android-app://"+X.androidPackageName+"/"+X.androidURL,b=Gc(b),Hc(b));"ios"===a&&W.iosDetailsComplete&&(b="ios-app://"+X.iosAppId+"/"+X.iosURL,b=Gc(b),Hc(b))}
function Gc(a){var b={"~channel":"Firebase App Indexing","~feature":"Auto App Indexing",$canonical_url:Ca()};if("object"===typeof X.data)for(var c in X.data)X.data.hasOwnProperty(c)&&!b.hasOwnProperty(c)&&(b[c]=X.data[c]);return a+(-1<a.indexOf("?")?"&":"?")+"link_click_id=a-"+btoa(q(b))}function Hc(a){var b=document.createElement("link");b.setAttribute("rel","alternate");b.setAttribute("href",a);document.head.appendChild(b)}
function Ic(a){"android"===a&&"string"===typeof X.androidPackageName&&"string"===typeof X.androidURL&&(W.androidDetailsComplete=!0,Fc("android"));"ios"===a&&"string"===typeof X.iosAppId&&"string"===typeof X.iosURL&&(W.iosDetailsComplete=!0,Fc("ios"))}
function Jc(a){for(var b=document.getElementsByTagName("meta"),c=0;c<b.length;c++){var d=b[c];"ios"===a&&"al:ios:app_store_id"===d.getAttribute("property")&&(X.iosAppId=d.getAttribute("content"));"ios"===a&&"al:ios:url"===d.getAttribute("property")&&(X.iosURL=d.getAttribute("content").replace("://","/"));"android"===a&&"al:android:package"===d.getAttribute("property")&&(X.androidPackageName=d.getAttribute("content"));"android"===a&&"al:android:url"===d.getAttribute("property")&&(X.androidURL=d.getAttribute("content").replace("://",
"/"))}Ic(a)};var Kc;
function Y(a,b,c){return function(){var d=this,e,f,k=arguments[arguments.length-1];a&&"function"===typeof k?(e=Array.prototype.slice.call(arguments,0,arguments.length-1)||[],f=k):(f=function(){},e=Array.prototype.slice.call(arguments));d.$(function(g){function k(b,c){try{if(b&&!a)throw b;1===a?f(b):2===a&&f(b,c)}finally{g()}}if(!c){if(1===d.j)return k(Error(w("Branch SDK initialization pending and a Branch method was called outside of the queue order")),null);if(2===d.j)return k(Error(w("Branch SDK initialization failed, so further methods cannot be called",d.i,
d.l)),null);if(0===d.j||!d.j)return k(Error(w("Branch SDK not initialized")),null)}e.unshift(k);b.apply(d,e)})}}function Z(){if(!(this instanceof Z))return Kc||(Kc=new Z),Kc;this.$=ma();this.c=new vb(["session","cookie","pojo"]);this.ca=new Cb;this.g=[];this.V="web2.49.0";this.i=this.j=0;this.l=null}
Z.prototype.b=function(a,b,c){this.U&&(b.app_id=this.U);this.h&&(b.branch_key=this.h);(a.a&&a.a.session_id||a.f&&a.f.session_id)&&this.G&&(b.session_id=this.G);(a.a&&a.a.identity_id||a.f&&a.f.identity_id)&&this.v&&(b.identity_id=this.v);(a.a&&a.a.link_click_id||a.f&&a.f.link_click_id)&&this.Z&&(b.link_click_id=this.Z);(a.a&&a.a.sdk||a.f&&a.f.sdk)&&this.V&&(b.sdk=this.V);(a.a&&a.a.browser_fingerprint_id||a.f&&a.f.browser_fingerprint_id)&&this.B&&(b.browser_fingerprint_id=this.B);v&&(b.tracking_disabled=
v);return Ib(this.ca,a,b,this.c,function(a,b){c(a,b)})};function V(a){var b=L(a.c);return(b=b&&b.referring_link)?b:(a=a.c.get("click_id"))?"https://web.archive.org/web/20190309201851/https://bnc.lt/c/"+a:null}function N(a,b,c){for(var d=0;d<a.g.length;d++)a.g[d].event&&a.g[d].event!==b||a.g[d].listener(b,c)}
Z.prototype.init=Y(2,function(a,b,c){function d(){var a,b;"undefined"!==typeof document.hidden?(a="hidden",b="visibilitychange"):"undefined"!==typeof document.mozHidden?(a="mozHidden",b="mozvisibilitychange"):"undefined"!==typeof document.msHidden?(a="msHidden",b="msvisibilitychange"):"undefined"!==typeof document.webkitHidden&&(a="webkitHidden",b="webkitvisibilitychange");b&&!g.da&&(g.da=!0,document.addEventListener(b,function(){document[a]||(f(null),"function"===typeof g.s&&g.s())},!1))}function e(b,
d){d&&(d=k(d),v||za(g.c,d,p),g.j=3,d.data_parsed=d.data&&0!==d.data.length?n(d.data):{});if(b)return g.j=2,g.i||(g.i=1,g.l=b.message),a(b,d&&Aa(d));try{a(b,d&&Aa(d))}catch(Qc){}finally{g.renderFinalize()}var e=Sa(),f=F(c.metadata,"object")?c.metadata:null;f&&(f=Za(e.hosted_deeplink_data,f))&&0<Object.keys(f).length&&(e.hosted_deeplink_data=f);var m=U.I(Cc(c,e),c,g,!1);g.renderQueue(function(){g.b(tb,m,function(a,b){if(!a&&"object"===typeof b){var d=m.branch_view_id?!0:!1;U.N(b,c,d)?U.J(b.template,
m,m.branch_view_id||b.event_data.branch_view_data.id,b.event_data.branch_view_data,d,b.journey_link_data):((b.auto_branchify||!l&&Ia("branchify_url")&&V(g))&&this.branch.deepview({},{make_new_link:!1,open_app:!0,auto_branchify:!0}),N(S,"willNotShowJourney"))}v&&(ua=!0)})})}function f(a){var b={sdk:"2.49.0",branch_key:g.h},c=L(g.c)||{},d=L(g.c,!0)||{};d.browser_fingerprint_id&&(b._t=d.browser_fingerprint_id);Ha()||g.b(ab,b,function(a,b){a&&(g.i=3,g.l=a.message);b&&(c.browser_fingerprint_id=b)});g.b(ob,
{browser_fingerprint_id:c.browser_fingerprint_id},function(b,d){b&&(g.i=4,g.l=b.message);b||!d||c.has_app||(c.has_app=!0,Bb(g.c,c),N(g,"didDownloadApp"));a&&a(null,c)})}function k(a){a.link_click_id&&(g.Z=a.link_click_id.toString());a.session_id&&(g.G=a.session_id.toString());a.identity_id&&(g.v=a.identity_id.toString());a.link&&(g.M=a.link);if(a.referring_link){var b=a.referring_link;a.referring_link=b?"http"!==b.substring(0,4)?"https://web.archive.org/web/20190309201851/https://bnc.lt"+b:b:null}!a.click_id&&a.referring_link&&(a.click_id=
Ea(a.referring_link));g.B=a.browser_fingerprint_id;return a}qa&&(u["init-began-at"]=(Date.now()-window.performance.timing.navigationStart).toString());var g=this;g.j=1;-1<b.indexOf("key_")?g.h=b:g.U=b;c=c&&F(c,"object")?c:{};na=(g.F=c)&&c.retries&&Number.isInteger(c.retries)?c.retries:na;oa=c&&c.retry_delay&&Number.isInteger(c.retry_delay)?c.retry_delay:oa;pa=c&&c.timeout&&Number.isInteger(c.timeout)?c.timeout:pa;r=c&&c.nonce?c.nonce:r;v=c&&c.tracking_disabled&&!0===c.tracking_disabled?!0:!1;ua=!1;
v&&ya(g);b=L(g.c);var l=c&&"undefined"!==typeof c.branch_match_id&&null!==c.branch_match_id?c.branch_match_id:null,m=l||Ia("_branch_match_id")||Fa(),p=!b||!b.identity_id;g.A=!!g.c.get("branch_view_enabled");if(b&&b.session_id&&!m&&!Ia("branchify_url"))Bb(g.c,{data:""}),Bb(g.c,{referring_link:""}),d(),f(e);else{b={sdk:"2.49.0",branch_key:g.h};var t=L(g.c,!0)||{};t.browser_fingerprint_id&&(b._t=t.browser_fingerprint_id);Ha()?g.b($a,{link_identifier:m,browser_fingerprint_id:m||t.browser_fingerprint_id,
alternative_browser_fingerprint_id:t.browser_fingerprint_id,options:c,initial_referrer:Ya(V(g))},function(a,b){a&&(g.i=2,g.l=a.message);a||"object"!==typeof b||(b.branch_view_enabled&&(g.A=!!b.branch_view_enabled,g.c.set("branch_view_enabled",g.A)),m&&(b.click_id=m));d();e(a,b)}):g.b(ab,b,function(a,b){if(a)return g.i=3,g.l=a.message,e(a,null);g.b($a,{link_identifier:m,browser_fingerprint_id:m||b,alternative_browser_fingerprint_id:t.browser_fingerprint_id,options:c,initial_referrer:Ya(V(g))},function(a,
b){a&&(g.i=2,g.l=a.message);a||"object"!==typeof b||(b.branch_view_enabled&&(g.A=!!b.branch_view_enabled,g.c.set("branch_view_enabled",g.A)),m&&(b.click_id=m));d();e(a,b)})})}},!0);Z.prototype.renderQueue=Y(0,function(a,b){this.aa?b():(this.m=this.m||[],this.m.push(b));a(null,null)});Z.prototype.renderFinalize=Y(2,function(a){this.m&&0<this.m.length&&(this.m.forEach(function(a){a.call(this)}),delete this.m);this.aa=!0;a(null,null)});
Z.prototype.data=Y(2,function(a){var b=Aa(L(this.c));b.referring_link=V(this);b.data_parsed=b.data&&0!==b.data.length?n(b.data):{};a(null,b)});Z.prototype.first=Y(2,function(a){a(null,Aa(L(this.c,!0)))});Z.prototype.setIdentity=Y(2,function(a,b){var c=this;this.b(hb,{identity:b},function(d,e){d&&a(d);e=e||{};c.v=e.identity_id?e.identity_id.toString():null;c.M=e.link;c.C=b;e.referring_data_parsed=e.referring_data?n(e.referring_data):null;Bb(c.c,e);a(null,e)})});
Z.prototype.logout=Y(1,function(a){var b=this;this.b(gb,{},function(c,d){c&&a(c);d=d||{};d={data_parsed:null,data:null,referring_link:null,click_id:null,link_click_id:null,identity:null,session_id:d.session_id,identity_id:d.identity_id,link:d.link,device_fingerprint_id:b.ga||null};b.M=d.link;b.G=d.session_id;b.v=d.identity_id;b.C=d.identity;Bb(b.c,d);a(null)})});Z.prototype.getBrowserFingerprintId=Y(2,function(a){var b=L(this.c,!0)||{};a(null,b.browser_fingerprint_id||null)});
Z.prototype.track=Y(1,function(a,b,c,d){c=c||{};d=d||{};r=d.nonce?d.nonce:r;if("pageview"===b){(b=Za(C(),c))&&0<Object.keys(b).length&&(c.hosted_deeplink_data=b);var e=U.I(Cc(d,c),d,this,!1);this.b(tb,e,function(b,c){if(!b&&"object"===typeof c){var f=e.branch_view_id?!0:!1;U.N(c,d,f)?U.J(c.template,e,e.branch_view_id||c.event_data.branch_view_data.id,c.event_data.branch_view_data,f,c.journey_link_data):N(S,"willNotShowJourney")}"function"===typeof a&&a.apply(this,arguments)})}else this.b(pb,{event:b,
metadata:z({url:Ca(),user_agent:navigator.userAgent,language:navigator.language},c),initial_referrer:Ya(V(this))},function(b,c){"function"===typeof a&&a.apply(this,arguments)})});
Z.prototype.logEvent=Y(1,function(a,b,c,d){b=F(b,"string")?b:null;c=F(c,"object")?c:null;-1<Ta.indexOf(b)?(d=F(d,"array")?d:null,c=Va(c),this.b(rb,{name:b,user_data:q(Xa(this)),custom_data:q(c&&c.custom_data||{}),event_data:q(c&&c.event_data||{}),content_items:q(d||[])},function(b){return a(b||null)})):this.b(sb,{name:b,user_data:q(Xa(this)),custom_data:q(Wa(c)||{})},function(b){return a(b||null)})});
Z.prototype.link=Y(2,function(a,b){var c=Da(b),d=this.h;this.b(mb,c,function(b,f){if(b)return a(null,wa(d,c));a(null,f&&f.url)})});
Z.prototype.sendSMS=Y(1,function(a,b,c,d){function e(c){f.b(cb,{link_url:c,phone:b},function(b){a(b||null)})}var f=this;if("function"===typeof d)d={};else if("undefined"===typeof d||null===d)d={};d.make_new_link=d.make_new_link||!1;c.channel&&"app banner"!==c.channel||(c.channel="sms");var k=V(f);k&&!d.make_new_link?e(Ea(k)):f.b(mb,Da(c),function(b,c){if(b)return a(b);var d=c.url;/(bnc.lt\/|app\.link\/)/.test(d)||(d="https://web.archive.org/web/20190309201851/https://bnc.lt/"+La(d));f.b(bb,{link_url:d,click:"click"},function(b,c){if(b)return a(b);
e(c.click_id)})})});
Z.prototype.deepview=Y(1,function(a,b,c){var d=this;c||(c={});c.deepview_type="undefined"===typeof c.deepview_type?"deepview":"banner";b.data=z(C(),b.data);b=x()?z({is_iframe:!0},b):b;b=Da(b);var e=wa(this.h,b);if(c.open_app||null===c.open_app||"undefined"===typeof c.open_app)b.open_app=!0;b.append_deeplink_path=!!c.append_deeplink_path;b.deepview_type=c.deepview_type;var f=V(d);f&&!c.make_new_link&&(b.link_click_id=Ea(f));b.banner_options=c;c.auto_branchify&&(b.auto_branchify=!0);d.s=ga(this.b,d,
nb,b,function(b,c){if(b)return v||(d.o=function(){window.top.location=e}),a(b);"function"===typeof c&&(d.o=c);a(null)});d.s()});
Z.prototype.deepviewCta=Y(1,function(a){if("undefined"===typeof this.o)return v?a(Error("Requested operation cannot be completed since tracking is disabled"),null):a(Error("Cannot call Deepview CTA, please call branch.deepview() first"),null);window.event&&(window.event.preventDefault?window.event.preventDefault():window.event.returnValue=!1);N(this,"didDeepviewCTA");this.o();a()});Z.prototype.referrals=Y(2,function(a){this.b(ib,{},a)});
Z.prototype.getCode=Y(2,function(a,b){b.type="credit";b.creation_source=b.creation_source||2;this.b(db,b,a)});Z.prototype.validateCode=Y(1,function(a,b){this.b(eb,{code:b},a)});Z.prototype.applyCode=Y(1,function(a,b){this.b(fb,{code:b},a)});Z.prototype.credits=Y(2,function(a){this.b(kb,{branch_key:this.h,identity:this.C},a)});Z.prototype.creditHistory=Y(2,function(a,b){this.b(jb,b||{},a)});Z.prototype.redeem=Y(1,function(a,b,c){this.b(lb,{amount:b,bucket:c},function(b){a(b||null)})});
Z.prototype.addListener=function(a,b){"function"===typeof a&&void 0===b&&(b=a,a=null);b&&this.g.push({listener:b,event:a||null})};Z.prototype.removeListener=function(a){a&&(this.g=this.g.filter(function(b){if(b.listener!==a)return b}))};function Lc(a,b,c){c=c||{};try{a.H=n(q(c))}finally{a.H=a.H||{}}b()}Z.prototype.setBranchViewData=Y(1,function(a,b){Lc.call(null,this,a,b)});
Z.prototype.closeJourney=Y(1,function(a){var b=this;b.renderQueue(function(){if(ic&&jc)N(b,"didCallJourneyClose",T),wc(ic,!0);else return a("Journey already dismissed.")});a()});
Z.prototype.banner=Y(1,function(a,b,c){c=c||{};Lc.call(null,this,function(){},c);"undefined"===typeof b.showAgain&&"undefined"!==typeof b.forgetHide&&(b.showAgain=b.forgetHide);var d={icon:D(b.icon)||"",title:D(b.title)||"",description:D(b.description)||"",L:"number"===typeof b.reviewCount&&0<b.reviewCount?Math.floor(b.reviewCount):null,w:"number"===typeof b.rating&&5>=b.rating&&0<b.rating?Math.round(2*b.rating)/2:null,ma:D(b.openAppButtonText)||"View in app",ia:D(b.downloadAppButtonText)||"Download App",
qa:D(b.sendLinkText)||"Send Link",oa:D(b.phonePreviewText)||"(999) 999-9999",D:"undefined"===typeof b.iframe?!0:b.iframe,T:"undefined"===typeof b.showiOS?!0:b.showiOS,sa:"undefined"===typeof b.showiPad?!0:b.showiPad,O:"undefined"===typeof b.showAndroid?!0:b.showAndroid,P:"undefined"===typeof b.showBlackberry?!0:b.showBlackberry,S:"undefined"===typeof b.showWindowsPhone?!0:b.showWindowsPhone,R:"undefined"===typeof b.showKindle?!0:b.showKindle,ra:"undefined"===typeof b.showDesktop?!0:b.showDesktop,
ha:!!b.disableHide,K:"number"===typeof b.forgetHide?b.forgetHide:!!b.forgetHide,pa:"undefined"===typeof b.respectDNT?!1:b.respectDNT,position:b.position||"top",ea:b.customCSS||"",la:"undefined"===typeof b.mobileSticky?!1:b.mobileSticky,fa:"undefined"===typeof b.desktopSticky?!0:b.desktopSticky,va:b.buttonBorderColor||"",ta:b.buttonBackgroundColor||"",xa:b.buttonFontColor||"",wa:b.buttonBorderColorHover||"",ua:b.buttonBackgroundColorHover||"",ya:b.buttonFontColorHover||"",ka:!!b.make_new_link,na:!!b.open_app,
X:!!b.immediate,ba:!!b.append_deeplink_path};"undefined"!==typeof b.showMobile&&(d.T=b.showMobile,d.O=b.showMobile,d.P=b.showMobile,d.S=b.showMobile,d.R=b.showMobile);c.data=z(C(),c.data);var e=this;e.renderQueue(function(){e.W=Ub(e,d,c,e.c)});a()});Z.prototype.closeBanner=Y(0,function(a){var b=this;b.renderQueue(function(){b.W&&(N(b,"willCloseBanner"),b.W(function(){N(b,"didCloseBanner")}))});a()});
Z.prototype.autoAppIndex=Y(1,function(a,b){b=b||{};var c=document.getElementsByTagName("link"),d=c.length;if(d)for(var e=0;e<d;e++){var f=c[e],k=f.href;k&&(k.includes("ios-app")&&(W.iosAppIndexingTagsPresent=!0,f.setAttribute("href",Gc(k))),k.includes("android-app")&&(W.androidAppIndexingTagsPresent=!0,f.setAttribute("href",Gc(k))))}X=b;W.androidAppIndexingTagsPresent||(Ic("android"),W.androidDetailsComplete||Jc("android"));W.iosAppIndexingTagsPresent||(Ic("ios"),W.iosDetailsComplete||Jc("ios"));
W.iosDetailsComplete||W.androidDetailsComplete?a(null):a("Firebase App Indexing tags were not added to your webpage. Please check your configuration.")});Z.prototype.trackCommerceEvent=Y(1,function(a,b,c,d){var e=this;e.renderQueue(function(){var f=Ra(b,c);if(f)return a(Error(f));e.b(qb,{event:b,metadata:z({url:document.URL,user_agent:navigator.userAgent,language:navigator.language},d||{}),initial_referrer:Ya(V(e)),commerce_data:c},function(b){a(b||null)})});a()});
Z.prototype.disableTracking=Y(1,function(a,b){if(!1===b||"false"===b)ua=v=!1,this.h&&this.F&&(!0===this.F.tracking_disabled&&delete this.F.tracking_disabled,this.init(this.h,this.F));else if(void 0===b||!0===b||"true"===b)ya(this),ua=v=!0,this.closeBanner(),this.closeJourney();a()});var Mc=new Z;if(window.branch&&window.branch._q)for(var Nc=window.branch._q,Oc=0;Oc<Nc.length;Oc++){var Pc=Nc[Oc];Mc[Pc[0]].apply(Mc,Pc[1])}"function"===typeof define&&define.amd?define("branch",function(){return Mc}):"object"===typeof exports&&(module.exports=Mc);window&&(window.branch=Mc);})();
/*
FILE ARCHIVED ON 20:18:51 Mar 09, 2019 AND RETRIEVED FROM THE
INTERNET ARCHIVE ON 13:13:45 Mar 26, 2020.
JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE.
ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C.
SECTION 108(a)(3)).
*/
/*
playback timings (ms):
exclusion.robots.policy: 0.183
RedisCDXSource: 72.655
exclusion.robots: 0.201
esindex: 0.016
CDXLines.iter: 108.998 (3)
load_resource: 178.712
LoadShardBlock: 475.524 (6)
PetaboxLoader3.datanode: 431.507 (7)
PetaboxLoader3.resolve: 96.724
*/

View File

@ -0,0 +1,21 @@
<!DOCTYPE html>
<html lang="en"><head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"><style>body {transition: opacity ease-in 0.2s; }
body[unresolved] {opacity: 0; display: block; overflow: hidden; position: relative; }
</style><title>Donate</title><style>body{margin:0}</style>
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="donate_data/jquery-1.js"></script>
<script src="donate_data/polyfill.js"></script>
<script src="donate_data/ie-dom-node-remove-polyfill.js"></script>
<script src="donate_data/analytics.js"></script>
<script src="donate_data/webcomponents-bundle.js" type="text/javascript"></script>
<script src="donate_data/more-facets.js" type="text/javascript"></script>
<script src="donate_data/radio-player-controller.js" type="text/javascript"></script>
</head>
<body class="js-ia-iframe" style="margin:0">
<meta property="braintree_token" content="production_w3jccm3z_pqd7hz44swp6zvvw">
<meta property="environment" content="production">
<meta property="venmo_id" content="2878003111190856236">
</body></html>

View File

@ -0,0 +1,420 @@
// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL-v3.0
/* eslint-disable no-var, semi, prefer-arrow-callback, prefer-template */
/**
* Collection of methods for sending analytics events to Archive.org's analytics server.
*
* These events are used for internal stats and sent (in anonymized form) to Google Analytics.
*
* @see analytics.md
*
* @type {Object}
*/
window.archive_analytics = (function defineArchiveAnalytics() {
var ARCHIVE_ANALYTICS_VERSION = 2;
var DEFAULT_SERVICE = 'ao_2';
var startTime = new Date();
/**
* @return {Boolean}
*/
function isPerformanceTimingApiSupported() {
return 'performance' in window && 'timing' in window.performance;
}
/**
* Determines how many milliseconds elapsed between the browser starting to parse the DOM and
* the current time.
*
* Uses the Performance API or a fallback value if it's not available.
*
* @see https://developer.mozilla.org/en-US/docs/Web/API/Performance_API
*
* @return {Number}
*/
function getLoadTime() {
var start;
if (isPerformanceTimingApiSupported())
start = window.performance.timing.domLoading;
else
start = startTime.getTime();
return new Date().getTime() - start;
}
/**
* Determines how many milliseconds elapsed between the user navigating to the page and
* the current time.
*
* @see https://developer.mozilla.org/en-US/docs/Web/API/Performance_API
*
* @return {Number|null} null if the browser doesn't support the Performance API
*/
function getNavToDoneTime() {
if (!isPerformanceTimingApiSupported())
return null;
return new Date().getTime() - window.performance.timing.navigationStart;
}
/**
* Performs an arithmetic calculation on a string with a number and unit, while maintaining
* the unit.
*
* @param {String} original value to modify, with a unit
* @param {Function} doOperation accepts one Number parameter, returns a Number
* @returns {String}
*/
function computeWithUnit(original, doOperation) {
var number = parseFloat(original, 10);
var unit = original.replace(/(\d*\.\d+)|\d+/, '');
return doOperation(number) + unit;
}
/**
* Computes the default font size of the browser.
*
* @returns {String|null} computed font-size with units (typically pixels), null if it cannot be computed
*/
function getDefaultFontSize() {
var fontSizeStr;
if (!('getComputedStyle' in window))
return null;
var style = window.getComputedStyle(document.documentElement);
if (!style)
return null;
fontSizeStr = style.fontSize;
// Don't modify the value if tracking book reader.
if (document.documentElement.classList.contains('BookReaderRoot'))
return fontSizeStr;
return computeWithUnit(fontSizeStr, function reverseBootstrapFontSize(number) {
// Undo the 62.5% size applied in the Bootstrap CSS.
return number * 1.6;
});
}
/**
* Get the URL parameters for a given Location
* @param {Location}
* @return {Object} The URL parameters
*/
function getParams(location) {
if (!location) location = window.location;
var vars;
var i;
var pair;
var params = {};
var query = location.search;
if (!query) return params;
vars = query.substring(1).split('&');
for (i = 0; i < vars.length; i++) {
pair = vars[i].split('=');
params[pair[0]] = decodeURIComponent(pair[1]);
}
return params;
}
return {
/**
* @type {String|null}
*/
service: null,
/**
* Key-value pairs to send in pageviews (you can read this after a pageview to see what was
* sent).
*
* @type {Object}
*/
values: {},
/**
* Sends an analytics ping, preferably using navigator.sendBeacon()
* @param {Object} values
* @param {Function} [onload_callback] (deprecated) callback to invoke once ping to analytics server is done
* @param {Boolean} [augment_for_ao_site] (deprecated) if true, add some archive.org site-specific values
*/
send_ping: function send_ping(values, onload_callback, augment_for_ao_site) {
if (typeof window.navigator !== 'undefined' && typeof window.navigator.sendBeacon !== 'undefined')
this.send_ping_via_beacon(values);
else
this.send_ping_via_image(values);
},
/**
* Sends a ping via Beacon API
* NOTE: Assumes window.navigator.sendBeacon exists
* @param {Object} values Tracking parameters to pass
*/
send_ping_via_beacon: function send_ping_via_beacon(values) {
var url = this.generate_tracking_url(values || {});
window.navigator.sendBeacon(url);
},
/**
* Sends a ping via Image object
* @param {Object} values Tracking parameters to pass
*/
send_ping_via_image: function send_ping_via_image(values) {
var url = this.generate_tracking_url(values || {});
var loadtime_img = new Image(1, 1);
loadtime_img.src = url;
},
/**
* Construct complete tracking URL containing payload
* @param {Object} params Tracking parameters to pass
* @return {String} URL to use for tracking call
*/
generate_tracking_url: function generate_tracking_url(params) {
var baseUrl = '//analytics.archive.org/0.gif';
var keys;
var outputParams = params;
var outputParamsArray = [];
outputParams.service = outputParams.service || this.service || DEFAULT_SERVICE;
// Build array of querystring parameters
keys = Object.keys(outputParams);
keys.forEach(function keyIteration(key) {
outputParamsArray.push(encodeURIComponent(key) + '=' + encodeURIComponent(outputParams[key]));
});
outputParamsArray.push('version=' + ARCHIVE_ANALYTICS_VERSION);
outputParamsArray.push('count=' + (keys.length + 2)); // Include `version` and `count` in count
return baseUrl + '?' + outputParamsArray.join('&');
},
/**
* @param {int} page Page number
*/
send_scroll_fetch_event: function send_scroll_fetch_event(page) {
var additionalValues = { ev: page };
var loadTime = getLoadTime();
var navToDoneTime = getNavToDoneTime();
if (loadTime) additionalValues.loadtime = loadTime;
if (navToDoneTime) additionalValues.nav_to_done_ms = navToDoneTime;
this.send_event('page_action', 'scroll_fetch', location.pathname, additionalValues);
},
send_scroll_fetch_base_event: function send_scroll_fetch_base_event() {
var additionalValues = {};
var loadTime = getLoadTime();
var navToDoneTime = getNavToDoneTime();
if (loadTime) additionalValues.loadtime = loadTime;
if (navToDoneTime) additionalValues.nav_to_done_ms = navToDoneTime;
this.send_event('page_action', 'scroll_fetch_base', location.pathname, additionalValues);
},
/**
* @param {Object} [options]
* @param {String} [options.mediaType]
* @param {String} [options.mediaLanguage]
* @param {String} [options.page] The path portion of the page URL
*/
send_pageview: function send_pageview(options) {
var settings = options || {};
var defaultFontSize;
var loadTime = getLoadTime();
var mediaType = settings.mediaType;
var primaryCollection = settings.primaryCollection;
var page = settings.page;
var navToDoneTime = getNavToDoneTime();
/**
* @return {String}
*/
function get_locale() {
if (navigator) {
if (navigator.language)
return navigator.language;
else if (navigator.browserLanguage)
return navigator.browserLanguage;
else if (navigator.systemLanguage)
return navigator.systemLanguage;
else if (navigator.userLanguage)
return navigator.userLanguage;
}
return '';
}
defaultFontSize = getDefaultFontSize();
// Set field values
this.values.kind = 'pageview';
this.values.timediff = (new Date().getTimezoneOffset()/60)*(-1); // *timezone* diff from UTC
this.values.locale = get_locale();
this.values.referrer = (document.referrer == '' ? '-' : document.referrer);
if (loadTime)
this.values.loadtime = loadTime;
if (navToDoneTime)
this.values.nav_to_done_ms = navToDoneTime;
/* START CUSTOM DIMENSIONS */
if (defaultFontSize)
this.values.ga_cd1 = defaultFontSize;
if ('devicePixelRatio' in window)
this.values.ga_cd2 = window.devicePixelRatio;
if (mediaType)
this.values.ga_cd3 = mediaType;
if (settings.mediaLanguage) {
this.values.ga_cd4 = settings.mediaLanguage;
}
if (primaryCollection) {
this.values.ga_cd5 = primaryCollection;
}
/* END CUSTOM DIMENSIONS */
if (page)
this.values.page = page;
this.send_ping(this.values);
},
/**
* Sends a tracking "Event".
* @param {string} category
* @param {string} action
* @param {string} label
* @param {Object} additionalEventParams
*/
send_event: function send_event(
category,
action,
label,
additionalEventParams
) {
if (!label) label = window.location.pathname;
if (!additionalEventParams) additionalEventParams = {};
if (additionalEventParams.mediaLanguage) {
additionalEventParams.ga_cd4 = additionalEventParams.mediaLanguage;
delete additionalEventParams.mediaLanguage;
}
var eventParams = Object.assign(
{
kind: 'event',
ec: category,
ea: action,
el: label,
cache_bust: Math.random(),
},
additionalEventParams
);
this.send_ping(eventParams);
},
/**
* @param {Object} options see this.send_pageview options
*/
send_pageview_on_load: function send_pageview_on_load(options) {
var self = this;
window.addEventListener('load', function send_pageview_with_options() {
self.send_pageview(options);
});
},
/**
* Handles tracking events passed in URL.
* Assumes category and action values are separated by a "|" character.
* NOTE: Uses the unsampled analytics property. Watch out for future high click links!
* @param {Location}
*/
process_url_events: function process_url_events(location) {
var eventValues;
var actionValue;
var eventValue = getParams(location).iax;
if (!eventValue) return;
eventValues = eventValue.split('|');
actionValue = eventValues.length >= 1 ? eventValues[1] : '';
this.send_event(
eventValues[0],
actionValue,
window.location.pathname,
{ service: 'ao_no_sampling' }
);
},
/**
* Attaches handlers for event tracking.
*
* To enable click tracking for a link, add a `data-event-click-tracking`
* attribute containing the Google Analytics Event Category and Action, separated
* by a vertical pipe (|).
* e.g. `<a href="foobar" data-event-click-tracking="TopNav|FooBar">`
*
* To enable form submit tracking, add a `data-event-form-tracking` attribute
* to the `form` tag.
* e.g. `<form data-event-form-tracking="TopNav|SearchForm" method="GET">`
*
* Additional tracking options can be added via a `data-event-tracking-options`
* parameter. This parameter, if included, should be a JSON string of the parameters.
* Valid parameters are:
* - service {string}: Corresponds to the Google Analytics property data values flow into
*/
set_up_event_tracking: function set_up_event_tracking() {
var self = this;
var clickTrackingAttributeName = 'event-click-tracking';
var formTrackingAttributeName = 'event-form-tracking';
var trackingOptionsAttributeName = 'event-tracking-options';
function makeActionHandler(attributeName) {
return function actionHandler(event) {
var $currentTarget;
var categoryAction;
var categoryActionParts;
var options;
var submitFormFunction;
$currentTarget = $(event.currentTarget);
if (!$currentTarget) return;
categoryAction = $currentTarget.data(attributeName);
if (!categoryAction) return;
categoryActionParts = categoryAction.split('|');
options = $currentTarget.data(trackingOptionsAttributeName) || {}; // Converts to JSON
self.send_event(
categoryActionParts[0],
categoryActionParts[1],
window.location.pathname,
options.service ? { service: options.service } : {}
);
};
}
$(document).on(
'click',
'[data-' + clickTrackingAttributeName + ']',
makeActionHandler(clickTrackingAttributeName)
);
$(document).on(
'submit',
'form[data-' + formTrackingAttributeName + ']',
makeActionHandler(formTrackingAttributeName)
);
},
/**
* @returns {Object[]}
*/
get_data_packets: function get_data_packets() {
return [this.values];
},
};
}());
// @license-end

View File

@ -0,0 +1,4 @@
// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL-v3.0
!function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=50)}({50:function(e,t){[Element.prototype,CharacterData.prototype,DocumentType.prototype].forEach((function(e){e.hasOwnProperty("remove")||Object.defineProperty(e,"remove",{configurable:!0,enumerable:!0,writable:!0,value:function(){null!==this.parentNode&&this.parentNode.removeChild(this)}})}))}});
//# sourceMappingURL=ie-dom-node-remove-polyfill.min.js.map
// @license-end

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,298 @@
/**
@license @nocompile
Copyright (c) 2018 The Polymer Project Authors. All rights reserved.
This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
Code distributed by Google as part of the polymer project is also
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
*/
(function(){/*
Copyright (c) 2016 The Polymer Project Authors. All rights reserved.
This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
Code distributed by Google as part of the polymer project is also
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
*/
'use strict';var w;function aa(a){var b=0;return function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}}}function ca(a){var b="undefined"!=typeof Symbol&&Symbol.iterator&&a[Symbol.iterator];return b?b.call(a):{next:aa(a)}}function da(a){for(var b,c=[];!(b=a.next()).done;)c.push(b.value);return c}
var ea="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global&&null!=global?global:this,ha="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)};function ia(){ia=function(){};ea.Symbol||(ea.Symbol=ja)}function ma(a,b){this.a=a;ha(this,"description",{configurable:!0,writable:!0,value:b})}ma.prototype.toString=function(){return this.a};
var ja=function(){function a(c){if(this instanceof a)throw new TypeError("Symbol is not a constructor");return new ma("jscomp_symbol_"+(c||"")+"_"+b++,c)}var b=0;return a}();function na(){ia();var a=ea.Symbol.iterator;a||(a=ea.Symbol.iterator=ea.Symbol("Symbol.iterator"));"function"!=typeof Array.prototype[a]&&ha(Array.prototype,a,{configurable:!0,writable:!0,value:function(){return oa(aa(this))}});na=function(){}}
function oa(a){na();a={next:a};a[ea.Symbol.iterator]=function(){return this};return a}var pa;if("function"==typeof Object.setPrototypeOf)pa=Object.setPrototypeOf;else{var ta;a:{var ua={Fa:!0},wa={};try{wa.__proto__=ua;ta=wa.Fa;break a}catch(a){}ta=!1}pa=ta?function(a,b){a.__proto__=b;if(a.__proto__!==b)throw new TypeError(a+" is not extensible");return a}:null}var xa=pa;function ya(){this.f=!1;this.b=null;this.U=void 0;this.a=1;this.F=0;this.c=null}
function za(a){if(a.f)throw new TypeError("Generator is already running");a.f=!0}ya.prototype.u=function(a){this.U=a};function Aa(a,b){a.c={Ia:b,Ma:!0};a.a=a.F}ya.prototype.return=function(a){this.c={return:a};this.a=this.F};function Ba(a,b){a.a=3;return{value:b}}function Ca(a){this.a=new ya;this.b=a}function Da(a,b){za(a.a);var c=a.a.b;if(c)return Ea(a,"return"in c?c["return"]:function(d){return{value:d,done:!0}},b,a.a.return);a.a.return(b);return Fa(a)}
function Ea(a,b,c,d){try{var e=b.call(a.a.b,c);if(!(e instanceof Object))throw new TypeError("Iterator result "+e+" is not an object");if(!e.done)return a.a.f=!1,e;var f=e.value}catch(g){return a.a.b=null,Aa(a.a,g),Fa(a)}a.a.b=null;d.call(a.a,f);return Fa(a)}function Fa(a){for(;a.a.a;)try{var b=a.b(a.a);if(b)return a.a.f=!1,{value:b.value,done:!1}}catch(c){a.a.U=void 0,Aa(a.a,c)}a.a.f=!1;if(a.a.c){b=a.a.c;a.a.c=null;if(b.Ma)throw b.Ia;return{value:b.return,done:!0}}return{value:void 0,done:!0}}
function Ga(a){this.next=function(b){za(a.a);a.a.b?b=Ea(a,a.a.b.next,b,a.a.u):(a.a.u(b),b=Fa(a));return b};this.throw=function(b){za(a.a);a.a.b?b=Ea(a,a.a.b["throw"],b,a.a.u):(Aa(a.a,b),b=Fa(a));return b};this.return=function(b){return Da(a,b)};na();this[Symbol.iterator]=function(){return this}}function Ha(a,b){b=new Ga(new Ca(b));xa&&xa(b,a.prototype);return b}Array.from||(Array.from=function(a){return[].slice.call(a)});
Object.assign||(Object.assign=function(a){for(var b=[].slice.call(arguments,1),c=0,d;c<b.length;c++)if(d=b[c])for(var e=a,f=d,g=Object.getOwnPropertyNames(f),h=0;h<g.length;h++)d=g[h],e[d]=f[d];return a});(function(){if(!function(){var f=document.createEvent("Event");f.initEvent("foo",!0,!0);f.preventDefault();return f.defaultPrevented}()){var a=Event.prototype.preventDefault;Event.prototype.preventDefault=function(){this.cancelable&&(a.call(this),Object.defineProperty(this,"defaultPrevented",{get:function(){return!0},configurable:!0}))}}var b=/Trident/.test(navigator.userAgent);if(!window.Event||b&&"function"!==typeof window.Event){var c=window.Event;window.Event=function(f,g){g=g||{};var h=document.createEvent("Event");
h.initEvent(f,!!g.bubbles,!!g.cancelable);return h};if(c){for(var d in c)window.Event[d]=c[d];window.Event.prototype=c.prototype}}if(!window.CustomEvent||b&&"function"!==typeof window.CustomEvent)window.CustomEvent=function(f,g){g=g||{};var h=document.createEvent("CustomEvent");h.initCustomEvent(f,!!g.bubbles,!!g.cancelable,g.detail);return h},window.CustomEvent.prototype=window.Event.prototype;if(!window.MouseEvent||b&&"function"!==typeof window.MouseEvent){b=window.MouseEvent;window.MouseEvent=
function(f,g){g=g||{};var h=document.createEvent("MouseEvent");h.initMouseEvent(f,!!g.bubbles,!!g.cancelable,g.view||window,g.detail,g.screenX,g.screenY,g.clientX,g.clientY,g.ctrlKey,g.altKey,g.shiftKey,g.metaKey,g.button,g.relatedTarget);return h};if(b)for(var e in b)window.MouseEvent[e]=b[e];window.MouseEvent.prototype=b.prototype}})();(function(){function a(){}function b(p,t){if(!p.childNodes.length)return[];switch(p.nodeType){case Node.DOCUMENT_NODE:return F.call(p,t);case Node.DOCUMENT_FRAGMENT_NODE:return C.call(p,t);default:return r.call(p,t)}}var c="undefined"===typeof HTMLTemplateElement,d=!(document.createDocumentFragment().cloneNode()instanceof DocumentFragment),e=!1;/Trident/.test(navigator.userAgent)&&function(){function p(z,S){if(z instanceof DocumentFragment)for(var cb;cb=z.firstChild;)D.call(this,cb,S);else D.call(this,
z,S);return z}e=!0;var t=Node.prototype.cloneNode;Node.prototype.cloneNode=function(z){z=t.call(this,z);this instanceof DocumentFragment&&(z.__proto__=DocumentFragment.prototype);return z};DocumentFragment.prototype.querySelectorAll=HTMLElement.prototype.querySelectorAll;DocumentFragment.prototype.querySelector=HTMLElement.prototype.querySelector;Object.defineProperties(DocumentFragment.prototype,{nodeType:{get:function(){return Node.DOCUMENT_FRAGMENT_NODE},configurable:!0},localName:{get:function(){},
configurable:!0},nodeName:{get:function(){return"#document-fragment"},configurable:!0}});var D=Node.prototype.insertBefore;Node.prototype.insertBefore=p;var K=Node.prototype.appendChild;Node.prototype.appendChild=function(z){z instanceof DocumentFragment?p.call(this,z,null):K.call(this,z);return z};var ba=Node.prototype.removeChild,ka=Node.prototype.replaceChild;Node.prototype.replaceChild=function(z,S){z instanceof DocumentFragment?(p.call(this,z,S),ba.call(this,S)):ka.call(this,z,S);return S};Document.prototype.createDocumentFragment=
function(){var z=this.createElement("df");z.__proto__=DocumentFragment.prototype;return z};var qa=Document.prototype.importNode;Document.prototype.importNode=function(z,S){S=qa.call(this,z,S||!1);z instanceof DocumentFragment&&(S.__proto__=DocumentFragment.prototype);return S}}();var f=Node.prototype.cloneNode,g=Document.prototype.createElement,h=Document.prototype.importNode,k=Node.prototype.removeChild,l=Node.prototype.appendChild,m=Node.prototype.replaceChild,q=DOMParser.prototype.parseFromString,
H=Object.getOwnPropertyDescriptor(window.HTMLElement.prototype,"innerHTML")||{get:function(){return this.innerHTML},set:function(p){this.innerHTML=p}},E=Object.getOwnPropertyDescriptor(window.Node.prototype,"childNodes")||{get:function(){return this.childNodes}},r=Element.prototype.querySelectorAll,F=Document.prototype.querySelectorAll,C=DocumentFragment.prototype.querySelectorAll,N=function(){if(!c){var p=document.createElement("template"),t=document.createElement("template");t.content.appendChild(document.createElement("div"));
p.content.appendChild(t);p=p.cloneNode(!0);return 0===p.content.childNodes.length||0===p.content.firstChild.content.childNodes.length||d}}();if(c){var y=document.implementation.createHTMLDocument("template"),X=!0,v=document.createElement("style");v.textContent="template{display:none;}";var ra=document.head;ra.insertBefore(v,ra.firstElementChild);a.prototype=Object.create(HTMLElement.prototype);var fa=!document.createElement("div").hasOwnProperty("innerHTML");a.S=function(p){if(!p.content&&p.namespaceURI===
document.documentElement.namespaceURI){p.content=y.createDocumentFragment();for(var t;t=p.firstChild;)l.call(p.content,t);if(fa)p.__proto__=a.prototype;else if(p.cloneNode=function(D){return a.b(this,D)},X)try{n(p),I(p)}catch(D){X=!1}a.a(p.content)}};var sa={option:["select"],thead:["table"],col:["colgroup","table"],tr:["tbody","table"],th:["tr","tbody","table"],td:["tr","tbody","table"]},n=function(p){Object.defineProperty(p,"innerHTML",{get:function(){return va(this)},set:function(t){var D=sa[(/<([a-z][^/\0>\x20\t\r\n\f]+)/i.exec(t)||
["",""])[1].toLowerCase()];if(D)for(var K=0;K<D.length;K++)t="<"+D[K]+">"+t+"</"+D[K]+">";y.body.innerHTML=t;for(a.a(y);this.content.firstChild;)k.call(this.content,this.content.firstChild);t=y.body;if(D)for(K=0;K<D.length;K++)t=t.lastChild;for(;t.firstChild;)l.call(this.content,t.firstChild)},configurable:!0})},I=function(p){Object.defineProperty(p,"outerHTML",{get:function(){return"<template>"+this.innerHTML+"</template>"},set:function(t){if(this.parentNode){y.body.innerHTML=t;for(t=this.ownerDocument.createDocumentFragment();y.body.firstChild;)l.call(t,
y.body.firstChild);m.call(this.parentNode,t,this)}else throw Error("Failed to set the 'outerHTML' property on 'Element': This element has no parent node.");},configurable:!0})};n(a.prototype);I(a.prototype);a.a=function(p){p=b(p,"template");for(var t=0,D=p.length,K;t<D&&(K=p[t]);t++)a.S(K)};document.addEventListener("DOMContentLoaded",function(){a.a(document)});Document.prototype.createElement=function(){var p=g.apply(this,arguments);"template"===p.localName&&a.S(p);return p};DOMParser.prototype.parseFromString=
function(){var p=q.apply(this,arguments);a.a(p);return p};Object.defineProperty(HTMLElement.prototype,"innerHTML",{get:function(){return va(this)},set:function(p){H.set.call(this,p);a.a(this)},configurable:!0,enumerable:!0});var la=/[&\u00A0"]/g,Xb=/[&\u00A0<>]/g,db=function(p){switch(p){case "&":return"&amp;";case "<":return"&lt;";case ">":return"&gt;";case '"':return"&quot;";case "\u00a0":return"&nbsp;"}};v=function(p){for(var t={},D=0;D<p.length;D++)t[p[D]]=!0;return t};var Ra=v("area base br col command embed hr img input keygen link meta param source track wbr".split(" ")),
eb=v("style script xmp iframe noembed noframes plaintext noscript".split(" ")),va=function(p,t){"template"===p.localName&&(p=p.content);for(var D="",K=t?t(p):E.get.call(p),ba=0,ka=K.length,qa;ba<ka&&(qa=K[ba]);ba++){a:{var z=qa;var S=p;var cb=t;switch(z.nodeType){case Node.ELEMENT_NODE:for(var Yb=z.localName,fb="<"+Yb,cg=z.attributes,ud=0;S=cg[ud];ud++)fb+=" "+S.name+'="'+S.value.replace(la,db)+'"';fb+=">";z=Ra[Yb]?fb:fb+va(z,cb)+"</"+Yb+">";break a;case Node.TEXT_NODE:z=z.data;z=S&&eb[S.localName]?
z:z.replace(Xb,db);break a;case Node.COMMENT_NODE:z="\x3c!--"+z.data+"--\x3e";break a;default:throw window.console.error(z),Error("not implemented");}}D+=z}return D}}if(c||N){a.b=function(p,t){var D=f.call(p,!1);this.S&&this.S(D);t&&(l.call(D.content,f.call(p.content,!0)),u(D.content,p.content));return D};var u=function(p,t){if(t.querySelectorAll&&(t=b(t,"template"),0!==t.length)){p=b(p,"template");for(var D=0,K=p.length,ba,ka;D<K;D++)ka=t[D],ba=p[D],a&&a.S&&a.S(ka),m.call(ba.parentNode,G.call(ka,
!0),ba)}},G=Node.prototype.cloneNode=function(p){if(!e&&d&&this instanceof DocumentFragment)if(p)var t=J.call(this.ownerDocument,this,!0);else return this.ownerDocument.createDocumentFragment();else this.nodeType===Node.ELEMENT_NODE&&"template"===this.localName&&this.namespaceURI==document.documentElement.namespaceURI?t=a.b(this,p):t=f.call(this,p);p&&u(t,this);return t},J=Document.prototype.importNode=function(p,t){t=t||!1;if("template"===p.localName)return a.b(p,t);var D=h.call(this,p,t);if(t){u(D,
p);p=b(D,'script:not([type]),script[type="application/javascript"],script[type="text/javascript"]');for(var K,ba=0;ba<p.length;ba++){K=p[ba];t=g.call(document,"script");t.textContent=K.textContent;for(var ka=K.attributes,qa=0,z;qa<ka.length;qa++)z=ka[qa],t.setAttribute(z.name,z.value);m.call(K.parentNode,t,K)}}return D}}c&&(window.HTMLTemplateElement=a)})();var Ia=setTimeout;function Ja(){}function Ka(a,b){return function(){a.apply(b,arguments)}}function x(a){if(!(this instanceof x))throw new TypeError("Promises must be constructed via new");if("function"!==typeof a)throw new TypeError("not a function");this.K=0;this.pa=!1;this.w=void 0;this.V=[];La(a,this)}
function Ma(a,b){for(;3===a.K;)a=a.w;0===a.K?a.V.push(b):(a.pa=!0,Na(function(){var c=1===a.K?b.Oa:b.Pa;if(null===c)(1===a.K?Oa:Pa)(b.na,a.w);else{try{var d=c(a.w)}catch(e){Pa(b.na,e);return}Oa(b.na,d)}}))}function Oa(a,b){try{if(b===a)throw new TypeError("A promise cannot be resolved with itself.");if(b&&("object"===typeof b||"function"===typeof b)){var c=b.then;if(b instanceof x){a.K=3;a.w=b;Qa(a);return}if("function"===typeof c){La(Ka(c,b),a);return}}a.K=1;a.w=b;Qa(a)}catch(d){Pa(a,d)}}
function Pa(a,b){a.K=2;a.w=b;Qa(a)}function Qa(a){2===a.K&&0===a.V.length&&Na(function(){a.pa||"undefined"!==typeof console&&console&&console.warn("Possible Unhandled Promise Rejection:",a.w)});for(var b=0,c=a.V.length;b<c;b++)Ma(a,a.V[b]);a.V=null}function Sa(a,b,c){this.Oa="function"===typeof a?a:null;this.Pa="function"===typeof b?b:null;this.na=c}function La(a,b){var c=!1;try{a(function(d){c||(c=!0,Oa(b,d))},function(d){c||(c=!0,Pa(b,d))})}catch(d){c||(c=!0,Pa(b,d))}}
x.prototype["catch"]=function(a){return this.then(null,a)};x.prototype.then=function(a,b){var c=new this.constructor(Ja);Ma(this,new Sa(a,b,c));return c};x.prototype["finally"]=function(a){var b=this.constructor;return this.then(function(c){return b.resolve(a()).then(function(){return c})},function(c){return b.resolve(a()).then(function(){return b.reject(c)})})};
function Ta(a){return new x(function(b,c){function d(h,k){try{if(k&&("object"===typeof k||"function"===typeof k)){var l=k.then;if("function"===typeof l){l.call(k,function(m){d(h,m)},c);return}}e[h]=k;0===--f&&b(e)}catch(m){c(m)}}if(!a||"undefined"===typeof a.length)throw new TypeError("Promise.all accepts an array");var e=Array.prototype.slice.call(a);if(0===e.length)return b([]);for(var f=e.length,g=0;g<e.length;g++)d(g,e[g])})}
function Ua(a){return a&&"object"===typeof a&&a.constructor===x?a:new x(function(b){b(a)})}function Va(a){return new x(function(b,c){c(a)})}function Wa(a){return new x(function(b,c){for(var d=0,e=a.length;d<e;d++)a[d].then(b,c)})}var Na="function"===typeof setImmediate&&function(a){setImmediate(a)}||function(a){Ia(a,0)};/*
Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
Code distributed by Google as part of the polymer project is also
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
*/
if(!window.Promise){window.Promise=x;x.prototype.then=x.prototype.then;x.all=Ta;x.race=Wa;x.resolve=Ua;x.reject=Va;var Xa=document.createTextNode(""),Ya=[];(new MutationObserver(function(){for(var a=Ya.length,b=0;b<a;b++)Ya[b]();Ya.splice(0,a)})).observe(Xa,{characterData:!0});Na=function(a){Ya.push(a);Xa.textContent=0<Xa.textContent.length?"":"a"}};/*
Copyright (C) 2015 by WebReflection
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
*/
(function(a,b){if(!(b in a)){var c=typeof global===typeof c?window:global,d=0,e=""+Math.random(),f="__\u0001symbol@@"+e,g=a.getOwnPropertyNames,h=a.getOwnPropertyDescriptor,k=a.create,l=a.keys,m=a.freeze||a,q=a.defineProperty,H=a.defineProperties,E=h(a,"getOwnPropertyNames"),r=a.prototype,F=r.hasOwnProperty,C=r.propertyIsEnumerable,N=r.toString,y=function(u,G,J){F.call(u,f)||q(u,f,{enumerable:!1,configurable:!1,writable:!1,value:{}});u[f]["@@"+G]=J},X=function(u,G){var J=k(u);g(G).forEach(function(p){sa.call(G,
p)&&Ra(J,p,G[p])});return J},v=function(){},ra=function(u){return u!=f&&!F.call(la,u)},fa=function(u){return u!=f&&F.call(la,u)},sa=function(u){var G=""+u;return fa(G)?F.call(this,G)&&this[f]["@@"+G]:C.call(this,u)},n=function(u){q(r,u,{enumerable:!1,configurable:!0,get:v,set:function(G){va(this,u,{enumerable:!1,configurable:!0,writable:!0,value:G});y(this,u,!0)}});return m(la[u]=q(a(u),"constructor",Xb))},I=function(u){if(this&&this!==c)throw new TypeError("Symbol is not a constructor");return n("__\u0001symbol:".concat(u||
"",e,++d))},la=k(null),Xb={value:I},db=function(u){return la[u]},Ra=function(u,G,J){var p=""+G;if(fa(p)){G=va;if(J.enumerable){var t=k(J);t.enumerable=!1}else t=J;G(u,p,t);y(u,p,!!J.enumerable)}else q(u,G,J);return u},eb=function(u){return g(u).filter(fa).map(db)};E.value=Ra;q(a,"defineProperty",E);E.value=eb;q(a,b,E);E.value=function(u){return g(u).filter(ra)};q(a,"getOwnPropertyNames",E);E.value=function(u,G){var J=eb(G);J.length?l(G).concat(J).forEach(function(p){sa.call(G,p)&&Ra(u,p,G[p])}):H(u,
G);return u};q(a,"defineProperties",E);E.value=sa;q(r,"propertyIsEnumerable",E);E.value=I;q(c,"Symbol",E);E.value=function(u){u="__\u0001symbol:".concat("__\u0001symbol:",u,e);return u in r?la[u]:n(u)};q(I,"for",E);E.value=function(u){if(ra(u))throw new TypeError(u+" is not a symbol");return F.call(la,u)?u.slice(20,-e.length):void 0};q(I,"keyFor",E);E.value=function(u,G){var J=h(u,G);J&&fa(G)&&(J.enumerable=sa.call(u,G));return J};q(a,"getOwnPropertyDescriptor",E);E.value=function(u,G){return 1===
arguments.length?k(u):X(u,G)};q(a,"create",E);E.value=function(){var u=N.call(this);return"[object String]"===u&&fa(this)?"[object Symbol]":u};q(r,"toString",E);try{var va=k(q({},"__\u0001symbol:",{get:function(){return q(this,"__\u0001symbol:",{value:!1})["__\u0001symbol:"]}}))["__\u0001symbol:"]||q}catch(u){va=function(G,J,p){var t=h(r,J);delete r[J];q(G,J,p);q(r,J,t)}}}})(Object,"getOwnPropertySymbols");
(function(a){var b=a.defineProperty,c=a.prototype,d=c.toString,e;"iterator match replace search split hasInstance isConcatSpreadable unscopables species toPrimitive toStringTag".split(" ").forEach(function(f){if(!(f in Symbol))switch(b(Symbol,f,{value:Symbol(f)}),f){case "toStringTag":e=a.getOwnPropertyDescriptor(c,"toString"),e.value=function(){var g=d.call(this),h=this[Symbol.toStringTag];return"undefined"===typeof h?g:"[object "+h+"]"},b(c,"toString",e)}})})(Object,Symbol);
(function(a,b,c){function d(){return this}b[a]||(b[a]=function(){var e=0,f=this,g={next:function(){var h=f.length<=e;return h?{done:h}:{done:h,value:f[e++]}}};g[a]=d;return g});c[a]||(c[a]=function(){var e=String.fromCodePoint,f=this,g=0,h=f.length,k={next:function(){var l=h<=g,m=l?"":e(f.codePointAt(g));g+=m.length;return l?{done:l}:{done:l,value:m}}};k[a]=d;return k})})(Symbol.iterator,Array.prototype,String.prototype);/*
Copyright (c) 2018 The Polymer Project Authors. All rights reserved.
This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
Code distributed by Google as part of the polymer project is also
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
*/
var Za=Object.prototype.toString;Object.prototype.toString=function(){return void 0===this?"[object Undefined]":null===this?"[object Null]":Za.call(this)};Object.keys=function(a){return Object.getOwnPropertyNames(a).filter(function(b){return(b=Object.getOwnPropertyDescriptor(a,b))&&b.enumerable})};var $a=window.Symbol.iterator;
String.prototype[$a]&&String.prototype.codePointAt||(String.prototype[$a]=function ab(){var b,c=this;return Ha(ab,function(d){1==d.a&&(b=0);if(3!=d.a)return b<c.length?d=Ba(d,c[b]):(d.a=0,d=void 0),d;b++;d.a=2})});Set.prototype[$a]||(Set.prototype[$a]=function bb(){var b,c=this,d;return Ha(bb,function(e){1==e.a&&(b=[],c.forEach(function(f){b.push(f)}),d=0);if(3!=e.a)return d<b.length?e=Ba(e,b[d]):(e.a=0,e=void 0),e;d++;e.a=2})});
Map.prototype[$a]||(Map.prototype[$a]=function gb(){var b,c=this,d;return Ha(gb,function(e){1==e.a&&(b=[],c.forEach(function(f,g){b.push([g,f])}),d=0);if(3!=e.a)return d<b.length?e=Ba(e,b[d]):(e.a=0,e=void 0),e;d++;e.a=2})});/*
Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
Code distributed by Google as part of the polymer project is also
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
*/
window.WebComponents=window.WebComponents||{flags:{}};var hb=document.querySelector('script[src*="webcomponents-bundle"]'),ib=/wc-(.+)/,A={};if(!A.noOpts){location.search.slice(1).split("&").forEach(function(a){a=a.split("=");var b;a[0]&&(b=a[0].match(ib))&&(A[b[1]]=a[1]||!0)});if(hb)for(var jb=0,kb=void 0;kb=hb.attributes[jb];jb++)"src"!==kb.name&&(A[kb.name]=kb.value||!0);if(A.log&&A.log.split){var lb=A.log.split(",");A.log={};lb.forEach(function(a){A.log[a]=!0})}else A.log={}}
window.WebComponents.flags=A;var mb=A.shadydom;if(mb){window.ShadyDOM=window.ShadyDOM||{};window.ShadyDOM.force=mb;var nb=A.noPatch;window.ShadyDOM.noPatch="true"===nb?!0:nb}var ob=A.register||A.ce;ob&&window.customElements&&(window.customElements.forcePolyfill=ob);/*
Copyright (c) 2016 The Polymer Project Authors. All rights reserved.
This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
Code distributed by Google as part of the polymer project is also
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
*/
function pb(){}pb.prototype.toJSON=function(){return{}};function B(a){a.__shady||(a.__shady=new pb);return a.__shady}function L(a){return a&&a.__shady};var M=window.ShadyDOM||{};M.Ka=!(!Element.prototype.attachShadow||!Node.prototype.getRootNode);var qb=Object.getOwnPropertyDescriptor(Node.prototype,"firstChild");M.D=!!(qb&&qb.configurable&&qb.get);M.ia=M.force||!M.Ka;M.G=M.noPatch||!1;M.ma=M.preferPerformance;M.la="on-demand"===M.G;M.ya=navigator.userAgent.match("Trident");function rb(a){return(a=L(a))&&void 0!==a.firstChild}function O(a){return a instanceof ShadowRoot}function sb(a){return(a=(a=L(a))&&a.root)&&tb(a)}
var ub=Element.prototype,vb=ub.matches||ub.matchesSelector||ub.mozMatchesSelector||ub.msMatchesSelector||ub.oMatchesSelector||ub.webkitMatchesSelector,wb=document.createTextNode(""),xb=0,yb=[];(new MutationObserver(function(){for(;yb.length;)try{yb.shift()()}catch(a){throw wb.textContent=xb++,a;}})).observe(wb,{characterData:!0});function zb(a){yb.push(a);wb.textContent=xb++}var Ab=!!document.contains;function Bb(a,b){for(;b;){if(b==a)return!0;b=b.__shady_parentNode}return!1}
function Cb(a){for(var b=a.length-1;0<=b;b--){var c=a[b],d=c.getAttribute("id")||c.getAttribute("name");d&&"length"!==d&&isNaN(d)&&(a[d]=c)}a.item=function(e){return a[e]};a.namedItem=function(e){if("length"!==e&&isNaN(e)&&a[e])return a[e];for(var f=ca(a),g=f.next();!g.done;g=f.next())if(g=g.value,(g.getAttribute("id")||g.getAttribute("name"))==e)return g;return null};return a}function Db(a){var b=[];for(a=a.__shady_native_firstChild;a;a=a.__shady_native_nextSibling)b.push(a);return b}
function Eb(a){var b=[];for(a=a.__shady_firstChild;a;a=a.__shady_nextSibling)b.push(a);return b}function Fb(a,b,c){c.configurable=!0;if(c.value)a[b]=c.value;else try{Object.defineProperty(a,b,c)}catch(d){}}function P(a,b,c,d){c=void 0===c?"":c;for(var e in b)d&&0<=d.indexOf(e)||Fb(a,c+e,b[e])}function Gb(a,b){for(var c in b)c in a&&Fb(a,c,b[c])}function Q(a){var b={};Object.getOwnPropertyNames(a).forEach(function(c){b[c]=Object.getOwnPropertyDescriptor(a,c)});return b};var Hb=[],Ib;function Jb(a){Ib||(Ib=!0,zb(Kb));Hb.push(a)}function Kb(){Ib=!1;for(var a=!!Hb.length;Hb.length;)Hb.shift()();return a}Kb.list=Hb;function Lb(){this.a=!1;this.addedNodes=[];this.removedNodes=[];this.ba=new Set}function Mb(a){a.a||(a.a=!0,zb(function(){a.flush()}))}Lb.prototype.flush=function(){if(this.a){this.a=!1;var a=this.takeRecords();a.length&&this.ba.forEach(function(b){b(a)})}};Lb.prototype.takeRecords=function(){if(this.addedNodes.length||this.removedNodes.length){var a=[{addedNodes:this.addedNodes,removedNodes:this.removedNodes}];this.addedNodes=[];this.removedNodes=[];return a}return[]};
function Nb(a,b){var c=B(a);c.W||(c.W=new Lb);c.W.ba.add(b);var d=c.W;return{Ca:b,P:d,Da:a,takeRecords:function(){return d.takeRecords()}}}function Ob(a){var b=a&&a.P;b&&(b.ba.delete(a.Ca),b.ba.size||(B(a.Da).W=null))}
function Pb(a,b){var c=b.getRootNode();return a.map(function(d){var e=c===d.target.getRootNode();if(e&&d.addedNodes){if(e=Array.from(d.addedNodes).filter(function(f){return c===f.getRootNode()}),e.length)return d=Object.create(d),Object.defineProperty(d,"addedNodes",{value:e,configurable:!0}),d}else if(e)return d}).filter(function(d){return d})};var Qb=/[&\u00A0"]/g,Rb=/[&\u00A0<>]/g;function Sb(a){switch(a){case "&":return"&amp;";case "<":return"&lt;";case ">":return"&gt;";case '"':return"&quot;";case "\u00a0":return"&nbsp;"}}function Tb(a){for(var b={},c=0;c<a.length;c++)b[a[c]]=!0;return b}var Ub=Tb("area base br col command embed hr img input keygen link meta param source track wbr".split(" ")),Vb=Tb("style script xmp iframe noembed noframes plaintext noscript".split(" "));
function Wb(a,b){"template"===a.localName&&(a=a.content);for(var c="",d=b?b(a):a.childNodes,e=0,f=d.length,g=void 0;e<f&&(g=d[e]);e++){a:{var h=g;var k=a,l=b;switch(h.nodeType){case Node.ELEMENT_NODE:k=h.localName;for(var m="<"+k,q=h.attributes,H=0,E;E=q[H];H++)m+=" "+E.name+'="'+E.value.replace(Qb,Sb)+'"';m+=">";h=Ub[k]?m:m+Wb(h,l)+"</"+k+">";break a;case Node.TEXT_NODE:h=h.data;h=k&&Vb[k.localName]?h:h.replace(Rb,Sb);break a;case Node.COMMENT_NODE:h="\x3c!--"+h.data+"--\x3e";break a;default:throw window.console.error(h),
Error("not implemented");}}c+=h}return c};var Zb=M.D,$b={querySelector:function(a){return this.__shady_native_querySelector(a)},querySelectorAll:function(a){return this.__shady_native_querySelectorAll(a)}},ac={};function bc(a){ac[a]=function(b){return b["__shady_native_"+a]}}function cc(a,b){P(a,b,"__shady_native_");for(var c in b)bc(c)}function R(a,b){b=void 0===b?[]:b;for(var c=0;c<b.length;c++){var d=b[c],e=Object.getOwnPropertyDescriptor(a,d);e&&(Object.defineProperty(a,"__shady_native_"+d,e),e.value?$b[d]||($b[d]=e.value):bc(d))}}
var dc=document.createTreeWalker(document,NodeFilter.SHOW_ALL,null,!1),ec=document.createTreeWalker(document,NodeFilter.SHOW_ELEMENT,null,!1),fc=document.implementation.createHTMLDocument("inert");function gc(a){for(var b;b=a.__shady_native_firstChild;)a.__shady_native_removeChild(b)}var hc=["firstElementChild","lastElementChild","children","childElementCount"],ic=["querySelector","querySelectorAll"];
function jc(){var a=["dispatchEvent","addEventListener","removeEventListener"];window.EventTarget?R(window.EventTarget.prototype,a):(R(Node.prototype,a),R(Window.prototype,a));Zb?R(Node.prototype,"parentNode firstChild lastChild previousSibling nextSibling childNodes parentElement textContent".split(" ")):cc(Node.prototype,{parentNode:{get:function(){dc.currentNode=this;return dc.parentNode()}},firstChild:{get:function(){dc.currentNode=this;return dc.firstChild()}},lastChild:{get:function(){dc.currentNode=
this;return dc.lastChild()}},previousSibling:{get:function(){dc.currentNode=this;return dc.previousSibling()}},nextSibling:{get:function(){dc.currentNode=this;return dc.nextSibling()}},childNodes:{get:function(){var b=[];dc.currentNode=this;for(var c=dc.firstChild();c;)b.push(c),c=dc.nextSibling();return b}},parentElement:{get:function(){ec.currentNode=this;return ec.parentNode()}},textContent:{get:function(){switch(this.nodeType){case Node.ELEMENT_NODE:case Node.DOCUMENT_FRAGMENT_NODE:for(var b=
document.createTreeWalker(this,NodeFilter.SHOW_TEXT,null,!1),c="",d;d=b.nextNode();)c+=d.nodeValue;return c;default:return this.nodeValue}},set:function(b){if("undefined"===typeof b||null===b)b="";switch(this.nodeType){case Node.ELEMENT_NODE:case Node.DOCUMENT_FRAGMENT_NODE:gc(this);(0<b.length||this.nodeType===Node.ELEMENT_NODE)&&this.__shady_native_insertBefore(document.createTextNode(b),void 0);break;default:this.nodeValue=b}}}});R(Node.prototype,"appendChild insertBefore removeChild replaceChild cloneNode contains".split(" "));
R(HTMLElement.prototype,["parentElement","contains"]);a={firstElementChild:{get:function(){ec.currentNode=this;return ec.firstChild()}},lastElementChild:{get:function(){ec.currentNode=this;return ec.lastChild()}},children:{get:function(){var b=[];ec.currentNode=this;for(var c=ec.firstChild();c;)b.push(c),c=ec.nextSibling();return Cb(b)}},childElementCount:{get:function(){return this.children?this.children.length:0}}};Zb?(R(Element.prototype,hc),R(Element.prototype,["previousElementSibling","nextElementSibling",
"innerHTML","className"]),R(HTMLElement.prototype,["children","innerHTML","className"])):(cc(Element.prototype,a),cc(Element.prototype,{previousElementSibling:{get:function(){ec.currentNode=this;return ec.previousSibling()}},nextElementSibling:{get:function(){ec.currentNode=this;return ec.nextSibling()}},innerHTML:{get:function(){return Wb(this,Db)},set:function(b){var c="template"===this.localName?this.content:this;gc(c);var d=this.localName||"div";d=this.namespaceURI&&this.namespaceURI!==fc.namespaceURI?
fc.createElementNS(this.namespaceURI,d):fc.createElement(d);d.innerHTML=b;for(b="template"===this.localName?d.content:d;d=b.__shady_native_firstChild;)c.__shady_native_insertBefore(d,void 0)}},className:{get:function(){return this.getAttribute("class")||""},set:function(b){this.setAttribute("class",b)}}}));R(Element.prototype,"setAttribute getAttribute hasAttribute removeAttribute focus blur".split(" "));R(Element.prototype,ic);R(HTMLElement.prototype,["focus","blur"]);window.HTMLTemplateElement&&
R(window.HTMLTemplateElement.prototype,["innerHTML"]);Zb?R(DocumentFragment.prototype,hc):cc(DocumentFragment.prototype,a);R(DocumentFragment.prototype,ic);Zb?(R(Document.prototype,hc),R(Document.prototype,["activeElement"])):cc(Document.prototype,a);R(Document.prototype,["importNode","getElementById"]);R(Document.prototype,ic)};var kc=Q({get childNodes(){return this.__shady_childNodes},get firstChild(){return this.__shady_firstChild},get lastChild(){return this.__shady_lastChild},get childElementCount(){return this.__shady_childElementCount},get children(){return this.__shady_children},get firstElementChild(){return this.__shady_firstElementChild},get lastElementChild(){return this.__shady_lastElementChild},get shadowRoot(){return this.__shady_shadowRoot}}),lc=Q({get textContent(){return this.__shady_textContent},set textContent(a){this.__shady_textContent=
a},get innerHTML(){return this.__shady_innerHTML},set innerHTML(a){return this.__shady_innerHTML=a}}),mc=Q({get parentElement(){return this.__shady_parentElement},get parentNode(){return this.__shady_parentNode},get nextSibling(){return this.__shady_nextSibling},get previousSibling(){return this.__shady_previousSibling},get nextElementSibling(){return this.__shady_nextElementSibling},get previousElementSibling(){return this.__shady_previousElementSibling},get className(){return this.__shady_className},
set className(a){return this.__shady_className=a}});function nc(a){for(var b in a){var c=a[b];c&&(c.enumerable=!1)}}nc(kc);nc(lc);nc(mc);var oc=M.D||!0===M.G,pc=oc?function(){}:function(a){var b=B(a);b.Aa||(b.Aa=!0,Gb(a,mc))},qc=oc?function(){}:function(a){var b=B(a);b.za||(b.za=!0,Gb(a,kc),window.customElements&&!M.G||Gb(a,lc))};var rc="__eventWrappers"+Date.now(),sc=function(){var a=Object.getOwnPropertyDescriptor(Event.prototype,"composed");return a?function(b){return a.get.call(b)}:null}(),tc=function(){function a(){}var b=!1,c={get capture(){b=!0;return!1}};window.addEventListener("test",a,c);window.removeEventListener("test",a,c);return b}();function uc(a){if(a&&"object"===typeof a){var b=!!a.capture;var c=!!a.once;var d=!!a.passive;var e=a.O}else b=!!a,d=c=!1;return{wa:e,capture:b,once:c,passive:d,ua:tc?a:b}}
var vc={blur:!0,focus:!0,focusin:!0,focusout:!0,click:!0,dblclick:!0,mousedown:!0,mouseenter:!0,mouseleave:!0,mousemove:!0,mouseout:!0,mouseover:!0,mouseup:!0,wheel:!0,beforeinput:!0,input:!0,keydown:!0,keyup:!0,compositionstart:!0,compositionupdate:!0,compositionend:!0,touchstart:!0,touchend:!0,touchmove:!0,touchcancel:!0,pointerover:!0,pointerenter:!0,pointerdown:!0,pointermove:!0,pointerup:!0,pointercancel:!0,pointerout:!0,pointerleave:!0,gotpointercapture:!0,lostpointercapture:!0,dragstart:!0,
drag:!0,dragenter:!0,dragleave:!0,dragover:!0,drop:!0,dragend:!0,DOMActivate:!0,DOMFocusIn:!0,DOMFocusOut:!0,keypress:!0},wc={DOMAttrModified:!0,DOMAttributeNameChanged:!0,DOMCharacterDataModified:!0,DOMElementNameChanged:!0,DOMNodeInserted:!0,DOMNodeInsertedIntoDocument:!0,DOMNodeRemoved:!0,DOMNodeRemovedFromDocument:!0,DOMSubtreeModified:!0};function xc(a){return a instanceof Node?a.__shady_getRootNode():a}
function yc(a,b){var c=[],d=a;for(a=xc(a);d;)c.push(d),d.__shady_assignedSlot?d=d.__shady_assignedSlot:d.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&d.host&&(b||d!==a)?d=d.host:d=d.__shady_parentNode;c[c.length-1]===document&&c.push(window);return c}function zc(a){a.__composedPath||(a.__composedPath=yc(a.target,!0));return a.__composedPath}function Ac(a,b){if(!O)return a;a=yc(a,!0);for(var c=0,d,e=void 0,f,g=void 0;c<b.length;c++)if(d=b[c],f=xc(d),f!==e&&(g=a.indexOf(f),e=f),!O(f)||-1<g)return d}
function Bc(a){function b(c,d){c=new a(c,d);c.__composed=d&&!!d.composed;return c}b.__proto__=a;b.prototype=a.prototype;return b}var Cc={focus:!0,blur:!0};function Dc(a){return a.__target!==a.target||a.__relatedTarget!==a.relatedTarget}function Ec(a,b,c){if(c=b.__handlers&&b.__handlers[a.type]&&b.__handlers[a.type][c])for(var d=0,e;(e=c[d])&&(!Dc(a)||a.target!==a.relatedTarget)&&(e.call(b,a),!a.__immediatePropagationStopped);d++);}
function Fc(a){var b=a.composedPath();Object.defineProperty(a,"currentTarget",{get:function(){return d},configurable:!0});for(var c=b.length-1;0<=c;c--){var d=b[c];Ec(a,d,"capture");if(a.ea)return}Object.defineProperty(a,"eventPhase",{get:function(){return Event.AT_TARGET}});var e;for(c=0;c<b.length;c++){d=b[c];var f=L(d);f=f&&f.root;if(0===c||f&&f===e)if(Ec(a,d,"bubble"),d!==window&&(e=d.__shady_getRootNode()),a.ea)break}}
function Gc(a,b,c,d,e,f){for(var g=0;g<a.length;g++){var h=a[g],k=h.type,l=h.capture,m=h.once,q=h.passive;if(b===h.node&&c===k&&d===l&&e===m&&f===q)return g}return-1}function Hc(a){Kb();return this.__shady_native_dispatchEvent(a)}
function Ic(a,b,c){var d=uc(c),e=d.capture,f=d.once,g=d.passive,h=d.wa;d=d.ua;if(b){var k=typeof b;if("function"===k||"object"===k)if("object"!==k||b.handleEvent&&"function"===typeof b.handleEvent){if(wc[a])return this.__shady_native_addEventListener(a,b,d);var l=h||this;if(h=b[rc]){if(-1<Gc(h,l,a,e,f,g))return}else b[rc]=[];h=function(m){f&&this.__shady_removeEventListener(a,b,c);m.__target||Jc(m);if(l!==this){var q=Object.getOwnPropertyDescriptor(m,"currentTarget");Object.defineProperty(m,"currentTarget",
{get:function(){return l},configurable:!0})}m.__previousCurrentTarget=m.currentTarget;if(!O(l)&&"slot"!==l.localName||-1!=m.composedPath().indexOf(l))if(m.composed||-1<m.composedPath().indexOf(l))if(Dc(m)&&m.target===m.relatedTarget)m.eventPhase===Event.BUBBLING_PHASE&&m.stopImmediatePropagation();else if(m.eventPhase===Event.CAPTURING_PHASE||m.bubbles||m.target===l||l instanceof Window){var H="function"===k?b.call(l,m):b.handleEvent&&b.handleEvent(m);l!==this&&(q?(Object.defineProperty(m,"currentTarget",
q),q=null):delete m.currentTarget);return H}};b[rc].push({node:l,type:a,capture:e,once:f,passive:g,$a:h});Cc[a]?(this.__handlers=this.__handlers||{},this.__handlers[a]=this.__handlers[a]||{capture:[],bubble:[]},this.__handlers[a][e?"capture":"bubble"].push(h)):this.__shady_native_addEventListener(a,h,d)}}}
function Kc(a,b,c){if(b){var d=uc(c);c=d.capture;var e=d.once,f=d.passive,g=d.wa;d=d.ua;if(wc[a])return this.__shady_native_removeEventListener(a,b,d);var h=g||this;g=void 0;var k=null;try{k=b[rc]}catch(l){}k&&(e=Gc(k,h,a,c,e,f),-1<e&&(g=k.splice(e,1)[0].$a,k.length||(b[rc]=void 0)));this.__shady_native_removeEventListener(a,g||b,d);g&&Cc[a]&&this.__handlers&&this.__handlers[a]&&(a=this.__handlers[a][c?"capture":"bubble"],b=a.indexOf(g),-1<b&&a.splice(b,1))}}
function Lc(){for(var a in Cc)window.__shady_native_addEventListener(a,function(b){b.__target||(Jc(b),Fc(b))},!0)}
var Mc=Q({get composed(){void 0===this.__composed&&(sc?this.__composed="focusin"===this.type||"focusout"===this.type||sc(this):!1!==this.isTrusted&&(this.__composed=vc[this.type]));return this.__composed||!1},composedPath:function(){this.__composedPath||(this.__composedPath=yc(this.__target,this.composed));return this.__composedPath},get target(){return Ac(this.currentTarget||this.__previousCurrentTarget,this.composedPath())},get relatedTarget(){if(!this.__relatedTarget)return null;this.__relatedTargetComposedPath||
(this.__relatedTargetComposedPath=yc(this.__relatedTarget,!0));return Ac(this.currentTarget||this.__previousCurrentTarget,this.__relatedTargetComposedPath)},stopPropagation:function(){Event.prototype.stopPropagation.call(this);this.ea=!0},stopImmediatePropagation:function(){Event.prototype.stopImmediatePropagation.call(this);this.ea=this.__immediatePropagationStopped=!0}});
function Jc(a){a.__target=a.target;a.__relatedTarget=a.relatedTarget;if(M.D){var b=Object.getPrototypeOf(a);if(!b.hasOwnProperty("__shady_patchedProto")){var c=Object.create(b);c.__shady_sourceProto=b;P(c,Mc);b.__shady_patchedProto=c}a.__proto__=b.__shady_patchedProto}else P(a,Mc)}var Nc=Bc(Event),Oc=Bc(CustomEvent),Pc=Bc(MouseEvent);
function Qc(){if(!sc&&Object.getOwnPropertyDescriptor(Event.prototype,"isTrusted")){var a=function(){var b=new MouseEvent("click",{bubbles:!0,cancelable:!0,composed:!0});this.__shady_dispatchEvent(b)};Element.prototype.click?Element.prototype.click=a:HTMLElement.prototype.click&&(HTMLElement.prototype.click=a)}}var Rc=Object.getOwnPropertyNames(Document.prototype).filter(function(a){return"on"===a.substring(0,2)});function Sc(a,b){return{index:a,X:[],aa:b}}
function Tc(a,b,c,d){var e=0,f=0,g=0,h=0,k=Math.min(b-e,d-f);if(0==e&&0==f)a:{for(g=0;g<k;g++)if(a[g]!==c[g])break a;g=k}if(b==a.length&&d==c.length){h=a.length;for(var l=c.length,m=0;m<k-g&&Uc(a[--h],c[--l]);)m++;h=m}e+=g;f+=g;b-=h;d-=h;if(0==b-e&&0==d-f)return[];if(e==b){for(b=Sc(e,0);f<d;)b.X.push(c[f++]);return[b]}if(f==d)return[Sc(e,b-e)];k=e;g=f;d=d-g+1;h=b-k+1;b=Array(d);for(l=0;l<d;l++)b[l]=Array(h),b[l][0]=l;for(l=0;l<h;l++)b[0][l]=l;for(l=1;l<d;l++)for(m=1;m<h;m++)if(a[k+m-1]===c[g+l-1])b[l][m]=
b[l-1][m-1];else{var q=b[l-1][m]+1,H=b[l][m-1]+1;b[l][m]=q<H?q:H}k=b.length-1;g=b[0].length-1;d=b[k][g];for(a=[];0<k||0<g;)0==k?(a.push(2),g--):0==g?(a.push(3),k--):(h=b[k-1][g-1],l=b[k-1][g],m=b[k][g-1],q=l<m?l<h?l:h:m<h?m:h,q==h?(h==d?a.push(0):(a.push(1),d=h),k--,g--):q==l?(a.push(3),k--,d=l):(a.push(2),g--,d=m));a.reverse();b=void 0;k=[];for(g=0;g<a.length;g++)switch(a[g]){case 0:b&&(k.push(b),b=void 0);e++;f++;break;case 1:b||(b=Sc(e,0));b.aa++;e++;b.X.push(c[f]);f++;break;case 2:b||(b=Sc(e,
0));b.aa++;e++;break;case 3:b||(b=Sc(e,0)),b.X.push(c[f]),f++}b&&k.push(b);return k}function Uc(a,b){return a===b};var Vc=Q({dispatchEvent:Hc,addEventListener:Ic,removeEventListener:Kc});var Wc=null;function Xc(){Wc||(Wc=window.ShadyCSS&&window.ShadyCSS.ScopingShim);return Wc||null}function Yc(a,b,c){var d=Xc();return d&&"class"===b?(d.setElementClass(a,c),!0):!1}function Zc(a,b){var c=Xc();c&&c.unscopeNode(a,b)}function $c(a,b){var c=Xc();if(!c)return!0;if(a.nodeType===Node.DOCUMENT_FRAGMENT_NODE){c=!0;for(a=a.__shady_firstChild;a;a=a.__shady_nextSibling)c=c&&$c(a,b);return c}return a.nodeType!==Node.ELEMENT_NODE?!0:c.currentScopeForNode(a)===b}
function ad(a){if(a.nodeType!==Node.ELEMENT_NODE)return"";var b=Xc();return b?b.currentScopeForNode(a):""}function bd(a,b){if(a)for(a.nodeType===Node.ELEMENT_NODE&&b(a),a=a.__shady_firstChild;a;a=a.__shady_nextSibling)a.nodeType===Node.ELEMENT_NODE&&bd(a,b)};var cd=window.document,dd=M.ma,ed=Object.getOwnPropertyDescriptor(Node.prototype,"isConnected"),fd=ed&&ed.get;function gd(a){for(var b;b=a.__shady_firstChild;)a.__shady_removeChild(b)}function hd(a){var b=L(a);if(b&&void 0!==b.da)for(b=a.__shady_firstChild;b;b=b.__shady_nextSibling)hd(b);if(a=L(a))a.da=void 0}function id(a){var b=a;a&&"slot"===a.localName&&(b=(b=(b=L(a))&&b.T)&&b.length?b[0]:id(a.__shady_nextSibling));return b}
function jd(a,b,c){if(a=(a=L(a))&&a.W){if(b)if(b.nodeType===Node.DOCUMENT_FRAGMENT_NODE)for(var d=0,e=b.childNodes.length;d<e;d++)a.addedNodes.push(b.childNodes[d]);else a.addedNodes.push(b);c&&a.removedNodes.push(c);Mb(a)}}
var qd=Q({get parentNode(){var a=L(this);a=a&&a.parentNode;return void 0!==a?a:this.__shady_native_parentNode},get firstChild(){var a=L(this);a=a&&a.firstChild;return void 0!==a?a:this.__shady_native_firstChild},get lastChild(){var a=L(this);a=a&&a.lastChild;return void 0!==a?a:this.__shady_native_lastChild},get nextSibling(){var a=L(this);a=a&&a.nextSibling;return void 0!==a?a:this.__shady_native_nextSibling},get previousSibling(){var a=L(this);a=a&&a.previousSibling;return void 0!==a?a:this.__shady_native_previousSibling},
get childNodes(){if(rb(this)){var a=L(this);if(!a.childNodes){a.childNodes=[];for(var b=this.__shady_firstChild;b;b=b.__shady_nextSibling)a.childNodes.push(b)}var c=a.childNodes}else c=this.__shady_native_childNodes;c.item=function(d){return c[d]};return c},get parentElement(){var a=L(this);(a=a&&a.parentNode)&&a.nodeType!==Node.ELEMENT_NODE&&(a=null);return void 0!==a?a:this.__shady_native_parentElement},get isConnected(){if(fd&&fd.call(this))return!0;if(this.nodeType==Node.DOCUMENT_FRAGMENT_NODE)return!1;
var a=this.ownerDocument;if(Ab){if(a.__shady_native_contains(this))return!0}else if(a.documentElement&&a.documentElement.__shady_native_contains(this))return!0;for(a=this;a&&!(a instanceof Document);)a=a.__shady_parentNode||(O(a)?a.host:void 0);return!!(a&&a instanceof Document)},get textContent(){if(rb(this)){for(var a=[],b=this.__shady_firstChild;b;b=b.__shady_nextSibling)b.nodeType!==Node.COMMENT_NODE&&a.push(b.__shady_textContent);return a.join("")}return this.__shady_native_textContent},set textContent(a){if("undefined"===
typeof a||null===a)a="";switch(this.nodeType){case Node.ELEMENT_NODE:case Node.DOCUMENT_FRAGMENT_NODE:if(!rb(this)&&M.D){var b=this.__shady_firstChild;(b!=this.__shady_lastChild||b&&b.nodeType!=Node.TEXT_NODE)&&gd(this);this.__shady_native_textContent=a}else gd(this),(0<a.length||this.nodeType===Node.ELEMENT_NODE)&&this.__shady_insertBefore(document.createTextNode(a));break;default:this.nodeValue=a}},insertBefore:function(a,b){if(this.ownerDocument!==cd&&a.ownerDocument!==cd)return this.__shady_native_insertBefore(a,
b),a;if(a===this)throw Error("Failed to execute 'appendChild' on 'Node': The new child element contains the parent.");if(b){var c=L(b);c=c&&c.parentNode;if(void 0!==c&&c!==this||void 0===c&&b.__shady_native_parentNode!==this)throw Error("Failed to execute 'insertBefore' on 'Node': The node before which the new node is to be inserted is not a child of this node.");}if(b===a)return a;jd(this,a);var d=[],e=(c=kd(this))?c.host.localName:ad(this),f=a.__shady_parentNode;if(f){var g=ad(a);var h=!!c||!kd(a)||
dd&&void 0!==this.__noInsertionPoint;f.__shady_removeChild(a,h)}f=!0;var k=(!dd||void 0===a.__noInsertionPoint&&void 0===this.__noInsertionPoint)&&!$c(a,e),l=c&&!a.__noInsertionPoint&&(!dd||a.nodeType===Node.DOCUMENT_FRAGMENT_NODE);if(l||k)k&&(g=g||ad(a)),bd(a,function(m){l&&"slot"===m.localName&&d.push(m);if(k){var q=g;Xc()&&(q&&Zc(m,q),(q=Xc())&&q.scopeNode(m,e))}});d.length&&(ld(c),c.c.push.apply(c.c,d instanceof Array?d:da(ca(d))),md(c));rb(this)&&(nd(a,this,b),c=L(this),sb(this)?(md(c.root),
f=!1):c.root&&(f=!1));f?(c=O(this)?this.host:this,b?(b=id(b),c.__shady_native_insertBefore(a,b)):c.__shady_native_appendChild(a)):a.ownerDocument!==this.ownerDocument&&this.ownerDocument.adoptNode(a);return a},appendChild:function(a){if(this!=a||!O(a))return this.__shady_insertBefore(a)},removeChild:function(a,b){b=void 0===b?!1:b;if(this.ownerDocument!==cd)return this.__shady_native_removeChild(a);if(a.__shady_parentNode!==this)throw Error("The node to be removed is not a child of this node: "+a);
jd(this,null,a);var c=kd(a),d=c&&od(c,a),e=L(this);if(rb(this)&&(pd(a,this),sb(this))){md(e.root);var f=!0}if(Xc()&&!b&&c&&a.nodeType!==Node.TEXT_NODE){var g=ad(a);bd(a,function(h){Zc(h,g)})}hd(a);c&&((b=this&&"slot"===this.localName)&&(f=!0),(d||b)&&md(c));f||(f=O(this)?this.host:this,(!e.root&&"slot"!==a.localName||f===a.__shady_native_parentNode)&&f.__shady_native_removeChild(a));return a},replaceChild:function(a,b){this.__shady_insertBefore(a,b);this.__shady_removeChild(b);return a},cloneNode:function(a){if("template"==
this.localName)return this.__shady_native_cloneNode(a);var b=this.__shady_native_cloneNode(!1);if(a&&b.nodeType!==Node.ATTRIBUTE_NODE){a=this.__shady_firstChild;for(var c;a;a=a.__shady_nextSibling)c=a.__shady_cloneNode(!0),b.__shady_appendChild(c)}return b},getRootNode:function(a){if(this&&this.nodeType){var b=B(this),c=b.da;void 0===c&&(O(this)?(c=this,b.da=c):(c=(c=this.__shady_parentNode)?c.__shady_getRootNode(a):this,document.documentElement.__shady_native_contains(this)&&(b.da=c)));return c}},
contains:function(a){return Bb(this,a)}});var sd=Q({get assignedSlot(){var a=this.__shady_parentNode;(a=a&&a.__shady_shadowRoot)&&rd(a);return(a=L(this))&&a.assignedSlot||null}});function td(a,b,c){var d=[];vd(a,b,c,d);return d}function vd(a,b,c,d){for(a=a.__shady_firstChild;a;a=a.__shady_nextSibling){var e;if(e=a.nodeType===Node.ELEMENT_NODE){e=a;var f=b,g=c,h=d,k=f(e);k&&h.push(e);g&&g(k)?e=k:(vd(e,f,g,h),e=void 0)}if(e)break}}
var wd=Q({get firstElementChild(){var a=L(this);if(a&&void 0!==a.firstChild){for(a=this.__shady_firstChild;a&&a.nodeType!==Node.ELEMENT_NODE;)a=a.__shady_nextSibling;return a}return this.__shady_native_firstElementChild},get lastElementChild(){var a=L(this);if(a&&void 0!==a.lastChild){for(a=this.__shady_lastChild;a&&a.nodeType!==Node.ELEMENT_NODE;)a=a.__shady_previousSibling;return a}return this.__shady_native_lastElementChild},get children(){return rb(this)?Cb(Array.prototype.filter.call(Eb(this),
function(a){return a.nodeType===Node.ELEMENT_NODE})):this.__shady_native_children},get childElementCount(){var a=this.__shady_children;return a?a.length:0}}),xd=Q({querySelector:function(a){return td(this,function(b){return vb.call(b,a)},function(b){return!!b})[0]||null},querySelectorAll:function(a,b){if(b){b=Array.prototype.slice.call(this.__shady_native_querySelectorAll(a));var c=this.__shady_getRootNode();return Cb(b.filter(function(d){return d.__shady_getRootNode()==c}))}return Cb(td(this,function(d){return vb.call(d,
a)}))}}),yd=M.ma&&!M.G?Object.assign({},wd):wd;Object.assign(wd,xd);var zd=window.document;function Ad(a,b){if("slot"===b)a=a.__shady_parentNode,sb(a)&&md(L(a).root);else if("slot"===a.localName&&"name"===b&&(b=kd(a))){if(b.a){Bd(b);var c=a.Ba,d=Cd(a);if(d!==c){c=b.b[c];var e=c.indexOf(a);0<=e&&c.splice(e,1);c=b.b[d]||(b.b[d]=[]);c.push(a);1<c.length&&(b.b[d]=Dd(c))}}md(b)}}
var Ed=Q({get previousElementSibling(){var a=L(this);if(a&&void 0!==a.previousSibling){for(a=this.__shady_previousSibling;a&&a.nodeType!==Node.ELEMENT_NODE;)a=a.__shady_previousSibling;return a}return this.__shady_native_previousElementSibling},get nextElementSibling(){var a=L(this);if(a&&void 0!==a.nextSibling){for(a=this.__shady_nextSibling;a&&a.nodeType!==Node.ELEMENT_NODE;)a=a.__shady_nextSibling;return a}return this.__shady_native_nextElementSibling},get slot(){return this.getAttribute("slot")},
set slot(a){this.__shady_setAttribute("slot",a)},get className(){return this.getAttribute("class")||""},set className(a){this.__shady_setAttribute("class",a)},setAttribute:function(a,b){this.ownerDocument!==zd?this.__shady_native_setAttribute(a,b):Yc(this,a,b)||(this.__shady_native_setAttribute(a,b),Ad(this,a))},removeAttribute:function(a){this.ownerDocument!==zd?this.__shady_native_removeAttribute(a):Yc(this,a,"")?""===this.getAttribute(a)&&this.__shady_native_removeAttribute(a):(this.__shady_native_removeAttribute(a),
Ad(this,a))}}),Jd=Q({attachShadow:function(a){if(!this)throw Error("Must provide a host.");if(!a)throw Error("Not enough arguments.");if(a.shadyUpgradeFragment&&!M.ya){var b=a.shadyUpgradeFragment;b.__proto__=ShadowRoot.prototype;Fd(b,this,a);Gd(b,b);a=b.__noInsertionPoint?null:b.querySelectorAll("slot");b.__noInsertionPoint=void 0;if(a&&a.length){var c=b;ld(c);c.c.push.apply(c.c,a instanceof Array?a:da(ca(a)));md(b)}b.host.__shady_native_appendChild(b)}else b=new Hd(Id,this,a);return this.__CE_shadowRoot=
b},get shadowRoot(){var a=L(this);return a&&a.Sa||null}});Object.assign(Ed,Jd);var Kd=document.implementation.createHTMLDocument("inert"),Ld=Q({get innerHTML(){return rb(this)?Wb("template"===this.localName?this.content:this,Eb):this.__shady_native_innerHTML},set innerHTML(a){if("template"===this.localName)this.__shady_native_innerHTML=a;else{gd(this);var b=this.localName||"div";b=this.namespaceURI&&this.namespaceURI!==Kd.namespaceURI?Kd.createElementNS(this.namespaceURI,b):Kd.createElement(b);for(M.D?b.__shady_native_innerHTML=a:b.innerHTML=a;a=b.__shady_firstChild;)this.__shady_insertBefore(a)}}});var Md=Q({blur:function(){var a=L(this);(a=(a=a&&a.root)&&a.activeElement)?a.__shady_blur():this.__shady_native_blur()}});M.ma||Rc.forEach(function(a){Md[a]={set:function(b){var c=B(this),d=a.substring(2);c.N||(c.N={});c.N[a]&&this.removeEventListener(d,c.N[a]);this.__shady_addEventListener(d,b);c.N[a]=b},get:function(){var b=L(this);return b&&b.N&&b.N[a]},configurable:!0}});var Nd=Q({assignedNodes:function(a){if("slot"===this.localName){var b=this.__shady_getRootNode();b&&O(b)&&rd(b);return(b=L(this))?(a&&a.flatten?b.T:b.assignedNodes)||[]:[]}},addEventListener:function(a,b,c){if("slot"!==this.localName||"slotchange"===a)Ic.call(this,a,b,c);else{"object"!==typeof c&&(c={capture:!!c});var d=this.__shady_parentNode;if(!d)throw Error("ShadyDOM cannot attach event to slot unless it has a `parentNode`");c.O=this;d.__shady_addEventListener(a,b,c)}},removeEventListener:function(a,
b,c){if("slot"!==this.localName||"slotchange"===a)Kc.call(this,a,b,c);else{"object"!==typeof c&&(c={capture:!!c});var d=this.__shady_parentNode;if(!d)throw Error("ShadyDOM cannot attach event to slot unless it has a `parentNode`");c.O=this;d.__shady_removeEventListener(a,b,c)}}});var Od=Q({getElementById:function(a){return""===a?null:td(this,function(b){return b.id==a},function(b){return!!b})[0]||null}});var Pd=Q({get activeElement(){var a=M.D?document.__shady_native_activeElement:document.activeElement;if(!a||!a.nodeType)return null;var b=!!O(this);if(!(this===document||b&&this.host!==a&&this.host.__shady_native_contains(a)))return null;for(b=kd(a);b&&b!==this;)a=b.host,b=kd(a);return this===document?b?null:a:b===this?a:null}});var Qd=window.document,Rd=Q({importNode:function(a,b){if(a.ownerDocument!==Qd||"template"===a.localName)return this.__shady_native_importNode(a,b);var c=this.__shady_native_importNode(a,!1);if(b)for(a=a.__shady_firstChild;a;a=a.__shady_nextSibling)b=this.__shady_importNode(a,!0),c.__shady_appendChild(b);return c}});var Sd=Q({dispatchEvent:Hc,addEventListener:Ic.bind(window),removeEventListener:Kc.bind(window)});var Td={};Object.getOwnPropertyDescriptor(HTMLElement.prototype,"parentElement")&&(Td.parentElement=qd.parentElement);Object.getOwnPropertyDescriptor(HTMLElement.prototype,"contains")&&(Td.contains=qd.contains);Object.getOwnPropertyDescriptor(HTMLElement.prototype,"children")&&(Td.children=wd.children);Object.getOwnPropertyDescriptor(HTMLElement.prototype,"innerHTML")&&(Td.innerHTML=Ld.innerHTML);Object.getOwnPropertyDescriptor(HTMLElement.prototype,"className")&&(Td.className=Ed.className);
var Ud={EventTarget:[Vc],Node:[qd,window.EventTarget?null:Vc],Text:[sd],Comment:[sd],CDATASection:[sd],ProcessingInstruction:[sd],Element:[Ed,wd,sd,!M.D||"innerHTML"in Element.prototype?Ld:null,window.HTMLSlotElement?null:Nd],HTMLElement:[Md,Td],HTMLSlotElement:[Nd],DocumentFragment:[yd,Od],Document:[Rd,yd,Od,Pd],Window:[Sd]},Vd=M.D?null:["innerHTML","textContent"];function Wd(a,b,c,d){b.forEach(function(e){return a&&e&&P(a,e,c,d)})}
function Xd(a){var b=a?null:Vd,c;for(c in Ud)Wd(window[c]&&window[c].prototype,Ud[c],a,b)}["Text","Comment","CDATASection","ProcessingInstruction"].forEach(function(a){var b=window[a],c=Object.create(b.prototype);c.__shady_protoIsPatched=!0;Wd(c,Ud.EventTarget);Wd(c,Ud.Node);Ud[a]&&Wd(c,Ud[a]);b.prototype.__shady_patchedProto=c});function Yd(a){a.__shady_protoIsPatched=!0;Wd(a,Ud.EventTarget);Wd(a,Ud.Node);Wd(a,Ud.Element);Wd(a,Ud.HTMLElement);Wd(a,Ud.HTMLSlotElement);return a};var Zd=M.la,$d=M.D;function ae(a,b){if(Zd&&!a.__shady_protoIsPatched&&!O(a)){var c=Object.getPrototypeOf(a),d=c.hasOwnProperty("__shady_patchedProto")&&c.__shady_patchedProto;d||(d=Object.create(c),Yd(d),c.__shady_patchedProto=d);Object.setPrototypeOf(a,d)}$d||(1===b?pc(a):2===b&&qc(a))}
function be(a,b,c,d){ae(a,1);d=d||null;var e=B(a),f=d?B(d):null;e.previousSibling=d?f.previousSibling:b.__shady_lastChild;if(f=L(e.previousSibling))f.nextSibling=a;if(f=L(e.nextSibling=d))f.previousSibling=a;e.parentNode=b;d?d===c.firstChild&&(c.firstChild=a):(c.lastChild=a,c.firstChild||(c.firstChild=a));c.childNodes=null}
function nd(a,b,c){ae(b,2);var d=B(b);void 0!==d.firstChild&&(d.childNodes=null);if(a.nodeType===Node.DOCUMENT_FRAGMENT_NODE)for(a=a.__shady_native_firstChild;a;a=a.__shady_native_nextSibling)be(a,b,d,c);else be(a,b,d,c)}
function pd(a,b){var c=B(a);b=B(b);a===b.firstChild&&(b.firstChild=c.nextSibling);a===b.lastChild&&(b.lastChild=c.previousSibling);a=c.previousSibling;var d=c.nextSibling;a&&(B(a).nextSibling=d);d&&(B(d).previousSibling=a);c.parentNode=c.previousSibling=c.nextSibling=void 0;void 0!==b.childNodes&&(b.childNodes=null)}
function Gd(a,b){var c=B(a);if(b||void 0===c.firstChild){c.childNodes=null;var d=c.firstChild=a.__shady_native_firstChild;c.lastChild=a.__shady_native_lastChild;ae(a,2);c=d;for(d=void 0;c;c=c.__shady_native_nextSibling){var e=B(c);e.parentNode=b||a;e.nextSibling=c.__shady_native_nextSibling;e.previousSibling=d||null;d=c;ae(c,1)}}};var ce=Q({addEventListener:function(a,b,c){"object"!==typeof c&&(c={capture:!!c});c.O=c.O||this;this.host.__shady_addEventListener(a,b,c)},removeEventListener:function(a,b,c){"object"!==typeof c&&(c={capture:!!c});c.O=c.O||this;this.host.__shady_removeEventListener(a,b,c)}});function de(a,b){P(a,ce,b);P(a,Pd,b);P(a,Ld,b);P(a,wd,b);M.G&&!b?(P(a,qd,b),P(a,Od,b)):M.D||(P(a,mc),P(a,kc),P(a,lc))};var Id={},ee=M.deferConnectionCallbacks&&"loading"===document.readyState,fe;function ge(a){var b=[];do b.unshift(a);while(a=a.__shady_parentNode);return b}function Hd(a,b,c){if(a!==Id)throw new TypeError("Illegal constructor");this.a=null;Fd(this,b,c)}
function Fd(a,b,c){a.host=b;a.mode=c&&c.mode;Gd(a.host);b=B(a.host);b.root=a;b.Sa="closed"!==a.mode?a:null;b=B(a);b.firstChild=b.lastChild=b.parentNode=b.nextSibling=b.previousSibling=null;if(M.preferPerformance)for(;b=a.host.__shady_native_firstChild;)a.host.__shady_native_removeChild(b);else md(a)}function md(a){a.R||(a.R=!0,Jb(function(){return rd(a)}))}
function rd(a){var b;if(b=a.R){for(var c;a;)a:{a.R&&(c=a),b=a;a=b.host.__shady_getRootNode();if(O(a)&&(b=L(b.host))&&0<b.Z)break a;a=void 0}b=c}(c=b)&&c._renderSelf()}
Hd.prototype._renderSelf=function(){var a=ee;ee=!0;this.R=!1;if(this.a){Bd(this);for(var b=0,c;b<this.a.length;b++){c=this.a[b];var d=L(c),e=d.assignedNodes;d.assignedNodes=[];d.T=[];if(d.ra=e)for(d=0;d<e.length;d++){var f=L(e[d]);f.fa=f.assignedSlot;f.assignedSlot===c&&(f.assignedSlot=null)}}for(b=this.host.__shady_firstChild;b;b=b.__shady_nextSibling)he(this,b);for(b=0;b<this.a.length;b++){c=this.a[b];e=L(c);if(!e.assignedNodes.length)for(d=c.__shady_firstChild;d;d=d.__shady_nextSibling)he(this,
d,c);(d=(d=L(c.__shady_parentNode))&&d.root)&&(tb(d)||d.R)&&d._renderSelf();ie(this,e.T,e.assignedNodes);if(d=e.ra){for(f=0;f<d.length;f++)L(d[f]).fa=null;e.ra=null;d.length>e.assignedNodes.length&&(e.ha=!0)}e.ha&&(e.ha=!1,je(this,c))}c=this.a;b=[];for(e=0;e<c.length;e++)d=c[e].__shady_parentNode,(f=L(d))&&f.root||!(0>b.indexOf(d))||b.push(d);for(c=0;c<b.length;c++){f=b[c];e=f===this?this.host:f;d=[];for(f=f.__shady_firstChild;f;f=f.__shady_nextSibling)if("slot"==f.localName)for(var g=L(f).T,h=0;h<
g.length;h++)d.push(g[h]);else d.push(f);f=Db(e);g=Tc(d,d.length,f,f.length);for(var k=h=0,l=void 0;h<g.length&&(l=g[h]);h++){for(var m=0,q=void 0;m<l.X.length&&(q=l.X[m]);m++)q.__shady_native_parentNode===e&&e.__shady_native_removeChild(q),f.splice(l.index+k,1);k-=l.aa}k=0;for(l=void 0;k<g.length&&(l=g[k]);k++)for(h=f[l.index],m=l.index;m<l.index+l.aa;m++)q=d[m],e.__shady_native_insertBefore(q,h),f.splice(m,0,q)}}if(!M.preferPerformance&&!this.qa)for(b=this.host.__shady_firstChild;b;b=b.__shady_nextSibling)c=
L(b),b.__shady_native_parentNode!==this.host||"slot"!==b.localName&&c.assignedSlot||this.host.__shady_native_removeChild(b);this.qa=!0;ee=a;fe&&fe()};function he(a,b,c){var d=B(b),e=d.fa;d.fa=null;c||(c=(a=a.b[b.__shady_slot||"__catchall"])&&a[0]);c?(B(c).assignedNodes.push(b),d.assignedSlot=c):d.assignedSlot=void 0;e!==d.assignedSlot&&d.assignedSlot&&(B(d.assignedSlot).ha=!0)}
function ie(a,b,c){for(var d=0,e=void 0;d<c.length&&(e=c[d]);d++)if("slot"==e.localName){var f=L(e).assignedNodes;f&&f.length&&ie(a,b,f)}else b.push(c[d])}function je(a,b){b.__shady_native_dispatchEvent(new Event("slotchange"));b=L(b);b.assignedSlot&&je(a,b.assignedSlot)}function ld(a){a.c=a.c||[];a.a=a.a||[];a.b=a.b||{}}
function Bd(a){if(a.c&&a.c.length){for(var b=a.c,c,d=0;d<b.length;d++){var e=b[d];Gd(e);var f=e.__shady_parentNode;Gd(f);f=L(f);f.Z=(f.Z||0)+1;f=Cd(e);a.b[f]?(c=c||{},c[f]=!0,a.b[f].push(e)):a.b[f]=[e];a.a.push(e)}if(c)for(var g in c)a.b[g]=Dd(a.b[g]);a.c=[]}}function Cd(a){var b=a.name||a.getAttribute("name")||"__catchall";return a.Ba=b}
function Dd(a){return a.sort(function(b,c){b=ge(b);for(var d=ge(c),e=0;e<b.length;e++){c=b[e];var f=d[e];if(c!==f)return b=Eb(c.__shady_parentNode),b.indexOf(c)-b.indexOf(f)}})}
function od(a,b){if(a.a){Bd(a);var c=a.b,d;for(d in c)for(var e=c[d],f=0;f<e.length;f++){var g=e[f];if(Bb(b,g)){e.splice(f,1);var h=a.a.indexOf(g);0<=h&&(a.a.splice(h,1),(h=L(g.__shady_parentNode))&&h.Z&&h.Z--);f--;g=L(g);if(h=g.T)for(var k=0;k<h.length;k++){var l=h[k],m=l.__shady_native_parentNode;m&&m.__shady_native_removeChild(l)}g.T=[];g.assignedNodes=[];h=!0}}return h}}function tb(a){Bd(a);return!(!a.a||!a.a.length)}
(function(a){a.__proto__=DocumentFragment.prototype;de(a,"__shady_");de(a);Object.defineProperties(a,{nodeType:{value:Node.DOCUMENT_FRAGMENT_NODE,configurable:!0},nodeName:{value:"#document-fragment",configurable:!0},nodeValue:{value:null,configurable:!0}});["localName","namespaceURI","prefix"].forEach(function(b){Object.defineProperty(a,b,{value:void 0,configurable:!0})});["ownerDocument","baseURI","isConnected"].forEach(function(b){Object.defineProperty(a,b,{get:function(){return this.host[b]},
configurable:!0})})})(Hd.prototype);
if(window.customElements&&M.ia&&!M.preferPerformance){var ke=new Map;fe=function(){var a=[];ke.forEach(function(d,e){a.push([e,d])});ke.clear();for(var b=0;b<a.length;b++){var c=a[b][0];a[b][1]?c.__shadydom_connectedCallback():c.__shadydom_disconnectedCallback()}};ee&&document.addEventListener("readystatechange",function(){ee=!1;fe()},{once:!0});var le=function(a,b,c){var d=0,e="__isConnected"+d++;if(b||c)a.prototype.connectedCallback=a.prototype.__shadydom_connectedCallback=function(){ee?ke.set(this,
!0):this[e]||(this[e]=!0,b&&b.call(this))},a.prototype.disconnectedCallback=a.prototype.__shadydom_disconnectedCallback=function(){ee?this.isConnected||ke.set(this,!1):this[e]&&(this[e]=!1,c&&c.call(this))};return a},me=window.customElements.define,define=function(a,b){var c=b.prototype.connectedCallback,d=b.prototype.disconnectedCallback;me.call(window.customElements,a,le(b,c,d));b.prototype.connectedCallback=c;b.prototype.disconnectedCallback=d};window.customElements.define=define;Object.defineProperty(window.CustomElementRegistry.prototype,
"define",{value:define,configurable:!0})}function kd(a){a=a.__shady_getRootNode();if(O(a))return a};function ne(a){this.node=a}w=ne.prototype;w.addEventListener=function(a,b,c){return this.node.__shady_addEventListener(a,b,c)};w.removeEventListener=function(a,b,c){return this.node.__shady_removeEventListener(a,b,c)};w.appendChild=function(a){return this.node.__shady_appendChild(a)};w.insertBefore=function(a,b){return this.node.__shady_insertBefore(a,b)};w.removeChild=function(a){return this.node.__shady_removeChild(a)};w.replaceChild=function(a,b){return this.node.__shady_replaceChild(a,b)};
w.cloneNode=function(a){return this.node.__shady_cloneNode(a)};w.getRootNode=function(a){return this.node.__shady_getRootNode(a)};w.contains=function(a){return this.node.__shady_contains(a)};w.dispatchEvent=function(a){return this.node.__shady_dispatchEvent(a)};w.setAttribute=function(a,b){this.node.__shady_setAttribute(a,b)};w.getAttribute=function(a){return this.node.__shady_native_getAttribute(a)};w.hasAttribute=function(a){return this.node.__shady_native_hasAttribute(a)};w.removeAttribute=function(a){this.node.__shady_removeAttribute(a)};
w.attachShadow=function(a){return this.node.__shady_attachShadow(a)};w.focus=function(){this.node.__shady_native_focus()};w.blur=function(){this.node.__shady_blur()};w.importNode=function(a,b){if(this.node.nodeType===Node.DOCUMENT_NODE)return this.node.__shady_importNode(a,b)};w.getElementById=function(a){if(this.node.nodeType===Node.DOCUMENT_NODE)return this.node.__shady_getElementById(a)};w.querySelector=function(a){return this.node.__shady_querySelector(a)};
w.querySelectorAll=function(a,b){return this.node.__shady_querySelectorAll(a,b)};w.assignedNodes=function(a){if("slot"===this.node.localName)return this.node.__shady_assignedNodes(a)};
ea.Object.defineProperties(ne.prototype,{activeElement:{configurable:!0,enumerable:!0,get:function(){if(O(this.node)||this.node.nodeType===Node.DOCUMENT_NODE)return this.node.__shady_activeElement}},_activeElement:{configurable:!0,enumerable:!0,get:function(){return this.activeElement}},host:{configurable:!0,enumerable:!0,get:function(){if(O(this.node))return this.node.host}},parentNode:{configurable:!0,enumerable:!0,get:function(){return this.node.__shady_parentNode}},firstChild:{configurable:!0,
enumerable:!0,get:function(){return this.node.__shady_firstChild}},lastChild:{configurable:!0,enumerable:!0,get:function(){return this.node.__shady_lastChild}},nextSibling:{configurable:!0,enumerable:!0,get:function(){return this.node.__shady_nextSibling}},previousSibling:{configurable:!0,enumerable:!0,get:function(){return this.node.__shady_previousSibling}},childNodes:{configurable:!0,enumerable:!0,get:function(){return this.node.__shady_childNodes}},parentElement:{configurable:!0,enumerable:!0,
get:function(){return this.node.__shady_parentElement}},firstElementChild:{configurable:!0,enumerable:!0,get:function(){return this.node.__shady_firstElementChild}},lastElementChild:{configurable:!0,enumerable:!0,get:function(){return this.node.__shady_lastElementChild}},nextElementSibling:{configurable:!0,enumerable:!0,get:function(){return this.node.__shady_nextElementSibling}},previousElementSibling:{configurable:!0,enumerable:!0,get:function(){return this.node.__shady_previousElementSibling}},
children:{configurable:!0,enumerable:!0,get:function(){return this.node.__shady_children}},childElementCount:{configurable:!0,enumerable:!0,get:function(){return this.node.__shady_childElementCount}},shadowRoot:{configurable:!0,enumerable:!0,get:function(){return this.node.__shady_shadowRoot}},assignedSlot:{configurable:!0,enumerable:!0,get:function(){return this.node.__shady_assignedSlot}},isConnected:{configurable:!0,enumerable:!0,get:function(){return this.node.__shady_isConnected}},innerHTML:{configurable:!0,
enumerable:!0,get:function(){return this.node.__shady_innerHTML},set:function(a){this.node.__shady_innerHTML=a}},textContent:{configurable:!0,enumerable:!0,get:function(){return this.node.__shady_textContent},set:function(a){this.node.__shady_textContent=a}},slot:{configurable:!0,enumerable:!0,get:function(){return this.node.__shady_slot},set:function(a){this.node.__shady_slot=a}},className:{configurable:!0,enumerable:!0,get:function(){return this.node.__shady_className},set:function(a){return this.node.__shady_className=
a}}});Rc.forEach(function(a){Object.defineProperty(ne.prototype,a,{get:function(){return this.node["__shady_"+a]},set:function(b){this.node["__shady_"+a]=b},configurable:!0})});var oe=new WeakMap;function pe(a){if(O(a)||a instanceof ne)return a;var b=oe.get(a);b||(b=new ne(a),oe.set(a,b));return b};if(M.ia){var qe=M.D?function(a){return a}:function(a){qc(a);pc(a);return a},ShadyDOM={inUse:M.ia,patch:qe,isShadyRoot:O,enqueue:Jb,flush:Kb,flushInitial:function(a){!a.qa&&a.R&&rd(a)},settings:M,filterMutations:Pb,observeChildren:Nb,unobserveChildren:Ob,deferConnectionCallbacks:M.deferConnectionCallbacks,preferPerformance:M.preferPerformance,handlesDynamicScoping:!0,wrap:M.G?pe:qe,wrapIfNeeded:!0===M.G?pe:function(a){return a},Wrapper:ne,composedPath:zc,noPatch:M.G,patchOnDemand:M.la,nativeMethods:$b,
nativeTree:ac,patchElementProto:Yd};window.ShadyDOM=ShadyDOM;jc();Xd("__shady_");Object.defineProperty(document,"_activeElement",Pd.activeElement);P(Window.prototype,Sd,"__shady_");M.G?M.la&&P(Element.prototype,Jd):(Xd(),Qc());Lc();window.Event=Nc;window.CustomEvent=Oc;window.MouseEvent=Pc;window.ShadowRoot=Hd};var re=window.Document.prototype.createElement,se=window.Document.prototype.createElementNS,te=window.Document.prototype.importNode,ue=window.Document.prototype.prepend,ve=window.Document.prototype.append,we=window.DocumentFragment.prototype.prepend,xe=window.DocumentFragment.prototype.append,ye=window.Node.prototype.cloneNode,ze=window.Node.prototype.appendChild,Ae=window.Node.prototype.insertBefore,Be=window.Node.prototype.removeChild,Ce=window.Node.prototype.replaceChild,De=Object.getOwnPropertyDescriptor(window.Node.prototype,
"textContent"),Ee=window.Element.prototype.attachShadow,Fe=Object.getOwnPropertyDescriptor(window.Element.prototype,"innerHTML"),Ge=window.Element.prototype.getAttribute,He=window.Element.prototype.setAttribute,Ie=window.Element.prototype.removeAttribute,Je=window.Element.prototype.getAttributeNS,Ke=window.Element.prototype.setAttributeNS,Le=window.Element.prototype.removeAttributeNS,Me=window.Element.prototype.insertAdjacentElement,Ne=window.Element.prototype.insertAdjacentHTML,Oe=window.Element.prototype.prepend,
Pe=window.Element.prototype.append,Qe=window.Element.prototype.before,Re=window.Element.prototype.after,Se=window.Element.prototype.replaceWith,Te=window.Element.prototype.remove,Ue=window.HTMLElement,Ve=Object.getOwnPropertyDescriptor(window.HTMLElement.prototype,"innerHTML"),We=window.HTMLElement.prototype.insertAdjacentElement,Xe=window.HTMLElement.prototype.insertAdjacentHTML;var Ye=new Set;"annotation-xml color-profile font-face font-face-src font-face-uri font-face-format font-face-name missing-glyph".split(" ").forEach(function(a){return Ye.add(a)});function Ze(a){var b=Ye.has(a);a=/^[a-z][.0-9_a-z]*-[\-.0-9_a-z]*$/.test(a);return!b&&a}var $e=document.contains?document.contains.bind(document):document.documentElement.contains.bind(document.documentElement);
function T(a){var b=a.isConnected;if(void 0!==b)return b;if($e(a))return!0;for(;a&&!(a.__CE_isImportDocument||a instanceof Document);)a=a.parentNode||(window.ShadowRoot&&a instanceof ShadowRoot?a.host:void 0);return!(!a||!(a.__CE_isImportDocument||a instanceof Document))}function af(a){var b=a.children;if(b)return Array.prototype.slice.call(b);b=[];for(a=a.firstChild;a;a=a.nextSibling)a.nodeType===Node.ELEMENT_NODE&&b.push(a);return b}
function bf(a,b){for(;b&&b!==a&&!b.nextSibling;)b=b.parentNode;return b&&b!==a?b.nextSibling:null}
function cf(a,b,c){for(var d=a;d;){if(d.nodeType===Node.ELEMENT_NODE){var e=d;b(e);var f=e.localName;if("link"===f&&"import"===e.getAttribute("rel")){d=e.import;void 0===c&&(c=new Set);if(d instanceof Node&&!c.has(d))for(c.add(d),d=d.firstChild;d;d=d.nextSibling)cf(d,b,c);d=bf(a,e);continue}else if("template"===f){d=bf(a,e);continue}if(e=e.__CE_shadowRoot)for(e=e.firstChild;e;e=e.nextSibling)cf(e,b,c)}d=d.firstChild?d.firstChild:bf(a,d)}}function U(a,b,c){a[b]=c};function df(a){var b=document;this.b=a;this.a=b;this.P=void 0;ef(this.b,this.a);"loading"===this.a.readyState&&(this.P=new MutationObserver(this.c.bind(this)),this.P.observe(this.a,{childList:!0,subtree:!0}))}function ff(a){a.P&&a.P.disconnect()}df.prototype.c=function(a){var b=this.a.readyState;"interactive"!==b&&"complete"!==b||ff(this);for(b=0;b<a.length;b++)for(var c=a[b].addedNodes,d=0;d<c.length;d++)ef(this.b,c[d])};function gf(){var a=this;this.a=this.w=void 0;this.b=new Promise(function(b){a.a=b;a.w&&b(a.w)})}gf.prototype.resolve=function(a){if(this.w)throw Error("Already resolved.");this.w=a;this.a&&this.a(a)};function V(a){this.f=new Map;this.u=new Map;this.ta=new Map;this.U=!1;this.b=a;this.ja=new Map;this.c=function(b){return b()};this.a=!1;this.F=[];this.va=a.f?new df(a):void 0}w=V.prototype;w.Qa=function(a,b){var c=this;if(!(b instanceof Function))throw new TypeError("Custom element constructor getters must be functions.");hf(this,a);this.f.set(a,b);this.F.push(a);this.a||(this.a=!0,this.c(function(){return jf(c)}))};
w.define=function(a,b){var c=this;if(!(b instanceof Function))throw new TypeError("Custom element constructors must be functions.");hf(this,a);kf(this,a,b);this.F.push(a);this.a||(this.a=!0,this.c(function(){return jf(c)}))};function hf(a,b){if(!Ze(b))throw new SyntaxError("The element name '"+b+"' is not valid.");if(lf(a,b))throw Error("A custom element with name '"+b+"' has already been defined.");if(a.U)throw Error("A custom element is already being defined.");}
function kf(a,b,c){a.U=!0;var d;try{var e=function(m){var q=f[m];if(void 0!==q&&!(q instanceof Function))throw Error("The '"+m+"' callback must be a function.");return q},f=c.prototype;if(!(f instanceof Object))throw new TypeError("The custom element constructor's prototype is not an object.");var g=e("connectedCallback");var h=e("disconnectedCallback");var k=e("adoptedCallback");var l=(d=e("attributeChangedCallback"))&&c.observedAttributes||[]}catch(m){throw m;}finally{a.U=!1}c={localName:b,constructorFunction:c,
connectedCallback:g,disconnectedCallback:h,adoptedCallback:k,attributeChangedCallback:d,observedAttributes:l,constructionStack:[]};a.u.set(b,c);a.ta.set(c.constructorFunction,c);return c}w.upgrade=function(a){ef(this.b,a)};
function jf(a){if(!1!==a.a){a.a=!1;for(var b=[],c=a.F,d=new Map,e=0;e<c.length;e++)d.set(c[e],[]);ef(a.b,document,{upgrade:function(k){if(void 0===k.__CE_state){var l=k.localName,m=d.get(l);m?m.push(k):a.u.has(l)&&b.push(k)}}});for(e=0;e<b.length;e++)mf(a.b,b[e]);for(e=0;e<c.length;e++){for(var f=c[e],g=d.get(f),h=0;h<g.length;h++)mf(a.b,g[h]);(f=a.ja.get(f))&&f.resolve(void 0)}c.length=0}}w.get=function(a){if(a=lf(this,a))return a.constructorFunction};
w.whenDefined=function(a){if(!Ze(a))return Promise.reject(new SyntaxError("'"+a+"' is not a valid custom element name."));var b=this.ja.get(a);if(b)return b.b;b=new gf;this.ja.set(a,b);var c=this.u.has(a)||this.f.has(a);a=-1===this.F.indexOf(a);c&&a&&b.resolve(void 0);return b.b};w.polyfillWrapFlushCallback=function(a){this.va&&ff(this.va);var b=this.c;this.c=function(c){return a(function(){return b(c)})}};
function lf(a,b){var c=a.u.get(b);if(c)return c;if(c=a.f.get(b)){a.f.delete(b);try{return kf(a,b,c())}catch(d){nf(d)}}}window.CustomElementRegistry=V;V.prototype.define=V.prototype.define;V.prototype.upgrade=V.prototype.upgrade;V.prototype.get=V.prototype.get;V.prototype.whenDefined=V.prototype.whenDefined;V.prototype.polyfillDefineLazy=V.prototype.Qa;V.prototype.polyfillWrapFlushCallback=V.prototype.polyfillWrapFlushCallback;function of(){var a=pf&&pf.noDocumentConstructionObserver,b=pf&&pf.shadyDomFastWalk;this.b=[];this.c=[];this.a=!1;this.shadyDomFastWalk=b;this.f=!a}function qf(a,b,c,d){var e=window.ShadyDOM;if(a.shadyDomFastWalk&&e&&e.inUse){if(b.nodeType===Node.ELEMENT_NODE&&c(b),b.querySelectorAll)for(a=e.nativeMethods.querySelectorAll.call(b,"*"),b=0;b<a.length;b++)c(a[b])}else cf(b,c,d)}function rf(a,b){a.a=!0;a.b.push(b)}function sf(a,b){a.a=!0;a.c.push(b)}
function tf(a,b){a.a&&qf(a,b,function(c){return uf(a,c)})}function uf(a,b){if(a.a&&!b.__CE_patched){b.__CE_patched=!0;for(var c=0;c<a.b.length;c++)a.b[c](b);for(c=0;c<a.c.length;c++)a.c[c](b)}}function vf(a,b){var c=[];qf(a,b,function(e){return c.push(e)});for(b=0;b<c.length;b++){var d=c[b];1===d.__CE_state?a.connectedCallback(d):mf(a,d)}}function wf(a,b){var c=[];qf(a,b,function(e){return c.push(e)});for(b=0;b<c.length;b++){var d=c[b];1===d.__CE_state&&a.disconnectedCallback(d)}}
function ef(a,b,c){c=void 0===c?{}:c;var d=c.Za,e=c.upgrade||function(g){return mf(a,g)},f=[];qf(a,b,function(g){a.a&&uf(a,g);if("link"===g.localName&&"import"===g.getAttribute("rel")){var h=g.import;h instanceof Node&&(h.__CE_isImportDocument=!0,h.__CE_registry=document.__CE_registry);h&&"complete"===h.readyState?h.__CE_documentLoadHandled=!0:g.addEventListener("load",function(){var k=g.import;if(!k.__CE_documentLoadHandled){k.__CE_documentLoadHandled=!0;var l=new Set;d&&(d.forEach(function(m){return l.add(m)}),
l.delete(k));ef(a,k,{Za:l,upgrade:e})}})}else f.push(g)},d);for(b=0;b<f.length;b++)e(f[b])}
function mf(a,b){try{var c=b.ownerDocument,d=c.__CE_registry;var e=d&&(c.defaultView||c.__CE_isImportDocument)?lf(d,b.localName):void 0;if(e&&void 0===b.__CE_state){e.constructionStack.push(b);try{try{if(new e.constructorFunction!==b)throw Error("The custom element constructor did not produce the element being upgraded.");}finally{e.constructionStack.pop()}}catch(k){throw b.__CE_state=2,k;}b.__CE_state=1;b.__CE_definition=e;if(e.attributeChangedCallback&&b.hasAttributes()){var f=e.observedAttributes;
for(e=0;e<f.length;e++){var g=f[e],h=b.getAttribute(g);null!==h&&a.attributeChangedCallback(b,g,null,h,null)}}T(b)&&a.connectedCallback(b)}}catch(k){nf(k)}}of.prototype.connectedCallback=function(a){var b=a.__CE_definition;if(b.connectedCallback)try{b.connectedCallback.call(a)}catch(c){nf(c)}};of.prototype.disconnectedCallback=function(a){var b=a.__CE_definition;if(b.disconnectedCallback)try{b.disconnectedCallback.call(a)}catch(c){nf(c)}};
of.prototype.attributeChangedCallback=function(a,b,c,d,e){var f=a.__CE_definition;if(f.attributeChangedCallback&&-1<f.observedAttributes.indexOf(b))try{f.attributeChangedCallback.call(a,b,c,d,e)}catch(g){nf(g)}};
function xf(a,b,c,d){var e=b.__CE_registry;if(e&&(null===d||"http://www.w3.org/1999/xhtml"===d)&&(e=lf(e,c)))try{var f=new e.constructorFunction;if(void 0===f.__CE_state||void 0===f.__CE_definition)throw Error("Failed to construct '"+c+"': The returned value was not constructed with the HTMLElement constructor.");if("http://www.w3.org/1999/xhtml"!==f.namespaceURI)throw Error("Failed to construct '"+c+"': The constructed element's namespace must be the HTML namespace.");if(f.hasAttributes())throw Error("Failed to construct '"+
c+"': The constructed element must not have any attributes.");if(null!==f.firstChild)throw Error("Failed to construct '"+c+"': The constructed element must not have any children.");if(null!==f.parentNode)throw Error("Failed to construct '"+c+"': The constructed element must not have a parent node.");if(f.ownerDocument!==b)throw Error("Failed to construct '"+c+"': The constructed element's owner document is incorrect.");if(f.localName!==c)throw Error("Failed to construct '"+c+"': The constructed element's local name is incorrect.");
return f}catch(g){return nf(g),b=null===d?re.call(b,c):se.call(b,d,c),Object.setPrototypeOf(b,HTMLUnknownElement.prototype),b.__CE_state=2,b.__CE_definition=void 0,uf(a,b),b}b=null===d?re.call(b,c):se.call(b,d,c);uf(a,b);return b}
function nf(a){var b=a.message,c=a.sourceURL||a.fileName||"",d=a.line||a.lineNumber||0,e=a.column||a.columnNumber||0,f=void 0;void 0===ErrorEvent.prototype.initErrorEvent?f=new ErrorEvent("error",{cancelable:!0,message:b,filename:c,lineno:d,colno:e,error:a}):(f=document.createEvent("ErrorEvent"),f.initErrorEvent("error",!1,!0,b,c,d),f.preventDefault=function(){Object.defineProperty(this,"defaultPrevented",{configurable:!0,get:function(){return!0}})});void 0===f.error&&Object.defineProperty(f,"error",
{configurable:!0,enumerable:!0,get:function(){return a}});window.dispatchEvent(f);f.defaultPrevented||console.error(a)};var yf=new function(){};function zf(a){window.HTMLElement=function(){function b(){var c=this.constructor;var d=document.__CE_registry.ta.get(c);if(!d)throw Error("Failed to construct a custom element: The constructor was not registered with `customElements`.");var e=d.constructionStack;if(0===e.length)return e=re.call(document,d.localName),Object.setPrototypeOf(e,c.prototype),e.__CE_state=1,e.__CE_definition=d,uf(a,e),e;var f=e.length-1,g=e[f];if(g===yf)throw Error("Failed to construct '"+d.localName+"': This element was already constructed.");
e[f]=yf;Object.setPrototypeOf(g,c.prototype);uf(a,g);return g}b.prototype=Ue.prototype;Object.defineProperty(b.prototype,"constructor",{writable:!0,configurable:!0,enumerable:!1,value:b});return b}()};function Af(a,b,c){function d(e){return function(f){for(var g=[],h=0;h<arguments.length;++h)g[h]=arguments[h];h=[];for(var k=[],l=0;l<g.length;l++){var m=g[l];m instanceof Element&&T(m)&&k.push(m);if(m instanceof DocumentFragment)for(m=m.firstChild;m;m=m.nextSibling)h.push(m);else h.push(m)}e.apply(this,g);for(g=0;g<k.length;g++)wf(a,k[g]);if(T(this))for(g=0;g<h.length;g++)k=h[g],k instanceof Element&&vf(a,k)}}void 0!==c.prepend&&U(b,"prepend",d(c.prepend));void 0!==c.append&&U(b,"append",d(c.append))}
;function Bf(a){U(Document.prototype,"createElement",function(b){return xf(a,this,b,null)});U(Document.prototype,"importNode",function(b,c){b=te.call(this,b,!!c);this.__CE_registry?ef(a,b):tf(a,b);return b});U(Document.prototype,"createElementNS",function(b,c){return xf(a,this,c,b)});Af(a,Document.prototype,{prepend:ue,append:ve})};function Cf(a){function b(c,d){Object.defineProperty(c,"textContent",{enumerable:d.enumerable,configurable:!0,get:d.get,set:function(e){if(this.nodeType===Node.TEXT_NODE)d.set.call(this,e);else{var f=void 0;if(this.firstChild){var g=this.childNodes,h=g.length;if(0<h&&T(this)){f=Array(h);for(var k=0;k<h;k++)f[k]=g[k]}}d.set.call(this,e);if(f)for(e=0;e<f.length;e++)wf(a,f[e])}}})}U(Node.prototype,"insertBefore",function(c,d){if(c instanceof DocumentFragment){var e=af(c);c=Ae.call(this,c,d);if(T(this))for(d=
0;d<e.length;d++)vf(a,e[d]);return c}e=c instanceof Element&&T(c);d=Ae.call(this,c,d);e&&wf(a,c);T(this)&&vf(a,c);return d});U(Node.prototype,"appendChild",function(c){if(c instanceof DocumentFragment){var d=af(c);c=ze.call(this,c);if(T(this))for(var e=0;e<d.length;e++)vf(a,d[e]);return c}d=c instanceof Element&&T(c);e=ze.call(this,c);d&&wf(a,c);T(this)&&vf(a,c);return e});U(Node.prototype,"cloneNode",function(c){c=ye.call(this,!!c);this.ownerDocument.__CE_registry?ef(a,c):tf(a,c);return c});U(Node.prototype,
"removeChild",function(c){var d=c instanceof Element&&T(c),e=Be.call(this,c);d&&wf(a,c);return e});U(Node.prototype,"replaceChild",function(c,d){if(c instanceof DocumentFragment){var e=af(c);c=Ce.call(this,c,d);if(T(this))for(wf(a,d),d=0;d<e.length;d++)vf(a,e[d]);return c}e=c instanceof Element&&T(c);var f=Ce.call(this,c,d),g=T(this);g&&wf(a,d);e&&wf(a,c);g&&vf(a,c);return f});De&&De.get?b(Node.prototype,De):rf(a,function(c){b(c,{enumerable:!0,configurable:!0,get:function(){for(var d=[],e=this.firstChild;e;e=
e.nextSibling)e.nodeType!==Node.COMMENT_NODE&&d.push(e.textContent);return d.join("")},set:function(d){for(;this.firstChild;)Be.call(this,this.firstChild);null!=d&&""!==d&&ze.call(this,document.createTextNode(d))}})})};function Df(a){function b(d){return function(e){for(var f=[],g=0;g<arguments.length;++g)f[g]=arguments[g];g=[];for(var h=[],k=0;k<f.length;k++){var l=f[k];l instanceof Element&&T(l)&&h.push(l);if(l instanceof DocumentFragment)for(l=l.firstChild;l;l=l.nextSibling)g.push(l);else g.push(l)}d.apply(this,f);for(f=0;f<h.length;f++)wf(a,h[f]);if(T(this))for(f=0;f<g.length;f++)h=g[f],h instanceof Element&&vf(a,h)}}var c=Element.prototype;void 0!==Qe&&U(c,"before",b(Qe));void 0!==Re&&U(c,"after",b(Re));void 0!==
Se&&U(c,"replaceWith",function(d){for(var e=[],f=0;f<arguments.length;++f)e[f]=arguments[f];f=[];for(var g=[],h=0;h<e.length;h++){var k=e[h];k instanceof Element&&T(k)&&g.push(k);if(k instanceof DocumentFragment)for(k=k.firstChild;k;k=k.nextSibling)f.push(k);else f.push(k)}h=T(this);Se.apply(this,e);for(e=0;e<g.length;e++)wf(a,g[e]);if(h)for(wf(a,this),e=0;e<f.length;e++)g=f[e],g instanceof Element&&vf(a,g)});void 0!==Te&&U(c,"remove",function(){var d=T(this);Te.call(this);d&&wf(a,this)})};function Ef(a){function b(e,f){Object.defineProperty(e,"innerHTML",{enumerable:f.enumerable,configurable:!0,get:f.get,set:function(g){var h=this,k=void 0;T(this)&&(k=[],qf(a,this,function(q){q!==h&&k.push(q)}));f.set.call(this,g);if(k)for(var l=0;l<k.length;l++){var m=k[l];1===m.__CE_state&&a.disconnectedCallback(m)}this.ownerDocument.__CE_registry?ef(a,this):tf(a,this);return g}})}function c(e,f){U(e,"insertAdjacentElement",function(g,h){var k=T(h);g=f.call(this,g,h);k&&wf(a,h);T(g)&&vf(a,h);return g})}
function d(e,f){function g(h,k){for(var l=[];h!==k;h=h.nextSibling)l.push(h);for(k=0;k<l.length;k++)ef(a,l[k])}U(e,"insertAdjacentHTML",function(h,k){h=h.toLowerCase();if("beforebegin"===h){var l=this.previousSibling;f.call(this,h,k);g(l||this.parentNode.firstChild,this)}else if("afterbegin"===h)l=this.firstChild,f.call(this,h,k),g(this.firstChild,l);else if("beforeend"===h)l=this.lastChild,f.call(this,h,k),g(l||this.firstChild,null);else if("afterend"===h)l=this.nextSibling,f.call(this,h,k),g(this.nextSibling,
l);else throw new SyntaxError("The value provided ("+String(h)+") is not one of 'beforebegin', 'afterbegin', 'beforeend', or 'afterend'.");})}Ee&&U(Element.prototype,"attachShadow",function(e){e=Ee.call(this,e);if(a.a&&!e.__CE_patched){e.__CE_patched=!0;for(var f=0;f<a.b.length;f++)a.b[f](e)}return this.__CE_shadowRoot=e});Fe&&Fe.get?b(Element.prototype,Fe):Ve&&Ve.get?b(HTMLElement.prototype,Ve):sf(a,function(e){b(e,{enumerable:!0,configurable:!0,get:function(){return ye.call(this,!0).innerHTML},
set:function(f){var g="template"===this.localName,h=g?this.content:this,k=se.call(document,this.namespaceURI,this.localName);for(k.innerHTML=f;0<h.childNodes.length;)Be.call(h,h.childNodes[0]);for(f=g?k.content:k;0<f.childNodes.length;)ze.call(h,f.childNodes[0])}})});U(Element.prototype,"setAttribute",function(e,f){if(1!==this.__CE_state)return He.call(this,e,f);var g=Ge.call(this,e);He.call(this,e,f);f=Ge.call(this,e);a.attributeChangedCallback(this,e,g,f,null)});U(Element.prototype,"setAttributeNS",
function(e,f,g){if(1!==this.__CE_state)return Ke.call(this,e,f,g);var h=Je.call(this,e,f);Ke.call(this,e,f,g);g=Je.call(this,e,f);a.attributeChangedCallback(this,f,h,g,e)});U(Element.prototype,"removeAttribute",function(e){if(1!==this.__CE_state)return Ie.call(this,e);var f=Ge.call(this,e);Ie.call(this,e);null!==f&&a.attributeChangedCallback(this,e,f,null,null)});U(Element.prototype,"removeAttributeNS",function(e,f){if(1!==this.__CE_state)return Le.call(this,e,f);var g=Je.call(this,e,f);Le.call(this,
e,f);var h=Je.call(this,e,f);g!==h&&a.attributeChangedCallback(this,f,g,h,e)});We?c(HTMLElement.prototype,We):Me&&c(Element.prototype,Me);Xe?d(HTMLElement.prototype,Xe):Ne&&d(Element.prototype,Ne);Af(a,Element.prototype,{prepend:Oe,append:Pe});Df(a)};var pf=window.customElements;function Ff(){var a=new of;zf(a);Bf(a);Af(a,DocumentFragment.prototype,{prepend:we,append:xe});Cf(a);Ef(a);a=new V(a);document.__CE_registry=a;Object.defineProperty(window,"customElements",{configurable:!0,enumerable:!0,value:a})}pf&&!pf.forcePolyfill&&"function"==typeof pf.define&&"function"==typeof pf.get||Ff();window.__CE_installPolyfill=Ff;function Gf(){this.end=this.start=0;this.rules=this.parent=this.previous=null;this.cssText=this.parsedCssText="";this.atRule=!1;this.type=0;this.parsedSelector=this.selector=this.keyframesName=""}
function Hf(a){var b=a=a.replace(If,"").replace(Jf,""),c=new Gf;c.start=0;c.end=b.length;for(var d=c,e=0,f=b.length;e<f;e++)if("{"===b[e]){d.rules||(d.rules=[]);var g=d,h=g.rules[g.rules.length-1]||null;d=new Gf;d.start=e+1;d.parent=g;d.previous=h;g.rules.push(d)}else"}"===b[e]&&(d.end=e+1,d=d.parent||c);return Kf(c,a)}
function Kf(a,b){var c=b.substring(a.start,a.end-1);a.parsedCssText=a.cssText=c.trim();a.parent&&(c=b.substring(a.previous?a.previous.end:a.parent.start,a.start-1),c=Lf(c),c=c.replace(Mf," "),c=c.substring(c.lastIndexOf(";")+1),c=a.parsedSelector=a.selector=c.trim(),a.atRule=0===c.indexOf("@"),a.atRule?0===c.indexOf("@media")?a.type=Nf:c.match(Of)&&(a.type=Pf,a.keyframesName=a.selector.split(Mf).pop()):a.type=0===c.indexOf("--")?Qf:Rf);if(c=a.rules)for(var d=0,e=c.length,f=void 0;d<e&&(f=c[d]);d++)Kf(f,
b);return a}function Lf(a){return a.replace(/\\([0-9a-f]{1,6})\s/gi,function(b,c){b=c;for(c=6-b.length;c--;)b="0"+b;return"\\"+b})}
function Sf(a,b,c){c=void 0===c?"":c;var d="";if(a.cssText||a.rules){var e=a.rules,f;if(f=e)f=e[0],f=!(f&&f.selector&&0===f.selector.indexOf("--"));if(f){f=0;for(var g=e.length,h=void 0;f<g&&(h=e[f]);f++)d=Sf(h,b,d)}else b?b=a.cssText:(b=a.cssText,b=b.replace(Tf,"").replace(Uf,""),b=b.replace(Vf,"").replace(Wf,"")),(d=b.trim())&&(d=" "+d+"\n")}d&&(a.selector&&(c+=a.selector+" {\n"),c+=d,a.selector&&(c+="}\n\n"));return c}
var Rf=1,Pf=7,Nf=4,Qf=1E3,If=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//gim,Jf=/@import[^;]*;/gim,Tf=/(?:^[^;\-\s}]+)?--[^;{}]*?:[^{};]*?(?:[;\n]|$)/gim,Uf=/(?:^[^;\-\s}]+)?--[^;{}]*?:[^{};]*?{[^}]*?}(?:[;\n]|$)?/gim,Vf=/@apply\s*\(?[^);]*\)?\s*(?:[;\n]|$)?/gim,Wf=/[^;:]*?:[^;]*?var\([^;]*\)(?:[;\n]|$)?/gim,Of=/^@[^\s]*keyframes/,Mf=/\s+/g;var W=!(window.ShadyDOM&&window.ShadyDOM.inUse),Xf;function Yf(a){Xf=a&&a.shimcssproperties?!1:W||!(navigator.userAgent.match(/AppleWebKit\/601|Edge\/15/)||!window.CSS||!CSS.supports||!CSS.supports("box-shadow","0 0 0 var(--foo)"))}var Zf;window.ShadyCSS&&void 0!==window.ShadyCSS.cssBuild&&(Zf=window.ShadyCSS.cssBuild);var $f=!(!window.ShadyCSS||!window.ShadyCSS.disableRuntime);
window.ShadyCSS&&void 0!==window.ShadyCSS.nativeCss?Xf=window.ShadyCSS.nativeCss:window.ShadyCSS?(Yf(window.ShadyCSS),window.ShadyCSS=void 0):Yf(window.WebComponents&&window.WebComponents.flags);var Y=Xf;var ag=/(?:^|[;\s{]\s*)(--[\w-]*?)\s*:\s*(?:((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};{])+)|\{([^}]*)\}(?:(?=[;\s}])|$))/gi,bg=/(?:^|\W+)@apply\s*\(?([^);\n]*)\)?/gi,dg=/(--[\w-]+)\s*([:,;)]|$)/gi,eg=/(animation\s*:)|(animation-name\s*:)/,fg=/@media\s(.*)/,gg=/\{[^}]*\}/g;var hg=new Set;function ig(a,b){if(!a)return"";"string"===typeof a&&(a=Hf(a));b&&jg(a,b);return Sf(a,Y)}function kg(a){!a.__cssRules&&a.textContent&&(a.__cssRules=Hf(a.textContent));return a.__cssRules||null}function lg(a){return!!a.parent&&a.parent.type===Pf}function jg(a,b,c,d){if(a){var e=!1,f=a.type;if(d&&f===Nf){var g=a.selector.match(fg);g&&(window.matchMedia(g[1]).matches||(e=!0))}f===Rf?b(a):c&&f===Pf?c(a):f===Qf&&(e=!0);if((a=a.rules)&&!e)for(e=0,f=a.length,g=void 0;e<f&&(g=a[e]);e++)jg(g,b,c,d)}}
function mg(a,b,c,d){var e=document.createElement("style");b&&e.setAttribute("scope",b);e.textContent=a;ng(e,c,d);return e}var og=null;function pg(a){a=document.createComment(" Shady DOM styles for "+a+" ");var b=document.head;b.insertBefore(a,(og?og.nextSibling:null)||b.firstChild);return og=a}function ng(a,b,c){b=b||document.head;b.insertBefore(a,c&&c.nextSibling||b.firstChild);og?a.compareDocumentPosition(og)===Node.DOCUMENT_POSITION_PRECEDING&&(og=a):og=a}
function qg(a,b){for(var c=0,d=a.length;b<d;b++)if("("===a[b])c++;else if(")"===a[b]&&0===--c)return b;return-1}function rg(a,b){var c=a.indexOf("var(");if(-1===c)return b(a,"","","");var d=qg(a,c+3),e=a.substring(c+4,d);c=a.substring(0,c);a=rg(a.substring(d+1),b);d=e.indexOf(",");return-1===d?b(c,e.trim(),"",a):b(c,e.substring(0,d).trim(),e.substring(d+1).trim(),a)}function sg(a,b){W?a.setAttribute("class",b):window.ShadyDOM.nativeMethods.setAttribute.call(a,"class",b)}
var tg=window.ShadyDOM&&window.ShadyDOM.wrap||function(a){return a};function ug(a){var b=a.localName,c="";b?-1<b.indexOf("-")||(c=b,b=a.getAttribute&&a.getAttribute("is")||""):(b=a.is,c=a.extends);return{is:b,Y:c}}function vg(a){for(var b=[],c="",d=0;0<=d&&d<a.length;d++)if("("===a[d]){var e=qg(a,d);c+=a.slice(d,e+1);d=e}else","===a[d]?(b.push(c),c=""):c+=a[d];c&&b.push(c);return b}
function wg(a){if(void 0!==Zf)return Zf;if(void 0===a.__cssBuild){var b=a.getAttribute("css-build");if(b)a.__cssBuild=b;else{a:{b="template"===a.localName?a.content.firstChild:a.firstChild;if(b instanceof Comment&&(b=b.textContent.trim().split(":"),"css-build"===b[0])){b=b[1];break a}b=""}if(""!==b){var c="template"===a.localName?a.content.firstChild:a.firstChild;c.parentNode.removeChild(c)}a.__cssBuild=b}}return a.__cssBuild||""}
function xg(a){a=void 0===a?"":a;return""!==a&&Y?W?"shadow"===a:"shady"===a:!1};function yg(){}function zg(a,b){Ag(Bg,a,function(c){Cg(c,b||"")})}function Ag(a,b,c){b.nodeType===Node.ELEMENT_NODE&&c(b);var d;"template"===b.localName?d=(b.content||b._content||b).childNodes:d=b.children||b.childNodes;if(d)for(b=0;b<d.length;b++)Ag(a,d[b],c)}
function Cg(a,b,c){if(b)if(a.classList)c?(a.classList.remove("style-scope"),a.classList.remove(b)):(a.classList.add("style-scope"),a.classList.add(b));else if(a.getAttribute){var d=a.getAttribute("class");c?d&&(b=d.replace("style-scope","").replace(b,""),sg(a,b)):sg(a,(d?d+" ":"")+"style-scope "+b)}}function Dg(a,b,c){Ag(Bg,a,function(d){Cg(d,b,!0);Cg(d,c)})}function Eg(a,b){Ag(Bg,a,function(c){Cg(c,b||"",!0)})}
function Fg(a,b,c,d,e){var f=Bg;e=void 0===e?"":e;""===e&&(W||"shady"===(void 0===d?"":d)?e=ig(b,c):(a=ug(a),e=Gg(f,b,a.is,a.Y,c)+"\n\n"));return e.trim()}function Gg(a,b,c,d,e){var f=Hg(c,d);c=c?"."+c:"";return ig(b,function(g){g.c||(g.selector=g.B=Ig(a,g,a.b,c,f),g.c=!0);e&&e(g,c,f)})}function Hg(a,b){return b?"[is="+a+"]":a}
function Ig(a,b,c,d,e){var f=vg(b.selector);if(!lg(b)){b=0;for(var g=f.length,h=void 0;b<g&&(h=f[b]);b++)f[b]=c.call(a,h,d,e)}return f.filter(function(k){return!!k}).join(",")}function Jg(a){return a.replace(Kg,function(b,c,d){-1<d.indexOf("+")?d=d.replace(/\+/g,"___"):-1<d.indexOf("___")&&(d=d.replace(/___/g,"+"));return":"+c+"("+d+")"})}
function Lg(a){for(var b=[],c;c=a.match(Mg);){var d=c.index,e=qg(a,d);if(-1===e)throw Error(c.input+" selector missing ')'");c=a.slice(d,e+1);a=a.replace(c,"\ue000");b.push(c)}return{oa:a,matches:b}}function Ng(a,b){var c=a.split("\ue000");return b.reduce(function(d,e,f){return d+e+c[f+1]},c[0])}
yg.prototype.b=function(a,b,c){var d=!1;a=a.trim();var e=Kg.test(a);e&&(a=a.replace(Kg,function(h,k,l){return":"+k+"("+l.replace(/\s/g,"")+")"}),a=Jg(a));var f=Mg.test(a);if(f){var g=Lg(a);a=g.oa;g=g.matches}a=a.replace(Og,":host $1");a=a.replace(Pg,function(h,k,l){d||(h=Qg(l,k,b,c),d=d||h.stop,k=h.Ga,l=h.value);return k+l});f&&(a=Ng(a,g));e&&(a=Jg(a));return a=a.replace(Rg,function(h,k,l,m){return'[dir="'+l+'"] '+k+m+", "+k+'[dir="'+l+'"]'+m})};
function Qg(a,b,c,d){var e=a.indexOf("::slotted");0<=a.indexOf(":host")?a=Sg(a,d):0!==e&&(a=c?Tg(a,c):a);c=!1;0<=e&&(b="",c=!0);if(c){var f=!0;c&&(a=a.replace(Ug,function(g,h){return" > "+h}))}return{value:a,Ga:b,stop:f}}function Tg(a,b){a=a.split(/(\[.+?\])/);for(var c=[],d=0;d<a.length;d++)if(1===d%2)c.push(a[d]);else{var e=a[d];if(""!==e||d!==a.length-1)e=e.split(":"),e[0]+=b,c.push(e.join(":"))}return c.join("")}
function Sg(a,b){var c=a.match(Vg);return(c=c&&c[2].trim()||"")?c[0].match(Wg)?a.replace(Vg,function(d,e,f){return b+f}):c.split(Wg)[0]===b?c:"should_not_match":a.replace(":host",b)}function Xg(a){":root"===a.selector&&(a.selector="html")}yg.prototype.c=function(a){return a.match(":host")?"":a.match("::slotted")?this.b(a,":not(.style-scope)"):Tg(a.trim(),":not(.style-scope)")};ea.Object.defineProperties(yg.prototype,{a:{configurable:!0,enumerable:!0,get:function(){return"style-scope"}}});
var Kg=/:(nth[-\w]+)\(([^)]+)\)/,Pg=/(^|[\s>+~]+)((?:\[.+?\]|[^\s>+~=[])+)/g,Wg=/[[.:#*]/,Og=/^(::slotted)/,Vg=/(:host)(?:\(((?:\([^)(]*\)|[^)(]*)+?)\))/,Ug=/(?:::slotted)(?:\(((?:\([^)(]*\)|[^)(]*)+?)\))/,Rg=/(.*):dir\((?:(ltr|rtl))\)(.*)/,Mg=/:(?:matches|any|-(?:webkit|moz)-any)/,Bg=new yg;function Yg(a,b,c,d,e){this.J=a||null;this.b=b||null;this.ka=c||[];this.H=null;this.cssBuild=e||"";this.Y=d||"";this.a=this.I=this.M=null}function Zg(a){return a?a.__styleInfo:null}function $g(a,b){return a.__styleInfo=b}Yg.prototype.c=function(){return this.J};Yg.prototype._getStyleRules=Yg.prototype.c;function ah(a){var b=this.matches||this.matchesSelector||this.mozMatchesSelector||this.msMatchesSelector||this.oMatchesSelector||this.webkitMatchesSelector;return b&&b.call(this,a)}var bh=/:host\s*>\s*/,ch=navigator.userAgent.match("Trident");function dh(){}function eh(a){var b={},c=[],d=0;jg(a,function(f){fh(f);f.index=d++;f=f.A.cssText;for(var g;g=dg.exec(f);){var h=g[1];":"!==g[2]&&(b[h]=!0)}},function(f){c.push(f)});a.b=c;a=[];for(var e in b)a.push(e);return a}
function fh(a){if(!a.A){var b={},c={};gh(a,c)&&(b.L=c,a.rules=null);b.cssText=a.parsedCssText.replace(gg,"").replace(ag,"");a.A=b}}function gh(a,b){var c=a.A;if(c){if(c.L)return Object.assign(b,c.L),!0}else{c=a.parsedCssText;for(var d;a=ag.exec(c);){d=(a[2]||a[3]).trim();if("inherit"!==d||"unset"!==d)b[a[1].trim()]=d;d=!0}return d}}
function hh(a,b,c){b&&(b=0<=b.indexOf(";")?ih(a,b,c):rg(b,function(d,e,f,g){if(!e)return d+g;(e=hh(a,c[e],c))&&"initial"!==e?"apply-shim-inherit"===e&&(e="inherit"):e=hh(a,c[f]||f,c)||f;return d+(e||"")+g}));return b&&b.trim()||""}
function ih(a,b,c){b=b.split(";");for(var d=0,e,f;d<b.length;d++)if(e=b[d]){bg.lastIndex=0;if(f=bg.exec(e))e=hh(a,c[f[1]],c);else if(f=e.indexOf(":"),-1!==f){var g=e.substring(f);g=g.trim();g=hh(a,g,c)||g;e=e.substring(0,f)+g}b[d]=e&&e.lastIndexOf(";")===e.length-1?e.slice(0,-1):e||""}return b.join(";")}
function jh(a,b){var c={},d=[];jg(a,function(e){e.A||fh(e);var f=e.B||e.parsedSelector;b&&e.A.L&&f&&ah.call(b,f)&&(gh(e,c),e=e.index,f=parseInt(e/32,10),d[f]=(d[f]||0)|1<<e%32)},null,!0);return{L:c,key:d}}
function kh(a,b,c,d){b.A||fh(b);if(b.A.L){var e=ug(a);a=e.is;e=e.Y;e=a?Hg(a,e):"html";var f=b.parsedSelector;var g=!!f.match(bh)||"html"===e&&-1<f.indexOf("html");var h=0===f.indexOf(":host")&&!g;"shady"===c&&(g=f===e+" > *."+e||-1!==f.indexOf("html"),h=!g&&0===f.indexOf(e));if(g||h)c=e,h&&(b.B||(b.B=Ig(Bg,b,Bg.b,a?"."+a:"",e)),c=b.B||e),g&&"html"===e&&(c=b.B||b.u),d({oa:c,Na:h,ab:g})}}
function lh(a,b,c){var d={},e={};jg(b,function(f){kh(a,f,c,function(g){ah.call(a._element||a,g.oa)&&(g.Na?gh(f,d):gh(f,e))})},null,!0);return{Ta:e,La:d}}
function mh(a,b,c,d){var e=ug(b),f=Hg(e.is,e.Y),g=new RegExp("(?:^|[^.#[:])"+(b.extends?"\\"+f.slice(0,-1)+"\\]":f)+"($|[.:[\\s>+~])"),h=Zg(b);e=h.J;h=h.cssBuild;var k=nh(e,d);return Fg(b,e,function(l){var m="";l.A||fh(l);l.A.cssText&&(m=ih(a,l.A.cssText,c));l.cssText=m;if(!W&&!lg(l)&&l.cssText){var q=m=l.cssText;null==l.sa&&(l.sa=eg.test(m));if(l.sa)if(null==l.ca){l.ca=[];for(var H in k)q=k[H],q=q(m),m!==q&&(m=q,l.ca.push(H))}else{for(H=0;H<l.ca.length;++H)q=k[l.ca[H]],m=q(m);q=m}l.cssText=q;l.B=
l.B||l.selector;m="."+d;H=vg(l.B);q=0;for(var E=H.length,r=void 0;q<E&&(r=H[q]);q++)H[q]=r.match(g)?r.replace(f,m):m+" "+r;l.selector=H.join(",")}},h)}function nh(a,b){a=a.b;var c={};if(!W&&a)for(var d=0,e=a[d];d<a.length;e=a[++d]){var f=e,g=b;f.f=new RegExp("\\b"+f.keyframesName+"(?!\\B|-)","g");f.a=f.keyframesName+"-"+g;f.B=f.B||f.selector;f.selector=f.B.replace(f.keyframesName,f.a);c[e.keyframesName]=oh(e)}return c}function oh(a){return function(b){return b.replace(a.f,a.a)}}
function ph(a,b){var c=qh,d=kg(a);a.textContent=ig(d,function(e){var f=e.cssText=e.parsedCssText;e.A&&e.A.cssText&&(f=f.replace(Tf,"").replace(Uf,""),e.cssText=ih(c,f,b))})}ea.Object.defineProperties(dh.prototype,{a:{configurable:!0,enumerable:!0,get:function(){return"x-scope"}}});var qh=new dh;var rh={},sh=window.customElements;if(sh&&!W&&!$f){var th=sh.define;sh.define=function(a,b,c){rh[a]||(rh[a]=pg(a));th.call(sh,a,b,c)}};function uh(){this.cache={}}uh.prototype.store=function(a,b,c,d){var e=this.cache[a]||[];e.push({L:b,styleElement:c,I:d});100<e.length&&e.shift();this.cache[a]=e};function vh(){}var wh=new RegExp(Bg.a+"\\s*([^\\s]*)");function xh(a){return(a=(a.classList&&a.classList.value?a.classList.value:a.getAttribute("class")||"").match(wh))?a[1]:""}function yh(a){var b=tg(a).getRootNode();return b===a||b===a.ownerDocument?"":(a=b.host)?ug(a).is:""}
function zh(a){for(var b=0;b<a.length;b++){var c=a[b];if(c.target!==document.documentElement&&c.target!==document.head)for(var d=0;d<c.addedNodes.length;d++){var e=c.addedNodes[d];if(e.nodeType===Node.ELEMENT_NODE){var f=e.getRootNode(),g=xh(e);if(g&&f===e.ownerDocument&&("style"!==e.localName&&"template"!==e.localName||""===wg(e)))Eg(e,g);else if(f instanceof ShadowRoot)for(f=yh(e),f!==g&&Dg(e,g,f),e=window.ShadyDOM.nativeMethods.querySelectorAll.call(e,":not(."+Bg.a+")"),g=0;g<e.length;g++){f=e[g];
var h=yh(f);h&&Cg(f,h)}}}}}
if(!(W||window.ShadyDOM&&window.ShadyDOM.handlesDynamicScoping)){var Ah=new MutationObserver(zh),Bh=function(a){Ah.observe(a,{childList:!0,subtree:!0})};if(window.customElements&&!window.customElements.polyfillWrapFlushCallback)Bh(document);else{var Ch=function(){Bh(document.body)};window.HTMLImports?window.HTMLImports.whenReady(Ch):requestAnimationFrame(function(){if("loading"===document.readyState){var a=function(){Ch();document.removeEventListener("readystatechange",a)};document.addEventListener("readystatechange",
a)}else Ch()})}vh=function(){zh(Ah.takeRecords())}};var Dh={};var Eh=Promise.resolve();function Fh(a){if(a=Dh[a])a._applyShimCurrentVersion=a._applyShimCurrentVersion||0,a._applyShimValidatingVersion=a._applyShimValidatingVersion||0,a._applyShimNextVersion=(a._applyShimNextVersion||0)+1}function Gh(a){return a._applyShimCurrentVersion===a._applyShimNextVersion}function Hh(a){a._applyShimValidatingVersion=a._applyShimNextVersion;a._validating||(a._validating=!0,Eh.then(function(){a._applyShimCurrentVersion=a._applyShimNextVersion;a._validating=!1}))};var Ih={},Jh=new uh;function Z(){this.F={};this.c=document.documentElement;var a=new Gf;a.rules=[];this.f=$g(this.c,new Yg(a));this.u=!1;this.a=this.b=null}w=Z.prototype;w.flush=function(){vh()};w.Ja=function(a){return kg(a)};w.Xa=function(a){return ig(a)};w.prepareTemplate=function(a,b,c){this.prepareTemplateDom(a,b);this.prepareTemplateStyles(a,b,c)};
w.prepareTemplateStyles=function(a,b,c){if(!a._prepared&&!$f){W||rh[b]||(rh[b]=pg(b));a._prepared=!0;a.name=b;a.extends=c;Dh[b]=a;var d=wg(a),e=xg(d);c={is:b,extends:c};for(var f=[],g=a.content.querySelectorAll("style"),h=0;h<g.length;h++){var k=g[h];if(k.hasAttribute("shady-unscoped")){if(!W){var l=k.textContent;hg.has(l)||(hg.add(l),l=k.cloneNode(!0),document.head.appendChild(l));k.parentNode.removeChild(k)}}else f.push(k.textContent),k.parentNode.removeChild(k)}f=f.join("").trim()+(Ih[b]||"");
Kh(this);if(!e){if(g=!d)g=bg.test(f)||ag.test(f),bg.lastIndex=0,ag.lastIndex=0;h=Hf(f);g&&Y&&this.b&&this.b.transformRules(h,b);a._styleAst=h}g=[];Y||(g=eh(a._styleAst));if(!g.length||Y)h=W?a.content:null,b=rh[b]||null,d=Fg(c,a._styleAst,null,d,e?f:""),d=d.length?mg(d,c.is,h,b):null,a._style=d;a.a=g}};w.Ra=function(a,b){Ih[b]=a.join(" ")};w.prepareTemplateDom=function(a,b){if(!$f){var c=wg(a);W||"shady"===c||a._domPrepared||(a._domPrepared=!0,zg(a.content,b))}};
function Lh(a){var b=ug(a),c=b.is;b=b.Y;var d=rh[c]||null,e=Dh[c];if(e){c=e._styleAst;var f=e.a;e=wg(e);b=new Yg(c,d,f,b,e);$g(a,b);return b}}function Mh(a){!a.a&&window.ShadyCSS&&window.ShadyCSS.CustomStyleInterface&&(a.a=window.ShadyCSS.CustomStyleInterface,a.a.transformCallback=function(b){a.xa(b)},a.a.validateCallback=function(){requestAnimationFrame(function(){(a.a.enqueued||a.u)&&a.flushCustomStyles()})})}
function Kh(a){if(!a.b&&window.ShadyCSS&&window.ShadyCSS.ApplyShim){a.b=window.ShadyCSS.ApplyShim;a.b.invalidCallback=Fh;var b=!0}else b=!1;Mh(a);return b}
w.flushCustomStyles=function(){if(!$f){var a=Kh(this);if(this.a){var b=this.a.processStyles();if((a||this.a.enqueued)&&!xg(this.f.cssBuild)){if(Y){if(!this.f.cssBuild)for(a=0;a<b.length;a++){var c=this.a.getStyleForCustomStyle(b[a]);if(c&&Y&&this.b){var d=kg(c);Kh(this);this.b.transformRules(d);c.textContent=ig(d)}}}else{Nh(this,b);Oh(this,this.c,this.f);for(a=0;a<b.length;a++)(c=this.a.getStyleForCustomStyle(b[a]))&&ph(c,this.f.M);this.u&&this.styleDocument()}this.a.enqueued=!1}}}};
function Nh(a,b){b=b.map(function(c){return a.a.getStyleForCustomStyle(c)}).filter(function(c){return!!c});b.sort(function(c,d){c=d.compareDocumentPosition(c);return c&Node.DOCUMENT_POSITION_FOLLOWING?1:c&Node.DOCUMENT_POSITION_PRECEDING?-1:0});a.f.J.rules=b.map(function(c){return kg(c)})}
w.styleElement=function(a,b){if($f){if(b){Zg(a)||$g(a,new Yg(null));var c=Zg(a);c.H=c.H||{};Object.assign(c.H,b);Ph(this,a,c)}}else if(c=Zg(a)||Lh(a))if(a!==this.c&&(this.u=!0),b&&(c.H=c.H||{},Object.assign(c.H,b)),Y)Ph(this,a,c);else if(this.flush(),Oh(this,a,c),c.ka&&c.ka.length){b=ug(a).is;var d;a:{if(d=Jh.cache[b])for(var e=d.length-1;0<=e;e--){var f=d[e];b:{var g=c.ka;for(var h=0;h<g.length;h++){var k=g[h];if(f.L[k]!==c.M[k]){g=!1;break b}}g=!0}if(g){d=f;break a}}d=void 0}g=d?d.styleElement:
null;e=c.I;(f=d&&d.I)||(f=this.F[b]=(this.F[b]||0)+1,f=b+"-"+f);c.I=f;f=c.I;h=qh;h=g?g.textContent||"":mh(h,a,c.M,f);k=Zg(a);var l=k.a;l&&!W&&l!==g&&(l._useCount--,0>=l._useCount&&l.parentNode&&l.parentNode.removeChild(l));W?k.a?(k.a.textContent=h,g=k.a):h&&(g=mg(h,f,a.shadowRoot,k.b)):g?g.parentNode||(ch&&-1<h.indexOf("@media")&&(g.textContent=h),ng(g,null,k.b)):h&&(g=mg(h,f,null,k.b));g&&(g._useCount=g._useCount||0,k.a!=g&&g._useCount++,k.a=g);f=g;W||(g=c.I,k=h=a.getAttribute("class")||"",e&&(k=
h.replace(new RegExp("\\s*x-scope\\s*"+e+"\\s*","g")," ")),k+=(k?" ":"")+"x-scope "+g,h!==k&&sg(a,k));d||Jh.store(b,c.M,f,c.I)}};
function Ph(a,b,c){var d=ug(b).is;if(c.H){var e=c.H,f;for(f in e)null===f?b.style.removeProperty(f):b.style.setProperty(f,e[f])}e=Dh[d];if(!(!e&&b!==a.c||e&&""!==wg(e))&&e&&e._style&&!Gh(e)){if(Gh(e)||e._applyShimValidatingVersion!==e._applyShimNextVersion)Kh(a),a.b&&a.b.transformRules(e._styleAst,d),e._style.textContent=Fg(b,c.J),Hh(e);W&&(a=b.shadowRoot)&&(a=a.querySelector("style"))&&(a.textContent=Fg(b,c.J));c.J=e._styleAst}}
function Qh(a,b){return(b=tg(b).getRootNode().host)?Zg(b)||Lh(b)?b:Qh(a,b):a.c}function Oh(a,b,c){var d=Qh(a,b),e=Zg(d),f=e.M;d===a.c||f||(Oh(a,d,e),f=e.M);a=Object.create(f||null);d=lh(b,c.J,c.cssBuild);b=jh(e.J,b).L;Object.assign(a,d.La,b,d.Ta);b=c.H;for(var g in b)if((e=b[g])||0===e)a[g]=e;g=qh;b=Object.getOwnPropertyNames(a);for(e=0;e<b.length;e++)d=b[e],a[d]=hh(g,a[d],a);c.M=a}w.styleDocument=function(a){this.styleSubtree(this.c,a)};
w.styleSubtree=function(a,b){var c=tg(a),d=c.shadowRoot,e=a===this.c;(d||e)&&this.styleElement(a,b);if(a=e?c:d)for(a=Array.from(a.querySelectorAll("*")).filter(function(f){return tg(f).shadowRoot}),b=0;b<a.length;b++)this.styleSubtree(a[b])};
w.xa=function(a){var b=this,c=wg(a);c!==this.f.cssBuild&&(this.f.cssBuild=c);if(!xg(c)){var d=kg(a);jg(d,function(e){if(W)Xg(e);else{var f=Bg;e.selector=e.parsedSelector;Xg(e);e.selector=e.B=Ig(f,e,f.c,void 0,void 0)}Y&&""===c&&(Kh(b),b.b&&b.b.transformRule(e))});Y?a.textContent=ig(d):this.f.J.rules.push(d)}};w.getComputedStyleValue=function(a,b){var c;Y||(c=(Zg(a)||Zg(Qh(this,a))).M[b]);return(c=c||window.getComputedStyle(a).getPropertyValue(b))?c.trim():""};
w.Wa=function(a,b){var c=tg(a).getRootNode(),d;b?d=("string"===typeof b?b:String(b)).split(/\s/):d=[];b=c.host&&c.host.localName;if(!b&&(c=a.getAttribute("class"))){c=c.split(/\s/);for(var e=0;e<c.length;e++)if(c[e]===Bg.a){b=c[e+1];break}}b&&d.push(Bg.a,b);Y||(b=Zg(a))&&b.I&&d.push(qh.a,b.I);sg(a,d.join(" "))};w.Ea=function(a){return Zg(a)};w.Va=function(a,b){Cg(a,b)};w.Ya=function(a,b){Cg(a,b,!0)};w.Ua=function(a){return yh(a)};w.Ha=function(a){return xh(a)};Z.prototype.flush=Z.prototype.flush;
Z.prototype.prepareTemplate=Z.prototype.prepareTemplate;Z.prototype.styleElement=Z.prototype.styleElement;Z.prototype.styleDocument=Z.prototype.styleDocument;Z.prototype.styleSubtree=Z.prototype.styleSubtree;Z.prototype.getComputedStyleValue=Z.prototype.getComputedStyleValue;Z.prototype.setElementClass=Z.prototype.Wa;Z.prototype._styleInfoForNode=Z.prototype.Ea;Z.prototype.transformCustomStyleForDocument=Z.prototype.xa;Z.prototype.getStyleAst=Z.prototype.Ja;Z.prototype.styleAstToString=Z.prototype.Xa;
Z.prototype.flushCustomStyles=Z.prototype.flushCustomStyles;Z.prototype.scopeNode=Z.prototype.Va;Z.prototype.unscopeNode=Z.prototype.Ya;Z.prototype.scopeForNode=Z.prototype.Ua;Z.prototype.currentScopeForNode=Z.prototype.Ha;Z.prototype.prepareAdoptedCssText=Z.prototype.Ra;Object.defineProperties(Z.prototype,{nativeShadow:{get:function(){return W}},nativeCss:{get:function(){return Y}}});var Rh=new Z,Sh,Th;window.ShadyCSS&&(Sh=window.ShadyCSS.ApplyShim,Th=window.ShadyCSS.CustomStyleInterface);
window.ShadyCSS={ScopingShim:Rh,prepareTemplate:function(a,b,c){Rh.flushCustomStyles();Rh.prepareTemplate(a,b,c)},prepareTemplateDom:function(a,b){Rh.prepareTemplateDom(a,b)},prepareTemplateStyles:function(a,b,c){Rh.flushCustomStyles();Rh.prepareTemplateStyles(a,b,c)},styleSubtree:function(a,b){Rh.flushCustomStyles();Rh.styleSubtree(a,b)},styleElement:function(a){Rh.flushCustomStyles();Rh.styleElement(a)},styleDocument:function(a){Rh.flushCustomStyles();Rh.styleDocument(a)},flushCustomStyles:function(){Rh.flushCustomStyles()},
getComputedStyleValue:function(a,b){return Rh.getComputedStyleValue(a,b)},nativeCss:Y,nativeShadow:W,cssBuild:Zf,disableRuntime:$f};Sh&&(window.ShadyCSS.ApplyShim=Sh);Th&&(window.ShadyCSS.CustomStyleInterface=Th);(function(a){function b(r){""==r&&(f.call(this),this.i=!0);return r.toLowerCase()}function c(r){var F=r.charCodeAt(0);return 32<F&&127>F&&-1==[34,35,60,62,63,96].indexOf(F)?r:encodeURIComponent(r)}function d(r){var F=r.charCodeAt(0);return 32<F&&127>F&&-1==[34,35,60,62,96].indexOf(F)?r:encodeURIComponent(r)}function e(r,F,C){function N(la){sa.push(la)}var y=F||"scheme start",X=0,v="",ra=!1,fa=!1,sa=[];a:for(;(void 0!=r[X-1]||0==X)&&!this.i;){var n=r[X];switch(y){case "scheme start":if(n&&q.test(n))v+=
n.toLowerCase(),y="scheme";else if(F){N("Invalid scheme.");break a}else{v="";y="no scheme";continue}break;case "scheme":if(n&&H.test(n))v+=n.toLowerCase();else if(":"==n){this.h=v;v="";if(F)break a;void 0!==l[this.h]&&(this.C=!0);y="file"==this.h?"relative":this.C&&C&&C.h==this.h?"relative or authority":this.C?"authority first slash":"scheme data"}else if(F){void 0!=n&&N("Code point not allowed in scheme: "+n);break a}else{v="";X=0;y="no scheme";continue}break;case "scheme data":"?"==n?(this.o="?",
y="query"):"#"==n?(this.v="#",y="fragment"):void 0!=n&&"\t"!=n&&"\n"!=n&&"\r"!=n&&(this.ga+=c(n));break;case "no scheme":if(C&&void 0!==l[C.h]){y="relative";continue}else N("Missing scheme."),f.call(this),this.i=!0;break;case "relative or authority":if("/"==n&&"/"==r[X+1])y="authority ignore slashes";else{N("Expected /, got: "+n);y="relative";continue}break;case "relative":this.C=!0;"file"!=this.h&&(this.h=C.h);if(void 0==n){this.j=C.j;this.m=C.m;this.l=C.l.slice();this.o=C.o;this.s=C.s;this.g=C.g;
break a}else if("/"==n||"\\"==n)"\\"==n&&N("\\ is an invalid code point."),y="relative slash";else if("?"==n)this.j=C.j,this.m=C.m,this.l=C.l.slice(),this.o="?",this.s=C.s,this.g=C.g,y="query";else if("#"==n)this.j=C.j,this.m=C.m,this.l=C.l.slice(),this.o=C.o,this.v="#",this.s=C.s,this.g=C.g,y="fragment";else{y=r[X+1];var I=r[X+2];if("file"!=this.h||!q.test(n)||":"!=y&&"|"!=y||void 0!=I&&"/"!=I&&"\\"!=I&&"?"!=I&&"#"!=I)this.j=C.j,this.m=C.m,this.s=C.s,this.g=C.g,this.l=C.l.slice(),this.l.pop();y=
"relative path";continue}break;case "relative slash":if("/"==n||"\\"==n)"\\"==n&&N("\\ is an invalid code point."),y="file"==this.h?"file host":"authority ignore slashes";else{"file"!=this.h&&(this.j=C.j,this.m=C.m,this.s=C.s,this.g=C.g);y="relative path";continue}break;case "authority first slash":if("/"==n)y="authority second slash";else{N("Expected '/', got: "+n);y="authority ignore slashes";continue}break;case "authority second slash":y="authority ignore slashes";if("/"!=n){N("Expected '/', got: "+
n);continue}break;case "authority ignore slashes":if("/"!=n&&"\\"!=n){y="authority";continue}else N("Expected authority, got: "+n);break;case "authority":if("@"==n){ra&&(N("@ already seen."),v+="%40");ra=!0;for(n=0;n<v.length;n++)I=v[n],"\t"==I||"\n"==I||"\r"==I?N("Invalid whitespace in authority."):":"==I&&null===this.g?this.g="":(I=c(I),null!==this.g?this.g+=I:this.s+=I);v=""}else if(void 0==n||"/"==n||"\\"==n||"?"==n||"#"==n){X-=v.length;v="";y="host";continue}else v+=n;break;case "file host":if(void 0==
n||"/"==n||"\\"==n||"?"==n||"#"==n){2!=v.length||!q.test(v[0])||":"!=v[1]&&"|"!=v[1]?(0!=v.length&&(this.j=b.call(this,v),v=""),y="relative path start"):y="relative path";continue}else"\t"==n||"\n"==n||"\r"==n?N("Invalid whitespace in file host."):v+=n;break;case "host":case "hostname":if(":"!=n||fa)if(void 0==n||"/"==n||"\\"==n||"?"==n||"#"==n){this.j=b.call(this,v);v="";y="relative path start";if(F)break a;continue}else"\t"!=n&&"\n"!=n&&"\r"!=n?("["==n?fa=!0:"]"==n&&(fa=!1),v+=n):N("Invalid code point in host/hostname: "+
n);else if(this.j=b.call(this,v),v="",y="port","hostname"==F)break a;break;case "port":if(/[0-9]/.test(n))v+=n;else if(void 0==n||"/"==n||"\\"==n||"?"==n||"#"==n||F){""!=v&&(v=parseInt(v,10),v!=l[this.h]&&(this.m=v+""),v="");if(F)break a;y="relative path start";continue}else"\t"==n||"\n"==n||"\r"==n?N("Invalid code point in port: "+n):(f.call(this),this.i=!0);break;case "relative path start":"\\"==n&&N("'\\' not allowed in path.");y="relative path";if("/"!=n&&"\\"!=n)continue;break;case "relative path":if(void 0!=
n&&"/"!=n&&"\\"!=n&&(F||"?"!=n&&"#"!=n))"\t"!=n&&"\n"!=n&&"\r"!=n&&(v+=c(n));else{"\\"==n&&N("\\ not allowed in relative path.");if(I=m[v.toLowerCase()])v=I;".."==v?(this.l.pop(),"/"!=n&&"\\"!=n&&this.l.push("")):"."==v&&"/"!=n&&"\\"!=n?this.l.push(""):"."!=v&&("file"==this.h&&0==this.l.length&&2==v.length&&q.test(v[0])&&"|"==v[1]&&(v=v[0]+":"),this.l.push(v));v="";"?"==n?(this.o="?",y="query"):"#"==n&&(this.v="#",y="fragment")}break;case "query":F||"#"!=n?void 0!=n&&"\t"!=n&&"\n"!=n&&"\r"!=n&&(this.o+=
d(n)):(this.v="#",y="fragment");break;case "fragment":void 0!=n&&"\t"!=n&&"\n"!=n&&"\r"!=n&&(this.v+=n)}X++}}function f(){this.s=this.ga=this.h="";this.g=null;this.m=this.j="";this.l=[];this.v=this.o="";this.C=this.i=!1}function g(r,F){void 0===F||F instanceof g||(F=new g(String(F)));this.a=r;f.call(this);e.call(this,this.a.replace(/^[ \t\r\n\f]+|[ \t\r\n\f]+$/g,""),null,F)}var h=!1;try{var k=new URL("b","http://a");k.pathname="c%20d";h="http://a/c%20d"===k.href}catch(r){}if(!h){var l=Object.create(null);
l.ftp=21;l.file=0;l.gopher=70;l.http=80;l.https=443;l.ws=80;l.wss=443;var m=Object.create(null);m["%2e"]=".";m[".%2e"]="..";m["%2e."]="..";m["%2e%2e"]="..";var q=/[a-zA-Z]/,H=/[a-zA-Z0-9\+\-\.]/;g.prototype={toString:function(){return this.href},get href(){if(this.i)return this.a;var r="";if(""!=this.s||null!=this.g)r=this.s+(null!=this.g?":"+this.g:"")+"@";return this.protocol+(this.C?"//"+r+this.host:"")+this.pathname+this.o+this.v},set href(r){f.call(this);e.call(this,r)},get protocol(){return this.h+
":"},set protocol(r){this.i||e.call(this,r+":","scheme start")},get host(){return this.i?"":this.m?this.j+":"+this.m:this.j},set host(r){!this.i&&this.C&&e.call(this,r,"host")},get hostname(){return this.j},set hostname(r){!this.i&&this.C&&e.call(this,r,"hostname")},get port(){return this.m},set port(r){!this.i&&this.C&&e.call(this,r,"port")},get pathname(){return this.i?"":this.C?"/"+this.l.join("/"):this.ga},set pathname(r){!this.i&&this.C&&(this.l=[],e.call(this,r,"relative path start"))},get search(){return this.i||
!this.o||"?"==this.o?"":this.o},set search(r){!this.i&&this.C&&(this.o="?","?"==r[0]&&(r=r.slice(1)),e.call(this,r,"query"))},get hash(){return this.i||!this.v||"#"==this.v?"":this.v},set hash(r){this.i||(r?(this.v="#","#"==r[0]&&(r=r.slice(1)),e.call(this,r,"fragment")):this.v="")},get origin(){var r;if(this.i||!this.h)return"";switch(this.h){case "data":case "file":case "javascript":case "mailto":return"null"}return(r=this.host)?this.h+"://"+r:""}};var E=a.URL;E&&(g.createObjectURL=function(r){return E.createObjectURL.apply(E,
arguments)},g.revokeObjectURL=function(r){E.revokeObjectURL(r)});a.URL=g}})(window);Object.getOwnPropertyDescriptor(Node.prototype,"baseURI")||Object.defineProperty(Node.prototype,"baseURI",{get:function(){var a=(this.ownerDocument||this).querySelector("base[href]");return a&&a.href||window.location.href},configurable:!0,enumerable:!0});var Uh=document.createElement("style");Uh.textContent="body {transition: opacity ease-in 0.2s; } \nbody[unresolved] {opacity: 0; display: block; overflow: hidden; position: relative; } \n";var Vh=document.querySelector("head");Vh.insertBefore(Uh,Vh.firstChild);var Wh=window.customElements,Xh=!1,Yh=null;Wh.polyfillWrapFlushCallback&&Wh.polyfillWrapFlushCallback(function(a){Yh=a;Xh&&a()});function Zh(){window.HTMLTemplateElement.bootstrap&&window.HTMLTemplateElement.bootstrap(window.document);Yh&&Yh();Xh=!0;window.WebComponents.ready=!0;document.dispatchEvent(new CustomEvent("WebComponentsReady",{bubbles:!0}))}
"complete"!==document.readyState?(window.addEventListener("load",Zh),window.addEventListener("DOMContentLoaded",function(){window.removeEventListener("load",Zh);Zh()})):Zh();}).call(this);
//# sourceMappingURL=webcomponents-bundle.js.map

View File

@ -0,0 +1,132 @@
// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL-3.0
function getEventX(event) {
var posx = 0;
if (event.pageX || event.pageY) {
posx = event.pageX;
}
else if (event.clientX || event.clientY) {
posx = event.clientX + document.body.scrollLeft
+ document.documentElement.scrollLeft;
}
return posx;
}
function getElementX(obj) {
var x = 0;
if (obj.offsetParent) {
do {
x += obj.offsetLeft;
} while (obj = obj.offsetParent);
}
return x;
}
function zeroPad(v, len) {
v = v.toString();
return v.length >= len ? v : "00000000".substring(0, len - v.length) + v;
}
/**
* Check if the difference between the max and the min non zero capture numbers
* is larger than 3 orders of magnitude. If yes, we need to scale.
**/
function capturegraph_scale_is_required(captures) {
var max = 0;
var min = 1000;
for (var i = 0; i < captures.length; i++) {
var year = captures[i];
max = Math.max(max, Math.max.apply(null, year[1]));
min = Math.min(min, Math.min.apply(null,
year[1].filter(Boolean)));
}
return (Math.log1p(max) - Math.log1p(min) > 3);
}
/**
* Scale captugraph counts and max maxcount using log1p if necessary.
*/
function capturegraph_scale(captures) {
var maxcount = 0;
for (var i = 0; i < captures.length; i++) {
maxcount = Math.max(maxcount, Math.max.apply(null, captures[i][1]));
}
if (capturegraph_scale_is_required(captures)) {
var scaled = [];
for (var i = 0; i < captures.length; i++) {
var year = captures[i];
// XXX map may not be available on all platforms
scaled.push([year[0], year[1].map(Math.log1p)]);
}
captures = scaled;
maxcount = Math.log1p(maxcount);
}
return [captures, maxcount];
}
/**
* Draw years, highlight current year, draw capture frequency per month
*/
function sparkline(captures, width, height, canvas, start_year,
cur_year, cur_month) {
var ctx = canvas.getContext("2d");
if (!ctx) return;
ctx.fillStyle = "#FFF";
var end_year = new Date().getUTCFullYear();
var year_width = width / (end_year - start_year + 1);
var scaled = capturegraph_scale(captures.years);
var years = scaled[0];
var maxcount = scaled[1];
var yscale = height / maxcount;
function year_left(year) {
return Math.ceil((year - start_year) * year_width) + 0.5;
}
if (cur_year >= start_year) {
var x = year_left(cur_year);
ctx.fillStyle = "#FFFFA5";
ctx.fillRect(x, 0, year_width, height);
}
for (var year = start_year; year <= end_year; year++) {
var x = year_left(year);
ctx.beginPath();
ctx.moveTo(x, 0);
ctx.lineTo(x, height);
ctx.lineWidth = 1;
ctx.strokeStyle = "#CCC";
ctx.stroke();
}
cur_month = parseInt(cur_month) - 1;
var month_width = (year_width - 1) / 12;
for (var i = 0; i < years.length; i++) {
var year = years[i][0];
var months = years[i][1];
var left = year_left(year) + 1.0;
for (var month = 0; month < 12; month++) {
var count = months[month];
if (count > 0) {
var h = Math.ceil(count * yscale);
if (year == cur_year && month == cur_month) {
ctx.fillStyle = "#EC008C";
} else {
ctx.fillStyle = "#000";
}
// must note that when I use width=Math.round(month_width+1),
// the replay toolbar looks more accurate whereas the
// bubble calendar looks somehow different.
ctx.fillRect(Math.round(left), Math.ceil(height - h),
Math.ceil(month_width), Math.round(h));
}
left += month_width;
}
}
}
function clear_canvas(canvas_id) {
var c = document.getElementById(canvas_id);
if (!c || !c.getContext) return;
var ctx = c.getContext("2d");
if (!ctx) return;
ctx.clearRect(0, 0, c.width, c.height);
}
// @license-end

View File

@ -0,0 +1,116 @@
@font-face{font-family:'Iconochive-Regular';src:url('https://archive.org/includes/fonts/Iconochive-Regular.eot?-ccsheb');src:url('https://archive.org/includes/fonts/Iconochive-Regular.eot?#iefix-ccsheb') format('embedded-opentype'),url('https://archive.org/includes/fonts/Iconochive-Regular.woff?-ccsheb') format('woff'),url('https://archive.org/includes/fonts/Iconochive-Regular.ttf?-ccsheb') format('truetype'),url('https://archive.org/includes/fonts/Iconochive-Regular.svg?-ccsheb#Iconochive-Regular') format('svg');font-weight:normal;font-style:normal}
[class^="iconochive-"],[class*=" iconochive-"]{font-family:'Iconochive-Regular'!important;speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
.iconochive-Uplevel:before{content:"\21b5"}
.iconochive-exit:before{content:"\1f6a3"}
.iconochive-beta:before{content:"\3b2"}
.iconochive-logo:before{content:"\1f3db"}
.iconochive-audio:before{content:"\1f568"}
.iconochive-movies:before{content:"\1f39e"}
.iconochive-software:before{content:"\1f4be"}
.iconochive-texts:before{content:"\1f56e"}
.iconochive-etree:before{content:"\1f3a4"}
.iconochive-image:before{content:"\1f5bc"}
.iconochive-web:before{content:"\1f5d4"}
.iconochive-collection:before{content:"\2211"}
.iconochive-folder:before{content:"\1f4c2"}
.iconochive-data:before{content:"\1f5c3"}
.iconochive-tv:before{content:"\1f4fa"}
.iconochive-article:before{content:"\1f5cf"}
.iconochive-question:before{content:"\2370"}
.iconochive-question-dark:before{content:"\3f"}
.iconochive-info:before{content:"\69"}
.iconochive-info-small:before{content:"\24d8"}
.iconochive-comment:before{content:"\1f5e9"}
.iconochive-comments:before{content:"\1f5ea"}
.iconochive-person:before{content:"\1f464"}
.iconochive-people:before{content:"\1f465"}
.iconochive-eye:before{content:"\1f441"}
.iconochive-rss:before{content:"\221e"}
.iconochive-time:before{content:"\1f551"}
.iconochive-quote:before{content:"\275d"}
.iconochive-disc:before{content:"\1f4bf"}
.iconochive-tv-commercial:before{content:"\1f4b0"}
.iconochive-search:before{content:"\1f50d"}
.iconochive-search-star:before{content:"\273d"}
.iconochive-tiles:before{content:"\229e"}
.iconochive-list:before{content:"\21f6"}
.iconochive-list-bulleted:before{content:"\2317"}
.iconochive-latest:before{content:"\2208"}
.iconochive-left:before{content:"\2c2"}
.iconochive-right:before{content:"\2c3"}
.iconochive-left-solid:before{content:"\25c2"}
.iconochive-right-solid:before{content:"\25b8"}
.iconochive-up-solid:before{content:"\25b4"}
.iconochive-down-solid:before{content:"\25be"}
.iconochive-dot:before{content:"\23e4"}
.iconochive-dots:before{content:"\25a6"}
.iconochive-columns:before{content:"\25af"}
.iconochive-sort:before{content:"\21d5"}
.iconochive-atoz:before{content:"\1f524"}
.iconochive-ztoa:before{content:"\1f525"}
.iconochive-upload:before{content:"\1f4e4"}
.iconochive-download:before{content:"\1f4e5"}
.iconochive-favorite:before{content:"\2605"}
.iconochive-heart:before{content:"\2665"}
.iconochive-play:before{content:"\25b6"}
.iconochive-play-framed:before{content:"\1f3ac"}
.iconochive-fullscreen:before{content:"\26f6"}
.iconochive-mute:before{content:"\1f507"}
.iconochive-unmute:before{content:"\1f50a"}
.iconochive-share:before{content:"\1f381"}
.iconochive-edit:before{content:"\270e"}
.iconochive-reedit:before{content:"\2710"}
.iconochive-gear:before{content:"\2699"}
.iconochive-remove-circle:before{content:"\274e"}
.iconochive-plus-circle:before{content:"\1f5d6"}
.iconochive-minus-circle:before{content:"\1f5d5"}
.iconochive-x:before{content:"\1f5d9"}
.iconochive-fork:before{content:"\22d4"}
.iconochive-trash:before{content:"\1f5d1"}
.iconochive-warning:before{content:"\26a0"}
.iconochive-flash:before{content:"\1f5f2"}
.iconochive-world:before{content:"\1f5fa"}
.iconochive-lock:before{content:"\1f512"}
.iconochive-unlock:before{content:"\1f513"}
.iconochive-twitter:before{content:"\1f426"}
.iconochive-facebook:before{content:"\66"}
.iconochive-googleplus:before{content:"\67"}
.iconochive-reddit:before{content:"\1f47d"}
.iconochive-tumblr:before{content:"\54"}
.iconochive-pinterest:before{content:"\1d4df"}
.iconochive-popcorn:before{content:"\1f4a5"}
.iconochive-email:before{content:"\1f4e7"}
.iconochive-embed:before{content:"\1f517"}
.iconochive-gamepad:before{content:"\1f579"}
.iconochive-Zoom_In:before{content:"\2b"}
.iconochive-Zoom_Out:before{content:"\2d"}
.iconochive-RSS:before{content:"\1f4e8"}
.iconochive-Light_Bulb:before{content:"\1f4a1"}
.iconochive-Add:before{content:"\2295"}
.iconochive-Tab_Activity:before{content:"\2318"}
.iconochive-Forward:before{content:"\23e9"}
.iconochive-Backward:before{content:"\23ea"}
.iconochive-No_Audio:before{content:"\1f508"}
.iconochive-Pause:before{content:"\23f8"}
.iconochive-No_Favorite:before{content:"\2606"}
.iconochive-Unike:before{content:"\2661"}
.iconochive-Song:before{content:"\266b"}
.iconochive-No_Flag:before{content:"\2690"}
.iconochive-Flag:before{content:"\2691"}
.iconochive-Done:before{content:"\2713"}
.iconochive-Check:before{content:"\2714"}
.iconochive-Refresh:before{content:"\27f3"}
.iconochive-Headphones:before{content:"\1f3a7"}
.iconochive-Chart:before{content:"\1f4c8"}
.iconochive-Bookmark:before{content:"\1f4d1"}
.iconochive-Documents:before{content:"\1f4da"}
.iconochive-Newspaper:before{content:"\1f4f0"}
.iconochive-Podcast:before{content:"\1f4f6"}
.iconochive-Radio:before{content:"\1f4fb"}
.iconochive-Cassette:before{content:"\1f4fc"}
.iconochive-Shuffle:before{content:"\1f500"}
.iconochive-Loop:before{content:"\1f501"}
.iconochive-Low_Audio:before{content:"\1f509"}
.iconochive-First:before{content:"\1f396"}
.iconochive-Invisible:before{content:"\1f576"}
.iconochive-Computer:before{content:"\1f5b3"}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,56 @@
// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL-3.0
/** timestamp namespaced methods **/
var __wbTs = (function() {
function _split_timestamp(timestamp) {
if(typeof timestamp == "number") {
timestamp = timestamp.toString();
}
return [
timestamp.slice(-14, -10),
timestamp.slice(-10, -8),
timestamp.slice(-8, -6),
timestamp.slice(-6, -4),
timestamp.slice(-4, -2),
timestamp.slice(-2)
];
}
var MONTHS_LONG = [
"January", "February", "March", "April", "May", "June",
"July", "August", "September", "October", "November", "December"
];
var MONTHS_SHORT = [
"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep",
"Oct", "Nov", "Dec"
];
var FIELDS = {
'Y': function(d) { return d.getUTCFullYear() },
'm': function(d) { return d.getUTCMonth() + 1 },
'b': function(d) { return MONTHS_SHORT[d.getUTCMonth()] },
'B': function(d) { return MONTHS_LONG[d.getUTCMonth()] },
'd': function(d) { return d.getUTCDate() },
'H': function(d) { return ('0'+d.getUTCHours()).slice(-2) },
'M': function(d) { return ('0'+d.getUTCMinutes()).slice(-2) },
'S': function(d) { return ('0'+d.getUTCSeconds()).slice(-2) },
'%': function() { return '%' }
};
function timestamp2datetime(timestamp) {
var ts_array = _split_timestamp(timestamp);
return new Date(Date.UTC(
ts_array[0], ts_array[1]-1, ts_array[2],
ts_array[3], ts_array[4], ts_array[5]
));
}
return {
timestamp2datetime: timestamp2datetime,
getMonthName: function(mon) {
return MONTHS_LONG[mon];
},
format: function(timestamp, fmt) {
return fmt.replace(/%./g, function(ph) {
var field = FIELDS[ph[1]];
return field ? field(timestamp2datetime(timestamp)) : ph;
});
}
}
})();
// @license-end

View File

@ -0,0 +1,788 @@
// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL-3.0
if(typeof __wm==="undefined") __wm={};
(function(){
var _JSON = typeof __wbhack != 'undefined' ? __wbhack.JSON : JSON;
var prettyMonths = [
"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
var $D=document,$R=document,$=function(n){return $R.getElementById(n)};
function formatNumber(n) {
return (''+n).replace(/\B(?=(\d{3})+$)/g, ',');
}
var ajax=__wm.ajax=function ajax(method, url, callback, headers, data) {
var xmlhttp;
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
} else {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4) {
callback(xmlhttp);
}
};
xmlhttp.open(method, url, true);
if (headers) {
for (var header in headers) {
if (headers.hasOwnProperty(header)) {
xmlhttp.setRequestHeader(header, headers[header]);
}
}
}
// pass cookies for user authorization
xmlhttp.withCredentials = true;
xmlhttp.send(data);
}
__wm.h=function hideToolbar(ev) {
$("wm-ipp").style.display="none";
ev.stopPropagation();
}
var $expand, $capinfo;
__wm.bt=function bootstrap(imgWidth,imgHeight,yearImgWidth,monthImgWidth,
coll,wbCurrentUrl,captureDate,firstYear,
static_prefix,bannerCss) {
__wm.static_prefix = static_prefix || '/static/';
var wbPrefix='/'+(coll||'web')+'/';
captureDate = captureDate.split('-');
var displayDay = captureDate[2];
var displayMonth = captureDate[1];
var displayYear = captureDate[0];
var trackerVal,curYear = -1,curMonth = -1;
var yearTracker,monthTracker;
// move #wm-ipp content to its shadowRoot if supported
var wmipp = $('wm-ipp-base');
if (wmipp.attachShadow){
var shadow = wmipp.attachShadow({mode:'open'});
$R = shadow; // this changes the base of $()
var nav = wmipp.children[0];nav.id='wm-ipp';
shadow.appendChild(nav);
if (bannerCss) {
for(var i = 0; i < bannerCss.length; i++) {
var link = $D.createElement('link');
link.setAttribute('rel', 'stylesheet');
link.setAttribute('type', 'text/css');
link.setAttribute('href', static_prefix + bannerCss[i]);
shadow.appendChild(link);
}
}
}
if (window.top == window.self) {
wmipp.style.display = "block";
}
var modalIsOpen = false, bannerIsVisible = true;
function processMessage(ev) {
if (ev.origin.indexOf('archive.org') === -1)
return;
// donation banner sends msg as JSON string.
var msg = typeof ev.data == "string" ? _JSON.parse(ev.data) : ev.data;
console.log('got message %o', msg);
if (msg.event == 'set height') {
var iHeight = msg.value; // iframe height
var bHeight = msg.bannerHeight; // banner height
if (typeof iHeight !== "number" || iHeight <= 0) return;
if (!bannerIsVisible) return;
prevHeight = msg.value;
if (modalIsOpen) {
return;
}
$donato.style.height = bHeight + 'px';
$donatoBase.style.height = iHeight + 'px';
} else if (msg.event == 'open modal') {
$donatoBase.style.height = '';
document.body.classList.add('wm-modal');
window.scrollTo(0, 0);
modalIsOpen = true;
} else if (msg.event == 'close modal') {
$donato.style.marginBottom = '0px';
document.body.classList.remove('wm-modal');
modalIsOpen = false;
} else if (msg.event == 'hide banner') {
$donato.style.height = 0;
var expires = new Date(Date.now() + msg.value*24*3600*1000);
document.cookie = 'donation=x; domain=archive.org; path=/; expires=' +
expires.toUTCString();
bannerIsVisible = false;
modalIsOpen = false;
prevHeight = 0;
}
}
var $donato = document.getElementById('donato');
if ($donato) {
if (window.top != window.self) {
$donato.style.display = 'none';
} else {
var $donatoBase = document.getElementById('donato-base');
window.addEventListener('message', processMessage, false);
}
}
var $spk=$('wm-ipp-sparkline')
$expand=$('wm-expand');
$capinfo=$('wm-capinfo');
function showTrackers(event) {
var val = event.type=="mouseenter"?1:0;
if (val===trackerVal) return;
var $ipp=$("wm-ipp");
var $y=$("displayYearEl"),$m=$("displayMonthEl"),$d=$("displayDayEl");
if (val) {
$ipp.className="hi";
} else {
$ipp.className="";
$y.innerHTML=displayYear;$m.innerHTML=prettyMonths[displayMonth-1];$d.innerHTML=displayDay;
}
yearTracker.style.display=val?"inline":"none";
monthTracker.style.display=val?"inline":"none";
trackerVal = val;
}
function getElementX2(el) {
var de = $D.documentElement;
var box = (typeof el.getBoundingClientRect!=='undefied')?
el.getBoundingClientRect():{top:0,left:0};
return box.left + (window.pageXOffset||de.scrollLeft)-(de.clientLeft||0);
}
function navCaptures(captures) {
var $e = $("wm-nav-captures");
var count = 0;
var years = captures.years;
var first_ts = captures.first_ts, last_ts = captures.last_ts;
for (var j = 0; j < years.length; j++) {
var months = years[j][1];
for (var i = 0; i < months.length; i++) {
count += months[i];
}
}
var html = '<a class="t" href="' + wbPrefix + '*/' + wbCurrentUrl +
'" title="See a list of every capture for this URL">' +
formatNumber(count) + ' ' +
(count > 1 ? "captures" : "capture") + '</a>';
var timespan = __wbTs.format(first_ts, '%d %b %Y');
if (last_ts != first_ts) {
timespan += ' - ' + __wbTs.format(last_ts, '%d %b %Y');
}
html += '<div class="r" title="Timespan for captures of this URL">' +
timespan + '</div>';
$e.innerHTML = html;
}
function trackMouseMove(event) {
//var element = event.target;
var element = $spk;
var eventX = getEventX(event);
var elementX = getElementX2(element);
var xOff = Math.min(Math.max(0, eventX - elementX),imgWidth);
var monthOff = xOff % yearImgWidth;
var year = Math.floor(xOff / yearImgWidth);
var monthOfYear = Math.min(11,Math.floor(monthOff / monthImgWidth));
// 1 extra border pixel at the left edge of the year:
var month = (year * 12) + monthOfYear;
var day = monthOff % 2==1?15:1;
var dateString = zeroPad(year + firstYear) + zeroPad(monthOfYear+1,2) +
zeroPad(day,2) + "000000";
$("displayYearEl").innerHTML=year+firstYear;
$("displayMonthEl").innerHTML=prettyMonths[monthOfYear];
// looks too jarring when it changes..
//$("displayDayEl").innerHTML=zeroPad(day,2);
var url = wbPrefix + dateString + '/' + wbCurrentUrl;
$("wm-graph-anchor").href=url;
if(curYear != year) {
var yrOff = year * yearImgWidth;
yearTracker.style.left = yrOff + "px";
curYear = year;
}
if(curMonth != month) {
var mtOff = year + (month * monthImgWidth) + 1;
monthTracker.style.left = mtOff + "px";
curMonth = month;
}
}
function disclaimElement(element) {
if (window.top == window.self) {
element.style.display = "block";
$D.body.insertBefore(element, $D.body.firstChild);
}
}
yearTracker=$D.createElement('div');
yearTracker.className='yt';
with(yearTracker.style){
display='none';width=yearImgWidth+"px";height=imgHeight+"px";
}
monthTracker=$D.createElement('div');
monthTracker.className='mt';
with(monthTracker.style){
display='none';width=monthImgWidth+"px";height=imgHeight+"px";
}
$spk.appendChild(yearTracker);
$spk.appendChild(monthTracker);
var $cv=$('wm-sparkline-canvas');
$spk.onmouseenter=showTrackers;
$spk.onmouseleave=showTrackers;
$spk.onmousemove=trackMouseMove;
//var $ipp=$("wm-ipp");
//$ipp&&disclaimElement($ipp);
var canvas = $('wm-sparkline-canvas');
if (!!(canvas.getContext && canvas.getContext('2d'))) {
var sparkline_url = "/__wb/sparkline?output=json&url=" +
encodeURIComponent(wbCurrentUrl) +
(coll && "&collection=" + coll || '');
ajax("GET", sparkline_url, function(response) {
if(response.status == 200) {
var capnav=_JSON.parse(response.responseText);
var yearsobj = capnav.years;
var ykeys = Object.getOwnPropertyNames(yearsobj);
var years = (capnav.years = []);
for (var i = 0; i < ykeys.length; i++) {
var y = ykeys[i];
if (yearsobj[y]) {
years.push([y, yearsobj[y]]);
}
}
navCaptures(capnav);
sparkline(capnav,imgWidth,imgHeight,canvas,
firstYear, displayYear, displayMonth);
}
});
} else {
var sparklineImg = new Image();
sparklineImg.src = "/__wb/sparkline?url=" +
encodeURIComponent(wbCurrentUrl) +
"&width=" + imgWidth + "&height=" + imgHeight +
"&selected_year=" + displayYear + "&selected_month=" + displayMonth +
(coll && "&collection=" + coll || '');
sparklineImg.alt= "sparkline";
sparklineImg.width=imgWidth;
sparklineImg.height=imgHeight;
sparklineImg.id="sparklineImgId";
sparklineImg.border="0";
$cv.parentNode.replaceChild(sparklineImg, $cv);
}
function process_autocomplete(data) {
var out = []
var len = data.length;
for(var i=0; i<len; i++) {
if(typeof data[i].excluded === 'undefined') {
out.push(data[i].display_name);
}
}
return out;
}
new wbAutoComplete({
selector: $('wmtbURL'),
delay: 400,
source: function(query, suggest) {
ajax("GET", '/__wb/search/host?q=' + encodeURIComponent(query),
function(data) {
var data = _JSON.parse(data.response);
if (typeof data.hosts!=='undefined' && data.hosts.length>0) {
var output = process_autocomplete(data.hosts);
suggest(output);
} else if (typeof data.isUrl!=='undefined' && data.isUrl===true && typeof data.excluded==='undefined') {
suggest([query]);
} else {
ajax("GET", '/__wb/search/anchor?q='+encodeURIComponent(query),
function(data) {
var data = _JSON.parse(data.response);
if (typeof data!=='undefined' && data.length>0) {
var output = process_autocomplete(data.slice(0,5));
suggest(output);
}
});
}
});
},
onSelect: function(e, term, item) {
$("wmtb").submit();
}
});
$("wmtb").onsubmit = function(e) {
var query = $("wmtbURL").value;
// if textbox value is not a URL, redirect to search
if (!(query.indexOf('http://') === 0 || query.indexOf('https://') === 0 ||
query.match(/[\w\.]{2,256}\.[a-z]{2,4}/gi))) {
document.location.href="/web/*/" + $("wmtbURL").value;
e.preventDefault();
return false;
}
};
};
function show_timestamps() {
// Populate capinfo with capture resources if empty. If not empty, it has
// already run before so avoid redoing AJAX.
var $capresources=$('wm-capresources');
$capresources.innerHTML = '';
//disable caching to be able to reload list when browsing frames.
//if($capresources.innerHTML.length !== 0) {
// return;
//}
var $wmloading=$("wm-capresources-loading");
$wmloading.style.display='block';
// calculate datetime difference with capture datetime and return relative
// value such as "-5 hours, 10 minutes".
var capture_ts = $('wmtb').elements.date.value;
var capture_msec = __wbTs.timestamp2datetime(capture_ts).getTime();
function datetime_diff(dt_str) {
// not using Date.parse() because we found pages that replaces it with
// its own version. This is harder to tamper, but we should use more
// robust method.
var dt_msec = (new Date(dt_str)).getTime();
var diff = dt_msec - capture_msec;
var prefix = "";
if(diff < 0) {
prefix += "-";
diff = Math.abs(diff);
} else {
prefix += "+";
}
var highlight = false;
if(diff < 1000) {
// equal to the page datetime
return {delta: diff, text:"", highlight: highlight};
}
var total_diff = diff;
var years_d = Math.floor(diff/1000/60/60/24/30/12);
diff -= years_d*1000*60*60*24*30*12;
var months_d = Math.floor(diff/1000/60/60/24/30);
diff -= months_d*1000*60*60*24*30;
var days_d = Math.floor(diff/1000/60/60/24);
diff -= days_d*1000*60*60*24;
var hours_d = Math.floor(diff/1000/60/60);
diff -= hours_d*1000*60*60;
var minutes_d = Math.floor(diff/1000/60);
diff -= minutes_d*1000*60;
var seconds_d = Math.floor(diff/1000);
var parts = [];
if(years_d > 1) {
parts.push(years_d + " years");
highlight = true;
} else if(years_d == 1) {
parts.push(years_d + " year");
highlight = true;
}
if(months_d > 1) {
parts.push(months_d + " months");
highlight = true;
} else if(months_d == 1) {
parts.push(months_d + " month");
highlight = true;
}
if(days_d > 1) {
parts.push(days_d + " days");
} else if(days_d == 1) {
parts.push(days_d + " day");
}
if(hours_d > 1) {
parts.push(hours_d + " hours");
} else if(hours_d == 1) {
parts.push(hours_d + " hour");
}
if(minutes_d > 1) {
parts.push(minutes_d + " minutes");
} else if (minutes_d == 1) {
parts.push(minutes_d + " minute");
}
if(seconds_d > 1) {
parts.push(seconds_d + " seconds");
} else if(seconds_d == 1) {
parts.push(seconds_d + " second");
}
if(parts.length > 2) {
parts = parts.slice(0, 2);
}
return {delta: total_diff, text: prefix + parts.join(" "),
highlight: highlight};
}
// Utility method to find elements in dom (currently only img) using URL.
// Also look into embedded frames recursively
// Captured resources urls may have timestamps different from DOM URL
// so it is not possible to search with original path
// /web/20120407141544/http://example.com
// we must search for URLS ENDING WITH http://example.com
function find_elements_by_url(current_window, url) {
var orig_url = url.split("/").splice(6).join("/");
var els=current_window.document.querySelectorAll(
"img[src$='" + orig_url + "'], iframe[src$='" + orig_url + "'], frame[src$='" + orig_url + "']"
);
var els_array=Array.prototype.slice.call(els);
for(var i=0; i<current_window.frames.length; i++) {
try {
var frame_els_array=find_elements_by_url(current_window.frames[i].window, url);
els_array = els_array.concat(frame_els_array);
} catch(err) {
// pass
}
}
return els_array;
}
// invoked onmouseover of link to add highlight
function highlight_elm(e){
if(e.tagName=='FRAME'||e.tagName=='IFRAME')
return e.contentWindow.document.documentElement;
else
return e;
}
function highlight_on(ev) {
var elements = find_elements_by_url(window, ev.target.href);
if(elements.length > 0) {
for(var i=0; i<elements.length; i++) {
highlight_elm(elements[i]).classList.add("wb-highlight");
}
}
}
// invoked onmouseout of link to remove highlight
function highlight_off(ev) {
var elements = find_elements_by_url(window, ev.target.href);
if(elements.length > 0) {
for(var i=0; i<elements.length; i++) {
highlight_elm(elements[i]).classList.remove("wb-highlight");
}
}
}
// Utility method to show capture elements link, datetime and content-type.
// AJAX follows redirects automatically, only status=200 responses are handled.
var inflight_urls = 0;
function get_resource_info(url) {
if(!url.match('^https?://')) return;
inflight_urls++;
ajax("HEAD", url, function(response) {
if(response.status==200) {
$wmloading.style.display='none';
var dt=response.getResponseHeader('Memento-Datetime');
var dt_span=document.createElement('span');
var dt_result = datetime_diff(dt);
var style = dt_result.highlight ? "color:red;" : "";
dt_span.innerHTML=" " + dt_result.text;
dt_span.title=dt;
dt_span.setAttribute('style', style);
var ct=response.getResponseHeader('Content-Type');
var url=response.responseURL.replace(window.location.origin, "");
var link=document.createElement('a');
// remove /web/timestamp/ from appearance
link.innerHTML=url.split("/").splice(3).join("/");
link.href=url;
link.title=ct;
link.onmouseover=highlight_on;
link.onmouseout=highlight_off;
var el=document.createElement('div');
el.setAttribute('data-delta', dt_result.delta);
el.appendChild(link);
el.append(dt_span);
$capresources.appendChild(el);
// sort elements by delta in a descending order and update container
var items = Array.prototype.slice.call($capresources.childNodes, 0);
items.sort(function(a, b) {
return b.getAttribute('data-delta') - a.getAttribute('data-delta');
});
$capresources.innerHTML = "";
for(var i=0, len=items.length; i<len; i++) {
$capresources.appendChild(items[i]);
}
}
if (--inflight_urls == 0) {
$wmloading.style.display = 'none';
}
});
}
// utility method to traverse the document and frames recursively to find
// element with specific tag. Always convert selector result (NodeList)
// to Array to be able to concat.
function find_elements_by_tag_name(current_window, tag) {
var els=current_window.document.getElementsByTagName(tag);
var els_array=Array.prototype.slice.call(els);
for(var i=0; i<current_window.frames.length; i++) {
try {
var frame_els_array=find_elements_by_tag_name(current_window.frames[i].window, tag);
els_array = els_array.concat(frame_els_array);
} catch(err) {
// pass
}
}
return els_array;
}
// images
var static_prefix=window.location.origin + __wm.static_prefix;
var srcList=[];
var imgs=find_elements_by_tag_name(window, 'img');
for(var i=0, len=imgs.length; i<len; i++) {
// exclude WBM /_static/images, leaked images and embedded data URIs
if(!imgs[i].src || imgs[i].src.startsWith(static_prefix) ||
!imgs[i].src.startsWith(window.location.origin) ||
imgs[i].src.startsWith("data:")) {
continue;
}
srcList.push(imgs[i].src);
}
// frames
var frames=find_elements_by_tag_name(window, 'frame');
for(i=0, len=frames.length; i<len; i++) {
if(!frames[i].src) {
continue;
}
srcList.push(frames[i].src);
}
var iframes=find_elements_by_tag_name(window, 'iframe');
for(i=0, len=iframes.length; i<len; i++) {
if(!iframes[i].src || (iframes[i].id && iframes[i].id === 'playback')) {
continue;
}
srcList.push(iframes[i].src);
}
var scripts=find_elements_by_tag_name(window, 'script');
for(i=0, len=scripts.length; i<len; i++) {
if(!scripts[i].src || scripts[i].src.startsWith(static_prefix) ||
!scripts[i].src.startsWith(window.location.origin)) {
continue;
}
srcList.push(scripts[i].src);
}
// link.href (CSS, RSS, etc)
var links=find_elements_by_tag_name(window, 'link');
for(i=0, len=links.length; i<len; i++) {
if(!links[i].href || links[i].href.startsWith(static_prefix) ||
!links[i].href.startsWith(window.location.origin)) {
continue;
}
if(links[i].rel && links[i].rel=="stylesheet") {
srcList.push(links[i].href);
}
}
// deduplicate
var deduped = srcList.filter(function(el, i, arr) {
return arr.indexOf(el) === i;
});
if(deduped.length > 0) {
inflight_urls = 0;
deduped.map(get_resource_info);
} else {
$capresources.innerHTML = "There are no sub-resources in the page.";
$wmloading.style.display='none';
}
}
__wm.ex=function expand(ev) {
ev.stopPropagation();
var c=$expand.className;
if (c.match(/wm-closed/)) { // closed
$expand.className=c.replace(/wm-closed/,'wm-open');
$capinfo.style.display='block';
show_timestamps();
} else {
$expand.className=c.replace(/wm-open/,'wm-closed');
$capinfo.style.display='none';
}
};
function isArray(obj) {
return (typeof obj !== 'undefined' && obj && obj.constructor === Array);
}
function setVisibility(id, visible) {
var el = $(id);
if (el) {
el.style.visibility = visible ? 'visible' : 'hidden';
}
}
function setDisplayStyle(id, display) {
var el = $(id);
if (el) {
el.style.display = display;
}
}
function show(ids) {
if (!isArray(ids)) {
ids = [ids];
}
for (var i = 0; i < ids.length; i++) {
setDisplayStyle(ids[i], 'inline-block');
}
}
function hide(ids) {
if (!isArray(ids)) {
ids = [ids];
}
for (var i = 0; i < ids.length; i++) {
setDisplayStyle(ids[i], 'none');
}
}
function visibility(ids, visible) {
if (!isArray(ids)) {
ids = [ids];
}
for (var i = 0; i < ids.length; i++) {
setVisibility(ids[i], visible);
}
}
function userIsLoggedIn() {
show('wm-save-snapshot-open');
hide('wm-sign-in');
}
function userIsNotLoggedIn() {
hide([
'wm-save-snapshot-open',
'wm-save-snapshot-in-progress',
]);
show('wm-sign-in');
}
function startSnapShotSaving() {
hide([
'wm-save-snapshot-fail',
'wm-save-snapshot-open',
'wm-save-snapshot-success',
]);
show([
'wm-save-snapshot-in-progress',
]);
}
function successSnapshotSaving() {
hide([
'wm-save-snapshot-fail',
'wm-save-snapshot-in-progress',
]);
show([
'wm-save-snapshot-open',
'wm-save-snapshot-success',
]);
}
function failSnapshotSaving(err) {
hide([
'wm-save-snapshot-in-progress',
'wm-save-snapshot-success',
]);
show([
'wm-save-snapshot-fail',
'wm-save-snapshot-open',
]);
}
/**
* Get status and response URL
* which could be different in case
*
* @param url
* @param callback
*/
function getOkStatusAndResponseURL (url, callback) {
ajax('HEAD', url, function(response) {
callback(response.status < 300, response.responseURL);
});
}
var screenShotTimestampRegex = /web\/(\d*)\/http:\/\/web\.archive\.org\/screenshot/g;
function extractTimestampFromScreenShotRequest (url) {
var res = screenShotTimestampRegex.exec(url);
if (res && res[1]) {
return res[1];
}
return null;
}
/**
* Check whether URL has screen shot
*
* @param url
* @param captureTimestamp
* @param callback
*/
function hasScreenShot (url, captureTimestamp, callback) {
getOkStatusAndResponseURL(
'/web/' + captureTimestamp + '/http://web.archive.org/screenshot/' + url,
function (ok, redirectUrl) {
if (!ok) {
return callback(false);
}
var screenShotTimestamp = extractTimestampFromScreenShotRequest(redirectUrl);
var delta = (
__wbTs.timestamp2datetime(screenShotTimestamp).getTime() -
__wbTs.timestamp2datetime(captureTimestamp).getTime()
) / 1000;
console.log('screen shot delta: ' + delta + 's');
// maximum difference is 1 minute
var isValidScreenShotTimestamp = (delta > 0) && (delta < 60);
callback(isValidScreenShotTimestamp, delta);
});
}
/**
* check whether cookie has field
*
* @param name
* @return boolean
*/
function hasCookie(name) {
return document.cookie.search(name) >= 0;
}
__wm.saveSnapshot = function (url, timestamp, tags) {
startSnapShotSaving();
ajax('POST', '/__wb/web-archive/', function (res) {
if (res.status === 401) {
// it seems that user is not logged in
userIsNotLoggedIn();
} else if (res.status >= 400) {
failSnapshotSaving(res.responseText);
console.log('You have got an error.');
console.log('If you think something wrong here please send it to support.');
console.log('Response: "' + res.responseText + '"');
console.log('status: "' + res.status + '"');
} else {
successSnapshotSaving(res);
}
}, {
'Content-Type': 'application/json'
}, _JSON.stringify({
url: url,
snapshot: timestamp,
tags: tags || [],
}));
return false;
};
__wm.checkScreenShot = function (url, timestamp) {
hasScreenShot(url, timestamp, function (exist, timestampDelta) {
if (exist) {
// show('wm-screenshot');
$('wm-screenshot').title = 'screen shot (delta: ' + timestampDelta + 's)';
visibility('wm-screenshot', true);
} else {
visibility('wm-screenshot', false);
}
});
};
document.addEventListener('DOMContentLoaded', function () {
if (hasCookie('logged-in-user') && hasCookie('logged-in-sig')) {
userIsLoggedIn();
} else {
userIsNotLoggedIn();
}
});
})();
// @license-end

View File

@ -0,0 +1,43 @@
// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL-3.0
// Wayback Machine hacks
var __wbhack = new function(){
var prefix;
var orig_document = {
createElementNS: document.createElementNS
};
this.init = function(_prefix) {
this.checkCookiesNumber();
prefix = _prefix;
document.createElementNS = function(ns,name) {
if (ns.indexOf(prefix)==0) {
ns = ns.substring(prefix.length).replace(/\/?[0-9]+\//, '');
}
return orig_document.createElementNS.call(this, ns, name);
};
};
this.createCookie = function(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
};
this.eraseCookie = function(name) {
this.createCookie(name, "", -1);
};
this.checkCookiesNumber = function() {
var cookies = document.cookie.split(";");
if(cookies.length > 40) {
for(var i=0; i<cookies.length; i++) {
var name = cookies[i].split("=")[0].trim();
this.eraseCookie(name);
}
}
};
// save JSON object for our use - some target pages redefine JSON with their
// own version that may not be compatible with (now) standard JSON.
this.JSON = JSON;
};
// @license-end

15
zen/ipfs_EMPTY.sh Executable file
View File

@ -0,0 +1,15 @@
#!/bin/bash
########################################################################
# IPFS CLEANING (MANUAL OPERATION)
########################################################################
echo "
>>> CLEAN IPFS REPO
##################################################################
ipfs pin ls -q --type recursive | xargs ipfs pin rm && ipfs repo gc
rm -f ~/.ipfs/keystore/*.key
rm -Rf ~/.zen/tag/*
rm -Rf ~/.zen/ipfs/.$ipfsnodeid/TAG
##################################################################"

View File

@ -14,26 +14,96 @@ echo '
############# '$MY_PATH/$ME'
########################################################################
# ex: ./'$ME'
# SURVEY received #astroport-swarmkey and copy it to IPFS
# SURVEY received #astroport-swarmkey ipfs_swarm.key.crypt for IPFS
######################################################################## _ _ _ _ _
___ _ _ __
| |_)|_(_ _ _.._._ _ | _
_|_| | __) _>\/\/(_|| | | ||<(/_\/
/
USED ONLY ONCE... Next swarm.key change will use ipfs.
USED ONLY ONCE... Next swarm.key change will accurs in ~/.zen/ipfs-swarm
{
"key": "%ydN2fyzKTKzVZiZJSxiTXbb17GVvu0ZOf7LPY6u3Bc8=.sha256",
"value": {
"previous": "%SM2J1D8RcWzd2/P6I3ATyN4VXHuQEP3sXy7YCtK0djE=.sha256",
"sequence": 18,
"author": "@t/giTDc0EtzdPQGC7iAAzgzVOkFo++XZRvzOOlqgX1c=.ed25519",
"timestamp": 1585194822251,
"hash": "sha256",
"content": {
"type": "post",
"text": "#astroport-swarmkey = [ipfs_swarm.key.crypt](&L9nCidDjJ4c4Jz1LNTtx8Xp0SJW9HPCD9IVsbbAhS/I=.sha256) TO.SSB_${author} TO.G1_${g1author} +++ FROM.SSB_${self_name} FROM.G1_${g1self} FROM.IPFS_${ipfsnodeid}",
"mentions": [
{
"link": "&L9nCidDjJ4c4Jz1LNTtx8Xp0SJW9HPCD9IVsbbAhS/I=.sha256",
"name": "ipfs_swarm.key.crypt",
"size": 144,
"type": "application/octet-stream"
}
]
},
"signature": "DHMTIS17yF450CqFssuP2iwYMMdOd3PzCDTkLYdjprTtvjWZYUEG9vHaXBrGuaFZRhV2gGZ3WSknM7YLevilAQ==.sig.ed25519"
},
"timestamp": 1585194822367
}
'
self=$(sbotc whoami | jq -r .id) || exit 1
g1self=$(echo $self | cut -d '@' -f 2 | cut -d '.' -f 1 | base64 -d | base58)
self_name=$(sbotc query.read '{"query":[{"$filter":{"value":{"author": "'"$self"'", "content":{"type":"about", "about": "'"$self"'"}}}}]}' | jq -r .value?.content?.name | grep -v null | tail -n 1)
ipfsnodeid=$(ipfs id -f='<id>\n')
[[ ! $ipfsnodeid ]] && echo "ERROR ipfs id" && exit 1
messages=$(sbotc backlinks.read '{"query":[{"$filter":{"dest":"#astroport-swarmkey","value":{"content":{"type":"post"}}}}]}')
[[ -f ~/.ipfs/ipfs_swarm.key ]] && echo "SWARM KEY OK" && exit 1
# SEARCH "#astroport-swarmkey" CMD in message text
# Not working without patchwork (TODO: find bug. installation ok!? activate? ssb-server ssb-backlinks node_modules. HELP !! )
# messages=$(sbotc backlinks.read '{"query":[{"$filter":{"dest":"#astroport-swarmkey","value":{"content":{"type":"post"}}}}]}')
# The backlinks.read command does not publish a message, it queries the database for messages. It comes from the ssb-backlinks plugin. This plugin does not come with ssb-server by default (but it does come with Patchwork) so if you are using plain ssb-server and want to use ssb-backlinks you have to install it additionally. But to publish a message you would use the publish method (or private.publish to publish a private message, and that requires the ssb-private plugin, which is included in Patchwork but must be installed separately for ssb-server).
# SCRIPT RUN BY cron_MINUTE.sh check last hour messages
current_ts=$(date -u +%s%N | cut -b1-13)
last_ts=$((current_ts - 3600000)) # timestamp from 1h ago
#messages=$(sbotc messagesByType '{"type":"post","gt":'$last_ts'}')
echo '
_ _
-|-|- _. __|_.__ ._ _ .__|___/ |\/|| \
-|-|-(_|_> |_|(_)|_)(_)| |_ \_| ||_/
|
sbotc messagesByType "post"
'
messages=$(sbotc messagesByType '{"type":"post"}')
while read -r msg
do
attached_file=$(printf %s "$msg" | jq -r .value.content.mentions.link 2>/dev/null)
if [[ $attached_file == "ipfs_swarm.key.crypt" ]]; then
echo '
__ _ _
(_\ //\ |_)|\/| |/|_\_/ _._ .__|_
__)\/\//--\| \| | |\|_ | de(_|\/|_)|_
/ |
to ~/.ipfs/ipfs_swarm.key
'
mytmp=$(mktemp -d "${TMPDIR:-/tmp}/ssb-npm.XXXXXXXXX")
curl -s "http://localhost:8989/blobs/get/$attached_file" > $mytmp/ipfs_swarm.key.crypt
$MY_PATH/tools/natools.py decrypt -k ~/.ssb/secret.dunikey -i $mytmp/ipfs_swarm.key.crypt -o ~/.ipfs/ipfs_swarm.key
echo '
___ _ _ __
| |_)|_(_ _| _. _ ._ _ _ ._
_|_| | __) (_|(_|(/_| | |(_)| | ... restart ...
'
# TODO!!! Add user in sudo without password like "pi" = Run astroport under pi user IDEA.
sudo systemctl restart ipfs
fi
done < <(printf '%s\n' "$messages")

View File

@ -0,0 +1,18 @@
#!/bin/sh
{
ws_host='http://localhost:8989'
ssb_npm_registry_blob="&ICm1gBw79PitW1qUuq5jIJJtjyfkfPfpuHQfPeGpmJ4=.sha256"
pkg_name=ssb-npm
pkg_version=2.0.1
pkg_msg=%/hNT8vXLGN9IoVUwLdSbw/9UgKjFI0AOnlQl/0129Tw=.sha256
dir=$(mktemp -d "${TMPDIR:-/tmp}/ssb-npm.XXXXXXXXX") &&
cd "$dir" &&
curl -s "$ws_host/blobs/get/$ssb_npm_registry_blob" | tar xz &&
./package/bootstrap/bin.js \
--ws-url "$ws_host" \
--branch "$pkg_msg" \
install -g "$pkg_name@$pkg_version"
cd -
rm -rf "$dir"
}

View File

@ -23,6 +23,7 @@ TXHASH="$2" # G1 TX HASH
PASSENGER="$3" # /path/file.ext to include into ZenTag (add to IPFS datastructure)
READ="$4" # Zen amount asked to allow passenger reading
PARK="$5" # Zen amount payed for IPFS PIN by passenger everyday
METADATA="$6"
[[ $READ == "" ]] && READ=1
[[ $PARK == "" ]] && PARK=10
##############################################
@ -243,8 +244,11 @@ echo "${J}" > ~/.zen/tag/${AAH}/_ipns
# INDEXING ZenTag to SWARM
mkdir -p ~/.zen/ipfs/.$ipfsnodeid/TAG/${J}
echo "${AA}" > ~/.zen/ipfs/.$ipfsnodeid/TAG/${J}/_tag.uid
# TODO add METADATA
# echo "" > ~/.zen/ipfs/.$ipfsnodeid/TAG/${J}/_tag.metadata.json
echo "${PASSENGERNAME}" > ~/.zen/ipfs/.$ipfsnodeid/TAG/${J}/_tag.passenger.filename
# TODO Publish on Node self : NAME + METADATA + ... ~/.zen/ipfs_swarm/ = global swarm INDEX
# echo "" > ~/.zen/ipfs/.$ipfsnodeid/TAG/${J}/_tag.passenger.metadata.json
IWALLETS=$(ipfs add -rHq ~/.zen/ipfs | tail -n 1)
NODEIPNS=$(ipfs name publish --quieter /ipfs/$IWALLETS)
@ -293,16 +297,4 @@ sbotc publish '{"type":"post","text":"ZenTAG created : ipfs ls /ipns/$J"}'
########################################################################
# IPFS CLEANING (MANUAL OPERATION)
########################################################################
echo "
>>> CLEAN IPFS REPO
##################################################################
ipfs pin ls -q --type recursive | xargs ipfs pin rm && ipfs repo gc
rm -f ~/.ipfs/keystore/*.key
rm -Rf ~/.zen/tag/*
rm -Rf ~/.zen/ipfs/.$ipfsnodeid/TAG
##################################################################"
########################################################################
exit 0