This repository has been archived on 2024-04-07. You can view files and clone it, but cannot push or open issues or pull requests.
moneroutil/transaction_test.go
Jimmy Song e4edf2338e WIP
2017-05-30 13:55:15 -07:00

409 lines
176 KiB
Go

package moneroutil
import (
"bytes"
"encoding/hex"
"testing"
)
func TestCoinbaseTransaction(t *testing.T) {
tests := []struct {
name string
txHex string
hashHex string
version uint32
outputSum uint64
inputHex string
blockNum uint64
outputKeys []string
}{
{
name: "block 15",
txHex: "014b01ff0f098fd61702a3ef0df2a51b14891676b39f18d6c0b8c52bfc3f6ba5f63f792e993f73b900df8092f40102204e4d5992876b76cc8a30760c8fd82dbaf948cb2d858278a08f4d8db326682a8087a70e027a2328c2d86a1f84335010d183d0eef067195da4a57169ac9d1c8c1f84ec74a580d293ad03023c6411e620104487402583db89dd15245448092f339a30a4982e076c7ba0a7578094ebdc0302861696af6e92cea973fa217f3b4df3e8c43a2a1cb888b515e23d2d5d3d41ba688088aca3cf0202d3087348abe2dffa189c79f82e032f14cbd12cfd6ece0a5192ec235a4cf2c96e8090cad2c60e02feb619b90856473e906295252cc9a87abbb7f5db409579d3169be5ee23b35ab680e08d84ddcb010275cd0dbe02a00558669ef424c2d5f8cbefc8c4af711f1afde0404628c401b13580c0caf384a30202b1bb2e13bf7c1d88885b7ebf2be56e5064af24d69f3c92d9264550122eed1a0b2101bbac13803d9b7941444cc817292b91a9634fa6cee88ced917571df2e0c87ad79",
hashHex: "e3a799da24d9f41aac231ba2efb853ae649283feaf5e1ba46b5fc2c194414c5d",
version: 1,
outputSum: 17591934387855,
blockNum: 15,
outputKeys: []string{
"a3ef0df2a51b14891676b39f18d6c0b8c52bfc3f6ba5f63f792e993f73b900df",
"204e4d5992876b76cc8a30760c8fd82dbaf948cb2d858278a08f4d8db326682a",
"7a2328c2d86a1f84335010d183d0eef067195da4a57169ac9d1c8c1f84ec74a5",
"3c6411e620104487402583db89dd15245448092f339a30a4982e076c7ba0a757",
"861696af6e92cea973fa217f3b4df3e8c43a2a1cb888b515e23d2d5d3d41ba68",
"d3087348abe2dffa189c79f82e032f14cbd12cfd6ece0a5192ec235a4cf2c96e",
"feb619b90856473e906295252cc9a87abbb7f5db409579d3169be5ee23b35ab6",
"75cd0dbe02a00558669ef424c2d5f8cbefc8c4af711f1afde0404628c401b135",
"b1bb2e13bf7c1d88885b7ebf2be56e5064af24d69f3c92d9264550122eed1a0b",
},
},
{
name: "block 1000",
txHex: "01a40801ffe80709d9f53102b68a80f92240fca8c0456db6aeb065c264f5b9c319ae478171e115fd04a0297c809bee0202c4abb05169a7188f37e4fcbca954cda85887ecd651ea986ca66748cf2cfed60480ade20402bdda1625687fad38c89473db3a0eb77294ca39e71f4771dcdf4e13bd124ff62d8088debe010276910ddc3da7c84b2d6ac9edc640d70025dd10e972d646670d453b6b9576bfca80e497d0120264ec845e5e738fa650d4d109c8c8972cbe657edc8494d0040d40abec1f2c0d7a80f8cce284020267c9d11fccc47abd45fe2b9cab90ee625ce7c0f63d19193a57fcb6971e9241628090cad2c60e02d66329f76861f0390a21d3133194aa2ac674b657743036fad3dcce1e1e87e82a80e08d84ddcb010205de735f3a734a84032b418f48d2520c7e1a7111767b937a1fe18cd4739b088880c0caf384a30202efb9148c55da56343bb95f4cf1f4b81965979e15f5365fc1d5701be197d6fa942101df90bfecd9e549ad895b79f9313a8cc43139c0b30c0258b0f41173e729ca9457",
hashHex: "80be5324c155542182a73bf29480d4c1d5cf71eb4931c1934b55699e56c2bbb2",
version: 1,
outputSum: 17575416817881,
blockNum: 1000,
outputKeys: []string{
"b68a80f92240fca8c0456db6aeb065c264f5b9c319ae478171e115fd04a0297c",
"c4abb05169a7188f37e4fcbca954cda85887ecd651ea986ca66748cf2cfed604",
"bdda1625687fad38c89473db3a0eb77294ca39e71f4771dcdf4e13bd124ff62d",
"76910ddc3da7c84b2d6ac9edc640d70025dd10e972d646670d453b6b9576bfca",
"64ec845e5e738fa650d4d109c8c8972cbe657edc8494d0040d40abec1f2c0d7a",
"67c9d11fccc47abd45fe2b9cab90ee625ce7c0f63d19193a57fcb6971e924162",
"d66329f76861f0390a21d3133194aa2ac674b657743036fad3dcce1e1e87e82a",
"05de735f3a734a84032b418f48d2520c7e1a7111767b937a1fe18cd4739b0888",
"efb9148c55da56343bb95f4cf1f4b81965979e15f5365fc1d5701be197d6fa94",
},
},
{
name: "block 8888",
txHex: "01f44501ffb84509febd1c0248b0d7b09734048effc6b1569d7b05151758be513e5453ef88fd95820343b57280897a02b22e6274bdd728d08b24c007cc4a9e91bcdfd310f1c9cc3875d31c9c8206b0fa808ece1c02bfb5c533d2ac90d4d14d060fe371efa32190e96d06d1803db5cd4307ffc7b4b680cee4cd02026140a3a863a74bdc7a262580cc01baf4828d8b3937291aaeb6aabbbb6e9f57c080bcc1960b021c9b3b52b902d43a4f76ef89e752bb2c578deef154fd88ebefe10d9b24a30ac880a0be81950102fed41abd242c982d9f208d56bc1d9e22d07d682e048c2335401354da98aeb06180c0ee8ed20b023e1a313da690b4fdbb89032c97c75984ebd967e219102cc12bede3bfcf44c07b80e08d84ddcb01028a415ad5926c7c4d9792e5d107ce3af9069d785dc38366b6e2bf32ba8c5837e280c0caf384a302025233b2401a9ae95654b0bd9da298fc101b0ae49da8db765caef045b2da21367a210178598f5650a92b7bfb1fee24cbb49e989479e5aa37448eb2f0827189be58827a",
hashHex: "f6afe8b7c122722612c550d169fcf532cc9d7fafff29de1ae95129fdd9194a91",
version: 1,
outputSum: 17443762466686,
blockNum: 8888,
outputKeys: []string{
"48b0d7b09734048effc6b1569d7b05151758be513e5453ef88fd95820343b572",
"b22e6274bdd728d08b24c007cc4a9e91bcdfd310f1c9cc3875d31c9c8206b0fa",
"bfb5c533d2ac90d4d14d060fe371efa32190e96d06d1803db5cd4307ffc7b4b6",
"6140a3a863a74bdc7a262580cc01baf4828d8b3937291aaeb6aabbbb6e9f57c0",
"1c9b3b52b902d43a4f76ef89e752bb2c578deef154fd88ebefe10d9b24a30ac8",
"fed41abd242c982d9f208d56bc1d9e22d07d682e048c2335401354da98aeb061",
"3e1a313da690b4fdbb89032c97c75984ebd967e219102cc12bede3bfcf44c07b",
"8a415ad5926c7c4d9792e5d107ce3af9069d785dc38366b6e2bf32ba8c5837e2",
"5233b2401a9ae95654b0bd9da298fc101b0ae49da8db765caef045b2da21367a",
},
},
{
name: "block 65000",
txHex: "01a4fc0301ffe8fb0308adb32602daeb7d2fb79539dbd28b16295db665c31551eb96c02d7fdb638b524a2bda74428092f40102e547e5609175ba6f206dfb480d991f7d1ff6cfe001aa57440474359c1869087e80ade20402338ddf2a19c7455dc1c51e14f3bf07e16b353119f6226dafc4369d010fcc5c4d80b4c4c321021d1486e4d33e95da67bfdb75e5555b19e31d17a84217a11f7f2aa38900e4532180f8cce284020249147ecd5f4fbc64ec9b9eb17f044ac13e7c5f196dbd7206d8c0ad595dd83c0b80c0ee8ed20b0216c402a1c00c00997b6bb250747cfa809be45a7bf9a503339a768c3ec09908ce80c0f9decfae0102c396f8b1ad626c31ac39b5daceaec904dff69265b8f734563cfb946814c3173280c0caf384a30202ee1a068ee5d4bfe3414e89f9ba05b5b1d899060dc609025f03a49ef9a4d9daa350017fe72e842760bc591d4e03c82b9e4b7de49c85c92b702bb779ae3553b7f4db28020800000001169200a200000000000000000000000000000000000000000000000000000000000000000000000000",
hashHex: "afe70adf7d09948952e9a968137bf09b19e05b1fd880883762bcb6dc9aeac7f9",
version: 1,
outputSum: 16479014629165,
blockNum: 65000,
outputKeys: []string{
"daeb7d2fb79539dbd28b16295db665c31551eb96c02d7fdb638b524a2bda7442",
"e547e5609175ba6f206dfb480d991f7d1ff6cfe001aa57440474359c1869087e",
"338ddf2a19c7455dc1c51e14f3bf07e16b353119f6226dafc4369d010fcc5c4d",
"1d1486e4d33e95da67bfdb75e5555b19e31d17a84217a11f7f2aa38900e45321",
"49147ecd5f4fbc64ec9b9eb17f044ac13e7c5f196dbd7206d8c0ad595dd83c0b",
"16c402a1c00c00997b6bb250747cfa809be45a7bf9a503339a768c3ec09908ce",
"c396f8b1ad626c31ac39b5daceaec904dff69265b8f734563cfb946814c31732",
"ee1a068ee5d4bfe3414e89f9ba05b5b1d899060dc609025f03a49ef9a4d9daa3",
},
},
{
name: "block 1302238",
txHex: "029abe4f01ffdebd4f01a3caca99eaea01021804724f0b0938d83473fcb7fbb93a2991ec98139020b2fe8e8dcaf65888d3dd2b0141d60c73bd6cfd6eddd30039279aefba252747167e5e77ad1fd373916d2a273f020800000049259da0dd00",
hashHex: "be30ee0ac38d83c86d84326c64b13eea5b40897a321004d17e589241d49199f7",
version: 2,
outputSum: 8068686587171,
blockNum: 1302238,
outputKeys: []string{
"1804724f0b0938d83473fcb7fbb93a2991ec98139020b2fe8e8dcaf65888d3dd",
},
},
}
for _, test := range tests {
serializedTx, _ := hex.DecodeString(test.txHex)
buffer := new(bytes.Buffer)
buffer.Write(serializedTx)
transaction, err := ParseTransaction(buffer)
if err != nil {
t.Errorf("%s: error parsing tx: %s", test.name, err)
}
wantHash := HexToHash(test.hashHex)
gotHash := transaction.GetHash()
if wantHash != gotHash {
t.Errorf("%s: want %x, got %x", test.name, wantHash, gotHash)
}
if test.version != transaction.version {
t.Errorf("%s: version: want %d, got %d", test.name, test.version, transaction.version)
}
wantUnlockTime := uint64(test.blockNum + 60)
if wantUnlockTime != transaction.unlockTime {
t.Errorf("%s: unlock: want %d, got %d", test.name, wantUnlockTime, transaction.unlockTime)
}
gotSum := transaction.OutputSum()
if test.outputSum != gotSum {
t.Errorf("%s: sum: want %d, got %d", test.name, test.outputSum, gotSum)
}
gotLen := len(transaction.vin)
if 1 != gotLen {
t.Errorf("%s: input len: want %d, got %d", test.name, 1, gotLen)
}
wantIn := append([]byte{0xff}, Uint64ToBytes(test.blockNum)...)
gotIn := transaction.vin[0].TxInSerialize()
if bytes.Compare(wantIn, gotIn) != 0 {
t.Errorf("%s: input 0: want %x, got %x", test.name, wantIn, gotIn)
}
wantLen := len(test.outputKeys)
gotLen = len(transaction.vout)
if wantLen != gotLen {
t.Errorf("%s: output len: want %d, got %d", test.name, wantLen, gotLen)
}
for i, outputKey := range test.outputKeys {
wantKey, _ := hex.DecodeString(outputKey)
txOut := transaction.vout[i]
gotKey := txOut.key[:]
if bytes.Compare(wantKey, gotKey) != 0 {
t.Errorf("%s: output %d: want %x, got %x", test.name, i, wantKey, gotKey)
}
}
gotSerialized := transaction.Serialize()
if bytes.Compare(serializedTx, gotSerialized) != 0 {
t.Errorf("%s: serialized: want %x, got %x", test.name, serializedTx, gotSerialized)
}
}
}
func TestTransaction(t *testing.T) {
tests := []struct {
name string
hashHex string
prefixHashHex string
version uint32
inputSum uint64
outputSum uint64
mixinLength int
lenSigs int
inputKeyImages []string
outputKeys []string
txHex string
}{
{
name: "17 inputs form block 40646",
hashHex: "ca9ea576d67af4926e31ebeb159aaee58950aea18e5e0ad0bae23b2d85ede8c1",
prefixHashHex: "aeecb4170b276d2ac69a7abca86f82621f56d943c8d4a8900cd56192da8d442d",
version: 1,
inputSum: 11808810000000,
outputSum: 11808809000000,
mixinLength: 1,
lenSigs: 17,
inputKeyImages: []string{
"c9679ba9ca8a6fa87a1352985e46ea3723489d3699ab1af075532f711739b9c5",
"0e99a2f46b383802f04a7f231047a2ed414e861b1d2a3494b371c04759cc270d",
"74b213379239558f5d4628a48a43a36ce9cdbe673453608719836664f7e80949",
"f61c2293448c98e77ccf1165638e908986de0789917fd291f9bc32491360360b",
"04d0d8575cdde390173e269f61e8edb9406a76e479106987adc714c14f453015",
"58dc8327b8c0b944b05024863ecd64bceac940001e93e3acabfc570bff548362",
"4b8ff554752b31af4ad50f7edcaec088b4f7ee2693a59661c06890119fc48121",
"a1b66ceefb3af10b0184798a78a3a26d0bd1d762366927540fb053634a8b97b0",
"9388ec3806bf2f3997d76f7e05820330068598deea35dd8eefcc31fced30b867",
"45905146e79364df9fffa56da7fa37e1534acaeaac951cc6d754516c5b808510",
"47e6864c2c086c13dcde36e360e3adcc3bbe295a893b9f6183020e3da1920e8a",
"f1ea44fc891f7d5ea914abefd964f46147eb650585825731e6ecbd33e469952c",
"22f06bb1b9ec96b84763f07c554469b8c2d9ae7bae97ccb7602a960302bcf69b",
"a044522fb61ddfc366666b9de517d2901c3b821ffb1aa09e8932dad3f2e42727",
"1253cf28f88eaa38cce28d43d6d076780e1d85b14eeccb65b76f6b79d6e079a0",
"a06b60e2069a79706e442cb60b9c1c66d018a9222dd03205527c9ab94c2a2053",
"94f83724e913891d5add7d7a4256f17a9fd76fb91f6600289bcc42e83ccdb79e",
},
outputKeys: []string{
"eebdccc569747e7ad5787d1a88f7b67dd753b86b03c331bc93dbbcffd413ee36",
"d5d6274573883a2a1231b15701e2447e4c5ad3f4a6901701ea1ab477ba8d502e",
"9c6a48ca222ac5b4f037828166b95929b766b8d71582ddf8dbc718983e6626b8",
"50ec4b429b04fa717bab4c315660862137848064536f9a02bb1d4e5894e36f33",
"00197ee25626aa3cc0adc1c372ce8e58c5a3f3cb97f341412306cdbf1a5f25e3",
"ebc842713e4bd0124917c34c361d2b31dd2343db91c24e44a23653d800aa2199",
},
txHex: "01001102809bee0201d11fc9679ba9ca8a6fa87a1352985e46ea3723489d3699ab1af075532f711739b9c50280b4c4c32101c6210e99a2f46b383802f04a7f231047a2ed414e861b1d2a3494b371c04759cc270d028095f52a01882074b213379239558f5d4628a48a43a36ce9cdbe673453608719836664f7e809490280c0a8ca9a3a01b102f61c2293448c98e77ccf1165638e908986de0789917fd291f9bc32491360360b0280897a01d12004d0d8575cdde390173e269f61e8edb9406a76e479106987adc714c14f4530150280d88ee16f01eb1d58dc8327b8c0b944b05024863ecd64bceac940001e93e3acabfc570bff5483620280b4c4c32101bd204b8ff554752b31af4ad50f7edcaec088b4f7ee2693a59661c06890119fc48121028090bcfd0201cf1fa1b66ceefb3af10b0184798a78a3a26d0bd1d762366927540fb053634a8b97b00280b09dc2df0101a6239388ec3806bf2f3997d76f7e05820330068598deea35dd8eefcc31fced30b8670280d293ad0301b92045905146e79364df9fffa56da7fa37e1534acaeaac951cc6d754516c5b808510028080a2a9eae80101880147e6864c2c086c13dcde36e360e3adcc3bbe295a893b9f6183020e3da1920e8a0280b4c4c32101b620f1ea44fc891f7d5ea914abefd964f46147eb650585825731e6ecbd33e469952c0280b081daaf1401aa0222f06bb1b9ec96b84763f07c554469b8c2d9ae7bae97ccb7602a960302bcf69b02809bee0201d51ea044522fb61ddfc366666b9de517d2901c3b821ffb1aa09e8932dad3f2e4272702809bee0201d61e1253cf28f88eaa38cce28d43d6d076780e1d85b14eeccb65b76f6b79d6e079a00280d0b8e1981a01b810a06b60e2069a79706e442cb60b9c1c66d018a9222dd03205527c9ab94c2a2053028088aca3cf0201812194f83724e913891d5add7d7a4256f17a9fd76fb91f6600289bcc42e83ccdb79e06c0a8a50402eebdccc569747e7ad5787d1a88f7b67dd753b86b03c331bc93dbbcffd413ee368090bcfd0202d5d6274573883a2a1231b15701e2447e4c5ad3f4a6901701ea1ab477ba8d502e80a0d9e61d029c6a48ca222ac5b4f037828166b95929b766b8d71582ddf8dbc718983e6626b88080dd9da4170250ec4b429b04fa717bab4c315660862137848064536f9a02bb1d4e5894e36f3380a094a58d1d0200197ee25626aa3cc0adc1c372ce8e58c5a3f3cb97f341412306cdbf1a5f25e380c0caf384a30202ebc842713e4bd0124917c34c361d2b31dd2343db91c24e44a23653d800aa2199440221003fe2d8b0f49996be3fdf4bc732ad0fda3fde42488bd9a6dc3fef018c4b77aa53015f641367cb5d2c4c40f5b7dc726ce1ac651623b8082746221e468a47c46556cd11b4d1bd92e85f38152848cbf100c6f8b15c9de5278e4506bb9131230807d60e658188593715e7980a9d9e188d2114f2a3b71541cfe66fb94413237edf36dc0aa15a56d12471a2cf2e25be43a3ee48571602dd19ebf4e4e266aec5fe3102650e1a60e1343243d80083df37004a1f2854276d3c4c0f2aca56c39ae7b1d254180036f40c9af0528811fea9037b5d622f8c8c35df908e1603e3ba6e68ce8cb75809f6d08eb841a31d9ba3431c67449cef0892347c1e04c69dec0e09d29b522ac50bab5482839d1cb11a87f7725fe5e8783becb0ea0fa72a78de4971c0322b7923042d8160d8328228ba25a2da542c2405317f5bb5e1a2c9bb5feb46c9c2b037d40ab1c98c70cb8734070bf96fd84125180b8b89906335eab6b09e3ca0a5687c9807fd24038e8ae0e7eaacae4c5bfbaaaea58aad3b0d412bf1018232826eafc40c00eb495e5cb3471025744818fcf6b816dd817f64d5eea8947f847e180bf8607e068e3ea474372d1fa6403b936841f53ec3de8b46c844f2e448e32d64c6767c4909938010d942fe8443326196ce93046d99a0c215182d3db9ede168e28380833002e78a7366b2150946ec2bf63796dd978fad325236c97ab7141b8dcec316b07a0269ccff03c6b402f4f9403f88b00b778f8468ec1e00a8528492b49a8b7cfa6e042ce6cde5341618d5f6a019db385644c598332dcd68e4f16166af3a6c824a8801ea768e60ff37038e78958e68b423c5510c98d86482af42c1c1df33a967ab8c0a6cfd56986640333b75f0ff31922d5ff70829799340cc0d18f494f7a38a27b30b099b882b67da4fb48e245c6456241c19eff98f066c0fe1d7a0995b3b5e14de0cdf2ac0f8ffe135d0710b7854df42f990ffc9bf260a4656a51aadb64eecfd6600df7aad92c9fc0d6d377e05ab10286cf86501b77929bb2c4939dc88b1b0001e0f040d0a1260b8f38d2f68a7052267d43e389bb0365982e63c6e347c8c4109430fff86011fa605ff377f4c626c7178f1f5938da6305730e52ee19bfc4335ce87001e90adda866adfbbd662376871fdb9680b2d03c0b43a4195e9e3a1111c24c40c25e8cb88df2f983fbd0894513bd50d7f6ab17e3ec3d93a9dd5d0dff27e6110038b5c05dd084dd957eef2d9fb0de7ca67d75e1b8a81b10dc3edf099a020536f0cfd6a1a7294ab1db71d78486324d2e7baf84147e304ba450d07ae6b97624dd9009bc3a3d857d80c2af5729707522f5fca14a07deaa73e16b2429b0a5d35a8970b0dadafdcd67834f0241443b935d57f77cd4cf6f309235e71c987c9a5bb15110818f4d46aa56d6c55dcb07b49b899d617be4237b98282e2dfbff86365c3d532077f7fa7550dc29c79419410132dc1a2f2f0598212b483fa59d56ecbc662c09e0d3d944ad18d9a5a55ec9b8af82a1d148f0677de4526d26ce7fe123bdd809c0c06f60b6cceb8c694da13a8ac807258a8dc45368fde5b46e02947de10b13dab5b035a9490369ee32e2917fa00965c03592e5c32489b21400741479d9451aac8d708",
},
{
name: "50 inputs from block 58272",
hashHex: "53ce4b3a565aa697c5fb3ea06c77cc9dd1ccecea13062d6eb6d90f438de49455",
prefixHashHex: "1fd8a75d094aa8979466b79432cb45b59e0fe925685c9537146ea0c45404d408",
version: 1,
inputSum: 10185065000000,
outputSum: 10185064000000,
mixinLength: 11,
lenSigs: 50,
inputKeyImages: []string{
"820a17337a978d77f5d4a18394b7f51db488e0750a1d7783b36de3448336ba45",
"c6e213f3d4af612ad251ab6113ab2d372e14ada5dc8aa1885a8aa50b6a331b5a",
"88f8a8d9f23e17e3fdc6f016b205c437044b21cf57e795b1ac527f9dd5cc9097",
"ddfb6faa63a63dbf85d5aa269f8ceb6792d800cf380aca351d7a88fdea5b74ee",
"f8d87f38cfc5f5545baf06fc6c9374924497604413b7a579e00d18301a25e267",
"0b209585caa385b2e05bc19af684505509f006b05a59eefc1076fe7e7d7917a5",
"8b5fca06589be976c5185b5f08b9f5f60c8cda546aa548b7afa3ee08cd214515",
"5e01e3d4eb65fd63b8d0896b6d178366be439f160d588463e5b03a9030e869c7",
"6566751ea354cf7e92cec883d266c540e5941949320b57b6297546676fb94f24",
"daf286a570841e37683c58d0342f1cf44b8bf5442bfbb9de703e45330761a5d6",
"c08debe40a7afa705a96156a6bd660de5da981c31a5eec2ebb17d675c9e87015",
"b06063a6c667c97d3e7355aaa56f5d87e45cc9da1b958122b94952b995a7df23",
"b3437b63ed0d550cdbce557e9e20ca7c94dc5c241638f2589e7c61cf57f546e6",
"ceb56bea2d4aa428021d8d6120ebf80d42df6cae882e3d3353472d05e78e77b4",
"b8f7de03726e195f906a6f7455e279b45bf116684eb48b25e3e653a81b38e578",
"14531686204cebf33d64c8ccf68c3d4860841bdc414bab232e7b66a46cd6b335",
"311c0ddcebc24e7d54d725b9558bed562769a3db4a36e4ec563d5a10a348101e",
"8ac433cf139f78db1a63200c004c40c7dc82f772ca83e57f73fa28c443ede9ba",
"475ed1bad6e1b7cc14f23e3339984e1040bf41dfdea91d92972b66a4bf72c2bc",
"b9d5accc4e4973906870594b5ad97f16a45a802dd276f20af9506c498585e93c",
"a357ae4548f9fd11bfe47c31220921f4e96eef952856db58ed4cf89f322ae4c3",
"7eb1b4d05c9de0031306b915fedd14fdfb589cbc4e15d531ea902baa42d6ba7c",
"47f8f4cf86a1585c19c5917ee7a5e3e2fba3294d164e0a11080ec06cc5beecbb",
"f110ac0e87fc49e2fc857e8e3351d9f8e538dbdc18cd7674fcc6357c1a746a43",
"86563121501def13ed4da0ba1d1d16dcafe3cfcf87882aeb990f11192a3919c8",
"1e6c03f9640648c04ffebb1849159fa078521690a561af00ea998947566c8685",
"6b342f9398b1525258fdc211ba1499db6c7cfef8d9739223f7d612c171386cb0",
"1a03ea7fe56248001714b2a5f8ec45e38770028c574b35feb0861c795b95643a",
"068b21594b115a747eec6f7364fd635508dc76c2bcb4c7399d1c4bcde9b38781",
"094c30dd1de99a245915f4a4913cde2ca48653b78824780fae7df1c97a5c1e8b",
"542abc427d7c35c991ebfe8067db68f5470720b2cd821e1fa5f1a2b00512a672",
"73d179cd40dfa9e27cd4939f1c2991596f91bdb5b58f98002bbfca49dbfef337",
"b15efb3ee06b37a3986f865a08e278544746f73780dfadbb849fa73ba1613ee5",
"bc51ab789902924ced64de0175a677586a39c12a4f0db51d5925dca588656902",
"47b61cdf019e28708e1c21a99e02ad0dedf262034951ea00a7c1232fdb14529d",
"b2a10d56c9145db527ac6004ba3b3f368aa9ea39ec1bc381a347658b288701e9",
"6dfa6e146842df153f875fe92d84bc3fb3815d2732e54c3e6532eb5276f52686",
"ccbc1eb8324dcd448c13260b34352ef5ad372b24dcd06e71f7bedb6cea206a19",
"1421e9f3755ccfcc1569fb7cc106ec299f45af10c4451b90b5ddce256895c9b6",
"2816b9ace5d720daaaf5d34293b6c8973b6066613267adfa164f4bee113a328c",
"c6061807a29263057f14c62c7f7b4df632131615ef639f30904427794544f051",
"cdcff48bc19a81795d9d72aec9cdb18ab47b73a65a23dff84385cab06478ad2f",
"8d3f55d98e85afc12b74011ba68dd2d34452eb157b78f9e3675640dfadcfa1dd",
"0e5f3443b035bada3624c6d645cfbc432bfb53ad67de24e393fe53f5189a8bdb",
"cb66c22f1c2f79d5d826aa85b0a3ba081a30444a553fdbd12fda6c390347455c",
"4050873291a2f4a3c44f4cbcf51e764f1609c8d59475d04b8d0c289cb5485438",
"683614bdcd4c85acd80691a9584f222eafdc15925b0ebe823cae53998eb60915",
"a3be100329027c704f12652919a56508b2b99da4d9cecb8bfcfcfc015200d9d3",
"952e20e503fb840247a305d39a36aef642d53f292272bb21d141d40117b10441",
"43450539500506a9bb0fd5b408a86324ae2f195b20bfa1ccefb032785d3feb53",
},
outputKeys: []string{
"298c6ce060956751984781bf5b9ced27595082232ad48aec2cefaf6f010d5ac5",
"6a8ce1805ba113dcef4985ffaa36837cf8d84ad9f6fcbd515ce5030123be78de",
"0f19c004a21f85e987ab567d6d1c484568cf05176debcedd8649c9ea48ca5e47",
"fbaad619f98d23e216357211cc7bcaadd244b33a0e4febc911ea0381530adeef",
"bfae014409db5bbb21cfe04224b42a6476697df719ecc8b0d8ac65245c05482a",
"2898f95d657d0fb76ebf551bea861d63657d71d53887df7f2aaa455c46488aaa",
},
txHex: "0100320280a094a58d1d0b8e038304ba07ee01d202c102ec0116d801ce0738820a17337a978d77f5d4a18394b7f51db488e0750a1d7783b36de3448336ba450280f8cce284020b68d4089014f80703c801b70baa048001bc099712c6e213f3d4af612ad251ab6113ab2d372e14ada5dc8aa1885a8aa50b6a331b5a0280a094a58d1d0bd001f103fb04bf04da01ea01900b9101c3011d1f88f8a8d9f23e17e3fdc6f016b205c437044b21cf57e795b1ac527f9dd5cc909702c0a8a5040b60c80ca101c20eda028e06dd0ddc0fbb069202db1bddfb6faa63a63dbf85d5aa269f8ceb6792d800cf380aca351d7a88fdea5b74ee0280b09dc2df010be305a705c2089006fc068b09c40dda02fe0fc304c007f8d87f38cfc5f5545baf06fc6c9374924497604413b7a579e00d18301a25e267028094ebdc030be601b2039203b535d61eff0a8b18ff0fd327de1aaa0b0b209585caa385b2e05bc19af684505509f006b05a59eefc1076fe7e7d7917a50280a0be8195010bcc1eeb03d4048c30d302709204b209960117458b5fca06589be976c5185b5f08b9f5f60c8cda546aa548b7afa3ee08cd2145150280e0a596bb110b8204da0365741a75ea096afb045db1065e01e3d4eb65fd63b8d0896b6d178366be439f160d588463e5b03a9030e869c70280a094a58d1d0bf501b604b6024730b102df048801ac0c49f8026566751ea354cf7e92cec883d266c540e5941949320b57b6297546676fb94f240280d293ad030b970eba059f07e20b9e01b80dd409862dd513f42b8103daf286a570841e37683c58d0342f1cf44b8bf5442bfbb9de703e45330761a5d60280e8eda1ba010bc803eb07c905da05a801e1174eb6078409af07a918c08debe40a7afa705a96156a6bd660de5da981c31a5eec2ebb17d675c9e870150280a094a58d1d0bae01c3019201488001af06a904d702d00501ef07b06063a6c667c97d3e7355aaa56f5d87e45cc9da1b958122b94952b995a7df2302c09fab030bb402b811ca03d50334be04119a05ee06e403a824b3437b63ed0d550cdbce557e9e20ca7c94dc5c241638f2589e7c61cf57f546e60280ade2040bbb0aab03a803971eeb09e208e7679e038b01cc0130ceb56bea2d4aa428021d8d6120ebf80d42df6cae882e3d3353472d05e78e77b40280d293ad030bac16af11a512ad09b90ed116b206ac16e20145b628b8f7de03726e195f906a6f7455e279b45bf116684eb48b25e3e653a81b38e5780280c0ee8ed20b0bee05d808f10ba803cf05d70372bd09e6038c01b40d14531686204cebf33d64c8ccf68c3d4860841bdc414bab232e7b66a46cd6b3350280b081daaf140bad0101f01d83048c02b5030f9004f5018702910b311c0ddcebc24e7d54d725b9558bed562769a3db4a36e4ec563d5a10a348101e0280b09dc2df010bbb02ee04dc0441f505b413c710c605940dc005dc0a8ac433cf139f78db1a63200c004c40c7dc82f772ca83e57f73fa28c443ede9ba028090cad2c60e0be006e101d6029402b0028e012b05940f8604a41b475ed1bad6e1b7cc14f23e3339984e1040bf41dfdea91d92972b66a4bf72c2bc028080dd9da4170be70613eb0a3cb507af02fb108704a303f9058102b9d5accc4e4973906870594b5ad97f16a45a802dd276f20af9506c498585e93c028094ebdc030b9701bf06a106a30fb70a802ef209dc0aa402ce16cc65a357ae4548f9fd11bfe47c31220921f4e96eef952856db58ed4cf89f322ae4c30280c8afa0250bfe08d504cf0ee614d332c018c409f909f0079113d26b7eb1b4d05c9de0031306b915fedd14fdfb589cbc4e15d531ea902baa42d6ba7c028088aca3cf020b8e09f109a20a13e101a607e60bb6020fcd02ed1847f8f4cf86a1585c19c5917ee7a5e3e2fba3294d164e0a11080ec06cc5beecbb0280d0dbc3f4020be102a404480c8f13a21de406cc03228707b22ff110ac0e87fc49e2fc857e8e3351d9f8e538dbdc18cd7674fcc6357c1a746a430280f882ad160b9d1da505db16c2098b01bf04ff0832e304f623bf1d86563121501def13ed4da0ba1d1d16dcafe3cfcf87882aeb990f11192a3919c80280bcc1960b0bd907dd01f90c8e0ccf029102d859a414568c0fcd171e6c03f9640648c04ffebb1849159fa078521690a561af00ea998947566c86850280b4c4c3210b3fed10d203e907bc03ac1df408fc068514aa12991b6b342f9398b1525258fdc211ba1499db6c7cfef8d9739223f7d612c171386cb00280f8cce284020ba509e901b607ec0a8807a70110cd10af12e906a0041a03ea7fe56248001714b2a5f8ec45e38770028c574b35feb0861c795b95643a0280c6868f010baf068403b729dd03b703aa01cf13bc14f70fa736a30c068b21594b115a747eec6f7364fd635508dc76c2bcb4c7399d1c4bcde9b387810280cab5ee010ba001c102b3228206ce06d405d806f907bf14c410f53f094c30dd1de99a245915f4a4913cde2ca48653b78824780fae7df1c97a5c1e8b0280f8cce284020bf107a11ccc0b5ac904af0464ec04b0021bd612542abc427d7c35c991ebfe8067db68f5470720b2cd821e1fa5f1a2b00512a672028095f52a0b8703a30596059f0bb50fb825e304e12588249115e30a73d179cd40dfa9e27cd4939f1c2991596f91bdb5b58f98002bbfca49dbfef337028087a70e0be302ae019f0d9615f003b003b90182058506c605b970b15efb3ee06b37a3986f865a08e278544746f73780dfadbb849fa73ba1613ee50280b4c4c3210b88092ca81db8118401d2019615b005b513fe01c51abc51ab789902924ced64de0175a677586a39c12a4f0db51d5925dca5886569020280f092cbdd080b88059104a701b602b105778b0bc0053bd105eb1e47b61cdf019e28708e1c21a99e02ad0dedf262034951ea00a7c1232fdb14529d0280bcc1960b0bbb0b9518c304d53be60fb704d21ec6079a19e90be701b2a10d56c9145db527ac6004ba3b3f368aa9ea39ec1bc381a347658b288701e90280b489130b9702aa13aa10dc039929921deb079816d30bd604c4086dfa6e146842df153f875fe92d84bc3fb3815d2732e54c3e6532eb5276f526860280a094a58d1d0b970116a407ee010bf302d407c2017f36dd09ccbc1eb8324dcd448c13260b34352ef5ad372b24dcd06e71f7bedb6cea206a190280f8cce284020b9a0f9e01d303e4028c028101c90dfe035c901feb071421e9f3755ccfcc1569fb7cc106ec299f45af10c4451b90b5ddce256895c9b602808ece1c0b09f709a812fe0931df09e50fb716df1de020e21b2816b9ace5d720daaaf5d34293b6c8973b6066613267adfa164f4bee113a328c0280ade2040b890dcf0ced09a814810680021acb4993169001c414c6061807a29263057f14c62c7f7b4df632131615ef639f30904427794544f05102c0a8a5040bc802a702ff01dd01941f14aa06dd1dca01a009f310cdcff48bc19a81795d9d72aec9cdb18ab47b73a65a23dff84385cab06478ad2f0280c0ee8ed20b0bc301b10ddd03ea015aa905f70b810ccb02d80d018d3f55d98e85afc12b74011ba68dd2d34452eb157b78f9e3675640dfadcfa1dd02808c8d9e020b852c8802d502df05dc06a604ae099827ec11fc0db3210e5f3443b035bada3624c6d645cfbc432bfb53ad67de24e393fe53f5189a8bdb028090cad2c60e0bb409fe08288b109d08e4014af7044c8e01f30acb66c22f1c2f79d5d826aa85b0a3ba081a30444a553fdbd12fda6c390347455c02808cee891a0ba70f4dee0dd606fb1d8501e31fd7128f04f015ed024050873291a2f4a3c44f4cbcf51e764f1609c8d59475d04b8d0c289cb548543802808c8d9e020bcc0a9505468b0cef05aa10c2039a0c83159816f148683614bdcd4c85acd80691a9584f222eafdc15925b0ebe823cae53998eb609150280a8d6b9070bd903a00a9204a614d2058234f40fa01ced0a8b02cf3ba3be100329027c704f12652919a56508b2b99da4d9cecb8bfcfcfc015200d9d30280e8eda1ba010b8d049403dd02970bbc15ed0bd701a40ff601970cc107952e20e503fb840247a305d39a36aef642d53f292272bb21d141d40117b104410280a0b787e9050beb038105ca20e502d202d301c707ed01c908b60ddb0443450539500506a9bb0fd5b408a86324ae2f195b20bfa1ccefb032785d3feb53068092f40102298c6ce060956751984781bf5b9ced27595082232ad48aec2cefaf6f010d5ac5808ece1c026a8ce1805ba113dcef4985ffaa36837cf8d84ad9f6fcbd515ce5030123be78de80e497d012020f19c004a21f85e987ab567d6d1c484568cf05176debcedd8649c9ea48ca5e4780c0fc82aa0202fbaad619f98d23e216357211cc7bcaadd244b33a0e4febc911ea0381530adeef80d0dbc3f40202bfae014409db5bbb21cfe04224b42a6476697df719ecc8b0d8ac65245c05482a80c0caf384a302022898f95d657d0fb76ebf551bea861d63657d71d53887df7f2aaa455c46488aaa44022100cfbceb09619f4df80296d06a7213a1a8b2604d62b2c418ae3881dd5edd08634d0169846e2d8735844e453e3474aea7818e17fea4d765492d1b40dad9990092b12c6a0dcd4e938ca29e42e4b34d175e102e9a0772544076f3389f0487405e750c03ca593970aa741d1e464ca6ae500d5421e0c10d07471debebe61468ef386acc00d6ce0bcae2f8f0d268f9ba3b1a08b52c352a4553c75c0a17ef6ee4f0ebf66b0033cddf3219d7efa2d931b65b204e277c1d34285fb0953337487543a12d4f920801450504241e5d8aa00fc9ac7649a783f4caf3252cd25c5d83164fb817cd4404e1af639cf9623391a1fcee5cfa9cdfb2b405280f507fe5bc07203cf4ad693105874aeb060ec0271f3736cef381553a161df8ff664631a6d9de7dcb79944764055f7c6196725145caacb487bb8fd1f26c973fbd319fe2c0574a46ccfd71d31f0fec51ee4e57c717039e855dd4f232158fbc9eb0e12820bb516ce273533666f20404759f57adec7ff5058af92ebb86290761a822e2f2dc702bff43b3fd5499a00007927efde8ed18cbf5a60570f2513e6f0a57c8020a0c98662bdf93cb9abcdd06ccc1271456b98d75bfa302f8e43af99e1ecf40ad07433c3b44d6648212554809a39c050268acc6b6748c6ea10c5a3479f352f9d4232c6d8c1756af71488c950236540a99478bfb4db3e39eede2aec4258ad25ada907d2cb698943a1b18985406d52de9e6383e38f7c605b3cca74baf64b946493862a55f593fff9c0c483e80013e733547732d257e3fdc7046de5b16f8d20d4a2c19f3ed5286ef02af71b418054287d6557b467f4fc87185c65450aacc06a362527b8df70bb65ee56f9e6e490478340491a200f62429e3c9b5f548f6f15d15ddace34882c7fb80e7141e46460e11e9176047e8fc9807044001117f06a304a17f29a95eb055f398beaa273c7301f0c448a3b727a899ec0a1de0a88bc27e196abba2491c761c5d5f84b0e7938b0d37910c71036b605d1ab66817bd5b8ab9173f01c149069f2db090e1e0485b4d03e148203033f7ee282151d2ef6dffa070c1e6725d7aca0fbf96de0641ed4bef003c404f0592faca6b668c8b01447d68f522740799acfff075ee6f52efc3f9d3097a5a2831d82b7cda9967c61d2b1efb7f70aa2cb69e705ba79941b549d0ab82089b7d4efe47c77dd9e097a6cc3089cfc5b9adb80572f4f05a7017763f7aa9820bdc62cfb869d76de9a8e81392d69e38960524395ca2a2cdfe871aa47aa161800d47d687cefda3bb10d8dbb12b274f963a047d50dee1c6fc302ec81ed4b94fdb0be0582038ed01d05af131a1910ed71d2705743cfb7189063924ce65b5c11f3000db6dcb2f99164483dbcfc47ea5bccf58ee92ad7db808a4e05e7250b24145470a4c4a9ceb171844a84ea4992001c281d258b7c175b6bba6c29bc3b0d9a395f20c0e96f924b35c7f01397be858c35e88faf176029a8e50ba1542604713905805081acaaf2eab50e4ba143ad2e6fe45e1c970568efd4638c90d8f4238cbb1d006084da3ad6a68565556f15d8dfe159fc13f58ed4c9e163e698a6c080db1dd85460680bb5a4e1a3aebf3bbeab1559fc8c5c0748252661a744fbffea38900f4b9fb0ecad72471fda1ab42c8383481204ae2435aacfd1ed701bda686ef27a32df6a206ba02337f7d9be4f53e3e06716dbf64d06a022bab0c22635c46d7f52525bf010f0859668522427300212d7b3ab0c994cbc0e881be3aecc75502b7cba456410e02b122c80e4015618508bcefa0e2a9be929c211494826188c4257b1623ecc89604754166a933905ea4d95b4a85d0249f38925e3f4116001500be4fba89f2f0f903f325da9e116914f8152a45ca3223040bce00f5a46a362e900d8d6ad8e07ba409417918ba1fff2880a22c64af5293fffa2e72ffcbbc9a34bd4866a499c1c789000251c183dbe62db54e65e1e0a69eaac9dc40e9d222aacd39b8a68d2bf4d7020d0309a872502259fcf837f883a1b5641e15ad7e684231c260fb0cec43f6c5150b3c7f8862dd5e98fabb4666b064df08d55070135df323b56d65e2d605bc8d6500e18bdbcc1985075f24f9a21fe29e1f86ad50c76ab2ffcfe2eefcb5b479e4b909dbbfa023c535c621abda1b950a0036270d2dcbedfccaad999575d8e93f0bd4048362c94a00ad912386405bff79f03f4a989a64e45790b9ae9f211b772fd01f035b7fd64f4c7ec6458b4f8a5d547b5fdc3e56baf8f7e4a72a32a100df6bf46b04be14d7b690be15fa54f5c63c33c4a8950acaaa216a0cd65f01d2f9697301530159ec2145917dee8647ca4dbd9b9f0ade5a765e47dc31868f44edc402ca34e201da82cd0ab78cacdff8d4c4ba4e317619fe4a9b7bc8aa85be3a60b03ba6184b0acf7313d37286a02f0f7e704870307edce7fec0ba6e78825f13404513902957099fa17ad2642de6e7c0900f32788dad15e374e84eaf27f27f942e40bc04404002319b39b729d85c342299627c900e44b5116adb00dba96d0cfb319317d1d2470f2ea97058f97a2d3eec62e111c01c23caf7da1a476d784dc7d8a66c3dc9d84803a13b056b1d56ccc4a39fa62b1fc487780dc2572cfd405ec669ba20695f408b08e7347b4ea728864b6521e223bfa218d8e2afedcc303ee163a5f923a73e26f80b81b06fe6c9f131999bd94b13c415bc09523501e4de7a9ef8a09cfab3b812a407161d024702ed65ab150ec3e30531d4852b3af10070796bce7258d7fe04d9e90a60a11202ecb7489d1868149f08bd58c712ff952ce19512bef69da88c756e5c088fd72ff876b60cf23cb5e9688b688cf5067fe28e29feb58e6177c37a0de6480a4b5815bf0e224838c09c23f2c47d82aa81aba74b1eb34f49b9a9b24988b93706309c3cf3c9a973b4eb9dd770a4c6a5fe96cb986f7ac4ca7086f7d1581ebc9101555ae8e5dac0f0dea8b3e2940616ea9bddc7ab6d04f85c9a0bfee6d76fa8b90277e6017fe7f3dfd06f405b34a3d738cfaeeb6757a491d9830c26b96438ecee048c55d656111f9104fe2c9c099352863605c621af88b07d6697e7c9d95c001c0619505bfb7bda96a5253e695ed37f73aacf8657ccf1b36619c002b8e8cac4c0064619bc51bf16c071647a1cfc0358116a3bd55be6a0422c275924363ac5dd4c02c718053943ab5031226ca6e78bcfe08a30a73a23b7de10ff4bd77a7171d2020c0f728ce9c177f300df5cb93fc8067eea986917c2a7b66e103a85739d6202070ede5ddc3af520fcea9add26333e4e593645247f374ba58efb8dd0a1fd7eb6330f516d5e390b105ac00f5d47a86f92f7d8e5e670765b5d4843b56f99d949db070c23a88eb899712e6fece332591acc5e273b656b0977523908538782dc551b7f0e06888b0795846081fa2a7b916ccc1ebc6d381c7dce33600f8349ad6d56ad550b8f7dec2168a2475dd9f51963f0a28c27be8269d6781682f1c1e93daca97dff0e741354b27fe1b4e97a84fefaf61b4a7bd2c3c2c09defe923aac1b97664385c05339dd0ffe49c43eb78eb90ed9f8141f2b423695dced1ff738e53d77a41f20a0e333e966b98b33fda58b83051f9797e4be00e651d028f5713ae7626d31a347306f0fcd2e65e35d1b5f650f5507cc1bd78f0a1dddfa2413c6934d633ba9016c00997aed52d0f8177f9111fdb060224dd4613e6ab8b02537ff5a2139f9f0d7a900f92ffe9f5c992862900b95c655e4f523dcf8e3f2619d3ed2449d05cb6c1fd140a016a6a16ddf97c78debeef876f6cd0fce3a92da23e6b77fe9817b54156a9710e0446d1080f59f9ac0738a6e799da864f92cd6bc2463f65590bceb4dea9e3e201cd87351e4112aa5b6ecc6b61655a4f795d2b201a496c4ea3736416139e9fe50ee91f79b3523d2416832e711fac01f50ae3bc479c2f62a7226be077009d476507ae6d69ed59b870d5a096acccbb79efacea1627ebce3a52734801f05ed190ad07699958868b43098498d4a2a6cbc194062a90d2a00ed3675cfd241b52d08b3c067b3f4d3007c0dfc3f49591497709ab2cf91aab2314e348b184e14b154e4c2b0bccb896dd2bad01215bad22b3b8ea46f593c811bada6efd006413289cb0844b0549f40b7162230981f55aae00474a1dfc9b88d4d4d73c82d47233bce2a5e3bd09b8832adf236068e9bc9c14e84c2eab2ab4a7e38c5980c66c5017dc22550f0c01ee9193ce682789b08dd3a34f58713a1bbf28e51efa3530824fe01a15ef17a500b8c26fb9a4f04b96dbfde313a8bf553078a76c90d86f74195666dcf96ee6c30c3826b0cb988deaa55e0cbeb7038785eb02e5f36296351ae481d73701b2b718022b4e3ae882c99ccebdac4a2dce1b1271b7371caf0a515ce60778221149e74c01b57af115a1f988687eca3066724acb03195d7056a35f458c1ef3fd3b7e395b0a628319171751aa1e36d90ad776df87a7ccfd9d884663c17e54e784c6fbd88c096cd80dd38e88a27406e5f7e3d7db02c343a052315db9c4f7d13fa91e135c030b81b4b1d07fbb7a2eb71e1d0ca19ff8953dda87a6cf8b09044fa0ed934b914401ed6ee0a8ddabea9a41cd6ac043e8a002c1894883c7d58cee62ee879e4564440607bb71dd3c8f742569635f535d2b367eaadad401b1eff08ce5b70c14e2318f0c645fa2e2ca52b5a481e568a8257c98af8e1b5fdc700ebbd11b66e2f77d35f20fd2c6fd6bfd61be0d008d8a70c9b97c843ac1818ec62f82b1ec6c9245650bb70e504499ce364042f2a8263e8548bfb39aed1f82a510f6261dd0744fdb5800b90d41cf9317a50c3da4a3c4c0f3fbe9c4ae2ab32aa9a68500ddf55c8b3f9dab1b0d69a50ff0b01fff185988de23958fe983f315521e9a8be8f2cf7a2416f425ba0bffecc339e72e7ec4f3b5094eb12f5370f22548bc7a49d5c8df9b611dff9e7f014a9bfd8ede962b10376f6f97a9e63ad2cc91249c20f9748499960988dd28890d537c43f430cc2d9d25667058789d8f234762bc3e4cc267a494b56b90fbe126045cc122b6a4528103152b5772be16c913646c8a2873d2b36bde05c3f580b6100f42483bf756eacc7a76909403e91c7e2eb9a853899e36ca4d653a04e1a620d002d029a6f691182c3a6e2f74447147a56175bbadf5ea728a89c2d417a0e904020fcd45cd89910a7a95c92824365e96fe1e7d129c8f4096f3e4ecac80310250f104e9ced98f807e1f8816496e3dedb594e697f23f1934b92e51588b6bfceba2f308de21d76d2723d085a2441c4d329f6301ae106afb778a9f3d12184d26b92570029c60c718fb0e3308e988936ac88eb97bd90d510e43aa7eaa2db7bd930f1a8f078caafb24300e130f44eb2ba919875fdb72a2658fde53717edbc250824940300d1507cb5f9b789b30f35087a0a3cc6dc201bf87bff15a8583e948cf6711616f0e12cdb82918c430f5a6c90a5d4ff6c579157d59d326403c85202ab1ba32bfad0c17101b050267cea5bc80f757bdf4bad6b0098bc478c4069694c476ad55b9190b765e0d549af577724e8f8bd5d237295827c524ab18c78c9b9fdb499c4ec5b30ca611f3954f33b0f1dfc1c2e03ff3b1a8230e5741fe4915cd17ca9ff6779eb200531e15b7bb2992dbfa6d9ead2767e5e9841dd617b537e4ff794d0eba9c59970cd7e19a5b5616e2db53033d27eea725ecd4cc69769dd436a4cbf67c9cbebf28077ff011c3de057959cde5f11e82ca6a60bdf6bc7feaface9523314a877aa44407b7bc9fec07050bf6c1af46e0f0eca56764e48d628966183600f403d88bd91e0ed5023265cae995736cb1f59de4fc5611e336a29b63f2668d223496fd53e6ed074b3826406b11ac06d06d6563206c818699cf3e0299e908d184db80bcf67627000f5a5092898a0e0b2f489d142c277d41455e7bc4de17730e390167507de8c10c9fd15c67cb07726979dbdf1b66c898d92b26791eaa1df8c0b9559cd831c6680a36c66c2dd0586fb56adaa62a5961872e104f9918d9737bf9bf0b69cc3a623f061b32db1c82e981874457ce1c9a74b0df3b2b54074e0616d865f4cd9e8afc300d1ee8e882ce5b06a967fdef6290badde715617309ed0ac988a7e96e224561d105d94318042177efc6bd3fd32945441cf0fcfd6c76accc73c31659469351c8510371316a803383a0a332c496c01d78a067826a9aa15cae571f8dfc25d0d16cfc0b0e68bb78275e1274c098a4f4a762b0f5d546e95231b6eb3553e9d4204aa12600118397ecde05e3646fcfcba539e5fc8fc6edcf397d0e9ab974af6cd1f199640fcd206a75c89e25f993df4dc309859701fed33826724841b0b9e4eea224d84108417830c48c546aee0492dce7f8b194ea9ccdfb7d060515a43fffada0b87e810f102e46cc3a446c68f15ec1c88992fb1f1559b0ab9f0d77bfebb2506fd4ce2c0e992c7de91602a576e84325b6eb4313b0c2018978c67a2e3851c12d6cfafc76061f0e555919b5b95d4663f5f207dd9c700bc60b2797d5f69e182319d2203d87080c6fa1bbfc6143e1274cb67ef8245753e890fff17f061a43ebddb4789330c80d4f4d547fcbd603e271e2a9f4a09adbb8b98407cff4abd33a1497670225aae706dfe4db241e69710d3eaaad8a3038038468f7679421ef83a12dd53ca90a0bab0048e344b7a763b3c3c967df4c8844128d369e6efeb6408a407052b589a28d6e06f2ba6f6c288c64b20d322e1f82be3d00c5862be40e8688728bbc040341feab05e26a200fc92c7fa4311f51d5cb0ac6d539adad852c36cb607f1472b0df72bb0b47def2d8dc1c9ded2823e21c02594034a365fce8a1cda543f70dc3b1f74931086b6a2e3e9836afad9c5b424fc7cdf265afaee5c331d3de7fc65101e35be0940ed09c5086e697431a28acfcefe5fa4cf0a93db4be8afce764779ef0206e565f04ec69ed13f48300387eb3f0bb0d9f19139ad13831a5a20c0bedc9dc86d90396099bd6e18a9bb4fe4f9b8a9d495c70606f05674bfcef801a632246ed422c54150250506f3ed67f61900d1a192696e1c368f727ec0962d932d05c988674777a7706877d976871526e897c440415a13b59f787e947e22030bed8588fd40325cef90516e91a6d257687b5a31d9e68388d09ec14a7d6c98c7a62b4ca6ad02924ef84053b1113427fab34cd447fd5b6f416b9968ff81dddb14281f37fc65270058ae308b838aa85004ba91f441c874f28574ad2b98ebceaeea29feff2faf4c6376e6809c4d871798c4ee576e4956f158fbd5b5405e3b68a9de6de4a1b2263c4e00cdf0d2fca3b1b80c43b07faed51f264a0b38e08a4b811f248dce25c3e451d35ec960c6c88a8c7eb3cde743c3d920690488d424a9f90d50976cee7a7ddd8f362070c02aeed5ecefbf6d0ee32855edda0aa8be128b82550549ecb05ef09f67c664ca009cf827bd9eeeb7289739bb6a50f783bb11035fd828f190f16b128f461c77e7b0b7c4935632d0e76c313d8a18828ed6cb5a9f5ab476e738ab898e0b2b2e4d635037a6d2087cf178c0e12e93c6b1b34f8e8c33f84f668f1ea8eb23eec2386dcc00d9ce5a132256af1129c6ece0ac01d37c9b5707eca846f9992a02dc3e80a49c902cfb43a40ba7f6cd02db21349634f05261d687e8c6697150e10a670beffd8b800f76431111424ae54e71786ff91c671bedba2bcfa40e1d2a557a42e2e14b4920301fa5c9b249a9b694e4402b1220125417dd9763fe602097b617545d9f2f986021b7b15784e416689794a67fe5c20bc8ebd0f9de0904f14b159804752251a3001a85d0380b06d1f9a3a39d901f6efc969e36de399385a3a9cbbfdfd673d2ecc0e1a4175a8de57ea360f37e878e9fbbd3cd1ea921e53e9a08662a8816de8d4c00dc41a81e9e178904a243d235f05928c17056aa265da5ad0ea424c4fedf11ad9058b41208b5fc1ac621b5ae568849a805024ec77cc4e3ffe46e12a839579ee92021c4c8bf46dbc0bad1168fcc38101f8fd9ea9b402aedc56fa66dd05bdd49f160f5a2e683d12508a290bee3e04bf5c20e7257e45dae2fb569599133f22279dee04fe80c6d328b45b325485f6b13cfb434fc694dfd4e23cbfba4887756c30928f02146d598a3cd7c7d149007801cd8d58b306e17a8efc4c8af3aac9c382e383ab0b0876657df24e07023db8200f1ee3c91b17afcb5b2d50065cc732c7269722eb0f9582630a778a0242780cf82ac5c883b7d50a15b429d5b89d4addb79819241104f7e3ba2b9be4a1eed8b8b02585d88e13469e480a86671c6c05ccda6ad792fc03470dbc21ddaa125b9ca30c477d577b556059b3584d3656eac8c98612f8a13c009aa93d654a6248b9a1a0fad3915e4644d219064e4085b50311826a86ff9155058abe5be66d7be3b8da0ddf4015e46ef3e71540eede695e7500aefe7bdc3974069217cc4a77b49b8027829a8ebbb612115c174624e01f5b1a63a3ccea731bfa0ccd7f65343f56c150529a559dcc02f27208c210bec3caa62a4b5c6d5c84f3ab0fea2f0027390cbc69b7a6cec9cf2aada471d52d9a9493698f06eb2dab0668600c8b686ce540a7db93eb78884ec28408d7860ae3c2b41a870c5c03f1d9d5f43907bbf697485ab49b07ebfdcd6e15dac6b9ec05f9530b6bd1baa57fff1905006103b27169eb05859b63e6e2a0b260b03c725221d96b4664b43725741622bf53830418d8aed8b335f895853438f165d07b7a8fd8a546be1e927247b40e3d0d042c0c0b2c5634f554dad27b64c475b856c0bdaab04cf4c24c670b704b5f30480aaa024b67627fbfab215fa804bd66105348041ce724b8b6f426468d9053ca2258ba038e73dadc56bd2e36ca687096befccac06e21ea13d53479816ede71f1ed146003ce970c031c71a8154348bb139072c039c171e3ddbb0f0122d6c8428218a5ab046f66003eabdc2dea2a9847a8edc68a30968d22d0ca1c57ffca37ced0ce6fc402a3e256313a21d22f445c978840a8197890172f7959cf63221659f4c57e526f07dffde7949cd19b0e1651c1c4ce311b41057a324c6c35e3d6f160020991004e0afd17579dfd424932818fdc0fe4b902ea7f25ed972a9c82656511cf896ce0d809e6159be7029942c685b734a739b103267ced4a23485d5cafa5fb586d7812f00a69f3a6cd76860a1312e10c3fc2cefdea1281c35e59c41ef82189fe5c4ab40c0e4e5b1ff4db6653231d6e3a409d410ad9e8111d349ab5bd426c4adc014812440c1fa429dfb154161bc0eb6c8272d414e52e0ff635f4df0148c7013ef61d42190b1e5af3ddcd74ebebd04888b5c0e69aa8e182a6942aa115d62376398cb0812b0cf5456b753aba3d0a4cb1c584c092578fdbc0a5dd267e4338c4b217fc66230e0ec163afd9519ebd2fad336c6380eea97fc370fb3ba1a1e112e4e3f2139b78320285f0dad0d638c0c96fec41b0e847c4ee1af7ae5c4f8508229322cb5fe244a504d7e73f4dcc475c52f36f088de04045186202893db5079b417bfa8d52cfbda70f76a66d3833f6e2e571147be765b7711a161870199f041d6c40692c6db7678e02b98749ecb9ed524ebc8c1f5543f55ad495fd1fec5700cbf34f0f66bd7b42de0af4b324887f456f4ed04d823835b3c4287e8091b2a0f7121268803b8e7cab470e0a3c5b90cf03737a6b37f429e0c97909bf50b43b68f62bf0c59b60ed947bf0055e57bbf19bf315b7c8e800ea19b5bfb3ff2410f4b01001b38d2701696e0c4a0e8d3be3bc58e8b92485716a9232293cd6cdb029b5a17bbbb2538c7b42afedda0437291f8d686ae07b5db356b6ffa12b34a9c75c466cc9066dcd32562d0ab32f0a029ec480880e9c2441aa124b37e00a412266e84574b0c77ad0f1c0fc4288d4036f707c19cdd1363193307de12e92596287c529a25fba2b3d1aef78e19e156f027339482d190f9bc158c4a4c54ab19a35c59aae79735ed55094fb1825f1c0220c6ebb33a8a808768d83c8db456fa7d39aab7de61a01bbb7ccff15e9a1abd3c80a9c2fa6d867e73c4ce1682714cecd1f51c3e6ae5370b9ef64cea2d696b86c990ba3c68acb1e717050d401cc938f4a48ac5aabe5b66340339688bf90bf46d8070da888777c7e06b9b2909c9439a5d34b46ddde0ba9da472ee8dc7ca6147f84e70106641c7da5667825d50e6881a8685d7d641011b2fc4c5e13e618343fc415ce0783cf3cbf1a0bbe8c71252126bed66e3766175480702b0f93f2ad970891e45e0ab3cdba6451969431984aa7871f63f37dc3d1d1a8f11f4012f94c0dd22580af099e5e754d6f52d90d39f6cccf5f789ac90dea81b321674795713bda922613dd0c87c5e7842ee57859678b491018952c26c554c39455f40441a09e897c77fea90bf2a0e1e1de0938ed8a6c264ed9e2014f04f83928ccdd8df08ab4b55cf47fd2014d9df27dbdcd84bf7a01ea350a685118aef85f44c0998be5d60b322a007e570cb66a44c1ad4ffd989af6d1ed8921768f67a273f37df0eb83be0335530c2b990781311897f04fee754d7f8dd766d850ba42e01737302b0d3d265ae787b977a4074db3b8917428abfb674e5b1daabe54c59a1e29a72d97936bc9e4738041e30d02e2973484ef9b4db2cac3e07e33e92119c737b63f9d2f6d69b77677e5c8c4030e0d1efcfa5c8cd7c499316dde6b8208c61db3fdcbfc9cc4e7590625e0906918041aa2f5d59ed58c6a60dd6e6cbb389ee61aff5a0381ef0c59233806dc0491bd0acd16f65f3b72c9cc4a4c8090ec3095f6cd9af91bcff2a35dcd798dd9fa21ef0c06abbc93bd18c3701e2bf96a2d61d4fd1bbeefd42006b60aaa23e22280a23f010ac8422441dc9dd98463a93631dd4cc3b519183233d69aff71bed43c7a98c10a66cd21c5ed06b47dc4346a4c62d10cdaca8e57627e565be477a175586759b90d94147b187931d9003cbe1ae05509d055214cbe2c4b9d1b7d03a04559dcebab0c38654ce25f78a3efb41b33546d0b25b68e031b2d2c41aa3c4b91bf76c9e399014b282e8aef896c9dbf1fed4d7d444f76ac022c9ecf9243098e08e46d9563120973a1844a45e1b096ba4ebd8b21f34999a79ec1cf1e899e3767ee0b6b06731c099ac1c4b3d8072943c2afc60b66d9e5f04a9e393b18dc877f931994163c822a09152e91ea5a5aa0b5344bf3d715a41fd3a018d43e480e4d4993419d4d1629ee0778fce8ed694d6b05c53b2831953571c7ed23aeb6326cc659b2c3794e3bab050acc63f6ecc275913efe65b657e0fe9878eac97402a7af3aecb2236d04c739c704949e7ded4d50e15dad9b5daa13d83e59fdf371deaa8f583e0579800728b2e30e6d8b0a32c07e146783a785f445ce9ab2a3ca324efc54ec67a55dd301c56a800e7f2d3b7c52e30ba94ef059cbbb7047209cf55485abb081f17bc4eafe38dbc605cdf46faf138b6515bdeea073e5f2b338b5be44f8cbf990bf55a6688172ae43022486c60d3ad5b91580288e50b8687d9c96ef0ceb573a3ba6745d3e40a735c60433356c5e48583f78ecae3574cce6f26ef787f088eaf040079db08f41a690ac0534887000582cdccde6e7eefc2e47090820ced57648af63dc9b1c518bcd73db000f3c43ba6bbb8593fb3ea812e6a7610ef9b3e518f9fb292abdaa0205501269019ac0ce0ef4da8e59bc8241e6ec2d7868e77010c6d8b71c4cd08b559c98830d0b4075fa7f3347ceba18ffd5a60e65e494ec97ca25775dc2f9a4d1b90154b26a0b368144d1dc539630bb400f5b197d171049626430ac616257166c7e83c44d9506da904ded7f067c0f15401c069a485b9714b7d548ccab1c62a9cde108a07d3d040d4bd6df663161443013f0b8a5d03dd063c22667763bfea0710c8f5e42308804e66219a9c64770577c53d650986f4a9a9beb52f153a04ed4d6330561b59ff002668142129dbe25d802a1d7df39247030fd82a1bf78a6a026fff76fac5fe02e0b920804d95b6715c985e95339a562c3b44da54a4d1c2bcc7de781fd7604460c0bfdef2f66e497fe1d1f009140814a27082547b2b0d333a3ff26f6941b5e1e15097c366ca9b1313b6da3d0d4dd8bc7b77865fcf6d45797d6e5a26db0114eaa56015334eeb02aeac505e90cabc01101019ca111ac463d0d3734500f6386213b3f002967926d8222caa10daf80cb18732be6cbcfa2d827311014fadcde6deabbe70d37ac582e60cd6942c28536cccbac3217839a8adebbf6356e913267b352477409fe006e676d31d8d07d969ed746583baa983f27ad87afbc27e22db08e4f931303559ec3ce5442a301562175d369f1984eaa1bd5570725edf573e2b4ec326aee01bf5af3c9e1ca1a3bb9502fedb9164f075021b1a8c06588193716e819d95c3d0bb01ba9622f9f04d3fe10f65d044dd3cf7642cf2c75538f1ec8f20905a08eb60fd44749191cb104493073d164df943da12799bdc4cb97337efaa44eaaedec8608aecbab8c096aad5a18f89334b5b0cd3fbec4fca3eca05e3f2ffa65baa5e77b01658466dd43bfbb843d4906f27bb2d2c306ecdab34eb53f714b4dc8c88332d601fe9e6b0e2a4de28beacbeaadeb81998aee453ba510acb719c828a7bd4201b80269a715258add43879d700dfe10f99ac42320049e21a44532232a952107a822053e81cd6c893298917072dd67867eeb352fdf4258a8d2dd5495334f35c8b4e9042e3ffc6962b87ecaafe9172ef8cf10d212d2b51e92fcd584d551fd99d4eef60dd0cc89983b6e572967cc2c95c718c247933c99a87dd787414f48f0f8ddf7c9034f2c088b7e154b6947c5f90186045b20174fa6e4627958fedd07d73c47ad780f3f26ab67c5d4f5d11cfcebc3e53138dcad21e687de409e5aa65ba9ea22946806e845ec5a5ed1ceb2213165c978d6bd72abe1d95cac1d43ef4e2f00f83ede920b7c2ba338e4cd487554b27e7cbdf39144b9b9e81b9d65b07dc88bcf94518ff608b7a7d158efd275bdba9bba583a37df0a0d3aa75133d356444a05900bad4c2107245584fa0288c5b35683570a62c260b06de23f324bc6209d59f726ac2c91be03fed158e1ae4d8e64f4da1d1b5ac8457abbbf01cc6c993552bb1a082c71b667001da8f6ebf26eb8960063ca2557114726a8f88aed28791f99fc15e9720ed4d803c0a60abb136712128d1be056e5070d7d11b70e39b75ee5c8eb8cda9b3098020b581862ba7bdddb4267b1423952ddb4401ed81034542bb54ced16ae2116cedd00964393224f8c4acc14f552ae340b1e550448e030ec29cf1777f111a264ee8a0dd51177f59a2cbbf07754ffdc807958b67a770ac0e866769b9c403b848fe64c0049b61c3c40d6457237e5e4e0fbd0dc29430baa99daeee624348a99a2211fa00c1303f89950c17b7fc397ddc12f7f7a5576b3139c1dfb3d14b8175702f3a99805a3ff0347473b0b42116fa331986fd9759ebad2215e2c327fb0d52e541f489b0c46b72dec17de750442e3096802bff4e8e6682a1dbf5bcd93b82e3af523eaf9044aa872ecbc20240c09d3fa3b98be2e5fbcecfa05f217f2209c99e288e052040011693899424a82193f8dbf21e95b820cca365a15be5c90d1cbfdce0aae422c07d77e0a2a72b1d35de9ce2469e5809fc091e9646740c732a858d39370e049740b65a11832f3bab3510218e6d7c32d7190a3f02b29438bbab2c450dff904fca101ac4c8686dbd09913a3b8c8d4c89f93bc23d562a404a1884d146c0946d0e8cc006e0b431f0f1f9630d8520ef8012b6e9a07c5ec8bbabea63a1613c240a040ea07bd4b0707f095e067c06f1338a89304cb5cd1d00c13a0aa94d1e566b03f09260a237f126f1dc4df8596d91771b894b9fa183106d2d121e257e5f74f68acafcc09eaf2307dd0130e1188891b592e47838cf314ad7b817df9f90388aea4d4c5f10511f55bb9ccc213c17a3b619c603923aa3d4dfd45976aa71dcb91f70b826fe90e8e44cc9a6a49a8ebc59eeeafadb2158b18b1e98a07de3ef6afd046d09b837a0c3e473b8312c66b1c71903f2bcda2ff59bd70f6dff531f02c6841db16b4c26b0b1827fd8c9fd87987861940dd8acae94893fc9bea229ba0e5537e5d7a700c1705a8a3bf13d0c70bdda3362e6b82cb46397c5a2be12d8a3f1954d3212041b57d082556bd2fb45d9153be3ed2a0565d47bee53a8c35a5f5f1f3d2bcfb9ea560d40de39268ec6c66962b873c71a26a6a1730ee461fe958a34bfb4de79ae9a016500046e8ce41f6a9ae3f5ae4cf76fa0da73731f7bd6c8e2fbd6111b9c05c382db804a10f857f32cef3aebd7639873ca3670921d8d20ac530fd6fc875c216b9071b022d5b12ac8e5296a913795838ce251afc2f8a3f6a87f4d0503ef7956a508b8e027b02b32da23bec6c5598487b205fb8a7f3553f1d7292331957b3659d9804420adda6b703170636f52b77456b941cb135df8a52ff6273c41a2ec8ae719030b2093a91c1d48e91f66d64dda3e122d6a951c5a7351d4638af78ef9fa7cb997c660dd5b2aeb8385973d17bb06d4a4cbda976582c5a3629ed6343258162dca22f41026f3a4e629f1766b45022d740be153bae9e34538c98bb63c4c57d562d3c1e130e00891988748dfdfe7b29c2388c4e3768745605517cc91530c963833eb303160da9fc6dff5bfce5e90a166a101b9896bfb493383259bd0b32a15954c7dc184108b1dbc012da1b56508f450f790468d960e3ddae76ea5e3b109cc6d37fa26d8903c27f8a2d0c9b55f41abeaf5a8dcfcf46f0f232de34dd519269a6d3ba99ac8f08512c362b1d3f57104e829361d8b99205e17dfdb1ebeaff395710af5c81af9e0e57fd0d9f73fbc989a170142ae3d0a6226397fafb09a892542b387d25688f6001082a5b5eb158fa40cfbb34a05037a219134d21ca69a58eb5f2cbc7febe244a02b7ca6e6fbe34e719b3ba98b28fc3038cd9fe07799c5e355da1c5123c3a7f2308aa5cbcaf5a00f203ded8a78b8838019161cd4f394996edec6cfa1cf043958b04747b7626e682ca4e95ed2d304202468c17cd55141cb62ccc59e2665295da680f0202bdf437a6b0245dc9e3d1e122ef324feeb523292452f6828cc4c462cc6f0360089564717e7594829e0e2c3aeee7840f4273e80d41388a33e2f4025a04fe07d52e6f0c43327b7fc7d6e0e5cedaf5eee146aa8159c23fec524c0c9f0c4ed40d8e051e40f7844d240256fe169cd9f0bcce237f88d6f4ee7975b4dec6da84250f4cf43901d5a27dc0a86cce258b019bdd0fed7a4926846a9f82794ae91a51c9092b00862e0ccf9cd74793c1b57f54afa0370e9e87a74aafceea2903272e7a43072c414c72a5bb412390457ad724733baa11c19eb141a822f15a603ad53e1f23079f439eec3c76c460b5da7179c5c46880ac97c44eb8e8a43a8018dcce460f5a06463a226cedbd308f3591d8082a3565bcbc1fbae1516b43fed2cef31379571606562f87fce3d183d7819463c70c7acb596c30bf6c85b7378998b77ea765da370bf40e0e3ca6e674a161e8652d67358e41c05de354def6dc1b6fe4b91165cc0f0fcc539796e9f7e9d7d65d77a936b0658f18d88dc65a43b8d73176b73165e6970ca6e9cd89a05e9fe130301f068a6ebbe125ca33336c97ac398af18b3471c7900041d019932aad060f237688e0334a9341f30bb2d9293406929fbaed2e7f9b28086f43b5db1a4c67a90cfe423c4693fa0a8f9bfb05e4820326aa8c8a3c4b269403059b9cbc83dba6a0a2f45119447d171634383af35f7308c9922f92127c37af012baf6bec3ca7e5bdd1ecf678a50e59a9f28fa6d6771d86cb023e88e3abefed099b11874b6119c125b4d9d5aa2ff4ecf83b88e5b0720ea3ad909aa4155f19450ddcb5bead0659c32d5a0420a67e526bbed94156ae7b40a19230a85bfaafb3d50c705d35ab9d25141b1bbdf85db60ce2daa90e52a8540bc537a92e3efd218d43029928067babb50da997688e81d7a8e95a62ddc8f272c7a71360f93e779db0d606fa7b2807560a8eb294472359d9e6d20ccdc0a5f83a3d536c984d43b3dee7c306ac1968d51fcd3fa9e57bb23fbfcbd5f96b8febb24d2f5c85c202efaa36f2cb022a987c40bdf26738480b5ab4fbd3c7809091aeb6d522d66cef476fb2b380a70c29695533cf9c899b26afe05d4d8bca0ae2651a19ca1eaf14f6a0344e238c400f00b9fb9c363f90b3c7c02b788d82684d8684dd1d3374784419d1a49df08a960d9c60f7db7309706fe4cad01af0b5368728d82437041d4c6672d1a2c1789cad0fedab3fa318632a26c33cb5b84a39519e4b98200dbbacd9f878e404d6c593bf01ce5071109e3af6724ba4de678fa9e052ee5716fe853838e1f866219f143dc50bbf367d5e90534bfdc36859e0b0816f3c8e27be46dd0cee1a21a5f51be22b080c5566942f30c5261c0b5d0c1f05da2d8756e39132c52b631a77c016d4d18c700c00dac06ab70b1ff2c3a2189103441d01231c60de8d0da5fddcff2e049c960100834e3bf2ec71330f995e40bb94a92938ea63a518de50a28839147fdab6c0880c87ddc86a6f2709d23b13a581e1b4183a54c1e01f291a1167b7f24b81226b2a0323ed1e2175901e8e6e5c7f7e149bd9f3e00a20b450e3a27d86375a4d581f3c009897941783ff5e5677de506e33bb5c58738d84921d04b17de4c7ee4e2592d609a5d999bc8692b1e45dc5d1bb0a6f2280f17bb264de90b81cf1bb03c739e2450a2254597bc2a52413b8ad40ae6984d37ee13c8c5c049f06123c1e05d8e4222f0038cc5955af927daf5a787e47a7cdafd92e42e984d7d736570cda3bafc2ee8c0407215e4e5ffe029b3168c200b9d45ec98c54f20c794cf7f49733e9ba7fc6890dd14f21105930e2b8df5cea5b06b893b27e084f29e19050f9046f9cb6c5898205828e703aed913cfa3d088515833cf1cb2c716606b55a2bd3b1bcf1731668660b0affbb3e8a14480cf42e7c9b0968e996f1d21a8598ce79d405916b2f41849807bf14b0b687982b1597eae78c544289edd9112b0b187f5d3df5a37f1a21226303bb4c306eeee80ee2ac339122e9e54577c219e856fdeeedfd1dc353cc748bf807f98066546a20b81e3295d2f5fa99ec2832589cc0dd08153b352b9434cfe4030faea1f88399a7fa53b9537da32878f33a8592e4886dab653adb3a865c0a4d87050955c691cf546aada72b363e2061b5c9483da71b042d3f3df1985c95de87980024e294980cebb52c32a686ec49d2b93d5f61b606309ee7dfac0f0809879a090cbd341edb6550c7f32825ee88395cd908a62c72221df4d018dade67280db7f30d29e2f2b2f07671796644ceebeeff0a567379863046885b1e1565fc6db4e7560824e314d039db99d39546255f2fb47b02afd13ad365c39e9def2decd2cd16220aeb57ef01a0a688173a4d01bf8d7ac287cc809b1227f9c4299db6346328e38105bc192da93ce60dd5d542c9ba81fb1ea682651f9107a073cb6a9129ed6ed50205d0f189922e406aaf480a1dcca3f0b9c44a549820d4138fbb9d24d011a4313200127f44e29890716e1f8a647c5dde51e55a315a24f198216ac3b91ba9a40fac097ea3948562ee344c729c56ccf8bb083d3c4acd95e2d5ef5b225d3d2ffbc26008f3dcb0c558ce0aacdf288d3697939de41dcdb4625cec800bf8c3197485e3cd08de08750eb653c20ba24de5b8b0ae776a7ee7c24a6c35583fc7ba460038a9fc0eca00481cd3ba39115ffc435fc3b5bd30309d574e66a35f8f3aef6a1dd272620fe6c52811e72b3821200692260924cc50eef1d3ba3743764db9f790b7a8cfc702017ed7df5e13448a89496ad16ba89600a72128cf9e75694edf95724b9875b505554a4cb21da69cc05f521a27be16667a774c47335081417f5385fc80f611f0048f7436ec8893249b776b1d7727b755b4be3b00be1e7d194deaf239497a51ca085175ddd81c643bf700c2a85f7b3d44c8c6b56e2a9dc9d82369f5e2486779fb08f1dc2d923d856b22a812b78e933ade29b7b686d39d1f2b68ba8acde564a6320ce58b46a78c5fe849a905573b541c69ef3cf65cc4c2cc73a3abcb1be9c8b31b08fc05839644797903ebc50ca4830c40798bec71b44562e089007240c859367005fb58d16cad47597f1d3eb9ec252d54bed471693f144f6bd53a0a40a36e5b250d9819d3e3a29d4855b46dad8e28becc69fb492b0930d6223413a4ab4254625501fc9b53e0c864522a841c117ad78b128ec71f06f368c1ee6be33818ad1f66c50b88de2d328c2bf4ff9ddb38df4b8123743ec8357206acfe972c9985f838e4d205b938eee5a59af10395c6cdf84e47b7b41115647b116c9157fb2e8d94cda94b0f1c5a623aa5a827f5a3d85bec244f22504aecd7803b92dd52844c508bdbf6fc06e597340d4660d30a934b4f7ac9567c8cd723d0171f9f3cc638bf99dae6f7eb0362fe04d2051c5952372d687485e592ba12d7916923c86e87757e9d85cccd1404907798afcb43701db7524e6d778f40607f6be7f456f2ede975d7d05c1fa8cd0d5bb9d2d986f8c92e4943be09d05bd8772688968076674786c40800b16769f30c937685cdb3b752b888897d9ecefd8c1ededb10ccf3cf10044918f765f81a5f0157c9dcce7d401299fc4fb104ddf11ce071889c148d95c0cb574c0728dc526b0fb568458d893185cd0ee13aa3a8a4bad0aa9b95d2acb8bd6140fa2c511c521b0fe1db80a099a4573f9a2ac3a53c7ed8c6b482d83f1eed0acdf9eb02f402a68c0c53fcfa5c46932dea2960f53bf8b08efc53e9b19db408cb04793cd5c7f4112d0ebc4c13f71e2e70137d83c4d6320b268dfbd43a90645270cfbe061033bcbd1c0ec7eae1c55b48c02b66c3103560333c10284da92f4641924988ef0e011d41050240b724528a1b577407c7ecb227e030937e2520b1b447111628f3fc451298b203dacb3e2354ebcb886ba6f5da5968a5c79677866567914547cb0bff790ac2350843a5f806da0304eb96ea9b86bc3330b0c67a15c888b747a3878b8550dbc67508afe868edda579ee9a06aa0c0a31a981e635ad31e1d82280200ea12a22430710ef928ab3bfe9268d3bd607802cf9ce875b4c4a125a0a19a8d4a0376f7c042e5026aad7fa69336ee6b85e6cf1af123135b6474422aaf9cbf183a5e528f6d878b0fdf75cccb7d957fd92674075361d4db27bb91a194e37aa2f29203cda126c6f9097e8e1af3893088a8423b1c012e0774aa3473b29f3a87253eda6264501c2318029cd476955c89026dc6895733b2df7738e6ed99df1dcfb65ccf81710541e689030f59b1a598d45d4cf9f4ab4d2f465ddd0b7c11b95e2b7a17c8e5b399436ccc0f317aeab5d45cf6a3cb2f1f819852f6a117fd054e6da29f5e994a8ec935cab102dbc8bd1c3123ec3a4b5ac11e66798ee409e2eb15a5e073596f60bcf6cdad4a036c48fdbca710cc80497161b53ba226a823067ef6f7f1d737892821727d3a99026f2279e69068356043bb85a8135921a7627a93ee54edbf7652763fd88f43c10c16fab47679eec649bfb95941bcba39e0428305bc0bb36e7095417c408930d1058ded10837a31989c8157838fb41d31b00c9f9c9ccd8f47ec48be3e86345cee0819f2c3c1a1b4654ffc6f21e53633e668bc8a22d6f80f6a2e3aad0a066ce5410ba6cdc642f26ea85f9e19fa547046db036e05f850590f8232d5964df3a8b98205c15fbffaf7a4a3747a49f7717756a73afa2017eac60563c7c76a76b08a84010434088450409e337db1585bce6e9abdf36dcb0fb0d723628ba9c9b15e983d6909fe4e828ad65ab944a29af6d8580f3a2cd542fca1a6055099dfb7bbd125daea0c10bc24fd98a445c608c7912e8ee4c9e6b741a58c9877cf433a299213e2d82a0ab9aea05d7ca611deae2c36ac7283bae4e1d40cab9f8faa04816db4248902ea0ce2f1e84172832977bb2d00a66095866c870b9cce2ab49c6563b094e09376a10dd0ef56911b2de4382331b3ca6246c6976efdd34fa85a9752cc5902a14bb8b40ec6ead0bbb8e6deda98b6f0bfa2e2792ccf78f8ccbd0d6c931f2508cfa0114a0d500c58afacc24c93198f3d58ceb97676cf2fd817c9a3c28d662ec199b260b80ab7a9d4e15f8b6acea9493da192611cc1eb96dbea4f61992f5ef0142d11628403afb99c39f6eaa7a8bbaef4c8f713713a510f7423774f53a9aae6c74b38dee103d3d390b7b9eab07e4bbcc2026efe426ea60f58467ca3bd06c66b9983eade5605e8aa6c8d1c37c11b215c5bf022187dd46b256ff546d0b20d325694b256fcc9077eb0230173350f0474646e79e5b2adba59b91daf854c87af167b0bd5730631042118a436b69d1a0f1a99356745b4a7bad2e8ffd40cbea3afb0cd44af87e29409ba547f090f8f8239645fd72a30b653f9c78c52d1ebc9390a5cd17abbadba740b17a3047f0fa04e0fe522af839099da449ada245c23e2208b53cfa310bdc5450da4e91c33065bc9faf5f80142b6e0275fe456cbe82b51b59ed3c8ac1cc296a90e17365558bbd14358a0db55e4c3ba342c89925b52a51ef617bd7dc5dd55fa210ca98706bc44d1fb654433839c19f7e3efd99a23e2b86714fc00cd8fce4c7d610bc7ad8ff9111c95d6509fac7efafc3c454c560ddedb268e06b01696f76fb79a0e6b70666a652db6eb75580c0cd6b276b4e1e1cb0c8957500c6670ec73d8d8df008b3c084e8d676c14a78a4829b06e1c8ef084313196b889baf5bd5815af7e1004f66f823eb013815d6e9033d8b72ac30b7783d7508fab9b64234d5f5109c8ef02b00b169a7fbffce6000d7f9c85321f7408bb3a6683112d94d724471f2219810a0db204091a53d376f92497cc900c7da824645bde9eb95a2955cfdf31bb7a0b04abb4f16d47f33dc83c52b09eafb6c872f833635541f1bd2b90ee5b029576e10a228130da45d574aa4dc10c2a9fff4899dbbb349ac8f1372063dd6066e4629d006402ef830e26bc78ca920130eb1f3d01f510129a968f6776b0418e154c3d2f04f05851350d01f066e6875c76e7b723085ba5e3243bbc07b2a81bf30e2980d50afb3ac1a4c2ff2317c1510f59c44c214fce88f44548d11cb7651c144debd0d101c8d626f19d3f51e07d985ba8ee6d03f72fd6eab27839d3c5eedd632efe8d080ebab18b2ad3fce837dc69f27be395d7ad62910614ad4d42b1546c3dc1bc08cc0047f0a78f07425e6960e805ca19edaa6bc72ea9f00fc631d2832ba1f4baaeaf0da16039aa70add2b7424439bd7689ffd7eb6a290c9295a037d905bffacd8536012e2214546fd7c74426cf589fdba37f03e7b438733c9fbc8c6f004479c405490181ac8ecab9bd6ac8379ccf15ee436f8f7725d4982b1f2775c2b9bea16e75fb0d10de7dacac04b3fbd49c294443c84042e409e7fa45232a23e80345dfe216820b6dbc8e0fcb911510ccc261dd8bf922ba680950e1c8b4f929c9b909b17de02100e8810e31e9bc22d71c429b4e1b8e8e75c87aabacc470147bc89480f604414f0ad08771fe111087af1fd0897b5c7fea79d4ecbfe5c4937faca91b3a8818f05709e59720caa150153a50c10ec946ce050ffa2ca9f3476d64020b2f4569b6b4b707f13e59d13c1d965fb7413bf09f6f22eae906c80fffb91027471b78d54cd1de055e2a8ebbae9f99dcf36b51a1a914ccd09eca4513c8426e7a0e404c9fceebce070928a2ba114651d3c1537401aad243ce56f34c75e385ce6700f77c96eaecad0b124dfb656d0d45d5ad2fef5a98eed1177f86660cc920bc6a520e843d162c1e001ac8ac9bd3e3fe1d81bf2b722760f517b9a5a726952822b7415ae830b9d16a05d2addd9db0c9222092f6667e0a76f911efe0986d3f23270bae9223859414070168457703254683b47b5efd890bb955c31148231300b6ec8fa14baa1b7a292607bc6016ad26b445b52459793f8bf258498dd4d75313fbc4826443400dd793d6099a001a456fc8c874385b31917b5e6ef1a404d36321a26824e34c43108592bb0f395871394b242eb1a6d73943d7664a40db5b5936de803b16ff19729c79ea4b0c23fd52fd52e7027fa9912e8421819d0edf248776cf86283adb5b7ac5138a980d57e3c40be4541e9ad046ee54342353bc7f7ead1a4cffcb6db8043b172c587c08e8a5dda53df6770e96c5d94fdc336b16b28c75aa2994fb48d01cc4a996dfd0077660ba7b31bf61dedab78a825ca9d386b48cb729ad8b604e5a2cb9b375a4e403d78e506a1956782a35c78d3022b248a32bbd7122a285feb561ecd08108eec30d33b7858f0b3b85a4a28f15982cc6cbb42938d9455bac99a9ba8846ecd5a56d043861790f19093a4bb913dae9279d0a2266f7493657962331f5f5a064780d1a0f14c8340828e2af8b0c1276b2933e2b5e63062234af15028d6bee79d08f8a3a048453624a6528d95b137168929389ce8617b98ffdf116d796677dd0f00630470cbf23409f9dcc867d7208684d66b2f5411644326e6e5f17a197dc6af13d13d40464262eb66d0d4f5f84178a784e0a96a9bcd4a5b2919a87f4163c4d28e5d67b090766a8b868997826f02dd60883dd0004e83125b12d85e0c9fccb904cc3788a0775c29dafe36f858ba48865bb67abc7ce57c40af8556707d7cee7077a7bc24603d0b05ab7f57b37ade9b99024c82838f21561e5112e4847a7be8f7d901d1b7c048140b9252363820c1fd78d6eef651b89a2ee64979a9e5f61ad5d47c607b25d0f3a568cbe07fd6e6f5b93abae044f3243595d9d44010de3497d9ee789984a500a33a85f22f78ac137c8675d5656b6597080ddb54f79c6a64cac36e8ee1d63d3024fe8926760cf5fd7af5142aa4d66a24416acb03088942171f25873f59ced790c33d443b5bbd4c5824d1c18161efe3868a54925000f32290c393d22603667d70fdd9fdc8079683130d0b04a3fbb5c65fa6555c73ff09d4fe4330f7b0b5859240446fdf431f5e5f742ebc247530a4dc7c126ae7b5e21bf6e858955b753b2210f04d67d6ceab9e150b27bdde5e41d3168e68ff0740b0d578cd71311f300ddaa14085039b3b3a3c9b6c5c7100b167c8a3b725c911af69aca9de8825330e6417dea05ac3a8421b4f61230cd2fd6a3986bfc535aa68ecee46f7d88c8303232c1efad0c28bf99bfac05d0d73fa555c7bca744b6c1ed9a5b6ab18befb193e576cc6a520ba660344551f5c91d2d34d8952eb91c26987d7cb085bfe65eb2a90900faf73f0ae0489c888ccbad19ff67c4f58072cb602b0964cb7e3900a099ecb7c36ef420031badff37a989537a460b69be22986eea429f44688bbaf709e1315d9a4a4d7d0d7b3577466d5fc218d24c12836e8f8480731b932402fd94feceebb446b1f7780283e96b95e2c9f788a579a78ebbba0c7535dcd345782bb005fbef00258a58c8008f6bf81108ba169f1171823e06c8731afb80488dc7e2e3efb7d294621bd9c40b0898b9fe32e384675c91c4a2afe5b676543c1cffb155f28efc77dc619a9668056685a1bde22c5e3511d2c89633d25932e4d6e8df820af7592e3ac3f17e31c808977f34226ea9ac3e9915be80dd016798e82c0ce0f02d81e88ae0cc19a311260d60150d46af452d7ebfbbb9da8e08fdb78e6f7285611e5c281f9cbb9acaf5d50a29cd1b5fafa8c7665226a29e1da2d0cf36fcd213ca6777af33e66076dddfe70ed416075670788a3da188c9cc128a63e9700be5359463858a128e445386c1d305ac898d9f737d5eb46e7e250e55bcc4c051febc0d85bc801ac0daf9cf9b1d700a388ab323bf8fb603fc594dc44c70a35be0af232e211baa855b9d3f4909fdb60a738da615ec2cff585cdec61a497cb6c75fc9b2eb2c3ee5e82bbd81263d4ba40125abdece13ea548ed85b47a51b7467e3ab7b6e4f0079265d5c70934deafe87012fdc3c6e06399f5a5746e69472b29326bc31c929726b7294919d31e95a86650647d38390f951dc6e9efd058fa65117e8bdae6cb732b715ed2570f279d1575c0c37eab174201de479ce89af32f70010f28c1257a899b881428d3ccafe3c255203ba0f619471cc0678af64bc6d34d169531abeb319daceb3dc02b69732fcf1e900c90c52ae968f05b6d9b149f2cdc6a36081b4d39a8cd4b29b71fe2fa154200303bfafa7764997b39da6ce7ea4bd08c7ca55a4567eb9be8f6afb4bdf75cea2630b86c432fa3119902a07e72cbafc0463a40f8b5e5be1ec65e0a6c3cac6768bc30f4cc5d409ca3d3b52b0370e0945608a77dd215a24a23825de757c4388b08d490f6b5a64694dddad20951c3d05e54b8f34f667fd9a393c2ec037d8f2407853c3097f13faa12400b8e3b220972ac562328e179ec6b2137b8940801d66c85b698f01061dc13262f2b9c8a660ddce46f4309a5c03aff8f8afd50e04fc66e849af380548bdd1e44e50481a1665566d2344ea863a321839fde3089f084397acaf2d0106d1e06152a6af75da2861a93dfd5f679b0adbb5b8e69fcd63cb6846a9d0070606d112bd7509eee11f1dc5b99368f9ec4d6b2556d523bed008f939b0e13bae0203255184de9dfbc62414966196ef9d14ca647795585093482b9adb0fc9041ede06c760cbecb85829fba2079486cd6395edb9a19d1590cc1ffc08ecb4327171fd0ebce2bf1a9c112c513ebc0c1fab77b79d393f645740f966c7e1102221835e3e0d32d04972895f65dd829dadf0181c608016f5301e1145f6aa3b554cff9418060dd999f11a0f558865d52e52de895e34def5c9b0518c52bd0a324c7615b7053a084aa1189141ac9a0da46cf218d0523cf0a59009fac44e53a0d0fb459b10b9bd04ef3295cd2e1acdb2914da8989e70516d52ebc9040603823079484df5218936042edc365716ee40c971f79401d1368419e6d606f6aa8f2f3efddcf0ce1ccbbf08ee12872a91107f322870d2f6e00495148b8a2081359b06e72a6f9acd77635f041f48356b0db6d69e089693cc70bb1d61eab7d9c44b9e16b2119216d2061dc40bbf5d0a8cf532b38d468eae6e115e2ae47894938c25eca80cd83f8c797572f90c35a1b3089d6aa7a7b83b047631b09b0e1f8b7728daedb9a4899c098709bde804f0f734fe3313bf9f2162d6aac06183d979f4e0d076603a15666524236798e60e347bf19c14af3d010da8ae5bd2f9f86b736d9acf1e577facb86110e4d26d580b607771b5abba84e8db50eab03e253a6b88d749e27692e0c84fe5614a5e81dd010188ebae4651d3c0d72d56ff05991207bf25a5fcae91d26192be66cb9434ac032b3d8f61516fb7021deb998b5828763e92149045f0409c23537b36130305ec02a81f9abab3410c57f452fa2f995d16ae8fb15878ee1a11b302844862f300750be635ba2fc88e3dec50a42b08a63b22415c518ccbbd74afa6b88a8dbdf1969104d5fcfd9218b8d438073b9a8364fe6974701858216b0a2ad38f64c7d1f1587b00a9859752bb8d647588de29969a3666637c2ec3c4270c6fd6440016bb3e850e0de45de3688ca9dc7d3b506b3ec58cf70a17a6001b90861beca8f0de0abbefa802a38bd5b97595a8ffb6738571fdc033b26bf676b83433d8d4529570cead86a4086e720917b77334f84194dc983a842228f7295b55ff91710af51e0a32e5e5f406bda9187967611e2f65493cbce0016af9d4154e4c19ea7a72ddb14363d7f9bb0f2905d16b42a50fabf3b2555cbdd1c6522982e1395b4d66b88d22dc91ba88df0158e60fb02e0adf444b5fef7363771b00f936050a42e0b510c57eb246972b4f070caaad364d0608480cf3081e76aa7e0db51185d8ab29f352f36961d0911a170663a1fe9aa5cf89f6f2e0f23f17dd9607568691ca314641d05adf106af83bb70afbace424e390ad374ee9ed870eeb40c0f44a1b3bcfea5a2b239f4f99d1ba0e0c12dee297e09ef4777ea3a8143a5d1b97c4e01083023730d051e390bd76aa0909bcf41ec4436b140dd05ef5b11b0a67433e6b0453dc7014a82903f9ee8bee7d0f6665d27f19b65a73ab52e40805e195a1855bcefcbce5a22f0daa79e39053120e5c6912a40ac273021a8579c5bfd4114d455f4f0d16909bafb751e8bb31de7e0586bb75771c812f37e74be6066228572005a130ddb79053fafa783abd28a52a0cab0be882690b1aeeb390c3cf89ceb30f7f1ba10f3e1558e7ec1c25cefc240b0924d7d8b49bb474ca64b80f61bc9aa72851c86d5db85743d883800529c6a52c061669ae7f7c3085af517aa742fc9e8baed7804413f32ba03b882db595ff81f80d332293ab0418f7cc4397cbd2d74ecb84e2e03afafa7f3ba56ecf512d7f679702981657873418b28b9f577854d49efda80b77eae548b3c2e0ad62d23fb10c3002a31c0ae5430bb6ca32671a1fd5bb6bca209a1ee7ce658e392d8f24e415d46802cb751fe3c83fbccd07310b82dfde800bb0a446e18a6d4b6749f168c051ae6603e5cbc4d1eff8864c95b6bcb15ee2005597a72f36ce914e59791071bdf6eaca06d44be85266220088d5dada2a571e4e449069965786683b7ee83d0f16dac4b80effd3e937757811e904c63b231ead0cac0fc7c3aa92d79840f32e5e8949932b06e4490b2dd7e373300400139b16d7c6dc3f4b11a78766143f5434f2343784cb0070acd7213ba3b05cf586a3e30184837864babca34eccd40e0a55e22b7ab3c80d8f2f63f9ca90c82ac9fc35e623e93499303f74b2461f3a22723d8f480ee890086f568edd489ea587cc13e33d1a97b29357e44ad0da455ca0c212bfa34f1d2900830b48c027a689d02332878215cd856f04d0ae57d221370592d083468c2f2608df58f81ccbe64a3e2fc53ecf498a7e1a2ea7b60bf3ad26761b90d21f509afc0385ec0fd065c5ba36b4297ee690380aef96118e5b6d19ad19d1e98c2e2397aa09b7801015431307e46df482d35d23e66e65ea9a007a726e1a8f7faebe127210040458fe53623b2d2f123a344803cf080493691c0262a922d9c5952717cf5b4d0cb55970011b2ac43660ab76778609a6978f630bd00699326a84790bf70682a40b39a2643c42deea6c606ecc0b215116421d1ffda42333b8af43f109e827d6af0bc2947845605b7117a7875d9b7527f02fa3750d1d93de7553321476f92b11d906fbc23d1a0783f9e4fbaa4a0ec7b92782e626d3276c4978aa07314b831b96e6011ce49cab63b37d65234480a22656dbefc4f681d50f23d6761b5df83c6eecbd01ffc416b72d8df1d37f715fa45e8dd1d3c5078ccb6808b48c8325607f45c9ac04333c950b34f393733932b2b0d2de8a09ff163804f8633a98877d7a2cd37a5d02f38e492b99d874b1c22fda102788673ea04df7ba88b3f236f2b372ac5253f808fb919da916b6f623bb0a91ea8c1176d3aa77e2262f7adac3ec7f9cd57d1aaf023eb1f69f5906266f20fcf1b249056a02ce4871024d96d1ec031cff33a8af7609831bae22976027df620e8436aecdc7eef553020b3aa187837d68a3379acf4d0cf6db1362687c85406d29c405426de2a6add96f8aa60d349548fb095c8df6670fef113929cf04244129618fabe0a5df19760b568e0cea0c8f3e301b4d5c6ef8021bdec47d1396a5efe3e7e9c8020c1c83563e3f32a0897bf8253b37f19aa99c0ab2314cdee5f6ca848ac2f1c8f51d7d05743621ed7b2bfcae3e3fbfa1a8ef7205abc494f456846c7b45684a5481095ca222ec062cb5186a6b6606049c0bc1f50ae9f558c9cd9e20928505da04d88c6a85ec0fcaaa4d12cbdcb63f52d8a6756208897a8b7e37efb1652019e311ada9735a1a56f03bae6e6b6cb67db79a14a2ec06d930f716cd50cf97ab8ff030620d4e5194debdccd02265c089d69c03adbd0d084ab0510f0f61a312ca4d95e1e546390411550163150c0db1ca8a11646e0db90452b4bfba517f5dcedba537a8ef2d496db734a7b037d6be8edf4f732d995ef10a956d650af828845e88dff0c5389e082bff1b0097f25eda356916c7da8e825209ae7313a9e05bd600a39a2a47408890515b19101e8c7f2b22604d84b60a71e60239e9a2b826e678c4435d236698b2faf3388026e5a26669826c729619b612ba0fb4799829f37868ef063f492589847ebc4d3bf731f6e8a57753f4f5ad860a8403145c514f36600e330d40fd1749a78edab38df185c4ffebbe5e871675606a2d02a8abaa60f869406c93f8843428c50d829942e29bda3480a495ee76c3b3a94f03056a6dffd2607d6f62ea7c9a90f01db535927808b7dfe49a331d39ed520eaa011c7ee1bb857c460e807a718588229190fb07ccc8cde083faecc30ead9fdb3f00e81a3ec8657f785b7339ba5183a5fca2c9e6443482f22c329123b6439f85f008577cee1d9a6df2a44253f9db34c6d5a5a83db9bafc2b052e41cabda90f8d2400b7e132b6e00e29c39d6a4f84baba144a32e46c86101a50c02a6f60b3bee9270acf6cee50bfba70025b3932d90482d055fff9faf3e86b38cfb54eec30610508018b90af490ac18ac57f61adb13ff8f44fb215292eefbb38c960441e8440f2e40cbe756596cac3bfd21c3ef0ac57e3026ba0ba42d947ee001d21f7c9194c8cd008083bc7a5977b2ef7e2adc1c0771bd7321ee9917ae7aca64b1f585b65877d01011a357cfcce55d641906ed549756c57d85691e0622f3ef33bec542ae943ed3003213be90fe74ef95f854e446f0a9df795fb0d0c04e70f22ee3f97e9c2d6e0a5019b3d2a602df705750d6536b300f4b6d7c975158bec827f05dc62bfbd19c1fa06419ecc79eee8ae417b36429841bff00713ccac5e970da68f0152718a13aca000faa91bb24426a67dda16571576aede0a63152d09c023a7d397eccb600701810f9840c0cdb2bb7e1b03da0ebcbbc98b860d9c889203cf65e95cb01591ed0b040e0e328b38b34f7c0aca17d471f63ae795bc9a9c3ceb0515ab0415749b68796106f91b608c9c317dd3bc247ca4c0103b3ed78f114889d4633691be3208962c9e0ed0bf8ea72f53fc26611edafe21490580bfbb638838720ad4158ae533e9c53d0f16d27d70bc39fc9f595414745ab7a5fe56f56ffe3293e1c167a2fe9cede28a02f43eb394827f4c2d7391d439a2c53744e5eed49de8e82815adb16656132b95067fd06a47439013e0ee376679cf0ff3feca42f1d8fcb8462f71a445b9b584bb0811ab020294115ac326acae5111ec74a00b7a29a5b78ec4a5eb21dc54aa6bf20cc7b0d275ee5ef8a6c5cf73b11a2dfe63288224432a0e787e35d51011c400ca0782e74d46d50c68323141434d17b70375188d51644a6e8d66fba975799b53cd02a36ffeb1363d31ce8ee987c04f615e49e509f2eb110101c5541e21674ff9b3047010062f476402fbd9aecd00ddd73520ed6672905c5b7456b41bcc042d4e090a4022785b07fc42194a614196f87d618efc247e590a896794113941c8da91120dc7d788367064ce2ce32cbc53d37867d8e996d05cb000a4280a3ba9fca88daf0f940d0fe6c829466b079d540eddc8c9a0888f6115893599bf46f4ae0cab785009994e47c1eed1b7841d2be92d0a99a2af1fd10196cb170e1316679dee81daef073ce0270a94f133125e2647edbca64da53c2cc60eb666e8b8b8b7068140a2030d368012c211461b0b93bc91cd58fd5ff3535a20dd954f5fcf15013cad21a83c051ec4acb2bbb35441efb24d72ce6e1e201208978a8861035368c31fd948ae01057f021a8ff1a194e3c0c1f17e219cdd866740af5b7c5ad0758ca2cd236054a10ac03c8700d201d650e7732bf8d5eb9bafe0253a244073df5d497f93af01cf8706455a6a82e9add15ca2cbcb611a9885c06ee5042ee607af1233c49a89fa37290027bf46c65c911607cea4f2904974ac57139c20f9973295516b964f41971c5c0e582dde683196b5726cbf59b6f396231a7181f1f8667101428adac988881d630308129a864470c9f2d195a7c0572e4815739e49cd5d9e874317f4d00a3f7ec909232c7f340948c3c970c1e549fd77276b7d7fcaad7d2575b55bcac747a801e504975e1c71a55e9fd6d284e40a4ad5b48c8b670ebe068ed5b6574a607cf29df502d4d8488fb6e45a6c4896d392a411f19521d00e7cf3ed90f9e5bf87e0e8dddc0b8d3c4708a7b39a70b3acc21e77201c4e2fd180be42d67a6545548386ae4b2b04509e5b07e8c0cb13f861c83cd65e1e5d50aeedf259ae36fd64280b2e0c34a506cfa874f4e311002b6df4768e38c44111ed37efec4b07e6c73baed58840827b038653431144ce4e790cfc719d679df9a3c5dd56970ff000c00f31483f78d2b00bd85754266bff1e72fb109e277750935362e4610c607049e86a3099eba2a777033a9b6f0b53cd203d20a7a97744c47af3f842cd550fa593d4d6c7948369a5c0090b5b7e719bbfe1775ec1fef006e141e46bf0f23cda7f835d57d3dc4ef948380fcc8e41135142d5927e748f4a15421567544a927146fff898a4efcc7255a46207cc2a229dc7d0d2500223623081237b38b78e92e2e646093cbc45e8b545bdf70a1e092db77c36f0e3460ca47e1a39cd574f124f9f412407e660fa33ae0893db0c75df07945121a6a6aaf1c7747c1ea71a5b0f355e4ad8d09365ac64736e22c80ba4a232193239208abe9a34c4904c0b137875f52ab21afce4bebc0cf1aa5217034b095c1f5c824f4cb1a8bdb1fb9e62ca1579c0970b1b3854f0d5f24b13fe56042fadbf65fe9c6ce4353c561fc92a88a1adac382fed9bd6a0caa09b74cacb3b0e2576fc1ebf5f370d5e9dbd42bba6651ef121a6990394a6e036ee40c4032c7b0689cf15a462c5c399bacc142cae14cb0af00154e4b1ceecb30535e32ebcf069021d3230f71dfbe7061651eb382ae0b8df41f91cb7ec9ea960840358228569e80eb2bcc3b9f46f059f3bc11d2a2ec5ac4ccbefc29843a87c08abf094d2d27f200bd2772a512b12baf6814f779a454166c7e82a07fc66b35e06c9c9262c5e291a0b9c08bf15b524989f0028598f98de4e98fcd9d684404d2cc89633d752f196e90da3f6b58c30288c73c3e9d4ba4d3b95841e2bcb34325aa1f5512937a1a707460be5194bfc055dc91b214fcc8a017835da1ea46e6e1e216e5baa4c794bc132ca0ce4383226b1cfc4fd92de04398ed683280f72d32de415aa290d039c92c1ebee0cf3d6e4d9a5419a3e708de8987ca9e53551976e51ba0dd56b1be60a72a1757b05875d053d0f589cc3d69c83f3efc9f6e638b4c3b72ac705b0af1a5161a8292e08b56108f8ef4d480d2e88548d66e12d65ab981aeed8c673df03f9754490f9df0bda77167baf67de7ce44f3ca56e81fd3fd1ad1df9e08974091af20e781d6490092214622f9f315ae42e682df71b6a376d925be0e21b75975cff9fa90201ff120d271df25fa4e34b9cd06b5fa5feb4405f6bcf4130ffff604e5d388dc59279cd02feb680008b06fd7f271ecff8afd3fb3375d48b3bf8333848899003e0d3b1130930c28280e956f12f3ddcb90260b8b03f1effd39910254fcd2e8977d5dd489e0ff61833261abb91051d207d93d464f0bf5b6affd566545d18dc7a86a7a7c7b103015d0a9879f1c398361131684652b4c733287d67ac263973236ffa5769a4f50b9ff7a157327c69d74f68db14b2463dc4955b8e6dd63c389df05aabb73d69f3061a479b65ab4666750ce1c63b562f06241a8318b9fd9e22ceebf319c71a40ca0fcdbd83ca266cda3e88f06dbee87325c28ff2f0dd3ef90b57a7de412bf4df9c0a2031d7f6061022a818ceaecdd662fd30892dfe55cddfae1577c72beeca8f7f085b70dd0a648e437c31aa2ef574490a211ec9336a95997095d10ccbd62b26230f796744bc028b8eaed1fc4d052bf57296131623401c1f5c1a3e42bdfb83c52e08d3127d1e1a18afb032a7eb1c6ce6b781297d3d60e16a5338e0893260201d2e03ce8fccd0399ef794a4e793c7077f734417f22b83cfa6be701b75a356bc09b30edccb0ab5d01e230a8d2480057250739ed77fd4cad1c381fb2bb7444bc897480e90fde5253508f618752eae4d9bc282cb66d3bbff8896ec76681fe4bfd81f10006f0c9050a9f7adfd90d8b707d9553c1622c1c3aa67d7bbae6724864e270fe10fa653a030ca8b84edee10e101d870680eb7712c1c2eb9f1f3bace7aea83e6250d6231182a3b8ff4e1b2df1c7c53f880bad957899486862c6f58cbd15a5047720d0b45de025e0af6d191d45341a457ebb428f2febdfa44e95bb4394393e92e3000eb4f3d2fa02a9347e6bddf6f765add19c889772af0cea2a10f68f64bbe35e1050bb0ef768462332218ee6cb40ba6f44282bd5269031c3a1c7d8aa8753c32990493689ae2ded6da4af43964bcf33fab54d8eb61333f580269716ef4a0c5f1860cb2ce34365c5eeef7e17bb0afdb8bb1156df702574d54e31701ab9262ba59a407064cc0fe4ec822543dd4d75f65ae481757f50f90449e1e23f9eacede5f2f1d0873b77aeb8ead8684554aff1efdb7f53824196e0a76bc16f54474ff6409e12e06f73bf7b76f9d68f7424b9c85f7781b6384dbe3d54b962cb4b3a6b4cc04f5d40c927111f5dbac7f0fda5937698d5021a14a7b0a6aab3207c8928bcf112ac5ad08bc12a5b2b67e465c75a86aed89b58ad9d0281c2dc5b3adfd3454b88e842ce409c233b3974711aca70eb457f9175fda472d25363e909788e29e2411822e1f810a5f50946d303e42664fd051d6e5ff828e04ab9326b16bcef7f71261d2fce90a078fa65343ca8ff03d1c1712bfa1954240a26000cc3da62f3936187b7fbd4b220efe28b37bec70f174313e4e36b5779c88ea1203a39288454a41e4a7552c651f099c4f66adc12b07a9d795f2ffdd09659f9bff891ecfb2402ee9091e1a5b458e02eae872331b85fe5ae5d81dba1523d693c5b79767226040d9cd2f929b84a7d80cb33e1da5300a8f6713361bd53bbe123ed781b5431cfa4709c38cf1a2adf0c400e59e468aba172f0d2db284f3e4ed1099214a56db10b449d0e4223fb39d7e340fbcdf0490281387ca2e1d1f9eda9cf0a951d8b21d7f284f05f05e35fbcc556c077aa8b2b77d2d4eee3eff530e137d8e6a404ab838e236761dd6097b798b52fd0b393f21b08ade2aaa757c7bffd4e42cbf8a7b432af60e66110324971ea7622e045529d8ffd0fdc035852b40f7e1b02d79aee543a951c594eee41992fce32fa00892eb2b5be466dad771ce5f1d2c53af8cd46a5bb352e68f1ae9bb0970e4341d0f32405f490e07c198a92edd81b573ac26585c3c2c1c9bd94b2e667ceb75f53608470252c9cf7a8c76f04965847cd57a97a29dd8c01767d1deb36c0bb992b14c0cd1a9e80ecf588b6ce5a3f6a6b95d16350de1ee1e233023b0717462ad9ff0120c60d2b7a10a702b0779cdc6605bc78c952f0573b8fc9d09547dd6bcaa3b68640f23a8f4e8ff8cb71659a5517a997ec6d6f6649aefc488c71c31bbf1e316db3000d1872623db7500711ee80327c683afd578b67f737391e1696deea2098b3bb504d935ee4e30ad8608eb0a412ea0c732a547b8eb3d0890fb74fe8c4b96301c5708684890ce116be72ccaffab814ecef2a2dbab46589ad668a51aaf67e8a6300407a0fb3db77d597aea0e0e0160b965cc0e289be6b1b49bab042bdcfcacc6979500a6b175ce213dd3c14890c9e7cff06995e63b27aa212e9af6f21444aae220b5015695ada1b3cd4a5aba53cef777f4f22920e44a3ab94e0d2e7509343a3caa8b072950c785850fdc3fb7b4bbc00d66c977d99374fde26f3dca428d1a0eaa2ed701bf26c479f7eb3f87a4daef7fe6094b2563f100ff81108fa29fd9e9d78afad4066c78a76576e5f7ed6013c765d4ee75e0dddc3850e3de1a0ed3123cef1bce0501220116eb8e55f23a8c793599ec5b6b50276b25f0c86480bfad1167f2c622f90e5dbb26953c8f1c09eb03bb9c7c52ab673c8637aa6e2027c9a58d0628eb70d3032d880af2a230ee9c7a7b7603734f7befebb89ee06eb12c68e1d471757ffa200a432fa5f77deb14bf394fc9e242404fa64ef078d71e618379ed2f976c579b7f01da02f179746e6177085f15ebfe71521da0cccea771055583374d521eccb4870534bcebe42216d2e3e3681a25f18acd7f11792065ab7b50d91c4daf4af53a470bba43b6e6da0459713e765f1629937ad9445993f514f9fd4bb7750cb1be284c0fe78178cd4dea12f20cf75ec5c067199ce5708d5d9faeb522fb62e788efb8d406126e3c5633ca56407c6bfaceead1acc8dd9eeeff41f6d9d3f5bfed63f7964e0fa1d306e97586a65919b6df50a781a8218d9ae0b6da6654ab80c2647fb2b8e209803a7ca6edff241b518832f293c03bb56eb560d8bc628f01bece4dd96d93700458ac8803ec630c1340e177ad040a0d4580788f23fd3357f44b9e90a135dcf502d336ba029ca34e1f00587925c6512541a00249adb00670c5e6e23eeac9021a0ace458fc9abe0dd6a670863a3e5bf9336ee1849084c371c151bb08de47a673a0b28eb237ab7bac01d13ae3f0aca86a676d6fe92f4eae362a9b5cac526362be502c19d75735e1e9ece15ade0132c1fc5c678b8860038efd1655e3818faa150a70d0e71900a1446aca565c9fa8c3f72a245e77a981afccea2d2a6bd2c47caaee10d53f2a471add4ee74ae938ac1a11fd37b6929d99c7406bf16e3e6452c73d0920e43a1aa686bfdafa88e131df0eb0efe5b6d16bba067e886d9b62d7459083e4f0bc7481162d11e9d501a100dae3842247d1462324aefdd0f52021ba038efe83a0aaae1d0379b0fcee291c22383d282a8c9ed9f5930f41d2ffcfe69b2c697fee60061dbb4d1a003d6ead1d5c3adcf5dbc9aa8c42da15c452f0bcb204841e5794b0e7b272c8120dc0a962f25f831352164042341beb30eb4c3eac0bbdb8b5e9d640b7e3f452e05a1b26bc97b3590f8d4ccc08f92323c3e583b67b8472fb5cade990dd6dd280c4613c4c0bf16b4ef254a4b227bf619f085022fd0c5ce1f0038e8860c8d8da722e5dc718fdbe53e5525df0c2da605793c0968c41ba51521efc104ae0ae4f8a6a3a154b09b380f67e5609216be5c9e74f5a062c700ef3ce5233e98f6097e0a5b28f471e0a816714d95abb295f4a46a0d0aaaa8eb9ae5141c5ca9936d0e66ab0d9ca6982e51aa5dac8304a05c23006a241706bc201db460d0eb3f35d60ea7e749e98e345cae901ef37114a017bf318305b5bb9811a85cbeb7f68c2fd5023fbc8893f31bf845eca0561de3c75aa8c1b5be0c091111b2d0ec06211c6e0107d7b0d1a22db36a87d765bbf8a5761dabfb73fa7e62e2bb3412f3f3387e37d40030911d789488006272b7e6a09755c1a131b02e2cd7d0b9a6283d8cc81ff4610b8ea4e7814129b013476c9c1f52903623daf83a75fc8943bcbdc48625ad667d06217e03505756c5467131ec5faf577a147d1afe8cabfed4249c2c53ab337faf0f2b7d9d26c0595a7fab9cef446813009ba79ce993d7bfdf8c0e0738084705fc03d88d9dfcc6bf58b9d7b49a6e7a9e719af597ec1d5406ee68495b3c0ab5a8b40b211d8c9516be9ab108ddedb30aceff8a16c42d36621d17fa281a4f4a53e1e8029fae36446a0952bbc5370815a2f0141164bd358df3be625343f45c87810da803d27b211d258eb5965cb2fc9db284fb76fd61829965c046769ee14fbec4b18b0fbbdbe712a1df64f7ffc0eafbefd51cacf10f894ecd63715381f5bde678346d03b4ae3f7eea764018250b20241ee63d74378218fcc73d36405a78f28d66621b0698d19f25441a765c83a5697eaa0fd6101185ae8fccd39cc00fa7455a3070d606fa27523906befe517a684d56e31014924df787b4db74935b5a450e5c66617008fbf942f9acc622582846f9d7f34200dfdc25e5da9f01ccd5d73c853dbb9eb3046e6e5063aa282c898ef4e15e9b27f929127472e88fcd5a0800bb1eb185d05608a66cfec34f5bbf40b594fefc4e05d9c9530027d9b9282375291934d49c3b5109c83cf1753af3e9ef541bf22168f9d31ca56d63becb57e0b42b7755d5b7246a0aa5b396d57a0ab98777bd1788b580829715866bbda82a9fcb75c3d4720984090cdace39c82b8b6999adee653b6afc91395c60645fd5b0e3b5ed32193e84769d05b0aaadb0f210f9a5a48c3586d12d3cfc701ae3ee5d8ff1ef0bbde2903d6dae01dd1e0c2a02ac22d09cb20d974c8a8c52373cf8a608714be100f816be4cf44d0b8b4c5282eb5361582c5238e0c5e11c5876c7f0ea679369ac1e72bcab635ebe0694ee8c1fef1ab5667a168ce350548041f4d418994342ac763b59665d1284c80013fe85c1dcfeeb8ce15790f1ff6f0729ea55787037ff8c524959064ce1c0f801ccea9ca8920a68506b92d2ce66012f274d67c7f9cfa1b6ccb3cd232f518ef804842fa5a594f31fc33849082483f76380107786a0ffa85fad902630f5feb9f1085e7b8e22fa4e367c5f8f4d446c0625429d493d669f53a6d1604fdb0bfcee1307e0e4a0129790523a6745e8eee442aa7c6fb6289e327e2bf369c68ecbd2ba1e0682850a00b198bd852943edcfd61bf2934bb952be0b828844112ea4015c1d4b00291247c7259a5ce47f6a3eb2afae6640b7a8c455a06b163db0d8f65a51edd30f762c090c42aa81a491280576d610c5bb50705b10dc49ae4cb1e19bbc01a5da096b6dcd4fb10a25a1a8ef538fac7868fdfe4f124d90ac930ded7d46b33a282909fa09219b4e5340304c3ce39199ccb48be4e4c031b34a54fbac5baa17a832d208d4426725a27f423d4d4efb83583607ebdb6954aedfbd7cb35d315334a7a2f204b911f9d2572ada3f15ae48f5e93aa79de2b876bbdb2d46afd9886445469b3e0b0b33ca2668965db0f6b4a0827f9930fa68a087dddbc431d9d1ddee9f28b2ab066c518a9efc512e845715bbfe6704b06985da7de40ea1369acbb03734909d9f071bd588f342c59bdb6fb54386c1df56d0b1f1ff805785a1076994005b9e52d309c1957a55d7d602da71379b8a9d8ff8c33009815f5cda5009bebd6dd7f25eea09fd1b7f8719b9c85f0f0a061a655365c7f727de7ded50794f854fc3e898e3660966b23e4eaf789e0a37d0332e7f53f5c4fc9d510b9cbaff0b937dbc079d2bf50d0d90a39325baf1c58c9809e55f7335e7f8ef317fe0a5e17bf66fa3e673b1190d923275f87badcce0d00463bae3f750534ad1b7783529e98561653702e125f805f0e2ff742ab9960cc078ed2411f762ab9f9e1ff8d108f73444c6cf66ab44a30e054187bd6d5bd311ad7e6ea08c4e1d9ec501d2a1155a1b3290f65803fbd1fc03c7d0afaf691c3884513a5ba1727e7519722fb996b9bb88db80aadb3149b20308fe11dd52642836ffb641d0eb8044de6e762540c5641f9b4a1f3e2fffab7ecb00e3350da71a1a21b0835aa92e64d9f9e7237f6d63e902749d2c69d2b0d825ad01002c5e1dfd2cef31d1f0f960a44fccdd3b7ebe3b4d6b98ac8566f978118e39017a105aa5e2a3f43b94f11e0fa113dcb44b2c225cc8fda036b0b4d1f90e31c10026543b26aa0d759e8a13466081422a291e7e94d6b10e1544f999bc5827abbb0cfb9594f365f915054d8d027c3c3ae4247a77fda3d885d95e83afaf6d31ed970f9eac2fe0557a316f80e8a6b2ab9f3d3c661500c400921f550c49063b695a0600fb8b60ccc34968b3d0b6e70aa5fbd195952f6212dcb4bf533faa9db8720152063aa34a82e578a98f23b39e57d09bf5fea78a24b7d604f3926c4513f24cbed10f34397b1aaee0f917148e82017f74c474242535d03a2d72f80200f5e0388f81076d7e453984e4bc934350e1392ea774db38186265ebf3f4207dbad610a7c1c302ad0a2cc58103382b76acb472ee7c19b0122b0ab70d9dd224ab937eeb5d12320d6c7bf60052f6c3a9cc2472d74a8cbc195419f07263c8c1311ecd306b2e959804edbd1895650ff0322158abda1f32e61f0afc866f9730cade552732f43b2dff0e113e7ba6e03410c68e3b31fc1d6e7505aaa425baefb0c584698a2b08ecd54f05ea03eb699e531d49a19b06152b1c59d287cbc4d342dcb5faccbec4b906b3ef0ff82ca8ea7820e69ab1b402666b8ac9add17af43f5b81694b7ffecee39bc9b8058eaa8017f24c313f2f3b27f7ef9f1bd64179beb401ac21ba6b5166ed1375300acfe7a40ec5a876cec340409c9b3d2b5324d43a888307cef5f92fa88ae6f1a30d59f5b4ff69ae086cbd1c2004fdc8c37141d2a4380625e1252d62b752dd50510c5af90d6ceb964be6895f1b35cc4a5a39855d7b18e9b5e62e9f49b3af5088ed00a2f06dc3d65123368c7af1e24714d69cc18cd035933359cf485a8ffaefaeb80a5d760dc112be61c09e9931d36c50f2b8286ca2efbede9e50c9b98272d61ba005778ae37da1f632432369e90adc3d97d1ecabfc77613bdbc96afb0ceb2e23fa0f9cf05dd97fdec84a52d0028f5c1940cce7cd03319752f687823fb39a7a814a04d79ba32ddb8e86c5dc557c885164de1db3d85bae83f349ab6f89492c803a3a0e7ed26e2b1b3acbdf66dadc72849e644b3d76280d73048884f2720d43340eb20e2089aefa97154b7bb076a9b3f9d2344cf1f586a2021bd9ed91d5e199ab8d320b0c85e4278a632d767e0724e13cc830196896799123db745e533fe7b33178cb0f6081776a6280e4707745b7501ecf28103eaa9f4d7a31c67dae89a887cd52df0da0a48619bc6fa0223557f8c4f7b0e28373502269f1abc4928a58edc967e0480f81d17718f5552d8263e25b6c26515772393648bd97f1ee45d17779e5fa53290d32ea65754d3eabff72569d1f117d646972083e7429574fd9423c0e53519e4404c81a8e234cbdc5d81d617efb9286450b349ac27f5f5df786189d9e727d00a808a206d7badd92f5c8cc74be534da57dfdc58b0cfc5aa6b5c623db4b4f6bfe9c011ea693f9ac725159767193bfb9bb386061a085b38762a99c8f8706161b0de3052b8c7fa65fcdadb228c5bd76151d42dfa575f1b0b55b3b7a3913dfe27927c70e284461b24a85d12c4abc11795a02d36f8fa4eff728bd097e7a39aae62de03f0bd6449bcb766f89edbb4cb13fb05d5f1e703e26599437556bb0cf4531a63bfd05b84ba2d4e35489a313d5484548d5b5cbf41817fe2bd8b79e1256078fdb11500e4f6362a0121a150d05978f53844de6b64ceaf01c9f1227097de4e020962e230765cf499d0d0d3a941cfc9419dba468e8dc0e11fab5cf4fdc87e800380c3b6b0d8729d09140012de67fa92a39b84b8944c6d2022eb0d1e180c9f3c1c01049de09e813299be2d51b70e306068d3523299fa1146180bf4fcd41b45b00a9d7bb4c064fdc09ab550551dde5da62c026d5968e0f4d471bc52a36b6b464e435d580520c0876ec6eb3bb65335dbeed7f1aaa9fa9580b83ca54050aa5ed84f5cd56cb5105b8086a22f9e4149820d5f8c1060e0fb7bc4a2b0d51c12e5f7ecdffca87faa40c4fb195b9fecacfa6e8523ed794c98714387b294dfd4dd3fe1185f6e69c7d3309b22d534083f67679b13fbb22a1e4534d085470b61aea32151d9537feef775c015f4107240f94bd4b6e88a91860f5ae467024ba02ae50bad4468a0eca1780a0048caa622a8a2b4387a45b2a82823a383dc23d8bf6bffa50294706e899f8e9da0364e84e5e71b74da4f77f221d8cb5e24590ce7662c08e20d19d7a801646d2c0045511c8abbd9beeae42405f9b5a03ea3bfb79261aa908ec6cf70d06476539750adc40ab94bdfdf1c203ea7cc87813500109c6549ad1fd20f2c5b1fb71c112d40b0a88098bb75c287f7286180a3a179299d13533938a65c006ca2a77129299db0d04182d05baa7d01b00bc3da3b3ceb240e565f378e6f17b4327e8ed58edd1c60c9e66a0f99fb916efc71e185faad80ec6553763e881419dae985ddc78062e820bee09d7252306262393fcec46aef0318a2ef45f45df275bb0d346fd4d153d64020c5e2a6d6c0bb817bf0fbc8bd91f88674e2cf45e9eebb957759894920c16bd0d007b4eae5f7f73988cad448228816692ad31db849423ab8eb808aa3ebd145507bae009a341e3f818c6c1202e111321dc44b713ee314d0c32f6161d9dec098c09a7a6d8a97d9f66472d3a56b054acb8355398e59d68bb8073dd850aef410f4204659328515b8c446da83a82abc6d590318090848ad1ef219ea6c6f664c3e0a6073ab9dc4e3917ecc46189e81aa4eb26121e7aa800b0f69e27ac3fd3f09ec0e004a23d944ab0194624e5a11f02f1f8b9fb8d1b259889813e9e5486cc8ded6c740a8e379a5fbc1fb9e45ed9c4d68a16d38f0c26eb9a584d6c0c09ce3fef8b047b01c88f986a6df0cf3d5676d6282fc3ee4ace1515a71fd6b4d3e8685c031f55070e5371ba8d0e2e1abd4a80f665c7fd3cb775072c3da940df439d40f985040f960f5987b15e6d135c58d22e0acd6b211bb1d86d21265321b73a94de57a4e64dd709d5a237b21e0a40a3b008d3289191a7af49dc954657775320777136649277fc0ac845284f2f73e3804342810017fafe222b97b363adcd364261eec54557611709cf4091fcd4fd2bbdd7a4f50e9b06cd844578580b6e059ddb1d274dd1747e96018f32a23a227e58abbd9889f81457a8b13a81e4d2caaa6f2e77b759de92e2330b406dc863b30663678538db610fb239dc375487bbb72ea7bef02ef316b764ca07e1675aa16e14d2ed578c698158bfacc6eb0de4e98904a8fecbd8d101734af50d6549af8eb61d6c2f04b250c1474de153df28cd616b571b41b05fa6492d17a402f2733e228b8b835a5e9ab7c303c0cc8089c828ee742d13e23eb30f29eb174006462fca5c73af52a687a98e3a67545cc03a4d10b4ec9d73319298941265cc4c0310e8902a53747fd397438856502600164c0c04da20980d197e337bd4137c17039f66ea2ca50e97bfc7db21acb6a0a54a0b02cea9d4f93c90f06d78ddf81ac70e78aa56c9785d877420d2fe8abf9ef917488425ebec5fd7db586b0da1865c320eca94551ad187c758fe09657a970d2342957f20b71bcc732a7d5e1835ecd38d0196659ada53e8c57db44b64c1d769fc02ac2c9994ed7b69964293473787026e068cbcba907c052c5143a17ad56de9ee6b076f8853b60ee5ebf9ef7db6ce34660994d981e2db1a40d56b68dce61d319389bb4b21619c2e742432ae01ec9e67a30fc752430b537035a9231e536d43ac18014cc0eea4b618a3aafd0eb82357ac10062ee8507c8c68ec15949807414ca624dcb4e3e7ed5eb7f0973907fb1790d7d60ee4226221c5667059225cb6cd56664a08e5d07d68b9bb4eaa370968693dd6390455a1a16c3f823f4ed8a9440b1e8e2c0ef180106223fd7205aaf43b7aaeb9fa0c186c54aca2c8aa94f34259637ad7b22773cf60c76c06eb20bd4b7bb585e63400c1732fdc061b3d6a40923dce7e4c238c63cd681a5d519ac8c729395bbdc9c407bcde84e91e5507ab2d93f7e056b56023282e6b920f267d826446a336f1e28107228f18f3b1061f173f9f0a12d5a3d8af7d4548f2cda68b271294da4d7ab64b0b4ad41f4c1937aaf65827e3ff2a472b87979849806bd313622443d45d9d0ed1097807b57e0a92f6399892018bed7a9985ab2f7ab6dffd5ad669698fb0d253400c2fd07f2e197d4651be0155b2c9fa234bef27f18b6c1dab1d7cb46919eb164f030f6bbde8036cbbe22323cac10741f05e881c492fedd90dcb37a644c91c483a03606a2512f48fb3976b288f62c762c42fe735927aa10e01ea75cd93ebfcd5dd0fdfe8bdd93398d81b3e3e1cc619f9a47dfd22f3449982660da5f2e82e35821200377d66e10c5f62e357d9e94a5f9f46d2f119d11278f93380e0c390dd03079a0b02e1d0d3424dacd628fa2ae5abba15c70b84c3716e251efc857962c320d491053441884f013c5d14b406f0d8ab89c9bd027e8fc23e58818ef91d20b2d971e808b5b9bc7986d672715e8e2485d88c474ad0fa1505df2f641b441144bf4f7ba10aa12ef7045545c16a684b413b114c058ef487023e70291f47e14fb41432b51b057b4f84047a1c7e5f24a43e0a813928a96db358d37dc6fd18a9cf448c7ed21a07c79f5a37d3362a26f520310c964a411da48a5fba66a509d925dd77a6ecf09b09fa5f05e141898905999ac62e3f64d86cddd5d3dfc752680163e25590a55eb4000864ccb5efc6b484d7fe36ee8993fe24a4eabbd637222275faccb23a627f2e0950e36f4fe3154cbf801464353be3d674960b9be25432457c25eef9c30518540302931ad080d918af4d1e10dacf2e3f945fd9077ab19888086ff82b3c6a344a0ab3687bffb2fbb4f267315e89e2eef4fd88af7ceaea034fdf8e3c50b546d6ab0099cb9ea17178024b56bc83aaab513be82d50a13b4bf11fcafb1bd3d510c47a01f76260d4e700d92e460c2c5ba58ca364c9a28d1202098dbf0294a709408d2003a28e65137fac188ac72c0f447d345d4eaff79075f08b5d08b4a8126c06ed0f0aa6d4810bbbbc50a34fce0ac1280c92cf519aff3b135692fd7d57cf66d5d565077e03bccd5f81bd1d63ec21b460fe9068de10a36b42dfbd67ed1b7d12dcc96803bdc091af78740001368ccccf52e8e183a0febe9d7ad32bd66fd83fdbb2da1a0836daa551c55ae37740ad7b0c31e1940585fe41a77b101e2d59086851edd4d80c24b7672a126bef875bed5ddd4c05592f27ac6218368790480c9520130ca2180fcfd2591b94e858c92f56fc3f278e45ce52cf86121a26282b0962af55b6e7340524109782cc5b2ac21eed3f55de1d0c24c8e2d73769f0553a4d83eccd9d6e7a06af6817b3fd81d948812ea9df6805cd8fbf6e008a4f20dc7a22c0fdbecac921084754f3acd20584f8b04e654769a885f091e1e445f6b54d8b4742f4c8593de802d3eb84c2c42db5aa270285372d3c28c555f00deb230da034cfad86bceccd5f074f2a0ce851fdd23ae94c14ece9d456eea9ac4cf6688608bf8ba078eac21e800913dd708e79087fb50cb6170a00a839d761397e8f1dddc6b89aa1cfaa35ccbb0e6cc03115c72d21a13a3d543b2c825237f85113dc275ded5a3ecd3480a412510f219c6e3f9c985c69e4b101cd5449dc1084d1224d40ff67cda5f9d357f7dd770e4681aab6f420231fd81e8937df2d4f35ff9dda3669c87a1448553635f266dc0b2dd5971788a605b7ab0aef5c95af3f1cc7c5e66926e3c643b1412cb006ccf8077a7e5c01cf239405a06fe4fcaaec10663f7d4734de9c77edc0a03fd97812d702ffdce8797069543b8e466628f63a6494868592d8b737b13159458603b19b6a0e34d8d38533d300de7937e84f08c6f0ed8b06fd785d8335385805b396852e2a090938a9a8ed096f1aa05da1ceee18e6cb8b413e19628f6aa29cba068dba751402fb786108e718c592703705871ba7682e1111703735f16be8aed641e173aed009a11c9e657524f133fbdeefb4233f4d75f7316233336cd6f7d8897b207935120cf7c7c7019deeeb2035f53e157b35d750fdf4637ffb3312dd49c65fceb8c0b404da6b0ae6ae7ae35cc0ce5987caa6f69abab5156d647a7915f8091372f945d90abbb783c50374577502e250aa8c6eeaeac38475565ffdb611ec185231f8d919087ae2242ed4f6374ec1e7d781f43d2269e8411c709e12004ecb2376586ba40606a8544e3214d25e2b59bd96be417b7999d8c8278770bff503f7f5adf8580e7d093eef96bf304ba1e3bb664c248d0d273096f7716a27b2ba19fca02b7a2c7b620bdfcdf629354a31ac381265fb6af45f35ffff6c4b8db80d6c4cc23b974f64c20efb84adcc9b04abc8e9b2d27821a43c087314dec822787f9ec91c2f19749d29096ae59188f4325e2765a58b5419c8a296c91edb9321fffa8173e07af079706902c141721b33422fdd74e84f9a6fd93c3ebcc220d8879cf18a4f3d0c406bd20e002ed295bbbeb276421dea2651b509f4421d5613e24915f270a2acc5639d226b0223bbb036bf587f49e693212f82d26d1022bfa507065eb439d1cb993e5e53c7062fb8c2ee4660faf1e3d124e79e8974aa7a2b2e8dc01bdf315128b771b3ada904f235629fe54cfd11c1c360f62396ebe5a1d65c4ed8ded029cffca1410ad62a034edfe1afe0d6ef212094b9284c6696f6a571570b410ade4bc32dbf40e59db00499ecba3d21d8384ce26649e17d84e5c2af41a6a48eeafa4a62fdb79b77e72609e28cdc35cb002d335e96600b753b2b07274b2aea2010370cc7b1f814d062ef00c43acef1aaa895a914bc225e357a47b8a75cae9c0b70e3b50cc9c9cfc5079804c998d1250f737912ec2846af9494ed7e31c938be1715bf9b2c3a850b99e806052023047e1709a10815e7cf4064478cade7deb28d84adb12e2e52b4d2f3b0fa07212f2d60bd6f7b2de3530a79d9ddfd5a9cf531ae2fbd02b0413b737b1c6d6300216484e681a4d6beeaee3dab0f517487bfae613f2d0e1c28a2bb60fe6111c20e4ef081ddd8127575c9b2fbd858e67d76221621ee8606d39a33b353775883dc01fee807293f38a1d3f0898157686d92503b983f9ff3b288520c9fbd5ac96a6402a8b4c48337d7456ad3cc3403c2bf543ee3cd86c6a49dc05eb56445debce40e0fdc6d01ec2326a24855d9f3b6d191095e5404ccb8be7127af51f8529d1f3a0009c9f2c0492b383c8229fc61716b00014e486a43d024f292e5e697ac33392a320e74f21a4961f09e3f133e317f4fa18a71b871525361da0a17b91cc574f9cb63039054c3c858c8afc53f187d76259c2c51efcd95e2a6244f18f23440677ce0ee0abb38d7b53a4a0c0431e0bd2186181f7ada82eab0b120d63d3b21317bd9d961023e8ff1e89529be2792c57a99ad35b79c0755424638d4d389e5156a4a6cb38909cfa9080c8ef3c1e339b303aa2ecec380f8d19533f237ac8f53f3447103530305722acfba4328e214168d03d0e533ada067227af58453b463e7d961a633a74d0e96e7a5b49445fbe263f802a860b48c7bd3638901b150c4b135b6acea41b34a0adb9003e0cae7f33ffc7a2301814b8a139aaaef41fb2310e091e6e06626782d084d763f314d4847002a5dd546b1f3d48ecd5b3d97c6f2d996ad48c88e2cab2c0eb0072cd272ff9fc5fd60855e81bd9dd45691fba56b06aeb3489ce29d136de20c1bfeba60975e6bba237d08bf6b2c5d485f4733e95bfa36716776ed83eaea4203077e9feaa9146a9e8ee43cbc69f59c57ca02ab8eaf12c8b5c21ea41bf2a1640b893cf999ccea9f6634db5e00175b5f9873faea64bacf2b7e632e75474e7f2c055e932ef96249212d74104804db698db4f0f9c7e962970b9b0e3fb16ecc7d6707b047ac3482026a4476af25f787657609c5b1808d98109b92e235951cc31da00709c5f203ebe4e311fad3498593e610b1827ea98cf7d3956153c95ee4c4643f0bda76d2e4a0e98f0a4e4e78f905bdc8b4d4ad2c9d11c3bb5ece9c7714daa9cb0cc1e97018b24129629bada3a04a305feed217797b03d8dde126d374dfc4a29607cea120b916c05ad17dc67887c65a23e4869423b7ee01c362285bb44f98e2720272d3dd3a994fc71d2256e39a847023374d0955f3a6e0067a4898536084fbb00262aa89b6444f0fe246693a322bbc1af5ddfe1dfd664d392b059833b51e22b10f88c4222f7ba08120d24e345f2675dba7e49520e61a1d70e6204661284cf0f705bedeadb8ada2c819ac772c3683bd030a2febafd039107d84d4498a6b7da9680418ed153f9ad4d24506e793d19c38c18c6a7b959d8b439c72c9431b05786f9c0d519bd67c4240736980aa24d2a3b3d3b59965fa260cc1273966f32dd1f14d84069f8e5138e17528cb15a737b06003a7365af8bf851dda77aff822ccbf8253e5098b2f3c606ab30ef02efb250117cfd46be2600779f56704f7eeeeac4aa408990a9c491455d3ad8abb27cac6457cc427df655326bfbc62694e0d34c7ef7dd7cf00b4a5d94405b239e034fd674ae4a99d4fb003ba52a224148376d4ae66cc90b70668f46f0d87c04002b0fad3506bbcddc0ff7186b3509167dc8ecacadf31a3f1022efdddd0d200b208d2257680f4867ab350b87c8a8eba9cd926da40ce425df50411a0b53f59c505e3114dfcabb7b16aa04da0468b7a6d5efb4a3c20d04ed536027411bac7dcb177a2843a390081de7916c0c8a8f6a54abd46a991f2d5faa22e080540966e6737cb76175de0aeab5c2dbf77fb96852b6abc1058b7f3b64dd5ec0a3bf7831fd644ce2ff89681ff4aa7f2c88994a804f18b2e1497b55b8f95edc70236b265c6c8e58f00661baa41cf6b0b64b5183a5f0dface75a6956521d2ae5b050ac579a9afbfd95cd447664f3f72ababe829a005ca27501222f293e2d4ef150ea5caf07d5a8abc1cb641a1f45e61c47419fb171ac216b43c3304c7253c1f7e0aede783c028b35e80b917a1d0d3e7a7ab5a92d4f54c6458aae9c133fb25072309c881424dd86c205e9ef5f276cb6e07268f1d86782b4764a6a06f9b1477222f0b7ca04ea7730de07687035d8e3d4e9475c627714763bb1b95bb1b0d4ffc98970bfd54a0059ae2850596354d29fb3dec730873dbb75a346e3ce0e8cf165cba0700c8b76440b29540db41e2459141f59b4dac05e0618f78dc212e90ba19b7d2400f71b062e86d37fb30e7bbb026525e0e8419f33020c65ecd78a10fb51ce0456f022487710421a138931f26b95ae855b6bd9fbc8c3350481dbc02eff0cc02324f0b31826a0edf0907998c9e3c41e1e10a25946162bbc718be1b4e233a88c090b90abfb47d57514af691fe80f3ba2cdf92ae39f613afcd4951b3427e4f0b977fcc0444f11a91713ad0890dfa38b5a8720c1103ebf90be277fa8f3aa73668d94ee1075c1ed6d05a791a68de866d504270d792952eba19dfd69b88833dc72be099790ab68d3432dd7b52d91d593e7963c0c358e66f6770d55f78371d431166b1a5720e3de501cffab3c149ef3f6326bb571efc032e6bed83854545ace74f27c572ba0d3e6649865ace39af51492b21047668dce34c132c89fb88fd22dfdba261d25e0bfe0b0629f1df89659baebdeadb1de862619f3bbadb56869bb23d66f29a51180ba1dc9d70af59dbb3f860b1069d22552db009539227a055dcbcc1416baa0d430e8f25a3cae3d91808b1889a71f63b2835e12f7e52ac61788b61a7a3da0ee2de0a870588b5d708ddc3bc1a14bf0eb0903d6a26289d2cba1fc0021f15880a31b703f52eab58e1f8771011b5742933cfdd094fd7b1f9b650b73490829cc51b45220105ffe973025e1a1849de9000284a0d796d921013941b78d22335cf763d893c056a817910458055631cc25e3bf1f1066d1b8675f0879798b5fdb3fa6e7f1a9e0e3090372e1bda370468ca84c4e20ea3e96f3082a297d501d9d7ce11f6bfc9dd02ce696dcfc92e7ee7bd1f70e6ce449e952fcc255521293de8fbc7575970ca05040f495e10bdb683664821740e102fdaf0e23b67162657264aa89615bed24a4b010a755126b8439a8df9430dbfb16261813e5a5c6b7932caa2f84d31c767c0b907767ead07aab57038ecce23926d9337668eb6bf2a317655900f5af01aba8aaf0fdbddfc636b2c22944ca8fc9c717e57e4aa09504bb7a7f5b9266ee31f67e18a0acc06c095dc4d5830801617f5eb944cfaaa71db58c1074842a731deb39d9407082300499c6159bbb98040b51d7fe0e47ee7e51757939f88d6b4b1ec9eff0b05085cf05cc198db781e75348af1481d8212dec26a7e9edb81e1dcc1818d477e400ddd95e1092fad22fdbaced3a6b126391d6beeb592b53e524dc2ce2bceab5fc601de1d98c3250edb3d587aedfc791fe344284ab9c42b3709d6499cd9df4fa9640b2fed769b3d5beae2f4b5c73a4970597fa96151550c5aa1c933f4fbce75d878011d93818e8ce31c13ee54889a1e894d6efcb77f704f36f6584c92ac47b9b15600909e3e03c14e818673d518e0818a4c7d0ee0ee897217d0faba04041fcb819d09d3de08b66bb08607b759f77e90917c036e0d476a19f9392bbf9c5c5121e37406b3985b9cd6779d8962f43b9c090db2e72d267a701c51f0399e80e3024ee9210ccfc5c981d7881a0c195a13032dea28c2d758c1ef29f3450f2fd1904d8c68bf0631407bc484a51265411bbdad3052d547952c694abbf20e153fd7b81014974505c60aea9d0b85d082387da2330f4cf9b98e629bf1b4414c027f984530f303d503d9f1245be2e25f392e0acfd01fff1e526c0c00130da5f62b2ed08a1b920a900a76c5d0d0676ad03d29e8d7b84b74afe82088f86ca99460b7a47fcdc8a322350b594793235c5a20e5b9220812c55ff98f18f7a61909aa71dd98c75791bd77230ea03bcabd9935ece120d0c9b233c211772abba9430eedf2acc1713139bdde3606dab45cd6910d811fb893fced02ec805c8156e0613f142a4e226939ca5b7806075828fab33b8cb255bb9dd3962e5a8c02254fd9f818a877e8e5d2f67a5868f20cc09dea886af9b7d1a6ed09618f3799e09020179cf8e12449b2072701387cd001a9c8bf0449bebf96692b7a365b87d6cc3df10e79085b52e3ed090cb1d5d2810a0a95ddfdaaa2dab0ffd22ddadd02876fbfa6169f3c5cf7b0720163b1f3320800741254a377375d7842bbb9ab2a868fdbb30abea627d7073445d5973d56374a00ea34c3aa68de6b391171cbd2ced5aa9b87e91d088ebbf388ceb195da30f824042489f7da1ffc443061968bd06394e27d410752e1d04c4004b428a019f7ae6a06e91b1c1859a00c2f6cf49e77061c6c2eb0e5d2b61ad21e8bdb96c8bd176d970e4bd491c76ac17ec1214b5fcb3cd0ab9486206897bd4454dd94ea16959eb0520304476635245a8c884097cfeafe19bec7c2b1e0e08ea242bc652d4fd492e6aa0a8bbe0bac1f32591dfbf23cc16e4d6fc9be09769efbee2c0f1bf20cb94430df0190e9f33388c7f3b080c591ae6f839c3a2602908a9753e3294b14ce82033a5305e36f082a67cc9c5a4a659132b23e05fc87eb1d4b0f412af702fd195f01ecab0800392650775264e1b4bffa415060df7af25c87854cafd8248d2b7fd43e1a350f13ace13fb7e4530fd9884aafefc7d53e3ae1eed388a00d6511c047e9b1ddc909f023877ed5e45d4d090bd62a0c04482d10b88d96b60c5479cd920bb00d52610209d697cf08a313b4d48b3b9873588db2a9918a7ae97d40561fcfd6f2c0b29f0c8c38de977c943b77d00f3c94fd154bd32b66c77685a01f3c604b1d02f973520a1ea5ff0b712a2bb13131c3f8e24bf2162716ab6075429e91c767cf07da16750fcb6b310ac00b4afcbffabd034d98e59bb12a773302c5f4aa6b1fabb684c5fc0fe80fa8a136b3fe1345d81b4a7981ba3429bbeee04fc3e02069634f7743bcda0a018befeaf04f07a58c51bb4b744fc39798f6ecac905cac0980b81da995fff60a67b3cf08d961bb00163186fe4e4e50ece0adcb887f0e5a3020b30b7b1a962603ce22503bbcac3758bb81e5adc272fe79159c00db344461e73d4e3c1e3b394904ce950c6e4f433b3681ac7506297520b1eea349ab7e3dc25049f490fb9024b40156e2c2d16d0b875476140c17a52b73bfb34cfc4cf42f3fcf969705774e35730b65be396c255e376fb7deac1a7ad2dc8770525d0e257e02eb95e25b1b99f30a0403aa68827318275d2dd127adc6451a85bffccab54efe87b613663ae10441df0e279b8fefea4bf6ffb1d1b022f9f26d5ec0127e95734b7ccb3acfa5e550fc2c0ea686599cfa6432ac604676d65c3e60d6f0180e4146ac92da112ce2a4642b7a09862cb98d19336792b6d67e51f090430ae45bc64c1cd091169a117eb32df6850f",
},
{
name: "2 inputs/3 outputs from 1302238",
hashHex: "be9d2cf9b473dbbb2c59ffb07b5d812516f94d64121d87ad61956386a4bc3843",
prefixHashHex: "1bbfda600fa6affc80dae05b1124bf05ed0e20890aa42601441dbe0f6fa81f4b",
version: 2,
inputSum: 0,
outputSum: 0,
mixinLength: 2,
lenSigs: 0,
inputKeyImages: []string{
"3006bd371b1f0896e8288565a6ee338cc1bf8d49377c4ee6fb4edec941b469ff",
"c4d6e57d433bea03e84602181ec725b2a5e26b39f690f34fa4344cfe5e0af6e6",
},
outputKeys: []string{
"e8043835f159904ba847435bb264b268bccb72182103e36fe107c667c978c5c2",
"9c9fe087f1c89be13f2b350678054326f83732e0c0ee3d1f679f6007b5d7d84f",
"6276a1056f82a31f15c8f417b47c7227e89f6084644f21dc84a6935eeecf19a5",
},
txHex: "020002020003eeb724ffb209dd81013006bd371b1f0896e8288565a6ee338cc1bf8d49377c4ee6fb4edec941b469ff020003deec249bf008df50c4d6e57d433bea03e84602181ec725b2a5e26b39f690f34fa4344cfe5e0af6e6030002e8043835f159904ba847435bb264b268bccb72182103e36fe107c667c978c5c200029c9fe087f1c89be13f2b350678054326f83732e0c0ee3d1f679f6007b5d7d84f00026276a1056f82a31f15c8f417b47c7227e89f6084644f21dc84a6935eeecf19a5210111a67c084c7c71d2ee4458d2d7f213ae6b79a00147e3d3637adc084b098b5fb60280aef0815ce1848e3c587524f501f927d7dfa329782ed9b12447bd6c5435e6d4380c61394eeb91361a6c60f8a1414a3f001a3855c1e881348588ba5c4c0d8c5ffb387f9ff6646682c579ca9bcd82dcc79238bd3ac9cd1d7d95cae4f7e51e3a959e9cb8390974283a0bcd7022fb79d56c48456b7173f511d801116ac823d551ed740f866a06d07a4f86404a55f359659acfad67614d5b8c3adaf29cf07e0198faee3683100e0806eaa766dbaf09c93d577503e9eac4e7d1850dc9c6e8f7221be13f1c36670bdc96e7e6b973d409d5ea3f81972b844f083db6352c51def090cf3e0c2082100d30d5bf7f0602ae45eeb8361c0fc61d159e2b8581871d936a8d70e623f1bec102f63090f4b6e620fff2749a79c9556ee03cc02dcdd7200379e667941ef691d490f615c8405ab8b8024eb7f3b8a1f5eae543b0122db8321785556063e36a892f21e4ec30fd051afad9691d759f12aa5411c14257f8fd3caecb0e859dba3516d0a3ea16669bee122c55182a8673566c6afc38c93ace2650ce06b41a14b62eabea08a99c3b8b09f334b9bda5906f1e481b3fdc41cebfd7c45a139e8c156b68bddb04a7f7c617fd88e2bb066abfb91cb9c708c39ef6005b37a7f3472357dcdc500f039b15c7a871ea9c975ae1993345d9a7536bb3d8f1fb9d764643b354eb11f788021d295e331a5c60cd5ea56b85fc18840037e9cf6d25b5f09a9d99718a260ce908464ff548f0e8a247072aebd17e7b614949794f46f38b79c1a506ca6d567f0d002f9c9649eab343ad7da5755118623f8ee5dc628ee50f1a5d02ee13bccedb080aab365eadd3125fc8297355bce4c32d7eaef730961e958fbb6bbfc4022b59f909bbe7b7fde33c9f3eb0fb87531f8b24f6c5fddf12848b7539d4cb4a4ed68a2c093cc73a3c71e0992873f66030737a3d10d276678c28144e81fb40832d52693c07c96c24f680a627a8ea8f8d76f61f9403dacefc07fd3187102b32d4ecbe5bae035fd85b6ddad623ff9e081890e15d47398cab231cd40b2a94da28f65a6c36e20861c5a7af0cce66128eab0c2d8461c47d3a30698110be15895174b72e0fbe9e09ddbb9325806e682a6bab52608c37b292bd02836c8188751b13e09a21c0bcf607595009f6d1d5b8940f94a506ec58fd1b79c353855e0db2ecf3048c2f7224520e72cf02272cc7dc999f7675fa3269606f6be3119147914c73b1c0cb779fa3a60f144856042cf8a7d930d5d74052042a2590b2232383ee8fd44e63453f37549f0c50a6358f077cc7cc1af7e1515f9efda750f7887d04ffe728b1f1cfaa63da0f0aea5848a5871a9617edd9d414c0b249fbe9f1103a17fbc08d794f1c7660078100c54f3700d8df0a3c5ec1447694179039287ac8c392e884542a0e12413f4bd60c85aeac6b7bc0b51a419b3291a4f1234db9648b301e966b723aafd2381c45f80e3ba5ea209db729330091e03eda426bb08c6d0d15d8a31b2aa1470b1ec2aa9b0f4890bce254b5ffa8c07128d0450a8533695d774398985ddc7399db3472592605a58b9700066a060dfe2ae6681eb2ea195ae87c3859d1db28a12e99f166d2f508303395a4145f85a5c6e21b4809d4e95af7e2569ee835af71675486581e443e01073a7ab3ed80c083cb628447450fde4ab33e19c35d406b46dc2d6c04d24f610be25e852ff7be104369072715eb3098cfa4182a1292576f97eb8eb996d0f9800c1eb35876e019ef8b1f3f4f0cc46b7f25f50d0df7f53451fe17a8d245e0cca0022449bd26846074a351ea000fc9393f56022869498f2dc9627fb710b50ed1a5006e235da7eb3d8e930e7f9be82d16e9bf99d5e51b5067342f104832b262e6b8046519e6d914c33ba037fd94d1e37a251597e14be3a4a50743fcc56726a1229c030bb3bfd3015fc95ff5a128d586d783e68bfd958e63d83a9daf700ec22492cf06acf546097351b35ad68ba245abf4169f99d253f616c42819218987fffe192c0e9c7f2bb74b31e00ad302fb9cdd8ee3ce2bdf38bcf2bd76921c780a9180825e0e40caa0854b19ed6f007a248517d244ce34ab8e0dcd7ebf18a61ad2d0e2b7330fd35df106d1cc436c318a6cd88c0aed3a7aec4307cb7e6bfb99923ef09a71af07536f39db13e261f61221d3302f6757214b0c33aca327b658d659c5d00d8e5902bf773d09c204c941789a4168200fe897a465e8c30020f98cb66864f98f9a46064520a4ac94ffaa29477b6cfc5ada48b4d422e64f7768fb0aeacc15b5c0038c070ffc28941673707c3bc49d3979364a0d50027a836a910390ce80b651c2fb47041ad40c202a3f982db0502cb834ba3b8642c2e3395354fdd443227f954063390cd229b6e84d0c579ace647f83d0883fd77628c1329f7942f91c0ca1a7916a720c3491f23a7c9f0ab21ff2ee74729d38469804894f46fb6cd217af31618eb1b002ba4483a786b9241325c84ec7c37e9ed4748d2f802a176d156f293f05e3cca10ab6ab08b5ca156da77f5010c78d6c237984ff550a7ebb9943b3f698bb8d61e80ea5b1135aad3d386a6fdbfc0163517e5eb7af9d926819baf5d9166298c40f100ed71d97e5beb3718421c3727fe5cee2a2187d829f7005156d65aa4c5fed4d0f0aa82cfd5021d417b53a64beb05d519f3b39b509c02b7ab6b9033f195ac1c4ab072c32e208a70b20d554702480b9a344b7a44126e744abaa96f1f7406638a1b6006d7765ce6a9206029054246bfc2037deaf59febadf7e3e757f753cab2465b208ef8a5ba15f3798214a26591950ba3e2a737184afd6d98f5f41c57cc6cd9fc3032c4ce600de91f1f87cf360ac60742d145124a6e70d5a4cdc1dd15fbbe4f612011b72deb21f734273a9d558a4098b1194dd0e71b27268f3c6cb84854e79cb7300d5e10322648535700994811bc6a96d3ebfe84a03546ef69ad6aa7a96657d4d09de424347a2541cd611205d4e229154345cd7afc82b9fa424c173e80e37e5320162a77989ee8f120f08c58edd72a057e07c4c879027462c44d4c1f3de0fa90c0e31df418ad8724aa58adc5e4452971e4da973acc8ac88dbf092b05ec33e9e8606de4584eba088aa09bcd2ef952e498a4c5ae3bded5f6f76c55901d5e67be5840971360ff2e0317afaf855d91f67d7ef2673d912f21faa9bda118a7ccb8f4c0e005d725c22ecddb8de034b86f2a150f522bab5e3c8880648fa8a56891bcad2e908c4f0fb1fc97b1b0523c70d5647624ce29a968ad2aec976cbccfc1d3770b3b80d9a5481a095ba7ecf5edef11c258cd3ccf1e2fdc2f6e6699fb382950acffc8b0c9476e9840debb9e5689a0e44721984970f446634c572a4e5e4651bdcbb1eea055168f8c390fa90def1db63a2cdba06031323d98bf475b1c11fa0180ff989e80b428a66e88a572fb2ce9bb49dec2ff12721ebfcfd805901d90ce0f12d0b58ef0e7747adb41140ebb51f705cf6a37c1f202668c2173367245ec692d941835b6e07774a58bec6a0a40603b9374b4b85c1be4b6d3e0595f2e0e4d2449dc98c164d04f0f9cdffc4b5fb42dab130ddd55891a7c08aee1d68755c87132b5784a5cc030dcd13acda0edf0f8927a6752cd287e3eae2ffb185cdcf7cc5688141255c9146082ce3d79db8735c29fce4430295f4295185c2acef84a38df71ebe36930df45707747c28c129454f8f604fe628e72c45a8954bb90d02505b853e015681da4eba0b91dbb1a2e30f2d539e063cfa6a1eef48ab585fd4e6d9626075783a6f1a47ca07a03c24567891eebb799c29e33d5739bc03c4080a51fe2393878b8ad4c821380343c952592cad103ed3f99383ecc6192ec2d8748d843d869aeb845c224198360a453355dca4b84785b3379cff04899386712f2bce9ff3a8a5c09b3b6104053a0965734ec5d9955c3efc379549d7c516756bbd3ed7b553c70b517c061ffb25fa0d44f2d3c5d6044fc32ec028021774d7068cf70e903466bdc329e687ff55cd340cbd38d5d6d3ca60742a013d47d42dbd3e4b55778c9d198fe4ecf1b6901774c508d92457bcd4605bf15b075c34c5d7fcea39097a56e6dc6ce30d750ce1388f3600fe5c1d514f7c1eb45490aeacce197072aa4289f2ed9d400682619271dab5e20c89e7123202a1d5dbc0ed27e5237f8c8920fcca8d4903c8854225679991922a09782c829ece65d5d907426d97d3a32e3e3c899fcf23c35c5609d297c48d6f5c0fd09a5b45bfad4e57db448d85865c60566c9d73d069506162f5ea5b61881c910ffecebb221af9ed57b321b89e9973987b8c2c3fd11ce26c395cfc45e2793831051603c558ddf8bcb6bf8309fff217cc3cf064f86d97e9988a9beca295bde27d0e23b33c05d20cb48107d226b5673bd498a83a6da07f9ae2dff7cbfbdbd08db50bf0c660a58af1335cdcc7dcd155f49a889fe4e7fc840adac45659cab56f792207e5e406bae5367e630f258718a0cb9524f7aeff2fba421f2bec888baf64f1a2079f2d87f20bef4a30cb7f6e7b35ff316a576c2f54767e15ba4ce80857d918d202254b49a0a062f7772adfbf2bcedbe2cbb145aa1f9721d7638638c2e752a53b0ca55ac2e537a4dcf17e13bebccacb786865bb2359c6197f7650fc5cf5eb56eb0e81015a8322f912dfbe3b2be2b6281a0bf07ba9e9ea5c2de95abffd3e1f9f440158b9d5fa06bb8bb363f82a61bf7b63a349da071f89301453eb6fb0089ef1fa07d7cc99166e9f32975f9374ac18cce9557c2fc029c6af1725c54a398867833809a7f7151b6e5a695f15d322ee9efa380dcea0092fcce0c3560ee08595897569096823962514330eac2e10bbd15b99f2e0df77a32ff0525fc1b1da8d78106bde016373582c7358c203f42f0cb14dfda584cf61a50a79aad217ecfcead6ba408609bf9484b867697fa052fb2a1024a285ea6c468b8c1958ac614b8378dc1374f10953f81ef9fcbe91d7508e09457ad8e2b6ea4b742368cc2fd732f52bd10369690f9ec6ef59a26e2edf53249cdd0537d851d6a4be5e16f0fbf25677983a9e1e7a02569e221572ab021b9feb43256ae6bf145d0a99347994af4cc71d01fd4e27e80f84ecb3902a0ac85be6fe02d919dbd8098bc4c6ea1d5c76af2f45ed2e645dad0802b3dd6e9789bd9994ea081a0f9194b0a0059aab9ddf048a4302c5e9cd24d20c2d2dcd3e1c2da87b0f75cc94e98f360ff28d43368ec7f38dace3c8808cf4d207e9acee6b0d4118412eadba5fb30bb1887cdcad039f13d797aea1979989c78807c728999ed1f323602940cc2e1ae9a1f2d75ca40b45fe734d6e939b0915b61206b24e110ec8601b634e34ed9517602301da8feac7fc02d5d788491a72c68f6e035013b586a8a59de99d9c4f5881f4f90a8b9d52c49e3639866a5cd0eeb72ced08d4dc7b5a22bb410c0621a0e320fa6a71e071586e63c95daef4885e8ba30d9e091318d897eba826d361c3c1ff4c87765d30c6f1963ba25ccbec6bca28dd3e420a99f6bdbd125624304d49888f08138e1b865ad8cc933c46dcfe6ccc6a4ad97b025da8baeaed55d4e070cd06e49ee2b1442d1a3122e11bd19b7401bdff9335a702e1c426bb560eef0a72e95b7f391e2fbae1d55ff33f54737430b64eaa8645f40abfdf1a64a39d26a9b1719b344049aa39ff5428c8abc8d24f16f7a7365c26be0401f679cd16257c8d02151f5f85c319ea2ddc756a48b21722e500b0260c117c0042b5aba2c4dc66397998637799c3ee1a56c8cc932d9b44cfdc194a4306565000f44fd018c3049b99fa8fc250621ed566d6c701391fd537b1380a02380884ca00889ae696745a48bb3e900cdfc744cbd0def9dad9d45f30a7ebe6f385bdfbab0b44260fdb8682feb4fda0c7f23fe11b5524d1e4ad5752e6a82224658afb73ce0c1bed7afc986c0d77fa345bff8b775356d5a7d243441db47419c5538199253e07cba7eab3a8aa961e9eba40011d52fd268900135bb1e23837393e492f5e79fc0da0d18985295b0ba4cce4a1652e9bdae4c7d9201ee0c71da389829bbf2b0920000b1958330e558627418250e1920187b6fa7d5a98275e85537c8347203ce26b031cf2d67f127f0f49ac9c3577ccb85626bb7e2bc297968f99a46478535b59eb030cae349502940c272eb67aa17b27d5b5f98343f763506d371a82a8d89b02830193dc887380efc30c914973a4c3df231e5218649a871ec8ba088e3cadb5574f00f6da7420baf4c343c79786715c9cc6c612d605040fe92a62fdb93d2319fa3d012c13e87a3383022542f4d6f881b3c5666b3564ef4abd82f64f2a7be0a15e500cd66dfab447313fc359b3bf4f7828f12f3dd8e023860ed061dfb0054eea712608741d8c00041a56f42f356be5d112dd554844d2d9daeafb15e1b4aa54f9811bc2f7d6bf6c3e19f5dd448ae9e5464601b8129cbdb2f71cea6d712a042deec314659306f4047432f827793cf10a240addded048463e1fb65add1cab4422ee98ffc9a8f9ddfd31a78ca3dd7e0cd74ee289cf693cbcf308bcf731ec62ddd8e851adfd2c3f3b5f2dc6c8103aa50fcffea275dc56fd00abb3e12d078557659dbe5217588198724953724ccf5857dfab5529c74fcead15df94de90c57df3d3c048a1137ed0f2df83df489a60d21279ac87750632b55c93493a4c51e7dab476c5ac29423c134ad1a4b7f27560ec97cc6182f3f349bdb2f2da0a24264fbc723c0850350b302bf39a341e5056cd55631de2c30195b2f87ed5f1051de877d124df83913a747713e0f4258a6a2c2be1fef3f1590fa63ad5857ea386889bc42784e037dc2e72442c5b2e2a6c02a0c7e5f0c65fb7865f4094c40910e88866b759a6cb1fbe5cd83efa1f93ec654ff254f9ecfaf5ae3704d3a51fa5f771e8db3b822fe3f0f3063d9c1c8a460e7ec8159d0a1b300d6369448dd6a249aef77dde1663fefc6f1db67204217f296bb62fd3403f7470ecbc854e7da02d3b58efe072cb96d7df1f4ed95c2d71892321543b9ae9a83871850267765f0d3df67fdcce6c0ded21eb6d00357a5b09d93d646a5af7760d45996b67b379510b6ab466657d014e171936c4dfb1ddbe6bce24ed78ab33a22cd562eaf86c3854e33143c2ddfad4d991b060a61e168cb48493fd96b3c8d3a6a84df5900b6f762f5a4f783af9a923bc4fcf1d423a2dbc395807278f9c41e317d265cd7d0d0d4f844b07c6991865226a1b9b10b33a05d818f0ea0c5c23195df0c56b79d4ef555a906d9fc70b2bcd348087ae3435aeea6882ae2778fc4eeb95965f0f309375d9dd7b4689f4becdbc68b88e432780b3da082e15232e43112c3f5b75d88e80fecceb74fb13aca9c0b9280d140b2551b2f7a9783ec582cd97dec62c3ed831eef3fd5469c2209ef3e1c0d230eb8fc49971e627f588b04145534b8e095fdc6564b33e78ae0ced0efa355b0ca30ff2b8cb46fe22329dd4e49ead6fc09476d2c187412e15e1c607ea5b1ac92853ef44bf55d2119d10a4d53a3bbeae2bc26314416f98dcd5d05a4d672de90ab2903367b0851a2e397b3eff98e51a4f1d7b76e11db06d3422c7f9a13dad93f1eb5a45d7168e787b808a0144eca91a1eaf95832e3bd48c109e68e0aa02d3a055ace4973906817a61c373c4c3d7e7c011a7c36d7872ff4b9e52f8be4b2dc18546dee76b5a4a27f204b34d5e81af0df91507975c64c7ca7d8308b6a07cabf0b979e4bdba1eada0b71ed162561d6b6481dea108f46c000b4faedae3971fc0ead00abf5d59b0af7bb2dc7781cf271b8b7130b55fafa1940f2542eb01b8b3c19cf930be56aeb7a8a1f975d502d9dd9499641ac067efee8bbff7d87ea50a3c575899e7e35fb687f7857b1e213a8476980a2bc04665e3aa778614a6510cfc51777dde2d5c3dde73d59b319bbb90ae7e2f2ef4e6731e50fd4c2c8128edaf3f1b1a2eb68db169c019ba882ea0f4eacf94ae3b9aca31fc714c7bb42d7677afb5d89cbc1448e78a9288f8828e27396dc7be417e9979d6bebef552cb92574d2bd3b9e615baedc21359a19a8aad4c11dc525bfaa02230cfd9c47dd2e36cb54060bad16e5616feb0b60c2f376f652c78de37991832212028480fd654191dda6a6183e5d32c49145837ec230a27d3b9f9bd11adb7484db8d0e84a59814a2d32165c20aa6e5ee1927dbefbaea3ef4eed8fbdb5ebadc0c5a5ab6748c3141fb3c177368e40642275bde104743b2c1d04658b4f99833d8f6447ee07009318463326f838ef47bfbfa2cf243b769b65ac2f5048a9f51ca1f44ce3fe7186aa13821ce6fcf93ae6fdb33ae4bad5fbf444e3d632b6b7369fc26fbafd3e6f88fedccbf5fc9f9e31f0b4872c839edc3f3caa40a1188f6f90256792811587aee465e6d3fe1c6e2c9eb1ea9105e0aebf23b9b7a5198b1577ffd0d843f3450608ab52372a0512a10e1727494a41e7be75b36c577bed08fdbd7402f6eb9560b35103b0db52ca07b3cd9cf6785d00c3b1127947562989424a3ece30565ac16a23eedfa61e8dfee3e0e1ef3a25cc8bc28b2ce65e9ec13bef65a67b65f42ac0939891bc8153f5984e5b8be8a4b8276dfcbf3d723f9a7e0511188be7be2ae3f8d32cb54bbd101888b8bb201b2b7aa0e656ef80e4a030587d625f4e4395df4a8f8dfd0ad2f4e0d9b00a0882bda507f4e0bb5d351e4258965d0b29446e97a7022e90983714bcd15b16eeafaa9ea50d4087803ba23a33a71df4d5b338d5e74802c1808c0f52dcf528cc16b558a14bc6a20a71ea5e658d401af41fbc4083759553516d4cd6beab747648680cdd94fac4c094dcad5f1cb36198f33cc2e45a6d4c12db6b51e09e574e405c2077b518a745559e3a4f72648a68051f00d28739d2f961f22599fe82f5a9ea5ab53aeea61fef84b160ee6f49c60e9bec72231de7d7c1a745540712e2c14781dbbdee83fc2f8390d51f522496254be97343cb5993a030475acc1defc3a7b274c2c80eb51ddf3fe045e472e162cab6cf46f2becc5d82dec92409dd097fe5bbb19ef5a40b796a9ce2f71956d109b87499cf5c57e31f67b9087928f63fd2921af5d869e105fc19acafc9eaa92e512f6740c441fe576c0a322edb56fae2b83fa4f36f9e15a7f9c55177552acdee1d82a2d75974923a5a913a92952ccea4718e81f2894f2266878ff2f5dbd7adc7968f8a5ff3615af7c013068fb21947793563c2a22e4f2506637a98ba43bff7154a0e81d544bd53e023ca63cba83adddd150eb432945808cfc5b707a8b4bf76d7a9153777220e251dddfa4fa7b579f21b6e5a2277e1ea3f41cc041c815ffe20ace553169160c8e50e2adb8f472611adacf1b72906d8733e8e531ff6d1a4590c1927071ad9da8e540087b72f21a9ce295047e88de99f09912945fc1f8fb4b4e46c4c9c24153f35bd05a827a82bdc2b279c88e290ece1ec45612bdbeade56543478a5563f2a2397cf0a8f5f8d31556956ac6971d7fb7ea6b09f003b0780700c6624bf6c2ae17f047e0eb9341d3e471ad204773fbe26fa0b0844c1fb55426816161e46682673c192f807a751cd20fb673ba602c31473e0a806465137cec604e5c8fb0aad1c22c402bc00663ad679751d5bd22c918c73365365d2506986eab05ea4b493fc1f362e916f02c7df044eb775a8cf15f2af7cfbff6e59456b5e62e990ed88f54effbd3d33740ca6197d0934f2b25f404a33dee98244b82566f577d05033b54945971eedaa0706b01e233358a1469a0e66bf4494c18c901db26eee0ba73496eeb1a1b7665e7a010b6dfab72543f3f5da3d228f5c7cfc8e368f47cd5052102838fcb471b67691023ed28e08c33aa1214c6418dd14307a50613748064481d29dc157e5e0bfd31002f163f612a6bb3f0c10f6e4db2145e52c0d3c8c3b87be5ee717373674b5be97078d05ff36f517c70caf12f75b5d8db78efd997ff16aea0d40b621586f5253b60681ab45216061119a4e0b5e854efa5793d1b0640126e4b3e6b86c6452b532e50cea7250c5b91ba9d280837ec629aa7aad27f3308dd1a93f46cceb90b648131c0b7aef37c58294db0db1dd86f962e557c9b306784196dcb89c3b91830152167a038549c28a8f251c51e7e7b4c20256a15455ab3474bdf9358422192e83a8557505ec7781cc474509dcc2e3daf1cbb8fa5849b6dc30f8802c758e144038f34eed0912e162bc006effa5d45a5acc0502a04d86ad4e9928c38c0b0bfd81df4eed3e084e06559aee02ed4b93af956d5f1acde0b5b002b932e90aaa14a5bac05323e40f70020d443870ddf0e42cdcdd8a1611e7240a209b836ab7599c984bd69311100a290cfcce0eeb9f22e6953ee84d93f668d46ae9dd986fadffc1dd21134b09e20fbcabef1bbd770697e798cb5123122dece399df388256669b326b05c0325feb0d6e80db9b63f941e26e61e7d93e1248b67454e5e44c86826d50b61807e0bfd50ddf2e800dff97a3e49824163266ab4601df8f81ce7fbe89f9011abb2d76aaa50d2f39d787740665a841be746d6426c3208323a9c522dd7491fb1b1ebfaa2e240af36142f584853d825d63f31c876e8875dbe72043501ecc83c68b619c124e930f6e4145245d7442c6dd3607f2b2328c5f6abd8d09554232cc3fb3fcaf7d240b0997ac61c7fb1b0b5cdeaaa0024086046c793d38c6c103e28dce4601b437dd6b00a27a8a086b86d4bf9b5237ffed7eab2f1a2f4c7912d16f7de386ca53eadb8d0958fdf65e2781e39ecde8355e3a3e885a7a3099971e541a7ec822caca02691d02a5ae37b8eefb72ea430ec3325851bde3e0254b710dd63808ddf2346239ea86045e08d822002e04f85c597d581a64729d39b27f6818f8402c6223ad5aa1f4eb0ce4e25e8d1a13ccec340634a29b9a4ac0c22824654bead61bf8da0c7ca46bea085ed7a4d176d7d777ea9d41e6f661eddec9f4a931aa7b195851631860fa10490f4eef0aa557a57fd351e33b71b01de720963a00872a2177a3f102589cfa39af0f04238be5c8b6c53e1e361d9241dafaa02503ddfd996beafe4feb989f5195330e0e33fe461cf05335310b2c97a73b36b3226babc44dbf5134f256d03c7386920b9d39afe6652bb4833c2c21e195d396f7f67452685dbb119aab7f1556a7ae9700937130c4d3ee3a773f0a69a0303dbc845a8a885e8200221cb0971414a12101045905c4175f70af36565e20bfaf81797d95db17520ce2eedb6a2949bf94d70106803172ec56734ee33541f304afd8539d5663e19f06597f60ee81416dd4acea02edb6d1d2511077e5c5c30094cb4ff7000a55a3d323b97dc6e64dfbac4dd1ed024e7ee205bb7cfb3419d76c442c779cd972101c93708ad59d5d4467ba74480a04c8b5d639f0f1917443c3119ab32b7987eb39bf40cee8dc96aa16b3f22ea8220e9425ec1af65b890ace9a55cf8a80550536056793f990fad922f470d6c142910be061d758e6b65f8fc2decf53ca47a5a3ee7477e0b6ca777cd9591eda107508054d8e409cb2215860d76d613d5da0575b783047691594a2683b012a82c7ce2c07b6ac487e25697fc7c08ef75fb73f40a841e721a9c3cec03f6bf231d52e15fd06a6b6e7dc13cfb9056b1c7be6dbbb810beca8cd7e5286a21ac7aa4f48d6f75b0e70e8d0f989f92da1e920e57b762326cfb77763679cf674f514fc011a14a34e0fef062713f8ff6d71d53d9fe1ca1a8f9b07d1f18da95b2022d303b81ed4c0960c7f246f06af8d8595d53fe421b50348daab2aa056414786dad6759bd1d31bd10ba266e53b681e85b796b00321af39bb3242245c5801a15926bfdf783c6c14b606f02a4ec21abd5f4cc10b747ca91b15ae0712b780f3aeeb266b5f89e90c0ab7090ea4e164888a88f22b1e9ab3ae320e4ddcc67d6f2be9b4b8753080492dfcb008c87148ca6557137ac56e1cd65a28f54f8072037bd6e68f5e07020849da595a0f277f8cf04a9cc34f21341ad6a725de56f6b612815c2a9df8a703acdf5456ea0267a60965dba6101e9a1b746bb88fef003d75235c40bbcecac6160b62e981ba09f00e8245c796d5ee698fae8e9c43814aa7a31cf32320d899395c0cc75cae9a0d48f9974dc93705b99ec8f691157497f339b452c8c2542aa47efb557348ecbe0615c9c7e15d59ef77a43535845e13fcc12e719369ecf49f397c774dc3009d2e0d5e185e352baf6cce06847598b1661e83f10ffe989a6be95ea2e32296761d5d0bd115b9a4d236b9ef95ec839dff67d503ce563718f037a95e2b74cfed934a8e0d7d8d9e7e850d40256157d026dc9c97dce1f4ff5cc75e3268db840102f431320672fd210869eff22eb11165ea3bfdff721c3dd9da0ffecd31cdeb1d70a2e38e07f84f72aff200234323fc871da729e6a0816ad67fd5b9fa36b135678b21eb550926015ebcdec6d3e5a2a1b362d61ad64d81a17dccf461af62c1242df1666de207fd73e2d8056ae8fcb6c7d69fb2e7f412ad324c514acef1c332f32a5f674a150bdac408ea1e9b2a22cf447727dd47dc7e99f779fcddc6a540a4f2b517b87afe0d20e7dff2a3c8a44764b7ac129a0c3717b66e0c899fb243f512cd4f3b09df620f57de6d4183f0240b1305e21f45f1376f09f61e7aed72ebb0ad87c21a67e3920aa07f26d8853123574512574b8c8fb52a25e6ce01c182335f4ea2246275fb9b044f235d932110d33074a5cc259e12085900bf15a0a72a39d452f54d8ed342d10e6196dde7ac29ebdaf20f2a7b71365ee276bb2002c29a4be2ecf12f9b888cb304e67399de77e07eb629a468e5fb9a1a6b3eecf39dccc51c84a3463d3e382fa702fc44b7679ecd9fe143db08e10620ce22f167af16fe9696d8691c00b704827f025eafe3252f725e0448a5bd30efa3a0dd3a42a9efc2fa0d106e893ab1cef1f70f28419e55bec0a225937a8236b7895d561911c7a03725f80525a327eab7e68702a0595126840cf32da1924ae5b5a63ffc5eb09c0f3be847d70a65d115a570e70053ccab30905620bfd5729dc44d46d53070825cd0d6d02c144575e9765f89e50bd034b8ca69116e7a993737a206f78dab89a564bd1a12d5ca31d4c8b845e3660dc6261466baf39e6e80fdd60068047354950bf17a2c0935e2f03a6a8a1651b60bf6eabcacbf5399f4fce00d406e78ea9826c6229e619c27f762fdfbc32a2b490c5d90a4bca73b5d8e909a7cc188bbfdf4e591ef66778aac5f0389ae5d018fbb0787ec6b6de0ec93f78dd5f6fad9b918073bdb42edc06b3e738b26dc98568f1f017d02214743b7fabdc0bf8230766ca711e8607bd62b271058add5fc70ba57ae0ae3cbde974be33941a6642857b8a317d540966efb0c3d231313554fe9edf38106cc5048126b612ae74c6b2733ef911bf7fdc028c3d4c120a11fc761da9b73ed0c70f62f3964875b65d6c40ae6697ba349d8c540975335ef27bd2a3a5571117a0b9c46c56eb9d785fc0d984166b4ed4828670f97f385edd5c4722dd28fb0aa820947847d3e1c0a41ad63caa291975364d57b34d4176ee8201038856b2b0f664a04881a39c4766740b4764eefa9e830abd9fa4480242e8a6b99e44c3d5e2f7fca0829d8a7e38fc38e5326277e548816ca8fff9bfd538da74e6016ce0a759cf89e00c5792887b87b7f9f142f179a09f3f1463ad255a7049aca6779404283d8c05a01445b65f58b59ff19d564fae624cf809f47b97a26ff3ba9c02f60d301428e370bcb2ce4096d8f11a5704eac70957dda8f247ca2fbf3a88d39d4639c74167eb708703a5caf07008f1c1e43afe7b640abd2bc1eca80fdc8b92529ca142dfe005903721f05a2c6288da47a2d6b33a38e0c3e92b8e95a057c2020ddb3b84f3823390aaecbe0d73d250a65804920c949b9adf6cc634977228f6ee5f530f7f4937ee60038b79254b5ff0ed115fca8846458c790e05c1e4db7ff0af31576ef57debb8b0fb4cd93509e8535d0242094bd7a5e34d2ffafb4d44c218974b0c6dd63ad17560f3e34eb946fd4c2371400b5b19eb6bf85bca14a820c2a540a845439b03da3e60b3aac4d7b78482607451e4e4ae4d4127964dd51802596b678981fa937610c0a0d7e7b286ffdc42de9b0d15557b31ae167ac890166c0d9dfcb2be4c07c94422602e59b4c72b9e6c80facc95f610d3393e130fc5825a3754e64c25cd7f3265381046c88b76bdb2e507bed5a1d14788872f887858af2064851cc5e758d47a71d4d0798fd422f9cbe041cf31bfcb7c38aa6705b589cac5c20dc38739e8eebaea3310d6207837a8e8c72da07b30fc25b9ec80f09665374266335b3d40e722e22fba709536e2d4d5dad2bf70b91119cf8f41104ab97d39366f42e397e7a384dc4d5df0d50cd3435d7fbf0abbd119b033b51e92f7517cc3d123cf1534fff48a9d1d37d030e88eb48bd9c9d35f73224bf6b620a547ad117323a224e07ae50a6dec817d10e0194a7ffa2ccf483ab1469364675f146d8d163d45275d6163bebe53247852102423f007a5f19fe8465b96ab452f520e223a060885c475553a7958836030af304b2e52e561dc93758ffc8d917283e3423e5126bc2b4c065f31afb480117f9f70f21b6c37373af63c7164229d3f3b8c62f58407184a68209e5cf15816e9545280a59da6695f87bd6e730701126445ebbbaff5174adbef16df384a0a3db952b20041ed8b7d9940eeddb47d9e1632493f201c19ee52d0f381ac2ec798e538da6a00cccd34c94637a9a836b41ad39bf1301bb1fb04c8138658425373208fc535975093dbaea9732fc8099470423abf96766c0a02368ef1902738f684d4fb111169802c014a7bbe008fdd42dfd3b5eb4ab1cd21bc66bad7cbee1c54cfda198545a91093e27318f81006e2d17d67b6258d38cef4737a4d4528ee94bad8ea62103bdd509d7a5836f3651dbeecb9b0061a97e4a9b67f176e299c5fb1cad24e6335c9dfe0b7dd2c0249a97a83cdab9ec710efb9cc7e73e846e8dc1cdbdb3a1f034b8d29c04ec877d426c0ed2c40601583983abac01290472addfee286c252b66bc3ef474032fcb8c0f70d54b783b0a41ac4abb65276627857d34fb6a5834161e56d0fc900bd6d562f70761bf19e73be97dd38d48cba2a827b145400f576e0269d536b34f029441e8f26c1bbe172db8b0f68bca955355818e138e1b593d2a942af7f362cfc1a97762db07c44f9a104c67288eb01edf674fa018e558baf7a77965fde40b10b031aba31e167e9f2796f1bdf132dcd2481318ec44120771fa7c4cac21aa41bff3203a0329735e2d4671f12b20ea2ce748a165d60030b413151d8c263000f09c85ccec7cba4c2ed275116b3b22fa34042b86f5e0907a51569d979edacc16fc88f2dd4c550e16fa1d2a55ae889c988188d4477f49913b1826398b9e3385a3781a55d5f1b564243c2e2a7fef457e6bcbaa510a5f860964dcadac500d279feb0a3fdc02e47d2994d4472c0c14f7eb85c8ba96dce6f3b756c4c8b45080534ce821ab48e79ed6a8d87992afa20cd9c5b839b796dbe89db9228ab71ca2ed4cfa2638d24aa1232e584521b22f259da3df7e328e6045662dbdd8fd94f22fff9360fa035392cc83c2cb882e4cd2264135974894c50d8a8de33980727b0cd0902ed570e7aa91e9f448d01bcd5f47f5f0ef2f0b1d73c5dcd515a920fbc4c4004f1dc361ed97ccfecd307a9263622bc1679093db7e94a1abd44dbde322928c074e40ec54df02ff96b0c5c2bb3cb3f0b0762f2c9e8310a896ae07bdc4c0710ee67ecdc872d0827df6af37d9fa5ec2bbc61afee32710ab22c0bb3c8d3e0e6b04024c0a7a1bf94ce49e440e92691ee06673f3737446a0c2feef4e05e5b71bcf6cca596ff1871f82dc2da91e9faff557b1ec87eaa94b6b12d5ab6135ceb8d3e883cc7a366fb4aa4f0de7f6c84288cf561bc57bdd3d93aacc02fa957d4d9b3da7d255820dc0fd68d43fc84909797ffde36121b6883e2c791f0b0a0a6a4b55de118944abacf13a53b9cfd3e5b51730607c086b51bba8bb5e75a7301dd70cd4f96f8800f3a55ae71ed3dc41eece5a49290e52f7c8d80544e35d644f0fd6fec77700bccb34c88d496443918dc63192ef3425c341cb4e1077e0ba7535ec9ea9557f0441a8cdd2cd75b9aaa8682dee2936b517dc2a88a5e42cfb533bcd843c84447a9974ac276b8435b56d3e0c821f453ccecf4e2eb9c34c1fbda975c5f80d4725c841ef548f8df440a8eaac6945b2da8f9405faf93f08dcce4006fab4ad073ee9b200ef3bbb67b3765a579b52dbe48a346099ff87ed5864ba930ab0e54913cb77734509bf8e7b7feae8c2426c00e859ac1e784bef816b03f6f33ee076cff5b5df52dd3869b886ad25eba7575089204f1c0778fa3ff59f9e10b1ce5a35cdf886ec81414334209912ec2c05d7fb7c3c5013bc49b1a4b303307aa34204a956d17e01e12a0f2148a4d001f32bc455749cc90c88264e913ded95342452dcbc9b094f43ee3426874a09e3817d3d0aefc6819589fbe70bfce4c60e8a86baac80b558bacf7d4881b47035b843fe328832a3603890f66dee09e86a25c6ff9ef2a4fad5576a363cfaa7908e92aba16b31ff13b6fd021e288e3a5b55bf87400b4b137822a6e29ce03ed8c4c75f5d822300d9f66a1187f36342a5d23ca3106ff2a8d60066511dacf4562f6ce3ec8136e041cc54bbdf92b88f3a742eed6a593bf208de916dcc98c4a431dd9f07cd753ea2e11832a05a1293028c4f580225847af81bfdc83cb98854a6b1fdcc1acf4da874ee6cff5008f8d2602a05baa52f0bd623515ed0b6da23dc8717aad25ecb076dd4933638c787e921d99524ffd098b59b156ec7884bcc4091254c7e57cc8c605c686596cb212666abc16b3883271340eb227388b634d8a07272d943cb7ef25b66f52a2c1f389edfc8ca77683f7ab2b8dcb1174bf153ebe52aef84626bafdac37509c11352b5e89d7365fe8545a568e48b8420f0ce3ee4b0d0da4c4ee78b1b7b5da5f466f211d0d1c94c5a2f1cf3df3b9a25b75f970496b6af1ca03cb1163f90957fe4251b555c26f062da8091d9351ce945acc17b51a0f56771e157ce18fd5227c109c2d6d05f547861edaaf46be0fff588e57ae74b3881bd7e67cfa26c173b87e7e931f531a15de7bd80c90c89110db2a44d2a35264857c32a2cd40f7324590c1d5a78213f55366ae144538c65f5f196b0aac00d40408293d2d1f05394d5cea39648b932e686d94c40d622cab355fac4df183d02c1f6b95807c778be3789a05cdf8216b77a1ab6aefe06502072a64a3ecfbd6b2d6bc4eb2d1b309c5afc40c1a7e31d10b21cf770ff7107c38d7f90a3e8ad6fe3605c58c4b41d99d498733d9f4f578d27b6e8489cc800f01d9fec1c4ac856dd6e39a168dabc3b60c60a5980b8d7b5f2d3d830ac25356b0b352a4d95db438667a66f0260af56d215ff8fa95f4adeb41a7b457ad678f935194d03746e8c2e5ae316b201e4edbf3c269051e55517ceee54abe3e2951521e3bb90c065db8ae48731a4a05bcf8c53158b477fa62be05804849726a5ce2cde9165adbec38dd2a6bca7668c5ff5813c570df03a32c7c51d389fb74b8c54eef4345b4d019b92186076731d718d58bf44eac093193f3f881e1775060e5dc32d87a685569f8fef839277f0435231a6db0df3fdc14200af8b83de1afba47da9fd750a4259cd2e16ea5d09a1cf8ecf689777a1d3bc60f5e0637c1d4412ff010ce5baa2eb4e8026bd060080dc90e0bc14a70505a81d70fc5cde8fd9f60efb79ca51f50e746173930d5ebbe57cbe6097e3cfeb85a2963478d9a93a0c1ee1ebd199ca3592cc8a29791eb94761ceb9b3e38fe4410d254176e12c271401ed271c87560fabb8b3ea14985c8d33bfb651cd4c22f036b714c25c91acb41ccfc4dafcc14ca98245ee43d4f36676768c6acd6bf4494626fadd481b50bcab890068588f4e3f7269ec7294e2f9d41258b3711407f150de3723a5627e662f792aad2eb539e66b8eba370127b37168839786d0ca0da4b54cf9a3718352c501e3e08a123ad4f1a09ae0971a0578b4d50ad88b070f2d510b22d46ff57f6086bf497fd7064a0aa98d0946d6cd89f9b46fd83a5a29dfb7437bbf695be2c67f5c083ff76108b59d8afe2c3cf5424606926e16dc783a5b268492a8ba86d157590fe367ef9f0ed2d9a7ef37fb8da8dfcdca89432308f4a45fcb23b90927995d4c2602de7fb5019c181049b9100bb9c9ce1a6a5a9c5528aa4be378d6c25ef615866e6ce26b80000354087ee9f90b04f17862688fb8af1f6bad772aecbd2c7f1a04887c075fb20fe7ba852f6944daf39acd2bbfa3909f02819f3865c651f4b9e1904636868f1a0aae0a05c8d376d809d8d63d03705bed27497cc83fded6886868f7adde811a0b0d027ceea5186c07ce3d43a523a5d207495414d8a0aeecbef892689ca9d1c2aa00ff3b553516ff3a72a3379fa7fc4a1bbadf1ea0f664782d656c590a0bfca8640641371c0f94184fcd8675ab93c31df18f3b7c40a78c0bbfa5b3f2c4e9eabf9c00a17371e2387df0bbe9189b9eaef6418c12db41d14cf83e4dd0d3d95b7e6d450275705e9c2ebbc0c5969506bf390be7c7889f341e28caba054df5d76402618d01f256627f58e792e45caca4b32587ce2a652ee68601fb71e6b89fe179e77b6009a96e72a03c1996481eb993bdb4b7d73ad8022c170c7d78f20de23f0be11415079f0d54979e319a5cc04c3898342f4417f544604fd8dfa836110b205ba882a50f8ffb927a36f6fe57de160907f917c4dbde5e90c4c42e93fd76dd4485b1592909643abd2d1a3dbe1ede9f59afba10832abec98b0ed5b411b01c1b5c6d1b144608742d01e5ab51f2ab21148747dd30ae07bc3e1a3b4e9d2bdfef8abc4cb7ead009188a4b33b4b5948171d21832ada8cc8e0348c0cfd870c7daef6dcd79ff74610aa576d479b461fdf85dc636aa5722a6598564e8ac6439ac64561330c23907fb028093788bf15fcbdf449eaa7b9380fff2cebcc5a6acc23cec48a3419591f4c20386a9de89ec5d8fc18516bee4727688f8445ededa7caebaa0fbdf8935f1b2fe0813ac7e788f97a8e872193d4db4ec19ced75f74cf498cf87d00cb1a12140c9500489b19a4ec27a8dc3a8fc041a9cf59c430ae994d9ee730f4ecdd43959baf8e0a70023cc5de426904c2e0b3d0c58674e2736801a7a344623ce303e6e8042ded06e6092b240b9189e946e1d28aa19c02e31aa3f70236c83937bbbac9204443560c9037f598eeead125d3476862a6619b292de95db1677332b991b996f36f62f50b789f57cd38065c25afc9534769c0069ee4d8424decbde837b5f5563781113602bfb45f80fc8f501dfbbdd24d2448cbfafbed3ee9ecd04aa08b6299620177ca0c47c2529b89fb8ed6add5704e62acf2974a80511f94687850781a710b9bd2710a226b4bdd8fa87bb0e0ab67dfa73af1de7897dd47b0ea603d47430ac1ec8b7107b68e3f584f2756c3e6799d27c57261083602bc05573b785f7e072875168d6f00ea229fab5185839564c0444494a9f7e6ac5957a16842b509d6ae6d7753f0e50be3bcede698ebad9fadfc276877b2b021df919b7964d1d32755ace2499a850c0d22e5a6c18a21285788aeae7afce64c9734e50349fbc5e9b9dc796d3c7536e506d25ac6cbf2363b47d2ee00da877d1b207e97d5af25523989115049deb50e930bec1d38ee9cdbfe60c04af9489cdc1550e5d033a271e8c894f6b70b454aa36a0c91289608d3d8e324effce230c2fa11e5f74fcbbdf38530842cd75b5404558c07aa475d9079c3f5c2fa44b87b4eea63c148debcb13a2f1d786b046b4925d32b050e949393e904568dd0e7f97cb301ef497ac0f8b999a5525c8d0b806c33d2b90bf9412efd6187258bf2a3eae76f8ca5d477c0ce5ce3c71602e3a7501ab9276600feee187199cf3b5de125e3b067394ec3530f55b607440d49a7ea628ae6409b0845333cab6ab13e07e51b5a388703614768399424c919166836dfc611f8ed4d0e4741897df208fbe4049e8674688d8dfef4762e12f4c41ea3a337e1f05131b30c16f34a03d4a5faa882edef2ecfdfc6b184b8af12a4182abf4edbf9e6b371bc0130c3fa9ac3690af65faf5d78c39ac176f59c81d4ee2d2e87c6071c8167731c0d65a38041af41f92ed4399e4175fd4eaa3ddb7b53d8ee1bffdb279fd1d59e1d0f07ec6e63c4ebe0fa6b0ce28ff285ef00872b869d19e00dbdda52b49f1b655804eec84c738de9cc7b7967ef76fc1e5ce1aac617d6df94f435de04b71a80293b02233d574c4ab2cd0621a0ba200e992227e274c1e983c0910fe9a919b5fce0b103e96fe5abeaa04e2ecdd9d1cd2cc5ec8a47422c7beadfd6a951cfb27cee4cf106c88236dcb5cf2c885a6444fc350f0afd54897e7f93af7591bc2a19f45dd6970a399aeb18232f894ab8bc61478d3c2798bcc49acd005e7078c6cc63cf8a42fc0f57d987dcc42669db18dcd0497ce5d9b4f2687c4077a31140dd70c439f1edce0cd812dbeafc96feffc36d0587181338849e7f9e57ae58adfebef9049e7a1d7904a847aac69f33db9744cf311a1f487dafc02a4526784135b2213fcd861341b2063d88a6aa4a6e14f454808042a16aa014785a781f74a4d641e8948ef5387b0b014fada6b9ab71fb5319747e97e0440713a5bb2fc703a3ec892cf8cdb33c057303971e2a412fce8eadf5f037cacb3d3dfaa9bda984b16f41dd8235d542acb1a3025e3c1e3ef8f0aea805b29ef5cbcd1f770cdeb7627140fb75676aaa3192c11d037f50e781e00f4c9faf31b352970b2feed1c33218bdc47095ec97a203085cb80fbf1cb2fc07e0842dd4ead52cdceeb1de47d8136446b88662542451cf8a4d860132da06bc94770efb7d9033033fabf3e276dfb92434d04147ba65135c4596bd09820326a8ef4729d1561116ae65dca523e1302234e863376b2ecb757940427d04b861f17163728bcbde116506368b3b56f09bd85fdd6f51eea7da5dbe3d20f009898e61b623de90e167acddd298a13594bf151d345206d8979ee361ce3c91280de4cdcc2a4178acf5cb80f884499c068ea1a89f2f5bdb17ffc712f685d711250e0dd7b2d876ca3d0d56055b6c4bc40a1ecfa93b2a6e855ae17c2b2fda1a287407cb0bd0948d0116300a537ac1c7d9517ba02fbff59c3c631c59f54da697b9d70db01e50a0a5d0182d03cc5d0d77b63252553aafb5617a481690cff1e417c693091f55384cb1e719f7e2928433e735f80abea3c6806e6738ef2af7228f48037c07286bf4378b9ab9bdacf4c1bf055c2fe04aaa801b55b0b3e8fe12fbdedc0aea0e5e29f36fb16fee5f0640393af5b45420ccf4ab693e2555d88e278d735bd2370c2310cc8ec14aa57e3e5f2c86e0bd56a6f7f57c96ecb8a1a391071e8c9f36a600d86fd1cd6d9fb4a1dff363ab5acff05521a7f70f11d2e576980c0a93f4bcfd0f48c3f8db360325a18e391a5610daf26218a401a6731c6fb9baacd26aab3efb09287d6af54aa10ae3361f020858de66efea782d3de344538084f4856e02161d0c11f95a7df3a3227a4131da51be26097ba51679f334b0ee8938f988af9be4d806713ec9dc11678df0cb8deac6578855e95ff25862330bf38d5f166ed738069906b11cc52928aa9f4a1721aed3096d16d52a4b1a019a67f0c21e054d0fd8560b077120c683efe01a1c4982841c8c27c3b8b2295317e770efd58c5c751382901708b084aafb963ee3d2eea47d90a38f6becdd3c6d5f52b9d5a59be027f3ccc0aa078296df944f2035343c086c61c72ff889679cd699e2368a07c7053e16965abe07cd64043856fc94663aee6325a54def2a1404c7fb2349986d57d30df25d32ea020800b63a436b12f46de1fe7f628bee83bf804d0e7e08563e8dfe0d3fac6adc0c06d1fd9f474e47925ee6edc15a4abf7461ac863a545caaaaa27fb357a1bb6b0a611adcf728fe02b1e85f932abd7a18582dc96d57b6e6651be7c90067cfcc540a4d0d0dd6b053530640c901cc812c7618532cf65bd93e6870a643f2d838a0140b6d323533175de3f8ad5fe5e7bea282172b613b1e452b9d59ab0ebe49f6e76405f5c1018de4f18ae64cf0e6f7132e91e76f809d4b80c25eb9e113a77135cf1a00e22dedc495ed82fbdb48dfdc5b345fefd765da95c3320570c0c34031b771a501e9b9105e78d3e8a19e3eb27032b26ac18faa474bd95bff7aac372047df802507da397fa56d4fa921c536dfef8fbe5d4f45dbc9a49771249086b638a63f723f00b6c99fbef8cc066858b07a5a2c5f8c521fb76e608d42f5bec36b9201af1f4a0acb764a8f608c3dcaa26883824754c97535e959927c5934ae0a690ff1619d78007fe66aad7529b2fe0eb855d66bf511a501800616200ebf192a0743ad5c6d3b0a157b4e27188cdd9712b651ba97edc94fa6ad70914a589bc2683fc9f488af820d5de1e33709d209d523784da440f357d92135393fd1cc32a2af2eafe1f6a7a0044f87dc2b0efc2b5193315e68eb81d597af702191a9b49c758c1738775d7de20f907137c13d91d10d6088dee91a1cbe2dba5932bcb30ae8d3827a06e8463b4207b5646811c0fdb3a8b20b02af28d28a18d5b12fc711cffcf50ac6e254fb0f7d009359200de982e31be3f766835b3cf43dc4c47b4f0be6bbc64294a4ee418ee40de1f98448e04cf13cf193bbbe45c21526ea6849ed3a78531489364bf4f8bafc0a70256f8632008bf7f409375755b819ba9a4c5833b10f1b01bfc817387050340c2b7fa941456d74f032c29c2688b9bab90dffbe5ebd33f889110f2a74168695076b07e00607b910ece4ad97691f0e6a4b3b8b6adff0fbdb14bc467daccb3bf90d34f6d9f47acfaa99a28fcaddfdf587bbe3be268c3b47f281e3fbb6b86402a20309dcbb669ab6b939dbc7e02d57f8c0f5015261aff3517ade2978ac8853d10a0a91769a5cc20c64086a6dead4dccb330e3a5a94e7bc55156ba4f7aaa6ec3c0b037688f7256b664d335d86d13968a62b8821fb0033d68c98c41e29a08f608dd40d2b35c7858fc8c9e91e356af041aa91261fb774982e9802b076534bf6885d8e0aa6135c2c7b46107941595580eaa2f4c9ee9789b9395b3331a5158df4d714ec0aa456ba7c27318e798a8c75385d6a2aa1deac41543cc3cab0f55aa81dbddb130cded1e0bb5528feaf4dddbb8f08dba9ba5a374d779b03e5f6f526c3d6bc95c608ec938d2bb12cc267ecc9c7df88652ae8dbeacbf4468f2c31f52dda5ff0b44b04390cb5e4516c08c9751a2af38c66f3c28574231157f7080d20256147d478e90caeb23d226eb2f94f5ccb4d13f1efd01a5bc81c6db1fd5b52f6a65d9878f5c4088a385e71b812137611cc8208e977bbd263f74e37172d27db3ef1531145af34064c3efaf01a3e5cfaa3886a4fa1ab744c5c914d641ebd12a522f1a1bef4b73a0cdeb131af234e6b829a1f4b6f3ac4605cf6763267fb052b4c9e45bee229b4780ace00a3691375ba578186068d28b9ecb884d13820b14bdc5a4a0357bd4df0ba09ee43f09383e50e0291b955e2fa5dc0f5368c686c6dd0a02c084ad03603bbd3090a26264238d46d7ae650f6aeb355c7cc8dd567c05bfef798e0696ea2d308790c375813154c0a01371b922d5184bb982b51141ec65832abc640a45ea035751b03d90df73fcd1feaf5a24fd448cabbe7fe5a3cf412794e57201190dcdaa1a6950f820707d9b77cbe9194b07a81bed7b5488b252a5072e524ffbb4b6d88a333fd058d25524fbd5db55c844aa667fe9103d1fa00358db2c7eaff721fa0ee6718f80ccc64bad3252aa71c5bab323abb013dd00527549cbdc7c88ef4ee7a61be728d0eb8b97d42ec7fc98a8417f5908a4b6d1b46123dd8025bcbb795f948860eb92e488030014c794d9fedbcb37af2ff367fda24adb55f87f4005a261e3fe1624c23d48c762fcb522f6ed3325ee35500397ca34ceebb9b4055f97e0fe22c26f08ff12ad1c842501c06efb9c1fdcf93010ab03d57e91b62f401fdfae5806a3d5d3ca871b4df6d76ae7cb7d7930dc106470285ae70f4f82df5bd490a3a57912a25fc41e2921e33eecb863fc31a3bb2bf3ae344b221b097dfa1128765e1cdd69a2222278099435cf8a7025df6feccd18eb77f7757d54119a297c60d4232e2c4fc79094b2a35b7ef3b49bb8c7daf3973de566014f9a133cfd042663f6694f18e59a6d02b53b7ba375e0ae7137693c95b9cb31c78aaa3395ba2218014b3a7d7384e364506e61ce18b4746a24ce32fa833eee9dad6409ed1f759e0c321e59030d41be00f56b8788da170a6002bbef81efa5a0f4cc05a06fe57de0237147f317c1f8cf6d0a9eb7c7d785418bbbc890208071c30feff7086300383f9c2a5bd6ed02945c59f7f09bca1281ad81fcf4115ad15558af9a923a0a765401b8b405b37a7f9e1b432d15d2cb45ac554ed655c61f738b04d9fc6590abed04e46df6ccf3cd39c70d3c86bec2e04026d73bbb34c8bf6ba506ec04f7ff7813f60dde267a9f51ef2cd73429b0ab9bef6bdd259ca3a0875037e887322fe3547adf1f9c7ec9c785d7461c0dbf5e6e3e0e56242b741adde8e855c67c69beba61bb6d703d8d9b804e082336e473270fcdbc0b328881b61ab0a9be64c0f92fc2e2d6ed4b52694aee4d39e0b43ae74de1429b0ca679b7244973025baaf566941c13218915501b55a5096ab2732751a333188d4aab6e7bd1935e5426e968b94d61762457f3a469cd05053c381047cf6904ce6beca7e3e0f8bf1a1873991fbe89c5e9ef03765ada136118eba5a95c8e5558d783e8013dc8510f1c5ba0103aacc8262e2f164ab7acb88346067f6731947524666ff54c726abb146427db2eebd658878823be7ccada77a3b602b9691a3b023831b708148bdb94351219e76d64eefcedc0fbaec63b1291ff1d4cd6400035b8ccbfd676553266dd8a2c1f38774441273bc8cbe387e15366ce2486985ed2015c278218606ac8dbfa2597947a97acda8d8c340bbee06adb6c79ceca8d807489450d6db033e9c434838e5ba80d420a5167466b3d6a0d2f74c9034f36fd28204c0379e91d98c894859988a81ad3ed312f969e13936cc267e834585a972298e6bd48345da633231f45f1fccfd8d9abaf13479d432a0b6998878dd26308d86ba262f5b4ea507bf3e85cc6cf708c546d21cea21f90f4542801ac004b406a09199ae9a58299be3b662cc21206270978db5d201373d0c074607bd63dfac803e07f624d7b19186a2ccf3a1d39660a0d02375cc90c655f17a82688eab73f0dc04782b797e3b87a6f8ae5eafc5fc69bfda69f8602f1c1fbc10d4793998b6fdb1fcac8d5a4596c8fe39a6aa0d9ee11a944bf01e825535226110aed52d8d2b224304fdc2e8283355e8425a978f66e7f124c36f564d5c8e3101ff59ceee19f6052206cb6cdb33eb52157eec39e0baaf887629f8853d255757d4c3367388430f641c9ca2aafb35edd847ccc7a967439465a9f71050cb4310f87677823f432ef54cfc0610988a9d2460454d6d21357d05f6e74239ae0573e80785a76d593ba630007d8982701867f24ae917411e650978f6c0eb49f2de65e510167143de48a132430fd757375eb7e713f716864770d8bb0fdb1326c8839ba45bcd1efbc346f879af028174f84ea70dbef097137282086e872d33eceacfae92254531f1ae9143b3b6c646dee88e67d700b5e6c82ce8fdb740665d77983fd664153df40461be914122c0398925e57f19d6b2c1d41193b3318fac1458c2d856ee8ffb0b920b4e4c239bdfd7b250862dec014da90b6985cb711e2a039d77848b8e140bbd30c22cb717460f223ed6ac84b97c3d99eb2a5bad7658aeb35a70080a7c91b95f0b649ce6f69d0e031bbc5ae455736aa3d3b35fdf41c2db1cf3646d70db380e4428ff97be064f2d1eb8d76cb4d7ecab5a7da0881d42a9df5650827f21d09e80ab18203a0bcc8ee72b97a3baa9b582748769374e538f24344c0b27a627c046ccbbb4d4d65e5607089dccd77595f1f190f3dadf930a78f6fc85fcb6a823561fea66394b2fce62610f0197664cc6a4e81180342df347d36ad48460c9c16a75fba95d0f45773e87d514da9c635cda60c746260af1c099796513e3317248ddf69ef69e23025083ce8d5fde1231cec7c41f5b03c76fce4a0a05d570ce013da78b8b6cd2345ac1d17748392b900158e094155a6787a33a4d6bc33c4ed2a72afa8038a4d050324a22c924b1fb5243e121dd7f6383180fcfea0fb3e55288efcae3e07c56cbeb1182bf2a63ba53897295ab300df3ac0272d666f9cdab504a27b71ea0aa216ea31c10b349b2659691e570dcbf2abb645f78a7913d5e1ae3b1742d1c1ce9575ee8c232bdb1fa48ea9e6ae409dca660d988727de5118d8099ef2731b92dcb2b2b5182d4756787a6477f740c0b95ee9a8a956c10911c94bbf82a3cafdd10843a84715ca1c110c0cf762117ed38453729578dc9fb71f1f49418c0c00f23c85ead07e44f7d695b1d16cb7a2b6c8213995080f649fb382314621c27247cb692c17f9ce1c4ee3c4c3c01910707aa95747866039117b542fcfb12b3420a89e7969f0a5dbfd0fa01109150364f25e2244c78a12a3fb6f90eaae7ba897c04017fc9ceafd9293472b6dd456a5fce7da72d38e54921b7499dfb26c85f9168468153e5f3b134587ff7e46e42d049fed1c6796c9774887c523b12f3801a951c39df452d7e38c39077ea8e9b03428d5c54e79f4284a5e4771dfe419bae9cd8238c3c5dd588ab57ee106eda5f39327f07f2f5bf0222f30164f7e7860dbafef914e7b6377d81c01f8f49fa7dfdedd19d19f0077803c43fe9631aaf10ccd8634c46bde6382b89411c906e7321cb8503028b98400909f1917df0353a7a40924ef038e528aac9cd330cc3663dda05d12cdd00306d350545ac159fa68526693e721c6a14a512a8684edd2bd3d2a03c4a8e282cc2d1ac00bf733528e0230f6817d158860d5812a7276b44f75ad2915215d478972a705e09d4ff6a5e367576bafc1c788d1d8d38e714b82fb0f8195b839acd6aeff96d6e0c9b35d0238ccf229db02d85c6689c03715ac0db13defb1c456599feecc0a9b70e09142e43ee959f32ae31049ab04a316403c214e4381bc08696dcede100f59f0cc1aeba14149b269d4e5476e3a8566545401bf0985421e5f55b9bc18911f69f0a8036fd364dbe6eff2d68e8c403a9916aa730fb1012fba88a975851e386c78109b8744d833db1cbb5468dae1914c1274619fec797e040008a931e534bb694820ecee77ec683e3cea3064a8eb436a3fc1e958f270c010d8a54504c23185b478c019f6db80ed99f2abc240e05710b88381fd2ee696bce8fc80aa91ce1ca17ca0f04",
},
{
name: "3 more inputs from 1302238",
hashHex: "7197cbfd111e8c2174d8833b3a87c723dc8b394abc1faa9175bd73ff5f4d16b5",
prefixHashHex: "25d4258c209eae157de84508cc35e5b9cb5369210e55d255a4b0feae4788e3f4",
version: 2,
inputSum: 0,
outputSum: 0,
mixinLength: 2,
lenSigs: 0,
inputKeyImages: []string{
"101168bda2047709a950de3473adc8775883e9442beb6dfa0cca023d82ea8958",
"41b669d5f9c1d6211dcd816be9ac2c4b9df4711aaae9f1b762b5ea45b59e7712",
},
outputKeys: []string{
"64d3ed9b6ca4a0ddb4f1eca8360d37dbbb9da7c807caa327037799538c9d6cc5",
"eeab751583cfff1b387d4422f3466a0350fa22da8abc1d025b9502713e109407",
"369cc87c270e3a7be9aaaf611f28bba88983450786524370ce655da8c301ac2b",
},
txHex: "020002020003dd8b1cb8d307e1870b101168bda2047709a950de3473adc8775883e9442beb6dfa0cca023d82ea8958020003c4f91ee836deba0f41b669d5f9c1d6211dcd816be9ac2c4b9df4711aaae9f1b762b5ea45b59e771203000264d3ed9b6ca4a0ddb4f1eca8360d37dbbb9da7c807caa327037799538c9d6cc50002eeab751583cfff1b387d4422f3466a0350fa22da8abc1d025b9502713e1094070002369cc87c270e3a7be9aaaf611f28bba88983450786524370ce655da8c301ac2b2101f0a05b68101fddb37f87ded0b89ded89918b2ae750e87db3b0f84614e531898e0280aef0815ca07f3bb05444b33096dcfdd08cdd88c2a8e20f358fb1b350d34d6ea2b034c8d6b2c966f5b68528349eac7914cad1d063f2b35c143ebcc8c60edeeb37a070ce44dab824435e5188996505b0af5c55a7d81ea069dbf4a238499b454dd2c457980ca561025c89aeb1d2bfc14b7a163cde9faa777de9e61a77c65d5e3005fdfc3a0500baff5c45858c1f94b8f78d3ba7fb3371a7c18010bae796732cb2133795880260b2372f3ce5db8c35f536d5329651fc0b6417ef2c7b2e440a21bbeaf4628f04946494dcfb900b1f675b57d3cc085819a1080096b67854526366e3071284070378225b0bef1f1336e84d1fb649674d00817ebdb4ca24ddcc94a2e4ca9b242b063e49928375b585459bd7b5ae3f70b8019287898deb384abe5f2ff11bb98ceb4633fbe66b9f592ae59cbcf8e9a0874eab49988179a53fdd01088bd885adad4c0a8b041ebc08e7dbe566697630da9e3b25d5360ff5c05c9a65f782e271bcc2eb1a5478fa4a556ef6fcb18d45a120d985ee8232eae49fbe9605367e7f86d833ab033eaa7ef596ecfea6cf0aa74b0e702c4ebcff3093fd6b6b50efb126e8b1845500522fb5e53f277099df162f9195b40d1bf52e99d1127dcac7db5067caa427f80ea13abfcbcaf550fa3c694905de1bbef0b1ba4eb5e0c91ceb86c53897a8de6307cae488f6031c44f693040cb2da6497270c51648b17fac48d9d081df400ef0809907f2b40f1430f7a536d6a74aa0a1cf19e6b08ea793f22931357737882a7e009573db2abb4f57fa455dab91018111081b3dc301658f7ef8b870c4b27e9a79307b5e8df7f19337fd57332b50515bd1cc56314bf290f05576d661398e0adc39007416457ebf428b954d643b19badf2bdd95dc27fb3c388db0bb80dd1f03507cf01876435e4118034b055c003960590b305bd606edfd3baf74b0045f779797e95092e4e6f1f462767c1f3fb7db455827b79ecfe6f5d35e95b245b794d6344339b0c8ee626ae4844705cf413d7585fa8ed4dd1a99746f95babf929f36679893dbe0f014fd7a8269f8a2ac69dec0f12847708ec570c4704ade002a119f2938631190da71d19dfd0f62157cebf8311bd0ab75917c9a39ffa8f414d2c662cb6587f5705cc77f299f8b7a9e40fd319c8555958a85262df1cc683d5d7f4549f188a509b02ceddee25522091cb723843fb518e1d3a437903f287bb41dbf1254e781522e20d48590ae99f88e28bd950dd36a1c42fcd147772a2214530487bccf2d2cf019d078244f874684a990f8df577fac9643084a7215a791990f809f75c3efd061c3d086dd695a23e91cba52a2201b562da546861e330df6c331fba46eabdf60a1a5005ce6a99490b87742ffac169f269db8b7b33e2fd0240c54b42799e1bfb8473e30424d0cd328e848bbc94d4fbbea542d5796376dfbbb866018f6ad5e0139e8659019e04c61c964a1eaedb94d4c90f2e0f4207bf1ae83042124a83ede75a8f67f40e3ac4dedab5c6d5dfa78e359436df0ab50c5d258b7af45ac151fd632782e02a078ebced1a088e7ab8cb955cf4083a595464db34b36e6f5d18572b2ba9f514c50e6265424d8e30712c0cf80e188163c1949799a62591cb82e4f2b6e7cc37aa3b01bf614c57fc2b512dba2dcf8bdc1869e62bcaab41058b301b8197ab0b4f99fd007ef4adb9721509ea2d4e9aa49a705501c6109a51300c3acda80d699ef8963506c985aba70207fd7cdcc01d5de3a14a5d9287e1277418594aa7da4ca28e07d20d09e283d87c687f2e9da46ffdb40da2e7a77644cda90bfcb4bf6381988255d202a05b062951c1eb417af4e55a1bdccb7e5f166e900eb1d6123d11e5645799a60facc8c6cd32ad30b9604cffd2b47152a813e534fb963d12ae6c835df35b84cf0da6f25d3fe5edb29ad7340c42b39687cee805aac01e419e37f795af1c5cc7b30bd3a729258d6a37dec95a6cae96dfcf9c6ffa53c3a1e96be5c1cf9454afb8270330d6b86dc98555c8ccbd77141ea54cfe14eaed9ea1437b00205432d74f2dbf0adb1a34839f03f1da2472750ab836fae40e257ec8970c90aa1a833a48d5da510e642b5370cdd49bb9274a56fb107c9f11f1657b4bee58777a6075a1c96abee807fb92f8cfb5498fffb1d4ec4fa2e4f78788f11c4ca1bb573687b9160b2b0cba015a3a30e363c2638b27aeaae44971cc5c045c7238cb3f608e02fce412168b7803533e324b2237cd7211a3cba52bd18533ece205c653665111b6f6b8a862eca104513c8221443803b4a2d4f30326ad724c77363681ffd05b794a3403ea3d886b0348fc019051ac715d1ce6981d51c4fd52d56f4675b6bb97c19bfdb16a45182303775073aa18c45bf5d643f9813514960a05c8bd61d09424372b80a9a42a29730def7c31253ee9a67b16ef798cd8037dd471e9820b821eb536f2ab7dcde42e8e0838726bac36dfd4a91bdf0b11a138cac29eaab7e199d0ffc16d11d83ab48ae609eee186f7ac4e7d5bb76f40f3467925e01a3ed7bfe4af13bae77745342e7bda087779adf1e9dae19d7c36716318130ca0d60802d3c547b2c9e77a66a20d09fa09ab74a81c2769a169116ee549a9b7d369ca3f0ad28da9fca5f7084655cf398c01e392793c23676f215840b057e0308cac2e4dbf31991d75b79b0aecfe8c9a1f0bc63729a95d2228d47124f964a7f084b5f401cc670cbb7244089e0f4fc6e9e106a29257139e10db623a3bb9692261c86f61b4e47ceee21fa090381d2330ff8b0f8d1d277141ef9970d048a25ac34145f5cf90a8d8ad5ff61956094f537c1d710da5aea831c28a5ece3407b4b2850953f5be27569707827015f861f5ceab191c00dd5943cef93fc95364f085ab6e06bb0db7a155514c432013de8ba53054561f06ee441ff3d9dcd0d656fac2ab76a0203cac9c3754a0f4c90c3198c33238172903c6805bc4d73269de45179b0cb5df0ae0c3bd1fa9bb8fac661521ffe983488304c60a8b80fe4b1bcc41b48ae092f3284fdad987ebf6dfe62f0eb13150e920e2058c77f07bb0fc0ece3fde74368f9aa203da6b13d7dcc17fb9b9744aeb8a664e0aeaea9b0f7bff39a43d4dd49c7430c792c68b84f0af490c1ad4d576fc1192470cd6648fd9215cdc9e4699422ad92235f2ddfe0ab6e8d54540d42664629bb6c308c80bcf8c329f1b9ac1789b02b410d2a374080fb55335ed7f7164c135399a44006a1c0eda03109b526a5398dee58fe141213a808464e8300a479bc4ad61fc080afc8270a42433e36e2a64087cfab2aa36d092f91fc2ffaca540da77a11a284204a7ab76dd7bb5bab670e360ec5e5ae2080b04700f6f3d3bb4f6c2b57467acfc08cc39afcab1ce8d2347df737a76c56496544d1a3ef875e2777d345f7f258357030e0bceeef090906d224b641bf3bc7d141f03ab242afbe6553e1a6f8e9579c80c516669f452f2d3d75a970b83d5e1f44e53651ee4703ef1a0db71804d4898750ea125b5b16f99004edc514a0339fa6a78cd58202268e2e6ee609e0f5ee5774508bce58b2c7aadff7f4250e7ba7283234f396d25a168097dcb6560e0f229943606abefa246c73eca6b51a2c24446e2c10fb2b226a9f0559ac4791b7744cad42c026cf57b8642facdaebf21027d7be3c1f8e158ad8523a1d4e2fdd8fd1f0877930d8f8abd1bcb0422671218bfd2340635b79cea3901f1c4f3e2c5900b6368d4280179d65305a7b8dabd72bc9cee1b8f4e1c788b8e9f0db8257d496412991b4687027a6759bfb2aab5729b3fef0a4e3a5bf1b447ff81cfed64f296492ee26ef1f90b75b825dcd208670bf8da5b6665281ded0d295f08ed61f86351349423be3a4b06737a8f187a923beb7db6af3db48ef2f98a77317b6d8fd8b5888a969e4ea38a0f17509cf0614e57238d1b4acf494f6ae31db34b2b19fbf353f6be785bc5fd5b07fe89b048b6ae974177aad4183c2735a9dccfafc400d7ded8ebf34415bd495f07054811aadad177c7a39646c65454d2b2a38c58c1ff560e5f9563e8a11dfacb0b99c8494f0116457edbf15233b14512eb2792d82f8e0f8cb6a48cf02b28de840ca66b4968f98d48c44bacef159279a4288455c2c008c68dc1bff225d8a9fbbe0471adff932eb0e327035dad675685ff3b0fa83bfe9d8cdf115c421e0558922500347aaed5248b89360405021a0d554ade578f84d1a2d4c47165ad17abd173cd06a97e9967fe48bd74a464e0b282c9f15d92ce41b200c8abc2c5089b8a1f89ed0a2eb3fb80837f7700a1c1096c880932ce98b6d2348a8180f10cd629ea76b9f20d29514f339c9e44e55242c0eddcfcf8aa65e943482cc6e88fa944b9739315550f1d2b6ad142ce703dd4888e47c8004988b8928e3af39b3e192c34e1db043f8f0d97e1b5f1b3867ff9691bf4ddca918ae178c99e1375d63b53fe453a3a0e234d0205c3a161cfee05d12323313f135ef9d3e8eeedd4d960140e66ebb62fbfb8ef0cbcde92b4c1658b395c125a7a4fe6dc8ea5a8d23dadbf45bf1bb9be0199961a0ed80b4e99056cd3669db053c28d8f959e69a2b66b81caed1eee415b37999394006d2dc7eb764bb4fcb78781c12021bcc33de9afe86c30a91308ac0a9d7875740280d2e05f20715bc740383913a8408655f72db77d002b9aa11a473e247efb470ade8adeffe0f90a74d0466db6990f196f2031a7a372b7dd6cff633f186dba0506684cdbcb87ac52f3f4d0733fe18ba1713d6528b04c821d4ebdebf233fa4a8f0ed6447affd686090c6f90a41ed058b4720e09be8c0994ed6a349adeb189aa7008a39d2b01e3c4ed5d5f8b03c270a262013bd7d0bc4f1b4e6584dc47540f7d2c013bcc85151a900527b7c69f8d258887bacc804486ea788b8b9c0a5656a85d650907aac9f5b538802adf612d04267a8d540fab9fd47da424863823c35a492bc000a31ddb2abb2aee695e2cbebf257dbb94f55da92c35d0f9fd1158036fb9b3b50838e5d278649b2d536645272cff766e183eebeccabe42b7b15307734146b899063b0d6d3bdb6cda6ca6bba15703b75b331963e7dfd58c045de8a40596c0f76c09f21c1e9c0093376cefc172a68cda82d19242f268cc6c734e69c5084f474ec90140708d55e770e24a8c0229c3a3d1069e3e7cabf3f95f7943e56c4b0df68afc0ea597415a29e099cbf5ad9f91b195ed94e8dc4bed851afb55167f1180b5baac0d03ba68956f7c9e3d9dba35dd3137d0a2a4ce3c15102d10f763aebf18f4aa620a257d0d7dc19447e5a999bcbedb4bd4e5e1851ec0f6650ca220bd6c926be4b005633e89f7238312853317b3738cb517ca8dde996a5388944eb4a3265b6687240f8f0a7bf9473470936ae8344c1cf41c7465f7212bd29538f42521fdd47f548e0aac6bbdf260e975024ac011a7e8d85e508645d9766a4996f8c2c4af1724f9b105b76163deea852bd61376cb2ebe668465d2cbb83f5bc20cab0fc333f108919f06bf1d4974865ee58d4c4a2411049729b720f36e1ce13ce50491d2ee920546610fdc14f47d65a1679d7fff74199c3e6f193480946d396a7a62225ed3c1c8b3e40373d2c5eeda5de98a8e50966cacc44b236c49a20d974748558b52c0451d44dc01f675b23527505fb6adb477f51b0956f3413a4a2ae5772d39b801b955e865710bbfff6fd48cb246980ca6bce1cab522a291b67e148d74332f06835114c1829f07bcb5e2bdf9e44992cd8d99434ce96ed0058b7801364d1940bf36c482b0fbb6099a71a388b429da22fa8e29ba52d6e9fa56d856aa519671c702cd37d4450e210b735d246901d601ee67f6250b6d88d1b894c1e1af9279e5e4b67a8628a53abe07c421be2b8e783a00b977f188f4d6492396ca40d0f3252e63f99613dc4995a50f7e771bb7a2bf0b388d58aefd690ac6a02e9245869521b93e374f5451081a3c062f1ec398fb620613c3488d9d94e5b1333449f1770135a2790ec02c29d113590770aab13564ba7fdd802d532f1d7b61dfab2211d7e8a24621db0b5ee6119d9b044f11918056b2f019d9dc8fd4cdfe1ab9447bca7423e90710aacc3e7e225a160f7db3ef9d54ed4328ec23e9ae02af17676c27ef446b89b738a09dbbbbea71120c00019c1d85015e346ec8ecc86d0556aa81d4167a0bcc899db706fc98bcb2760a9de488e36ebdbf60e3927443c904dff63fb0f50c6ad178a4e031e1b7a854940e05c947d3e92f28326380bd60d6fc9ee2fbc8616f4d2a982f3ad1b4bee9615f06b87069813a83cef8797394037237ab7c083793f7d41673e5202897134961a0012192cbed86cc76b71d852d3e0ece618ea546fc2df5b6622f1ffb8410732b1300646b378e8c2346b1692f3c1444e2c768d4f0f557909f6801c12911dec6bc6cb268309cc821653e3fae655f7520fb4a3548efb210e76197136b0c0c8f36f586daecf71ad01094c8e9ba38131eed48e2c1805392fc3d0609f877444c0618f6f812ae2e00b5efe654d7429c2f2447b2977acdc6f7aa9708ecfee84bf8468ea14f3e8dd902410c06df11cac55cb81cc8838b1ba3a3b922579df328e8084a503dc16f60ba08a2f9823f5b437eaf9a8fa19b4532ac051f9c136a2a845f95b48c77359592ed247ad77b0804b86b34ed4c5fca4364e2feabb11daf0ead0ea7f9af9e3f2a8f46f9eb63b184c759bbd156889daee3053d3fbe73a833a6afa86ad7c49d55a06242679fd9b083d591d73077ff316aabe43616740394b743dff2fe24e751749cad8976eef9da7e2818dc9bba323bdaab2a4d94790102eea38a74f42d53d4cac84a6391d8b6df29721107e4d1d8caf03e8bac7499d29a797df1d9dfa361e70ecb8c8e59ed65d774b86f9b08ddf38567eacda1883121c2c72a3589b5e23cda5c471665f630cf01319acfe383a5111de80b48c8c10ee4c4d513951bbf0733707c4d5400bb76d09d919981b15df489eb3b3a715c0f029e738ee8a522f28f9dd2859885bd8b307d029bbf0d39588cef4392e190f401ae74b5d90dd417795c7425b6fb1aea2d14b498cf1a03c158344aaf68ad652fe980b383c52adf57b5f01be5c50944b21ceb0707ca9fb658716874d8e2f4a1139bea4f3ef79abd39011456dfda0844912122503ad86830d0f52959054deb6e8408bc00ca17f15fba810b21599eabdb4d1e8e5666bf80e14ee0c07f6ff6b0e9bc0e5e44673d2eee43d2b734f1e66b3c75ead20b60719fba2bdaf8d0634addd6b4cef35a05362f93a66d20ac9ffc3bbf0851d2e11127cde52193ed57d410c1fea8be7d699cc2b1b207612e2e8216706ccc5b72f884c1d5ff1248548108aeb0351e24e222b1c8f6192a669f4bef66a54fa264a04ebe3081245e1a28ddbeb3c16d3190cae64275844ea5b4fe6e6c553080c89014dc70bfe48330d51a2142c16e2e415d75d60eea86f58800d5dd6ff62abcc522e46a7ea067b6ca3eeb32802bcaddffc4beda4f5f72f591a863264687884462da9a6a8558b4c96b18b102f9355331d1b2c964d1cb9965c7e64118d236b0656f5642d1e454b43378a52200889d3586cbaa64aff791eb39e613f56d6cef4956f22fc9be3c2d5cf2ec3d11acbab39f356d3dae367938a3b16eb5a2d05630675183521d4833569977e4ec11f23310f9c775afdcdd66bccdbbad4c7dd2eeb1be570e019437ea97f50e3fc084b45d546ec871eea886490a3afe5c90aae208dba6ab561052cfcc46ad8b87f06d73d99942a110b621ff7bd84e0f9729ef190af696d8dfba7ea0e8ba97a0fd3c7c14728dd4f739ae4cf6ff54cce2ffbc6232219c25ea407706ea4817e959fb7fc2985d3a747a3086806edeb655176e6fdba1e7e00776f232912cc7338c99e64ef71286a0ffafd709327229e2a71923b1370122a1d4a1027eb6faf51b9f2543fb75b2c1b8a626917c6086b9f5adb6bd3cd31d51b65f820e002489659b405c5ff63c9995641eeb0812b5a36974b2acf9faa7348fbc316196a72197f895b677e5dda4e02d9bf7df8c1b210f9e4a04f547310166c9ac064b8f40596eaacf8057ebbc70eff1b7ff9d7671fafa69b5777de54482c93d398347f2b07df9170e16725cb0d9ef7ef0b17da39b07fc66aac691b85c6174a5b0fcff51b75929aa5ff57c6b151c8cad15398c2870ac521140ac67a35f8e1f1396a544471660f1f88a3e2967f1a1bb9bc1ab16a4ff615b7ec2ac5a9de2f3947c627beff037e4d88a579dbadbccb5a8bafbe3e40afd429496837c6af6ade80779c7f0cddac7397aaa19e461bc20245c660bb52bde95fe3d55487a65e00036203bd8a5119b9e1aa16d1fbcb2f6ca6f603c6b5237815eea9ddd67c57a066d55efd4b335e5c59bda513b1f2c221d8236c48fd48c1fb7881e43e61a881fe3f727127df0b7e161a8a6513b6a0e4cfb71d7e813aa09eb16a432090cc16f05cf8d2c2e7d42c56b2b969e659abdf00d2d1727a9a625a6512444524d362185947fbd618d6bfa61c593e827c0eb399261ea68080f37898631302d915b5ff4ac8da5791e601c9dd2b4fc26bb6d6843b3d1a69cd00679cfe05d82313ba394cadd1bccb052e2507b4f3b3111105770162d34b1409bca3c671887c8b850063df80a849531bcbb5be7a2fc11186f061535ab0d416029fd229fc8382eca1f4fa6685717f0fc9f25c2caeb85a55d0bca1431dabf2260a7d08da26e0e8b7cd6e5e4b41ee87f7ed2fbe559c03edf9d86d9e5c5c8ca5cb1f46d170643c23015dbaa993b8f57b839e0acb7b52d993600e4bc46497bc3be731cd2899f3ae7252f7bd26baa76fb65026e862de6f92c46760bea9fd490728f79249f09b3f276b4b0b9bfc73ae08e2aae6f585c3a099f40a72f97879f95ce995082866baa9b717a66b53574c8b7be2eba0f474e491812012b1437f3578e71393415cbeb33c1b60b1aa41e97d08717c5d857214ce9b50ed64d663e6064a85c1a69024598e49190c0290e8ba2963a6bc64d204f1c0be13a6cf733d04528e4d8e0aeb5caaaa8171caba385ae81c4ce0d31de57f2e865c8ca3880302fbd464753c825864b4cb164fdf2b571c24989575360873d3732b1dd6f68ae01045e552a5ca975569eb86e7f8d0ebea580a067f1208d99dac743d14b9023930bb9394ef4726f8083a56ab0c3ebf4a891c14195c53b8e48ff24dfcfebe8abf17b5af0bc0ef1b2c0d83a52e62a8c1ece2c9e28686f4cef5f551e0894c374c1e0f637e52b9a521ae58801ab25a2fa53e0c74578ea0f77dad0e36a79d1452a4c41d1d4284b94889eb17e9ebaa623f4608306e82cc2ed657e122218454c0e149404be4db2ba6acda6e009a5b257f2bb4c871ad8f7225319e1c0eeb2539e0800c1a331928215e07518c48229130fe83515d06d2d5f3e74b275b2fbc871880ec804b5dd23531b8037059ad755b0fbe7017499a55a2b1e4d18c2d41262eabb0202e0b1a152414aa04c12c383d888cbc6bf9c2cdf69bfac0add50c88d1206390aa991586d265d4da94c37526bfa29bf69e990b899264b5f7851b7090782a1e5037ea5390c40725431225613409c5b69cf1dbe6496bf1b6c310d31cc8b7900390422b65aa0a143285bc8caedccbc93030ab8ec794723b0be0b46822ca62a9fba073ce7fb6c5dfcbfea5e7e6b0da9724126aad2f99818ac65f8aa04586acfb5510f7589bd66846930af1751f149ac2cb5a9e53f0ef0de97449e9a628fc296a9410d06a72e8365fb514122a0a94a554b147796d4112286ffe73caec6575d8347b90596f9ac200b14b6a706918da1b65d64669a146a55bdd52b39e2091e4ffef5a10d3e1a36f872ccff10317f32470642ff57b8a7f1a48d60de624395bb11c9145302d1a7abfafbed65cbbaee48f17fca31c64c4a84d77afdc6ab5123460d3ef4750cc6cf4b95a2ea9d6bb3776b69e3ef55e7d03cbf74f6dc7b3baf8222a86652100e8a7a3aebe349e5bfa66edcf7eadd074e84dec11f1faa5b94967bdbf5cfe4bb03231067436a009c0b46c881024293cc92ed670986c9852e4af93e0181913c8600cf216dafeec3d809cd5c6971320c1a02c00cbcb43b806e3bc215fb9f705d3304220153cb7b012065352c9e2e4477366b80e8d588f018c403c7944dc4e4229003052f6ffc5444d3ab67097b6b8635fbd37d21997a4509034a4f7884d00b3bfd0d54b677f4e5e040cc16a39bbc79edfcfdf27c66dd333d7ded3ab375e3c761db0f6a2958d505c0ee7c304d778c877ad6405455907ac50a2a7246ad03e77c05330cd86db89ac602db1d65af1976bda837ad268b6f10687a7feeff25237bdc1c8d0804957aceed4e684a64831a24c088c677406ac9e03aabe42fc28536f479d98c0b42fe76cd307032c668fc831df01f1e80603d3e24abfae16f503543defd4fbb0cd96f679a46ff775c55b23a30979a7880fbb79003da7ed2ffaa835b66a5ae440be95c97663e5ca8582af41a3e4b05a367a62c1190f5be4b60ef36ea5dfc97b106d286f893246a04e15bbf7be7a6c9c3b5a0c387f05f6feec153b0607b7741a70f19613f0a94a2141feb1c7ab8ce2de246714fad10824596b7e820aeb275c5530778f7d362969d462419ea1aed8c290c704aebb689e9de8416b2e2f443270b4f0d83f289f5c04aced308acb0030fc59da04fc198ef7ccecc2f2ace6af0cbc2ea0c269805f7220b5de9ff50ea1a31730122a4f7f1581eff6cf6674bad5cb7ca410628faa1b6a4be4a1ca907612b5ac370a32a834b54ca1f3c07828f6428c1e143028fc1c0cc8df2e5e7dc43794802ccd9c0abeef7fd1c961c0289421451d15eb10c14fdff48f4147120e801587d9159b1bb4f6fd28f396eabf38cdc9b86f643360a7825bf7a4cee8acc773f14711fb1393fb53698087f00bb309f331164ece9eb0c30303abc5cfa692e9dee4cdb28aeb9234dc477f2b83211f1c3bc7eaf373e560e3b831e49effc3b5cb65faa0f1ab0fba924491b445fbaf08a5a35ec21631a6e037333368e5d94736bf3b599bfc5ac468ff66ce1a2d5339beafb27e9e4961185069177bc83ee64b0499bd1d61e40b483e2e5a76d468e6a5c53a434c5d3f5d74f0b8216987e7e20f7f6324911e8e608abe779912d11d044c217851e28964edb43062a271cd3a01d92f967fd1966d240ff50f38029275bcb250b723a8fd5111efe00f095d419a7f49d54b70912f6b1822241bc2a46e71ee2268c133dcc8c8a8c900c3875caafe2a76dd2cf7f006c72b87301b5d252f93b0ac001c2d5c043ef2941031b56ae091f0d061bba749b3f4b4edb537ee4e9a5734ee5c348579f6a037d910245a98e24502503be8fbd2fe8be587a9befa626a2b5032936b20138c6372837015810d3a8536457da4ca70547ae980a2e55065ad2c61559d3ec7e28de5bd9c501d7fbd6dc77bd056b17e951fd29f472f8572f69dcfa42b8085af84b5c8cfdc609a82bcb9b06e3b46fb290b39a664e9221768bcd77a58f58b825e320b5c628d30b248ffcf98cacd8ad17adde5887c737e6e5418c0c45e5f23fd41d7216b80466050c9f334c09b699c74499afe8653813cebc8dfa2f63a20d7b5df111068e5ae507e1e61c9c13fddad6becce75821895536daf269c41cd7e87027b4a79e7d485108338e6835a914f1c67c1256e8bed332496e081654cbf7b00c772eaaba2e788c0b80bd95ee8367ace4a139e3ae9587a203c2fa0f601525acbbdca046b9d6d95106fe732b5435b6d1f04740316d5eeba28c5add5b04553db925de2ea2cf281edd00073d04e7bc2a978bb0a5d44a40b2ff0f70428a450809ecdc0c8310444c58c508fac53ca83ca25ade64d7886a85d37e59d2d79ee5b5b74ec0117cb8d7c768ef0726308867ba56fafad05ca35925e319b63a8fb2ccb757e565d95f81ed51e3e20ff28dad55e4332fa817bab223bd1fb7160a02c750e3509981077c960fd1a8170d81b384fa0e44fa8db657df0080e3a48d2b9bea93651fb38165b2ac9bed3dd9079349cfc4746a6f39a5a490b0132f4f44d8f9133b930cff4d2a1cc0c6bc8dfb00e23e58613e77a816c875a9d423b543b61544d9101e86eabef952726fe316840badf120a67b4a0c907cf5f1f3711015a453be0eb9b58735dd233fe649a513da0f9555b8ccd80f8ca61566e166d228c7925ff39ac74cb618ac8da19d1a3903170f66797d116024d38393b593be656cd682153976b4268b335cc6ef92b76c313d0e40fb7a9c4915a6d555b1ea101602887fac1e3e028550ef9bd5e1c93ae92ffc0db37264d67be662654187c5279b1c7c50a464982cf653f3c87f4c0d213cf23b097abd43989b4cc4dc03d4a3ec8f7cd0124567cb6896ed5ab8277dc9bb299e280c5e2473c32f82e6663b9d78eebe5b16ed162d98b66831d0a94750fbb989364d08ce44a75745ed7998d75d8c69af4321462cf66f7fd4a2f50bb5b78b04f7ab3a0e4d46f652078a40986c197bc3cd2e9dd8c7ea872527621d5468b7add277677e059fb945f9992fbf0a6c284fca38f2a7712ed5b55ce1b14863c78ef8b0df34920c73250df0cca8793046f13a5615132414646fa6ef3bfe04628ee3236905f0720ad5c7e9d7b9256fc342108554f46fdffeaac10497c6f9f2025cbbfe62fcf27e0ffe6aa8446de100187dd0c26d0b3c93a55688dfa9095a1a8602539817afda490b9a058b1a55b07f72ce23270d1e97526d600a7ef7d838162d4284bff67d96670acc384f930d823d4debd2499db1aecf55408e15cdd6709cfb9df9f50736a8d00b3a26da298100279020a4bff406356dc8ca6bfef6751cccb3ec3f2e51a321bf02692540543ddcc4edea3e4b7068f8e1f5953615f9c81fe8bc80a6fd9f19f0c20fa918b82a0b2e7585e5e2f7d0727d01a3722de01f6df05aae22d72827ae0d07096d76073b8a5ab82defd44671bd56228c2c91050cee5176088738061d19a4ad090c9f86ef57181193a3da279544d5e486de8b99ef881a8a9bf304b89babb4e80803651206c8c416d45fc3b707aff96204e02b428b4f2eb99f7ab7d925fa109e016a2bbcdb6a2d36a7114e267b9d852162c7765dd3376baf1e20d2f6eaa3a1ec03839e246cbe280bd14d5fd7cb956e7a487e0d6a539c02f489aa792dc7d4f768059cd9c042b4e8fc2cc3af2b23ee498ae2b558cf8e9314ed66c72592567a2e93057e0bd6c1705239c00bfb73ecbd38d76e16e4d5e92bddcf89bd5163dd97fc1f0c90efc275aa86be01716b29c3940b2139afa415ca7817865519a9a2378039090c74c98a77e0ec38712cd31ea9998d252195daa33fac0299cb93b5f5a67e999904e936a7c47bcbc1b8f3d161574b01d3f6a245f3a904564c6ae84c4bf681622c04eb0cbcebdf8ef50b537f8c67890a9fc1d1bd7c151fc8c28830e354aa1d9e9d01a61c14ab208966d55530061fa6efa4a12f147d0571e9bff1f5e0ec94e6fa7c0c35c04d66e7fd1bbff9f39d64a71be4a284165d4ff872ea196aca2d9214b38f0ed304dd929ab6fed9efa9bf4685d7b523343fa4cc17c7c6037d7ffad80587590f148ff7601f0fcbbd6f026cd6274b31999e148c40a7870c48022ee47738257e0085b1a3458290280d9d510c654b8c0853cad268f426f3b2b10c400356cd719905e9a9aade7079ac2e1766656c9366c7d9d6ffe461f31effc0e0c89977541bab0f8776ac18f9343573ded199d90daef99837b2af728b03c2a76ddd05b70a6528054cc0f80be22ad92e2e006ea385cd991d006fb863d43cfedc008d216836d58306d385ee9d051f7b8e90b54c0cb376fc6ec70becafa2e3c189b18300cd0019f807e7f0e3c9fcb2c5623ab4e8c7101f1c33c3be9e637b46cfe5f708e10947e5a50eceea83b64cb046a86845637643361ef34504961d8fd6b47f51877e4c9f960703869721d6686f5bb6d84acd485b4538a63ace47204270e13e99d244fe6d537e0f24e83b2ab828f7e429699278824eb8d488a52177960992e85f9ab0854aba190e9bc52ab825ba811ab6bb0e29c7587fce62eb9bd1466289deae7c685a8047a40c595cf00a11eb5031b1791aa01671604a7f33a6e5e6acd30b18aec88ad13347088b884a1bef5fbe21f1014419be33406ac867e2066b659e06ad4b5a03fdd7440677647dda4ce0af3b236fb601326b78896db17438c66ab43d19add0a4bfe14b0422cb0bcf648f3be4737ec0515453fed97f8ef07d07cb95f6f9903bf6ebc6be016794f71250a0434bc1e4d737292fcc1fa23256cd933750cff569ad6ee3724c08b4d984c8c8305f87433df2f5e7a7baa77f2b0ee81899adf45a3150fc7411750c0290ffafb50317e85aa5bbda15cbd5de84804e624384e2527cc4a55cb0049e09ecafce35de98198fa79e300fabcd6c57db42f0a758e8418037a60fc4e6e4bd04da58c944c0118d6e348e041eca7f2d4d02960a913039d1665af8fa39e2c0f204c41fd46e9fa0b41f37f45a78003b636adaab37b1f21837c95b6b133608caed067bc594eb70eb9afc306df09161f1096e46d13a20e558ebc6480731004654ca0f299fb654e863627e9f84157ed44a72cd999931a4ec7eed94a013b299ed92eb02fb21d637ef3abef6a27219f4be4b74a44d66caf321c51ee4966c4a06c1d0830a6ea1de7e2b92d9ccd8ee91cd08f4fdd7ce44800aecca2bd88273f1fbebb9d4092c6ad034a326e5d6027432e1b30f6d631deac837e172820ae5732d007e961505e49ae7132a282b81718bf97fc04a2de9ad30dde28496a8ad026e35b2151f570a56ebbca6388e46d104841f50f2136adb5b979a89d2f2b68e6a1b954efc2b520b27a8e6127fc42d4d79a177eaa4218feaea9ee1c597fdf2d024824a70e8f1e90f22e7c09284afe4ba1c4b42b22fecb49a8f1609bb15b847bf4d33f2b81b995a08156b09a33d90bcabd221bc99ced054f9126bf9ec7fd0a4d0e305cd059f9f9004e98f0df541d8b3689a5b7d2acaf88cdad4345e0e38178af9c60acc0e6c99b40e02458906b64c01ddf5744572c4a0096c56a2ee818abf83c81ebdbfc7cbc6510ce44e99c9b3a26eb48d0c2f3fa6f64088173d98a8da032704cda9974853183e01152735f514cb33c7645e6b55a48853d5f116ac7d6f9b4c9dd616ee7092477a026bb58d19726a9c641f4b8ee3163af2c9feb913b6b9553b35a995dd75d988eb2440803e722b0fe86197567f0bac857040ecd3de651eb24a5673e8bc6b525667b0356c88928d007f2bff70d3431ac04f41f5145fe40131b77b6224cd481c3cddda1acddf3ad79a878a66c2b753f9490807dfe75d7023c2d8b1f23d3ab39857ca34abdfb6e629bcc840270f2ae3a3c019a6baa7d9343a326ba1833db72d21237ab1e206fba4f5f79512e89c3262603df0e21913c8f46ce73b6476cd6a1b874659b68b1c19476b782207879a5a27335a0baf03838bf5f97ebe61cfd4cf143b74feb436a377a4e41ab75a21af84c9595966703c5efd66c1561f615530f32704216be9ca5314ff3f779269ad0a18ea69d11b64431c2610dda97481b5f8ec3e7045c1407bd0043fdc917ade0ce7115037a0dd191a230789e3d24dd9c5647ec7fbce03884eceed600ce98bc6d17754621a92671b52063c4327a2b8f4fcf2fdb0d2093d8d14e3642cc9a866333fb7ead55ba0be2779718026f1ed560624bf6eb1577f54869e190887ff8c709176730796f0d4ef328e7fded3da74663a49346ba1e75aa2366f4047179fec82ccb0224d818b852c9492fb7ba9a6bb9872b667745de7a053cad82baa0762b4323f77fee2dc003165440f414c7ff48f52657ea78dd82429a03463685ec5479bf4ebb73d50c111d9590c5bf3711d4818b59be70d94b982d6c6a2c9e13e3e4180765220313cc4c73f3b3b9c0eb94e07b8f6ba94bb50c3f2c72a6f16497975a8dfb19dd41dc1c03111fae5f460fcda26a0656fe9be16eb5e93ee75b9d5ec8cb0286e66bc9691255842b0e4a505438cccf638545046f67e5839ada33dfb46e12854b385481285953cc4973bbcf896ccdf3962b010fc2fdb0ac6bfa7f61f0cc3c40f569bf668e96420d9e9da83056a79c9c784ab06190568b3098aaa38ea8e48ee27baeda8f34a764a02f1efaa278f536a3612a22db7de70c290bf8b625a148bc8a8dc5682bb8327b93072386b4b730c0ae072b2f78a01862de9530ef47b6446f2744556efa00da16f669a092fded8ca8410bea3eacd0b2901e4dea819cd45aa7553e2c7b852dad96b48c6904bf7eb57beeb2a08d711b0473f8c0f5bed4cd7577e92d0161b4ed87d55c1d5251c8a0a2c62d31401ade8e11f93fd97c958032f2954c226dbdbbdee86844b0ac38460d072396b11b96cfdb147152f92f98c906135fe666d5ed075be81b335694649b520a6b58af05d42e5f4bd8b25f3684ec9f4c49b968507bd83bb95c58efb6814ea0d145f3271b322da28640f21a07efc854d931e5ea4900190f0a4d68b70e110e6e30a6f7828d2938f23d5649c67b74eee398c49834a24076f7435629149cdbb051e337128880aca8338e8a12ad3fb49a2b7bbd9d88f2db9eb1e03a1a55e179f0e76a1b29004a1c9dedd51c06bce4673db0d0113c7b68a41f604b1bff92ee6a5974a98db294b81ca1d132894c5543b87dabcae0cdfa6ae762491d0e9d465f49d1e5294c59b6a5f22e4aaec8b4cc4d944c86f56013074a81de7c57e76b9245c18e06baaa3c1662fa57fdf4d760e404a5226e26e78b4a65b789ddd1e7d742f66c58ff4a945eaef462a89d5eb551095920926ae04de009dce18d18c60bfc87cf3ff78e526a8f0896f8b7b5ffd17ecff48126b6436e50690f046ffef46fe74b8ce33bfd81c62a0a91ea6ff2d7fbe323977e9338d6ae79937f9ae1396f1f506ba58a32ebc681b1b1b15c8d1ae58ea5a73200afbee07440c438de4dac1c3a49102ecbb32255bfdf0711ffcd6e2a1b20da16d3c0c1b03d473fbba151754f42e2241bd1a4e87990411ba7a769884c52080075b99c3e04f4141296cd6fbd81e6db0ac6e41e570794a14a6ab6d1e012358125631d3838fcad04af878e68aed3d66a7d2db78fc2fb684cae4089e7ed6e809f5b3d2efb741754657c27b4c8d1ad108b8f4159bdda4df5d67cb934f8bc96dd8c76bc8f917e3aa8a34d1fae7cb53e271a730cdf49796098988e418876244f1a24ba506e89f32accda60139c2118f1b34f45001d054a0df3bbf6141039f34985559346e2c06aae5cc3ff553a94166e41701f2893b5135e94908daa9f757d9e3d36b6c47fd152c00d92e800e4e3008bdaeffe91ca5667a408f93cd6ee109970a9321d29c9de04a0c3c11abaae47b8f25ce2bc42a6d08172c43eed671547f9457de6f67663368816b5c7bbac0c5167dd4e872b81eb019d7afa3d707d54fde3643897a4e0e25edb4367c825e1b936a44ee65ca9efe3ca05becb403da48778e5460ccb162bcbcfc05ebb8bb8183f43fc850e794f0c9862fe6f00472f0aa058d69def78b0b91fa5bf5b2a2dd01bc3390ff4f025622f59f4a21fa5ad76d18354734a4912d53d3d56bd80ba7cc9b3f32d96b9ef89d7fd627fd1f7f3ae2c42b8d4db48a12fcf27a6820779495a15b55a350378c4c7cc7dfe9adbd318a9959a722d50d22d18065a37ebedc673a63797fe182996327194bc023fe87adda945d5f142b63d7e20066ff3af171ddaf448b867dd2684d05ec22a1582de92e4f1bf08c69ea09e205eae16d69313aa60a987bc8eb3ae2fe0cec75fc67bd95c98e91e7085947453ab7a4e4ef8b0d593adb58372347a25c35f86298bcdf482309499359674b8463f34ec6fcb9b2eedbb9e189fc764287cd4cec68bde2cfcb556befcc0204cde044379bb85f5860a48b0f9d7e720774c7ee7f0374dec248b0c641b63b0faee54bcd074b4831f13c1e0b3d0c22b57d63d62a6b274fa37b1c96b27fbe4de1c74646bb6974f53fb7671025d51d175e90027bcba03d597c02e99e198a380edf8c6d56a81cca11efce3de08b69305e63e038e212fdea35180934233a384d08581ef2c297adbc6c09b928fad17d6784587ea978137f1db0cd8884cc027f1f9721d495894a2de652c40d2398ee9945c148d4e98523039eea6ebd8f7a59a6d7e4eefc69d4eafe8c424e0318217f20d50656bdd097c14c21fd1754d6d8582db1e4b6d172d2465997a55109783c6bc3d074dc73a5ad7eb70752e00bc5638fbcf2988c0821869be336945f0d3b5654cd607090b8839ad4a2a1e73aec9374768050a33c4a3b22c808b65d760bb3b9814bd67da31e86eca883242c0f7db8f5502792eed8444307c94bad791a003eb2e461dd31837b27a7c57444030a2dd41da1ffc297d07311fe822becec1b0b3a05b471d1859a1e37dce37c7934dbb53d76f91a7eb1183d0e51710e1b05d304cb175dae2c1cd818c4561853238c1393954045aab905385e5ffc7d2d04e4d408242250622c5fc95b3420c7dcab2080f9eb38380b5bb5e96deac405dc44931704bf86a7ea619ff99a3a04caa8c2a11ec05cd2af86cfad51417133b9edcc13fa0b69497ed027d953ea7dd7d7b07e181cde2237ed299cf4fb96dabf4ef218a7c10b9d9091edfd2e2b7f81f4c750f113dfc8d58dfbf3ef7344e251e98026f3e1260d6207c060fde760d978b27d6b7584ea8310a473b2ee2e7fcee24547875efe7a0a9e407e7ef4df41eefde885cd0f9c36c8813836538e27b04480b2719f60150d03152fdd5d0aee95a2e198d33b5855cce6596b80a895355d2752fc46304441ac00217fd94d9f72c7cc46dceed5bc02d2098d6376b40b991ac2e6c4a66d12093b00273db224873bf5c78abf00d15ee72ea9cb306cc0acaac751c679a941f1cb4f0a5622d2d1ffa6d04a4288b78688c37515d26797bcd38bb26977dc503f2460c40313217365299f786eae0916d0f45bfa71c5b493e3b33db6a3d148a1fcfad62c032be07b8c120173dabe65b34b53a7293cb2c2fddb487e6c5efcd283af070ea200a150a79ba6e78d1c430b4ce9ad6b7ee60c2e5213228f6c34fb862f000978820f7d81fce50383767a2782b57b316479846d73b65df0dd2e7f928e1b6500a51b0c92f8a4b4cf00ed9f3c636f34eb2c0c15eed717966e20b1ddd4a2748fd061b50f1a050b3e622db0f9608175922f911eae3658e0217b9980d37a2a3e5513122f0a6cfaa6f006ed0de105b2e01b404811c6a0a312a98e3f7448131f38a573a55306d1b08e17059a51ac3754574b384b4a3e887a09901cbf601343abb19e2dd55e0b18b595e6ee286a2b75b9678cd657acc7a97a76aa785832378d898757b480c702fea752014fcd94c8b1c263df27b7044bd68a5dc5d72120240de469ec6fcba8066f49831245eb2630699b7fe7c323f056ca3be7f08cff18e7948e2d3528064104c2dd743b5d82d2453fbe0b4b60bea247273d70392e4371a15be555e7ec3228014e800419d2bab85cbba0c19aa17f89f22bf37075e24be7c8e6d22063eea55f0e08e785aba5edca0bda72c90e40031c18ac6a5118dea585bc6cdece6fb9f1c807c18c0353979e1db4853bed48f9ee17e011c4642d2905ab9462ff8ec8e445ef09d92b7261583c6acee2b2856a5c1ecc77a17fef52b915bc549df4c0d89901830093764334181c8e14695e837c88dffacd9208af3d1a96dbebc618fe1f644e9f031c7bfb70de7a8cb9d2a2f96f1ff60c54dd071d15d0a1d3446b4b8e05adc27d090ba2ae982bfd598ab9e137cc77af6f25f8a7028ca0dc1e630106597029cbc3087c53534103a813ea6878222b0eb36a53909e726114c8d38f9c4479a784ed1205a831837d482e422dd3382d29c4df8bcb890e444731920361b7d4ef5a7ea8390b7e60d73824a063aaa4a6f5d66e9844d35eabae3d328c5508c4007af53347e20b7796026e1d926cab32dd540fbf2042d0a718133f9653f2899563c82bff1edd02906eb82c32647ae9801b591d6edb299169bd872146d537c42d1c3dc617fe9b02cbc0a2534fa1af48f6049a9dc2ef186e7503137a847003a48e7fd92da3224c002fa8015cdb5f5b3f4fa123bfd5d9cb2146bd6ec53e6b5423d2bc68cf55a33609428623de23756a627c73a3a139fafe314a9fa656ce37c5fdd3f1a0061f368001ec30623557e60dbc5e1a5af02447d683c4c29d3d13b3c4e872cec440894cc00d97fda53b617b99aa98fa11cd028855e4228fa3483c964a8504fc35dd07149b0ef1e69b83a86ca2ac9e13fb5fe60dc40b2a3f9dd28a5d40528da5b5cdcdea880579f1578e17aa5d569d0876be70f9b50a5823fe25916a1b58bc822cb63ceaf50ebe60fc31b1f66eb1a9249a4a3b56ca47b4aec90b00f72e61350bc1bdcdb26a02f23769c69157ceef36d93a486ba97d6fdc43905ea487b79cd8661663cc78950080a9269e32339932328825fcad1d38b3453d5e70044e17c59165de36d27b800708f9f689e8e8060ec53c2db2f4fed8045a16107ba69cdf073f48386d0028f909d3c963c50d73fd8d77b2c2121bdc753247f3d059b5f339f2f876fc692b41530c992177ca58fab13892cf7ec2a5c0b124b4b813c51ed454d57dc8d72fc2fdf2037cb80e92340ab80b778e4727ddf2f4264443fa70df6f53f27ee5584242938f08b13c7ed0d77f76969d1ffad74ea72642f4eef330a8d741e6db769db54f448700c38f237380ed439a5e6f5a606060fe1d7654475f755b1e897ca56ded4db68201a34993f3020c95f4686437b46cdb4c2b889b9ab37485b6b74c85aad5b7eb450935fa44eb2379c7bff5ef283561e0a599c0a95c254aa9dd99fc8c6707619112016c4ef4c0a67a3520ee39db31d6fecac6da3849fb93a6994a8871db42b41fec000ea55ac0245ab21c15d7066ec1265ae0b3005e93ce4cc12e78d81c8de24a7b0abd213b5156af44fd9b5737065a91913269c8b66080afde7c0bddd7455b78c8047816c3c3cc61ae7d8ba3de6cdc4315991c900f0c20b933233c857abc3fbede066f3c119e48da1d3850e2a0d1f16955be403c52d0c20b1bd6a066a9ef16a00f0599bf708e0cca36f73754654c64f2030f081dfdb1f4cdabc5921d677e595d930b417276e76eebff280ab8995e82087bb5f090ff9c6bf738e1aa4f2303978efd09364c69b289f36180f4fd98b3a72e5697b9d4965bafd40b3f040df70d934c550f15a1a7c7cef8d0a1354b192c4bc028d49446a64eb4c15fc88f4efd54bdd14d007490d8a6e5c3b964a21b3ffe0796deddebeaa5fd08a27d7de76c8253c887e10bf6eec0fe0be82fc1a984d0075a2127eca9ec10895e01cd2d91a950a9e5dcfb0890fe11a17f8a0189ec61fda540635c80146c6d7538cba436a9b1234a75a2f101a5891ed5d23a1a01c6825a6bca6a4ea6455ba8b5858c4458f2856ca2f766860ee07368d6d4ba9655d7058e4d1a1343dad25a6292d2100f52156476fa2a330c03cbb45d3da93ce69ded3963d2833c9b54fae3450084b7dbcce0775fae3bb48102652c005dc6f7f335ebcad3a64d96006a1720bd116bfe3262d77f08495bccf605265218c83a2f4fe5097e5467d7ffa7c77d99eeed7ccaa502146d0e7a8bb22f01759677ca90231cf18ee5fa685e6032b956afc75306154dc7018336e66626220e1d874d8eaa8542cd8b7bf0c8b658637211b947347fc2846d22d029fee52ca7054ec72a845048491e5cb39ab2297175d2a8f8a04c37a1a76181158859e3276d0b80d9fb0dd6a7c8b2a7b8c3ddd1041a1f310949af5ee9bff7f9a8d2fbfe03d602617e701eb517672ec5c337b32f7452c91b483ea64656968a8ef2f2a01c21a20bc63b8f899cb7bd89475571ca6669b45d75bf9b99b4edfb01082307e00c271909abece7b46044981e159237a901785f66d816a3d40b12561f87bc14d5f458630135030ede930d889ad9c9d2405c96e5fff91e6874692722b0cc237567c5a9f701f951cb813bfec760ef85fa37e80fddc2567520dc69c013a85be45c502bf71d0dc7035e3976be2a828419d16dc24e56dc852715feb54bbfe5cc17ce2bc3e4580c9649b23f854aea5b3214b1e0ac068dc40203ee83714034f44e8c661c4b340b0c12439533b1edf33aa6760526ebe2256fb7c39232dfafdcc6b27a32c9fa3255094ce64fcd1bbdf08153ecee4bc7ec80d38c12c04541da8670414afb837e4e530014163496ea2e26537169cbdb3a9748b8b859be5e0c05e22cef538123f119d8069b652919fc4f2e424e3f36856f60909d9ec6bdcd7ce240514b54ccbaa31d980cf1db2129c5798bac84ff1ddbdedf20ccc7cd045d83b5200f0ca71fc187829c0eaaba5092a6e44ea351fac4639d0b06761c6e237ae480e17f1fe564670073510a1dea04ece829d5810a27da0c752889d708e317914e8125614be1b86b91288309935a2fb047c314999266cec8ffc8e150c7af621c4fc29fdc171e3a8c1e830008df790c9ab6e9a38bc727a55e09a3b2b8338f3112fbd55cc6d0e99e3c4ed8c805e72c581dc442ca5b990a1194c991a0fd695965cd384df4aa6ae56e22013ec9086257546b5c0c80ccc6988c2823efe5c3df9f56e46c02d06ea005ec87d0a82d05aa865413ce72383cb97e53e839baebe772f853bbef1045ad61032d395d720c01d6b704a4934e76104b7e9e9f911cebd5b63f30240c94f8b845d510b238f7df07c2665726cab29244abd27e567bfce2210af456c1e7f4011b0afa721b9b7db4081aa85bb14b05c641efac96e95f0b8670615c7f5b51a89d9b5765602958194e02b4eeeccc9ada492bb18e004bcdaf540ad580c56c67cac9514134162327dba00ffb5f5c0e2aea231bc766ff775a338111cc4ff2d7cd8210a49a960ad1ab6d4201403f4459d2f4a1dd38a5eb8c12d3bdfd74f862c1a4a20b7f798adb5436c3080d5f0b60ccb0e0b8c707b6aab21354de2207b0b571a8bd0d0f83454ca88fc2fb0cda191d11afacc3b4c53a08f10f9f1b608cf87c936acc4d950d872684941ad70e2cebf598ad7da4e5abb9e0f8f2a0df9632584e5c152c7e7ca5899df49d72d70ed04a44760a5f6a95a7d9b4b463bbc769b5139c81e26e2ccb0e9aff0a65cd810db400d73e9fd5fd68e21484d76aed1cb1c2ea74e904f3daf968556522b7e556040a271dbb3c8be7bb7d4c8a182aba5917da53e599e63d998f3cbae48db434ca0047dd5668c13759e98aac326ba232eeedad039074e821e088ddb3d90cc330f102e945fe5fc390d99cc2447808c02a0942148601c301c2b2bae062764384b0090fe3ed8c22bc3a8f2338759d7262b5bb11261988693d0dd86bf74f68d3d5465c05b4e22e1dbcdf44d14dab07d630ed94d41f1eafd7afd939af89e2c80843f73a0bdf8e0d20eab3ef9de4368942800704a1306ebac3890019917724f3bd917ac8081f49407110f1550fd73806fa2cab1b1b94f4ddb458d358b4f3bdced21a64390f2461c1ddaba69f53de559680d491c9431456caebf89b65a94d5d4064accbff0cd5a9ef4a3a3ac583ebf6c328f3b34b0bff544ba710f8bfaf42dad1f8fe8df20b050071af8121d01b9dc2e8358d381c72ca1f82748c76351c6e9f26b6edb2b80ce144262fb0b9c37cda15cd44b7252f8c22a96f30a6b4ac1e40660e0d86b8de052af2ef97a86d42086db377358704218d13817b0908886ed51afd0b8a2198b90ddf675589d58f79ed381cabe6ab89f54d6c7491742fc44279f2b1167d71e2810d2662ff3b30b81a4c48edb1bc60e347ee049ad7880ab3baf335480a8b4224900674586552bd56af6b8a03efa8e3ee191301f856bcd7defb2a6ca1be5b685dd301588294d7f518c9331ffa921d08532dc9b4f31f4487715e1fada94f96408d2105f74c19c6183ae75b3511f8cb8b8736f0cb73da38823b1ca042e3ca795c1ca6091255a7c0415a02b36eabbe8a7fb294a8de62cb7c0cf027f527aa3bfccf92fbcafafeb804c69eff564dba1d2e50208c26c0318ded62d50f2d401baa0e8eae2af0749864721f41a4347a87524191e71cac9882c15a20551cf86c9e8c551f7f6cb12d1b98e9f3234c24b35a3821552dfb1af903756940d3c1c3d7d74981cec57f7316012933e7e97b5f4f215bc25d272a808e926803a5fb480c8fe3c56722b156a1c0081cb8282b97aac9e1bce78af155821e27cd69098801f0ac18e5a44a409baf649a4af5950850a677f5027ba4d99f84756f07b51f5a7584df60c27d9f54a63b72fe33abc1eaa0eda7abe0f4ef4e7c6d44f3525155754388788c6b2e1fe292237b27f877a4f0205a94dbf26cb529a85e789ab751ad487780b6c609ed58b123f0ae6d314c7e319cf02f51f42b1755471ef4c872f40a64523323a1af165a4e99f5c647bc2bd52867ed33c603dffa9a955769825f6820687aaba3ec880822d35bbeee95257dcdd3b5d530cd583f0dbe25fea5ed232657079c7f53f964430e19321f94154989ddcffdf969be9c8972e0d987473ec5cd581987d9f984c8e2144264a6a79ccafbc1f3844f4bc8f48729ed420a55155c6ee6bd0c32344c9eccf8c31f7959ec4fde9e3f2408e6904c750c115acfecd915b15d475728666d8fd2648d1c84dd7bffa162d952e57643ef58521f0d0a89c6510f52ea7e4fa03a44408dbfe3e02981f8ddb2c02f377e90b0a757ad7bc04073a3216d8605d8bdd8985f142bfe2b739380d1023f2f8540d1f5a88db456534830dbc137d2b17b738bc86825b793c8e8f5eb3452722a97a29b6f4e390263dfb04887effd805d92e1a3f6f950a8670a0684d2479d050077fa7464248fc50ae5d7ba8cc49c83ade9583e08f31626051b6a946f1baf9a86db3fdc637da0a3b52271c769ac16f447a13f1ca2772f999ea600ecc8db12fba453defa6d230b5ddc3950f0a67b7ea7e811cb77edf8c040719b1928a31ddd374956107616e71bbf80efc12487e5d07a30bec5ace04857f92aee02fb0b080b725c6a8183f17b4c2c3ce58be23115864516f18004f081f2823551dfa47121b5095b7a1243f746cbe323b2c6a8b5432b9bc93858a737f23b2181bdd6c5a0f9b56958bdb6cb3cd6b7de6fae0a48f51b10dd4cd521f0908d70070e55ba66d09706a5d2a2216f458c22e43a1d28831272c6198cfe216f39cbaafa785dac7eebbdd03e1b25998e9a242d763382df8ffbc2da141a886979823e6f0aef1caf68065a8c0f0b8a31c40dde8d8474493caf6e5fcf5256372f833040d8982227640832a5153b1ebad8ac31218305b7bb9a8c60ef5d7dd99da0d2407d3d4e94d71dec6634710d47f7221cd43b573a6dea97445ab5e682b924c8c2b53b64b749963b70b0c28deae280bb0ed788b82b334b3a322603588952e635fde46d8203ec786e1d7003c80e4d48600752a6b4f17b2838362331b833e58844f5a0b930b4a9e47d3f27e75bb4b25d16efc4032e38128a1c27b211502883bcd9ce76e2d408681e897a969fd2b5dd7a99f1a5697cc3272804db3dda88bbcfd42881ff2fb35db3b959c373d0b724d506f6a09227f0a0a03047fe87cb6f383588d5b2efaec03c6462f587d2c5d464aacb83affcf1b920d55d7ad20f66eff6519fda44b6dfabeb1dac1a42ed82ca05c7437b0149c2a9342273b8bef9a8bb752340358a6026fe65ba35abd7274f9fd15cbf6c216d677ae3f2e79590ba380425fd456a2a449c1e6a75c011f7f4a5e2bd3af1ebeb8f8e604bd856901088270ebc66ece4620a817436acc735067856326676d21259090f7c5b94efc0aaae27ec85935638a51bb03f654542ba449ea418d0561f5544d4ca935213f93531e32da144852e01ea175595a3eee0dbe9668e11a2b3c16ec757dc5544bf805d4e8581b6a6c503445b2280552f27feef5f3b9a00affb99d41c29bcfb4739d5eede1ea39050a10ca38d7baf6b8d92eb2083a64b1834786587c3d7bd6c487168971529ceb4c247a65c696462c8565f1d1a294d9db7354c79270fdef5727ad75bcee051cf6d97a6765ae93165062fcb02789382a9b25c1241a27f5be3cf5a097e0296340bc7886dde6f61fcaa6e564d0e459dc0f2ddd2fd1a1d9c28e6c60d9cf8245f29a8370f2b50e35cc4a028cd97b31b4156277c7a07ba39925d87fb49c8e339726a9cee55e1d352cbde8a8321bfb2418a01dad5bac2bc750af2e69693fb3409e3e37aa5d03c51f1b6d80a18b6346d56e8d5df8b44e548e8f84f3a5a084b1bf9f18d20aa8fd7544acc3307a3cf8d125ec428d794381a1ddd75215d859850121cd17142fef4c5bbba3aa4133ebba4e2b882e1195b72cd35c830fcbc4329b0706409a11373d38783e4b6ff84299c209b2f3c8dc0bb96a19eff62d01659c67cd3b89c03433fe712c7845a482b224896fd934b5ab32388cc12bc28962a329051917fcd69a94aad1218b7af6bf585704ed7f666a22a836eff92995c318592443633f1d503ccc0bfb5439fa8f2865bd1523dbaa325c1bee60d7ebde407382919f13a7c3f7ebcbc52c79db3102160f88b4383f352a8818d9332ab790982611122fde600b95496f032cea27c87000f297f57f623836617ca19d44d8b5c22e072ca1a046aaba260f05626a46ed23ba5321098ea649186617e2eb69b3b0252eec1a5c5e49e86d9d0ef6a94b577a32b90fdfb6f0b9df67191140afc15a95f52a0d12df9afffd6c5546675eb26048d8901b901060760a22514857305cc13e3d22228d87d2aed8e71c4733c923ac6de8400b3bdc36180e5fd13d1a724f41cfbf8c7a95074cf85246d81ee2ada4bb1835262c5430062911bd485e48df3d1044d90f7184e76bc2b1f1f3ff7d7038844f6a8eb2b6d7f66d7728daa05d2306d05da7a1c62ec5ceac775d02aa67325c892b7e3f0d3569f013a1bdaa72e8afd0e8a35bee390f4c2c6c2ea738edfa1914529a7a3801aedca05cd45cfff6f93c1aa7fbd574e47687baaa8e9ff60cd18adde8764d059869f030827f307ddcdd69e5f7043cac0452c37aa4a56de6a2cd47e991c3953bbb748580c5483f7e958f07a4d6aa8bee4cb4d96ca9d9a42816866ec35724c434e21bcba05910cd00cc8e27cc6582202119b7bf2a6ad2b2b2940e88b9ca4b38571d1f4840c05f9a9b5453bf5891764df9617277b0034c2186ca2df2e1d7bea2eeba9b5e00ee483406ba6ac6a0a521d86720940d9cb2cb039cba4e2c57d28465899929c8603d2ced41f8327f09ccc4fcfe37efe073f4f04210a2655dbab840358c68640600a3602a29e5ce2cafcf014b6985198fc6f042808143e107ff9a757fb1b34c7850b33e7cd524d2095fd46eab557f7b2520e8241c04950d2b965400531addeaec60057515543e93e7df611f5db0e808ddcbe3ac4e81ec194b16fa26040159328ec02dd88e54b5c22f7e29e1c299107ced0e9b905715e6a627ee2a94a6228fccacc0b5ce31b70d6dd58ef12577945d789d10901ec789aeec4844737b49098e149c008",
},
}
for _, test := range tests {
serializedTx, _ := hex.DecodeString(test.txHex)
buffer := new(bytes.Buffer)
buffer.Write(serializedTx)
transaction, err := ParseTransaction(buffer)
if err != nil {
t.Errorf("%s: error parsing tx: %s", test.name, err)
}
wantHash := HexToHash(test.hashHex)
gotHash := transaction.GetHash()
if wantHash != gotHash {
t.Errorf("%s: want %x, got %x", test.name, wantHash, gotHash)
}
gotHash = transaction.PrefixHash()
wantHash = HexToHash(test.prefixHashHex)
if wantHash != gotHash {
t.Errorf("%s: want %x, got %x", test.name, wantHash, gotHash)
}
if test.version != transaction.version {
t.Errorf("%s: version: want %d, got %d", test.name, test.version, transaction.version)
}
wantUnlockTime := uint64(0)
if wantUnlockTime != transaction.unlockTime {
t.Errorf("%s: unlock: want %d, got %d", test.name, wantUnlockTime, transaction.unlockTime)
}
gotSum := transaction.OutputSum()
if test.outputSum != gotSum {
t.Errorf("%s: output sum: want %d, got %d", test.name, test.outputSum, gotSum)
}
wantLen := len(test.inputKeyImages)
gotLen := len(transaction.vin)
if wantLen != gotLen {
t.Errorf("%s: input len: want %d, got %d", test.name, wantLen, gotLen)
}
var gotInputSum uint64
for i, keyImage := range test.inputKeyImages {
wantImage, _ := hex.DecodeString(keyImage)
txIn, ok := transaction.vin[i].(*txInToKey)
if !ok {
t.Errorf("%s: input %d: not txInToKey", test.name, i)
continue
}
gotImage := txIn.keyImage[:]
if bytes.Compare(wantImage, gotImage) != 0 {
t.Errorf("%s: input key image %d: want %x, got %x", test.name, i, wantImage, gotImage)
}
gotInputSum += txIn.amount
}
if test.inputSum != gotInputSum {
t.Errorf("%s: input sum: want %d, got %d", test.name, test.inputSum, gotInputSum)
}
wantLen = len(test.outputKeys)
gotLen = len(transaction.vout)
if wantLen != gotLen {
t.Errorf("%s: output len: want %d, got %d", test.name, wantLen, gotLen)
}
for i, outputKey := range test.outputKeys {
wantKey, _ := hex.DecodeString(outputKey)
txOut := transaction.vout[i]
gotKey := txOut.key[:]
if bytes.Compare(wantKey, gotKey) != 0 {
t.Errorf("%s: output key %d: want %x, got %x", test.name, i, wantKey, gotKey)
}
}
wantLen = test.lenSigs
gotLen = len(transaction.signatures)
if wantLen != gotLen {
t.Errorf("%s: signature len: want %d, got %d", test.name, wantLen, gotLen)
}
for i, mixins := range transaction.signatures {
wantLen = test.mixinLength
gotLen = len(mixins)
if wantLen != gotLen {
t.Errorf("%s: mixin len for %d: want %d, got %d", test.name, i, wantLen, gotLen)
}
}
gotSerialized := transaction.Serialize()
wantSerialized := serializedTx
if bytes.Compare(wantSerialized, gotSerialized) != 0 {
t.Errorf("%s: serialized: want %x, got %x", test.name, wantSerialized, gotSerialized)
}
}
}