0x608060405234801561001057600080fd5b506004361061018d5760003560e01c8063bcba0121116100de578063ed409a4a11610097578063f639443c11610071578063f639443c146103da578063f971fac6146103ed578063fbfa77cf14610400578063fc0c546a1461041357600080fd5b8063ed409a4a1461039d578063edda63bf146103b2578063ef7a2f86146103c557600080fd5b8063bcba012114610316578063c81f39991461031e578063cdab73b514610345578063d308211f1461036c578063d598d4c914610374578063ea0d5dcd1461037d57600080fd5b806360e232a91161014b57806389b7ebe21161012557806389b7ebe2146102d35780639551ae44146102db578063b33ddcef146102f0578063bcaf60081461030357600080fd5b806360e232a9146102a357806372615037146102b8578063807149f2146102c057600080fd5b8062435da5146101925780630ad31b8f146101d65780633f3108f7146101fd5780634215d5731461023257806342f7022e1461025957806354d96ab214610280575b600080fd5b6101b97f000000000000000000000000604100d89f9eac0f0118dff40296232abe0283ca81565b6040516001600160a01b0390911681526020015b60405180910390f35b6101b97f0000000000000000000000007c7caad98e01569696940bf232211b9a059345d381565b6102247f4f52414e47456f6270756e63685365747465720000000000000000000000000081565b6040519081526020016101cd565b6101b97f0000000000000000000000007b4503a5e403fedb6819b39f229565028c57e38881565b6102247f4f52414e47456f6270756e636856616c696461746f720000000000000000000081565b61029361028e366004612b93565b61043a565b60405190151581526020016101cd565b6102b66102b1366004612c7e565b6105c7565b005b6102936107a0565b6102b66102ce366004612c99565b6108aa565b610224610a0d565b6102e3610a57565b6040516101cd9190612cb2565b6003546101b9906001600160a01b031681565b610293610311366004612cd3565b610a88565b610224610dd7565b6101b97f0000000000000000000000002a9f02bf31ad40d01c544b717ad7ba4f7622f15581565b6101b97f000000000000000000000000e0fe10bc73f779ef5be5b9461f37d0978dcf604881565b610224610e40565b61022460005481565b61039061038b366004612c7e565b610e8a565b6040516101cd9190612d28565b6103a5610f61565b6040516101cd9190612d98565b6102936103c0366004612cd3565b610f6b565b6103cd61128c565b6040516101cd9190612dab565b6102936103e8366004612b93565b61133c565b6102246103fb366004612dd6565b61148b565b6004546101b9906001600160a01b031681565b6101b97f000000000000000000000000ef0229ce1d207adaddf62a17399b05f0a6121c8381565b6000336001600160a01b037f0000000000000000000000007b4503a5e403fedb6819b39f229565028c57e388161461048d5760405162461bcd60e51b815260040161048490612e00565b60405180910390fd5b60405163f12c2a6960e01b8152632a6cb55960e11b906001600160a01b037f0000000000000000000000002a9f02bf31ad40d01c544b717ad7ba4f7622f155169063f12c2a69906104e2908490600401612e37565b602060405180830381865afa1580156104ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105239190612e4c565b61053f5760405162461bcd60e51b815260040161048490612e75565b825160011461059b5760405162461bcd60e51b815260206004820152602260248201527f564d3a2063616e2774207573652045786368616e6765506f6c69637920617272604482015261617960f01b6064820152608401610484565b6105bf84846000815181106105b2576105b2612eac565b60200260200101516114c0565b949350505050565b6105f17f4f52414e47456f6270756e6368536574746572000000000000000000000000003361164d565b61063d5760405162461bcd60e51b815260206004820152601c60248201527f564d3a206d73672073656e646572206973206e6f7420736574746572000000006044820152606401610484565b60405163f12c2a6960e01b81526360e232a960e01b906001600160a01b037f0000000000000000000000002a9f02bf31ad40d01c544b717ad7ba4f7622f155169063f12c2a6990610692908490600401612e37565b602060405180830381865afa1580156106af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106d39190612e4c565b6106ef5760405162461bcd60e51b815260040161048490612e75565b6001600160a01b0382166107455760405162461bcd60e51b815260206004820152601960248201527f564d3a20696e76616c6964207661756c742061646472657373000000000000006044820152606401610484565b600480546001600160a01b0319166001600160a01b038416908117909155604080519182524360208301527fb203833ec18b2adbda3d053e2b5eb1e9e6ce0434914276a32066f21475e70d4091015b60405180910390a15050565b6000336001600160a01b037f0000000000000000000000007b4503a5e403fedb6819b39f229565028c57e38816146107ea5760405162461bcd60e51b815260040161048490612e00565b60405163f12c2a6960e01b8152637261503760e01b906001600160a01b037f0000000000000000000000002a9f02bf31ad40d01c544b717ad7ba4f7622f155169063f12c2a699061083f908490600401612e37565b602060405180830381865afa15801561085c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108809190612e4c565b61089c5760405162461bcd60e51b815260040161048490612e75565b6108a46116e3565b91505090565b6108d47f4f52414e47456f6270756e6368536574746572000000000000000000000000003361164d565b6109205760405162461bcd60e51b815260206004820152601c60248201527f564d3a206d73672073656e646572206973206e6f7420736574746572000000006044820152606401610484565b60405163f12c2a6960e01b8152634038a4f960e11b906001600160a01b037f0000000000000000000000002a9f02bf31ad40d01c544b717ad7ba4f7622f155169063f12c2a6990610975908490600401612e37565b602060405180830381865afa158015610992573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109b69190612e4c565b6109d25760405162461bcd60e51b815260040161048490612e75565b6109dd6000836117bf565b6040518281527fe13ec1fa9c3ede43997fc070c234a83909ba45575dd0ad079ea7138418cc846590602001610794565b6000806000610a1b3061186f565b5092509250506000610a2d83836119af565b50509050818181518110610a4357610a43612eac565b602002602001015160200151935050505090565b610a7b60405180606001604052806000815260200160008152602001600081525090565b610a83611a36565b905090565b6000336001600160a01b037f0000000000000000000000007b4503a5e403fedb6819b39f229565028c57e3881614610ad25760405162461bcd60e51b815260040161048490612e00565b60405163f12c2a6960e01b8152631795ec0160e31b906001600160a01b037f0000000000000000000000002a9f02bf31ad40d01c544b717ad7ba4f7622f155169063f12c2a6990610b27908490600401612e37565b602060405180830381865afa158015610b44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b689190612e4c565b610b845760405162461bcd60e51b815260040161048490612e75565b6000610b8f84612f32565b600080549192507f000000000000000000000000ef0229ce1d207adaddf62a17399b05f0a6121c83919080610bcc8986631795ec0160e31b611b1e565b91509150610bfa7f4f52414e47456f6270756e636856616c696461746f72000000000000000000008261164d565b610c425760405162461bcd60e51b815260206004820152601960248201527815934e881d995c9a599e481d985b1a59185d1bdc8819985a5b603a1b6044820152606401610484565b610c66826001600160a01b0316600090815260026020526040902080546001019055565b6003546020860151604051633950935160e01b81526001600160a01b0392831660048201526024810191909152908516906339509351906044016020604051808303816000875af1158015610cbf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce39190612e4c565b5060035460408681015160208801519151639f812d6560e01b81526001600160a01b038881166004830152602482018890526044820192909252606481019290925290911690639f812d65906084016020604051808303816000875af1158015610d51573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d759190612e4c565b50604085810151602080880151835192835290820152308183015290516001600160a01b038416917f2750fcbb752e630721de5b945a1d36c7df2683fb2ba1e4dac8ea80f6659c7fe3919081900360600190a250600198975050505050505050565b600080600080610de63061186f565b50925092509250610dfa8360200151421190565b15610e35576000610e0b83836119af565b50509050818181518110610e2157610e21612eac565b602002602001015160200151945050610e3a565b815193505b50505090565b6000806000610e4e3061186f565b5092509250506000610e6083836119af565b50509050818181518110610e7657610e76612eac565b602002602001015160400151935050505090565b6040805180820190915260008082526020820152600080600080610ead8661186f565b93509350935093506000610ec184846119af565b505090506000838281518110610ed957610ed9612eac565b60200260200101519050600081602001511115610f5557825142811015610f5357604087015160008215610f0d5782610f10565b88515b90508180610f1e8342612ff3565b610f289190613020565b610f33906001613042565b610f3d919061305a565b610f479082613042565b86525050600060208501525b505b50909695505050505050565b6060610a83611d26565b6000336001600160a01b037f0000000000000000000000007b4503a5e403fedb6819b39f229565028c57e3881614610fb55760405162461bcd60e51b815260040161048490612e00565b60405163f12c2a6960e01b815263edda63bf60e01b906001600160a01b037f0000000000000000000000002a9f02bf31ad40d01c544b717ad7ba4f7622f155169063f12c2a699061100a908490600401612e37565b602060405180830381865afa158015611027573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061104b9190612e4c565b6110675760405162461bcd60e51b815260040161048490612e75565b600061107284612f32565b90507f000000000000000000000000ef0229ce1d207adaddf62a17399b05f0a6121c836000806110aa888563edda63bf60e01b611b1e565b915091506110d87f4f52414e47456f6270756e636856616c696461746f72000000000000000000008261164d565b6111205760405162461bcd60e51b815260206004820152601960248201527815934e881d995c9a599e481d985b1a59185d1bdc8819985a5b603a1b6044820152606401610484565b611144826001600160a01b0316600090815260026020526040902080546001019055565b611152828560200151611de2565b6004805460208601516040516323b872dd60e01b81526001600160a01b0392831693810193909352848216602484015260448301528416906323b872dd906064016020604051808303816000875af11580156111b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d69190612e4c565b6112225760405162461bcd60e51b815260206004820152601f60248201527f564d3a2065786368616e676520746f6b656e20746f2075736572206661696c006044820152606401610484565b6040808501516020808701516004548451938452918301526001600160a01b0390811692820192909252908316907fa60f0f3bfecd55be403be68a889236496e81b2cac75bb32f52c7980b0ac81f18906060015b60405180910390a2506001979650505050505050565b6112b76040518060800160405280600081526020016000815260200160008152602001600081525090565b6000806112c33061186f565b50925092505060008060006112d885856119af565b92509250925084602001518314156112f4575092949350505050565b604051806080016040528085858151811061131157611311612eac565b6020026020010151602001518152602001848152602001838152602001828152509550505050505090565b6000336001600160a01b037f0000000000000000000000007b4503a5e403fedb6819b39f229565028c57e38816146113865760405162461bcd60e51b815260040161048490612e00565b60405163f12c2a6960e01b8152633d8e510f60e21b906001600160a01b037f0000000000000000000000002a9f02bf31ad40d01c544b717ad7ba4f7622f155169063f12c2a69906113db908490600401612e37565b602060405180830381865afa1580156113f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061141c9190612e4c565b6114385760405162461bcd60e51b815260040161048490612e75565b428410156114815760405162461bcd60e51b8152602060048201526016602482015275564d3a20696e76616c69642073746172742074696d6560501b6044820152606401610484565b6105bf8484611f92565b6000818152600160205260408120546114a890849060e01b6120f5565b90505b92915050565b6001600160a01b03163b151590565b6000818382806114cf3061186f565b50925092505060006114e183836119af565b505090508151600014156115375760405162461bcd60e51b815260206004820152601b60248201527f454d3a20706f6c6963696573206e6f74207265676973746572656400000000006044820152606401610484565b8151600114156115885783156115835760405162461bcd60e51b815260206004820152601160248201527008a9a7440d2dcecc2d8d2c840d2dcc8caf607b1b6044820152606401610484565b6115d7565b80841180156115975750815184105b6115d75760405162461bcd60e51b815260206004820152601160248201527008a9a7440d2dcecc2d8d2c840d2dcc8caf607b1b6044820152606401610484565b848285815181106115ea576115ea612eac565b60200260200101819052506115fe82612173565b604080518651815260208088015190820152818701519181019190915242606082015284907f5df38cf0d5fab6d0fd2ef76ccd41bdae188c5d11415deb545227aab62aca4aa790608001611276565b604051632474521560e21b8152600481018390526001600160a01b0382811660248301526000917f000000000000000000000000604100d89f9eac0f0118dff40296232abe0283ca909116906391d1485490604401602060405180830381865afa1580156116bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a89190612e4c565b60006116ed612219565b6117305760405162461bcd60e51b815260206004820152601460248201527311534e881c1bdb1a58de481b9bdd08195e1a5cdd60621b6044820152606401610484565b6040805160008082526020820190925261178691611780565b61176d60405180606001604052806000815260200160008152602001600081525090565b8152602001906001900390816117495790505b50612173565b6040514281527fd966e360b6098ee60936422e4c40d006c97472190505fd69899365b4242be0e89060200160405180910390a150600190565b8061180c5760405162461bcd60e51b815260206004820152601760248201527f454d3a20726f756e642063616e2774206265207a65726f0000000000000000006044820152606401610484565b6000611816611a36565b6040810183905280519091501561182e578051611830565b825b8152826118595760408101514290818161184c5761184c61300a565b0690036020820152611861565b805160208201525b61186a8161222b565b505050565b61189360405180606001604052806000815260200160008152602001600081525090565b6118be6040518060800160405280600081526020016000815260200160008152602001600081525090565b60606118dd604051806040016040528060008152602001600081525090565b60005460405163b9a51eeb60e01b81526001600160a01b037f000000000000000000000000ef0229ce1d207adaddf62a17399b05f0a6121c8381166004830152602482019290925286821660448201527f0000000000000000000000007c7caad98e01569696940bf232211b9a059345d39091169063b9a51eeb90606401600060405180830381865afa158015611978573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526119a09190810190613189565b93509350935093509193509193565b600080600080600185516119c39190612ff3565b60408701516060880151602089015192935090915b83811015611a26578142116119f55795509093509150611a2f9050565b819250878160010181518110611a0d57611a0d612eac565b60209081029190910101515191909101906001016119d8565b50919450925090505b9250925092565b611a5a60405180606001604052806000815260200160008152602001600081525090565b6000546040516354abfd1760e11b81526001600160a01b037f0000000000000000000000007c7caad98e01569696940bf232211b9a059345d3169163a957fa2e91611add917f000000000000000000000000ef0229ce1d207adaddf62a17399b05f0a6121c83916004016001600160a01b03929092168252602082015260400190565b606060405180830381865afa158015611afa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a839190613239565b60608201515160009081908490611bf25780516001600160a01b03878116911614611b8b5760405162461bcd60e51b815260206004820152601a60248201527f564d3a20766572696679206d73672073656e646572206661696c0000000000006044820152606401610484565b80516080820151909350611beb90611ba385876120f5565b6040808501516020808701518351918201949094529182015260608101919091526080016040516020818303038152906040528051906020012061229c90919063ffffffff16565b9150611c87565b611c088160600151611ba38360000151876120f5565b6001600160a01b031681600001516001600160a01b031614611c635760405162461bcd60e51b815260206004820152601460248201527315934e881d995c9a599e481d5cd95c8819985a5b60621b6044820152606401610484565b8051608082015160608301518051602090910120919450611c84919061229c565b91505b611c90836122c0565b15611cce5760405162461bcd60e51b815260206004820152600e60248201526d2b269d10313630b1b5903ab9b2b960911b6044820152606401610484565b611cd7826122c0565b15611d1a5760405162461bcd60e51b81526020600482015260136024820152722b269d10313630b1b5903b30b634b230ba37b960691b6044820152606401610484565b50935093915050565b50565b600054604051634dce567d60e01b81526001600160a01b037f000000000000000000000000ef0229ce1d207adaddf62a17399b05f0a6121c838116600483015260248201929092526060917f0000000000000000000000007c7caad98e01569696940bf232211b9a059345d31690634dce567d90604401600060405180830381865afa158015611dba573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a839190810190613255565b81816000808080611df28661186f565b93509350935093504284600001511115611e475760405162461bcd60e51b815260206004820152601660248201527511534e88195e18da185b99d9481b9bdd081cdd185c9d60521b6044820152606401610484565b611e52848484612355565b8094508195505050600082846020015181518110611e7257611e72612eac565b60200260200101519050600081602001511115611edb578351861115611ed35760405162461bcd60e51b8152602060048201526016602482015275454d3a20706572696f6420636170206578636565647360501b6044820152606401610484565b835186900384525b604081015115611f7a57602085015182518114611f0b576040518060400160405280828152602001600081525092505b8683602001818151611f1d9190613042565b905250604082015160208401511115611f785760405162461bcd60e51b815260206004820152601b60248201527f454d3a20706572696f64207573657220636170206578636565647300000000006044820152606401610484565b505b611f878786868686612512565b505050505050505050565b600081611f9d612219565b15611fea5760405162461bcd60e51b815260206004820152601860248201527f454d3a20706f6c69637920616c726561647920657869737400000000000000006044820152606401610484565b600081511161202f5760405162461bcd60e51b8152602060048201526011602482015270454d3a207a65726f20706f6c696369657360781b6044820152606401610484565b428461203a83612173565b60006120446125b9565b90508360008151811061205957612059612eac565b6020908102919091018101518101518252600090820181905260408201839052845185919061208a5761208a612eac565b602002602001015160000151826120a19190613042565b60608201526120af816126a8565b7fd6e16629871000e6e49093ecb22fd96f0d922b8dfb777675083213c877f5466b84846040516120e092919061328a565b60405180910390a15060019695505050505050565b6001600160a01b03821660009081526002602090815260409182902054825130606090811b6bffffffffffffffffffffffff199081168386015246603484015296901b90951660548601526001600160e01b03199093166068850152606c8085019390935281518085039093018352608c9093019052805191012090565b600054604051634e2533bd60e01b81526001600160a01b037f0000000000000000000000007c7caad98e01569696940bf232211b9a059345d31691634e2533bd916121e4917f000000000000000000000000ef0229ce1d207adaddf62a17399b05f0a6121c839186906004016132ac565b600060405180830381600087803b1580156121fe57600080fd5b505af1158015612212573d6000803e3d6000fd5b5050505050565b6000612223611d26565b511515919050565b60005460405163ec7aa1b960e01b81526001600160a01b037f0000000000000000000000007c7caad98e01569696940bf232211b9a059345d3169163ec7aa1b9916121e4917f000000000000000000000000ef0229ce1d207adaddf62a17399b05f0a6121c839186906004016132dc565b60008060006122ab8585612719565b915091506122b881612789565b509392505050565b604051631cf3c04f60e21b81523060048201526001600160a01b0382811660248301526000917f000000000000000000000000e0fe10bc73f779ef5be5b9461f37d0978dcf6048909116906373cf013c90604401602060405180830381865afa158015612331573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ab9190612e4c565b61237960405180606001604052806000815260200160008152602001600081525090565b6123a46040518060800160405280600081526020016000815260200160008152602001600081525090565b60006123b38660200151421190565b905080156125025760006123c5612944565b6040880151602089015191925088918891889181906123e49042612ff3565b6123ee9190613020565b6123f9906001613042565b612403919061305a565b836020018181516124149190613042565b9052506000808061242585856119af565b925092509250828560200151101561244d576020850183905260408501829052606085018190525b8684848151811061246057612460612eac565b602002602001015160200151116124945783838151811061248357612483612eac565b602002602001015160200151612496565b865b855283517f0501aea9c9209b34403b145385ac96a491f2ffd2171e6a4310f1b624dbdd6b939084908690829081106124d0576124d0612eac565b6020026020010151426040516124e893929190613314565b60405180910390a15093975091955061250a945050505050565b858592509250505b935093915050565b6000546040516332ec8c2b60e21b81526001600160a01b037f0000000000000000000000007c7caad98e01569696940bf232211b9a059345d3169163cbb230ac9161258b917f000000000000000000000000ef0229ce1d207adaddf62a17399b05f0a6121c83918a908a908a908a908a9060040161334a565b600060405180830381600087803b1580156125a557600080fd5b505af1158015611f87573d6000803e3d6000fd5b6125e46040518060800160405280600081526020016000815260200160008152602001600081525090565b600054604051631ee866fd60e21b81526001600160a01b037f0000000000000000000000007c7caad98e01569696940bf232211b9a059345d31691637ba19bf491612667917f000000000000000000000000ef0229ce1d207adaddf62a17399b05f0a6121c83916004016001600160a01b03929092168252602082015260400190565b608060405180830381865afa158015612684573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a8391906133ed565b600054604051634e78ed4b60e01b81526001600160a01b037f0000000000000000000000007c7caad98e01569696940bf232211b9a059345d31691634e78ed4b916121e4917f000000000000000000000000ef0229ce1d207adaddf62a17399b05f0a6121c83918690600401613409565b6000808251604114156127505760208301516040840151606085015160001a612744878285856129d9565b94509450505050612782565b82516040141561277a576020830151604084015161276f868383612ac6565b935093505050612782565b506000905060025b9250929050565b600081600481111561279d5761279d61344e565b14156127a65750565b60018160048111156127ba576127ba61344e565b14156128085760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610484565b600281600481111561281c5761281c61344e565b141561286a5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610484565b600381600481111561287e5761287e61344e565b14156128d75760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610484565b60048160048111156128eb576128eb61344e565b1415611d235760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610484565b600480546040516370a0823160e01b81526001600160a01b03918216928101929092526000917f000000000000000000000000ef0229ce1d207adaddf62a17399b05f0a6121c83909116906370a0823190602401602060405180830381865afa1580156129b5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a839190613464565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115612a105750600090506003612abd565b8460ff16601b14158015612a2857508460ff16601c14155b15612a395750600090506004612abd565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612a8d573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612ab657600060019250925050612abd565b9150600090505b94509492505050565b6000806001600160ff1b03831681612ae360ff86901c601b613042565b9050612af1878288856129d9565b935093505050935093915050565b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715612b3857612b38612aff565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715612b6757612b67612aff565b604052919050565b600067ffffffffffffffff821115612b8957612b89612aff565b5060051b60200190565b6000806040808486031215612ba757600080fd5b8335925060208085013567ffffffffffffffff811115612bc657600080fd5b8501601f81018713612bd757600080fd5b8035612bea612be582612b6f565b612b3e565b8181526060918202830184019184820191908a841115612c0957600080fd5b938501935b83851015612c515780858c031215612c265760008081fd5b612c2e612b15565b853581528686013587820152878601358882015283529384019391850191612c0e565b508096505050505050509250929050565b80356001600160a01b0381168114612c7957600080fd5b919050565b600060208284031215612c9057600080fd5b6114a882612c62565b600060208284031215612cab57600080fd5b5035919050565b815181526020808301519082015260408083015190820152606081016114ab565b60008060408385031215612ce657600080fd5b612cef83612c62565b9150602083013567ffffffffffffffff811115612d0b57600080fd5b830160a08186031215612d1d57600080fd5b809150509250929050565b8151815260208083015190820152604081016114ab565b600081518084526020808501945080840160005b83811015612d8d57612d7a8783518051825260208082015190830152604090810151910152565b6060969096019590820190600101612d53565b509495945050505050565b6020815260006114a86020830184612d3f565b81518152602080830151908201526040808301519082015260608083015190820152608081016114ab565b60008060408385031215612de957600080fd5b612df283612c62565b946020939093013593505050565b6020808252601f908201527f564d3a206d73672073656e646572206973206e6f74206e6176696761746f7200604082015260600190565b6001600160e01b031991909116815260200190565b600060208284031215612e5e57600080fd5b81518015158114612e6e57600080fd5b9392505050565b6020808252601e908201527f564d3a2066756e6374696f6e206973206e6f742065786563757461626c650000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b600082601f830112612ed357600080fd5b813567ffffffffffffffff811115612eed57612eed612aff565b612f00601f8201601f1916602001612b3e565b818152846020838601011115612f1557600080fd5b816020850160208301376000918101602001919091529392505050565b600060a08236031215612f4457600080fd5b60405160a0810167ffffffffffffffff8282108183111715612f6857612f68612aff565b81604052612f7585612c62565b835260208501356020840152604085013560408401526060850135915080821115612f9f57600080fd5b612fab36838701612ec2565b60608401526080850135915080821115612fc457600080fd5b50612fd136828601612ec2565b60808301525092915050565b634e487b7160e01b600052601160045260246000fd5b60008282101561300557613005612fdd565b500390565b634e487b7160e01b600052601260045260246000fd5b60008261303d57634e487b7160e01b600052601260045260246000fd5b500490565b6000821982111561305557613055612fdd565b500190565b600081600019048311821515161561307457613074612fdd565b500290565b60006060828403121561308b57600080fd5b613093612b15565b905081518152602082015160208201526040820151604082015292915050565b6000608082840312156130c557600080fd5b6040516080810181811067ffffffffffffffff821117156130e8576130e8612aff565b8060405250809150825181526020830151602082015260408301516040820152606083015160608201525092915050565b600082601f83011261312a57600080fd5b8151602061313a612be583612b6f565b8281526060928302850182019282820191908785111561315957600080fd5b8387015b8581101561317c5761316f8982613079565b845292840192810161315d565b5090979650505050505050565b6000806000808486036101408112156131a157600080fd5b6131ab8787613079565b94506131ba87606088016130b3565b935060e086015167ffffffffffffffff808211156131d757600080fd5b6131e389838a01613119565b9450604060ff19840112156131f757600080fd5b6040519250604083019150828210818311171561321657613216612aff565b506040526101008601518152610120909501516020860152509194909350909190565b60006060828403121561324b57600080fd5b6114a88383613079565b60006020828403121561326757600080fd5b815167ffffffffffffffff81111561327e57600080fd5b6105bf84828501613119565b60408152600061329d6040830185612d3f565b90508260208301529392505050565b60018060a01b03841681528260208201526060604082015260006132d36060830184612d3f565b95945050505050565b6001600160a01b03841681526020810183905260a081016105bf60408301848051825260208082015190830152604090810151910152565b83815260a0810161333c60208301858051825260208082015190830152604090810151910152565b826080830152949350505050565b6001600160a01b038881168252602082018890528616604082015260006101a061338b60608401888051825260208082015190830152604090810151910152565b855160c0840152602086015160e084015260408601516101008401526060860151610120840152806101408401526133c581840186612d3f565b8451610160850152602085015161018085015291506133e19050565b98975050505050505050565b6000608082840312156133ff57600080fd5b6114a883836130b3565b6001600160a01b03841681526020810183905260c081016105bf6040830184805182526020810151602083015260408101516040830152606081015160608301525050565b634e487b7160e01b600052602160045260246000fd5b60006020828403121561347657600080fd5b505191905056fea2646970667358221220d1f82606d0fbbb036b686113bf905c89c76df079c3d8927e1442195d94a8dc4864736f6c634300080a0033