{
  "_format": "hh-sol-artifact-1",
  "contractName": "DVNDecompressor",
  "sourceName": "contracts/decompressor/DVNDecompressor.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "uint32",
          "name": "_vid",
          "type": "uint32"
        },
        {
          "components": [
            {
              "internalType": "uint16",
              "name": "idx",
              "type": "uint16"
            },
            {
              "internalType": "address",
              "name": "addr",
              "type": "address"
            }
          ],
          "internalType": "struct DVNParam[]",
          "name": "_dvns",
          "type": "tuple[]"
        },
        {
          "components": [
            {
              "internalType": "uint8",
              "name": "idx",
              "type": "uint8"
            },
            {
              "internalType": "address",
              "name": "addr",
              "type": "address"
            }
          ],
          "internalType": "struct TargetParam[]",
          "name": "_targets",
          "type": "tuple[]"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "IncorrectDictAccess",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "MAX_DICT_LEN",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "RESERVE_DICT_LEN",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "uint16",
              "name": "idx",
              "type": "uint16"
            },
            {
              "internalType": "address",
              "name": "addr",
              "type": "address"
            }
          ],
          "internalType": "struct DVNParam[]",
          "name": "_dvns",
          "type": "tuple[]"
        }
      ],
      "name": "addDVNs",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "uint8",
              "name": "idx",
              "type": "uint8"
            },
            {
              "internalType": "address",
              "name": "addr",
              "type": "address"
            }
          ],
          "internalType": "struct TargetParam[]",
          "name": "_targets",
          "type": "tuple[]"
        }
      ],
      "name": "addTargets",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "decompress",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "decompressed",
      "outputs": [
        {
          "internalType": "bytes",
          "name": "raw",
          "type": "bytes"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint16",
          "name": "index",
          "type": "uint16"
        }
      ],
      "name": "dvns",
      "outputs": [
        {
          "internalType": "address",
          "name": "dvn",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes",
          "name": "_encoded",
          "type": "bytes"
        }
      ],
      "name": "execute",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "begin",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "end",
          "type": "uint256"
        }
      ],
      "name": "getData",
      "outputs": [
        {
          "internalType": "bytes32[]",
          "name": "res",
          "type": "bytes32[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint16[]",
          "name": "_idx",
          "type": "uint16[]"
        }
      ],
      "name": "removeDVNs",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint8[]",
          "name": "_idx",
          "type": "uint8[]"
        }
      ],
      "name": "removeTargets",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint8",
          "name": "index",
          "type": "uint8"
        }
      ],
      "name": "targets",
      "outputs": [
        {
          "internalType": "address",
          "name": "target",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "vid",
      "outputs": [
        {
          "internalType": "uint32",
          "name": "",
          "type": "uint32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x60a06040523480156200001157600080fd5b5060405162001baf38038062001baf8339810160408190526200003491620002f2565b6200003f3362000137565b63ffffffff831660805260005b8251811015620000bb5760008382815181106200006d576200006d6200041b565b60209081029190910181015180820151905161ffff16600090815262100001909252604090912080546001600160a01b0319166001600160a01b03909216919091179055506001016200004c565b5060005b81518110156200012d576000828281518110620000e057620000e06200041b565b60209081029190910181015180820151905160ff16600090815262100002909252604090912080546001600160a01b0319166001600160a01b0390921691909117905550600101620000bf565b5050505062000431565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715620001c257620001c262000187565b60405290565b604051601f8201601f191681016001600160401b0381118282101715620001f357620001f362000187565b604052919050565b60006001600160401b0382111562000217576200021762000187565b5060051b60200190565b80516001600160a01b03811681146200023957600080fd5b919050565b600082601f8301126200025057600080fd5b81516020620002696200026383620001fb565b620001c8565b82815260069290921b840181019181810190868411156200028957600080fd5b8286015b84811015620002e75760408189031215620002a85760008081fd5b620002b26200019d565b815160ff81168114620002c55760008081fd5b8152620002d482860162000221565b818601528352918301916040016200028d565b509695505050505050565b6000806000606084860312156200030857600080fd5b835163ffffffff811681146200031d57600080fd5b602085810151919450906001600160401b03808211156200033d57600080fd5b818701915087601f8301126200035257600080fd5b8151620003636200026382620001fb565b81815260069190911b8301840190848101908a8311156200038357600080fd5b938501935b82851015620003e7576040858c031215620003a35760008081fd5b620003ad6200019d565b855161ffff81168114620003c15760008081fd5b8152620003d086880162000221565b818801528252604094909401939085019062000388565b60408a015190975094505050808311156200040157600080fd5b505062000411868287016200023e565b9150509250925092565b634e487b7160e01b600052603260045260246000fd5b60805161175b62000454600039600081816103350152610419015261175b6000f3fe6080604052600436106100f35760003560e01c8063701c06101161008a57806397a656141161005957806397a65614146102d6578063ac423ce1146102de578063cf34c76814610323578063f2fde38b1461036c57600080fd5b8063701c06101461020c578063715018a6146102765780637302478c1461028b5780638da5cb5b146102ab57600080fd5b8063422b45fc116100c6578063422b45fc146101855780634736d978146101a55780634e4fe306146101ca57806362a8fdcb146101f757600080fd5b806308b8a08b146100f857806309c5eabe1461011a578063269f12601461013a5780633bec591e1461015a575b600080fd5b34801561010457600080fd5b50610118610113366004611016565b61038c565b005b34801561012657600080fd5b506101186101353660046110b3565b610407565b34801561014657600080fd5b5061011861015536600461115b565b6104e7565b34801561016657600080fd5b5061016f61059b565b60405161017c9190611279565b60405180910390f35b34801561019157600080fd5b506101186101a0366004611293565b6105b8565b3480156101b157600080fd5b506101bc6210000081565b60405190815260200161017c565b3480156101d657600080fd5b506101ea6101e5366004611320565b610630565b60405161017c9190611342565b34801561020357600080fd5b506101bc600281565b34801561021857600080fd5b50610251610227366004611386565b621000016020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161017c565b34801561028257600080fd5b50610118610772565b34801561029757600080fd5b506101186102a63660046113a1565b610786565b3480156102b757600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff16610251565b610118610839565b3480156102ea57600080fd5b506102516102f936600461145b565b621000026020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b34801561032f57600080fd5b506103577f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff909116815260200161017c565b34801561037857600080fd5b50610118610387366004611476565b610849565b610394610900565b60005b8151811015610403576210000260008383815181106103b8576103b8611491565b60209081029190910181015160ff16825281019190915260400160002080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055600101610397565b5050565b61040f610900565b60008061044184847f000000000000000000000000000000000000000000000000000000000000000062100002610981565b61ffff82166000908152621000016020526040908190205490517fb143044b00000000000000000000000000000000000000000000000000000000815292945090925073ffffffffffffffffffffffffffffffffffffffff169063b143044b906104af9084906004016114c0565b600060405180830381600087803b1580156104c957600080fd5b505af11580156104dd573d6000803e3d6000fd5b5050505050505050565b6104ef610900565b60005b81518110156104035781818151811061050d5761050d611491565b60200260200101516020015162100001600084848151811061053157610531611491565b6020908102919091018101515161ffff16825281019190915260400160002080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff929092169190911790556001016104f2565b60606105b36105ae3660048160006115a3565b610d01565b905090565b6105c0610900565b60005b8151811015610403576210000160008383815181106105e4576105e4611491565b60209081029190910181015161ffff16825281019190915260400160002080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556001016105c3565b60608260028110806106455750621000008110155b15610684576040517f50695b8f000000000000000000000000000000000000000000000000000000008152600481018290526024015b60405180910390fd5b8260028110806106975750621000008110155b156106d1576040517f50695b8f0000000000000000000000000000000000000000000000000000000081526004810182905260240161067b565b8385101561076a5784840367ffffffffffffffff8111156106f4576106f4610f35565b60405190808252806020026020018201604052801561071d578160200160208202803683370190505b509250845b848110156107685760018162100000811061073f5761073f611491565b0154848783038151811061075557610755611491565b6020908102919091010152600101610722565b505b505092915050565b61077a610900565b6107846000610e9e565b565b61078e610900565b60005b8151811015610403578181815181106107ac576107ac611491565b6020026020010151602001516210000260008484815181106107d0576107d0611491565b6020908102919091018101515160ff16825281019190915260400160002080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055600101610791565b61078461084461059b565b610f13565b610851610900565b73ffffffffffffffffffffffffffffffffffffffff81166108f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161067b565b6108fd81610e9e565b50565b60005473ffffffffffffffffffffffffffffffffffffffff163314610784576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161067b565b60006060818681876109946002836115cd565b926109a1939291906115a3565b6109aa9161160d565b60f01c92506109ba6002826115cd565b905060008782886109cc6001836115cd565b926109d9939291906115a3565b6109e291611653565b60f81c90506109f26001836115cd565b91508060ff1667ffffffffffffffff811115610a1057610a10610f35565b604051908082528060200260200182016040528015610a6b57816020015b6040805160a0810182526000808252602082018190526060928201839052828201526080810191909152815260200190600190039081610a2e5790505b50925060005b8160ff16811015610cf557600089848a610a8c6001836115cd565b92610a99939291906115a3565b610aa291611653565b60f81c9050610ab26001856115cd565b935060008a858b610ac46010836115cd565b92610ad1939291906115a3565b610ada91611699565b60801c9050610aea6010866115cd565b945060008b868c610afc6002836115cd565b92610b09939291906115a3565b610b129161160d565b60f01c9050610b226002876115cd565b955060008c878d610b3761ffff8616836115cd565b92610b44939291906115a3565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929350610b8a9250505061ffff8316886115cd565b965060008d888e610b9c6008836115cd565b92610ba9939291906115a3565b610bb2916116df565b60c01c9050610bc26008896115cd565b975060008e898f610bdd67ffffffffffffffff8616836115cd565b92610bea939291906115a3565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929350610c369250505067ffffffffffffffff83168a6115cd565b98506040518060a001604052808e63ffffffff1681526020018d60008960ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001866fffffffffffffffffffffffffffffffff168152602001848152508a8881518110610cd757610cd7611491565b60200260200101819052505050505050508080600101915050610a71565b50505094509492505050565b60405160208101838301845b81811015610e6c57803560008160fe1c60008114610d425760018114610d5d5760028114610db85760038114610dcc57610ddc565b60018360001a01803688379590950194505050600101610d0d565b60018360001a601f16017f2000000000000000000000000000000000000000000000000000000000000000841615610d9c576000875280602003870196505b8060018601883795860195939093016001019250610d0d915050565b8260041b60f41c9150600284019350610ddc565b8260041b60ec1c91506003840193505b506000818015610dfa5760018114610e025782600101549150610e06565b339150610e06565b3091505b508260021b60fe1c60008114610e375760018114610e455760028114610e56578160081b8752601f87019650610e63565b818752602087019650610e63565b8160601b8752601487019650610e63565b8160e01b87526004870196505b50505050610d0d565b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082820301825260405292915050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600080825160208401305af43d6000803e8015610f2f573d6000f35b503d6000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715610f8757610f87610f35565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715610fd457610fd4610f35565b604052919050565b600067ffffffffffffffff821115610ff657610ff6610f35565b5060051b60200190565b803560ff8116811461101157600080fd5b919050565b6000602080838503121561102957600080fd5b823567ffffffffffffffff81111561104057600080fd5b8301601f8101851361105157600080fd5b803561106461105f82610fdc565b610f8d565b81815260059190911b8201830190838101908783111561108357600080fd5b928401925b828410156110a85761109984611000565b82529284019290840190611088565b979650505050505050565b600080602083850312156110c657600080fd5b823567ffffffffffffffff808211156110de57600080fd5b818501915085601f8301126110f257600080fd5b81358181111561110157600080fd5b86602082850101111561111357600080fd5b60209290920196919550909350505050565b803561ffff8116811461101157600080fd5b803573ffffffffffffffffffffffffffffffffffffffff8116811461101157600080fd5b6000602080838503121561116e57600080fd5b823567ffffffffffffffff81111561118557600080fd5b8301601f8101851361119657600080fd5b80356111a461105f82610fdc565b81815260069190911b820183019083810190878311156111c357600080fd5b928401925b828410156110a857604084890312156111e15760008081fd5b6111e9610f64565b6111f285611125565b81526111ff868601611137565b81870152825260409390930192908401906111c8565b6000815180845260005b8181101561123b5760208185018101518683018201520161121f565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b60208152600061128c6020830184611215565b9392505050565b600060208083850312156112a657600080fd5b823567ffffffffffffffff8111156112bd57600080fd5b8301601f810185136112ce57600080fd5b80356112dc61105f82610fdc565b81815260059190911b820183019083810190878311156112fb57600080fd5b928401925b828410156110a85761131184611125565b82529284019290840190611300565b6000806040838503121561133357600080fd5b50508035926020909101359150565b6020808252825182820181905260009190848201906040850190845b8181101561137a5783518352928401929184019160010161135e565b50909695505050505050565b60006020828403121561139857600080fd5b61128c82611125565b600060208083850312156113b457600080fd5b823567ffffffffffffffff8111156113cb57600080fd5b8301601f810185136113dc57600080fd5b80356113ea61105f82610fdc565b81815260069190911b8201830190838101908783111561140957600080fd5b928401925b828410156110a857604084890312156114275760008081fd5b61142f610f64565b61143885611000565b8152611445868601611137565b818701528252604093909301929084019061140e565b60006020828403121561146d57600080fd5b61128c82611000565b60006020828403121561148857600080fd5b61128c82611137565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b83811015611595577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0898403018552815160a063ffffffff825116855273ffffffffffffffffffffffffffffffffffffffff89830151168986015287820151818987015261155982870182611215565b9150506060808301518187015250608080830151925085820381870152506115818183611215565b9689019694505050908601906001016114e9565b509098975050505050505050565b600080858511156115b357600080fd5b838611156115c057600080fd5b5050820193919092039150565b80820180821115611607577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b92915050565b7fffff000000000000000000000000000000000000000000000000000000000000813581811691600285101561076a5760029490940360031b84901b1690921692915050565b7fff00000000000000000000000000000000000000000000000000000000000000813581811691600185101561076a5760019490940360031b84901b1690921692915050565b7fffffffffffffffffffffffffffffffff00000000000000000000000000000000813581811691601085101561076a5760109490940360031b84901b1690921692915050565b7fffffffffffffffff000000000000000000000000000000000000000000000000813581811691600885101561076a5760089490940360031b84901b169092169291505056fea2646970667358221220883bb4d2bbc03de6e78aa5512ea5a12e62af843273f36fdbf6cb64e285085a8c64736f6c63430008160033",
  "deployedBytecode": "0x6080604052600436106100f35760003560e01c8063701c06101161008a57806397a656141161005957806397a65614146102d6578063ac423ce1146102de578063cf34c76814610323578063f2fde38b1461036c57600080fd5b8063701c06101461020c578063715018a6146102765780637302478c1461028b5780638da5cb5b146102ab57600080fd5b8063422b45fc116100c6578063422b45fc146101855780634736d978146101a55780634e4fe306146101ca57806362a8fdcb146101f757600080fd5b806308b8a08b146100f857806309c5eabe1461011a578063269f12601461013a5780633bec591e1461015a575b600080fd5b34801561010457600080fd5b50610118610113366004611016565b61038c565b005b34801561012657600080fd5b506101186101353660046110b3565b610407565b34801561014657600080fd5b5061011861015536600461115b565b6104e7565b34801561016657600080fd5b5061016f61059b565b60405161017c9190611279565b60405180910390f35b34801561019157600080fd5b506101186101a0366004611293565b6105b8565b3480156101b157600080fd5b506101bc6210000081565b60405190815260200161017c565b3480156101d657600080fd5b506101ea6101e5366004611320565b610630565b60405161017c9190611342565b34801561020357600080fd5b506101bc600281565b34801561021857600080fd5b50610251610227366004611386565b621000016020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161017c565b34801561028257600080fd5b50610118610772565b34801561029757600080fd5b506101186102a63660046113a1565b610786565b3480156102b757600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff16610251565b610118610839565b3480156102ea57600080fd5b506102516102f936600461145b565b621000026020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b34801561032f57600080fd5b506103577f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff909116815260200161017c565b34801561037857600080fd5b50610118610387366004611476565b610849565b610394610900565b60005b8151811015610403576210000260008383815181106103b8576103b8611491565b60209081029190910181015160ff16825281019190915260400160002080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055600101610397565b5050565b61040f610900565b60008061044184847f000000000000000000000000000000000000000000000000000000000000000062100002610981565b61ffff82166000908152621000016020526040908190205490517fb143044b00000000000000000000000000000000000000000000000000000000815292945090925073ffffffffffffffffffffffffffffffffffffffff169063b143044b906104af9084906004016114c0565b600060405180830381600087803b1580156104c957600080fd5b505af11580156104dd573d6000803e3d6000fd5b5050505050505050565b6104ef610900565b60005b81518110156104035781818151811061050d5761050d611491565b60200260200101516020015162100001600084848151811061053157610531611491565b6020908102919091018101515161ffff16825281019190915260400160002080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff929092169190911790556001016104f2565b60606105b36105ae3660048160006115a3565b610d01565b905090565b6105c0610900565b60005b8151811015610403576210000160008383815181106105e4576105e4611491565b60209081029190910181015161ffff16825281019190915260400160002080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556001016105c3565b60608260028110806106455750621000008110155b15610684576040517f50695b8f000000000000000000000000000000000000000000000000000000008152600481018290526024015b60405180910390fd5b8260028110806106975750621000008110155b156106d1576040517f50695b8f0000000000000000000000000000000000000000000000000000000081526004810182905260240161067b565b8385101561076a5784840367ffffffffffffffff8111156106f4576106f4610f35565b60405190808252806020026020018201604052801561071d578160200160208202803683370190505b509250845b848110156107685760018162100000811061073f5761073f611491565b0154848783038151811061075557610755611491565b6020908102919091010152600101610722565b505b505092915050565b61077a610900565b6107846000610e9e565b565b61078e610900565b60005b8151811015610403578181815181106107ac576107ac611491565b6020026020010151602001516210000260008484815181106107d0576107d0611491565b6020908102919091018101515160ff16825281019190915260400160002080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055600101610791565b61078461084461059b565b610f13565b610851610900565b73ffffffffffffffffffffffffffffffffffffffff81166108f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161067b565b6108fd81610e9e565b50565b60005473ffffffffffffffffffffffffffffffffffffffff163314610784576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161067b565b60006060818681876109946002836115cd565b926109a1939291906115a3565b6109aa9161160d565b60f01c92506109ba6002826115cd565b905060008782886109cc6001836115cd565b926109d9939291906115a3565b6109e291611653565b60f81c90506109f26001836115cd565b91508060ff1667ffffffffffffffff811115610a1057610a10610f35565b604051908082528060200260200182016040528015610a6b57816020015b6040805160a0810182526000808252602082018190526060928201839052828201526080810191909152815260200190600190039081610a2e5790505b50925060005b8160ff16811015610cf557600089848a610a8c6001836115cd565b92610a99939291906115a3565b610aa291611653565b60f81c9050610ab26001856115cd565b935060008a858b610ac46010836115cd565b92610ad1939291906115a3565b610ada91611699565b60801c9050610aea6010866115cd565b945060008b868c610afc6002836115cd565b92610b09939291906115a3565b610b129161160d565b60f01c9050610b226002876115cd565b955060008c878d610b3761ffff8616836115cd565b92610b44939291906115a3565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929350610b8a9250505061ffff8316886115cd565b965060008d888e610b9c6008836115cd565b92610ba9939291906115a3565b610bb2916116df565b60c01c9050610bc26008896115cd565b975060008e898f610bdd67ffffffffffffffff8616836115cd565b92610bea939291906115a3565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929350610c369250505067ffffffffffffffff83168a6115cd565b98506040518060a001604052808e63ffffffff1681526020018d60008960ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001866fffffffffffffffffffffffffffffffff168152602001848152508a8881518110610cd757610cd7611491565b60200260200101819052505050505050508080600101915050610a71565b50505094509492505050565b60405160208101838301845b81811015610e6c57803560008160fe1c60008114610d425760018114610d5d5760028114610db85760038114610dcc57610ddc565b60018360001a01803688379590950194505050600101610d0d565b60018360001a601f16017f2000000000000000000000000000000000000000000000000000000000000000841615610d9c576000875280602003870196505b8060018601883795860195939093016001019250610d0d915050565b8260041b60f41c9150600284019350610ddc565b8260041b60ec1c91506003840193505b506000818015610dfa5760018114610e025782600101549150610e06565b339150610e06565b3091505b508260021b60fe1c60008114610e375760018114610e455760028114610e56578160081b8752601f87019650610e63565b818752602087019650610e63565b8160601b8752601487019650610e63565b8160e01b87526004870196505b50505050610d0d565b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082820301825260405292915050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600080825160208401305af43d6000803e8015610f2f573d6000f35b503d6000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715610f8757610f87610f35565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715610fd457610fd4610f35565b604052919050565b600067ffffffffffffffff821115610ff657610ff6610f35565b5060051b60200190565b803560ff8116811461101157600080fd5b919050565b6000602080838503121561102957600080fd5b823567ffffffffffffffff81111561104057600080fd5b8301601f8101851361105157600080fd5b803561106461105f82610fdc565b610f8d565b81815260059190911b8201830190838101908783111561108357600080fd5b928401925b828410156110a85761109984611000565b82529284019290840190611088565b979650505050505050565b600080602083850312156110c657600080fd5b823567ffffffffffffffff808211156110de57600080fd5b818501915085601f8301126110f257600080fd5b81358181111561110157600080fd5b86602082850101111561111357600080fd5b60209290920196919550909350505050565b803561ffff8116811461101157600080fd5b803573ffffffffffffffffffffffffffffffffffffffff8116811461101157600080fd5b6000602080838503121561116e57600080fd5b823567ffffffffffffffff81111561118557600080fd5b8301601f8101851361119657600080fd5b80356111a461105f82610fdc565b81815260069190911b820183019083810190878311156111c357600080fd5b928401925b828410156110a857604084890312156111e15760008081fd5b6111e9610f64565b6111f285611125565b81526111ff868601611137565b81870152825260409390930192908401906111c8565b6000815180845260005b8181101561123b5760208185018101518683018201520161121f565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b60208152600061128c6020830184611215565b9392505050565b600060208083850312156112a657600080fd5b823567ffffffffffffffff8111156112bd57600080fd5b8301601f810185136112ce57600080fd5b80356112dc61105f82610fdc565b81815260059190911b820183019083810190878311156112fb57600080fd5b928401925b828410156110a85761131184611125565b82529284019290840190611300565b6000806040838503121561133357600080fd5b50508035926020909101359150565b6020808252825182820181905260009190848201906040850190845b8181101561137a5783518352928401929184019160010161135e565b50909695505050505050565b60006020828403121561139857600080fd5b61128c82611125565b600060208083850312156113b457600080fd5b823567ffffffffffffffff8111156113cb57600080fd5b8301601f810185136113dc57600080fd5b80356113ea61105f82610fdc565b81815260069190911b8201830190838101908783111561140957600080fd5b928401925b828410156110a857604084890312156114275760008081fd5b61142f610f64565b61143885611000565b8152611445868601611137565b818701528252604093909301929084019061140e565b60006020828403121561146d57600080fd5b61128c82611000565b60006020828403121561148857600080fd5b61128c82611137565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b83811015611595577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0898403018552815160a063ffffffff825116855273ffffffffffffffffffffffffffffffffffffffff89830151168986015287820151818987015261155982870182611215565b9150506060808301518187015250608080830151925085820381870152506115818183611215565b9689019694505050908601906001016114e9565b509098975050505050505050565b600080858511156115b357600080fd5b838611156115c057600080fd5b5050820193919092039150565b80820180821115611607577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b92915050565b7fffff000000000000000000000000000000000000000000000000000000000000813581811691600285101561076a5760029490940360031b84901b1690921692915050565b7fff00000000000000000000000000000000000000000000000000000000000000813581811691600185101561076a5760019490940360031b84901b1690921692915050565b7fffffffffffffffffffffffffffffffff00000000000000000000000000000000813581811691601085101561076a5760109490940360031b84901b1690921692915050565b7fffffffffffffffff000000000000000000000000000000000000000000000000813581811691600885101561076a5760089490940360031b84901b169092169291505056fea2646970667358221220883bb4d2bbc03de6e78aa5512ea5a12e62af843273f36fdbf6cb64e285085a8c64736f6c63430008160033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
