html{-ms-text-size-adjust:100;-webkit-text-size-adjust:100%}body{margin:0}details,main,summary{display:block}audio,canvas,progress,video{vertical-align:baseline}[hidden],template{display:none}a{background:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted;cursor:help}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}blockquote,figure{margin:0}hr{box-sizing:content-box;height:0}pre{word-wrap:break-word;display:block;line-height:1.4;margin:0;overflow:auto;word-break:break-all}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{background:transparent;box-shadow:none;overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input,textarea{-webkit-appearance:none;background:transparent;border:0}input[type=radio],textarea[type=radio]{-webkit-appearance:radio;cursor:pointer}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}button,input,select[multiple],textarea{background-image:none}*,:after,:before{box-sizing:border-box}h1,h2,h3,h4{font-size:inherit;font-weight:inherit;margin:0}ol,ul{list-style-type:none;padding:0}ol,p,ul{margin:0}iframe{border:0}address{font-style:normal}input[disabled] textarea[disabled]{cursor:not-allowed}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration,input[type=search]::-webkit-search-results-button,input[type=search]::-webkit-search-results-decoration{display:none}:root{--core-gray:#f8f8fa;--core-violet-1:#9aa2e7;--core-violet-2:#6d79e9;--core-violet-3:#6472e7;--core-violet-4:#4e5ee4;--core-violet-6:#282846;--robust-blue-1:#a1b1b8;--robust-blue-2:#6b8a99;--robust-blue-3:#506773;--robust-blue-4:#32444d;--robust-blue-5:#272f33;--future-green-1:#aaf2cb;--future-green-2:#33cc7a;--future-green-3:#17bc65;--future-green-4:#0e8c48;--future-green-5:#174d30;--steel-1:#6b6c6d;--steel-2:#58595a;--steel-3:#3a3b3c;--steel-4:#3d3d58;--steel-5:#121314;--aluminum-0:#f5f6fe;--aluminum-1:#f9fafb;--aluminum-2:#f4f5f6;--aluminum-3:#e8e9ea;--aluminum-4:#cacbcc;--aluminum-5:#989a9b;--yellow-3:#f2be24;--viridian-3:#00b49d;--teal-3:#00b5d1;--navy-3:#178bea;--indigo-3:#5e66f9;--violet-3:#9a63f9;--red-3:#d1344e;--blue:#196bf7;--tertiary:#fff;--color-text:#282846;--color-text-light:#556;--color-navbar-text:#282846;--border-radius:.3rem;--heading:"Silka",sans-serif;--sans-serif:-apple-system,BlinkMacSystemFont,"avenir next",avenir,"helvetica neue",helvetica,ubuntu,roboto,noto,"segoe ui",arial,sans-serif;--monospace:"Roboto Mono",monospace;--weight-normal:400;--weight-medium:500;--weight-bold:600;--header-height:66px;--navbar-height:70px;--footer-height:361px;--nav-item-height:32px;--xs:5px;--sm:10px;--md:15px;--lg:20px;--xl:40px;--input-md:30px;--transition-speed-sm:0.15s;--transition-speed-md:0.3s;--transition-timing:cubic-bezier(0.46,0.03,0.52,0.96)}body{background:#fefefe}.filter-active-icon{filter:invert(49%) sepia(69%) saturate(6505%) hue-rotate(225deg) brightness(93%) contrast(91%)}@media (min-width:1160px){.container{max-width:1160px}}.flex{display:flex}.col{flex-direction:column}.align-top{align-items:flex-start}.align-center{align-items:center}.align-bottom{align-items:flex-end}.justify-center{justify-content:center}.justify-justified{justify-content:space-between}.grow{flex:1 1 auto}.shrink{flex:0 0 auto}@font-face{font-family:Silka;font-style:normal;font-weight:400;src:url(../fonts/silka-regular-webfont.eot);src:url(../fonts/silka-regular-webfont.eot?#iefix) format("embedded-opentype"),url(../fonts/silka-regular-webfont.woff2) format("woff2"),url(../fonts/silka-regular-webfont.woff) format("woff"),url(../fonts/silka-regular-webfont.ttf) format("truetype")}@font-face{font-family:Silka;font-style:500;font-weight:500;src:url(../fonts/silka-medium-webfont.eot);src:url(../fonts/silka-medium-webfont.eot?#iefix) format("embedded-opentype"),url(../fonts/silka-medium-webfont.woff2) format("woff2"),url(../fonts/silka-medium-webfont.woff) format("woff"),url(../fonts/silka-medium-webfont.ttf) format("truetype")}@font-face{font-family:Silka;font-style:600;font-weight:600;src:url(../fonts/silka-semibold-webfont.eot);src:url(../fonts/silka-semibold-webfont.eot?#iefix) format("embedded-opentype"),url(../fonts/silka-semibold-webfont.woff2) format("woff2"),url(../fonts/silka-semibold-webfont.woff) format("woff"),url(../fonts/silka-semibold-webfont.ttf) format("truetype")}body{color:var(--color-text);font-family:var(--sans-serif);line-height:1.6}h1,h2,h3,h4,h5,h6{font-family:var(--heading);font-weight:var(--weight-medium);line-height:1.2;margin-bottom:var(--md)}h2,h3,h4,h5,h6{margin-top:var(--lg);padding-top:var(--lg)}h1,h2{border-bottom:1px solid var(--aluminum-4);padding-top:.75em}h1{font-size:1.8em;padding-bottom:.4em}h2{font-size:1.6em;padding-bottom:.3em}h3{font-size:1.4em}h4{font-size:1.2em}h5{font-size:1em}h6{font-size:.9em}code{background-color:#f6f6f7;border-radius:.2em;padding:.2em .4em}dl,figure,ol,p,ul{margin-bottom:var(--sm);margin-top:var(--sm)}aside,pre,table{margin-bottom:var(--lg);margin-top:var(--lg)}a{color:var(--blue)}.admonitionblock a{color:inherit}code,pre{font-family:var(--monospace);font-size:.95em}thead{border-bottom:1px solid var(--aluminum-3);color:var(--aluminum-5);font-family:var(--heading);font-variant:small-caps;letter-spacing:.05em;text-transform:lowercase}th{text-align:inherit}td,th{padding:var(--xs)}td>.tableblock{margin:0}ol,ul{padding-left:var(--lg)}ol{list-style-type:decimal}ul{list-style-type:circle}dl{border:1px solid var(--aluminum-3);border-radius:2px;display:inline-block;padding:var(--md)}dt{font-weight:var(--weight-medium)}dt:after{content:":"}dd{margin-left:0}dd+dt{border-top:1px solid var(--aluminum-3);margin-top:var(--sm);padding-top:var(--sm)}blockquote{margin-left:2rem}blockquote+.attribution{text-align:right}.strong{font-weight:var(--weight-medium)}.strikethrough{text-decoration:line-through}svg{fill:currentColor}svg.icon{height:1em;pointer-events:none;vertical-align:-.1em;width:1em}.btn-icon{border:0;display:flex;padding:.5em}.input,.textarea{background:var(--tertiary);border:1px solid var(--aluminum-4);border-radius:2px;color:var(--steel-5);font-size:14px;height:var(--input-md);padding:var(--xs);transition:box-shadow var(--transition-speed-sm) var(--transition-timing);width:100%;word-break:normal}.input.focus,.input:focus,.textarea.focus,.textarea:focus{border-color:var(--core-violet-3);box-shadow:0 0 0 3px rgba(0,162,223,.25)}.input::placeholder,.textarea::placeholder{color:var(--aluminum-5)}.textarea{resize:vertical}.select{background:var(--tertiary);border:1px solid var(--aluminum-4);color:var(--steel-5);font-size:14px;height:var(--input-md);padding:var(--xs);transition:box-shadow var(--transition-speed-sm) var(--transition-timing);word-break:normal}.select.focus,.select:focus{border-color:var(--core-violet-3);box-shadow:0 0 0 3px rgba(0,162,223,.25)}.card-section .content,.card-section .sectionbody{grid-gap:1rem;display:grid;grid-template-columns:repeat(auto-fill,minmax(max(30%,230px),1fr))}.card-section-2col .content,.card-section-2col .sectionbody{grid-template-columns:repeat(auto-fill,minmax(max(50% - .5rem,250px),1fr))}.card-section .sectionbody>:not(.card){grid-column:1/-1}.card .content,.card .paragraph,.card p{display:inline}.card a{display:block;display:inline-flex;flex-direction:column;height:100%;justify-content:space-between;padding:1.5rem 1.2rem;width:100%}.card a .card-body{flex-grow:1}.card-title{display:flex;vertical-align:center}.card-body{display:block}.card a{border-radius:var(--border-radius);color:inherit;font-size:.9rem;text-decoration:none}.card a .card-title{font-family:var(--heading);font-size:1rem;font-weight:var(--weight-bold);line-height:1.4;margin-bottom:1.2rem}.card-learn a{border:1px solid #cacbcc;border-left:3px solid #53536b;color:var(--color-text-light)}.card-learn a .card-title{margin-bottom:.8rem}.card-learn a:hover{border-color:#b8bff4 #b8bff4 #b8bff4 #4e5ee4;box-shadow:0 6px 12px 0 rgba(60,60,60,.09)}.card-learn a:hover .card-title{color:#4e5ee4}.card-oss a{border:1px solid #cacbcc;border-left:3px solid #53536b;color:var(--color-text-light)}.card-oss a .card-title:before{background-image:var(--card-icon);background-repeat:no-repeat;background-size:contain;content:"";display:inline-block;height:1.2em;margin-right:.6rem;vertical-align:middle;width:1.2em}.card-oss a:hover{border-color:#b8bff4 #b8bff4 #b8bff4 #4e5ee4;box-shadow:0 6px 12px 0 rgba(60,60,60,.09)}.card-oss a:hover .card-title{color:#4e5ee4}.card-primary a,.card-secondary a{box-shadow:0 5px 10px 0 rgba(60,60,60,.1)}.card-primary a:hover,.card-secondary a:hover{box-shadow:0 5px 10px 0 rgba(60,60,60,.3)}.card-primary a .card-title:before,.card-secondary a .card-title:before{background-image:var(--card-icon);background-repeat:no-repeat;background-size:contain;content:"";display:inline-block;height:1.2em;margin-right:.6em;vertical-align:middle;width:1.2em}.card-primary a{color:#fff;min-height:14rem;overflow:hidden;padding-bottom:2em;padding-top:3em;position:relative}.card-primary a .card-title{font-size:1.2em}.card-primary a:before{background-image:url(../images/cards.svg);background-repeat:no-repeat;background-size:contain;bottom:30px;content:"";display:block;height:70px;position:absolute;right:-20px;width:95px}.card-primary a:after{content:"Get started >";font-family:var(--heading);font-size:.8em;font-weight:var(--weight-bold);letter-spacing:.05em;text-transform:uppercase}.card-secondary a{border:1px solid #e9e9ed;color:var(--color-text-light)}.card-secondary a:hover{border-color:#dfdfe0}.card-contracts a{--card-icon:url(../images/contracts_white.svg);background-image:linear-gradient(45deg,#6746d6,#a134d1)}.card-defender a{--card-icon:url(../images/defender_white.svg);background-image:linear-gradient(-135deg,#00e1d4,#00c7f2)}.card-community{--card-icon:url(../images/icons/community-contracts.svg)}.card-upgrades{--card-icon:url(../images/icons/upgrades-plugins.svg)}.card-contracts-cairo{--card-icon:url(../images/icons/contracts-cairo.svg)}.card-contracts-stylus{--card-icon:url(../images/icons/contracts-stylus.svg)}.card-stellar-contracts{--card-icon:url(../images/icons/stellar-contracts.svg)}.card-uniswap-hooks{--card-icon:url(../images/icons/starter-kits.svg)}.card-substrate-runtimes{--card-icon:url(../images/icons/substrate-runtimes.svg)}.card-test-environment{--card-icon:url(../images/icons/test-environment.svg)}.card-network-js{--card-icon:url(../images/icons/network-js.svg)}.card-gsn-helpers{--card-icon:url(../images/icons/gsn-helpers.svg)}.card-gsn-provider{--card-icon:url(../images/icons/gsn-provider.svg)}.card-contract-loader{--card-icon:url(../images/icons/contract-loader.svg)}.card-solidity-docgen{--card-icon:url(../images/icons/docgen.svg)}.card-open-source-tools{--card-icon:url(../images/icons/open-source-tools.svg)}.card-relayer{--card-icon:url(../images/icons/openzeppelin-relayer.svg)}.card-monitor{--card-icon:url(../images/icons/openzeppelin-monitor.svg)}.card-subgraphs{--card-icon:url(../images/icons/subgraphs.svg)}.nav{background:var(--core-gray);color:var(--color-text-light);padding:1rem}.nav a{color:inherit;text-decoration:none}.nav .nav-li-active>a{color:var(--core-violet-4)}.nav-component{line-height:1rem}.btn-back,.nav-component a{padding:.7rem 1rem}.nav-title{color:var(--aluminum-5);font-family:var(--heading);font-size:.8em;font-weight:var(--weight-bold);letter-spacing:.05em;padding:0 1rem;text-transform:uppercase}.btn-back{cursor:pointer;line-height:1.5rem;margin-bottom:.5rem;margin-left:1.3rem;opacity:.6}.btn-back:before{content:url(../images/icons/arrow_back.svg);display:inline-block;margin-left:-1.3rem;margin-right:.3em;width:1rem}.nav-heading{font-family:var(--heading);font-size:1.3rem;font-weight:var(--weight-medium);padding:0 1rem}.nav-component-active .nav-heading-active{background:var(--core-gray);padding-bottom:4px;padding-top:15px;z-index:2}.nav-list{line-height:1.7em;list-style:none;padding-left:0}.nav-component-heading{color:var(--steel-4);font-family:var(--heading);font-size:1rem;font-weight:var(--weight-medium);position:relative}.nav-link:hover{cursor:pointer;opacity:.8}.nav-link code{font-size:.9rem;padding:0}.nav-icon{opacity:.8}button.collapse-toggle{border:none;cursor:pointer;padding:0}button.collapse-toggle.toggled img{transform:rotate(-90deg)}button.collapse-toggle.toggled~.collapsible-content{display:none}.close-menu-btn{border:0}.component-version{position:relative}.btn-version{border:1px solid;border-radius:1rem;font-size:.85rem;font-weight:var(--weight-normal);margin:.4rem 0;min-height:1.5rem;padding:0 .5rem}.btn-version:after{content:url(../images/icons/chevron.svg);display:inline-block;margin-left:.2rem;width:.8rem}.btn-version:focus,.btn-version:hover{color:var(--core-violet-4)}.btn-version svg{height:var(--md);width:var(--md)}.popover-container{opacity:0;padding-top:.5em;pointer-events:none;position:absolute;right:0;top:100%;z-index:1}.btn-version:focus+.popover-container,.popover-container:focus-within{opacity:1;pointer-events:auto}.popover{background:var(--tertiary);border:1px solid var(--aluminum-3);border-radius:var(--border-radius);box-shadow:0 0 10px rgba(0,0,0,.05);color:var(--steel-3);font-family:var(--sans-serif);font-size:.9em;margin:0 var(--xs);padding:.5em;user-select:none;width:10em}.popover p{font-size:.9em;font-weight:700;margin:0;padding:0 .5em}.popover ul{margin:0;padding:0}.popover ul li{list-style:none}.popover ul li a{display:block;padding:.2em .5em}.popover ul li a:hover{background-color:var(--aluminum-2)}.readme-notice{display:none}.root{display:flex}.nav{flex:0 0 auto;height:100vh;overflow-y:auto;position:sticky;top:0;width:300px}.nav-heading{align-items:center;margin:.75rem 0}.nav-component-active{min-height:100%;overflow-y:auto}.nav-component-active .nav-heading-active{margin-top:0;position:sticky;top:0}.nav-heading-active{position:sticky;top:15px}.nav-component-heading+.nav-list{height:90%;margin-bottom:0}.nav-li{line-height:1.5rem;margin-bottom:.5rem;margin-left:1.3rem}.nav-icon{height:1rem;margin-right:.5rem;width:1rem}.close-menu-btn{display:flex;margin-left:calc(var(--side-margin)*-1);margin-top:calc(var(--side-margin)*-1);padding:var(--lg)}@media (min-width:1000px){.close-menu-btn{display:none}}@media (max-width:1000px){.nav{flex-grow:1;padding:var(--lg)}.nav.toggled~.main,.nav:not(.toggled){display:none}}button.collapse-toggle{height:1rem;margin-left:-1.3rem;width:1rem}.collapsible-content{margin-bottom:var(--md)}:root{--side-margin:var(--xl)}@media (max-width:1000px){:root{--side-margin:var(--lg)}}.main{display:flex;flex-direction:column;flex-grow:1;min-width:0}.article-wrapper,.navbar{margin:0 var(--side-margin);max-width:60rem}.navbar{align-items:center;display:flex;flex-wrap:wrap}.navbar-burger{display:flex;margin-left:calc(var(--side-margin)*-1);margin-right:.5em;padding:var(--lg)}.navbar-logo{align-items:stretch;display:flex;flex-grow:99}.navbar-logo a{align-items:center;display:flex;padding:var(--lg) 0}.navbar-search{display:flex;flex-grow:1;position:relative}.navbar-search-input{flex-grow:1;padding:.5rem!important}.navbar-end{display:flex;flex-grow:1;flex-wrap:wrap;justify-content:space-around}.navbar-item{align-items:center;display:flex;flex-grow:1;justify-content:center;line-height:1.5;margin-left:.25em;margin-right:.25em}.article-wrapper{align-items:flex-start;display:flex;flex-direction:row;flex-grow:1}.article{flex-grow:1;min-width:0}.toc-sidebar{flex-grow:0;flex-shrink:0;margin-left:var(--lg);max-height:80vh;overflow-y:auto;position:sticky;top:10vh;width:200px}@media (max-width:666.6666666667px){.toc-sidebar{display:none}}.notoc .toc-sidebar{display:none}body .leadinModal.leadinModal-theme-top{bottom:0;top:auto;z-index:99999999999}.leadinModal.leadinModal-theme-top .leadinModal-content{animation-name:leadinModal-reset!important}.leadinModal.leadinModal-theme-top.leadinModal-closing,.leadinModal.leadinModal-theme-top.leadinModal-closing .leadinModal-content{animation-name:leadinModal-fadeout!important}@keyframes leadinModal-reset{0%{opacity:0;transform:translateY(0);-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);-o-transform:translateY(0)}1%{opacity:0;transform:translateY(0);-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);-o-transform:translateY(0)}2%{opacity:0;transform:translateY(0);-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);-o-transform:translateY(0)}to{opacity:1;transform:translateY(0);-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);-o-transform:translateY(0)}}.header{border-bottom:1px solid #e2e2e7}.navbar{word-wrap:break-word;background-color:var(--color-navbar-bg);color:var(--color-navbar-text);font-size:.83333rem;z-index:var(--z-index-navbar)}.navbar a{text-decoration:none}.navbar-brand .navbar-item:first-child,.navbar-brand .navbar-item:first-child a{color:var(--color-navbar-text);font-size:1.15rem}.navbar-brand .separator{padding:0 .375rem}.navbar-burger{background:none;border:none;color:var(--color-navbar-text);outline:none}.navbar-burger::-moz-focus-inner{border:none}.navbar-item{color:var(--color-text);font-family:var(--heading);font-size:.9rem;font-weight:500;padding:.5rem}.navbar-item:hover{color:var(--color-navbar-hover)}.navbar-button{text-wrap:nowrap;background:#4f56fa;border:1px solid #efefef;border-radius:100px;color:#fff;display:inline-block;font-family:var(--heading);font-size:.9rem;font-weight:500;letter-spacing:-.02em;padding:6px 14px;text-align:center;text-decoration:none;text-transform:none;transition:all .2s ease;white-space:nowrap}.navbar-button:hover{background:#4349d4!important;color:#fff}.navbar-search-input{background-color:var(--aluminum-1);border:1px solid var(--aluminum-3);border-radius:.25rem;font-size:1rem}.navbar-search-input:focus{outline:none}.navbar-search-checkbox{display:none}@media screen and (min-width:1000px){.navbar-burger{display:none}}footer.footer{background-color:#fff;border-top:1px solid rgba(40,40,70,.1);color:#5d5d5d;font-size:.7rem;padding:25px 2rem}.footer a{border-left:1px solid rgba(40,40,70,.7);color:rgba(40,40,70,.7);display:inline;margin-left:7px;padding-left:7px}

/*!
  Theme: GitHub Dark Dimmed
  Description: Dark dimmed theme as seen on github.com
  Author: github.com
  Maintainer: @Hirse
  Updated: 2021-05-15

  Colors taken from GitHub's CSS
*/.hljs{background:#22272e;color:#adbac7}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#f47067}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#dcbdfb}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-variable{color:#6cb6ff}.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#96d0ff}.hljs-built_in,.hljs-symbol{color:#f69d50}.hljs-code,.hljs-comment,.hljs-formula{color:#768390}.hljs-name,.hljs-quote,.hljs-selector-pseudo,.hljs-selector-tag{color:#8ddb8c}.hljs-subst{color:#adbac7}.hljs-section{color:#316dca;font-weight:700}.hljs-bullet{color:#eac55f}.hljs-emphasis{color:#adbac7;font-style:italic}.hljs-strong{color:#adbac7;font-weight:700}.hljs-addition{background-color:#1b4721;color:#b4f1b4}.hljs-deletion{background-color:#78191b;color:#ffd8d3}.hljs-char.escape_,.hljs-link,.hljs-params,.hljs-property,.hljs-punctuation,.hljs-tag{background-color:transparent;color:inherit}

/*!
  Theme: GitHub
  Description: Light theme as seen on github.com
  Author: github.com
  Maintainer: @Hirse
  Updated: 2021-05-15

  Outdated base version: https://github.com/primer/github-syntax-light
  Current colors taken from GitHub's CSS
*/.hljs-theme-light .hljs{background:#fff;color:#24292e}.hljs-theme-light .hljs-doctag,.hljs-theme-light .hljs-keyword,.hljs-theme-light .hljs-meta .hljs-keyword,.hljs-theme-light .hljs-template-tag,.hljs-theme-light .hljs-template-variable,.hljs-theme-light .hljs-type,.hljs-theme-light .hljs-variable.language_{color:#d73a49}.hljs-theme-light .hljs-title,.hljs-theme-light .hljs-title.class_,.hljs-theme-light .hljs-title.class_.inherited__,.hljs-theme-light .hljs-title.function_{color:#6f42c1}.hljs-theme-light .hljs-attr,.hljs-theme-light .hljs-attribute,.hljs-theme-light .hljs-literal,.hljs-theme-light .hljs-meta,.hljs-theme-light .hljs-number,.hljs-theme-light .hljs-operator,.hljs-theme-light .hljs-selector-attr,.hljs-theme-light .hljs-selector-class,.hljs-theme-light .hljs-selector-id,.hljs-theme-light .hljs-variable{color:#005cc5}.hljs-theme-light .hljs-meta .hljs-string,.hljs-theme-light .hljs-regexp,.hljs-theme-light .hljs-string{color:#032f62}.hljs-theme-light .hljs-built_in,.hljs-theme-light .hljs-symbol{color:#e36209}.hljs-theme-light .hljs-code,.hljs-theme-light .hljs-comment,.hljs-theme-light .hljs-formula{color:#6a737d}.hljs-theme-light .hljs-name,.hljs-theme-light .hljs-quote,.hljs-theme-light .hljs-selector-pseudo,.hljs-theme-light .hljs-selector-tag{color:#22863a}.hljs-theme-light .hljs-subst{color:#24292e}.hljs-theme-light .hljs-section{color:#005cc5;font-weight:700}.hljs-theme-light .hljs-bullet{color:#735c0f}.hljs-theme-light .hljs-emphasis{color:#24292e;font-style:italic}.hljs-theme-light .hljs-strong{color:#24292e;font-weight:700}.hljs-theme-light .hljs-addition{background-color:#f0fff4;color:#22863a}.hljs-theme-light .hljs-deletion{background-color:#ffeef0;color:#b31d28}.hljs-theme-light .hljs-char.escape_,.hljs-theme-light .hljs-link,.hljs-theme-light .hljs-params,.hljs-theme-light .hljs-property,.hljs-theme-light .hljs-punctuation,.hljs-theme-light .hljs-tag{background-color:transparent;color:inherit}.article{padding-bottom:var(--lg)}.article .listingblock{position:relative}.article .listingblock .btn-copy{border-radius:var(--border-radius);position:absolute;right:0;top:0;visibility:hidden}.article .listingblock:hover .btn-copy{visibility:visible}.article .listingblock.nopadding .btn-copy,.article .listingblock.nopadding pre code{padding:0}.article pre code{border-radius:var(--border-radius);display:block;max-width:90vw;overflow-x:auto;padding:1em}.article img{max-width:100%}.article aside{background:var(--aluminum-1);border:1px solid var(--aluminum-3);border-radius:2px;color:var(--steel-1);font-size:14px;padding:var(--md) var(--lg) var(--sm)}.article aside:before{background-image:url(../images/icons/note.svg);background-position:left 40%;background-repeat:no-repeat;background-size:18px;color:var(--steel-5);content:"Note";display:block;font-size:16px;font-weight:var(--weight-medium);opacity:.7;padding-left:20px}.article code.primary{color:#4e4e67}.article code.secondary{color:#ab49d6}.article code.light{color:#4f4f68}.anchor,.heading-link{color:inherit;float:right;font-size:.8em;margin-left:.2em;margin-top:.25em;visibility:hidden}.anchor:focus,.contract .anchor,.contract .heading-link,.heading-link:focus,h1:hover .anchor,h1:hover .heading-link,h2:hover .anchor,h2:hover .heading-link,h3:hover .anchor,h3:hover .heading-link,h4:hover .anchor,h4:hover .heading-link,h5:hover .anchor,h5:hover .heading-link,h6:hover .anchor,h6:hover .heading-link{visibility:visible}.anchor{padding:0 .3em;text-decoration:none}.anchor:before{content:"#"}.contract h3 code{background-color:transparent;color:inherit;padding:0}.contract-index{word-wrap:break-word;background-color:#f8f8fa;border-radius:var(--border-radius);margin-bottom:1em;margin-top:1em;max-width:90vw;padding:1.5rem}.contract-index ul{list-style:none;margin:0;padding:0}.contract-index ul a{color:inherit;text-decoration:none}.contract-index ul a:hover{text-decoration:underline}.contract-index ul a code,.contract-index ul a pre{background-color:transparent;color:inherit;line-height:1rem;padding:0}.contract-index .title{color:var(--core-violet-2);font-family:var(--heading);font-size:.9em;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.contract-index .ulist{border-top:1px solid var(--aluminum-4);margin-top:1.2em;padding-top:.25em}.contract-index .ulist>.title{color:var(--color-text);float:right;font-size:.8em;margin-top:.8em}.contract-subindex-inherited{opacity:.7}.contract-item{word-wrap:break-word;border:1px solid #ddd;border-radius:var(--border-radius);margin-bottom:1em;margin-top:1em;max-width:90vw;padding:0}.contract-item>*{margin-left:1em;margin-right:1em}.contract-item h4{align-content:flex-start;display:flex;flex-direction:row;font-size:inherit;justify-content:space-between;margin:1em 1em 2em;padding:0;position:relative}.contract-item h4 code{background-color:transparent;color:inherit;flex-grow:1;font-weight:var(--weight-normal);padding:0}.contract-item h4 code .contract-item-name{font-weight:var(--weight-medium)}.contract-item h4 .anchor{font-size:var(--md);font-weight:400;margin-top:0;order:10}.contract-item h4 .item-kind{font-family:var(--sans-serif);font-size:var(--md);font-weight:300;opacity:.8}.contract-item h4:before{background-color:#f9f9fa;border-bottom:1px solid #ddd;border-top-left-radius:var(--border-radius);border-top-right-radius:var(--border-radius);box-sizing:content-box;content:"";display:block;height:100%;margin:-1em;padding:1em;position:absolute;width:100%;z-index:-10}.contract-item .admonitionblock{font-family:var(--sans-serif);margin-left:1em;margin-right:1em}.article-navigation{display:flex}.article-navigation div{color:var(--core-violet-4);display:block;flex-grow:1;font-weight:var(--weight-bold);margin-bottom:.5rem;margin-top:1.5rem}.article-navigation div a{font-size:var(--md);text-decoration:none;text-transform:uppercase}.article-navigation div.btn-next{text-align:right}.article-banner{background-color:#fef08a;border:1px solid #fde047;border-radius:var(--border-radius);margin:1em -10px;padding:10px}.floating-banner{position:sticky;top:10px;z-index:100}.alert p{color:inherit;font-family:var(--heading);font-size:1rem}.admonitionblock,.alert{background-color:#fff;border:1px solid #ddd;border-left-width:6px;border-radius:var(--border-radius);color:var(--color-text-light);font-family:var(--sans-serif);font-size:.9rem;font-weight:var(--weight-normal);line-height:1.5;margin:1.5rem 0;max-width:90vw;overflow-wrap:break-word;padding:1rem .9rem;text-align:center}.admonitionblock table,.alert table{margin:0;padding:0}.admonitionblock table td,.admonitionblock table th,.alert table td,.alert table th{word-wrap:break-word;margin:0;padding:0}.admonitionblock .content,.alert .content{word-wrap:break-word;font-size:1rem;max-width:82vw;padding-left:.25rem;text-align:left}.admonitionblock:before,.alert:before{display:block;font-size:.9em;font-weight:var(--weight-bold);margin-bottom:.5rem;padding-left:.25rem;text-align:left;text-transform:uppercase}.admonitionblock.note,.alert.note{border-left-color:var(--core-violet-4)}.admonitionblock.note:before,.alert.note:before{color:var(--core-violet-4);content:"note"}.admonitionblock.tip,.alert.tip{border-left-color:var(--teal-3)}.admonitionblock.tip:before,.alert.tip:before{color:var(--teal-3);content:"tip"}.admonitionblock.caution,.admonitionblock.important,.admonitionblock.warning,.alert.caution,.alert.important,.alert.warning{border-left-color:#f79f1f}.admonitionblock.caution:before,.admonitionblock.important:before,.admonitionblock.warning:before,.alert.caution:before,.alert.important:before,.alert.warning:before{background-image:url(../images/icons/warning.svg);background-origin:border-box;background-position:0;background-repeat:no-repeat;color:#f79f1f;margin-left:.4em;padding-left:1.5em}.admonitionblock.warning:before,.alert.warning:before{content:"warning"}.admonitionblock.caution:before,.alert.caution:before{content:"caution"}.admonitionblock.important:before,.alert.important:before{content:"important"}.toc-sidebar{font-size:.8em;opacity:.8}.toc-menu{border-width:0 0 0 .25rem}.toc-menu ul{line-height:1.2;list-style:none;margin:0;padding:0}.toc-menu .subheading-list{margin-left:.5em}.toc-title{color:var(--aluminum-5);font-family:var(--heading);font-size:inherit;letter-spacing:.05em;margin:0;padding:0;text-transform:uppercase}.toc .toc-menu li,.toc-title{font-weight:var(--weight-bold)}.toc .toc-menu li{font-family:var(--sans-serif);font-size:var(--md);margin:.5rem 0 0;overflow:hidden;padding-bottom:var(--xs);padding-right:var(--sm);padding-top:var(--xs);text-overflow:ellipsis}.toc .toc-menu li.subheading-item{font-weight:var(--weight-normal);margin:.25rem 0 0}.toc a{color:inherit;text-decoration:none}.toc a:hover{color:var(--core-violet-2)}.toc .toc-menu li a.toc-active{color:var(--core-violet-4)}.hardhat-truffle-toggle{background:url(../images/toggle-active.svg) 50%/contain no-repeat;border:0;height:30px;margin:0;outline:0;overflow:hidden;padding:0;white-space:nowrap;width:120px}.hardhat-truffle-toggle:active{background-image:url(../images/toggle-active.svg)!important}.hardhat-truffle-toggle span{opacity:0;pointer-events:none}.preference-truffle .hardhat{display:none}.preference-truffle .hardhat-truffle-toggle{background-image:url(../images/toggle-preference-truffle.svg)}.preference-hardhat .truffle{display:none}.preference-hardhat .hardhat-truffle-toggle{background-image:url(../images/toggle-preference-hardhat.svg)}
/* !important is essential in this context to take precedent over default styles */div#hs-banner-parent div#hs-eu-cookie-confirmation div#hs-eu-cookie-confirmation-inner{padding:var(--u2)!important}div#hs-banner-parent div#hs-eu-cookie-confirmation div#hs-eu-cookie-confirmation-inner div#hs-eu-policy-wording{margin-bottom:var(--u)!important;margin-right:0!important}div#hs-banner-parent div#hs-eu-cookie-confirmation div#hs-eu-cookie-confirmation-inner div#hs-eu-policy-wording p,div#hs-banner-parent div#hs-eu-cookie-confirmation div#hs-eu-cookie-confirmation-inner p#hs-eu-cookie-disclaimer{line-height:16px!important;margin:0!important;max-width:100%!important}div#hs-banner-parent div#hs-eu-cookie-confirmation div#hs-eu-cookie-confirmation-inner div#hs-eu-cookie-confirmation-buttons-area{margin-right:0!important;margin-top:var(--u)!important}div#hs-banner-parent div#hs-eu-cookie-confirmation div#hs-eu-cookie-confirmation-inner button#hs-eu-confirmation-button,div#hs-banner-parent div#hs-eu-cookie-confirmation div#hs-eu-cookie-confirmation-inner button#hs-eu-decline-button{height:30px!important}@media (min-width:751px){div#hs-banner-parent div#hs-eu-cookie-confirmation div#hs-eu-cookie-confirmation-inner p#hs-eu-cookie-disclaimer{margin-right:0!important}}
/*# sourceMappingURL=index.css.map */