Contract Overview
Balance:
0.2671208039338187 METIS

METIS Value:
$12.97 (@ $48.56/METIS)

Token:
More Info
Tag:
Not Available. Update?

Contract Creator:
Contract Source Code Verified (Exact Match)
Contract Name:
LayerZeroSender

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 10000 runs

Created At:
Tue, 30 Jan 2024 21:00:50 GMT
LayerZeroSender.sol
contracts
senders
LayerZeroSender.sol


Contract ABI
[
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_rainbowRoad",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "_endpoint",
        "type": "address"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "constructor"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint64",
        "name": "destinationChainSelector",
        "type": "uint64"
      },
      {
        "indexed": false,
        "internalType": "bytes",
        "name": "trustedRemote",
        "type": "bytes"
      },
      {
        "indexed": false,
        "internalType": "string",
        "name": "action",
        "type": "string"
      },
      {
        "indexed": false,
        "internalType": "address",
        "name": "actionRecipient",
        "type": "address"
      }
    ],
    "name": "MessageSent",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "previousOwner",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "newOwner",
        "type": "address"
      }
    ],
    "name": "OwnershipTransferStarted",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "previousOwner",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "newOwner",
        "type": "address"
      }
    ],
    "name": "OwnershipTransferred",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "Paused",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "Unpaused",
    "type": "event"
  },
  {
    "inputs": [],
    "name": "acceptOwnership",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "name": "admins",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "admin",
        "type": "address"
      }
    ],
    "name": "disableAdmin",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "admin",
        "type": "address"
      }
    ],
    "name": "enableAdmin",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "endpoint",
    "outputs": [
      {
        "internalType": "contract ILayerZeroEndpoint",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "owner",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "pause",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "paused",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "paymentType",
    "outputs": [
      {
        "internalType": "enum LayerZeroSender.PaymentTypes",
        "name": "",
        "type": "uint8"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "pendingOwner",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "rainbowRoad",
    "outputs": [
      {
        "internalType": "contract IRainbowRoad",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "renounceOwnership",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint16",
        "name": "destinationChainSelector",
        "type": "uint16"
      },
      {
        "internalType": "address",
        "name": "messageReceiver",
        "type": "address"
      },
      {
        "internalType": "string",
        "name": "action",
        "type": "string"
      },
      {
        "internalType": "bytes",
        "name": "payload",
        "type": "bytes"
      }
    ],
    "name": "send",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint16",
        "name": "destinationChainSelector",
        "type": "uint16"
      },
      {
        "internalType": "address",
        "name": "messageReceiver",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "actionRecipient",
        "type": "address"
      },
      {
        "internalType": "string",
        "name": "action",
        "type": "string"
      },
      {
        "internalType": "bytes",
        "name": "payload",
        "type": "bytes"
      }
    ],
    "name": "send",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_endpoint",
        "type": "address"
      }
    ],
    "name": "setEndpoint",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "setPaymentTypeToNative",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "setPaymentTypeToZro",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_rainbowRoad",
        "type": "address"
      }
    ],
    "name": "setRainbowRoad",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_zroToken",
        "type": "address"
      }
    ],
    "name": "setZroToken",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "newOwner",
        "type": "address"
      }
    ],
    "name": "transferOwnership",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "unpause",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "beneficiary",
        "type": "address"
      }
    ],
    "name": "withdrawNative",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "beneficiary",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "token",
        "type": "address"
      }
    ],
    "name": "withdrawToken",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "zroToken",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "stateMutability": "payable",
    "type": "receive"
  }
]


