608060405234801561000f575f80fd5b5060405161393238038061393283398181016040528101906100319190610232565b80610041816100d260201b60201c565b506040518060400160405280600c81526020017f706177616e657263313135350000000000000000000000000000000000000000815250600890816100869190610486565b506040518060400160405280600381526020017f5041570000000000000000000000000000000000000000000000000000000000815250600990816100cb9190610486565b5050610555565b80600290816100e19190610486565b5050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610144826100fe565b810181811067ffffffffffffffff821117156101635761016261010e565b5b80604052505050565b5f6101756100e5565b9050610181828261013b565b919050565b5f67ffffffffffffffff8211156101a05761019f61010e565b5b6101a9826100fe565b9050602081019050919050565b8281835e5f83830152505050565b5f6101d66101d184610186565b61016c565b9050828152602081018484840111156101f2576101f16100fa565b5b6101fd8482856101b6565b509392505050565b5f82601f830112610219576102186100f6565b5b81516102298482602086016101c4565b91505092915050565b5f60208284031215610247576102466100ee565b5b5f82015167ffffffffffffffff811115610264576102636100f2565b5b61027084828501610205565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806102c757607f821691505b6020821081036102da576102d9610283565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261033c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610301565b6103468683610301565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61038a6103856103808461035e565b610367565b61035e565b9050919050565b5f819050919050565b6103a383610370565b6103b76103af82610391565b84845461030d565b825550505050565b5f90565b6103cb6103bf565b6103d681848461039a565b505050565b5b818110156103f9576103ee5f826103c3565b6001810190506103dc565b5050565b601f82111561043e5761040f816102e0565b610418846102f2565b81016020851015610427578190505b61043b610433856102f2565b8301826103db565b50505b505050565b5f82821c905092915050565b5f61045e5f1984600802610443565b1980831691505092915050565b5f610476838361044f565b9150826002028217905092915050565b61048f82610279565b67ffffffffffffffff8111156104a8576104a761010e565b5b6104b282546102b0565b6104bd8282856103fd565b5f60209050601f8311600181146104ee575f84156104dc578287015190505b6104e6858261046b565b86555061054d565b601f1984166104fc866102e0565b5f5b82811015610523578489015182556001820191506020850194506020810190506104fe565b86831015610540578489015161053c601f89168261044f565b8355505b6001600288020188555050505b505050505050565b6133d0806105625f395ff3fe608060405234801561000f575f80fd5b506004361061011e575f3560e01c80636804a958116100ab578063bf89cfd71161006f578063bf89cfd71461033c578063d61019801461036e578063e985e9c51461038c578063f242432a146103bc578063fdbda0ec146103d85761011e565b80636804a9581461028457806376f01ccd146102a25780638ad91345146102d257806395d89b4114610302578063a22cb465146103205761011e565b806306fdde03116100f257806306fdde03146101ce5780630e89341c146101ec5780631b3efe851461021c5780632eb2c2d6146102385780634e1273f4146102545761011e565b8062fdd58e1461012257806301ffc9a7146101525780630471735814610182578063059dfe13146101b2575b5f80fd5b61013c60048036038101906101379190612176565b61040a565b60405161014991906121c3565b60405180910390f35b61016c60048036038101906101679190612231565b61045f565b6040516101799190612276565b60405180910390f35b61019c6004803603810190610197919061228f565b610540565b6040516101a991906123c0565b60405180910390f35b6101cc60048036038101906101c7919061251c565b610615565b005b6101d6610728565b6040516101e391906125c3565b60405180910390f35b6102066004803603810190610201919061228f565b6107b4565b60405161021391906125c3565b60405180910390f35b610236600480360381019061023191906125e3565b610846565b005b610252600480360381019061024d919061279f565b6109d5565b005b61026e6004803603810190610269919061292a565b610a7c565b60405161027b9190612a48565b60405180910390f35b61028c610b83565b6040516102999190612bb8565b60405180910390f35b6102bc60048036038101906102b7919061228f565b610d35565b6040516102c991906125c3565b60405180910390f35b6102ec60048036038101906102e7919061228f565b610dd0565b6040516102f991906125c3565b60405180910390f35b61030a610e71565b60405161031791906125c3565b60405180910390f35b61033a60048036038101906103359190612c02565b610efd565b005b61035660048036038101906103519190612c40565b610f13565b60405161036593929190612c8d565b60405180910390f35b610376610f72565b6040516103839190612bb8565b60405180910390f35b6103a660048036038101906103a19190612cc2565b61122b565b6040516103b39190612276565b60405180910390f35b6103d660048036038101906103d19190612d00565b6112b9565b005b6103f260048036038101906103ed919061228f565b611360565b60405161040193929190612d93565b60405180910390f35b5f805f8381526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f7fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061052957507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061053957506105388261142b565b5b9050919050565b606060045f8381526020019081526020015f20805480602002602001604051908101604052809291908181526020015f905b8282101561060a578382905f5260205f2090600302016040518060600160405290815f820154815260200160018201548152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152505081526020019060010190610572565b505050509050919050565b5f6106206007611494565b905061062c60076114a0565b60405180606001604052808281526020018381526020013373ffffffffffffffffffffffffffffffffffffffff1681525060035f8381526020019081526020015f205f820151815f0155602082015181600101908161068b9190612fc9565b506040820151816002015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509050503373ffffffffffffffffffffffffffffffffffffffff16817f28264f4036324f7af9abd02761740048265f0c980737a3f97365dad3162cbe658460405161071c91906125c3565b60405180910390a35050565b6008805461073590612dfc565b80601f016020809104026020016040519081016040528092919081815260200182805461076190612dfc565b80156107ac5780601f10610783576101008083540402835291602001916107ac565b820191905f5260205f20905b81548152906001019060200180831161078f57829003601f168201915b505050505081565b6060600280546107c390612dfc565b80601f01602080910402602001604051908101604052809291908181526020018280546107ef90612dfc565b801561083a5780601f106108115761010080835404028352916020019161083a565b820191905f5260205f20905b81548152906001019060200180831161081d57829003601f168201915b50505050509050919050565b5f6108516006611494565b905061085d60066114a0565b61089f338260016040518060400160405280600381526020017f30783000000000000000000000000000000000000000000000000000000000008152506114b4565b60045f8481526020019081526020015f2060405180606001604052808381526020018581526020013373ffffffffffffffffffffffffffffffffffffffff16815250908060018154018082558091505060019003905f5260205f2090600302015f909190919091505f820151815f0155602082015181600101556040820151816002015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050508160055f8381526020019081526020015f20908161097f9190612fc9565b503373ffffffffffffffffffffffffffffffffffffffff1683827f38c57b6c4228d1f7c0c7b22c24aea16a8a5d3ba1e6ea2df92b7886554876703e856040516109c891906125c3565b60405180910390a4505050565b5f6109de611549565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015610a235750610a21868261122b565b155b15610a675780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401610a5e929190613098565b60405180910390fd5b610a748686868686611550565b505050505050565b60608151835114610ac857815183516040517f5b059991000000000000000000000000000000000000000000000000000000008152600401610abf9291906130bf565b60405180910390fd5b5f835167ffffffffffffffff811115610ae457610ae36123f8565b5b604051908082528060200260200182016040528015610b125781602001602082028036833780820191505090505b5090505f5b8451811015610b7857610b4e610b36828761164490919063ffffffff16565b610b49838761165790919063ffffffff16565b61040a565b828281518110610b6157610b606130e6565b5b602002602001018181525050806001019050610b17565b508091505092915050565b60605f610b906007611494565b67ffffffffffffffff811115610ba957610ba86123f8565b5b604051908082528060200260200182016040528015610be257816020015b610bcf6120a3565b815260200190600190039081610bc75790505b5090505f5b610bf16007611494565b811015610d2d5760035f8281526020019081526020015f206040518060600160405290815f8201548152602001600182018054610c2d90612dfc565b80601f0160208091040260200160405190810160405280929190818152602001828054610c5990612dfc565b8015610ca45780601f10610c7b57610100808354040283529160200191610ca4565b820191905f5260205f20905b815481529060010190602001808311610c8757829003601f168201915b50505050508152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525050828281518110610d1557610d146130e6565b5b60200260200101819052508080600101915050610be7565b508091505090565b6005602052805f5260405f205f915090508054610d5190612dfc565b80601f0160208091040260200160405190810160405280929190818152602001828054610d7d90612dfc565b8015610dc85780601f10610d9f57610100808354040283529160200191610dc8565b820191905f5260205f20905b815481529060010190602001808311610dab57829003601f168201915b505050505081565b606060055f8381526020019081526020015f208054610dee90612dfc565b80601f0160208091040260200160405190810160405280929190818152602001828054610e1a90612dfc565b8015610e655780601f10610e3c57610100808354040283529160200191610e65565b820191905f5260205f20905b815481529060010190602001808311610e4857829003601f168201915b50505050509050919050565b60098054610e7e90612dfc565b80601f0160208091040260200160405190810160405280929190818152602001828054610eaa90612dfc565b8015610ef55780601f10610ecc57610100808354040283529160200191610ef5565b820191905f5260205f20905b815481529060010190602001808311610ed857829003601f168201915b505050505081565b610f0f610f08611549565b838361166a565b5050565b6004602052815f5260405f208181548110610f2c575f80fd5b905f5260205f2090600302015f9150915050805f015490806001015490806002015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905083565b6060805f805b610f826007611494565b81101561100b573373ffffffffffffffffffffffffffffffffffffffff1660035f8381526020019081526020015f206002015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610ffe578180610ffa90613140565b9250505b8080600101915050610f78565b508067ffffffffffffffff811115611026576110256123f8565b5b60405190808252806020026020018201604052801561105f57816020015b61104c6120a3565b8152602001906001900390816110445790505b5091505f90505f5b6110716007611494565b811015611222573373ffffffffffffffffffffffffffffffffffffffff1660035f8381526020019081526020015f206002015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036112155760035f8281526020019081526020015f206040518060600160405290815f820154815260200160018201805461111390612dfc565b80601f016020809104026020016040519081016040528092919081815260200182805461113f90612dfc565b801561118a5780601f106111615761010080835404028352916020019161118a565b820191905f5260205f20905b81548152906001019060200180831161116d57829003601f168201915b50505050508152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250508383815181106111fb576111fa6130e6565b5b6020026020010181905250818061121190613140565b9250505b8080600101915050611067565b50819250505090565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f6112c2611549565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141580156113075750611305868261122b565b155b1561134b5780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401611342929190613098565b60405180910390fd5b61135886868686866117d3565b505050505050565b6003602052805f5260405f205f91509050805f01549080600101805461138590612dfc565b80601f01602080910402602001604051908101604052809291908181526020018280546113b190612dfc565b80156113fc5780601f106113d3576101008083540402835291602001916113fc565b820191905f5260205f20905b8154815290600101906020018083116113df57829003601f168201915b505050505090806002015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905083565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f815f01549050919050565b6001815f015f828254019250508190555050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611524575f6040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161151b9190613187565b60405180910390fd5b5f8061153085856118d9565b915091506115415f87848487611909565b505050505050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036115c0575f6040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016115b79190613187565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611630575f6040517f01a835140000000000000000000000000000000000000000000000000000000081526004016116279190613187565b60405180910390fd5b61163d8585858585611909565b5050505050565b5f60208202602084010151905092915050565b5f60208202602084010151905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116da575f6040517fced3e1000000000000000000000000000000000000000000000000000000000081526004016116d19190613187565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516117c69190612276565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611843575f6040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161183a9190613187565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036118b3575f6040517f01a835140000000000000000000000000000000000000000000000000000000081526004016118aa9190613187565b60405180910390fd5b5f806118bf85856118d9565b915091506118d08787848487611909565b50505050505050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b611915858585856119b5565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146119ae575f611951611549565b9050600184510361199d575f6119705f8661165790919063ffffffff16565b90505f6119865f8661165790919063ffffffff16565b9050611996838989858589611d45565b50506119ac565b6119ab818787878787611ef4565b5b505b5050505050565b80518251146119ff57815181516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016119f69291906130bf565b60405180910390fd5b5f611a08611549565b90505f5b8351811015611c04575f611a29828661165790919063ffffffff16565b90505f611a3f838661165790919063ffffffff16565b90505f73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614611b62575f805f8481526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611b0e57888183856040517f03dee4c5000000000000000000000000000000000000000000000000000000008152600401611b0594939291906131a0565b60405180910390fd5b8181035f808581526020019081526020015f205f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614611bf757805f808481526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611bef91906131e3565b925050819055505b5050806001019050611a0c565b506001835103611cbf575f611c225f8561165790919063ffffffff16565b90505f611c385f8561165790919063ffffffff16565b90508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051611cb09291906130bf565b60405180910390a45050611d3e565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051611d35929190613216565b60405180910390a45b5050505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b1115611eec578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401611da595949392919061329d565b6020604051808303815f875af1925050508015611de057506040513d601f19601f82011682018060405250810190611ddd9190613309565b60015b611e61573d805f8114611e0e576040519150601f19603f3d011682016040523d82523d5f602084013e611e13565b606091505b505f815103611e5957846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611e509190613187565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611eea57846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611ee19190613187565b60405180910390fd5b505b505050505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b111561209b578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401611f54959493929190613334565b6020604051808303815f875af1925050508015611f8f57506040513d601f19601f82011682018060405250810190611f8c9190613309565b60015b612010573d805f8114611fbd576040519150601f19603f3d011682016040523d82523d5f602084013e611fc2565b606091505b505f81510361200857846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611fff9190613187565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461209957846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016120909190613187565b60405180910390fd5b505b505050505050565b60405180606001604052805f8152602001606081526020015f73ffffffffffffffffffffffffffffffffffffffff1681525090565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612112826120e9565b9050919050565b61212281612108565b811461212c575f80fd5b50565b5f8135905061213d81612119565b92915050565b5f819050919050565b61215581612143565b811461215f575f80fd5b50565b5f813590506121708161214c565b92915050565b5f806040838503121561218c5761218b6120e1565b5b5f6121998582860161212f565b92505060206121aa85828601612162565b9150509250929050565b6121bd81612143565b82525050565b5f6020820190506121d65f8301846121b4565b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612210816121dc565b811461221a575f80fd5b50565b5f8135905061222b81612207565b92915050565b5f60208284031215612246576122456120e1565b5b5f6122538482850161221d565b91505092915050565b5f8115159050919050565b6122708161225c565b82525050565b5f6020820190506122895f830184612267565b92915050565b5f602082840312156122a4576122a36120e1565b5b5f6122b184828501612162565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6122ec81612143565b82525050565b6122fb81612108565b82525050565b606082015f8201516123155f8501826122e3565b50602082015161232860208501826122e3565b50604082015161233b60408501826122f2565b50505050565b5f61234c8383612301565b60608301905092915050565b5f602082019050919050565b5f61236e826122ba565b61237881856122c4565b9350612383836122d4565b805f5b838110156123b357815161239a8882612341565b97506123a583612358565b925050600181019050612386565b5085935050505092915050565b5f6020820190508181035f8301526123d88184612364565b905092915050565b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61242e826123e8565b810181811067ffffffffffffffff8211171561244d5761244c6123f8565b5b80604052505050565b5f61245f6120d8565b905061246b8282612425565b919050565b5f67ffffffffffffffff82111561248a576124896123f8565b5b612493826123e8565b9050602081019050919050565b828183375f83830152505050565b5f6124c06124bb84612470565b612456565b9050828152602081018484840111156124dc576124db6123e4565b5b6124e78482856124a0565b509392505050565b5f82601f830112612503576125026123e0565b5b81356125138482602086016124ae565b91505092915050565b5f60208284031215612531576125306120e1565b5b5f82013567ffffffffffffffff81111561254e5761254d6120e5565b5b61255a848285016124ef565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f61259582612563565b61259f818561256d565b93506125af81856020860161257d565b6125b8816123e8565b840191505092915050565b5f6020820190508181035f8301526125db818461258b565b905092915050565b5f80604083850312156125f9576125f86120e1565b5b5f61260685828601612162565b925050602083013567ffffffffffffffff811115612627576126266120e5565b5b612633858286016124ef565b9150509250929050565b5f67ffffffffffffffff821115612657576126566123f8565b5b602082029050602081019050919050565b5f80fd5b5f61267e6126798461263d565b612456565b905080838252602082019050602084028301858111156126a1576126a0612668565b5b835b818110156126ca57806126b68882612162565b8452602084019350506020810190506126a3565b5050509392505050565b5f82601f8301126126e8576126e76123e0565b5b81356126f884826020860161266c565b91505092915050565b5f67ffffffffffffffff82111561271b5761271a6123f8565b5b612724826123e8565b9050602081019050919050565b5f61274361273e84612701565b612456565b90508281526020810184848401111561275f5761275e6123e4565b5b61276a8482856124a0565b509392505050565b5f82601f830112612786576127856123e0565b5b8135612796848260208601612731565b91505092915050565b5f805f805f60a086880312156127b8576127b76120e1565b5b5f6127c58882890161212f565b95505060206127d68882890161212f565b945050604086013567ffffffffffffffff8111156127f7576127f66120e5565b5b612803888289016126d4565b935050606086013567ffffffffffffffff811115612824576128236120e5565b5b612830888289016126d4565b925050608086013567ffffffffffffffff811115612851576128506120e5565b5b61285d88828901612772565b9150509295509295909350565b5f67ffffffffffffffff821115612884576128836123f8565b5b602082029050602081019050919050565b5f6128a76128a28461286a565b612456565b905080838252602082019050602084028301858111156128ca576128c9612668565b5b835b818110156128f357806128df888261212f565b8452602084019350506020810190506128cc565b5050509392505050565b5f82601f830112612911576129106123e0565b5b8135612921848260208601612895565b91505092915050565b5f80604083850312156129405761293f6120e1565b5b5f83013567ffffffffffffffff81111561295d5761295c6120e5565b5b612969858286016128fd565b925050602083013567ffffffffffffffff81111561298a576129896120e5565b5b612996858286016126d4565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f6129d483836122e3565b60208301905092915050565b5f602082019050919050565b5f6129f6826129a0565b612a0081856129aa565b9350612a0b836129ba565b805f5b83811015612a3b578151612a2288826129c9565b9750612a2d836129e0565b925050600181019050612a0e565b5085935050505092915050565b5f6020820190508181035f830152612a6081846129ec565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f82825260208201905092915050565b5f612aab82612563565b612ab58185612a91565b9350612ac581856020860161257d565b612ace816123e8565b840191505092915050565b5f606083015f830151612aee5f8601826122e3565b5060208301518482036020860152612b068282612aa1565b9150506040830151612b1b60408601826122f2565b508091505092915050565b5f612b318383612ad9565b905092915050565b5f602082019050919050565b5f612b4f82612a68565b612b598185612a72565b935083602082028501612b6b85612a82565b805f5b85811015612ba65784840389528151612b878582612b26565b9450612b9283612b39565b925060208a01995050600181019050612b6e565b50829750879550505050505092915050565b5f6020820190508181035f830152612bd08184612b45565b905092915050565b612be18161225c565b8114612beb575f80fd5b50565b5f81359050612bfc81612bd8565b92915050565b5f8060408385031215612c1857612c176120e1565b5b5f612c258582860161212f565b9250506020612c3685828601612bee565b9150509250929050565b5f8060408385031215612c5657612c556120e1565b5b5f612c6385828601612162565b9250506020612c7485828601612162565b9150509250929050565b612c8781612108565b82525050565b5f606082019050612ca05f8301866121b4565b612cad60208301856121b4565b612cba6040830184612c7e565b949350505050565b5f8060408385031215612cd857612cd76120e1565b5b5f612ce58582860161212f565b9250506020612cf68582860161212f565b9150509250929050565b5f805f805f60a08688031215612d1957612d186120e1565b5b5f612d268882890161212f565b9550506020612d378882890161212f565b9450506040612d4888828901612162565b9350506060612d5988828901612162565b925050608086013567ffffffffffffffff811115612d7a57612d796120e5565b5b612d8688828901612772565b9150509295509295909350565b5f606082019050612da65f8301866121b4565b8181036020830152612db8818561258b565b9050612dc76040830184612c7e565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612e1357607f821691505b602082108103612e2657612e25612dcf565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302612e887fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612e4d565b612e928683612e4d565b95508019841693508086168417925050509392505050565b5f819050919050565b5f612ecd612ec8612ec384612143565b612eaa565b612143565b9050919050565b5f819050919050565b612ee683612eb3565b612efa612ef282612ed4565b848454612e59565b825550505050565b5f90565b612f0e612f02565b612f19818484612edd565b505050565b5b81811015612f3c57612f315f82612f06565b600181019050612f1f565b5050565b601f821115612f8157612f5281612e2c565b612f5b84612e3e565b81016020851015612f6a578190505b612f7e612f7685612e3e565b830182612f1e565b50505b505050565b5f82821c905092915050565b5f612fa15f1984600802612f86565b1980831691505092915050565b5f612fb98383612f92565b9150826002028217905092915050565b612fd282612563565b67ffffffffffffffff811115612feb57612fea6123f8565b5b612ff58254612dfc565b613000828285612f40565b5f60209050601f831160018114613031575f841561301f578287015190505b6130298582612fae565b865550613090565b601f19841661303f86612e2c565b5f5b8281101561306657848901518255600182019150602085019450602081019050613041565b86831015613083578489015161307f601f891682612f92565b8355505b6001600288020188555050505b505050505050565b5f6040820190506130ab5f830185612c7e565b6130b86020830184612c7e565b9392505050565b5f6040820190506130d25f8301856121b4565b6130df60208301846121b4565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61314a82612143565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361317c5761317b613113565b5b600182019050919050565b5f60208201905061319a5f830184612c7e565b92915050565b5f6080820190506131b35f830187612c7e565b6131c060208301866121b4565b6131cd60408301856121b4565b6131da60608301846121b4565b95945050505050565b5f6131ed82612143565b91506131f883612143565b92508282019050808211156132105761320f613113565b5b92915050565b5f6040820190508181035f83015261322e81856129ec565b9050818103602083015261324281846129ec565b90509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f61326f8261324b565b6132798185613255565b935061328981856020860161257d565b613292816123e8565b840191505092915050565b5f60a0820190506132b05f830188612c7e565b6132bd6020830187612c7e565b6132ca60408301866121b4565b6132d760608301856121b4565b81810360808301526132e98184613265565b90509695505050505050565b5f8151905061330381612207565b92915050565b5f6020828403121561331e5761331d6120e1565b5b5f61332b848285016132f5565b91505092915050565b5f60a0820190506133475f830188612c7e565b6133546020830187612c7e565b818103604083015261336681866129ec565b9050818103606083015261337a81856129ec565b9050818103608083015261338e8184613265565b9050969550505050505056fea264697066735822122007a2bf5a827d6d41d6f08bdb88e68dbb13d4a54be813d9a207861b5c062d57c164736f6c634300081900330000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000005068747470733a2f2f676174657761792e70696e6174612e636c6f75642f697066732f516d644e45576f39525639376f5a67744c465468524d5034437a7141536f7266765955355444694a6673724c6b6300000000000000000000000000000000