0x608060405234801561000f575f80fd5b50600436106101a7575f3560e01c806370a08231116100f7578063c87b56dd11610095578063e0df5b6f1161006f578063e0df5b6f146104cb578063e985e9c5146104e7578063f28ca1dd14610517578063f2fde38b14610535576101a7565b8063c87b56dd1461044d578063d547cfb71461047d578063dd62ed3e1461049b576101a7565b80639b19251a116100d15780639b19251a146103b5578063a22cb465146103e5578063a9059cbb14610401578063b88d4fde14610431576101a7565b806370a08231146103495780638da5cb5b1461037957806395d89b4114610397576101a7565b80632b968958116101645780634f02c4201161013e5780634f02c420146102c3578063504334c2146102e157806353d6fd59146102fd5780636352211e14610319576101a7565b80632b9689581461027f578063313ce5671461028957806342842e0e146102a7576101a7565b806306fdde03146101ab578063081812fc146101c9578063095ea7b3146101f957806318160ddd1461022957806318d217c31461024757806323b872dd14610263575b5f80fd5b6101b3610551565b6040516101c09190613685565b60405180910390f35b6101e360048036038101906101de91906136e9565b6105dd565b6040516101f09190613753565b60405180910390f35b610213600480360381019061020e9190613796565b61060d565b60405161022091906137ee565b60405180910390f35b6102316108f4565b60405161023e9190613816565b60405180910390f35b610261600480360381019061025c919061395b565b610918565b005b61027d600480360381019061027891906139a2565b6109af565b005b6102876111a6565b005b6102916112c5565b60405161029e9190613a0d565b60405180910390f35b6102c160048036038101906102bc91906139a2565b6112e9565b005b6102cb611418565b6040516102d89190613816565b60405180910390f35b6102fb60048036038101906102f69190613a26565b61141e565b005b61031760048036038101906103129190613ac6565b6114b0565b005b610333600480360381019061032e91906136e9565b61158c565b6040516103409190613753565b60405180910390f35b610363600480360381019061035e9190613b04565b61162a565b6040516103709190613816565b60405180910390f35b61038161163f565b60405161038e9190613753565b60405180910390f35b61039f611662565b6040516103ac9190613685565b60405180910390f35b6103cf60048036038101906103ca9190613b04565b6116ee565b6040516103dc91906137ee565b60405180910390f35b6103ff60048036038101906103fa9190613ac6565b61170b565b005b61041b60048036038101906104169190613796565b611803565b60405161042891906137ee565b60405180910390f35b61044b60048036038101906104469190613b8c565b611817565b005b610467600480360381019061046291906136e9565b61194c565b6040516104749190613685565b60405180910390f35b610485612800565b6040516104929190613685565b60405180910390f35b6104b560048036038101906104b09190613c10565b61288c565b6040516104c29190613816565b60405180910390f35b6104e560048036038101906104e0919061395b565b6128ac565b005b61050160048036038101906104fc9190613c10565b612943565b60405161050e91906137ee565b60405180910390f35b61051f61296d565b60405161052c9190613685565b60405180910390f35b61054f600480360381019061054a9190613b04565b6129f9565b005b6001805461055e90613c7b565b80601f016020809104026020016040519081016040528092919081815260200182805461058a90613c7b565b80156105d55780601f106105ac576101008083540402835291602001916105d5565b820191905f5260205f20905b8154815290600101906020018083116105b857829003601f168201915b505050505081565b6006602052805f5260405f205f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600354821115801561061f57505f82115b15610807575f60085f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015610716575060075f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561074d576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8360065f8581526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040516107f99190613816565b60405180910390a3506108ea565b8160055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516108e19190613816565b60405180910390a35b6001905092915050565b7f00000000000000000000000000000000000000000000021e19e0c9bab240000081565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461099c576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600c90816109ab9190613e48565b5050565b60035481116110675760085f8281526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610a4d576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ab2576040517f9c8d2cd200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015610b70575060075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015610bd8575060065f8281526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b15610c0f576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610c17612b7e565b60045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610c629190613f44565b92505081905550610c71612b7e565b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508160085f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060065f8281526020019081526020015f205f6101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555f60095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600160095f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2080549050610dc79190613f44565b81548110610dd857610dd7613f77565b5b905f5260205f20015490508060095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600a5f8581526020019081526020015f205481548110610e4457610e43613f77565b5b905f5260205f20018190555060095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20805480610e9d57610e9c613fa4565b5b600190038181905f5260205f20015f90559055600a5f8381526020019081526020015f2054600a5f8381526020019081526020015f208190555060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2082908060018154018082558091505060019003905f5260205f20015f9091909190915055600160095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2080549050610f859190613f44565b600a5f8481526020019081526020015f2081905550818373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a48273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fe59fdd36d0d223c0c7d996db7ad796880f45e1936cb0bb7ac102e7082e03148761104c612b7e565b6040516110599190613816565b60405180910390a3506111a1565b5f60055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146111935781816111169190613f44565b60055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b61119e848484612bb1565b50505b505050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461122a576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3565b7f000000000000000000000000000000000000000000000000000000000000001281565b6112f48383836109af565b5f8273ffffffffffffffffffffffffffffffffffffffff163b141580156113dc575063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168273ffffffffffffffffffffffffffffffffffffffff1663150b7a023386856040518463ffffffff1660e01b815260040161137a93929190614004565b6020604051808303815f875af1158015611396573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113ba91906140a1565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614155b15611413576040517f3da6393100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b60035481565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146114a2576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6114ac8282612ef5565b5050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611534576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60085f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611625576040517fc5723b5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b6004602052805f5260405f205f915090505481565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6002805461166f90613c7b565b80601f016020809104026020016040519081016040528092919081815260200182805461169b90613c7b565b80156116e65780601f106116bd576101008083540402835291602001916116e6565b820191905f5260205f20905b8154815290600101906020018083116116c957829003601f168201915b505050505081565b600b602052805f5260405f205f915054906101000a900460ff1681565b8060075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516117f791906137ee565b60405180910390a35050565b5f61180f338484612bb1565b905092915050565b6118228585856109af565b5f8473ffffffffffffffffffffffffffffffffffffffff163b1415801561190e575063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168473ffffffffffffffffffffffffffffffffffffffff1663150b7a0233888787876040518663ffffffff1660e01b81526004016118ac9594939291906140f8565b6020604051808303815f875af11580156118c8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118ec91906140a1565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614155b15611945576040517f3da6393100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050505050565b60605f600d805461195c90613c7b565b9050111561199657600d61196f83612f19565b6040516020016119809291906141fe565b60405160208183030381529060405290506127fb565b5f826040516020016119a89190614241565b6040516020818303038152906040528051906020012060f01c90506060805f6109d8846119d59190614295565b61ffff1690505f6040518061034001604052806040518060400160405280600181526020017f410000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600181526020017f420000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600181526020017f430000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600181526020017f440000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600181526020017f450000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600181526020017f460000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600181526020017f470000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600181526020017f480000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600181526020017f490000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600181526020017f4a0000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600181526020017f4b0000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600181526020017f4c0000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600181526020017f4d0000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600181526020017f4e0000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600181526020017f4f0000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600181526020017f500000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600181526020017f510000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600181526020017f520000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600181526020017f530000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600181526020017f540000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600181526020017f550000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600181526020017f560000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600181526020017f570000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600181526020017f580000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600181526020017f590000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600181526020017f5a0000000000000000000000000000000000000000000000000000000000000081525081525090505f6040518061034001604052806040518060400160405280600581526020017f612e67696600000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600581526020017f622e67696600000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600581526020017f632e67696600000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600581526020017f642e67696600000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600581526020017f652e67696600000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600581526020017f662e67696600000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600581526020017f672e67696600000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600581526020017f682e67696600000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600581526020017f692e67696600000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600581526020017f6a2e67696600000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600581526020017f6b2e67696600000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600581526020017f6c2e67696600000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600581526020017f6d2e67696600000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600581526020017f6e2e67696600000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600581526020017f6f2e67696600000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600581526020017f702e67696600000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600581526020017f712e67696600000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600581526020017f722e67696600000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600581526020017f732e67696600000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600581526020017f742e67696600000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600581526020017f752e67696600000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600581526020017f762e67696600000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600581526020017f772e67696600000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600581526020017f782e67696600000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600581526020017f792e67696600000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600581526020017f7a2e6769660000000000000000000000000000000000000000000000000000008152508152509050601a831015612633578183601a811061260d5761260c613f77565b5b602002015193508083601a811061262757612626613f77565b5b602002015194506126a4565b6040518060400160405280600181526020017f5a0000000000000000000000000000000000000000000000000000000000000081525093506040518060400160405280600581526020017f7a2e67696600000000000000000000000000000000000000000000000000000081525094505b5f6126ae89612f19565b6040516020016126be91906142eb565b6040516020818303038152906040526040516020016126dd91906143f2565b604051602081830303815290604052600c876040516020016127009291906141fe565b604051602081830303815290604052604051602001612720929190614413565b60405160208183030381529060405290505f8560405160200161274391906144a6565b60405160208183030381529060405290505f6040518060400160405280600481526020017f227d5d7d00000000000000000000000000000000000000000000000000000000815250905082826040516020016127a0929190614413565b604051602081830303815290604052816040516020016127c1929190614413565b6040516020818303038152906040526040516020016127e091906144ed565b60405160208183030381529060405299505050505050505050505b919050565b600d805461280d90613c7b565b80601f016020809104026020016040519081016040528092919081815260200182805461283990613c7b565b80156128845780601f1061285b57610100808354040283529160200191612884565b820191905f5260205f20905b81548152906001019060200180831161286757829003601f168201915b505050505081565b6005602052815f5260405f20602052805f5260405f205f91509150505481565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612930576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600d908161293f9190613e48565b5050565b6007602052815f5260405f20602052805f5260405f205f915091509054906101000a900460ff1681565b600c805461297a90613c7b565b80601f01602080910402602001604051908101604052809291908181526020018280546129a690613c7b565b80156129f15780601f106129c8576101008083540402835291602001916129f1565b820191905f5260205f20905b8154815290600101906020018083116129d457829003601f168201915b505050505081565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612a7d576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612ae2576040517f49e27cff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b5f7f0000000000000000000000000000000000000000000000000000000000000012600a612bac9190614641565b905090565b5f80612bbb612b7e565b90505f60045f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f60045f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508460045f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254612c8b9190613f44565b925050819055508460045f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282540192505081905550600b5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16612daf575f8360045f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612d74919061468b565b8484612d80919061468b565b612d8a9190613f44565b90505f5b81811015612dac57612d9f89612fe3565b8080600101915050612d8e565b50505b600b5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16612e82575f8382612e0a919061468b565b8460045f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612e53919061468b565b612e5d9190613f44565b90505f5b81811015612e7f57612e7288613228565b8080600101915050612e61565b50505b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fe59fdd36d0d223c0c7d996db7ad796880f45e1936cb0bb7ac102e7082e03148787604051612edf9190613816565b60405180910390a3600193505050509392505050565b8160019081612f049190613e48565b508060029081612f149190613e48565b505050565b60605f6001612f27846134aa565b0190505f8167ffffffffffffffff811115612f4557612f44613837565b5b6040519080825280601f01601f191660200182016040528015612f775781602001600182028036833780820191505090505b5090505f82602001820190505b600115612fd8578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581612fcd57612fcc614268565b5b0494505f8503612f84575b819350505050919050565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603613048576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f60095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600160095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20805490506130d39190613f44565b815481106130e4576130e3613f77565b5b905f5260205f200154905060095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2080548061313c5761313b613fa4565b5b600190038181905f5260205f20015f90559055600a5f8281526020019081526020015f205f905560085f8281526020019081526020015f205f6101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560065f8281526020019081526020015f205f6101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055805f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361328d576040517f9c8d2cd200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60035f81548092919060010191905055505f60035490505f73ffffffffffffffffffffffffffffffffffffffff1660085f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613339576040517f23369fa600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8160085f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081908060018154018082558091505060019003905f5260205f20015f9091909190915055600160095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20805490506134369190613f44565b600a5f8381526020019081526020015f2081905550808273ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b5f805f90507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310613506577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816134fc576134fb614268565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310613543576d04ee2d6d415b85acef8100000000838161353957613538614268565b5b0492506020810190505b662386f26fc10000831061357257662386f26fc10000838161356857613567614268565b5b0492506010810190505b6305f5e100831061359b576305f5e100838161359157613590614268565b5b0492506008810190505b61271083106135c05761271083816135b6576135b5614268565b5b0492506004810190505b606483106135e357606483816135d9576135d8614268565b5b0492506002810190505b600a83106135f2576001810190505b80915050919050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015613632578082015181840152602081019050613617565b5f8484015250505050565b5f601f19601f8301169050919050565b5f613657826135fb565b6136618185613605565b9350613671818560208601613615565b61367a8161363d565b840191505092915050565b5f6020820190508181035f83015261369d818461364d565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f819050919050565b6136c8816136b6565b81146136d2575f80fd5b50565b5f813590506136e3816136bf565b92915050565b5f602082840312156136fe576136fd6136ae565b5b5f61370b848285016136d5565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61373d82613714565b9050919050565b61374d81613733565b82525050565b5f6020820190506137665f830184613744565b92915050565b61377581613733565b811461377f575f80fd5b50565b5f813590506137908161376c565b92915050565b5f80604083850312156137ac576137ab6136ae565b5b5f6137b985828601613782565b92505060206137ca858286016136d5565b9150509250929050565b5f8115159050919050565b6137e8816137d4565b82525050565b5f6020820190506138015f8301846137df565b92915050565b613810816136b6565b82525050565b5f6020820190506138295f830184613807565b92915050565b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61386d8261363d565b810181811067ffffffffffffffff8211171561388c5761388b613837565b5b80604052505050565b5f61389e6136a5565b90506138aa8282613864565b919050565b5f67ffffffffffffffff8211156138c9576138c8613837565b5b6138d28261363d565b9050602081019050919050565b828183375f83830152505050565b5f6138ff6138fa846138af565b613895565b90508281526020810184848401111561391b5761391a613833565b5b6139268482856138df565b509392505050565b5f82601f8301126139425761394161382f565b5b81356139528482602086016138ed565b91505092915050565b5f602082840312156139705761396f6136ae565b5b5f82013567ffffffffffffffff81111561398d5761398c6136b2565b5b6139998482850161392e565b91505092915050565b5f805f606084860312156139b9576139b86136ae565b5b5f6139c686828701613782565b93505060206139d786828701613782565b92505060406139e8868287016136d5565b9150509250925092565b5f60ff82169050919050565b613a07816139f2565b82525050565b5f602082019050613a205f8301846139fe565b92915050565b5f8060408385031215613a3c57613a3b6136ae565b5b5f83013567ffffffffffffffff811115613a5957613a586136b2565b5b613a658582860161392e565b925050602083013567ffffffffffffffff811115613a8657613a856136b2565b5b613a928582860161392e565b9150509250929050565b613aa5816137d4565b8114613aaf575f80fd5b50565b5f81359050613ac081613a9c565b92915050565b5f8060408385031215613adc57613adb6136ae565b5b5f613ae985828601613782565b9250506020613afa85828601613ab2565b9150509250929050565b5f60208284031215613b1957613b186136ae565b5b5f613b2684828501613782565b91505092915050565b5f80fd5b5f80fd5b5f8083601f840112613b4c57613b4b61382f565b5b8235905067ffffffffffffffff811115613b6957613b68613b2f565b5b602083019150836001820283011115613b8557613b84613b33565b5b9250929050565b5f805f805f60808688031215613ba557613ba46136ae565b5b5f613bb288828901613782565b9550506020613bc388828901613782565b9450506040613bd4888289016136d5565b935050606086013567ffffffffffffffff811115613bf557613bf46136b2565b5b613c0188828901613b37565b92509250509295509295909350565b5f8060408385031215613c2657613c256136ae565b5b5f613c3385828601613782565b9250506020613c4485828601613782565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680613c9257607f821691505b602082108103613ca557613ca4613c4e565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302613d077fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613ccc565b613d118683613ccc565b95508019841693508086168417925050509392505050565b5f819050919050565b5f613d4c613d47613d42846136b6565b613d29565b6136b6565b9050919050565b5f819050919050565b613d6583613d32565b613d79613d7182613d53565b848454613cd8565b825550505050565b5f90565b613d8d613d81565b613d98818484613d5c565b505050565b5b81811015613dbb57613db05f82613d85565b600181019050613d9e565b5050565b601f821115613e0057613dd181613cab565b613dda84613cbd565b81016020851015613de9578190505b613dfd613df585613cbd565b830182613d9d565b50505b505050565b5f82821c905092915050565b5f613e205f1984600802613e05565b1980831691505092915050565b5f613e388383613e11565b9150826002028217905092915050565b613e51826135fb565b67ffffffffffffffff811115613e6a57613e69613837565b5b613e748254613c7b565b613e7f828285613dbf565b5f60209050601f831160018114613eb0575f8415613e9e578287015190505b613ea88582613e2d565b865550613f0f565b601f198416613ebe86613cab565b5f5b82811015613ee557848901518255600182019150602085019450602081019050613ec0565b86831015613f025784890151613efe601f891682613e11565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613f4e826136b6565b9150613f59836136b6565b9250828203905081811115613f7157613f70613f17565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b5f82825260208201905092915050565b50565b5f613fef5f83613fd1565b9150613ffa82613fe1565b5f82019050919050565b5f6080820190506140175f830186613744565b6140246020830185613744565b6140316040830184613807565b818103606083015261404281613fe4565b9050949350505050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6140808161404c565b811461408a575f80fd5b50565b5f8151905061409b81614077565b92915050565b5f602082840312156140b6576140b56136ae565b5b5f6140c38482850161408d565b91505092915050565b5f6140d78385613fd1565b93506140e48385846138df565b6140ed8361363d565b840190509392505050565b5f60808201905061410b5f830188613744565b6141186020830187613744565b6141256040830186613807565b81810360608301526141388184866140cc565b90509695505050505050565b5f81905092915050565b5f815461415a81613c7b565b6141648186614144565b9450600182165f811461417e5760018114614193576141c5565b60ff19831686528115158202860193506141c5565b61419c85613cab565b5f5b838110156141bd5781548189015260018201915060208101905061419e565b838801955050505b50505092915050565b5f6141d8826135fb565b6141e28185614144565b93506141f2818560208601613615565b80840191505092915050565b5f614209828561414e565b915061421582846141ce565b91508190509392505050565b5f819050919050565b61423b614236826136b6565b614221565b82525050565b5f61424c828461422a565b60208201915081905092915050565b5f61ffff82169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61429f8261425b565b91506142aa8361425b565b9250826142ba576142b9614268565b5b828204905092915050565b7f7b226e616d65223a2022416c7068616265742023000000000000000000000000815250565b5f6142f5826142c5565b60148201915061430582846141ce565b915081905092915050565b7f222c226465736372697074696f6e223a224120636f6c6c656374696f6e206f665f8201527f2031302c303030207265706c6963616e747320656e61626c656420627920455260208201527f433430342c20616e206578706572696d656e74616c20746f6b656e207374616e60408201527f646172642e222c2265787465726e616c5f75726c223a2268747470733a2f2f3460608201527f3034616c7068616265742e78797a222c22696d616765223a2200000000000000608082015250565b5f6143dc609983614144565b91506143e782614310565b609982019050919050565b5f6143fd82846141ce565b9150614408826143d0565b915081905092915050565b5f61441e82856141ce565b915061442a82846141ce565b91508190509392505050565b7f222c2261747472696275746573223a5b7b2274726169745f74797065223a224c5f8201527f6574746572222c2276616c7565223a2200000000000000000000000000000000602082015250565b5f614490603083614144565b915061449b82614436565b603082019050919050565b5f6144b082614484565b91506144bc82846141ce565b915081905092915050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b757466382c0000000000815250565b5f6144f7826144c7565b601b8201915061450782846141ce565b915081905092915050565b5f8160011c9050919050565b5f808291508390505b60018511156145675780860481111561454357614542613f17565b5b60018516156145525780820291505b808102905061456085614512565b9450614527565b94509492505050565b5f8261457f576001905061463a565b8161458c575f905061463a565b81600181146145a257600281146145ac576145db565b600191505061463a565b60ff8411156145be576145bd613f17565b5b8360020a9150848211156145d5576145d4613f17565b5b5061463a565b5060208310610133831016604e8410600b84101617156146105782820a90508381111561460b5761460a613f17565b5b61463a565b61461d848484600161451e565b9250905081840481111561463457614633613f17565b5b81810290505b9392505050565b5f61464b826136b6565b9150614656836139f2565b92506146837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484614570565b905092915050565b5f614695826136b6565b91506146a0836136b6565b9250826146b0576146af614268565b5b82820490509291505056fea264697066735822122087af6265b0b957b82efa28eccd974a7ec491374fb40ce4d822ad55726f8e09e264736f6c63430008180033
0x60c060405234801562000010575f80fd5b5060405162004f7238038062004f728339818101604052810190620000369190620002bd565b6040518060400160405280600881526020017f416c7068616265740000000000000000000000000000000000000000000000008152506040518060400160405280600881526020017f414c504841424554000000000000000000000000000000000000000000000000815250601261271084805f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036200010f576040517f49e27cff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3508460019081620001ba919062000551565b508360029081620001cc919062000551565b508260ff1660808160ff1681525050608051600a620001ec9190620007be565b82620001f991906200080e565b60a08181525050505050505069021e19e0c9bab240000060045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505062000858565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000287826200025c565b9050919050565b62000299816200027b565b8114620002a4575f80fd5b50565b5f81519050620002b7816200028e565b92915050565b5f60208284031215620002d557620002d462000258565b5b5f620002e484828501620002a7565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200036957607f821691505b6020821081036200037f576200037e62000324565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620003e37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620003a6565b620003ef8683620003a6565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000439620004336200042d8462000407565b62000410565b62000407565b9050919050565b5f819050919050565b620004548362000419565b6200046c620004638262000440565b848454620003b2565b825550505050565b5f90565b6200048262000474565b6200048f81848462000449565b505050565b5b81811015620004b657620004aa5f8262000478565b60018101905062000495565b5050565b601f8211156200050557620004cf8162000385565b620004da8462000397565b81016020851015620004ea578190505b62000502620004f98562000397565b83018262000494565b50505b505050565b5f82821c905092915050565b5f620005275f19846008026200050a565b1980831691505092915050565b5f62000541838362000516565b9150826002028217905092915050565b6200055c82620002ed565b67ffffffffffffffff811115620005785762000577620002f7565b5b62000584825462000351565b62000591828285620004ba565b5f60209050601f831160018114620005c7575f8415620005b2578287015190505b620005be858262000534565b8655506200062d565b601f198416620005d78662000385565b5f5b828110156200060057848901518255600182019150602085019450602081019050620005d9565b868310156200062057848901516200061c601f89168262000516565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620006bf5780860481111562000697576200069662000635565b5b6001851615620006a75780820291505b8081029050620006b78562000662565b945062000677565b94509492505050565b5f82620006d95760019050620007ab565b81620006e8575f9050620007ab565b81600181146200070157600281146200070c5762000742565b6001915050620007ab565b60ff84111562000721576200072062000635565b5b8360020a9150848211156200073b576200073a62000635565b5b50620007ab565b5060208310610133831016604e8410600b84101617156200077c5782820a90508381111562000776576200077562000635565b5b620007ab565b6200078b84848460016200066e565b92509050818404811115620007a557620007a462000635565b5b81810290505b9392505050565b5f60ff82169050919050565b5f620007ca8262000407565b9150620007d783620007b2565b9250620008067fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620006c8565b905092915050565b5f6200081a8262000407565b9150620008278362000407565b9250828202620008378162000407565b9150828204841483151762000851576200085062000635565b5b5092915050565b60805160a0516146f1620008815f395f6108f601525f81816112c70152612b8101526146f15ff3fe608060405234801561000f575f80fd5b50600436106101a7575f3560e01c806370a08231116100f7578063c87b56dd11610095578063e0df5b6f1161006f578063e0df5b6f146104cb578063e985e9c5146104e7578063f28ca1dd14610517578063f2fde38b14610535576101a7565b8063c87b56dd1461044d578063d547cfb71461047d578063dd62ed3e1461049b576101a7565b80639b19251a116100d15780639b19251a146103b5578063a22cb465146103e5578063a9059cbb14610401578063b88d4fde14610431576101a7565b806370a08231146103495780638da5cb5b1461037957806395d89b4114610397576101a7565b80632b968958116101645780634f02c4201161013e5780634f02c420146102c3578063504334c2146102e157806353d6fd59146102fd5780636352211e14610319576101a7565b80632b9689581461027f578063313ce5671461028957806342842e0e146102a7576101a7565b806306fdde03146101ab578063081812fc146101c9578063095ea7b3146101f957806318160ddd1461022957806318d217c31461024757806323b872dd14610263575b5f80fd5b6101b3610551565b6040516101c09190613685565b60405180910390f35b6101e360048036038101906101de91906136e9565b6105dd565b6040516101f09190613753565b60405180910390f35b610213600480360381019061020e9190613796565b61060d565b60405161022091906137ee565b60405180910390f35b6102316108f4565b60405161023e9190613816565b60405180910390f35b610261600480360381019061025c919061395b565b610918565b005b61027d600480360381019061027891906139a2565b6109af565b005b6102876111a6565b005b6102916112c5565b60405161029e9190613a0d565b60405180910390f35b6102c160048036038101906102bc91906139a2565b6112e9565b005b6102cb611418565b6040516102d89190613816565b60405180910390f35b6102fb60048036038101906102f69190613a26565b61141e565b005b61031760048036038101906103129190613ac6565b6114b0565b005b610333600480360381019061032e91906136e9565b61158c565b6040516103409190613753565b60405180910390f35b610363600480360381019061035e9190613b04565b61162a565b6040516103709190613816565b60405180910390f35b61038161163f565b60405161038e9190613753565b60405180910390f35b61039f611662565b6040516103ac9190613685565b60405180910390f35b6103cf60048036038101906103ca9190613b04565b6116ee565b6040516103dc91906137ee565b60405180910390f35b6103ff60048036038101906103fa9190613ac6565b61170b565b005b61041b60048036038101906104169190613796565b611803565b60405161042891906137ee565b60405180910390f35b61044b60048036038101906104469190613b8c565b611817565b005b610467600480360381019061046291906136e9565b61194c565b6040516104749190613685565b60405180910390f35b610485612800565b6040516104929190613685565b60405180910390f35b6104b560048036038101906104b09190613c10565b61288c565b6040516104c29190613816565b60405180910390f35b6104e560048036038101906104e0919061395b565b6128ac565b005b61050160048036038101906104fc9190613c10565b612943565b60405161050e91906137ee565b60405180910390f35b61051f61296d565b60405161052c9190613685565b60405180910390f35b61054f600480360381019061054a9190613b04565b6129f9565b005b6001805461055e90613c7b565b80601f016020809104026020016040519081016040528092919081815260200182805461058a90613c7b565b80156105d55780601f106105ac576101008083540402835291602001916105d5565b820191905f5260205f20905b8154815290600101906020018083116105b857829003601f168201915b505050505081565b6006602052805f5260405f205f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600354821115801561061f57505f82115b15610807575f60085f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015610716575060075f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561074d576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8360065f8581526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040516107f99190613816565b60405180910390a3506108ea565b8160055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516108e19190613816565b60405180910390a35b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461099c576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600c90816109ab9190613e48565b5050565b60035481116110675760085f8281526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610a4d576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ab2576040517f9c8d2cd200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015610b70575060075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015610bd8575060065f8281526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b15610c0f576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610c17612b7e565b60045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610c629190613f44565b92505081905550610c71612b7e565b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508160085f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060065f8281526020019081526020015f205f6101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555f60095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600160095f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2080549050610dc79190613f44565b81548110610dd857610dd7613f77565b5b905f5260205f20015490508060095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600a5f8581526020019081526020015f205481548110610e4457610e43613f77565b5b905f5260205f20018190555060095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20805480610e9d57610e9c613fa4565b5b600190038181905f5260205f20015f90559055600a5f8381526020019081526020015f2054600a5f8381526020019081526020015f208190555060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2082908060018154018082558091505060019003905f5260205f20015f9091909190915055600160095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2080549050610f859190613f44565b600a5f8481526020019081526020015f2081905550818373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a48273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fe59fdd36d0d223c0c7d996db7ad796880f45e1936cb0bb7ac102e7082e03148761104c612b7e565b6040516110599190613816565b60405180910390a3506111a1565b5f60055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146111935781816111169190613f44565b60055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b61119e848484612bb1565b50505b505050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461122a576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3565b7f000000000000000000000000000000000000000000000000000000000000000081565b6112f48383836109af565b5f8273ffffffffffffffffffffffffffffffffffffffff163b141580156113dc575063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168273ffffffffffffffffffffffffffffffffffffffff1663150b7a023386856040518463ffffffff1660e01b815260040161137a93929190614004565b6020604051808303815f875af1158015611396573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113ba91906140a1565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614155b15611413576040517f3da6393100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b60035481565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146114a2576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6114ac8282612ef5565b5050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611534576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60085f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611625576040517fc5723b5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b6004602052805f5260405f205f915090505481565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6002805461166f90613c7b565b80601f016020809104026020016040519081016040528092919081815260200182805461169b90613c7b565b80156116e65780601f106116bd576101008083540402835291602001916116e6565b820191905f5260205f20905b8154815290600101906020018083116116c957829003601f168201915b505050505081565b600b602052805f5260405f205f915054906101000a900460ff1681565b8060075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516117f791906137ee565b60405180910390a35050565b5f61180f338484612bb1565b905092915050565b6118228585856109af565b5f8473ffffffffffffffffffffffffffffffffffffffff163b1415801561190e575063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168473ffffffffffffffffffffffffffffffffffffffff1663150b7a0233888787876040518663ffffffff1660e01b81526004016118ac9594939291906140f8565b6020604051808303815f875af11580156118c8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118ec91906140a1565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614155b15611945576040517f3da6393100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050505050565b60605f600d805461195c90613c7b565b9050111561199657600d61196f83612f19565b6040516020016119809291906141fe565b60405160208183030381529060405290506127fb565b5f826040516020016119a89190614241565b6040516020818303038152906040528051906020012060f01c90506060805f6109d8846119d59190614295565b61ffff1690505f6040518061034001604052806040518060400160405280600181526020017f410000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600181526020017f420000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600181526020017f430000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600181526020017f440000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600181526020017f450000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600181526020017f460000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600181526020017f470000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600181526020017f480000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600181526020017f490000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600181526020017f4a0000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600181526020017f4b0000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600181526020017f4c0000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600181526020017f4d0000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600181526020017f4e0000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600181526020017f4f0000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600181526020017f500000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600181526020017f510000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600181526020017f520000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600181526020017f530000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600181526020017f540000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600181526020017f550000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600181526020017f560000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600181526020017f570000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600181526020017f580000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600181526020017f590000000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600181526020017f5a0000000000000000000000000000000000000000000000000000000000000081525081525090505f6040518061034001604052806040518060400160405280600581526020017f612e67696600000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600581526020017f622e67696600000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600581526020017f632e67696600000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600581526020017f642e67696600000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600581526020017f652e67696600000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600581526020017f662e67696600000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600581526020017f672e67696600000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600581526020017f682e67696600000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600581526020017f692e67696600000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600581526020017f6a2e67696600000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600581526020017f6b2e67696600000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600581526020017f6c2e67696600000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600581526020017f6d2e67696600000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600581526020017f6e2e67696600000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600581526020017f6f2e67696600000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600581526020017f702e67696600000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600581526020017f712e67696600000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600581526020017f722e67696600000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600581526020017f732e67696600000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600581526020017f742e67696600000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600581526020017f752e67696600000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600581526020017f762e67696600000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600581526020017f772e67696600000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600581526020017f782e67696600000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600581526020017f792e67696600000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600581526020017f7a2e6769660000000000000000000000000000000000000000000000000000008152508152509050601a831015612633578183601a811061260d5761260c613f77565b5b602002015193508083601a811061262757612626613f77565b5b602002015194506126a4565b6040518060400160405280600181526020017f5a0000000000000000000000000000000000000000000000000000000000000081525093506040518060400160405280600581526020017f7a2e67696600000000000000000000000000000000000000000000000000000081525094505b5f6126ae89612f19565b6040516020016126be91906142eb565b6040516020818303038152906040526040516020016126dd91906143f2565b604051602081830303815290604052600c876040516020016127009291906141fe565b604051602081830303815290604052604051602001612720929190614413565b60405160208183030381529060405290505f8560405160200161274391906144a6565b60405160208183030381529060405290505f6040518060400160405280600481526020017f227d5d7d00000000000000000000000000000000000000000000000000000000815250905082826040516020016127a0929190614413565b604051602081830303815290604052816040516020016127c1929190614413565b6040516020818303038152906040526040516020016127e091906144ed565b60405160208183030381529060405299505050505050505050505b919050565b600d805461280d90613c7b565b80601f016020809104026020016040519081016040528092919081815260200182805461283990613c7b565b80156128845780601f1061285b57610100808354040283529160200191612884565b820191905f5260205f20905b81548152906001019060200180831161286757829003601f168201915b505050505081565b6005602052815f5260405f20602052805f5260405f205f91509150505481565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612930576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600d908161293f9190613e48565b5050565b6007602052815f5260405f20602052805f5260405f205f915091509054906101000a900460ff1681565b600c805461297a90613c7b565b80601f01602080910402602001604051908101604052809291908181526020018280546129a690613c7b565b80156129f15780601f106129c8576101008083540402835291602001916129f1565b820191905f5260205f20905b8154815290600101906020018083116129d457829003601f168201915b505050505081565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612a7d576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612ae2576040517f49e27cff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b5f7f0000000000000000000000000000000000000000000000000000000000000000600a612bac9190614641565b905090565b5f80612bbb612b7e565b90505f60045f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f60045f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508460045f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254612c8b9190613f44565b925050819055508460045f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282540192505081905550600b5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16612daf575f8360045f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612d74919061468b565b8484612d80919061468b565b612d8a9190613f44565b90505f5b81811015612dac57612d9f89612fe3565b8080600101915050612d8e565b50505b600b5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16612e82575f8382612e0a919061468b565b8460045f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612e53919061468b565b612e5d9190613f44565b90505f5b81811015612e7f57612e7288613228565b8080600101915050612e61565b50505b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fe59fdd36d0d223c0c7d996db7ad796880f45e1936cb0bb7ac102e7082e03148787604051612edf9190613816565b60405180910390a3600193505050509392505050565b8160019081612f049190613e48565b508060029081612f149190613e48565b505050565b60605f6001612f27846134aa565b0190505f8167ffffffffffffffff811115612f4557612f44613837565b5b6040519080825280601f01601f191660200182016040528015612f775781602001600182028036833780820191505090505b5090505f82602001820190505b600115612fd8578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581612fcd57612fcc614268565b5b0494505f8503612f84575b819350505050919050565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603613048576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f60095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600160095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20805490506130d39190613f44565b815481106130e4576130e3613f77565b5b905f5260205f200154905060095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2080548061313c5761313b613fa4565b5b600190038181905f5260205f20015f90559055600a5f8281526020019081526020015f205f905560085f8281526020019081526020015f205f6101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560065f8281526020019081526020015f205f6101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055805f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361328d576040517f9c8d2cd200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60035f81548092919060010191905055505f60035490505f73ffffffffffffffffffffffffffffffffffffffff1660085f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613339576040517f23369fa600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8160085f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081908060018154018082558091505060019003905f5260205f20015f9091909190915055600160095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20805490506134369190613f44565b600a5f8381526020019081526020015f2081905550808273ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b5f805f90507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310613506577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816134fc576134fb614268565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310613543576d04ee2d6d415b85acef8100000000838161353957613538614268565b5b0492506020810190505b662386f26fc10000831061357257662386f26fc10000838161356857613567614268565b5b0492506010810190505b6305f5e100831061359b576305f5e100838161359157613590614268565b5b0492506008810190505b61271083106135c05761271083816135b6576135b5614268565b5b0492506004810190505b606483106135e357606483816135d9576135d8614268565b5b0492506002810190505b600a83106135f2576001810190505b80915050919050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015613632578082015181840152602081019050613617565b5f8484015250505050565b5f601f19601f8301169050919050565b5f613657826135fb565b6136618185613605565b9350613671818560208601613615565b61367a8161363d565b840191505092915050565b5f6020820190508181035f83015261369d818461364d565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f819050919050565b6136c8816136b6565b81146136d2575f80fd5b50565b5f813590506136e3816136bf565b92915050565b5f602082840312156136fe576136fd6136ae565b5b5f61370b848285016136d5565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61373d82613714565b9050919050565b61374d81613733565b82525050565b5f6020820190506137665f830184613744565b92915050565b61377581613733565b811461377f575f80fd5b50565b5f813590506137908161376c565b92915050565b5f80604083850312156137ac576137ab6136ae565b5b5f6137b985828601613782565b92505060206137ca858286016136d5565b9150509250929050565b5f8115159050919050565b6137e8816137d4565b82525050565b5f6020820190506138015f8301846137df565b92915050565b613810816136b6565b82525050565b5f6020820190506138295f830184613807565b92915050565b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61386d8261363d565b810181811067ffffffffffffffff8211171561388c5761388b613837565b5b80604052505050565b5f61389e6136a5565b90506138aa8282613864565b919050565b5f67ffffffffffffffff8211156138c9576138c8613837565b5b6138d28261363d565b9050602081019050919050565b828183375f83830152505050565b5f6138ff6138fa846138af565b613895565b90508281526020810184848401111561391b5761391a613833565b5b6139268482856138df565b509392505050565b5f82601f8301126139425761394161382f565b5b81356139528482602086016138ed565b91505092915050565b5f602082840312156139705761396f6136ae565b5b5f82013567ffffffffffffffff81111561398d5761398c6136b2565b5b6139998482850161392e565b91505092915050565b5f805f606084860312156139b9576139b86136ae565b5b5f6139c686828701613782565b93505060206139d786828701613782565b92505060406139e8868287016136d5565b9150509250925092565b5f60ff82169050919050565b613a07816139f2565b82525050565b5f602082019050613a205f8301846139fe565b92915050565b5f8060408385031215613a3c57613a3b6136ae565b5b5f83013567ffffffffffffffff811115613a5957613a586136b2565b5b613a658582860161392e565b925050602083013567ffffffffffffffff811115613a8657613a856136b2565b5b613a928582860161392e565b9150509250929050565b613aa5816137d4565b8114613aaf575f80fd5b50565b5f81359050613ac081613a9c565b92915050565b5f8060408385031215613adc57613adb6136ae565b5b5f613ae985828601613782565b9250506020613afa85828601613ab2565b9150509250929050565b5f60208284031215613b1957613b186136ae565b5b5f613b2684828501613782565b91505092915050565b5f80fd5b5f80fd5b5f8083601f840112613b4c57613b4b61382f565b5b8235905067ffffffffffffffff811115613b6957613b68613b2f565b5b602083019150836001820283011115613b8557613b84613b33565b5b9250929050565b5f805f805f60808688031215613ba557613ba46136ae565b5b5f613bb288828901613782565b9550506020613bc388828901613782565b9450506040613bd4888289016136d5565b935050606086013567ffffffffffffffff811115613bf557613bf46136b2565b5b613c0188828901613b37565b92509250509295509295909350565b5f8060408385031215613c2657613c256136ae565b5b5f613c3385828601613782565b9250506020613c4485828601613782565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680613c9257607f821691505b602082108103613ca557613ca4613c4e565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302613d077fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613ccc565b613d118683613ccc565b95508019841693508086168417925050509392505050565b5f819050919050565b5f613d4c613d47613d42846136b6565b613d29565b6136b6565b9050919050565b5f819050919050565b613d6583613d32565b613d79613d7182613d53565b848454613cd8565b825550505050565b5f90565b613d8d613d81565b613d98818484613d5c565b505050565b5b81811015613dbb57613db05f82613d85565b600181019050613d9e565b5050565b601f821115613e0057613dd181613cab565b613dda84613cbd565b81016020851015613de9578190505b613dfd613df585613cbd565b830182613d9d565b50505b505050565b5f82821c905092915050565b5f613e205f1984600802613e05565b1980831691505092915050565b5f613e388383613e11565b9150826002028217905092915050565b613e51826135fb565b67ffffffffffffffff811115613e6a57613e69613837565b5b613e748254613c7b565b613e7f828285613dbf565b5f60209050601f831160018114613eb0575f8415613e9e578287015190505b613ea88582613e2d565b865550613f0f565b601f198416613ebe86613cab565b5f5b82811015613ee557848901518255600182019150602085019450602081019050613ec0565b86831015613f025784890151613efe601f891682613e11565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613f4e826136b6565b9150613f59836136b6565b9250828203905081811115613f7157613f70613f17565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b5f82825260208201905092915050565b50565b5f613fef5f83613fd1565b9150613ffa82613fe1565b5f82019050919050565b5f6080820190506140175f830186613744565b6140246020830185613744565b6140316040830184613807565b818103606083015261404281613fe4565b9050949350505050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6140808161404c565b811461408a575f80fd5b50565b5f8151905061409b81614077565b92915050565b5f602082840312156140b6576140b56136ae565b5b5f6140c38482850161408d565b91505092915050565b5f6140d78385613fd1565b93506140e48385846138df565b6140ed8361363d565b840190509392505050565b5f60808201905061410b5f830188613744565b6141186020830187613744565b6141256040830186613807565b81810360608301526141388184866140cc565b90509695505050505050565b5f81905092915050565b5f815461415a81613c7b565b6141648186614144565b9450600182165f811461417e5760018114614193576141c5565b60ff19831686528115158202860193506141c5565b61419c85613cab565b5f5b838110156141bd5781548189015260018201915060208101905061419e565b838801955050505b50505092915050565b5f6141d8826135fb565b6141e28185614144565b93506141f2818560208601613615565b80840191505092915050565b5f614209828561414e565b915061421582846141ce565b91508190509392505050565b5f819050919050565b61423b614236826136b6565b614221565b82525050565b5f61424c828461422a565b60208201915081905092915050565b5f61ffff82169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61429f8261425b565b91506142aa8361425b565b9250826142ba576142b9614268565b5b828204905092915050565b7f7b226e616d65223a2022416c7068616265742023000000000000000000000000815250565b5f6142f5826142c5565b60148201915061430582846141ce565b915081905092915050565b7f222c226465736372697074696f6e223a224120636f6c6c656374696f6e206f665f8201527f2031302c303030207265706c6963616e747320656e61626c656420627920455260208201527f433430342c20616e206578706572696d656e74616c20746f6b656e207374616e60408201527f646172642e222c2265787465726e616c5f75726c223a2268747470733a2f2f3460608201527f3034616c7068616265742e78797a222c22696d616765223a2200000000000000608082015250565b5f6143dc609983614144565b91506143e782614310565b609982019050919050565b5f6143fd82846141ce565b9150614408826143d0565b915081905092915050565b5f61441e82856141ce565b915061442a82846141ce565b91508190509392505050565b7f222c2261747472696275746573223a5b7b2274726169745f74797065223a224c5f8201527f6574746572222c2276616c7565223a2200000000000000000000000000000000602082015250565b5f614490603083614144565b915061449b82614436565b603082019050919050565b5f6144b082614484565b91506144bc82846141ce565b915081905092915050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b757466382c0000000000815250565b5f6144f7826144c7565b601b8201915061450782846141ce565b915081905092915050565b5f8160011c9050919050565b5f808291508390505b60018511156145675780860481111561454357614542613f17565b5b60018516156145525780820291505b808102905061456085614512565b9450614527565b94509492505050565b5f8261457f576001905061463a565b8161458c575f905061463a565b81600181146145a257600281146145ac576145db565b600191505061463a565b60ff8411156145be576145bd613f17565b5b8360020a9150848211156145d5576145d4613f17565b5b5061463a565b5060208310610133831016604e8410600b84101617156146105782820a90508381111561460b5761460a613f17565b5b61463a565b61461d848484600161451e565b9250905081840481111561463457614633613f17565b5b81810290505b9392505050565b5f61464b826136b6565b9150614656836139f2565b92506146837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484614570565b905092915050565b5f614695826136b6565b91506146a0836136b6565b9250826146b0576146af614268565b5b82820490509291505056fea264697066735822122087af6265b0b957b82efa28eccd974a7ec491374fb40ce4d822ad55726f8e09e264736f6c63430008180033000000000000000000000000071d9fe61ce306aef04b7889780f889f444d7bf7