0x608060405234801561001057600080fd5b506004361061018d5760003560e01c8063bcba0121116100de578063ed409a4a11610097578063f639443c11610071578063f639443c146103da578063f971fac6146103ed578063fbfa77cf14610400578063fc0c546a1461041357600080fd5b8063ed409a4a1461039d578063edda63bf146103b2578063ef7a2f86146103c557600080fd5b8063bcba012114610316578063c81f39991461031e578063cdab73b514610345578063d308211f1461036c578063d598d4c914610374578063ea0d5dcd1461037d57600080fd5b806360e232a91161014b57806389b7ebe21161012557806389b7ebe2146102d35780639551ae44146102db578063b33ddcef146102f0578063bcaf60081461030357600080fd5b806360e232a9146102a357806372615037146102b8578063807149f2146102c057600080fd5b8062435da5146101925780630ad31b8f146101d65780633f3108f7146101fd5780634215d5731461023257806342f7022e1461025957806354d96ab214610280575b600080fd5b6101b97f000000000000000000000000c136d669d7854f43aa54c644d13d1c45f724085881565b6040516001600160a01b0390911681526020015b60405180910390f35b6101b97f0000000000000000000000001154cf187ce2a33db526ef461e68fa991e1515fb81565b6102247f594d546c6f795f594d545365747465720000000000000000000000000000000081565b6040519081526020016101cd565b6101b97f0000000000000000000000004f71b55ac56bb7f58be237823a91b8850490f63f81565b6102247f594d546c6f795f594d5456616c696461746f720000000000000000000000000081565b61029361028e366004612be5565b61043a565b60405190151581526020016101cd565b6102b66102b1366004612cd0565b6105c7565b005b6102936107a0565b6102b66102ce366004612ceb565b6108aa565b610224610a0d565b6102e3610a57565b6040516101cd9190612d04565b6003546101b9906001600160a01b031681565b610293610311366004612d25565b610a88565b610224610ddf565b6101b97f000000000000000000000000a3dd517b3a78086aaa2b76c138582f30e3f0031081565b6101b97f000000000000000000000000942eb20e1ee9a1606d0e1474458979f8a31bea1181565b610224610e48565b61022460005481565b61039061038b366004612cd0565b610e92565b6040516101cd9190612d7a565b6103a5610f69565b6040516101cd9190612dea565b6102936103c0366004612d25565b610f73565b6103cd6111d5565b6040516101cd9190612dfd565b6102936103e8366004612be5565b611285565b6102246103fb366004612e28565b6113d4565b6004546101b9906001600160a01b031681565b6101b97f000000000000000000000000aedad4f862236fca696028d70626044cd6dc9b5a81565b6000336001600160a01b037f0000000000000000000000004f71b55ac56bb7f58be237823a91b8850490f63f161461048d5760405162461bcd60e51b815260040161048490612e52565b60405180910390fd5b60405163f12c2a6960e01b8152632a6cb55960e11b906001600160a01b037f000000000000000000000000a3dd517b3a78086aaa2b76c138582f30e3f00310169063f12c2a69906104e2908490600401612e89565b602060405180830381865afa1580156104ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105239190612e9e565b61053f5760405162461bcd60e51b815260040161048490612ec7565b825160011461059b5760405162461bcd60e51b815260206004820152602260248201527f564d3a2063616e2774207573652045786368616e6765506f6c69637920617272604482015261617960f01b6064820152608401610484565b6105bf84846000815181106105b2576105b2612efe565b6020026020010151611409565b949350505050565b6105f17f594d546c6f795f594d5453657474657200000000000000000000000000000000336115a4565b61063d5760405162461bcd60e51b815260206004820152601c60248201527f564d3a206d73672073656e646572206973206e6f7420736574746572000000006044820152606401610484565b60405163f12c2a6960e01b81526360e232a960e01b906001600160a01b037f000000000000000000000000a3dd517b3a78086aaa2b76c138582f30e3f00310169063f12c2a6990610692908490600401612e89565b602060405180830381865afa1580156106af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106d39190612e9e565b6106ef5760405162461bcd60e51b815260040161048490612ec7565b6001600160a01b0382166107455760405162461bcd60e51b815260206004820152601960248201527f564d3a20696e76616c6964207661756c742061646472657373000000000000006044820152606401610484565b600480546001600160a01b0319166001600160a01b038416908117909155604080519182524360208301527fb203833ec18b2adbda3d053e2b5eb1e9e6ce0434914276a32066f21475e70d4091015b60405180910390a15050565b6000336001600160a01b037f0000000000000000000000004f71b55ac56bb7f58be237823a91b8850490f63f16146107ea5760405162461bcd60e51b815260040161048490612e52565b60405163f12c2a6960e01b8152637261503760e01b906001600160a01b037f000000000000000000000000a3dd517b3a78086aaa2b76c138582f30e3f00310169063f12c2a699061083f908490600401612e89565b602060405180830381865afa15801561085c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108809190612e9e565b61089c5760405162461bcd60e51b815260040161048490612ec7565b6108a461163a565b91505090565b6108d47f594d546c6f795f594d5453657474657200000000000000000000000000000000336115a4565b6109205760405162461bcd60e51b815260206004820152601c60248201527f564d3a206d73672073656e646572206973206e6f7420736574746572000000006044820152606401610484565b60405163f12c2a6960e01b8152634038a4f960e11b906001600160a01b037f000000000000000000000000a3dd517b3a78086aaa2b76c138582f30e3f00310169063f12c2a6990610975908490600401612e89565b602060405180830381865afa158015610992573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109b69190612e9e565b6109d25760405162461bcd60e51b815260040161048490612ec7565b6109dd600083611716565b6040518281527fe13ec1fa9c3ede43997fc070c234a83909ba45575dd0ad079ea7138418cc846590602001610794565b6000806000610a1b306117c6565b5092509250506000610a2d8383611906565b50509050818181518110610a4357610a43612efe565b602002602001015160200151935050505090565b610a7b60405180606001604052806000815260200160008152602001600081525090565b610a8361198d565b905090565b6000336001600160a01b037f0000000000000000000000004f71b55ac56bb7f58be237823a91b8850490f63f1614610ad25760405162461bcd60e51b815260040161048490612e52565b60405163f12c2a6960e01b8152631795ec0160e31b906001600160a01b037f000000000000000000000000a3dd517b3a78086aaa2b76c138582f30e3f00310169063f12c2a6990610b27908490600401612e89565b602060405180830381865afa158015610b44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b689190612e9e565b610b845760405162461bcd60e51b815260040161048490612ec7565b6000610b8f84612f84565b600080549192507f000000000000000000000000aedad4f862236fca696028d70626044cd6dc9b5a919080610bcc8986631795ec0160e31b611a75565b91509150610bfa7f594d546c6f795f594d5456616c696461746f7200000000000000000000000000826115a4565b610c465760405162461bcd60e51b815260206004820152601b60248201527f4654564d3a207665726966792076616c696461746f72206661696c00000000006044820152606401610484565b610c6a826001600160a01b0316600090815260026020526040902080546001019055565b6003546020860151604051633950935160e01b81526001600160a01b0392831660048201526024810191909152908516906339509351906044016020604051808303816000875af1158015610cc3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce79190612e9e565b5060035460408681015160208801519151639f812d6560e01b81526001600160a01b038881166004830152602482018890526044820192909252606481019290925290911690639f812d65906084016020604051808303816000875af1158015610d55573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d799190612e9e565b50604085810151602080880151835192835290820152308183015290516001600160a01b0384811692908716917f2f46cff747bf36f7bdf4376f942febba912263d84ec30048646fed238ab37c3f9181900360600190a350600198975050505050505050565b600080600080610dee306117c6565b50925092509250610e028360200151421190565b15610e3d576000610e138383611906565b50509050818181518110610e2957610e29612efe565b602002602001015160200151945050610e42565b815193505b50505090565b6000806000610e56306117c6565b5092509250506000610e688383611906565b50509050818181518110610e7e57610e7e612efe565b602002602001015160400151935050505090565b6040805180820190915260008082526020820152600080600080610eb5866117c6565b93509350935093506000610ec98484611906565b505090506000838281518110610ee157610ee1612efe565b60200260200101519050600081602001511115610f5d57825142811015610f5b57604087015160008215610f155782610f18565b88515b90508180610f268342613045565b610f309190613072565b610f3b906001613094565b610f4591906130ac565b610f4f9082613094565b86525050600060208501525b505b50909695505050505050565b6060610a83611c7d565b6000336001600160a01b037f0000000000000000000000004f71b55ac56bb7f58be237823a91b8850490f63f1614610fbd5760405162461bcd60e51b815260040161048490612e52565b60405163f12c2a6960e01b815263edda63bf60e01b906001600160a01b037f000000000000000000000000a3dd517b3a78086aaa2b76c138582f30e3f00310169063f12c2a6990611012908490600401612e89565b602060405180830381865afa15801561102f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110539190612e9e565b61106f5760405162461bcd60e51b815260040161048490612ec7565b600061107a84612f84565b90507f000000000000000000000000aedad4f862236fca696028d70626044cd6dc9b5a6000806110b2888563edda63bf60e01b611a75565b915091506110e07f594d546c6f795f594d5456616c696461746f7200000000000000000000000000826115a4565b61112c5760405162461bcd60e51b815260206004820152601960248201527f564d3a207665726966792076616c696461746f72206661696c000000000000006044820152606401610484565b611150826001600160a01b0316600090815260026020526040902080546001019055565b61115e828560200151611d39565b61116c828560200151611ee9565b6040848101516020808701516004548451938452918301526001600160a01b03908116828401529151848316928616917f52e9cb34729bc0bac76a26368d0d9fcdf307dabc7bae94201ed184e6f9312839919081900360600190a3506001979650505050505050565b6112006040518060800160405280600081526020016000815260200160008152602001600081525090565b60008061120c306117c6565b50925092505060008060006112218585611906565b925092509250846020015183141561123d575092949350505050565b604051806080016040528085858151811061125a5761125a612efe565b6020026020010151602001518152602001848152602001838152602001828152509550505050505090565b6000336001600160a01b037f0000000000000000000000004f71b55ac56bb7f58be237823a91b8850490f63f16146112cf5760405162461bcd60e51b815260040161048490612e52565b60405163f12c2a6960e01b8152633d8e510f60e21b906001600160a01b037f000000000000000000000000a3dd517b3a78086aaa2b76c138582f30e3f00310169063f12c2a6990611324908490600401612e89565b602060405180830381865afa158015611341573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113659190612e9e565b6113815760405162461bcd60e51b815260040161048490612ec7565b428410156113ca5760405162461bcd60e51b8152602060048201526016602482015275564d3a20696e76616c69642073746172742074696d6560501b6044820152606401610484565b6105bf8484611fe4565b6000818152600160205260408120546113f190849060e01b612147565b90505b92915050565b6001600160a01b03163b151590565b600081838280611418306117c6565b509250925050600061142a8383611906565b505090508151600014156114805760405162461bcd60e51b815260206004820152601b60248201527f454d3a20706f6c6963696573206e6f74207265676973746572656400000000006044820152606401610484565b8151600114156114d15783156114cc5760405162461bcd60e51b815260206004820152601160248201527008a9a7440d2dcecc2d8d2c840d2dcc8caf607b1b6044820152606401610484565b611520565b80841180156114e05750815184105b6115205760405162461bcd60e51b815260206004820152601160248201527008a9a7440d2dcecc2d8d2c840d2dcc8caf607b1b6044820152606401610484565b8482858151811061153357611533612efe565b6020026020010181905250611547826121c5565b6040805186518152602080880151908201528682015181830152426060820152905185917f5df38cf0d5fab6d0fd2ef76ccd41bdae188c5d11415deb545227aab62aca4aa7919081900360800190a2506001979650505050505050565b604051632474521560e21b8152600481018390526001600160a01b0382811660248301526000917f000000000000000000000000c136d669d7854f43aa54c644d13d1c45f7240858909116906391d1485490604401602060405180830381865afa158015611616573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113f19190612e9e565b600061164461226b565b6116875760405162461bcd60e51b815260206004820152601460248201527311534e881c1bdb1a58de481b9bdd08195e1a5cdd60621b6044820152606401610484565b604080516000808252602082019092526116dd916116d7565b6116c460405180606001604052806000815260200160008152602001600081525090565b8152602001906001900390816116a05790505b506121c5565b6040514281527fd966e360b6098ee60936422e4c40d006c97472190505fd69899365b4242be0e89060200160405180910390a150600190565b806117635760405162461bcd60e51b815260206004820152601760248201527f454d3a20726f756e642063616e2774206265207a65726f0000000000000000006044820152606401610484565b600061176d61198d565b60408101839052805190915015611785578051611787565b825b8152826117b0576040810151429081816117a3576117a361305c565b06900360208201526117b8565b805160208201525b6117c18161227d565b505050565b6117ea60405180606001604052806000815260200160008152602001600081525090565b6118156040518060800160405280600081526020016000815260200160008152602001600081525090565b6060611834604051806040016040528060008152602001600081525090565b60005460405163b9a51eeb60e01b81526001600160a01b037f000000000000000000000000aedad4f862236fca696028d70626044cd6dc9b5a81166004830152602482019290925286821660448201527f0000000000000000000000001154cf187ce2a33db526ef461e68fa991e1515fb9091169063b9a51eeb90606401600060405180830381865afa1580156118cf573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526118f791908101906131db565b93509350935093509193509193565b6000806000806001855161191a9190613045565b60408701516060880151602089015192935090915b8381101561197d5781421161194c57955090935091506119869050565b81925087816001018151811061196457611964612efe565b602090810291909101015151919091019060010161192f565b50919450925090505b9250925092565b6119b160405180606001604052806000815260200160008152602001600081525090565b6000546040516354abfd1760e11b81526001600160a01b037f0000000000000000000000001154cf187ce2a33db526ef461e68fa991e1515fb169163a957fa2e91611a34917f000000000000000000000000aedad4f862236fca696028d70626044cd6dc9b5a916004016001600160a01b03929092168252602082015260400190565b606060405180830381865afa158015611a51573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a83919061328b565b60608201515160009081908490611b495780516001600160a01b03878116911614611ae25760405162461bcd60e51b815260206004820152601a60248201527f564d3a20766572696679206d73672073656e646572206661696c0000000000006044820152606401610484565b80516080820151909350611b4290611afa8587612147565b604080850151602080870151835191820194909452918201526060810191909152608001604051602081830303815290604052805190602001206122ee90919063ffffffff16565b9150611bde565b611b5f8160600151611afa836000015187612147565b6001600160a01b031681600001516001600160a01b031614611bba5760405162461bcd60e51b815260206004820152601460248201527315934e881d995c9a599e481d5cd95c8819985a5b60621b6044820152606401610484565b8051608082015160608301518051602090910120919450611bdb91906122ee565b91505b611be783612312565b15611c255760405162461bcd60e51b815260206004820152600e60248201526d2b269d10313630b1b5903ab9b2b960911b6044820152606401610484565b611c2e82612312565b15611c715760405162461bcd60e51b81526020600482015260136024820152722b269d10313630b1b5903b30b634b230ba37b960691b6044820152606401610484565b50935093915050565b50565b600054604051634dce567d60e01b81526001600160a01b037f000000000000000000000000aedad4f862236fca696028d70626044cd6dc9b5a8116600483015260248201929092526060917f0000000000000000000000001154cf187ce2a33db526ef461e68fa991e1515fb1690634dce567d90604401600060405180830381865afa158015611d11573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a8391908101906132a7565b81816000808080611d49866117c6565b93509350935093504284600001511115611d9e5760405162461bcd60e51b815260206004820152601660248201527511534e88195e18da185b99d9481b9bdd081cdd185c9d60521b6044820152606401610484565b611da98484846123a7565b8094508195505050600082846020015181518110611dc957611dc9612efe565b60200260200101519050600081602001511115611e32578351861115611e2a5760405162461bcd60e51b8152602060048201526016602482015275454d3a20706572696f6420636170206578636565647360501b6044820152606401610484565b835186900384525b604081015115611ed157602085015182518114611e62576040518060400160405280828152602001600081525092505b8683602001818151611e749190613094565b905250604082015160208401511115611ecf5760405162461bcd60e51b815260206004820152601b60248201527f454d3a20706572696f64207573657220636170206578636565647300000000006044820152606401610484565b505b611ede8786868686612564565b505050505050505050565b600480546040516323b872dd60e01b81526001600160a01b03918216928101929092528381166024830152604482018390527f000000000000000000000000aedad4f862236fca696028d70626044cd6dc9b5a16906323b872dd906064016020604051808303816000875af1158015611f66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f8a9190612e9e565b611fe05760405162461bcd60e51b815260206004820152602160248201527f4654564d3a2065786368616e676520746f6b656e20746f2075736572206661696044820152601b60fa1b6064820152608401610484565b5050565b600081611fef61226b565b1561203c5760405162461bcd60e51b815260206004820152601860248201527f454d3a20706f6c69637920616c726561647920657869737400000000000000006044820152606401610484565b60008151116120815760405162461bcd60e51b8152602060048201526011602482015270454d3a207a65726f20706f6c696369657360781b6044820152606401610484565b428461208c836121c5565b600061209661260b565b9050836000815181106120ab576120ab612efe565b602090810291909101810151810151825260009082018190526040820183905284518591906120dc576120dc612efe565b602002602001015160000151826120f39190613094565b6060820152612101816126fa565b7fd6e16629871000e6e49093ecb22fd96f0d922b8dfb777675083213c877f5466b84846040516121329291906132dc565b60405180910390a15060019695505050505050565b6001600160a01b03821660009081526002602090815260409182902054825130606090811b6bffffffffffffffffffffffff199081168386015246603484015296901b90951660548601526001600160e01b03199093166068850152606c8085019390935281518085039093018352608c9093019052805191012090565b600054604051634e2533bd60e01b81526001600160a01b037f0000000000000000000000001154cf187ce2a33db526ef461e68fa991e1515fb1691634e2533bd91612236917f000000000000000000000000aedad4f862236fca696028d70626044cd6dc9b5a9186906004016132fe565b600060405180830381600087803b15801561225057600080fd5b505af1158015612264573d6000803e3d6000fd5b5050505050565b6000612275611c7d565b511515919050565b60005460405163ec7aa1b960e01b81526001600160a01b037f0000000000000000000000001154cf187ce2a33db526ef461e68fa991e1515fb169163ec7aa1b991612236917f000000000000000000000000aedad4f862236fca696028d70626044cd6dc9b5a91869060040161332e565b60008060006122fd858561276b565b9150915061230a816127db565b509392505050565b604051631cf3c04f60e21b81523060048201526001600160a01b0382811660248301526000917f000000000000000000000000942eb20e1ee9a1606d0e1474458979f8a31bea11909116906373cf013c90604401602060405180830381865afa158015612383573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113f49190612e9e565b6123cb60405180606001604052806000815260200160008152602001600081525090565b6123f66040518060800160405280600081526020016000815260200160008152602001600081525090565b60006124058660200151421190565b90508015612554576000612417612996565b6040880151602089015191925088918891889181906124369042613045565b6124409190613072565b61244b906001613094565b61245591906130ac565b836020018181516124669190613094565b905250600080806124778585611906565b925092509250828560200151101561249f576020850183905260408501829052606085018190525b868484815181106124b2576124b2612efe565b602002602001015160200151116124e6578383815181106124d5576124d5612efe565b6020026020010151602001516124e8565b865b855283517f0501aea9c9209b34403b145385ac96a491f2ffd2171e6a4310f1b624dbdd6b9390849086908290811061252257612522612efe565b60200260200101514260405161253a93929190613366565b60405180910390a15093975091955061255c945050505050565b858592509250505b935093915050565b6000546040516332ec8c2b60e21b81526001600160a01b037f0000000000000000000000001154cf187ce2a33db526ef461e68fa991e1515fb169163cbb230ac916125dd917f000000000000000000000000aedad4f862236fca696028d70626044cd6dc9b5a918a908a908a908a908a9060040161339c565b600060405180830381600087803b1580156125f757600080fd5b505af1158015611ede573d6000803e3d6000fd5b6126366040518060800160405280600081526020016000815260200160008152602001600081525090565b600054604051631ee866fd60e21b81526001600160a01b037f0000000000000000000000001154cf187ce2a33db526ef461e68fa991e1515fb1691637ba19bf4916126b9917f000000000000000000000000aedad4f862236fca696028d70626044cd6dc9b5a916004016001600160a01b03929092168252602082015260400190565b608060405180830381865afa1580156126d6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a83919061343f565b600054604051634e78ed4b60e01b81526001600160a01b037f0000000000000000000000001154cf187ce2a33db526ef461e68fa991e1515fb1691634e78ed4b91612236917f000000000000000000000000aedad4f862236fca696028d70626044cd6dc9b5a91869060040161345b565b6000808251604114156127a25760208301516040840151606085015160001a61279687828585612a2b565b945094505050506127d4565b8251604014156127cc57602083015160408401516127c1868383612b18565b9350935050506127d4565b506000905060025b9250929050565b60008160048111156127ef576127ef6134a0565b14156127f85750565b600181600481111561280c5761280c6134a0565b141561285a5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610484565b600281600481111561286e5761286e6134a0565b14156128bc5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610484565b60038160048111156128d0576128d06134a0565b14156129295760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610484565b600481600481111561293d5761293d6134a0565b1415611c7a5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610484565b600480546040516370a0823160e01b81526001600160a01b03918216928101929092526000917f000000000000000000000000aedad4f862236fca696028d70626044cd6dc9b5a909116906370a0823190602401602060405180830381865afa158015612a07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a8391906134b6565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115612a625750600090506003612b0f565b8460ff16601b14158015612a7a57508460ff16601c14155b15612a8b5750600090506004612b0f565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612adf573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612b0857600060019250925050612b0f565b9150600090505b94509492505050565b6000806001600160ff1b03831681612b3560ff86901c601b613094565b9050612b4387828885612a2b565b935093505050935093915050565b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715612b8a57612b8a612b51565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715612bb957612bb9612b51565b604052919050565b600067ffffffffffffffff821115612bdb57612bdb612b51565b5060051b60200190565b6000806040808486031215612bf957600080fd5b8335925060208085013567ffffffffffffffff811115612c1857600080fd5b8501601f81018713612c2957600080fd5b8035612c3c612c3782612bc1565b612b90565b8181526060918202830184019184820191908a841115612c5b57600080fd5b938501935b83851015612ca35780858c031215612c785760008081fd5b612c80612b67565b853581528686013587820152878601358882015283529384019391850191612c60565b508096505050505050509250929050565b80356001600160a01b0381168114612ccb57600080fd5b919050565b600060208284031215612ce257600080fd5b6113f182612cb4565b600060208284031215612cfd57600080fd5b5035919050565b815181526020808301519082015260408083015190820152606081016113f4565b60008060408385031215612d3857600080fd5b612d4183612cb4565b9150602083013567ffffffffffffffff811115612d5d57600080fd5b830160a08186031215612d6f57600080fd5b809150509250929050565b8151815260208083015190820152604081016113f4565b600081518084526020808501945080840160005b83811015612ddf57612dcc8783518051825260208082015190830152604090810151910152565b6060969096019590820190600101612da5565b509495945050505050565b6020815260006113f16020830184612d91565b81518152602080830151908201526040808301519082015260608083015190820152608081016113f4565b60008060408385031215612e3b57600080fd5b612e4483612cb4565b946020939093013593505050565b6020808252601f908201527f564d3a206d73672073656e646572206973206e6f74206e6176696761746f7200604082015260600190565b6001600160e01b031991909116815260200190565b600060208284031215612eb057600080fd5b81518015158114612ec057600080fd5b9392505050565b6020808252601e908201527f564d3a2066756e6374696f6e206973206e6f742065786563757461626c650000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b600082601f830112612f2557600080fd5b813567ffffffffffffffff811115612f3f57612f3f612b51565b612f52601f8201601f1916602001612b90565b818152846020838601011115612f6757600080fd5b816020850160208301376000918101602001919091529392505050565b600060a08236031215612f9657600080fd5b60405160a0810167ffffffffffffffff8282108183111715612fba57612fba612b51565b81604052612fc785612cb4565b835260208501356020840152604085013560408401526060850135915080821115612ff157600080fd5b612ffd36838701612f14565b6060840152608085013591508082111561301657600080fd5b5061302336828601612f14565b60808301525092915050565b634e487b7160e01b600052601160045260246000fd5b6000828210156130575761305761302f565b500390565b634e487b7160e01b600052601260045260246000fd5b60008261308f57634e487b7160e01b600052601260045260246000fd5b500490565b600082198211156130a7576130a761302f565b500190565b60008160001904831182151516156130c6576130c661302f565b500290565b6000606082840312156130dd57600080fd5b6130e5612b67565b905081518152602082015160208201526040820151604082015292915050565b60006080828403121561311757600080fd5b6040516080810181811067ffffffffffffffff8211171561313a5761313a612b51565b8060405250809150825181526020830151602082015260408301516040820152606083015160608201525092915050565b600082601f83011261317c57600080fd5b8151602061318c612c3783612bc1565b828152606092830285018201928282019190878511156131ab57600080fd5b8387015b858110156131ce576131c189826130cb565b84529284019281016131af565b5090979650505050505050565b6000806000808486036101408112156131f357600080fd5b6131fd87876130cb565b945061320c8760608801613105565b935060e086015167ffffffffffffffff8082111561322957600080fd5b61323589838a0161316b565b9450604060ff198401121561324957600080fd5b6040519250604083019150828210818311171561326857613268612b51565b506040526101008601518152610120909501516020860152509194909350909190565b60006060828403121561329d57600080fd5b6113f183836130cb565b6000602082840312156132b957600080fd5b815167ffffffffffffffff8111156132d057600080fd5b6105bf8482850161316b565b6040815260006132ef6040830185612d91565b90508260208301529392505050565b60018060a01b03841681528260208201526060604082015260006133256060830184612d91565b95945050505050565b6001600160a01b03841681526020810183905260a081016105bf60408301848051825260208082015190830152604090810151910152565b83815260a0810161338e60208301858051825260208082015190830152604090810151910152565b826080830152949350505050565b6001600160a01b038881168252602082018890528616604082015260006101a06133dd60608401888051825260208082015190830152604090810151910152565b855160c0840152602086015160e0840152604086015161010084015260608601516101208401528061014084015261341781840186612d91565b8451610160850152602085015161018085015291506134339050565b98975050505050505050565b60006080828403121561345157600080fd5b6113f18383613105565b6001600160a01b03841681526020810183905260c081016105bf6040830184805182526020810151602083015260408101516040830152606081015160608301525050565b634e487b7160e01b600052602160045260246000fd5b6000602082840312156134c857600080fd5b505191905056fea2646970667358221220871e68a99ddbd5dc2a10afa366f8ad3c3adc55d1d559f0f5068d536de75a2aad64736f6c634300080a0033