60806040523480156200001157600080fd5b50604051620030f7380380620030f78339810160408190526200003491620001c1565b84848181600262000046838262000315565b50600362000055828262000315565b50506000805550506009805460ff191690555062000073336200009f565b600a62000081848262000315565b50600c62000090838262000315565b50600e5550620003e192505050565b600980546001600160a01b03838116610100818102610100600160a81b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200012157600080fd5b81516001600160401b03808211156200013e576200013e620000f9565b604051601f8301601f19908116603f01168101908282118183101715620001695762000169620000f9565b81604052838152602092508660208588010111156200018757600080fd5b600091505b83821015620001ab57858201830151818301840152908201906200018c565b6000602085830101528094505050505092915050565b600080600080600060a08688031215620001da57600080fd5b85516001600160401b0380821115620001f257600080fd5b6200020089838a016200010f565b965060208801519150808211156200021757600080fd5b6200022589838a016200010f565b955060408801519150808211156200023c57600080fd5b6200024a89838a016200010f565b945060608801519150808211156200026157600080fd5b5062000270888289016200010f565b925050608086015190509295509295909350565b600181811c908216806200029957607f821691505b602082108103620002ba57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000310576000816000526020600020601f850160051c81016020861015620002eb5750805b601f850160051c820191505b818110156200030c57828155600101620002f7565b5050505b505050565b81516001600160401b03811115620003315762000331620000f9565b620003498162000342845462000284565b84620002c0565b602080601f831160018114620003815760008415620003685750858301515b600019600386901b1c1916600185901b1785556200030c565b600085815260208120601f198616915b82811015620003b25788860151825594840194600190910190840162000391565b5085821015620003d15787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b612d0680620003f16000396000f3fe6080604052600436106103125760003560e01c80637a57a9c61161019a578063a035b1fe116100e1578063c2f1f14a1161008a578063e8a3d48511610064578063e8a3d4851461087a578063e985e9c51461088f578063f2fde38b146108e557600080fd5b8063c2f1f14a1461081a578063c87b56dd1461083a578063e030565e1461085a57600080fd5b8063b750500a116100bb578063b750500a146107dd578063b88d4fde146107f2578063c155f3b11461080557600080fd5b8063a035b1fe14610787578063a22cb4651461079d578063a2fcf1a8146107bd57600080fd5b80638fc88c481161014357806394043d341161011d57806394043d34146106f957806395d89b41146107425780639b19251a1461075757600080fd5b80638fc88c4814610674578063902d55a5146106c357806391b7f5ed146106d957600080fd5b8063899cd90e11610174578063899cd90e1461060e5780638cfd3e401461062e5780638da5cb5b1461064457600080fd5b80637a57a9c6146105c65780637f649783146105d95780638456cb59146105f957600080fd5b80633f4ba83a1161025e578063647b9d3c1161020757806370a08231116101e157806370a082311461057e578063715018a61461059e578063755edd17146105b357600080fd5b8063647b9d3c1461053357806369b9d47f146105535780636c0360eb1461056957600080fd5b80635c975abb116102385780635c975abb146104e857806361f80f88146105005780636352211e1461051357600080fd5b80633f4ba83a146104a057806342842e0e146104b5578063548db174146104c857600080fd5b806318160ddd116102c05780632639f4601161029a5780632639f460146104585780632d3df31f1461047857806331b3eb941461048057600080fd5b806318160ddd1461040c578063210143a41461042557806323b872dd1461044557600080fd5b8063081812fc116102f1578063081812fc14610392578063095ea7b3146103d75780630e15bd4d146103ec57600080fd5b80629a9b7b1461031757806301ffc9a71461034057806306fdde0314610370575b600080fd5b34801561032357600080fd5b5061032d600d5481565b6040519081526020015b60405180910390f35b34801561034c57600080fd5b5061036061035b3660046125cc565b610905565b6040519015158152602001610337565b34801561037c57600080fd5b50610385610961565b6040516103379190612657565b34801561039e57600080fd5b506103b26103ad36600461266a565b6109f3565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610337565b6103ea6103e53660046126a5565b610a5d565b005b3480156103f857600080fd5b506103ea61040736600461266a565b610b72565b34801561041857600080fd5b506001546000540361032d565b34801561043157600080fd5b5061036061044036600461266a565b610b7f565b6103ea6104533660046126d1565b610d91565b34801561046457600080fd5b506103ea6104733660046127d5565b61103a565b61032d611052565b34801561048c57600080fd5b506103ea61049b36600461281e565b611113565b3480156104ac57600080fd5b506103ea6111ba565b6103ea6104c33660046126d1565b6111cc565b3480156104d457600080fd5b506103ea6104e336600461283b565b6111e7565b3480156104f457600080fd5b5060095460ff16610360565b61032d61050e36600461281e565b61125b565b34801561051f57600080fd5b506103b261052e36600461266a565b6112d3565b34801561053f57600080fd5b506103ea61054e36600461266a565b6112de565b34801561055f57600080fd5b5061032d60115481565b34801561057557600080fd5b506103856112eb565b34801561058a57600080fd5b5061032d61059936600461281e565b611379565b3480156105aa57600080fd5b506103ea6113fb565b61032d6105c136600461281e565b61140d565b6103606105d436600461266a565b611453565b3480156105e557600080fd5b506103ea6105f436600461283b565b611533565b34801561060557600080fd5b506103ea6115b0565b34801561061a57600080fd5b506103ea6106293660046128b0565b6115c0565b34801561063a57600080fd5b5061032d60105481565b34801561065057600080fd5b50600954610100900473ffffffffffffffffffffffffffffffffffffffff166103b2565b34801561068057600080fd5b5061032d61068f36600461266a565b60009081526008602052604090205474010000000000000000000000000000000000000000900467ffffffffffffffff1690565b3480156106cf57600080fd5b5061032d600e5481565b3480156106e557600080fd5b506103ea6106f436600461266a565b611600565b34801561070557600080fd5b5061072d61071436600461266a565b6013602052600090815260409020805460019091015482565b60408051928352602083019190915201610337565b34801561074e57600080fd5b5061038561160d565b34801561076357600080fd5b5061036061077236600461281e565b60126020526000908152604090205460ff1681565b34801561079357600080fd5b5061032d600f5481565b3480156107a957600080fd5b506103ea6107b83660046128b0565b61161c565b3480156107c957600080fd5b506103ea6107d83660046127d5565b611695565b3480156107e957600080fd5b506103856116a9565b6103ea6108003660046128ee565b6116b6565b34801561081157600080fd5b50610385611726565b34801561082657600080fd5b506103b261083536600461266a565b611733565b34801561084657600080fd5b5061038561085536600461266a565b61179c565b34801561086657600080fd5b506103ea61087536600461296e565b6118cd565b34801561088657600080fd5b5061038561195d565b34801561089b57600080fd5b506103606108aa3660046129bd565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260076020908152604080832093909416825291909152205460ff1690565b3480156108f157600080fd5b506103ea61090036600461281e565b611985565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fad092b5c00000000000000000000000000000000000000000000000000000000148061095b575061095b82611a22565b92915050565b606060028054610970906129eb565b80601f016020809104026020016040519081016040528092919081815260200182805461099c906129eb565b80156109e95780601f106109be576101008083540402835291602001916109e9565b820191906000526020600020905b8154815290600101906020018083116109cc57829003601f168201915b5050505050905090565b60006109fe82611b03565b610a34576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5060009081526006602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b6000610a68826112d3565b90503373ffffffffffffffffffffffffffffffffffffffff821614610af15773ffffffffffffffffffffffffffffffffffffffff8116600090815260076020908152604080832033845290915290205460ff16610af1576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008281526006602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff87811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b610b7a611b43565b601155565b600033610b8b836112d3565b73ffffffffffffffffffffffffffffffffffffffff161480610bca575033610bb283611733565b73ffffffffffffffffffffffffffffffffffffffff16145b80610be957503360009081526015602052604090205460ff1615156001145b610c605760405162461bcd60e51b815260206004820152603b60248201527f796f7520646f206e6f74206861766520616363657373204e465473206f72207960448201527f6f7572207465726d20746f20757365206861732065787069726564000000000060648201526084015b60405180910390fd5b601154600083815260136020526040902054610c7c9190612a6d565b4211158015610c9d5750601054600083815260136020526040902060010154115b80610cbc57503360009081526015602052604090205460ff1615156001145b610d545760405162461bcd60e51b815260206004820152605860248201527f4974206973206f6e6c7920706f737369626c6520746f2061636365737320746860448201527f6520706c6174666f726d20627920706179696e6720746865206d6f6e74686c7960648201527f20666565206f7572204c6966657454696d6541636573732e0000000000000000608482015260a401610c57565b60405142815233907fd6b7a3a7e715b14237b1ba2759505f58a786d167d461fde5c1af9d7da4dc900f9060200160405180910390a2506001919050565b6000610d9c82611bb0565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610e03576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082815260066020526040902080543380821473ffffffffffffffffffffffffffffffffffffffff881690911417610ea05773ffffffffffffffffffffffffffffffffffffffff8616600090815260076020908152604080832033845290915290205460ff16610ea0576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8516610eed576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610efa8686866001611c50565b8015610f0557600082555b73ffffffffffffffffffffffffffffffffffffffff8681166000908152600560205260408082208054600019019055918716808252919020805460010190554260a01b177c0200000000000000000000000000000000000000000000000000000000176000858152600460205260408120919091557c020000000000000000000000000000000000000000000000000000000084169003610fd657600184016000818152600460205260408120549003610fd4576000548114610fd45760008181526004602052604090208490555b505b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45b505050505050565b611042611b43565b600c61104e8282612ac8565b5050565b600061105c611d23565b611064611d76565b600f543410156110a0576040517f21e191e200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080546110af906001612a6d565b9050600e548111156111035760405162461bcd60e51b815260206004820152601260248201527f4d617820737570706c79207265616368656400000000000000000000000000006044820152606401610c57565b61110e336001611dd5565b905090565b61111b611b43565b604051479060009073ffffffffffffffffffffffffffffffffffffffff84169083908381818185875af1925050503d8060008114611175576040519150601f19603f3d011682016040523d82523d6000602084013e61117a565b606091505b50509050806111b5576040517fd23a9e8900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b6111c2611b43565b6111ca611def565b565b6111b5838383604051806020016040528060008152506116b6565b6111ef611b43565b60005b818110156111b5576012600084848481811061121057611210612ba6565b9050602002016020810190611225919061281e565b73ffffffffffffffffffffffffffffffffffffffff1681526020810191909152604001600020805460ff191690556001016111f2565b6000611265611b43565b60008054611274906001612a6d565b9050600e548111156112c85760405162461bcd60e51b815260206004820152601260248201527f4d617820737570706c79207265616368656400000000000000000000000000006044820152606401610c57565b61095b836001611dd5565b600061095b82611bb0565b6112e6611b43565b601055565b600b80546112f8906129eb565b80601f0160208091040260200160405190810160405280929190818152602001828054611324906129eb565b80156113715780601f1061134657610100808354040283529160200191611371565b820191906000526020600020905b81548152906001019060200180831161135457829003601f168201915b505050505081565b600073ffffffffffffffffffffffffffffffffffffffff82166113c8576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5073ffffffffffffffffffffffffffffffffffffffff1660009081526005602052604090205467ffffffffffffffff1690565b611403611b43565b6111ca6000611e4e565b6000611417611d23565b600f54341015611265576040517f21e191e200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061145e82611b03565b61146757600080fd5b6010543410156114b95760405162461bcd60e51b815260206004820152601a60248201527f6d6f6e74686c7920666565206973206e6f7420636f72726563740000000000006044820152606401610c57565b60408051808201825242808252346020808401918252600087815260138252858120945185559151600190940193909355338082526014845284822091909155925190815284917f9065e076b84571e3444f162856afa5f82028001e4003ec912b21bfd7dab96d87910160405180910390a3506001919050565b61153b611b43565b60005b818110156111b55760016012600085858581811061155e5761155e612ba6565b9050602002016020810190611573919061281e565b73ffffffffffffffffffffffffffffffffffffffff1681526020810191909152604001600020805460ff191691151591909117905560010161153e565b6115b8611b43565b6111ca611ecc565b6115c8611b43565b73ffffffffffffffffffffffffffffffffffffffff919091166000908152601560205260409020805460ff1916911515919091179055565b611608611b43565b600f55565b606060038054610970906129eb565b33600081815260076020908152604080832073ffffffffffffffffffffffffffffffffffffffff871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b61169d611b43565b600a61104e8282612ac8565b600a80546112f8906129eb565b6116c1848484610d91565b73ffffffffffffffffffffffffffffffffffffffff83163b15611720576116ea84848484611f09565b611720576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b600c80546112f8906129eb565b600081815260086020526040812054427401000000000000000000000000000000000000000090910467ffffffffffffffff1610611794575060009081526008602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b506000919050565b606060006117a9836112d3565b73ffffffffffffffffffffffffffffffffffffffff16036117f6576040517fd872946b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600b8054611805906129eb565b90501161189c57600a8054611819906129eb565b80601f0160208091040260200160405190810160405280929190818152602001828054611845906129eb565b80156118925780601f1061186757610100808354040283529160200191611892565b820191906000526020600020905b81548152906001019060200180831161187557829003601f168201915b505050505061095b565b600b6118a783612083565b6040516020016118b8929190612c48565b60405160208183030381529060405292915050565b336000908152601460205260409020546003101561192d5760405162461bcd60e51b815260206004820152600f60248201527f72656e74206c696d6974206973203300000000000000000000000000000000006044820152606401610c57565b611938838383612123565b33600090815260146020526040812080549161195383612c6d565b9190505550505050565b6060600c6040516020016119719190612c87565b604051602081830303815290604052905090565b61198d611b43565b73ffffffffffffffffffffffffffffffffffffffff8116611a165760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610c57565b611a1f81611e4e565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000083161480611ab557507f80ac58cd000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b8061095b5750507fffffffff00000000000000000000000000000000000000000000000000000000167f5b5e139f000000000000000000000000000000000000000000000000000000001490565b600080548210801561095b5750506000908152600460205260409020547c0100000000000000000000000000000000000000000000000000000000161590565b60095473ffffffffffffffffffffffffffffffffffffffff6101009091041633146111ca5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610c57565b600081600054811015611c1e57600081815260046020526040812054907c010000000000000000000000000000000000000000000000000000000082169003611c1c575b80600003611c15575060001901600081815260046020526040902054611bf4565b9392505050565b505b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611caf575060008281526008602052604090205473ffffffffffffffffffffffffffffffffffffffff1615155b1561172057600082815260086020908152604080832080547fffffffff000000000000000000000000000000000000000000000000000000001690555182815284917f4e06b4e7000e659094299b3533b47b6aa8ad048e95e872d23d1f4ee55af89cfe91015b60405180910390a350505050565b60095460ff16156111ca5760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610c57565b3360009081526012602052604090205460ff166111ca5760405162461bcd60e51b815260206004820152601060248201527f4e4f545f494e5f57484954454c495354000000000000000000000000000000006044820152606401610c57565b61104e82826040518060200160405280600081525061228c565b611df761231f565b6009805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b6009805473ffffffffffffffffffffffffffffffffffffffff8381166101008181027fffffffffffffffffffffff0000000000000000000000000000000000000000ff85161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b611ed4611d23565b6009805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611e243390565b6040517f150b7a0200000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff85169063150b7a0290611f64903390899088908890600401612c93565b6020604051808303816000875af1925050508015611fbd575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252611fba91810190612cdc565b60015b612034573d808015611feb576040519150601f19603f3d011682016040523d82523d6000602084013e611ff0565b606091505b50805160000361202c576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a02000000000000000000000000000000000000000000000000000000001490505b949350505050565b6060600061209083612371565b600101905060008167ffffffffffffffff8111156120b0576120b0612712565b6040519080825280601f01601f1916602001820160405280156120da576020820181803683370190505b5090508181016020015b600019017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85049450846120e457509392505050565b3361212d846109f3565b73ffffffffffffffffffffffffffffffffffffffff16148061216c575033612154846112d3565b73ffffffffffffffffffffffffffffffffffffffff16145b6121de5760405162461bcd60e51b815260206004820152603260248201527f455243343930373a207472616e736665722063616c6c6572206973206e6f742060448201527f6f776e6572206e6f7220617070726f76656400000000000000000000000000006064820152608401610c57565b600083815260086020908152604091829020805473ffffffffffffffffffffffffffffffffffffffff86167fffffffff0000000000000000000000000000000000000000000000000000000090911681177401000000000000000000000000000000000000000067ffffffffffffffff871690810291909117835593519384529092909186917f4e06b4e7000e659094299b3533b47b6aa8ad048e95e872d23d1f4ee55af89cfe9101611d15565b6122968383612453565b73ffffffffffffffffffffffffffffffffffffffff83163b156111b5576000548281035b6122cd6000868380600101945086611f09565b612303576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8181106122ba57816000541461231857600080fd5b5050505050565b60095460ff166111ca5760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610c57565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083106123ba577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef810000000083106123e6576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061240457662386f26fc10000830492506010015b6305f5e100831061241c576305f5e100830492506008015b612710831061243057612710830492506004015b60648310612442576064830492506002015b600a831061095b5760010192915050565b6000805490829003612491576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61249e6000848385611c50565b73ffffffffffffffffffffffffffffffffffffffff831660008181526005602090815260408083208054680100000000000000018802019055848352600490915281206001851460e11b4260a01b178317905582840190839083907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4600183015b81811461255a57808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600101612522565b5081600003612595576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005550505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081168114611a1f57600080fd5b6000602082840312156125de57600080fd5b8135611c158161259e565b60005b838110156126045781810151838201526020016125ec565b50506000910152565b600081518084526126258160208601602086016125e9565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000611c15602083018461260d565b60006020828403121561267c57600080fd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff81168114611a1f57600080fd5b600080604083850312156126b857600080fd5b82356126c381612683565b946020939093013593505050565b6000806000606084860312156126e657600080fd5b83356126f181612683565b9250602084013561270181612683565b929592945050506040919091013590565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600067ffffffffffffffff8084111561275c5761275c612712565b604051601f85017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019082821181831017156127a2576127a2612712565b816040528093508581528686860111156127bb57600080fd5b858560208301376000602087830101525050509392505050565b6000602082840312156127e757600080fd5b813567ffffffffffffffff8111156127fe57600080fd5b8201601f8101841361280f57600080fd5b61207b84823560208401612741565b60006020828403121561283057600080fd5b8135611c1581612683565b6000806020838503121561284e57600080fd5b823567ffffffffffffffff8082111561286657600080fd5b818501915085601f83011261287a57600080fd5b81358181111561288957600080fd5b8660208260051b850101111561289e57600080fd5b60209290920196919550909350505050565b600080604083850312156128c357600080fd5b82356128ce81612683565b9150602083013580151581146128e357600080fd5b809150509250929050565b6000806000806080858703121561290457600080fd5b843561290f81612683565b9350602085013561291f81612683565b925060408501359150606085013567ffffffffffffffff81111561294257600080fd5b8501601f8101871361295357600080fd5b61296287823560208401612741565b91505092959194509250565b60008060006060848603121561298357600080fd5b83359250602084013561299581612683565b9150604084013567ffffffffffffffff811681146129b257600080fd5b809150509250925092565b600080604083850312156129d057600080fd5b82356129db81612683565b915060208301356128e381612683565b600181811c908216806129ff57607f821691505b602082108103612a38577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082018082111561095b5761095b612a3e565b601f8211156111b5576000816000526020600020601f850160051c81016020861015612aa95750805b601f850160051c820191505b8181101561103257828155600101612ab5565b815167ffffffffffffffff811115612ae257612ae2612712565b612af681612af084546129eb565b84612a80565b602080601f831160018114612b2b5760008415612b135750858301515b600019600386901b1c1916600185901b178555611032565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b82811015612b7857888601518255948401946001909101908401612b59565b5085821015612b965787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008154612be2816129eb565b60018281168015612bfa5760018114612c0f57612c3e565b60ff1984168752821515830287019450612c3e565b8560005260208060002060005b85811015612c355781548a820152908401908201612c1c565b50505082870194505b5050505092915050565b6000612c548285612bd5565b8351612c648183602088016125e9565b01949350505050565b60006000198203612c8057612c80612a3e565b5060010190565b6000611c158284612bd5565b600073ffffffffffffffffffffffffffffffffffffffff808716835280861660208401525083604083015260806060830152612cd2608083018461260d565b9695505050505050565b600060208284031215612cee57600080fd5b8151611c158161259e56fea164736f6c6343000818000a00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000186a00000000000000000000000000000000000000000000000000000000000000007544b2d4841434b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044841434b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005168747470733a2f2f697066732e696f2f697066732f6261666b7265696573706e6165766b37326d376a327875677a796a767a6268616f7374746c623264776d6661776b6236706679726a6e6d6c61666d2f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005168747470733a2f2f697066732e696f2f697066732f6261666b7265696573706e6165766b37326d376a327875677a796a767a6268616f7374746c623264776d6661776b6236706679726a6e6d6c61666d2f000000000000000000000000000000