{
  "_format": "hh-sol-artifact-1",
  "contractName": "MeterUser",
  "sourceName": "contracts/test/ResourceMetering.t.sol",
  "abi": [
    {
      "inputs": [],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint8",
          "name": "version",
          "type": "uint8"
        }
      ],
      "name": "Initialized",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "initialize",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "innerConfig",
      "outputs": [
        {
          "internalType": "uint32",
          "name": "maxResourceLimit",
          "type": "uint32"
        },
        {
          "internalType": "uint8",
          "name": "elasticityMultiplier",
          "type": "uint8"
        },
        {
          "internalType": "uint8",
          "name": "baseFeeMaxChangeDenominator",
          "type": "uint8"
        },
        {
          "internalType": "uint32",
          "name": "minimumBaseFee",
          "type": "uint32"
        },
        {
          "internalType": "uint32",
          "name": "systemTxMaxGas",
          "type": "uint32"
        },
        {
          "internalType": "uint128",
          "name": "maximumBaseFee",
          "type": "uint128"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "params",
      "outputs": [
        {
          "internalType": "uint128",
          "name": "prevBaseFee",
          "type": "uint128"
        },
        {
          "internalType": "uint64",
          "name": "prevBoughtGas",
          "type": "uint64"
        },
        {
          "internalType": "uint64",
          "name": "prevBlockNum",
          "type": "uint64"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "resourceConfig",
      "outputs": [
        {
          "components": [
            {
              "internalType": "uint32",
              "name": "maxResourceLimit",
              "type": "uint32"
            },
            {
              "internalType": "uint8",
              "name": "elasticityMultiplier",
              "type": "uint8"
            },
            {
              "internalType": "uint8",
              "name": "baseFeeMaxChangeDenominator",
              "type": "uint8"
            },
            {
              "internalType": "uint32",
              "name": "minimumBaseFee",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "systemTxMaxGas",
              "type": "uint32"
            },
            {
              "internalType": "uint128",
              "name": "maximumBaseFee",
              "type": "uint128"
            }
          ],
          "internalType": "struct ResourceMetering.ResourceConfig",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint128",
          "name": "_prevBaseFee",
          "type": "uint128"
        },
        {
          "internalType": "uint64",
          "name": "_prevBoughtGas",
          "type": "uint64"
        },
        {
          "internalType": "uint64",
          "name": "_prevBlockNum",
          "type": "uint64"
        }
      ],
      "name": "set",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "uint32",
              "name": "maxResourceLimit",
              "type": "uint32"
            },
            {
              "internalType": "uint8",
              "name": "elasticityMultiplier",
              "type": "uint8"
            },
            {
              "internalType": "uint8",
              "name": "baseFeeMaxChangeDenominator",
              "type": "uint8"
            },
            {
              "internalType": "uint32",
              "name": "minimumBaseFee",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "systemTxMaxGas",
              "type": "uint32"
            },
            {
              "internalType": "uint128",
              "name": "maximumBaseFee",
              "type": "uint128"
            }
          ],
          "internalType": "struct ResourceMetering.ResourceConfig",
          "name": "newConfig",
          "type": "tuple"
        }
      ],
      "name": "setParams",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint64",
          "name": "_amount",
          "type": "uint64"
        }
      ],
      "name": "use",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x60806040523480156200001157600080fd5b506200001c620000f8565b620000316200022a60201b6200073a1760201c565b805160328054602084015160408501516060860151608087015160a09097015163ffffffff96871664ffffffffff199095169490941764010000000060ff948516021764ffffffffff60281b191665010000000000939092169290920263ffffffff60301b19161766010000000000009185169190910217600160501b600160f01b0319166a01000000000000000000009390941692909202600160701b600160f01b03191692909217600160701b6001600160801b039092169190910217905562000353565b600054610100900460ff1615808015620001195750600054600160ff909116105b806200014957506200013630620002a160201b620007ba1760201c565b15801562000149575060005460ff166001145b620001b25760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff191660011790558015620001d6576000805461ff0019166101001790555b620001e0620002b0565b801562000227576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a0810191909152506040805160c0810182526301312d008152600a6020820152600891810191909152633b9aca006060820152620f424060808201526001600160801b0360a082015290565b6001600160a01b03163b151590565b600054610100900460ff166200031d5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401620001a9565b60408051606081018252633b9aca0080825260006020830152436001600160401b031691909201819052600160c01b0217600155565b6117c880620003636000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063b4b64fbb1161005b578063b4b64fbb1461021c578063b77429a01461022f578063cc731b0214610387578063cff0ab96146103ff57600080fd5b80636f1696061461008257806381171ef81461014e5780638129fc1c14610214575b600080fd5b61014c61009036600461133c565b604080516060810182526fffffffffffffffffffffffffffffffff9490941680855267ffffffffffffffff93841660208601819052929093169301839052600180547fffffffffffffffff000000000000000000000000000000000000000000000000169092177001000000000000000000000000000000009091021777ffffffffffffffffffffffffffffffffffffffffffffffff167801000000000000000000000000000000000000000000000000909202919091179055565b005b6032546101bd9063ffffffff8082169160ff640100000000820481169265010000000000830490911691660100000000000081048216916a0100000000000000000000820416906fffffffffffffffffffffffffffffffff6e0100000000000000000000000000009091041686565b6040805163ffffffff978816815260ff96871660208201529490951694840194909452908416606083015290921660808301526fffffffffffffffffffffffffffffffff1660a082015260c0015b60405180910390f35b61014c610493565b61014c61022a36600461137f565b61062a565b61014c61023d3660046113bf565b805160328054602084015160408501516060860151608087015160a09097015163ffffffff9687167fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000009095169490941764010000000060ff94851602177fffffffffffffffffffffffffffffffffffffffffffff0000000000ffffffffff166501000000000093909216929092027fffffffffffffffffffffffffffffffffffffffffffff00000000ffffffffffff1617660100000000000091851691909102177fffff0000000000000000000000000000000000000000ffffffffffffffffffff166a010000000000000000000093909416929092027fffff00000000000000000000000000000000ffffffffffffffffffffffffffff16929092176e0100000000000000000000000000006fffffffffffffffffffffffffffffffff90921691909102179055565b61038f61063f565b60405161020b9190600060c08201905063ffffffff80845116835260ff602085015116602084015260ff6040850151166040840152806060850151166060840152806080850151166080840152506fffffffffffffffffffffffffffffffff60a08401511660a083015292915050565b60015461045a906fffffffffffffffffffffffffffffffff81169067ffffffffffffffff7001000000000000000000000000000000008204811691780100000000000000000000000000000000000000000000000090041683565b604080516fffffffffffffffffffffffffffffffff909416845267ffffffffffffffff928316602085015291169082015260600161020b565b600054610100900460ff16158080156104b35750600054600160ff909116105b806104cd5750303b1580156104cd575060005460ff166001145b61055e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156105bc57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6105c46107d6565b801561062757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50565b8060005a905061063a82826108b9565b505050565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a08101919091526107356040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a0810191909152506040805160c08101825260325463ffffffff8082168352640100000000820460ff9081166020850152650100000000008304169383019390935266010000000000008104831660608301526a0100000000000000000000810490921660808201526e0100000000000000000000000000009091046fffffffffffffffffffffffffffffffff1660a082015290565b905090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a0810191909152506040805160c0810182526301312d008152600a6020820152600891810191909152633b9aca006060820152620f424060808201526fffffffffffffffffffffffffffffffff60a082015290565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b600054610100900460ff1661086d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610555565b60408051606081018252633b9aca00808252600060208301524367ffffffffffffffff169190920181905278010000000000000000000000000000000000000000000000000217600155565b6001546000906108ef907801000000000000000000000000000000000000000000000000900467ffffffffffffffff16436114b4565b905060006109b76040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a0810191909152506040805160c08101825260325463ffffffff8082168352640100000000820460ff9081166020850152650100000000008304169383019390935266010000000000008104831660608301526a0100000000000000000000810490921660808201526e0100000000000000000000000000009091046fffffffffffffffffffffffffffffffff1660a082015290565b90506000816020015160ff16826000015163ffffffff166109d891906114fa565b90508215610b0f57600154600090610a0f908390700100000000000000000000000000000000900467ffffffffffffffff16611562565b90506000836040015160ff1683610a2691906115d6565b600154610a469084906fffffffffffffffffffffffffffffffff166115d6565b610a5091906114fa565b600154909150600090610aa190610a7a9084906fffffffffffffffffffffffffffffffff16611692565b866060015163ffffffff168760a001516fffffffffffffffffffffffffffffffff16610ca2565b90506001861115610ad057610acd610a7a82876040015160ff1660018a610ac891906114b4565b610cbf565b90505b6fffffffffffffffffffffffffffffffff16780100000000000000000000000000000000000000000000000067ffffffffffffffff4316021760015550505b60018054869190601090610b42908490700100000000000000000000000000000000900467ffffffffffffffff16611706565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550816000015163ffffffff16600160000160109054906101000a900467ffffffffffffffff1667ffffffffffffffff161315610c25576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603e60248201527f5265736f757263654d65746572696e673a2063616e6e6f7420627579206d6f7260448201527f6520676173207468616e20617661696c61626c6520676173206c696d697400006064820152608401610555565b600154600090610c51906fffffffffffffffffffffffffffffffff1667ffffffffffffffff8816611732565b90506000610c6348633b9aca00610d14565b610c6d908361176f565b905060005a610c7c90886114b4565b905080821115610c9857610c98610c9382846114b4565b610d2d565b5050505050505050565b6000610cb7610cb18585610d56565b83610d66565b949350505050565b6000670de0b6b3a7640000610d00610cd785836114fa565b610ce990670de0b6b3a7640000611562565b610cfb85670de0b6b3a76400006115d6565b610d75565b610d0a90866115d6565b610cb791906114fa565b600081831015610d245781610d26565b825b9392505050565b6000805a90505b825a610d4090836114b4565b101561063a57610d4f82611783565b9150610d34565b600081831215610d245781610d26565b6000818312610d245781610d26565b6000610d26670de0b6b3a764000083610d8d86610da6565b610d9791906115d6565b610da191906114fa565b610fea565b6000808213610e11576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f554e444546494e454400000000000000000000000000000000000000000000006044820152606401610555565b60006060610e1e84611229565b03609f8181039490941b90931c6c465772b2bbbb5f824b15207a3081018102606090811d6d0388eaa27412d5aca026815d636e018202811d6d0df99ac502031bf953eff472fdcc018202811d6d13cdffb29d51d99322bdff5f2211018202811d6d0a0f742023def783a307a986912e018202811d6d01920d8043ca89b5239253284e42018202811d6c0b7a86d7375468fac667a0a527016c29508e458543d8aa4df2abee7883018302821d6d0139601a2efabe717e604cbb4894018302821d6d02247f7a7b6594320649aa03aba1018302821d7fffffffffffffffffffffffffffffffffffffff73c0c716a594e00d54e3c4cbc9018302821d7ffffffffffffffffffffffffffffffffffffffdc7b88c420e53a9890533129f6f01830290911d7fffffffffffffffffffffffffffffffffffffff465fda27eb4d63ded474e5f832019091027ffffffffffffffff5f6af8f7b3396644f18e157960000000000000000000000000105711340daa0d5f769dba1915cef59f0815a5506027d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b393909302929092017d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642840160ae1d92915050565b60007ffffffffffffffffffffffffffffffffffffffffffffffffdb731c958f34d94c1821361101b57506000919050565b680755bf798b4a1bf1e5821261108d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f4558505f4f564552464c4f5700000000000000000000000000000000000000006044820152606401610555565b6503782dace9d9604e83901b059150600060606bb17217f7d1cf79abc9e3b39884821b056b80000000000000000000000001901d6bb17217f7d1cf79abc9e3b39881029093037fffffffffffffffffffffffffffffffffffffffdbf3ccf1604d263450f02a550481018102606090811d6d0277594991cfc85f6e2461837cd9018202811d7fffffffffffffffffffffffffffffffffffffe5adedaa1cb095af9e4da10e363c018202811d6db1bbb201f443cf962f1a1d3db4a5018202811d7ffffffffffffffffffffffffffffffffffffd38dc772608b0ae56cce01296c0eb018202811d6e05180bb14799ab47a8a8cb2a527d57016d02d16720577bd19bf614176fe9ea6c10fe68e7fd37d0007b713f765084018402831d9081019084017ffffffffffffffffffffffffffffffffffffffe2c69812cf03b0763fd454a8f7e010290911d6e0587f503bb6ea29d25fcb7401964500190910279d835ebba824c98fb31b83b2ca45c000000000000000000000000010574029d9dc38563c32e5c2f6dc192ee70ef65f9978af30260c3939093039290921c92915050565b6000808211611294576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f554e444546494e454400000000000000000000000000000000000000000000006044820152606401610555565b5060016fffffffffffffffffffffffffffffffff821160071b82811c67ffffffffffffffff1060061b1782811c63ffffffff1060051b1782811c61ffff1060041b1782811c60ff10600390811b90911783811c600f1060021b1783811c909110821b1791821c111790565b80356fffffffffffffffffffffffffffffffff8116811461131f57600080fd5b919050565b803567ffffffffffffffff8116811461131f57600080fd5b60008060006060848603121561135157600080fd5b61135a846112ff565b925061136860208501611324565b915061137660408501611324565b90509250925092565b60006020828403121561139157600080fd5b610d2682611324565b803563ffffffff8116811461131f57600080fd5b803560ff8116811461131f57600080fd5b600060c082840312156113d157600080fd5b60405160c0810181811067ffffffffffffffff8211171561141b577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040526114278361139a565b8152611435602084016113ae565b6020820152611446604084016113ae565b60408201526114576060840161139a565b60608201526114686080840161139a565b608082015261147960a084016112ff565b60a08201529392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000828210156114c6576114c6611485565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082611509576115096114cb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f80000000000000000000000000000000000000000000000000000000000000008314161561155d5761155d611485565b500590565b6000808312837f80000000000000000000000000000000000000000000000000000000000000000183128115161561159c5761159c611485565b837f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0183138116156115d0576115d0611485565b50500390565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60008413600084138583048511828216161561161757611617611485565b7f8000000000000000000000000000000000000000000000000000000000000000600087128682058812818416161561165257611652611485565b6000871292508782058712848416161561166e5761166e611485565b8785058712818416161561168457611684611485565b505050929093029392505050565b6000808212827f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038413811516156116cc576116cc611485565b827f800000000000000000000000000000000000000000000000000000000000000003841281161561170057611700611485565b50500190565b600067ffffffffffffffff80831681851680830382111561172957611729611485565b01949350505050565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561176a5761176a611485565b500290565b60008261177e5761177e6114cb565b500490565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036117b4576117b4611485565b506001019056fea164736f6c634300080f000a",
  "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061007d5760003560e01c8063b4b64fbb1161005b578063b4b64fbb1461021c578063b77429a01461022f578063cc731b0214610387578063cff0ab96146103ff57600080fd5b80636f1696061461008257806381171ef81461014e5780638129fc1c14610214575b600080fd5b61014c61009036600461133c565b604080516060810182526fffffffffffffffffffffffffffffffff9490941680855267ffffffffffffffff93841660208601819052929093169301839052600180547fffffffffffffffff000000000000000000000000000000000000000000000000169092177001000000000000000000000000000000009091021777ffffffffffffffffffffffffffffffffffffffffffffffff167801000000000000000000000000000000000000000000000000909202919091179055565b005b6032546101bd9063ffffffff8082169160ff640100000000820481169265010000000000830490911691660100000000000081048216916a0100000000000000000000820416906fffffffffffffffffffffffffffffffff6e0100000000000000000000000000009091041686565b6040805163ffffffff978816815260ff96871660208201529490951694840194909452908416606083015290921660808301526fffffffffffffffffffffffffffffffff1660a082015260c0015b60405180910390f35b61014c610493565b61014c61022a36600461137f565b61062a565b61014c61023d3660046113bf565b805160328054602084015160408501516060860151608087015160a09097015163ffffffff9687167fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000009095169490941764010000000060ff94851602177fffffffffffffffffffffffffffffffffffffffffffff0000000000ffffffffff166501000000000093909216929092027fffffffffffffffffffffffffffffffffffffffffffff00000000ffffffffffff1617660100000000000091851691909102177fffff0000000000000000000000000000000000000000ffffffffffffffffffff166a010000000000000000000093909416929092027fffff00000000000000000000000000000000ffffffffffffffffffffffffffff16929092176e0100000000000000000000000000006fffffffffffffffffffffffffffffffff90921691909102179055565b61038f61063f565b60405161020b9190600060c08201905063ffffffff80845116835260ff602085015116602084015260ff6040850151166040840152806060850151166060840152806080850151166080840152506fffffffffffffffffffffffffffffffff60a08401511660a083015292915050565b60015461045a906fffffffffffffffffffffffffffffffff81169067ffffffffffffffff7001000000000000000000000000000000008204811691780100000000000000000000000000000000000000000000000090041683565b604080516fffffffffffffffffffffffffffffffff909416845267ffffffffffffffff928316602085015291169082015260600161020b565b600054610100900460ff16158080156104b35750600054600160ff909116105b806104cd5750303b1580156104cd575060005460ff166001145b61055e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156105bc57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6105c46107d6565b801561062757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50565b8060005a905061063a82826108b9565b505050565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a08101919091526107356040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a0810191909152506040805160c08101825260325463ffffffff8082168352640100000000820460ff9081166020850152650100000000008304169383019390935266010000000000008104831660608301526a0100000000000000000000810490921660808201526e0100000000000000000000000000009091046fffffffffffffffffffffffffffffffff1660a082015290565b905090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a0810191909152506040805160c0810182526301312d008152600a6020820152600891810191909152633b9aca006060820152620f424060808201526fffffffffffffffffffffffffffffffff60a082015290565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b600054610100900460ff1661086d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610555565b60408051606081018252633b9aca00808252600060208301524367ffffffffffffffff169190920181905278010000000000000000000000000000000000000000000000000217600155565b6001546000906108ef907801000000000000000000000000000000000000000000000000900467ffffffffffffffff16436114b4565b905060006109b76040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a0810191909152506040805160c08101825260325463ffffffff8082168352640100000000820460ff9081166020850152650100000000008304169383019390935266010000000000008104831660608301526a0100000000000000000000810490921660808201526e0100000000000000000000000000009091046fffffffffffffffffffffffffffffffff1660a082015290565b90506000816020015160ff16826000015163ffffffff166109d891906114fa565b90508215610b0f57600154600090610a0f908390700100000000000000000000000000000000900467ffffffffffffffff16611562565b90506000836040015160ff1683610a2691906115d6565b600154610a469084906fffffffffffffffffffffffffffffffff166115d6565b610a5091906114fa565b600154909150600090610aa190610a7a9084906fffffffffffffffffffffffffffffffff16611692565b866060015163ffffffff168760a001516fffffffffffffffffffffffffffffffff16610ca2565b90506001861115610ad057610acd610a7a82876040015160ff1660018a610ac891906114b4565b610cbf565b90505b6fffffffffffffffffffffffffffffffff16780100000000000000000000000000000000000000000000000067ffffffffffffffff4316021760015550505b60018054869190601090610b42908490700100000000000000000000000000000000900467ffffffffffffffff16611706565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550816000015163ffffffff16600160000160109054906101000a900467ffffffffffffffff1667ffffffffffffffff161315610c25576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603e60248201527f5265736f757263654d65746572696e673a2063616e6e6f7420627579206d6f7260448201527f6520676173207468616e20617661696c61626c6520676173206c696d697400006064820152608401610555565b600154600090610c51906fffffffffffffffffffffffffffffffff1667ffffffffffffffff8816611732565b90506000610c6348633b9aca00610d14565b610c6d908361176f565b905060005a610c7c90886114b4565b905080821115610c9857610c98610c9382846114b4565b610d2d565b5050505050505050565b6000610cb7610cb18585610d56565b83610d66565b949350505050565b6000670de0b6b3a7640000610d00610cd785836114fa565b610ce990670de0b6b3a7640000611562565b610cfb85670de0b6b3a76400006115d6565b610d75565b610d0a90866115d6565b610cb791906114fa565b600081831015610d245781610d26565b825b9392505050565b6000805a90505b825a610d4090836114b4565b101561063a57610d4f82611783565b9150610d34565b600081831215610d245781610d26565b6000818312610d245781610d26565b6000610d26670de0b6b3a764000083610d8d86610da6565b610d9791906115d6565b610da191906114fa565b610fea565b6000808213610e11576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f554e444546494e454400000000000000000000000000000000000000000000006044820152606401610555565b60006060610e1e84611229565b03609f8181039490941b90931c6c465772b2bbbb5f824b15207a3081018102606090811d6d0388eaa27412d5aca026815d636e018202811d6d0df99ac502031bf953eff472fdcc018202811d6d13cdffb29d51d99322bdff5f2211018202811d6d0a0f742023def783a307a986912e018202811d6d01920d8043ca89b5239253284e42018202811d6c0b7a86d7375468fac667a0a527016c29508e458543d8aa4df2abee7883018302821d6d0139601a2efabe717e604cbb4894018302821d6d02247f7a7b6594320649aa03aba1018302821d7fffffffffffffffffffffffffffffffffffffff73c0c716a594e00d54e3c4cbc9018302821d7ffffffffffffffffffffffffffffffffffffffdc7b88c420e53a9890533129f6f01830290911d7fffffffffffffffffffffffffffffffffffffff465fda27eb4d63ded474e5f832019091027ffffffffffffffff5f6af8f7b3396644f18e157960000000000000000000000000105711340daa0d5f769dba1915cef59f0815a5506027d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b393909302929092017d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642840160ae1d92915050565b60007ffffffffffffffffffffffffffffffffffffffffffffffffdb731c958f34d94c1821361101b57506000919050565b680755bf798b4a1bf1e5821261108d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f4558505f4f564552464c4f5700000000000000000000000000000000000000006044820152606401610555565b6503782dace9d9604e83901b059150600060606bb17217f7d1cf79abc9e3b39884821b056b80000000000000000000000001901d6bb17217f7d1cf79abc9e3b39881029093037fffffffffffffffffffffffffffffffffffffffdbf3ccf1604d263450f02a550481018102606090811d6d0277594991cfc85f6e2461837cd9018202811d7fffffffffffffffffffffffffffffffffffffe5adedaa1cb095af9e4da10e363c018202811d6db1bbb201f443cf962f1a1d3db4a5018202811d7ffffffffffffffffffffffffffffffffffffd38dc772608b0ae56cce01296c0eb018202811d6e05180bb14799ab47a8a8cb2a527d57016d02d16720577bd19bf614176fe9ea6c10fe68e7fd37d0007b713f765084018402831d9081019084017ffffffffffffffffffffffffffffffffffffffe2c69812cf03b0763fd454a8f7e010290911d6e0587f503bb6ea29d25fcb7401964500190910279d835ebba824c98fb31b83b2ca45c000000000000000000000000010574029d9dc38563c32e5c2f6dc192ee70ef65f9978af30260c3939093039290921c92915050565b6000808211611294576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f554e444546494e454400000000000000000000000000000000000000000000006044820152606401610555565b5060016fffffffffffffffffffffffffffffffff821160071b82811c67ffffffffffffffff1060061b1782811c63ffffffff1060051b1782811c61ffff1060041b1782811c60ff10600390811b90911783811c600f1060021b1783811c909110821b1791821c111790565b80356fffffffffffffffffffffffffffffffff8116811461131f57600080fd5b919050565b803567ffffffffffffffff8116811461131f57600080fd5b60008060006060848603121561135157600080fd5b61135a846112ff565b925061136860208501611324565b915061137660408501611324565b90509250925092565b60006020828403121561139157600080fd5b610d2682611324565b803563ffffffff8116811461131f57600080fd5b803560ff8116811461131f57600080fd5b600060c082840312156113d157600080fd5b60405160c0810181811067ffffffffffffffff8211171561141b577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040526114278361139a565b8152611435602084016113ae565b6020820152611446604084016113ae565b60408201526114576060840161139a565b60608201526114686080840161139a565b608082015261147960a084016112ff565b60a08201529392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000828210156114c6576114c6611485565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082611509576115096114cb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f80000000000000000000000000000000000000000000000000000000000000008314161561155d5761155d611485565b500590565b6000808312837f80000000000000000000000000000000000000000000000000000000000000000183128115161561159c5761159c611485565b837f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0183138116156115d0576115d0611485565b50500390565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60008413600084138583048511828216161561161757611617611485565b7f8000000000000000000000000000000000000000000000000000000000000000600087128682058812818416161561165257611652611485565b6000871292508782058712848416161561166e5761166e611485565b8785058712818416161561168457611684611485565b505050929093029392505050565b6000808212827f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038413811516156116cc576116cc611485565b827f800000000000000000000000000000000000000000000000000000000000000003841281161561170057611700611485565b50500190565b600067ffffffffffffffff80831681851680830382111561172957611729611485565b01949350505050565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561176a5761176a611485565b500290565b60008261177e5761177e6114cb565b500490565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036117b4576117b4611485565b506001019056fea164736f6c634300080f000a",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