Contract Creation Code
60806040523480156200001157600080fd5b50604051620020e2380380620020e28339810160408190526200003491620001f8565b8162000040336200016d565b6001805460ff60a01b191681556002556001600160a01b038116620000b85760405162461bcd60e51b815260206004820152602360248201527f5261696e626f7720526f61642063616e6e6f74206265207a65726f206164647260448201526265737360e81b60648201526084015b60405180910390fd5b600380546001600160a01b0319166001600160a01b039283161790558116620001365760405162461bcd60e51b815260206004820152602960248201527f4c617965725a65726f20656e64706f696e742063616e6e6f74206265207a65726044820152686f206164647265737360b81b6064820152608401620000af565b600480546001600160a81b0319166001600160a01b039290921691909117905550600580546001600160a01b031916905562000230565b600180546001600160a01b031916905562000188816200018b565b50565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b0381168114620001f357600080fd5b919050565b600080604083850312156200020c57600080fd5b6200021783620001db565b91506200022760208401620001db565b90509250929050565b611ea280620002406000396000f3fe60806040526004361061018f5760003560e01c8063751e9a9c116100d6578063dbbb41551161007f578063e30c397811610059578063e30c3978146104aa578063ed53ff81146104d5578063f2fde38b146104f557600080fd5b8063dbbb41551461044a578063dd8d329c1461046a578063e1fdfe871461048a57600080fd5b80638da5cb5b116100b05780638da5cb5b146103df578063bea532ff1461040a578063bfb5944a1461042a57600080fd5b8063751e9a9c1461039557806379ba5097146103b55780638456cb59146103ca57600080fd5b80635a3ced59116101385780635f95266f116101125780635f95266f1461033e5780636a93681714610353578063715018a61461038057600080fd5b80635a3ced59146102cc5780635c975abb146102e15780635e280f111461031157600080fd5b80633f4ba83a116101695780633f4ba83a14610225578063429b62e51461023a578063452a3a701461027a57600080fd5b80632763b8da1461019b5780632f622e6b146101e35780633aeac4e11461020557600080fd5b3661019657005b600080fd5b3480156101a757600080fd5b506004546101cd9074010000000000000000000000000000000000000000900460ff1681565b6040516101da9190611894565b60405180910390f35b3480156101ef57600080fd5b506102036101fe3660046118fe565b610515565b005b34801561021157600080fd5b50610203610220366004611920565b6105d7565b34801561023157600080fd5b50610203610713565b34801561024657600080fd5b5061026a6102553660046118fe565b60066020526000908152604090205460ff1681565b60405190151581526020016101da565b34801561028657600080fd5b506005546102a79073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101da565b3480156102d857600080fd5b50610203610725565b3480156102ed57600080fd5b5060015474010000000000000000000000000000000000000000900460ff1661026a565b34801561031d57600080fd5b506004546102a79073ffffffffffffffffffffffffffffffffffffffff1681565b34801561034a57600080fd5b506102036107f4565b34801561035f57600080fd5b506003546102a79073ffffffffffffffffffffffffffffffffffffffff1681565b34801561038c57600080fd5b506102036108c0565b3480156103a157600080fd5b506102036103b03660046118fe565b6108d2565b3480156103c157600080fd5b5061020361099b565b3480156103d657600080fd5b50610203610a36565b3480156103eb57600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff166102a7565b34801561041657600080fd5b506102036104253660046118fe565b610a46565b34801561043657600080fd5b506102036104453660046118fe565b610b13565b34801561045657600080fd5b506102036104653660046118fe565b610beb565b34801561047657600080fd5b506102036104853660046119ae565b610cc3565b34801561049657600080fd5b506102036104a5366004611a3f565b610cf4565b3480156104b657600080fd5b5060015473ffffffffffffffffffffffffffffffffffffffff166102a7565b3480156104e157600080fd5b506102036104f03660046118fe565b610d85565b34801561050157600080fd5b506102036105103660046118fe565b610e37565b61051d610ee7565b604051479060009073ffffffffffffffffffffffffffffffffffffffff84169083908381818185875af1925050503d8060008114610577576040519150601f19603f3d011682016040523d82523d6000602084013e61057c565b606091505b50509050806105d25760405162461bcd60e51b815260206004820152601260248201527f556e61626c6520746f207769746864726177000000000000000000000000000060448201526064015b60405180910390fd5b505050565b6105df610ee7565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009073ffffffffffffffffffffffffffffffffffffffff8316906370a0823190602401602060405180830381865afa15801561064c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106709190611ae1565b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8581166004830152602482018390529192509083169063a9059cbb906044016020604051808303816000875af11580156106e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061070d9190611afa565b50505050565b61071b610ee7565b610723610f4e565b565b61072d610ee7565b600160045474010000000000000000000000000000000000000000900460ff16600181111561075e5761075e611865565b036107ab5760405162461bcd60e51b815260206004820152601c60248201527f466565732061726520616c7265616479207061696420696e205a524f0000000060448201526064016105c9565b60048054600191907fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000835b0217905550565b6107fc610ee7565b600060045474010000000000000000000000000000000000000000900460ff16600181111561082d5761082d611865565b0361087a5760405162461bcd60e51b815260206004820152601f60248201527f466565732061726520616c7265616479207061696420696e204e41544956450060448201526064016105c9565b60048054600091907fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000836107ed565b6108c8610ee7565b6107236000610fcb565b6108da610ee7565b73ffffffffffffffffffffffffffffffffffffffff811660009081526006602052604090205460ff1661094f5760405162461bcd60e51b815260206004820152601160248201527f41646d696e2069732064697361626c656400000000000000000000000000000060448201526064016105c9565b73ffffffffffffffffffffffffffffffffffffffff16600090815260066020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b600154339073ffffffffffffffffffffffffffffffffffffffff168114610a2a5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060448201527f6e6577206f776e6572000000000000000000000000000000000000000000000060648201526084016105c9565b610a3381610fcb565b50565b610a3e610ee7565b610723610ffc565b610a4e610ee7565b73ffffffffffffffffffffffffffffffffffffffff811660009081526006602052604090205460ff1615610ac45760405162461bcd60e51b815260206004820152601060248201527f41646d696e20697320656e61626c65640000000000000000000000000000000060448201526064016105c9565b73ffffffffffffffffffffffffffffffffffffffff16600090815260066020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b610b1b610ee7565b73ffffffffffffffffffffffffffffffffffffffff8116610ba45760405162461bcd60e51b815260206004820152602360248201527f5261696e626f7720526f61642063616e6e6f74206265207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016105c9565b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b610bf3610ee7565b73ffffffffffffffffffffffffffffffffffffffff8116610c7c5760405162461bcd60e51b815260206004820152602960248201527f4c617965725a65726f20656e64706f696e742063616e6e6f74206265207a657260448201527f6f2061646472657373000000000000000000000000000000000000000000000060648201526084016105c9565b600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b610ccb61106b565b610cd36110c2565b610ce28686338787878761112d565b610cec6001600255565b505050505050565b610cfc61106b565b610d046110c2565b3360009081526006602052604090205460ff16610d635760405162461bcd60e51b815260206004820152600d60248201527f496e76616c69642061646d696e0000000000000000000000000000000000000060448201526064016105c9565b610d728787878787878761112d565b610d7c6001600255565b50505050505050565b610d8d610ee7565b73ffffffffffffffffffffffffffffffffffffffff8116610df05760405162461bcd60e51b815260206004820181905260248201527f5a524f20746f6b656e2063616e6e6f74206265207a65726f206164647265737360448201526064016105c9565b600580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b610e3f610ee7565b6001805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff00000000000000000000000000000000000000009091168117909155610ea260005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60005473ffffffffffffffffffffffffffffffffffffffff1633146107235760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105c9565b610f56611786565b600180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055610a33816117f0565b6110046110c2565b600180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610fa13390565b60028054036110bc5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016105c9565b60028055565b60015474010000000000000000000000000000000000000000900460ff16156107235760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a207061757365640000000000000000000000000000000060448201526064016105c9565b73ffffffffffffffffffffffffffffffffffffffff86166111b65760405162461bcd60e51b815260206004820152602760248201527f4d6573736167652072656365697665722063616e6e6f74206265207a65726f2060448201527f616464726573730000000000000000000000000000000000000000000000000060648201526084016105c9565b6003546040517f6eb8011d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690636eb8011d9061121490879087908a9088908890600401611b47565b600060405180830381600087803b15801561122e57600080fd5b505af1158015611242573d6000803e3d6000fd5b50505050606060006040518060400160405280601f81526020017f6c617965727a65726f5f73656e6465722e616461707465725f706172616d73008152509050600081878760405160200161129993929190611bba565b60408051601f19818403018152908290526003547f96d436c000000000000000000000000000000000000000000000000000000000835290925073ffffffffffffffffffffffffffffffffffffffff16906396d436c0906112fe908490600401611c39565b600060405180830381865afa15801561131b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526113439190810190611c7b565b925082516000036113ec576003546040517f96d436c000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116906396d436c0906113a4908590600401611c39565b600060405180830381865afa1580156113c1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526113e99190810190611c7b565b92505b505060008585888686604051602001611409959493929190611b47565b60408051601f19818403018152908290527fffffffffffffffffffffffffffffffffffffffff00000000000000000000000060608b811b8216602085015230901b166034830152915060009060480160408051601f19818403018152919052600454909150600090819073ffffffffffffffffffffffffffffffffffffffff166340a7bb108d3087600160045474010000000000000000000000000000000000000000900460ff1660018111156114c2576114c2611865565b148a6040518663ffffffff1660e01b81526004016114e4959493929190611d28565b6040805180830381865afa158015611500573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115249190611d7b565b9092509050600160045474010000000000000000000000000000000000000000900460ff16600181111561155a5761155a611865565b0361169f57600554600480546040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821692810192909252602482018490529091169063095ea7b3906044016020604051808303816000875af11580156115de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116029190611afa565b50600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c58031008d858730308b6040518763ffffffff1660e01b815260040161166896959493929190611d9f565b600060405180830381600087803b15801561168257600080fd5b505af1158015611696573d6000803e3d6000fd5b50505050611739565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c5803100838e86883060008c6040518863ffffffff1660e01b815260040161170696959493929190611d9f565b6000604051808303818588803b15801561171f57600080fd5b505af1158015611733573d6000803e3d6000fd5b50505050505b7f742549daabef48dfd7bb602b74ff1d60c222b230639e62d416c43bd873fc68bb8c848b8b8e604051611770959493929190611e13565b60405180910390a1505050505050505050505050565b60015474010000000000000000000000000000000000000000900460ff166107235760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f742070617573656400000000000000000000000060448201526064016105c9565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60208101600283106118cf577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b803573ffffffffffffffffffffffffffffffffffffffff811681146118f957600080fd5b919050565b60006020828403121561191057600080fd5b611919826118d5565b9392505050565b6000806040838503121561193357600080fd5b61193c836118d5565b915061194a602084016118d5565b90509250929050565b803561ffff811681146118f957600080fd5b60008083601f84011261197757600080fd5b50813567ffffffffffffffff81111561198f57600080fd5b6020830191508360208285010111156119a757600080fd5b9250929050565b600080600080600080608087890312156119c757600080fd5b6119d087611953565b95506119de602088016118d5565b9450604087013567ffffffffffffffff808211156119fb57600080fd5b611a078a838b01611965565b90965094506060890135915080821115611a2057600080fd5b50611a2d89828a01611965565b979a9699509497509295939492505050565b600080600080600080600060a0888a031215611a5a57600080fd5b611a6388611953565b9650611a71602089016118d5565b9550611a7f604089016118d5565b9450606088013567ffffffffffffffff80821115611a9c57600080fd5b611aa88b838c01611965565b909650945060808a0135915080821115611ac157600080fd5b50611ace8a828b01611965565b989b979a50959850939692959293505050565b600060208284031215611af357600080fd5b5051919050565b600060208284031215611b0c57600080fd5b8151801515811461191957600080fd5b818352818160208501375060006020828401015260006020601f19601f840116840101905092915050565b606081526000611b5b606083018789611b1c565b73ffffffffffffffffffffffffffffffffffffffff861660208401528281036040840152611b8a818587611b1c565b98975050505050505050565b60005b83811015611bb1578181015183820152602001611b99565b50506000910152565b60008451611bcc818460208901611b96565b7f5f00000000000000000000000000000000000000000000000000000000000000908301908152838560018301376000930160010192835250909392505050565b60008151808452611c25816020860160208601611b96565b601f01601f19169290920160200192915050565b6020815260006119196020830184611c0d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600060208284031215611c8d57600080fd5b815167ffffffffffffffff80821115611ca557600080fd5b818401915084601f830112611cb957600080fd5b815181811115611ccb57611ccb611c4c565b604051601f8201601f19908116603f01168101908382118183101715611cf357611cf3611c4c565b81604052828152876020848701011115611d0c57600080fd5b611d1d836020830160208801611b96565b979650505050505050565b61ffff8616815273ffffffffffffffffffffffffffffffffffffffff8516602082015260a060408201526000611d6160a0830186611c0d565b84151560608401528281036080840152611b8a8185611c0d565b60008060408385031215611d8e57600080fd5b505080516020909101519092909150565b61ffff8716815260c060208201526000611dbc60c0830188611c0d565b8281036040840152611dce8188611c0d565b73ffffffffffffffffffffffffffffffffffffffff87811660608601528616608085015283810360a08501529050611e068185611c0d565b9998505050505050505050565b61ffff86168152608060208201526000611e306080830187611c0d565b8281036040840152611e43818688611b1c565b91505073ffffffffffffffffffffffffffffffffffffffff83166060830152969550505050505056fea264697066735822122069aee8997923ab6f3547c4b076bf0f77f65c7d67baafb682d7b4b942142d9af064736f6c634300081300330000000000000000000000009412316dc6c882ffc4fa1a01413b0c701b147b9e0000000000000000000000009740ff91f1985d8d2b71494ae1a2f723bb3ed9e4