diff --git a/atc/atccmd/command.go b/atc/atccmd/command.go index 58564ec8faa..30fca97b5f0 100644 --- a/atc/atccmd/command.go +++ b/atc/atccmd/command.go @@ -1745,7 +1745,6 @@ func (cmd *RunCommand) constructAuthHandler( Expiration: cmd.Auth.AuthFlags.Expiration, IssuerURL: issuerURL.String(), RedirectURL: redirectURL.String(), - WebHostURL: "/sky/issuer", SigningKey: cmd.Auth.AuthFlags.SigningKey.PrivateKey, Storage: storage, }) diff --git a/atc/creds/kubernetes/kubernetes_test.go b/atc/creds/kubernetes/kubernetes_test.go index 61f87c3799d..32bc1e205b7 100644 --- a/atc/creds/kubernetes/kubernetes_test.go +++ b/atc/creds/kubernetes/kubernetes_test.go @@ -1,6 +1,8 @@ package kubernetes_test import ( + "context" + "code.cloudfoundry.org/lager/lagertest" "github.com/concourse/concourse/atc" "github.com/concourse/concourse/atc/creds" @@ -76,14 +78,14 @@ var _ = Describe("Kubernetes", func() { Entry("team-scoped vars with a value field", Example{ Setup: func() { - fakeClientset.CoreV1().Secrets("prefix-some-team").Create(&v1.Secret{ + fakeClientset.CoreV1().Secrets("prefix-some-team").Create(context.TODO(), &v1.Secret{ ObjectMeta: metav1.ObjectMeta{ Name: secretName, }, Data: map[string][]byte{ "value": []byte("some-value"), }, - }) + }, metav1.CreateOptions{}) }, Template: "((" + secretName + "))", @@ -92,14 +94,14 @@ var _ = Describe("Kubernetes", func() { Entry("pipeline-scoped vars with a value field", Example{ Setup: func() { - fakeClientset.CoreV1().Secrets("prefix-some-team").Create(&v1.Secret{ + fakeClientset.CoreV1().Secrets("prefix-some-team").Create(context.TODO(), &v1.Secret{ ObjectMeta: metav1.ObjectMeta{ Name: "some-pipeline." + secretName, }, Data: map[string][]byte{ "value": []byte("some-value"), }, - }) + }, metav1.CreateOptions{}) }, Template: "((" + secretName + "))", @@ -108,14 +110,14 @@ var _ = Describe("Kubernetes", func() { Entry("pipeline-scoped vars with arbitrary fields", Example{ Setup: func() { - fakeClientset.CoreV1().Secrets("prefix-some-team").Create(&v1.Secret{ + fakeClientset.CoreV1().Secrets("prefix-some-team").Create(context.TODO(), &v1.Secret{ ObjectMeta: metav1.ObjectMeta{ Name: "some-pipeline." + secretName, }, Data: map[string][]byte{ "some-field": []byte("some-field-value"), }, - }) + }, metav1.CreateOptions{}) }, Template: atc.Source{ @@ -130,14 +132,14 @@ var _ = Describe("Kubernetes", func() { Entry("pipeline-scoped vars with arbitrary fields accessed via template", Example{ Setup: func() { - fakeClientset.CoreV1().Secrets("prefix-some-team").Create(&v1.Secret{ + fakeClientset.CoreV1().Secrets("prefix-some-team").Create(context.TODO(), &v1.Secret{ ObjectMeta: metav1.ObjectMeta{ Name: "some-pipeline." + secretName, }, Data: map[string][]byte{ "some-field": []byte("some-field-value"), }, - }) + }, metav1.CreateOptions{}) }, Template: "((" + secretName + ".some-field))", diff --git a/atc/creds/kubernetes/secrets.go b/atc/creds/kubernetes/secrets.go index ea6bbde1332..f0f8e71740b 100644 --- a/atc/creds/kubernetes/secrets.go +++ b/atc/creds/kubernetes/secrets.go @@ -1,6 +1,7 @@ package kubernetes import ( + "context" "fmt" "strings" "time" @@ -84,7 +85,7 @@ func (secrets Secrets) findSecret(namespace, name string) (*v1.Secret, bool, err var secret *v1.Secret var err error - secret, err = secrets.client.CoreV1().Secrets(namespace).Get(name, metav1.GetOptions{}) + secret, err = secrets.client.CoreV1().Secrets(namespace).Get(context.TODO(), name, metav1.GetOptions{}) if err != nil && k8serr.IsNotFound(err) { return nil, false, nil diff --git a/cmd/concourse/main.go b/cmd/concourse/main.go index 6c32e839a89..b511aaba5fe 100644 --- a/cmd/concourse/main.go +++ b/cmd/concourse/main.go @@ -1,5 +1,3 @@ -//go:generate go run github.com/markbates/pkger/cmd/pkger -o ./cmd/concourse - package main import ( diff --git a/cmd/concourse/pkged.go b/cmd/concourse/pkged.go deleted file mode 100644 index 70bb9dabba7..00000000000 --- a/cmd/concourse/pkged.go +++ /dev/null @@ -1,12 +0,0 @@ -// Code generated by pkger; DO NOT EDIT. - -// +build !skippkger - -package main - -import ( - "github.com/markbates/pkger" - "github.com/markbates/pkger/pkging/mem" -) - -var _ = pkger.Apply(mem.UnmarshalEmbed([]byte(`1f8b08000000000000ffecbd6d73eabab227fe55fe95b7ec7b208404b2defd24cbb60003020c98a9a953c480787612430499badffd5f7a80386bedbdcfb9f7eeb9333575f6a9b37ab5f5b3d4dd6ab55a0f66fdafbbf56199e5773ffed79d5c1f57a797bfa5d9be9c6687343bbde78bafbf6984b77ebffb71575e65fb45f9637dcccaf97b5a40fc76c7f7afd9fbb1373baeee7efca3fa7ebbebccf68bbb1f77c5475e96defdb8bbfbed6e387b978ba3fd7b3fcb8e7fde6e343ba6abbb1fffe3ee6f77fff3b7bbc171b65bdcfd38be9f168ee92f667976b8fb71f7725aefe6ff1ff7febffd3adf9b977ebb0b327fbd5be4faf58fc57bbece0ef9df64a62bb2eae4773f0ea7ddeeb73b6ff17afbfb70911f6f2f7e3dfae98d289b9f76c674ffac4da2d9fa7015fd1f9a3bc8a26cfe2790b2ccfeb6cfe60639b2aaddfdb8bbffdbfdc3ddbffffbbfff76b7b4e2ffa3aeff51ceb797fdec3d5fcd7665b578d16f68afd174be38ced63b53c9c176a706fc7697af3f17773f6a95e7a7dfeef6d97c71f7a37a5fabd71ab5fbdabd79f2f7e3dac0ab956ae5df2af57f7ba80c2bcf3faa4f3feeeb7f6bd46a8ff7b5e77fabd47e542a77bfddadf3bfcfb52dac59f28b69ce5b7cdcfda8569e6abfddf14376f7e3fefea9fe50fdedaeb35b1fb6773f1e8df517773fee9f1af5fa6f77f17a7ef7e3be52a9fc76177cfd75f2f7bfbfcee695bb1f95dfeefa735d63e5b7bb414176b2dbe6dfd82cdde6773f1abfdde1b8de6b39068b5437727f5f7fba6f549f7fbbebe4fa49bd62fffbf7dfeea26fc8c7e7a7fbfbc7472d93453a6d0d94fef3d0c9dfff7e3a9cf2c5fceec7ffa8fc56f9adf23f4d9fae16efff1aaaff8f0dd5dfee5e8d4cffebaeb795ff81eefa79dcfefb6f77f3d9717655f975f6be381cbfaafd7ad1b4f91f0b0ae5fc383baed33f8f0d0ef37f2c3c3cdcc243ed5fe1e15fe1e15fe1e1f746f07f4394282fb3c331fff3586121ffc74245ed162aaaff0a15ff0a15ff0a157f3c8cffdb0246991fd2ec9067bbd971f66f24dbcdff763c2eff3c8afcee1bd7a0725f797eae35ae61a556adfca7e3c972b6cbff414079bc0594fb6b407978b86f34fe1301e52af71f8494eafdd3ef05954aa5fef8701dffcfd5a7e7c7c6ffa541a53c3ba6e574fd736c29448ff53f081b5fe1c1faa48b0eae9bbe87876234b0e87f8580ff6008f8fd81798b0b7700038001044000d9f73bcdbed28f1830bbafe8bf513667fd38794d697e0440dafa61d80f63f63c7c0cd5a9a4f1330d1c24fdfbce481cf65e5ae5004d6a007a4fdbe761fbb35919bcc50300d5a67e3f209b97b1af2efc98cc24d0c904805c260fd30a0fc1683301a60da9a1fb60aaa6d5fbea347c7e0282e50980d79f1e9249e72a29399c0d944fabe7c7e901432fcc00166c01f6b60b56bb642cf8ac31dd017eded5486f9acd82d18a82b1b2027909f5436c67c17d65d1c6e7769e01e34b0c205a06e78fa41a44abe7b80af88fda62644b8ec964a54818753b1264796fde972f7bff384ddf1b7e2a81c9b3962f183c908ff4a1ef5d36fd3610f81ffae1e8acd2fd487587d3ee8b0279ef184b6f5c7f44b0ff55000e22c130978008a7d072c9f005f31a209a43e41920da6de84a5534c0b902285020a317d5ee019c56d01640442ba23dd37c55b55f34ff80f61260b426da6b4d1f45fba4cbebaafda1cb1b682b807b4c46732d87f61120c311611568b2fef61c038f7932e99f4094f61f6dd872d9b40f50a9e55f91f13696f01e3d3112126ce5c53b21e137db629449f8e7ceb0a22482e96058a948842436b8f0358eb7b9041740af5c76edb7bfeae7f00094cb0d40eabf566e380274bf70313c75c30546c82b4ea1ff859360f2866b8244f083fb55bacfb1d85b2a1d5d3bba7574ef68e6e89ba3b9a32747d5fefefd659ce3e2e8bda33547eb8e962c25c451e668e868cbd18e7579fd8735bd74a301d6feb6bffeba72629e479afafff7f1093c8931480d4d8913bcc429c5f46062569f660348f46312b63210a97563f30008a0476aff1940424d793503065e858b4cd713a1c31109100cf4b863158091ae04818e10c20f80889cb548b1d2fc40978f353f32f827cd4f353fd6e3959d343fd1ef4ff4b80d5bba4d23643fd132a59ae7ba3ffa46870ce0e44382e245d7e757f5fb4b5d5fa2c745c035bfd1f54d85e6679a9f9bfa13cd4b2d5f45e3679af7932ff9745c0972cde71affa2ebf3df341f1b5ededacb60eba78209f413b284df405f112efd06268a30b0b1a64b2def5090b6644f8841faae7c087f60cbfd04a39a7d7f2cc8cc95a7f0abb61ca4bc34a19d94a5b074e1f875ee9ec351ee7d182a2d5d397e537134b77499399ca32b38ded1a572d4d5b388aee5ac6ceb7534b774bdb574d3b0540a4b97caf1d2d2ad9367b575f5a9ab1cd7f7e856809493867dae1cfeded687f5d6baba6b4ff363c7fb9a4aa0aee97bca526178ef5ef75b5559eaec04a7079c5de1e4c4523adeca8b556af955eaca6bee7dc7dbff4898abc58319770af71217800ff48ccfd609b0e2b9e62309cab453925655f33dcd6f05b06ab6341f1bbcd2fc58f313c343f342f3890463ef4ab7d630398a0498947a64740136d05ecdb43e84c74034c8018fbd9bf7f57819bce8f60ea6bd27cd4b5d7fa6e56b459a9f697e2f353f00c44069fcabbcc93730f266ba7ca1f9578d7f33f5a59aef1b3ebbb5b795a67e722261894931a0abdd2c18657ded3b6c85e978b59bb1656d40081f07a36c3a5e595c480c6ec00d2e29e2b222ae5dac6f238ab8a7224e14ebdb64055c3328e286a450df8e17714911375915ea93dfeadb1671b3a27c87a2becd6a11f7cd2e0755c0b56811b7b4f2d9f24c5e71d3f1aad5b5cf5bb1966befe4db9102ee55dba7251d6e5fc4bdae7ec1e5c5fa72873be9fa7231f8d0b8778d6fb7d8bb6ebf2d74f999b44a9adeaf0ab8656df0405ab39b1e473558dfecdc4ed9e9cbce0fe42a5f3bd3b8daaa807b53055cfb64717cad71efc5fa3e4411f754687788224e25055c1415e5cb6ffddb4ed96b56c40d8af505c5faceb5226e5bc4b58a7a7ca2a86fd12ec3ce0da7fbc3d5f7a9f5ee383f881ac1281b0e6cbbc39eee8fca375c6c711d532e56055c1545dcfedaaed673b332fd766dd7f65b5519bfb2fd6b70c3d4e206bc885bd6860b72f5bfb0c41ee47079d3a35363b55b7f0c17a47329e2d645dc230ab8eeb8883bdcc66fa776b38bc5ad8bb83752a8efe91bae52c00d36c576ebae7f1bbafd9e8b073d687d3f9d9d2babc2b873e38d3dcbe183b3cb72d54bd873ed6abf6195f416ac247ec60d361677b59fc365bf83bbea5bf0836fe3fcda6ec15fcace7eaedd22eecb7e3fd7d77371a8f75668d7d567c79b0f1e5322b41fc43e11d4878c8355abe413116325b84f31f85889d8e1f6455c9b585c64704911572be27ac5fa9828e0faad222e26059c5facaf9f3adc45e3bc627d012fe2b2627ddf7024b338ef577d936ff5c9627da7226e5e942fcc0ab8018ab855b13eae8a76e9fe43f97ea7dd6d11d72cca375858dc37bffa1e5ffe0b7eb5fe433fed9e7ec7afe257f285f35bbabe4ec9e2063a5ec66f459c6bd7e206cae1aabfd4f760e70fbfad0af299faae7e1fab827c7ea4f1ddd4e2bed9f96a97f842beece247f2a66f830cb96eff891470ce2e16c7d7563e831b3e7daf2ffeb4f2c5f7242cf951cdd8d9efe876875d1b2787b1c5993879c3ad8b38132787315bf35feacb8ab82769707e278b6b64a8e37d5c27c399df45dcd0b8ae8a4b6428fdae9e0787b9c3950ab8112116575d0da52f3283b3f2c5a2d8ee7bb1dd7a518f785cc0997ebbe14c7cb9e27a8d026ea4f33f8bfbd9afe275c1ff462df2e5a7fee01bae52c4757fc7effd18057f19a1e0f72351f42b83eb8a22cef9d5a8ff4b7dd7f9c8e2dc7c64ebab8b02cee8ab713aef183ebb7675fee98faeed6afb8c92026ee4f2ced1d48c0f9bbff8e362ff86257f82d1fca6ef48f9935bde344ac9f8964f6adcfa362f8c949ff0228e17719b627d5351c4cd8ab8ac58df342be2f645dc57be3652fecbb7766b45dcc7aa50df2429e026ac88bb14e59ba3881b1771dfec322fda65b22ee29e0a79b6bfa815f2e249a5103746251b374c9eed2f450197a0903f8f4921cfbee1de925f701ef9cadbfd152ff873b2f05772dcb4717c1cae92c45f0b1377fd556d1c90646bf3882b2e79f33718bb7c72dc5a25cadfb8f97c9d8d2332757e60712e9f1c0f356ecb8bb8b8881bbbfa1292287f278ab87d11f7420aed1ebed5572be29645f90e6e1ced318e48522de256c5fab2ac50df4c1471bb627daf457d67eb22ee9b5ddeecbac77fab8d8f64e4da9de975c358b9764fba3c77f3d1bb2e7f098ab8cf22eec88bb8a4887b28c421ff948d1f6ff3cccb9b7f32f3a15e778d9f562fdb1bee0316b7e6055c58f23f9271f9368e5eaafeea16ffc6cfab6471f3e78f6482d51fe1525ec08dc3224e15712f8deb7aebcfdb4de362bb41b1be0b7ea73e8b6bbaf1a1c79d7f71e3f2a4fb25bd5cd783c1289b748bf1feb356c84bd25221de4ffa45dc3d2683d57c6ced3c4ffd4a3619395c4ce62dff3e196afbde70c6ce736171267fb9e26c7d577d0dee6ae7c4e0929b5fed667e555efd4fd7e7f2a179e517dc4376f57b5deefc74815f70b55bfc9b6cc862a0e5dbeb785f5393c36adef21f65bfbc5a44fe93980c568bc4e1de8ab89c18dc801b5c56c4558bb80f52a8afc10bb8252fe23e8bed3e17db5dc616c7d71ab7fd862bb6bb94c5fabee11e6b16b7e6bfe85b2de24a28d6b72fe2ea453dcadff4a81571e5427d01bed9cfb56be7ddfacd9f75bb4901275b85fa12566837200ef76dfe903aff4cb8ad2f31fb5dd4fa4b40b4ff4be72fb2f20bceb3fe1230ed2f725dacafef70661f8bf2627debeb7c56d0c3f23ebf3e9f8e57aba4804b5cbe914c0bf3a1c3bdb9fc7ef0fdf96e1684703429e2755c4d525b4f62f6b1b84ce46add0d422ddf9a079c279bd54ac785644dd634e0b56457c435b35f7099c3e979f5866b15eb5b5f82b6b471ad5d4bf2d5ba1644ba1fd6a5a0cd931349f53c987c585c7229e07c250b3813af928fd546fc525f2729d6173b5c1a74b9cd37ba3279209bb5cdc33659d0ad25b5959967922762716752c0a599c57554525b6d2a1667e52b15e53b67c57665418fa9d9e7bae24cbcbae2b64111e71570419f1b9c8d93dba4104f0bf3c26e66ed779db736ad22ae5c88bbd62e5ff98bc56d1785b8360d0b7132e89b76b745dca288737132186485386970d3887ce1826152acaf51ac6f55d4232ee6573b5ed0231993dfc19978bf7379d3ae1b74f97464fbcdc57b8b03c2e7b23912084bf670207cae3bbea52c85e399a390dd86a6149632c7f784a55d65e873e98a7394393c2c7d2e3b5a72b4a6aee54357afa581b2b4252ced399e58dc73d9e1a9a3c2b51738793c5ce5b8bed7eaebf736b6bdb2d3a73c32ef337b760ae6cd2ca590eeb94c22471f35ed8979d3f0bdc747731e8825d3f4512e869ad6e53cd3f524984cec7bd3b5a58b9ae34d3d44a467cbcf847b3ed6ef57c52cd4b48c59e6caafed1f1cefbbfa469ab68493cfe9d112567e6b3753fe6ae8f2b1aee55a292b572493a995d7e98b6659f3cad85953f31ea97f583deb1f4fb97e9f495057efa3b343ddf256cf96b07ab684d5b30dab674b583d5bc2e84901a327e5caead91256cf96b07ab644fa60718b8b2b377a874e3f6ee5a45c5939b895d793c2ea172eaba96ddfe8a9cb0f4e5efddc9b488bab8aabfe573b3abde0fa055779e77b4da9b076bb57b69f4ad2f51366d7f75d3f4db5de646d6fbbd08595d7ab5af948bd67e423d4d9fd68fc55cb67e546cfd85bd767facfbff9a9b50371fd3690880d6fcbbd2906a9e5ad3ec4eae3254e5f02db4fc4f62b25b0fd45e0fc52d9fe224e7fe2f42758104d3d3137fe5e75fa979dfee42a17660e3fbbb67fb0d4f427a92adb9f04d67f09964bfdbc61c70d656efc5191be5a3a0fcc73e767ccd987b9f1f72c8dfda8b076f08ed60ee4ded9bdab4860796b9f91bc961bfb90fbb2ade75d5a7d2ac2e8a3fbd777f676fd6ff587939bbaf8406d7cf0666ebc53378e6b761cd3c0f957b0b4f6e68ef75dfff8ae7f43e1fcd4e2c8c5c9efc627a95bff2075c4754b874d4b679ea52f66bc3630eb6879fa18b4edf3f19ba593832b7fb2fc34b374245c7de6bec0418d9b369e8daee5912b3fb8fa94a5e9878d1ff1d9c6c5d8c501e7c7aa35b4fcf5f9b06fc7a7914bf3557b7f69e059bb9af7bcb3b2effbce0f66b0fecddcf860567fcaacfe9af60ddefa8737b37a5366f5d6cf1f2d6ff4a7bed59f32ab3f65567f5d4fd5c63da33fa5567f5d1eb9f2837b6f6f71b38ae1adfea461e5257b74adddecf825356b0f5273fa77adfeda3f1cb5edd684b56fa0fadaae68c891893731a6c6ef8eb7386ded06a73f9cfcc0f4dec6a3918b47a3ebbce0e2516cec3857f6fdb9b5b3f7a98c3ca809d31e9ea5eb3f844b578f7eeeddabebf369d5daf1da4fb63ffc5b3fd8f1e93b397d17c77ce727a9c0a795c7beff28ba43275fdd52a3973796b61f216d3f42dafe23d2f61fe4d4cd8f4e7fe9ec22939589a7c2fa711923179f6237df8e1dced9475eed63fbf5286cbf12cc948b7fef8e1abda6ae1f62277fece48ea5d57ffa61f58f9d5c53176763d7ded4cea3b4274c7fe938d27771c48e8bb2f5e3d8e94f9d5f967bd77aac9fbdcb6662c7e1e062e572f27cd838195b39f4b8cfdd73fbbe6d9f281b5f3c777fcc5bddfad7e8e38d5dfc502e3ee62e2eac5cfc9adfdeb7febd7271ebacac9f01cece30fda179e5faf99af728db3fd60fdbb65eefc5b6ebb56ff5d9f1e839bff69d3f53a72fb5f6271337fed6560f77e585f9b11c0d34ef017b20b1972101b4b5de9e69f449ffd1ba5e4a95c8e17174811298c040fe07ee352d3f4b0ba1f961e9dde03e9f0f06f7515a285b3e3178cf9493aef23d090228bc4a2d1f50d575d9cbae863779798f6bde5cea316d092d0733223f7edd371bdfde17d9f7fb6803fd073b69de5c591dea727b1daf6fcacd9dbab5e687fae9c8f0e6caac591f98f67c6d3c32d1f851edd69e91672cbebf1f03a1f2043a091ee0add195a84baf825ea6635900a108932c41bf469a606f188274246b20e66400bf8b912063e94b8c13f202ff8289244b19b0ff17d621364e19bca6cf6713a7b4fcda8fb5fc7adc84653bfecd7b7d2bffb069e5d3e3282cf9269e99f60f9a36ccf8d0f5ebb8a3713ade68bd666dcbebbc44eba3f30c8dd7f989d64be7215a2f9de784659b27ea7a755ea2dfd3f9a3a63a1fd2725bda8719e7a42e46bec997c4751eb0e39b61e2c66b62e2498068edc6e1cc5d958ef51f817437572522100e2cab3dd415b06c504b9f63d2538068b5f021018108ad044dfd9e091ad48c5f332223eda29ea9bca2cbcd655b6f61c609ae37b4bd37fda799afcdfb9eb9acf7aca1ba1dbb16246641288c9f6b3989917360de37af9af5f3c0dcfb3441e0c1b457bbb64722cd0fcdb8abddda33f2b0d24fefcfb4f46f92bea10d1c256d20e2b8c0eba22350959e4437019635678f1a7774e0e8b3a3754b1f9e1cdf7254380a57de70b4e6e8e65a6eecbcac0d1c7d71f4d5d1b2a3ccd28786e3b9a58f57f9a68e4657391c4e902cb2f4b4d5744eb28ac1119d726bba486dbdef997d6f2f1de556bebab4ed1dccfb21f964f61e799ed307dd7527461bc00867ee85023bed6f543487d8093a12cd04bb9c26a2b9c15ed0a9bd8f4e2faaaddfb4f7e569a2eb4bb593994f0b480d4d8529e8162d810d680ea1b0d52e91483c23109882bc2048309524d5cefc02324750c38b246b5dc9016483660d0749859e647245fb68c7048aee2062e229af823e272de9953150a42d58a2e3e148b019462919291f186dc958f804a39c24d2a7180b2285df42129195f233245bb216fe1189225be19f308dc84ef8154c5392c17fc08c937b1510cc2be441040fe67eb86ca7386aaf6caf70e2ee5e76ecbe3f80fbee2076df1734ec7705646bed44327bdf3ecfe9a7b6de91d1aa848f53acd72b3d7c40f7c3141f9c362466509107851728e9512085ca3c2a31c799794c6061265ed51638e6b46e3e4930df3b7cd8ef07dcf711ee1e2b9541850a056cfbc1d017f0f6e7d53ca8a1739df4cd7702353ba5138150228397a10fd2852f914892234c20415b7afea7cc9ff507dac41d32d2abbb6d67a0e9617b24e335a0b6f7bd21051e77cdde700042777d8d23ed5d7f30b880c4eefb033b8fe7f00596da5fba8af860e6aaf406410573450978eee46bb87897680ddf74bed10309f4943c9664abfd67014ac1d5175ea10392820bbceb10d7132484cf30566487a08185a01e78e58637df5310096ef219819e241c3ec70464affd72212903af7de1851661ab9b3cc28bd153a4093fc2449003428685a23e78e30b2f21b41f3461efed0b9096567e224986906b2304baf08657ba0b7234053ee0a51082b4e1c79828f28a30c252d0104d76c3531d6d89d2715e69e30a49229d8224206f080596927234f9175ee85153d1e3f5ac43ba50a4033f4522c83bc2184b459b6846d805feea2514de626fa97474ede8d6d1bda399a36f8ee68e9e1c55fbce2aadc6dec5d14a60e9bde31f1c5f73fc93e3eb8e7f767cc9f20c4167f332d10b494b3d4703f79c3bda723472b4eba87074e0681cf44f2fd50a1b3b3ad95b3a75fcccf1a9e3e78e5f3a5e3a7eedf8cd7e7a49c611db05961e1cffe6f8dcf11f8e3f3bbee2f8aae31f1d5fdf9f3f92aa62a5c0d2b2e57d62799f3a9e39de777ce878be7fbc7f9970bf1558da767cc7f15dc70bc7f71d3f747cecf8b1e327fbe7cb34a8f9d3c0d21747e78e2e1d5d39ba7174e7e8c1d15747dfc38ef613ffe8e8e960a972fcd9f19f8eaf38beeaf807c73f3afee9d0f98c3ce637424b9f1d5fb67c00cb07d4f19ee37dc7078ee78e6f1a9e07edd0d2c8f15dc7f71cdf77fcc0f1b1e3478e9f383e317c14cc424b5f1c3f77fcc2f1d2f12bc76f1cbf75fcdef18743e73e3944c16b68e99be373c71f1dffe178e5f88be33f1d7feff8eaa1739f8651500b2d7d747cddf10dc7971c5fb67c482c1f52c733c7fb87d75dba6f84616829777ccbf16dc7771cdf75bc707cdff143c7c7ffcddf874160fc975269bfefd239956947b979f9eb3975cfad1ce63bc0ff6c397395ff5534324b7e10273f61601266490b337f7130f5bf1d479c72c42d914c5e61a9fbee07ee7b1fbb9f4100f7bd91ddda206eb5f15751aa9303dff98dce465d7fc420f15f5cce10e02fa6e22fa6f22fa6eaafa59ef88ba9fc6ba9affe323a87670651043fd3eb3093d72f250d745ebb93748156827749ab68d770967a3d9de0417a197a1c25c92844469864330cf4faeb1a0fa3271767081e15ec399bc0a3f46a3aa90ca5732dc9d6188aebf7aaa487ebf36061bfc7b4cf3f6e7136a42e0e13a4f2567ebeb51bb2aff2aff7d5edfda0742b7f51b7f2ca57fdddaff7bfca2f3779438e79e6f4e1a426c38a03d9ef0bddbe2ebdd5c7abb7fa36b55bb9b8c9db0c6ee5db5bb9975ce3b5e85e347f72f810b7e712e0dec99e93e827a9b1b7e856ecf91df0fd794fe8e799fce9b9e91f5d5faffb533d663f79f90dcf3c65da57684b22b4b0d4ac5f128488267abdf929a2b1a1329a6a7a2fa2c450337f65fa8f3188f29802455eb1e7e079cdf305288eb1e7eb38764c75135caf3f7d442ffafd471599eff79f60bec7d7eb63cfde0f0041350144477e97bf93d8fd7f10dc3b3fd15e203b2dcde4a04f9856c8ab6eff532f96a9423b23071198739aaed4ed33af034bdb8e6f399ecb1b8d743f3425da905b4a256f432aea09de856ce8c5611f2b4e5fb48b2bf332c147a697d004aa5eaee9a64f35fddce863fc46b9ef4e6ffdcd3ca2f11feae7e7d47c77fdf10b9e9aef993f44f139c129d3aa6bb941d0d2e3934c257fd3f6a412094e317d94ed034e923e89f61b4e39ada37dc4a946eb2a6a9afd0615455015cf93514faf1099886638e75ee8fae555c2c722a381e22956151a6afbbe0940f14f645b7ad1fdfc2abff3871a88085fb14a75d09962a5e56c05a62b658bc3e3a4aac2146de024c317c415f280608e59429e65f880a52425113e61999332c2672c6b3452fc828da01dc187d857e85ab49bff75fd185d49f4f422b9255103e37ab13cd69161264905610d6bd0815e6c1f24ddebf8d0077b0612f2a47813cb067916e11b165b1084396446617e4f4290bad07ec3c8b31e278b1af5c02996ba13c30fc80a850a1f35ae01ed5782942418968c7a8afb58e61a77c10a94c8b061708af7215352161a2728939c9bbd4bc95fcc77ce52f78fee87f05ef753a0fb6155a381eeafa5424b842f982b5255ecd9da3bbcc73221cf2aac61b9252519d6b154a42cc212369c3e8af61ea7943ea1fd8a53469f543bc7a942ebb2fd01b5f5a88cda50caf344d4856a780c511fe7cc0b54949a7d29ddfe5091216efb89c5fd339bb71e73faa05dfad8a08f2e2f26aadd466ef6dffa38c620a2fd82630e2adb0d3d2ea88a08948027a3104a82c9688cf316becb7f89ddc7260f325ca09bda3cf914d3ba1e6a6aeb3181b6963314e6fc1c50ba9d883e9978ec7e27c0de47d01453c30b3d5f3e629a9357fb5ccf6b7ade220f2accec3c028a7983984df77d83be28b44cfd822b478776df2e2c439a206cde7f16ee4e99b617049eec3e1f16cadfdbf7c8c58c6f112eb1c835be0cb9d5500fab065dc8963dd793fc88b5996f2efa8f85a227b4b778527e847142f62ad8191905a7901125e03e644289e25cd7c385799f46687ee090d10fe87e50f453b4bbc81bbadf06da4ef7688f74bf95d17ec647cd83882854e41198fef07c194d745211183b35480f5a6e909a08d75844e411e10e8b843c6abb7dd7e7d5caedbd5bbff1f7e6ac039c40720ac519644c89e421a4a45cfc97e5d3466780b69fceb7e34f126927a153328cd8a72ece15a6923fc3767013ee3feea69eaff354fdd7ce34dec666a5512e578207735ead077df353cf115b8387f761cec3e0e687db018d7e12dfead395db9fa0a1bece9feca4dd442f75785b17fec3ff45b469fc644b47aa15e0ad46db923f6193d350354f580b2ac0dfb081f66b8905d3f9d0060b411e45b8c722254fe01bac1b742e9a171c046da9d6d19c0b28ed5d29da82f8600986820c103024caeeaba692d4d1ac21035da1b5c551d2677404ee85374327c7a3e026d87645ab810df3a0fd40248482f5d08f495b3185614a7af023c40d124bff05a30a99caa08924271b0463cc387993a1ce13c959e9bc8ed38e6cdd6393d28534a74f7a7db101ad6121a98f88a30eaf815ea4f35e0f8211aad818034102c95618d6485ffa40ccc954f8074c0499095f2111e44d0567cc2ae45db51ef02ee808cd3dde41b96c7d60a6e7ebd619ef112d2322384408059de0a0e802cd071c123a438b218ba9942dd3cf4bf33b48ca9e2f279cb6c10f38e454aae60c872d95687ad80ada144da1d78721e814cd0a59833f63a3f424d5c436a303d53ce30de4a2bc0556111d8ba68f6d42aa229ce17d4bb96846d8a674a510c1e37a89f9a8d70bb12223f829c68a34f4bc07d0a65e1f28780cc38a076d2c15d3b2194f292dab884125b42c75f26be4e6e677b794dd44f1043e10d648247c8e498d6c5430c054924c040a2f5b7211e1018b5ce715476c22da51cd0e765bba50ad04af3afeb4ca7a7c3f08dd8ef23cf37b50b9d74494e152f3221155f1102f68bfd60b57e922ecd756e13a5eb4ceb58f70932ebae7c766b88b16e3f3e36bb86f2c16e7273fcc1a8bedf96912bed616a501da3ab2f803ed3535c9d7d8730f32bae0893321534a1e7998cbe58536798bc9574a0fbcb595ef037ae1ed589ed6f499f7a395bf666b3e10abe69a9df874bb7a5c876f5cf2355973ce6543978ef82a5d076bbee0eb7c3dd023701faf778388f2b3dc342fd13bafe59bcfb5d834d37477b94c7acd4dbe4fe874d3dc27077f90262d95beef06b54149b5cbe565b9ec0673c7eefc5069069b0c7a9872b2d71e3e6b9013c250c7d927193e619dd108fc01db8af6873a5e25ddcbd623de6bf42cdb89ee6462f223a6e7ef0d2e89d796d1199fb137efd77828d5c227b55447f026a9bd85ebdaa2b3aa3d855bbe1892c759b8ab2d5ec8634d47f4cdea6910bea68bc3ea4972a47a3539e044ca90ea289ec888e2c2bdadeceb99271472712165ce21b301ddf05622df06f49db7993c0ee8236fab15bbb0311ff05593b23d1fd4565b1aeef9225d63cd7d2ee5dabbf03e5fc56bffc2a77c555bb72e4dcef7584f696bc415df0434daf14bbe595f7add268d76e7f5a4d54c1bfbee602a9bfb683f1da4c3e6397d2783d3a8bd6ad7b12c3f9bdfcd5a96efbf85ce5e638f6853fa147f105a7b8d71b9b229ddf71a93f2be5cdafe8ceb959be5c6a6ac7aa5c7727d53cecba573f9a95e1efd517d7ff25fedecad7d332578eb4800b50db7cf97e5f5a8d41ad5e4e7eab3144c6bd3c3aa71f217b5f1c74aaf1f6b2f1fab0ffbdeeae0e8eb22d8d6a6a13c9dfc692da9005dbd04f1a454402d184abd24aff92f3236b42ee312ce3512019df2e743fd61f92e8087c7e5327aaed71e5edfd32a8087e8219d75ceec81b553313f8daa8f02e8a4ec9e244e0337cf0941b80c4a38c1a337ed3a6fa82aef4576141e8437979d1aea99a77eb142f7090d784af6ba7896f612d0ef77cc0ccfcaabc95e8652e6d5d13ba10caf217b1594134620068408d69242112f61027d274a1fc4dc2f1a9acb0e65bbe7f827ff0d4f8ee63a39844e627afc6710d3f921e9994b100d877f72b4a802b3bf1658acf7c667bfd3387bb8d1a1b9d701a5474185b64473822ca1ef929fb0c96857f125f635da4413362efc497eb68e685b35ef71e0740efe8eb78a4e4a963aee34158e6031fa9274e0733d256e102448412e7a29749054ea29ee4dd02ada15dcc31ba193e9aedd612329077fc4bba291883c747342a49e3f1ac417ecc3dc7b52aca127a5a1f20718e56422fcbd39cf57418469423219bc216544c930d4c94545f22ade633d8f3c6107da54cd18fb848e6433c37b42733d0fbf3352554d4fcfab42b62e7a3e3beaa444e6d443bb814cd077c557f868502ac354cfb7bee03156096d9bfdd958275da9cb23e6a0117ae69c97a32bc88b4e4d46824c74485e48dad449d152d229784c53d00922810f69a7d207d025664cbb628e9e5ed3784f3aff20606d9d7ff866ff8d91be6425e865906402e398cce11f30de92157c85032352ea3c2427ef22f840ba256b19b64124ca0a01ba15043ac5a58c50811d44054dc9baa09c508957f4195a920de0354853e103fd145dc9d66066df4fa12f3110ec132c2591206d0c630c24abc007e94ad2c5502281df865f23034162edd213e5b7e06f494f9035e21aa6f005460c33f84304191909f28a91c04cf963040d3296e413a31ae6c2970805992852c338c256f92584153203ed63a2701001478b938da05b240d642ae8a295919da21f982abccbe0052d45f6823e6216e384608b764a32e50df0d2c0a70cea6837c83bbc3e5e6af844f0880ec887f02648051e44d842a78647190ed195e45e7807cc05d6caaf224a48ae08c3a086a922478c24066017341322055e203842c97c3425910a03f4b6f09557822709074a182418499fc0af900128c3b881adf49fd18ac916f4806904258213a20a3949aa30ade024833d7842524153242956cabfa01b910ada557c44b421db677c48faac22e0a3464baa5dc1c7963e8bf6133e2a3a9309a1128f2262c82bf4539af534bd97eda1ceab2eaa3dc151d04fd51e800ae201efe84768eb41cd18690962ee4746824dc114e948d2c730c750b147f8920845728c52bc487f8a90910948156386b9f2d708b7640a3a431263af8200cd9848d01893065e65d0474b921de819d31a72192cd1cac91ef48869865c0512ed9cbc813630dba2a242206a900f7853a409ee65e8a123c959784ba40a4f221ceb24b6a43046af024f7815a0816709a1d74b4ce8a9a186678110dd1aa8d053498686401b3d0eaa97645e4eb8c2330631846239bc88040af7e857d0916c012f25a142057d8509fc107e46fa82724c22aca57f8fb0416692128c15a4f48fe01179911418e7d8c07f00af9185a03d4c326ce1d7c12b6401cfc30b7016c105514a8ef09a78497091c103a29c98a0f212a326c22eba209fc25b236de011615fe77143d5ec635ba3b1e4256c2ab4075ec656d2816886784fe949f03576399dc866a2f3ea89686eb053742a9a4becf5e2a125906574835617af9c6e55ab8f2ca71bd1eae155d09d688d91832e450bc8387d51cd3764119dab6615b9a04ab509de400fa2f562f349f37bae9ed91f243aa9e99d484fe9f5400b61eb9e4ac620fdd6a08ef7d85fe9a8e0eed192bd5e26fb2cf7a138d16bbd2139b673fa2cc64cc75c61d7444102481e0f54ec413212c08f820a52803364917d572f380dbe3f326b7bbf66365686bbdd5498bb4f5b6ec2f799f5994842ff92af70611e57ec133acea976695c7e7a9a2c1479cb12f2f6514deb93980c3e9eaaa4f75927085f3193d7df85d509815797d32328779bff117d426ffabd7cd62e96d721e8f7f2c5dbad9c5ecb41886a678408d21368e6222227b0e7dc8bdecdbd1e322c6db57db31c5cda648aab764aec618387936270f7afcc6de6522d7c9358bbc388cdb51c22a58faaf3866105f485797891a4f782cf962aca27e91fc8374159afffaff2f1f72ff95cffd75551be9c98a5210bf101ef4d3663607f860a6ad80d5474c98bf206d32f793d9c32af5cd087847198a8a23e996736d1444a9f307a442f016d6b7dbcaa91c9d9bbfc6afa6b5fd4e7c1ec01e97ca9fd86b2bbf775937f5b94ffed26ff29652de54737f9e3cb37f9097878943fc9e7ec7dafe20fcc1b377b3fd47fb6f7c22fcaf7247b25676f8586f9ceef6aeff92ff63ec99bbc4dd5eea09612a1e5cd2bec53f900699d21b5bc54459793935dfffda3e8cfe5a2bf3e8a2f7fb5f61b368ae5d67e7f3c1e1e55eff0bd3c9ddcca8d3d444b97d01746b53d44fb677bcca222beaae5f9537cf2f4ad7e29825ff1f69cbdbcda32735f9d08f88a7c08a80984f010670328ee81cddb393dea38149bbed4316b9c002a8a0726de6004a65e06757c98986616360c04fe1e883c9fe554bf1680e858f5023d17d722fd8cc06c303342fc1804c2fc7e2e81df1d8ff60f7e9ff5597feb93f3f69d9064422ec9be3314d5ce25f2b888361846c457c908c3c8c3c3ceeffb97603df6d3d1eea374da3de498bd059889745daef5eb9349de45a9c20fbb56af963c237e2f1de5b0513aa7c3f908f45d06763df1656f5fdb836bbfe58b077ee60c2a61885fafb698033c848819e4e860ef5ab040c76702b118a88840b011e22fbb84029428e613707faaccb92b2152c77dc1c26d6ef6dd5c3c9f433117c7ffb80dc2ced3710ce1f7e335efc7d2ef3776fe25ed33c83018e4c4d868e06cb6892efe2a19f948420c2290551cfb9be8d2d9c495e63af22215d1ec1af387cffdee983d76f7bc1e6f41de965ee989c6bb90a87d7375ae7dcd05dbd16ccb1f26c3f461329cd3d96a52272a69b5d790ad4b2e39add71f54600ee7aef1f759c2d379791338e8a58fb74ec7145140e0b7ccdca59afc3a37fe33f6f285b6d749b5ef492248059029214250324eed59b6483095dac11edbc6a67da9e7558442f70fc80a7fd286ec47e3d10e8c6ca7cd753c6d92eda6d94f0fac2fb8f64988f8d0ec472b5c22d25c27f71d2fa9469f7cecafe298c854e75281df17e3e893573b43b1e72ad273eba89c355e31cc4ee5f7d7791dc16bef9e3d26c3ed53b2390e0482d746af9e3507711ad2641f869be35ccc7d19bf67a5d150fbeca33f7ea59dfbca83febfd867a3924a03baae494ef3774e712a3d37c85b311e668d5b3c846a9f5036aeeed6f73d734fdf5318a2b5be67e6dec3577ed234f7e0230ed9d9e96041a4e0641f9bb46262ce9efb6dcd9051a54914f7493ff60b79cbc1dec59214d558571410c8602acc509febd67d966bc69f886d0819fb0146daffcd37187a3d81b13923f328b83735c3316114d31d207c226c7e736b1ba38ee92f09b03eb44e3dd677ff1359185cf233066cc4fb6ce50f589ff7e3151b441efb8cfa5c054d1c7aa50fc97ae50f467a1f0fc7f7dd5b6729042b47bd926a1c4adb3c26fd8fa727484eceb7fdc75e83ec2bdabe7367dfccfda0b2075fcf933ddfd977aae3f1ae1debf14c0b716449a4f9ae4e8ff19d8e97f0cd7df678a0526262a2b6d7f77cf09f7cc7fa3ab7672b14e8ec8aef11c518046323f1f50e816f6ce8f7f319eb63159eb37570e189bfc294f5b7ef1c32f4d7f9900ff9d8ef8b809c6b54537e6124da24f71d9aecf925eab3abcf5fa27e2c03afd6798cfb9fc7796779782c1f1a249d1c4fed2a09b276f3739104edad1c36f2e9aeb35da769f2b07d7e6f488feefabc15c7afe5fce1f9341aed92b0574add3951b75c7e4129f64381b939b716a42a90674dc204240b742c196c4faa65e282c999c944699b9cdb04cc83f94972e8a576217efc318edbb96b66cf1823827dca2022009d4901e7813deb981cd9ba91362fc9968874d2ba88075f2501bff03d3671856d92cf68954c884aef9beb64c3251ff9241947676e9f5fd2894f934347b5d974f6c8eff95a3cf2c1b49e8cfbf7dedb1eeb6969381df4fa35bf5f5391e781b7e8aa12400d86f9835f5f3e0ad29e7f1c31a4cd7db6eb43f8aff14703b5dac74aca68cf04f7fdbea21409d5f99ab367f022b07691c1c3499a98512ccf54b13c67f6bb4cdd1f8fa9eb8f0bbc2d7a929c0411cfdd41b2d3fd4184e811c129113502304ff78db5791e40e831ce7cec539b2a0ab23101e6bea1738c9430f522283377458988d854258408503d8ea6f67c908c9489294b9376b267b7ced1b2b0438b8a6d4ba57a4edc76ce694054ea6274b2e1ebf4c15f259fce7737fc33dd3725bfef106e63b94ac3ce40fb34d77e3ef637d1c03d3ff867b16f7ea6f41c8c4f8ba8e20f47517d7e3fe8a515f534f94c4e1155f753322a9f43fa4ff65bd86e5e381f0e2b9fc9f0f97335aca8b0bf9df8af49ff20d9f2b2a89088ef67eb112318ef0665e56dd6a580e292f421e35108ceedbf7f20aefda1fbd38397a02708d54be660cb9e5beb6d4044e213123521b9cf74378b8e9b7f3bfc9aaf04bf6367049136b43751f07056ccc417dd06840fd53f10dd8fe08488e6c1ee6ffbe6f72ce037cc7ef7f07e074f0a46bc84750669d6a4e283a874da52cc6f5ee2c1ff8efe29f79e7a2dc19e5a7f493f09ff83fbada75eb6ffabfaab38becc7aef36be32d614dfc79ffc36fe12e6bb7bd0639deb34ccbf5bd002e19815639f8a6e733531df56fb73dd27df73a73fc6b99c74e6f6d381aa8e7d9c403427051c457caf635fc743def7543ef008df73c45ff3c539e93360c507b1ce3b051f44fdb1f45b59c367b25c3f948f93d2a762c7fca95ccaab112bfbf397fca33e2f1fdba5d3cb705d1561b71ca6465ffaa56f1724c3e6aa2f45a05337b346116407c43e7615b7672289f15dedafe7d82bcca792484688d26b1686a9804f4473eef66338848e45156d9f04151d8b84ce497c089d33260422253a682188b95937a9fe84823182cedcac752ac62e4386c63420e9d8ef47bd60855973cdfa0cdb30a0f9907fc69f6cc02efe2a1debdc850fd84efb3ca36cc386d1889ffd59ec830cde7aa4cfcde1d9a89c3748fba5fb517eef6c54ca68bfadc8efda2cef36ca07b8fd1aa2fbd1fb54b38dce479a2e377852bdd0ad4f5bb67cd8d0766eb9f83ffe7812cede6bd0d4fadf51790d792baffc527ee29efb7d1273e51475f3ef6db4c19bd7dc6761f34361f2c3dfc929f5dce0fb6254f0d39ac90789cd077f278fd4312b4e48ece60cfbef6490a9b95714319bc77ecb1d751b8c58df355fd65385b6cb1a439de747e762bec846a98acae51948a957e3d829568e26a573aaf3c389b6efa7d63d77eb7f373fd22733b1798572bb1f762daf43bcfe54bef9f6be12c76b7979a7bebf4f23faa07a23977fe6846eedfe4da8d390ee85ec139d9f1eaffb3b84c685f2414aaad1addcecef985f2b61214ed2cfe05581f5193250cfef76cf40f7775a7e12a87317af2a767fe76816ad565e2976dff5593c16e57d925a5fb39f73203e2743a0990b4e4ef0a3db7e8e914fbc927af25d3ed3af2cc431f547325c9afd2719d4302fddf69f9cbf852b5190cfc553889436d0cbb0aa5cf7436878dbefbbcafb927dc99bd24fd13d2136f276482fd12bab412e9896175a5e27bbf97ba1fd60a96eed7b38c5ace5e2f9b55c7e2bb7f1bc605f379e2ad7f166ec5b7cff4514df4f9927bf9587fead7e632f1609bd12df9f21ae7b5edfec156c50c46f59eb1fe0bbb2884f58fbcff1e1fe4b9fc30d6ff62b8d45c1de19b9ed4fd5ed5e55ab8ecf56b9e0cf8ff2e60f4dd51e135ab1fb7b467ff66ef6f744617f4ffbc6e0e4f6f7c86739cbbddceddfd9f1c53d7beffddbf8eb7d1b9f52acec9a94accbcf5b2f837e3fc57a0be1e9b9afcfda90116dae634a10795f6b0f3d6f700619b1a5c4d7dc6be31526da2ea482c25ca4e70caae31b096b763d62d6723626da3c0a12262746b16ea2f58068eedcdeffe40b2f74de353d5ee201eb6fd744a4d3d6250ec83a5a5ff72d3a8addebf8867ebc377b4336e7aa763e75de1575a1f330d59583f7d7c7557a56e356f3547e6fd0cbf2b10b5127afc3c737313c2fbb327d83e09c28d666e1f3281eef2b2f41f5989e25193cbd87e553eb9164e45edc573efcbe6af7a59e3f1342fac2de2b14b4adedff6aee056c3167573b6eff28eefb7a7ef645bf3047fc393680c6624104635003f67daf21f2b0d394db3c4176cc7ad87eefb205b5f34240cef2fbbc90e45eb07ce8207d2975e5b0a1caf591ea552f762b20025f965f50577a7db405cdd156b423083bb5fa4c10c0e3923162722af1dd77009f00fe54cba29a4b9d9384d677dc3ab542befb0e408400d1baa8884e14285667eb3ba3862612b1f31df3ad01f7a62607881930da993c4638df317841b4ef086c07cdf576cfcf08c8397bc780f56d7e9ed0ce500cecfe621a924b72684bbee132095c3e7ee97cc61b0cc567b44ac3e639553a272732b88c1bcdcb6bf7f5e9ed747f961d51de4bd6f6497e1979e7d672fbcce5a879eecfb744cfdb4c48d114150fd9e4f9899d8337c9ce97a524edf02d4c1f63e20da293a0cf8bcf273aa94dd2fb865ed9a3c219614d735754cf27342c5755b761cf8b48f0355f46dfcbdfa262f93bd1f94cb1dccca7b7723b5fdaf2e78dec3648bf522c5f108ffdd4feb7faf784fc54bec9aee57abe19139aeaf9c69d77d839c6e435e6f253b7467a0a4c91e35166147a2df7b5b734b2fbf011214162f6e0ed18883c5f740ae325b67bfa8ab1a934fbf9f140c5e496ef92dceed52bf24b7db8aff8661fc4e6b84dd66723d68f0591e9ac758e3e7d9104fe99ad740e4b64326183a8cffb6c33eea9b6ceb91786867939dbe4a4a7261ea9accb3b45c92a8dc241bb3e95fca19cbaef177fd157015278dff5bd9d4f583dddd983ff6d9f27d6c1d2e4ec5369f4bc9e632426ae12632306747ea90f7e859a3be7ecaa6face3416cf4552c20abb4cfb5be83a81f9d63cbf7d927eaf2a667197900e1d7ca18eeb4bea56a42f9f261f94dff8f7219fea63477fa72697f9a09aabd32e79bda5faef6b0fed8f93abf73bf0be16f4adb5fdfbf9e8f123413009d7b5d4e15395ff77c0398b30b3a31df4e98b52080d15cafed7fdadf4dcc9efad75a8999bbaf2e6f777bb9a99d971820fd1d3177f8638c840e7b70f93afce1e87a368d3690bb3d5bb367f3d919467dfe19af7ce33be3f17329a7975e4af05ef396f552b91c961a46dfab3e663f960caefbb17876e3f75a6ec7ffe036fe81efe5d69e835fec792d37e78bb6dc9e2fc65fe78bc29d2ffe9c7fdcce17e958cf6f7361cf17edf7dce67cd1e51fd7f265782ba7d7727b1e8ee7948ce52d1ecc6ef9f24dbfa828ff1e25779edb7c296d5d7f17cad39b3ffdbefd0e28c5dfcbcfe9b5dc9c7f1348179fbef2e1eff2a8227eaac7de9fe26dfc1bdce21fc4af78e3bf2fa540587d7c45d4b19ffa0411fa95ebfc69f629a85bbbdb98765b63c6c59ccbed6398f5ba676324236e4ffd1a13f43a9540320ffbd8b7c7e5fe88689ccd2fc8574c30ff7bb131418cfc6f6797ec3e3ab34d67c0463a4ef8a2fdd68ffbe92adbad26bd87fecdb70f23d1fc94bd236d3e0e36a5a0f7f2e5eb3a9fde69bf7888830f9dff9b730616e01c9e3a125cdb29f76626f786c267f9b9e21d75be4b52840a07842b5099eb75714b8f736c6ff17302a5f5eacf756e44cc3a9c539737cc8b6799be8af4b06113111302110f94c96dcd6fb572b75f64f32b3dee85f92746755ba32f1c456cf6ca4d5cf215263e4db74c24614073a2c7ba0fbb5fdefc4c1ffc7362cfd136b18e053ae7b0fbe4e734769809ea2f4866a3c3f4ed914ac9686b943c75e344d6279c40c61e59290a55f3489fb172bbfc3c797c6926fe71b203f7fac3bcb6184774552f3722c909010f88f9762de9697b47e5f21ccf15bbde0dd86d7fcefdce21c6bd729540f91ed0873f02158d1691ccfc16ee2d9f839e3b4ceeeffd3227fd54e6ceca8790cced6f73e7bb91f91e4bc7cbe38a1f589f339d8b429879e73adf127f137d42301f93fca1eee6da7c2b3f36cbda0e8b87d2936c06bdde43f536e71c325222de736d59d979d778e86f9e3752444498f1bbb9e533b7f3ad4df9d9944b04020bd004c71831132985620b26b98f4b9250c54d8c4745fbd9cece1b883c8c1a579dcd9c301189b98f73b58b1dc34afb9ef6af5bfefb47f8f63f8977b695e6f7297567993da898a29a9ac044467111ef9b71add7000a6852989ff56a52d9672ad5beeaff64fb12742e7c8ef7cd75b426322558c571f3330eaccfa623aedad57296356cbf04c3d7e97c34a0a96cad775e166e29a1b2138838f056690bdbe94b79d5606562f2a1d2223f04d3fe67eae3d47cfda85002bddee41d4feaf815e994e659f7cdbb5b3f8ddb3135b1ea2b4712d7fd3233c7eb35e92aa68558f83be55297dbdf6010d4fe1eafd47663043bbd466574b8db4d8f3af74314fa977cf895fbc4abe532d7fe47fbbdcffecddfe8d2fdfe08792ebf32ef53587939e848a0a6d769f004f3201521b2b09ea6ccae9b45ecf254cd3617a69f631defa260a2524264b222dbaf78c5851696e8b8e6f617afb2f3c4faca744974feb66681bd1f60ead7d660660d69d7d6e63e0bd935428824e0621a59bfc85a748d567866c3d64adb4086c15adb408444a63a0f5c812687ce3919fbe764e2ee5d989c86f54540d69de7928c43943f4b81087a9bcf71df43e65364b3cef6ec7f22b8e8b8467aaae7f59371190fa4fcea07fd369a4cd6c6de6541b7b237fc281fe35dbe5ae978b5d47df5a4ecfe50905ccff3bc7b775ee0cafda6b2bfa3357b4f474caf7d65215ed9dfdf488d8dfb6e2eb8af691b8ff4bae0361798f9f4dcbeee6b98b5b35e5b9ea5a76d697ecbe2ea3749f47d8d2dcd1abb3b1eedabac1f8f5b4a98f8dfb1e73d07b73fa163fdd8ef8b10b775041b71d10ca22d1b62952d874375e80fde3be5d4ab5395106c878d8ae88edbbb7c4cfa11f5d7f9acb34d5f07eb52f353841d5fa939ff5007e5f6e396cb6a174fcaeeb75ded75ac31dfedb7397b7d2f5f337cdede7f12bfbe7fdb0fd5e563d41b7e2aecefaeb5952704b2178898059271229ab73b17116cde4d6d6e61cfa9b739884cc2894048cef3b6f143bfa69d7f3450f089582da9649c52c60b6359b9f8d7b4f98cd93b5a0c140222e773200dfd8a19336c62eec8acda40ec53bfd182909c8b958e9367f7eff4534c6a5f67b0726be723b37ff5d8069280dc5740543af9451e7f3715444d033daf0d1ad3f63a7b6dd174cb5772e2af62e1297481ca8eaa74d452d8373771a5705f29e097f8d3471af87df6e90f189a9fe9d85fa5e35b4ed037f994cd1754c4c57a2a7a9791d7a22bafb9bcef9664ca2be5478abebfda882c24902d6f958dfb7eaf8f97ddeefd81b1641d979adeb1d31c36b64dafb6dbcb86f0c9a4e1a56169b71f3c1164917f86a0d5e92b8ea7a772d86d9ffc97725991e7f2bbb0f196724c5d3e5f93ee8326f3ab8edc961381244697a1d1a52ad3630df4bf2f36a7be8bcde4337e60c3c8dddf60bbce261d117327c67f4e1f7a4f84c0433f97ad8fa7173b8e42bf99f21d0e312352c8e0a3b69aa0b6aa3e4c4a79c3ecc5a327dc799c448470fc4095f4a0a2a26e63f37daf1eef871ab9ee45101d53beebf82738ab6b78fbeda866c9cc6d8a6324cc50a31373578e03dbfb5b6ee901915e91bbdcf2930da3a1b9f373661e5751bfb76c4fee97c35efebace49eff3f90dcd594971eff0515b60d16e24d2e543de43698b5e8ff46a3a1f52bfaca799b9efd335f77d04191e55ee434614f8ba4fe5593963733f50f2110a73d44f65892e13c4dc53a3906464d71ccd3994f9f7383a2666aee20183b06788827ded3928d6e7154e0204e3079907583e94868d1a2bf7ce273cf289db77f0ce4b55d7f14b98f3d49a9d2f42fe6dbe28969bfb1fb7f2fc761e213eaa5de8fa51282fc4cfebfbf2dbfb89391fb4ef3f895fdfbfc64f06f1f198a151d1e573345760444df4fce14b9d37f3c8ec4fe9fc924ced7a4e086ad77c7a8c8cda5f7710b0727755dfdd5dd5ebbd06ed631ece769ef345b390538adbbd94eff55a7f0ca4f639edb3666d68b1a314b7f828486f6cf637cc7a720e52e9fb347d25324d5acaec1de9d876bbefa0d735d73b0fe89bf35fc244af43e4ffcfdbbf7529ab33ebe3f007f200dceb6105c24e410282e299621b156db4b58dfae9df910410bbef7bcef9acff3b7e6b8c357ade4f018690a476575d85edb8bb58aedb872f3d80911ee2adaf6e1af6a57f83d5002b3058c23d0f1bcd7bff7b16ccbe19f3f0363e24e05b8a7ee1df7e081db79c6ff5d77c7fdb15dea7fc5efbb7efd591f872b0c1167884ccb0042fe800d2ca66101c1c855eb88f11b7e198b1417cfedf63d58257a7f82669116f4473ee6397316a2478cd3460a02d841c2368a6320e170f30f0674b1f32945e126c30ea2406051fa0734494eb1352c75b85464034b4731b2070af493d4e8d56c3c3331d1ee787e2efd41cf427ada11bb641fc759618b9eb6900e163f3a9f423753d6d3c7b6667f3314bf6ebb8b95ecfbce3241675b3c5fc14fbe952eda756b19f4af98ed5e5affc5e2917fe6625cfabefc3e5c84a25fe5fcadff0f53d88fb7fc1ffef9513e83d22f1ff82aa5ee2ff47553cbbf4ff345f6931ff24f1ffa85fe55f652d8ac8b78dc99ff1ff627c4024febf363e019a94f8fffb5ff0ff7b6578d17b44e2ffcbf1f56815ff623070ff8cff2fc72be373fd577c2eabe2732af957fc7ff1fb323ef7c1aaf81caee64f8e2faa8f4fcacb7815d58e223e47d0378c96bfc6d74cebf37904c5aef2a758c452cb7a90566d3e7ba4d86faff5706558a3efebe57dbda57a8fbcc9653e58c8653e5887225f4b5ff9da727f23e81873803968296c308c30c33a101b2170b5978f20ecfd99f4a164fcc72af26cc5de5ed76b034c716e2ec685ffcfcf48b1f7ab5ca80620ec1991cf743110ef53c49104899d2b7e0b32817bf74c4413e74e8f0ef7b599d0ed80683a2bf6f8ee0d27f64c5aded405afc2a8da6699e744d0517d7c7db6161ff3d6dc7bb616eb8fcffdc5d3c7fb46f0e30c40e3c71cf7c6b7a6dff7f3da79e03f55777698f7bd76fb70b4dbf17a3e8ff78bfd61539b7f04857eb5ff741ef44831df2ff98feffbfbfef7ef8ba023bfaffdcfdfb7febc3dab3faf23f6677d3d1ddece9f4cbfbfaf278917a8d653c695ec5f7f8f5f3fa1f5eb13acfdf3f5122f207fffb3ba5e9c6ffeaac00b6835bc80fe861728f75bf7ed3c98c978b538bff41e29f0023fcf038117e06b1bf6ca4ed57b2412bce6238ac815a805145995ff4b5fb14f4be4405cfd2d4f8f72e93f31ac2db87ee3ebbc99d6ae73252e125d56e6235f8dc2fc68d188dbea00c236203383a5855ff48e7fc4dbe88f6b1a1a4773935c654dccf4d2d90f9ad752b729c7c36df2bcdea6f8cac45f3053e56238eb183ecb1a19d7a40fd48bd068d07fe9bb4d27fca9ebaafcb6d2f0f8f9b426fcbc001811cd26489d1b5cc787e9d1dc6618983dd684ddee8d8c6da44144471ab16bf1fafff7386d3bc4db5188f391961f044e9b41589d1f2cfdf464dc5ee6b79fe91c31984358d80d045aa27e86e199cb26eba9e52f0e5def1a7d3a7b5fe5e7c887b9888dc75c69f52d30f613b53b4ef50b22c741dff17b33ff9063d7eff7cec28e30269f78d99df9bd8d4af0e5f3d9984fbea6c3f5dcd68e196a369376037db60f47677853626759ea933df14f325fa3cd5ff9aecbbbfe16f51f72fdcbfa0ff62e5792ba3e927289ffd25bcc742a7d941c7fee4f5b83ba7eef54fa5de8c32493fafd8ba2ddeaa77e5ff75ffa53e0b1b4025f350325d12881b08ea992ba7e84a41d6303ba290f506c43a7b0002dd220fb66c681af0ddb1175e8dc36dc3284089901490c8473ae83367cbf629a218deb25e26a166003a104211ae170cb6d5383dba6a146305f9808989d0289b02130ecc1c854ff2cd34830e2367ed887998837b20a137dd0844f8e36c27f43f7b1c6320d91c89cb3dc02b18e16626d5b22bea9be622c846f9ed77d85bd2ccc2f0b5fc61ab10d44161b8da61aa2495cc43bb7fcf747b5df1706796567bf6190fef68c3d7f8647ffd333e0ed5da2cb1848e6a0c3608498388f4c69f38b18c0939f1508221d99117f48e527c83c935ac6eef998d600b5e735072320a96590f5eb1cd0dddf7305626e7ee0a622031d544034494276411ac9ac39cb1162698254b622b2258c0d146c89732f7154d558f9184cc40e73e08b94a6063a46f57139481d2ef8f79fc5073051be0480a513e4991d0cc024901439c1a94398653e2e337e8663246b3dbc1f35491e494c9bdb2b772c7308db88b8ca6313f7bf9915b909d0cf06a3d8536e2e9adcda5d53251ffe144ced999e89daa27ade41f69021c20cd70c92cd7dd3d7ef4a8fdc431c9b1732f0c8e83c89565143e914dc3e45dc6a10717fd00514c1bab2ef3289ef20b60eb3a888bd9718dd9f7ef23f5f6b02bf163682cb2e2f088419e005297dbba8f0edf83a7051810998e80109f5209a18013eda20ead5259ebcac11b8e33d4c5ff5460b6adeb30b4a675f8f89fa91a3f371b15fccc61af2efc7afd9fd723efa4305c65662a06871ebcd7ebcbfe813b15b45e68fbc492af9070942b3c4143dafa88b85bf2ff3103f31e5ffe17a191f17c03711bb7335e888588381001b0b9a2004b6860c3e1682258e9d68725e06b181d8d2406a6c05f8e86cc14277fa859f655c2f2a63e626dab97b1cbaf5fa2c7d71cbb1ce7ce3e73c8d8d13626063058889345866ade575653ece89d29fc3c79d46ba13bb0a9f33d040f31b4de2af51a082097084f1b285a9ad01212287a0c502af6d0a4c3cc138e57a97d5f6a888614608a8bd28e26089a8fb64fcbd05bf25dad07fbd47d6d6c2db3d0811ac017176b2364e9e5b12bb6f17e371b1886703e8084017fb9eda2826329f54dc3f11711be416b1eb64e184f0018882f1c84e88a53311af7e24bf630cdc0fd9a76df47035ef156b90355ecceee62c7e9ee245ab753271f373b83fcda83e0ebf46e81c0ca8ea9d27ad9eed1fbbb6729d69d9b6d186e0e3eb4ef0edecac1aeaf5cb56be8fa9f9884e40f63eac37ebc6d9f2e7ebf1fdb83e88be382203d1c88afa8814e82ab281d8f5fae5a5cc4f737fce917512550de1efda6553ac45e0df5693f51115a6b25eb74cc53ea632415ee010f97c6b408398ff1e028115c2457cd6c730981930986394063848293f93477777eb16b17fc4f0164237b0192e6b95f77806e830992ffcd9d086f0d6506efdcee12347f9d1dbcd5bcb0ef29fce152fdde57d336c129b281bd0d4e69dcc0efb465ef853c5fc487f6a847fc53b4bb9887756f257bc33f15b93627e5ff25abcb3bcbff7927fc245d5b705def949a69e605efd83ff22fe9bfb2fa6dec8c03f49bc8eb6fd85d71108426edf55f21ff81afb1d5f63ea8debefe7ed8a7cbe01faa7d262936fbe9fc70cdaa07724af95650046036eef346cc8f9de71aa786b85bb7375380c04ff6ef8aac5fb61b7ffc4a45631d9c24fa232ee4f6cfd6f757db355721a6bd111419a8c18bcd58979f7b4aab57676a5bf54d559ee3cbdd0a7c53e349ea95ad58a6da3c87ed89f1ec3159ec4d947ccd3dd3962e35da6df3f1edd67f7da22084e732b31b3eb6aa63d72f3a399ce1b9dd87211848d307e6e8351387cac96dce6530db8bb7b3e5fe8d6fa00eafa8890c8013c46303aa4ed6eb4f832be2fe78e06a7eb72b66b3ae1eeea316b981e9bd76836020da2abe1a8701c47b1e37d0c348dba864ef89e4b6d65a66a1ad8960e890e242aeb77badcbefe2aea4fce55fd893f7f977f4c2bb956cac5fa3942a383b0583f09fa064caaf553ae0f818fd54ec5faf9aad66329ef4325b74bb9f02712bd4ff195fb134860f25b45bc2982c9a69b42af635882375585981f5aa60b6715162ec1268ac9c30217a3ed859ff113910f622a02c006d73598dbfe9a2b7d3ee648ae61c090885c67bce1e75b819b96b58b0fa8ebea4cda7caecc715635a88989e201b76ff99ac608bc0d5fe73678fcaccbebf720022682c85c083e785743e0fdadfe714120e76b38703472462c5d8dc41853eb95efb40556c07dd550b79dffcbfabe773483b8ff718d4fbe897d3aa3ac399db4d7d1beedb993c3a035dec3c59b91a83f1a664046f1bd854ee359935ecee8f33a37946f237802c1b7ec9076a230bba5c79696e98f2b50db43c49dda0ceb1a590d3fa9adeb2cc2864690c608d2badb87f1c8fe503b89ad73ef3fee8769f7b939102da5f60858e469cc4588ed872b62db40531751172192cafac98db2825ec1a733caa0e2d329eb9b45febf23e3aba5fcdac14e2597f78bfc5575ff2b7f3511f9ff9ff7b34a1f14f2fafdfb522ee2cbd497fc86044d9406d6af343e82c6a0c5d7b6c1cf4e7c19ddb30481ad6b42c7e6b28e7a7b051cb22f33a018a83be6f691e09822de681695f7768a7d6117f694dc0f4676297254028b4beb79319b8a78950ed46808ac81dc0733b10f50fcebecae7036ff78dff6f799afd9f5b161101c04a851dbbfaff152cf9579b42cc38fe8e88489ac4540959dbb735ef5c2c53e71f75ef8b2bf70e806359e0e032ee671da3c5e3fa6c3cf49db5d7941e73b7c5cba69ec1c81e48770efad66c3e6f1dbbab6cecd7da30b2eac47c37cd5df5ead87a99a01559308d96964b61e5327f616d7bb6274f44d5759ad66adc7c223f578095f1f5a112f41a0f175e0c7921f0c7d94738f2506bff25f45dceaddb70805ce1f2a1f5cc4124d792ec938174c8a7e21051640e2d64b8caa6c90c1c0e25ea9e427c0813d8d840f0a89df38d1c9453951eca51bab31f83d5e9da16e851717b85a8264bc8ddb7b000516e44f7ed10a497e47190f25097fd702d71288bc40f11edbd21f428c5f832d3005ee56e01b24eed6598be71047d4e868f717db8706693a62b2ee80fb8738749bee1d6fbd10ebcd4d2f19de566765d316ef89f479233b59c307b55b1931beef55bd48f1be52dfb57ee93bedb3312fe6a326dfc0302ae5c33dfd25ff40e8757ff6fbfeb4fefceb6f7969af21c04fa5c326aac03f1334ba723f9a007a712bd865cd07dfe77a02040173a9ace9480bfe25eeaf739f3bad5d83f5c838486275148181dc4fcc443c1a3bfba8c2181848e6a8f1546075f710de3643723121eeded786b2edb99db5f2e1ea93406017874ea7151e1cac7b9ba737b855f5b0aed270f52b487be5f6cb5e29e5b2def5f6aa97fd79fff1ed7eea0fdee5b29ef3f6aae734aa7a4e57fdd77acea9afeca14f643de7f855cf59e663a77e8f409f487f60fcbb5eb3bc5ff81bd5fda9de256f7299bf19bfea35abfc08a9e7e73004beb24700c60de0038c465317386b813379f96bfc5d590422e720eadf458e8ed630da3bbe7f043697a286e46e001d11f409a206c49b0bbb7e26fa1e21b126a8ec7b6beddc4ffc20d382bb41d8e0ce1d47e20caed648545f23dc7fc3a0398ecface07bd577da3437e3d9228f4f34c26436a027bb014a331ddca6c30e73bb0663a9ada89ffbc528ca88db9c1d05de0a2b0d1743b15eeeb45c2f93efe27b63e524daf10ceaf236f8ab4afe87fbbba2bf775d2ef9d9ee155f9dbf29f8d3d03bdf5a79bdac172d9fd7a7beff63fdceded627f1d10fb95bc925bf1bfce5f78aeb25bf5b797d9312fccfd74b7ec572fd17d7f3f57fe0fee288fd5affda3760c965c8ed56bf732dd6f7160c0fb47b82045694e64e3d1786291118d202072afde032a7cb84acc08002c0217d5d431199452018a36d025b6bcb62036182481a8d98c0f65932b7955a0526b4cdff56756525cf5680f5ab65e43b1ce3b9bd74fc677bdcbc4563448d8f741e6c90ff1c3c979bd4b302ff555fe17c79301fb4e59a5bdbb7d79a831ffb77fbb67f55fc53be7f3b1f245ea6bebf87b492ef2b3c8dcc67ce8b7c898807c87c89c00f0a3e3ad9473e81e957a48b5ad5571cc78312d3ccf04f2cdd0f99c42b09fb116ca00267e6a842770a9c4302686b0708d2d9e88191cbf0d465185d6edddd806257f97e3616743a50ac54df6d2e45ddacb0257445f4af67b05ea563445d1d187ee75f22b2dfd3e6555fc8edd51f75887fbfaeb00952d9ab0610b43baf9a44610b796b89cd027dfac25ab9002cc0fc9d689a8c9eaeeededda9f87fe6ee814df2cf09720ea7c9cc5bcf92eb6877e6ebe34ac75b258cf4c0bf6060fb41a3c4c3c842d286ccb7e971956f6be01ff2a42e3f23bec2ebf2cf415d7e40dc95fcfbf33fa151f45bd4f8d9efab45bdde07816c841841828ff3b51e26e53747dc7efa8931a425c690efc52a261fc9fabc3a8e52c84b1ca56cacc9608cb77628ecc5a78b40e22811845887c705cdfcdea5716dcffbb7be06b34d43f9feda437ed1d24df70396e361b6693e61b56a84b4b05f90c04bf6c4fb0022572672b5ffdff09270917849dbe5fb445b1b7c2d5ca068161a624a2c6377d96282b710b84f0830faf4bb2de177343e3bcac9450d70b1b2611af29f3d85e662ff623e662597fadbbbfc8a179672e15f56f2977f59ca85fd50c95ff64329a76ff2977f896f3d024a2eed0bef850fb108fcc3f85ef6452197f68577f947fba2febc09ad5f9fbcf01d7fb97eff36fe122f8865534fc90fe3c10881462324fb3a11597f869a05f617e0950714df15cf09f71d235ccb23ca5e78d4d65319ba5cd76a0f0a2c7b79fdf03f5e4f05979525f2a6b606eda2172e137c401a02a2c502871b7c00100de1ee62161fdb38b07738c082a3d463c2bf8821c40f6f9f3e8dd088201b0f9be0994a9aa1c1036f74b4196c938b7ebe7c8c158358da50c6278af991df6f1255ebab57acaf522ee2d195fc824d7897d3377952f11fc77e8dbfa7945f99e44329ec49688afc570cb07cf233d6d5eaf67ef4dbde27ed970d77f90abe83f61fed36c56d3f86dc0a30c64a974d1c185ec0a490816780be4d1130320362eb886040d4e37b3f12b104613944a6e43e7575640c2c20045beac5069298652efcad5eace0664254f079eac0820d621823341c8b2f1f15f7d6b810caf3c4f9fbef09e528f8a36822712721a032778728ff0c4643e01248a2a159ca7f03802428791bc3409f1a077e9ec6e6fd02802e99f97037168125a06ce784ee5423455c3bc07b91077ed8257febb3886158ce3369b977bbe53d446e3832f6ae76faf6575ef7ba382c1e68d03b98da719193bc3358c75ffe029f5abad663f9c1b060f83d686d5abd784ffa59bb7bccf075b854a3c6a1e944caf81b76d93d9ce8657db9fc5e6849b93efa2af4d1047a837779fc269fc290bdcbbf4825b74bb9c06376f43ee0177e94bcf0a3113fef3a993113ebf5023ff98554e6a785fd1c2a8d54df91a5caeddb5e81c79472e9df418321bde24fc02f7ea1727cdf7f19df35d58780bdd7f85ab5f1299fd0c9cc03a98fcfd55556f20b4d8e10bef8c4c72f7ea162bcb369355efe3ec47fd4dfa74f97e7b7f71172f13e1344540455fd37d66aefd3c860e2a0855b7f9f171ffa15577c5de5f8dbac3e7e292ff25314a669357eafff3efe365df6fe32be392217e830b0f9f82e9389f459ebf37d66f5f10515fef506fa8919f885270e7fceb771aeaf878baaa7853ff52461f77d3dc4e7fafc3e987faee427d077c45fd5e52ffeeeeafbe475f993f8cb77f97c5e973799affef87db72e6f11fff22e9ff6deeea7beac27a12854f24b313e153ca69904d12310623804eb485323cc5c0db18cdbf0233e6c246c3fa1e77201dfa0a98e8ea9e4436360a06038d6005ba8a887b5b18ce7c9730ccb734c607d120bd8e2935f2b7b503a9f92234dc47037a1186151e34d0c77160119ef3adfdea3d37276d1ce09e9c12199653e2e469183e0faa26dd4cfb167c13b54e62e1e056ef191161cd551e0e8499bff6f823b99793e0923a2dfe9c37b9ce271b3b9f10db77d6c1ee34fdb7a9ea364b4386eb5fdfede9c5d86d9edc36f9c3f1377fca5eda2286df9613ed5eff6c65dd95b3b360cb7658cff74f6ddbccfe1f769f9e7f36f05f5f32d82c68ff3adfbb69ea5bc38dfbe98a58a7c17981dd8fc5ecf9bd7f9a1c335d25b327e00c8573e91e0e1832fd009f814b7c23e2c05de14b91ef7a3756e3f85182142729bda053eed9b8d05ee824c756223a08cdb595b20d168a4d95a8173ab3fc391cfc8ab67cce2c3f8824e7c3d1d759269003942100132b95ec3080e03615b5bea65a231891fd341e0c768811fbb161834ac51c031511d6e87683402edf89f9f2174f21854a411fe9c0c2fc45ecf0d80135fa30888b3917eed70acd34b81a963028766c382fb35279d6007808c34121c840f23c7207e53fe5e64268c4abe13696f6e20ba0b1c97ad47cd31778cf5a8e14dd5ee4463ea5827f731ff265a9ed9773773347ba6b37435ba27653eae2d784a69fa59e6e68abfb141a2624fa4f3823be993ff0599a710793bd8272daef7c5da1f1ecd696bd9df4c079d488d99dbb94f7dabb3b78fb49de54a6379d88ea27df3eee55b3798e75f76fbaec12eda7a3b384c50bfebde91ba9c665f6634d1672d7316b360b76a9b84649ee1ea9ed6be2c321c1db28fe3714ca2589b3cb7067c0e9459a8b6e7d34dc3db7b8f942d16c193f6a47f3a55ba8c80b40770c9273e29e2d11a982ba5432603344bc0a0b007d7009da608281e4b0c080644847d470a7e7704c142725349ecc046f0579308e62cd17f710168dc5fc0329704051796b4cde2e23e7dce922ac65dabfdfec3eff013703b16dcefc4db208acb9c305882439e3f27d293dfbf55e46512286cb9c8b8a70028dd1b0ffbc3127dc0a34f1cb836baa75f484b3ed1e3c50554ac85325f55d42155761c6ad9e466f5f496c61234b6a2c1ea6b7b5daf9a27e3305056e6f5383da2a5a5427f0ef151c6aaba4777bab8b69c733eb08e8a9f9fbeb2afd17ed77b147ce425de365a030cb87ff3054e5cfa5154109f914847c06dde7a3d565ad46325e827f7872d8a4cb1018c701b5b625b253ecb2a6ab34cbec78b187326f51a01103a8922445c8c6629bf56c498112b6ac42846c00c5f60287705f385065fb6961f9d1fb55d1af99f6abbb4574d7114a1ddbfd77ab97a67307e5c816897434ef0bde96134761a1be53a0d44edc76a3bec2e765e731e379b492be9ce55944dd969ac67835148871263de57da6cf28021e66b30076d007106012658837070c4d4c6a2bf06015d6269cafad78a7365138a7a01f7ad36069735040cedebd742765f10d918770b1a9c9c5d64f035c8f569c93dfe6f9801f72ef00273f41075340257039fced0cb638fcdbeddb675edb79366ebb9ffe6bf79fe30ae66aaba4a9a7d6640930942f60e886ba3331990ee691e75c6877da79f6f8f2839501b85d19a6487e16a8773d421ee0491810f14db48519472be8af3c5aefc8d52df96f26450978792af54cc77630e72be3d0a43c004b8a9ecf0b34a257d87d9181142447c9246be88f9e0fcdff8c737088b396d811e9d461ac9c65070898b73fc9f711b636abffa42b0d4b2f7e4fe636d4e3ddd7dbce3339cc766ba34d21e31ffc255ddbfcdb6ffc377386bd623fd03d622f377de07de7fefccc4d8cd801a4ed0d4c279f3db0ea9b505d6317436d080504b04098af9e5df0718f40063ee064f08be9c056fa13ef8429418089111e2366a20b86a70485d8d9f0b21fc1b9ff8004ff9c1a1e7783275ef232df9b0109d61816d255f40dc4fccfdde7fe708ff86ffcb3abfb4e7b31161ff7f9b7b1a63e53a78423cee29fa5d3fe6f6c6615bcf9f7a5bbf3d31fc29accd209d1d49c36e76c249cf5ed0999368101dacc87136b3ce76041f58d769e4ebcc461a6cb8ff30518603fd4285ff88b4d21f26e456f817853cbed7e54f28f84b290c9506d6bf203e02ba80c37444a0e3f1bd207023880aaea4b0c29da8359d5b9cf32a3fe723030e031358bd7e5fe894ad88ad65757ed3e1b8e06791f735b97e28715445ecff4db757bf53f0b3fcd6ed0475f8b3f8730c68b9bf7eab8821ca5ac1f800066229d76bce9d1d05269fc1d244ee518374cef548fd5c2c734a702733e3e17219d7d52d2cf6b45dd50b27fdd365d53f5d27163b35e8c504426cfd3a98a0a0a705eb26591cef5f7e73f0b45aca26779ee78d9e9c611315b5f783bd175c96e3ddd50ebf06284cced9d5415fbb7d4784aaa7beb281816b7c085ea50e2418a69ae8dd618c0a0ef110c360a2931c425ce64feab5d7ebf7daeb225e65402430d25cf72635dd6d3087fb73a1751f00a0c1b7f5503f1dfedb48adeaa8eb73e470dbf591b625de266d1b2c0df19b4df35e5bbd77efea7280baee7170309fc945d9b7ceb165b5e6d9f86b729e3a0b77e99338572786daf18d41cb330db0139deef2fd69f7c8f613833d829efde53f3b6d7f9a0f8fe1ad31547ae4e42f1d162d278bd687e9674b6b7ef8f62349bda1039a2a1d814116cd6faea067d0c4403422b82b5788d80684390296d4d6fb4043cc06400b5137f2d2c3194234d1e78cbee5ada45deafee51e7ea6c5638d6013d1602338e135a8c7a5f74053be4567b2e6a5a821949c2c49f19b782e79eba9ec83010e90c406424cc4cf4e12157570c37181752fc69294b1c6f578d709300118efb3ef89eede71a806632d3958015b188c6bbcc1489caf88ebb154779e29d75f9f85cd046fbd8dee5870b1a06da41b28dd0b99ac5709a4df5362dc7dd783074a82cc4574abb94a737b30d68b439c34e79abfd0486a2334621acb968b694ff5b3613c9b3aee88c6b9f7c896d6a6bf70d57c6fdd7136daaac3e076eaae860dfa39390cdd878a8684cdf00e2f1aedcb29a4748703b5e3f7e53e3a770f975dd946b838ef1481a77361cc8c8440670d841806b721284500995ed52b6829dfc723c4ed324af405050309df81da2fdf41d410c15c8623cbde67c2a7191179bdc6bf2b73b1e0b794fc78b6f6f22344edd0cff8b561c8fa2f8997cb2dbece90a18ada0f035ff8662db0d3552c5b3ee73d96fd257d6ffebbe2191a02ef58e2fdfee3336effcb334cfcfb1944e42a33eebba30d7d7f8ec6b84f8e1d98b92536f035376ceb5675547c9201b2f1837c8fc2146c067bd113ee911c0c107554e8c719bd7b5babcf68ef4ddd66e17bc5ee3d821f67b87e24eeebcc9e8f7a2bb3d15b4db783d1c7ea28cef4d9b47135d071655e94f9d3c5931bebdacf6865ee3a5f213eddda3d2ded7db2d6e8720c8ef7d4b542bb9b6dee47888ea3d33824cb4ede509401f8921fca10f94132809ff8207fd3537fc90b3e8e4a1ff4a8ae1248b81fb08c6064703f22e03ad1d65e98af8125ec597eb695355875bdf8a67b214502828a35448c03806d8afceb9b3e1de0a9c1f567b60080858d326a6d45a3b4b9bd4dfea43f054f177a60c9fdcc6de49d3badea9399b9695957f5993bcfef19c3706b797a67b12679f2b5e95a8be36e389fc4c1b7f6303a9dc571d5b39a5f6a374ac6e8a16fa76a7bd363dae2793ffaf3c3b1c2cf0c07fa1944bc1619653c98fad377799cd4e52aabe1c7e4fdfe9b9c92829f19b9ca81c9fb41051f1006338024e0feb17d30ef5447d4cdf879026a3ed2085fe322b13d127d48c0f894ebddd6b5b2a69046323e4b002312ec45b162730088a51b0db3a14f00fc880c03ecc0649adec661f6693f708ceffc145741d72217dda3af92534ef81bdc26deb9fc19dbc216e63e9f85ee356cec339dd57afeedbd4747abf706749ea4e22c3c773b8ffdbd1b78cfad6f75e1f1d98ad01188a624aabf3d34b5edeeaaac97f86fbd749a97565c7ce3e761dc4cbbb1d91923bdc99699e18778eb93d98929cbec62d9dc0e5e2bbbede5a06175e8b6b09276a2a18bd485715f2ef15c99ee4eb77c33bb4d0f111d2cf6cdeea2e463c24fee0fe632df814bbc448050529393109df34a6e9772199f355cbe87aafccea88acf0a3c5f8f1a19831d0451957f325ff6f6ec7dfdac36d5fad14a79812f240479557f58dcaef235727c1afafacbf8aea93166fa5ef4df6026ebf45ffd378af3c0fc82faf8303668d5df620c11a9f237411d0ff673bf68aef6249372fe3ce4a9eff33bcbebf33b46d07997cf715dee22a0a5bc91c12417f18f973c4588bedf2ffdfdeaf7abfeb3a57c9dd6e5f35ff747ac2e5f20f4637df86fe39f55f8db527e75ebf32fe545fc5e65f8ab5a1f0527447dfed5b7f591483cbfc89ff90d082fd5fc8ffa65bf55e42af9453f831f8036008fe91e4189030483b0ef452cde9e73bfc6e40e368b47611fc62216ce84efacc327b701f987c6369811dff3e69c8189843ec6a8c8d75089f70c2857ca76bd3f820e32de416c63236be1813f6f41c0426cb101484c6183122cf34721927c832677d8c956daa19dbf3d0301443a90f81320b5d0610088269b9f63117d1aa7c05c3d65de233d3abbe8688476a8d1341d3178d71f347d2296bc7a69deeb39a4f4675c6b668469e97f58d0a3ef3aa6e9e417fd849c007c53b7dba343749bc783673025bddd75db5fbb3d2ded1f2eddb0d043cc3a56baa785cfde5e3d633608ada7f9b0432308a66841c8bda6ab62db3793e1c72c29edcfbe32547546fc18500463a6cd097432ae6745fde52342e8ade7c3a0d6e7ae165b2d7dee22b66abdf5eefa6ff7d855aff0b2ae3d2d7c686c705bece53b0e34c9d998ccf87962ec06b3f18e1eed074e4d0a312072d1a0ee13a63ff5bff097bd32b65de502d3f82d06c30cf21ddfd7318e8d59ef70cb2668f0b16e445967898ebb26d8bada0cb5c170a207b61336e7fece73b7cd6dfca145599aadd13ada36bace72d5b35afdcff3479a6b6ecbda5d1ae8cc0c7b9a50fb39105daf6afb55e6db82a8cab72954da57335ff9823ed1db75fb8aefc77b8480bcd9577c7f2359d75d7098cab8c4a61ebb28784852718e900803898bbe2c04a4df5de41cee62aeffc5beaad7390a3e92b6f728e359e9a7b77775319f7c6f3067fb665f51e7f947fb8af9eb8f89b93836b6c3e570129b1a4b69271a7aedc6455964859e15fa22514eb97ea093219014025f692917cccf3580d5bec14a9caa88bf729fcb3fa0790a26010a5a043483b14930a01df91038cdac5e4f0f509c0f1fa1c4a823c1eb4bf0fccff5f4ff76bdaca717fc907482ffe9fa82436ae4a082970152e14f207116897c4c5cf4870dec67f4acec2496bee28653f8f4d8c406829578bffe48001f94eb6df31c0ccf57b3d5d9ce731deeb6811fa98f20a04071773447df4e7f356850d7bcee66706d368c8cb98e2672a4a92c07031796b7de0734b0de21f0e0c77c440c33ecc3a7c8ff06390286339bdbeb0f4680123364174d8322b72be4f69fe587c3f8a2adf97c5e04de17221399e958f8bbccd888ac4b301c6b140b0e57bec08de8e216fe2afce44ff4c4522506a2c1a7c684cf5bc5238a7f57bee27f78e6edffcb334dfcfb99448f00517e362678c172aeda6d8d44f6825d847ffd8ad514ffae7c7c56f8f8dc3ec265ae6f4754f7e93200d234f4089f6c57b59f647ae9826e831b5e4ef6038b98b503aa658497acb2bd8b7352f600a8f7e42e700ff794fb47562da66d96d8aeeabc94fcf742b7e117e7d36779be420fed1fdd59f77b9fb5667adef4f6cd4d6e0c86ab47e7b951ed58bbd31bd75f8ed1dbced583a1c3797c1e2f74e7b1d69dc756fc1dd9decdc20bd8e1c1d2687b4775b39867c662b07a1e8ef6ded94e8c2873edc0992f9aa9f3206b9b98df1a6bda91f1f898a3cec444707098331b65f43ccad2f328e27fe959d10cf0b68303a69d64fcc0bd89a847ff6a7c527f8b6609b7bf0afccb78884bfbbe94cb7c4fc9b71a56fd3c4ab9b4ff4b79008d1ff2d39b7c59d997a55cdaafa5dc8561f62e97f663299f897e18dc1412757c13cac76f02ba10c805d7ba38d76b7ccec226476f9c779be23c7ac333ffc3750517ace8d159ed05d9b3a2e061a08e2b7ae66beed4b983c0a3e267511b312de221824b94943c6181ddbeb5359620378ff5e3f92b0f23e8cef7ab4f344b8a3e34499b8c9589b2621a399e72dfbc62659d0214adc4a107c6820205670dda364208a23537ef6a67fc56703e30ac6b508fa561a419036ec3da96fa87fe3c1a3681104be4506a7127feec39e3b626ddbcf5ebd17051cb46fef53e81ed8820903a1a3665ff1efbee8ed09d8918a8a811d5caf875513bf88c0a7effe869846ecc6d1db82dcf3d7c8049dc6975dbd7fe905d4c588f433e9f303495e7ad3580cc392ff5fb57e0b7e7485b065f2246e47859cada44fa8f7de593e839c447ee8f79051eac53f24d2a0d9bebd61c56a4929354ebd1f137983968638c6085ce2f7e4fd4574ef0eb792f7c9ba823d4a3223fe497f112f065c09494f289e0e35fd4795dab9e40ebf17b9f9037acb5ac77973d57e7e17b9f9044f80e88e8404070fc2313d79e9b226177cada0d072013d59c45ed46d9372570efb356f77a41cc333b903d3a8affe888fd3a16fd63c2c29f1c16e7c9406883ba3caec9d9780a4a2117868c1716e74971bf0b4df6e3fedaf36dd9ff47da3fa2ff8fb4374503fba66d2c29ec60aa4a7c0cb358698f5ea9909b9d977c0f978bb447b9ff487d1da679e53f4ebe4afffd9fbe9f94f3efff26d76adfb75e5f5abecf2aa9cf57f3487fbcaff4bf8795ff5dfaf7a55cfadfc3cafffe39dff2fc1c56feb7c4a36a3016fd7b427efeea143270464d07912930c7aaead049fa83675ef46ce5feed3c947677b176deea9eb688fde0ce17bd61f9f9b31e8bf399c99e5545fdcb87f8dfc0d6e1c8edf537ae7c8c205e8bb38449bf951b69f6c3deda68f061056c65d282bf1efec25f7fb7ffd6032870ef116a45f631d20707f2a03979ccad573fa04e24d7f96f7efac6e3f0a33f10d5a6e3fd4019d3fafa329650ad2f1d6ea0df0afcafb7e9cd80a546cafda1a8905f185e15fdf585fcd6d16f820f2b079b01239a9a680253481100d642c17be9ad657dfafa27c736ff3b05e44e9d1d113814a838ae934fef99befa604ca3a9a189f864c947217a09c2ad9b9d8fcd2c57d70d204ef4111dc6ca173180920005f656f8ad2cd26ffec33ea46831cd5a19506f90b498d6ea7f0d4c705dc43a36028c812645bc179aca29d15526f3e7d332de4b02b93e09ea2b0a3782e323200c0b0c2ee27e20198c04b7197de9755ce1ca6ccd50ffd0d3075539edd7998968510be9d66afc17c5795af45163c815dceebb34c054f6c34077d9075ae8738267eed345402274c1fd4fa17788710bc347ac7c66e8e2f77358a19172ca8d85eca3379c81f185373d4b49a311fffe1f4a6bc2f784c83744653ea253f05160f850940e02a23f094c01b7da983024eaeeea7587c25728dfebad9fd60f997c679d94ef6c4b1f0cdf17b355128e021c4a3e1f6cc9fe80c4442c3151bd8fd10a4dba0c630d5243038cd2180e874db70d2bbdd1039385b7de12faccd5696ae8b069b48871c79b1ee2efcbdf67c7bf73fbc2dfd70173f1ea77f5d255b31fba2a46b8deef0a5e7dee32f9ad91a1d6fb8946fc5d255771b0ad3fb7b039442f028d14fdc18a5e04fc0c107d60421cef08361bc4da02091f08468f86fa7894faa218bfd964b083d8aef8399b0c9d457c98986c59ebcf2cae6f30e38394d7f3fd8f45471721dfb426c57cbce4d5f7b761cdef1f62395f28835d54f55707442842dc963bd66d82c5cb2660bf6c020a10899a1844169f7f9ef3b4661fa8f5dfe0736dfdb61512692ba068a451006d9b8d4c64935a8f5647f468157dd5dda6e05724f61fe2545eb3bdc6e84af12dc9e8798cb37c145dbe476a7ebd50a25d6e57f742ed8593b9b9a3ba9fa38864fcafd06ff6672303af2ffd17e3bd9f1e9f4fdd6f1ce84429f45b02da008d3318990c5b689b238da62f1e6d3d93fdf72517cb47c82ea8c6cdf22173a4873540e618eac500626be8a0ba4004472620968ee64c451acdb75a0d833d21923f4ff47044ddb156e8c5f2dffc2368b10a1ac9e682839fdae69c3024b932c142ecb4d1091e693b3caa7dcfb6ac8f52f9a698bdc60aff976782472224fb3ca51a3a46b21f8da8f95b54e32df5b806d4991370347eb6406a69878107241fd9e424b96134b230c9c00780c5f89e7d8f7659ee3cc84ebf535fe266c8146f3101e8801e4693228f26f472c10913494c76b56e9e06b15fbd9b0a9c592193d7b2ade61c407122371f61f7a090c025800fedafe03ff79b69747bd59e574e8bec9b92918e5282e17a5c92f1eafb767feefadb59751e6c7aeaaffd5be58bdfcebb00ac1874d2f174b89888109d6fe1da39fefffc0cc4040223c071fd0c143d69e49cb60d9206763073802ce7072543eddee30264f980387fde9f2eeaacc6c3dbf4d39928dde585caf715e990a1ab77096c61d26a69606b08a0c6435970681a034dd4cfa3f518b148abf5b21acb5e5649c1456f0b33d7522f1622f62b168990e0bb935c866823f80c00e6214b8d3a2e48f091fdfacde1cfdf94fc39a4c06b8967be62703faebdfd876b8b7ebd99fcdda2bf5ef50eac881530afc4582c085ca6f6dddee307d963a096a589de6defb1a96d14d8772c62f9f51802ff6f7221bbf831b8cfd0e530cbbc73bc8e523bea4fede0721a0d3afafdc9aee3693298ec77de61a30ee17427c1ea39dcb15130c741b0d8b48caaff8bfc7e3b885ff5cd65ff17c113ddede82a8108ec5153f45a9175e289e49d28784245edfb5ac646de718962ef14fdaede6328bffa0ffdedbaa2d712adf53a502fb2c7a8e4ce9471e5220e63d7e230650dc8cfd8c247237dee8d919d3716fe746fc46e23d56fa6ddf107962be32ef7a3a376baca222ff10a7dfe1f9f54e66fe72fbcc3fc87dcafcb554a46557c20e9e89fd40feaf23625f9fbfdd27fac9e2f8cdf577ce1d7fda2e0b5b09f4f583f0a3986ef0c2606ff8c225ec3edbe08649f9e6dc9918ba03910fc5586c47bc6b2ce2cde887ec321366adf908afeac323789e78253acc2968acf3667094224daa2f77a85ca3f41c6801f621b69936f057e0989fc5864d8242efb42be5f57f685557ffe86c4960a4e1c0d83adb981a1914fc98903a5ce98b94fbbf91677bbe3a7314d5aee0382023389aeededa78e6ccfd068b6558b9852237d6c2317f98756b6f27bc13ca53a0e6069f90cf55ef138be5edac4ef3e95dd71d79c4520edfb9e5aec979dc0c216faa1e4a32bf693cc8795f26b246698db7f1345d9c020e3f78bfe3ea1fa278ce9f07fc2985a05c6f49f7af5fc218ff8473c291da2cec7d5186c3ca3f7e1212530a396778c3199b96d6fe6603b19e707fb76d8dad3c3ae3bcde9d721c85ac66e9fdddd7dcbd86582d945f8837d6538d01fb2de1395fddb9ed437dee5123f54ca5556d6eb56f74fdfe4841ff8951c2310f5bc52ae95f2a29e3774ff5ccfabdf1a19f8453daf7184dff5bc42f9087e41f9bd643dafcc3def4b7951cfdbfa733daf1cff10443def9fc6374721fe733daf7e53dacc2fea79abf105427116f5bc37f2e77ade62bcb29eb71cef45d5b755bdedd4ff31ffe7fafc3e2afc56294fd4faf8a5bcecc793a049d58f07f76af32bc7bf27f5f1bba0e42fbe0b8a7bd5f8a7e7daf87ba4d81fe5f8dff07c7f783f9dbfdfe087bcc9eaf7a7a2df4b6dffe1b8e8bf137f25732cf8466b1c5f020f32d2dff305bf7be99820af7beba353e936c149007a4013534b136797c5ce2e32454f6154d5b5d4f665dae4f6af7b2716e815c7622da73ff1279f7bb2692be4c3fa0a36d6353783255bdefa97c534692da20025cfb4996444eb8e0e1f87c94ea3dfbb68d7986142bcd5e2da24cadcf8bd57ebdf4bc45f8d920f6f028308def68b41eaf257bcf3cff77b55fcb7948b7867259f57fc3ca57caed6e5f1affb453c55ae2760631f06e9bb3c6275f942f0f7d4e5225e5ac967157f5029bfbe9d07525ee095eee4cf78a5f27c50dfce07bebe2bbc12fb335e09fa4ac6f407f183a2ff0dba4266bff5bf216ff6d04b3f94f56a94ff1768bfd7ddb1e5ec92a325635c80683a7fe7f87aabe39919841498a0b77e37fa63b65822bbe875132f068f76d053e7f7813aff1acef7f12ec0c1c1db2f0e0136f61e33e23676f57aaf9bf840f5ed6419f035b89dccc6c9c923d1c2db2679d79ddac32d800b1365d8844184c7ace86f03881274f174c875a07074423e07f60c888d8079238d6108518a205abfd7f5c9f86859d7f7c62552d4f52160c6be7e6d51d7b7b5439cdb619a8d76a988a71acf3aee46d460d46ba2acaa4f4d40e648e773962263ef3da3ccb1376b6f18e0182ed902056ddfa5067203864363dbe4fb3382296a997ebf613ec8eda086fd55de3f6d83f8995843edf6f9b1eacef3f5964dd6487df8497c80f379369b67abc688d062bd89f992e75f52f8a7974ec577549e7f9bb7f333fa793e5a16a9af57292ff22316cca36abdae57effaec41241eb3d4074d22f815b83e1823b0d15af68fd3bec168fed207c7417d7fc9fdfdea57d5acf6d77c56f031ba806eca1601d59f04f6a0e5e033fd50c6600c040851dc04929ae360a0217029df2308443f99080336611a21c4e8d562368687688d82113e2dca6738704188818e20d517a4e4a11171d44dc8980354f8992344ec72df95ebee5b63d802703162de014070df947ea130cefee5393062f5df16d7083902c991fdb7e76958f8fc1fa3c725730060f41c7cf9fbaced687936da51518f61efecc8d1924c27dc662647e70f75aa2f7b30aa639b4dfbee961828d963e121ce8ca2f6d2aef0135f36d93933fb199fbcf57c7148dd23ec1c337accf3b5ad1c6c7d1a658f70ba6e07799310c02d4f674f18e21805f604b674eee8f93ec8f0c6ddd98771ac6cbf47cfcde2e91e1c3d482ff3479ab5533639c556c89ce1c238d0f9a6cbf71c315a8df1ae69bb681b7df8b9b1cd97fc6c4437e59ceb77c6cf531b2ca68d256e800016387ca7f2692d28f064a54f2bb02e350e0fe62edeeadc41c60644ed6a650f085f45e2657612c7698a1885c8791900b68e88f359fabc08c85b3d11bf56f8385b778aef83a9b54ba6cece25c2c7b9bbd28fa9c5cdec5df289c3aacf5e590ff45c0dd5cb873a3c5f66a7cbc55cbb1f8fcd01d6a78f89d13c2c67288be964b0ce0eda7a12d2bce13d48b46a106aa9c1c9fbde2d97b783f32dfd4b8a8e7cfe6e223f43c121e84820b7811064d06afe6af3b1f8bfcf47f697f988606206d9c209b2ccd9bac7510096f0f31fb2972bf7f17ef8303b6797063683172652ac4def08c436114bedf13ceaafbeb6d7557ffd35b1d8a90756307f0e2fcbd6629218b9b1a09740a36a8437dd99bbbf5e5bcef9d46f678fb1dffd824dd2d81dbfc3cb7932fe72d4c27eec9da1eb72fb34e4fbf833fb66a6811202f94470358bde340e3f7f463ac5dcef43009126f061956ffe1643123e72c9dd2df17699fe1ee31779b0b739936bb6c044d6d6acec0b13f1b3d300332db00220635aaf1ab805a8e20c99e0bb3bb591bb71023c7576b6986f87fce1ac98ba81cdecf733609b3ce1dcf9dce8f7dbf7ec7efa9e93c1369caebbb378bb38a8add9346acff75b6d3c5deabdd324ea7cb2f6486df7fad4eae4a7d6e6a01e47f3b811455c9714f97726ec2197dbe03bb07a2dcc540dc016f146d328727f0025a7c85cf6d08f502d961197f3c59f27eb9f257edb78c3f646e5dc0014fd070a6c76227be446bfee2fb11792c7e4d8b2ef38b28bbeface23f91d8790b5e9559f00ef9ec4221fcbbc25848b64a21e5aa4b1bf38276f1574d4f616b0ae33828c8099405d0b4e39f2f7b1418d794387c960179d226f3af581641ab01c6b942054e1017c24ed6fd32ded7784a21a5ec04712ef55c943844bbcc16ab8a73e92f50495fc0359f9fbfdb5e70b7cc6302dfd2fc32af26357d16f1a4bff2d6195ffb62cf8770ca5374328d56f005fa0dbe031f44150c474626bc0f87b636dc4f74d68d3425797fb6059c58aca1e85023f4fb0ecd752e01265af13c46d11c153775fffb8e6beb83eddc8d9455b2474232e3894a217cffdbdc20406ee1d47d236761f46402c6f1ff1b3f7e83dd33914f5ed06d78f28b5105a4f924ee3c359c41f41476dcda8fd8c9f27679df9f9783a70314dc6e6748080e61604d85546b68e908b8d307241e9fb93d513366a33f1f450855de71c24460c1b7f109beb2d506219fbc400860d9d75504e6c4b83dc10e71c7de15798e4c7e20644c18f1584157ee58bc8fd5593776850f843d07dedbf0bd80cce30fa6e99f74803486afbef6200f77749d9cb4d60812d912f9367cb5b0cde7ae7b007449362cfad3700a965bddf73fb1fee2962f283dfe3296abe646d44d1ef8e953d0e2efb82cb7e6f331197afefddd8bd47fb129b8ca7557c798e9e44fe7da4ed924f029a39720eb41fce177ac3dfe79b79fb3fece50867b7de0ee25e08e9c3090fa4e9b903a4115bd7b8fd07b8e8f18428b7b78f553d0b0c01473005e4f19901e26a7e88c7c0b0ae510c20f97f6a7e638d5ba7cc21befcc68a23e285f9957ee328bc7c3a85df58e3df383acf6a5f081fd179c7da5ae861ab6e98bc6a40b769bbc49b38e2dc4bfed60328daeebbfb2ff34c9a870305e298797b968d8cad775aad17a73662df51570582cfdba8338c76cd55bc201ab001df3b7b8db886b206fe6f03219201b960d8ae9d45d69c66f1d68b975483ec6eac34cc4628f9a26d6f4aa38313f6b006d3bb36da91edf8912c13628f8016bd4e886d2b27f8d103a8ec4fa56ca04ba5ffb5487ef95f85dc1cbce4fb522efc2b204d988bfedc26f7af362ffebfe27bcbfcc28156f985323f51c8976625d74ab9f0bf5c7ee619a4ea2f144bec221860ea8d394c127ebe07047960b830636807a318cca98d108da7ee5dd51124291017eb9468405dc15d2138f0646e6e5ff6e549a1c63142938a0bafc6edf2c61325f83fabde257fe81fa4feea1ff4a3df0901e0fe5b2bfd530fa10d2a6a0ef8dac521c94654d41c6488fe5b9d66f27f59d71fb08df4ffb6b6270999c72e52ffd8fb27dea4469800d682b3d73c69db64ba9cb567cb354bc787c91a301ae5f1c48fedebac19b7b6fbde11a8eb0323539b653adab4c95bdf2befd09bdda3ef3fd47ace50d6f5ce606b531c5fec29e4c6ee5b4f9b13144687714e6ce463fbec68f8e66cf32c9c2d3c48b0a651bbe88715699adf2340a986b87e66d840efeb75fab65e496dbd269de2fc7ac9dbbfd6b3cc8795f227d4e427f87dff2f79ed7ead9497f592e2ff10e0bed221931d9a253026ba45a07314fd4e183f376d8400ea3c15206df6c27ea8f7f401c073969adc97378ababf82a7e2aff7202045de6db1410c9b6807e61b4f05f7a60868304bf9be29f692f4ad4cc92769ce598a4afe3efe5b08441d87b911f13fd19f82fb5596c0011dddda732aae0ac1ff3f2670b1ef766687c941837429e202d59ea87a58365f3c4b7650f4f579f95caffd841a473a48ef97a6b5db6ace3ecec3d6e2398d879bf86bbf6eadeeed73bccee6f9cc887ac6ddba0fb65794259e69406819e87a7496b3a3d2e8ddee39b41575d0d2d299d1fb1ced3e51361fdd17457e7aa5287be8117ce7d6a0e180be031b688420caa73aeb78081cfb85a320926f9054bec1cb479275639168fe0011243faee5363d81ec80031a18a12dfa1f392f7ecd367eb86d979f15aca321966ed103eb451ce4e1ed53fd84bfb7f3d3ec036d2d1f7989a700d130e44867f888fcfed2a05183ecbb6762249d495f9f7baa8dacfe171d6d53ddb80fe2d3eaab31c0c979d38ad844e67b6f4ac3d54f3035414b609981e750ec003146c6d60e30105cf1d368d80262db40b003d438481c6e8921e7f66f55bb53f403ecbc5d0f824a2e8344e27e4b8cca9cfb88043a99bde5f61295787e9a5b567839143189a6a7a77b6feab6ed67fae436b14e6d0b3db06593746b84f8555bca2659d8333e0e8b8e7e5d75c64f369de91b86610b232003e4d069a3453bc8f3fb08f643e41f4f10ef69ff6b98e6e3c5e8f1fd0d6783b973eb3e3b7c7f8dc231721a0b1d243edd54940e238052e1bfec0a7d78871977d2c1be108c2e7857c414b9de52b83ecc909b8047904e30dc4d625bf08c1e066418686acb3e8c7966a3c10782c006eeb6536cd5b9ccdee739d5a75a149808cf1d8d1c649f24f28fbae73fac2bc18306ccfb93fe98ade7ccc4e90037697b80c0261ac53e840956aef90c4dbb1a9f437736eca26cfd8b1beb3330d5db7ead41d0e875b47c0ef774632c673de586ccd1e7f0e0ea3b16a3a4e86fa90cf754ce5731bfd23f348bfc8998ff49868e509fff313472185231ffdac55fbef29ba6d2c8e0d7f3526454cf6b5c7fcb77c8b08befb7579a6c92429f8149d0f52ab83aea7d315259fb52f816b26f6640e57752df6b2a282e627bae6eca7e4e3881e8c50b840880d80f182f649fddb5bc27d56b35150b40343234772a6a2a18397a017e56bd534a3f722b797d04b68d7cef3b59814760e9a403aa35720273b452081c56c3f3f19afbe61dc3be3de8e84db0eed9dd89e2a99c1ff9fe853f7e7ee5eb5c7893c76ff2573d462917f9ef4a1e54f9b03f3cff6ff5184b5f994397c97a8c655ec865bd8594f7087419f7f75ff22bd3efecfdfe735d7e51abfe0ca55ce473abfb53997f070caea2cca181f186c016c6a3a6c6304212bfe4151ca52630d75c09fbc15b0b5c45815911f84e205ac2edd3adaabde361121de5ae8c01893eda6e116b8aa59dcbbd666aafeb756636d7cb6c29da7b4153352aec0dc149c1ad2a6279b6ac8d78fd06211a02ac893e7d60633892b7df1578eef800dad6ceecbb7b30906da1fbe50b440dc4fbbab277451f0154f4ea0bb0c055baccdffa2d3240b43dd221c9b6d3c6381b5cd1641f44ee1a16c6176038ad4199e3214183851bc646d4ffb9169babc54d5140f79526f3b7c5fa7856ebafe4afd7fd4606fe16596a5d9e42272be57fbadf8361fe2e17f9e24a3e0785bccb676ff733e8fc58ff225f5cad6fbfca679772912faee4affa9a522ef2c5957cf6ea0f5cc84f517d7fccaa7eac62fd17f9623aaaf2c57cbd2efdce02baa2fee308e61574cdf5446fde28d781da2850abde3e02ff66543cbcaf1e63ef1c056fd7257fe84536153d3a888ba44d55f4f6dba6a2f6f67a277bfc881632164666062b739fffbca6f8d966dc53d320eeb4aaabd16d0f3d765170aa9f6dc9043ab74b9913f63bc9d09ce243104f14159c99b23c7d2df5fb25007ba84c604050475bc7c2becf9561aa7fc28c71fbfe5cd8ffcd97fd5fc8e3e19b9cf8dfeff2745dc9b5522ef14130888a7ca5e849d72cfc65043adff79333d72f3a207225a22ee7a55f4015df4ad461c08fda941f3253da9d9e78ae4d0a59598f7781b2979201a27f0eb7f32d78b8c8bdbb536e93432f37bca9bfbff9bdb83b6938238dea3723fca4b73682fe734898b14a7bc887e23c1481868688af06602edbbac4afd671c9f18f5e4f5c4f4a9ce05bcfa8e867cfa879915b2fe26e7579c1a54be47522b7b04a437c8f420c9165869769d11faa85f751d36589861eae0e0f97748ea8bd4fd2d45867abe9ee6bbc99af02fe5e73623795b4d58669f7ea37da43e5a26a86dfbe88fd2737eaa73c3f2ced97fe2be542bf55f2977e2be5827fa7928fabfae53f3fdf8346075eebc38ff9fad018ffe6ffd42f6afd4ffda2e63ffa454d8a6b612e7b30957c0a7fee1315e2579fa8a78bc25baf0764ac7fdff68d273312e5f615dc897580f5a6f160b8a9ecf586010656be18fffe91724af49c4e0680065c337d817e02ef9ecd80124dead1a2172ed74b146b088c0622627cf3a217b9445511c4c7777400368006d3d12e31455d1a494cc4dc2aaeee3dedb9b12dede0b45ae3023ff1aa53530d96ea3975bf478d4eefd45eebcb6757f4df85c03d4d42fc9869f3c6e15b671bd4d9c0a6d542e04e118a0e3ab8facd189dd69b26fbeca4577729b8d1f9e998cde8a4a3cc308a0f2d3740aed368808e5836e2fb11712fb39a0f89577c14f1f117feb7924feb729590e5bb5ce2e94af98391f087fcfef6fc0affcbe5a05fc9645097b721bafff8fdf7f111a2bdcb45ff8c4ade64247d978bfe182f3925c98ff10ddfe4e2f9c2df11857e67980c0054386630427c7d8bbec292c7c58a8b5e7355fddd5af6c7a3c15a901ed5632648ac410da8aca42e7865e712172c7a4155d78fffe3f545adc4a2d6934a133da54cbb3626a9f766ab34c03b3bc0449c4f6d0871d30e22644fed96f774633ba668e077da707b360c6aaa7630700de5c1f6ccf962b9323c403a56cbfa65413050f26d59e1eb3c52dfe522ff56c9c3cade28e5822fa1905357cebb90ef25df579fd5ef2ff1aa48da436e2cfd21302fcc0598c297f137bd5df13afa66cd0634f53477d12e34fcc7f14fbaf96517cafe89fd225f24ea58d197bbd000b3d1332dea7baa5a07cb7974b43237eadea3eda47d6dc3ccfd3e1c16e64e5f8fec90dc8367d45a661f4cf9683de030ea64b133f39e21b3d06067e8de35ba75fbb226050cd0b81fe2cf051f0e8513e858e647dc18b42d3fb3929b285c79f1255ca196a7b2b28b0b84dab57f7b9a3c87d19c6486e8b3a95e46bf74a2a6d6e3711f82cb0468eddf6a71d61b6b8d449a5c9ff94b676aea48f04076c8fffc9c420fac263a5d994f3a9ce8ea60f2ccbbe6235b8db42c93392db2d305cf578d93bbdea7f959c3fc557d356af5d48f4875f7f851e6aad1c3fec44fc9d503073b998464e305ca541d0e8f8bec3c4ea6a7f1e4716891dd82f88f581f695bddd9f4bf8190108228450c6b5a9623b791e0f5233a8c9b4dddfbda0f1470f1b71ef42e864a6c4d379c69279ba8eac17f90ccdf4511908bae513246609bca69d75130d1652c9780e8ab3618186bc67d6e95fffb0b3ca3ec735770225df69213295f11b82c8080357ab8dcd6297018e2da8f1f6b42d69bc4dc6f13dfdfae7f7f19e7b501b17456c673059fdbbfdc37fe1fef2bfa71eee01f3999285f53456fef2ac6ebe2c0add68146d2f57f580773efe906ff3fdafead4b559ddb1e873f9017e0592f47428080a00182e29da206c5534995413ffddb085865cd35d7b39ffd7bf7bfad369b6b4e0b0a721819873e7aa7d2fb9e7733e3b6e26c3f25c9749fe4331cd5f37dfc5accc9f2348b26bbee20450851642a7cfdc542767a74c2f1863d571d6d7631d02dd1373767e760a9b5ae17b2116402f26257f3892b979aeac8617e1fcd2458124e802ff0c8616e28fdfd1e52fc7b8c832d888582ea5d13b33a5f6a1edf0b2059200c294d18d45a3540f18c1450eb9b546ef06682ab6b85bfc34abbd41b37f52885ff72e13d6f9e4e80091b5be47fbc9e61f99ee7b7b12414c92c53dcd42abf8a6c157f3ddbcdf5c10e334210e1a4eea9d5cf4ea9f8d2cfee3efd7043913a993cbe78d3c9831f1c261d0b172f6ee8a797a5fa0f1fd977af938acb2adfe95de3446924ce33c98ae976f248753f428b49d72447f36b7a1a5d360bfd58ce71b259105dbab3c1177c490c87f2cace4b8948895c7c2d8343cbcfeebdaf8551742e79b9822791367eb6c40a8bea5cdd33f284aed2db57fd2b54a2fca52b68cb5abf04419cbde16c477f689e8c6b7ccd8bbb03f0f2edba5f9a25915ec549ef9a25078abd3d0dfed42cc9dff821fee71e17354ecbaf79dceeace7e683c7c7c7721eb23eddd31e0d699fee498fde0701dc01dbedc1c7dab6f4657cba6dba2bb9585f3ee7866c2d2252ce9fbdd13c1cb6e637fccd3ff2d64f879bfe1f0c56e5134d3b4adf9f4100b06f13e8794852e94af2e3734495ffc133883c44e5b4a3891ce5fb5adbb2101434c18c68a69f77605fb72c4c5aadd4c67d3347688b5a3d4f69a2d67c716badc3a6031430302a3b893dc80838148de6a6d29ffdd181b580d7b6a5ae87a40df747d387a4bfe35d1354f9e0a2e9490aca86efe3372f5ff51daa6b6b78a9ee0500ed547123d7ebc183a8ad38105756a61c98152d2f7b82726641d3b32415dfc79c649c439d7fc07ec442ffe04da15aebb55d0bbf63872c79c2e56eade6676bdf6b3ef565ee3381f66599ce48f5ffe7565a969b99e0fc7c1f46fae7a4a5f75b3b08bba12ec8e7f9963d3bd76c1a4a3be6c7ddc85f44ab937975b47d369f2b7f07afaab93cb05a2f9a0f5343f54a3278cb0ba865c0c31aa71bbf737ed79affc1a4ee2b15352e5dd51108c4ca1d3037f52a377d95eb53be4e022863062af98d06c4761efc499855749e299a5f73a3455cefebfed28b46f36aee0f8c2f01e770278d3f0e726e224f693ed59ab0d599d8fc9b7cfd9bc2436fbeb9b25e584152282db1a61ffdd5b37c6b30b43f7aae2fcdbba0543d83c8ecc19f3dceffc5cf371c05a3373fbf7a350fd5384646e0c8bf75654104d31acf23af2e4e4f0ea62b0b27663556fe53f12fd7981e9156fbfe39138a5bf0fccb3e88d4fede7b8b45b7dd354ff121d83210176094224926c4c9dc762f7e7c9e36e7ebc0096145325bca8536dd5f86db89b13c9a3b0bd359582d7d9660143027ed6eb4c5e0fab54ef7a3cb91d878dcf05d8f7363afe647258446e0f8603e3c8480ef81796452ed9b3271aa581b2b0ddff87b9fda2ad74211fcd60e4c9b38bcee03fcc591a2d7e3c83c655f1134580bf24f3c10ad7c6a600662c1b98e9d88f15de78ad39f9f67486948e190e7de9e9d1c96d8d6be806f8c324ebb7ef9abceb5474ffea6dbf3ae47a87c4e1b0c5ef33e3ed36ffc04c8f16039724dedfee12c244193a5f9589c8ecf7d0443a37c6cb7edcd2c58c420f819afcff3f6727e74b41dc52012cb660dee8ab9cea587ee9ff353719704c77a592e4e9b23bae56879fc7417060c337313cf979f62d9e799f6c14d109e078238203cb736a514826a3f0c7b4483ca6dd06147c035aa79529c2b14bf69b19b3506ad5a9be8d4e820d71a03bfe2d87fffb9267edd2a19b0c4b314370765a6ea710727aeed2fda2adc824053851f97aa6052d90b970424242cb52d5c6424246d88943eda81309211463fb52cc7ee6afef171efed805134ed83e1ed9e2db91bdab06368f7d2f7b0bad5f921abf38a0a3803ee419ec39402c128ecad2d7171d4b3fcc4572f8c37aa31de8c40bb5a7f1efff7f5d9fba50fa5f03fd51a2f8377be23d1f0d0fdf0f0b27f6a1dc53fbf0301192b5cb39a3d011909d8d179240ad70ce8db2f1035eea7877fb81f6b1f8b3c484c59daf124284ca7f9c2844a77f5693917498d56ff627d8020eba9998ca76dd9599bf978b11f4413e97e69591184faac359239b1a46718923a86f09355b177b3b47c8c2e14c121b027d151f2c5d69ceaa0c175688ccbf558939e8125f30d49ad9ae689c16aa62d61404d5382009cc2046008ae0326a20804b9394165c7e90618337c59f950c18fcda8cfdf37fee26fbb6ebf61ce37ef1ca1ffe535cdbc783576e5e7ac6fae4b15d5378ad3b76b7873eeb3cf09039844c5e7f4c09f950db21fe2e408619b8fdf98c3370dba0592e97922a8f2e3d033e978cf3ff9627f383ca948ecba67d29d14d6e6f6d9191872beec76687b7e255b064c5f3b91b8f9a7a56f8447ddbfa5060ac02621f791dbf7268633750f9b2b3df8cb29f3c3d4db8c77c5b87701927e8e0bc4066d3f5ce68884e460e6abcd2eccbb27e17918c114644e348ff7d7bcf45607df985a8f9d3adf19b6abbd95c948f1ffcd27dc5218839f7c317bcb6bf1ba8ffe177fc25fbe6f781398ea9c23f57969c6f5fed1553d208a8fcbcfc00b88f0d4f892435a6ba90bef00f1749c683d0ed2d83c76024d257587c5b1ad89738dec060fe27bb5fe64e5efaf2b23e30b346690df5dc42c95a3f8c577f2ae73c81b9f9ffd43e7d0fcad6d6836da86e48d4b7bdde4c0004ea9f9ad67f8de13dfe819927d7e0580abbfcfdbf441541c3581c436c382343154f79776893aab7efaf9c8ef9e476e96af7594fef438246723a5e62dea38a7db6973f9e838573e5f6a69117462ddbb04585c58185eccb6774f8f637b7ef017de7e73f8382df3af67a19f8ee6e67c6caf4ef131381f92fed76973bd59cc884f49c7314627c7d0f3757c189ff7fda9474e40f7f120d88f438f35451d53f9f33314a4d5fb29bd439f61c190b705c60961955dd6a9cad12b4cdbbb0d48dfed2541f0e2c72edfedec1f36e0bfbaa6b1014adbe49df7fcb7e6df5ffc879766988be4f935670e4e0f0d27774802c8beb9ecb2267729bf39ba2bff21f40fe917fcc4bec677fd609fb43d94da50ac1d2dbf1ecb237681d1f69a986c81259d77dba298f7bf4a5bf6f9831a8e9ef693793f9b7f8d0842d42121985852d3d4868e5644639f97de4910ec8763f348cd7d5a5c5b3bafddd162d309935538a5cb41bab05b176013cc463662c4865a8fc0aafcbd2fc179ad0f8a1edfbcb5ff61fdffaeedbe7342947fe584b0d439410d00e7acbe67c4887fed3d0fd576973285bc45236667625e3d93a1ea34fc86f0777cf530331a9b402ddaf8d07ff0cab7cbd3f15a5ebe26f5e7a7b534787b4996cd67723e4bf2a97f5234590eb6dae72cd4efc3e83cccf4ce759f74cefeb3fe8c344dbe8d0f4e300db475e5930cd49a3f9500564f1bbfeae6aa3f4868addc9883d7ae9edd94b0abeb557a6a068c80a42814bf6259f92b963508444824354786d859a8c7cc125ee36063c4dffd831fbda35a1f6101e1cb56a4c83c7878b52c23de2f3fd7cd2737c50c58710bf4f1126bc3aecb3dc39f87ad8c86ada5d57c3a612078d187580eb4cd231051afad7de875a985199dca23bf0a6f5ec57d94c35671bb54fb992bdccba5892bafa012f06001241ca488dd0709d0233d7a2541c39b3e84a8fd84c327d90c0ea3c15dd3c0b7354df85b787a08493a0130c67d55f706f435eb1e9bbab7ca5f1433cd045d18a45ac74202ccba463d1fd39e96361c15757d5d69b172f04ec0526c30006d9bd6fcf5b7c3b83f7ce3aff7eeda40fa041e49156b9c004b98e530b42b7b15ca0f2b10132c1204c271ffc58fbcbcfb915e5d6f6c788659eea8f9cbff98bf3a16f923f68868c033f44c9eb04f7efcbb2ae638b7b5d00cf9e2b4df4d6875ae05f7295fbade2343f6c5dbc16ed12a64de9e7d8189055d81e40c4b1ddb04f579bcb7c2f8cae7951f44687f9693b51316a8b86e5d531b56be3136804e09a4510d5ada6903e61de1c9c11670ace2754f22979134acf6808bbd08a4872d49083c950e3909c5dffd32efb75f5602911fae00700fde8777802f403db0c3a4f2afe89ffed51f9ab5afbd6e57ffe6ab7e97d476ca943bcfa60fb8fa5e264f386dfa418cada83d984671b85d93713139ea981af23421f20bb271e49c538232a0642fa6b0a07af014c3a99852d81f8d5deca77b72bcdc171d24adfceccd756c95e2238a4862919c607199198cba70ef053cead328bcf76b23401413213c4786236002680c7615770341a168722840904b548fd81572c949e01918a537274a143f2c0db805223dc08af4e2e8d0fa92741b743796b4dda27f76e5e2d26d155fd59a339ccadef8d26b03ba8023e001460cde5e9e884c1a7bf363c7bd3fecb8c74ccf79a400387d384f92d9125680f20209f16ffa1e2a1e7ee3b6fd5eb72a6fd9fcdd79e9b548eb72881d9f1ffa882dae5cf4796b9a6f923819c7b3888efd83e8fa1cfaa1e99bdef368cfb274b826b1bbc4741f1f8ec632da942be33877712002b2943341991f26bbc9feb273227ad23ee8d07d949e5966cc0d8b66fc19f435ed568dbfcf6007b8004f4007c8158247b5671907464d3f0255f7adfb9202b7d6427bdfd3b5569af79e8ba8ec3356592ae13ee0c3d933b0256c9d303d61107f6a75fce91bfc5acfe4a07cbeef1e6954befaf452dd94295ed2be1f2fdb1fd1c22b1359c536fc3839121d9e2898e8f133201f9807fdb90381c70e5c9b1ec210643ac3889c0ca6ec7a6f470db2dee7c375151ba1dee7dc18a5160f7a9169e1f0de3f9959dc4f4ce84ef5490eb270088c10660d3ec535b401f3936aff83b01b7ef177fb4f155958658ff59dd68276cff064658f8bca1e1fbfcfc7edfccd1e63a98db8118217287b5c5d9f7ab53d1e1ec6f2658fabdf6f57b181cfe09154e781afce03a5a305f86bd63dbf9f078f6abe7556ed370cbbe6fa37fb05c26ef00924ab1e6426bd53f5fca306bff9d8695778a6d57ac1b06bde7fbad306d2d39aebf5e6f905086acc219e5671046ef0a56341d7f091985e75bd68f0813ec116f3b788f7aa7d3e79bd7f757dd85c6f34cfbf6374096d3067ca6636f578afc0087c8222a549316dc6dfaeae7758737d8d4f45b4bafe39aaafcf5eef9f63105eb7f9fd4173fd19043366b2be9e34fdae17a50d28cc48c00c505af9812d06f9c6469c7fc74f28f8677e9d07bff2ebc1bb5e3f12665d3bac6dcd2c2fdef2ebc8ac31fe0951fcbe755fe4f9cf7b293f3cfb0ffe50f07fee0f99d1e97fe90f6505be0a5efe8b3ff4e23b1efff687f2d8957ff187b2024ff5a0fb317b7e34f70f20cb8d8588a7951debf057bebca7fc508b11a2fa4f811961f609465620106459c5448a8b137c77ce9b9aa4ea19523da864272a3fa5ee270f486121460902a46acdb3660e6b9cccdfafa9e6f26fd7d4f567f6a60d9628bf00cd7b950dad7be79e358f3b980aa7366ee2b3bf5f53f953c243757cf7f3bbea9cbabafe06b8b8382776252c75acb0406648dafe216d6a6ab5af50c55fdeb3874d999e9de72fce0a1b3d88ea8d59dc3bdc992f970ba3d0272119b9e07d01a30e92c437bafae8725e4eb6790c2b6b694230ca6c297167e4c634ce2673537e39fbcb8c88d84282a0ca3f24f2ba5f74e860952f496a21e6cb74024dbea2a8f69baef6db27180c6680fb0c89033066d22cc520d967b5274c71c1d533fcf438aa3db8fbc9adc7a4e128ace7f2bd8f96349cdc358ee0ed1adefa1fafa973259bf73cbbe2d09760a2a8ff165fbff671a1f42c4172a27acbbe6b00ef3fd7e0c3439ed387cacb3bbff2f2f579f9bfcacba3575ebe7ccbcbdf3ffdb81f2c561f01dd09126e8837e446319a44de79fa48dbb3887f25188da7d7eb31a6813335cead8da00692790a8cfa204908037fcdc8b517907e9833a2055152bae1c83c08f69860fd36c1cb7d985f5a4b231d2eb2be0692d958326c084fd96455b5b0f5cafeb3ca7e63013e983160a1a3a61e57e7a5d155714335b54840406b0dbda85f73bc1aaa0f044c1533aa7d8ec1e235ff65cd553b46a45c321829b015c00570460292111b07e20611cf7c46548f382d39f29e1cdbbbbe80f52a1589dd3a0c47d85a674fd8dd5bee72db03aea9faf94352023aabce130198812bd08521d856fbd3dd8b431d0ba5a8e1c35fa97c8c48feccc76c1a5bf1e7fa6aea6ccc04191c7fc752bfd74bb3c705a0516062767284dae37febf9fed1ff1789ed945e6686c4f60f1ef683ff143ff9f2eff1137721bb18288089c1589bd9c7604e97cefc18ac81994776c85b2c288eaeb41ec7de65a17d7184e52b7662504a8ae1c1abfdbd05ccc165f00425cca3f2e1175aaa7cf81a18333cf69d0fe7ff29b71dfc8aa1ea7df73fe5d067f93fafa935fdff2d1fce7fe6496141d8bfc569ceffc7711aa2917efc679c96cfe0ec7dc7698838ff659c469c3fe2340461e59f799ada9f127a9f2cfdc6cf5b8abf197ef098cae6513c6335feb9ce6153a4f6a2a063c8cbe567c00222bd6a5c907f48ba34e299c914861c5da22c9ece0643c8faf6465f035cbe7ec7712afff0e3af59024e6050d8e8e04c701221f18d87e07fe6e6823f62baa0c9cdb97fe6e68cfeefdc1ce7a8c9cbffcecdbd7fafd6003d3b12c079d2b317925d15675aa1b494ef8593bf689afd3577fd8a7316cddf7f74cb567b9fe7ed70969b687b0c8d63d41b04ed2c3eb4f9d83be89da991b69971a45ce7cf294f5b20e8ff9f3122837e65df9ea36a7fd6f16165685c074cfc161f1e7ec787afb1a7ec2dd7ac0735362056badbe6ecdfcfd2ec3da6543651507351ef39ed3d6f54fbd050dfbfb691e7fff83bea7d2a68358bb810ee3ec9018dc0def3f35ff7e9336dff70c7a4bffde62a7e7ffcf008783269abfd5c9faf67bffc475cba0e1efc8b47ccf04c720f163e092f4e601f931c9112fbd168e04f728481139b79b6214580783fffb21f505abdebb4231104723b898566a323d9923210f9adb5cc92783b47cc7f7ee236100ba467d6f12934fa24ad0b74737321aa7364f5ac4e080f170b4792854609def6fc84437c8a1b7f0b66e30fd07ae64a54fef705260285055be601413616b951fb9eb0b21825200a0a8213d02bff3d410afa3ee70aa750c542ea6c639cc4ec5b1b8820ae03e0dea78bd3ad8d78d460626c54f25bc112089057f9fa5daf2446f58c10255dff99bcfc1abbb293fff04b45faf40f69c72b79f649f97d647756823943a10d1eccc96327144f8743024c38d933b417cffe6586c67e548eee3de03392d92d049302527a585cecb1b83f466a4c663727a27948f128a1fb2b4581f4e6a61fa99edddcb4a6417205964f3fa026d0d0bac41841fc51bd1356faaf021643622d4900315c9c2ade418aba8810903d048251853121175560f8193f66419bdb4a2b9d510b81d24337d05177802506caf509960066994c4c56c426f24212c0cc60b2fa95960917db0cbf4a24102125b19d67fa24cc3b43901afe1b8ec064e4e9af4373a2a1719a546b61bad2be2e2848cc2cd90dbf967f1d93ebf9d896e87c1f98bb7e8ac879541bffd7fb8b39aa569a0fa001a1209af7df1aec49ab7740a3a88acb5d461064d450f8cb6a4d118a30a43d6009f5047191c8dc5f3c213f384d3080984882a9309b70b16356200c3942e242d189d71a1f4c4758a46e14f1360042cce09a1f8d5ab3480ea787bceb8b6a958e720773eeb29e6dbdc6abf2adcb1efedef7cdbaf383e41ffef55feb8f8f1499d26bd38823af244a030f22affd65ebc30dbb4c30f326339cdefc474f27468fdb417e72f1654f757e5c9c5613366f83bb87db945f47a1b14570fe32dabbe107f0394ae6766b7862786c8cb1607964b23476f62068d0b38e525876c096cee3f2b53cebed79c43326468b702f468bc362f46982b93c4683657f93c272d8ca16ad05048ef647fe0a214957ff297f74996957680bc367c486ec0230eb9eebfc95dbd3b6dbf7fcd5affc8fd5f035ffce9f14107d9fbfd55af7aa73d9f8adb19ce0ff455d0c488d416456092b335378c9a92354fd18fe5937ae31b7effc8b90b452de9ea6eb79a7fee4e3e59c8fd9bcba9970f2fb2524f753d07c863c4f2c942f2d2496a47ebf99d6aac6276cde6ffd8d27e26ff8d85fb5f45fb8c27ff5311a8ce1ffbe3e58302b4bf81ff5c1371fa439ef7e6cec2b1f3d3b9b7e74b6da9fcde76c1e1f67dcac6ef63f8d433dff5aeb62ccc1eb5436ce9246f1bd4e5a8f6fbee5b7f58021ebd5fe9dab62eea4f2ef0c096bc029e4fcc557569ded9ef5cf75b29c28cc310b54fc6ecbf8cdb7d32b23832adf1dcdd37fb9be5e674e8d1323d5f80254f6991b08e2b3c231abb17ec73ebfc6fa92da75f34eea94f244f77faebffcbf5e7f3f3871352f87ffb41ee993e834a46d6fcf31fc2d179758819a9734fda421dcbda02726951d2514463043c84cc010b062289d1a4c4eb0c829527862e201491560d814a47af6a3537a475f72c393ded1943c42d243de6022b5c2b421e49bd1be40367fb6e4f47428358c20581ebe2e399a6a4353acd141fbca34087578f13d5c60ba42b1ca5b5985a4aabf0931d20536396b89f584f358a039dab6aea22955982e6439de336fa8eaefb9c294280acd1a47a3f837a1d16853b86390e9bfe1c8d19dfcd6b0822c3fb18738b3477a0d30ab3ed5ee9932eb049fa9e1ca6a3ff7ebfdc708c4b2c1d5d6185fd5af5bcfb5f7af730d1bb49b1a59f547f8cf6c3705ebe4c7b9eec7795bfd3115833b06bed6facce942b7a8eeb903327e6186e25ac487600053f9bad01ea99886d67d26ab3fbe37403a8bb79fc3a08fff237600fe661be4dff4c03cf499271f6e9e9c1d2e3edd3cbdba3cb97cff9da71f70622716f223c349ce707a64e17a2cc2189c70899c7d8c9c07d79c6a3d4676eb2adc39cc2e0ab8ca40e720290452810c0b60d53cf2178ee79fcf224939e5322099be77f2f4d3d57bf7ad7d7bf8674fe08005d6a397ba849ebc38e9f0f4d8e86b82abb53c4367c6a0c673c01d4cff35ce21aac64ce19a85a97a5e7fb04ccbfa3b82c04c09a868c2dc61e036c8a4f28dd539f4d6e370a7b87771b23f7b1cd2d8fdeed9fa35aee26f6b87fe6d5eba2676c218bbe1113bfb257619b9b13d3fb27d7e65fbe4c4f6397209393a9c5c5dee9d9cdcbbdad5f83f96e0549ffb4dfdf99ffeceaaf5f8d486e04eaafd8a2b7b4cfc37aef66ffcd0fc952b553a970def1b51b1003140f887f79fadf999a467805c1be8723643afd6be0c53fd3b3696de81ecffb61ecd2df03661790ff9eb5c86e1e516e2cb67b82f3ec3c7859cb26cc9db2821e236d266fdb9a3b38ba3f3ababf363f5ff3516cdf4b436c37b1959d5fc5bb56e275136a4c6a8d7fb45f8717d0eabbe2403f2d1cfb95aa6f1afbdf3b7fa4ae945ea5d6a6df32e91340a1ffa2ddceb1f212e3ec2f0baf399396579e0434448b9cf88f3884df771349d47461cad3fd766d225c78cf1769e806cf8d098b5d2640f9f85a9ce769ac3ee17f718780698359fabaa25803f3333c209282e48f39503f4a337fbb4bc94d3675106dd8d159c377644e878c643c1e9d28f9225abeeef4898c27864228075153bdfbef50ec5144b6a18f5de30c0523a8696498a191654c57f98a558e9d196b5eee52ffe5e2c98a1f8062c628802839458f9fc121d31100b65c1c490175cebd3e636885a67d6d2e1a2be672b8380aef4ad33e84d6aec77351e1e2cd9c805a1f4701d24a98982b4e9dfea01d4dab4d5fcafad2c4fccb23a87bd80bcfd874afde604de01641ad12a967a785daff4baf0f4225f7a4ff4f00c4fa60790a4fa0e8df69f4f37d58f85788cede2e2ea8f45e4747a47fd312f4c57ee3ec563e4ee86dd34349f863057da8d60e02d01c13603ceb0761ba1a99cb4ca41d41af4b5d60dec3b045cadba64a61de1cca155d911237eed43efed0c7cd9a9e0efe7e378c9e0f2c719f9573d2154e6ca769c9c6874acfe588f18397bae3961f567891cf6cadfdb5a9f4d67680ee04a1882d9ea589950f317e6dff87050bc28408ddd5b4f8ae2e1931e59c8778ea6e2fd676b3d16191c9af7505ab12ae78da09860399c1817dddb171f76263f6a7d2452bd4b7726e8cbb7b2904c62d3f05aa0fa977fd5462c247bd80cf8bfd81a4bba5151ba4f6fbf68cbde22d2dd09108c214506b49c70736da51fedad6b5cca89e1ed1f7a8c9cf06d9c985dcc4e1bdfc76dc4717fb608e14678655b88058c4778f1f9b59bbbd95c5f5e83c7e86316b34ebaeb7fbc8fbb9393e3ab7f61bd1beda05790939aff1ca63af45c9c60100c8535df1020705aa8e69b20c0d06f3fa0539d7dd4a856d33412859bc9d57f61c3549ec5104a9fb9c6683c93b60f89e53cd385f91baf518f7be461a4ff5e3fab473ef4c2e2498fe3d46feb63fc900e66c4337a47a773ee3f6e71ef323d90c27b4c26c8b91c59981c670f5efd39b170316e45fd7314b14f16c357d4d6855b9a36aab58dff3e8eaca9ef333098f000c514a8a45f5aa7e179ddf7e0d4b897953d059de2a58843801c2c5eebdb41acab3d658a1aa386193826281f0fa9badac33b57e304a7c4c5f2cbc3b27051ecde2e9673483a96b855fb2354fe8dddf87339e02b380f1681706c951bbf289e21d4d86ba4b8d02b3f4202d8996cfc4af6ef7e6513bbfde63a6dfa71d64bcbdd5f2de711d34978b5ddb51c440109ed909e825016d101f5b6ccc91db5d7e1e410385773a6b9974efa00c744643dc9e485ed93323e2c83c7426fc60b7d6803c5d73957ba1e37afb2fbd295fc0c418aec21c7dba12f62118b450d351a6a4f62943b4d563fefdceabcd0b73ffd47cf5ce3a3198479dfb92cf3c933332a8c7dd1d2ee0d9e2314740997dc982a9d829a6a1908452b3943c8577ab21f0c467f896f36357fff44c5e51c885c17cadf0c96459920b517c23472a2d484a76738416a12991a104df7a3d91005921ced1dbd41d0f6b4c2b85e46295af508324fd3c19e91a156cc5161cd5a037b84264ce1492ed5fad2aaf5853d3cb98fa7f53bd22f4523d6e0e1b6d21bc28734d7127c4026184247752c065b20f254fbc2a4f285cf6f71a20d8b2225c224b3a8b47d9e182bf3da9e753634ccfbd3c9e0fcba3f84b3c100746a5a0c8e6076da96c297ab7ac9a1ae4dc29bddf08c86239f37faeeb5d660909b4d6d122b5f49f8c7bacec3546f5f5dff56fa114bc4bf6b9347c0aca021cf1c91dad66b2d3fd90f4769edfb3dcd50e1c0172ffc1c2ad9dc7b7a3195b4234f89353d94f398c018a53b742d8e7826033fe0688acc2c3f7427adaf3c3ce5ab320b879b699c5a9dafe131e4b7feeaf090d7d3c9622b73d07e8d475a8d47e7f23d1e589d35bfc6c3a8f390c1bb1e33ffa5bdf86b3c14c7f151ed090003596aeefe6d3c32272405656a3c223f52f5fcf3778fc3cfd8cc4d9672f3f7d858b43b9d2d4d41a21c9911631a2b4e2799a6e68c231e1fe4009dd6f8a80d069f71ff925bd6ca0d1fb3f9ad1ff2db69f859987174db4c92d523b8e60c80190f4d17c69ac52b80f4e54f12e50377485d47519aaa098ad4d8a5804aa2f856cc47b12021899576f48ee2add64f6115f650e6b65a9db0d7e073bad5fd5351dfdf26b0fce68e666fda91c2f194d7d5f8a934529adf6dcafc879670749df553387ff5be204cefa2493dfbbbd65efafb2a3e21005651820d11dc2a73ed472c04235d20757629dd06bcdd0dcbbcd74378edb59f9bf6a5bc88b6f6992022cccdd73a455c92493874aedaf5763cee865f1d82bf5eeba5ad0d26d0a1e642548b62f52420543dc53f24a11f31ec3cd3392085b90734ded2f274d83ca3f913d8699a6bc3f2d3db40074878dc72b43c9d1ea1366c6b1f9deed76e70d0befa13f53e88614fce0af852f991adf287d4f9c0df7052f0d2e4072889ea2926957d0c98d101fafc1ad6fc7442d227f43c3cacd6316af28beff6b61a31ae0704a86dee0b85a716d2038d011ede1a7e559c57cfb3f87f7a9e30376ea27e1e4d1b8109f4092d593d0f8683acef4f3decc9a9f1ff74ffc4abfcc4effbbfbd2f5634b8ff87f7af7cab2d4302fad2982b7c9a0e78c25d243d8003dc1c46da10a47675fef98c2c9024e8a90d3e2046a73110d2bf0f3e80f7a526889f8059326992b5766e753a054ab987027bf1d43e9bf35560072c306ee0270009180ce8272b6ca458ef8aa323c9d9972426618a9c678a4c46602389af9d0145674068169c204662cdc861d45db4ee64d63a740ae4ec8e77ed561aaff5dc122881cfc288d5fbac9e20557df0081147a64c23381aad0f61b2ac75d3e760960133ad7dcb68b56a3d69541904f822dfd757ffa09eaff4d4f341f235194f3f6c8851b297c4ead17beb2be70002e5da4762aca53100c4c065103344af1662060264ab58c566071a4a5ccd85f91f7c1c8505ff97ef96c6d12301ddd0fdc69a849fd349371b40e4f523d4f8400ffd16edc7bded9dfe8bbfd3befc7b1e8982909335f47473228103ce95ddb44bb9c622b5904054f16549800de2717560b801bf28009864b6f9c30ba274ba6a5cf83ff2407ffb0e01e9ddb7f6f531e53234912e1c3df98445fd7ee9e1e8998158598fa5356193f5eb7957c6e641a1c78d92dd1cbcc1cec19cfb47dbd9cd4537dd4360233e779038b37d52ad3fa35a1707c6efcdfc7419e43b1b152e9289a5fca73af6745eef6803f2ac6162288c2a207dce616656712be25733146002440852fe83fd56fdfb0ae3f0edd73efec377d2fc507375a6fd08f1c4ca8a53b0d791ceff3916281cfdcc5f970a12c8d8dcb3c4d17fe6ef1fe3f13a4f62c01de9ea281c0111b06088394870038850597e250e8e281046eb39acb1ff8b06a7b1305fb9fbf5f1da3c57404a3d0b9f17dce904cbfa772f9f14463141e2e11ea4f6f2ff26d57aba7ad57a8a00b574223dfc3dd6b5af9afef2551f45edabfeb107de6a9368f26cf6c031365d5dbf6fba172330e227859c93a0b8db463bf4e2a4cd0b951bfd3fcbc7aab9c8d34f8fc8e2958f35026f66ee2f79b58f26311fbef2b10860a87546469fc52740121ca52704e0e470983c8a8c22b936cb2422204c1064fa678f48159f5959825199dc1c75de27b6197a6de79b6b246d7b259f2b0d88273f392501334b16842596c9e0a505b3a8b51f26ab68d06b15f3713bf3c61d91f6079bc560e0bb099ef6ceadc258e66c3e2e60270d90126371d920e191afa45daeba72965a3def0ce4f01ce788f6131671e99dec320066edcdbb1cc07ce8ed516adc8361b764a4471835cd40620c09ae493f87da4a4c1f68262bfff354f34ba08021a2bb0f9ad999be30338faa38a6d1d2aa732cb4ae930b3353cba9e9d97fd75182630a354f88070dfe6da3f809787bf9999184048c284ddb660cd1c3eb4eaa785ec59ce953e905c8d4a607563afbd47050b220b287cd90fff46f373a4a508ce719ff1aac822f6e9f4edbf87cdf1c828e6fe7ed964bab75b689f86c9845dc0f99950e61d3c348f408d953045258c0c6c5e918475074b756efe66c7ac34bf6393b9a311b1f05458b521b5f8b6d409913a3f6d49baf9961083e33a4c212a8b06eaa8defd0e2e652c087ca820a1803a170e2b06491fe9c84f24c1f54d8418181e916c89187454a0092372e08bdce9d25cc54fc0f75ce2a0d6b7e37a819127f71eb3471ac456a8ef2a5e223af7bee13abd1ae7a71f72bbc0702cf52bcac2a7f59ddb79aa304563577f91cd51a91aacee40ab89a88744d4473a5fbf060dd260773aee6cbd9a7367da66ffdf669d793e9dcace76f8164daaee6ce3c7860969e85321e9aa57772a4072f6d33b3545a12b8b4e65fa11f522f1ced22cc2f645f7a7e277e9cb61d93889c4728d9dad9a7e7d857741574ed6a744367c3b3bfb14cb1e8a563d4db0e84c5417a1e888b6bb3c440cef4992e3e35bc9853021ffb674c10f56e9f106107f89523f179ccf48f356704858fee680717c47a6018acdb6a6bfd9505d38921a2d1894de0f7dea1b012a40dfd84c4959dc402221d7904463e86c454eb9f7958e5ed253140577a5bbcfab790f56c1088da28c1c0d3b75a3d535cf4d04e49831d54dccb51a96fec506c9c475ab842c540915feb6a9efdb2c92f3ed3052aabb320adf645333fec779dbd732d2761bbcc4ebd63bc3ff2c81a586938baa7c9b208e2f636b4245a90d28bd41f896e677f16c7d749ba38de49999cd78be357188f376167dc5f87e975ddcad230bf6e16fcead6895f30c08ab4ab98211471f0240cc0184142603e7bf606be413edc90083b10dc60928084e0c58184e317b6f3dd5706959fb1f4a657028adfb121faac398bff1163b497f3759daf009172f7c14f8a87234b6a0ed92c0d5ee7bcffe4cfbafe93c466a0eccd5e9d338fa4b2dbdfb82f33f4a2d7990b06d79d92a04fb3f5c5ba3a374198288c7d6fb9df8497cdeac9a489dad37066e72161a98582a5e1b8fb7d7445fb27bbdcbc474f42e4f48d0cedc21b5856c66628140f2cccafa96b3ec39eb926e7d4346412509908128f9d53c0391162e98a734b7fce0fe218462b147c21f33299ee2f390bec71bf931d5c6db8aba7c28363657bc7c4a4020e8047e049f3c2a0b703c62dab324cf28280e5c6373f9e019eaa59288e670e4ba123ace2958b03f3149048782881e237cd432c2e9305eb212c8b18d73c790a77ee4ba8ae7580392d03528c94bea5678295f8c07200717154ffc27f77cf5b734f557b01200e881cc1b9f797e7058c458e97fff33defff87f74caa7b32e30248704bfcfbbb57e721c5cca34bf9ebbe2e96851b3370b1f8dc18824cb0f8f4e7b1e266149e014aabd7333ce93d69e9e0513ed9e767a5d55b92803c92a389c84cf1fa07fc00e53b4feb5b6ebdb2b74f7ef023aff24f94661d64e447fb344b9ea0f0d1b3602fa98d87748282ece2b7bf78dc3ec5f1a3bda75bedfe848bfdc551181f936784cfad3b4c2ec8fdc25aa0a76ec0b9b387fe34de7eee161f9d24bc64878bd335a5dcd06c31ba0b026b8abd34f60b6f36588844f1009fb51631da8cbb601038e81012494c842a7bc83f815d60a2c624f8d6a973554f735af76d9c78ad47c3c005868e00dc44e6a832c0d5daaac674670099e0074c2a9b3161ca48d4581b410c2449cd75c52a9f3b4700178521c7a298e0635acfb39408cbcb246a1f6b9e338380878babf3483809e899968493c0f351a92bcc93f3f0ba8d8d3ef84faf05958d96955d69f86c95ce4d654f946ecbfc47b325398078d22c386aae4e10b2f45b82ad5076716bc7abc35b14dc28d787a0877af9ba15088e61856ced2637072b1daca2cf6de494a9ddb9d9fb892018d1dcba7d045fed95534a3da3a1dc6dcfee80207d4627d9401cd2ee073115a725990d56d0ea996b0667d5975b72a438bb155726a100beabb0cf821338f72c60b48e9d550e929b8d7edbb6ce57663bcc08c5985095c3c3293819891c440f24f0ce58a4a95bd2b35f2a3ed91aef587a4a0fa8d14eb7e95ec563aa7704a99cac67a1bd7f9b77bd89218bc00e2efb89109ffd696f4a6e567cb24d46f78955f9dc7ece6cbc8df44939ff14f7c16a396186214773b3bbb9c261debbfa06cd3ec4d22a47fb55af33f99a75f1734c9b7a8372e88c2b442340d57afce170fdeed160290299a09abb449d5774c18062144c947e178b7f71b8feb7d75910ab3ab3c22fab6465f53ca2ee3f825aa7124962206046aceee5353d471e896a4ebbb76a3238d57a84900434e0d92f1ed792643088c64f665bdae1b6ebb696f7b5f496c838b7da29e6f96eb880f01480aefcfcac8a9794be3326e002da30e41d6d94ce495979985e6e97bad2d642f0a3f56c35c51b80e0a8faefebdefa86abeb1b6b8990cafd3aada6a002a8eedff8f939f3d4b5b34b404a301517574882ff1473a9f37b9f06d5bfd1079b9b25a96c1dce2429e38979dc244f6b795958eb45ac4be3638d83f410e5ce726a1e5a59a7bf999f09ce76dd4b9027e67a41792188f8f22fc8a63ae7a47033eb638e1f498bc37d14b2b418c170e4c8e98e6eba0ddf39b89a961003b80748c056078f80c450f34443d39fd5f0b9bcec1818704a6a9f9f142af6ffa50d81140fa6adf8dca473aa7dfd6052eb0488ba7f4b690d7980ccbffc2ca04df5b30850cd115992c0a9ce8ec0634a6feac14d606950ad0fbfc66c5b284b030892a7274966868418b3e18776e1dd21e94f35282c60d623c42d5fcb73b4bb0f280889b9f11c8f85bb5d81dd5136ffde1fc04e304d5c2fb5feca59ebb2d902b12a46744ecd783dabfdd6abf61b06d8e9307fc3478406142e66c2468207bfb59a044063bb551f6c50f77d343dacf13b2f9155f9a64cf53fb61adebc1a8f29e07bfc2c8501b10c000f2b3d98eabb63faf3738a37efd421a5bea48dcea9c24b95c4f6a3b48d9ebc4b22aff2256d33e4310af8d1643c5035ecc8337a96f6b84f1ff9d50df396e0360872d33e3972b5619cf4970709266f77751c1daee3e9b1d7df45398ac5c837b3d570b5685f17a7e378b5eb09d76e77153f57f5964356c59b6b303fc1088a044b41aaf70c3386ea5cce8b1fecbb9e547349230ebff9c1fefcbe1e93dabfc6e4fd7ba561bde63b33f00c85a3428a5738f0b1d299aff6664c02b630337e2011ab7d6c36697dde32773e71e6a110f663e87e142262237f3d1a0bcfdb5c7a0b8d8e8c345879a9a677cc8032c23cf6b8a7cb9de21cf0c0ae7cfc564e348005a00bd80c070c8a1511d44499da336f7174b5665203b182282e3056f97202d5fea6f70f2cb4252f0e929e8925ab62b1caf538bdb0402a266b30d10eabee51f9785e133fd7d729f23456ff3f6268dbdcc704d2af7cb8d00ee4d2aaece58f756606289eedca1e1b6f76f9499e3ffbcf7b902748d2a672765d4ca3c3e576f5a3ddf3b91de51324cc548b3e7b5bb02407fad4521d7b5ad787837f859331be8023ea3dd8c3109ec7d7b429524864692d6ef445a40853894429581eac1892600bd4e2af5e3bfd0318181eeedddcca9898042199c995658653c95d54ea556c608659b58e543ff3c61504e0095fee43100c2800a6d3d4ca327e284c2cd2ca06b9885fd60c83baf7645f5c404af08050c324c860ffb8bf151e8fcb700861354f13e8295e600c1e2c15f7bdee80485d0c9ba30a04bf6ba605c2e282163231dff15feabd0c98aafe17100658a9074cf898511b0b612f55ff90b3513af035c748dcdceb55571588bfc524ecfd79c04752f8b17aae1c2179a1a8c3954ed8a23acab3e0a51d36017671513c52fafd141a5fa18a810dfefe6c60b0941ab17a4607d8dfdeb3b27bd9044be262d1d4884330dff676c7503d6be0814467057460a967cc53f84fcf6891bf3d238c01888bd805a185c2581190942c653d06463d061e806e1bd03e5706fef5ccd5f301e36efc6b2c2f66d43e2e156f0086a9116f624efa841df2ae77206767cf738a7aa995516604de943c4840c54871113676f740a2bafe8222daf6b17720ec9deb45e5412a1fbcd6988cd2a6bec19fe8e1d92fadc499a40bf38713e6bd0ea0fc50f4d67b67be734766aa6f96f851dd47eb2bae9844f5e32d8ed662895b1b79b656a136c83f2734830f64da87e3ca338fee34c73a42c1c1380e1011ccc3c76416650971b0882dcc1004cc4659694e1ef0e146d96c3ef7c3b44d871092317df0cc3d8c3182748a4aba478ccc401b52109e8d021d43090664dc585f83585b1444335d374e77c6ed3e98697b719beea58c0dfae14e463b7bd2efce036198a5b7b145bffb0cd2d8c5c40f0445165ce656263666966e49760d823c8ee744621b15dc0cf8c68ca481d9658a04577984bbf06add1f916354e3fe08a8fae76cd4f0f50bc0094cc058bcf68f270a1784f091a4b59f1b9029121e52da53192038f150a10b2563d0e14a9c7cc1c0c1eaacff831fd7a0132c2835588a950e80c503432406b0910982b2ca77268230008f10f08f4ac03cd601b3bcc69c20a1fafa5523b10c09400e0608c7b0f87f775fe9b138a0882050be2b015ff95a0e4ecf3424e7094e6fee3ecf9c3d3939211376a6a7567949ccac3e11684622823cdb0e0b44cb467741e55abd975fd656daf221799859faa42139d18767fa113bd38013ff90563ebea1114033bdd83c57c36090fb06d33d54ac86539a6be3084ce1cfcf1892dcd4ce12a1f832d72e778001786619f3dd7236d6c0e3b1917160fbd936ea3a4699ac994b3edd3869eac58acdc6e8aaf848006578f99a4f47f5c60984185868ce89d2f9aa7b048e001717b5754032fd1b47698e19b130101320319775ce04291f765ec5e29746b3a2f6f11acdab8f17a60d49709148dd25fbc7ef47c0508c6a7ed38d3acb1b9e7482c9ce2af313fd8997264dbc14d3e05bef42f9c3f40dbb5ccdc137af8134cfc0ec96d6baa60bb34c616d85d22c57773a0ca4b53c2ce7130cab55a87d49643ace5632da5d7eb48bb57b3dc80e62b195542152a9e2cdea3c4605a09bb7c28248b7f2bbb3f469869e85448a28536be0e1d73cac27a5051b12e37a1f0c72d45ae4a28312496eda7dd86af9b37614eb817604f409fd4d3ce386cf026d468fe364e96db50dc7c4f3ba5e571f4d47357e63bad336304e4d5c8564ce11accc43202907460c1f8805b83a2f9236b0dc46fc8a8065f6cb7f9ac8cac54e01894d0b20b731a40eb67b0d8f1058755ec633e0387a9d5b3692d9aefa0b85ac9acb87eacf9560a16e0f304b299239ad75aa15eeebdce8030012a48a87ed2a26887fee6363325e32e869b390e74e496217f3c0944a73f885cf3d5773f78b13e1917c73039b015bd0801f5ef5fc4683e8576ee63d27318dfdd485dcc96249976efb63bef48d3df37c928d7a93f04a272090ad311ba322b34ab9f51ff23ccd7a3bf6cce6c139b01c7ee9fa7a729876e253fe30bdb42df345b8ed4cf0f55e9c0233742fd58638dbb89fb290743ff7594a737fe8c84b484a1a39fb819c46ac5a97b1f3e48dbdad7ce5d9b5b2b7a6e28dd381021e30b8ac80716aab5ad14ffce908a0953f8b216e19309a60969a88f57c1593577bd14adc065b6f286cea2f1c7d021812130961ee849c6199db88f1a9a134491b1f5afcd3879ec84bb5472d218122b637ea3d69919fdf0f8062ee19b27090e4ca9f36844e403040ace62eb715d3c36863a33c0194c25fb0f44cede5801fe0e119547ad567db935ee55f475ea93e0d1a796778a60714a507681d3f67aef3c53badd3ecd4deb3512e67f1832ca2f42089dd5aed2fb144620f4b69dbc24d57bbcad79e8d9f8c3e57cc11da0ad058eb39caf7b69ead8f8b39dcd67a5707652f59b5bf1338af790c0c9c37fee30c5753a7346c002d159f254750c5101d75f6fcfdbcc3840203bbb1af272408468c1808a8b164d5b99a3b950ffbad8f8073752f8093a138fb29fbc7f5ea4864d5efa78d862c35545e09a902cb1c50c249f93eca529d575073d9a81e64fae4957d6a377a241191b38df6311969b3e7a8ab0d7bc00ead161043bb1c5ac3718f68b336dfceafddf17dd95d9d737c9bf536b0f5bef1b558cc10b2010c01562113d5bff7bfc5cbe2cbbfe165155e308330356ce99500a3cafe5a35bef8effd7cb78b33e1d4a7e16513aa5e9570636ef4a3b5259bc9969bf696246a2b2eef83160c2e5604bff81090e21a601f397ce05cbbf5246af7caeae7b9000abd9171a9c619564f222ed5cf03124a0fbdb243d5e74f3e5ff1cd5b4e9b49dcd7f4048f8616f073eb74b5e37411f1bd343fb45b6a44377ce21fdb233f75bd03bdf38d49157e2d12f406435a19070ca7513dde26832e9b769051009650309cd71c60475eedffea3c356b5b4e318af52a36c08a6701600250346b42614c8f0a4b19906783d7441fb34101716403dfb5be363a5a0e7a28dc0dbab7fb40e133df9ec700747ce989d4f5ed486fb0a035660e070d668ef78c25d0dbfdd6e86b521d51369d2143af9eff7dbdd8ce53d54bbba64c17705f7f0dfac6d7f0babe0eaee7e790914c9bb9b3f1fd118c77d389027d57f3668f602ca606c2233024448069157d8d1567dc4fefa3adfac91536999988058b86d78b02e304f11137eb9e5d4e3396d9e8c2480911c9c8ffd8b35bd763feb90ea9b4cf33cc8e334ccfd30739ccc2596bc33ca29d78cb099331dd8b91adeb1d78e6d9144336ddd3cb342bc414dbad71719f68452aa6981ca668749e06976750e39130980c656cda8181d24cb4011fab3342d915107ea6fac31952b024539a5efd5acc46905a48e98c7881ea8b29958e9fd24b8ac1df6b4ecf48c4a475fb18b6b2c1e0ab9aef18a00dc3c42402a21adf9aa8fdd1e8ff1b4ea9fc1bc5d943cad4f0e4b4a37d3a6d58cdc6add41c9fd609b2ce512b15f6e379ee1c1f62d27a0c86ad8224087f0c2737619e026d98bdf087112006a3827cfcc60f767d4690cf481c816b688b91b18b8d35cc0b148cee2db79b56fe1906130cc9c28bf2516e9ea1ecc383abeb2aff48ee1e08ba87b160aec5817a1b69c70f6dd0d7aebcf2976f8089f121c251c3d7413f2b1faac65746afdf0f0fd2a66181b35d7b08ddd15a73a4b104b27928ae9bbbab9d8e5d6dd1c8f5028599840c863d72879a3f054f387de14341e143b903876afd4c5b1a25c64e6b0fe1b2189dc1cf21d051be48d171746b8d7723d00eb73a8d417a40d954478e5454cb606d26051ad75c754ad79540e5832d1960d5032fa8b9ac7c6db1d960466c5472bbee6daf9646e5c3f3868fa9f2c9138ce6bcb267363a569f89bd60caa7b4a3b8daefd5c38367483933845e6bd6d616c55579ff8054e74ae0952a1f1dd47bc34ab51b45d127476c37d0b4cda81ab33eccad16f0a8759f0c5b676d78517756fadb23148b69012d0f1ce10cc02e1092ce00c0d06c0941c10015f697f41e5f2530aba795ad6ffdedb5a45d18486305b004a355a2534098c162601499d51c899caa5ca37ea97bca8e0d8fbd240dfea9e95715be9a448b41e2609e2b4dde21b18030a86b17bf34db5e79891a77235d121d68310dd9282afd2fa7db16535374dc035b4f38bf24b83f0a81761d4c37b6c1b5b5395e3b7bbab20cafbfd3db354c83e1134485b184c917008720ff92b8ae31188d5eccfdaf7a10c12798a2f2c50167d0e8a7d4f1d5a63eabdb2f5d6a13800784d5bad47e7d0ee0c3aeb7845b0f4d35c3d0f2865f0b7b682e6647e8f2865f8b00bea59f2ea629016a78af1cfb5e7153bdf3f83fcc1f6e9efc4dcbaef2d5ebbfbfea8a6c76640b9f060b2abd331d868b18333b9e1ce244aef3d84d73637c39c8bd7ba08f09a6039b590bef718459d9c734140fc8ca41688cf18cf8649bf7bd6dbe45331d19db36e97b465eb807517a61d14922d29e864a3b8982971a7d167c02ca8156fb1f3ebace9e6dac524ce00937087ef18d5767d32fae36bf4cc194e4a52d913b9234dc50dc58ede57d3b46037e4dc67bfee1baf873f03c1f59fefc8240d3232acc51603a74cb536ce2736ba76f16e1f9d38681e8eff975f0ec5e063e45a130f624e89ea7db88979bf6a4353df4501296f636dff86c3758f93c1b85cabca34f2d63c65e26d5a6adecdf44d9bf929e9c17176440ea5eea9237b932c2d17e76e38fcfc8cf37b4181cb79199ea215f75cf5a8f936c8668079dd1ec607c3d2688c6e34e4b3e065fb5bf7ca9d6c640d6f54674f36648c5c3d0609349e647debbc64b68060cab1a71405e9a3ce878fedcc6b3fe7a64b55be9e72a3e8ce3f6f63cd1b5e3663bb7331dd9a7d6d7f0a0b1ddb037cc2572d28f3e30cb10bba1f635bab7babaf6052c335ab7cee8ebc51fa9745c67019a27d569e200ecdb482a3c98d2e33343d2aece032a3d9c33133453a200ccaf8e8c32345f0feddedc46be369cc3ec43434d3e85a1b9762e8c4f884600c58fff597a99599dabaa364002da4e8c85e0367c3d5bfba9241ae8be199cfba55ce0d6a1f17fd0b97511b3258a45e3ffa458f15d543e58c491b2996175860bacef4a80e5bd95b2a9a32d185aaf70eb2adc0edc1edbfbbd7da9ef1769233193d5fb62f8f1a71053677304918720b18d0f41e45e9ae153ebf50d41bd52eb6b084f0687babec7b5821b43985eaaf94c73f0892418d06869424a40feffa87bb77655716501f407f900def5b11202044109888a6f8a1a2e2a3a50a3fefaf325e8b8cc9eb357afdefb3bfb9cfe16cb51332124954aa552a94b9d0bcb513660756a6253afef8a6350f9e17928e0edfbf4d617bd7d4c95ad1c7de7f07ce53e47d12bcfbcca2f1f6168f15fca958da3431eec40521e229eac46f778faca79bc18e7affcc786e22792f77ee74147127a91b3b9b8fef31e34ef956733de5ccd9dce7816af5c3b1eb8339eeb038263412d6d73192c21f1d687028f76cd788106e1b21ab96e589cdc802fb43357fbf948d34e302ccd50c5bf53fe1e39953492c307c2f1f18b3f24ad5ff7098abcb95a0399d72279f22d274d3cf70499ea8891b89afb65abc4881337ebd061fa64914fef16245513b58ed5b5dc7a467120333be923b86fc374c73e42f2c1af96bb0b621d958fbd7d6f5cadfb6da8e543efe6f73afa2846a6d7f397e7f18adeefe552805c176bad218c1e8b42799e22428e67001361cec23ecceb7b1c81102be5d1d4ac6dcb806216d3574ce19dcac18beeaec18983d9981b2c71417ce5c6b55ef66ac0a21130622126e57049a3858555cebfb71fe167ae9409b0c281168c91a80c10de0cbedb96fdb93faf3b1146bef21355922667a1e820cc0a3b061d219170f4ddaeecbf6f2ffe5d7bcc78ddb300253b2eeb1536669e5dfbb5331320381a404cace21b4768a9f470dc413c3d4adc81489cd98f760b3b32d59d0b8c72b9f2e07d36119327f4c639e3ee03ae231c47f69d6dad94ff725619c8b34af8dbb38a204f08e82fb19d7e7b86feca9ba6f66c7fb68966e6260acc0d99e10dc90db8cca75a38cbbda7f7f0a6ded363d67443541db289029ce8fcf22a7b78dccdc3d8f4a7148dc20e1a478ba1ad053ad1fc8a402b9832dd99cd22c788b4070d63e44fa9390a3be6385a746d3e730cb65fce59310e2599003e6a7df0172adfaaa8e34eb802342015cc04393218ec6c4e0d4875a49c651927a09fdc0af69227dd0c460c03a49ceca1a5b2f329118682bc68f215ff297009ab1888c241b3818f44c7f876afa8e2597aeccfef1aea0c36dec96fc17df3776dbd74b33a0221a43c6ec03cb180b11130ee20488fdff26e45e19db8043c07b3d9ce10c904c4e7bd5fedc35ae7d41a03f33ca87d578f88138239a19831ba7cbd8f58e4ccfeda9683a2a1a23bafb87b8c80f0f02b6e0db92fa6e6328c087219395981019a67743ae3ec339ecd9aa0726ebee2481075befc6d9ca05fe8ca33d4b9ea77f16c1ebfa5cbe297f7f92f74eac579d18ba7e5209ef27e9cf3d40d45417147d0cbc0f8b83d9b715e74e3fcb31c5507da9dcc696fd2a21df968795cb9987137870c78558d1eafbfc50925c58c24fa1827c5d24ca211f2f3a4c9f2b2eb1bed86dbe118683ef00af31e44b307d39d4750ccee2cfa058ec970fc9ce1495e0c7c4374c611ed4da662a0f2b181e142af2454d4f9974702469747c46bf3184f8c1ebf8dcdf1bb3cc8c7717d37f2345f31acb32a782455a06fbcfa592c87dbc569b85938c3cd62394c9cc9b39a4da6c5a3ed9b1b7b4a5e8f99349dedb1d94c8ecde6e6d8bc6f8ecd4ea3b1b78bae69f75ee7354367930a31fa3aa7013af057fe21b056ef7881f27c3256f9dd75d2072997ad9e183ca54f400f65d7643b923f0d5a87cba5d739718b6dc123f9763728f998f7621df594ffa98710f8261aa910db5625b8f1d63742982014267b534ccc56e80f07a70e267e7f49c079ceb8bd2382ecb56d6b0b29cd5bd3eebc969f0a28843f45b87ab59728f9c90913a5d7a8fd29ed2abfe6435dd05bafeca06e7772b80c5b9dd3ad7bdfb297fe187bc69df9364021e5431beafba1297a44ed3a969967a4119a6bb1ce20dc0d074e071b9987fb7e6b3ccbfb4b2a6878bcb52f1046b2bda6a645c6934dd3577b163052e79316a46ddec9934c13e3b9eb8aaddf15a78f7c7be1f6464b39ead1f6095ac6a0bc262f7f5d0a54f80406c90f7c917b6240902027484ca7e5caef4f8eb7b68030615adc9cc3554cb54b8549b73fec67fed2dfc7aff62289afdd17bebc1a5f2f7f5765c728a8a7a505ea76fa67c8b4a1dec8a6b0445d881b87ebb8d57ed303e5c4820123675ed3031254d2c3149e89891e1142824ce302cde1e831ed5260e2f48783cc431de63c15ceb4f6f5c8a9ec679d4a0f8c253484d195ebe7cb7f15411021e799a4a678f9e23ec8114a0fad76bd69e06a0dc31d12ede4a1559423d8e5081abb060fdb8de361bd6a1d6214673ada35f34b5f9ea5ed02123eb11129e5fe6355a2408afe18c9619a2c084b8e52e696343d16135b2bc9453b750fadcbe900737a81c530ee6f75d4d27a0b9837c94dd8fa4d6768bdeb2d42cf6e604fe57fb5e4f9eac6a3456dff03f412501f8b18cbf198a1b7701e5e400392ab38f54f0fc1d40b289b346c4eadcbaed369312b9dd8db81f661342a77801c36b6e63cb1b580e1be59227dd72961716ba43b7dfad65799801d6808021c3c409e946f7d837deaab66107a4df44c9a3420e938f0245e5312126c093bd0b2e10a895d2312d62512665f2b178d885b57046e6391ef1a311a60f4c1d063731c0cc16430c35a3d6ff087f1c21883a7c6ebdd2349f7ca26964cbdb6c4b53a6f8909b76fdd74e277772d66d30b5b376230d9cdefaf6f827ecc6f9d1b6ccc155c9f4313768d9130fb706d0febfcabbf1defd4e085a9c61b9299f94866f2bbeaee84295d6940a791d1f7bb5324362b2d1b207d56a28fddc38445853e6edd10e658479cee60056d58b9cb8ed6133720fb5a5d0d08d4ddc3a481829feb1182a81ed333429e98349ada6b0e616ccd6f7a04d7fb0a36e46dff1c012d8c3e30fcc96f843a8fcafe3d25bdd36714c1aab9828ddd709b258ac1765abbee76ac757953d4ebef95ffd834c56bfd7152af97d043ea4e3d204fe8f71bf1346f2c86057a8c134937df70aae21340c6fc0a017d8d27c6353f26df70e757da7efc852f66f2a6b0f8585859abd65f44e055c699b3fcc7fdceeff7bbbfec657fd9b35ef3fbeb7e8add684ea03eaf39bf8d7bfabbbc88d6e86e3b8fbb1de8af67736c76bfed894f3719cc3efbb2f166cf68dfdb2d668fdd62d6da2dccd66e51fbc78327d045ee7fe867fc6d07040548da0d4feb3c11ace5af0ef52030181eac993f4610d7fa7ea5cf885efa8cc2f044a1626b3d779da7968f9b30e368eef7caaf769e8d339831cc78dd9e32faf66d14924ffdc8cb5f4e8c1e04297d015339ead0e0d6bdc2d23160e936d6995d742711cec528d4e6fd61c2c8121631da6a3db326cae877f24b1b8807860edee4c98594ab6a5926fa6f64195cd77bc501cc3cfe0b6cd536e5efb3f65fe9e35759e78493a315f0a373e708b2e468a1e2e8dcf77e9215a7a8a93fe681de5c1cb57f30afe6d5b9174b278b975628db2c0e4e5a2c9de7401be7c37292758d84c9f3f64ffab6057c80910013e03310bd8901958341d1269afe37b449bffcbb03a664e61fb000e5bfe13de94b37fd9f68f951388f646949fc00c1ce2389d5b876fd566c449bb9e1f00897a7246fff7bdc68fd765278b7c99c37c6aff016087ee2c7127094746f44301a3d38b711638803f17055fcf65cfb4bdc5c6afc12c7398fdbce5b3f748f9f107f90e4e8922f9ee1495a58cab1c354fe5dc472ecd3363d8df6887b7bbe19cf51e3af7cc6863f8d91194963651437d656be256b9549824d7d293fa10f2fc1acd6972afdb2f2b1495215dbfe472e5c958fe96973bab0399d4123ea2da70f7716ac6cced6c325ac4659e0cc8afcbe9fe4c324d4d368b2a7a66f0666d82c1ab0be5ffce8b02c44b977d86a564683e13a5aaed2a63e98ec83f6b468b66646315cc4e95af2272c598416930f0e95e44f0e74d4fdf68f3c083ffbfa3387c9e397b9797ac6c44eade0985a6e33c9b1c19a48eb36d033d23176e6aebee906c5b21b882a0d8e7b5bd6a36c608ca2652728d24e9041723c51cb0923ab387536b6beec8464d909f293aaab9e6729f1bb54f81561efa58f765ff6019ffea106a733fa94eb27b9c277be33f5d4dff0ec7ef879773525fbf9a449fbb362efcdf34e63a5236bfd1c44c1111ac83da14d94561f7677315b6c79dc9af04d73b6d89def5568cfd0f8b01f05adb2f3966f6dc9c21b84b415dffebccf449e50b2141a33bbf299d5d10a3ed4728fb4b556d7bfb50eb02f1bf27dc3d7f630f04ce37d5e62f5790938d852d61ca7740a83f1523bfba176316fc239f2904f7dadb487db6b848c45e37a1734827907eafb2239bfc2240023d51eff6acf115e9b3c6320c21f24bbaed65fef8b66142e21d8cf916737765a6bdb3e5034c8b446b9ae30707253e7bf6ff7f9c01df1924f00504100222ae52af4e14d703d1f3691bc9a7b163c92903c62637c8f17e33c59c0f308eb6e63bc5fe0ea46db5ed724ad0fac77ca5eb7099d8f8d7659afb3a18eccf1aed13932e471321e0299798d49efb23a8c14fdfa5a0f19a5c9587d5f6d7056db67dce9023d620371ef48f204c333999bcfb86d8a7158b5f1e6e374d2377d03f59ce66ab28dcf7eef7adfb3f1b5b9ebef7bce13808db876c36788264360311a9b76a6af57eb92cbfdd9d73ac27750a04ba43e2138b91536d99cc0c4600461cc106264aff48c7ab966d0190323d40162421621c42323dcefdfef9c31271438418871b4fca91f0524923a7eeb7da37cd1d07ee0008b2d0a4ba57355fa798300308e3110bce325c20018318effdbb66afba5c1b7b6a4cc9250109ba3ea235013c32be7e7a79e144cc4963bcc888532b0a6e8021e078481d22fff310f541c3495afc1b397e2471f4dc46373f6bd1db6f495fd394a4e2306309a7a272f53cebde03ce2cc0cbda9c32bdbca2ae270da1c232af94f48d4d9e83b7f4a7eee9def3db1ce093f815a9f84c4ee1c15930c8bcbb96f35c5737a1c3acd71c7d9ec4f2c6fa687736b3688f78e759835573e4a83f533ee7ba8b586a91f37817cec77fd96765b34827c90b9e48c22e7718296d34e26981f1bfbdecc495a2eb31bfeb1fb01e19d8e9ecdd1db1fdcdf69336874e4fa3c8241c167a86028698da7744f1f7463dd4b17730f3b9c000867e40802c1a7ff590c757e6c4010dc5d758ffdca092917611d0f5c9e2d3d040715bf0000c68b6ff50c50f699fad37b7a43ef29ae2ed633c492f9e8f1d34f79fcd7d84a16ba27751cd0fa1edc3645023f747312cfc2fbcabb7f99a1f33eb81ec9106f486a85b3911bed57347c8e137fd4c94c2008894677963f9c0fbf3ff1727a767367456655ae1b9dbea3b373a29bd359f7944e9757348a5adb80348ca9699170da20ebcceeb9117148506e71c70a66fd4083b6799a184b87e541b8d935cfcc88d0e8b182206c46e3b72862e55a227c17cd54bcfe54c5e460044354d676d231ab75bdec9d278004244cea3829a192d1245e5212d636e1b03ef1c33edd77dd04c5834bf7c9468e7138f0c501af167eb943e1add7acf33cc07ad770a1559a2b0e0d203a78115ca7116bd3078d4150aae2bb7075883400c6b9d20dbf63e0168af536c0d0cf230cdb118b6c33ac8893256d2f8da5fcf0b689fe161bebe79d367ad4659f7753e967fca25f73171f9def71a884d916453636b8b0b1d19d8df4994ff7e6e858ea65908976b07f644babd19c9c8b10f368349b26d9f801d7d80cf23da93ae3fcb23d5b57c7e83988a4b3308228a7ed5919f7e2b189746da4c777faf42e663ef29778330f11e59bfc1216e6a6b55c7a843ce01966d0b21f71d70b3a7961458d24ad4e6be3be39cc38de3dc97a99f3393678e299b002ce3db9de30873d68259930e5fd0b8ca1ed2bbfd1d4cff56a2498859859af4fcea0cee72879143397022ccc890d22b697a278c705715e7141a8ca29110d521a90000052169a3079164def511c4908817d2f162a28e423763ff31de1bf9c896c29dfbe6ca3bfcfcbf32b0e8f8ad122e51addf99e834af96bab3c5528b98624db6e697acd46fb22ebaee6d7437cb00ef161b28f2dbc8f9b2b272c7ac6d43ec7d60a1cc428c14f5e78246af8a13e301da88a7db2cf7778fc7e9acec98beccded7ab857d7d6f0726da3eb757e8fe6cbd962d645d39d157741747c8357a9a3a793684e9e63f33e992bfa8511e0c86870d6555ed350e7f35cafeb38b07156210449052c222e230662e3114044403013da4abcc288037edda5d988a7472c88ad6cfb44b0c7fc9d9fa37ce5e728eafc1c8fc1950404c0f0ee6ece6e639cec1dec6534209c0483a529a4e432381890cc5ef63e7f3d6f883f9dc5bcdc0cbdc07b40bd5e44627879a4d3873783855ba4f478cce8bacc4e4b7a9def3f4e07273d1d9cfc3447fc34f72613dad28041c75b6ce7c9fe9e79d97c3ca0add7d38e0ec59d6d5a8ddeda7af4d7ad563fb17add3598495b50ed2377a6662359c0ac1c8c1792c7c31eca81d166d102200113943d1b0551dbb39150d9fee544f9117b53ef4e72c292dcb95b8d03b3c9beefb4378ba62822369cf0910f3c24a9df1e409937868238da82a338eed9daf9ed6f62ec40748c099b45aff35ba75e4770f9762f65ca3900365efcc865234cbfce53fcf30e49d9287eda5cfd835c3debc3283227eeb4391a45336b14e530f4a7709b3cab1b88ee249d2196164df98cd33d3e044fde09a3a233210900b3a65a55e1b588da922fa8782b7b1433151c0be6a150b988972f7fd45d64a650074d7cd9be06451debe6d7789afccb970573f8114f1202f224cc9ab6fdbe8b0ecfee2ba83786a5df7808e786a6b58c04d6d0add052d953fcb0ed2cdebefa2adfcff27557be7be70d527539a0e52b9eaac2f9bd305e7ed43fcb954df9b77abcf68b22fc95de40483e14bd6230abfc4948d20edc5f63183f13c87403df9e2dcde9e081a68f95bdf4ad3f861e33c7025cb04eef71c4ca77b3a8945733ccf4da6f41af941fa3f58acb50e751e6bfd6a9f3ffb177fcdcb70d8984a9192b7b46400b45676401759c2c155bf99bada2fd5b5bc5b8ddb833d26f33d2d3aa75e3c902746366a59dc261a33f50fbb371d35444fb54c0564e2876a33d459ea5f48946dcf6848a1d72184f230b3da3d6f84e3ef554c01345a7e495bb9e4ce3d6988d963e5bcc403f7fe4bd732b9a9f9ce463d438f5fdb8572033cc3ddd7bce8eab515aade2d165711975a3542c2f29dd43dcbadfddf947e5f745d4332f0bee27b3e832d54ee5f3dc2ee107fee579c8ddbcefc0332408c2f2bca4ec44bffb12788bda2663bfc19c3838289c3a1772f09bf740c532533e099ff4b5717fbed7fc37df035b242afc3f40a16c53d53d3b634efccbbb50d4b991553e76e4c14fbf874af93dbc6cdc7fcc350da294306bac5591ca4904d3db06a61f8d3b7fcfbde5df847d7fcfbfc61b9a7624f5a1de92b8f52b1450291f6e0017e032726150c6c08865336260a6fc77941dcd480505210e08ee2c5985904860c1220c1cc024d548d235da0f00f17817aaf8629f762ffbda0ee7fbfb117afb4eab7694bdc15de21c015bee0062cbd62b656ff5b6c3a9e3a294807829716a81f22b1608338fe279a472cd9bca9738b1bfce713ffaf18ae7a3e41d842196e7d2ffd82725a3deb9e237aecac39c18b08f0040d68b01b592bfed1334f53adeb4de7cf91fd3f328ed6c01e0ec86e5c5c5d57614744a07d3c4ba974bf31ecb9d5ded1d06fb73ae27efce6c944601154a3e7f9297cde2673e3fa1f646831051b94db8b9445c5d7d70d34e231d89ddac38afc546980b077b6bebe16556af42339838de2c694ff64277f77ce0cf4a010b8f1194040d5d1807edbe47fe737065ee70fce85cbda777719fbbc678de7ced8ff0d4346a34991fd4fe9a402f21aca58ce36129c3ffd8ff52f2ce3f784f269079e8edef6686042517e7920e67cd741c74b5b0fac88bcbe058d0866765f18a136b444ff328a637e0e5249b8cccb2812edbab35d3aae4c2ac5949f57be90bef32ca3b5d77f7b67fc45b3873630e72fe62b05ef1fa0d119b080879e707232a3f581d9f1fc20479522613a67506d20e39e99e5d86cf2660ecb73b119859edcf32d5023ea9c021cab7b01244dd279b2a5f22697a7733ba70bbbc7e9428ec3d2aed43c50bfed217a302a890f8f2b62f7cfd9a5ff9f93aefbf6c4fe27ccca2197d266def1ee5c012fcedaee011ed5ffaeb7d6fb7d8f5560190e87e6028ca4b42db2fbd6fdb3737ef3a4ae71d34e64914fab7de75c2d47c76e579fa2e2675d26815afb9b01010759f49e47ec3241f227b18ec0609b76dadac70efd673e16c0c63b9da8269e3aab57348dbbbf7a55f706b5c5ff775eabed214b00668024e8bd80c586888ca42467d97683e92affbc4bbf704a6fc7cd4b79d204ac77f7757bceb3990e48d8c933de84b75af7be3269e733bd032aeee7cb48ff6b0e2a4a1556e7538954ab6d931cca1e31157f9992440048c2e771821ceb0b25fb9cb7331694b7e4c1e49bb8e8998d88e488e3be6599a7f0ae1e00e8fb75ee9f5b2af47b08b668f43b81e1b598febe7917a9ef251a81140600446c5d9e585ef19c0b94db8b011a3a0ecb9252e1841f2dbf0209f7e46e821bf4f428577bfff8008b0edb78b0e588bb311965f0f23eeeefe8464ddc8c13d69e5b51c8f32f578bdedd1ab359f06601d4af0d708ebf268e3008a007f24a10189091c0c75df97910002cfa00141a6488ee891b49d67b218df13fc6464a2dddc610cceb53331865d30f77fed47a7abe5a591ef9e262c18daecf4052cc2ba1fbdba4fe3b73cf956c8f6b85c5faebaef63dc78dff7291fc090cc6a5f8d51432b3e1a0d201aac13846fbd39cc4b2332f3416572431e3ca10e3df301088c079b546054107014801929cf1b95a7e2304be7b365141577db7f8a002016a3e7b7fc66cfe8a79f40aa7ce9ff9ae7ec1e7de7ddb5fe29f45e7a08efe79dcff4bb5d6364cb6fa87ba1f02fb662b9e2f7fd65ec3dc7b1d7ba7c784dfe1c9bc9736cc6cfb3319e7bcf60313682c5d83a9dc766a2cbc76bd66563ab6ab8e11dfc878e69d80486f5cabf9dcbb3038dd5e30e0c0b3c2d10b8f3b2e122d0674ff69ce59383d78c75af29dbe1cf55ab7ace0d4f3efaabecf9feceea50ca7770d2aa2ebe0e953beda8ef317cff688cd60d2f82cb2aef546e84c00d456395353ffd8d0240047a1de30ce00262b53d0363f0b26790724f0e2a176d949ab5cd7a13dd93269403646bed85b3eb17108813b0f578ab75d3d2a98cb3df8cae40866346d2cb38c2d8eff6d7abd56dc95efab23525ae18add09acb7558e73655327bf4150b94a1310940c56386d09b7a82e6c9d46a233c4099ca8742e4dfc688cd3b9283df05ae9da8b86ba7aa1c17f0f08c059ff581c5f806cb3e407607b0c4b60fcf516dcf8056b761016706fd9ff7eb2695fc6f73b9a7ee2a81b804b83d3ac872b5a9cacfacee631faff3ea51d935ab9c8eb43e4b88c840e0a9bc8eaf73ea8fdc7dffe99cfadb5c7d9aceeb9c7c71c1b2e2c8b218450539380539509d9e9c821e90450b1f7bb99fb1cc0fe3dcc74c3e851f7ec20affdaa220f1ad17a385ca6f73788de3eff2614e00f4bdcaf5f5b3dfdfd69a3fec44f41019833d7bf0923d22126751c3312e63673a281ca3b307b0871e63b97600f3fc8bff2c3c93a9c6f345d663840a922efdde55d6af38cbb52bf94b7de7ee2d347e8a4fb422f4e9a1e820c7e60e1ac072ad3d302ff5dd83a4670b017dd1733235efde91dc77c3d571549c0ecbe7691413aa7b28b2dd465bfdbee205ee5a1d18fa8d139f079229a30fcffcbc1f0c980d8fa4ad78437d7ff9d48e5437a8995a4c5898d0275a92f6282837daa5788699b723213bdbd3a6a5f0ef7488a50de768a942c9ad5ef8f7118f0830f68e931eaa38e935be91b27364c95ef397314cf5064c9bb17613c4d20768b4eb2fa60d294fd98333b085d602331760013ad7fe6c30b054ee70406a701bc4d0a7fe1088e90409a2c21e8294cb58106b95d7d02acfcc1bbbe354eb2f202c0076cf3532da5ac0673180fe2dff926e23eea1f0ed3bf6955f1f0119ec29a7b699bde43bf19917ff157f61dbf34ec3fd72d979e4f76e307ea6be2da2c5ea88c4aa30fd90a4724d632dac88b5ebcfd01a6afb6d23abc7a5fc76bee74456fa54f3a54f252f7dea1ff318d7e3ff47b6ecc3fb9c7427f239d0fea4457b76161f6c240e4e2a8835dd6cc7cfcde6f56cc71def8362b8ba19f09100a48d04d9ec8637b4d0c162d07ccdf7d9527a13dd5371a58b52f91442f347aef26ff72c83c209598620895f3461fc1abbe233affddb47ae4b8ecb5c54fea3e41ed2ab71bad1a87d8f3c129f292e632b8c1728d84f669997db81b84c8c205964516ea545e92add933d68b3a0addd2bd290eb09af6abcffc3fc272ffa6ad260316833da40f6d6e0121f538f8cb4fe146d12b01988173ef6a63c93a611022058c5e65731ea64dbafdc73eade82a2e9233a99c2b3cdc78bae540e3e15032a577cf35b2e6af42d579f76f156f4ae2f2d2a38cdd861140c8e61ea8c9c83e84e0ea487fcb845d328b402c8274154587751590f9279f8d4741f83eb2ce7cadf547339a1dae086561c2877c7a95cafc21d8357fbdb6b5e45bcdda08522010683e36b7c89c18485eaf5fdfbb5c2bead15fccb9c8a5d23d5079d71936cf3e768bb9ccf77de090827299deae639b1d199bdf6576d4a88aff5e6e8e4810910bfbe3f36c1c32fc587eec2b77317fb4b7e90f7bd5d5b3bc57fcd75c2e38fbfc98d8b34418d91a6a5c8d60103b2eaef5f85317bdd39ca7e2afb028a5f39eb70ace44e8759ba94c3e5947abf2d9fafa3294941c528ace94be5bc7ad67b6467697e80b6348471332f876db7ceb4a1c5b746e1f788d629fefd7ef7171ee10f9ba4c826194d27214927a1dd2848d1a4d32255cfb34c354d1b5cfd9eabe94fad90e7daaa02f0cbd33b8f79233bbcfc90e57ed374b5b8dfc8778d8364d396fb3a2f07d4008e6cc5b771f59d6fff923fe32d2bec86e13320c69dacec426f387af4d1bab53fbc79b2c188320b17cbb15e55d31cb3f62b5f8916ee1a0b7f70533a620efd177e84212856f13599078a3f7df12500e1bd7258bffc9fa1f67f3639cc48c87efa3f7ff2fb5a961e3fbdafbb41adb54a74d15b3ce3ab874573890e058e9ad3497b1369fbfb339deac20e8a85f9116b98e843af45ea5c273b5dd3d263e303a02d85c8aff81ee4f0994f45dd7bed1ad372e5149d34ccf419d1d222db46a7c9a988da9b191c273078e1ffb9d68e532db835fc7fbbbfa17fb2bff59d7aad46431a9217bf98d88d8b3fd8694fa5bfff953e67357dbe7248442f1f6bf0826ff4a96232681382fd5b4fe71d4f8ee70445aed9cc5dfedb7c89ea7c27dbc9190e1d2b90fb0117f4a9bdf381fd0ff6031516209ff4af02b0e6c6e6461b3ae838a8f395e313384a9656392d717d3618982ad6ae6cf7fe0a507187ad85e2970f5bfcc7781b7f90a7372c8c0f2c8c4f2c8b8eec21e56950f2f42822b9fc458b24f743254f1ffc90d67fd7f2f4c1cf88845ffc8598db5d2f43a527fbf22d3fd83b1f27fdccc7f9923f8c3fe64ad7da1f2ce3050bcb632d4727e636644307938693c95f36746a7e41d1f4d6e8b0e5e567fe4cb21f8b45e3eaf7580ca48ba657546db9ac9fc9fa1afca5fed10976c3ec51a0c901cc89fe515612bbb7a781829b7683559d9f5300bdb09840ad2f53f16ecc47824c4d675346a2cdd39c40306ba1e092417038eb738aac5559e3c7294d6f373ca0432ce5dd50caa38831a4f274297994bef365ee3d11d9ceee9987cc741898c674d7ff4053336e6ff649fab287d7c689b9be0d4a7456f2f392a1d844726f631184754e31fda573b054ae088913a5bb590c5bbb7e63bad995c1ae2fd0bcbf5cd02d8a2eba5c2f2e5a18da98af5cb9feed02d6064b2c10267dc54d587ce51f27307d4419f0643e52f1cb95bf7ffb1dd3e1918f76cbf97ceb95836d344d3ad3fbc00a0f2791582734d553aae8e0a67fa049bfd1642bf375ff7966f897bc218c180b25d77a5b88c41fe5d8dfd2d1371948e92eb4b6194f8b6e3c2d7a715ef5e3bcdc3a599cd838dadb30bd8e9b9df6b8a9bf9e4e9b3f2a4e71e74a31d4be58bb4786e29db6642b1f50016ef43f905fbf70f6c7b81887c7e6e063a18d321076285a667bc07726134156f251ca974e9a5823bd3ba70f6f6363bd3336ef5b27f45656c8eb5c8bbb418aac0f4de3f381ecd084bc6c9ea056af0273941bbb59db39c58ad7ca73fcb15397d7ba08bc10aaaeff5dee00a5f757398df3f69d0557ec38be980ee687152ef29729e74ec7f2fb299b95125f2101d76204bdf06540f11927ac8ec751c7d0abe334bff251bcfa162a1e0a1ec46aef5179e4b1c94d6fbe8eff2b9c6eefe9d43536be1b920f0b172d3cd783c4a412a7db118ab723ce4d643ad4c57c633dc5d06acd3e4661b4b672f24a004bd01c26084ec2dc320801bdce61a087dff27b7d7c3fb78eff127bb5b65181197f30a6532b1d8e7dbc3147956e741fc3b5c9d918237eb29e4b7b1495b72c79e70b363d785638e7b3e96fe423fa1bf9e865f792cc3ff3e7ab3e2438cf7f918ff8b4f547f9c8d7349812e20a2f476b0e54b836d0a2de83ab9db6132f551a3336c8d20d4b44e9bfdd6f55ecab8d8e7d1e5c2e6e9dd379092c8773e7a5cff8a92f81fcb6389d6b7d4972eb094d1ba08ab31b9c4af32af948f5f2e78b13e3833b5db450fbebe779abee370595ef9f7bc62b2ebab1507779d4f8dcafee2c30558ea2cfb3c99bdfccdeba5493d1f65a378db50e07cf8003f43a8d558160f5eca149a85f26a5a7c6938ac9158e85b913e0037ee927d0e08fb2a5a27d7d30270163dfcebee81dab73fc2d8627c489fa36b386069b0f313248cf0df52e9f763f184167ff9d9f2ff6c88abb3db4a2720e962f7c4cbece1d487feb1e5fb49493a78786b68d2e3c38c394ab7cdfdab1c22b80a1ec237dd1a3c97e1743e79d1ff57dcfe5059e70ca67d56f6c85fdca2f60f5a033c0199b85ffaebd91f31c0c8c5cd8c6abbd07c21eeeb079f9eb7e4fee09c6fbacc804cb3d6186cbfabeee8a7064847c7690fb9ff7a25f479458f1c5a8543e4721bce859cd8fb97bd1b392fd0d069ef35d7ec4f1db97e4d3aeec63759feec2bdeee7f7a77718e36a1f1367365eecf5d409486b1aedc57b3d3510aa0c53ccb70031d0979d97c923a274590cd1578e4f5071db20c6e8cedef365d4fbbd877adb4bfbd00bf23eb0358497f8b21ec7da259163386a7b61b8eaee398649bf6edf83811c2f56ba237046cad24cee07728d8067bc64bad71a817a8da018cc80140e7c5f239ff2407de7f0ce7df7ba533e1cc7de643f68b93954e3395b9e603f8e9e97f6ccef2649271a7a485f9af755cb17e9d89f8e53ffe57fd7646c0dcf8159fc5ebf67ff46bf77440f75af8a1f83dd26e224629c44085d1bb742e90eebf305c71d6451e3ff4cbf2dc8ff9a7e1b160589f9e87f59bfeda1ffacdf26c8632c873fe8b7e12ffa6d0a0dc9dfffa3be3a41ff515f2df79f11c8fd27ff9fef3f2157674820d8d67a2e74d47e1781f9a6b792c9360993eb44d9adb875de93fa5b6b954392bececa0eaff37928ddcefc954f1994bdc64cad431cab58c00447e61eb05a4f0cc8239e2148e63ff52fc913bd6c886b9ea26cccf16e3f1844c3aac7c2881977fe183f4e3357ebb951143de3a86af9613935ee74e7ad694ae55a0e2b6231f7ff509feca17fad4fd6340d46826cd858e99341b83304efff088a79d4879bb0d6ec97fb9247b480b83ac1f4c4d1f432eab944c50b6d8959027a6c6d04b1e1e21100b2abf553560782c6977e8a19069a12c384e541d9734430478c192a8ee8f7bcb620cf782aaf2d72a6ea7eda8464d1d08af6a247168d0144f7d6ec61f399bb91f47f82591b9e89b57bfb7f16ff92dffcde7687ffd6f78f5d90932d9193edb1136e0c879b21c32f5d40e8c95f73f3f086f4e1351c1c0f69a6fe1ea8b3378e1b34f486f4757fc8d9ac0b676a71d5ffeed77afbddfea8f414de9fe3826e2f78840334ca36c608a78623665dc7d00b3aed1ce4af7cd4e8236e4e849ba2838a4b675582bee2a1466dc4461ded84384c0b73d2b1ee3d95c6c2332d3119a0d3377f60655fa1e29b1d2148162a7e6d80c610046d2fea2073119b564b9ee13f829893a50a67051479627a858b6ea54c8eb7aae70b3eed75e51a41d01ca8356373d3fba39dee3f8a21e4a1e7efd7c9de0904e9e77f7befa2f6cb0f9869d01a58a98025e0268cd242cab66343edeb727f9774355efcd8e78557dba409e43b382a5e7981d07fbc6f11e39bd38a07ae3138530336ae112f760f349819c81a6570b6507130459c4ff7714eef7ae24eb9be303b7b7a2f9723dc014dd3062dc1869a1e5b17800c2e8a07db50758000f1d4ba645607d843adcb3fd7d7ff63fdeef7fa97042c20e3affaadcffa4dc6865a935b7bf6adfecdd074412e9ff5c3affa9594b3a0639db9ac4fc257ff91abe2eabedb1ffda8afb5b8d516dfebeb0880b43feb4fb79ff58fb27ea3b4aeaa7dbbf1ea3f328591abfb7d6689ceeb7e5fd6ffe0b2fdd8fa50e325ecddff3b33c967fb51f8d9fe814777b0753b96fdb996f578af1c7166b4deed0f3fbeda97f5b5566c5fd9f7fa098ce479f5b3fdc7cff681db17feadfe25416366ef3eeb6f1a3feacbf6d3efeddf0c4d08baf9ac9fb65e7c9a49b98d408390a78af35b81c7a1a1ecbdf2e4e965fa89700f94bd177bfb9392709cc7ed1ffe22f764e1e5ecfe5a9bca37c1e054d9dbc093d57683f75f6382d113acf34668b41b9eb0c7febd3cd8f7c1c1ca37053383c7382f11045dee1bf7f12813a973bf4737ee1102d47d647a65a79dd328e890a7d6c6feae25600f43c8fb032d820f3b101ffea36c2ca60e668f0e822934fd88091656dc8ba2abf7f41007e601cf87cbb04aec4c7cd877fdfcf25fc5f27ffa7e7a5d88c160c8c078193881de68b68d3a247414f029d1a83fcc799828435b26f924fddc59e5fe862e5a632b243b33065c1b16c811f55dd6afffdd07e4c78baf8e20a56f52cefd128efecfe06ffd893803302a09f7253c117f82d14ac258d6374b593e92f0fc13464f0927b2beedfdbf0b5b94006057c29431004c64ffd23fc22ab02f8a55ffe127bc97e37162d9defc7f03f614febcdf7d6f28e19dec8fadff03b8c6b72f61439563a4d2484a9646ff010cb91abfec8f0a18f4ff0f18c9fe5b129fe8f0596e814a908894b4f9f7f044e1ab90ed75ff3b184dbefaa3ca4f121eb13fc1480a12305569f7c43f819568142898fd0efee7edd5eb5bc1c63b38f57718abf51caab07c129f88fe63785627ad94df8b7e81c927ff3015bd85ff6730bc8e6400b0e46ffaa9e76faae8bff34758ad2785cf9a3f7ead2f18fe97f3f9bf07d7fcd6fb855fa8feaed47a50fcf6fc47d8ae3ef9fb5630d03aea7dc5cf2fb2dc55fca9f5098fc4277c86df94ff27d888e4f79a121eb3f7f7ebefc9ef0395eb033b12ced81b46cd4f58f1c76fe5dff8977affd7f6fe06fef3fef5ff6118147fbb7dd2af2aff4ff887c52f70f79ff0c3bf81157dad157f1d7cf6e76fe052d19b7a9fff03189e3ff7c35fe1ffa2bdfa7de5b8a79cfdea44605f705dfeafe4a35fe5812fb8eeaf9a2face87d2fe1fc8b9efb9ff347d47c297969c63fd7b7a5f0c7dee3c1f667b9197f96076a3dcaf1186abe7559df854f79e021bfef2504802879e621cb2712c66a3e87f2fdb19477b0406ff9c193f464c8ef2125ff78b2bfc6519697727cbefcbe1148b882b7bc612879ea2ebf17caf60cb53ebbe2dff6afc6cfaff2b0fabe6aafeeff9fe19a1fa8f98f24bf2392de91c2d794bce523a4f86724f16d29fc3bb23f73f5fefd13ff2a57bc2aaff1a1f8a75a8f28fc94970c496f48f117a2e841e17320cb7d391e43adbfa678d30f363ee5816f3057fc4fd177f793bff9aaff6afc4b7897abfa28927028d717b9ff0e5fbfc28a1ed57e56f3937a3f50df5f7c8ebf5e1f097acbbf507ef20bb5feeafd6ff3497fa8fa9497932ff948952b79a8c64ffa49eff57e3cf9940f547ff058d19ff8293fd4fb9d922f3ed47efbd9ff6ffc65147fca7fcaf8c752fbb15aff2e7baf1758feb27e557bd6a7bc567f4fb557ef4faa3d8b7dca976affa1fc733d679fedd9c5e77a54b05acf357fa8f1c37e967f1bdf377ec6d16fe427d5bf1affaaffb6f894d7e0939fd4f34bbfdad33ff9dffa6bfed479c091f058d28b3595f45388f77c809a8fe8533ea8f9d791ffec8f9277d5f8eaf5ab14b958ffeccf48bce551eb21db1fabf991b0bae2185c01405b1400be7e0730861507d07c0ee0b73ab2fc28e191849f6b59aef426f2fffce746c29e845d55ee2a98016882caf7ddcff6a34ab67f94e5beac3f96f03395e53d599f7a00fea325cbe5f0b448b6d7cc64b990f59d52d65f48f821e150beff90e51a95f599c497197ff20fc54f0c49ef48adcfb52cb714ff4ce5f863ef937f5cf9bb1c5f25be3409878a3f28bdfc55bebf283ed77343c263895fba93ef2bfc2af9cb54f4d752fc53f18302a9e38fe46792ff188a3f7875fd373e07ad2f7ccc245cc93eb872613d12097ff0f7f81f2b091f6a58ceefeea7d202cdc1a2b0e69880c3e0cc0d80710c1d6e7480716473a24354a225980216026560ad6025d08dd302ceccf0c01b409f1902028c3c204f98c668deb108c409cab8c5f9ba8304b30d4862f460f60eb61475995dc256a0beb075becb90c6a9c179818d0e0d793ac716a56b9e0176283d41d6c0634ebb900bbc60ce1d4e737ca0a3353ff570198f0a7e2ef0ade3cee152e036b83bb88df030763bfc7635807b2688b361c41ee3f789618197f0073126d41bf066652cf8f801edc83888c9071f5c8d67e997d0a88c3ef7ef08b508a5ac85c8954ccb8023cb234b1e9c9025c85a8493d4b1c89e86b7d41d914b1c7652b743049fdaa9a713bd9c2ed158904e3c3da24949fa6c7a4f03629a102d50509a7619a569189a23165dd2293327e56c8e1685b9839986e2d0ccf89ca55b301b10cf507eb566e57299ee1fd6a2b33ca04361ade3a5484f9575e4ab3c3dafac0f58efd1955b3db1bea21bb1862c49d1c3b3bdce668474dd8e603345cdd89eb3cd47daead949bcd1d37665eff816a10eb333bae5a8e7d927be3da15ecbaee8f699f6b97da33b030d2bbbcd77296aacec61ccdd0c7a94c43ccad0968e04efcb49632c25982472f2c6d8b4e88ca74b6c33ba11690fdb3ae59039994be985651decb6a888731b7b0faaf37c86c767da2ef3024f0eb42ff227f663da60f900fb03077861e2b0745c563cb2e9dc493afb56b67c38028e49b669389db234b28c8f46a2bce2fd7cb48173915dc9a80b1f472c2c17d1cacec4d9f558a5e3e7c1f5e38b81f5cc9df24b889b91249a356e76dc985d0adc4adc35bd3c700fbb7776a3b83172bba530735279537e0f0c937933715f19a6ee6de8639a3b2bef201e5b6344bcaa7c347337f3ae9d87967b23ef014fd7f0069ece9f3363ccbd9678f673bf3786589f1b4131764bfd9e47d178269aeb7cd61bc7717368c430bed2563fdfd0b1066dcd48f9c4129dad919189039da3515c27d3b21be487ed6455762ff9114f36bcdb338e8d49ca7aa3bcec4d8ab8b7304e8fc9b1d3cbf2f37c72ebf4715ecd270fda77f3aa37d1e37e945fb69336eb67f9adf2cdce6095df5b3e1583327f74fc9837c0e85efd1b68cb7cf8f0db1d2dcb1b2bbfb78411015d5df114e6952d4ea82056c2d60e2e8ad1969d4ff852b8985d1c634bfc794096644ea6a360bc243d32d50386cc98ccaa60919a299947c10a991f64de0992c08ac832090ea9b5212b08cabb7520ab22f840d6bd485a81eed8d3625304bd1305c2bd10a5d4215c84f68976485e857eea2052b030b83b2352e861849c2939b4c2c4719ec571156e9723529c20bc75dd33b94fa6eec913c5b39aceefe333e992e935f503a2c5110dd8c33457d1ae1baef6ce20baa070b0f7707477a6743fa191d68d9c7d3899b17446cc289e85e96c62cee86c86667373c667f3749698b3ce2c46b3cc9cb3d9329d95e6bc9cadd1ec6a2e60962fe7f37d329a0d508cf669631edc97d1feb89a97ce6a6f56a379eb941053f085819289f9f0163e4ab4bd6e2de2d3e6ba6f4f16bbd3d6d9f76071beef6c73582dfac1ae6321118fd2d4b3ac225e3b69d3a2459c2fb3d9c1d9c6a76576b25c1a3fba797198b4e2615a80c50e4be2140b2be82c292a8e56582c3d54f4ac68b20c977bdf9a5bcb4d7a181f96c5f2b43c88c31a2f2be7db6f7258f69c7261e564354bcf73ebe3bcd2bb1f174b1cd60eaa0e96eeade7cb4be7d01825c6495c6de39c2c83876b8fb2a44a1f3ddbed258fe0e9dae355d20e9ec5d1af3628d0fd63106dacbb9edb61b561a8691e67d966b96c768fb1bed9775b077bd5d95c82d6e098789bf6a97d3fe6de76d3edd163f9d816f7deea7826dbb3d3bb1d3f92ed2ded9bc76ab06d39fdfc781d6c1be9c0b4c57547d2417cbc0f76ce7da01f9f871d0b86ceb1c576bb7b23b27b93dd25d00c7b50ec74478b8fc3f3aebbd44489b77c8ad1a2b44b7e5ce146e915bcf5304aea57a971263b3a1da49b8765d1b897163d2b2b57e7f4bab24dbaa169bb671f4bdecaac11ddd18c66ce8a9ecafc9185d8f1ca3dc9e6d8e1e5a1c8929533a4e5202b47a3b2fc3867b795eb949779d679b8d7f236cab4ccf3e97d95d3cc3bd327cd27d9d8a3cd249ff7c69cb6927c7d1eb7ca0ec98bd524a3bd4e2e327f5c0e8bbc3df28bb251e4bd87df71202cf08385275416f699558e111541164c4e9655acc3e07eb2b3828fc2e8345a15e730bc9c5cabb8aea6ee69bc2a5a8f69e6f8a33d3c22fbc4c49e8ca299131cf6761665a730d98f7a9170a6e17e12ce4265c707862d50172081f5eb1ec5e1d0062aa5131c1881ba8756c7198b93c6679c5129df73f88a3b0a04b080eb174ce54bdd2fd8034bc0f00b96073b147fc111180c955f702ccb9b5f300722b0f9051712fef67e052ec31f5fb0009719dfca75f9c6b7f73b60716ba66c16195366fa0bb06e5f30019353f70ba68081a65fb007634e4f5f309398db7dc11158dcd1bee018288c965f3007878fba5f70010e77bfbd5fc15c8a429fb080391f7f2bd71185c9b7f73b3086e992b58662bb704ecb56aa53830acf88f9cc4af794ecaf716b784d5ac32a5e042935d163dd3aede336e36c31d357d6f091e83febb0c3b05a1af4ea192026fa781915513f9c77f375abfb5cb7eee9c6221755e7d7b689735b5bc17cb9709eabf9f04a5f6dfcf65dd349138bf3a9356bade6b3ab8b91b15d38fb787e0fe3052a29b9ef3787fd7e9d09cedafbc7726e562b3bd013a3bcb9ed4d7bf3e856cbc5f2b49c77641f2ed416fc97f2bc6e4f5cd76de7f83f797766a5a7e481ac75abab53737c5b1e8376bc70f6d4da3fa9753fc5add93569cd0a6acfae4b6bf6a076502e43340d23c1a76db45f67af77c9bb6e545173b94f8ee3d3bad5e15ed8b9bb198a563fda8bf86ae1f178b14c57f37b1a1fee7b6a6f4e1b8bf33844169b111e2f588f5aa9beb1a1e73e86cfb8ed9c123b78bab25ddcbd2587e436d597ded7d8c67972d88b8ded5d93d6be720fc3c7f231f483420013e826b9c096a10758052c052ac196b40d0fe5c904d0022ccfcaa8042b92abdc01ab03b17ccfea40a27e55a0001d2c22cb19d814d6029d65fd5820fd158bb129db5d81fc1e95effd6d3b8cd7f052f60377643f84eccf442003cc02228e4c302a0819ba82e5c9ef5dc156bf957c7f032805ac7f6be73ff61b83358035a002cc1896121fb6072b56d7a7bff4e3bff86e28ff3d91f8c30053407bb063d9ee5eb6eb2a46e7bdf01fc9fe546052f92bc0e22ad6abfcf70d4727f9bbe650297c4a1e6e53d9cf547e47259eb71924003dc00370056a839dc046f268d90f865a6a7e65bff11b0fba6c7f20dbfbfbf77fe91feec8f13ec04afecfbe5bd363018990f88b5ff320e9164de53c2eb96c3791ef3d5e747b92f34441ce5321fbb17fd1c11e2cf55e53c24b353f54c2bac4ff920107d393f3eda9f913725ed43cfcfa5def2fed6221ff7d2eeb271c3d65b9aa8f013c06573088dc5339986a5dfcb97f124f0c3de56facf04924ace82de6f2578daf2ddfdbbce82c6675ff1843c1eb3d1d8c52d653eb7b034848d8157093df8d45bdfe13351f1eb8effe829c8781ecff51cecf54200bc86fe9ed29e72b91746a836cff29e72b11926e856c4fadfba5fc1e1940c091f715cf06403b15b0fc215ffcc56e43d9bc2abb0f0105782a462b011621c4890d8cc35d10075889b0201e301d191c65c006f0c108838020c2c9142c0f9980afe0003219ec01c7a03143038b21939305041c1c619c202890c5c91a0201234913818e6c4e76e0714481a41052440529208ce0c1c901c2041e8294101668c4c9078402b98c5c211cc088c1197cae22dac194224f101d7085c68cb4609aa089dcfc3d8126cc18c3b48427277df04be483e1c354473e271a448018830b44145c6e1a10317085694214a3409814a20285dc742112d0e12020d2c163e604a2018ac00c60465124cc08ac183c6e309845a033730eb304cdc15cc2ac4473818e301368c1cc2d8c3db410268739413137739833b464e601e6095a81798279895602073017f021cc0bcc3b682db000c3833e031d8c082560de614151224c1d1611da7068c122415b300a5814d010660f1615da8139844507ed8405602488330b43ec49c666421cc3048c08e2049acca260719431630e718932617910eb28e7962f176ec1ac10969e5c383358c6682fac587e6ac2ad252c4b74105622f70c1f8c0f58ea7015d6169603c948525851544a7975c5a0cbad3dac627412888055c88dec04ab129d8555c14a8795b0aeb01ac8857787354595e4fd6b062b6e35611da38bb03a6075d095a18b249eabdcabd61504dc502ac6b5901b8d8e6e1cd93029d14d1024179e6088820d4870db808441c26d139218dd85dc300bf4906b32a9d013d01d121d3db9edcb85a6333b848d2737d8196c62c9ab46e017a829ec1836056a717b0da4928c75039b0e6a0be4c138810dd81cec1875186ac396a28eb00bb023d465f601b609ea817d02a2a31eb73f8074501fec0b9001ea73fb063b4003663f60e7a121183998808692d7ec623414760776056a70bb0f3b015bb907da05d218eac3ae83940e59c599a406d80223a026f018b69cdac039c68c8e8057d8003a06dec186a00c528209a75318112c3f0569844d4e17e0128884715529a8188d212db0c5e91a52816d46b7900eb0e2c119c1941b7bc83cd080169045d8e1f40819878ca10564051e71fa0199c02ea357c8063007d4805c6ed0f40e94608f230d720f8f8136218ff158d00ee4059e70da875c609fd106e403ccc041524699730743e1e1001c13cc0a1692f88a18aedcb1a1e03864ce088a0a4f016da0d0a12b9c0914031c8113284183e10d381d1c7167aae2c329312c0653402cc5148b4b7145e0193833d8c778269c18f6059e73670d7ba58addc27e8063705238501c0ba780438497dc39c281e31573ce70a8f01a9c0b1c3a782d1c01478213ee3ce1c8f086392d3826780b4e178e25de0a6700471d6e60e8e04730e44e038e03cc6184a0a4988b1181529eeb4003cf8354c00660006715cfcdc329070b1001ca7126cf4b984bd2a0c0f8c88692e38c8d466076200668a85b46011eb81e547ce442a91a1943d98133c367703b701386092e830bc32d7013b8c3c88713e0828d423879780fa3195086f71c0f0112bc17a31846310cc56809a7121fc42881938e8fff0f75efd6a4baeee40b7e97f55abb9b7b41ed88f390926523631b6430c64c4c7480a1c49d2a0c25cc89feee13bad8b86aafffeee973f6899859eb2191f3e754662a954a51c6e28377f8047c66832dd0089f058e65271f6c7084cf147f020c61d8839e5cd030c04ec046962f072687ca870f813632c9eff9e0035c813ff9e002ee198e0c1fa4f147b968f909beb0c10d3e7b3883c11d2e14676250874b84af7cd0820bc7373678854b86bf60f0069736fe121e4046b0e09e0519831bf36cc8127c171e856c8f73ee799009fc60de10b21eae838cd63d6c013b723fbfe5d807eac34cc8859fe23ab3305c29ae0b84a4d31acc8be19a4ae7cde17ac64de1a570ade396dc97ca6a8d795bb8f9b803de016e09ee08ef0cb73d7ee5de056e02779977835b4faefe77f8a2b827bc3a7c45f88d7b2df8e2f88579aff095e11a786ff0d5c63521839a58eaf78c825988f90e88d4c2e0bb20ce1616be0fa26e59dc1fc15dfdfe650cb40e4d616d2068cb8dc81002b967b1de2138431bac15047b8b083f827b64d9dc9fc19d5b0ef31770cfac3ef82bb8b7adbef039e4c4a2dcdf41ce2c97f947c8536b00e1701add7db4b7b7e971da9cb3556379dcdfc3c8b6516b7a5b4c6c9bed92fe2aee7cf8d114fb50f069fee4b3828f82926f5b257f52de8f864f3ed27cc87d0b4afe533ec99f7cda67716393b4dcaf255fa16573f5b53c4e2f786fe78bb8734ae2a0b172a23e8ba69ba435ad97364ca08debc16e317377abb8715c3ad336de07fb652bdc24cde0b03c312774824d7a7cbba17db84b8f6f9b55d1ff0495fafb2472c2d8cde7b3f901eda7bb64a6f430b88a9dfba8b0c30a0a7ee48b92ffa04fbeee47f83ba8e3fdb4aa53e9eba7afdc8aaf927ef8f485d181344b5d27ac1fc66fa765b3735888f27ea323dcd98e3b6153db8cebab6fbeb1c86ab76c36ae496cefe43e7c051ffdb9f3564fe260378f3bf5b28f1d90b1e36ed2b27f17e1fae69bac279639e3c277a50ddcd818e561196f017afac9f02d2a185bb9cbd8dea931aa1fbee6cdb7db3cce9cf12cfc583ae101d73f7ed870fd6183f1f364df2e7df0489d8963ef56b3f080f677339e773f69be5d97b15d8c039938e1d7331efce6f3fe52ff072b638de568df31f1371f264d3b5f36dbfee4187c2de578fdf0616015e31cd5031ed8cb635ab687301f2527f7b03a96f1449ef38295be0dad329ec873deb166e967e2177ecc8d9ec2df55e2b1ee97f118b2e968e1bce5654c4561391ee1e4d90f2b632ab49f7c0826cd4d63795c6dd2d3f4ba74ec46e9f71db251fded9ac481f4476163c32f632712855fc3887893569025b3e05ccce9c22765bf93a25fc8fdbdef4447338e07b718c7f18f712c7c702f7d38993ee753695bd408d97cf2a3df66e9d749d2c48defb9c4b283dfc59ac4963e0e76a5fc66399f2787c286fb902464aae6d23c323163f4254de323e1efec722c82bd5fca0bd97cfa2d4e2c7a7fc641547f8e4f624fe3cd577a2cfc3fb59fb9e5a96b189192ff1ce7a96d4da7e795ccb333b7b18cef9bd5ece9d380afa6e5fc2c74ac93feb4cc41d3697a3cdce6623e5d39876cfef46d6b08f399f1b7376d061fe931682ce379369f7177da0c3fe633f790360f0f74589dd2a3dd9cb3eb3c691ef2a435bdce8ff7c3baf4e7e6198b3be6c4f12a4fca7c23af2585be8f32eea2a48d0e1f66be7e2c7e97e786136a4dc79d0f74fccbdae83cd7bef4b936967cfa78f2a3e7daf8bc9f3cd7c6f4b9363ef9f8992bc9736d2cf9e4f1e4fbfde4b91e6ccab5f1f87d6d4ce26f6ba3f077fb678eb6f65ef2ddff83a4197ead9c22aee7fb6fb11945227cae930e3a4e8d7fe6871fb87bf85cc39e3e7b94365b4f9bfca7cf1e653c8b807d1c7e37366cb72ffdceca79022dd49cfecc35f7a0cc1da4819ad3620d29fae894393c7249e1d76062e45b361eb2f9c9d8e5cdbffbc99f37bfe7777c5cfd662d8f729f85e7e468973593bfa7dec2f926abc4066cfef1635e8b323626ae83e3fd6de9bced9676381e97f334c04fffed9feb275f7d94f3b3f95c3f1766fd2ce3e8917a8be377db163f6cb39ceb293d4e0fcbe37db33c861f89986726be9ca5a9a32ce7fe232786991cbfd2ee62ec2ddb7adaf4d43db07c6759e4f463a7c8e9b7dfe674b9763ed7df1634a7b77939d6ac838e6f3fe62dbb3fd7cefd736d2d7dc81a4f7e5afa302cd732f7392f1fe4b97696311e38287e3b2f5b6e990b4352ae9df6b39f903cf9c993cf1a5f8bfef4366fdaf92a6e64c96c5a7faee5497fd9fc59f745e59c0926a4f0abcdf8f52b6dde376973f3a31e7ef61b903227e621ccf3621cd3a319c7befbfb3a6a474a1f06112d64b49e73903c758aca3eea21cc1f7f595b4bbd92166efd585bfbff726d7df6bf7bae854316d6d5fc3a85d5fa5cf893e4992ba3722dee3c73c2fce9937de2ac7ed6aa93327fdbcffc1db5d06cfa7d9c27653c39cf9c36c5cfb5b5acebed90371aff729cd57af0739c57524e3177edd5ccfd581e5367f56d0edb76f0d83baba69e3bb8f5bdb6c7b3d57e114ff3f92cf848c5bc356fb99bd531f2d6f16f73503b7cae930d743a98f5b7bcd67ace83b28674866cfe6ac678b03e56d78fc28efd035ad16dc156b9770a0ee9f170d472a808ea265676240fe0f03a9fb95fde2978f81675d7c769becc3bea5a811f167bc61db48dbfe5be227ff2fd926f6a22c96f3cf9c9932f4a7efbc9df17fdee97c7b72b76de6ef3b1f9dc0f5be5f553789639d13b86b765b3eece8f6f8d746b78f1fc63758c6e73a7f3b5649bc762c6cde78f878cb165813b4ed5dfae0b194b592f157dcd3e0ee9b1775b9ea6d7946fbe96c7a8f85c5f358beb1ff545df3dccc79ddb2a6ee4389e7fad66d4f00ec7c56c7ef08e9dc6724669da3cb4cde741da9c36e771bb907158c4abf30a17323a1fcfbe0affa445ad2ecaf5d742b8ac534951f750113c58e1df56508e4fda7cf2d3923f2cc727ed58fd727c6f69cb173ed7e36e7cf3e39ab2c35cbb973a9ab8f1cbf8c01a6f9db42fd5188cbf5f53766ecdb57ea123dc540c98f8082724b74f48c6edd7dc91eb5078488fd3bd77bc7f25cdbbc5a62c4866417d3e733fd266a6f5628dfb2a7eabcfe370bbc49d47fa8007e9db8d652b94b5ed6ddebc1fb4befe607e3c9c5633f73077ecc7a2f4092963d69f40e17314967c68957c420a9f8a6191af091125bf58f376205831a68436ac38f85a3a6fb765fc769bcfc24d7ada93b98c7711ca5c53ce3956ec6576b2ff305bccdc4dc9db177d23cc8af9444813497f35a7f58495fddd9ff7b0f29e61c9271dcbb11f2b679a2f66c16519dbf5d2173bd231f7aabc3c8fef87655ce697dcb756183bd36bda0f3bb24f83bdfb45fdbfa32278c66a03eb7a279bcf50b69af9a36416ec16f1a1be88effbf9588dd51d35ed3c3dbeb556b322df904e203e36e9c9fd5ab5f43327453fc3097793999b2f5bb2065cdd9ed7f7c5f56c1ecf2bf8a4b8be5db6c2338e8bbed07e598c8f5c6b0c3e9c98fcbcb3edd25f5164e6948bfd22a7ed69a798736c57c487e49bb56c37b5423e57ebc3d2795e33bec983c82ffa6cfa8fbd9b361b1f4b677a4ce2e0603987dbea145c17f1fd303fdabb399b3e52c7decf59b85bf6a75b146f0ec9ccada366f891c48dafe5b118e3f46eea9f3c7890c207ad727ddda5459d2ef9ed72ec26451e27f7801f0e692b94f56c7d1e1772595ec8f51f1b8ce2cdd76a161c4a9f157bda9d9f9779fe51d471eafcd027bff0e9b3ff07ab47ce323edc543d7a0a0e895c8311daa4cde06351ac9d45ace8dcf808cafd8bff9c870f6861b32f95b56cc20fba3693732fa6259ef186ae5fd4f746f496c4f7a2369039ed8913a5dc66c927c4d57beca9ac9db6cffb58b070debe164d7bbb6c15fd17f723a7c49535a47f2f73fac3c69623d772f7b074de5adfefa54fddca3d76e967c96f97fc7de993875fec411f7ea3e43f12bff41996757f70d07958ea9fde92a6fd98b38eae4362e31b7dadea4773ed5ed8863d59cf36a352b6bffd219bf83fee81e6cf7bd8d8dc73d2f596f2c14f3951d1f755e70fa3cfa2b0755f7e079bb37d318e2e2ebf97dbfb9d925f7ff287cffb9de7fd852f5deb797ff094ffe0035387199d3ef43ec8d8814d8d6fec0ce6ce41ae638fc5acf045a7ba872d6468df1b1924fef17d9f1933ac6bd3e29e22976a5e198f89f4f3fd475bfc68777eb41fcf36fd713ffd713ffd71bf6a3f48fffbfdc67e56c6c64ef240eb1ea2221e72159385dddf653c8c0c351ee17eee84ea6749fd5a4dc0e8f70f71fcfedf2bb73ec1e37083490f00ec391ff600ac974fce692da9dbfdf7da12cd88557fafbdd73e128a47cd00866778e5b80d1eb75c0e80e2c4fa0280dae759f31fb3da2b9bdee1ad5f6bd55e3f31ecde76ccfa94f7dd00b7d14860874d8fd01500a3823f1d02a776ca4661edadf67252fd370560c13340d3984ce71423ef06308ca29b408760117b5077ba708e6374a4f4631a7b80ddd8e9a807559c60479b7449c78e00fb2880f8bbd0a3000c5909a1d70c489661c4e7dba680ade0738c85b0b14078bec8b61ce17d6027f558a0fd34a14bb0dce9611c37f886e664b93d709ed988c5d811ccde2fa907edc8e69bccdacce331be03fbb0c238b093782c06364ae892187911cf2c7d9fafeeb320b2399f6ff1607b243c830f163b20e571250f3eb89363111ca40c6826e8cae3e961ee74010d1a8739ed0244f6e6104ff7d70cfc8c928867c00e49cc7806532bb2b7028d039c41b2639b6c43a74701315c336019cdc98e8ed13e63d32ddb6281b61237b7637433fa0f15cd20e0613c14909f37d40387e57840e9a780f1edee4374c8801da3e98647e8ba890e878436f69b788c05b3832403727172e5a35d0688c5ce74ee2dc1f63ce8b3fc96cb61624d84bd2538f21aadd31df50068dddd64e06ee71740491750e2813dd83605ca05d7365eada4cb0938942bb91e82c43e1c33b07709191b1b7996f1d40312d86c7bde641c109080b36d53e071fe9b78386714239b7a8006f95000190a84a79c9278409b44c507556309e0744148df527413ccae8c838c9371b0094b1db2bf97e9c15eca0125e7e9a30cfc036dda24f40025b8292c350760c72ed4c33cb0634c9634b7e7832db96650cf324671b844fb2462d70cda590636a7180b8b040325537ec6018e9710b0faa700db4da80701adbb723c461ec68238aef21ff5a45f8703da7484b50f38a51f9c7a309463e32d8179e41ac51e217312ce5d0f82f938687b4b083d720d63729d143c27b7257f62f863cf2360d58369ec9191551f0a886d9c41ef122f015817b01b0dee16d003bb9000b6539c0189698e05e453167b448d9d8c6d76fe1c507ade254b180eb6649781bda9b4971923c09a586819f4a0afdbf30cee56d895f6afb88c2d1967d2f7cc417315673916b81eec6ec020d96201364a3282781c2f04c401cf1800c90392816d65002f192708221d4f24179031c0e1344c32e8edd816d919643b768101ed828c2f9ec8b15c462161042c8e303b7ff02ca4cea08bddc13ddbc6e3a6b0717e07e45fbc254c3d8f209267d70c25727c2783bc29ec3cbfc35df113cf2344f3f759c622c577b6f91d6d147fe979a4aff922cb1857fcfe38bfe350f13f3cecf30ca1628e39891c57ec73ef026816ca5cb1bf66f89cc93128622343733e6e8409cde196817d7772b2917a0f7221e72d4b8ed25743e11e9137b5f98ee257013399836d19676b0fb0b0c6b73b806b4fedadb0f20053120b9ccbdc73dec95cc3b688cb31bd8624040643202ede1ef19df0e492d1fdc5c955ccbecb78ea6fb36b8621cb18594bfbe838bfc3a62deddb7a1eb134dfcf32c614dfc5f91d858a7ff03ce268bef46faaf9797ec748f1cf9e475ccd1719b5723d9f713da30e162406cee47c8e9165624ce6a84ccd47dcce325cbf64b8fee92de1cbc3c0c31cfe3e67e16033c43edf1ea60925a99c6f1e6b0edb08d05fe3b409bb64c2976a7c2cc8c02300fb69147b80ec0b7c0d2ec486706ac7169a1b5fdd7ffa1dc285f0f2cf3b62641a4eb988431d7ffe56f060a9738e2f631a6cfb5fe92c73fbdfd9a4f9105f4d9d115aedddd0233984d1271d374580051f61d4ff7b5bb100227dd314c158dcec87b8665692514bf0f0bf9aaf802c392eace9cbfcd3f23c820125078adb3cecca3566207384bb3d7ff4693ddd256394249b6c132f01d1fa200f384176c8e418b63d0fc0be0093f7201ccb1caeef5982cbf2eb61bb6def2886de76c7af99b5cfa4dd1992f91a88bb04e28ee116e6415fe6fc0c98bceeb23ce399a37333b3ed241394430ecb4cd023dc3fe66cafd642aad6db7aba0bf36043eb739e4168fd367f35658c910ba59f83648c05ec033ec74301f5603397be01d74ac29b6c73b54e2d01ffc66f1baa62951d697dbe19a26c97c1c60a2f80dd255066f4483016880c051c7f17cbbed6a30b44e5e1f14da0f17493a95ae1377a7781b8aaf66187c4613bb9f6254ec88a35ee9b3eb68cf9f3d3bf5b9073c576b7a57f77234b8e4156c160817180a99c87dba0af746b121913bdeab8421ecb7828c615a636bf514beca8f4d9b6c21b6381c6df62c0719760bbd151623637c60103da25b9cf63872ee9f4f02f6394e665dcecf47cae7fd79bf8dcdb9bb177b0a00e3afe7eedf239b5f2819c27a3add851dc71645e0a2fc05863c39c863b8f31f4e2f1ebdde32492b96e94ff0537761ae82f3886ff4e9ed46f21ed763284acd8a6cbc83e24d4bacfbd0bb941c82ede1221cf83f620ff8985a5aa17bf63b1e74167d03e4b7b04c20156bef9afec91b196bf0a4fe66be26b1f0253b529c59dca5ccd763277785bbf9d8ddbc8c612cfe4fa48dc6820002dccfc8e9e7ef780c8f8c0917fa11e927539cf080a63cfc7147cee747dec727f11472ea639eaff9f9e9fca0f47d2a639f4e8832fe9f87b5cd3e9b11cbb50ae8716bf54fcebc8757338ced43c1f29dba8cccb8a2f75f72e7053f7e6b9001415b9320750f970e25da02e6bf131fe2ff8b26f2011e94243b5b7b908f2f335237a6e863276b6c8d96e834dd1bfb744bee70195fe1ecbda85d4b38c03846a9cdaf233d29f7b59c689be6e83fcacafdb44e3c7f233d578f5d9d778f59969bcfa1c659900004264dfb1e7f9723f80a4fdd33c7f0003600ac7b34cc81a54e1e60a07b6c2c5dbfc216dd7b82c53676e470a977a9e8f8069dc6c9ce700c8529fb7f2b3ad3fe7792ef720f27382e5677d3dd178477dd678fd59e3d5e7b9c6ebcfe35c9ddfcce41c701269170242a51e27a507202c710b2ced2206b7d7f6470af7a9edb7354edb8f344e68fb35eeaa62689bddca39e4b4b38cc1eba00b2ff2dea5ac53adf325b37a122f749e95f7dc0493f83e91355b894fb7f91d2625fe61f0e889977314ba83fc9997562ab6b34b66c97a0d35954ef94d8c64dcf4538def2290d8b5acab2725b6236beb27f62c75796295eea23a677a52f608dfc448faa22ff75bd01b74a126f1ef5b8dcf08486c4dca2eb154d5a625964b9d2705166325775cf12395b52abc157ed948bdadbaf10bb635def884caba953cb152ef4989a54a8f122bc7794fa0b27764db9bc04e2c200fd9da7bd68cfa78955b1bfccd58edbb92ce3c83f23b159131e8b34bd8f7ef3d0bf0e71d6085af8f3375391f63f0e9e04200d507ad10128136c201c13f330603761143012750bf3c12e04a9c150d7a4000f4511e3ee0f1e71d0422d998a1adac8908a6b147ac3919df5deed068ba7dc5540679085b2790fb500b48388fa787f9f521e8007884c1f707178e6aed5820dabc03472413d33de28884ba14d5af8b82fff13f7efdf1eb6371599faebffefc9fbf467bfeebcf5fbffef8152c8e6bf9e93ffff38f5f7c7bdddc96ff9e9e8fb5f47c4acfb74bb67e7efab396edf3e3e2926d16879a582f6bd97571dda6b5f7f3e99ad5e8293d9fb2f361715dfc5bb8e6b7c3e2f2efd7ebbbec6b7b7a3f4bba5a5f17db43263f9e74afffeaa63f7e65dbc7fad79f6faf6fafed3f7e1dcfabf5af3fdbcdbafaf81fd7adbab9596fd6ffaddefdb7567d527ffbb3f9fa67a3fbefbd76bbd368bffd5bbdfd67bdfeeb8f5fdbec3f56dbcbaf3fdf17876cfdc7af2c57bd5bebaf5f7f36eb52343d9d7ffdd968bc765baf7ffc0a0edbd3fed79f8d3f7ef9aac756abd1ebfdf12bdaae7efdd9a8d7eb7ffc729e1f67fff11f1f8b55fdd79ff53f7e852b29b1fec7af71556d74d86b33daf5b757d93ca7fbecd79f8db7e61fbfe0ba3d4a55c6ebf4d79f8dd746a35baf773bad3f7e0599bcf2d67c7debf4eaf5fffce397ff0dd9797b6d343a9d6eb7401a8b1514ffbf87cefee33f6ea75bb65efdfaf3ffaaff51ffa3fe7fffa78c80cdfaa21c247df6abb6391fd7b5afedf55ccb2e69252416d7b4966e7ffdf18b1e3fce97eb6871dd7c0b26c5b3cea9be38595cf8faaa3f87e7b3f9e42faee9e6d79fa7dbe1f0c7aff175715897a3a45ae17a919d4f1aeb9ceded619d1568dd6bd9b4d61fe5e7c93abbfe40cb4b3feef0cfab9becef7ffe32aaff7de02b6db7a75f7f5e2fb7f51fff857394bafe79f577fee3e77f3f9e570a395d5fb2adb2b3f1ef8d969a851f4aa7628afe97aa199fff2f4dcefffce3d76a715dfcfaf397f931e458bf47117868076e685e9e0fb34f753a0a262b1246c9478a33b9cf459ebcd80ffb11799bd4dfde0e43a6decc0780bdd7b0114cd9e968a54d0a80c729008c5ef76f13efe1ee6af3690200f5adbcdf41bb656c8b9c5e93050708861c00329eb4e6756a4ddfe14101e2bb3a41f0e8ccc5bcd968cefb6faf00b6da6b5be1fc94cc824253b474f41b22e6cd7b67beed90dd9c4b0605b03ad171734862d67f786f2700d25127c058f3f3c2996ee0ad47fa0068a84fa7df2f9c467ded45bbc5a5073039b665c67e77ee5f49d31e4dda794316288174c21e5d93d94620271dda0068a20f22e2cba37d9d8ffbbd85cb01a23c92962e5be82b6d8584efd80cc09ea817c14def223d4ec570321f2e05a0f546da8f77663cfcf20d1340017120b0e200ac3f87d51980f797b06a03307702d91980791e7ca983b3c670578742608033ce853702a0b80e72b9f3719d790bd96e0a6f29dbea3d5940f48f7080e00ef36e92df15de97e4f7c01300d422dc5f990312d42b19afd06f02b824dcdf23804e96ccc21b20f3460fb06a35a17f748bb9d47f83e27dc4c1ea586cca38908d151d1807dbf5d8f4ccc1be0793bae0e0ccc7937a9d431f450ad7ff88a27dc681327d089beedf7bcaa76001a8434cd4817ab22b8343ea409f021781254a9ca3942c7002c2278eabb3910dce553f86731a9bf498c1faa82937746be8ded0a3a167433f0dcd0cbd192a8e8dcb32ce2037b46168dbd0aea12f9a22642831b46fe8c0d0401fcaf15cec9f3f6e36878afdb37ca4aefb92daffdf6b2760718801b5c1e570032b3146113999f42fbe999b00a8f7ba22e7210071691b597ecab89099246cbe0224d276d45f3380f02dee37555cfb1050f065053796f38ed4e56668c801c144ce3f5bbd6ffba20e6749f46185405024f953396fedb56c87b21dcbdd96fd59f26532124e2efb544a8632451299371195e3a14e422767008a3e38605828f94d79ffbb3acc4ece0b87caf64eca93798c39916c1fd4615805de4737d99e4afdedf1533f75ff42b6274a7f21edbb3df54b4a7967d0f231b3da306aa3186cf5eb7fcced44daf902d60b4c398a81300805b239d9c298234ff35100e455f36d80b1b93f4ad004347f00f658f301d5bed4c143a826b8a65f86de8bebccd014e54cd24cd33bd1f4cbb44562a830b46d68dde0c1e08d9cbbb9ef8ba3ba50f2b1cccfb5c75ed37aa2e9ddb4f3b6a6a2b84e8dfcb3b99ea2a1a45773bdc3357d658a0fa1b60b58dbb4db30d014bdc9ebc30816b23da963ca551b35651cce0d1de9437661a4fb83d1deb4b57e60ebb370c131874132d3efa8a7a9d92cf4a77495703930021a1c72003a962b38d926001b9ac9b627db3b0a080dd6b23d54ed36c0c625b23de680c90124be2ddb53d516253fe140c8a72c34fa3d5573c8259a7319e943003276647ba35e401f01f8e32380453eb8bc5fc6ff7829e59d986cbfca3697fd9fa57e0347b637927f2cf06cfc59eaa3fb0f257e2fef1ff8b23de285fe72a619beba5fcbdb73251fdd50ff48d622ec6d387310849d4d3f23ef3c218833b24ec22eeabf380812a2716384146e8c15ae5dc15156c5d955791b51c56dabb84155de965671b72a2e401579bb7305e74215176eaafa55e5b97e151755f53b54ed75d715dc77bf1c5915f75995976afd34ff941438c9cff575b727f5e246bf77c93f9b7e4fd23f83a1c60da22aeef057dca22aef5cfa8533f229c61f9ba2df414e3e25a50389bba0c151d21bfa861b7f6d06b8b4e3d21e6f4b7983179295f64a9cd1cf1b48dcbd8afb3857709ef10355b8e3a682bb26bf91a7fb6d55e51dabfd7adb2aee5cc6cbe0859c691577aee2bad57ebfbec97bade02650ed577cd3afea978955f57311577749fd44e3fcb18360d2d7fd4e88c4e5ac8a33f1e20bc9775005f748aab85ed1afecafb751e356f4abc7ad4e555ce9f155b831d5b831aee2d6c9648c82a79feb7c322ded08286994e32671bc8a9b6f2ab8a6a8e2f22a6e5d8e474049bd5dc10dbee1deabf2daac821b0eaab84915d781ca3c1ac615bf4c4ec67fe74d65de69dc8dbcf2c9d5e06e1bf5725aedbfd7f6e4130deba4077fc15d344efbafc05df84f5c910f0a3fff669e6bdc4b355e76c65ed5ef37dce4fe5fca1bb42bfd6a79a7d2dec943c7c1a4bee91f494f842f6870246f34ec6c463e796f8f3f36a3b1c6d16d05371e68dc184bdc965671b72a2ea8cadb9d2b3817aab87053c1bdf10a6eb4d6383a90faf5aab8bda8ca1b57edf8867b37f2f8f9a7bde34955bf43d50e575471f1375c553f775dc14d3a55dc4bd5deef7efead7e7fed77d2abcaab2555bff4348ee1bf8cefff7e5c8d19fa5771e526bf89ab0823ce6cd0f3d70619f72cd2384625dfa9e23054714783cb24dfaae22cddaf6d29dcb02a6f647061b55f22ed61cf7ae39b9f951dd178f3f48b4dcea5bd010ad53a975771c62f1aa7d6c1b0b7d138b50e3ee54591f65f34ddf48fb6adfd6cdb49d8d9844cd73961ac71aa7e2970cacf256e9f681c3fff94379e547107aa70b62dc65f9b50c95ba030259776b4dc70663b3c5aa1c18bed28dcd9e05eab388e346e267154f57bd6faa9f12dfb8dbff55bb56354c5a93828716afd2d70aea8e026bd52de33ae6c2ad787f1588fdb58d659d151c75fb4937cb75dc5edabb8cfdfc4bded55e3792c2a711f6572dcb6559ceb5470453e8dae7f9157d47f0a57d47f5adea15dc5098393eb70b437b82f6507373869c7045771b9d1ef21fde856eb121d070bd43fda018b9aa5bd93c81e96793c6aa0c9b1887b89eb96f357e2922a2eabe27a5579235ec5bd5470535495376a5770d1a08a23a8222facf61ba5551cdd54e405e72aee5cc57955fd26ac8a7baddaf1cd2f51d52f53a72a6f52a9b3ed6935af4d1695bc3135f97e3a93e311338397764f4d1d369575fed4d4edd35515374bfe827b3738252ff9deaf9df0e96ea3f250d4dcc4d44eda2aefdac179ba45f150d71105ceedd973363d96fb8038b217c5be414c0f283e16f5bdc45d50b10f90b8a48acbabb89bd1ef6b1347f69256703352c5e5d57e57d57e67711567ea718d5b9b79b46ccb7e1755dceb375cbb2aaf5ec5bd54fbe5d57e13a78afbe617aeeb4e7b43630725665f96c8fc110f342e76257fabe3cfdecaf14b44151754713b51c1cd711537aeacabf681c593729d9947f65eda15487c3c45f3e11377d6387eaee0fa47fb08f1b37e9ef3cafc88934a9cda47883aff1257996f47a8cc8f39b78fa2829b1f8bfdd6dff71bdd2af2a6cffdf49cdb93f36fe4693b52e33f59e7db2793274f329e1726aee6b28e88b7953c6e7f40a52e59b04a5d121faab84f1a9fd0e2acfdbcb8d91f22fe34b8f36691da9f7c225005a7fcbcd86a9caa5f0a9c9657d8ab70859f17320ee39bb1e32ae565267f5c641c2c4dfc2dfdbfe0ae26eeafca5e93af96ebbfe06e655e8b5f379385d4af27fd773b476db448ed2f69eff2d31e26f1092d85c1bd547053a471632c71a37605170daa3852951756e5456915473715dc5715b7ec691c1d48fd9a55dc9857e5ddaa767cc30d41e3f8f9a7bdd34155bf71d58ea95fc1cda02a6fc2aafdbe5671b82a4f54e515fdeabcf7fc3e67f96947a2824ba3aa3ca7da6faeedd0eb797aacaee7cdeaba6fd6698d9b9bbc9b667fc18526bff8ed4afc2979c57c9bf995383575c4a258cf2a7668fe8317d7657f2f15dc2c34745cc16b5aacfbc3edf7eb9cd98d822695eb2b99f7675135ff35e96c8656665eaeb67643cc167a5ece92cd2ab59b5cd5d9254ecdf3efb8a5c1e12a4ead83056e55b75b67e53fbb0db3155abd6a3fafc16eb1d97aa3eaa11937b85a15a7fc5ce0a2adc6ad9dbfc81bf32aee6670bedda133599fda9df66c87d663fb55cedff5da7e3dcff69bb5ac8b67a78dc665555c37d1b8b690b89ec629fd6650ed57d53965bfaf153be2b72a4ec541819b4205a7ea9c1277d7f27ed63995f8d3e336ac7e0ff2acff645cd12a6ecc7f5337bdcbf56d66ead89990b89ec9f73d9907dfa32acef4ab712f26ae5ea4bc775ac575abf26ab42aaf5dc5d5aafa3dd72da91fafae1fe9ef70dff23d277687262aee3a6d9d9f2f1a07d07f79517f55efd7f41f01fb2f2f9ad61c731d993662868abeabf08612a6e8cb8b6923aea90586166d66f0fafacb9bc13bc2dc0ffd8996ef7e493a649a865c53c7b43dd3468612231f17d705e94a797573fd68f4f800c927f0a2ffee894ee6ef9f2fbcb8ee1d34f52792ef4010a9f6d7db54d28e1876257de3c358511628dc9e7b0b73df5ad3e1c6b467a6ad6887fb4bd506ef4dcb537c0410d806ff69a86be8d2dc1f9af640e22da6f444fa1108822cad3fb2b4fec8d2fd2267f43692f443eb872cfdf77f78e1a42d69cbf8a30546cfaf3785131c0646cec45c1f99f65a53659fa4332357d9f362ecb1b53d12ff69a8ab6950d3b8e1dd5c57fd60331ec4d8418cff89b1e3d3e88fbfbaeaa154a2ed907cd7e847643b3167e97585b6ab2bf478768596b7117a9c9a42fbb5cbb4de5d163c4cfbdd8cab6deefb34d435742be58c8d9e6d33eedd91d20b1642fb35377ebdaab8936d13575a7f39fe4affbed07e5e0b97eaeb3a4e5e20e8e871d2feea687fc93800834bb49ec354d299b1fb4d3f1d8310d3fa2113272082a96e9b7813c3bec2d7f4b89e98b6e3ada6fd0bc2f8a1a6e3fe0d945dc833717137f3a565e64f4bfb1b1d8b78327e6f9979f330f1d5317e6d0935ee5033e38ec0e8abfd844ea0c71bb81e9f5ea1b7c183968bacf2fe82affd6a193e67c5fceeebf863ae999783a1994f5cfb2d28e62f92b8ada06d832bf242812ff203d6f3d96de8787657923660f0aee7f3c0ccb30131f96567da0dad471098eb3d3d8fb55e35463a2a2e8c5d7da3b7aff5467deea68a9af978d17acaebb27fb400aafcd730f78dcc78211d87c8165a0e0265bff4bb9277605a0e0265afcc1b53331e06a7ec9654d9dd0365b78cb39591b3d2f1a0edc7862250f64bfe4ef7ef7535ceef98eb3d2d4f8fd3953b359d8ff4bce98dde543e6d6b7ba06dec4fcdf8b4b97f36d757862a3f73aefc002b3e989b3ca3f4889ff97e65f265c3b4539347b09adfda1e34367e6b6affc0421dbe2369dfe467cbc483eea75d5ef747da3e3d8e9869397d3dce08336d07d27943b6b51f0bbf8f741ec64cc747df8ce35c38751d6f5ecbc4a5a488f241d7ac0b5d1d87dabf16f323939799d12bd6769bf960f2a965f2be03ca1f084c5c807a1e8c204be709a89938ef9abcd0603adff598eb495c60c6a9a7e721744c3eda1a3f64c63f1d737fcb5c8fcd537d1da3d7b6f0a399af2ded1710665e750ded14f160c6b566fc4c8c9f775c8f5bcdc447cdf8393579a921cc7cd554f27786aab87c18b90da38ffe476cca23b90e8005700448f44372c56156964a3aaf5039ba1771c8c0a230542f216730e6ff8de75dbebe6a53f57cc9ae16abfb762f3df5dcc9576da29e3799d442d054f29127484b1dca25e0834bfd009a52f4503daba7da1dd5964eb77250879402c0a8ad7e3122fb54ebf1483d2b259540362ff93f9f53bac97620ef9f9ca1784c4b691e29e3b7259e49bea5baaa95f26ce7d9bf72dea2e48f69296f62e4f5056e83d7863b580308001adc4a6148e115ac1b8c98ac6b0058822c206308d521a67b189f910fa409138118b729446d34057b0131a039b7b3ff3fd4b358e523a99fa22faf2a5efb3557c579bf46859cfffdda41e545a9a79c17524f99e7a59e72dd917acab856fdeca49c1ad37290701b064fb4de7eaeeb7db9fef66b81aa07fa355fd577526fb94e4bbd657dd4af9d541d24e56a3e52f59b942beb2c4507a6ff54d72d7addecb0623dd2f3ad66ea4404de0b00b100749d60a9a78dfd32aa1c6e9e58e4e003a200efdd31a47b80f797c4d03d1c7b00cccde1a626a20f83045cae4e949637abf9a9d28e126ba93854bf340a64dc596a52abfa463dec6c29d4ab8a5b28f96faa2dcc213280d4fe89a97912a9670e253f94714f745c4381b7d4435b4dd51f2fe421faec7f2c3f5e9ffc5e296f9c1879429df7208d3a71bc87c11932c04d99b205b728f86d80f75e5ffba3e7191a6adaed9ab663a86fe8d0d0c05066f02dd35e9a761b56be962ffdfcdeeb68fae698f6dcd09ba1c575334ebd81690f416620a95fe3acf982687d3e7b9a66c68e3cd2784175fbded6725f8996774f75bb93eae783b30cb7a4ab6f04f700a670a7569f815aaf317327706078cadc040e194e64de3f323cd7cf19e35c786a90d473d03891f25219447d958ddae00a98837439831de00c9880bd1cf284c31b380ce68096e02430e72835276aacc069c392cba50de00468076e5b8e1b932b7b2670085e8440e003b00859c2aa4348d1805b3573e84f021340534616304dd154d800d33d8a998d609aa184db1862f557d7813ae446d86748f668cbec2b2402ed997d5387d830bb0ef3149dc16ec182a2867010aceaa8c59c967aee977b295c65a8791bb851f3bc6d649e2b07f33c79649e1befe9e7c5d15efb099df573d459861fd27b57829b1c6cb845b8cb61045f20c761ae0e75e0b000e15b206029831503a4eab0060e2bb8138b3050751f088fc135c35df5dca27a8efd4b3f176e9e7b87f2f9e5012c996b01e090ccfd29c070e9d8f5a57a1e5dad46ea396fbd5f38cb55650d98c3902322b73631a02d3802565c0eff592e2d944d3f6c0a2866753ba2805e59c38d28e0f5b86e2f28587812bdf914ac63b47f0b2890c194481cb94d6dd7a3608fcd73e66adf80054c01a9439bba324e2602cdd5416f0cb58012d89ae7d52d157f026c0e1cf0197c0e3d200944801632ae961cb58152d8418957cfc1db0236320e7d21b76a29444cc65f044b813a407dd8b1124fd4a195005ba954a0ea110e918ad3045240af4019ec7889b7017ab2eb1de03a040c6a40f6100919cf29a40c758146b07beaaf9eb77738ec01b721e0483dca3c05b49617538e7a4013d83ff5ef0322d2f507191d81400848065386def5416ce80d680afba7fe14d47946705407f7c9944b044c39e2e09c6105e8052887fd537ff55c7f9fc1092c0243264b833a4c05da8093c18a21756ecf5ee02889ed6c05c1aba6436ce8c0d0b1a10b43b7867e1a9a1b6aee1f61fdc2aed1c05066686c686ae8d6d0b3a1e6455fa3baa1af9a32489ac13505e6183a343431941b7a365418dad63434f787d450a65f9c1a2686ae0ddd1bfa69a830b469684fd33136941a3a9c9fdc4d22c691a16b43cf86e686f6349d388632431786ee0dd52fe48649dbd0174d2362e8c05066686c686ae856bf68353a1b6a5ebc1ad50d7dd5740a863a86fa868e0d4d0c5d2f5bee7ec9a77b433343eb86f6348d89a1bea191a1a9a1e6fe384b9b324ee2baa1af9acec050c750dfd0b1a189a16b43f7867eea97a3ce84a14d437b9a26d8506ae8d0d0c8d085a1dcd0a37e096c92199a1bda36f445d33931746028333436343574aba8989f0dbd195a37f455d30518ea18ea1b3a363431749db6a6db542cf6867e1a2a0c6d1adad374890da5860e0d8d0c5da4ada948c5921b7a3434333437b46de88ba629317460283334d62fba4d5343b7869e0d352fc24deb86be9a17e382a18ea1bea1aa1efc3ffd7b9f0a1fa97395ff395a1cb2a80b6ef5fb2df6e33a35d7951ed814e6ff6b7c6616fd7f8a0a08e5ba438cfe720baf7ff10d965cbf0887c9ff791c31c611b3c1567585a6c575d346661c7181336d4bfc9394eac3e3f4784480223d1e8881cdfe613ed35fb2fc8374fe0fd3c53f4c97ff300dfe613afc87e9ec1fa3a80e23358904c41ced755d2febc204761cc772dff5c1f10dbc04beb8e5c87d72835b6b1872e871eb15184598933184674439f92cf3e1e36cf20cb14e008ebe681d61c46551b936df0362185314145f1632d22bafcfdb28e326cf32a757ca4d8bdfd91294177998f59d279f957c51dedf7fe6e965bbe47f3def67cffb9ffcc7933f28f54a396a726d0ff0fe16de59f13b4a542bf19496f27649210f8f4a7d5c5cf2f74ffea4e4075b93af1174a5bdc357834fcbebafb2ff615b7dc9a2be7514d2df08bad2fe61dd8ceff3fa9b6c0fb73faeabf1d94b79bdf60f3942eaf1f20dcf462aff5a0037996c90dc472290fbaf547d9fc0bd00ee72ffef0de1be97740a772ee94c0ac11c985cdffae04fe4fef421f7a59272b905a5b8a1be7fa7b8a1f6695cee3f23b867f2fe13dce57ed93bab7d2c97fb695feac7a5fe73e9b7e60f7b1bd22fc158f263332e7d397ef53320b91278677462ce11805aeacb7a0fe0c69d95fefda8ffaa1677e6d70dbd197a3674fba40280fb4780ec6f0e4d75affafb39f58b3efcc221966debabb693edaedcbf2a7b7caaae3feb8ad45c97f18d6bf0f3ba47d4f5bfe0d58b98f0db373cc1af2abe54bc10b8c8f9691f612b4da203401c779877845b8a5fc1fb80db19bf0a2f835b1d77b9f705626f61ee7b208465317f08a26711f043b89f2d47f8a91e97c1112042afd5c35f81e20fb94eef7cbc659e2bdbc71fed770e36acf7d816c5e1b180e09cc8a1c470e6e0abdff30bc800bfc22a4313d64f615e471fbcdf84f714bd40bf03ef67f422fa3d78afa31aa70fd8517d48ecc6c74b367021dbffefdbc7068edcdfbb009f323819473ed80924803ee5a6f99d630a2e8523e0350ce43cb0094cea8078ff027c8f6aa2df80f519bd4affaf05c69c02bc2780a07f957103acdf0260a8cba90f9ca2173978eb1eb618b5e07d2f7142c61582feabc4f5181d018fd08b0002ef1413a00ebccbe0ef3f64dc21d17f93b837a063e01cd5641db8c9b02dfdba11d891e3f01ec9719acb71e873ba00a0328f7d483fb7a0bf84495dfbfb3d426fbcdf82778e5e58ff15de335483fe1bbcb7b1cffff670520b337f0022b32cf003106dcb123e833bb11cee2fe12eacbe4aa1148dc0f6cdf76a1e64ea7bb510ae6759e260f37dd64ae6e096f0f6a62eee57bf3f6b30b0e19ae1a680017c09392f3c10c452ef3b50879cc218ee89e530884cfd4b60789699610dab3674d4f749be8c932f595b62e6870099d473a58a480696eca72e3cbdcee9df89cb7cbfd1141d553d0972bddca3a3700efaba5cd7641eefbfc39a83a9c3514bf465e778a9fede71d66f40da81a61b651f82f71ed6f5aababf01ef6d9dffd57b1cac8b92cf5117e244dfd757eba30dab1e7a95f126ef57fef5715fb8af70112a15c3b68e3d29df92725017066db831eb02914073ee2c6111291d81530c8212e01146e670e8bea01b7d3f1570ece1351ff4d438801740d6c60f21c78d4a3f45708de4b8f5e0ab8e6bdc4720a805c227e6d0d918eea92c2ae6ba4e263da9771bfa9bf230ec75843abc7f8235ff6e0fde6bbd87998e9b38f97ea835671831ea004f3106baf9dfd74f3abd5f9715acda4f9ccf3856e935c35beeaabf47cc38e410aafd2120a6fe64016697d82fd751f38f350ee39059fa7d202c58d6eaf2be510613ca011cbd9f81beabbef707b33e80d9d2c878dfb0525e5f5d97799e460009d28bf61ede84c1ab7f3efcb7ff097a94e33c60ee0cce09be707a83dd190f057d87631bbb32136ecfd80719d780daacbf85b58f3ad03fc03a411d19df5b1f7bc26dc089e215d00b7cd66530becb19e00ab8028920e428009b42c2d0ce7caf9a433f8313c71c06043ed5e1d27568803585e00c4d611d64714a8176e022b0cf7c4bc601e28402eb219b912f98000a643c45024d843d86698666cc3eaaeff985e3c33c4167ee7c422aebc47e5fd675754e9b70897020e7891c5a010bc03e781cbd4ad70a6e653012d013b2eef51130e241982017c802c6048db8edc89d19e3f601e214adc0fe9015f6069c0b2c09ba30e70b2e29be821bc131c119d02d7cf6d059aed7178233198782e054c00adc14bfab3f7aa478c5dd339c19deb00186b31c67f745e76719480c714e33d8a6782d06161cce78cd06a00f3da7073880dc1fa6e0eee1c41c0abb3a1ec9456abfc763ee7a7022f80c7d0f823626c29dc33ec22157efd1c13799d7f6028762d09741e7cb75dadacbfdc204ec08a6022de592f42e239ceee5fe00c06768c47c90ce527f0f15d442c2aba9c3a6b9f7228b5f15948c231dba2a1f06807bf0cec91d228edeb933823945477036b00474637d571d862fe852c6a32f680bf6751c33b72b372747997f2e3d39bf57b21f0bfc11dca95cb7f79073cbe3fe1d1e89b50adb6e9ff7d6f6bdbdea6fc9da0ddb97feb6b70eeeed6e7fbf5f47f7ceb27fdcaf97f74eb77f8ed6bbfbeba4ff91ae4f9b6e87422633cb94a2b3acfab71427dcc7f0a0d699871809dadff3758e6a94eef9798cf77490f2cf31be528ff2eb18bf52afbe213989e9986e5c4c8e74dcde1cc7fd235d9fa5348772beb572c98db6764e1774d3de0e7297ca19381f0fa654d09d83fd13cdb3dd361f0d5dec1feef9cc73d3de7198cfb97bf48ff36d3a75effc82f2dbd4db785df8aabda9f7f5a87f75fdcdcf00e4641b40d2437bee24b00074114e1bd254e6d94f783fe381ccebbb144f983b8753868f3058c0658fbfb8e7c0550db2a3ea23e62f21f72d97fb3778102b6041a3cff9da42eda8bf113283effbdbf3dadbb49bfddd79cd361dbf7f38af679b4ed63f7199d187fd0fba3edc5fd7fd4fe02897bb49ca1d0c29c5c0ddad8c1eca876344e4cab3c2a84bfb3dce31ded081cf3fb6f8830e329e8d71837a7bfe85c98486c9866ec99e8e938db775185d279b4e4e31e5d116633aa21bb2b5c7744637fb6d7f4b2f74cfb70976f7f423dac1d64f681eed06f9d0a3bdf69ee633c74dcf87479e74dc231c937c7e70effec9ce337bd0896ee42b43b55aab5613806ab5e85beaace509e4a36ef0af526bedbeac8d47dda8767f7f59d65ec3bff07ba75a3eaa41ad7baadd462f8f5ab75fbba8e770febbffac1d1952b554c190de01acadafa69cb5a9bdb8b3f6c76c6b0dfba3f6fcb439aefb797bdadd2c5e9cbae4df5e1cbd940c9db5a187f662b2d9aff16b7b7adaec18405b6e4186d802b0f87c28b7e4169fded058d2d90d4dda569f1301d0aa8ddebf562f5700ebfdf0d67bb4be76ebe3f5910058e963753fb7c82465d73b6a7666cb030034c42452cfd140b96e2204640bcb366e834f4bf39a676b09c10d5aea24fa26b4b875e3bf39fba47bb6048c30f4da56533f3cf3fb7f6f67ab05a32dbc70eb958f3278695b3d18e55063d61b6704214a6c609fc80212f0101031eb3d01d2e30048899ef410fbfb5141c3b6a1729192f7e9fbbfff530f099117c5171aafdf6763fa2971f94fb9cff6ef4c9da4054581c25bb04db0c7e8071c52bce1831b6cdb78c86917363dbce4740f7bd079e15fd767980afa05a708a7dcadc336c317b9cf413d99774e80eb1032e400a9cb14bf01b904732464bdba1672bf047289fb50df33312b82208226b796308cf0102887dd1e7f01bd83f0e1551047ae1f96205318f7900fa405132117a591ccd0b1b057b21edc32c78344a00377b6b03823c1fa58e6b91cfa63d825f8ca680b4e671c013dc181e139776338727ce50321d7e18cf597721d5d0b17c3855a880deab228c182fa727fb181c1176c09ae093a809590ebed14360cdb723d46b210005f6e62551d81ea4005f440462f870ed8992c4da660a73225bfcaf5f31dd08b5ca737cc15e0a67007fc027a294dc1957582d583a1ac3f8805a3b3ac3f08b04cd61fb1fafe8dd90e4cda88818d21043467765dd6210be61098014e9983651df2299c2b2c7a2867ce00d20c1cb06a00097419cce55ca38cb88023643138026b03e56400788f08834f59df8e043901ee215bc02b8c29304e3ec102e4007261e24328c81d488602860630919b2df20aa48d8680384419ccb8ed82cdd048a07788ce1033f2060e45138ef6300514317486a90f0b6e4fc1d9a329a00b4c13580a7b017d1fcd386a400cb002fb1dfa1c25024f60d68677669fc125e81df00a120e67ee0430606827f00e92367c726706831e3ac9fdd93c830b3873b94ffb60b80d0b0657e1ec20a0e84b58435866f0259c0c0282beb8e5c3720f7570de2048d15da69af42c53cd11563ebc427f0ac31435007b304be0ce9d0710863c8e4ee0d4510c88c284c2813b08508680c31a580447702cc97a613083511b864038586de47214434460c66c0a94a1a5c06398d5e183390c0629da0b0bc1a20d0fe6bc8207e8c4f02b2c12d870fb0eae401b81fb30a3d0167d065f09ee092f872f825fc06b81005ce3b23660f885790df83ae31af3b1dcef20ee53100c3f9837d4fb692f86ab2feb2a0fae296e8037822b0517880f38434440062103c6c8879ce903803b847b980069824dd050a0114cf610836d8123d054a01b4cf790323b857e8212865a105358337b0fee196d185e4292c08139002e43ef021f614ee0139c083c824e1ce730efc1a7701218d4d191e3072c006ec2398327d027b32690023c84d383608feedc8a21f5a1097d1b821e7a80f501ab4416b15d4009d4180430626009ab2937256f0242b93458dc6a00a4d0e5e0c2080073eb0e90418f0385a19c826407561db90c593016e00bb2042b427d064d08db1008f20e16437d40294429c4dcb68172940a3c805904efc2fe044ad0123086b80e5cd837b99d5f08ecc32c851db73b407b68cd318359063b66b7c1f75106960d4b0a77e1d4c1dfa32bb706b04c2197f59bcfd195591b48dbd0867e00438a1ec2dac38ac83a6e04078227dc1dc3ae8d478cf660d7c363705dd8a7f82a061d59d1c6c25dc381cbba7a05471fcfc03dc0a1871399943e006ff9c087731beff960021f046fc52080730f1f6030858f040b70dfe00c9873f70b8e67cc85db825382efe05990c97dc660051fa69e5ced5153fd3e86ea6f28d70cafb9dc0f9ce5ee688b7984a1cef55e97f930670c0327c856ef0e0417abbd431a1216f5ed6db67173bf4feffe83e4d1c3154e3aeaed6be13aa19dafaef5610f9a57eebed69265d6e5e6fd96fa1be13ddc53b9bae8bf3f08ef0c6bf283ef57f919bcb3effc7652f269c107d2871b473581be00b677108e5876e13130cffd90d11b8735b38880ad296e767015a8a6ffbe89bbd0af9be7a1d437da1d18760153dd252ef88090f04eb064f0014033e6a36c30167e9e7dd7af9bfe5ebf6b8a5e98d52af47babeaa7c7c33a4045bf9b40eafb6496e29edcdf8f52c01eb16069b532cbbf7cd7d79f95fa828f5ff9377bb0c387a86acf2bef3f8c3d67f824b0e0c61ee7b3628f554b7e8c17155e0aef3d5dbfdcce4abfaafe6756d5ff5ceadf11fd3ad0b3d11f0ffeaaff70fb433f61f49bc1298176a1df70f0577f77bee9f759fafb0bd02bb75e0b7fbf5cfeeaefe8e9ef136475f401f828f57d3097c02001e2110c4b7c94faeaf15efcb5ff7b548dd703bcfbdffd773a57f9da7fff7a3ea8f8fac66f96f1aefdc17df850fea0bfd7273f57f173588bbfc73fe79bc4c7d27f7fc1abbf7b5bb53ed3f6d820ab9b03b85c206080c69b34041e50247348945672089535d3142211923b5921489381608e1db2d816e9d1dd45f560979ea84877e4e14fa8ce259f1eeabd13cb7ff3c7bd5a3e79b33b7c77b447ddd9874dd76c93c57dce04cadb075a4ff97599e0f557d3e9ca3afc391f96ea393c0e1b99c2bd2d61087c07c97db84cfc8c6114a7fa390496c09c034168ee812008c2084d90bfa79be44842e8a37b7671c72ad7197dfddcde4411e2e9840a1afb0fda0c26ec4873ead8cc7fb8c25e499ddb635f04797408b6bd5d3bda794e484207f1906cf8a7c98f1764d1ad6bb1ba3b26391a35a7708185b3f12367738e6adbd34def195819af42c8aa4fc5c341edbe7014e1c22e4111a8dfe9fd77ec63ca3e60e929b8fb3b94fb13779b34022b79f89b646a43d227b98fed9d9f07bba8ee6efd2dda44969fa728fedccf8ef8cb1dd5671bfa80963b8e9a5e3eda8cfd6c4e429238888c1dfcb98f78f0361a7fcc6ba361138e19f1b7741f58ec402794d4e611ced07941ee6ce16c262f8375fbdbfcec3ff38905b736ea99e73ad4f31deb1e4e0146807c18d5417fdf2f3886660418c041c09d39dbcbf8d3bf3f44a107c0089ad60748501b85913d9199e24e43a29e9aef85c4fcc7225d0e643c86d1ce9ef8537a8f1ef6d86f5091b6fc3bd9593d86fa835bb85f9c8e7c37272bc8706a7503364c5f3e17a71d44bde2bdd372638cba42e767fd4a6e1fbfeaf544c6abca73b9fa9d451b6c0e2bb01a30e429428ca2314f64ed6a23a0f69c810502ade46d36c9fab20884e9ff43dddfb5a7ca3bff03e80bea8168edaa1e4e4280a051c3838a67156b147c68ab6dd057bfaf2480d876adfbf7fdef7db24feedeeb1a032199cce367261694e72b710a9878e838f702b17202367136301b6c81a222f920d79a6767faef9665e44adb239c64b4882396c516bdb0291b3ac7c5957c8c8863ad96f8905bbebb9cbf466f6e82976dc71de6d684ec722bde59683963e7516ffd60798b565fcd0d1f5a7de14de1c0c1d37859012c864f3fe419d9101b446a83d0e70fc3b4a7e69d869223e55fcef52a580654847ae06dc5de5776c6e5948fb2748e4492d16db21f45bc63ce5fead18c17fe36c9a848a60e4a66aca005dba49e5f24879124ad00c596d7e6bd60df46c15e3ef03d594c80bc70bc9acc2e4f13e6c51889d4269060b6cd339ab16b903c7da4ddde03cff21422febe9dbf8d5e094527486c24258512e73b58b73ab08a6d47d9132659642bfba3ff4ffaa9cc2b3118ac7bcfb08af14ad9ef760a63812d8ec4e3288b732a194632719024180a40c0e944c95844de862784f88cc00180dac099e27f07f160ad16d3d33c91b8d0ee0148b60aa51a8bd6fac470c45ceb533a6d94702c004cde05adc5ff321e76d57b95efa78f25471940ec20a7a77e9c8632454824f65cc9a9c2b22367b7e0a67ab2001b8e7e40327a911415c70fdf4e1e1d99b848d63cb9f5afa992a7862fafe9dedfa6d628d3b2688e2ed4626162e4acd21f190b5944e7e892cefc6b8a26169f8ed0d9633c7e1f5c65771476177e462e6e215ef17ed18778719ae4fec68d2472733844edd36774456d10890705b890d1377aa16726923dc271e2db643dd87473829c217ac7c97ff00551fc3f96de54e33224b4c13ec144d8c051f7799ce5475fa6aeda57acf795ab7d8dccbe1e6d10c44664f3ff9ffb8b628280b791cdbf86619c791b2b7537e9946c94ece146b748da1915a98b44ea3946af64749b3e6abda275277bf4b7c96164271d76a5ca36d88e6cb22ff54dec6c922bc9c8c591e9c1d9a68f30fbf3e63c094f9d71d74a0b141e3f26b6680f37f99e4574e9a2ee6071b0fef3dcc399f407bb43dfbde419dd5a17b44d881f889c05bd776fcb39894feed1df5cb3eb131e07128df0bbff9ab7bb5cb81209e6d920d0dfcffb519ff7bfd313d42e7184a3afd603a4122f75b6802aef2f036076d92b3bd672525034e760f437c821e1bd211132f4b7e0dc647c3a7378e2fa17f6c8b258ad5f46a297209a1e3713fe02dbee0c5f85932ef2135e5ef253fc16ce0f923c3e1c1e9c96d0f9f9d756ab872c61f4912ba1c36de62af6d13cced14ef103ec2c0041e3500a8480db7325ff8bd88e104cdc4d9e384512dbc589bb97644302f051213ec885b559416abb42e9a0516d3bb1292be2cc897b054b3ee195f4899f9f5b6ba7bf9bb59fbc97598e86d111e1c1763a7fe16b727dc7abc78b7b8d3e2cb5bea3af560b5259ae6f5ac95bd42eeb2c3c455f51b5be58834d95fd6b2f957dce60df53f6d4e1877d6e2f5b0bfe83be8575891bb6955dec3e290a96f0c5b1d4102a04d45e707db62a5dadfee1cc7982108fa728d646cc10e064ac0d9e7a6e78ba92904c69106f1cf3f719e6cf0f0510a7f5754263eecbc9a90d4f57631fe9d2d8655e7eaff543ff5474724797353ffe3efe74a3b77acfdfc66770eea1c7da5fa6b4b46f9ed55a7c7263df0c2bfb46dcd1f1b0f43f4d69a3a67bb5fff91197fe27bdf73fedaf56a2d6d7f847e75ffccf1fdfa3fdcf6abe25ddf89f9496fe27fee67feaf9b785f13f1bf3bbf95bc763e97fd27bffb3daffa7bbf9bd8310b5ffd9aafc4f71ef7f56f3d5fea799aff63f3f6ffe6752fa9fe8e67f7ef3dfaaf71bfff35cfb9f22fd464f9bf43dace2fbf555dae6466ff0ffafe30f908a7bbaf14fcff57a6dd2d27f24bfcfd7f8a7e7da3f15f0efdf1bfff45cfba742fcfbf7cfa49eaf5fffdec487fa1cbf00c2057057bea9fd78d6fcf0f29d1f3ef9b8b8f1438adb8a9f078989ffa402f602f8edfd9f7a7ff7cdfd5516f1325792a8da5f0cd240bb6ffb6f19ffa63e7f5d5ce1e38356ab0d2f96925702ec0d8c022542d81a784c203f0e8133146a8c1177800707ad2b6a99ac74bed1eb1e47cc4734209b648344fa32b8c42ebdd0d28f4d1efdab92376cee8489b6a9d8952a1bd4424a374bf7cc67d09a855631b3b712222ffb708a4390759fdc4228ff834e487a89afb43dcb52fc65f75a5f367782bcfb27d8f456200946106b9c70a48ec43256ebe19bb881c67d111023d3ffa5d673b1d22753640a0a7c805ccb4824d264706581968fda1f73c6305b3f3c3e1cdee000fdc27e7cd0bd102464ad5682aee077741e4cc25efb535bb6b56597204e53e0d446e00f90200e00b7110f76f73e89f6b3eaf5d37f25acc985effd2df550917f4050afe3beb64f657ab357b4bf9cb6e935eed4364b5a2ce6f9db792c9cc1d24ebb2fe8584048ff0cacf36ad626af7cb32852993b088107827cf48933ce764fbd3ccaff0c2f291a860b6b93e02129c6f124050ff1c44382687ef227ad8ed27f5a5e93a496f7d57d4415ddb9a39ffe837e6cd09fcfca3e598906fddcc5d5fd44bf8f4f5087c35fe6473c3827d856f2ae8ccfbd95e747f18bce97a744f17f04d8014fe368b90d3cd88320da97479c943607099c804c09249ebb3d45ac885db489a7cad650b69013908c842ca0573f446262c522b1c3af910ffb9e87443778146480643226eb4e1fc2c343bb4cfb824dd5ce23a5ff89840d475d3509350fb410b1f25be350520400532052cd21200177956f03cdf7d6f388af24624872f37e358fbe43f10b94ef0e960f7f84ffa5e7b2ea222cb43cbab4da0449ee7f29791495fab5cbbd4e29aff43d3db2d4bf11ff11ffbdb43af063fc237806dacc51a0af0ed378c8130c62d8eb1891ee4342b1434e44dfc336b55ce0b1e3f0a9296a92302c6325fa3cb06b7c25216bd320ce48c4a6f1fc6c41347d16d1093d44a7e79648fe98f954ef33f38d451d0f997da3474dfa33786fff1c2f2aba6e61807239e2351d2b7dea2e4af93d822c57fae387fc7e6bc8ef58add382d98e92cf0e2df939467fe09efe76a367155de9ef3fe0c540bb55bc7b7cd32fbfcfff49b89d8aaef64bef47836ef6eb1fe3a5fb6d7d46fb9ace53dc965e57d913b8614f7c7bde7bf3f71dee6dfee3f7d1ddf3d5fafff8bde1af566199ef4142f3970b89031279080806315a29dde5909303bcd603fa3c19fe92fa3c21d0319e39ba9431a00b51be443652b6b23e5fceb98e19e3e787be57f25ff084dd2279453678c36d9c055b788675fe3c6e75ddb13e5f1a3582f66214dcbe27b1c9eb29d77289bbd21f6abeb0c1f65a7d6ef0a10e8717405d185a707285f094ae83f8e820a5476edf043af67817db8ac10948e46f959c101f109099896da58fa3229d9571d6802abdcc61ef5fd3b9af758bf306db6238dcc9a70110e4e1de2bbbb4bb103c3e1c20b111c41c0982218b1e0e71b11de6f105387975add50c665c7d6f173835f3e3b4b497f4f71c8d7d8736a57df7ae8bd9959cc31fad1678733870201cd61cc90916c436fde5745c3f0e25abe45fe81724d4f1fd82794aee55721882e4ca248bd09fa408dbdc0549881b9c5e9e27c50b44a2d3faeae2a54c5d7be35d21e44eeb6bf270d08dd1f4797e6f7d5aa82d7d4bed4f52fa1f8fa28e9fbeab4d6c4bff0a28577a2203dc86c196ae1d380d9004cfe42772a4739b00f6dcc41c8dec36b1d30309584465acfc30e4943126248907329d36e4b7893d16498cb6ac8daefcea840c59fc1491e0693de5c49b9d53f38dedcb4b80f8443981188407db14811cd1f4ebcf1801790e5feb6fee1f1349d47a2248edaa6e926b7b49dff3e503da81c665e9f83541b0eb2a3b6f0ab9d23960a32255beff148964aa7dc858e9398686933fc34ac7b5d6b901250a845b9dbcec8f27c003949fc56900826188df8627d4e733021bcdb88ee528d95ff2319eeb5a86e950f136daf5742cc9e50be65af00ac0d4bf6db467ca5085398f91b1e7d43f7d5d93e2709fcd6298609efb1ee44b12b0230938c790be0c0a76752099126ddb25875191cc9c2231b9958064a388058e4832bea3fefbd7988c2f3d17c9c41fa253c1e8d083765feb73872ffb3dbb330fa2dc7178c21cb28b610dcfadd5422e8dfcd27d70cea5fc5cd4fac7fdaad6c7d07dcbf4954093f0193e6367dbb6d5190767e03ec713e01441fcb630b40d1025bb0094eda8ceffab3eff7ca4d646e3073db386f177fa6c99044e10bf99bc18e9e81ccba5997f4977e539d2b62f44e9dc0bd8cc2de21975e60fcf6daaced3a9753ca153c10b5b9e02b281d8bd2429dfcd6363d73c3e4dd47927c38767ee3e9a7806da97e7fd1544290f34aeee1b5dd08d46f699f1ca5ffc3efee68f93612b16ee158e3d651fc480054c731439458211e728d4fc130cb15aabd23f71f213209178730e1e2a5686b71c6567f1a9f163366b2c08c598d008c56a2da703141f7cccb634e8a60e6221e11653b60bdef2212ae20fc077f9abcc8f58acd64fc797b6e9a327e8bc2167afda6693cebbb7b1664ed05b3beb673b167bf167dab586925312248973e975b3d1348b053d7a9b78e66d7a532778f25011bbad35f43f7278402809b03803174e6fdc7a1a25bb2ea9fc3dfed5df95e7790b6e651f53d42febc81cb5be4b7ddf5e0c7801b48009963a2e0c1808407c84dfce1309640c329d0faea9378ad2805da9c9d945696754c49e8e25c5797b342518c360eff0b005e1f561db62c124a06822287644f6f0704d28e4d0bf5e2d3d9f819243a9c4bab80d3fc1409ea8ee87a3f3a7657dfca18b4af960f4ca26c65551b8ad7d4ea2759cb2c349c1947d18a00b3b90307fdcbf596d7e4c976be17fb54e3dc4be3a1c56cbe78749f76ce2a57d51be7f5b5672d837bc46e51f08b55e23404fe0ca13d67c1c1fab39d9c0cb35dac42101eeb9f814314982fa3c49a27c02027cc190608fadcfb60dfbd60313deb8f6075e3f1e9c0abf62fc015aeacb4bc9ff37fccaeff48f1abf62abf3e7d1f2fc5c7e9cbfdfc7ef21ad9eafcedf8ff1d5f9438a1e484ff7b17201251cc1dce4ddd840c96fcc09001f0dc267382999e5c8988028ed1441a7bfe4036253e34220f9f65bc88b0507ad821340227070bcd73eba24faac55f17d4fd02bcb924750be50c410e19e8bda8e37bc880c892e27172b83afe7276e71a47bcb15405b2fc572bec91f407429b72cd49e7467d5be54e789a9f364f67fabebaf1ae749d30d7f98f84a4dbfe58fdd56ab0dab1ca71286805218120de9c1e0f4ea38044886b4adc0c90a62cdfc60a394391bca4b79e32a79e3dce7cbb3519698fc95c94b5eb3c7a0fdb27f6bafdc338ddac80bda6812c2e77ebf98bdbfbfcd166f59c75d7bafc3ede3aab729e75fcecff8d3dea98eef76f93d9ddcd1658dc7f97dfcf19ebe39da82d7748dd7d1eba3fd97c106dc0aaf83de1bf1b1a5f24f3aa5bff92a4dbcb4f6272bfc8dc6977c29fb72017f88e2d767f88ecff94c511ff0a0f2ffb70dffab9aff517c9b1f54fe8cdf8131adf050dbbbf9b562d4e1e3bbf9197f58c70f25bc1ee1a1c2134d9a78a772be6da8e7eb2b7ff1859bf8e1c9c201e0bd8e1f8a3a7e68dffb47d5fbd9b47ebfae6ff4aedfe6b769cecfd02bfc8daecff74f9ca34f20967e76737e5dd65c4f231f4c3c05f5049901ecd57a762130b151b39e7d51f2fb8d1f4a79fa777e49d1f91b3f2deafdd078360cb28cdf8866fce676bede046830c63c86810dc48680eb1ebd61fe29ddb692515a9ecc4ccccdd1bd4e8d2fa8ec4fbddb2b2072697e47b0f8e7efb44c9a3a412c9ca07774429e19990465beb13aa7e90364b1b2373df8765661b5b35e3a676b357b1b8c108c917d8cbd767f12939517933e85741bef5f5ef4d91d48ca7dbc7126fcf0e07417bd55f773b87abcb83fd693fe767ecd7ebc8906fd6ffb41ff633fe8bff7a3f97b2d0febe71979d8a40f4473ff737485bfd1d5fb72f40cff7edf4d3e19feecffc7ef4f377974a87f6fe2291bf08f3ff178fe2fe7f79934cf6f896733f2e60c65fcfffefcbed4f10a01cbd625451daefc49a103d01c1317710ac13def29bebdf9f6981f7c7c22cadef916ab78a417aa63163aafad6ccd4bf20d3346f67e6162175c2e3e56def4fde5301d040fd349483686f7d0b1ef6eea38466f3c7859ec5ededf77f3f795fbfce26e0ec5e3b67b36ed8a81a9f59c29fe7ad77d6bb41389b9dd0b74b5d796cc9d0d1f20c1309204408e06a4a01862e163d0df8941d4df498033bb7116575e60e55ec88e03cc1de57b02aaf3f99e7f4dab6f9d8f8ad4039446654c3cd4be8d643326ddb6ef051fe195ef87b8d75fcddef0c886f751eb997b23c859bce28f562fb3b6491744d08a17fbfd2016f16c3a58ef5e8ef9ac581c5aef084192e4dbc7f543ebb8e8a564f2b00a3f8c7ced27b57edac93abeb8f9269f574df9fc2c7ec8e74b533e3f37f1b2af04f6b2d41ffee72ffc074df9fca9f1a05adfc5a827f1d2e8bb81dc3fffe4ff37d1e07f8d5f35fcdf16de17443990e53dff7f02792a7917031c5a0f1a9f29c051cf89cec313ec943f1f6a2c113a229074013c260e289e0e06aef529bda992c3d4032ec015c4864d8e10e731f0c441e4b82c69e81bcd47e46d318b3f2556e33153663f419c910517c89c8dca273ef9206207ed7a0324a9b2bddd089d8727d456733b9bfbf2631bb94a5588c638f54fb40665b7a26288658e118fddb93c7a2012d7d1b1874f49d5fbeda4f17e65c895f91b734e4bdc4430d458967a1ed32196c4c77cb1c622c548245394cb25b7d9fff02c4bf9afd3509e10e6b93797478464ba4256b1984d77e0a2740e0073ba49375e7052fb322de3e6a10fd2732fa7598d29bd6a8ca1c141446c4aafb14baf496754901af3c4dafdd934ee7dd1d7d7b7acfb7078da82a4a1f0a84d4ea32cbda2a7077178613b2f325844ef92f4075b8216ceae9bcd3fcb1a3e6af28fc67e1e006230c8e1a0f3294030486757c67f2a9fb3f4ede4906c6048a48c48c80512e97c50b0daeea505c94803cf31ee6db2648fc426ce1c9e3dc1e4b18b971d7f1c4d5b0fcfdc09c6112b26fa4288bbf904807218136823411020652fc438d4f99f98009fee91200440e7f07650e22b40b2295832221b31239b3c720392fb1bf034eee4ca8cdc2d6293a7131af3988daef451e3078bf8391294c2d1dfce252773177bc1a9fd8539ef4f8e80979222d880379b399368f7e7b5d3b12e9373d9db55c0aad539297dd1517e84cf517ede100c6a8e3a9ea6cfdf5acf59f7c5701e0cae47cbd3b4f4e7d788130c9b1c47e80c1e24ca464220395a0b409aa6fbbedfc681552c3862890b002e8e131fc3ab7abfb3156f48a6b381e4fb51d8c537bc64e2297bc7d924d7914c333f4bf43e35f2958891ae35cb566411c5bd4526f17c7ac2345c05b05d9df8457e05e174103bd3c12eea4f90f5e9275ec82779c85fbaef42fb7f7144d9ec1cbd78c722ebacba3bb33e5da321fd2fdd0756c085e39e079c12888f2e700e7aadf631201edf70ba154e197a6327606347f4662420330aa9f1e32b5d5ab00c2e2ca0458d4fce9c68db7dd94fbdb18fc6dbc3ce93843c4c2cf404fbfeebd45e6dedafe7770826150f5e266759fad7ba6d0437fe37defcf4ef7fa537fcfb4cf9f7dcf8e735bde1df97e3b57f61e8ff0ffe4557f95f7a3d318523ff9e1faad6dbe47334dde4734e657e06ff7c5efce3795de1e9d6df8883d56a25a890fe2360dd8fa003b6848984378e93330dc1c7a07c651d17b261d75332326dc6123406617b3afa5cc760c0e090cb9c47446316dcec217f9b3630f6a9a76ca81aefb9491f4728b96abce7963d42c0f754e747520f9211194e9f9cd7f89843709e8eedd5c0b9cade9cf4f7337bb4a0618abc9c14cc3e2d78d69f612036da100ff8f0a1034a5fa501068a98d57d1eeea8155d7b0842fe31d95a2bff92bcf88e7c0a76fccd8f381a84d0f637d6c720d8bf80e40441ec40eb4f6cfedf0482cd7e47adbef0bc925fde6efc24efe95daba6d38aaeed85045d017594bd80842b570d7b79a4f3e9a9f10f06395478b7d637fad78d9e55748d87121e838150fce0c2121f2bfb57eff7f564f6dbee2977cd07d28358e0778e16c02258b81013243802c146c009b675bf9d60103e038f9d8dc1764862c301946e74e6121c14141a7bffdfd8d5b4895d759198ae959ef50c86aec49db64d1ec4c8c28df60f316f8e433a1ee6b2bfbe5fc9cf590c03c5972464d980a74a17e748241e2a122d5be8851e46457265a55c195d92c3e81a5f1c9bcc6ef510c9a1512f718f01d9247367934ce1ca674c6340926c2449ac78d7b9a8df7a9e9ff7fefc865d4df3e4ffc2c78b80a4143873094f117c3d2718084605a170446c2492c30f1c3339b580937c70ed9ebd30ddbbdb201dc78b7810c61684b91885c96a70c9177edc7d8658d89a9f796cb7deb8f97fe0e4effc776cf0dff319d214af9af473f7077fde8f4f6a7f7334e98b9fe3256addd39be3b38a6ef2e99e69bec3e151c92f0b062bc01c36e453badade25392d788480da58dfcb94220062879b339090670e620404a38abf912404f868a06c5d33b6dbe4351ba4e15127aff2bd1cd5710b4cfffadb32c77127276731f8b460b98f79aef15a129abcd8f01b597b742dfd471d5b2dfd4b9ea2b4ddde4757f9e96cc81bb9066ee024afdb8c75466443966d14cf8e02a5ee28499cde7a0c928559af1b45bba7e1b58f83afee0ed2a78f853b1da6b2e90ff95765a7bd96f1775d9d97eafa1bcfe073340ea6b68d1194d81c30e60a2a88a91bbd9c6e3891152e6089bb9091d6a4f53829f74bad05ba4a5f02f4345e00718234564012bce089ee6163f245c1b0caa391ba7207282ae4079476b4c1fdc4d7917a27f7269fca6c78dc744fdc959079abf1fa7907c1e9e931aaeb75caf71bfff15ce507658da7592bf9a8e7d7a03f4a6f5dd33fad9f7441714defc04ffa4d7faf953efe4eaff43170b8a8fdd0f95b14038de1b5c2436999d8ee697fdde323cdff0e87985cd2087165ab27fb515063a2e22a07c60a12a3ed3859e45d17ae4f5e68f7ed970e0c577b89f6a073d40f791bcda63b86765f4f1fe923adf3117deeb9a57eebffb4972a3a6bd24f8d7cc86fe3df7fd08dbdd4ffa7bd748fe76cda37e57a9978ec17ff118fd5f828bd9e0d7a633faaf1f3bbf1fa9eab26dde06dbe78159fa6f6ef781838abdff7f87004a80b51fe29ed9d92291210a718cd746f103c3778ffb81917f5b8c35c0b9600314609fbe7ef941c2117762017169672c4455b165471501295780183f9ec28be60da2760a8c7e5ceef38b3d9b4f090605d4e48976d5880a223ded9a765ebadb8a687e91916c2600bde467cba5b44b048267e78d4f279b86eb5614d8c7c66491dff2ccafcc670dd17b026f8ca1bf4b3445d09ff189fa23dbfa7ebf8274beafaea3f557c91dfc717abdf7bcdf77d76957155e6935a6d481313df1c5a3fe29f3fe9dfe29fdfde57fd5ec73febdf37e29f7ff9fd47fdfbfbf8a7e65713ff6ce2c1711dff2cf37f7e99fff341dbe7432c280492dbba8eff7bcc527310071f93b58bd258cb677c42261f9e7cafd1d578d7dfe407a4499b85c9c92b7a9c5dad8cf2749c74166324d843608916ec5b0f2f6d7474d11d166b354112fd2a63ea7c6b251f4e4df970aeebab6bbad5a47ffea03fd39a7e1f8f13a8cbcb789c70eb789cd26feebad5835557e937d7e8378640000a0529712deadf1a83a306b800494838f79ced690e5716912bb39f57817ff4578ec5395e4dba1b583df7b312dfa36f2d7bd5f18e2abfeeeafc3a7706e65e1940f0d8c58dfc7a439f4ab01109ebfcba6426bf5eb02b5c980d8fd39cc7a3dcd9c74fe30e5bbe742cbc6c3d2d61be7ed848f7d05a10b46b3d5578498de7fb53f60f68dfea533ffe4917dec337fab4497fe25eff5fe39fa45bf5397ed3f517a0f4fd49d73d619112e05c636d4cec4fd9130c37d67b08700ac986eaf8332b98cd0a7deb42442fa93778793f84dd310adefe1451f75df7e7619f8fe7d6a9f520d76b7d2fa18614ac72b5fe14f00828a877b2bb776a4c5f8d691080110d11a4b3c195b5ab3d76565788fdfd20fcf03a303f3c58827cb68eeb8e8907abb97a0ba3dfece50ffdf83bbd913fade87193dee82ff0ebf81b5e005d5b89a2eb78444d4febfa90dfc737fa0f94745ddfa1e9dffa0f7cabbfa89fc79abf6ff413f8dbefade6fbcbf359e3af276afe368733c7470738202ccc5d6620a9adaff80367d5c8c9346ad1f8960444e76446926c46219942482ea32cbd3a21b940f4f1600917b54e27e406304162fd905c096a5d7b454b00417956e3ab2b7bf0e9e7f9f89d2eebf3f12bfd4978c3a6fd712df1be4fb5fd41a3a6bdb0e7c6de431fcc0620f23f6c397f4e5217ae1be091e827d364b89a597fb7e5800253fa7169214bdf1bc6e06a01778a0483601c788c3d657388d80e2b7bc5dc6de720419d85b63d82b5f29310ea0f311017d571fb184cac5fd7b5e6a63741a27b138064642e538480af43ad93a6e5d8a6bd53c505fea7f729fd87016217c4f46030653d5d2fef595a574e75dda248d05cc9d9c04291b35bcc6298ba9b23003a66ee96ae3d7d4d9ac8fc904698eb3cf2cc09e26cc4eb5cb2ce739535e89e7f4dae244b1e2bff9f4967b6b0baef695ecc26fbbc350ebb6e10f3eda43866dc65722af879448a24e15eb4387c5c839de38c23447db9184d8ae36298db0fb3e92a44577a0d5b155ed7edc3fb519d978ff2bc8ce1356fe079dd3e1cbb4d7a748b3795f48b55d3694557faf0d455f6865de13144233fc594bdb6b470a6ec9ff109bef7cfb1a4772af9b950fcfac5d959f1f39f327f66e860f0f76b0ea2ca9fd171a37eab9cdfb5f7fbfcce296a71e5e29bf9adefe6a7f9d776a0393f56e3f17be01dc0abfae7a066ff9c72be83db7cd5f7f0dadfd3f427c1f677dfc36b3cc9180ea9721acdf77897bbef4940edd7dd7adff0926752e371aaf98f6573fec4e0034d3da0049f54f504c1f7f95f80e5dfe6d7bef5cf5187baeaef13fe5cefcbb139bf00d6715dbff8ac9463b9ded9f2c77ae3f7263fe8fe3966fd74ff9cfbf55d34d7f7226bffab50f2ef8b7b5193def0bfaaf1ef4dfa95d7f51e257d084dbaf6bfeec793265dc7c3efe8feddfeb72b7cb980a2d5aee69703934ec091d8524e090a4e08033f11a03e8604190c340114bf55795709407d90ba229900081fc1e650e6200189641dca23c23cb7951c2ce3a2a06f7700826829ffb4bcb5d5f0dcc69cda6bf1fffe2ce2a867c50022b591fcd7b3c043c5748805f1311fad950cf562e367244af7860419b9be52df5998efcc313c76cd45889cd385c6ef2ed60089eb59a701f0dc87b692c3bf3e0b461c3092cc03317a300dd37382dd144cce175cb4e90f0152cf89eb67c16fdf399b6a591e0eb6c77776395e7cc4727a89b70e661996e96a20b9c6fab02c9dea9e13cabfb9b276fdffba9eaf8ce38af450f6fb99d24bd2195d4aac90cd50bc01e605d6cadfa6ef319cfe22e747db45f18a6b591f9f963682f970936eddab8f7eca7cb47ffd62a7699b7a2c1b0de15e3ee033afcf9b0d678e9ef9bdfcd8ddc96743d7f243786f30964a7e1058daa75fe4dfc71dff73efbd7435068afe2c14ff2730e4d081a13f3ca1b3daf7184b82600303e51bd1c2c288f3d71b6e800f81134ce0880148e671eae04d1721119370b7ab9eb1b7798e018e08410cc84da90e33ef7a1abfeb59a7319654f3910d3a47bfd2397a7c020447404e3cc25cd9304707e0eda063b9dc5f1bdbbd3fb4c5a9c40c488d19f0f882cd6210c36df7a03c8e61967c8e2222fd8b751886a737f58d7ec832b2e519ddf0092a4e15bef3d1e0c42a7e484d5e3588bdaa6ed691da2e3820916450637b92ce8897b5b5d619bdecf3fd20b4d6f472f67dfbc44994bf8a117419ee2ee9a570fd9cc52492398474e387c9fb6cd30e7948736c1d7b61dc23dc221f433bdd7881b5292e89c7ec37d70f8f6d3f04e17372e076df993c4ca753e06f23ac0bd1357fe0af561b5ebb465ef3b29f92d6f75aeac364d26a439ae33d87a9b29c3e87c9100475103883f019c6b1b3017d6744b030791493e75beb7e203c86b94c6c10004e99cbd17206eb7b1866a1549be2aff57d17b5fda5c7d9739920938f91cbf019e6ffdb7b40dfcd5cc6d2f15ce314fafacc38f1c9031e3bd0eeb9553c54c9058ef84c490a670b33af902fba1e0ba70191c2732ea799bf4dbd1ff53e65bef20ed76b4f36c1462c863bea42b118faedc57eb413c530ded8e368e3aee1b4a399c47bae6dee773f2cbaa9f5f435b2d074d6de2c16e4e1b33c5f8df8fa091c0999e9ff0404037140726751e160eabe4fcc86a9faaed246464263935dcc12bae9a6df30cafeff05a3fcade757f62b6619c18b1bb0c8dd1c23fca7c49f2df6fb4972c33e7636c79014c725d9d097f2fbbada3ee15ea8fc3d0a9003eec31003b7254548f9dcf1d1e06ab42dde37b983eff5d7004b6567eb38f6855767edae1f54952baefbc5985e507bff9aa24546df79c7c72ff6e9f98590c7d9469e21b0fac370650ff0ce1fce7abeaea1e3148f325184f6d33920c169b2b58e43207bef721eb3eb281c0ab246923b26ff59e6cff5f769fb04e1cafe117454e7d70d5d36e996a061bd3ed793591fdc0326e111863e3819cba850eb93381aff21bb08381dfd9ffa4059ff5ff609facff1ffd92768fd8f3e505f80bb7b7f43327a39967da0d2f9bffa020d056d37fa0279a5bf55f78032f5f5c961249d3ddb1e9f42f14bffa7ac9f8fedf39147ab170f5bc88bacb36fb1e320cecf4b99131480038276c636e9e11f3d808e98bb671cb8f261188a1384c97a6075afac4d3f21e87908621799fbd595ed53eee7e01d8099fdb44ff049201d5dd23d12b18344ec03a736114a7712044048281806ce48482ad959e5c19596fadbbafecc8357327400650e5e380fffcb788ee3dff3e83c267325c7517f88a4f2b74b9bd0c855b02527c866846d933d09593614c273b727842ee923c9fe7fb6bfbd45b8886944dfc7f1d1196c4fbdb11d7fba6152b0cd29f1c4b1b5b0c57f9e6f380e3cf76ddecf6c514ce0f8bdd7d70072f4c1f3ff38fb5f1aef63ea81b57f5736a557fed3a6ea8f52d2dfa04967fa9e21b53ff8b1d5171e82377d05e001dc6dc785a3a995cbab5cb3d5d0a1a54cb44addb6ebb920cbba2b7406dad49b664fd706bb37557be6203e5a2341aaf3080e922900a47e21f7740b6a0e2f2e627b0c265778b38593799d2f2af8ccb9e83e982edab24ea32764ec64e3a76996746736f90c029f21cd472b0f49360bc2b33fce7aad0941f6441e1f97f9d3e42563ef3e275159a3f8e2a21e27a897f8db532bd9a120d9ed463337d5f6c960d2b22095f808b0547ed8c4821ee6a61e53e96752106e0b8b617984106efad2b34e4ea92f49a52f3d2401907cf3b0d852f53c74dc23914eefbf39ddfb323d68cc4791682c73d9a3eef6cd55dfc1de221b5fdf56ccea16349a01d90b39da11e97764309d3b1f49b462b19d6c275bb1e33861935981f91cd923d2fbe3db900e90e0ee85ad86680f5ff3f7c96457bccca6f131baa6edf8d235786edd3facabecb385f22699445d0e5278920204c90044e2407ec31b62e0b8e49b5b2f18ebe46bb9beeb79777c2305d1f9216547691b4b9d7a654751ecc4e598ca6f53e73d869701162fae0018d8ecc8b6dd93bb4d5f7ca1e36533724906a84895cdd1d4cf012bb8eb042c56fc338a34ff182c985ae76bd2d6b871d9c0c52b9bb9fbe60db6fdc120e41d3bb706c0a71421d2f304891d1e5f07a2eb3ac570c4c2ee1bbb728bc1b1b3ccfb37deda70afb56473074e73ff929ce19dc504f2d11ac1c9415d418a79ffe02e583cf39368b7313dbe80c250adf79aabf5ce945e7e1d2673cc959fafede185c139299b942bbfdf0137517eb35a6f8aa1948d95cf3beda9bdd07db45d0bdef559d4399e181642f9b5eacc0a5aeadbb5d6b741e57b9776b3a99d0e7dccf3e1857ffa411c9080edfd8073e3d392ecdbd9dcfab718e5ccb9c6d92862edba37caf775969e3511c44656ea41b17006576736ca36090b9f1c72ec8c2248ecc989fc995c7b3d4e580b44f63029c49a2058bb38f918759ec651e7781d6c67783c3579e1e1e4d1ba3fc7da1e3a9b7e243a1e84ec9ff19e73ab13ffa0d7f807a1fcd5047d714f5ff6e04ae873fb181225d7b933506b0b4030e21586b921074543fe95b5c46e112fdd20050720a21bbeab64df8d6fe3185d4abc5791bab460e5d97f7d7f8d36eb717b7480af3fcfc859e010778fe3fd22e7517c09453e587bce7019ed3e5fe469367592ab6f25c8236818e4f12dfe26aa782e99d6f1dc3a7f59d2753cb7a647baff5c93fe014d7a682e8732fd2ac6d28cb739b4c196f090c38bb389b1a903483c2a8883b644f9de2414475fdf3b77eb43d905483cc453bd7bcad7c700682125c21ae377c40b0e3ee69bb5e25feddb49e6cd75eca83d6cd81d1bd4b04dc61c5c24630f89e983cee571a51b9d830d64a0ec4a2cfc1d40ee63a7a7366d6db00dab3540ea79f1e9668b604274dc48fc5f9e1783fac644fe6dbe96a76d540c9d91001865b233b18f5d7625a7c1e578f44326bc0d0f09e85c14f3b9e539e129f4952db349748dab23139716d4a306cfaafefd2f2c6193c70ea52fe6b5f37c3e4270f236dd13b1f93c0cff3c35f96b98e7bfd83d6fbbd5d5f062189336cb8f3e6c8e728844464392b958cad639313c784dd900f8cec5bcf02ec7571f41104aa79792f3793c7bfa70acdff8d36af257a0ef43ace99e844b52d3694537f9042c38ead5f1fae1cf7cc207872d0471954fc0557f648bd7f9b3f2bcb367250f1c5ec5b7cd9df03a9f703842ceab7a1cf73ebe2dbc102efcdbfc7a75bddc46a0bc9adfe26e7ead0e2c2d83f7a8e7476afc6c0fbc0e50ab8ac78feee3694915afaee77be56ee9ef0f479077efd7f72d6faeef10d6d637faddf966b0ceeff30b2bdea4a7b0b1fe255f463fe4cbe9eef97310dfc61fef9ebff8217ff677fc31bbe70fb70fd6ddfacf1afc817a12bf54ebdfec9f57ad7f00cdf54f50abce87183c4cb9fe2f77eb6fe2f571bdfe406d545dc924e0b1d512e82abd48e98f81442e276ca37c595da371513e37b74373ffbf03323834eac2ab3814d2712b53173e55ef70c2d374b04d728aba4b7dd729621f189a3665da38efda0f32b53d371dace3d18d7ed657e9886278c97bc3b82b27bb9e35da3b30b18ac1646b7dce0aa0a88829b3df8071710cc2e3fb58e4dbf19675a9dd3e05f1f4631215af53d2dffa41ef016286609beefd6dafb9bef85dd6eb6bc339aee381a356ab0d29439654df7282490c7fc88660d03dc9d5b9d3368cb3e04dbdda6ffa1e2b20e5da04a7a95be473b5dee442639feb585ba30e40d929e9c67cbb8eafda263e9f3c42fcf634767acf7127c510c7649afbdef022fe2cf6011a45fe00732ffaa967970f4f5acfce5b2d89962dab87a4f2c3780a0140dc6a1f012f09c0326bcdea9a65a52f7b068ff0d60317e0153085e947b270812230769fee9b60da5198bc86939f0828db636ae9fe558e55d7222d393adefaefd7fd7b63c53773add38a58fb6178cb0c76f5c2aa5efc1586fc1ec35a617c656a3919f3fcabae8340274952ffc2be466f2fb36036ca6696750a0b71d1350ee2e42249b0b20f5d5b3cf8d9e12105978fc34532c3b01e032308b88da1bc4b4fc2bed5e6a823bd17c05d180be4c3d81f9ef0938ef70f3801040c2109024b8a9005290881cb78ff9bbe0757120f300c41108f238931d066bcff1d0be2691b4d3a07240800046bc44d2e5f9db552ef4f43adab8d2d4d752f9d4f39d4d80331507b099c7a304bd599a69853ba901a1b4ce6a687e4fae778b834dfadf81c438eb19bbabac75d1d23d1cf29eb06d49cea5cd3a6ac1b888797be1744bdfef07afc1a874936bcf09dbf85a1de3fccb6a828cff8851eaa7e90758ff39b3c786cd8e873e5773a45eadefbd46ca6cfc536756f7d2563646d88a4881cc208f634a0fda8e37889bbd82e2f624dc37ce16e573e23f9c9b5d99af0c3781ce51f836bfe3478ca0396f9745088282201e6dc5d3a217d1bc6f9bbbd496217c5cfe3e83c99d8c77c04bd997f112727ebee86247f1f16c914a22f7bbc3dbe8fb3e3fb20fb38b9d21a114c53ba4d0ed4c4434bfe19b84afe1a103ec52d7d37ef1d5ddee80c5ba2eaff57d3cf7774eea5f774f651d3798a3bc27b6fb51275ae6d75aefbfa5cdf3d8f379f77056f7eff3cffee7d6de199fbfa38f2959d7182c142d7835b90eb3e6bbadec9f42f327d42ead875e957f38c5c528e78bad0bdadeef309012d481d4320e1c88f6462bb6df2cee33777b84dc464bb73e12dd77e543f3c5ee6eee4e18f24516077331e7e3c3cf0f2aa1fe50129fb01e099db62a5efa3367575ca5fa70846fb466d029dcb1c199bbaee5b69b422ea55fd2b33228f9e67eab4becdb39243261654de8ba1be092df2dbbcc378374162d45a17e76020bcf8e7dc29ad7d447bcf0759d57fead08a79f93d823c96f6c4a6b2375a1a0ce14ab0484557f6df3bcc010615be0c37fa019083b28fbe3fefd6dfd855c681cb4afbaa5fdb57af653f9d8a9ee680391c748d112778ae74de663504a965d7cac8ae9818c0560ed8487383cd2cfb62ea5ea4b3a0bd7c5e7d8c85331d7f3d1565ff41753050068327c57f135e9e177dd7e41d7d7ca337f13635fddc186f9b825a4d1f94f4f79a6eecd1fc668ff26feb91dfd6433073b775937eedd674aaed5556db737f048e2b7b6ed7b0a7f565de89c4cad886a8c4579f247aaee893bef846cf2afab7fe97d5f73e37d7ab9f76bfad97c683d4eb75c383d4e349937ec3835474ff7c37bec683a0bc55586abcceaf51010fdc3e6d759fa53cf54c0f4bcd3f65cc76bad2e7cf3ae93c64d9a3d9e05831115ed15d79e8f4e20602b084810fc2f895cd7b86b62c34392d1d1bd7b968dae4ab57feea05c9d42b7ad36528d75e01d749049fbdc3f4ebdc39e141d09d3a9beeda09e2d7d672f7bd1fe61f98c67f5a07f2e7dbfaac9adfdf03efbd9497b2d5a6e8b594a7553fd92bd0f2fc187aaaec2dc414cbacc05e0093c23335d14740fa8e7b5ddbac7b659a3ebeabefb90800a46c4606a460072a1365336a6cbaeebb7c4d1feffa0372166b5ffc925c1c99a274e68f8644be0c8020c726dbe175fbee8ac406998c75afc3f4f010cd461b8aa1039cbc784a2ccee5734bdf634f89ee67266fdffb58eaa3a8f64f7d5cea07ac16ed512afd40944b286c794420c1e4354d0cf6262f343e911e48404b5c6ab3bf24797432764505f38a6ba1fb033f0579ea9e6c317f8dbb1f7cb030b1f23f8336ccdaadcf5ea3bfdcf319563dbc57fe745ce1cbba18cafe72fcaba5eff9bf0aa521fae041d707ce40e3cd054110dccd6fff637ea0e47d3a6357e611b9f6266417e2d764e1a10fd4751e77e381852e9c876898cdd1327b7896e565bc1ce9fb8fdef860a164a3d29fa687a555f6fd61c666e3ffecfb6d7abd462c60c574b2e97a834d76c47ef4d13f46a6de2452c35e629babef9fd206be1fdeab7a8b41c3bfd4bf4f737c90d5efc1862fdd04ccd05bcf677889cd7a56f47a3d2904ba3f1e28baafd66c4ca00d105365eb23be38fcfe8d69f58d032c00f0261e3808c60d9de1ffd019fcbe770cb5a6d7e5f2e585619ab928ddd122ff03dbf84feb85fc81806e5c24367493cee997d27fca227277469e3be19dfe53df8326ad58b81745c71af791c3db739238927a25ee6359c6eb1a3d0a16435be36d6fff561f89a716609ecf6fdf7a42657da387e4dbdae66480b764a0e375a6e781e92f9d9f18f0c445d31e201e97f1f3dd4ad9dc8e75b28d5d6e0d8173e2c42740321dcca585b0386e705e2c382633471c958e9b0d82e4e8873ca39bdeea97b51dff58dbe0dbda4a7a18155dece8385dd22e7fa7ef79e3d127593b50cbd9c78c7f211081b311f3e175cbdab35138167437feea6cc682bedd7a443ef707f1df7a436a793b697562733e3045f18f7abfc6f9410446040a93e74a1ca4efe426da1f6fac67b566ba3796c3036dd2120ea6473a4f3c179f940dd746d7f8b1fcc64787a7537db6acfe44a46fcb5937f9f3189cb12b893bfe7a5ed0385ef72325cf60afeb35a4172ba6c99e130a82da4d9c90c313a47bc02a1b530038d6c943bcac5fb961c1b54960f42227558ec4fbf15b8d2f9c22414cfed360ffe7a14c1ddd8fd0f875fffd2c83ef1e3a98c5b460392d4c9d28b9b26995e32cffeadec5653cb6aaadad702501bd2c30b1e9d2db5aae1d89ed30b430df2453b2a5535ec42bbbe8c55c78fe30c8d7fec67af56362b5de090aec7c4bb3f8a575a6689289837b25a2756a19ffa303a85dc6ab6677f68ede7f257cd08734f98ef5478c417d93c6986a9f3c2cfb8298be9796894738dcbfe1b090ae779bdfd5087efb9dc683a857e9bbd8748dd3bcbc7348d92acbff7ac66cba5b9c0be5f3b09bcf1395b9a7ef6b686d5cb74d3f27f14ef90cebc965e742ba0b0699bf4abe9e3f201891c9364083f5f353a5dfb4f07ae919fcdab4b21fbbda366dd24fd0a09f296a95f8c870f2acefdf6edfd1bbf5fd06d5f8bc493f491d6f34e3fbe2e778897159cf154cfa1c96a0e86b182ec0dec448f3aaf21538710046371c9df22df8686d6aa457559e154ccc41df11b441b1ce97e87e0a54bdabb48f6e318aaa173300d258b0d8a17cdad84ba96c8faad7f5fcefbf572794d93a6ec5498df1f87d4ea6a7916e63a2efe8638183f90e49b5df89969dfaeeb6e65e2b395bf381b265277c70a1d846c7451276f7d4ee1dc3fcf812876f2872daa313f66d08d878ffb9b8f180e18d34e9b7dba9acf763f7633f3e29bee3972537f1cd7abf62f450deb7e5b75a5d4875bdcb0490f5bdffe7fa97fe9f5c77594416f7503a05e881bd4daafe9fbfc47675ef9dc65d75e37e62279dc4b6aabf87493862e3eb99d1ab75c076710ae2e96912b5cd5f5b7ec6d1689c744663d6269fdaffc2ebd603782313cf77aafecbb7fa8f8aaef38535fd56ff518fb79af4a0ae3733f4bdc9e7183aade8653e67257fcfe7f8ca394fcb7cce2c811ff521b77a8a838ebf97f91cdd7fdbd42b746ef91cf83d9f53cd5fe7739af38beb7cce1a7ecfe794fb6df239f5fc88be2fabcce79cfe92cf29e76bfce76abebffacfd5fc8cbd55adefb0ceb75474499af3bff9cfe704f5b9f19f11dcfbcfd5fca1b9be957f6cfac359e0f36afef1ddfc3b80aea6be022d7ef61bf8f97df7f51525ddf8d315ddf8d33a7254d2292dfb5fedcf81c1458479a3764b125b547e10681dadfee858eb0d736281c1a3800d7c6c0350ddf70179ba1ff82dc626c8ddfd46b318c62e12891f887c10d0c0dfc6e68e1e54c7609bb89ecee8d6fbb3737f46193a05b279461f188211476cb9caac2cb24fcf11667d5f3aef53db7196b6ec2dc9d459dad61a425a8cb37cd87a3fde9f5bb8db3fa3bfe649adbffef0fbf383a1416ff403fd7dbcd5186fe8f26e7c8ae1fb78d9a4c7e88fb8a77fca9abf6c38f57ebc7f030dbaae7fbfa72f79939ed4f54d15ff06d03c7f497d3fb8ae4ff83d9f57f2d78834cf5ffbd6cf77a4e4dfbeeae77bab87c7eabcf9d21bc18ae92820e000284f1c10c8d33653cd830dbc1847cc0ff3fd40ea5e55e43eee927ec31c9b7b0cfd4d1987b8c5edd1203c99384c9cfa931974467be8abbf81fd912a79ef5f4b7e4241331ed31b5f9b7aa06db9efbb60b87d0a98f5942596bedffad8ea01ba02f594dfe90938285773c2a50f82821ff257900c3ba06c0f6687fa6e07441d4e5020ef7071a4c4c541a9dfd65ed13b7897241f8489aeab76ae8d9ce5359ddfe5340a76c35a1749a7eeed6925a7303be7e36d72f4a3f81066abd538a21f8361b2702fbce58783d124e4bb4360097fea782ff94272e4385ebc232b72fe1a178b01a4f96848ba456493de20ef5971e63d740352e50fcaef37f24a54f24a7cd72fba9ee526af781dbfaaf86975c74fa6dec5d4f3bde670aaea1387e39ffac7924df93d85d763a91f4fa827f1b5eaef797afe29bfe91dff9bf357cbef21abf8ff5af70b91e0b65a1c3d0b2f04a4e38d16f808089c101264e7022550e4cacf2260bd5579ba1c4ba2789c2039dad535b53aced31fda9063e39f1d1d65fd7906d3fdd91c0390b80d3f4a33cedcdc97b20ea5e2359de71d204e8ddc7676ca1ecc34b612338b5ed9d730905b0f53e1098db1ccc885e654589e1b9e882feffa3157f66166fac5a773b46551559f80b2a45dde8971dfab39ec5d0657d19fb637f604d3c32447ee1390f9e042fbf4c2ac203bed0717f11515968d459e3a583cb24b970dc2cd591cced7e1f66935cb9edcb0b0f6836b82689e3e04592b7736643eb6d8d344c4913bf5a7f35dcfc813fbda9a716fa2e40911f00a2eee10a0dff0bad2dc7f52fb505abf95b5296dddafc8353eab287dd65f745b89f98b756e69a17b3d423722057b2585b523972423a0ef0c8d5811dfdb9d4ad715f17d7dc726b94e483e09336a4dafbc338be85b885683567cc69368e7414e958dfdc232da7ec98bd1f22af6f473b28cdb4fd359bbbf89daf4fefbdf7270386cccbd84cc011193f27e8a32e65dfb876e89530610746572deb91da164e66cc98ce238f2b76ac94a7f51c7184b5fe1860d3838e11dce58e9e95e0ce93c0a53f33d367d2fbf874ca29d0359ef0fbce59ecbbf3e7c2cefbe29daed92a4835e6679174afbe5bdd5ced1a7f0a680a83a0be22cba60bea9aee34c4b9ba53a0fe6bb4a9cc3edbbceca57fb0f1be7c603ca6e21058bbc80a53e225175b7a0cfbfdb2cc97c14b140d71f46fcc6ff733a0db79635cd68676ea75f7ce39390ac9c5554b0203afbfe45f697f1c25f46f99b9f4ffaf9a858cdffec5ea6edd146eb676fdd6a496f002baef87906488220c08820001bf962738600fcda6fd53d4ba0aaad33fea8d3ac2b45b1dae7b9a9c7ac31b0d5fdf435feefefcf81a9f63b4d8d5859a3d0afe93ac6a07d4e46ccdd59f1bec661872c60b2acc993bae6c71be91edc297adf5807771bc080ec86b0194d86562e5d9e6210271724f56076446e41f3305a5f217d8b8711bd4c94acd3fd58a853f773acd64bfb5f2efbe17fb94343d778cc9a1ec26bb71afff0cccd7a37e8afb029f154e4e3c7f369d9efaab4f77050da532b6d2f1e8dff6b2ec5d2f108133e67e0aefb137815e82294dda3eb8a3adc665f436eb908a86dab63ba15cabe3658a7320e51d903cd7a03ca1123057ff343e228fe44a6ffc1e34826552ea6cd36bc2871909d51145f4961fa4a3922ed8c22d88eaee9dc0fb8becf0c65baf7e1915e732be20491fc78f2ae74e90932f551be195f163e6c798a0aeea14d57e3cf5b7be982a0aecda90dc7d39e934d6b98b1c4cd048240c43e39767aadee885e521b789c80e00e1e76b1ee33abef33acee1343a756ab872ec2e4ff32f891ff7b6c75627411261e57d1bb820e4a7d9c99f15e0ce8a8ecaf1c066db0d111012439ddc4ca47c3759f0ca4efb5233a66c74dbfe2eaeeac2656a88af57832567345ba06671f031249799e4afcebfd187d9edc6f6300c09d9b3a9f1bce089dff87679b380fbe94b8a4806718d27420c9f4569b637a55d30a57fe5f67cf738a701ac4a1a45174e9fb0ce51e083a343de89d77084ea14ff2473bda9f3fa2433ec5d685653d6dc3ea7b644dcd2a200e4fad56823e41ed4f0203015f607318037c702c2cb63da6ae141e92c4d63a49b2465d689d5f5c0191fb4198e4fadead0bbf6174afe9bce463a53f0f7fed457bd5df3743ba2e298ef53d7d199d23e91441c74957a47b54b29f67796792f9e8c35905935d9c0d389946a1f8185d377e02c246bcabcf60eb33f5abdc64ef6a15939d4303206880c5816eacbd1339ab51d4cdfc88228ae357b7c8df9db8e7228831088aa0cf08d2fdb1a9adef17d6f83e61fcc5c5cddfacfcb1926e0fa0a667753db0f2c7808e742357d31f3669f863e5fa1bfcceaeb4afad9bfd5dd25956d37145d7f63583750cb9b6af1374f2c795bfe6807d688da5db55f2712ce00108835037272fc0251b77b2b54e6e203c048992cb46868993a99fcbabbab9a4513757e795d6469e35fa1854f73262028d3cc3a159d778eb1ddbff8fdeb5baafcd2ff5907f797f593387b7c99bbf2519bd088dfbf3e15f7871b6bdcb79477cdfb827ee5bdfd954d94f7b5d3727f479741c7ccb8d7f9205feade72c9e07637db7a4459f4659f7c25f8a791c3d4de925474e6c1d07d7b41b4e17de84ffceb7712ed9807fc3965b1b029c1c0738dd7a61326553ab3dd9b21d1344f84177e986c7a99b59455b2644d7e609625b92135d5723264d7e3bdff11b6ff0dba755ca831bfdf1073f1abc4245bf4283de819fe37fd01be37145aff0d8e57d99f6bad5171e87370b06127d71e8e6c0752f78c53e0801d8373fa1a751570014997e468d1eb21ac398bacac77278a0f82b03655972c060fa26957c696afdca387d25f35748dfcda5e5dc0760e577f18d1f325d6beb54b597957f708d2b59a7ed4a9dfb323c55f6572fff6e27ebe196bd0e0ad9a6a43df2b6fc38c9e16b6c3f91799b58d32b7df7a31d1e4ed923def4ba2e9e827f7da3e3e87465d662375d3fcde165d55d674e30dc9e2929fccde43a9db3eabef3afd6132c258e39ac757d38ea21c4090a37746c03c321e8383c9e73dd776ffee38ef380242488efee381f45fc7174616d76ed6147262e92a9d2595ee37e6ef445fc4964f7309e4ddf501b06c0530ff86772801cfb61fecab6f0cea6c59184efb3f1e371043c19d8a2bf1c3f9d8ef6149e9c8dbeeb1f26eb7afe19d84f30be3084f5fc39b7052321a4088440c0730cb3586381ea1cadf2af79deb84b86ac95d67591fa2fdb6091ae6edf942a7dabf13f1349e7ba5ff5954da9f936b7aa45816581234bb660161c50e7fbb7bdbe1c389dd0c2aabe6f47b3ddd3ddf73de64f01114bf57d4a5fe8fd59312c953e7929f1155f043e84e24d83afa08dfe89c157efb95c8f360c77e0853d84249384538aaeb15a8baab732009f0ee8a69b820c6865070d00300642e1003fd60ac994cea572bcff51ffcccbf1c279d0d87459e1f456ba874c8931fe4d96ef0128052eee64f9bf9e8189c604331fc76acf127a6139e6bacfccefb2fcca8c6f77d57bd9824dea22917aac8833249369857d373d0e520f62f82eab8768db3d82d8ed5ef88a634194bd33dcfbd2876dfce6655438b93fc13276d8e5aeb6796ab7cf31c17fe5e527c6c99bd9efe773b97fe57edff02f353f2ca5edca063f9c4ee88fd021ec02f8408a06de26f8ea8b9fcfbbc5b7037d3fe6377ae37ecc49abd586e5115d382440b76d47b7d9bf610e88c1b3cecd7e8ed68873fcddb6766ebfb1a19856f954cd579e96b355ee94e132975ee650cbbb0f4ddc666efa2d9bbb4a9db8ca9b6afcd20a913247aaefb110e0143ca205d3585047f94c5756ed6f5bdf698b9239bd24fb91f2f99fa633e08e3b0e7b56602536b2620f8ac570c8cf1f2f5fad569cef82687d7d586fc49a404f3897e4a3ca2ff0895e1f63efbd1c7fe4172a7ad6a49f591dbfafe83a7f57d36ffdc97e79fe5ffa7d2168b562f4290c9ee5bdd4a7b77e5f08b43e159edfa43f42ed7f55e3df9bf45b3eaaa29b7cd4fb5d3eaa8c0feb7e6d54c777db55bf2fe9c97bba797ebbec9766e8a53fbf2aebdf70d64ac0dbc3c6022abc79e98f2f7587f0aa5f71b9be03b53eaf89599f555ac6774fe6be4233ffe9fdfbcdfc7f79ff5ce38fcbf7f7b9b757f6c4afefff02d416cdfd3999fc4dbdffb7fc4db57f3a7f53ef6ffe63ff9777fb9f7cdf7f9bc9c6fe37f2377a7f4dfe06c347e33e350ead566195fb1dc395947e31c81198de2f5b507b47d2fa9c12b074ff8970abeb6e7c5dab1ea7b56cb76f741b0483a038ff65cc4a9dc51a2763b0f9e6dcd6789966bf2294183c4bdda3e87befed1a2773fbdd0d2f3335f714fefb190627c3327289171a2723ef7a2c67fe36699771cf5f650512c91466a2c6f8da32b59dfc740e9d04419c3c0dafff1fd6beadad595d6df7077950aa55ebe19310204068c3a62d3d536ac3a62d55d400bf7e5d0954eb3bdef1cdf9adb5ae798de96b111ab279f6cf7d874e2898e3165de8082e51373b50231566071bb7f88b1c41f7d896177e6773f2c4ed07784f800a7bc4fff21378357e5f7f6baeaf0ff98febeb53e3fbfaeffc889247637e44d8dff911cd37ac7e649992efde80b7acf91890c64511635fd54fbf82075087446abc6584446652c97ad267b781741c62065f0b7f45cba4fe3485e3269bfdcd443aeee4fc767eb692017f598df795a8efe3807370f94cd793fd157f79cc95699e819cae480e3a0e46060ce03818d6c7461d33a1637c699c17be4d32b362af7e15260921a8db3f8490c4375f2f1f535f4eea9920f5e443e3cbf2c9648e6663fe5dfee4b32ef9f7cbf58febeb57fecfe5faf6fafa15bee2df9fafe5a93e9f5f4a5375e0b8ff8ebfbcfb9ff197fbec34e02f671bda658eff60bfc677bb2e3a477572babf7b58d8e7b7dde37bf34ed5bcae27538a3ea5e36abe7e09e560efcf7656483df4cd53ec7ae3778e3a7de8e0a4231e94cd614bbaf4a8f1a0341e4d667e730ab5d9c8cf9299ac657781e61fe6a58ed1e4698fa4fd88f26a93e53b8f197076244104f3d48de4ead3f85c2c51ba42fbc7050841500ebaafaf8b0e9c7f3ddc70b33e314e902967c6121c36397bb330a9eac96b8275ce608cbf585f4f9192c75a1f64e25b1f5fe4ede5bad6b797eb4adfcadfd78fd7d79be69bdff8725dd7ab7d5f9768fefbbadadf57cf9778f7c7f37f8fcff8c7f8e4f5f33f328cfef8fe975fcf4fff317e5d6ff07d3d19f008bff9bba91a5f00780a9e48d479f740f77513134430c45b571aff6633e237ec2e7c1f16a62119f8a4ee2022531a2688c6f456c94c1a53644f1e1f60bdbc7910041398db68722f19b7b6cbdeb9390b6e473f7cdb7888b73bd13fe2f997eb3a9eff7dfd279e7fb97ebebaaee415c0355f3786acbabeff87af1bef95bc5caaeb3660fa11264a27a19fd8f1ff64875e7456f6f337928d7c32977e4a835cc5b6e21fbb55f384fc60caa38fff681b6becbc6fbeef2c211d8b756d7e9b1e833eebad0b8f44acf9f4af70488259c209e265fac1aa0083dc6124d82aec1afff9f835994c5d3749eee693d32c755a5852941dc77e5ca4c4d7443a2b5dbfc1c16e5a412186f7a01ffad0503ff44da24e73305dc7a5273cbe71a1dd862c495a2a242368b6a309d4e942dcc2aa7a586363ca92c4359587bd221f8d995de2cbb9faf121bc3da00ca884d3c07b867d0e72031c1c1fd7275082b43afb0d6ed5dcbe8f71fd110346220c62c495d8fa266f88b64756868b38d5bd165890efb9f738d84ab421814e26108ac778bc553501d6dc0d146d78658d7ad0bbe8a275022f7e64a436363a5f791978fea931008bb41ce2f6ac34858edb3bdf7de5ba678f94baeebb1f63db23dec9771dbce657cbca00658edb66baf782709241c8775604f5ab935b6eb7f3964952b370b6b3f264efb4ab131229c6bc3251716823704d0839e766765c7cddb790ce1fdc439e7a46f36a85e9abd3262b27af6cd0f9ee84bcf7ef3781b4070e20a040959c786ef049c20650036fd5a774b5dd58abf7c71a7754ba9e6d80a7e612c906a9cf759f31de6a0ca4918fced1f658d558da975f1964ecd376315c71910eeb588ef37e9537d8fa48577e5a3b04439f0ce6e2872b141300013a1ebd1dd7fbdfff5ec709421b89d46ec50bc94948baa4242178ba16bdbb5a933cfbc79ad190f4241127d778c2b41491dbb28d55248d5a0f08cf2e6ce15ecdb18db25b3b27b36591de4f4e808ffbe949cb5f22e108f6198e33b004e48013842a589ad06000b2059e5a96ee190fbe318e3c010e96842299e7434f8bcee5cfafe36fa1de931a23cad532a53786da7d1ca839fd04c87ce0c2c13619fa27d5bc96adc687196237c8d172a79faa73612311eeb1925fe628bf4c34620c331b416aea7a40d9200c194dc7de14008a97e40abf8aecfef62cf0259848701b6478731d53bd7ade3fde0b597357c9c1e5450e22a3a0b9e6752ddc881e5ccc3634cc8483ea81dfb5630593d2b5f1d0c7a77bbb7fb063d71a4bf8c2ed1afdd4b3a03ec9ade7337917f38216e28662daad487ab3ec66b320661135ab3bda3ebcc0ca40101bcd0e68eb63795e804bf8539d7b7dfa1048baa728d99ffa74e81f9188812bd01b773f016660ebba95f032a77b500a972704adc90f378cd9fa3a7f26adbde6608d0d8dcfec5c7a4bc13d5dddf70b8f7439700f3ddb6db3342580ddce5e9cdcc8ccb65eda6112ab319851eae2307927c51f384b7f62ac5ee6246b8987cfb697a0c4ab92b3677243d7e3e1e7373d17781a06e676cd6c2b5958fc6351918785b1b517e519d7657a7b55df8fa60078ac07c7a3fee623bf4408504c09cc1892547a9220adcfb43da16c8b248798212a1d3e914e34da1425f0e5cd44dad9e44c9f80d347281f9f1e81db814930e9be9e3e257d0660b0d80ffe7926c1574ac60178e066f66c87846b3b37a9ad014762c0a9b3c8d82ffa0b4b432adb77e5a0e4c5449c11f52ca82b24b3d5154fdc20cb07fe9e8db29169abf3452768d31e56dbc3d69aeeb6f62a5b24e04e61ded3f200e8890b2edcfeedbcde9edf9eb787e7faa9b8db212648c4cce5d3846ee78be2fd667e18e2dd6b35aa485ef3e360d0f522635f3c69be31cf600885d91630c78a9a9ef0eca474f8fd69c6eb9e603b4a4eabfd2d1ffd9107ad7fa5db0316ba2edf0dd384487ee1fcc023e7c7fe5f383f4e7e970dbd8bbde6f91ffbd707fc045d9320b393dba73f7cec2273bed73a3984c98ac84509ef1197b6a9ec20414c1cb3d76762f1b40fc388c4f5b0fe0fd1c272c38dd5b4cb383d5ab2d980d245905a9e594f528bde6e0fad13726e6bee78b251f6de3b9c98d2f99f6aff2d2ab8a3116090fcac7488256b57d7c51835e81e52cef076e8231ef243e42a77a97305ac22053fb93c75ece217a6ca9fb96c257fa657ff3efd9cbbcc1e7b67d796ccd0b301cdca6cba75049fc0c93688ea8725f92038df6e794c6a1e93b7e5eade5ff5547ef0d444902c752f609cf365ecc62ce2652009a2d8258b787603658e1751ddf9c5195649dac730d9e8ba1aaefda5817f44ef72a1f693076000abe0cbd4bcc74cc3c947ca3f10eadf1c839da83948745dd577cfa8546701b0d2a939d1bccfeacc069cf464c02938b096a0e5d76307a1f19858e6cdcdcbed9649bb9a1cd9e331e0c8115a5ec2c807f0a5b9b124bc0ff91c8a4024ef5e6e6458d6b63aab914811d2fd3dc9b846a37ff2e71ac1c0b3455b92b85175d4f56eeabcfe5eab2b5ed16f19e8b82dcbad883841c9b025b3b5f26121dead581c6c17e621777a8120ac1ffc0e6634a9eea839dbf82841cbe5e30497645af20c63595908ec159bce27cbe9ac63c5ec0d38a9dd6865fa49c89d5646101b93a62d6fe63a879811c48720c993b0efe0942a7925d43b04802c4e28074e1145045ff8e4c1507372e171cfaef09cdb117bf4babe3a01c089e1c6acf10464809a831ba514b5d93ba04bbef11716ff0fb6b3d07526b7d6379f2afde1b116d9771dffc2987dfa53da6eecf4363582c5a293c88ab2579af01ec295e3d9dc45908448121c9633c1f2a6e479829dbe3ec096f69b583e6dcaf5ae583f6489597510d689b7fed8d12e9f0f18b0893929ce41889f10c5f30381ba49cae4bb5fb3d17cd7021c03326d0f72ebda9ffde154472c249c3956d744a4d37e2c866ed96d278fb7b0b61e23638e1c4e382ff637ddd7e38021060c96cbc92dbc54ca9fdf024e8071987293bebb21b5477d72c5f5d6fabac75ee9736d931a28c6e911008e2c4a254533e55fa59e4c957c5e5f3006fec00477be6b4cdbdfd891d6f8bb3b72c6b1b9b5f12b7eeff5e13a9eba715018b7bc78da2ce2540678fec5e274e6c5f77419cd1e799c793e915fc161f66c55f30f3eddc53c9a86363aec82122d7c6e5b5ce385b28357a6af9366fee477f7016903e68f946f4a69847a3e32a55f33ad3700bec0ca6115ce11e23c54f2c693154682d20143bb7681a71838b5613353b60c680cd56336f20c6b0e8de44f7e56afa876ca0ef222f9e623a376a2aca45cefe1ca2d12efd71efe5d4f74379ef58bcd13056576cdbf6ebb172eebd8daf8b7f78775d9bc03272b1f5b2412d976d1a57dd2cd6552928f45989145df18cb8aca1d5404858482707b7e97079f7e8317b15ae76a95db6c6df56815f4875db07fb8b551fbf96cb46851bd0448264a0663cdbfffcb3ec9feec874bfed20fa731e7ffc09ab7ff1bacf9d33a3c6cacf6b0b58c7b4ee07e912058f0cfe371bb7ed3f647796bef9d57bfb8dbcd73f15daf7419df110ab27c1404eb380d80db70409fcbc9e777ce0118bc2e278f904a94837a1fddffa1ecadad8dfe6e6fb1dff6560b442616687b2bb15bfe6c22c688b8d85be25fedada04b4ba2df3773941ce2c6c1e146e04484569e78c516ce0e1e8fc0c214e5f6e16573bb3d6ea66d1d182df2f2cfb3b77f3c44151796c7862c0f470f93498a3c69750029248f99a96c8c4b9cc8b7742e45fd651d0df5f9e7b1d6b61b722530f0a3293b3eaab41dafeb6f398115bfba0656a06b92c418e2c9b98951f26eb5c471fbac27af1f39a1498305b9a5ed9337a9bfeb2975fcb802db04ad6b0026927de3abc125c6afeb5fcdc95cd81bd8340849ca00cc9b1ba9d7cffc5c3e3e5ed64fadf75a9dbb6d8af69c38031ee19c001c5b006f3691d1a5664ce9ebc7c9a44142584f80357044adf5753b53faba76db2ac55cfc8ffadabbd6d72619f53580d392d8c5955aefedf57abb7d767755effa634f0d75186a2facbf757582706c3667de72654b4534cf0a2f62af2c9427f369b147b93c6e39c7201a57d73c25c96c99c803c554e9f5b55ff0dc0de5529adb0dd9562670622bfd3390309f2637d27a02e5b42ab987e66ab3c7dc8285d2cf8e98630474053c315d496cc4434fdb4f9212b89b395a5f2bfb6d7da5af63f4c3a7a64e12474c77d56268286e8e2e92cf4a3e584552b95051ab6baadfb866dfb592da7e094a7637c491d25320bffbed2e35386841565ed07fd084d09ca14c406854b464961b850ee6cc26b2c62c2227a72325444d31a992c7457528567620499b3610c13d43d527828420486d98d40717276f96cc02662a5d8b23e527646a7ffcbb3eaeb53e2eaa8b3e56ef75ab6b87dac446dd72939cf762d54db168925b67ae8b6c4d7026930958533dff020ac0330812e83c4c95903441a8eff896a1f20f19da42224b2a0168372bfdd0780194821555b63e7743bfd9f1170e90c8d6ffc0201febfd86df2f18714bc42b913afdecc32744d8053d84a6c8ad506e6cd4644e5e09b74832a7a039329b0f1e654b3fafce8b383bd93170d2c3d18fbf7abbcd623b6f5616aa960d9a3d3b11f34d4c5f6c4c8720beebabfd77a3dedf0638026ec097da3e3c2a9b9000c1286ace18d8855f9d44022cddd7c9750c815cf859d85fcea08be9ab33c49b4bb7e00e46d9a5a773c8f384df799e1f39dcfed6355aefb6fc14b4d99169dd3a459139bbf77203917cbea65d4a9c427e2e13f2c53bba77222aec30a9cc545010e952eb8a34dcae6ef3d6ed198290f24569e46199dc4667e6bb4573a2112dac3c8a41d9859aa7fc22efcac98db4999a1f1017bec86b794ebff32d2fea9e2d202195bc6b94bc33077967cf26f25223abef9793a7393a48ab56f256e3177c8a41de3e96370ffe95bcb5d49cda6bd8184ade6a3e1234e84bfcb99c936b79fb3a51fa92a2bd928ffbcbf87fe40b08a71dbefffa3cd1ef7cd35efddf2651fa167ff73b5fed0ff8aec744335866a8d4195faaf113f4f70bf309a206bf6a3cd1319f6ccf61c26d0e3528f9e45fde5fdd7f90c3fde6b7be309f609b8ef78ff96aa7812769633855eafec578ffbdba7fcfc7fbc77c55a5be7f4387fbf3cbfbcfe1469defe1fbc3eff757f78be17e22467b03cc3b48a5529fa3bd81761caa2b7be37c89b9a5da5716a32d9e84fe505b36c61c871ab4b5ba36f0be10bc1d3892c6b866a27bedac9c27a6da6888bf58a86644ca68b4c11c1c2657e764b0c506ae82ecce2d94dd9918aeccd64c5a6694ec4c6eec282ff81b9ad1c4ed9233a29050e1c1f3ea63bf3d6ef71b5bdcc584bcd90fd579f2b9f242653db573b8d827b0349027dd7b7554172fbfed13f6639fcc47fbe449d927e36768c32f9fb5db61a135977202b25a797d16a22ebb63adf39e86d8f297060a0ab68fbe1ec880cff7b33f3c403e07a3b65a352dba6e0081b4dce811e48049f313270ec958b7a14d98a1e79c28f9aff38ed669a80fd131c22720edf6a3a83edd96101cea9ea33c887fb01d74bd9ec9ba20cf1cb7cbae63998efa4fc795a4cd279f87655288573b9fcd1052efacd6b46a6c8bf48b727e5898dcb7c56d49606e433c85a0b2fca0cd3227e42ed5b90e6ea348d47e053d35abce832ac692db177b3753fb6f9ba9fd57eb7c1547478e88702435111608046b30173a4ff1bd2e4863890cb5c44938f4ffe81af7c0b9f67bc63db91b30d49935faf7437f96718ddb862c355f1caa92f6c470a3c4c6617ddd87affca151668ffaab4f2ef5ecff8c49e99e8a212695e1ac0e71febc882a6445b3931bcda42bc51a49a3a606dcb99d30923eb76d747cc3c02c5310029c21194341e34c84d11cd1d0c8ed762ea0cc90839a9e61f91460b9f7c4bd40825b2028d6986840afe5898e47ad12f07ec5a3bee730b586de1e2020d041cdc5920c3844cba1767b3d9e63404061abf761b8d37846a641d4595632c854675780474212119eb9366e0e41c4a6caa6646d525a51d6079c6432abbb657ff324bea6cfc1e2f123381c9743cdbab2477ee49dc38778cdd680a52d951ee6a59527034fa5d03d7dfa5c38ff62132faff5311938751df8c6c43e2041aef4f89feb3f1b62d64886a4e3471732d78ec6d8a4e6a5c8ee82ab3e06650f2a1fc38a98b217edbfdace212bac8e9e693b6b1d9c2d8dfbb9ede0ed1149ea639e10d84fad8539656e040584cd1f767366034f1dcd2f0857f21f656a9e7265b7e5042253e3f5ccd1c566f6f860335fe6ca956a8d194610dce8fc082436c8d5e9a76fce2223aff0af7973f9cf7d030d284770ccaeed6faaf367d77388d2820a005acc0a3f124727d4dc706b37e215e6d5e61ffee73777928e83ddb23e33ac1ffeb31f4ce1b1be18e2dc8acaec31b210a6316c28909d8b698fa2a40aa5c6498c3090d1f6a685b2bd617fb616fdd94d0f619921b6f68188450c5b5fd7688d3d1b7fb3bf9706ca84d20f02167e620d18b5dffa905fd9e1736d879786e6a53107fe290c5c9d2b8a97dc65eb97242621317198bd9352d74faf90c8cae9d4dbccacec830beba68dd37db7e517ff70024b81767abd53a0023e95cb8b235128c75fd70c7e9fe5ec276646c2df31b324d1beb3759503fbc775eb00a4602500947ec13ef49a0958793c75ada8b9d5b67cf73bd7feddefd3ff8145d2a67fc6d47084c47e59180d8fe099162bb2c064e5a02cb55bf96a47707443f94a0b67b6e8a6c895f34f3baaee832edb320431c3e9c762c25eac963ddb6d92d8fc463a79bda3b261346f522a943d4fe149d96b35a8bd76005c832ff086237e50f6bca9e5485dffb2e7ab4fe98d7ce043dc4ce9b5800cf53a43ce6269fc43965cd6fe55e91450b2e43beef67dff9ffa27d376d23726ffcf7dbf9e6d1db65cef1a965fce0ced920ac95f67e614f4c9ff8bef103b6d5aba82bffa78f6c4a32793e6f31d2d606b453c28406024e6bae6435887cdb3434e4c929898f5134dd26950bdc5b84bdfdd8e14344f934ab2b1df89297b8a4d9e52f4a1f13219a0778607bef7ec04e1eed197e49ee1fa19deaa912f1facc963861e857750f61716f006166ed131249c249edadf0808d85c6004d41f63f5004a0f285db74e749e49d9a85afef384acf8376e2d41890180ebb31bf1ccce7934c6861cd426ef0d4f21446c3ad868c47425d9409fdefdc4fb745fc3e9b74d94a979edad28d8c77cfa4ef3ec0be24a9ebb7ae2e6756e77b32d088edd68b7f1e22a70b168ec2dc5268f056c5ea485aa87c9877393a21abf855f4f1b537c39b9c1edd0284048d34ed89d1ba6af1449e140d65fe2c3687ff3003b039fb5ab5aab739c82f530cc93c57ee60908d15c8b822b998c11d1c6ffd55c711ba689039c2bbd6f23700f9a5ffe60b8a0647965f85802586dea5b5cf9ce2c22212c4d2ec71c68ed58d1678b0422a44f86d81a67270833f31ffa7ef51498eba6b0ba395ac430ab9e61cf4acfdf08eb768ef876f1f5184e8ea0f7c2246e174e7667b9c97dbf1beaa708c0d7e453383b7893e029b96756b004f4d4f06d1512d4f9b97c21c031743c0241b0a97bde012d8150d45384846880d736aa6a25884d10dcdc0e76320c763230e08903a0746046b1d8adb0241473626321ec2dd7d89f3b93130fc973e0777300b379f0fbea6b118bbb40d74628cbbb062f629515f1a329b2adf7486c203c7295ad9867bfec84204cfbe097ddf08ffc4449ba0c59924d699fdcb176e853767b365d44b32388d4b48b64e747e44840d8208d57a7a3cf7e68ecbc0a9a25aa12bbb028e34cefcbe5d6164e4fbb623a43bb92bf414e4d3b37621b09e4014536229153a4afaca495555007e16cebf62fdffb734966bb3e4b0ef129b8bbf8bf93094125580fca7fb795fffc35f251bc973737efd7f1d27232e736834dadfcf7671d2f1517fffdf1e197fffee37f62c8eb2182e908650f3225cfb1840d9027bf315dcde3a07497d65bd22aaf6254d980f538e22749c05b1db32208a6d9358f9e09c9d39623faaf3980e03fe400be94cf59596e68b08317d595ab64cc7ea763e1daef2c775e482c16138b0cf97ef53e3ff114fd3ef8ac6cb2bfebe33041f110bf6796946b92c388af3de6b87ee36bffc96338098d1cf3e4e0f02e397b05afbca23aa0b5f285f3f37afa740c8c33e149cb78127a7afe7ff20d18f2112fe86afe41d0d7d11eb98a7f8c7cbfaee537e849d7e328bb52d7dcfcb12edaaefce6e09c5b830ed56bb91b6b714c04abd3bfddafd77500abc40840cbfa1f7ee1ecb2c6d7b53c7a8d752dcf7fc12ffc9fd6fb4f7ee1bfae3f375696982dac3c593eddfe7daeb3902fcd9c27a698ad46d17e06a7419da0a9ae6faa6033f240ba18126ddf99803465cb0ea5488fb5cbeeb46fd93347f33acaec5494cff83d7c2b089945a7f6ed7d5fee9ad7ae5b0789c59a178b2ee368e33da44a3fc35ff5b34c5020097afd7ab417923c78c2ab9cc974e04006028d241144f5988fba07dd73c109ace458cb32e46074fde3b04fd95f70e0972b5ab0d4ea92d2e624a2a1486944375637706181d7c0945b2b650c6109afc33956be5936c45a74fc0590c6be1ed6cefcdbdaddc5b4a705eb58b15cb188962ca6052dc9f02a02f79349823c619fc6fdfba6b96a757f2e85818f859a9b21d6bd03e3dff384e48fef853f7e9f76bcb491a85c24b6eabd6dccd57b1b34cf525ad0d4eafc1b1991d4c6b4b051560cfb011f26538198402740044c0318e10442a913b8efc0b395d766e379ff23befe90642eaf0353cc723b6fcecfb3fa7989986b2a8354185b5accabf838f071a2c9640abb149e61c89752095f1c4ba2fc07b59e181207646a8db9d2d41e64514a5b5138b9fc4326557f9349dd7ff8bda6919a1356d85b56d056a42e66db83c6051725cd2b9f8662433b354f1a17bca0b9d8d0e28ff912d8d0eb29bd4c890922e1c031bdaa5fd95ee242e4c2ff8941502245e486b4d0fd172d1bc6c55969e13fce79dea4ac6d3adae9f5ab6c7023daed92c9e93da0b91a334fad6ee4c3f5e3c9bb24ef7048d5bcc46022f0955dcc357e240cba488d25197491ae45653896839c2752c60466d7721efec84d6d48cb754c9448e2a8efb6312b6d54bfb056bcd8dc5dd3364b87cffd60723a276ec7d000f409085839d90b6b01b4015342f1470fbf8e29ae7eb08f008cf99a84ea05b2d46bb34bcc6bfadd5b5f2c29c5f59946e913edd8935b355f34223288f88d1bf127976b7caa2d408deec0ed0035e048dc458f701c7aa4673e08c6f49ee30cb65cc71e9248ce3ded8faf0c17496aa170e71330f0150ed3a7be1f41a07b0252bec0929aa65a672026d81ac7deb648b3c49a0b61b5c33cc388271ba439a20d6e728a006c02d098001f2b5390fff27e5d03ad74e1dec98d4cbd93ddd65b1b656a4e62125efd8febbef73b2a3327e8d81debb332e8d95d20b33ee83387c9ac443d73a8cc4eea1af0d9faa54d1ead3521691b7ec0ed3c5986ab4fcb9c256bb97db1d6cc4adb67fe92afbef0fb6b0f2ff4e3ad7b7887b7cf133ca75f6fd1ededccd3bd6af0b19c4c21ca60abeb210eca8fff91d3a18106ae971f19fa67cdc3b418ce18cd335fe3f117a39c16437d5933f4c7822f74dd4e42041dfaad800e757f77b351665f389d9979dd8f413ba6630c6e58351e684cf7bbc0bcf6bd529d63fd675c5ae70857f4cf9aff1b5ad18e16cb927c725ec7ca8ec0d1ac5c932d4f2371a4e113c6dde59df6058b65414bf1e1c7d90b09674a3610249263608649641e888b49e77627f2ebdd6170a52633f5fef4ace6cf179ab748388262a4df9f83c6323ccd2cdd7ba6f48a8e37abf33ee89654fb22813a1d9f7ec40b2be7ffe39957be01baf2e9d53944457667b5d9559d99d60953268935e8165a581dfb8f7302455558ad5ee70dfd34da25a6c5021b1f41db848ee063dc3e35022ba48b845734a6278f8ff63dcdd0415a1f035e30fdfcd0e79d7e4697fe9780a28324c5c8cfb01d31d82f399335fc706524a06b80355781433badd7101589854ab0114ff071152efd1ea4bf422bb5c7cefba714628ace7a7f1be025707438c11a23947b437e85a3cd109b9b9b7a2d92f9c0c932ec7bf2571d3ec6b1dcdf712ee74797e7ae8313cfe4b3050deb176fdda000d3cd45274d2afa2f3a1734dccc54d853351f20c16e240588e1dd52fede5df3087135f772039ff34b7fd572d280134d6e0ccd6b37f8bdf032bedb6a8c3be2e1dd468c7060a19ecbc107dd04115951697f25a6f134e6ff7a08a9b27f88d28b74ec67f338be83acc62b8005a03358721698d078980b4be7ffb8bcd8206b6d83f4d949d9a15697f54863ab668e3bab6fc59bf15ce76841cef3e7b7bbd9dd8b9f3587728562df6e23d3300edde751e3bf717b03eb74e80f2c1e4aad3f8b7b72b1377b616f21d67c300c9005a6900888b603d5be390c7690f67ba68179910dfb8529ebc60ab30d95f6d9af78e59ae98b1db9be9643e66692723b85930174a8374c47be317d6c11281d0d26c811bf9234637e49e31f6e51a2f76b0e18ce34e2b92bb2010b54f73a2b7f9e4db5af1f6506ebd98a767465b5dcb1f2c4d167b74d4a8876af3e67c4c7b38474f34f784f27c9c1c0ab69622e2adebbeefc3526ab6ad99319eb73fa5e1edec2e3ece8384f09ef93d9657e82afa71cb615de6b1ccb15302110028646de4f18628cdffd2ed97026577b8dcf1956d6502344806252d1a8ca070ccbec7bfc41974e839e0ff83a57e3d7fe509b2ab973c70cfe00d3d5060ed368f99862bf98c7169e3508d8c7a6eaf60b7365ae9c79e61eefede7f2f81999a25f9864b2252be628bb832e27676917709e0192c8bed47c111dcfd33d9443cfce90cb5cebbceb60cd2065b768ee4ec9f08a8f3c4cc33dc13a19cab191044773f0681b2f0b69989424662b21c9ebddc7d316beb2f96433bb57f32926372778a6f824c001f3fee29b463a560444bbecdffd9bc265b601a9b691043135669deecd4a06bb73c05c09d62fa9b602b4fd24935c6360f6490ecffecd6c377985f07ebbe01e5e5eec33e77d9208fb55c90753cb87b9a3e403c2979acb6c33ea810d92e47e4f02fcba82383dad66db7041736f9bae3d77e296b3a9b49f646b26f3cb7ec9be9e22d8eaf3b60478ee4d9921869bcda86f07de18dd4bb0ebb69b7c9ae6017f4d5c736fb95d9085f2650ed365b19dd4873c3dd75c73a828bbcee6ce9b361a7ff96bc9959c870be714404bb4ad41fa24b7788d6640b6dc6003de8e245b789e2b816d02ca873cc5758d1f68191712a08e5534310d933c94563d390bb421c37203e26a3ce2ff6a3c2147fd381e259fb0205b78add57830947294df19b2b9fdf57ff5fc2443cf57cfbf7a5f0c15fc7f7dbed28f5cc213bcccd469b1010cc07ee221e56694f01e74d954c70ddaec14c44a76eff3d3599c5e531c9cb6d9e93585a7b7f035f636cfccf3aa4dd51d6e4b354e2260c91d5359f4484000504cb1cc941e91dffaa04d36aefa779bad325cc06bf4bab1879fe9322ad8ae38c6d64355974e7aaeda4cf9bb2198065a499bebd8fcbb72b789f4ba641c5b86fcfb87d4bd3bc2f2f97b2cc37cb90496dcda8ce3b11bc9b53ebdc447ac97aa164e753a9ac6cff7097852fef5910ffe359510730425e154ad09024086d31aef20fe073fbbffb7cf8d9d0b0d33f93cb773593fbfc99d0b177f5cd6cff5e88f8b46f97ada36488ef5ab5dca1873c9cc90067644bf5ccb7dd3fa90ccd18bb4dfe03403c2a104ec82d3d61b4b289d9c42a4f3584ce9e488080052b0880a08d54e422d1f6d9b1f9971892fb37ff97cd7e56f346f8e26340bb3a3cf1ff8f7efb09eebb139adb821522c319789198ac2efc2e8399fa7cb9c515356cc0223a5023058548dffe367fc21d0f067fca11cc78f24c488460010d196166a5d0870c7c24da4e7b5fb97f9fec7e78b5bcfae0bbb4b1996b325cddfdf7eff5ee3fd30e77bdb9cc518e6ae89786063fad7f71ae331b7b09e232edd1b352eab8258633311a1fdfa9dde896abc548f578fa31deb18f34bbde372efadebd2eed28bdd885ebaab715cd65ec72df0417d1f13c3f7910416dff11f354fb841c399ffbb9d7a0ee5014b19981d79b6bbc33ba4c63ff6dcb73dea6d266b209df24f0807cec10841d2ff45aca9f14c39cfed829463ac892a056c21d8d2c238aaef4100e7c96385a6dc2b959dee02bc01362022107b4555d308760e4a5744cc5d90740130e4b3a9c6181c525f434c7aabb97f46ac77aefdcc9a5dae8f18eec7a98dc80a64b6f13a7eabd741642bda2747b7c8948f34656db2b6f2cca1256fdd223d91285d5b2d51eb55b1986a4c54b7cf505c8a28406d10c487ec455ad3555f3dacda740e616a5066b1254114228a91c84c02295e44e99e96d0417f0fe6f961797445c04ab078cc33888c37b4bf7ba8531981208b7cdd9d91608ea99cc93108bc58dedc4156e11709af232eec27d83990a22e68d86cac5cd9e0150151e91e328db1a073fe86f22d09484af643bd017ad1585eeab11c9e35f71237c7fa170cba1f3f1cea38526e0db8c284802d00244b06ac766d6fbd0292a1d5d252e32474fc1bcf8df697bda0317e1ceb1bbf3333ad921dad3c8b4d41572efaaedf40db92bef15b1a629819846c9385cd6e8849965e95ae7d4e367e687c20f1b067b8fa74cdd901f8cc459070c4294e63d14660bdedc2dd4352b96f1cdc6ec7b3371a49e4e4736bf296a0d769ba82646efac4902f9011c4358e11207eb5ff70034cc00ccc19708e31478670c2c64492dd2c6339f5d57eecd4166e6cd44280a50e2e99dffb11d3c1d71ae68d5895c6f21b71bedb5f75e7e33e2d10270464640ef171e57365ce88c39afdaab5193908081fd84a3d096f1622270bd103e6d9f3f77e56febecccaa04b4fa863776a0f0ffcdbec8ec96c6df5598fda74833a6ab028d53db36e9e6e88aec34837a4539fd196e5979a763209516238533e777219b961b230f3eae0745242b26d96a20a5c3e4b510e07cb4c9f9740223283843c185bebb40bd6ab7429c47cb17fcabecf022baa9296ac4755b040fcbccbba826c9cc57259cc7b24d83cc670e300a9c86456a2e6e9954a7b0ef561762f6b74cf8539291294f3d444525218f9ae42c015bc0036a5faff0ca204d9a69014098e01b1e530cff4d9cab939f086180e0844ed36c1906457f9407ec9155df1873014b732737096b945d6783c71acaeb9d33e90a96d9981df5cd94c4af6295f773c0b7fe6894253644e5c550b5c750c5733d714af4e9c554197f5aca8ef649cdefaddec36281e9d45245ad665f7b4173bc7546b5a77aca8ee689fed9c320f1745fdbe28eb77af1cf1cccc7e62708741dd80c7e10bcc1462033641997c7905ecedbcda98b2a2831c25279dcfa8ce7e83a6639d929299fcc2e93a72a57e80ae01d6f150f746f9bd42c9913045b175bcf522b127c094cd7da77b6c73652f64d34b8f5d10b3b10e281970c0949ed03276a897b022168eb5bbd1a847560fb71fc4930c4369b184b49b30018484b55be0862060c572750ebc44768ba2f95a1fab3bbfcf16c8a8e690131cf032b38dea369882b704824134962bce662028874ef8329cda4bbc759848275025968fe6f7eef2f16d51f0d26b7de7526faac5de4b85f71abf690e4c92978f5c78202aaa6bbb86399326649a1f03805960a781c63fe5c4c3dc3a01e818b1720cafb0fe6b0f4f8d05f0c6b7f887c6b9d1b2c354b66e853127782fa433602d8189383a9a9cb800d4c3ba16f1bf7ce674782612892d2420cca90bdcbdf9cb780144edc231fb0fcf8429406a21ad53ff3e4e356f182a13dbd9efe78adadff019c2b259e1117b9d9a205dccd5aeed99c93a16f12f17cfde3ce581601692901ddd9087a6cc5e3c4956b465ca5ebac68fbbc256c8a6bf78dbf9effe4d26338d9ff419cf10c8e41e7116051d3d8551d3845d7608e4cdcbb19fd9702b3e59c924ebd32ee71682b2ba9dbc91d8e6466087ec95766dba2c9fd61ea6bbd4dcda9aab387cbfd99027e0c9bdb3acb6f1214e6f95eea4fbc9147680770067b0569008dda7c98133cb15c4039c212c6b12891481ccd01827a0a0d69a8337d40426d6c8879845123c2c3ef626101fb7863fc4672af07052d2086212d223cd4944421aa0d678b78af444fbac774b9d5318b1eb336d0feaba6e9d57d0d82b0e1d6a55b5fe7e4861b110460d82df99315b8b038a82b0f230378ebef9f14cf6d9fa41f80beb912c3684cdfdd67848c4c7dd4b5957be79fe788eb704856465554fea3999db9fa35557754c2affdb9f24caff7e537e156a396231706e3a886350725ad70e130740d7a41e076ec804819a238d63928c35746a8f0ef61e9ace29f0cca17ca7f6e8abce5d0235919de9fa25ad8f8575f8f36fd7c9a83924146aafd196c42eaf1cbb6b947df70a43ed5cacf7d5370e13bde0308d98c4cca63dcb3dce029243e6f264fdba311c6c211262996320c40b45ed89d47e9d414a6afc450d4044b61617e47db16aabb45c619c673b6eeda2c5fe316a47bc401ddf78497006108269813fe4e134c7c25803411067642803cd7700825a033ecc0a25f22acb04aeda0f1091a1ee6ac00a28838117378797cdcdddcde95cce9eec455ca1ada47d6b4e4f8bad172db87d18e421053ab9b9874ce25ac25ed99feb0a62da8a988839533a96e6cd1671b09475f2639f8b8bfd4d8675090e23872f8c981f2ffa6f04c74a460df60f079040e03619ffa6dd7eb4e4d51ee2745baf4b942e2983283d06517a7b6db36bdd5264a1fa4ce367a17443786a5bdc61c954dcaf6f2bb49856ed22de3ddba6b0712e4eb4949fcb9979734a928705c9ee969c3ff1d03eee6f6f191742fa22bdf3fa8a124c4bb4bfbb41919d2c57cf0e91cebdb9d97697f899f93599c36ba3ce7baaf3bacacb16ccd4b94be17a48633811ace6672b34966e12fde06a8624cad46ac50484e3e0264792699ededf728d687e721d277efd789ef696cf4c9420c11042d58bfdf1faf425395a9a2f371361396c923848ccc2b92415da27fd0f3f184153e17ea9b5d88ef8c3b6de6f8df22f76604e619157a9d5a6babe6f8cf33b48247ce83dd13692c6eed03e4538f65658da6fbc6058ee0019991d0d188aaeae4b6521ea93bb8067d3a04f2e9ceb2bd426033f73994ee1e573f15a1dc264658589383e7e3e7e3ea6f6dd313b7164b5c693138bdd32bc3da236b19f0dfac4cb1c2f13bf8fa6b38babd4694400e16d01d5e012c8ed3cf331a8316bec4b045343d9d7eb68c08453e35db96d120f7158f8e6f375352e98e6484eac3c519fddea7173eb639d301918ccf0c58ead56ae09e5b47b5e3eec601dba2b38ddacb97dc287c09ebc573e110c6d8f418f0f417cb12f34c7ecabf6e7369a67850f7839c013dbd6fbc2f5b0a81c9089af31a780287d7dc93b9b17ec1927943ab77c9d553621db795263a099df58682de949cf42ddef99272bd691de6dd9944ae7bcec6dff259677417f9bae4862433fb9395a41fc18d7884c1e3f205cde3c72123349ce938f0c793cb3cddc793a2f1fee06e8c30c82af49a7f6ff8b040f10859540195873d8727486f870b1979e5d4900ba1429a31c7846d3e92ee0a6b0b054ef4e7c94d42f17d96f1799b2538ec005c4401cf3186ce2046688378e2d08c272e5d9c6cf334dae9fb9f8e733cfdb75f2291d6d6791e5d003234cb0b300734a4d5163241b8a6eb57ec11bdd23170ebc4c49c3940d74e11476460e628dd566a6d7cf025364d43c0ccfc48238580a67ab6b8d47eef2a1e764a5f1f36473c91bed50225fb8998dcf328667715820692cb6b242186af4bf199fb6af84f49303f22273360f4afee517463370c71b2f769885a66c2213698b816b4c07484bbd57621dbf712e58ee16ffc178ffce250f750ad3318eb5d2750adfb8eed95d106a9ee4db204e7fc79fe488f936c4beee0294f6633cc5b1748e213b0679e6007fb2799bdd47c6caad56a2f15a40ab229df945933b98d62e274e20b36e29888d624903912133274bd2f22541cdca4615b291f1e1c5e44463881d414227e7471bcd6a0cc44439a1505716486a9b5a46dbf17af968c1f169c5ed8fb317bfd0fb88efdc1e56a42753223f5e189e3124eb8529a55c81b1765ac15c4e56841bdc14b30d16f3ca29c8d1caab1ac22ab44172dc3253193448a4e64a9d698dbf4b30e2a3d2d07114a783e31c1c8042d973be4039b766078dd791d46a4d51c46b1744c690a0807806db100210c9020145a64cd03624c894ca7f9de32d071fcb1f7b60c4887ff30a567ac5eccd8fe43bedaad28bc48916f0ea84f2858e9283e6292762901d43bc5ad938a996db6a6f0431bbd8d9cae6ee69cc8e7a8ff41a0fa2b4c2f48eb6490f7bfa0e9cbcb3d67a89662bea17b34fbfc9179b9c7493b3d3986576de7f49045f5fa1f37aff043b6a9b7ce678317b9c7c1a484455ed6df84d90672f42a60192b37a1d0f0d952074eb343294fe42293812eeb8c95de0a9c638416275401adf985c72801e16bb9dc63d1cb0b45650c9bd13561b17ffc84c2cb39d37f4687d733ea9771dcf43820aa63ebbd43895e5f6e1353275950a4d6f5d91d2d5132fef6179f7f8b23cdfee96a5b881f0be88abe97e59563d8b2ffda4d0abf1f77afc35a077b6c582c861ce078e0b24b298caf1fb3a32a551aa73c7943b8b32a6415c1934346d1ed76fb4b0453cf99208717113d4153a4ada39a57cf2ab864d3e6b44fa7b6f19659f5c0c78ac73eeacd57e0b00f99c08e58f60c209824ec998d4f024a59887ded89f0b4810d8ea9e828a2271388d98936a1e9348828364be57bf383c67ac27a56b72cd994ec2c453766730c4a14f6a2eaff18ebeb11f917e671d9b1e7db9a16fa5d57d2ba3bd9d9d96c57cc94beef85322a33e6baca83e7b31a5e2c4031752dfea8c57a720a11bd1e7c0e4e1a2aba5855b8785f76e58a44f8b0844b0621faccfb636a1f756d1dc0751eb2f24f1b1aca963f237228dc015c322fd453f0b201f10a15acd358a0450e55b6358dd9830f731cf2cc46701024a465dedfda9ab4177991b991d0ab0246cd4be22ed754518384ed4204be96dc94ae898a9e60d7a1633b537d54fc94ad6e97ab14dd031f49018679bf08730accfa141ded57b2f117ff2233ef5dee5894ce7090d12cf9196ed2d1f0b081f6f6682bc7aa074f9fef146ebf45dd8afc2f54ac77974b6519d2fddd0b1306066e54cd9e42e2435050e8ee6fc01eb88849265c454f6c996d708f32ad13c50282131121b2be4d7d56ebef643465eb5a1076494270356abc95af57ea4caeb673baf2256d28e7d9187304f6ae4b6c9fdb2cf8bb414934598a068fff8a883341cce4005ea043d00ccd479b2757ef0bfad3fa1e21ff5274a3497021f60cd512680013cf70800313cf6b8fdf09196bd790f5ede744e3fff38c7f2dd2be58bdfcab7a5f265cde5642bec0f907fa9e7b94d3a484477ccb959b6c958cfa30ea9fd0459a21c29bb69c1557f4f44ead030c9ad92a9b9fbc10d6b9352dac286f5d7cd819f50fdfcf4feda1f4ea16fe7b09dae93a8283c677b0aedecded37c0b06b285436195299fe46b94471f600bd401f575bdda808b841077574a862a59aae480aea510ab9dee8b15ab60ace3f6c7b5d5bc9ec1852b6fec49b97bb7dbe5c3e7fbb3df3cbd3d344f9f72fcbeb0461d581b65073bd57f53af54ad3c65ab86c9076c1b6497c693bec74aa0e2f627ec333516bb91a99e5f37ca9c31c77c67c96c039be9641fb537fbe269be2f31dedfdb96883a338f1e4cd175767ee92f261964c2fe02a1df6d09a8514379d23dfbc39e3f015007382320942fcb2dc4c38d26bf5acd07bcd064cec9500bcded169ead9c3353caa5298ceb5ae83feade9913446485fea8357b0ceb1712d2173b5fcc605d2207c98884cd3311f6d1ce696cb73222f95bc08dc5c9ce6962e7eaf75afbeb3e37d5cba00f5def93415c7d4a5b733b7000a1eb8ccd54d71e8ff52828d3fd9fb6d085067faf9fe1dff533d150b4cc1d04998df8b04e48e7c4f53a59ea7d7c6ebf4c8e093a4aeb7e19dfee96b131acbf99a10edc5ab900e89d7134eabf91e7e934705a0d3c5096cc7ac88a7c119ce69bee23dcd6d59d5c84476f9adfc0e62096cf495ac653b17ca1dba31e12d480e7c810f46eac1720a33c98ba5132456152c3eaeee6ccedda377ad224fb3dbbd40b6006be740228b3b15e808dfb2999ba616221ee0493438ace938703ac665f37b1b90f1f1da2e3231242c86a6ccaa1ff0efb898b241fea29fae4e0c68965719607112961f5a5beff8427f707d87ebcf3733b091f0c39f9984fbee32dff7c1ebdd4678ce309a04c728b3bdee4508d63fabad982fdf23ccfe47bb29b9c5c39590efd43e073f5bc0a2f35a6ea1cb6c6e80f215dfb48808335f621ab7d6c8358698e6c34355ce099630df1b5ea4f9980815848504bd9084866f64afd14bb1de6c44162a7f6ca5ae378805c9a305f985c732b8c5657edd8517337caff7e8c4de9b370911d8fd27e393e4a2d3fbe68addf67a88fc10f9019c8e07084530d6b416cf5b301081b0ea8b1de24eb3e5be0f66cf2887ff0b4387280d7a8e7d61da00a963eb1b7240416a62b1014612e741e2812a063352b1d970213383a5df5096030b43db705242a37e23ac6a1fb45017e62acdf75c9df383e1b24d2121276b2daf4852051119384cb42a6b415899393b513f24fbba407e0353785645658af5dace507b390ccbc62a8375b4bbc83ed0cad255840b6171ee78d8ecb0028bb45e77a573aa68a7643fd90f1c291e6961cf33c7fa9494b6088ab72b04848086ad377374ed4be5dc1eaf166c22df3b4994fbeb45ca9e15d380d3ccf07be6c6c007ecfceb43536581293e1a61af291d75ce8e966e47c5eb97ff42207636cf5823b06afad1524d51733d8344c52c38debad6dd68720896f6e8b6ceb44ac74c2a626bbb474505d93969d6d649437e4bc8c8dea6e41aa83578853d8d7278ab3bdd365256d67275af08a16d9803f272150faef81d3a3ee7301a5ffdeee5c4c5fec30f5a0877708afb8c7b57cd2ef32f8b4cab6187067344fb33be0e2698c5378165f4b3b997b897ce5e80c7ef971587487c0a9e8767234f6733c9ffb49d34052e7733c7bf213f90199318ffa8fe3a29dbd2c5af9b824cde3366e76766f643751ffea762df3cdb49961f11163254f913b69017d803f53fe107a67eed04f9d9e8270984712736573afc6febf50e996e782ec68243e0e1ddd3b68de78c9933507e3c68ce5044eeb07d334fc45f2f5545a87ad8e47eb8cbf18e2bff0dc9b2255f65034d6b1acb47dff079ea6b24f8278ecfb7f44db383e1a593ff5f70efa7835aac9cedf9ae16ab78423a6c2ba5dd164657a6e589cdea2b2b617895b0516ad9f72314b87fc2cd62a278673a5f6270528a648a658d79749125b11999256f3e91edff7f7c1fb63c72be96d27dbe4c317eedbe49961fa75f73ad6c76278990ff12a65df716ddfc554e72a75cc2ca47d8a0a9ea07012b8709c5b268fe70fdcef267cac8fc1f164c51d0fcef297fd01619213a9716da744b22964ef37c7c0dcc07a72b36e96269ce5e3e4fc7e73883f425831b4aa8ce179d04f6eb8f3066f4cbdeaf7f3acc1178c49cf4cc3fed8ee0f1367f1993a10b1bbc9978193c9743dd437969335773e21abc005901c1bb9dd26260858634e4d10ee37dfcdaf9ea744e70db62891898b93c2466a0eea77abcc7ef82e941f1712f5efe1ac0efe99c66f1838f9b9435be162831a7e4c0c8ec5c2e1a96d77494ff18c90849ddc72b680f8c114eff032993cb6b13927884c09f0d3cd9b916c4c21fba093b91b898a9e776cf4f7cbc9244186f4561aff4f00fd88b8b03860869bb55b643f79c03e33ae65af3e9fed7876d5f82fd7d49e6dd3359bb5af98d3cf4d15be0692106ce4ae13cf37a8cff1f3711e20d3fa58254f1ce53bf04a8b504e9d259efbe98aa566f9f415aed28084e76dca678b459bdfec3a38af1fac63707f38b26ef6b0eea9679972029080b39cdcc22bc5af02169a875f283ba8424b63e442c192014f3c8d7f38e48e014365635bf9041c3643ac3a8be44cf959e6461a0e96ecc2b1e137088df968626141101209da6adb41b84828a370883f0ecf1a30734d415ccc83bdc9331fe40fef8ae600fb7f1ecfe1ffd378c0f8df3c43e91d6857e3b3767b53d921ade1c4d641e79dbd62f6e9b4f398c8f912003e17d16c169874ef87f3c6ed92d8c9d9ce0eb32511f3888400a680c015f3c1662faee4fe60b79b103344fea8f1f86f70ff5f4afeea8cff7113bdc2aaba9fbcf12707cd5616325eadac329c7c6638c53d724af66ab5c6ce46e92b4529da4574ee46fc91766cee9a07775237f865721bc2737df4b038ba8538b9937b46cba672cda68ccdb45a74b4f3705afa5176f206105407503c79e28e809318facd5103ae841ecc394412b71ce62fb6a026e495b2f952e0828071bef472b748108205a19873aa71132eb54da461ca2582e93cd05c2e4613e2164ccc2b6b23e78e29988542c31af82a0c045222e0dc84756603e71e70e122c84fbffac35be213602ee6abbd29b305c831d69d40c709180116b583865e5c4e3e20aab62430e7c6b2ac679ec96a56cc9aa17e878a3f7a75a3bff5f9fc85a701591c7ef794f5f40f5e99df1837ac83dfbf4fb3a765d4bc2fe3e683e4f50b69e9b3dd069f90f537bbde78f2bae669d1dd79cbd878f77ae3d17f65cf76cb223b6f62e062fbfdef7465076660873d9b86262f5ccc0b6dd37c6433e07c36114f3fd7496a3063ebb03eb4024c2b17d39fbf2f748845e7a33c8e4ae56f20aefc5e5d5fe67d7489b07275de98f4faf4f813bffbc6301ff9072edc441a9bfcf4db9edfc0a617b34d5fdda7a698a566f5194733f5dfc7f0d388b23b76ce1c542e6cb85fac6176f9e9e1fb851f4d03bfb80ffc68baf0f3a77bcf7efaf29c91bf8a64c810ca5f9b2324dd07b5513a00aaed7f560c363f8747800c7d72d702a8aefdc1117b2f73dcd679dee1cf47ebcde89e4586beeea17c5cccf272728fbff3bb029d616760a6fbd19e7bccb9b217ee80672737cc4cb7cf9029ace81352e4b5f0b968df6f1ab74249c8ef686bdedc894e4edee66a3c1cec0add72e7348ec706a9ec3596eb9a74aeec4bc22179e3f4a6ffa4e9e4e6435af4677c97f1c00976067a14c3789020da7e092439052d73dc38db9825a004d58f7e6ede4cf9f30c5e6672f27623cde5e32bc1ecce1ae23f8f800c353f2fe378acc17e643d89b30dead82968f7cffcb6eedec3e747ef8ee3f5e41e979df3f98817fc323f58aaf1d4dfe319e707817a4694c596cc10ecde6fdedf853df948b85f36cfb002f4f5f5f0659959498014a60f2819fbcd2c89cef00ae85e8eef2787e75911d9a0b13f015ecd9b8fd93c7ffc94650516bd1ae3684f35f02c9c67280960aeed29a4fd799e21ebff50f7664d8af330a3f00fe28200a11b2e65c75949c00901923b08e084b075b338f0ebbfb2b3d0dd33f36c6f7de73d67aaba18c5bb244bf226f144f37868dadc5cba93376eec2e3702e4137d664b1774ff021c5929ecbc8296e363e8033627f406e5fb18e050f6a7903e6e763aafde4a3cdd234c3ff825d3d7435d492f9fb05bdce30d6cb2927e87ba8fbe0235fe35866ed48ac4ba5cdaef54be6f30ad47d2d32b1f3a321ec03441b7d565fe39b53f963be7aa7f5e3ed7e6f4741959e962ebafad95c3adce7b7751fb13917e6ccd108e5c2cd6a632fe0b1b8c1093f6f2cc2a92637d3eec3ddd85fb484cb7204f58d309502fea753f5de3794ece8ebfde71231e81abb5cf2e5a05cf5dfff3d06f9f2d619f39405cf4c6cc8ebcb8c1c1bad28127d6d0357eac6768d67b83e4991ce5fe2f27a6da722fc027be121cfab7f52880edc2350697baed167b0bf2453428f743c498d614cb87e7c8053c0aa94699063bf884a93b937c3a757dd17f8f27bd6a5ca8a0ed9131283e7a1da63ddefc64d75190f678eed40747abeddb145af33eccdf5bb95cef9f8072f303b6e10b5f5cb511b5043d76ba2ffb2ee82c649bae577bd7b0f9f481bb17311e65dbf7c4583e75a641d5f6aa6cb73effc9e45524b007d57cb3e4fc97f46868813ac671bbbcf015c4f9a5c67955fe0bbe657953967f26a5cc2df1ed288118e3e3226938b89ecbf5ca8b1f7ecc879d5d9e75f92e37c347717797d7e1596d4d7623d0afed73f57eea0b7eaaf2b8dc1f73679698934f4157f3a36cfbe97f1a4739fef2fde817fd22e555b59ffed3a662d18eeb0375ac0f1a5d103d53369eeed958ab7ea1e6ef1c226e3ac042d0e4ba34eb94facafa17fa6af237faa9f3f77a8955fb8728078f9a2bd826dff6fb89d031edcf54dd10346c99a94aabfe7fcf6f96ebd9b05ccf16ae90734ffd991c5b373355a787d387c3caf2cbecf421c72fe68619c18988f5b02ddf5b41b51e7eba1a79ba5378243d9b6f9f854bd3c2a5741775c71002a2dbb776fb82a2b7f1e787589ffc46fff780b8d2bfc8f8c9f808d3ca1608ff8d2d70f81b1f1f46796f4bfa743c7a7f4f0b4a0ad7d5903bd54c754a3877056c3f59a8e3fc6a0497b191a9ad5ff805b3db34536a7be33acdde9e75595917f0aaaec1d648074f1325a9c741ff85bff0053c8e34802168da497531cfadf29a9bfe275e9e304bd891af7567faabaf20f7078cca7bd44fb7da2ffc391f46b972937fa1fcbd86cd188a563326cbbd194cfd3402f5a423aa9a0757e0b3c6abf83d8d72f55ad7310ad5dbe5177c08788cbc0759989a2b70530a01c3450f6ae9425f1942ef6b2e682138ce83311351810ff2277cd8bb5f7c107eb7b37751afda2f3ca2227ade3bdfc73e6efaf7983763c589aa237a1aa5f9a7969e6e935fc6ba5bfd96de2af94a6f54ddc738c23e17fac6b81427198fd32efdb1cff5345958d3a4fbd5a7a2b79331b89e7a1a2d4c66cd6093b446213d6ba430a1fd168052b8f871354653753bc2e1ce49f9099ee1c30ef8a650c82ec87342524b0b42f540a7f442336563e2fccddecd0cc757aff4211d3f82bc33b219e080c259c84f8b2a427e4213b3e6611de5ddfb47190ff85b7ca1c70f3a3c5d94ef2e99b5bb64a387ab19e949bb83bb3498bb1bed66236b77d9211fb2f1c3cdc60f8b226e886f99f5bc6466deb1a0b0025052d70c2f1df1dd0c2c914ffe9995fda655fb85530e6b690f96f2be8edf656acc9a594f7ab0b3e4062f99f014f3009631363325b7f169ed20e5c3c6f46ae616f742cb09f0004f95a4e3cd68cbc9f2f7e90ef87477393bbb7ee84d67e6448b94492d8f6100c0ccbda027e2aff79f422eead4ddc173c1cdeb7661de089e6fdf4fe6fd7d0b0191fb8378dbe6b08ef09ad7f6ac2bed3dc4a42fdf85975a3d5847e70f238826b3abbd7c103c5f7db678cf397bc6f50014d7e7abb22f03e91f56def7702a7d6f004b8eb2ae5dd483add5bb9bfed29db33450f30fd83b83f6757d7527eee2a3f37cdb4b7ff7aff34e60a567b8b27e8e866077aaf3b43196febac0aceec496e7108fe8e815d1c2db250b88fab197f7f560379b44e16cb5c94ecb1962ebe040eeb09a1df2c395ac4eb32c7f1eccecf866198bf36aba57fb557ba4dd563001c7afdb437fd7de12c59ed2994db5144d3bfdd32c3b6d12146da69db30dcbce295b78eea257ccb7fa38589a4be6985e36cb87936aff6f2bf7ffa8dd07ccc0e5da3d7887b5f4799e3284b8fb0994991a2308e310214a0e40231d85a71545510434d11c19df534540d91e68886d460c44674e7327109f1ca00c03253a9667bc94bcfcd28189b8f477a4e98adc2735163c4788456b944b5f431fa22f2e0584e5d999ddc28c5800968ec1fe577551a1cf29c31808de96e7b616f0f5f12fead3118db7981203a58a51fa864dce0e0570a6eed9cd54e974db7e443b1b5ba1cd2ea69135f1af6a7950c6ea7cf959ae6279363abcbc8bf32396a77adc3bfe411db89dbc3bc1c9db382c0e8b823ac15429c21d0ca269f2e6fa571428e1d98033f283fc88952c581e0ed47f7a87609c1f46f9a54f67048d73454d3afe6a3b555337389ea77b15bb012fe32473c8db6d8a546a77a43f210a5d793f7907f751001bd3bf443a3f39c0ad142868909f3279c6d7f8ac264920df74b95f620aaab7d12eba79417e741e962ecfb868b58f5dfacaf9b27f57f9de14e37fca378ea6ce13fccd9f6261f51a3fc65c3f9b9d131f1176f2b5b3694f077bfba9669360c80de46244c8de56a2f713cecf46a19c26c169b87d2437f7e1bb0e56cf7e90b7960f7dee07e1c0cac281b5d3333d56d64ea118087790dbb95c20b6899591ab13009f4ede91bf54a210b3f3b83cc383f63b4757706200152c05983cbf642ec0512540e5fb2d0db8f4998074e6b9c427beed5731ff1fd2f77fd77d9677fe483091a7f2eb933e1ce7fc1d420bbb7b720ff4fbd0e24ede960ec12ca0dbb6034b0b9f40d88d11cc72702753b235d3500326e495eed47385f0d2d90d80b7fb42a779e99b332f63d602c13f7d8e556526f310e412c0e3d0b503373132a6573eaa4a3f154563571c9b586f2f7bf56b3c6dc1cb73bd486a5fd575fcb7b26c455399fe7e5e993b6a023ff99606f7b1a6936908573b743f8387528405eb23b08897d1bd872eca18a58913e830222a5f0603d52968ec4e93d0e0b43bc2f910d8202048b95a99fba1a3fc6d14909e16a4b69d93e3e8717a2048564ea630e3612d759a5ffc54ed68c195384a748440bd58389f6a3cc9f48c7c12882c19a3195420dc7c406a95f6aaa6c2e2b33cdf0e9f9737e771228885a8f4376a912ace2d201a11344f00b19390a706ea26b68c0340bd05ae7c8ee2d297eaa47ae10a96a6b2c99475dd1d9cec14b604a991cec4da4e3de0977fa15f6d40fe7b9b7824bed5f97872832c79ed9b3eadea6debb8b5527494101dad14dbf2bbb4377f469df933eace9fa1f8cde92339d1c0eaf8eca42020362920b2a6a79e5db0137ef019cde8d45fcc747f11cbbf657e759ce7391b4ff7d978b7cfc6cf733a9ef20fff919f7d9c3c9cc235081b78381bdc46da20d27d85d9f5a6d74f7c63053c40d7caff70e67042d0832344e915a8ab83720244a98620d4b6250d8c92061160480c6c2423a00920084d64844e430356d1809634183d544903f7496e1e1e2876467756461841036aa66c2eec1e2d8bdcc687b5f6cb7acdfcc37aad6715e1aeb9f3ca12b1067dc8d815c5fcef70efd0acbf99ec4e1b4381fb94ac1dd7f7f47538d3d7b9fcfb0894d3e7f860f5c773eb6d3cb7dec707d2e7c70bb2b17a34b28bb5a59bfd081791902784e9001b176fc4ba1851799f064379ff85947791675621639f2eaa78f9a6fd48664b7db59e1f935d402ea9b3e3d4e33a80ef9e9cc9fb15a6373fdfbeeb9d2e47cb61190f1f18eac3c24229b7dbd57a46adfc685dcb7417e0207d034b5a7cf3c1cbf5897cc1836045d069ae43c9fff21e54ede3f9376ba09f670bdda79adb5335b735752ffe2c7cf9348bc1c5290628c9e8d00ec2968dc51f1ddad3e46e0550b881ec1900d5e276374726382e800b2eb971b3d3c4a499573169e22a264dfd3e1d4a3f594d4c9a975fb022f1ddc28c693fd1acf6735ddf47ea6e8767f039de41799f2c50aa765022e30bd63e984abff8d55db122977e0574005cdd1d4b25decafb28a033194bfbafee92f96e41343275fd6ee869949323cc17ad43bb8fcb3b54d21e2dc4f83913e3bfc0b41ebf7c5766cda5ee97be7104fdc82278f9ea5a51c40c79675cc66ffa35ef97581f5fee2c499f5e0bf2ed8cc38c3f9c543b7f2c1790d1011fb88376e5a41c182cda6d863ea973168b108b83750dc89ab010bbf8927bbbe459bd67ed783432bd69d4fbeaaf43cabfc2da596938f37621a241a8f9e0dbb3f03a1a3f5cd5ceaf969fef260ece0b1a1ad8d34ebdd92c5d87b93bc31a9f68c3210d3bc8bb76ec78b26378a2bf536a55fe8a34b3bda426861307c2511ebcc356beb96489b09511408ec0906f4ee6026f651c6ae9f776117079df37c6028fd87280e680236a02251650b0cbbb64d207828c4d081d45fa34d5b92d692e0528876ffe30e51dfca27cbbf71dbf44de27ed2eb35385e7c3f9bc0d2740c2893bd12693f7cbc4a3f5a28f57f797df043f1800b9b081873938841384528680e7a57f0c79eece00034798ba169e8742fe9aa02bba7cb787fc1166825fe32d406498ca45de97a8cfc9892ecfc9bf969731377572a9eaa9edf493e02763c1c140e97024ed98e69c7c4de7444c42e602cd350cfb3de6c4441cad11959109c3bf282f18d3d280d8c0991d0bdac87bf9178478f23a13ffc31864ac7f6ced6d3f8f0160efe0f0643fa2d846f9ce2c94f27e7a4a3c0dcab8a01a9571d87f9c7926f21d1f095c8d0462beba4115fbb07e2b610a590db39cbb0f371f3dadfc1abaa66b84ad4927cb8df41490228fc97e7e86a5a28eb0faee65033e762d8dc06ef809c6a39dab78d5eedf61e16626e2cc423cb16eea87c34affb1ed768e7adc5ccb7837627ef9ea12b1fa7ec837f99bea7ef4c59e70a7d5fb8299b59a1dbdd03e8d43fd386ebf6df430dc4f88cacccc8f031542fa383b1e686da4d8773a43576f7abd05713e379f4207e52d8894d07cda8dffbd85f43be5e2150703d0471987010606a214a1c65fb785bec4993892a7bb408fcdc43de7f3f4394b61964440b5b6b1acfc3d6a5afbce4c22eceb723f8394f783c43c0948c72d423ee2a4e312c79a776e56257fce72bf8e593aa0bc923feea6c2cfd7fd2361233c853d2cf153d9061e9577bb7af2be3e4f907ba8f6e16603d5c17d6f14f4cb7df00f9ee303799cd31ca3e997fdd7a0331e65f57e79de770db0cd371695fbdfbcdcbf4ee4be62b97f5dfa65e10e27bee5931e2a484a820475277dd2fb8cd06a14a160f2a6429899c7f6bb0a34bd0a2560dddbd1d7f3219dc30aa00338cd23dda781c62f06d2e4ddac9dfe48eab7073db7489e3697e7399ae053bb089f1e35438d136dee0d3f9ee8f2b670827c11b57abdf7cd04e2fc027cbc3e566760c7fb3b3bf4afcf40a9e3b5c210888aaedc726457384c013e7a044e06020be0099fe4417c6b9aa424200bb9ff53f968478f64088bcf569a31e4dcdfe75bdd8ac3fdeb0fd867cbc70cad467160ccecd71fadeeaf830553668e819d4a7ca210f067126890e8627d50de6f23a95dc8b64d579e2f566f2378724c996eb53f33720462b5efe9b5e8fca67defad0bf347374cf7c1eb2f2fdb4791683ffb8bf691ce939450d2b31fc4f7aa76bdaa1f307b23a9a0ed145d57db77f573ff4bfb9b1e3306edc3a37bbdbf85d79fe925bfcbb93204d316760a96e791b9559d47a620639eba4f9dca770a68365ca2a3b7c4971541c7ecde8ab20b3a66974f79e75ff41fcc18920b8c38bc010921a02814729d84309ecf665e90a706d52e4f1714403b78f99a7f865fefbccef4a9fb6d8fdf2ac2d7ff45bec02d637b3cbfc66970d36ffbe334797a816b78bbb0f3eb1d1357da92532de9d93baad8bba467675137dc09dbffd76f1e52e77a3ad8ea8c38f2378d369bbd1df8a9aa54df99590ce6221f96715a63dfcba283f74c0e9e46e5ef2fdf38797828da9a453437d3aafe9ddf0f37d656dfd18d9e56693b3a3785dac4042c6aba90e4824e6179deaa90ea3ee79304e475ae28ec822214f268e1511d7693f70739dd46ba85f2897b1d4fc1b4db9ff6f2507c787363d7baef66fe6c6709fbd80466211b9cae988f068159e9b3539fbd7c8712980af1cc92b953b83bef39798e506c0273a451db6e0f20e31686f9095f196470591b65c4e02da9d3175cef401ce21d25067c726cb2ea1e0a7aabef9e23707aedabf4a7c67ebc07727bee30bf4cf2b55b2e3a46ad2d584abbefe2032dfdefbbd53ade96f7ee64cc035cdedf1ee8d267978c7bf0a77820653c1ec07f7deed43e9f36661a8666aa86475f59eb3edd9829c51e52431d0d3612f6c39999aa331d55aa6efbbe80ecd89e3047dea7b2ab7efeb3f80fbfef57fb1e6e4c3f9a99c5600659bed1fd686316e1cc14737bfb7680edbded52e7e37b7c0a794fa5134fd7216c6fa6638775ff72917fc57f9bbf6bef690fb697e5be0ac202f73707d867fb0ece7b25bfadabd049a5be44f28e8e9057edb781bb676d6f6747136e39e6d9fd488bb7a9535ead6b75a9b96d3f2f784fc1fb72bf18977b20c9d17b461d69470d4f3334753f34162d0873663a025b5b703a42746321b77c1305666bc5cd76bbafe04ffa0fed0920474fda13dbd6fe918d0ceb72127558a7876b55fefdda478ae1decae053fac75c56ebde09622e064a4b23dda4a1f4f357ae6791d4170ff7d83e17f755592fbe18fd9ba8b7c4f71b40fad93e82330650bef0836222e6a200aa7709aff86708c8606f31cbd4b38a1fea3bc54d2ccd75ae2bf96d94e70b0fc1c54cd50b01bb3bd2808f10db590191fea1db9f04a3edf0049f61799f51cb4a3c6105fe3edecfe08f713cea771ddfeffefdb8ebd77e3f79cf24b77751cff6add8f0896f20e6030b151b53c57d84b927b44ce1ae8cc29d1a5ce09fe0c9bdf50e1f173028742afc7f1872adacb832f6427e92b121a0937c8dc550c7d3d5800c723ba099f45d51d248abd6938daf1afb19d577a14bdb4e09e78eafce2c3f9aea5c0d0cc60bede9ee755f9d11ff3421281cc329ffb0e860a2019f1969948fe4db1d1e9a153fa6dceab4d510afc47a1d2f4b3cff437fb4157f76dc62d14adb2af6a64c95fcf81162dc1eba7001818f4b858f94f0329e3961890e5cf0ba94df8b575c4e02d307bd4bf95de2003771009ea1e2bd68f5c2c58a8e35ae7a6ea1b8b8b03c8b9df624cb575636c051117a1a72292a7868d0cb18716562e168aee3d2e767bbdd6e2db9f9deee47f843ea0379950ec3a5b3afe72b038bb6fb1ca7001ee04d851fee6910e9e57cfddd18c2f4eb185ef722aa7deb3756f2be461741a0de023f5160e7a656e046d55c10f3ef01d9aa3de16e47fa237d2fe79f86082a1db921c5e1e4257b9b3deee86bbccd1ef7f91e3365ac65959fd022f9bddffa6d2b8278d71e326b2d18d42fe7fbe8027db1ae9d57e3bc49fcb0cadffe41da69382ce34d220043fb6dba7ee890c2a2d25f67c5dbc21e720b6aa0cc3b11da012d632748f2ccddd19e21f5c33b6977b5b6d36e9bff551fa19ffae8666dcc34927aef84d499ee0fb6ba1f6ea43f9d767fd0ee7cb6f376ab0d34c10f0ed00ea23aded9d0aee39d09fefe7cb6deb783f7768b00a11055fced11eae2d277fd77daa0e9ef7db8b63f796cb1dcd528dfe8459e4713b6f05262617e7109f0b9f9b830ff50bd6adcbe75dacf7b5b5e1e432e4c2a7cb85c41725fa6f4b9a50178656c0ee9674bf4c5d5aab84a9a8ce7cf41937195900b24253b8b87a6fea8f195f4a49c2eedd0d2cf64e9d7b6a53ed4d89e5a0fa3601bfce086935d066337dc3aa99a13a4cf469cee0d4c8b72fe4fdae676d093718de8ebfd0baac6fff29bbbbdba4fa53d4e2f87111a6c559edcec20a5564a3634bdcc4d56deff6c9fb476b86d25ed4128ea6be22368343180ebd61fe660f6650e9ab52c6de2f9765f738f60be31334ec307e72ee691f52069b9b566b6d2f670df5617ede37f968f61251fdf5663e98c408c2744e6bd3595efb7ff5bbc07e4056426ead118d98ca739c0b63f05ffd8be71416cf7d7f952fb572fe78b57ad713542bfd86fd330d5453d73868c506e17b536dce1edbea5e995fdeae47094b178e41cb4ca7d561e6a085c390fab37a20b0d4501a9f69be41ef0cffda69f77eedb6fb1b057755fdde8b1ba367d2ae7297cc24647745bdab3ca4ca6fb7453c9e736a24ed1ee724de7ff2a5e19fe11af2c318b4a1e50a730d3ca36f62bfbea92e0fda46541f1fd3e2008fb516d7d38768ef75ac798d35a3ee4783f19f67fc91f087bf39dea7d768233fd9887e57bb8f691e374dbdec2e3f4ba3fc868fd1eeee81589dc5f689f39638f01b32cf706a7f0bc2568ef2c8a4a3ef44f706ab7cfe02e002220b9b0ff4222ecbfcacf7320ed3ffeb227b3c098e8e764c39833b10ff6ce2651654f72bc6bb7a8e83f62329e4b151b2484004adfe9322303035812567dece97cdb1af62e69dc838471671265b1e9633daffaa7c2b9ddde833b15f6a499ffc3f9cb5da38ec55dbd27edadd0da1e657d5b7f523a42ea668400b77eceddfbdb271ceeed88b9abeff1dfbef887a5a48eff3687f0cff1df7eae6b7e9efbb46fa4eb3dc2bdb70b0f246511f1adc8f0095e3e696e6b54b103fa748ad35447a7a58edc65858f0b7c6aed2b73d780721885ff037bf185a3c34f5ba3c659904667330d533d75175a6a2d358d4cdc87e0f3d037d880ea54c5adc729d5f8c0d550b8d4337a117695866879c0b66d2d61f7de6ed39107908347aa7d7754bafa83b9fa8a498da88c8b4da0b6099af73f21e4457cf5dda9f435fbb8083ba0eb4d5d799e16a7ae8fa627d7ce12bce283bdb3cbdf4bfb5ac5a3766b0b6705748e4614d405508235e91fc8763027e02b373e927eb2e53b68bce02f5fe2951fe6b0f4536895270b1cedbec44d994358c4d78ce636260415ec13f82fb6f7377c4601e57a407c822c472b5cd3f5d7a6ee0f020d115bf32d078e6b9314e0e142d96a0708085c46a428e31bc288a282913d9c07ffc87ef8930ff82b4ad698272e2e2e333d433358aba1cb06a606d1486397d0784409dd57eb678a1f1025c8a5f6bbd0cb46f55e5ef305cf21b9c7bcae7cce5776fd0fdff6d53d444e0a23b06c0d14d74c93d836004728e912ca469873aaa168eb3c9011f1bfdf6f11f37cc3ad0e2cf2ffbefe406ec72d66ef6d66756afd0a238a31d347f079f955fe7212c7d36104ecc374ce6ef9fec84d303092c36704c02adfc154239058c895f13315702b7cd9e5bdc8da878806dc5efcc69f8007a084c4ffee4fa08cdd9dd47b8233a06e9b628ef48795eadcc4934cb94e1eeade402c772bfc706e6298023e50b1fea8f60bfe3e9e5fd8c4f32bed8569bdffe8d5fa76401756602d202860f250d020a39181c3dbe4a15ce5bd4b8a55c85434672389736355f10b6bec7c58a36aafad6ac37a26cf3e2e563eb76e79f5bea9731f62f007603241df2ade37fa7d1c1de203464554db4d3b6fea2253d9dbf72b17f458c34a413694f14cad8a1ee5bae317ff0855fc98caae09dc8ecb49ee2b09bad7e7b9548b809d50c49dfef7f8e5723fa925f793d8e9b59f44d11e18473bea18d2bf4e850f8b31131821e59aecef6398963c6bd576684fe79161bdc5c846f4ddcaa167a2c273a8e54e03656b2bd1871dd4fe2eb0012c421bea74857eb7aaf67556c68e4542b0097bb1bcb86b00441815b43993aaf4b3b2cafae33088efc0969ed55d1f2cb5c6073eb79f17c4fe7f5c5fe8d91fd7178b519a1fdca9b532903a1a41f4e13cb95af8830f33a394ccc23bc261646ba49cdf26c7c00d0d3e94dfee7755f6ceb7fd2e793ef17417305b478b87dfd78f0ca3c3fac33c3d4a5b98210e3b8a522ef84bda0b8faadeff66efd6f746fef2ddc4785cedc16e745b599b7eb9670b3bfa079b97c0835b67985a38176dfd222fff11effd88a798ff798f16081c98f90e41883fe4bdb4e513cafbdf72ff1426c3bdd7a1a8a526a77de5bf7fcb2c0756806fbcbc5f824761795eb6834f22e3062547afd8f03fefb90afa5eb047f53e1cfe733cbca93775679bd79e94a05fd8ee00fa90c000e6157f63c605ae3ce9173f3fbffcaf946ddda4ac67956d7a004de6dbc3aa8c714840fa3b6656b50f6ab3d29fae4d6bff2b1a87b18d2879c9352af765dc979fcd19ca5c34c9ce94ee29d590b2368325b7d2cb838697958660314a850d88f7c042b400a753f1e7bfbadff42ff9f4479cf149f2eff64465fcf83dec54f4c99d4f001777a8593d9c03048e82f7a05f7fae8f247f0ce8e28019dee373ecb33abe3ce03d355ce039427c34852dc08657e732e6ad7a1f8c0e701aa00d2bd73f46087344a9068ce8df62f8400488c9183ed3facc565dfc61cd02169ca8c361c5fee7ebdfc2faebf5effb6063a6e59af7982a6b1d851b330df1e54f673654ebc32741915cef5dbefa5fab6361e2261666d58f32f6e68f753827d19fd7be046edc096121d7d7bfcefff9fcc7dad782041c1dd6aee6b0bf9cffd4b2dcbb85b136628e2ed6b071b01f548f90318c2e78c9f5071497dfc7cf9777cfbc6d79372dfaabf8f97fc7d785b74bf6f634ead8a91519880406ca7d385c245f7b38ccddc765490aba34523a356af9648498837187870206852bc5a758d87e1ae5f2beb38ccd48419b7179ff1980e9a5bf4db9067261faa07b1b5be53aa3beaffe675f53e8b3f8dbb59b86ffb4769bb4dbed1360e3de4a447f2d26430e88793416462493f388a08b352ee7d19ff37b7f9bff3978e567a305590c008f0882156a5f34f7b3dd6eb7b6d45ab6fbaaa60364709531010db86bed755dafb9e1eee3de6eb7fb1dd8b6db2d700f802dacd0088026f8c9b00d26afeb1d887aabfddb9ec87fe1ee7b999f95f929c660932a3ff6bfe42f44fe0e75f332bf25f37738b60551abfaf32ff95591ffccdc8f327f2ef3cbd9652975fdde97fc27380dc0e66324f2bf499b3ac16f806f609ceafa3fbee76fb7cf304ebfe6efcb6bf9757eecfcccafb071f6357f876303c656955fcb7e53ffe26bfec1a4dd85495dbff656e6970bf789585ff4a91d8b792ce37969917c1f387a5c3eeccc9a0097ef03112942cde26e871456f7cb198d818aa4f111d6c4369eba1dfb4977164b163ffdad007d5f748af754f507915e248bf113ce63744a80aa7733550eba1fc606dea7c02c1dcde95c67ea44477402fb63eb0dbdb77a9ca4262351fb4cf63a0a7333507a162673f0d9d2cc4864211adb0f888d55ae213a6dddd270ac15e14ce3eaac5e8f4af903d808b661b2e083c150ac4b5be5c4575a9d9e26e59016fa6c4adafb49eb9d5a3718c8d59a29ede2fa9f10669d7b9bcab38c692b6cb70dc8d4fa1dd9f77fc5000d1b40eac912de5220024612a6ff6b30c8fe4d04ec0a18e7023e0bd8a17f84bb023699a9801609782360ef05bf0b78cc057cf93f0b93040d018d056c091853919e0bd886dfc09a25e0871c3ffb0e8762bc3a11f5f90dac0dbec33fd37f0f4b7cbbb2bc80e143e253b4874f221d0b980a9858ff0086f0073d7edbffbf80570236047ed0e5ff1918d3eff43625cc04ac4afac35fc39e8425fd957f09f75efd91f3652bdbff33fc6fe97115f048d253f91dfccfeb43921f24ff11511e91ef70c92f89ecaf9407fc1fc37fd7ff2ffc5dfcafc120e61338029e40c33fff883f4a7c4b38fe1d3dfe77c69734b027f84b97e3694bf925e58794b7873fc2246ff44d404da53d14e343b68063317e43f037ca7fc0cedfa4ff19d6a47ee18d3ef9457e49f929f5cd9437b0dec0c8fd9efe653c81ac4ff6dffa1decff806d595ee2eff87f0f2cf9ebf4c77490e31d34fc5bea07297fd622ddb01a3810f83493865f57d0c03bc9df927f24fdfbff1296f5fb727e0bfe47460393e83770c98f54e25fd01fc15fc3e5f81df88e8f17fcfbf213fe9bfacaf27fb66fb094c77301eb523e46ff18fe0b79776cfa83e57c4d25bfcafef286ffcafc029f2892f895f80a9bf9518eefc5ef92de847ea78729f1f126e92bda33e5f8a53edc4858d48f03016f056c4bfe90f26c23da33e4fc92edcd657e213f90ac3f97fc3368ca6f24ff487ebb0b38815ade20a96f37b4a9bffd2aff9ffae70a1849792df1317ab5cf5efdff235cdaa3127f23813ffc29e08ba8df91f59902beca74814f4dd2c3a035fc857f2c315f34d9bf336df873d7d427f525ea08f829e91936f62f13e996db8c3f61b5fe41b27d1dbec3fecb3ed51af9650bfec1523f4f68230f657faeac1e0fde0bf8e7fae127ecbceca173230f35c98f48c096b40724ffcea0b68f416df859e2a7e46f693f4b7b1ea4fe9b4a7e7ec92b996e37eb053c7ea5b3dfd82f68d68cff8b3e2de7bbdbe0db6ad2bfe0abd477521f69b4d167d2feb5a0596f48fda3c9f9cf9afa4afb85bef0f15a2f8c1bf9508e5ff23796fa2769f811b3267fd6c0d86afa6335f4fe9afe5a2f497c96f6d81dbedbeba7663c25ffcbf9a0497abcf4f58c36f42550db97f80bffd2a6ffe578583ddf34a90fba2f7b62018d3d018dbe58bce07383af727c43c95f2f7928dbd3692def34499f4cd247ca8f2b80d6da0240fb9a004cde0e02ee0bf8740298bcc7025e7180f6918a74b1ce6e5da88089804d019f057cb8bcd21940bbcf4479d2d4ffc9457a47c02751df099af2a928bf770126fd7700ad8d047c91fde937e50fa2befe40c01b017f88f6fa17915f24b58f029f58daff17317eeb25ffa43c71a5bc90f4e062fc23c16f9ad4173d811f4fca2b395f53397fa5fc1834f2d415f5e1a59487ac96c7246ce48f1196f8acf31b02ff58ea9796945f97469edfa43d1036f86250e3a33f14f05ae2578cbf5f34e32dc77f12f0b284915cff7fff77018d810f6809c60918e039381c6ea08dc1536108c48100d098e906cc2cb4603a87c8427b3003c82cbc05c7820bc31d7019f49896c2982202a4cd4207f9911eb0f918c527fdc4e637b43ae96fb0501003438328411933262c1ea30335366c49d1c7c9b8b2154617d5e8b2d505dd559340f281146a86b04ed0dbc95418bb61ed64f92c0db0ae5a4b960eb0a35a2aec2e78c26c04f90d4f4fb6cff6019e737b0387318e4ff6991d1e38a176871d4f38a38e071f189f5487c3a78b0b3e9ab0db06bf9d466de09686a86bc1c3d1ecc87dc273a051e679d0012de4de1c3ab9b600ef01bd50dbc0d804f5a4ede898427fae1da2f116de02ed838d397b1f6b373a6eb181a115d6c48616d1fa303942eba4bd9f26056b075a8b4e862950824f748db480782a7d4b09103ff25d6401d945c1168d4ee4c1a61ef280287c1aa7de83a8749a236ae8c80a1d44159d9c66060a737d0ab3099a59fa8ccd14b488f4ed69eea45157cfadf9348d97fa219a1fd2e541ffb4e6f77415e9373a1fa0d540e7ea22466baef7f822439ba5fe162d2ee996e8c3683140ac659053344bd38b614354a01d353c1ebda19d620410fbe93e30666abc4cf75d23b2e25d7a60c6ca8aefe9911b5bbec4e8141a192cfdf43337eeb06ca34b603cacd5185dc74697ae1274338c7eb4fa44776c0cd9ea0ddd151320d1108f4c4c1317299919a86b1f75a8b93d6d50fa169a37b69da0a1657628830cbf596ec4944cc7d6d2ca46d8b9599fa7acc8dcc02ad49d93b95d1bd4dcc828b709e4b3ccbfd89695e759b0b19d537ecda6d876d5bc9b4d0ff684ef49166eec08f63bbc88ec0d3b045992d90ff538ced686609e18afb9fd763ab630230e8a4e56c66e8e4e4f114e2f8ec94e19ce42c7399daed9ce703cebd4cb761fce243a07d97eeeccadf3051f06ce463db7b2d3c9c9d58f089f2fce917d5cb34fec74e867846ff311a2170b3ff0c8522f87ec71188daccb3deb58a319bd46b89b8f5670bde39e355aabd7f74c25a3f47473711f4639bf45595f1d9de82dc76fc9889fee7a36c8460ff53ece86c6a863dd17d9f063a4c27d9fb50f2e8978b8431bd7a43cdb61e64e69b1d7ccdccdadc7551b817be18fae363ab977fa5cecbc0fb7172968e72b9e05ca7e1764de8875983677bd9875ceda9c7b0974bd5ddcf2ae56b7af6d5cafcf7a1fbb4dd71b58ea68c7dec62452c35d9a8d0d55ddec32636c5bea7197ddc623557dee769bf158555bbbdc18fb56dfd18ed6784dfbaa76ec8e33789b6967363ef0b78df641c61fea3bd22e745cf07747bb286305dea7da351a77e97ba2ddb2f19bfa7edbdd8df1d01a4c76c5c764c2875b4d5527e753ebb47b77c4e41bef5aeea41d8393e331a536728831a62cc634b743fa81708f8c2ef45e681af13ee830d55ab9bff4dd983cf3e9dc1fc7649887864ffbba9e871b3f88f5511e76fd695ff7f3d9d89fc5fa229f1dfc795f5fe7b396bf2e0c9cc737ff56982ed96c029c5a73b2b382d9d95e91e332d8c5ce33ffdc04b7be33ccaf24e8f547697e1b4fa170bdbc70a62672f7f933984e52cf271d75baf23d95f42fd3537ffc9e0f8369a73f61a44da6c37832ccdbad10a7d4d3512884c3db9e6cc219f293bd1184cbbeffd0cd3cdc1401d62d1a664530d5ed4b78b283fd7e340f8bfe74a98f83f0fd3c55f5090b5be8cbaf3f9e7968b6d92f92d93e5db8fa269a431a4df6d9c77c7c8e06fbbc355f14f163ffd99af7ecd56d7f3f2df434b9ee9feac24fd7eebe4316f3749de8dde56215af3bbaca16fbf366bb7f0b171fe7cd437f3f2c9efe36d8b7c2c52066c4405164f6d9c5d0dc681ca7c82049342fd2ebc1b9453d7b773d4c4834ecef5a071ac61aca83837f8a2d3b3f1ea6108fed3d36c25b3cf3f79bc33c10c2891b8b79bc8d0f23236ac5fbf8901c56cb58b18f7b633b5e2274a287345a9afe2937b268e9daa777e37059a6fd8fe0f0992cbbf1e79bc1e94a4f2fdbc3435d4dfcebe8d069ad76e92d31dee8eac3bff50eef6fab47ffbe305aeeeabd7fef1ed126b17c7e3ce28f6494f28749ac646a17bea9cf93052a7647e39624fda26d5aade4e43fcee6284feee8691e3d2be9f59f1fe6584d5abe629b3e5e9b48c9cd80af3dd4d1ccf0b10efdceec38e3eba8e87c9a8bf93ab5bb337389d757d46d9bc969fdf47b33737d5877fbbd93b91daf5ba98a4c966d345f8dcdccdab8a9fa66e687cd0cf5a3e37eb0898b7edf3c1d363bf4468f67ba39a2b78fe327dddcecb7b6795137bdf3fbcebc6d366ffdf7fbf14e372dfb7d6872638bd28173e4832de90f3ecafb5b9ac9d10740028bea1cc506e8807501006c6a7e2456c3485e6c62a4559dd3c87f23d69cdbd4feab6f2fd8125650ff05bb6269f8253f154bf1cd0b0e41a3a878c19148ffd21e03c2b1ff827301e72ff802238a7b2f98c3886a5fd21551e24b79150c66a4f2ce1ea5d21dd1028cf7174c4067d6e2055ba031ebfa825d9880f5253f059bd9bd171c82c19cf50b8ec066ce977406361b7d49cfc166aef6822f3067eef9057398b3f19774055930f9525e050fa643da1df2cdc23ec7dd54b1348bbb5ac46646bab7c8fe167587b7a43bbc440b3fb574f45875cffba847195dcc94a5317c24caf73ce161765ccf8b34d9593757033e56bc38ccc3f760dedfadbafde7aa5ba46b835c9b7cf9cf36ec7ddc9b5da2853d8f17f673391fde2cadaceb8f75eced3431189b1ab3ee723ebb8d30d2360b7b1fcd8b205aa093458afdfab0dfaf32ce686fff88e7fa6569fa4aa29deea3debab77ef42ff1223ec77355f4e56a999cfd48df95f5f1dbaa671fff276567467a4e1ec85875fb8aa57bf7f8e8f7a285bdb78cfdd3328a73d49ddd92ee2cb7ccd92d36660fcbf44f7180a641c8d9b487f6abac2a4beabce1c5d2e37d72f4ceabaecadc402d46190a97dfea0bd972e1b26811a7cb79914687626f99ebf3da602c0a90416784450bfa6619a9b236e16df4183ea39e7d4e4cff3912f5e2fe3d3924f7a912bbafb179bbe4b0e76bd3bd25ddfd6574183ee2c770e2e71c284777211536143dc0c821e665204f0be0012537760103cc009dc45ac7026483a14224ca192a24f297434491020611e9144c0b5642e618a1c8a788f294a28ea87709a23d4b94fbcb7a4286f66024b0a6e822e084c103b00a32caa60630e648033d17f974d02e10507403c315eddec094bfb2dc1a908cb9f56b7d7f3b8e40f43fe6a8537d7f801e412c7e4d1796b42c27f1f4a55fffa11f81fc15f8c50053b176352351ff5ed43f9282d1ade8138a7e5c40b7c42f0783897ebae2fb9aa1b3f85d31b8487c73d417788e294a45ff97801481ff04e00df000461cf5c04c602d64bac145beaea4bfe83faef1a288fa07a2bebf2effa37f5815e37e8871fe6fb55bf26b0e0917f88b2a7a08be465330061033516f52d2b5e4ebb3a09705822eb9e8c7bee28b3d18b25c47c0b1a48f256045e03fa6c0407705dd6540aa2917749174f8d9aefb4bbd988bef73913f61e829d2657e0ce052b1dc27420733d0e5bcf973ff049e287a8adf48e2930858f257c4c4af1c5f4f945b577c16d1b27f9422bf2aa7807612f9e4fc5f0bedae9d60c4e12eda8d78291f12490f1746757f41d06120fa7f14f499726400f92dbf3d05bd12c1a72688fa9f825e09177ccb457d522ec4a23d32009f21b7bc2f52fe6b7708b8dfec915fee79546f07e41b941cdc1c01270468881023265006052736d013c29cb84015a43194011dc02725147c82082353305ca403be810d48a7b0071c419b6a6d3028d2195980cfc0e6da19fc1c198cacc097c1fcf7e02bc864640b2e43169014020b599ce41084f060e40041020f4e4e10e4c861e413028e4694dc20188043e1032662c0a480a9855c4e14c017e451d2856982c6c25870391a53cd83e9099e8cbcc3e48426a04d60aa20b1d090feea295c21b460c4740d420a23aeeb1046c8e7ba05618e02a68f20e4a032e0102ae0527d0ce10085a0fb30b350c8f5108c085ca6519885a0507d0eb304cd418f617642738e8e30e36841f50d782e5a709dc19ca088e93b98531453fd00f3042d413fc3fc8496c29e9b73f8e4fa15e62a5a71cc4173e19d82dcc74f402f6061a184eb0a2c42b466d085458236a0e5b0c8a1c5f537585cd016f4212c54b4e506809620460d0c912b049b0e510463d0428812e850c30283a18c6a73884e28e3860b6279cc8c8998b8393502885d317166104768cf8d48343566460cf1091db891085d3201ed1362056edcd8403c10822485a5854e1c86b0a4d067c61e96113a7344c0c885a23bc3f2843eb87181a5024b6edc60391013af8095852e4207ac282c99d1815584aedc50c150d18da2ab609e9bd061ab0bf84c6b0105587163002b05dd1932617c42774e9098789c220b4c409c991a24f2bc4387244205170a35470f3127930b7a022a2051d093991331d1146a06b07685029ec13a12b2ca81498e3adc8c609da32e3357402e42b0ae61ada21e472e7809acc164604648a5a8071b0ba9dcccc10c519f9a07d824e80dcc331005bd31f313888adec1bc0219a07766de610b6840cd076c5d34046d073aa0a19035db080db9a9c236472d66bec396c346e85a33476d8ade61aba236b70018c1c02c0d4c8e11583ab00836cc3281318ca9e500bb600d2c0f988a356e51480926cc9a8243b0680ad2104bfb7e4420e4da4dc8d019b52248736c306b0529c726b536900eb094c119c116d3f690b9d0062b872cc436b38e9031c8285a40966387599f90713ca2d60db201cc01b5602714b4558045b0cb501b762ef6c0eac02ec21eb754d8e578ccac77d8713ca1560b76034cc146c27699331b43ee621f6c1df40b2c04f3e511dc986d42ce70406d07f20b9e025a43ae409fdb63c8073804db970607c56bb0551c327b2afd7949332d029d43042817ea690588e319d833d84778c6ed08f6399e337b057b8e17d4dec07e8023b053385838e2760e8710c7cc3ec281e125b53fe070c12bb0af7050f18adb1c8e0427cc7ec291e235b5bb704cf006ec3e1c4f78c3ed011c15b883a6c0248421b35b701c60060e8293851977089ce43bf336b82ea4d2effd003e3810705c9c32300011b018cec4fa0a33c11a1650e698706238a38e03ba0a11404ba801ccc185910b17e68ca47f46703c38a9f041f1078c54b8734d8791bc44dc8551020538133803cea913c0d9c57b70666051bc67780890e03d7722702218722786f3091fb893c059c147e66ce103f0893a1958213e713c178d9ca973808f047f008c613c808150681860c72115e6cb9e0a52b970e62815423e67ce196c8e3f98f309f6090e14efc5e00f4269b911fea4ce0d3e06f8024e019f16be704781cf105fc5baf293e11b75dee0f382efe00ce153c5773e02b810ccd948830b851b1de9708970c147165c72fc60a3115c387ed2d1182e03ac80e0d61c32c08658ff670cbb60b9b0e042f15b58a11a86ab85158e90405a878ee6704d04f262b89e70978f12b82ab8c7465b10d61a1d6550ee72eee116e13e1f9de096e33736fa841bc7ef747483db4068ff02ee161ef09102f7100fd9a80777865b74f406f70b6ec368087715b7b9606aa281582773aa21ea1ac0130d836b033f6998bb2e7045d3983b8142beaf0fc052a0cbb5143c552c54c6e089358db605ef042a686bf0728d70378422d474e62ea0609a41dd251417cd04770d85aa99dc65f0209ac5dc1d3ca86653f7008f4473c01fcfc2c245b99e25875937a6ebceea90177ea8eba837bb2da7ba4e7791b99ef7cf6e38c32ed4e9d6e3954eeb74e435e9bad6a44f9bf268fc4a47653a3c5c0d9af457fde4f14ab74c3aefa451cfbeafd81aadbaebfbea30fbc4b9fe58cefbc768ee75d64668d2709646bd99d28c610a2a56bcdd7261efd6f3ce6165cc549c7bf9aae7a751d7dbaf8ed4f00d2f4d0ec31bcafd5d7218a6ebbafd296afaef92d0f0e7f6235ec47b94cf76d142f6a3caf7659c79588f43f3eaf4d0e54dfad37aa597ed7077070ace675ffbd4e0fa852bfb0bae22d37fe1a2ea03e9367d9d52d39f0f8fab6e7fbfe44df9aa8f50d01d33fc6e3966acacbfe14623ebddaadbb946737d27d6e96b389bb13154a2b9b78be77da56963072430ec3469dab71156d26f75bdf25223a871d78c8155630c1f7ec36f1e7ae1a94ad72c4ee9da5ecdf59da491b2bfc7dde12d9e5f8c60e19f5786bfc7caf9c718ae3fc650e1799aab0d0e9e893135f4dd7ae1ef515e54f42cdca83bbcaee67a4d073235fcfb8b1fdceeab7cd3ff276d788d3e50deaff82f1e475dfdb1eaaaeef4e0dd57825e3f70e869359d43c5639ebe3a240d3c8678121dedfdfad0f01379cd0bdae0d6d71a7e22af7947bb0d9e895be3f151f593bbbb2ffca8b80d3ffa7436591ac347c353a1dfd0c39fbedaa10d4ff9fa2b1dbc6937edac0eeb3439ceae2b43ef3478df211d29c36b34f7043eea3176dc8677425ee3d50fc968daf32ed1c23bd573bac649d3eeb46e171e6eee1ae1a1a2e3deaee918fca0638d83a2c1e174f69a4fcdd8c28e4fe3e98f76bb0d5ea7511777becb124df77ec76b226f83636fd7d4df6de6f3745f8fa1189388cce45c8ac38a67aafe926e8523eeeef486165eee36f5f9349e7de313cd2a5e7c102a2ffa44fa6c9ede93438dff99fe922dafbefa2169d25f749ee9da6c765a0b39bbb03bab7991ae172f9c7a6c3d6be667dd478598b34606cd66c9617f8b793c5b1bfb4bfcc26d6f0cf1a2c2f768d6f5cec9c1ebace6f1255e307bd6f5cff1c2de27ddfd13edd7c7e4a077637a8da3eefe11f566d7f850ec370d3ed3172feea8319faf1f51236fc4b7a8eeefb3e1bb3052d1fe5ccdd7f3f277726e3cb5b459d03fa3c32fbad178e9bee4a51b9b74ebf94a0f5fbaf1559ebc7463f2d28daf74fc9295e4a51b9b74f27ca5bb66f4d20769a31b0fdf756334ffa61bb9bbcb5f325acb47d177fc3b51d7bfaf8d9aafe3fc1b6f8621f75f7ad2408759859f78ff235fe1bf74d80b67cf66ccda6b4cee0b67cf869fb947cffbdfd186eef206efb49927d043ddd94f5953788dec201dd49dd53aa46ea3dfc8f0d026355ebd6955bfa6e3318d8fd5b846f1773cb971f7bb7cc787f56f7479f870a97f8a0e7a6333b9b9355a1adfea6af27a343eff98d7bce18da96de0797e5b19c3dd4af783a099a71e7ee12f7fe94fb63e37f3b3fbd29fcb4a7f367cf44c46cbc3f7b12d7f8c4d33aec7e430dbaf0e45ba3af8e788c7978abf8c5565476946f14326fa1741bf66dc35ed355d7b8de9d5774f738d552dd30ffd5aa6df7e2bd385ee7ce9df1e7467b7b8a135eda3c3f0c7bca5c54b77e62fdddae090765ee9498343bfd165f66b5e3ec94b77363cee19683e3cad7a76230b7dd2e84efdd58e4f5ee9d12b9d76ee4b73768bbbfa633def5ca2c54c79e9f2c85c757fda7d613367bc29a9f1aa5376bd27dd224dbae90f7bf8d5ae471a99f8f0217ed4744c0e151d4dfbf776d48e3438f442abaea3f79a83e4d5a7b06943f1217efea25b9b7e453ddcfba15bcd3fead657fbbb972e1c535f91f3ebe87fb5cfb93b8d5eb2326c7471ff2513e2174ef2c858ffb455a78dfcd65ff23beca1c5ec3b9da70d3f192f9936c32fdddad8f5bacf3a9d3fd259ea839f745e8b7aeab9abaf17f67975488cf5b739acebde3337d6dd72eee0de77db1e2fd6f9723e7bc40bef9cf0b817f7ec747d08479bf96f6590eabff464071df795fe6dbef55ef3a0b1218d318ddf2a1a3b9bc357fd518f237f422fbc2de9fa313a7afbe4b03f94f558dc532a5ed9918707fbb77861df4747efe96a96bd39cc1eab475f7eabf38feb35e30ed40adf625df178a5bb4d7a651389f4ce2b3d7aa5f3265d7da5e775bbf9ea30bc6263788b83eaffa6df6bbe1ffd939089a3837f5b75153b3e0c3b4956a5cde3f3fa10de62a37f5fd1f4b95cb0eaffe7a7e0b1559def309367dd751d2b612fd56d2dcefbe430b8ad8eb36bc2d2fbea10d6ff57d6ddfafb59599af63e0efab7f5bcf3c0f3f8be5e5855dafeb05cc4fbd1a1df592d2c2be9eed5eaff4ed29d75e3b95ad7b15fced7a735aeebe89f5f6dd5f8496a5b9d37fa5743b8b153496df758dc7bd21abf3dafa14fd27da5274dfab8a14fd2d7cc86beb7a4e772979574af70f3e39b1c47f5ad68fa58f18ddbf0072ef36bc712979206c1f76f729c59f5cdacfb0837c903157ff853f2d08f48f0ed3d36841ef2f7c961968f0ec53dea161a9d512f5a784abcb0cf49f752f68b768af57ca8c4733f5be1fe3379c293987a67d5f3856d7b8bbbc5beecafebc487fd71bdb0f7b1a13f970d4e48c3b3ee146a9c23bf49875e934e488d533eaee53521bc49af75de0e38ad694aac8e36f7ee2b63785bcd87b778e1a7c93127b1e077ee0b59d3cc395aaf6576a27dffb25cd8699396d76d234cebf9444817097c75674a449bf68a5719da941937e9a4af19fa736dcc1ecb85f7b99aeb4a838b1de95765a55c8ee7c57e356fe4cbc3d5d6181bb36b62fa7dd16695b7706bfb7f6771efc5ab1d5cda3b9778812eeb853b8916de6e39df2bcb7991c781a45581bafa23390c7beb452d6f48dfe3e73439daf775afbca352b7339e323b5ad88f554fd880ebdbeb7b5e7fbfc4f3f84bfea8fe9ead7afe09cfebb650beaae923744d95df9f56f279a7eb0dbec2b09a5336766b99965bfd7aced15dcd1f22bdd265bb99e6b358ea8795f1fa56e1e6e1856edd66d77de676d2ed9c57c6ec10cdbdbd66ec6feba3775dce8b7d7cd077319d3d1343cf63eaef56e62c43f3741f2d6c0575fd7334efdc57879ac64951d93f0fef496a1cf41afdba4b6a3b5da4ab0deda6b51c2785c7f6fba4e70b7b5689e775bdf451d7eb3e538ce6e97dbdf0f60dceea35edce7d3472fe59db71d6f3c51beea39153aff69f54098dd57c7f93f6e8d1db4742072394265defbcac7567cd2ba56c7c7acdfac57dcdc327f470b52e15b66cc4f6a56d26e6dedc6af253d629ed17b96f64dda27951db0642a6bdf2f1a6de6e934e885daeb167c276ca5ee5a8b73486f76557cf56bdbafdba3c329a7c8d0de9168d4c7fea5833842eb7f72b63d8fb5ed67af5ad5963377816e96a939e373879baf51af4e9769af467e43638c3c2eef7f6a51c16fd4f6e51577fc6b45fda21f30a37e5b7af78acbe15f5d8f048d8b3ddb0a9dbcd7ed44ddc1f65a0fbb30c0daa32c7d2de9238f8594f58b77d2de547d59f653dd6bcd9837dd0bca6a38d9b7db9dced37e9ca2b7dfc2a6fbccad7b8b4b55779ef55ff9339951d56f5e95cae83aa71e0cac6afc6e9c5c65ee8b1e77251e3a2ff750d5bd751e2beaa83cc7fecf75534c3a56d5a97a9656999d6f06324f05cfc80f90ff8ff63ef4d9b1347b684e1bf32e1af55f79656db74c47c4829054eac4c592081a589276e80700909306e0bd0f2c6fcf737ce4909f0d255d53dd5d53d73ab3b2a0ce4a25ccebec97cf5bd397d67afc6b357e3d9abf1f8bd716e5e8e6ff7ef1f6123873622d73eb23a78a81126bb7dbf9ca369e7c0fb18ade2c1084b9fdc7cfa54bec977f9e27fe8dca430082b15d96b7c6f0dfd34f5ef8a4f85612f0e9f34f2e45beadd27ed93cae8d5dd95872f4ec3973c9616a6ea3df956ed13f2495dc9f628f8f4a1bc0dc922f8d43bf462f2a1f9d06008062eee9a3c12f2c9bf0d49b222e4ae6bbf25e42e81e7879f3ecd3f4d083cffb224769916c49a4c9d49cc6ccbdd13e285e1beb4d66236758932b822dbe9d4da30f63499bac41e4e072606aa0c44ce343667e34149fa9b92383c1fb98c10dfa291c37605718ac2b6d238d34a9295696cdb65d9b74bcb8e6745965af64af423655a5aab49c4e6840e27ebf1544d97ac76e6d93a4d8bbee54fed41e9f75773e61223eca7cb822ee3e9d8ae88ff444753d18fa6e3f2b66f456ceeb4f3856941e5388ee32809fb691a67f66db671d2823cf9d30181f9529c8f3ca583da2ec51ae6205a64edd2e9641d0fae8875abae63764548d85faea793d5ae20bc604e9816c45f47533f2dc88486fdacb4c6c22e4894fbcb62c9269b924cc9ae207ec16a2767636b55f893cccfecd2caa05fdc9f5afb76fd1efe2d88484753af24f576c95c32f06bfb96b15f4b32de579c84eb82f89b70b24c436bb70cd7eb88a9abe5746c977e5f4405719e07359e515e10cb9f0e26b13b277dd725377ebdaff1bdbd9a65bb733280df98c272e612c294e1b220c32c7e26567445acc825fddb4c2badba4ce51e7734ba4a1d326029ceeb5a24eaaf3705e9e791336ef79816459ab8c4117d3fdb2e8b9458c411a99f69a53daedf81876dc16cabcf5c62ddd65e491cafb4ec49ca9ce92dd31c840f867749c8e08a9470b6ccda977effec1e004ec662393aaea1f8f29c2e59c13c04e7399d5141f89a697d67e4122bb2b592220e90dc7f66ae9d8afed476e6aceec7b799b32b8852143eb347736b1585feae204651907eca6cbba48eb8c539e1b32dece99c085ff9b524fd61c45c22983284fbb8736dbb7406433c3fe6c2b97ab74c1b94742552c69e52e6120feec69d13df7576e1d4759cd819c5439788782c0c774e46aeb31b4d9d5dd0b50dea3eb4076dfbd8751d42153199bace1d55bc924cfb7641ae9fa77342fc2b620fc3db8a12b6f69f1d41b2895d1067ca6abb24f5c49fba0ede1dc0b6bffdf596b16d1ecd89779b397941facbb3eff3c27788afd9a59c83ade5effdb820151d5dc1fe1729c016c0199cbd3fb06284b3da2e6d45e47be29328b34bd2b7a2c2b1d2e9745692a9480b9f10a7164e41fab420e443913a1609253c3975490a9fd8a3c9282ac875ee6756bf2045ee3f935b764500bed208ee721e8e1cdf2134b56c7ffb94162336b8bdb287b755914dc75ad9b7eb8a58fcd99d9389eb3a965317bbc28ae07e83db5a2bfb755d910adb23d7751cd9be2a0a3fc4f6415657d612dbe7aeebdcc8f6b228fc14db6fc675658fb0fdc9b5795a585687638308eed5e6a9fb4cacfb11d08ad5aeb0b705dc41071b8515a7637514b19aec0bd2af06b5b38475dfd625e0ad1f6de0acbc72b8b1dc493fcd997d59927ba0c17d80b30797d8251def2b4286fd493f2b692d6ce64c4bbb06dab3cd81d6f89995c29dee46ce88f8c423ced0ce3676e5a4d173c156cf831a61f633c0d34d56ec0a9b1485ef3cc0fed8b8aec8d280fd65aeeb50d9ce8bc2f7b17d68d79535c2f6b5eb3a03d90ee79bc8f6baae6c0bdbb7aeeb0c657b59305a4b7cb695820decd29992d4077c9e5ab48531a05105e2a36d1485ad3c17b6f2ab3b2707d726e9a8265fa659b6587a364fb3f524624e02f8e6fa9a6758c47a0ba71ac9a3209de3fd505210d721643509a72eb1facfe470fbecf4c968d29f522b6ecfaa7a7dee64342bddfad7caf29dc9689296d391843f9e95a9984b9ac301a649bfff5b6b06dafea53dc97632ddb572c6881ab9e73a351985bfb2b1560abb4cef6cebe6cb7bb54be2c0d968a51897fb7e53ee0a1a158c96e9e86bf84a2c0af7e26b1ce88feeba8e4dac68cd6c231d5d018fb9051a31ccb64f374c49f2686c45d1b2584ee7c462ca6d2d52c7ea8f7cb843c37509e93f131fc658f61468b81c332743bfdeadb3ccc8994daeb33cdd157455c0be0b0be835718673e20cc7643faac50dd0fc82f8f0fbd0af8bb41848daecf7fb5151b294d4645e946c43aaa7d85f212f64c86f95241fd562c994382dc888be4bbf348031e799b15f6fa3b15d92954863db2b892296319c0d19d268b487ef29f2a939b1df39b7254358f5374c89979e55e40559d2d133b18773c2fc761d916d9796e39564f31e2c73b98e2be2201d1eef4b6b3c5916282bbcb3ee2be20c51f6f1d7d1c0cf81f7458391dff1b817ebe903cc6f4fe79b11c095fe303b9e6f7e47e10e8ab33e7669dbc266808799b8c1b5690ec0c4f5f9bd927a0af0d0dd2b99f4d33da365cee0ccb2b3b6b15d5ae317303018ce497f186ea0cf72efa7c426561ed53c9d0ed89c4dd6bf09a3ac3ec24d2ef15979b96e87a7eeaabdfb815db281b5799f77f194d1fa16f0e42e2b73669b03a04ba367e2fbead21fa8c3786a93ebe9f8b2725327045a7757bfe9371ea8d69b7ebefda5f9607d33d8f7a0b02c3aedb379d85f478c56b1fbececc9c87f76e796e5bac4b8ad5ff7257394175ff6b55d9798b7c616f6535ab6b0f16cbeb61f80b5fab274815e3b5c9e21f1513665b67986ab450eb4c3cdb8518c0dab6f437f1ff8a3330c6f4b62cd5afc0e4fe7ee1207e0c30ef933732d90cbd3c2b1465397db8cf07470c5ed61ca67d37068b3dabaf9b3f113cf61e318ac26d7ac49e76cfc12aed96473bcbb11f0439a3e9f9def00f8a6372e10cfef706f0ce832b6c3dadd67b2c7b1755d122bec68654d08d2c3c07d260ac8e263fb2bedf06ce284ce1551f17b5697a2deee0a47e2e6086027b306592696ddf3ddb9c55d973038ef31c82e8e5214292123bc27033e5bf2f37551a48efcbd4fe0b3fcbdefc8fe63f8cc647ffccc657ffceccbfef8392c0ad07a1d079e3d755d0efa8005fb9fd475437c427cec971645093228f68bb11fe963bf695637b077d9af28f09dc821f64b5c975bc497fdeec7754d8845f173069ffbf2735dd7a083c0e7c886cff2f748f61fe067d95f7e96fdf1732cfbcbcf635807213ee0c020827d59c461b08e475c07b16ce837b3615f4edb6f25f71f62bf5fe5fefbb29fdcbf25fb9572ffb2df0e61282bf6471c1a1845e193cbdb2bf201c6ce414ea5dbe7825e43ff52d25918b32f7de87fe380cc76ec9f6475458263ffa6ed6f9dfa038e92abdbfa44971608dbc57341415eb3345c53bd2fef006e6e12d9ffca22d0f701e4eae0d8d704d9fad4770b6b39f5c5b597e738730d73dfd9fbf20ecee206f42d727d7b453e41ffcf99ec5f3804fa7e82b98f7d19caa6c7be29ac39e8fada36ce3b3e3b4706b22ae975e7b2847553a53d17bb2ffbb767c2406e754e7d61ddc1b12fc3751cfbc23daf1c72a63bfad9beb407d392d423ffc13dc98cae0ff8b037085f8e51ef8accb820479b4a59f8e4c67f1eddf0ea9a12fbd78a9085bd6bb66c98a6639b7076fbec104bb9d547242aad65392065fa6be1935bffb9f44af24830f3a82443e847c3db6b82afe1b130c7d91eff5a91d2728ab16f65201339369bba0e8d9d71354c072c9c64973603201f916c20400fa5c419c5d3c93ade3525bb25696813ce6f9f53eb93312d2da65524b59ca29cacacd472465214b5e49ffffccf8b8f174fb3e787c7ddc52fffdfc5dd2abdf8e5e2e2e385986d1ee0d37ffff7c78b34db2df7f37f26dbcda764fb986cf7cfc5c3e9d32f9f8a55bd993d17cbd9fa53f930ff54ec66bb2cf9946d5298317bfcbc85bf8b87dd2c5b17f0f151ce0d1d3e5e1459f370f18ba1f42e3f5e6cb68b878b5f34d5b832ae0dd550f1977fed32ecae299af20fe5ea1fba1228bd5fb4cb5fd4ab7f5e1b86a91abd7f28c62f8a72f1f1222bfeb5c89e2f7ed93def1f3e5e14353e8e3e1c2e7ed1944be3e3057bdc5efca2aa9757fad5c70bb1ce1e5717bf681f2f383e57bdbcbebafa7811668b8b5f5445513e5e0c4e1feffff5afa7d942b9f845f978315ac08ccac78bf1d9daadf5aa78f1759bac8a8b5fae3f5e905db681758c1f127888aa5e5daad75aefe38528e0972b45fef7df1f2ff88b9e66ef52554d13d6247bb6bbc5aef6b777bdffd7bff68ffbe26171f1cb7f291f958fcafffb6fb8d5e5c3339e0e9cd7c5a7e576f3f0e990edb69f8ae7e474b9171f2fd8e669fbbcbb9bed9617bf7c05144e7073fe13dd2612a682d973fab0939f47dbedeecbcfe5b35db2bcf8e5bf2efe79f1ff3e5e8c77b3f54377b1f865f4302bb68f17bf5cccf7d97af11f8cfec7262b3638e8e3c560dbcfd60f050c3f3c3c17d9f6b1f867ba8589e4768a8b5f1ef7ebf5c70bfaf074fc1c3c14bbe3c0d34faf46f0ed620f4bf9ff2ebef54cf82c7bec96fed5e31e6cf976f1852e9fd2ed3f37db05f69cc8ad5dfc72a1fe53d511579f704d1d227feb757d0185fffbe3c562b69b75bbffb348c5a779b69bef93d5c3ee1f59b27dfc6771f80af578a77f474cd46be3ba232686a6fc612af279b62ebe4246ae8f6444edc888aeabd7d77f808cc855ff1e32a22857a6de617c4fbbec99d77f5332f269b64b3e25d96b6a72462fb2af108a13419070d8d283f68a5e128473fc97bd7f22fdef42faf790f148072eee68cf984fcb74b199d489b63ecc7325e363a36499b59e6fc4211eacf771a36493c968e0066976d718b77776df0914114e27569fdd082dae2d7f120ef938e429cb9483ab268d5f5f1f46fd91c3fa623aaa49e5e6cec155261ecb48f6aa8886ce6b598462a40f97c960f914e9fc10aaf18ddb387b3eee3913c73f247afcc803671fdf8c562c376eefe4738df9b4da278df29b73f29c94dcee358b4d92b1c15206665125e301fcced285b65e2d06698fe58921c686ce033fbb4bb729b3497a77632d1783348da9920581af0adbd0454d14d1acf6bc49b524f0f782460aa35c7573471536d9f13cddf32031190d3537e7aa77e3ef44cef63c777446f99e37be918c959a8f0d5de42c7583d55ed05463b6527b63c310014fdd80d76ece3571e3efdc9ce9de98ec040df7a209354699e9e6a41219d9f186ed79132949c04a37278607cf0fc89e535f61d42fdddc57058ccd0ccd0b62853730875333ea986e9e96de9854626c348286296f92bdc823f561a3687c6c98bc495337702a374f2aefc6d989da307800eb0d4d374f4a78bec8f99ed35061b662f2b1a1f260a8b881537a303e8f523748f63c0f9564ac34626c5422f0531e847b913318a38acc2845b34a05c5f36c16b6527963a31681930ad85b1e5549007f79cd6858ba79a27b3651786dd4b0668f467b41d78a077d1adf6494576ece14efc65139dc15eea1bba35471f314cf4dd068efd1a45e50a6bbf90aeea071f34411374f3b1ef006ce9ee3f992dacdfd463c3a3b803d1ec09e1cd5cd8926cfdfd9f3dc37e0ee846d18bce92bc7bbc3bb80b52770b78d3736341ec07aa2bd17246a32562a848b2691e333a39667c6e14e0c9ea758f0453e93356ebe32854de06f299f0d7b60068333c857dac2561a6e1b1adc29cf8c5a34380ef7c773bef7829592048e06fb6414f610d502ce3233144ed394e721dc81b9a07e05f0c5ebd33c82a6f02c159f451d3d099c5ad4b05eb8cf68cf83b466942970ef1ef553370f55cf26c73b3fdd816fbaf94ae167302928d90b1aaacc562a803b2f4852419dbd474358bf0afd85fe8467ed51a2311aeaa23654ae3b3b611b8ac035f87b11103847c3cd23c51be3be348f2e1480418f02ccfb9a9ba73ade6b10eebd80348c72c025bc1f9e190dced5387b11303d192b8aa8613f7036d15e34a9826b443cf42b39363585ee036cd48027223b3f7ba7c2b36d12f85cba39af61cd70ce228f60ad8a9bfb082788db34d1717edb28051d296ee0d76e1e19a296ebe53482752a00d7bc8133650ad0060eedf96acfa983fb10b6d1f06051b98103b002e7aaf2da50459e226c01de23fc0451ede6ab466c4a80770568876703dea6e99186d80ac07acd1f9d8ae770871cf0a876f3d01036a93dca0097f5e36f377eed018d0b5278aec13343f5e8a802dc118d6374f48f51581b37b93c2f8337b05fb6075a80701838673003b42d52c423e02629010f60ad22e09a9bb30668d3f1fe29e0b16348dae4ecbd80c3333531360026763c3374a47999a14bfc6ccff54837fc1dec93e749c328033cae99c42b05d6c4919ead0cc45d80dbdcd1184de06e4ba4bd0dd05c7826c0b953ca6770037e7bf13c5ba979b0021887f9119e252f48f7125e244e033c081bf00c6894a3b8c0a3747fe7c17e28c298e9e66173bc27bcd714e80baebbbb578e05bbfc4afe46343c0be03b81a85c5c13ab9106d586d93e53f728ac236ddc1c70e8482f761ec046e04858ad813e01bf82fbe7a518bfa07986671b95c84780d79a4098853d847056c04334ec9f277026cd823aba9b036ec36f64ef05406f00ff9d0ad724efac163017c232e05c08fc0d68a78e74e784679a07fc15e76ff18d3abab00d4dd223e0d749c53352236cd214f70ff453d00878a1eee60cd629cf84a69a9b037f81f5449a67930aef0f6815f07b9a680c686400f4187826c0c56acf73a233ca0ce0c3085bb5510aa0c70d9c21af1f3296c69b7531a74ac6947880414f193bdca5db6b57175adc18b77fa241e753f2f91bd5b3f38e47bd4cd1b5cb1fa498f5bea3622697fd1b9a9966fc54cd7eaa663f4e353b47ac3fae93b11ba1445373154dabc37c13f6d8c63cb0fcfa839d57a0f79ce9388e91dca42ff5a07c513e801eb459af17caf0f000bfd9a46414f835d35966695db1c6bb3103da96b19be56e3e309bbbf170bbb819955e767d58e80bdd7d4c1a592cf0bae6949448c36a963e0cd462fec82f1f06d5d37c53f4d8e6588c505fe8c97ed1702ca0e8368ee905ab43dbefa487d9cece1d5b37f1d45c279bbe32d7d925eb8be7f87e94cf6c027267c3ec54e581a3897a95ba63ebe5ba36c3c36c30d9cda6fd7da4f556b3a9f9e86ec4613eee35336da2445a9aba63e5839d1178def562b056e683f043a4c59f67537eedeaa3a7c5a05a1fd73318ad138d7ff0f5e13aba1fad63dbd267f7a3ed694dc6b5abc93edd9cf160b2491ae316c6b7ffae93415f99d9d6ea6e3c1420f7f1809b02e4959c1520b37994183c701a9e5914dba96ff020323975143e2e15378f2a1c93b386813c12908ae720ab45860b3265e0d722f72bd0a7f8d86838e58608569518979a9bc359832eebe8cc019d859922c7e7eb2e059eec549ca68a076391cf134504447769ba1779a88826694490629b08d28a074cf3ec12e45705f8296f428339a04b3190994d1e84aa4b1dd4a7bc20aa78c352e4874d083cb81675897287a07eddf27ed0596a4e438d377e21657647134da888daa25247754ad180ac5f56a84be6892a6802fa2dcaa0203f8a6655808e2228035d4315d2166188c0d7044d4c97824e94365e20f7ea37afc7267bde603214ca1a20bf88202d799ed62e750c17039df10e52611b15e8a13c5fa970161edc594360bf357350e6d0700d3957de8cad8dd2a3b826c31b9795a88dc6c3c4a95065781f29e83aba47e57e3cca41d732f9d8a26fc682de91fb0aa7a10e3a1bc8a5a7738c40ded2f1c5c7195141871079627834695cd40b57557b8ea9df802cbe6a44ce1bd8cfcbfb01b93134854c2c2940ee13b817805782721b0f1258b3e15290cb7cc5a30c6146ce1bc17d699c468527e5325d341cf4465883ce735fe53429606f3c704ab957a2b9f90af043e54d58bbb0b7606572eaeb3c80f5267bd1448617904a50a7106343159469823a2a1f13c3cd992640560f52cda53ec8ef156f561acf79ead9462d82a812f9aae463d089428353806b0e7767a0ae4157b51784b01f186bf0dcd1bc204d450677c55501fa0705dd891ba2c1b68a8f89e2e64e238e635fb7232c1b80075e00f26f59025c783481b518a877001ce52bc021c583b396b6841a688167834e44601f0a6f228d67afd69e594f315532496b948ae5c6b5aba35deb489b8056c58f67b4aa9663c241ff311e2b15cbac6671333ccc34c95be69b10794eb2e93dc763559f4d47ca0cf8c6f824cfce37bd7ddc7db7d57a31add677e3e17ab199ece79ab4e19dd3c2ee9991d6031aad268f627daf5587585befef1b52de6beaf2a17f5da1cdee66b89c3f8acd5c1feeeec64325d9f4f709160e0eb7a003883cc2a2c2c883a40e066784dfb9bd3af295f79f8f343f6337a33a9a9a4dbce9d5f340c9da671640ef6fe99b675428d3b7df6fc7ac3bcb37cf39a7f922336ad0fb45e36b42e22de8152aa72b8539a8df029dd5058d5449a79cca0bc2d20b7c80391de8e619ed6c4410aa5ee0370c617b6500bde6d447dc047890f86571d08378e3341ce83dd0ec0c708c98807392662786a01d9e803e03fb5a218ef1da687810359cae0c9195a0c7d53c209547d3d6bee968bc21a627f15ae19437224f4ce4612fc7aa6ece2b9ea706b4033df12893fbc9d30275f520514510b5ba15a98ff4efbccd813590a6a3172fdb38ec0d7893e9d1d07429da187411849ac84885e710a42d2d0961edb547530ded1001d20743045ce559093a5cc91b0e6d400f5e8d5ded45037cce013a8a637910561e2535f2c431f06e6222af95b68f126935ac17ef869802f462a00501dff37c2569fdb8bd1ba4a5bc966399ce83b4e16d9ba061033242dbd688262a4510b5f326a6a07e236c9817f4dcb012816ff2ba04dddd104da27801d1a4ce1a19a2e9e005e8aa638a809802607b6c681e4d90d7be8643bf019d7ea578416a8806f880bff782d4e40d2f399c31ca0761c903bf92b0b402baaf88804b7b4a90343c8f7421cf58f10286740fcfb8362a2f488ef41a640c9147a6479d14ce4934409343936725f2170ef20e0d6b695ff01bf93b6b04f029ca01a74c37e7ba47c3762f046dcb1dff003992e7b8d6d2b3e5581e90dac364379893e93c0f1be079edd88a5366f086d4726ee0d751c39bb4e0b651837cc2f3b4e194017f31451ed51e75346fdcae4bca41a567036f5aa16c83f41dc7861adc39a7c02f01fe2329ebe46fdb3ddbd039e221d282d7eb36dc3cd27813229d7967dd06ca919418001f6fda41de037c01b93108db673380df4ad43077580adac99c38561101f022800d7f2fe551902bfd42ca868e82b89aa7a9b465aee479d3b040f9298f34e47b63e06b8986b02ee9c56bf8807603e8560b03683f46d986868d941f41a6837d87afe1f24bb435638335d0e7c16c5a156ee0646c103fcd07658f6542da68566176979707a4e5f4051f3bfda35519814e30f07b6c25ed579ea4c7b58bb6c5a816945528cba24f80575ee0a8625cd63c3354909b245d74743707fab0524593143c677b817230d30037456dd4a2493bfa06f2b571821b180b7217cadf722cd0839cd542e2a6c69b04e9493bb6f2240e216e7ad46f3ccaabae8da3dccfda7953853748876ab47307ac93bda1ad11402f28c367f206f6827261857ea49cb5f233cc0bb25c54f2a65b6f5a898e96c3d820045e22edb6b5a10bc017eaab722c694400f27484eb150d335b5e5a232c040ec8945a4b4b74e0815e90c0732b37477d1178ad1c9ba75a4b73d137e7050460b491fb8934d1b47c2977f6a2e18087c04ba91cebd71cd65de3584d34f09cb46ac756c0033d5bb621ad43f8447ba7d1ea3f72dea34cd7ce1bf00eb6612cc07247eb75c4bba6c549184b79276f56e81fa149ab73c15ee1cea52c29cf18f80fe27b3b16e4cde31957a847830e9a3b7bd0e390af49bbb9c9f38e76c2bc300fd37913c1bc9a9b27ad9c1bc9b1a82b3183d7381678f2d9f903af04de9f4a1f52b3eaf4da1afd5e3993fa0bdc1df070586fc3612cfa008ef248807243096d02ced836407691faa7f473e978e6399c31d983ae2340e640bc0bf720b383cc8477671b2ac26693e872acaf21ed0956389637918ab825fda68ac823d4c7e59a183cb3e38930563fe12c01386e5afeafa20d9c22dd936d34d5a47f18db404f437a28db58c31b5249d9200499a4113951455656de18788ad3ea7972af5ed0c213daa709e096defa79810e76329d09f02f1abf8309d04d751148b9adf54de882b6f03406dce11ae890edd84a809e4b23e9cf0d564627afa0dd3d00d926923c1c75302977c8b1490dba92873406ce3fd55bfa0e63352ff0cdd339f9d5f19c82d55ee4a06f4ab94efaad93b379a35a048eee050ce73de38730afead15495733aa6401ab39273024ed195c25b78e0a0674a38aca49f85011f4d25ff2065aba3619b94bfa5bc279a446b6110da1a0138475755272b0ae0632017042b9491058d6ac40bdb90b682b1517b489b91e62b401be4be988136a166d5ca5ad0272cdb35349c72806f458e6106ef68bd7c8ed2ea8895e4adac02bc97f372a0b3a8fbfa8df4157a9ded498e35d1c693119015750ff42aca9ae3d8a09375f95ec07325fd6bd7c4744e1315e56f90f9e9d9def344e501f277905f4d8fb2ce1e62a2dc02e782f41c647582eb15f22e2ae4294da8b672bd0a72096f78bb1fa7f4020e324edada222a90b7641bd1044d4b1eacb08d3720131ee72d39c837d4e9e6ad41cfe63455a58d06e532392e007d206a84b4ed983c5869ad5c0ebc087820d092027d703452254d95b2b747574d27b783bc268204f842eb2f025a8db2088e055c6ae5c24af222de9d3dc85bc0bf3541910fcbb19d5c0863030e3c4641dfaac4dbf3b1350f3abc057e13196883916b02191e79a99cd7af3db4df84725e9a68209fe0bd017d6e786733325afed2ca0d64ef05403799013299277da7277800391879066b6d603ec811eddda0dfafe6c14aefc68a864b3c421b12f03bae72a0e5b857a649bb9cc5712cca7e5c13d9ab3396cfede8b1dac21ac85b1aa73e9e85a46fed9a51df494ba94be35918a2419b5f4b1b0137d2a683432ff0159e3355f20147e18de489881b14745cb4074aff6213497b20ea6bc89ba49d11792d2fa5ce0530e3a38dcc0b98293294b13411f8250f5253c29b83eb1339f05a0e67aeb732a121f963279363ec08c8baa03fa3edcda311e0b6bcdb97631ba0ed1e9c83e46b20a7aa82827ebf4a31b68086ad9d0bf93f7c6f799ebf17810ffa8cc401e4b50013a07f12d0f515217969cbc31dcd0b128463b457068e7176fe40f3245d433b486a9c740ca4f5a6178408aba85fe67eddeae94847a50dc1afa5dd1474ae569e0498699886729d536a1853931f6d7a06cab801d298d46f648c9038c72db425224fd4908f211c38dd5869f7a6680f543d7a46bb304e05e81169f703fad091761928b33709c85629c6019dd9d33d9049d0e6dfda72695a039fe1689b467c37a43dc3a202e4019aa07edae2b40acf94fe01b8f750433b72d0e14fa2a14c5fc3fd00ee773a20d20a5de4ec6807067a2675b9f61cf35461180b931eedad92ee81dcecab1ce78c148e7273a2b5b4b4049cf35a1bb00822a00b524fc0b88508e04c93f663df90b891b6fc9d003d477c45dedfaccef97b29f2d0e03931a49d9de942ca412dbf72aa6e2f1893445b5e148486009e816b853dac3a3b05eaf2bc71d04f01b0edd1443feab1c8c77c698bb0898236b006e9523756f7680bdb7807aba3cd46f2c748e2b1c31529e39cf35d908d90f6033f07186f6566e4bb20b3a1dc2b6ca3f450f791b67994391aa76e71a671f344f5d036cff4762ce03ce8ec0dd076b83fe9cf8136bf6c6d24d2d7939fec445296893afed8b8b90372564b03705e38078507a11c4b7ded48bf714dbe2efd057c0f772dedd449bbd7d4907e08b40d82dcddd9b0a57c457983772a75f9e648ef306692d5d2ae48308e891f711cda7cf3a8476586813e8220545af954e5d491fbc1f8a5a4f4cec70649d3d2c21af9e5d15684744791be2e909930760f785e278be93cefeca00ce0a314206b36ace519a46c6531a0dd0defec4452d66e652d5c2fe875c85b3b5a88b2437b0e9c72f5e4730119df515a180619a414f4fc5e51e64059db6f9cbda4b7c7f59aa2935f518f20806bc6b1eda45748dbd3d15eb9423c95be345c6f85fad449ff2a45904a7e8fe790a25ce105acd583248e495f1a2f5bbedaf2040e3247cba730b6b5449e10481d0a6de5526eae41d63de353a59b47c08bd03e816b0ad8499fb4d126dcc1309c937eb26fc3d8146d1228e7e1de61bdad2d06ed764c91b16f20c74525d06d4eb9e4d9147832e884e8c701dd1e68b322ec568f0d569d1cb11740631a5f43fa03638355d3dad12a69bf64201f5492b7a28c6770e9ebac5a7dbd6c6d0c0a8771cdaa46bf6f135647bf31da11802fa3edb6441e2d61ade4ad7d02f4cd96177db91ded792b9d9feea8c2f8274a90e773dba8dbf5a0ac759a93351e3dd2a61afd5b34513dea9b3867b052bd20a95adb5285fe3eeaa00d88db7877928604a9b401d115e8da25ca45d2c7dab47451b6e78ed1ea1425d27abc1f94256a8ceb847343db143c9b34e8e3433a8f762de0efadef177571559ea563e2de40cfa0046d92381ed6129c9d5706e7e51b2200fdf22bed7836618dfa7b7736d8be6ae10be45f62621b25ad4d2e323abb1bc08117441d7dada5af239534c7e115e8069c76be5118bb2a3dba92f23ed0a7a6a3db201312a9df071cda0ce46f416bcf439b62226d4d125f2ab4abe64493637d53b47405e915e841205bd438167db71dcc7b4178862f206b22ad90b633f47bfa65673b13004f14f4785f97f81275fc00da5480544907415606bd3c69780eb226e8df2be041d28782767c76a44918cf08342720a61cebd7473e94036f07b9066d0e40d3f1fca44dce473fbb68409ec1790147cfe705fde9b45e3c2379afc2465b74ddeae688932d4fc53611704917f0de22d0ad0cdec033d106a1b5b6fbaa8d4de8f04f757347f7d09694c8b3075c04fe352e6b31366aefe43f94b6d5a0b37133b4a788d667cd33904993ced7016355def8ad4e8a71bd673a828cd9e7f99147e93c205dbc818cc96c48c573a631e963ab919734bc1dbb32a47f0be8768ab4116d4a68db401b498db1d4327642936b85674b9998a3dd31ed7cf33816f408b4eda26cc0bab818f9bc26348f6bad81569ee013ed514147cf011e9976d429612cf59136891ae42fd04dbb3811581337395da1ef02f59d86481f1fdab943e0574debbb505cd03583cee782635591b7fa01e231daa2abf6ec41e690f67e945f7d90d15bb919c7829c8a344aa08dec440304f202bfe5b7e1de0bf8196cc37ea2b2835f81bc3aec640b79e7396b6521b4c19e60146d669dcf32dac379b7beab97f78dfa4c02f08c34b7bd3b15ed3a206f678609fca9f5f1c158808bf699c99e07ddf9ac0c41a56f0fe33880077532471e491a2fedd03ac08677d26f3517e9a3b491891a7092743138b5c80cc303bdb9498046ea6e9e02bd6d753e189b9a8212c42719af037718d5b26d5572bac2f829cf46dcaa5b7b498db6f0c0e9ec0b86b4db76381c815ca6b7f67843da2d8ebe1f0d73207269abc47c973cd45087b2db79736ef066a5499f62549d6256706cc57369e79272da191c654873d4d6468036698fb6b64e581385bd86b5f42f103ce323fe67706e7e673707794a3dc1368cf50d0eb4bb261597f6cc8e26c119c27da03dd06f702c3c07f4501c2be0ee8395c2e558587b6b876418570d3ab4b425125863679b833535e2e4a744db116f64fc9b1c0bf25267f305de29631e645bebbf46dbad8371f76dac588dfe04d48f24fd95f62c2973c8b14415479b94b3e739be68491112f64d0fe0f4e837673ae2a3846d13e5fece4609b8d9b033da9d981e65adef1be5c14e1e479cf2e80ae15ace9b962778021a4a6ae9b76bed8901c81918cb27f158164dae5adb9079b20d010d60c097ead6e60a3cb50699a2a52d3aea6148d3606ca48ba6f599224d039aeea02c813a17da76d0beae7b3434c418edc3a03bb7f6409813ed7248bba56d994bbf91dc672da8d3caae680353c5d13f03f386326651ce0b778d712ac7791b90838fb6f09277b6071c8b8570cd36b6c31441d8c69f21ef033945c653a1df81ebad4ed8d2bab4a3bfe8dbe14de75b80b14033bbb8108cab545ef0cd7cd5e11cdc31d010198321f949297d30d2bfe0d1507d41f751d606d9d2d15026ebecc0b81fd81fc8bde83fab05f55b7d1ee58052b4f64be97bf32b91b5b24593743e2ca08da6b4a377f24ca8227f6ef360905e48795101baddf950e49c69752e0b61dc27c6e3609bc1f3ce37e6ef45901a182f2ae705ddacf3492bf2fc8ef7a6a10c2ce5541c0b77e60598d706634167ede8830267823e7bc445cc3593f145524e357840da5803f4e1d727bf33df8b3c6d8e7128e8433cfaba1ba0d70003d25f00f312a5d5251be4bf79c78bf05e8096483b60ce012774c953db7973d2ad17e35d451eb5f4eccd7a41ded63dcadb799176b4b0c230278d3729e697880c703aedf4c11ae5a146c665623c6bb3ea625fa50e01b43b485ec52eb0ef11bba0b818c3929ee27f292b05e58d1744ad6d8c55a2a555ded800d9a56c7905c6789d7835e6e718bcf55fb467a777fe4c8c936a5a7c405e8df637137042c60ea52a973e20e0f352c66b6d9d20e701cd93b6f504732c51ff475b1fe052dad22b8b229f071942dad6db188a55cbfb92bd4757a73834b409810c8ebe0f1df36669e7476025e24ccb8ffd06eec5d75bddb690794c446fed3e1ac6d1e5273d1dfd34a8e3bf6d035a246d0328b7959cb24e2ea9657c8f844f51a3ae83b245ab6f1aa221ad9f2005fd0bd6527a88a76cefd1a49472542b030469e7d37c3556c66a1d634e51cfe6552bdfb6b136ce992f20021dab8dc37d3df6c55e91df8a206aef15fdf9651b0fdbe61eae9a4ed647792188403e535a1900687e4bb330ff0d642529a3a16c19a12f46d8afef75857ac22986fa154c8c916eaaa8f364afe1c9c15823efe87bc2fc54c03f5d8c5b1f1de59d2fba92f1bb516be776646e64d0f98fc89e37697df4d161ec366f6dd52b8cd13bc511a2cdb44198b731fea9e6d46f5ad910c78a2044bc13a0cf0509ca8dadefaf3ec5eca3fdda40de98b7b168a86f225d02fc86f57771ea1ac86ff87206f46dbc1c8b3a2fede21e2258afee9de2df0dc99f91d7bf5c6f1b873cc27860a56199b5011a753766b9a44b71ff9dd8e4df8cd31de9c3c3e29eec44f6e578605c53ab1b32daeaf3396bbe10a3dbe678a8cb442bd2d9d4efb10d7edef1b37cbd85b67c5a0cc2f76289dfac79712fd6ec6659cca6e6b3b759d6f134027a8c34d60d1ca4c7d0e78b73d1f2309ff69b59f31b34fbd5f9f85af594d88a8a67aa255fdeeb8d7598dfac617deb97fcc37f977f3079363df638a9e7769ae3ba6aa5be1db33419f49ee68fa3e66ecc5a595fdab2d036d6ac0c8c37437c4c81e7562d8d4ea53f6655b7b1fa3b0efc0fe54daeb6716328bf4bf998ec799094bcd59199ad54c0fb7913b6b160648ff62bb4c1a10dd4f490d773d5b3d9873bbb57ceb5ca9c0fd6fb38f82d1e581ee277cefaceee3dbeb8a7f37eede73b596fe2c39f99bbb978f83cdbafbfb5bece9bdec72c4e5debfd98244e43f98e499cb8ea9fd5757ea670fef5299c6f50eb87e4716a6ff23883f8b7f238515ffb77cee34c06d532d226dbb956ade2fbe1f7cee9fc3f963f155542e6abc0bf02eb429ce53abd2b37d1eab1951b6e924d4f4da47cd7ce1b1f928dd2638f329f6a3ee82bf138d538f5cff3a700cebe297faadbe73b77fa959cade4fc791ae6d5c8ef4fafcef28b395b3c6085181b662b7f57328f49e60b71ccab4ddb584ca7f0ba38ae7169ca9a104e037fa51eeca43017ea03ad2ee6616c097c27a69baf0a8c79ccdacfb6d4515cac5de4a75d7f5c0b75307fc91b5b33e62815e6c3da728d680faadbef1883e3c8fc1e8c4f4b616da063f2eeb3671b1573704f85fccde2029f8b79c2edef723cc64e9ee6067d4c81b39866963c27b9661d740c465358abee8d89e1ca9c16b9d71cf5b636d789e0da311e24c0dc9182a36d373af685cff25ca36e3e5923059f016bf08fcf97711a1853839f85dde6c9d918cfa133a75440ff640ee899f0cfe23c2785d4615929f7c3dbfb8c749762ec7d8d7ffbdbced612cc06fd321ebf5bcbe335feeee79a7c31e237e83ae7b2f9e35c33a42eb216dbe8de5ab3cc2ae7da7abfb8e13d969394dba41648ef9922ff9194e77e6bebe9150fd3c561fe5b70fe379775e5c86f14755f77ee245d4d377f501d4943fd7e92ae5cf54f49f7a7a4fbd74bbaaf31eb4708baac795bb064f81b822ec3a25dffce826eacad957b6da946eb9e3e1bac9538280f5ddb99d0da448d4993cd64b9184c56ec66f1b418a469a8edd68b81d8ba7979907d3a425fade269dcdcc9df4f454c4e429f1f4d176b4c94ec84dae024c026faa89e6bbbb57bbf788a6f465bb89393f10f19e2bafbeede0fd5f900e061a2c553f3100ffc9706b6d333f3b966e6731de06df2793ee83dcea6e6674eadcff369dfb86f9cf22b02e84ee45d623b29b95d6251306f7c2614be6fa07ccb24078964ccab453dd727a51b7c4d108d4a619f09d89495dcfe0661f45542a92caee698bc01e128345b87b3e905a922135e439361c066248b473649fb3dc1e07b4c36a82d8ac26113ee31b0a5216de0806362e213068a276d40f3aa13b6da04351f1338a4813e2cdb20534cb0e27968626056909632d12cd5d1a9353664f1975c26a460c25dc0abceb18ac6eb80d518788cc1878ece03ae76095f6763f53680d544271cb461807adab5d5222095d72608f226c5c0646cc30289a9d126ead5b2000aa9440002692293271a56b5867d8de7c4f0285361acc83079150bf249073e2b3d9ad658bc4116e4ac79cecc635041c0e15c741c8b01564c95422c916bca498942291644494d1eac1ad639c9f02dd37086898ac992b85714a81b91279ac89986c277e3ef055de9588855165a5145b352e5f9278a9b87952c50f78536b95eb8a7c60bb0608b8e896974a5ca044db6e741a48bc62fd161d66051bd8a63711a0c38d04493281c1398122c9207f726ba820641d4081a55386f8deb2fb1001026cea5a568b82ae7c5a40b85371804d106ac450647874da24947725b00081df18ec1038281d2422629e8f88e4c1c9b96228f642225ae89039c9a7cdc396d43506cd5f66e4a2f88ba24bb0603bd65726e7b4e692502520be9bc2a05258aa0212a11584821884c096b322058505f3aa0720c28c7220ced199f8fd5001645ee941c13a79cbda0890ab088457cf20403cabcc051da3336608d1ec2698467212851a5230f8b3d2822f02b2cd4030a7b432ad1b03698243279e06b88eb58603302b86e13d798e9010e62d220d08aa8f682c4e4ddbc880f180c5d0974aa3353349890250b4ec0fa31181dc6f2da83bbcedac2c279aaf38060912521037f6a1e7441004cc580240c908f141918eb28422621d71cf6227107c62a9c321d838e4129c5005b82895e02030856ba17ac3008d643bc73744159fd662c26d44640bfdafbf1651259e0abb2d0e80af0a394093fb0a604e691c9b758ec1870d4af10ef64208029720c4254dc9cd48286aa4c983b3f4750cc8c9203ee05b2d800af81aec09a1d5034150c5e6f125d0448af55c4a79c953c2332281683c7da73cc8c8603dc011d81bd63c25f68a0229f477b11a40aa7c80f64802a26dc441a8e45dce3b00759681513f5597b8e29c05bc529690b6f3283377e2d132e22d3cd431d13dd00f75e8f6d38e29e749662d0b2ce1b58637ac41f1e44259c05b78d0a13d082235d2c3d2c82e348a51bf1ced164a211e0addff0dcd7dbfb5104754cb9a64493010291226c2203f5a95fb57bd565e1115ff564b2c6ebb158285834086fb50c2c238a2761559785b89d0ac64a273e2f055d959840f2922fbd1edbf2b41013536460193cd3efda0c9173c00f0cb4c7c05e998c25030930980783d71a2ef9abe46558402149b1d06fc3542f60683069f976230bdd3213f04f06c6aedef0f937636551685d16ddf565500b0d6b6cc3601bc4333803384fd51bb3d619ba785af47bdbc574f8f9e804fd4240c9dfc888b09efd0e23c28bce47779979adfe202382f61ddd65b8ea9f46849f4684bf8511e10566fd106f99f9d65bb6fc2d6f195ac9ffdd8d08f3413fbbd717dbd9fd687dafadf33bbba7ccee47c5315a8256abf85ee4772b51c7d3be124f7d386f65665b413bf7feceeec93e671eb6f8917fc0dfa77173fabd55a0d7d632d6c21d3f331a9c19083a0fdaeeec5e4fd1299d574d7edf258f93220e942cbe8fd7f34d6f15db2f3d4ac767c2796cc461713f6ce249af986b8ba7f9fabae4fdde2eba5f7ee601f9b2326f2b5a5bc1ed586d50a0a275aa36f83682267ab3cef9a6b77fd84cea79fdf7f0aebd07035f79a6716e4ce1b9f3b58a8b2f0c1b73ad3263adb76ff789860e81676f1d665353491a25f3c6862aab12aff6a02460758c9ae88c46a9a84f513d30cfd79e776e48c1ca1db96f0aea182e4dd24056e86c0466663b154603da988950890633e27632cb35d141f11094abd2a317292200c53149e55b1c882902d6708ce0c5ea15069759f49839e9816211ac3499fd8e6f1731318a30b3380a9ab6c5a5c2c8144f2a76fa99d7499e511e7d3d9af73d2fe6b8d4b10202ee97e39b0864b5df042bbc8920d5441e561c15628e6fbc90154ed3c20dba8a45ed79508e6f6ac1ec0bcadf6f0f7c1d2368297f337f409d42d4d6ec45a5529a28bfc34376f6961e47974a1c56e92d3acf26666834215697787597b27a407b976fee11c786586116946710f63d4a3411a0626de05b3f9ab435d4bcbc431e1010ec617fafd7f46aaf69fd07f7dac2abd3b47f417154b02a98ac30a87a34d244e0345df6012a8a3452c4b84418f6304311951999d980999a0460feddf6164e5459e92f34448e15b14ce694efc2a747bf013effe6de4710c21f16d9e337aa0e6fbb1f3d906a4fff41ca83fe1d3d90b8ea9fcac34fe5e1af571edee2d60ff1412a6f7d90a3dff241cae08b7f63f5613e58ef67da04faffc92f4f68835a5e1738ff9f04c6d0ffeb3ecef0abbec61fe8cfecf6898911f174f4345ff79ea2fa2b091df5f9b3f8b73dab851999a820e1a54b5a38bb27e933ff4a6248bb7635d1c2b4c5b9cbd9cd701de74ac6a408072a2ca823d0e7cbe29c0d6aa678fe8abad29d139d0fd6a51bac1076df13997e53dcc7e23961299a48e5b2d0a92202a71279046a804cd80cb8ca1bd22664f9922ee4285662923c6fc2461649f2f71e160e89b463f162ba6a44c0b1b010be6c0ec5c5080bcdc9c22c98dc6708eab74538892293b6fc3699ca574ebec255256de42fc6c804e486971e161ac322e9151604912f2a3465a2545ac9a0bd04fd1eedfa5f8e9567d1ad9fa33f35202687b5666fce068b6e71ba2a45beaa5d4ca85be9b2e020db8b260295c9f030396b658a266c9f976882ae748fca204711447537c6a3589c0e0b8c722c0ec6ba4299b5471353e4be2c289f4735ae316f0b8c521fee08d720b0503deebe4b322d45e3e8b2507d527199f8daa9373a88ed1ebed8e5d5d8977081fe498f8672ef1d1cd04413812cecce83c8c0b135064afe364cf5b769807e776e72ea18bc890a511b8a4c68c7f154d8580403f608ebd6d1cf13b4eb46953251d05fd8240526c3527cf9402d1a5f179435a2c6170868b258dfabfeed4bf35e3da32dbc0f7001fb7bb93e59a814fdcd5a9b74a98826c2e2d362fc7a6cb217a02661a18dd5e979586cc4d13171707cbebe57fddbfdbc7ac6ab33f8e2f9cd98a334f8a24d2c40e5686ff136c182a5e887cfdfc2bd2cf48c09de1a1f9fc32fdf8b007dcb950cb6c59772aacc29bff83c0cbac52451d615112981b6b879a2f300e1c87429c1224bb2588faf881ce80df0e8b294be568077581f29f1252b0d3371bf0d4f034ada24d4e8084318b42b5f44dac2ecebb9992cbed3249584554c564f0399445bf3aee0be2c38d660d1bf3cac3926e1faa92c2e04b0c514796e441639cb8c5a1c71acc4a2bf6d61e30eefe0b7d77b926ba54ce539ab71dfafcfeba43e77c5e7cb77e390324bf28df1504d36e596695d82e2ea7fbdbabdc992e76db1fdfcada96deff43f7aeb0ce34725b719dfd15b87abfea970ff54b8ff7a85fb1de4fa8b1c76b9f505871d2bff9d35ee60bace934daf996bb1f2d369f7ad4e3bffa5d32e089bffed4ebbdf8283af3cb7e22fb477aef2faf7a4c6bdb2c26c26ab9716981548a11aa761e505618ae57765b9fd3635df3179b352b06c34a6ba8595082285076dc980005fcf61701acaf29d58922f34bc2051f015cb81a3e2d86025cb9152bf110196124c65246068e0b3c7afe6960e972eb5eaf7a5606d16753c9dec5feeb37d550096fee1aff7d9bed6dd3778e3d4e8c00c1c55e4586ef1f8ba758ff28a677026589e50f5e84a1736a9da5747691e4d9b3767f03fdac7b0584cc3d74ed6f3336b5fe781fbc0d2ac5ec0754e9ddac308b1d55e60c905bfeaee4a96055cb551e4be81fbc0b3772a7c3d1df595afb499b20c55a4b456946f76eabe72229bf1b42ae67af2627f9d3350e42996a279b1bf97f7f0c536d076f1751d6da4dcf99c676dff27d2eff6c5c33308dbdf2890bfed7e92c7af7ed01bc30df37bcae357bffdc2f09ff2f84f79fc07cae36f71eb8738c0aab7e278ffb71c6015fefb3716c76753f1399a8a7cae4ff68b7e2f9bebcb36507af2191d87f46752de171c56f54b8755f47774583d456a6f1969e2b0989acabd363c3cf4db84cbc9752d6e2ce32bfb545ec4ca352bedf7c4cabda8cc88559b8fffa701f5e55b1ef3cee86851218da4a618e35b4e9ad6f88f955ad9cbf105cfc3d638da8ecfb18a746b1c5da9720cbee908bfb79fcffbc378f5f5bafc067ec33786a7b20a7c5860d24666b4e322dda57e1abc5a8fb0f1ad3625be69128dbea5c264d58b528cc99bfdcbca0f69d1bed5ce906f9c5f35dddae49be0797b36580d426ddfb6860e0ed1263dc90afef8bcae4ff5762ea77b4ee5822a42a3e33a5ecda1bb79289d3863f9b9add8dacd55885ac636be9d47ee05f6057ddab7649c9d6bb2976f18422758753a4b7c1b63755a2b3e5b567c0d649ff6cd8a4637db9b31b9d3cd5df3f1db670758f5b17d83e4181d0aeddb2643743eb46fcf38decedfb1628627799621ff9194e7e9ff7a917d33cb1eff9914c557cce65daf536a4befea0709e797df33b50556fd5338ff299cffb5c2f9119d4ef2f86d665d019d8a363dc3bd174f0f1b90bfb7f0bd8e0793da9d82dc5cdc7ef6b7b7d1a6b77a18cbfef369bf8eb5f5decb48e9954f3d3bddeee3c1c470a7e2307f1c2d6720cf76736bbd02e55a1b69ecebf12a075964d05717836b6c6b65fa4b0632c08d6578e5366537a3f5c38dbf8ba6d553ac19976c20d6f3c7d13ac9e5dadccd68fd60abd96260a40fd07f303c241b68dfa69c16b7ccb6f2c5fdb0c175b4a696f89ee1f3e24d6fbfb0d56676ffb4f6325289c7ee99d6321e8c9ee69be4925172653f2ab77666aee2fb74173d8ef6de263e44faa4613738ff61713fc2eaa45e66a16cfaf25c86ca3c7f5a46fae869b109db35f6d405ea03e1251ba099f9cd33dce93a071ed1ee691969bbc764d353e71b7f379baacb580b2fd90d5638ddbb59af590cfaca6cca0fb3a9fa8815df367d757e037dc5619e9940d39fbc77e64a06bd66763f7a9abf3a5b665b593415cfb13e043972e5de0fd7c960b25cd06d3adf5cef92cda48ca77de5dd39b5f5651c6c5341c3b56c8f8bb9d657bccc2ae269dc8ee9f4b56dca9bb87c9077b58bee878fb3a9b14b36ebc7d98d7fc9e8a46b6b2bd19dfabfbaffdd62303116b6757eb77a3cede689ca161ef0aedce9bbcf2fa3e90875292f235a7293a63c18766d4a7cbf54dc69bf984d177b2fb3f2b883a5b3bb4bf449b618546bf71ee1b6bd3f71980f7ab59791dc0b56667b2687f9e3e9acbae79ceda989efad65ab1bfec63ce770563d25fa979e377a4a74ab88ee57976cb0de6375d9b19acd07bd7cd6e0fe3673cd54242d082f1975eae42695383b583780278b9b75016b8db4751d69d5fa7dfcacd6f1a3ffe24ce2fb613dd7d90e684d8b33f95cab0e80a34c0975e1f0c67f7f0d4ab78637f739300fc9465dce8f7093eecee8477da21fe7b83c2a1f6ca05b701eea32d92c9ee64027d07d672d17f7a3c37bf8dee2e2ce9d8a4dbbfe97b8315def409ff5320b031edccc3824fa68b918ac73575befe2ba97c799fa1469bdbdfb28b4b85e7de119d521d2fac51f7c8e9a68937abee9efe2f1b73e0f74f9a51a1df9413f9f69a8abeee3136d54b91dbed7fe349ff61f012616f7c3e2d636f6ae2e94e87ef414d5bda7f93439c4da5a99dd4cb2f679fb448f1f6f83b7b82be994b2eb72bbfee0fe1f67f7a3229ab25774ef153deeee62ac66b3fb51b68067dcfb7f90d60e9f1683a11a69bbf5c2fee63b7e9a6f76eb78b0deffc17d9e8252bf19aed4a7481f1e12adb7e968e4efbdcbf9990befed7dfee77f7e779d61f7b0795acf760f5fd1164edd3a75414ada525dd054e3cab83654437dad35a8ff50d47f686aa0a9bf18fa2fcad53faf8c2be54a31fea1982fb50629f27d4969b83a2a0d5aa734a897d72075ff6ea5a1d312be5d69b854afb55e27df5f29f2bf374ac3a5aa6ad7ba7e7dd404daddbea3347cb1ebff446978ad2d7cab5c7bfed397548a2f3cb75535feebe29f17ffefa86bc88b7da96accf7d97af11f8cfec7262b3638e84cf7f8af8b8394d58b7fa65b98e8a71af20d6ac809418f0a88dcfc9f442e3ecd9e9e9eb787d9fa9fcbdd66fd65e2f1b2ebd1dea0ea3faa94c6f577b437e0aa7fda1b7eda1bfe6a447f858127bbc3835ea48bc164970c306126659be53a9a8ed649666e1703b56019d9b31b15e4b5eb78b0d6d84014d1bd68eec643653698805c5b4653733d6fc3afee0669fd4e9f6d3ceda31ec772f326d9f4f70bdbb2224dac139d5fbb5a5adfa5db5b6693ebd90d4b23ad5a263aefb1b77a97f477d06a35bb8fcefc612fd6f59ede97dd3deeae986dd2f960bd9e3ffae9e77b255d683d753ef0419f7a8ec796326fb6d7ae367a5a1c13bc2a750ebad1a0df248d929de975677e17ebeaa1b6ea686a3ec663b24a3471480661eae54aeaae453ed7ad75525bbdcffef6945834587d80731fdec87638df3bbb57cccede2e02edf1d45ce1d9b7fb74f54921f75f1e60cfed596c93ecd51aefc53a19f4ebe87e744832f6c1fefa9975f7844954eefdf0b0380f53a315fece06ea7a31581e64025daf59bc09b95bef939b89c26e4666823ec0e5533c18ade7194b51070a30e40bfdbdd1b452e13becd35df5d5c560398eeffbc3916df53e8fd9e195cff069fe68a90bdb521eeeadf5dd78b89d4d47ab786a646c602ee7537856bf4c6e8687c5a65f9ccf1fdd5b65b2e969af13b5ee06437571333accb3e39ccd623adccdeefdec352c81dcce6e46db78aaaea5bea2007ce591366992f7c3f99a64d0dfbf37cf111e570b801985397d394f531e12dd5abef2215cbb5abbceb3dfefec9e4c763bfaae7bff96779b6c26bfc653a1c4d3373ee66c713f52e69a912e6ed625f6d527d97cba56d86b5cc1fbb4ba3342dd573e6bbd8aefd97bfed56bbca777e751d126c572934653338fa7e5b5ab8b329abe0cb5bbb37bddfaceeea13c48fff379726987e3c7cfb7c7bb4e9f80ee28f1542da59f9864f1a677580c26b5bb592af3699931db003a77fbe7e9819f160f872c79f806b1eebce3b1c441cff8824cf7cddae05764ba4bb3a7e8df31e30257fdfd65babf833af853a6fb5f25d39de3d45f2ad105f1fd508bef593a9296e54ea2c30894bbb538cca713653658efe3dada46f73c8db5de3e1e5b7ab2e9ede3ba4c1783e553525b65345dacd98dd8cef54911dbd67eaefb69a22d0f0bcd28d88d55c4d37e138f31d268cd90c3ae9b449facd9a0b767b45ab241fbbe3c8cfeb21a2fbb3e593c6534d659d45178387fff0d50edb3b66b57733e00e54da8f1f7a4baff2af649f25014df4c7d5f0ef8f154f87bbed4ed2715fe4985ff4e54f8256efda4c6ff46d4f8e1f979fbfc0d44f8acdfd1ac79f9a3de32d4fb8e56cdcb9f2f19fa497aff0ea4f70ca3fe528a7bf550933d50dbc9cdba8cc756ef73501e66b41d7f433e484bc8a44e566a13d7b2fd6f48c93e6fb7bb876f2165e71d4f72e48f2165e67795227f52b29f94ec6f40c9ce11ea44cade330462f06780a403c9d95dbafd13033d3e2d1f668b6f2209e71d3b927069683f88267cc79728e2a27f12859f44e12f270ae7287596b969f79d4011e17462f5d90065830f765e75c4003d82209b9c8a6fa8ebc5c049236db904cd6a41956c713fdab8419abdee33bb192989adae93fbc9d32257b2a9ad4efcb14ae79a5a62e4d9a65aa307453395786a2a77e3e17014a8eb78b058bb03b14d36bd5d1c28153b7950dba2222023594f892e54d04c3fdf2bef94fa946be8bc49982daa5b87e4113d7287f9e3683d7ff47becb1cd429c8ed68bcd3a3fbe13db2ed3d9d47c5a0cd6cbb9ad3691d62f602d6e4ecef689599f69578211e4b22e928fd9c35d345defdd8d68921ad798b19be17a4e952cd147e67c30696683c9facc33768de54b6b6b9b6c269bbbf1106538291f92e3983f305f1d4fcb1edb60445f76d4a21f77579d1792d9c34d741fb79186d63e6ee7ef98c46c3059c6d4b895f2ebf010dfac4e5ef5c7a327137e3f3b9bd1d3e2ccabb5182cd7f369b89b6ffa5ab4e9d7e7998e77084fafe733978bcd7099ac7b98cd39af553dd9f44b9675e7c30eafdf433e9baa8fefc8d6fbe83ecea2fbe167f94ef2eb8cdd883a6ae47dc9b9d193f8c27b16bdf59c1db35f67f7d1eba8028461b8efd6cbf767cad5eb6d9a3d7e030f3debd7b15053ff4155c0cdeff80a215cf44f16fa9385fee52cf40ca3fe520b812c3b9559cabcb65e73c21444792e29e3f551d46f6380924d7f1f6b613a1c701953b41287f9c65c47fae8903c72b4089ca8f2fb141ce30ac66a3dd793d77112cb17dcc51ee5ee7a320e649c46ba18f4eb589b0097ff9c689322cedec4ba5c478f136531e8bd1bebf2326646c5389c199ef3ef8c996973afdec917b87aa8c92aaacd2eb6e4c39dddc379fe60dc46379f170197957159efcef76e0c87fc7d79d6f7653cd9cdee8a0d26fbd86ee3c14e9cead8cf965c7e3dbfb7b0fe0070fab9d653e27bb69fdd8c76739ba56e86e3ff4cb56fbb9d7f03bf3af63ad980cc1fc4adbee73b2b60d13fb9d54f6ef59773ab233efda5bc8ab7bc2a584c451edf8b267e9c14e73c2aa1a63f1f4c968916a691d62b1fc6a0f5ac1bd0d2e24158b01ba1cfb06e0ef23b73ae4f6a36e897c9a07a8ab4be329b02bfe8031d2ca37ba1c463eb6961a3e654c7c1f6dad549bbd65731878f3276f237631ba76dff373188b82ea981d9d71fecfca421bc3ddff830d7df3bdf3f339fead3d3ac28caedf3e21b88eecbaea70409ed4b611cdf93f47ecfeac5b8ea9fb4f727edfdcb69ef4bb4fa2304185d784f7146f6fea69fcf14696a6a05f4df22ce9838ea4e87cb483b2b4686a63869a27275f1fc306eebd666ecc330e31aa7854c166d8e668fa300f92271e09b9902169e4a6560480f5fc836d70510522c9430d78c5641307df87d32197298ffccccf7d2c4723409e1bcbb64d3d35f9a8fbea8a814d174785cdb694cb58c369382c15a73255bdc8b75b259af586e9e92ac83f2301ff4b3785abe0cac96c47e284d4e66b9b8f741b9c966534ccc9575866f8668f6c49ab4ed9b66da333f9a2465913223fb030ce9081b135c3706b6cb24944dbf584cc3ee7c27a78471a984c9fbac1af95d26c5c79b5ebeb8e72f9244dce69dc0f1dfaf147e397960dadec12b335e7be629cc295fe6279a85d6ab639b7d48e0b9fae2906cfc6b5793e3df5390ecf10b86bf8c366b4c10bf1bb39a65561ddff7d5d9fd701ddbc7373875f39e12051ead65a20b7dae0f57ec94d871be9edf84d1162e325900a597cf35b59c0f260adebb166fceef703c35352cb060ffee3b395304d71b669bc3f963bc9c0fd6e7893e477c927577ab43acadf7ee7452279b5efd368141fe8e05625ee1ccecb4ceb34204d672bef1d3b3f33b4f2c394b24c1fdaea12fd0b0ce447d54f85fde51737c49659b68e14ee5bad91f4db0b9193ecda7fdfa61cc3eb478f7221906e9d62911e66fa2402f1f365fcd8e977d7e5f6afc37cb6f5f4d8d374fc56ef5bf6b6afcdf417cfb991affef29104aecfc73f3e2f11967abf922bd385ff45f44322efffed5347e928c9f24e32f2519673d7f28f1f8f47976c0fade4f8f5f29b57fdef16436bafe5166a3abef6936bafe6936fa6936fafba0fc0b243cd98eb289e58d4ae576906e0921448cc3a513a684101bbe92d4261121c46a1e1e9f15f861703fea4f6f46c15c8b9585d6af63dfb2e2412f8bc7d6108b814d86eb683a329364bdbe8391ce703872fae18378e613556513c7091fd7faced23f6c7fb5c8bade8ef84d1304f769d0a773f679d5df7e1ef9a9d891dc0a6f87d785b0d38cfbfe43b6ec156cd87fd059ee8feb653f12bd70ce79df7bbcb72ec34ffc505b3bf6d913bdcba689b5c5ede52e5c0c6c43bfd93d9a4f4df318dc7df61ef8d8497eb5a2faa1b9f406eb30a4d468c8cebff53e2f1f3f94e627930deff6976c6d25a36defd7c17a9d2d7c46a745e6efb5a24e2dff51b9143d6b7abd787a58fa8f4fd9e2bea2bd72da1f3cc5257f187da8c82c4866f5e3e743ff79bdd68a5f9fc84d7073f581191fa6eaa79bc7012f6e0f8d9e5cf9e252edef277e4e1c8b6c9fd2e7da7c9e9b3bc7d3d387e16150f1194b85ba5f3dedcbb1625e7f50f47d31b0b60b47e187eac3fda78a8d76db7daccca6f9874aec864a33df3d0dc460341ede66faea2e8ff4cb5f8be771b4eedf4fc6d1465f69b7c1a1978779b9b7346b339b3f856e3cd487e2797a183d7d6257e6870f97e661d18c9e9a2be326bcec7d6ebc7469b3ff9fbdb7eb8d1b57ba467fd006cee83333be949bb223a78b1ab9a9d8f25d2c67e496ecc4334e471281f3df0fd62ab693c92433cf03ec77e3c5c1be0890444d8a228b556bd507f99c7ffef5f6eeb0af4eb6af92dfcf9664baaeecd56eca1f1f9fc78bddd69eeca2f4e6cd55fedb1fb9fdd5b9777fbc29fba7defdebc39b5ffaf3f6f5fef7a787f279bb8f2f2edbd3719bb5a7e9c9f4f36f67f2b6b849ebfb9fa3e8d7386acfdebfdb6676f3719c9af5e36f9bd3f6f4fefef4cd532cc92fcd9331fbdfceebed6fe6f6eddbb8dee4dde7c7daff7cf9eaf0fc66b91c7faa7f3ddbec4f8b77edb27b2fcbfbc37dfbeabc7977597ffae5ed7c75fd31e9f2fafc3149d70f37671fdf9d67db4d74963cddc7afceabdb7e38bb785fa49751f5aa74874fd1d5e7ae7b78ed6e4eeffff8354e64983655fffb6375f74bb7b3c5e5a7f8c447bb8b93ecfee97077f7a9bf7dfef4fe7a333d17c37239579b7e7f77d99dfcd4bf7a92eab9be2bcaeb4ff7bfbeffd71fbbeeecf6297efaf5f6e3abb7bb7359f3e1f787f3c3dbcb343b95fa7e2fedab37e7c5a75f7ec90bd3ccaf3fed0ec5f9fb77bf46dbabf9719bf5affbb4aa64d3acbbfb870fe5f0d349e58ae197fbed9b39ba1ffacdc7b6728f85fd633e199be7c28e73993fbdb95dedab4f6f1f5e3f9ddddf54bf0fa7fd7273f5ebe9b0e94c66da5b31cf3f6d4f3eb89dbc6dde1eaa93d7e6f5878bf5edf398ecdfaf4f3b7f5fefda5f1eb33f2e0f26d9152e2fca5f4eb79755bd194d619adbf3e9d5fdfaeadc449fa42cf6cd66779198b39d39b932a73f0d715dbfee3f3ecfd5e9fbf9d373fae1531e75ef258106286f764f4df4f6d664e7679fdf3e3f65d37a7a915c7f9e36c3b2f70fc5dbfaf7a2df6f2eeaf48fe4ea8f8f770f87f6dd749f65dd589eafc36f3fbd6d8be6f5e5bfdef6ee7d767ffad37af9c66ccf1edf5cffbc76e6d3ebe6837dca1e7ffde3f7c737cd1fbfddbe7ac85f7f301ffbb8d97c98b26d19d7b23d9fdedd5ffdfef0747f95df8cfb497e8de6b872d9e1f2a9bab4cfbf7587c72b7778fdc7f287ddcfbf3d45fd701a99db8bf76edafdfce1f95fe6a7ecd3c5afeb4d55b71fefd69fcfaa571f7f7fff785d146feaf24d9fde6e7f393bdc5c440f5b338f6f8bdbd6cfbffdfee6391e2e7f1ab6f34fefeac39b3f6e6e9f0fefa69bfbcbb3e1f390fff447fe7a498c91b9fdd0fcfeaa4e4e7f4fbbdf1e7f76d7ddbbc7f86c7cd56fe7e66d3a9cb8f2f1611997db77bf3ccc1f2e1e1fcbe6e2e036f3d3dba74fbb87c8dea687ac3d94cd43fee1ec8dbff8ede7fb9fcb667c55fcab301fecf07a7bf2f4d9bddeaeddabb3b79f5f47bf9eed7f79787fb8f9d86d5ffdebf7c3cde79fcef2df2e7fbbee4f7edab8a288e6e2f372d19efc9e0e3400bbf66d7df926df7455f57fca17f5d54f1f3e0e1ffff942a6975fbd40c45fd2e83f74f65afeef3c7b4d87fd03909845ff4589ff4589ff6994f8b2b7fe13f730b57fb987c9ba1fddc3d42efcf37fff3d4cb16cb2b5da0cb17545f4efbc87e9ebdaf39075fe9d0a85cb873e917f35e9c543777df970b3394ddf5d5f7efc32beec976da2bff9eaaea62ff72dfde81accf3b3e8dd265abeb973e420be88798520af482c0eb5a9b2daf48b35dd52992ae21595a64fac6f06d964998c43667d19d9b11c646c0ed69591f51daf85b4bb6cb54e22f165c4eb17ffd477196fc72a16df7871cddfdd69f2a3b1fbbfde9792adb59922f19db7aee5f58fe27b2fa3ccbcb07dacb2da35de8e125bbd3ad25b2fabf822e5dd3663b708c6e4ca41f45acb445cb55a572e7f778de55fee73f9c03b603ed95d35f4e7274fb71f2efdafbb6ade8ec322a64dac9748d662d98e55627d9b8829639d8fc1d7a68930b6bf79b65adea35326e2fa54d7a89cadeb52cc6565aa64cb67dd627dfffd79353fbc93eb2ff763ddaeffc16b73c3fd58ff740dedd77753d9fd3fdcbdf59a6b31f0fa5987352e66ebca58780f5571105764b5eb53bb3f35e206fc7bb5bed74bf4779027896a57e67aed67e9c54fb335a217fdbb36b2a65b79ffd026f362baac76b2ea7d53456cc72112330c8d875e6b3271cd6c7dc3fb886ad7e6329659bde31d53de3ac9c548aa77184d6bed208b122ee06f131987c5aef3f1cacfb976ec77dd8e655c9b2eae790fd370b06e58c515b9ec7927d222631fcbd8675b53a6dbb19fb55fbd1ab576ad17537abb9f17bb6699987e15dfe4552990fdb4c6bc8e4daa6df1dd03be6910d71f6a57a4d65599ddccbcfe557c9bd766c8741ffd688eabb0ce2a17f2e7fb95ce2ea7b7e797e14ad5eefaf2e3f7f2a98f57095fa6179fefae0beeb170779a866577174176983af3d1ae592263978aeb9e2bbdfbc9d766f0f66fee31fbf53cbeef93e7100ae7df3fc9fecb58f5aebcf69fee418bfba41d82ad79754cada9f47ea84fe1ea58fce687d7266f13befb1faf556e92e5a9df447ad56ed2fff0f7aa374fb1cfadb8f660dd948a9f125967e8a6b536432aae4984778cb5bce7cbba2a91fd0cf95d6a57a6b5abc27d64cd2cae5dadaf9e659765d64f99f82ae33d5f6b96d8b14cc5b7d9d6609ff41965c9358333a5df8e5d6c5de72de4639f2db56b63eb875cdfdb1cb02fac1912d9cdd17614f415c9580d1c932bbcb82196dd9c6cc76615d3a7b56b786f9a8c6d2e7e8a653f675be8fcb19cc5b72bef11dbf15e31e8fbe77a93c53564771c78f531ef6a1ba7047b656b86436dbad49a2ab77ee2bd64e231be2ea97773be1d8bc4fa2aaa5d1fa35f59b35cdc148b1bf46e343744bc62d8f583383958d3cdd4196c5b65e287a8360deccdba1da74caf5c6e9f698b4c9909f6cdee54c455b0bdabf5532a6c2bd0e9919829adca79917d96882f1231a2eff57d02db6737da56c626b2e3b4e29935b0bb3dbe7968bcde5f589b2a113fe0bd919836b3becd796d30f48bef227165aa6dab4ced10ef933b5857e57c2fc7d42ce2db59c62ee25cf01ebc2e91b1f0e1bd59edaa84d8c01507eb1a5f3b89ec86df13c116d7a6f27add32bea599c5f418d36abd2cd697b35d4f4dbdcb62eba75c5c1fdb156d211ffd8c31ea15db452aa65b64cff549c50b6cf85a99e160c76e1627b11dbb67eaa951323bf651bd3b35f5265bc59509d6a3de40667aac85b76e5a2bd31f2893ae8b82cc2462dad9fa22b56b916e47c9adeb563b56781689eb238bf7aca7c6f27af26aae819356f45badb51b803b92ca7407cb7bf56415c37e67192517d7ce7653245bfe7f85b5cab7a6876d4f6b5e5b8db56b0fb583cc944b6da667ea3657c4980bbd3bb19f6bd3e676ecd8d69a22b563cfeba1ed2e8bec481988eacd9c6ec76ab61efabc49aa5280c516eba645cc90a0ad9812b8ced78e6d6771d3624d19d7dc77d0154564c762ad4c73a829c3d897ddb3dd6789f65b79ccb1dd64b18c1271ee56b495c4ba21b1be88d11698c59a32b26e7826aef15d2a63f3f7cf4a815e88c4378b35d0311d740cf725ef5c1c9bdc9a66c5bed5fb178754c66aa94d3bd80de47b58800beb0dc68375eb52ab762f82edb5be5b55bf4c8be595ec9007e8c329afb9bf07ccfd22bec3732f2be65ea00b1331d3c2f9f31df425f023d78db2cfb511dea558bb2e1337e4768fb6c0857d6e4d97e99a63ec13f001f0cd823d6fc732b794d17216d7cfd6b7d87389ee4199adab56e82ef16d5abb8ed7cddb3db04293d79045b6ed56e827e85bc8b738496bd378194bc861667d354317c89e321c73cdfdf4cc2bd747496ad3477603d99f7c6dbaa8369204dd335b3f793132d49b0c7b1cfc2ce88836e37a8fcd5295926dc721e2de1df52ec9da1499755d625d394007920f00b3739f4fb9f5c02c4552f1b7c04fed22bc0b13b8a25bad39da2bf08b76b1be811e5888c7dc308b2f17d52f4306db619db0ad356dac57dd970bed08d6712cf59983ae6d6321262c0f761cb036d0c3e837aecd308beb726d3ba5d6532fe11974585abb3651fd5ec5e8ab768df63b0af58bec5547dbb1c13e4aac8e177a72e53d94aadf336031ecf72dc7aff81eba546d28f065995ad385beb1cf87a4de60cc72b0c060be5ac398a1e316e841b5dddcd7496daad0b6896bd7e7f5ae582cc6e17ac845aeef6d53ebc5d78e7782c6dbb18b2c7547686b9ac5bac1b3ed3e8bad01f61bbcb62d61ef66311331a3f8d24327e9da0e29f4891dab84f619bacc0f5e4c1b695bc1de425f016ff6d87b6b585b7c7762158bc0d67b3b4e412e4ac88517d32f72c4f4beccec5810ab02135b2f29e62ab405aecda08bb5edb0d6ae005f04ae5d81ada10fb65ceb32e7fe32e1ee5662ef2622a647dbb107ff8c3117d4ebd0e963bb685bc814759f7e0fec952962bbe398220bfb315611d65eb178198beb435be833d8b81e6b0f1c9f61dec4f7cf6a930b2f63b5da157245bb0559f6da1663a8203b1833da2ec06de1de56e825d8f0843868850ee856eb863cbc37aecd94597f1c33744b0bfba16386def253761cb38e63388e3995b187ee0c631e961a98ca4dfa5e33404fe5b2628d30e63e15572edc0b3be89e22b366c2fa62cce837850dd731cb2a6311853127b52b16de03cc676d2c66000ed27e473c9b74efeea077272f6e8ab4df761153a636c80df601f5f09efdc2a62fc03afa3d1db043629d84efc19cf6c072dad603d30e4bbdd135107220596a7d6f26a65aea5d78e63a5fbbca5367e0d958c1bec6611e17eb9ad4fa32bc7758edd8e6d6b5e1bd65047c2adcbb25fd33e2a0dff57b2963c0afc7f77ae8b66ad5efad22fa6ec6b0f67ec09e4a45bf77a91dbea70cb23e80632e7a5f32df0b5c08990cef85ee69fc719ec5f4b135ad0fb291057c039c0b3b8af182136a5bf2c12ed26743226e9aedb15f07aedbe4cac7bb83051e03365ca91367e28811f6006d3bf0821836959817ef37fdc2f5db67e4bdd6b589de8b5c02a7663276f81ed8cd8cbeaa3dfb0d7e9feae5999836a929abe02f55846fd16fed2063defa21a13ed9679c27315d1853935b2f516dfad016f84dc233d8ae6e563bc3675efc713c2d6460b5dfb62b7927725443578c531ebe65b59ca73eb495fc4b9fdd0c39b6b431e04425fd0194877db68a2fc031a2c089bc8c7d040ca9fdb6a9350570cd1078d80abe6275eec1f1c01bd6c05d802ba04b9e616fc49489f8ce4bb89f5afc80bd9e737ed76cae8d0037057bdbc7dc1f63a56d5d195b5702ff523f8b69573b16e956ed5c2e7866a84766da0d0f0cdc85f70ede9a3e539b0a5b562dc061dc772b781df6c3401d251b622962fed0f72a63935803db361d2c7d3b65543b95a7daf5abb82a937d91539fb90e3aec78cf76a4581acf8051cb1ce3d067d06d05f6f5d0f801ba2e17ec8120a756395252ef80a58027cb15fa2fac01be2d173eabc005c025237d26d023b905aedeab2eab5d3fd72a878b7e3bf17a5e4346c7e35e9ea0e32360586b04dc7b96a3bec43bb04e3bde63be58076ed54547bb549bc25b53258af3c1e3cbf9a87b803b8169f18cf8947a780a76b407a74e0307f0b0d5bcb75bf503641d7c15781c9c037c2de533e05033c096c4959143f06d057b85f505b7908cfa6ecd80a9a3da4d73ad38c75b074c0e7e5dd1bf059eabfbb8388829804712bb2b30cfc065e025bc1bdd523790930e8dc73e1a80d58f7cd40b7d16c35c6f0ae846fc2ead4dabfe027032c8297dba6d2ac4bbc4d409e6479ca83ea33fb188656c63ab3e8a8cfb843caa3c88e9c819b1a7801f6a57cee281c90ac87d627d195bdf629e2037718d39a3fd15e243d866319228bf0336ae52e8b8ca907b67e2d17f9b293704c71c60a306d9007f80370f59ed78d7fb5a03438d9de7b85fe6b54f44f98bf222d3657687b109319fb82aaf797f7c915b33016fa7dffafd955b62ef90f30c8dfffbe77cb719802b73ac85be1b7b89bea619d8bd7692f139efb117c555863c71a6cef515e609383bdd8e4d549b2111d3659c97b1f2f4f98efdca79193147033808de9d42e6c54fa9f63d2d9c07d785399f62ac09304fbd23370307cdf187ebe99a5c7c9388e17a022bc416eb4839011eef67ccbbfa9c8051cb2c604bf55bf8c0af784f7f93502fefb2dc52f79237805f793113e62781cc0b303fec8f13c86d8ebd2dae8bb98ee4e613f0c4fac291c0f7c621c25ee33e44bfba9752dd97d3202b707d0ffe1c05cc3263cf710e4bf1dbb187bef35f70729543beb07e56717064c73693a34e01ae1a2197b03190a909f212f41130c7907ef11d4cb17cd147c0a739f03c758e9f802113c560b0ffdd42b9231f2fd2da746be04fe062be765322be553e3e4a4c6e421b042e46ff535cd3075345817ffba0eb3dec44ed049c9abe4cec5951dbb662fcf43795024c49bc057eaf36a65decd8a5d6f5e0c64b4d8c3ce5d4d92b7decb1dd17e0c59935e00825ed1ab018f1cb9efe2fd829e013fa6231a7b5614c80fe2feb264f9b4f7cdc302e21236d083874647dbb5a57c1be448a01abc49a26d8d326b68e3650db7a49c597b3acc19efa22b3c0f13bbed7d74666eb8b24d8d31c76ceea9822199b157a26f80213da262799be979c23d5f84175b0a6f0dc972bdbc6e0abe20a6042d8e5ac065e244e6d88e92df0c346fdc396dca98cc37b63ea74e5dc31b9026c14e791dfb31ee36d583b71324377eb980a4f7fe62801474d790dfb3776610d802d643ef22a3113fd7f61dd737036c857c0edabb81eba24e09669b17e88c07d957781a356997245d8b53e675fca61a07f93da0cabb61d22712df43179177de5f8a3efcdc434b91ddbf8c89be9aff5e46cd88b49ed06e2dcc00513eaf155e54de7a309fc67c8c563dff6cfea339872f08e7a17783338a8e962512c05be1d059f09741db87c24b4adf4372476ece7c07d576ba65cd74f0ef4931a49425c09780dbc328cb7c5b359c66660fc0a9c023a52df091c0d3b1dded962bd66eb758f58d3123b1cc74bfbec3ac511e06fbea11f20c476a9e35fbe1578d5143e3c4bc5d0ffaf98927bbf8a740f0cd803d02351c094e018c0f0e46b35f4a4ab600bc3f788da0b3340a6b2ed88756e9317aceb1b708045f12af53ec6f9d23774bef8e6d87746fee3862053320bb1620799cab7e0c0a6c8953bc9017a07ba3cc4b697da958b9826b405ae2d12e0978067805982bc011701cf54a1df3611d727e2cb230ea6be0b6d536b260f5cf82dd6654cd14c8b8ca27b84fbad88ac29a11356815cf8067cc98731817b03a70c32c2167729f07ad08db1f812b879d1b85d011b1e5b531ef7cf2a669869d74660a75ef18fce237d99b5da44e27cea00ae6f7ba80de4a44d194b27feacb8fe5bea0f60076062cc71156fc772117045b6a5bdc23c2d8cdb42079821b12acbc48542df920c32427fa05d931f7d00d688b7bef19c8b7de66bd702e7268ac7cad9fa2a155dbba836d0d3edba3542ec661dec743ffc7ddcee9bf8eafaddf8ea707b75e6dff968af773cdb4fddb5fd63ebaaa790e3707f773e7ce7acacf9f38dff4e7cfd9bd8bde60b69bc5eef168bf6213ecbd2d83786389c31fbeda688a0afe82bfe5fc663ede6df1c8f5dffedf1d8f47f178fed80c967711d7d1d56f3098083a3a30f80b8d850cfc38ee7904531823d8b7fa71638da55411f772bb9dbae501f05fd07f4457afa228193890f86ac06bef2475d20a91d0bc66e881fb13f5dbb063f49aafe83210f313b6f5d91058e091d3243ef916b1147cb1cfc412bf3519c30162b8c1114d1171f73af71508c1558c015c023e119f66de985f93c85fa835c19b02fec7103ce14073c023db4401f6a9ec41431672bf806c0a7ec5885386e9bd1073b16ea6f27a62d12e5dad321e0bd581c380a312d707f6e5d87be676b5af58daef4597821e76956c5f28c59037f6accd4c03e57b069b035b061a98c6d1a70524adf00b1f370a02fd0f7b9da43605ac9815395d30dc08e918c45a63e18617e526dc8c922c617805136ea83b19c1fe838b42d6781fd18fb35602c6f1db8d3f4cc3811f0efd8669417d8383744762c93ade988b780dfd52727588304dc53f673b21dcbb05e9d3fc616c4c0d6cab3dd65196c506d8a953e3970207079dfe059625d9f41f76abf8d727dd32c769d638dc90c79cdd81b73c53ce6a20607241eee13ebbaa00ffb847c748f765843cc5917e21513f039d6ebd96e301ed8e67e0d781038c5cbd8e75bf2097266d8df41fd7c4dcc383af3103ac8460c5ed878fa2d7d4d5cd63f13bf9a21b37ef08aabca9972e79a677eb311e868e69c59d878c636a698efa4ff79caac3fe244e8c3299295b90fb3f5430a6e1bf26a168dd175e817581bf8883e098d37f48cbb6dc9abdac8c22e30ffe8efdbda157ba5cf6a57796d0b9c342dc12f8c79f776c3f1ac8a3f424ec59acdfc9d6bf49dbecdad97d8fa96f3579b62b1ae58431e87e611fa2a3dfa49d1af8c25e7c832b622a9dda98f55e3e9c71c107007c843e9432e1cf84c2623d754d705dc62c75c8e0858ace63ec69a8ab706df5a057928523115312fe4c1829bfa6ac53e66ec4bfdb3e996f1de82b1d2101783ac246264e133c811f83dfd45c4ecc0b533fd273b62c40cfc1e72462c0a8cebfb046d19e733cd6a9953417c05b9049f8cc9031db8ebc03c2cd9531f7af0308d73b78c57613fd16fed2b70bd2cec532f0e72d9a8def1d5d1f70b799d2d731fca38e89daf74567f20df18cb58f33ca02b81f5db98d8c489d7d84015f238baac76ed2cf4f5809f63bf313e3813ff8e435c1be6452c8c499a6109ba1d762006eed158f5e0ad9b80c5d4661801af49b6ccdb80bc623cd5e018fb2d637231f58de5b041b5e960a704ba5e4c431b47dd6db88798a3eac88ff19e3ed3bc932a61de9de9e8f3858e81ec48b01958d7da95b1a55f173a7262ec26c433a1fff15e70f94c1c70701905df6362bd2ce24bfa7cc1c7649448e3a4e5c1d22fd5247607ae4fbffa6a5db1bcf8dd353763b06b96d7a604770ab6baa17f4773a718078d6bd3e15d81c774393890fa1e1ae0cb55826fdc3ad8a089392735f6a1a96271c76743467fc9ca9c9384f34b2ccafcacd4ba02f23234be3b88ef32c6c3cd0fdaba0e9cf4385eac61248eb90bde8e535283271eb9936bc0a957cd5df8b62d640efbb5d2b61efba44dedd197efdb18b6b4624e470fdb0d5da31c053a13f2b13f156d5bd18f51ef020fa1ec37e0ea786f2a23b97a88a70c33fd1c3f6a8b79539f3b790fedd62ee0a15196da55ab8ea9c378bdfac0b1af6153a13b759e3437e38537613cb3f86970da360657123f84efe98111184fd4791c168bbd1f789535d56247ea08fd1ef062d787384e9f33a6ed25cc2363d6698813a4d674e01a5ec73ccc21a61dfc60534a7eba1ebf17fb1b38876d63f5a14d610da6cc8edd728c975833a5cc07e0f736b3e6d91c63568c5101b352a6acc11e986609ef2576f4b2303fca94908b448e7ebd71a0af5e9f018731ef2f3c639c71b12be72912e6ec0c6958bbc5127f607f305fd0330fc835c127087e5ccc963a067d939f459a175131df07b82dac41e0764d16b8edcc3c17f5c3b06fe23a5386786391d6aec9a183d816d871ece610335cc8554789c33745d631ef28c4f09a5860bb77c76fea13fabf76c758a5a482f5d3f746cc751aab35bc17cf21ef7cafda9a107735534e3fd38eeb93aaff9471a785b96fd84fccf3c098e837ccac0bf16de67d14ba06ae0496c7188e39049138f056f4dbaec08ee29a68fb925b53a4d6b43ac70e73487d126248f43344a27b0ff88a7905c1df0bbbc7189c7e6bbb861cebc0399a887b5afb5d6bc6f68eb129d8d132f9c198608b61338e63faa62dfdfca97d19539b5b531dfdd7f44f05ce81be63aedf38857c8b2ab5ae8bc41dbf77800ce5f5316616fc05fa3dc0ad15647d0df6259671ca342e58e4f4119ac6ab4d6b624b9bd70f21a739864db16a835546c63e533b009b867d1c72f93c639eb06b03731e4da998497181b74e12ebbb94f9920eeb0c5cc39c3bce1bd60b7b80f12c079ea9f97802ec6c1a2f2b9f65d6b45e5ce515c74cd8cf99f862a94ae66cc68cf38f554e0c64b8f769df698789bd0b6f477283d532570e18077618b607f66b2066a67fd3f5a9381960b3c123999f46ac089c021b5dc5816b628fa6d628c617ca42b7b07e857cb2024689ec6606869b31ffd6b58bc6a92bf09854d659fd7a6eca039ec67e8960b7047b769fe5d617e86709b86ca51e35d85b15ed654d7d17f01e6cad1f66bb9b57e0118edfc812f289e71a366f844c54cc7706e795b11dd47fd8c2e6415e0ed42fe3e4f94ee64f155e9ca47c46bcd485fc0c39681e4f4f3b0c2ec338846992c0d952da5d373dcb0e7813e39b188f2736077ff3b495d09191400618db46db2965feded83c93e79b02d841b903633dd88713ecfb81b936bec8149f3297153290db3dfd5829fb3de67d0033ba011873569ffe043de745f3cc72c60fcce0b78ce19589655d0fb00e7ded31b12cdbb6e0c5a9f29963ae1164adcbd47fd6c4c024cc19d69caf45c67e96b1d5bec14f4d018e136a849ad5420ec6ee997e0cd301d366815f645b702733693d86c6bd13eb26f44fff36f67aed4aafef96c8427ff829097ebf45389e29dd326e0abd04ddd17bface193feef067d1e7c0f72d78c4a2f5296a17681b99ffd8cdd695ac15f9732dd41cf2eb0a608e5c7387feee79f19d7783e7c376321e903327c5b4e05dcf5f6a6126e21b9d972911e6214878de7aeb89ffd4efef2b1f6c1cebb4c8cbc0d3349e10c958c286c67c37748bab66e8c010535804f8de8bd7b115e0a5d84369c81f8b749f4fcfac11734da2ebd084bc44eaefa8dee89a50d78eade6183862e7193ad1eaf384b2047dabb218096ca9a922951749acc37e2d423c6a9a9937a5b2b8d60e73547abb861a0be8663384e7dd7ae46cb5ee3dcd17f5c02bf47de5b5abc09f16ddb715f3fa9957b5c19ea8723b0217f7819342073509735e999bdfc7e2871063eb52816df57cb6680c1eba5cfd3f8c1bf94af72df1bc50df6abf05e3ae9c4fda43f0b63263db3d639a49edc075a12fc85d16f5a9002342c732df88f9b0d6559a63407cd227c049aaa380e34a0f19ac8e7695f54bf24cfdca3d35ac5679257468663d649379b5b355fd1c3869896f5f892757cc43035b1fdb95b665d5dc027031d1d822639e2d6c650e8c679903487f7e22be4b35fe02992d33ea33433fcfc21a11c71832f404e460d6ba90e6604dbb020fdb710a36b8986b572d967e9e7e06cfac0de459733be89ff553a47e8821a58c1a2107b4639f937fbb4e6da587cdee72e2d4153ab7f5f4416ee847cb2d73508ac01119efcb984bb1cf807d17601fc5ec1de4961c8dfe04e6cc838b124baed64b5c1b4935c7a39aad6967c6d7583fd0c6cc97f2e4fd1ef683fe11e6b78307358938a16f95f8682ca0b3351fdfa8cf2ee4ff24d6506781ab45dbb1cbaceb67a1cf80f95fabe68b632e9a037323997fae39e1e4eec0d9c06e1be2a455589307192a22eb64b1cc3b690ed64d31d6568ef9bbae8b6b700fc625da84f1428dc92e5abb035b2d83c69cfb147c21e4f6e65a1f147216cc90d2ffbb39e6b24ad8b38dda355fc421cf55731dcdf119d60dff96909f295efd8fec17dc063290db971ccb2aabdd9068db22162399c6f1810d0660fbf02d02beee659c5e722159f3c2d87473d0bca0c2bfe4083ae69dada10683b1dc232f155faeb5e9a39a7516b25ac887ab42bfcd5c9b2915728846f3bde983e8023f6c811d57add1905975a5f66b1dc6df65c267d463bed6d8c24afcc77c8d9e6bae3e1be2a9d096b950e0ac58f395b54ea69f034fc3dccf769448e5a962cd03b8aaf6dda1afe4f8cc8ed31cf0f8aaf5920deb67f4bd5d2ee300fb1df2f87a8d6feafaace44cee85a7e5165c999ca9214f854eb2c71833f4b819565d1f70da21e446cb81359bbe4b80dda85758d783bd748ce157c47decd749cc7c491ff21d8049d53f18d1cf04fd65f83d11eb827d09bd3a349e317be836e8f2902b51786b9ad4ae0563c216bc4cf36722e833312d749bfaaba80725e451749efe25d628613d7ae8ea54d7077b547231e005c527519fe022aec83477a03d28772913bb2f66ad1d659ccbd7b4a9ccf35d992fc85a9ae2c0fc75e8520f4ccf3c06cdc9e1d8d0ae45ff689b696e669fd9f5ef9eb1de2502f7845eda12cf14d8d3336bc1b59e2ea98105778ccbc7f469fa2e0e79bd9918e6553c13bbb2e6ac588ff881357218df7e5e342682b53ee60b57e0e499f243d61879ebfa98d89bd8a258ecd8799d67210ea94db30ff5dae7efae96e7adebbed45eefedf9657b737639b5fb4ae3a627d587b7ebed661819f75da3e8cd3fd4d87e3766f9a546fc75ff7812f79b68917fa8bdd57c802a874ddd3257afcc88dbffb7b1de7f73edadfdf7d7de2eb2619f1f7ef85d7fae438fb763af6711ac73a83598587bf152ab0a6c64fa55e59f79c8494d596c619723e600ee1817860d8ee80326de6c62fa1c990f0e7c09d92a1679c19bc3aa7109c69873ebfadcfa2a0a31b6444c093b13f66db1d20fa2719585b8ca1c65b18a999bec99331fb1568b7854f3c1594307eeca7a087076e8eb2e0a394cb1d0f68ae64e01e7d22f5286bc902ab6a6a4de558e090e57652ff9d38efa9f792ed0bbe2ab5963958c43c7967bb71c02ef5d9847fbe2bba952f14312b836ec5c64ddb19eac8f18e3511c1b0113828f690e26747035db636c6504c66d12614c17bcab48ec586421961c595f2e35f3ea8783faeb4ab675c1ffc4da4cd7688cc417f4075ad6879407f6057ec4be99c7a8f54a1ab75935af34d487ba29b27e986b370d8a61aa44d7a8e79c839fd91087667cc595993dc6927dc1bd19fc243973b4bd68eda86f57618eaf683cc87429f33899438bf1b03628d4eef690d50c32a7b58d036bc595e330673b12701ee246f479acad2eb096117dbd9a9b0bae13073e3b87182173432d3889631ed57aacf7b3a6c8c454897e4f95313ff5a5de4f3c6d8e67db55a8677bf59530fe09ced2a51afbea66d65e8fc71a03ec01e63b3f33c639322f3a7da921702db9b1e62ac32e9669a8cf21d7a0bf466b4467e692b92ed40515073190e3631ded049e013c71ec1bbc96fb68cb980d704c0b3ba731307cbfab22eb19b3cfb5c6b4caace66a00d3e33b16adb31d42ce2ab0e59ff2db19ef170ffd33ac1ae7e239161c97e27efa14f22fbe39eca73e17f6db684d377df5d81795b7ace563bfd03b0b6bdc19e79a72315326639b337639763971b18e77d17ac626539ed2cf62c829b5dfb18d6a033ed582e380d32ee2dbac66ce8ac4d61490238da18373b96156dc89f1b691eab136c4e6db9cb168e58a5fad1f3827f37523d1fc5cc8b017c82bcf3c801e2527c8953b7599faabdb75cb7357581b9c43ff561a9bcd98c303accc78157849930a7dd0ac155cb55e5f98af8676d62b1613c7fcd754746d13caa32913d9f32c98a5268708358a66a2ac0bcfb4f9fa4c19c51732561887e691bb21b3665a95e3a8cfcd622f100fc9425f94d61926ba678069ab81f8d5000beb5c3077762c736b28abeb769c80dd538d6f76cc5f87aed51aea76b69eb9b48be6d441a65bc64dadca29f0fa8b2db0cc9f2e1843d37ae4293ff2189ea5e0bb08588a3ac0f7cc9d08187b16dfd1175851dfb5e068b18c8153989e671968ccb505dfc8eb171b03db2689fa4a06e014e0ac3cc41abd356da2e73440c665ada187421e2c65cd4f03cf4e705d6c9df82f79d915e42e529f37745dc9735282cdc4b7cc5663d609e4cefa2639e656b32e95f569c04d92b266835c10b61876ada43fb7de41574bc45a676d9bd397eee9a39c89ddb9cf280f73ad7c2ea98e31ecb198159b030fc0ce5659b00111f3097c99ebbab11e709663dc9fb8a3623eb0054f340d745378679f8b9fbce2586260d897e48b6d6960a356c5eb25f3c4b91f313e3365d61dcf9969997bab3e1f7047f29767cd47869e2af3a31db4be0ff1f5e1a0e7cdf4cc33d2dc06fa5c13c5f9e0a41a6b50fb0a596c6662799e7f013ed81ff3b13c6b194cef95070cf837634521ae948247db755ebfd811c9aa50e30bee425ec37c56016788343fb93c683e72b7b02d6ba006e8a134b4a5cfb23603cf07624dbd2b8fbeaf587d38faccb2fe17fb3df43b32c6b9ca9efde6984f7c5398435d53b6e55942b1d65ed01f925bdf682c6ed4fd827d79b4af9a03c63afe15fa401cf6441fe4689a6b23be36f856e8af2e629db5ead85c584333e45be6df42c684e72fa83fee6fda725e3ad682eb394ad35abb66d15c2fd667e7628a70c612783db9d431470ff631610e24bf755a6a53ade15c136f8113cdcbf94c1e7a039c5273f4da143c399cfb94f22c19371d652de6994ba689b6cc456ed467eb24604149ad69d77aa7eb6a591f16ce4bc1fef2acd15b3547648a35bf5b73ff6a33e535717e3533a7d3b469186f66815b19bb853ee8346f5ee728ab193b63bd61aeb176e83609f3a0f57e41f63196fc885ba10bec38f15c809a79574d2abe0bb232b04e1e36486bee3b9e9311c6ca731c64ecc33e05fe2b426c81b5c4abeab6f9189f81bc06f9ed52e032e5fb9de6bcf92a567e5c6a7d009eef8efc18b8e7b8a774aeed911f7be094210f79972bcfc6d29c8a683b0eb1f555ae676351f63d73655cf043b829674c78739433f0862af84624d2335b9a90ff54c08e645ff4bafa88034e4bc537e00aa1c6a7f7e25ad8b88001bb584c1b1ffd3996677d49a8cf2f34aff04b1d09fde73c3b2bc42b95330feb973c9136b663037b93d78679383ee49f44e2814f603b81f1fa45b43e32e42f94d01389680dd16ccd00bbaab5d4ac0f986260b28ab9585a53a375cb186305ac136b2cba631ebe7df1c116c06ab39e49033961dd69ca3a37e6ae838f94b9b0aea9e4791eb50b672bb98e791121164dffa6983ed1b34d1acff31698f32c19e3785eb29af5ba03cfec608c68d4b63c73c49107d3dfcef35646e2b84871679729876a32d5cbac4d02168878de0771cfa0ebe378b6c1a0359b436ec7e698af1b315fdd95be626e6f933376300ecfacfdd0fadd39c4c0a1f7129ef3c6face3e91b1586bd38217663c5bc6492e2374db008ecc3a9e97b63c1b45c2f9557d2a1a17c875cc90dd36ae4d17728c4bf0cfb9768de256ada109fd02c39669a82b536cccfc41c6d962c5a890d53f9d7515be07b8adf321decf3a7dd6a9732e7ae6efeafaf0aca585e76ef863de73950be3b083e27033e5ac8dd49cbd8c36d775b330eef2e50c27950b70e2091868d0f39f6033da54787e12746413db911c4cf51db0a7d3f3ade8ef048ea79f76821d8bb0cfc5777a760dfdf65d8efd57efe89fa7bed4f369cad8fa22179e8314309baf56cb182c6b2f810b33ad3f9fb02f98cf1c9e61ed73cd119f984702dea47986654aace02acfbd69b0562df4b68ec930fe8135caf5bc019ed7a8b9e7e887394f7df81eadf7b04edb329fdcb573e07dd8b39e7c5bcf185b1833e4b991d009036c5e6a479ee3b312e7fa22561ed533cfaf66ed0b79d3aaf547ba7e9c33c8ced8e839616333cbd8b3df1ab877ec93fab8e75dbf125f6f68ff67f03a191b3d7fcc819782637fe1c8c2da59e65cc6f46198323fea47e1d982e26bce6387f7e7c7582ffbc6faf19c18f44ddf7ef07f14f49fb2d68167ccb4e0b059eda6e5888b85b5ef9c0b8dbbbbea583b30eb9986ed7398d395b1d9fdcb98609b83cc7c3d26f509e8596d6d126ac917ad5f96f0bd025dc3da8c90af328b19bee042f2dc3e0ae70051074af0e7d446cfbd09f950ab987eb17a9e04f04f6e59c3176233cc493efafa5eeadfa3602b9270f669c8ffaf80d7531bf241619f68e334fecbf3c7c00b423d22eb38f5fc12d6092676ec5e6a5195b7365a47f1557de2b1de9475056a1b239eb9e0dac41e798d2f67f2fc50db29e035e05aea2b878d86dec842bc3bd51cf7f6e8dbe4d908a1b6c03317863e019e53b430d7df1deb63da5c3c78b26210d6d3fa6ed57efb58eb2ebac065a7185c5eb4dfacd65ad528f0139e0552bfd4dd7cedf71c804f59f315f25f66f055413b62b101630cf50c45d0692df11d6be94db9be9cbde84a0fbd542b47496b3d6769d1b6c0fb5566f7c49433cff11c5f9ecd8ae12ae520b05dd01d47ffaf2b1262736d9b0a73e5c94162adb1e3f962ca414c81b5d0da0d7c8be6e0278a81e94f4b35df996d671925e6590ba3c6f26bac9dfa6873f513358962ef66150f9bda0f5af751002bcdfc1ef00ce80e3fe9b950cc396b56cbba067009b4ed56ad236eb4f6c30f39bf67cd34cf6a9c82bc302fd1735dc7975a737fac37a1dfd831876e65eebf1fb026eb31270a1896b1cbb10596f2c21a647ecf6c792651136f216f9c0bd65e1ef32e62d61c9087b03e25aef5bc29d6f65ad6620efa8c7916c331ef22d483cfabddf14cd5ccbee472f44bc09ccf3276b079ac3baf77e1bc4de062dfa5db3f9fffab6750524f0b39eb9fce0e561ff8dfb7f5d5429da36db157795664f8961963e2792063cb7a47513b1b72ce06e8c44ce76800d6063ed5b3654ce96b2729e77e9725c0b4909730f7c02809e3ac987b2f29f3305ece079d66faed759e66cb7380c869239ed3e20b8d2b8fd02fe0dc4d16744422be49f5acbc2a22bee499704dd8cb03b0c2c2dc7ad66f420f573eb405468ac0d1550edb45cfba6ec2b9a44dccdcfb1de570e659a363b1be9cb363fa08d83cf056f0fe48e7b83dd0d7e44a6dcbf31d24b35e424ca6850e5b1893f9da2fa0fd6a7ec3d8aedb50234b1ffdb1df714865945cb9659f80ebbdc490585bdb2f410f44f411061f88dd65a91ddb59b0afd9b604ce86ed086da748d48f9687dc79afb521ad9e45eda7a5dea86f853154afdcc6924302dfabcfa6d63c8fa3aecc98633b36418f560bcf0ed7d853aae77af7e4a5c00acc15fae63ce1fafbe709ffa0deb5fbdfd6bb7e1d17d5bf8ff3e73ebdf9f0ebff917bfabf3dc8fff9d3faf0fef9ffe99fffe1aed7af7e77bc4e2389f3fc3f749bc6c9bfef360d1df57f6f5cfbef5d1affb7dca5f1d5d6fa729b46737ef3f9f643f3e9e6f16cbcd99dfe0c0d71f37872b8dbc48fdd55fc74fb7a7a556dee2e6e1fede7db0ff6f3edf959d4edfaaf7fe7ef5e3f3cdfb88fc3ede3c97a7b75f65ccf1f872af47b97bc7dba49eea37acfd31ed8ae4f2fc67a7f1af78ff3c76a9f1db66b76d8a636eaae2f9fbaf5e4f136c9a37e3df9e69df1eee6ea2ebe3d3f5bb71f2ea39b7df554cf4f279be1a9f8325efb50bd7e7e536d4ed9c7f6eae6fef6eae1f9bdfb385c440f872e3939f4c9c973777d797fe1bffaddb58dde5f2d0ff5fef4709b5e7ceaaee6afbf2fbdb97af8f0ee75f3aa02e3376ce7fb477955bd6666ca7ebbcf3ee34f9f5ededf9d3f8cdb04df7ee9b7dfbc73db5e7cbe3d6f0e77af2f1fabfdf4f3e643f466337cfcfd4763aea63fb7aff6f3707b7572b84ded8c6ffdfe3cfff91bbae4e49937826cc879f49dfbfc7849fdfe36b9ccc3fbf7dd95fde326bdf87c77954fdb2bccfbc95aef8b51a28667197ffdbe3e79788535177739bf37cf6f7e6b3ebed9be5c109fdfdf3d5edcf77b95a7eef16c7c97f08485c3cd261e6f93e5733f7e1c2a7f76266db35cea9c7efc32cf6dd4bf1ebe1deba1bbbed977d717bf85db463edda517f7fd26c8ecf983efcf977bccdbbbabfcf9dd55feb0bdba78be4dec1f3aeee3ad2e1873315f38bef3f3dde3dbf5e671f97ce73f0eefce1fa69bf3b707fd7d7cdf3fde3ddd8e1f07fbe1345359fb78b83bbf7fb8bd6a3fdd3e9e25dde3d97a1d9f3cdf26779fc31c7ef50dcdca6fd817c71b66befcdf9fbfebe3cdd5196f5df9931c5cdba7f78fedabca94d9b19fdbabb3f5267938d4fb6295d7a759658ac19ad3bfcefff5e9fdede3dbe77f5cd7b65d2ecd59c9ef7d7d7a7f737ef974fbd8bfaa8cccc777768f27ebcdf95bfc7ee95f0f0364f1dd553354bec9e8a9f2dfaefd4574bb8fe7fef124797775f9d0efe7e1cfcfbebea8fef49bf9a93cbeeb2febe5eff98df896dbf462bab9ae5e55e66c7ebf39f5b7c9f274b329467153d2b412da5e7c7ebf89fdbbf3b3e936ed5f55e7bcd1e34fdfb3bdbeb8bf397f887bff71087bfa7f364fff23f9fffe777e67fdfeb21fefceb34fdbebd3f5dd557cdf7f985ebd3b3f496eaeabe1bd7ed77d977cfad03f9ec4b78fcda72f7b5b96dadd9c367ef8f39e7f7df7f1ddf5e5c3b7b2db7db83ce01db7e9cd13e622c84974737d1f6dafce9edf5ddd1deafde9f3cdd54df48f6d37f974733de8ff5f3d8cb749761cebe7fe11eb1fafddd5e5d3ddb5bcaa82feffb13e28733b9d99fabbf3f9b54c15879bf3b759f87f8efbcf7be7ee4576bed8a4bfff8efaf19ebae01ff7cc8b9cfd0ffbfb7a7eae2f1fdebf6ec2fc1cfb3c4ddf9d3f4437ee1fbe797cbaefd2cba7bbc7f67f2e0b7f962d66396eaf2f3edfad7fd599dde3f2b94b9ebf95d34136a7f777d7979fc1e6bea3bbb4cfab8743fffaed710d7eb847edd42497e626eca3cba73e3d7deeaea757d5f9577afaf5ddd3cdebcb8fdc23fef4b8efbfd2abf23d7d3857e767f1ddf92f8a2fcecf26bd054c757765caf58b3efb1fd9a26f7570f24fdf5e3fde7ceed2b77e5b7c91099e20b48b9f6e3f9cc677e62feb77dc1f2f6308d9a1fa6de9dbe816dfa0b8eaf057f9e0ed429f6ecfcff6375773e8f3fbbaa9da9c3edf5c5f4637d7d5a73e3dbdef129d1b7aa3afde7efa9b79ffd45d5f7c78779561ef0eddf5dbe8762de2e35cf6e727feddf5e5d36d92bdaa5e5f3c00a7bdbbbe515cf29ab2fea9bb5a9e6ef0fc7c79b8f9d0fc757daebf635bcf1f0eefd6987bf0073631f98e0c0033f0e6ab171bf2a331fc791d8115fed85e613f3d0fddd1269dbfcdee36f17473653ff78f67d1bbab9303b15592077dfacfac59e9d4fbff5e83ffff3386f6fffe7f000000ffff010000ffff2cd76d6039b80500`))) diff --git a/go.mod b/go.mod index 93fa6910958..ace6fa2e812 100644 --- a/go.mod +++ b/go.mod @@ -1,17 +1,17 @@ module github.com/concourse/concourse require ( + cloud.google.com/go/trace v1.2.0 // indirect code.cloudfoundry.org/clock v0.0.0-20180518195852-02e53af36e6c code.cloudfoundry.org/credhub-cli v0.0.0-20190415201820-e3951663d25c code.cloudfoundry.org/garden v0.0.0-20181108172608-62470dc86365 code.cloudfoundry.org/lager v2.0.0+incompatible code.cloudfoundry.org/localip v0.0.0-20170223024724-b88ad0dea95c code.cloudfoundry.org/urljoiner v0.0.0-20170223060717-5cabba6c0a50 - github.com/Azure/go-autorest/autorest v0.10.1 // indirect - github.com/Azure/go-autorest/autorest/adal v0.8.3 // indirect github.com/DataDog/datadog-go v3.2.0+incompatible github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v0.20.1 github.com/Masterminds/squirrel v1.1.0 + github.com/Microsoft/hcsshim v0.8.15 // indirect github.com/NYTimes/gziphandler v1.1.1 github.com/aryann/difflib v0.0.0-20170710044230-e206f873d14a github.com/aws/aws-sdk-go v1.25.18 @@ -19,71 +19,64 @@ require ( github.com/cenkalti/backoff v2.2.1+incompatible github.com/cloudfoundry/go-socks5 v0.0.0-20180221174514-54f73bdb8a8e // indirect github.com/cloudfoundry/socks5-proxy v0.0.0-20180530211953-3659db090cb2 // indirect - github.com/concourse/dex v0.3.0 + github.com/concourse/dex v1.5.0 github.com/concourse/flag v1.1.0 github.com/concourse/go-archive v1.0.1 github.com/concourse/retryhttp v1.0.2 - github.com/containerd/cgroups v0.0.0-20191220161829-06e718085901 // indirect - github.com/containerd/containerd v1.3.2 - github.com/containerd/continuity v0.0.0-20191214063359-1097c8bae83b // indirect - github.com/containerd/fifo v0.0.0-20191213151349-ff969a566b00 // indirect - github.com/containerd/go-cni v0.0.0-20200107172653-c154a49e2c75 - github.com/containerd/ttrpc v0.0.0-20191028202541-4f1b8fe65a5c // indirect - github.com/containerd/typeurl v0.0.0-20190911142611-5eb25027c9fd + github.com/containerd/containerd v1.5.0-beta.1 + github.com/containerd/go-cni v1.0.1 + github.com/containerd/typeurl v1.0.1 github.com/coreos/go-iptables v0.4.5 github.com/cppforlife/go-semi-semantic v0.0.0-20160921010311-576b6af77ae4 - github.com/creack/pty v1.1.9 // indirect github.com/cyberark/conjur-api-go v0.6.0 - github.com/docker/distribution v2.7.1+incompatible // indirect - github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c // indirect - github.com/evanphx/json-patch v4.5.0+incompatible // indirect - github.com/fatih/color v1.10.0 - github.com/felixge/httpsnoop v1.0.1 + github.com/fatih/color v1.13.0 + github.com/felixge/httpsnoop v1.0.3 + github.com/fsnotify/fsnotify v1.5.1 // indirect + github.com/gobuffalo/packr v1.30.1 github.com/goccy/go-yaml v1.8.8 - github.com/gogo/googleapis v1.3.1 // indirect github.com/gogo/protobuf v1.3.2 - github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e + github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da github.com/google/jsonapi v0.0.0-20180618021926-5d047c6bc66b - github.com/googleapis/gnostic v0.3.1 // indirect - github.com/gophercloud/gophercloud v0.10.0 // indirect - github.com/gorilla/websocket v1.4.1 + github.com/gorilla/websocket v1.5.0 + github.com/hashicorp/go-cleanhttp v0.5.2 // indirect + github.com/hashicorp/go-hclog v1.0.0 // indirect github.com/hashicorp/go-multierror v1.1.0 github.com/hashicorp/go-rootcerts v1.0.2 github.com/hashicorp/go-version v1.2.0 // indirect github.com/hashicorp/vault/api v1.0.5-0.20191108163347-bdd38fca2cff github.com/hashicorp/vault/sdk v0.1.14-0.20191112033314-390e96e22eb2 // indirect - github.com/imdario/mergo v0.3.6 + github.com/huandu/xstrings v1.3.2 // indirect + github.com/imdario/mergo v0.3.12 github.com/inconshreveable/go-update v0.0.0-20160112193335-8152e7eb6ccf github.com/influxdata/influxdb1-client v0.0.0-20190118215656-f8cdb5d5f175 - github.com/jessevdk/go-flags v1.4.0 - github.com/klauspost/compress v1.9.7 + github.com/jessevdk/go-flags v1.5.0 + github.com/klauspost/compress v1.11.3 github.com/kr/pty v1.1.8 github.com/krishicks/yaml-patch v0.0.10 - github.com/lib/pq v1.10.0 - github.com/markbates/pkger v0.17.1 - github.com/mattn/go-colorable v0.1.8 - github.com/mattn/go-isatty v0.0.12 + github.com/lib/pq v1.10.7 + github.com/mattn/go-colorable v0.1.12 + github.com/mattn/go-isatty v0.0.14 github.com/maxbrunsfeld/counterfeiter/v6 v6.2.3 github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b - github.com/miekg/dns v1.1.6 - github.com/mitchellh/mapstructure v1.1.2 + github.com/miekg/dns v1.1.41 + github.com/mitchellh/copystructure v1.2.0 // indirect + github.com/mitchellh/mapstructure v1.5.0 github.com/nu7hatch/gouuid v0.0.0-20131221200532-179d4d0c4d8d github.com/onsi/ginkgo v1.12.0 github.com/onsi/gomega v1.10.0 - github.com/opencontainers/runtime-spec v1.0.1 + github.com/opencontainers/runtime-spec v1.0.3-0.20200929063507-e6143ca7d51d github.com/patrickmn/go-cache v2.1.0+incompatible github.com/peterhellberg/link v1.0.0 github.com/pkg/errors v0.9.1 github.com/pkg/term v0.0.0-20190109203006-aa71e9d9e942 - github.com/prometheus/client_golang v1.4.0 + github.com/prometheus/client_golang v1.13.0 github.com/racksec/srslog v0.0.0-20180709174129-a4725f04ec91 - github.com/sirupsen/logrus v1.4.2 + github.com/shopspring/decimal v1.3.1 // indirect + github.com/sirupsen/logrus v1.9.0 github.com/skratchdot/open-golang v0.0.0-20160302144031-75fb7ed4208c - github.com/spf13/pflag v1.0.5 // indirect + github.com/smartystreets/goconvey v1.6.4 // indirect github.com/square/certstrap v1.1.1 - github.com/stretchr/objx v0.2.0 // indirect - github.com/stretchr/testify v1.7.0 - github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2 // indirect + github.com/stretchr/testify v1.8.0 github.com/tedsuo/ifrit v0.0.0-20180802180643-bea94bb476cc github.com/tedsuo/rata v1.0.1-0.20170830210128-07d200713958 github.com/vbauerster/mpb/v4 v4.6.1-0.20190319154207-3a6acfe12ac6 @@ -96,21 +89,17 @@ require ( go.opentelemetry.io/otel/oteltest v0.20.0 go.opentelemetry.io/otel/sdk v0.20.0 go.opentelemetry.io/otel/trace v0.20.0 - golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97 - golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d - golang.org/x/sync v0.0.0-20210220032951-036812b2e83c - golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c - golang.org/x/time v0.0.0-20191024005414-555d28b269f0 - golang.org/x/tools v0.1.5 // indirect - gopkg.in/inf.v0 v0.9.1 // indirect - gopkg.in/square/go-jose.v2 v2.4.1 - gopkg.in/yaml.v2 v2.2.8 - k8s.io/api v0.0.0-20190313235455-40a48860b5ab - k8s.io/apimachinery v0.0.0-20190313205120-d7deff9243b1 - k8s.io/client-go v11.0.0+incompatible - k8s.io/kube-openapi v0.0.0-20191107075043-30be4d16710a // indirect - k8s.io/utils v0.0.0-20190829053155-3a4a5477acf8 // indirect - sigs.k8s.io/yaml v1.1.0 + golang.org/x/crypto v0.0.0-20220926161630-eccd6366d1be + golang.org/x/oauth2 v0.0.0-20220909003341-f21342109be1 + golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4 + golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10 + golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e + gopkg.in/square/go-jose.v2 v2.6.0 + gopkg.in/yaml.v2 v2.4.0 + k8s.io/api v0.20.1 + k8s.io/apimachinery v0.20.1 + k8s.io/client-go v0.20.1 + sigs.k8s.io/yaml v1.2.0 ) go 1.16 diff --git a/go.sum b/go.sum index 13ba29ea3ba..2820af26d4e 100644 --- a/go.sum +++ b/go.sum @@ -1,3 +1,4 @@ +ariga.io/atlas v0.7.2-0.20220927111110-867ee0cca56a/go.mod h1:ft47uSh5hWGDCmQC9DsztZg6Xk+KagM5Ts/mZYKb9JE= bazil.org/fuse v0.0.0-20160811212531-371fbbdaa898/go.mod h1:Xbm+BRKSBEpa4q4hTSxohYNQpsxXPbPry4JJWOB3LB8= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= @@ -12,16 +13,41 @@ cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6 cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk= cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= -cloud.google.com/go v0.61.0 h1:NLQf5e1OMspfNT1RAHOB3ublr1TW3YTXO8OiWwVjK2U= cloud.google.com/go v0.61.0/go.mod h1:XukKJg4Y7QsUu0Hxg3qQKUWR4VuWivmyMK2+rUyxAqw= +cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= +cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= +cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= +cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= +cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg= +cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8= +cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0= +cloud.google.com/go v0.83.0/go.mod h1:Z7MJUsANfY0pYPdw0lbnivPx4/vhy/e2FEkSkF7vAVY= +cloud.google.com/go v0.84.0/go.mod h1:RazrYuxIK6Kb7YrzzhPoLmCVzl7Sup4NrbKPg8KHSUM= +cloud.google.com/go v0.87.0/go.mod h1:TpDYlFy7vuLzZMMZ+B6iRiELaY7z/gJPaqbMx6mlWcY= +cloud.google.com/go v0.90.0/go.mod h1:kRX0mNRHe0e2rC6oNakvwQqzyDmg57xJ+SZU1eT2aDQ= +cloud.google.com/go v0.93.3/go.mod h1:8utlLll2EF5XMAV15woO4lSbWQlk8rer9aLOfLh7+YI= +cloud.google.com/go v0.94.1/go.mod h1:qAlAugsXlC+JWO+Bke5vCtc9ONxjQT3drlTTnAplMW4= +cloud.google.com/go v0.97.0/go.mod h1:GF7l59pYBVlXQIBLx3a761cZ41F9bBH3JUlihCt2Udc= +cloud.google.com/go v0.99.0/go.mod h1:w0Xx2nLzqWJPuozYQX+hFfCSI8WioryfRDzkoI/Y2ZA= +cloud.google.com/go v0.100.2/go.mod h1:4Xra9TjzAeYHrl5+oeLlzbM2k3mjVhZh4UqTZ//w99A= +cloud.google.com/go v0.102.0 h1:DAq3r8y4mDgyB/ZPJ9v/5VJNqjgJAxTn6ZYLlUywOu8= +cloud.google.com/go v0.102.0/go.mod h1:oWcCzKlqJ5zgHQt9YsaeTY9KzIvjyy0ArmiBUgpQ+nc= cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= +cloud.google.com/go/compute v0.1.0/go.mod h1:GAesmwr110a34z04OlxYkATPBEfVhkymfTBXtfbBFow= +cloud.google.com/go/compute v1.3.0/go.mod h1:cCZiE1NHEtai4wiufUhW8I8S1JKkAnhnQJWM7YD99wM= +cloud.google.com/go/compute v1.5.0/go.mod h1:9SMHyhJlzhlkJqrPAc839t2BZFTSk6Jdj6mkzQJeu0M= +cloud.google.com/go/compute v1.6.0/go.mod h1:T29tfhtVbq1wvAPo0E3+7vhgmkOYeXjhFvz/FMzPu0s= +cloud.google.com/go/compute v1.6.1/go.mod h1:g85FgpzFvNULZ+S8AYq87axRKuf2Kh7deLqV/jJ3thU= +cloud.google.com/go/compute v1.7.0 h1:v/k9Eueb8aAJ0vZuxKMrgm6kPhCLZU9HxFU+AFDs9Uk= +cloud.google.com/go/compute v1.7.0/go.mod h1:435lt8av5oL9P3fv1OEzSbSUe+ybHXGMPQHHZWZxy9U= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= +cloud.google.com/go/iam v0.3.0/go.mod h1:XzJPvDayI+9zsASAFO68Hk07u3z+f+JrT2xXNdp4bnY= cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= @@ -31,6 +57,9 @@ cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0Zeo cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= +cloud.google.com/go/storage v1.22.1/go.mod h1:S8N1cAStu7BOeFfE8KAQzmyyLkK8p/vmRq6kuBTW58Y= +cloud.google.com/go/trace v1.2.0 h1:oIaB4KahkIUOpLSAAjEJ8y2desbjY/x/RfP4O3KAtTI= +cloud.google.com/go/trace v1.2.0/go.mod h1:Wc8y/uYyOhPy12KEnXG9XGrvfMz5F5SrYecQlbW1rwM= code.cloudfoundry.org/clock v0.0.0-20180518195852-02e53af36e6c h1:5eeuG0BHx1+DHeT3AP+ISKZ2ht1UjGhm581ljqYpVeQ= code.cloudfoundry.org/clock v0.0.0-20180518195852-02e53af36e6c/go.mod h1:QD9Lzhd/ux6eNQVUDVRJX/RKTigpewimNYBi7ivZKY8= code.cloudfoundry.org/credhub-cli v0.0.0-20190415201820-e3951663d25c h1:qdDzK71HKXwtnmj6jl+tJ9Onf9/gNRMbwHwwEndmLyk= @@ -44,59 +73,96 @@ code.cloudfoundry.org/localip v0.0.0-20170223024724-b88ad0dea95c/go.mod h1:q9OZP code.cloudfoundry.org/urljoiner v0.0.0-20170223060717-5cabba6c0a50 h1:y+DtLO/eX/9NZjGGHntWs1bNG6uxdql8SqrHzu6VH3Q= code.cloudfoundry.org/urljoiner v0.0.0-20170223060717-5cabba6c0a50/go.mod h1:GyubIUn2eHGSlpIqJhGKBKicAe6CUV/pQJosfNEHdo4= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= +entgo.io/ent v0.11.3/go.mod h1:mvDhvynOzAsOe7anH7ynPPtMjA/eeXP96kAfweevyxc= +github.com/AppsFlyer/go-sundheit v0.5.0 h1:/VxpyigCfJrq1r97mn9HPiAB2qrhcTFHwNIIDr15CZM= +github.com/AppsFlyer/go-sundheit v0.5.0/go.mod h1:2ZM0BnfqT/mljBQO224VbL5XH06TgWuQ6Cn+cTtCpTY= +github.com/Azure/azure-sdk-for-go v16.2.1+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= -github.com/Azure/go-autorest/autorest v0.9.0/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI= -github.com/Azure/go-autorest/autorest v0.10.1 h1:uaB8A32IZU9YKs9v50+/LWIWTDHJk2vlGzbfd7FfESI= -github.com/Azure/go-autorest/autorest v0.10.1/go.mod h1:/FALq9T/kS7b5J5qsQ+RSTUdAmGFqi0vUdVNNx8q630= -github.com/Azure/go-autorest/autorest/adal v0.5.0/go.mod h1:8Z9fGy2MpX0PvDjB1pEgQTmVqjGhiHBW7RJJEciWzS0= -github.com/Azure/go-autorest/autorest/adal v0.8.2/go.mod h1:ZjhuQClTqx435SRJ2iMlOxPYt3d2C/T/7TiQCVZSn3Q= -github.com/Azure/go-autorest/autorest/adal v0.8.3 h1:O1AGG9Xig71FxdX9HO5pGNyZ7TbSyHaVg+5eJO/jSGw= -github.com/Azure/go-autorest/autorest/adal v0.8.3/go.mod h1:ZjhuQClTqx435SRJ2iMlOxPYt3d2C/T/7TiQCVZSn3Q= -github.com/Azure/go-autorest/autorest/date v0.1.0/go.mod h1:plvfp3oPSKwf2DNjlBjWF/7vwR+cUD/ELuzDCXwHUVA= -github.com/Azure/go-autorest/autorest/date v0.2.0 h1:yW+Zlqf26583pE43KhfnhFcdmSWlm5Ew6bxipnr/tbM= -github.com/Azure/go-autorest/autorest/date v0.2.0/go.mod h1:vcORJHLJEh643/Ioh9+vPmf1Ij9AEBM5FuBIXLmIy0g= -github.com/Azure/go-autorest/autorest/mocks v0.1.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= -github.com/Azure/go-autorest/autorest/mocks v0.2.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= -github.com/Azure/go-autorest/autorest/mocks v0.3.0 h1:qJumjCaCudz+OcqE9/XtEPfvtOjOmKaui4EOpFI6zZc= -github.com/Azure/go-autorest/autorest/mocks v0.3.0/go.mod h1:a8FDP3DYzQ4RYfVAxAN3SVSiiO77gL2j2ronKKP0syM= -github.com/Azure/go-autorest/logger v0.1.0 h1:ruG4BSDXONFRrZZJ2GUXDiUyVpayPmb1GnWeHDdaNKY= -github.com/Azure/go-autorest/logger v0.1.0/go.mod h1:oExouG+K6PryycPJfVSxi/koC6LSNgds39diKLz7Vrc= -github.com/Azure/go-autorest/tracing v0.5.0 h1:TRn4WjSnkcSy5AEG3pnbtFSwNtwzjr4VYyQflFE619k= -github.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbtp2fGCgRFtBroKn4Dk= +github.com/Azure/go-autorest v10.8.1+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= +github.com/Azure/go-autorest v14.2.0+incompatible h1:V5VMDjClD3GiElqLWO7mz2MxNAK/vTfRHdAubSIPRgs= +github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= +github.com/Azure/go-autorest/autorest v0.11.1 h1:eVvIXUKiTgv++6YnWb42DUA1YL7qDugnKP0HljexdnQ= +github.com/Azure/go-autorest/autorest v0.11.1/go.mod h1:JFgpikqFJ/MleTTxwepExTKnFUKKszPS8UavbQYUMuw= +github.com/Azure/go-autorest/autorest/adal v0.9.0/go.mod h1:/c022QCutn2P7uY+/oQWWNcK9YU+MH96NgK+jErpbcg= +github.com/Azure/go-autorest/autorest/adal v0.9.5 h1:Y3bBUV4rTuxenJJs41HU3qmqsb+auo+a3Lz+PlJPpL0= +github.com/Azure/go-autorest/autorest/adal v0.9.5/go.mod h1:B7KF7jKIeC9Mct5spmyCB/A8CG/sEz1vwIRGv/bbw7A= +github.com/Azure/go-autorest/autorest/date v0.3.0 h1:7gUk1U5M/CQbp9WoqinNzJar+8KY+LPI6wiWrP/myHw= +github.com/Azure/go-autorest/autorest/date v0.3.0/go.mod h1:BI0uouVdmngYNUzGWeSYnokU+TrmwEsOqdt8Y6sso74= +github.com/Azure/go-autorest/autorest/mocks v0.4.0/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k= +github.com/Azure/go-autorest/autorest/mocks v0.4.1 h1:K0laFcLE6VLTOwNgSxaGbUcLPuGXlNkbVvq4cW4nIHk= +github.com/Azure/go-autorest/autorest/mocks v0.4.1/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k= +github.com/Azure/go-autorest/logger v0.2.0 h1:e4RVHVZKC5p6UANLJHkM4OfR1UKZPj8Wt8Pcx+3oqrE= +github.com/Azure/go-autorest/logger v0.2.0/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= +github.com/Azure/go-autorest/tracing v0.6.0 h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUMfuitfgcfuo= +github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= +github.com/Azure/go-ntlmssp v0.0.0-20220621081337-cb9428e4ac1e h1:NeAW1fUYUEWhft7pkxDf6WoUvEZJ/uOKsvtpjLnn8MU= +github.com/Azure/go-ntlmssp v0.0.0-20220621081337-cb9428e4ac1e/go.mod h1:chxPXzSsl7ZWRAuOIE23GDNzjWuZquvFlgA8xmpunjU= github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= +github.com/DATA-DOG/go-sqlmock v1.5.0/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM= github.com/DataDog/datadog-go v3.2.0+incompatible h1:qSG2N4FghB1He/r2mFrWKCaL7dXCilEuNEeAn20fdD4= github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v0.20.1 h1:b+IF0z5KKs9pEXtPb3gic80fTotTOdiTzg+EfsKv7l4= github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v0.20.1/go.mod h1:f4BFp2+kV6s/OKj3IP/34keB/OE7tTTaZZQyX/mQ7Ng= +github.com/Masterminds/goutils v1.1.1 h1:5nUrii3FMTL5diU80unEVvNevw1nH4+ZV4DSLVJLSYI= +github.com/Masterminds/goutils v1.1.1/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU= +github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww= +github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= +github.com/Masterminds/semver/v3 v3.1.1 h1:hLg3sBzpNErnxhQtUy/mmLR2I9foDujNK030IGemrRc= +github.com/Masterminds/semver/v3 v3.1.1/go.mod h1:VPu/7SZ7ePZ3QOrcuXROw5FAcLl4a0cBrbBpGY/8hQs= +github.com/Masterminds/sprig/v3 v3.2.2 h1:17jRggJu518dr3QaafizSXOjKYp94wKfABxUmyxvxX8= +github.com/Masterminds/sprig/v3 v3.2.2/go.mod h1:UoaO7Yp8KlPnJIYWTFkMaqPUYKTfGFPhxNuwnnxkKlk= github.com/Masterminds/squirrel v1.1.0 h1:baP1qLdoQCeTw3ifCdOq2dkYc6vGcmRdaociKLbEJXs= github.com/Masterminds/squirrel v1.1.0/go.mod h1:yaPeOnPG5ZRwL9oKdTsO/prlkPbXWZlRVMQ/gGlzIuA= github.com/Microsoft/go-winio v0.4.11/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA= -github.com/Microsoft/go-winio v0.4.15-0.20190919025122-fc70bd9a86b5 h1:ygIc8M6trr62pF5DucadTWGdEB4mEyvzi0e2nbcmcyA= +github.com/Microsoft/go-winio v0.4.14/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA= github.com/Microsoft/go-winio v0.4.15-0.20190919025122-fc70bd9a86b5/go.mod h1:tTuCMEN+UleMWgg9dVx4Hu52b1bJo+59jBh3ajtinzw= -github.com/Microsoft/hcsshim v0.8.7 h1:ptnOoufxGSzauVTsdE+wMYnCWA301PdoN4xg5oRdZpg= +github.com/Microsoft/go-winio v0.4.16-0.20201130162521-d1ffc52c7331/go.mod h1:XB6nPKklQyQ7GC9LdcBEcBl8PF76WugXOPRXwdLnMv0= +github.com/Microsoft/go-winio v0.4.16/go.mod h1:XB6nPKklQyQ7GC9LdcBEcBl8PF76WugXOPRXwdLnMv0= +github.com/Microsoft/go-winio v0.4.17-0.20210211115548-6eac466e5fa3 h1:mw6pDQqv38/WGF1cO/jF5t/jyAJ2yi7CmtFLLO5tGFI= +github.com/Microsoft/go-winio v0.4.17-0.20210211115548-6eac466e5fa3/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= +github.com/Microsoft/hcsshim v0.8.6/go.mod h1:Op3hHsoHPAvb6lceZHDtd9OkTew38wNoXnJs8iY7rUg= +github.com/Microsoft/hcsshim v0.8.7-0.20190325164909-8abdbb8205e4/go.mod h1:Op3hHsoHPAvb6lceZHDtd9OkTew38wNoXnJs8iY7rUg= github.com/Microsoft/hcsshim v0.8.7/go.mod h1:OHd7sQqRFrYd3RmSgbgji+ctCwkbq2wbEYNSzOYtcBQ= +github.com/Microsoft/hcsshim v0.8.9/go.mod h1:5692vkUqntj1idxauYlpoINNKeqCiG6Sg38RRsjT5y8= +github.com/Microsoft/hcsshim v0.8.14/go.mod h1:NtVKoYxQuTLx6gEq0L96c9Ju4JbRJ4nY2ow3VK6a9Lg= +github.com/Microsoft/hcsshim v0.8.15 h1:Aof83YILRs2Vx3GhHqlvvfyx1asRJKMFIMeVlHsZKtI= +github.com/Microsoft/hcsshim v0.8.15/go.mod h1:x38A4YbHbdxJtc0sF6oIz+RG0npwSCAvn69iY6URG00= +github.com/Microsoft/hcsshim/test v0.0.0-20201218223536-d3e5debf77da h1:sqPBuX6WumurdHaSRbS8xyyyP8Rf7kUpLUlJaN7rztw= +github.com/Microsoft/hcsshim/test v0.0.0-20201218223536-d3e5debf77da/go.mod h1:5hlzMzRKMLyo42nCZ9oml8AdTlq/0cvIaBv6tK1RehU= github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= github.com/NYTimes/gziphandler v1.1.1 h1:ZUDjpQae29j0ryrS0u/B8HZfJBtBQHjqw2rQ2cqUQ3I= github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c= -github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= +github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= +github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= +github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= +github.com/Shopify/logrus-bugsnag v0.0.0-20171204204709-577dee27f20d/go.mod h1:HI8ITrYtUY+O+ZhtlqUnD8+KwNPOyugEhfP9fdUIaEQ= github.com/VividCortex/ewma v1.1.1 h1:MnEK4VOv6n0RSY4vtRe3h11qjxL3+t0B8yOL8iMXdcM= github.com/VividCortex/ewma v1.1.1/go.mod h1:2Tkkvm3sRDVXaiyucHiACn4cqf7DpdyLvmxzcbUokwA= +github.com/agext/levenshtein v1.2.1/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= +github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= +github.com/alexflint/go-filemutex v0.0.0-20171022225611-72bdc8eae2ae/go.mod h1:CgnQgUtFrFz9mxFNtED3jI5tLDjKlOM+oUF/sTk6ps0= +github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= +github.com/apparentlymart/go-dump v0.0.0-20180507223929-23540a00eaa3/go.mod h1:oL81AME2rN47vu18xqj1S1jPIPuN7afo62yKTNn3XMM= +github.com/apparentlymart/go-textseg v1.0.0/go.mod h1:z96Txxhf3xSFMPmb5X/1W05FF/Nj9VFpLOpjS5yuumk= +github.com/apparentlymart/go-textseg/v13 v13.0.0/go.mod h1:ZK2fH7c4NqDTLtiYLvIkEghdlcqw7yxLeM89kiTRPUo= github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= github.com/armon/go-metrics v0.3.0/go.mod h1:zXjbSimjXTd7vOpY8B0/2LpvNvDoXBuplAD+gJD3GYs= github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/aryann/difflib v0.0.0-20170710044230-e206f873d14a h1:pv34s756C4pEXnjgPfGYgdhg/ZdajGhyOvzx8k+23nw= github.com/aryann/difflib v0.0.0-20170710044230-e206f873d14a/go.mod h1:DAHtR1m6lCRdSC2Tm3DSWRPvIPr6xNKyeHdqDQSQT+A= +github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= +github.com/aws/aws-sdk-go v1.15.11/go.mod h1:mFuSZ37Z9YOHbQEwBWztmVzqXrEkub65tZoCYDt7FT0= github.com/aws/aws-sdk-go v1.25.18 h1:fMEkpli4r+FS4xZRqjgjYHP+uKaSwfk2MOcDUpLYwIE= github.com/aws/aws-sdk-go v1.25.18/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/beevik/etree v1.1.0 h1:T0xke/WvNtMoCqgzPhkX2r4rjY3GDZFi+FjpRZY2Jbs= github.com/beevik/etree v1.1.0/go.mod h1:r8Aw8JqVegEf0w2fDnATrX9VpkMcyFeM0FhwO62wh+A= +github.com/beorn7/perks v0.0.0-20160804104726-4c0e84591b9a/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= @@ -104,23 +170,38 @@ github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6r github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d h1:xDfNPAt8lFiC1UJrqV3uuy861HCTo708pDMbjHHdCas= github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d/go.mod h1:6QX/PXZ00z/TKoufEY6K/a0k6AhaJrQKdFe6OfVXsa4= github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= +github.com/bitly/go-simplejson v0.5.0/go.mod h1:cXHtHw4XUPsvGaxgjIAn8PhEWG9NfngEKAMDJEczWVA= github.com/blang/semver v3.1.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= +github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= +github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869/go.mod h1:Ekp36dRnpXw/yCqJaO+ZrUyxD+3VXMFFr56k5XYrpB4= github.com/bmizerany/pat v0.0.0-20170815010413-6226ea591a40 h1:y4B3+GPxKlrigF1ha5FFErxK+sr6sWxQovRMzwMhejo= github.com/bmizerany/pat v0.0.0-20170815010413-6226ea591a40/go.mod h1:8rLXio+WjiTceGBHIoTvn60HIbs7Hm7bcHjyrSqYB9c= +github.com/bshuster-repo/logrus-logstash-hook v0.4.1/go.mod h1:zsTqEiSzDgAa/8GZR7E1qaXrhYNDKBYy5/dWPTIflbk= +github.com/buger/jsonparser v0.0.0-20180808090653-f4dd9f5a6b44/go.mod h1:bbYlZJ7hK1yFx9hf58LP0zeX7UjIGs20ufpu3evjr+s= +github.com/bugsnag/bugsnag-go v0.0.0-20141110184014-b1d153021fcd/go.mod h1:2oa8nejYd4cQ/b0hMIopN0lCRxU0bueqREvZLWFrtK8= +github.com/bugsnag/osext v0.0.0-20130617224835-0dd3f918b21b/go.mod h1:obH5gd0BsqsP2LwDJ9aOkm/6J86V6lyAXCoQWGw3K50= +github.com/bugsnag/panicwrap v0.0.0-20151223152923-e2c28503fcd0/go.mod h1:D/8v3kj0zr8ZAKg1AQ6crr+5VwKN5eIywRkfhyM/+dE= github.com/caarlos0/env v3.5.0+incompatible h1:Yy0UN8o9Wtr/jGHZDpCBLpNrzcFLLM2yixi/rBrKyJs= github.com/caarlos0/env v3.5.0+incompatible/go.mod h1:tdCsowwCzMLdkqRYDlHpZCp2UooDD3MspDBjZ2AD02Y= github.com/cenkalti/backoff v2.1.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= github.com/cenkalti/backoff v2.2.1+incompatible h1:tNowT99t7UNflLxfYYSlKYsBpXdEet03Pg2g16Swow4= github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY= +github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= +github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE= +github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/charlievieth/fs v0.0.0-20170613215519-7dc373669fa1 h1:vTlpHKxJqykyKdW9bkrDJNWeKNuSIAJ0TP/K4lRsz/Q= github.com/charlievieth/fs v0.0.0-20170613215519-7dc373669fa1/go.mod h1:sAoA1zHCH4FJPE2gne5iBiiVG66U7Nyp6JqlOo+FEyg= +github.com/checkpoint-restore/go-criu/v4 v4.1.0/go.mod h1:xUQBLp4RLc5zJtWY++yjOoMoB5lihDt7fai+75m+rGw= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= -github.com/cilium/ebpf v0.0.0-20191113100448-d9fb101ca1fb/go.mod h1:MA5e5Lr8slmEg9bt0VpxxWqJlO4iwu3FBdHUzV7wQVg= +github.com/cilium/ebpf v0.0.0-20200110133405-4032b1d8aae3/go.mod h1:MA5e5Lr8slmEg9bt0VpxxWqJlO4iwu3FBdHUzV7wQVg= +github.com/cilium/ebpf v0.0.0-20200702112145-1c8d4c9ef775/go.mod h1:7cR51M8ViRLIdUjrmSXlK9pkrsDlLHbO8jiB8X8JnOc= +github.com/cilium/ebpf v0.2.0 h1:Fv93L3KKckEcEHR3oApXVzyBTDA8WAm6VXhPE00N3f8= +github.com/cilium/ebpf v0.2.0/go.mod h1:To2CFviqOWL/M0gIMsvSMlqe7em/l1ALkX1PyjrX2Qs= github.com/circonus-labs/circonus-gometrics v2.3.1+incompatible/go.mod h1:nmEj6Dob7S7YxXgwXpfOuvO54S+tGdZdw9fuRZt25Ag= github.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp5jckzBHf4XRpQvBOLI+I= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= @@ -129,9 +210,17 @@ github.com/cloudfoundry/go-socks5 v0.0.0-20180221174514-54f73bdb8a8e/go.mod h1:P github.com/cloudfoundry/socks5-proxy v0.0.0-20180530211953-3659db090cb2 h1:9j2KbUEQn5E7MEV3enSrkJTrBC0iDbosW5gXX+Z+dLE= github.com/cloudfoundry/socks5-proxy v0.0.0-20180530211953-3659db090cb2/go.mod h1:0a+Ghg38uB86Dx+de84dFSkILTnBHzCpFMRnjHgSzi4= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= +github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= +github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= +github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= +github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= -github.com/concourse/dex v0.3.0 h1:H8aq2xcBMEHK17FVYWXECZxTtAI/kSQQXYOnTbw5dr0= -github.com/concourse/dex v0.3.0/go.mod h1:Q8YPkw98XIkeTWO6Jm2ZMycdaf1NrNrPdvUOnpjYXtA= +github.com/concourse/dex v1.5.0 h1:CbqT/tdbflF7Ct+Dww7xTylfJfnjoMekYQ9exAuOJEE= +github.com/concourse/dex v1.5.0/go.mod h1:HMzUFc2O7G0BGEOoHrwjURjnAy81skMRBu0j1ZS8Dys= github.com/concourse/flag v1.1.0 h1:d2l91vIK6lwfIC7uNLb3i51tZtaWCTokh80VoE6T/RU= github.com/concourse/flag v1.1.0/go.mod h1:ngs845OZCESOe8vgeK5fsCNIiS0vUSqB8MGQMS9+4og= github.com/concourse/go-archive v1.0.0/go.mod h1:Xfo080IPQBmVz3I5ehjCddW3phA2mwv0NFwlpjf5CO8= @@ -139,104 +228,186 @@ github.com/concourse/go-archive v1.0.1 h1:6jQk0VDiE4G6lNJQ0mLZ7XmxbqI3spO4x0wgVw github.com/concourse/go-archive v1.0.1/go.mod h1:Xfo080IPQBmVz3I5ehjCddW3phA2mwv0NFwlpjf5CO8= github.com/concourse/retryhttp v1.0.2 h1:Qlag8vPBvXN79XyuM+XSf0/+jIYWnnivPwaa3ijbgdk= github.com/concourse/retryhttp v1.0.2/go.mod h1:t/8nUqzPriXrWczdqI7tHoEvFe+tJplQHS/fO3BzdlA= +github.com/containerd/aufs v0.0.0-20200908144142-dab0cbea06f4/go.mod h1:nukgQABAEopAHvB6j7cnP5zJ+/3aVcE7hCYqvIwAHyE= +github.com/containerd/btrfs v0.0.0-20201111183144-404b9149801e/go.mod h1:jg2QkJcsabfHugurUvvPhS3E08Oxiuh5W/g1ybB4e0E= +github.com/containerd/cgroups v0.0.0-20190717030353-c4b9ac5c7601/go.mod h1:X9rLEHIqSf/wfK8NsPqxJmeZgW4pcfzdXITDrUSJ6uI= github.com/containerd/cgroups v0.0.0-20190919134610-bf292b21730f/go.mod h1:OApqhQ4XNSNC13gXIwDjhOQxjWa/NxkwZXJ1EvqT0ko= -github.com/containerd/cgroups v0.0.0-20191220161829-06e718085901 h1:ttn8unuUj4LRsB92Gjs6ORv0uyyzvuo+Ax5llW1YtJo= -github.com/containerd/cgroups v0.0.0-20191220161829-06e718085901/go.mod h1:FwbKQCduYoQfIgPclXEWCx5nXWYmnAV7+syVQrs+Z/w= +github.com/containerd/cgroups v0.0.0-20200531161412-0dbf7f05ba59/go.mod h1:pA0z1pT8KYB3TCXK/ocprsh7MAkoW8bZVzPdih9snmM= +github.com/containerd/cgroups v0.0.0-20200710171044-318312a37340/go.mod h1:s5q4SojHctfxANBDvMeIaIovkq29IP48TKAxnhYRxvo= +github.com/containerd/cgroups v0.0.0-20200824123100-0b889c03f102 h1:Qf4HiqfvmB7zS6scsmNgTLmByHbq8n9RTF39v+TzP7A= +github.com/containerd/cgroups v0.0.0-20200824123100-0b889c03f102/go.mod h1:s5q4SojHctfxANBDvMeIaIovkq29IP48TKAxnhYRxvo= github.com/containerd/console v0.0.0-20180822173158-c12b1e7919c1/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw= +github.com/containerd/console v0.0.0-20181022165439-0650fd9eeb50/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw= +github.com/containerd/console v0.0.0-20191206165004-02ecf6a7291e/go.mod h1:8Pf4gM6VEbTNRIT26AyyU7hxdQU3MvAvxVI0sc00XBE= +github.com/containerd/console v1.0.1 h1:u7SFAJyRqWcG6ogaMAx3KjSTy1e3hT9QxqX7Jco7dRc= +github.com/containerd/console v1.0.1/go.mod h1:XUsP6YE/mKtz6bxc+I8UiKKTP04qjQL4qcS3XoQ5xkw= +github.com/containerd/containerd v1.2.10/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= github.com/containerd/containerd v1.3.0-beta.2.0.20190828155532-0293cbd26c69/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/containerd v1.3.2 h1:ForxmXkA6tPIvffbrDAcPUIB32QgXkt2XFj+F0UxetA= +github.com/containerd/containerd v1.3.0/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= +github.com/containerd/containerd v1.3.1-0.20191213020239-082f7e3aed57/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= github.com/containerd/containerd v1.3.2/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= +github.com/containerd/containerd v1.4.0-beta.2.0.20200729163537-40b22ef07410/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= +github.com/containerd/containerd v1.5.0-beta.1 h1:IK6yirB4X7wpKyFSikWiT++nZsyIxGAAgNEv3fEGuls= +github.com/containerd/containerd v1.5.0-beta.1/go.mod h1:5HfvG1V2FsKesEGQ17k5/T7V960Tmcumvqn8Mc+pCYQ= github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= -github.com/containerd/continuity v0.0.0-20191214063359-1097c8bae83b h1:pik3LX++5O3UiNWv45wfP/WT81l7ukBJzd3uUiifbSU= -github.com/containerd/continuity v0.0.0-20191214063359-1097c8bae83b/go.mod h1:Dq467ZllaHgAtVp4p1xUQWBrFXR9s/wyoTpG8zOJGkY= +github.com/containerd/continuity v0.0.0-20190815185530-f2a389ac0a02/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= +github.com/containerd/continuity v0.0.0-20191127005431-f65d91d395eb/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= +github.com/containerd/continuity v0.0.0-20200710164510-efbc4488d8fe/go.mod h1:cECdGN1O8G9bgKTlLhuPJimka6Xb/Gg7vYzCTNVxhvo= +github.com/containerd/continuity v0.0.0-20201208142359-180525291bb7 h1:6ejg6Lkk8dskcM7wQ28gONkukbQkM4qpj4RnYbpFzrI= +github.com/containerd/continuity v0.0.0-20201208142359-180525291bb7/go.mod h1:kR3BEg7bDFaEddKm54WSmrol1fKWDU1nKYkgrcgZT7Y= +github.com/containerd/fifo v0.0.0-20180307165137-3d5202aec260/go.mod h1:ODA38xgv3Kuk8dQz2ZQXpnv/UZZUHUCL7pnLehbXgQI= github.com/containerd/fifo v0.0.0-20190226154929-a9fb20d87448/go.mod h1:ODA38xgv3Kuk8dQz2ZQXpnv/UZZUHUCL7pnLehbXgQI= -github.com/containerd/fifo v0.0.0-20191213151349-ff969a566b00 h1:lsjC5ENBl+Zgf38+B0ymougXFp0BaubeIVETltYZTQw= -github.com/containerd/fifo v0.0.0-20191213151349-ff969a566b00/go.mod h1:jPQ2IAeZRCYxpS/Cm1495vGFww6ecHmMk1YJH2Q5ln0= -github.com/containerd/go-cni v0.0.0-20200107172653-c154a49e2c75 h1:5Q5C6jDObSVpjeX8CuZ5yac8d/KIYuPzUHbUzdL+NFw= -github.com/containerd/go-cni v0.0.0-20200107172653-c154a49e2c75/go.mod h1:0mg8r6FCdbxvLDqCXwAx2rO+KA37QICjKL8+wHOG5OE= +github.com/containerd/fifo v0.0.0-20200410184934-f15a3290365b/go.mod h1:jPQ2IAeZRCYxpS/Cm1495vGFww6ecHmMk1YJH2Q5ln0= +github.com/containerd/fifo v0.0.0-20201026212402-0724c46b320c h1:1c6xmkNiu6Jnr6AKGM91GGNsfU+nPNFvw9BZFSo0E+c= +github.com/containerd/fifo v0.0.0-20201026212402-0724c46b320c/go.mod h1:jPQ2IAeZRCYxpS/Cm1495vGFww6ecHmMk1YJH2Q5ln0= +github.com/containerd/go-cni v1.0.1 h1:VXr2EkOPD0v1gu7CKfof6XzEIDzsE/dI9yj/W7PSWLs= +github.com/containerd/go-cni v1.0.1/go.mod h1:+vUpYxKvAF72G9i1WoDOiPGRtQpqsNW/ZHtSlv++smU= github.com/containerd/go-runc v0.0.0-20180907222934-5a6d9f37cfa3/go.mod h1:IV7qH3hrUgRmyYrtgEeGWJfWbgcHL9CSRruz2Vqcph0= +github.com/containerd/go-runc v0.0.0-20190911050354-e029b79d8cda/go.mod h1:IV7qH3hrUgRmyYrtgEeGWJfWbgcHL9CSRruz2Vqcph0= +github.com/containerd/go-runc v0.0.0-20200220073739-7016d3ce2328 h1:PRTagVMbJcCezLcHXe8UJvR1oBzp2lG3CEumeFOLOds= +github.com/containerd/go-runc v0.0.0-20200220073739-7016d3ce2328/go.mod h1:PpyHrqVs8FTi9vpyHwPwiNEGaACDxT/N/pLcvMSRA9g= +github.com/containerd/imgcrypt v1.0.1/go.mod h1:mdd8cEPW7TPgNG4FpuP3sGBiQ7Yi/zak9TYCG3juvb0= +github.com/containerd/nri v0.0.0-20201007170849-eb1350a75164/go.mod h1:+2wGSDGFYfE5+So4M5syatU0N0f0LbWpuqyMi4/BE8c= github.com/containerd/ttrpc v0.0.0-20190828154514-0e0f228740de/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o= -github.com/containerd/ttrpc v0.0.0-20191028202541-4f1b8fe65a5c h1:+RqLdWzn0xFunb+sxXaEzHOg8NuEG/eaI+9C1xXX8Mw= +github.com/containerd/ttrpc v0.0.0-20190828172938-92c8520ef9f8/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o= github.com/containerd/ttrpc v0.0.0-20191028202541-4f1b8fe65a5c/go.mod h1:LPm1u0xBw8r8NOKoOdNMeVHSawSsltak+Ihv+etqsE8= +github.com/containerd/ttrpc v1.0.1/go.mod h1:UAxOpgT9ziI0gJrmKvgcZivgxOp8iFPSk8httJEt98Y= +github.com/containerd/ttrpc v1.0.2 h1:2/O3oTZN36q2xRolk0a2WWGgh7/Vf/liElg5hFYLX9U= +github.com/containerd/ttrpc v1.0.2/go.mod h1:UAxOpgT9ziI0gJrmKvgcZivgxOp8iFPSk8httJEt98Y= github.com/containerd/typeurl v0.0.0-20180627222232-a93fcdb778cd/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc= -github.com/containerd/typeurl v0.0.0-20190911142611-5eb25027c9fd h1:bRLyitWw3PT/2YuVaCKTPg0cA5dOFKFwKtkfcP2dLsA= github.com/containerd/typeurl v0.0.0-20190911142611-5eb25027c9fd/go.mod h1:GeKYzf2pQcqv7tJ0AoCuuhtnqhva5LNU3U+OyKxxJpk= -github.com/containernetworking/cni v0.7.1 h1:fE3r16wpSEyaqY4Z4oFrLMmIGfBYIKpPrHK31EJ9FzE= +github.com/containerd/typeurl v1.0.1 h1:PvuK4E3D5S5q6IqsPDCy928FhP0LUIGcmZ/Yhgp5Djw= +github.com/containerd/typeurl v1.0.1/go.mod h1:TB1hUtrpaiO88KEK56ijojHS1+NeF0izUACaJW2mdXg= +github.com/containerd/zfs v0.0.0-20200918131355-0a33824f23a2/go.mod h1:8IgZOBdv8fAgXddBT4dBXJPtxyRsejFIpXoklgxgEjw= github.com/containernetworking/cni v0.7.1/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY= +github.com/containernetworking/cni v0.8.0 h1:BT9lpgGoH4jw3lFC7Odz2prU5ruiYKcgAjMCbgybcKI= +github.com/containernetworking/cni v0.8.0/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY= +github.com/containernetworking/plugins v0.8.6/go.mod h1:qnw5mN19D8fIwkqW7oHHYDHVlzhJpcY6TQxn/fUyDDM= +github.com/containers/ocicrypt v1.0.1/go.mod h1:MeJDzk1RJHv89LjsH0Sp5KTY3ZYkjXO/C+bKAeWFIrc= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= github.com/coreos/go-iptables v0.4.5 h1:DpHb9vJrZQEFMcVLFKAAGMUVX0XoRC0ptCthinRYm38= github.com/coreos/go-iptables v0.4.5/go.mod h1:/mVI274lEDI2ns62jHCDnCyBF9Iwsmekav8Dbxlm1MU= -github.com/coreos/go-oidc v2.2.1+incompatible h1:mh48q/BqXqgjVHpy2ZY7WnWAbenxRjsz9N1i1YxjHAk= -github.com/coreos/go-oidc v2.2.1+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc= +github.com/coreos/go-oidc v2.1.0+incompatible h1:sdJrfw8akMnCuUlaZU3tE/uYXFgfqom8DBE9so9EBsM= +github.com/coreos/go-oidc v2.1.0+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc= +github.com/coreos/go-oidc/v3 v3.4.0 h1:xz7elHb/LDwm/ERpwHd+5nb7wFHL32rsr6bBOgaeu6g= +github.com/coreos/go-oidc/v3 v3.4.0/go.mod h1:eHUXhZtXPQLgEaDrOVTgwbgmz1xGOkJNye6h3zkD2Pw= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= +github.com/coreos/go-systemd v0.0.0-20161114122254-48702e0da86b/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= +github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e h1:Wf6HqHfScWJN9/ZjdUKyjop4mf3Qdd+1TvvltAvM3m8= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f h1:JOrtw2xFKzlg+cbHpyrpLDmnN1HqhBfnX7WDiW7eG2c= -github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= +github.com/coreos/go-systemd/v22 v22.0.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= +github.com/coreos/go-systemd/v22 v22.1.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= +github.com/coreos/go-systemd/v22 v22.3.2 h1:D9/bQk5vlXQFZ6Kwuu6zaiXJ9oTPe68++AzAJc1DzSI= +github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/cppforlife/go-semi-semantic v0.0.0-20160921010311-576b6af77ae4 h1:J+ghqo7ZubTzelkjo9hntpTtP/9lUCWH9icEmAW+B+Q= github.com/cppforlife/go-semi-semantic v0.0.0-20160921010311-576b6af77ae4/go.mod h1:socxpf5+mELPbosI149vWpNlHK6mbfWFxSWOoSndXR8= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= +github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= +github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.9 h1:uDmaGzcdjhF4i/plgjmEsriH11Y0o7RKapEf/LDaM3w= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/cyberark/conjur-api-go v0.6.0 h1:QQYmFRhcCvmtZ9oSRoXCxWb7uRjppfu5lcEwo4HEjtg= github.com/cyberark/conjur-api-go v0.6.0/go.mod h1:uM96pLpckwYYAWRSbrsw+TT0y3kg49QCEGpdpa9dJ34= -github.com/davecgh/go-spew v0.0.0-20151105211317-5215b55f46b2/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4= +github.com/d2g/dhcp4 v0.0.0-20170904100407-a1d1b6c41b1c/go.mod h1:Ct2BUK8SB0YC1SMSibvLzxjeJLnrYEVLULFNiHY9YfQ= +github.com/d2g/dhcp4client v1.0.0/go.mod h1:j0hNfjhrt2SxUOw55nL0ATM/z4Yt3t2Kd1mW34z5W5s= +github.com/d2g/dhcp4server v0.0.0-20181031114812-7d4a0a7f59a5/go.mod h1:Eo87+Kg/IX2hfWJfwxMzLyuSZyxSoAug2nGa1G2QAi8= +github.com/d2g/hardwareaddr v0.0.0-20190221164911-e7d9fbe030e4/go.mod h1:bMl4RjIciD2oAxI7DmWRx6gbeqrkoLqv3MV0vzNad+I= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/dexidp/dex/api/v2 v2.0.0 h1:bvge1sRmzVzWPWp4WlMzS04lcNQA+jFzHqKV3066bRw= -github.com/dexidp/dex/api/v2 v2.0.0/go.mod h1:k5arBJT1QYvpsEY3sEd0NXJp3hKWKuUUfzJ3BlcqPdM= +github.com/denverdino/aliyungo v0.0.0-20190125010748-a747050bb1ba/go.mod h1:dV8lFg6daOBZbT6/BDGIz6Y3WFGn8juu6G+CQ6LHtl0= +github.com/dexidp/dex/api/v2 v2.1.0 h1:V7XTnG2HM2bqWZMABDQpf4EA6F+0jWPsv9pGaUIDo+k= +github.com/dexidp/dex/api/v2 v2.1.0/go.mod h1:s91/6CI290JhYN1F8aiRifLF71qRGLVZvzq68uC6Ln4= +github.com/dgrijalva/jwt-go v0.0.0-20170104182250-a601269ab70c/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= -github.com/docker/distribution v2.7.1-0.20190205005809-0d3efadf0154+incompatible h1:dvc1KSkIYTVjZgHf/CTC2diTYC8PzhaA5sFISRfNVrE= +github.com/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E= +github.com/docker/distribution v0.0.0-20190905152932-14b96e55d84c/go.mod h1:0+TTO4EOBfRPhZXAeF1Vu+W3hHZ8eLp8PgKVZlcvtFY= github.com/docker/distribution v2.7.1-0.20190205005809-0d3efadf0154+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -github.com/docker/docker v0.7.3-0.20190506211059-b20a14b54661 h1:ZuxGvIvF01nfc/G9RJ5Q7Va1zQE2WJyG18Zv3DqCEf4= -github.com/docker/docker v0.7.3-0.20190506211059-b20a14b54661/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= -github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= +github.com/docker/go-events v0.0.0-20170721190031-9461782956ad/go.mod h1:Uw6UezgYA44ePAFQYUehOuCzmy5zmg/+nl2ZfMWGkpA= github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c h1:+pKlWGMw7gf6bQ+oDZB4KHQFypsfjYlq/C4rfL7D3g8= github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c/go.mod h1:Uw6UezgYA44ePAFQYUehOuCzmy5zmg/+nl2ZfMWGkpA= -github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= +github.com/docker/go-metrics v0.0.0-20180209012529-399ea8c73916/go.mod h1:/u0gXw0Gay3ceNrsHubL3BtdOL2fHf93USgMTe0W5dI= +github.com/docker/go-metrics v0.0.1/go.mod h1:cG1hvH2utMXtqgqqYE9plW6lDxS3/5ayHzueweSI3Vw= github.com/docker/go-units v0.4.0 h1:3uh0PgVws3nIA0Q+MwDC8yjEPf9zjRfZZWXZYDct3Tw= github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= +github.com/docker/libtrust v0.0.0-20150114040149-fa567046d9b1/go.mod h1:cyGadeNEkKy96OOhEzfZl+yxihPEzKnqJwvfuSUqbZE= +github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM= github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= +github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= +github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= +github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= +github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= +github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= +github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0= +github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go.mod h1:KJwIaB5Mv44NWtYuAOFCVOjcI94vtpEz2JU/D2v6IjE= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/evanphx/json-patch v4.5.0+incompatible h1:ouOWdg56aJriqS0huScTkVXPC5IcNrDCXZ6OoTAWu7M= -github.com/evanphx/json-patch v4.5.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= +github.com/evanphx/json-patch v4.9.0+incompatible h1:kLcOMZeuLAJvL2BPWLMIj5oaZQobrkAqrL+WFZwQses= +github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/fatih/color v1.10.0 h1:s36xzo75JdqLaaWoiEHk767eHiwo0598uUxyfiPkDsg= github.com/fatih/color v1.10.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM= +github.com/fatih/color v1.13.0 h1:8LOYc1KYPPmyKMuN8QV2DNRWNbLo6LZ0iLs8+mlH53w= +github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= -github.com/felixge/httpsnoop v1.0.1 h1:lvB5Jl89CsZtGIWuTcDM1E/vkVs49/Ml7JJe07l8SPQ= github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= -github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= +github.com/felixge/httpsnoop v1.0.3 h1:s/nj+GCswXYzN5v2DpNMuMQYe+0DDwt5WVCU6CWBdXk= +github.com/felixge/httpsnoop v1.0.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= +github.com/form3tech-oss/jwt-go v3.2.2+incompatible h1:TcekIExNqud5crz4xD2pavyTgWiPvpYe4Xau31I0PRk= +github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= +github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= +github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= +github.com/fsnotify/fsnotify v1.5.1 h1:mZcQUHVQUQWoPXXtuf9yuEXKudkV2sx1E06UadKWpgI= +github.com/fsnotify/fsnotify v1.5.1/go.mod h1:T3375wBYaZdLLcVNkcVbzGHY7f1l/uK5T5Ai1i3InKU= +github.com/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa/go.mod h1:KnogPXtdwXqoenmZCw6S+25EAm2MkxbG0deNDu4cbSA= +github.com/garyburd/redigo v0.0.0-20150301180006-535138d7bcd7/go.mod h1:NR3MbYisc3/PwhQ00EMzDiPmrwpPxAn5GI05/YaO1SY= github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-asn1-ber/asn1-ber v1.3.1/go.mod h1:hEBeB/ic+5LoWskz+yKT7vGhhPYkProFKoKdwZRWMe0= +github.com/go-asn1-ber/asn1-ber v1.5.4 h1:vXT6d/FNDiELJnLb6hGNa309LMsrCoYFvpwHDF0+Y1A= +github.com/go-asn1-ber/asn1-ber v1.5.4/go.mod h1:hEBeB/ic+5LoWskz+yKT7vGhhPYkProFKoKdwZRWMe0= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/go-ini/ini v1.25.4/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= +github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= +github.com/go-kit/log v0.2.0/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= github.com/go-ldap/ldap/v3 v3.1.3/go.mod h1:3rbOH3jRS2u6jg2rJnKAMLE/xQyCKIveG2Sa/Cohzb8= +github.com/go-ldap/ldap/v3 v3.4.4 h1:qPjipEpt+qDa6SI/h1fzuGWoRUY+qqQ9sOZq67/PYUs= +github.com/go-ldap/ldap/v3 v3.4.4/go.mod h1:fe1MsuN5eJJ1FeLT/LEBVdWfNWKh459R7aXgXtJC+aI= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0= -github.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg= -github.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501/go.mod h1:J8+jY1nAiCcj+friV/PDoE1/3eeccG9LYBs0tYvLOWc= -github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I= +github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= +github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= +github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= +github.com/go-logr/logr v0.2.0 h1:QvGt2nLcHH0WK9orKa+ppBPAxREcH364nPUedEpK0TY= +github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= +github.com/go-openapi/inflect v0.19.0/go.mod h1:lHpZVlpIQqLyKwJ4N+YSc9hchQy/i12fJykb83CRBH4= +github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg= +github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= +github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc= +github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8= +github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo= +github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= +github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= github.com/go-playground/locales v0.13.0 h1:HyWk6mgj5qFqCT5fjGBuRArbVDfE4hi8+e8ceBS/t7Q= github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= @@ -244,41 +415,56 @@ github.com/go-playground/universal-translator v0.17.0 h1:icxd5fm+REJzpZx7ZfpaD87 github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= github.com/go-playground/validator/v10 v10.4.1 h1:pH2c5ADXtd66mxoE0Zm9SUhxE20r7aM3F26W0hOn+GE= github.com/go-playground/validator/v10 v10.4.1/go.mod h1:nlOn6nFhuKACm19sB/8EGNn9GlaMV7XkbRSipzJ0Ii4= -github.com/go-redis/redis v6.15.6+incompatible/go.mod h1:NAIEuMOZ/fxfXJIrKDQDz8wamY7mA7PouImQ2Jvg6kA= -github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= -github.com/go-sql-driver/mysql v1.5.0 h1:ozyZYNQW3x3HtqT1jira07DN2PArx2v7/mN66gGcHOs= -github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= +github.com/go-sql-driver/mysql v1.6.0 h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfCHuOE= +github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/go-test/deep v1.0.2-0.20181118220953-042da051cf31 h1:28FVBuwkwowZMjbA7M0wXsI6t3PYulRTMio3SO+eKCM= github.com/go-test/deep v1.0.2-0.20181118220953-042da051cf31/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA= -github.com/gobuffalo/here v0.6.0 h1:hYrd0a6gDmWxBM4TnrGw8mQg24iSVoIkHEk7FodQcBI= -github.com/gobuffalo/here v0.6.0/go.mod h1:wAG085dHOYqUpf+Ap+WOdrPTp5IYcDAs/x7PLa8Y5fM= +github.com/go-test/deep v1.0.3 h1:ZrJSEWsXzPOxaZnFteGEfooLba+ju3FYIbOrS+rQd68= +github.com/go-test/deep v1.0.3/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA= +github.com/gobuffalo/envy v1.7.0 h1:GlXgaiBkmrYMHco6t4j7SacKO4XUjvh5pwXh0f4uxXU= +github.com/gobuffalo/envy v1.7.0/go.mod h1:n7DRkBerg/aorDM8kbduw5dN3oXGswK5liaSCx4T5NI= +github.com/gobuffalo/logger v1.0.0/go.mod h1:2zbswyIUa45I+c+FLXuWl9zSWEiVuthsk8ze5s8JvPs= +github.com/gobuffalo/packd v0.3.0 h1:eMwymTkA1uXsqxS0Tpoop3Lc0u3kTfiMBE6nKtQU4g4= +github.com/gobuffalo/packd v0.3.0/go.mod h1:zC7QkmNkYVGKPw4tHpBQ+ml7W/3tIebgeo1b36chA3Q= +github.com/gobuffalo/packr v1.30.1 h1:hu1fuVR3fXEZR7rXNW3h8rqSML8EVAf6KNm0NKO/wKg= +github.com/gobuffalo/packr v1.30.1/go.mod h1:ljMyFO2EcrnzsHsN99cvbq055Y9OhRrIaviy289eRuk= +github.com/gobuffalo/packr/v2 v2.5.1/go.mod h1:8f9c96ITobJlPzI44jj+4tHnEKNt0xXWSVlXRN9X1Iw= github.com/goccy/go-yaml v1.8.8 h1:MGfRB1GeSn/hWXYWS2Pt67iC2GJNnebdIro01ddyucA= github.com/goccy/go-yaml v1.8.8/go.mod h1:U/jl18uSupI5rdI2jmuCswEA2htH9eXfferR3KfscvA= +github.com/godbus/dbus v0.0.0-20151105175453-c7fdd8b5cd55/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw= +github.com/godbus/dbus v0.0.0-20180201030542-885f9cc04c9c/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw= github.com/godbus/dbus v0.0.0-20190422162347-ade71ed3457e h1:BWhy2j3IXJhjCbC68FptL43tDKIq8FladmaTs3Xs7Z8= github.com/godbus/dbus v0.0.0-20190422162347-ade71ed3457e/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4= -github.com/gogo/googleapis v1.3.1 h1:CzMaKrvF6Qa7XtRii064vKBQiyvmY8H8vG1xa1/W1JA= -github.com/gogo/googleapis v1.3.1/go.mod h1:d+q1s/xVJxZGKWwC/6UfPIF33J+G1Tq4GYv9Y+Tg/EU= +github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= +github.com/godbus/dbus/v5 v5.0.4 h1:9349emZab16e7zQvpmsbtjc18ykshndd8y2PG3sgJbA= +github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= +github.com/gogo/googleapis v1.2.0/go.mod h1:Njal3psf3qN6dwBtQfUmBZh2ybovJ0tlu3o/AC7HYjU= +github.com/gogo/googleapis v1.4.0 h1:zgVt4UpGxcqVOw97aRGxT4svlcmdK35fynLNctY32zI= +github.com/gogo/googleapis v1.4.0/go.mod h1:5YRNX2z1oM5gXdAkurHa942MDgEJyk02w4OecKY87+c= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= -github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= github.com/gogo/protobuf v1.3.0/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= +github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e h1:1r7pUrabqp18hOBcwBwiTsbnFeTZHV9eER/QT5JVZxY= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= +github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/protobuf v0.0.0-20161109072736-4bd1920723d7/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.0.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= +github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8= +github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= +github.com/golang/protobuf v1.1.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= @@ -291,10 +477,15 @@ github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrU github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= -github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/snappy v0.0.1 h1:Qgr9rKW7uDUkrbSmQeiDsGa8SjGyCOGtuasMWwvp2P4= +github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM= +github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= +github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golang/snappy v0.0.3 h1:fHPg5GQYlCeLIPB9BZqMVR5nR9A+IM5zcgeTdjMYmLA= +github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= @@ -303,15 +494,24 @@ github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMyw github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU= +github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/gofuzz v0.0.0-20161122191042-44d81051d367/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI= -github.com/google/gofuzz v1.0.0 h1:A8PeW59pxE9IoFRqBp37U+mSNaQoZ46F1f0f863XSXw= +github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE= +github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg= +github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/gofuzz v1.1.0 h1:Hsa8mG0dQ46ij8Sl2AYJDUv1oA9/d6Vk+3LG99Oe02g= +github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/jsonapi v0.0.0-20180618021926-5d047c6bc66b h1:ndHKV+Umsd7wiG2y6n8aTdFdzCFh1pJ6UjsOEUA3Kqw= github.com/google/jsonapi v0.0.0-20180618021926-5d047c6bc66b/go.mod h1:XSx4m2SziAqk9DXY9nz659easTq4q6TyrpYd9tHSm0g= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= +github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= +github.com/google/martian/v3 v3.2.1/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= @@ -319,45 +519,65 @@ github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hf github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= +github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/googleapis/enterprise-certificate-proxy v0.0.0-20220520183353-fd19c99a87aa/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= +github.com/googleapis/enterprise-certificate-proxy v0.1.0 h1:zO8WHNx/MYiAKJ3d5spxZXZE6KHmIQGQcAzwUzV7qQw= +github.com/googleapis/enterprise-certificate-proxy v0.1.0/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= -github.com/googleapis/gax-go/v2 v2.0.5 h1:sjZBwGj9Jlw33ImPtvFviGYvseOtDM7hkSKB7+Tv3SM= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= -github.com/googleapis/gnostic v0.3.1 h1:WeAefnSUHlBb0iJKwxFDZdbfGwkd7xRNuV+IpXMJhYk= -github.com/googleapis/gnostic v0.3.1/go.mod h1:on+2t9HRStVgn95RSsFWFz+6Q0Snyqv1awfrALZdbtU= +github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0= +github.com/googleapis/gax-go/v2 v2.1.1/go.mod h1:hddJymUZASv3XPyGkUpKj8pPO47Rmb0eJc8R6ouapiM= +github.com/googleapis/gax-go/v2 v2.2.0/go.mod h1:as02EH8zWkzwUoLbBaFeQ+arQaj/OthfcblKl4IGNaM= +github.com/googleapis/gax-go/v2 v2.3.0/go.mod h1:b8LNqSzNabLiUpXKkY7HAR5jr6bIT99EXz9pXxye9YM= +github.com/googleapis/gax-go/v2 v2.4.0 h1:dS9eYAjhrE2RjmzYw2XAPvcXfmcQLtFEQWn0CR82awk= +github.com/googleapis/gax-go/v2 v2.4.0/go.mod h1:XOTVJ59hdnfJLIP/dh8n5CGryZR2LxK9wbMD5+iXC6c= +github.com/googleapis/gnostic v0.4.1 h1:DLJCy1n/vrD4HPjOvYcT8aYQXpPIzoRZONaYwyycI+I= +github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg= +github.com/googleapis/go-type-adapters v1.0.0/go.mod h1:zHW75FOG2aur7gAO2B+MLby+cLsWGBF62rFAi7WjWO4= github.com/googleinterns/cloud-operations-api-mock v0.0.0-20200709193332-a1e58c29bdd3 h1:eHv/jVY/JNop1xg2J9cBb4EzyMpWZoNCP1BslSAIkOI= github.com/googleinterns/cloud-operations-api-mock v0.0.0-20200709193332-a1e58c29bdd3/go.mod h1:h/KNeRx7oYU4SpA4SoY7W2/NxDKEEVuwA6j9A27L4OI= -github.com/gophercloud/gophercloud v0.10.0 h1:Et+UGxoD72pK6K+46uOwyVxbtXJ6KBkWAegXBmqlf6c= -github.com/gophercloud/gophercloud v0.10.0/go.mod h1:gmC5oQqMDOMO1t1gq5DquX/yAU808e/4mzjjDA76+Ss= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e h1:JKmoR8x90Iww1ks85zJ1lfDGgIiMDuIptTOhJq+zKyg= github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= -github.com/gorilla/handlers v1.4.2 h1:0QniY0USkHQ1RGCLfKxeNHK9bkDHGRYGNDFBCS+YARg= -github.com/gorilla/handlers v1.4.2/go.mod h1:Qkdc/uu4tH4g6mTK6auzZ766c4CA0Ng8+o/OAirnOIQ= -github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= -github.com/gorilla/mux v1.7.3 h1:gnP5JzjVOuiZD07fKKToCAOjS0yOpj/qPETTXCCS6hw= -github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= +github.com/gorilla/handlers v0.0.0-20150720190736-60c7bfde3e33/go.mod h1:Qkdc/uu4tH4g6mTK6auzZ766c4CA0Ng8+o/OAirnOIQ= +github.com/gorilla/handlers v1.5.1 h1:9lRY6j8DEeeBT10CvO9hGW0gmky0BprnvDI5vfhUHH4= +github.com/gorilla/handlers v1.5.1/go.mod h1:t8XrUpc4KVXb7HGyJ4/cEnwQiaxrX/hz1Zv/4g96P1Q= +github.com/gorilla/mux v1.7.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= +github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= +github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= -github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= -github.com/gorilla/websocket v1.4.1 h1:q7AeDBpnBk8AogcD4DSag/Ukw/KV+YhzLj2bP5HvKCM= -github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= +github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= +github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/hashicorp/errwrap v0.0.0-20141028054710-7554cd9344ce/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/errwrap v1.0.0 h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= -github.com/hashicorp/go-cleanhttp v0.5.1 h1:dH3aiDG9Jvb5r5+bYHsikaOUIpcM0xvgMXVoDkXMzJM= github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= +github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ= +github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48= github.com/hashicorp/go-hclog v0.0.0-20180709165350-ff2cf002a8dd/go.mod h1:9bjs9uLqI8l75knNv3lV1kA55veR+WUPSiKIWcQHudI= github.com/hashicorp/go-hclog v0.8.0/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ= -github.com/hashicorp/go-hclog v0.9.2 h1:CG6TE5H9/JXsFWJCfoIVpKFIkFe6ysEuHirp4DxCsHI= github.com/hashicorp/go-hclog v0.9.2/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ= +github.com/hashicorp/go-hclog v1.0.0 h1:bkKf0BeBXcSYa7f5Fyi9gMuQ8gNsxeiNpZjR6VxNZeo= +github.com/hashicorp/go-hclog v1.0.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= github.com/hashicorp/go-multierror v0.0.0-20161216184304-ed905158d874/go.mod h1:JMRHfdO9jKNzS/+BTlxCjKNQHg/jZAft8U7LloJvN7I= github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= @@ -381,6 +601,8 @@ github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hashicorp/hcl/v2 v2.10.0/go.mod h1:FwWsfWEjyV/CMj8s/gqAuiviY72rJ1/oayI9WftqcKg= +github.com/hashicorp/hcl/v2 v2.13.0/go.mod h1:e4z5nxYlWNPdDSNYX+ph14EvWYMFm3eP0zIUqPc2jr0= github.com/hashicorp/vault/api v1.0.5-0.20191108163347-bdd38fca2cff h1:cl94LQIrs/mNbh3ny1R8lM1gtYcUBa7HnGtOCi35SlQ= github.com/hashicorp/vault/api v1.0.5-0.20191108163347-bdd38fca2cff/go.mod h1:Uf8LaHyrYsgVgHzO2tMZKhqRGlL3UJ6XaSwW2EA1Iqo= github.com/hashicorp/vault/sdk v0.1.14-0.20191108161836-82f2b5571044/go.mod h1:PcekaFGiPJyHnFy+NZhP6ll650zEw51Ag7g/YEa+EOU= @@ -390,51 +612,75 @@ github.com/hashicorp/yamux v0.0.0-20180604194846-3520598351bb/go.mod h1:+NfK9FKe github.com/hashicorp/yamux v0.0.0-20181012175058-2f1d1f20f75d/go.mod h1:+NfK9FKeTrX5uv1uIXGdwYDTeHna2qgaIlx54MXqjAM= github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/huandu/xstrings v1.3.1/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= +github.com/huandu/xstrings v1.3.2 h1:L18LIDzqlW6xN2rEkpdV8+oL/IXWJ1APd+vsdYy4Wdw= +github.com/huandu/xstrings v1.3.2/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= -github.com/imdario/mergo v0.3.6 h1:xTNEAn+kxVO7dTZGu0CegyqKZmoWFI0rF8UxjlB2d28= -github.com/imdario/mergo v0.3.6/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= +github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= +github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= +github.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= +github.com/imdario/mergo v0.3.10/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= +github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= +github.com/imdario/mergo v0.3.12 h1:b6R2BslTbIEToALKP7LxUvijTsNI9TAe80pLWN2g/HU= +github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= github.com/inconshreveable/go-update v0.0.0-20160112193335-8152e7eb6ccf h1:WfD7VjIE6z8dIvMsI4/s+1qr5EL+zoIGev1BQj1eoJ8= github.com/inconshreveable/go-update v0.0.0-20160112193335-8152e7eb6ccf/go.mod h1:hyb9oH7vZsitZCiBt0ZvifOrB+qc8PS5IiilCIb87rg= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/influxdata/influxdb1-client v0.0.0-20190118215656-f8cdb5d5f175 h1:NR6eyx+1eski3gN8uqdtjnfpmq0T3lO6HhrPheCPFFc= github.com/influxdata/influxdb1-client v0.0.0-20190118215656-f8cdb5d5f175/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= +github.com/j-keck/arping v0.0.0-20160618110441-2cf9dc699c56/go.mod h1:ymszkNOg6tORTn+6F6j+Jc8TOr5osrynvN6ivFWZ2GA= +github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= +github.com/jmespath/go-jmespath v0.0.0-20160803190731-bd40a432e4c7/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af h1:pmfjZENx5imkbgOkpRUYLnmbU7UEFbjtDA2hxJ1ichM= github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/joefitzgerald/rainbow-reporter v0.1.0 h1:AuMG652zjdzI0YCCnXAqATtRBpGXMcAnrajcaTrSeuo= github.com/joefitzgerald/rainbow-reporter v0.1.0/go.mod h1:481CNgqmVHQZzdIbN52CupLJyoVwB10FQ/IQlF1pdL8= +github.com/joho/godotenv v1.3.0 h1:Zjp+RcGpHhGlrMbJzXTrZZPrWj+1vfm90La1wgB6Bhc= +github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= -github.com/jonboulle/clockwork v0.2.0 h1:J2SLSdy7HgElq8ekSl2Mxh6vrRNFxqbXGenYH2I02Vs= -github.com/jonboulle/clockwork v0.2.0/go.mod h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUBGnn1kMkgxc8= -github.com/json-iterator/go v0.0.0-20180612202835-f2b4162afba3/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= +github.com/jonboulle/clockwork v0.2.2 h1:UOGuzwb1PwsrDAObMuhUnj0p5ULPj8V/xJ7Kx9qUBdQ= +github.com/jonboulle/clockwork v0.2.2/go.mod h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUBGnn1kMkgxc8= +github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.9 h1:9yzud/Ht36ygwatGx56VwCZtlI/2AD15T1X2sjSuGns= -github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= +github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= github.com/jtolds/gls v4.2.1+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= -github.com/jtolds/gls v4.2.2-0.20181110203027-b4936e06046b+incompatible h1:4RPNbAyTaZjdBukGYfEQ1HHHYQxYSsbRohYMBPs8RRw= github.com/jtolds/gls v4.2.2-0.20181110203027-b4936e06046b+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= +github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo= +github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= +github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= +github.com/karrick/godirwalk v1.10.12/go.mod h1:RoGL9dQei4vP9ilrpETWE8CLOZ1kiN0LhBygSwrAsHA= github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/klauspost/compress v1.9.7 h1:hYW1gP94JUmAhBtJ+LNz5My+gBobDxPR1iVuKug26aA= -github.com/klauspost/compress v1.9.7/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= +github.com/klauspost/compress v1.11.3 h1:dB4Bn0tN3wdCzQxnS8r06kV74qN/TAfaIS0bVE8h3jc= +github.com/klauspost/compress v1.11.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/konsorten/go-windows-terminal-sequences v1.0.2 h1:DB17ag19krx9CFsz4o3enTrPXyIXCl+2iCXH/aMAp9s= github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= -github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= +github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA= github.com/kr/pty v1.1.8 h1:AkaSdXYQOWeaO3neb8EM634ahkXXe3jYbVh/F9lq+GI= github.com/kr/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw= -github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/krishicks/yaml-patch v0.0.10 h1:H4FcHpnNwVmw8u0MjPRjWyIXtco6zM2F78t+57oNM3E= github.com/krishicks/yaml-patch v0.0.10/go.mod h1:Sm5TchwZS6sm7RJoyg87tzxm2ZcKzdRE4Q7TjNhPrME= +github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348/go.mod h1:B69LEHPfb2qLo0BaaOLcbitczOKLWTsrBG9LczfCD4k= github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= github.com/lann/builder v0.0.0-20180802200727-47ae307949d0 h1:SOEGU9fKiNWd/HOJuq6+3iTQz8KNCLtVX6idSoTLdUw= @@ -443,68 +689,96 @@ github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0 h1:P6pPBnrTSX3DEVR4fDembhR github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0/go.mod h1:vmVJ0l/dxyfGW6FmdpVm2joNMFikkuWg0EoCKLGUMNw= github.com/leodido/go-urn v1.2.0 h1:hpXL4XnriNwQ/ABnpepYM/1vCLWNDfUNts8dX3xTG6Y= github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= -github.com/lib/pq v1.3.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= -github.com/lib/pq v1.10.0 h1:Zx5DJFEYQXio93kgXnQ09fXNiUKsqv4OUEu2UtGcB1E= -github.com/lib/pq v1.10.0/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= +github.com/lib/pq v1.10.7 h1:p7ZhMD+KsSRozJr34udlUrhboJwWAgCg34+/ZZNvZZw= +github.com/lib/pq v1.10.7/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/markbates/pkger v0.17.1 h1:/MKEtWqtc0mZvu9OinB9UzVN9iYCwLWuyUv4Bw+PCno= -github.com/markbates/pkger v0.17.1/go.mod h1:0JoVlrol20BSywW79rN3kdFFsE5xYM+rSCQDXbLhiuI= -github.com/mattermost/xml-roundtrip-validator v0.0.0-20201204154048-1a8688af4cf1 h1:D2uMrH5NnWgU7JdjiWjOg/n31gbPH6I0D3IbCrqVVYE= -github.com/mattermost/xml-roundtrip-validator v0.0.0-20201204154048-1a8688af4cf1/go.mod h1:qccnGMcpgwcNaBnxqpJpWWUiPNr5H3O8eDgGV9gT5To= +github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= +github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= +github.com/mailru/easyjson v0.7.0/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs= +github.com/marstr/guid v1.1.0/go.mod h1:74gB1z2wpxxInTG6yaqA7KrtM0NZ+RbrcqDvYHefzho= +github.com/mattermost/xml-roundtrip-validator v0.1.0 h1:RXbVD2UAl7A7nOTR4u7E3ILa4IbtvKBHw64LDsmu9hU= +github.com/mattermost/xml-roundtrip-validator v0.1.0/go.mod h1:qccnGMcpgwcNaBnxqpJpWWUiPNr5H3O8eDgGV9gT5To= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= -github.com/mattn/go-colorable v0.1.8 h1:c1ghPdyEDarC70ftn0y+A/Ee++9zz8ljHG1b13eJ0s8= +github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= +github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= +github.com/mattn/go-colorable v0.1.12 h1:jF+Du6AlPIjs2BiUiQlKOX0rt3SujHxPnksPKZbaA40= +github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= -github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY= +github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= +github.com/mattn/go-isatty v0.0.14 h1:yVuAays6BHfxijgZPzw+3Zlu5yQgKGP2/hcQbHb7S9Y= +github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= -github.com/mattn/go-sqlite3 v1.11.0 h1:LDdKkqtYlom37fkvqs8rMPFKAMe8+SgjbwZ6ex1/A/Q= -github.com/mattn/go-sqlite3 v1.11.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= -github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU= +github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= +github.com/mattn/go-shellwords v1.0.3/go.mod h1:3xCvwCdWdlDJUrvuMn7Wuy9eWs4pE8vqg+NOMyg4B2o= +github.com/mattn/go-sqlite3 v1.14.15 h1:vfoHhTN1af61xCRSWzFIWzx2YskyMTwHLrExkBOjvxI= +github.com/mattn/go-sqlite3 v1.14.15/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= +github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 h1:I0XW9+e1XWDxdcEniV4rQAIOPUGDq67JSCiRCgGCZLI= +github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= github.com/maxbrunsfeld/counterfeiter/v6 v6.2.3 h1:z1lXirM9f9WTcdmzSZahKh/t+LCqPiiwK2/DB1kLlI4= github.com/maxbrunsfeld/counterfeiter/v6 v6.2.3/go.mod h1:1ftk08SazyElaaNvmqAfZWGwJzshjCfBXDLoQtPAMNk= github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b h1:j7+1HpAFS1zy5+Q4qx1fWh90gTKwiN4QCGoY9TWyyO4= github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE= -github.com/miekg/dns v1.1.6 h1:jVwb4GDwD65q/gtItR/lIZHjNH93QfeGxZUkzJcW9mc= -github.com/miekg/dns v1.1.6/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= +github.com/miekg/dns v1.1.41 h1:WMszZWJG0XmzbK9FEmzH2TVcqYzFesusSIB41b8KHxY= +github.com/miekg/dns v1.1.41/go.mod h1:p6aan82bvRIyn+zDIv9xYNUpwa73JcSh9BKwknJysuI= +github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible/go.mod h1:8AuVvqP/mXw1px98n46wfvcGfQ4ci2FwoAjKYxuo3Z4= github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw= +github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw= +github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s= github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-testing-interface v0.0.0-20171004221916-a61a99592b77/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= +github.com/mitchellh/go-wordwrap v0.0.0-20150314170334-ad45545899c7/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= -github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= +github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mitchellh/osext v0.0.0-20151018003038-5e2d6d41470f/go.mod h1:OkQIRizQZAeMln+1tSwduZz7+Af5oFlKirV/MSYes2A= github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= +github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zxSIeXaQ= +github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= +github.com/moby/sys/mountinfo v0.4.0 h1:1KInV3Huv18akCu58V7lzNlt+jFmqlu1EaErnEHE/VM= +github.com/moby/sys/mountinfo v0.4.0/go.mod h1:rEr8tzG/lsIZHBtN/JjGG+LMYx9eXgW2JI+6q0qou+A= +github.com/moby/sys/symlink v0.1.0/go.mod h1:GGDODQmbFOjFsXvfLVn3+ZRxkch54RkSiGqsZeMYowQ= +github.com/moby/term v0.0.0-20200312100748-672ec06f55cd/go.mod h1:DdlQx2hp0Ss5/fLikoLlEeIYiATotOjgB//nb973jeo= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/reflect2 v0.0.0-20180320133207-05fbef0ca5da/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/morikuni/aec v0.0.0-20170113033406-39771216ff4c/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= +github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= +github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/mrunalp/fileutils v0.5.0/go.mod h1:M1WthSahJixYnrXQl/DFQuteStB1weuxD2QJNHXfbSQ= github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= +github.com/ncw/swift v1.0.47/go.mod h1:23YIA4yWVnGwv2dQlN4bB7egfYX6YLn0Yo/S6zZO/ZM= github.com/nu7hatch/gouuid v0.0.0-20131221200532-179d4d0c4d8d h1:VhgPp6v9qf9Agr/56bj7Y/xa04UccTW04VP0Qed4vnQ= github.com/nu7hatch/gouuid v0.0.0-20131221200532-179d4d0c4d8d/go.mod h1:YUTz3bUH2ZwIWBy3CJBeOBEugqcmXREj14T+iG/4k4U= github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA= +github.com/oklog/run v1.1.0/go.mod h1:sVPdnTZT1zYwAJeCMu2Th4T21pA3FPOQRfWjQlk7DVU= github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= +github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= +github.com/onsi/ginkgo v0.0.0-20151202141238-7f8ab55aaf3b/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.4.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.10.1/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.10.3/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.12.0 h1:Iw5WCbBcaAAd0fpRb1c9r5YCylv4XDoCSigm1zLevwU= github.com/onsi/ginkgo v1.12.0/go.mod h1:oUhWkIvk5aDxtKvDDuw8gItl8pKl42LzjC9KZE0HfGg= +github.com/onsi/gomega v0.0.0-20151007035656-2152b45fa28a/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= -github.com/onsi/gomega v1.3.0/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= @@ -512,26 +786,41 @@ github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7J github.com/onsi/gomega v1.9.0/go.mod h1:Ho0h+IUsWyvy1OpqCwxlQ/21gkhVunqlU8fDGcoTdcA= github.com/onsi/gomega v1.10.0 h1:Gwkk+PTu/nfOwNMtUB/mRUv0X7ewW5dO4AERT1ThVKo= github.com/onsi/gomega v1.10.0/go.mod h1:Ho0h+IUsWyvy1OpqCwxlQ/21gkhVunqlU8fDGcoTdcA= +github.com/opencontainers/go-digest v0.0.0-20170106003457-a6d0ee40d420/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= github.com/opencontainers/go-digest v0.0.0-20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= -github.com/opencontainers/go-digest v1.0.0-rc1 h1:WzifXhOVOEOuFYOJAW6aQqW0TooG2iki3E3Ii+WN7gQ= github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= +github.com/opencontainers/go-digest v1.0.0-rc1.0.20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= +github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= +github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= +github.com/opencontainers/image-spec v1.0.0/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= github.com/opencontainers/image-spec v1.0.1 h1:JMemWkRwHx4Zj+fVxWoMCFm/8sYGGrUVojFA6h/TRcI= github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= github.com/opencontainers/runc v0.0.0-20190115041553-12f6a991201f/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= -github.com/opencontainers/runc v0.1.1 h1:GlxAyO6x8rfZYN9Tt0Kti5a/cP41iuiO2yYT0IJGY8Y= github.com/opencontainers/runc v0.1.1/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= +github.com/opencontainers/runc v1.0.0-rc8.0.20190926000215-3e425f80a8c9/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= +github.com/opencontainers/runc v1.0.0-rc9/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= +github.com/opencontainers/runc v1.0.0-rc93 h1:x2UMpOOVf3kQ8arv/EsDGwim8PTNqzL1/EYDr/+scOM= +github.com/opencontainers/runc v1.0.0-rc93/go.mod h1:3NOsor4w32B2tC0Zbl8Knk4Wg84SM2ImC1fxBuqJ/H0= github.com/opencontainers/runtime-spec v0.1.2-0.20190507144316-5b71a03e2700/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/opencontainers/runtime-spec v1.0.1 h1:wY4pOY8fBdSIvs9+IDHC55thBuEulhzfSgKeC1yFvzQ= github.com/opencontainers/runtime-spec v1.0.1/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= +github.com/opencontainers/runtime-spec v1.0.2-0.20190207185410-29686dbc5559/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= +github.com/opencontainers/runtime-spec v1.0.2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= +github.com/opencontainers/runtime-spec v1.0.3-0.20200929063507-e6143ca7d51d h1:pNa8metDkwZjb9g4T8s+krQ+HRgZAkqnXml+wNir/+s= +github.com/opencontainers/runtime-spec v1.0.3-0.20200929063507-e6143ca7d51d/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/opencontainers/runtime-tools v0.0.0-20181011054405-1d69bd0f9c39/go.mod h1:r3f7wjNzSs2extwzU3Y+6pKfobzPh+kKFJ3ofN+3nfs= +github.com/opencontainers/selinux v1.6.0/go.mod h1:VVGKuOLlE7v4PJyT6h7mNWvq1rzqiriPsEqVhc+svHE= +github.com/opencontainers/selinux v1.8.0 h1:+77ba4ar4jsCbL1GLbFL8fFM57w6suPfSS9PDLDY7KM= +github.com/opencontainers/selinux v1.8.0/go.mod h1:RScLhm78qiWa2gbVCcGkC7tCGdgk3ogry1nUQF8Evvo= github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaRUnok+kx1WdO15EQc= github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= github.com/peterhellberg/link v1.0.0 h1:mUWkiegowUXEcmlb+ybF75Q/8D2Y0BjZtR8cxoKhaQo= github.com/peterhellberg/link v1.0.0/go.mod h1:gtSlOT4jmkY8P47hbTc8PTgiDDWpdPbFYl75keYyBB8= github.com/pierrec/lz4 v2.0.5+incompatible h1:2xWsjqPFWcplujydGg4WmhC/6fZqK42wMM8aXeqhl0I= github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1-0.20171018195549-f15c970de5b7/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -539,74 +828,114 @@ github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/term v0.0.0-20190109203006-aa71e9d9e942 h1:A7GG7zcGjl3jqAqGPmcNjd/D9hzL95SuoOQAaFNdLU0= github.com/pkg/term v0.0.0-20190109203006-aa71e9d9e942/go.mod h1:eCbImbZ95eXtAUIbLAuAVnBnwf83mjf6QIVH8SHYwqQ= -github.com/pmezard/go-difflib v0.0.0-20151028094244-d8ed2627bdf0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= -github.com/pquerna/cachecontrol v0.0.0-20180517163645-1555304b9b35 h1:J9b7z+QKAmPf4YLrFg6oQUotqHQeUNWwkvo7jZp1GLU= -github.com/pquerna/cachecontrol v0.0.0-20180517163645-1555304b9b35/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA= +github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA= +github.com/prometheus/client_golang v0.0.0-20180209125602-c332b6f63c06/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.2/go.mod h1:OsXs2jCmiKlQ1lTBmv21f2mNfw4xf/QclQDMrYNZzcM= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= -github.com/prometheus/client_golang v1.4.0 h1:YVIb/fVcOTMSqtqZWSKnHpSLBxu8DKgxq8z6RuBZwqI= -github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= +github.com/prometheus/client_golang v1.1.0/go.mod h1:I1FGZT9+L76gKKOs5djB6ezCbFQP1xR9D75/vuwEF3g= +github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= +github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= +github.com/prometheus/client_golang v1.11.1/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= +github.com/prometheus/client_golang v1.12.1/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= +github.com/prometheus/client_golang v1.13.0 h1:b71QUfeo5M8gq2+evJdTPfZhYMAU0uKPkyPJ7TPsloU= +github.com/prometheus/client_golang v1.13.0/go.mod h1:vTeo+zgvILHsnnj/39Ou/1fPN5nJFOEMgftOUOmlvYQ= +github.com/prometheus/client_model v0.0.0-20171117100541-99fa1f4be8e5/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0 h1:uq5h0d+GuxiXLJLNABMgp2qUWDPiLvgCzz2dUR+/W/M= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/common v0.0.0-20180110214958-89604d197083/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.0.0-20181126121408-4724e9255275/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.9.1 h1:KOMtN28tlbam3/7ZKEYKHhKoJZYYj3gMH4uc62x7X7U= -github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= +github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= +github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= +github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= +github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= +github.com/prometheus/common v0.37.0 h1:ccBbHCgIiT9uSoFY0vX8H3zsNR5eLt17/RQLUvn8pXE= +github.com/prometheus/common v0.37.0/go.mod h1:phzohg0JFMnBEFGxTDbfu3QyL5GI8gTQJFhYO5B3mfA= +github.com/prometheus/procfs v0.0.0-20180125133057-cb4147076ac7/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20181204211112-1dc9a6cbc91a/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190522114515-bc1a522cf7b1/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= +github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= github.com/prometheus/procfs v0.0.5/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= -github.com/prometheus/procfs v0.0.8 h1:+fpWZdT24pJBiqJdAwYBjPSk+5YmQzYNPYzQsdzLkt8= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= +github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= +github.com/prometheus/procfs v0.2.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= +github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= +github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= +github.com/prometheus/procfs v0.8.0 h1:ODq8ZFEaYeCaZOJlZZdJA2AbQR98dSHSM1KW/You5mo= +github.com/prometheus/procfs v0.8.0/go.mod h1:z7EfXMXOkbkqb9IINtpCn86r/to3BnA0uaxHdg830/4= github.com/racksec/srslog v0.0.0-20180709174129-a4725f04ec91 h1:3hihQaxFTzBL1t5bTYaPhEwL4rxD3zjSgu4afGzgQqI= github.com/racksec/srslog v0.0.0-20180709174129-a4725f04ec91/go.mod h1:eTUUVgGNb+mCsEJeJnwl/Kaaem9IXKa1ZZL5zN4fTag= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= +github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= +github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/russellhaering/goxmldsig v1.1.0 h1:lK/zeJie2sqG52ZAlPNn1oBBqsIsEKypUUBGpYYF6lk= -github.com/russellhaering/goxmldsig v1.1.0/go.mod h1:QK8GhXPB3+AfuCrfo0oRISa9NfzeCpWmxeGnqEpDF9o= +github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= +github.com/rogpeppe/go-internal v1.8.0 h1:FCbCCtXNOY3UtUuHUYaghJg4y7Fd14rXifAYUAtL9R8= +github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE= +github.com/russellhaering/goxmldsig v1.2.0 h1:Y6GTTc9Un5hCxSzVz4UIWQ/zuVwDvzJk80guqzwx6Vg= +github.com/russellhaering/goxmldsig v1.2.0/go.mod h1:gM4MDENBQf7M+V824SGfyIUVFWydB7n0KkEubVJl+Tw= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/ryanuber/columnize v2.1.0+incompatible/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/ryanuber/go-glob v1.0.0 h1:iQh3xXAumdQ+4Ufa5b25cRpC5TYKlno6hsv6Cb3pkBk= github.com/ryanuber/go-glob v1.0.0/go.mod h1:807d1WSdnB0XRJzKNil9Om6lcp/3a0v4qIHxIXzX/Yc= -github.com/satori/go.uuid v1.2.0 h1:0uYX9dsZ2yD7q2RtLRtPSdGDWzjeM3TbMJP9utgA0ww= +github.com/safchain/ethtool v0.0.0-20190326074333-42ed695e3de8/go.mod h1:Z0q5wiBQGYcxhMZ6gUqHn6pYNLypFAvaL3UvgZLR0U4= github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= github.com/sclevine/spec v1.2.0/go.mod h1:W4J29eT/Kzv7/b9IWLB055Z+qvVC9vt0Arko24q7p+U= github.com/sclevine/spec v1.4.0 h1:z/Q9idDcay5m5irkZ28M7PtQM4aOISzOpj4bUPkDee8= github.com/sclevine/spec v1.4.0/go.mod h1:LvpgJaFyvQzRvc1kaDs0bulYwzC70PbiYjC4QnFHkOM= +github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo= +github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= +github.com/shopspring/decimal v1.2.0/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= +github.com/shopspring/decimal v1.3.1 h1:2Usl1nmF/WZucqkFZhnfFYxxxu8LG21F6nPQBE5gKV8= +github.com/shopspring/decimal v1.3.1/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.0.4-0.20170822132746-89742aefa4b2/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc= github.com/sirupsen/logrus v1.0.5/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc= +github.com/sirupsen/logrus v1.0.6/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= -github.com/sirupsen/logrus v1.4.2 h1:SPIRibHv4MatM3XXNO2BJeFLZwZ2LvZgfQ5+UNI2im4= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= +github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= +github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= +github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= +github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/skratchdot/open-golang v0.0.0-20160302144031-75fb7ed4208c h1:fyKiXKO1/I/B6Y2U8T7WdQGWzwehOuGIrljPtt7YTTI= github.com/skratchdot/open-golang v0.0.0-20160302144031-75fb7ed4208c/go.mod h1:sUM3LWHvSMaG192sy56D9F7CNvL7jUJVXoqM1QKLnog= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/assertions v0.0.0-20190215210624-980c5ac6f3ac h1:wbW+Bybf9pXxnCFAOWZTqkRjAc7rAIwo2e1ArUhiHxg= github.com/smartystreets/assertions v0.0.0-20190215210624-980c5ac6f3ac/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= -github.com/smartystreets/goconvey v0.0.0-20190222223459-a17d461953aa h1:E+gaaifzi2xF65PbDmuKI3PhLWY6G5opMLniFq8vmXA= github.com/smartystreets/goconvey v0.0.0-20190222223459-a17d461953aa/go.mod h1:2RVY1rIf+2J2o/IM9+vPq9RzmHDSseB7FoXiSNIUsoU= +github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= +github.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIKYqbNC9s= +github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= +github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= +github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= +github.com/spf13/cast v1.4.1 h1:s0hze+J0196ZfEMTs80N7UlFt0BDuQ7Q+JDnHiMWKdA= +github.com/spf13/cast v1.4.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cobra v0.0.2-0.20171109065643-2da4a54c5cee/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= +github.com/spf13/cobra v1.5.0/go.mod h1:dWXEIy2H428czQCjInthrTRUg7yKbok+2Qi/yBIJoUM= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.1-0.20171106142849-4c012f6dcd95/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/spf13/pflag v1.0.2/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= @@ -616,25 +945,30 @@ github.com/square/certstrap v1.1.1/go.mod h1:1+xoDwJbjCv1e3erNygZ/sHwgq8dr8CgQB3 github.com/stretchr/objx v0.0.0-20180129172003-8a3f7159479f/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.2.0 h1:Hbg2NidpLE8veEBkEZTL3CvlkUIVzuU9jDplZO54c48= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= -github.com/stretchr/testify v0.0.0-20151208002404-e3a8ff8ce365/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/objx v0.4.0 h1:M2gUjqZET1qApGOWNSnZ49BAIMX4F/1plDv3+l31EJ4= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/testify v0.0.0-20180303142811-b89eecf5ca5d/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.1-0.20210427113832-6241f9ab9942/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= +github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/syndtr/gocapability v0.0.0-20170704070218-db04d3cc01c8/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= -github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2 h1:b6uOv7YOFK0TYG7HtkIgExQo+2RdLuwRft63jn2HWj8= github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= +github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635 h1:kdXcSzyDtseVEc4yCz2qF8ZrQvIDBJLl4S1c3GCXmoI= +github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= +github.com/tchap/go-patricia v2.2.6+incompatible/go.mod h1:bmLyhP68RS6kStMGxByiQ23RP/odRBOTVjwp2cDyi6I= github.com/tedsuo/ifrit v0.0.0-20180802180643-bea94bb476cc h1:LUUe4cdABGrIJAhl1P1ZpWY76AwukVszFdwkVFVLwIk= github.com/tedsuo/ifrit v0.0.0-20180802180643-bea94bb476cc/go.mod h1:eyZnKCc955uh98WQvzOm0dgAeLnf2O0Rz0LPoC5ze+0= github.com/tedsuo/rata v1.0.1-0.20170830210128-07d200713958 h1:mueRRuRjR35dEOkHdhpoRcruNgBz0ohG659HxxmcAwA= github.com/tedsuo/rata v1.0.1-0.20170830210128-07d200713958/go.mod h1:X47ELzhOoLbfFIY0Cql9P6yo3Cdwf2CMX3FVZxRzJPc= -github.com/testcontainers/testcontainers-go v0.0.9 h1:mwvFz+FkuQMqQ9oLkG4cVzPsZTRmrCo2NcaerJNaptA= -github.com/testcontainers/testcontainers-go v0.0.9/go.mod h1:0Qe9qqjNZgxHzzdHPWwmQ2D49FFO7920hLdJ4yUJXJI= github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= @@ -642,8 +976,13 @@ github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljT github.com/urfave/cli v0.0.0-20171014202726-7bc6a0acffa5/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= +github.com/urfave/cli v1.22.2/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/vbauerster/mpb/v4 v4.6.1-0.20190319154207-3a6acfe12ac6 h1:nrfAgxqk5DJ20IK1tt0dXbT+heIiNeTmtvj+twRxCbo= github.com/vbauerster/mpb/v4 v4.6.1-0.20190319154207-3a6acfe12ac6/go.mod h1:bTEFEKvSeMyGvZVflCs/jDs0Jlc5RJJVSN72r0QxBJI= +github.com/vishvananda/netlink v0.0.0-20181108222139-023a6dafdcdf/go.mod h1:+SR5DhBJrl6ZM7CoCKvpw5BKroDKQ+PJqOg65H/2ktk= +github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE= +github.com/vishvananda/netns v0.0.0-20180720170159-13995c7128cc/go.mod h1:ZjcWmFBXmLKZu9Nxj3WKYEafiSqer2rnvPr0en9UNpI= +github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17pCcGlemwknint6hfoeCVQrEMVwxRLRjXpq+BU= github.com/vito/go-flags v1.4.1-0.20200428200343-c7161c3bd74d h1:PjnCfyHrDAJTvOJr4q4lnxWfV3rrF3K5b5kfg1SjmW0= github.com/vito/go-flags v1.4.1-0.20200428200343-c7161c3bd74d/go.mod h1:07OkXRRK4EbEtvYreaZfRIqssDcoccQKxBVOBg1zgV0= github.com/vito/go-interact v0.0.0-20171111012221-fa338ed9e9ec h1:Klu98tQ9Z1t23gvC7p7sCmvxkZxLhBHLNyrUPsWsYFg= @@ -654,6 +993,12 @@ github.com/vito/houdini v1.1.1 h1:6oYBTNNcJAtd/WxrxokyFr+WXxoBN43IL7r2TYuGrHg= github.com/vito/houdini v1.1.1/go.mod h1:9T7AKNV+G5ckCYdDeGEnonREED7IqPz/LTKIkIz3MM4= github.com/vito/twentythousandtonnesofcrudeoil v0.0.0-20180305154709-3b21ad808fcb h1:OlLJlAyoyYjUAQIbycSXFSyYSC7tBf0Fos2Fyu7GeDY= github.com/vito/twentythousandtonnesofcrudeoil v0.0.0-20180305154709-3b21ad808fcb/go.mod h1:NhbXFsoSa/atpWDPj5okj24Vnvd5bgEW+W5+hFAFodA= +github.com/vmihailenco/msgpack v3.3.3+incompatible/go.mod h1:fy3FlTQTDXWkZ7Bh6AcGMlsjHatGryHQYUTf1ShIgkk= +github.com/vmihailenco/msgpack/v4 v4.3.12/go.mod h1:gborTTJjAo/GWTqqRjrLCn9pgNN+NXzzngzBKDPIqw4= +github.com/vmihailenco/tagparser v0.1.1/go.mod h1:OeAg3pn3UbLjkWt+rN9oFYB6u/cQgqMEUPoW2WPyhdI= +github.com/willf/bitset v1.1.11-0.20200630133818-d5bec3311243/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4= +github.com/willf/bitset v1.1.11 h1:N7Z7E9UvjW+sGsEl7k/SJrvY2reP1A07MrGuCjIOjRE= +github.com/willf/bitset v1.1.11/go.mod h1:83CECat5yLh5zVOf4P1ErAgKA5UDvKtgyUABdr3+MjI= github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= github.com/xeipuuv/gojsonschema v0.0.0-20180618132009-1d523034197f/go.mod h1:5yf86TLmAcydyeJq5YvxkGPE2fm/u4myDekKRoLuqhs= @@ -664,15 +1009,28 @@ github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -go.etcd.io/bbolt v1.3.3 h1:MUGmc65QhB3pIlaQ5bB4LwqSj6GIonVJXpZiaKNyaKk= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +github.com/yvasiyarov/go-metrics v0.0.0-20140926110328-57bccd1ccd43/go.mod h1:aX5oPXxHm3bOH+xeAttToC8pqch2ScQN/JoXYupl6xs= +github.com/yvasiyarov/gorelic v0.0.0-20141212073537-a9bba5b9ab50/go.mod h1:NUSPSUX/bi6SeDMUh6brw0nXpxHnc96TguQh0+r/ssA= +github.com/yvasiyarov/newrelic_platform_go v0.0.0-20140908184405-b21fdbd4370f/go.mod h1:GlGEuHIJweS1mbCqG+7vt2nvWLzLLnRHbXz5JKd/Qbg= +github.com/zclconf/go-cty v1.2.0/go.mod h1:hOPWgoHbaTUnI5k4D2ld+GRpFJSCe6bCM7m1q/N4PQ8= +github.com/zclconf/go-cty v1.8.0/go.mod h1:vVKLxnk3puL4qRAv72AO+W99LUD4da90g3uUAzyuvAk= +github.com/zclconf/go-cty-debug v0.0.0-20191215020915-b22d67c1ba0b/go.mod h1:ZRKQfBXbGkpdV6QMzT3rU1kSTAnfu1dO8dPKjYprgj8= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg= +go.etcd.io/bbolt v1.3.5 h1:XAzx9gjCb0Rxj7EoqcClPD1d5ZBxZJk0jbuoPHenBt0= +go.etcd.io/bbolt v1.3.5/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ= +go.etcd.io/etcd v0.5.0-alpha.5.0.20200910180754-dd1b699fc489/go.mod h1:yVHk9ub3CSBatqGNg7GRmsnfLWtoW60w4eDYfh7vHDg= +go.etcd.io/etcd/api/v3 v3.5.5/go.mod h1:KFtNaxGDw4Yx/BA4iPPwevUTAuqcsPxzyX8PHydchN8= +go.etcd.io/etcd/client/pkg/v3 v3.5.5/go.mod h1:ggrwbk069qxpKPq8/FKkQ3Xq9y39kbFR4LnKszpRXeQ= +go.etcd.io/etcd/client/v3 v3.5.5/go.mod h1:aApjR4WGlSumpnJ2kloS75h6aHUmAyaPLjHMxpc7E7c= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.4 h1:LYy1Hy3MJdrCdMwwzxA/dRok4ejH+RwNGbuoD9fCjto= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= +go.opencensus.io v0.23.0 h1:gqCw0LfLxScz8irSi8exQc7fyQ0fKQU/qnC/X8+V/1M= +go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= go.opentelemetry.io/contrib v0.20.0 h1:ubFQUn0VCZ0gPwIoJfBJVpeBlyRMxu8Mm/huKWYd9p0= go.opentelemetry.io/contrib v0.20.0/go.mod h1:G/EtFaa6qaN7+LxqfIAT3GiZa7Wv5DTBUzl5H4LY0Kc= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.20.0 h1:Q3C9yzW6I9jqEc8sawxzxZmY48fs9u220KXq6d5s3XU= @@ -689,25 +1047,36 @@ go.opentelemetry.io/otel/sdk v0.20.0 h1:JsxtGXd06J8jrnya7fdI/U/MR6yXA5DtbZy+qoHQ go.opentelemetry.io/otel/sdk v0.20.0/go.mod h1:g/IcepuwNsoiX5Byy2nNV0ySUF1em498m7hBWC279Yc= go.opentelemetry.io/otel/trace v0.20.0 h1:1DL6EXUdcg95gukhuRRvLDO/4X5THh/5dIV52lqtnbw= go.opentelemetry.io/otel/trace v0.20.0/go.mod h1:6GjCW8zgDjwGHGa6GkyeB8+/5vjT16gUEi0Nf1iBdgw= +go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= +go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= +go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= +go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= golang.org/x/crypto v0.0.0-20171113213409-9f005a07e0d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20180621125126-a49355c7e3f8/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20181009213950-7c1a557ab941/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190426145343-a29dc8fdc734/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190621222207-cc06ce4a13d4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20191202143827-86a70503ff7e/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20200414173820-0848c9571904/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97 h1:/UOmuWzQfxxo9UtlXMwuQU8CMgg1eZXqTRwkSQJWKOI= -golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.0.0-20220517005047-85d78b3ac167/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.0.0-20220926161630-eccd6366d1be h1:fmw3UbQh+nxngCAHrDCCztao/kbYFnWjoqop8dHx05A= +golang.org/x/crypto v0.0.0-20220926161630-eccd6366d1be/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -730,6 +1099,8 @@ golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHl golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= @@ -738,14 +1109,18 @@ golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzB golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.4.2 h1:Gz96sIWK3OalVv/I/qNygP42zyoKp3xptRVCWRFEBvo= +golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/net v0.0.0-20170114055629-f2499483f923/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180112015858-5ccada7d0a7b/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 h1:6zppjxzCulZykYSLyVDYbneBfbaBIQPYMevg0bEwv2s= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180811021610-c39426892332/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180911220305-26e67e76b6c3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181011144130-49bb7cea24b1/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -755,13 +1130,16 @@ golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190619014844-b5b0513f8c1b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191126235420-ef20fe5d7933/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20191004110552-13f9640d40b9/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -776,16 +1154,54 @@ golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/ golang.org/x/net v0.0.0-20200602114024-627f9648deb9/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4 h1:4nGaVu0QrbjT/AK2PRLuQfQuh6DJve+pELhqTdAj3x0= +golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= +golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220325170049-de3da57026de/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220412020605-290c469a71a5/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220607020251-c690dde0001d/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.0.0-20220826154423-83b083e8dc8b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= +golang.org/x/net v0.0.0-20220909164309-bea034e7d591/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= +golang.org/x/net v0.0.0-20220927171203-f486391704dc h1:FxpXZdoBqT8RjqTy6i1E8nXHhW21wK7ptQ/EPIGxzPQ= +golang.org/x/net v0.0.0-20220927171203-f486391704dc/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d h1:TzXSXBo42m9gQenoE3b9BGiEpg5IG2JkU5FkPIawgtw= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210628180205-a41e5a781914/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210805134026-6f1e6394065a/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= +golang.org/x/oauth2 v0.0.0-20220309155454-6242fa91716a/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= +golang.org/x/oauth2 v0.0.0-20220411215720-9780585627b5/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= +golang.org/x/oauth2 v0.0.0-20220608161450-d0670ef3b1eb/go.mod h1:jaDAt6Dkxork7LmZnYtzbRWj0W47D86a3TGe0YHBvmE= +golang.org/x/oauth2 v0.0.0-20220822191816-0ebed06d0094/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= +golang.org/x/oauth2 v0.0.0-20220909003341-f21342109be1 h1:lxqLZaMad/dJHMFZH0NiNpiEZI/nhgWhe4wgzpE+MuA= +golang.org/x/oauth2 v0.0.0-20220909003341-f21342109be1/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -795,10 +1211,11 @@ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ= +golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20170830134202-bb24a47a89ea/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180117170059-2c42eef0765b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4 h1:uVc8UZUe6tr40fFVnUP5Oj+veunVezqYl9z7DYw9xzw= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180709060233-1b2967e3c290/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -807,36 +1224,48 @@ golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181228144115-9a3f9b0469bb/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190124100055-b90733256f2e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190129075346-302c3dd5f1cc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190307162637-572b51eaf722/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190502175342-a43fa875dd82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190514135907-3a4b5fb9f71f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190515120540-06a5c4944438/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190522044717-8097e1b27ff5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190602015325-4c4f7f33c9ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190606203320-7fc4e5ec1444/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190812073006-9eafafc0a87e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191022100944-742c48ecaeb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191112214154-59a1497f0cea/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191115151921-52ab43148777/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191128015809-6d18c012aee9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191210023423-ac6580df4449/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200120151820-655fe14d7479/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200124204421-9fbb57f87de9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -847,45 +1276,96 @@ golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200728102440-3e129f6d46b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200909081042-eff7692f9009/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200916030750-2334cc1a136f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200922070232-aee5d888a860/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201112073958-5cba982894dd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201202213521-69691e467435/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210303074136-134d130e1a04/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210603125802-9665404d3644/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c h1:F1jZWGFhYfh0Ci55sIpILtKKK8p3i2/krTr0H1rg74I= +golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1 h1:v+OssWQX+hTHEmOBgwxdZxK4zHq3yOs8F9J7mk0PY8E= +golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210908233432-aa78b53d3365/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211210111614-af8b64212486/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220128215802-99c3d69c2c27/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220207234003-57398862261d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220328115105-d36c6a25d886/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220502124256-b6088ccd6cba/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220610221304-9f5ed59c137d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10 h1:WIoqL4EROvwiPdUtaip4VcDdpZ4kha7wBWZrbVKCIZg= +golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/text v0.0.0-20160726164857-2910a502d2bf/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 h1:JGgROgKl9N8DuW20oFS5gxc+lE67/N3FcwmBPMe7ArY= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.1-0.20171227012246-e19ae1496984/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= -golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20191024005414-555d28b269f0 h1:/5xXl8Y5W96D+TtHSlonuFqGHIWVuyCkGJLwGh9JJFs= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e h1:EHBhcS0mlXEAVwNyO2dLfjToGsyY4j24pTs2ScHnX7s= +golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20180810170437-e96c4e24768d/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190624180213-70d37148ca0c/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190624222133-a101b041ded4/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= @@ -895,7 +1375,6 @@ golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191203134012-c197fd4bf371/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= @@ -917,14 +1396,32 @@ golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roY golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200701151220-7cb253f4c4f8/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200713011307-fd294ab11aed/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= +golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.1.5 h1:ouewzE6p+/VEB31YYnTbEJdi8pFqKp4P4n85vwo3DHA= +golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= +golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.13-0.20220804200503-81c7dc4e4efa h1:uKcci2q7Qtp6nMTC/AAvfNUAldFtJuHWV9/5QWiypts= +golang.org/x/tools v0.1.13-0.20220804200503-81c7dc4e4efa/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= +golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f h1:uF6paiQQebLeSXkrTqHqz0MXhXXS1KgF41eUdBNvxK0= +golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= +google.golang.org/api v0.0.0-20160322025152-9bf6e6e569ff/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= @@ -939,15 +1436,42 @@ google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/ google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= -google.golang.org/api v0.29.0 h1:BaiDisFir8O4IJxvAabCGGkQ6yCJegNQqSVoYUNAnbk= google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= +google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= +google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= +google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= +google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= +google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU= +google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94= +google.golang.org/api v0.47.0/go.mod h1:Wbvgpq1HddcWVtzsVLyfLp8lDg6AA241LmgIL59tHXo= +google.golang.org/api v0.48.0/go.mod h1:71Pr1vy+TAZRPkPs/xlCf5SsU8WjuAWv1Pfjbtukyy4= +google.golang.org/api v0.50.0/go.mod h1:4bNT5pAuq5ji4SRZm+5QIkjny9JAyVD/3gaSihNefaw= +google.golang.org/api v0.51.0/go.mod h1:t4HdrdoNgyN5cbEfm7Lum0lcLDLiise1F8qDKX00sOU= +google.golang.org/api v0.54.0/go.mod h1:7C4bFFOvVDGXjfDTAsgGwDgAxRDeQ4X8NvUedIt6z3k= +google.golang.org/api v0.55.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE= +google.golang.org/api v0.56.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE= +google.golang.org/api v0.57.0/go.mod h1:dVPlbZyBo2/OjBpmvNdpn2GRm6rPy75jyU7bmhdrMgI= +google.golang.org/api v0.61.0/go.mod h1:xQRti5UdCmoCEqFxcz93fTl338AVqDgyaDRuOZ3hg9I= +google.golang.org/api v0.63.0/go.mod h1:gs4ij2ffTRXwuzzgJl/56BdwJaA194ijkfn++9tDuPo= +google.golang.org/api v0.67.0/go.mod h1:ShHKP8E60yPsKNw/w8w+VYaj9H6buA5UqDp8dhbQZ6g= +google.golang.org/api v0.70.0/go.mod h1:Bs4ZM2HGifEvXwd50TtW70ovgJffJYw2oRCOFU/SkfA= +google.golang.org/api v0.71.0/go.mod h1:4PyU6e6JogV1f9eA4voyrTY2batOLdgZ5qZ5HOCc4j8= +google.golang.org/api v0.74.0/go.mod h1:ZpfMZOVRMywNyvJFeqL9HRWBgAuRfSjJFpe9QtRRyDs= +google.golang.org/api v0.75.0/go.mod h1:pU9QmyHLnzlpar1Mjt4IbapUCy8J+6HD6GeELN69ljA= +google.golang.org/api v0.78.0/go.mod h1:1Sg78yoMLOhlQTeF+ARBoytAcH1NNyyl390YMy6rKmw= +google.golang.org/api v0.80.0/go.mod h1:xY3nI94gbvBrE0J6NHXhxOmW97HG7Khjkku6AFB3Hyg= +google.golang.org/api v0.84.0/go.mod h1:NTsGnUFJMYROtiquksZHBWtHfeMC7iYthki7Eq3pa8o= +google.golang.org/api v0.98.0 h1:yxZrcxXESimy6r6mdL5Q6EnZwmewDJK2dVg3g75s5Dg= +google.golang.org/api v0.98.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.6 h1:lMO5rYAqUxkmaj76jAkRUvt5JZgFymx/+Q5Mzfivuhc= google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= +google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/cloud v0.0.0-20151119220103-975617b05ea8/go.mod h1:0H1ncTHf11KCFhTc/+EFRbzSCOZx+VUbRMk55Yv5MYk= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190404172233-64821d5d2107/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= @@ -963,6 +1487,7 @@ google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvx google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200117163144-32f20d992d24/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= @@ -973,15 +1498,70 @@ google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfG google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= google.golang.org/genproto v0.0.0-20200605102947-12044bf5ea91/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= google.golang.org/genproto v0.0.0-20200711021454-869866162049/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200715011427-11fb19a81f2c h1:6DWnZZ6EY/59QRRQttZKiktVL23UuQYs7uy75MhhLRM= google.golang.org/genproto v0.0.0-20200715011427-11fb19a81f2c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201110150050-8816d57aaa9a/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210222152913-aa3ee6e6a81c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210329143202-679c6ae281ee/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= +google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= +google.golang.org/genproto v0.0.0-20210513213006-bf773b8c8384/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A= +google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= +google.golang.org/genproto v0.0.0-20210604141403-392c879c8b08/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= +google.golang.org/genproto v0.0.0-20210608205507-b6d2f5bf0d7d/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= +google.golang.org/genproto v0.0.0-20210624195500-8bfb893ecb84/go.mod h1:SzzZ/N+nwJDaO1kznhnlzqS8ocJICar6hYhVyhi++24= +google.golang.org/genproto v0.0.0-20210713002101-d411969a0d9a/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k= +google.golang.org/genproto v0.0.0-20210716133855-ce7ef5c701ea/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k= +google.golang.org/genproto v0.0.0-20210728212813-7823e685a01f/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48= +google.golang.org/genproto v0.0.0-20210805201207-89edb61ffb67/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48= +google.golang.org/genproto v0.0.0-20210813162853-db860fec028c/go.mod h1:cFeNkxwySK631ADgubI+/XFU/xp8FD5KIVV4rj8UC5w= +google.golang.org/genproto v0.0.0-20210821163610-241b8fcbd6c8/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= +google.golang.org/genproto v0.0.0-20210828152312-66f60bf46e71/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= +google.golang.org/genproto v0.0.0-20210831024726-fe130286e0e2/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= +google.golang.org/genproto v0.0.0-20210903162649-d08c68adba83/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= +google.golang.org/genproto v0.0.0-20210909211513-a8c4777a87af/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= +google.golang.org/genproto v0.0.0-20210924002016-3dee208752a0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20211118181313-81c1377c94b1/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20211206160659-862468c7d6e0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20211208223120-3a66f561d7aa/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20211221195035-429b39de9b1c/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20220126215142-9970aeb2e350/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20220207164111-0872dc986b00/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20220207185906-7721543eae58/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20220218161850-94dd64e39d7c/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= +google.golang.org/genproto v0.0.0-20220222213610-43724f9ea8cf/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= +google.golang.org/genproto v0.0.0-20220304144024-325a89244dc8/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= +google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= +google.golang.org/genproto v0.0.0-20220324131243-acbaeb5b85eb/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E= +google.golang.org/genproto v0.0.0-20220407144326-9054f6ed7bac/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= +google.golang.org/genproto v0.0.0-20220413183235-5e96e2839df9/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= +google.golang.org/genproto v0.0.0-20220414192740-2d67ff6cf2b4/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= +google.golang.org/genproto v0.0.0-20220421151946-72621c1f0bd3/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= +google.golang.org/genproto v0.0.0-20220429170224-98d788798c3e/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= +google.golang.org/genproto v0.0.0-20220505152158-f39f71e6c8f3/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= +google.golang.org/genproto v0.0.0-20220518221133-4f43b3371335/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= +google.golang.org/genproto v0.0.0-20220523171625-347a074981d8/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= +google.golang.org/genproto v0.0.0-20220608133413-ed9918b62aac/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= +google.golang.org/genproto v0.0.0-20220616135557-88e70c0c3a90/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= +google.golang.org/genproto v0.0.0-20220624142145-8cd45d7dbd1f h1:hJ/Y5SqPXbarffmAsApliUlcvMU+wScNGfyop4bZm8o= +google.golang.org/genproto v0.0.0-20220624142145-8cd45d7dbd1f/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= +google.golang.org/grpc v0.0.0-20160317175043-d3ddb4469d5a/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.14.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= -google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= @@ -989,6 +1569,7 @@ google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ij google.golang.org/grpc v1.22.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= @@ -996,8 +1577,31 @@ google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8 google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.32.0 h1:zWTV+LMdc3kaiJMSTOFz2UgSBgx8RNQoTGiZu3fR9S0= +google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= google.golang.org/grpc v1.32.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= +google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= +google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= +google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= +google.golang.org/grpc v1.37.1/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= +google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= +google.golang.org/grpc v1.39.0/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= +google.golang.org/grpc v1.39.1/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= +google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= +google.golang.org/grpc v1.40.1/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= +google.golang.org/grpc v1.41.0/go.mod h1:U3l9uK9J0sini8mHphKoXyaqDA/8VyGnDee1zzIUK6k= +google.golang.org/grpc v1.44.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= +google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= +google.golang.org/grpc v1.46.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= +google.golang.org/grpc v1.46.2/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= +google.golang.org/grpc v1.47.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= +google.golang.org/grpc v1.49.0 h1:WTLtQzmQori5FUH25Pq4WT22oCsv8USpQ+F6rqtsmxw= +google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= +google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= @@ -1007,16 +1611,21 @@ google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2 google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= -google.golang.org/protobuf v1.25.0 h1:Ejskq+SyPohKW+1uil0JJMtmHCgJPJ/qWTxr8qp+R4c= google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w= +google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= -gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d h1:TxyelI5cVkbREznMhfzycHdkp5cLA7DpE+GKjSslYhM= -gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20141024133853-64131543e789/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= @@ -1024,29 +1633,32 @@ gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMy gopkg.in/gemnasium/logrus-airbrake-hook.v2 v2.1.2/go.mod h1:Xk6kEKp8OKb+X14hQBKWaSkCsqBpgog8nAV2xsGOxlo= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= -gopkg.in/ldap.v2 v2.5.1 h1:wiu0okdNfjlBzg6UWvd1Hn8Y+Ux17/u/4nlk4CQr6tU= -gopkg.in/ldap.v2 v2.5.1/go.mod h1:oI0cpe/D7HRtBQl8aTg+ZmzFUAvu4lsv3eLXMLGFxWk= +gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= +gopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/square/go-jose.v2 v2.3.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= -gopkg.in/square/go-jose.v2 v2.4.1 h1:H0TmLt7/KmzlrDOpa1F+zr0Tk90PbJYBfsVUmRLrf9Y= -gopkg.in/square/go-jose.v2 v2.4.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= +gopkg.in/square/go-jose.v2 v2.6.0 h1:NGk74WTnPKBNUhNzQX7PYcTLUjoq7mzKk2OKbvwk2iI= +gopkg.in/square/go-jose.v2 v2.6.0/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= -gopkg.in/yaml.v2 v2.0.0/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.7/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= +gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gotest.tools v0.0.0-20181223230014-1083505acf35/go.mod h1:R//lfYlUuTOTfblYI3lGoAAAebUdzjvbmQsuB7Ykd90= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo= gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= -honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +gotest.tools/v3 v3.0.2 h1:kG1BFyqVHuQoVQiR1bWGnfz/fmHvvuiSPIV7rvl360E= +gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= @@ -1054,25 +1666,31 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -k8s.io/api v0.0.0-20190313235455-40a48860b5ab h1:DG9A67baNpoeweOy2spF1OWHhnVY5KR7/Ek/+U1lVZc= -k8s.io/api v0.0.0-20190313235455-40a48860b5ab/go.mod h1:iuAfoD4hCxJ8Onx9kaTIt30j7jUFS00AXQi6QMi99vA= -k8s.io/apimachinery v0.0.0-20190313205120-d7deff9243b1 h1:IS7K02iBkQXpCeieSiyJjGoLSdVOv2DbPaWHJ+ZtgKg= -k8s.io/apimachinery v0.0.0-20190313205120-d7deff9243b1/go.mod h1:ccL7Eh7zubPUSh9A3USN90/OzHNSVN6zxzde07TDCL0= -k8s.io/client-go v11.0.0+incompatible h1:LBbX2+lOwY9flffWlJM7f1Ct8V2SRNiMRDFeiwnJo9o= -k8s.io/client-go v11.0.0+incompatible/go.mod h1:7vJpHMYJwNQCWgzmNV+VYUl1zCObLyodBc8nIyt8L5s= -k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= -k8s.io/klog v0.0.0-20181102134211-b9b56d5dfc92/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= -k8s.io/klog v0.3.0 h1:0VPpR+sizsiivjIfIAQH/rl8tan6jvWkS7lU+0di3lE= -k8s.io/klog v0.3.0/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= -k8s.io/kube-openapi v0.0.0-20191107075043-30be4d16710a h1:UcxjrRMyNx/i/y8G7kPvLyy7rfbeuf1PYyBf973pgyU= -k8s.io/kube-openapi v0.0.0-20191107075043-30be4d16710a/go.mod h1:1TqjTSzOxsLGIKfj0lK8EeCP7K1iUG65v09OM0/WG5E= +k8s.io/api v0.20.1 h1:ud1c3W3YNzGd6ABJlbFfKXBKXO+1KdGfcgGGNgFR03E= +k8s.io/api v0.20.1/go.mod h1:KqwcCVogGxQY3nBlRpwt+wpAMF/KjaCc7RpywacvqUo= +k8s.io/apimachinery v0.20.1 h1:LAhz8pKbgR8tUwn7boK+b2HZdt7MiTu2mkYtFMUjTRQ= +k8s.io/apimachinery v0.20.1/go.mod h1:WlLqWAHZGg07AeltaI0MV5uk1Omp8xaN0JGLY6gkRpU= +k8s.io/apiserver v0.20.1/go.mod h1:ro5QHeQkgMS7ZGpvf4tSMx6bBOgPfE+f52KwvXfScaU= +k8s.io/client-go v0.20.1 h1:Qquik0xNFbK9aUG92pxHYsyfea5/RPO9o9bSywNor+M= +k8s.io/client-go v0.20.1/go.mod h1:/zcHdt1TeWSd5HoUe6elJmHSQ6uLLgp4bIJHVEuy+/Y= +k8s.io/component-base v0.20.1/go.mod h1:guxkoJnNoh8LNrbtiQOlyp2Y2XFCZQmrcg2n/DeYNLk= +k8s.io/cri-api v0.17.3/go.mod h1:X1sbHmuXhwaHs9xxYffLqJogVsnI+f6cPRcgPel7ywM= +k8s.io/cri-api v0.20.1/go.mod h1:2JRbKt+BFLTjtrILYVqQK5jqhI+XNdF6UiGMgczeBCI= +k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= +k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= +k8s.io/klog/v2 v2.4.0 h1:7+X0fUguPyrKEC4WjH8iGDg3laWgMo5tMnRTIGTTxGQ= +k8s.io/klog/v2 v2.4.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= +k8s.io/kube-openapi v0.0.0-20201113171705-d219536bb9fd h1:sOHNzJIkytDF6qadMNKhhDRpc6ODik8lVC6nOur7B2c= +k8s.io/kube-openapi v0.0.0-20201113171705-d219536bb9fd/go.mod h1:WOJ3KddDSol4tAGcJo0Tvi+dK12EcqSLqcWsryKMpfM= k8s.io/kubernetes v1.13.0/go.mod h1:ocZa8+6APFNC2tX1DZASIbocyYT5jHzqFVsY5aoB7Jk= -k8s.io/utils v0.0.0-20190829053155-3a4a5477acf8 h1:khtxGxwSe3nyReEEggzTwQigMT3g40enrlivMlMeaGY= -k8s.io/utils v0.0.0-20190829053155-3a4a5477acf8/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew= +k8s.io/utils v0.0.0-20201110183641-67b214c5f920 h1:CbnUZsM497iRC5QMVkHwyl8s2tB3g7yaSHkYPkpgelw= +k8s.io/utils v0.0.0-20201110183641-67b214c5f920/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= -sigs.k8s.io/structured-merge-diff v0.0.0-20190525122527-15d366b2352e/go.mod h1:wWxsB5ozmmv/SG7nM11ayaAW51xMvak/t1r0CSlcokI= -sigs.k8s.io/testing_frameworks v0.1.2/go.mod h1:ToQrwSC3s8Xf/lADdZp3Mktcql9CG0UAmdJG9th5i0w= -sigs.k8s.io/yaml v1.1.0 h1:4A07+ZFc2wgJwo8YNlQpr1rVlgUDlxXHhPJciaPY5gs= +sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.14/go.mod h1:LEScyzhFmoF5pso/YSeBstl57mOzx9xlU9n85RGrDQg= +sigs.k8s.io/structured-merge-diff/v4 v4.0.2 h1:YHQV7Dajm86OuqnIR6zAelnDWBRjo+YhYV9PmGrh1s8= +sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= +sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q= +sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= diff --git a/skymarshal/dexserver/dexserver.go b/skymarshal/dexserver/dexserver.go index 2c16892537a..9fdb4e5d901 100644 --- a/skymarshal/dexserver/dexserver.go +++ b/skymarshal/dexserver/dexserver.go @@ -3,6 +3,8 @@ package dexserver import ( "context" "crypto/rsa" + "embed" + "io/fs" "strings" "time" @@ -12,14 +14,12 @@ import ( s "github.com/concourse/concourse/skymarshal/storage" "github.com/concourse/dex/server" "github.com/concourse/dex/storage" - "github.com/markbates/pkger" "golang.org/x/crypto/bcrypt" ) type DexConfig struct { Logger lager.Logger IssuerURL string - WebHostURL string SigningKey *rsa.PrivateKey Expiration time.Duration Clients map[string]string @@ -28,6 +28,9 @@ type DexConfig struct { Storage s.Storage } +//go:embed web +var webFS embed.FS + func NewDexServer(config *DexConfig) (*server.Server, error) { newDexServerConfig, err := NewDexServerConfig(config) @@ -74,10 +77,10 @@ func NewDexServerConfig(config *DexConfig) (server.Config, error) { } } - for clientId, clientSecret := range newLocalClients(config) { + for clientId, clientSecret := range config.Clients { clients = append(clients, storage.Client{ ID: clientId, - Secret: string(clientSecret), + Secret: clientSecret, RedirectURIs: []string{config.RedirectURL}, }) } @@ -94,12 +97,16 @@ func NewDexServerConfig(config *DexConfig) (server.Config, error) { return server.Config{}, err } + webFS, err := fs.Sub(webFS, "web") + if err != nil { + return server.Config{}, err + } + webConfig := server.WebConfig{ - LogoURL: strings.TrimRight(config.WebHostURL, "/") + "/themes/concourse/logo.svg", - HostURL: config.WebHostURL, + LogoURL: "theme/logo.svg", + WebFS: webFS, Theme: "concourse", Issuer: "Concourse", - Dir: pkger.Include("/skymarshal/web"), } return server.Config{ @@ -111,7 +118,6 @@ func NewDexServerConfig(config *DexConfig) (server.Config, error) { Storage: config.Storage, Web: webConfig, Logger: logger.New(config.Logger), - HashClientSecret: true, }, nil } @@ -218,32 +224,3 @@ func newLocalUsers(config *DexConfig) map[string][]byte { return users } - -func newLocalClients(config *DexConfig) map[string][]byte { - clients := map[string][]byte{} - - for clientID, clientSecret := range config.Clients { - if clientID != "" && clientSecret != "" { - - var hashed []byte - - if _, err := bcrypt.Cost([]byte(clientSecret)); err != nil { - if hashed, err = bcrypt.GenerateFromPassword([]byte(clientSecret), 0); err != nil { - - config.Logger.Error("bcrypt-client-secret", err, lager.Data{ - "client_id": clientID, - }) - - continue - } - } else { - hashed = []byte(clientSecret) - } - - clients[clientID] = hashed - } - } - - return clients - -} diff --git a/skymarshal/dexserver/dexserver_test.go b/skymarshal/dexserver/dexserver_test.go index 884d73fd41a..04a9536dd89 100644 --- a/skymarshal/dexserver/dexserver_test.go +++ b/skymarshal/dexserver/dexserver_test.go @@ -181,7 +181,7 @@ var _ = Describe("Dex Server", func() { }) }) - Context("when clients are configured in plain text", func() { + Context("when clients are configured", func() { BeforeEach(func() { config.Clients = map[string]string{ "some-client-id": "some-client-secret", @@ -189,30 +189,12 @@ var _ = Describe("Dex Server", func() { config.RedirectURL = "http://example.com" }) - It("should contain the configured clients with a bcrypted secret", func() { + It("should contain the configured clients", func() { clients, err := storage.ListClients() Expect(err).NotTo(HaveOccurred()) Expect(clients).To(HaveLen(1)) Expect(clients[0].ID).To(Equal("some-client-id")) - Expect(bcrypt.CompareHashAndPassword([]byte(clients[0].Secret), []byte("some-client-secret"))).NotTo(HaveOccurred()) - Expect(clients[0].RedirectURIs).To(ContainElement("http://example.com")) - }) - }) - - Context("when clients are configured in bcrypt format", func() { - BeforeEach(func() { - config.Clients = map[string]string{ - "some-client-id": "$2a$10$3veRX245rLrpOKrgu7jIyOEKF5Km5tY86bZql6/oTMssgPO/6XJju", - } - config.RedirectURL = "http://example.com" - }) - - It("should contain the configured clients with the given secret", func() { - clients, err := storage.ListClients() - Expect(err).NotTo(HaveOccurred()) - Expect(clients).To(HaveLen(1)) - Expect(clients[0].ID).To(Equal("some-client-id")) - Expect(clients[0].Secret).To(Equal("$2a$10$3veRX245rLrpOKrgu7jIyOEKF5Km5tY86bZql6/oTMssgPO/6XJju")) + Expect(clients[0].Secret).To(Equal("some-client-secret")) Expect(clients[0].RedirectURIs).To(ContainElement("http://example.com")) }) }) diff --git a/skymarshal/web/static/fonts/Inconsolata-Bold.ttf b/skymarshal/dexserver/web/static/fonts/Inconsolata-Bold.ttf similarity index 100% rename from skymarshal/web/static/fonts/Inconsolata-Bold.ttf rename to skymarshal/dexserver/web/static/fonts/Inconsolata-Bold.ttf diff --git a/skymarshal/web/static/fonts/Inconsolata-Regular.ttf b/skymarshal/dexserver/web/static/fonts/Inconsolata-Regular.ttf similarity index 100% rename from skymarshal/web/static/fonts/Inconsolata-Regular.ttf rename to skymarshal/dexserver/web/static/fonts/Inconsolata-Regular.ttf diff --git a/skymarshal/web/static/img/bitbucket-icon.svg b/skymarshal/dexserver/web/static/img/bitbucket-icon.svg similarity index 100% rename from skymarshal/web/static/img/bitbucket-icon.svg rename to skymarshal/dexserver/web/static/img/bitbucket-icon.svg diff --git a/skymarshal/web/static/img/cf-icon.svg b/skymarshal/dexserver/web/static/img/cf-icon.svg similarity index 100% rename from skymarshal/web/static/img/cf-icon.svg rename to skymarshal/dexserver/web/static/img/cf-icon.svg diff --git a/skymarshal/web/static/img/default-icon.svg b/skymarshal/dexserver/web/static/img/default-icon.svg similarity index 100% rename from skymarshal/web/static/img/default-icon.svg rename to skymarshal/dexserver/web/static/img/default-icon.svg diff --git a/skymarshal/web/static/img/github-icon.svg b/skymarshal/dexserver/web/static/img/github-icon.svg similarity index 100% rename from skymarshal/web/static/img/github-icon.svg rename to skymarshal/dexserver/web/static/img/github-icon.svg diff --git a/skymarshal/web/static/img/gitlab-icon.svg b/skymarshal/dexserver/web/static/img/gitlab-icon.svg similarity index 100% rename from skymarshal/web/static/img/gitlab-icon.svg rename to skymarshal/dexserver/web/static/img/gitlab-icon.svg diff --git a/skymarshal/web/static/img/linkedin-icon.svg b/skymarshal/dexserver/web/static/img/linkedin-icon.svg similarity index 100% rename from skymarshal/web/static/img/linkedin-icon.svg rename to skymarshal/dexserver/web/static/img/linkedin-icon.svg diff --git a/skymarshal/web/static/img/microsoft-icon.svg b/skymarshal/dexserver/web/static/img/microsoft-icon.svg similarity index 100% rename from skymarshal/web/static/img/microsoft-icon.svg rename to skymarshal/dexserver/web/static/img/microsoft-icon.svg diff --git a/skymarshal/web/static/img/username-icon.svg b/skymarshal/dexserver/web/static/img/username-icon.svg similarity index 100% rename from skymarshal/web/static/img/username-icon.svg rename to skymarshal/dexserver/web/static/img/username-icon.svg diff --git a/skymarshal/web/static/main.css b/skymarshal/dexserver/web/static/main.css similarity index 100% rename from skymarshal/web/static/main.css rename to skymarshal/dexserver/web/static/main.css diff --git a/skymarshal/web/templates/approval.html b/skymarshal/dexserver/web/templates/approval.html similarity index 100% rename from skymarshal/web/templates/approval.html rename to skymarshal/dexserver/web/templates/approval.html diff --git a/skymarshal/web/templates/device.html b/skymarshal/dexserver/web/templates/device.html similarity index 100% rename from skymarshal/web/templates/device.html rename to skymarshal/dexserver/web/templates/device.html diff --git a/skymarshal/web/templates/device_success.html b/skymarshal/dexserver/web/templates/device_success.html similarity index 100% rename from skymarshal/web/templates/device_success.html rename to skymarshal/dexserver/web/templates/device_success.html diff --git a/skymarshal/web/templates/error.html b/skymarshal/dexserver/web/templates/error.html similarity index 100% rename from skymarshal/web/templates/error.html rename to skymarshal/dexserver/web/templates/error.html diff --git a/skymarshal/web/templates/footer.html b/skymarshal/dexserver/web/templates/footer.html similarity index 100% rename from skymarshal/web/templates/footer.html rename to skymarshal/dexserver/web/templates/footer.html diff --git a/skymarshal/web/templates/header.html b/skymarshal/dexserver/web/templates/header.html similarity index 59% rename from skymarshal/web/templates/header.html rename to skymarshal/dexserver/web/templates/header.html index 16d88ebf4e2..64aadec700f 100644 --- a/skymarshal/web/templates/header.html +++ b/skymarshal/dexserver/web/templates/header.html @@ -5,17 +5,16 @@