postgresql15-docs-15.17-150600.16.28.1<>,iEp9| & :XHP=Vlƫ,hbذ]#oZf,w,ST7>i?j(o7#?:2j9-% VH6`D uA7CbGmqh "yH(e[tResF/ciֿAS N;l?\d ) K $=^i D   ) =< y[ ~<n˜H\(8F9F:2FF!G!H5IHXMtYM|\M]a$^tbcМd#e(f+l-u@vz XCpostgresql15-docs15.17150600.16.28.1HTML Documentation for PostgreSQLPostgreSQL is an advanced object-relational database management system that supports an extended subset of the SQL standard, including transactions, foreign keys, subqueries, triggers, and user-defined types and functions. This package contains the HTML documentation for PostgreSQL. The start page is: file:///usr/share/doc/packages/postgresql15/html/index.html . Manual pages for the PostgreSQL SQL statements can be found in the postgresql package.iEh01-ch5aSUSE Linux Enterprise 15SUSE LLC PostgreSQLhttps://www.suse.com/Productivity/Databases/Toolshttps://www.postgresql.org/linuxnoarchREB"i:2=G-\*O(q\YoJ$d#+ GV %GC J4 [@Y[3z+} 0x:L'0&9K! j&<ixF@('M /3axXN i &q/J U L4]#P;;y"4N;/\'mF$8K=c3>~_#;OIZ!(3e . du./Lxa[;-XV6akCe}  `lމ~('Yw"h mT OO 7 8U Bh%!~~73F4pbA1M]:sp?k.-E/ZO"gF/V2 E E( GkV\= @ : :S | T%|0x,T<( PoOݚ +T& p*( Gfo >b3 KH=Soy+HrS4Z Sy C4vCL%aD!)eԅƤ[R=]e!F6P3D!EY}+.1u2I‹ &9i7$"Q?;<%k Lp  ;x.oy0 *<3  .d04s*Rx)!<*%1e_+;6"Y:6N 3<,hu V+UN0 >66~FDi916Wh UWv ~'#..,IK053 5!r; db_Yd{\Ri@ol =mK6,i9qe]E6>(~LwZFfqcBcsn%&,$tX8Lk&&($g^rC:k ,#% ) ctog("O /$א8ue*=# Mo 9& j9Y!H!n,dD$dc&r K1fn; r2%M &n~Z3mX~ > 'jkla96(K'|p!uuY$BBw *k RB< :OF9 &rEK$AUCm%I$ba֖U( %;*NT~d-oMMRW8HE1rtSta{f)(ur/ (X,R"NٕRf$*0m%r87:qa"*|6Sr`Y9)S&F;DKC x]$ x$8 o,!]wM 9k*GY5e7  ``$ I !!-  g 9"d").47Y*SA3S"uB9A2-?q7]&;A)78G8!K%jW.IDeyA=0>~*:J6C l1{$q7=wL@yF-` xL:dZ)T4Dk,"1|d_Ad?)6!W613A:$&Q)V1-wG_U0%+9q <)K p,YEGjd^z'l(m'1;\5Dz X #q $ \*L  & c _1\@*@/"f% Z$n>h.%,H<G0=`])zFF:h;[-0=*)=b{<$#H^A6 ǚ 4sp  ף'b("CP`<+|B!D~*+4l~, s- 97.Z{lTT(3B,b>DG>h~AA큤iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiidadb62f231177d45852e6c1cc0c725546ae360a8da54e176d50352697959d421fee63427d95a594f8374baa7bac597fa89018c8d94ed16347db709fe526017cafe2bea877390980b6c2d88cf7732742b113fb4445603bf3e9c9e9977a76f89eb184aa0df16b9d75ebf8d0e2eb9fdb6fdedf50c013b463ccb0907388c0925f263fcb8fba0febe29f4eeb91a1908315d011ad6142c4833ded9e75842a4ab546d77dc47519a029d7be5a7dbcbdf934ea6ac68952fe08a289ea0ae1f93433d74950804163672a4678c5b82ea4ae801bd39f46df7a584e90a3054058f98c7e077c1a453418d3fcee92fe0ac1d53adc2b0a68023a9b992ef0f8b79d9aa087d44e9b761d62462d6758fc9185e158f5a579eed6c9cb4dccdac39bd91de1bc3f6919bd3e0887903b6368ab83f087bb2431a0f7379aaa8e59a758860acaea0f6230f0b56aa362e97c20be9ccbe6ccd858e80cc6724b901409ae89e77af908bb21393ccdf8dfd1d8adb198b87434592fdee4ba3790eed0b9443f0b4b349ad883fda250cf94df5a693c3470d9abeb4239c64315caccf73be2e5184c0deeb9f27451e671a9799a98f891f5de25ed89f0351cfd81080e79931f0f82c01af3cb874ff3591d7bbb4392961abe8461327f7ed7ad3795fe9f47d1c8c94ddc5d051db4998862cdc9d71c8ff7991ffadf16fe7e0d4d364ccc56b789137155362c0c95bbec1a667098e8a349ea45b906fed35e8cbc8f0393534eaaea435d31d6182933d0aee417da9d9600f3eb752dbbfc8ccfb7a032c284dd912a6b3eac664c078072d145374e8d898f75db15097517df0734f403a40b0c885355abc79c114105f5c5a747a387130b3da8eaec91119cd65bd72f2d833f53de52fcbfb3fac60db6525ace06f66422a4a9a3efc32e5a8cf49724fba5f99f716bef914facf28e360157bda0c5f88cdfb1c2df889c42567a373e3098effbc8d9320de27f48d2187c0b0aa588db055434df1f4888cee877d3edc18464353eeb897663f2ecf22de4dd6a0c66eb5ed1d5cf2ff4d66fc865c8729a557eab638723b89afe0670302a7ee3ad38ed841d6a08b6383bcc75024d9c3c0cfc639354118aa5a8b4ef7e01d3dc083e9179aad3aa49534cec2489fca615e190ef61c615593614e77272340357bf8fc42de53ea1eeee6129633f5f428d33dd05d4a8c0034a7469a58ccaa7fa60da964a2b5d3ca3a59f420b405ddcfbddab222c4939df0fa39207919a66ece9dfb11c3275b8eeb1526f27693b8f535eead77452eb29906c5e9701a9564b490af8d62686cb578a4296a5ea7c2b8711243cd3967f5d64482036551310384df9c7029606270a4153855bc239926a652c9d31d6404a7c9e65e52881cad6a60f4175f215d533ddf78737d5e3eb4670541132a699aef98b5c18767464ed3aa17c8d0457d94b5a5c7e9b0b25d80df8bf1a63e0d973c1ddd818c9f34e876b478c566c18ce4ba5fd152c83f880a8339f1d35fc6bd559157fca21ca71f398b1522282356763529e414a1a7d3255970dd48d6a40616f334abb1b7f1ad6366b9a7dc6b24bd8178a9ea16f3cbe323d5d52ac7f07512efcc8570d86abeb75c2778e022651bd638e4c0fb5f4013f0447b6d3c007c8152e84a865ae042ff0751a58feac3beac592186fe972404d575f0bbcd2a012da6e8b52c708a225d5758abfa7ecdf543e5409106475356afab84e7db7b49aa1b86f4a4c5d8407d39e159663fec78e29ad84aa4d0af04b720ac3751f924cd73791ef770923ebff90621cc8b8ac9e1d869ba1ed6814d0e01de4176a0bdd5e8f9aaad27eaf5fd32bb678c2d804e81e9dbc8bdb2d58169a6e4f1fc109f428018e258eb0e7697655cbefa2da679d7454be5b0b66393d7d5170a9e2a26ecfa021d422945ebd279b056d0ab0e52a98b5a4cb2247d076b571ff921e734e1d4fe693e0991774f916525a2a3411c1bbb6e6f8d1a4f3e7ab6f2e1f019f11edf30b80110f6eed89fe9d577ff5340109293667db883d818703f6e5e1d3001a8be3a9c25a173b6de2e814fa974b04e93d40b2e79635cd3b5bd980db0eb795470c78193a79d4c1d988ab818ff73cb552b2a08a0f9f5e75881df70be496aee11b351291a6437fb20253644d54e03c0a682998ef2b66423175a0413ccfe3e35781eae0a537f3aca7d3b05363c495a312597db4760a76a47202bd40a333a5412ae5abb2621147ed1ff4d084158bc12069ba06aba4acfdea384abd8661e71b904aa7b55894fa27f92bbf4f9fd4a190b720fc02790bb621a200569ae32f2906a9fc0b9ad80fe48f9863ea8ba38b962fa94e3bdc0401a4c4e5740be1985a946d355e3ab1b0d85e191008b58562e486ff2755abf2080b8d758eb5e3e97e6ca091a4539ce3c06febf05430ca91cc843fb8ffcc77a43f786b3fd7654ca468d7392b42d22f756dfacac33df8431924746319f02ce3862fa5270c147a3fcdcbd5c9974df8c60ddb8adadb52d5388c95da28b4520f5128141db38af4cd4008d12a58675cfaee8f9f285248b9d813ef5e6d33de8252f6718472981a25adbba16991134dac0850ad546d200f9ed5f44a8e7b16de8fd0c372a579221319aa15240918c3ffebf6706db70cd54f18b7bd6cdd2fd11faa95173b265a8f078212b3b69626877550720f6dfd1c05eeafb79f1e0b9e367ceae4dbc761015f47ed3ddd8b3d7100c13d891c4b020edfe44f12f27052baf148f02e17467764c62e99f2ca63c5efe193b2b218859bc340877066b0a56ed2d0750215bc17c6e3ac9c8593239c155f15cbe5065652daaea1b9ee25b17872257df1e32a3013f21363a6c14932b6482874a48660dd669f6e34021fac58b63b18bb440114b603cda4e8eb16f27b4f6e6208a628f6273be8e71a66d767c2b5313c4d2967b269c6e7a6ea910a5213df97a6c1e7588ecdd3eecac7d816a4a524b41cc2f42a27a80380c3bfde65b084c0f99b53cef3477d420686997a6192deb4ee83ffe47059e3da297a2642ab6ee6a13d144e6f154318308e8368e5fa6f62eaa0d37031718120511172dbe4b8ff133faabeca30dfa17289d53e8210135d92cbc4af018128c174a7863959e1e5eb98e786fb9ca22ef95963259b7325aae05a46d488d4a2556f7f97614ded6d3efccaaa79140efa77313645b5192fbe3b2a31d9561beecb5cedb2e0ff14cd985039ffdabf634cadeffe5f765a147e3808cef0a5025bfb396bd5031141e05ce1f02682542c9f293b2fa3262a5daf46248694b0ad56787e617e6e886d00763fd1b89434b16230d7883afac6d8ef55c6b32097d986f6de3b2d96a90271460e9dba96db4f7cc70423e81abd704b00c0c386e028077517342025515e5ca69f8dc56db522cdcf110904b8fe87a38399bfd61e2acdd6f030544c1e71a0b6e42d15c09baa0c89a971a63a4bb0348a669614389f8b06a08212ff7dc600ae5801c9ac66a3b4c3b8031fbe65e5cc4d097351b81793877673ed5dac9464479c180a825853e88aa15872380508c438fc67cf19ce4e4ab0ca5dacf52449cdf8e5b4a7825cfd137585f903832aff056a0daac4d6b2bbf54a0df8f3106a5836f28992dafbc4163161fdafc58ab3cc45cfd26298fbd5449fd4d17a64706b31b17742e2ed147dc709a5e20a60cd0023768c722871dd2ad8d0b4a91039dc72a0fb96634fc16407f6690abaf5f9f7dcb8466328299ab879d5845d367362d35a2b1fb321ea727d3bf9a874bd703924e2c29309009b7e92d05c9ecb3f4621ae59a24a4b5174cfed3d10ed0a66ffb3489aa1a02c081c8a3f18aa7e1a4b5d15588b75bac2df3bd80bf58ae8a7d5b49c4806fcc1e2525c6ce7ca9c430ffdb8bcdc1797bbe5372d7edb1cbd1ed2540a3ada9255dbe406e1a30a3bae79a8e35ffae9c5ce8e896e4a3c44dcbf121c7c131fb057cdeb927fef8b7f1487dcbc3a56a6a669aa401c36c72e3e1785af5f79ba8d646c7c06e72439715d8349a55508ccee1a78148f7b35360deb3bd597e108e89865ecccfbf9ae37505865a495a7c3274db77462dd0711e5f2270febdf986bf236eaf49e14c5e3ae98cdd9029e443e28631351a8c8aaceef391fc46cce160829e533f797f87563a621c3d6c038b0ab57c036cf4bf0da3bb7c7a80cb8553d07796e5892f243988f70c3d9ac36f05561728e05043be3e58f7fb399d0b8af1814554cd815301b92c8b92fa30efa4dec1fdc94d72a8679c2b381e46d02c7b32b4b0ec7cd2d2b2da3e42185294b10653c78702f903f5aae6f44aadac09dfe0187869fe378089d68622fe99a127bbdaaf209e34b35d407d8acd030798359681bed3e7bd18ad751d6949803fcaace6e50f0bd50eb66aecd3f6e9f7a14da98195d5067762bf1dfd71421c583d5066f382fbf315870422e48af34e24a22780bfea69c52501a32669ac3d845cefef1630d3950f665f429285bde9ad066dfc73236df33c466af4718c012201bb806c944a61482b94c95ccf110905c263baa602f9bf1e2d95dd3500e648811cd09ffcc0216e970e39b81d1b0ec140916f8ef4a0b55a7b9a8386bbc7e4b89d7cebda2e870d975c059bd9f4375f96a4e8ec033d4802f411b04f9af7e674932e80c4c8911b89e6b3bcf6c8d283cf0e9a64ae2c9c12ad030d9d5a9869034bbb0915d8bcd53a9ee8477036e61ed8280d37f742677a80c9eee9a4a24e8883e8b8aad6968dbaaecd1ebb42ec30be110c3cad23ddf61a36473d2fc0a15e40726efefaec0f0e4429b69d7dfaf4ecf61cb9467ffa09181473ffbfd394f0c27ba05e49c6e1cc78d331814a07b00b2ca6ccbd7035a3a763faaf843966c1e991e92ee1979fe7075dfe948646ad6de74d06a3f52c0586b6b0b0ff10f708a8d66e3701e403fa8f5fd8640539b10496610b42996d75b5d7d9e748f2d1428a27823def0ac97247002eb3dfefd97ce300568177185ca8f19ee80486470899f544db68533eb3d86675964e294d85984ec2206e9c83c741c811108a7bd8f8c48771fd497ce77f2541e00c2d8d8c811cfcdfb3c4eb328b20f10e365cafdbc1ff6775894290a7c43bee03e8dcdd47bc0bf2095faf29b215b71ea3ceb7ec2e402d2fa4f08e8bd54eabc75b6cde1e8bf9bdd99849d0bcf2d8625838ab2308caa990c1187bf8f3d0904bb6ad2083b54d89ed43658c06624af31fe51a228d47845ca15d97833b443f3ea0e5ae130cf310a8c2166b18d1f6a639665b174dfa1075ac8f89fb5b2b63f30dc88d727ccbf83ff78263f48ffea7f36d6925a3f4f64785ba30c49627e7292226f602f46cf5e8ee5274163a792d782505a85bb47c06e00aab231f004edcd37e2d9b1820aa89683b2c46f23c3a495e15526df55524232643a9abd041480041b578dec4d9b0227b4b7270dd2eaa9dafbc2e610e8a99c9a5d8b31dad0656ff2929324cf640f4833004799db394206313bee6b48fc14ca51895c1712441c1eb8d941199e72ae258c425960792f1ce72f564efca72619b014ef405aa4ffe769823a3a4d2c5df34171380fec9740ae3b932ae8e349d05cbd5e610445966f99702ffd83b4bf01d9adc7663a601d30efad0617bd3fad1f8574925c16786233a988d81bb8d4eb2d23065df2ef66e98580ff1c54a5974346e91cde2c016c113e45750256629f28941691c5cd3d9027a250012e890e785b4bd268773568ab800e183a2aea3beb7f76fc28df8093c831ab4b46614234f049924b422ff7caf46cd76e2cfcec3d1c805b4cdc54547f7238a88f76b0530a6b0d8af2642cf19f0e67bc16719a40ff01b9c1bc273ecece1578e480ff46eadad5764852a4b2d537141fb498eb748e1aec3769f39c64e5ed573352d7488aca0351f487b94831cbf6874e085325a39ce2b38a2dcc3df40f8f18fa0cb8f639e653b11eb879adc6a14a7b08f801f74cdb31c9fe2ad146943b86e31bda806328d6233d01dca8662ce95dada3cd641acb6809b754d9ff40b95208966053c3fff91f528ef6b31b0043d4a58a83f0d3eaf8d25fa2cd64059bae80b5c402092e08a06e944437af43d09749680a6e73fd6f71e86a89ee216a753ae5485462b7dd88e9380922e20959676b425839a055308f3d2beefb13ec38693796562dbaea44915d37bae4711706d7aedc2d09445aa9bc0ccc72025c526063b116547fbd8fc55940799aa370a384af20a96f13a876ea0e3d2e52303eed19d083f4593d84f91fd8b02f849383c991d6dc06578f2dd1390c7411a61b668e0b8dcdf4af2ed1c60fb8e374fe62106287993adea581982ac6507b12c195b2fbab88284ea167b4eac29a569a3d85d9be83d75d925c09568bb3d7a076d09b0d83747f4fb3a42de682b4550accb09460a500114ed987c47fb7e249ebd5901a4cd2ffb7dda05122b1c2542f8ef0353e7aa4ebed29ac43ae02d188cd3f6e34f688545c5b275e8c93f0b15c3cce819af4b292d7867a0d91c8e452d28147f9a25c7c29af94e6f4c2c191ae3d1043de53234789f7f7604aafb19bfc108bc925caf50b81bd22cbf7f1c654fd3fbc9d857dad1c6b6483c19c1c0f08814243f4fc578d04fdaaadcd1cd7293065a12167f5b1d72ffd3b17421dea112a8c493c179930eea0cd6f5421c3aba07b9a89208dd41ba6794c62af40ec9d8d09cf8894ec129d8cd90d8b56ce072363a71d5d96b2cc4f74fe4c9909d51f530446f06acc858350810478f8d9081fec83c3a5677427bed8102e27e0dac8e1310740d825fdae99c4630d9151de0b3efabe2098b760443d11d795acc73cd78b08396b006ff7f2557091f39bd3ea6e682c7cd75335f008a602a8527dd1a19e48d00d24b5261baaaf00f9e42a0e7d70f67f086dfb4ea05e6159cfc9204145385cbef0ed2dd0bc2e71f8b6f072eff231af9e3d059f4ae2807410ff7eb214ab5476780397d507f8104072eb6303fa7f70c8e19c43aafe8a59f0ca2f999bcdb17a0c5f9c935b1aa4bea69c2e04b33e88974dbe8208da866c8459c212482bcb44626917eba5164156c442d4390bbfba269483bba442bec2df8f6b9eea870b6766bc57a4a80ce3dc94ff03777f7a014b88d73ef0bbb3cd1359f720f7f4cb718b58886a229fc718af871213e25f842da458019c6a7eb86f29b3f436703af69a0ba4f97e181c52b6866a5c1afe2a9e8a817606776f3769445dcb0e5486d60b0d4002c62e01a5dee28e10f19d614ae3646f12b40e10fffeff96db99d1a61e620b5d06d9876c8653ed5838f445697e081af424b4ef5d999ddada2d6342388ab88bf90ba26fca27b6dfe1f6a48adb0a0435a76420cc6f92fe1c8672dc516b54e364a1393e1383464d3fecc6a762563c26cb195550e64126f260e37f6400dc1577cbc6f332b4fd9e2bdeda251ce0cec176ab1847372400fe38bc3ce21ff57309a7dc866f7fe8dfb53a23b02affc3d352ed4d1c340fb884de650ce7355cb7386d1cbcbf4ef9e4973fdd7fd249db7bb2aaa639d4ece110cb5fc1a49eace5ae42d20e7ab293a96c287c05771414166fe97d34dc2e50dbb38bbdf82bd99dcdf185b16daf1cabc55aa73c2a3649956c26ffa690240290e3f3f872f10acd6b2352bd3b8558b9e898bd23f39e4dfffc57c56c63aa6b1e88a1e00197c69b65db791ef9831f0e09e3d0f79c6c3d5da4e3b11e547059d393672af1e6b3b1619d8066366d14f25e7584d4a7b342e69fe536396b619340bed25cf850b90d03cb23bd28c03643bf50be251dfe89624122bed0ff099a152585fde4351c21b0d99e260e215fdbaa5925387164b7585397e49a868e5ea43dd915f6d1c197ff7cff45038ec1241e688b7c600cc1fe7bdf591ac6fde61b34bc1b7eb621d24b6730620209e8cd73a75ea80bcda8d4927d59337a277135f81f6fd86ded71196d1134b1c66a8ac5a05361f53df5417daa087a451a4711162e2663f41f6a7612f36946c77c65633e1eabfce0f2085196cacab5ef9b2532ee6b471a33157fe33f0843ca2ad6d110681968997db5102040183c5d3d3069e3ea2e1579d747e663490cf01e06a49a3fa06ddbe733789f00db084a80bcc52c5e55a5184259e74c1786b40faf5b8c924cbc5981da0815dac89bc67d9c5b46449427c618698d2246b9e0b3f9f0308adc8d9a07da7a35ad31baa6eae84db76cbea91055fd0542c26358dc1e686e21cf152a7e8eb8c74f30f6c2b0072c0da03232e6acfae23bbaff798ddea6b26c293ed95aa9ac94e50bbd47aab6bed6513e281e2b2e38b35a7781f78b0d6d9fb9061e6e97f061cb4233e30a22e7a893319929c92ea9890cd077a9c7a753e9a03267ad749b957bf26608c6a986aa687ecc3263aefdf49a51cd8fc00ec495d9285b641198a7ec8fdcbf80f2e2c807c9d7189d116ea776319b572bda408ea2ff7252540204ab63b56e91e17ce50223290e01986ac5e5fbc9be6a6a9d2355e31cd1992fe312761a1d765bdd4cc3374a649599c637dee4e5d0c847c7234c0a96d1d530742ecd0a2b4ba4f91c03535975d0438d18b928cb70a6ed526b927f11231bbf42ddfcf46129b632b4369ab97565ac98a1bfa21fa570b2241052bbdb10c0a2d2cb0d070119c00609f037359e12daa84ed4b9b4940e10f4a755178ddb3be18d1999795fa82782d278299df555f1e17b8bbb254353f74b113609153bef46c28fe9a37026fa3132289d962a4e1980570bce19b9ecf50d2bdeae51367a5ddc013b39d087629e02bcbfb5d23efcce920d3572ff897ee1ab6bff14dadc3f6f4ce1517b7e138dc621a5c4fd2c44aa70a1e7027ce8767e7404dc57c4992e259b7d99ef846a75b7f2d94a6da13cfb8af6198e4fcebfe32e4232833c3f7492a1ce6f68350b2bab320bd6c4cb67ae8041f68b775fc0ef18afbd313597242de1fc331ce846dd54f78c9cb04f12e1e720cfce17839f92b3601fee41e15dfa2c0fabbc0e0d541d4747ce7011256e2624ae2e8d05a27f6bfe7da9b6b9dae0797b14fa64584083f8a034b2a509a32cbd69786bea8a6a21a701d79808f207044a5e2eedde618aa4a27dd3e82ecdcb2e4443358c22259ef095da7e73809f8275c9493f00dc28865f8f6a69379bff1542470ccd2b097dfd0fe59b144de6c88374253bb909731b2c942e15f39e4908ccabf0784904422ce4b944476a2f19640ed861ac484ef7bca3c8f020f45d07c5f9b6dc90fa3b734ca2ecccf7f6ce01e476fa16611fb24405d942ea928955dcaf548f50c48d5eda69c4251d1e3488d7f208cb177afde9a2265582cb3e260ee90742f63e9b3efc853a37da05c187318b23f9c7d9b6fcaecfd59bff3dba25287c21a4732c82c7309fdbbcfcf2419ee9baa5b49154cb304481344ae73301f7ff542d338545573914dd78be6079f2415023ec193910d04f2f40452a9c10d6b43546c3948c41f7255d872a2a4203cf76e6c767478b2e30e63aded4a92040310929fcf3914a1530e6698d72f0f2d93296ef503a6b42117312b051326b9295015c14cb3d00fee79430e99ea0d163a01700070df5aca05a83a486699380b616fd8caa857e4a31873218834598871bd5bbf177a11667604e94d69af91fba67abe2cb8b482d42f18e8a0639472cc12a02d26c715cd79229ac2464ef659c374a3d6d878aa179922f41087260fa341a9a979ce8e1b9beac7885b8a6f0686f4c754b992a0448e69c1bfc46b094312cd837beab4c9b920f708ce64b1e95043d905447fd013292003f9154338b2608d3d46c53ee074c28a3f810104ac32b362beb2dba3264129ed64ead0ad7a883689cd51fa0f4e4b828ef0047901a160c1713af929611a8ff42ef1322abbac29d2f1f35052016ecd48030bdacc07ad9df6a6d316b269d21bd8898b760d182553760fef00532ab489c3d129f3885e2047d658049649a19a0b71e4b34e6324ae120bc2e1fa1a83696f62f98578c349aa79f0b4db75d6473c42f6194f94ae2d6d58499c282c5cd6370a738464e201741f317215ef22799d1d272c030e8dafbd4c7cca3a8333f06e6c8a4002873e7bd1e8fd6fd4ae55b49d555bf915cbfa7f91fa787c18ae4b1148768a8af8b8136523ea0a956ba04c813f7e73ddabd63679d1d549e676cadc172b2e3ee081b8457dc05e4727e9d010dd2ec42511e8e6946d219216e3e687ff3c6d0ed0d97aa6b1a183d3c227aa63258a7298bfc2aad192af41cf23f3b12213c83e01e93a5a86138db64327de568dfa8b81fefecf7c0b4ec69110b385d17199366378da1880cf848e4e4c500ff4ff880435df8d63127c7c60fd217c35583a8a45dac06123d0c211c9b99ab14f049acbc46ff100bcc03ef764865bcd21ee66bce5218de76eeeb1b2cb357f888c8f971eae903066c2f42d533ef5f93c3441f2fef0fec4f9b301f03d75d8091a23f8e59e292db9e25d17fd7e62989343fc63a6fc0bcfe696b822686fb07cebd6d7738a80a474cc5345b43012b6ada9bea72671b16a28e7d41f2c32e1661c1d45b46b15a1394ee91be0d12c6bf7ff8246fb68be0d53de76db8777e2c96bfd1468fcac789294ee229a99da095484b16fbbb35566604505b7369ad615ddddf1761e3669615e23450f7841afc8bd7e6e32d07096cc01115f6f581721c2d66881b6ca57413e9e9e2820a5adbc64127f0910193bee8e3085b8ee27570bdbe2cdc0464db0068ff2f103f9770076883831a395746c6ce11fdb975515e762b5ad3fb84e37ad6cb15c929dfa6bd5de3cf78e132a953a0fac9516b6956f4f083b8289db9f8f07d0986ad4686871d426448f9784ea6d446c00d8a879618df6742978f54cf328a90d08ae8f6d5f44e353f5d61259d8a46c083d4a400330a186377c32ed35426f6148165527af04fb94799c4c9389cffda788798286b9a6c5e04e08ad9ccb342fbd359559c5ca665973cc66cb039624f8165c818555697b05641f3c3f4cb30507e0aa45a26c88c7ef05c63237739a823bd1078ed7a1361a08df0577f267886cb722798ee2801b9b98dd14ff15a5a015540d69afa947ce2a5b92c78b21ef5ecda23652e521e365e7d0ecb452fc77f2c9c3c98c1d6b9b3b622d7b158b783a02b28e62621ed9c3b519dbb2e2e0ae5f9a62bc0f4e60abed99728e6ca7b1130f4e6ae4c7348f6e1d893850cf418bf50bbf78641dca7ea581d08dac35b32e06c9443209554604844b30b8c463f46f03ee4158a0343dd7f771c0ad1f0e09401b8a0b572b27d1fdbdc0d90b447649dd75e450ce2e8b2f709706d7d78dc7b82e098b0020146abb04457dd123fb23f4993c973b8f4aade4548943022e33ce298c00bedbec92a322d7610bbb20e022c9b2caed9675c545624924aba5ed151eea4e3ce8a98e2b4c8fdea44961f50a842228fb4982fd0d47b4f85bb5b2200ee0e5c6bfe3e3666d7e68e516ec580494dbcaf15a2c1142163cd2e857726ee9b88e8d437d2ff4c0da1d3bf77118160926d940f6fee7f5341694b8704083cea2f5709cdf8be30c6f0600cddc7ce30b63ac93d159cb40d471a8d90e7095a480a0421a1ff5ec5cb40708f160c887af7adc3d3f66673177c432f4957857e419c0b14d7d17466eda41f7eb3252f963de77fdd0d5e7eaf5e17ecff6e3d1a10fbd69a39f9beba9d3ebc86b8dd8ed924d9bf91623fbf05a3b69faa5b9c39e987422606122c6d8451aa3f0c9a631f6c8c3d065edb4d0450dfd22c35fb37eeeded3c275822ecf7f91d3400ad1ac5258e04b40b72351e4008b07a60dcbe9ac7fd38e1ec548284fc254577cbc4ca5f73f8f15de19dd1c80d421cbf7da163bc673d2093c472d66d15cb477e708c50238337658b8e741dd784094513b30b7a7beafb24ecff5d472bbef4dbad418322c03849c1fb0b186baba15c7866bc2f9b27c0ca829f226cc412ab822eac1c60f6ba9572b4c90820d7cab9c9d67778ea292ff0500f0bfc276b2ec5d5279244479fd25a4c66aed5e207f5a2140ec18025c720dd3ab799a73aa4ca4e084146105dfea6b74713a757c27767f5f3411e505430b144739683ff43914d63739a6deca3a35c980da3c3801880f9c2ed50f87ce7d7d3248672014b58ddd98b3586bc05ad03417c21a9ed73d4b2c72c3d3fca60129d0be72313f226ff5b6054703487454f2ed4a942647612743242605d6677a7594bf67403daa0096893aab611f4ef3104ea2d11bb7369fc1fba72ea115b1be66f26ef52f6dd75727411567479bd786f8ce2b86e2c89616cbc5acf08a3ec2f711276e39ae9f39ceba97018fbbf931933461f03fd59447097813b71006ef4080be89ea196356ffa115a14280086da493d0975d3e56b091f40d905ddcd695ecb53aad34be4e6b357a5d9d818c896326cf7acf6a2b35ab08ebce563a81812904edecf5de27a2c79f329bb53d45a7d828fa474a8c8ad45caf137d56ba7679f3b62dcd545844e2a0b6ec688159cb8f54752ca5dee59ebd7de447554b9aa49066875a158589edbd77e5540adf87f4bab9205645caa3f3078b37285fd230c00dbd99adfed25ee9e16f10163b4bb061d1b04c5c88044d495e59577df4ac67a913d7301ce09dc960ef631cbbc2bb8309ae84b67880909a2beb71991e0dd4d38ea39eb83f9698f95fcfdceaf5bef3dca273dea3955fd51e5bbee5e75170a623575c85900c138df465753c09ee9cf3fe5dce5d38a0f1fe17fe315e6ea113fe312d466dad797d5827695b90bee0cb938ad66d4010cd1aa58b10b60168e966f6f1b47f508ef21703266b6e51895811da55efc1d31df682063985f179347d56f13d239b02bb65b5bb9b668b7a2d267c46f937abc784f7449100fe172b70279a04f461a75faaaed70d077a11a2788091a19c374d5ae8ba1d488cde62f3e2c87e951a134fa326cae3cc26a46bb13d496a17f0aa748f58cae4439d473e867b46df124532939f5078c3f80d17064ea65974490316a10dfa6ba20bec7f7228be469b30579b708520777882cf7e08b4b6594848ec9ff86b855991c7dc4d8acef20522052219976a043ed77d4c570c715ce52c3a0df2106e80e77340b0a9fad25a37bbf439367f6e3ccb46d16fc0759c1b3a9eff272d578c2f06816b348b4963b8977d2bec71a814d7d9dfacd45dbc87f6fdf6afde0852fc5c133c14c228f9154c9bf0ed122bc37a0f4498b9e388989bc0fe8235e7e1c64ce5e04941bbd733ac574b7bdb2972214454a081dac26ae74c7dce515ef42373ddeb8e406c58643c04752bb6388b00d11aeea641767610756178adbddb7d0d3a039cedef4acec8c23318e03a71aef4993a45814db9324ff85408e338dea4d5425b3576763e18139d6ecd0d766003e527e2b88d86c5e0de92b364febc8f6b6ffb5306f38232fc940b1f623fe6611f9472009a5336a0bd234da26cf42880ac61f6327c180203d65c4c98e098fde8b47a143ec27768457abf04f075f5b85ac6cd59ce984918291247747e393b0e5a745ac7c80bddae48a4133b4b893e7d02459a7fb39ddf5af5bf70a23d980dbd143c6a1b003b50e39bd421020b1425acb0071224937b84a4c34beda9abc70b4cb546bb3ef40ed488b214c2156390c41a9d34e860de9577ba2627cf6c7fa2761f8e4789d7a2d2146498cd7ab52c9a72736bced2446aeb9ca3885c4cb1666247cb65c7f96ccb534e21d26caf215c43c0dfaaeeaedba972582f70d67ef3d98a614aacb2ca399c5d9614f1e2362150ef0dd243abe88f0a0de38a124db2f7ee4b9a6f4fad541322b6e4b2eb6fd40837906c98f1f96e060b1663e6f14b14f9a1580f573c44325b1dd5894167252b600909f6e8902cb2da519a5e89bf3a13d20a1f24f683dcc44097e6a14a2bf51e31b8a5601b2ffbbd99ee119737687e151116498d7b61e3622413be0a629030b7f78aba83b416d08ee5920c1e70a178645ab1c85eab63280071e5c20f96e79d21eee4e504aaf3bd0cfaff6a5e00e494cbaaa4654cfe82d9ba9097e8413ded4c4fa5431f1455c9b43c697100b77f14e418e195c024ba284ae99e23fb292122b132cda6bf533d5b81cfa1f16e29cdceb4360248ee6b316cde5581248e8c5ed29b37ba3e516ea0151723a22566b9dc41e65248c73496794f78ed96d45db5ca8084f6909062bb5f5828802e699b200bf225c01f537a619c3036bd8aa08c69572d055598c9885806fb822f8186a129e4268d0e1508ae7efa82e3d50a72e2c1421f4a2e2fb9b8f133aa95200c2dce286407a126d374a57a62a78d74a8308db92264b115594a5ec555b3acd59000edacd3d09b673c37563b57d7f907d8d6bdb2faf48aede810de1e7751ef381f73f93c92e6e53ffa2b8bc20e85b7310db93767fffe37e73361fa0a3cb4f4ebff03849dcfdf4cf51f6beb52c596569e653bce475bf7141be3838e97f67565555ec3ddbdf5f6076338a3c2d48110066af690011180a5fcddf66e70e63731e9f0d678e81c572711969474c26dea370e2c2db13d7b6ae1571a01da21462f2a683ebe588d4187ddf203a20a83a1c30f0c67bf9016a77ed320d4c2cf6d8a9381d00ed09e16e2603a92c47b129a823a76831653c95bf8de2a9e58c9f2b83bb7acc4887398488aa0b5b6945f2676a82f9cade3ab509c1a9ce689203b10345df4cdbadefb27f311e98f9c1dda15b2a4f213c298a7e12bc3956df27457e520753126154a6d6a9b3307d9ce1a12a7eb5ae650bb4762311be4cfe3bb5fefb971ec5283acfdea6e05111ae22114cb8d90f2e4d9e77094c7047d59697d8cd6edf1ec855c8469da138f872128870312ff90cab49317ac2b61048f9b2fac32eec201e744592809b5b02fb3e5824d5978964355ec44f143f7fc9fe246919470a8dccc475720bd4bceafb7da68ea440b458e212052360aa5755f79637a0480114230f1b2f7028a25b5c957fb8cb942548960de9e65cf6ca3d597c6c411dfd86a66c9c08b3420726e9048391be72d9c581e2e33df6cc7bf65c152eb673823a1da6d418dd29a77064036e2efb918dcf931a949faf13ba44969accd8963e8d92405a43013d337b0d59bc2e3966409c2f89a4464e74e04292db19a918c2b0bd0ace92397b73f854f6ac2b8ed5167b724fa954e94c5a0219a37d19b6bc0b90036f87516b9be5a6f5e9b49870b457d8c4b05a3f3a082b8bc4ccde7f5d0ceb121f7cba876694549f08bb42dc1a2ec442d42673ca3d415d90c29f3f636256be5b9f3b572ee9f9d52d3b33d443cedd799f6007b6a2ce85be72dc7b8bfc234d2ccda92586832f7d8c0bf8599bf91b6ac4dd05085aad83ac2af1d1885ec6acbd4bbfe9b6fac1fc535be61c0461fb4bec875d3279f9848b6893e8e61053e6b91f7f02266956ceac6b050b0ec271831db7fcbcc80577bd39f8cbaab8f2efc488fbda94600923b76f02583ed1f36e573bf9ea8cc3d94e86ce250e618401e02ad0de47f72cdf4002a0d242051b5a297892e0a3f9bb2351859e673d09f4ee15f4fdf848c9bc7fa9e1112f02037463c803df0341e32bb44a3fd619f4267b24d06ac02f7272ae4728c47b3ddf63bd0b0d9b677f01dd4807ade33413ff85616871672d0fa92dc1007282dbb4a019a071a5cd5a7cebc2dcc57e965882cd310489f78eff57a34f17f1c9eba0ddc18dd3bf6fff10d04b7ffbd937326eaa704f52aa7980e05a2def2c79ef93aaf1bb0252c641a3dfb84dad1be7c73f97488924a0470f6387d9978646572b14bf3a980bf47df255c271ac46510da6d1179f11bb4b0b4b8460121398a40d827a4951377941943636e7b6b5210617fbc83787e2488efada7fa7237d3e935406eafa665c80b2bcb721dc87b3ffffc311e8b7827e1caa7ac43ae69a0c489cf2fe893eb823b0a531d99ef28b6c999e306aa55c73e515da13a7e3f655128b11fb0b77589978ae34f0c7b651e0013a6904da1190f14442adcd1eebdfb62fadb49a8caa50c8b74c867d821b9b41699586efd5eb89b41af059e89fd1b51a058445e84f4be5eeff9e3554be63c596bc57c1da3c1885f18f9d4bf5e2efa530d9575d4e2389e9a8d33238b24e7dbf05d1da006e530209f534bf7f3254a1a26f4a1e974ff07419e3287a052b7cdbb791d56600009c970b190fd7d59a546c188bcfa0924a9fd015f79006df0fc4bdff4747b5c5ccf9eb27e781f6f8d0558489609a1f5e7a9999a36077b36e300964755ceadb0d7106adcb8047b7b86111cfe84dfa4804a9cd1b218d23face124ebffb17b463f95b341fde99037176f28639782b6c390132739d775b51061674011aafe86573c3aac0a4ba55e0de831bef9746a5d3515d4649d729025229046d6a2005fd86a09ffd6951ef2ca0dbb5311b8b3a601f7ab265dbe4ddb2c38b1a24ed77180087719d2d617f6255e2d690e67d7d0c466bd9859c862d6d4d61c068e963fdcb3f573d61ab81937e45ae26fed74fe32bae4691f52436a1fe9b55a934839b5d28f91ca5829b84002ed7c15dce24a39cf40f7c430979560b28a78cd39357a665e96554e81ed68fc8dde0f1ac86750faae47f5dddaeabed72de9b3f8c416fef7c27017410fc5d2db8f39450bfceaef5db1446dc12c01935633b08ab807d5dc288db32cedeabce5414da753430c1a821688ffba9cbd87199b9b83dcf262437a6833ba924f037b800983061a31fcec75a6534522aec35b158be5adb58b8f966f3f8bb06995fc5874323f5a8aed4d6ed378dfe3c8916c7114ddaa2fc02719c05b69a07575b1cdbd7d228a439f0a2b9478c4dca51c13aa633bc33c61034d8d18fe39bb1876c189f005c3548663aef578dccd9eb0c04e0a2ded412494d862602e2d4a8d377172d009de0805a1047e2c563133bb636877c35979e5cc4f5d2fac9ed6b7289c92aea11ad71fb59269902d2554fd0605f70b17e0ffa1c67e90331d71ef51b269acc7123e6c41248c59ae285e6e01bb68d6d5eb82c3bdb22bc0ab123a616a8e4f3205efc0d2514d61111b342d2eec6e7e0598e7a8d4850040a554be6fb054ec6877bd9a939562a080b72ba1d0507cd105da0344f92e7c6a4df5ba07b04712a46ff9c647f2f1eae093b00ef400444f96fe43e7bb388daf55b8ac6012640aac4c2712b720558b7814d66727884bf2b264ad5adb8185585e972c6c05bdf626cca34c946745a1da8f1f5f044c6ac2e38858c9d78cc76bbbcfc1083477d17341c1668212c43ac79f1e081b1ce676babfbf97fd754a55d6d5494745dec793c038ac56570b9f3d21bc7e75e0fb1dc9c9ef2e296c6c840ec7a62a9cca6925006e4943dc17b93e96ac250a72092d00de23c37dd4cbe43086de66c5d436530dd63341d5e4a30797ae46ead97090c0ac5c907a5ae576ae938d4502a17986837f59b56517dbde6b2d6635dc3018db129eaa180e5fc67d7f10840f36991ad0aac42aaec2561da72b99755b3cd30ce9987d4242a2bc7481218fa67f9a6764f0ff27d4ca2dc2100766eb0bd36dca5bf0b1f8932a990043c5dbc01222ed9453fa0019a7938d36acf89caf9a114f8463fd5e1180958384049f66a584f1e6c618a45d8db93d1a566f511ba5c1dcfa71290c089be901564f3576ad12d8e4578ff90f39434473d13c8f1f02723acdc2039a9fed6202e1765d2cbb8b285a5f4e5a048542faa6524759ce2b7288c1ce5d6e94908c250109ab450017a08e6c0d5e9b7a1dab957784a420eb0b7edf50710511852d99c63b5019ebed4102e9ef84966f90ed1b6bdf1b55acb47545b94c7a205cc2c32331ebe3c6c0a6241932a7f6e102b83b9e8348b4b7afaef1fb6e1e075d544c72d838de4f411810599e06100757c7d40d6424330cf1f12c6f46f4f0e5a21cbfb1ff99f5be55bc288ef170fe3809e5f59533831bc500eaaccc3524c29806976bee9f3afcc3f27d37c83d9f16a15c8e79a807f9793d51f6cd7b84d3eed44fb14c309290b1c4e693f50b2a9e4868868e7743770e049013a5f91ee3f81963ce1573836eae312110bfd26a153d467fdc5587f92f0538b1507ec93b4d1da185966110bc53e7b79acc42804f76efb534e2d44c559a0b6b351236d3bbe55c5b90fe87e5b232facfe9d46404566cd5a66adac619e4a63c672d851546dcb4b2c35f25fa754ac2742153dcecbe70578d717d30706b5975c6c0902771ecdd6bc464a1e35e3221d978a8573d92a2775181d858f2c6df7e58e320612a0db5f0f785ba1e39cd3220d1cd25e54907c1f180a5ed4529092235d14917e950479b0dbef46dd0a0b88db5f44121d978164bc8a4b4b9b0761819ab13815f0020f6a78e5f2cfc29301f78621fa217d92c702e68b20d558c3fd013ebe55b63962493db47e8e74c732703ef1408c980f93221b2a0727da038d6dd79bf254add47e72222d67c58110143c87900af914bc69a9f9ff32748145b124816b18c9e02f43901156353d2b38236480b2938e392c36821e26c685345b3634ac5186223956835e4604b0ff019b8c3d7c9997cfc28b6d374df12469923401dede53219cf36ca95d15d6c486310d2e67485894f037489c8e06c687d41e0bb1c68061fadabd84a11dab827feb706341726c45149dc8d8884bc1eba1d7e7f5dba677a1c2d63c114d719aa80ee0d37393390d7649723557390d06532e459d9b281cd08fa61af5e356000fca3a6e5b0d9f33ceccf00e3d9770fa6b30802b93204f6ae1505ac2b92b07dccb99371ff956ca6f60edec1ff12ab7c7a031aeedee32074cbb2204f9058e2d5fe15ae0103d4d69bc9fd45f160ecf2af6e27f3a1e70c5e69f65d5df90f59a2b97f1f09b9751d5052eb6a48bcf040bf4e7efe72e0b924af448d6e7c5382a091a9379c05fbfc3268be2c04855df152b494019b02b76fa65025ba67e880c1fc8ce35a661d315470d84f518740193b7b0402cce28df6d2c8932266342541ad1d067b1279a39066cc1bdbe25812780f2e3e756a25130db18dd13f59546467826511961892c022c4037857e9fdf6f46c5f4d4c8ab17e6bcd2384b4155ef015d70ffbf259b25b602b661d54f1079cf668204e64fbc295f86bdaf2b09af520b923a7f818267f063ede0a6ea1fcfb2313cea1de7b6028c5f1e02b8bb3165bdd198dbe503106b15753517004621fe97a141696e5f25d77342629cc44a3afe31e55417f319d0a74e21fab5bb74b0235337bf01d2f745276f8100147a6ab5f6ab680c4ed4661c87be7ae05146aa390e748f72b21286f3994a0cf9651c92d79db8e9dab58a613bc5195c323323daa02bda0e5c3706c41a830eb122c53cad1ee88b70be2eee5e24e17f657fab0bb2465a1e04d8c53dec0e09e64661fbd427028789fdee3b43253c367a87337afe57fb96d26854f67f7a7e1dbc4a8524be36bd47951492c1424f8c4b0fc7b1848b4ec82ee5b839141a4fb97215b1acaba967942b1bd9617ba221dc2c40dc6d85aad50cbc4f1fbf327395307e8483eaed996523332b8821d7c394f512f52b58276350374d14cc5d44061974a037cb15c5db73a69103c5db27ac0db6813e80e6e0c130ca3d9c10d67da8b37283a85d3d0afe15b7a9aa453c5aa2c854226ddca8283ab5566ecce7497454821aa44a0c4d3c9d308e98cce131eb55855ca4b3fb06c3dd5b7c9d1613cada90f032019afc66a8e653206c42e43a090fe02858805b4a4b3a1d7208c9b7bd5b97080d735b23b0fc2d6118e6f9059661ef2dcf315766e018dad523feb72e7316a5f3e500a6271b8d2e538aad083809318067cb76264d1fbe38cd4826a2a05f1c7eda6c1b105037d861a75b4a0cd5b47809dcef22db5971ec564039b9db90028ece91599165640a05da68ea48b7b3913d5f61f7801109f79967d242049ada3c84604d7956702676ddb4a1830d105b09a32e38e6bb73b44a54be109251a9bb8adcea697798dce4ba074e5dd287295022578bfa8f74741280b46d8d4adbc04978663eef221317ad2d4a3efaec2e82c4db0442d89fa402c12dac386447c77f9cd0a15e8f6a24a2c2db88629fbc613d48083417a03a3c7f24af1ac0e981494a10cb80e1f98668d1da3f76c9e4b29de74a25e743b499a4b8d3329df8e8fc3f7f7b64b5fd4846f8c482222ac9b1eee8b9335a41e21ae504cc6767e61cfc94b631e71fcf15d5b2e57e84c6d472e874bb8491aa7d0692bd01afc70af72b064cf5242aaa7af82c056aa16477f2cf7ff9ee284ab3183e35ed3a8548ab7829a6af4d513794fefb9cc08ba5d3e5c0c9abe785b701bfac4f89e807974b17f44bfa362745a9c3afba79700021aa66bbfc572c861678d49a18c24e7082a8e4dcdd5f670588b923b4ccfd4540eef4b76b26baf9a1b5035ea8e6424a9ef860b8443da475eac1281d19447f9103cca94d15c087579a3323a2bc3c73e1ecb6394ac446f7f4db1eb4fd662d93a4b8e5fca5b96337663176d79e3bef40b1fd8b6916eebdd54b4be14ad27209969a052cccf7e65c4e347235a4d0a5d3b1d46b980c39026e27f2963dfa00f32c907036f3d70af729b8dd6681c095b6b39e32429b33b4c83de8a5ea9f3524ae0123f10190982362560106c50566fc3c8f2df209280101c58361f4072ec3b313895ff38aee54f5bcc58141a190c281c69736a3e293c80dc67c51b06a5ea626a95a2516771e387a3d1ce7c0a48bafbbb14acd91ce1cc33f8750ce3d7bd5f732456412244438119357dd7f979f6a275780084bb7393bf78c96ed5484bda3494ba08e29cf77c5e1521b34269611fa4b5be4ce51fd130d8fd8120b1f47ace88fb3eb7debb86ad0a349347011321c344512fb23590485e729ddebd3251fe2cfd9cad33192be2fcc417a95e4c91c4f8a9d013fbe69ffb000e74bd323fc69906f483a299531431df4ecc350a4659144bbbb7d4a171baabf1f03f4d1034714f5178038c18df5e44d26dd7a2e4286a4c7dbdeb9b1569a95528186bf1e63da74215c74252aad9c9259fb353d5962c0839240e084c842ce49c2e1d8bfe89c320b5aa3d68120839135d232a953ec7629024d6859b5b8684a05e229d00a51ac7e50f1c293ee26c9b5f77e58f2c48d9779c3ce651b4f1f0120556692674b71236e42e9ae4a44acbb9d9598f920b20d026ffbeec07e0ebe314e3a6c19cf36fff9bbb41bedd5ca445a20f20474c47c57ddba82bce7f7c83fe6eef75c6baf69278f43e09954b4c6952fecf1db8cfc61802071d561bf8cab738e2e34b95b8dc926f1d417a6c7a66e7f0cad2391c0a45d226f6cf2592d64ad15cd73f9a1fabcf8b163ff369c11eff2915d2779329e1f17bb001287ccc5bddadc2b809c94a77071519f61e935e57b7e251d5d1baaeaa8898428f54ffb2e51c5d14fa8be850e51584f85749f2a1ec1446427b3e80e60d48aa2a3466a841be936e4b438ef01c1e0ff0a9f1cbf451edf4239d17b53a83768eef4c67cacd09c3e9326559b13df9b4382cf20c737f2798d9aea7a405913cc6718f0448a10f03f1e328a5d2593253e82a72f77f0b00ad729ddd174791782ec46e11305b8e978936845fbc2a5ccc22045249ce7e60b68fb846f8f5430103ef9f54c445804e59abb75d5b04fd7cc6b50fefe085c06bc015c8fcd3b94d83b99f1017adf22a3f22e8feeebc221fc61fad2b053add3c51a3be378e35e054f4b523d6e772b6dc33d8550bca1174061462444dbf03b6a25a09d0de04193218a0d60acf06b6255e8343b8b169a5356a959d9c1eac31be3d4b63fd450db53731ea9e00161fff516b1bb8c13dc1d838830c0d9cdad59379247fc0dfa96cca8c395f4c5a7e2c2c9c5c7b2eac2d47b3bf7a712668c9d11eabfaa17a9d487e537f30a45a2522c918400c5fa616468f2007863b49cbf337639431f0bb1a33f8f114df471ea142a8758d6f4813372d3d41a498b43ab28d13a9c34da0f246e840b7451e4488252cc71022b197d69ef0ccb886027c54ac17a2432f35c58dd454d95f175a8013cecb3e51ddfe7672941ba0bb1b6ab08ce98a6e0ea2ea61e94db8b9247387661bd1d69a42a7d1d45c4412ec36d037bd352dd4a99fb333cd54434041acae171aef6eb2ccb252e3585217c3a9a364d34a6981da41c004279c9e3a1f13bb5c98ecdebbc8699deef3ae95b581b165409461648b206a5bdb445b341f7cdcdee4d982bb520b81c5fc7bda6612d0d53b41ab9b8d31f7301c57ba548479a3b0f2f8e276a62696f7b57465850cd10c1010a6a2bbadb519484478b04113823edff18a87c4386897baf5263b8625eb63bf64a462136cbd8d5cf2842ee43e08e7907667ed85dea7dee57b4fb0944a13d8fe55647d8eb8fc16b4d0151dc0f41e96feb89b48bb8fca05554b0ad01db51908f49bb6335ab47d7324064d939200799cea42be3f9ee71b23765e512724438f427fab5c7cc45b156757e5bfd9d7dd02d0e8000d1765de9b2de67d70592eebed24b168c0d3d66affbcb7158da478ee1ec09f865290119d6107e301b5bd54c8559b1641e9324ba56528aad0223d493e65692a35ef7c5fa9cf3ecd353488051b8d6ce6a5987312f98930d57a791fef2a35b4edce17095918b67edf8022f50a9a4c5f34a75c07e500115888953da57d02ed3dc34590632a7e75d90473028702f6e904acb0de8e1ada7d28b8fcd04cde0a8f64341ba509edf813144b21db2878a5ab292c55cdbcdeb00172f06b95bb066e089bdb8d76a482a6bbf2627eaa0f1bdc0cd3a1df380fe9ecc9822d253a83e19a670fa7c8ea03816d99f743ef208add4a69d01efa7509bba0b9680846f757441b51d26c37618273daa2215fe65731f4bcf63a5a1052917acf4a096346ed45fb63e93c327eb6b0bae3e6238a753682064e2a872188d9b9e2cff698f6703b3d0a98883fefc8aa162ea479fb33e3009a5a277adf0ac023d5e60c91729c7b7d22c354e27111b064a6678a26cfefa372e94bce6b4a241f52dc9e1f9e73c4f67226a969a9f648fbea04c94457d9513f4a991d44cbd8d4356d46d19d2e815cd0579898580dd7331dbe192a349d199e7c0cded3db0eb42a2b49a6c1fcf958b444cf88725f24f37214d31387e7c43417678976e836197b760ddf951ada692db9fe23068874a3008aed7cf885e30216fd5964a9b78dd58181b92edd8aa6b0af617c3d04e0df6e7e3f91f67b0052cdf3866b107d715d29c7e378df00102524aaaf60e733d44d721e8ac40e26bdb096fea3b688f2fb6b904a855d18a507c58d3e802186998c582026ba24f605902f35a1e62afddb64f45c11fa5065dfe7fbd1a4157e218f75471274e13a8563384722361637663673b5831e458e7c16dd998657e6009b08255312d803118fd393c79a6f0db3c4e127f987e20213d8b93dd157b341419949414140862cbb6399567709fa31d171c088619b6c7bf02c71b00eb8094b5aa64d69c3197492f711ccf655879be0f506171f0a674d5f662d5cb976a705d317847954a83407c3eb15e613b3a0deaad12419bbc6c139b41e18b68f47c8ac03a22568557abfc794ef46d20d395978f588293f3854cfb1f0904f956282c1317edcc51f25755aa9abb64939d235361b296b03c5f5adc8a14c4539ba5b8567d8dde5212c5f9886c629dbfeb0826c46122834eb39ce0e98918e64431ca332b65a9d5850abb7ce1751657e30d39e5346adcbff4bf3f116637eebfac95e9da35f8d17e5193e01c4c3bc274aa45e887d58e793b60cb96b6088ccbb7f8d42a9fb05157c1777e286db26e8af20633fca798820a0207f007dac3b3f1e23f19a3e68d08870e62a8125241c4e14bc431c74ebca63236c8e73e518c57626518eea74e4b9829943862f892443da9b0634a348c8fbf383ed27fb151eec0a4c75de2f863fda92c4234148a89067639278dcd0adc01fe0b48fe3f04edb509ee1e8647e956d93c8c1ae2cce1ad2de6b584127380978f82ea0ffb5abeb6d105287d03e92d34c37a8df9e6edf8d9e2ba3dd14cd9919cc46425c9159c9b7d9882719b3f4712d4bc8ea3bbad34b11dcd7f465724de4f118a0695ebc89af5f0d2c0dd1fa2447a3e98f5b05d14fb931c9a65ba897d4af0d4ec4596883befacdef41a598909e1653c93158d4cedab1c453ebb69649ef7738eaac6fffb73a2772de6a83a5587836eaa5228e86444570b86ffa06ca75fd5882b4f26aa113367c1a61dd3fcd1ac9cfb7023121947dd3bc723cc21ed70bf4d06bf64d728794dc3f1262070777dee36607ce76f9a3b1f47e8159cf10a1ce5f521f57bc6f8d537ac60a269edb1ba468e7a2ebf7880fb710673fc1d477327f07562f03e3da3ce4d3308e11a745adaab3b5ac914ecae1e5b88709afea8d06720b721477f2c2882de7e1b4edf60fa1ace5eba9b0197d800641461cbc013b9aa115801a7b51bf7eac26aaa6439079729899b6cf10ea17ab2f384def3600ee01f306a8379c1a04163b66957656531595b2458102f46551d36bc5b6bdaca62d1f0ebbe9849e7584d23a2bd0d8c203307604d51072b6940ab1b087cfd7241660245470c14a60c260b326d959f5646fe6ef15fc4ceec2fdb5949daf61bb9815c5f4e44bd122afed2bd95cf86fa01e1dd294a06188c4931736562efb24b57bf7e64b7c373499c574eb43ce834dd6839c3d246975bc6b2364646cfea763e5be805ce12ddfb1fc8634dce54852553ae89e1c419c1a3570789d42d072dd2500c007aa854e0fa83e87985b82eccc1060aa97d9deb6972026b673e5758e814bd180a3ce58ce775ed9e78216f2808c41593f3be6845230bec241f3d9348d05f7f5ffa5f31e6a93272f31b7e24ec5f8c01edd3e157ffc6382884f9ebc13b9baa37fe80b33bdff6cb5e5fa59394a3a614b28489f7a771891cdb788a1bcff57df6ee15315c37ce19440d82b1b4263b6bed070d02722c5204c47366afba9a264904c3d49f090cb327c43acc5d576c5a18ae21462398eef0a92ce639847f305410b647b124fbdb465350623ef8b145cd8b4a9f24251fee4a542dfdcbaaa6033fef39bd10d9e905c4653c7107bebbe5af4d7ecf77c159737e5f83114a90ebaa70a4290932a4c3857f1e30f621bb137b94b185142c7d93c5ba4ff87811274fb0ec76cbf41d5e90e0034e7dc7f3fb743068f1d130133d30931efbadff593ee99da12c3edfef1c1391b0bea565c38048691f0eec3e01060872ab563ade9f1397750714d4cb99bf358b28bbbddc0e677dd58fc71f8bd4f467ab23c917f52402dcd5f3f8c3565a60e75a549d6e5ff02c12da38d3342dab93fab593af92ae1980a5223298bb84847167be431aa77590e687992444799a2c0394860dda14fa57d965bd95466ff0003cf12b275be0c92b15520c979c6ac0406c37a4eaf252aaeb07e766c39faef80428f4cf052c226a55ccbea4233105845002a4a6b22ccdfb499393b7338b4ef2afd2a75441d7c89dafe750f7e963b0cbb03c188f3b5e73d9ed2eae1684e5ab0ec38caf772966861ea853ed8961fe4a0a7bfc1c5d95cdab7997528aefb4c783b7872deb710e387004f80aee22cb80d0ddf0400dedc12eac62036682ced5b210b32887669f6d9e3a322277ae8631be439d821eecba82aebd1eff41a66155517868687d22bb5dfbff2d6f6d068f0b7c4f39c7466e70e9e4fd197277f69818a2df505ff3b558470f51c0fbb523c55f9ae4ca381e72b9f4b06a6b6700b2a67d3fbe5c7229ed4f586405e31fdf74ade2e68bb3bb9cfb15bf2405a64e30b7f2fbc5d79a88eac85e2033d1f90c45279f178584fd36443ffced74db6ef09a6d3dcdc8cba16ae97f59fac618d24a5eb4c197effbb3a544a8d64355622e8176267328326876a4fac0e7cb6c1d209ea120966b17bf2b0ca0bb95c5538e6c51d2d0933484ea1c0a32b63647037c2cefe6ef422fb629304548d8197bb3394591f75a442a82483e3bf431c16c09a22304416c5b8ad45fce6c63f05463caa23f8916117605aacd9f9398abcb46f729113c82634493e69561e69181ae90c6dff8fe328be306c49540c429bbb251a04db3cbbce977bcabf16c5fe9625d0876a85712844f684531690afd2f38c36705bf1b67ceab69485d02ad5def4b547fa6e2bdb1677bf92a672536f23ec3c53e2b93526f25292e54238864e9ff2c476fa04915926eab5fe2b2e866696858752e6d69935d66251bec37491a094020970eba5ad5dc806d718a578ae56e735aa31d4e8a0686cf2628df63bc531db8a211ea4356365d6c6543f7db5e2ad4998623357e2671d024100e90493c41767aee25d5d83f13d34eaabc3c25ebe558b8228edcb2c38e404b804e28436d4aef1868afbd01fb84abfa154412e1ff760f19723299f290ddd638c979cb8cf81334b897a54253425cee778d3590bf9e1a56811fc8f6efa4fa03962ac7693091f99d9a815baebd078522ef18aaaae2299ed638adf5f9d9c515ffaa3059fa65374a79cc35de13ddca950e4f23a52a7b6aa0f21b16e8f6fee20208974700cef7af775162c8238260c37f1c134977e3f72bf470e1308898766143512d64d60371de27d4c95f3f097eab25a45ceabd1df441837abb70dc70ddba73875d109d2de96bac0d71bbd223a4495a20999fbcdeb38e3954cfdad7e226f390e115d2ece3a5429ba4d1797a008d96e56804eeb23285d6f3874b7ab7bc48dab4d6d77caddc8fb4d507f808c721ce2b07c2de7ca1243dfa1dea358e8d364bf4a30de0111cf1992331e80c559fbf3d9e92d9d2a11fcc51dc2a4a4f6377f8e7f648d2a010505a817ea532ea60500a8fb456b2eb249da09d5c009dc16763c330e657a0d22f92f4983b7529e1ed9301dbd443be83632729d3e132cecf01b399d2509a036c84bde9ffaa77b5298bd57782a79ce8a7a00604e963a9b9a743a46a59941f9d6878fb466433c8404e3c5b7403f9fb0e69e8d990df5b2bb36444a620be9a84f40ade33fb5eba332f667455f3f78f55f2f9cdfdf0cbfa24981b285c0948a2c235f4d335a7160621ef818e5176e1b7264ec1e3133bd66cc6cf3d59a1c4e8597721249aa59f5a25a9a137ff14faaceb5005799f9356c061c49ff5810ae927f73474fe0c958608c3380049d543293796e94b39b114638aaa8fdf0afcac16e1bd5ba90b78e419a5b827d6a520a7471c0b47c4bc6391bdfc9a5eada554f6fc3921453e4dab1ffeb5c9adff6e543b6d123efa2a10733396b5f100067f3c42e0092c1e982ffbc527037ad4d663840f3412d70b786451f8baeefd1f7b52a3963f99eda7c957e66506f126e6737a399583595cca925d0de6463380e4296c75621d6d49bf4707c7fb81d90ddf59550775f3e88352ee2e194ef491d42d9d01af5c943ddfa4792e3c59f66a14d742f7423345e5673120e3328c39964e1899d8121f6b3219ff3c17915a4757cbdbddbbb1910b75cee3149df4cc0e4decf0d9af58242ae41a8f127b8cc11f8dce4ea287ac752e5d82fbdc3ebd088d98ced8f43881e86805f731de1eed6423f1fe4e424362988b6af22822363fec62c786314ece122e2f1e8741164036afb8578295045a2f5fb1a1777a10c84a9cd77a920de8e8cdec926490d66ef7e27a2a7da4db6f40c574ff8bb3966f0e2f70765925bd24ac19f2736e1e7c03edec313c38a7ae0ef95c3aa510df665a6b98349917ba67b70f50b7942c59078e0e7e38a8df45d1a460b3ef1d154b63bd002d65384aef8d8935110651f29ba35c3b4bf04e36959b41eff0099897e9dc0bd68c644815a40731e4b1076aa28a3d6966c1af068d79a4a3b767e6b6644a7a89a9d63301acf2bca528a730c5b31f2b6963c8224ab53cb7bb341d82d8408b5d5884466883cec34ca2e43c63f4cfe5765fd337fdd2e432509e8d004ca02bf228d8b3d975a87e07a6bb2b206befd55d60bbc5c528f528f1637e62a90ceaaa27aaed3305a07ae5b2a0480ea0a814e72768f2995b1254cf69219de8dcfdcbd543873b07b21f17973905e31828b057559c05101377a364b816f28a97bc10a597f514827adc02ab84e4552781c012a52c648fa829b862adfc1081b2e222c3a5034011c65d3330e96508c0183dce122670fa6466b328931cc0afd98e5c07fb148e5d08bf4abecbcc48be158c32fd3491f0f00df0d11e3bd0446591dbbf7f42aba4c0bce8eeaaefcfc5036cefa98990629ec36c6ad81c524863e01ab21af2f0237b16ea49d7f7621dfa739b82ed9f489e39a0cce9b4f0f7250b88a06464e5e8f19ad2fb49490f26b07c30b85c026b0d7a2d480c60a3a52f075375263221fd8a8a14df91059ab8285a1ab2534f3b8c7acfc12e1b9a4361cf51b6c25d6273660a938fdcb48162f162a47d8fb32977161b5200893a4161e5bdfcb90bcd9bb3f889b15a23cacd536c1203a8f40ad69f4d80c0f22e9bffa6cd0f689f54b4a4ef22cd441788ccd9619956fc90566b1a4e3691fe0004efcdee5dbfa94083b30af0db960abf7fe8a6bf95531238af4d67bd23f39b8efdfed2c54658061093084b25868868c49c300ede82c452332319725fb49759cd5f7789f74049313b8e3b47551b269dd944b65ea325de1ec887fa03835e4a037a9b817edbbb4b3e92c9912a5adc085b0cde0643e2b4b975fc1dee65198a58c65201cb6f928a2c541bf69d88d5df7962bbe90980a595336ec31ca527b68bbe5706628c2f47968c911d7c641920b98b35ba2c400921cc2b6f79124795f9be54808ba2c4ba250e56c632876b1309bc69a2bc2b61fc9fb0883deeadf5b87b1d66e32ab1c21e54e7f2c597b1c55f639d34d7ed4fc53ecd7538c4b24210a5bbd110e107ba4441d7eda15694cdfae80740218bf26a3a335428f7a510ec5c5c368e5671e3520c05673a35a6ae90ad00549d9f099788adc0495253e87553b469e9eb3473ef52ff8603a0ffbe616fcb6d6f0afd55970adbfcbc28e484758a9e160819ed7fdae96821ff9f1b8497fb3a57473993c4beee6d149168a0f8e70b7519f3d83cbabf61559d1118db679e8be210e6a3dec5fe1dc4573d3008ccb19a97f491a7ee6c822426b4438245309cce1a84245d766452677498685e105aaa4870b4cbb28dbf8fb03259b0cc560d3a4921213abedc9ee0e3aa75e36bce59f06aee67e898e4f7837fab7bd832395dca9cb3afead7aa825dfe5316bf33c965abbe0d9797f93f720fa64f22dcdb03acb58b0bc2f6c36b2787f7585ac32d32540f2ed757d5cf04c6afc4a5989eed0e5415b50bc3a1e0593cd013a68aedb94a3b2a5b2810d64eb85c80facca773542200cb52448d31ec807994d9a6cf447e9ac06d09ae26fdeec4176740250f3879a8d6d8e5cde958040fcb2603c5278367bbc2d4d7d516f2b3038c88050363f0915556affe8b475c9c079c4a0afa6b2b73b9a8e989f047c4a3fe11efa290ba281d8c482d0bb9c88e723a31831ce38f3a431835fe19a2713685425bd21af629ae8195b07bbd9a0b2ba5c5b6847e4a3eae7b3456c279831dd90aaf91a0413e2b479258e7228a3adbb84f029a6cb7fb7c257f4dadf347b4d76ce2c9261ca7f11b6398ed74b6bc392a3bd444b90d79bffe56c8a69a19cb0a32ebd5215e7fe82971576c905b95f5d34d9dcf70130183ebefe9e28aaa5b6f7cfdbdb9a3cacd6690f62853728eaf0b616265f44169ba35b35a50ec6067f3d95b0d0dca90ab7e3128afbea10c3f8108334432cdc87decdc4c3e1ee45b565bd7df7348d30d42f0003ebd8a407c60d3af5dfc09240d013af18d055480b6af7485ff4a42b17f4b46f86a0e144a3fe43eb0a9e28518f5607fc1ab62dd2f4add647de925e02d801ddbd22766619fb22d6d7aa26f02eec26ddafd1c7ef683f9d266f73e2745f9c5977d4cd531829b09202f8071415f5502435efb9e96f18f90fbe4f5711862d91b021919a72a5acbb29f572c02259001be9e87a04cfe4914f41248c57f6a98afe098862f18fe292d2964a2ce751b26b5b1c58c4d33030224aa05d41c16e6b2f3d2aa43dc6afaf9096581811331f5fc4fe97a3e3970d1a6bb73f04017bf0a4197008664792d986f50d3963789490bddcbd2af1dec4f4f539b0750041f2afc9a8245da78bf3269863877077f2ca1e02e5fcbe4a75d44c467295e88fc9d39d4d81e543339a26ef14db48e7c8e3ebf1c115adc48be20bdaf0e2693dd27a7c5d6792fc6a34b830a2f11591e57b726d2a532cecb6e516b4ed921b73758435daaa3311033ac6141b4e3dc215e4d578f651efd21a300d5a6c44ebd7ef00462d4c84a879b0c5f2b86cbed3cc356734a0b0ecceb0c7a8c76e78946fcf247d428dcd00ee7fa66e92e5d310488d55db61caa48cf3a4a6457fea085a67568e55fc084f5d378b163dd2768336faea03534aed7b149fe6d3469f08b1c62b08bff38cb5a7154030b8526466b207365fe5311d17f8be579d6be32e7ecaa00022a95b532aa01ece9b019603407404315fe3e4b81e227b80e951976651598a84633305b9f462d069e59615110a41d602419606fc083c88f2bb9658b25a266917a802b46c731703b63cdd24e6f879ffd1285981c1b66b34ffa6e42999cf5df25eb56fb0e7874be2b13904cc13c97baa7b2573d9ac8e349fb4222019ca42879da4d797726821f528748e95d0b5513b7f7232df3b235bcee4e8b2627485a8998a6cbb498e8e113fd357c7f703d2ed043bfc1c71a60bc396b83364aa2d9b4020e648b0f863041e10577808b7d62516579705113aa8bd3b9e37a214b0aed05a6203060e4e365f437d7ecc8bf4eccd88573140d41afbe8feafc3e0aa1ad4cb66eab317ecd529bead1a42a8983cac6791a8554b1ac49f1f155d638f3a99c79b2862df6f8909e7d67eb87a9162f97ed43da3763c51dfe5e23fcc66f26950b5892c0648671eb712e51f67293f6eef283e7ee7a1330c07e252bf205b2c82a64b7c49e130a42ab65460a204e9f7b31d40db10be337c6a963917fd8179554d547d4c999697f544aa85cf704888269a510a91433b83a5b717cfb6c1116086a6367cb02fe0333955e546bceb36b03df2f9be3455125848e8575262d88ec1d618176eda3ab3bc968e37bbf4f421b7d03be3de263d7e9433d1b3a729fcc64b6b7c15934595ce7bba6b8095ad2ab8e38a91262b33ed6b854e82f4de4aca23346c40a4132ae564827a8944265509866f9369b81a70f65bc8a4c6d2b638401cbc779e279416f5a3669f853652391557e6d942a93b950b5b87e1d562ec7ea583a47b08ed4caa87d71caec4f4cbd8646d089ba8dce2d58db86ba2e845208a429f0110939020e34f593f4ac0f9b13cea9fe473aa3642b101f0c9b7bd879adb2d4736e873ac0e427c1012cea5064d42c1f083efae8cdc9b962da79fc73b5d3e13c1a093a704b5dbbf975a61ae23105e1e7bd4433ce51eb163ec4eee4c7248c90dc7b17c5d5fcda96c104df3b4ac16f5266097170abfcd63bb046b79eb15f0b67b21c420e671d576a9710a7889ae6821b5635dc182b5844568e69cbbcc6b9d167637405b4292e75253ea62e25942102a9add34a273155e11b5c3dedae01b52712337c8f9a74a6a49d4f738dd2abc3a72cb5e2fef1c986a25914712f1fc4ec6a0f68493b2946b04cf3c324a04956407e8ea6d62f57574cb8a0d6323d9eeda348b3735962ca1966719a4c9ae3b821e4d6a62912f0d7c9144bfe41b15436bce1f6ed3bcd6b9765ed82b2bacdbb13125281227a0c6e6d9974d34828a981b706fa0ba34264aff3dd709d2ed9546e1f2710c95ca68ed676cc51d1ab901c0544084e839e98f237494659e3c07cf656ecc73cb546fb86136314d11272f8dcdb791cafe2916f3ab0833451292a3f6f992e5fc3929b80b34a6c6e78c7f032f672f5b1d2980701f50b0847c55dff0ce3efb9a5f7bf7734abfd0b7079c3c4f38fcedf8d82d4b97b966d6c5478e80848a78a83ed488e97cda2e4bdadf737ed8c5f5313d578d1ac0d3844353696529c9303b2f589a439c0c42218c4ec3832099eebc4243631c0a09310af1adc759d74f449723ae588dc235a976cc5165f33f9d2f30be2c25712f5deb346fbfa4b65121eb0133a3b5f1f3b300e765ce37f8402281e8a842b25483b3c165d76b7dd37c1812db20b974f6a40fd37a511d9e48c05f7fbeb0d5c206e4cd70644c299c289b29753d1058a8552fc13aa310e462b54c5f5429ff04d683636e11bd51888a77a1d0d4ce37a64cc7d19abbed99bbfa9c3ac55098f65a0523a81e8b2073a7dead0e83c21e28070cd18f9345da4b3df817f4a603aff617729c6ce2ee2844f8eda24720f4c29306bdb723b4c8eca652ce03b8281b6a2b0970e838f33b13a1c3e413c473a0c253b8344175ec56ac83dc9fad692259f2ca1a5049360a10e4d899816285969a2712fe71a47e2959eb48cde80f2ebe95d5187fb21c9afbd8d4b97e46ca9a72eb0ea8c774feea9cef657937f8e40294a87bb535982b6f00c2c878c1166ee0d76c6acf1266afc69cccc2a9ef8825fd99f4c5ba738b711161b24888e98419b4dd7c28330c160413b0d2a1a272249115c5ad8e2c6134a9a7aa53cae35788a5687fd1d8dd56222db3e2746a77076c31524559b64c9ba1fc17b81e4ee298a0be6a9a1e335e8d95b08fc506a9d2681bf1eeee07d373ff2bf1f714b977dcb3978de8c750c5895c504023ac5364168118a2a2d1e746551c3b4ce6105aab5d5f24f5b90985432edec7e7445d7cc2d09163c35f45b848dcc637730f07b85b0eb214db29d289910c12fbe27849e4d62c6796b12e18dfaaeec0f7076edc66258837160d92f83fca1a3e4e93af3d6f7845578f86304d9a92c680b6da994fda05e1455c9c00d2b505eb6b2208effda18caf460584e2682fc7b0a5451e3e207fc8b30130bc77e9976a3e0b3bcae995d3a24395c264dc48e8155060703a693c12e201621237132d54f1cfbf029416adcbd8cf5eb63fc235d9aae5bf768599a233a2279c414af76d2af7b8ebfef18c770ab35f5ac1339c53212f5b4017a72309d9550f2e748133512929ed34b3b31672bd5304de771b9a709bd7147f16d33a6e6217bc9364ca4cf172ff6ff6a9503440a042638c94a773d7a7a511297d3440e0fa8ff688dc11187bc3c2b3096994354091b740fff2f7f6b9d9ae9cbcdfb88c6e01067a87ca63ee61580241a7998a46d2aeec8402a276917ebe0ffad8ef4370e82b51ff9ce77d30f156b8176192300e1af70f4263d15ba75a2866f7632d70231889ef02474ed1a4f2b4c86326de26080bfbf870e4d4447fdbe6e23bf2be97036b671957e444b2bad295b136ffd5b0e7e509de5b9dcac29faf53307fe4710996529584957374f5ce08e77d0fdd8d5ac92da4f2cfddf2fa79c450197a7a55487a3ac4d6a9ae5b606627cdf75da95ecf453cb8ed14db202e70f54d466d14466ece88f6d0e98e293cd372dc7d62f8f311235ffdb041d07c719986cdc752e637e6069cd5f6b8e7ba73c98d8fa015b9a2af5f16801ee9cd3027e2db1ea9cae3a72eadc423a8039f3351b3b88fc510543b9d9d08213fd3e9d6ab279d213ed1d2a53308241e016de09f519cc6eaea7ce6caf7093e2eab13aa0be7c38a31bf31f834228f4cdde23629f3916f6b8c6a08e06aae896cbf396902eece01ef447912844435281f6338330258fae13045f4ad6f6948e5ef34d0485e49bf53996f7a93b3e06ee39474f72429b26c8f6b51a105c19bf6c71292c3a5a3b57cc220769ce60eae9f7adf6b005d16f31e5507ea8fb338d8378934f7be8802fe35fc4ca8ed17c9bdad668f55a947debedd7256d558291ec874932b2d9fe0eb46fc544dc44666e57db2877dda1efb93c048ab9c8f698f22967cc93f1850fb2e550e2d815cfa92ab5d5684bf4f058f8710025509a47aa0c5ec80717859d9152a3f664def474e7c524cf78c04fdb66f28c7f015a91622096a2b4ff65c4013a669214dbdda58fd3aa83a6e2de3120648114a6aaf9fbc70c9052e3da2057463501a20f743af7e6ee7e1f82ab82e636f0f8c01f955893d240d7b9c9391b2dfb9862ff93c2ce038c0962828751c22f8d8f2478d37d876aee6ed6e99b1751b71269cb96dade2fd2b663ccd1a1119929ad790b352deb8d7474ab0210bb5d3e2bb9be161de51c088996a7221da61d5ba6360a2847e048e245bb98ef362d7d65a78014e0c67e21b4f73e1f71f3d3190471e91aca21fbbb0af689672514edacd691cab173f24e5a73d94459ab4f44a5dc6fba404cae4e88c5280d2e91426debfd1ef2cd2459a9272f3412991fae3d0331a58b0805d7e59b72ae494b24bbeaedfd49436aafa5e71b615f43344ef479ea7511374968232f4f8d5c98859e11bbabce3646d462571d7e768011ba14456ceb4f7bd2de0d9fe3b8c87efbc47b380a8d773dd6d36b9d2731ae04fe981a7ee7101c92b0eb119d2cc30bf8365f9a603612baa47956e6e74a6c62ad3700065a87ca20bbb620422a4bc3ceea5fdb943b52f8da621a124c2e3277a23cb9749341827a368155ded111d286b72ff6d21627d5495d70353f33657b800d031722dafea36c78edec135c7f71fdcbe275f9e28989b8f3ffa34a98a8d8a95a87bd92801760baba0193cdb6892f0ac77ee9ae1c4db979ccc5ec35be9ad8b11a1acf4a95640bf1a0b2192fe974bbefc3840f0d6dd05e2196eaeec8c83814e540950a068c836ac124ac985377ef4e6d9ddf675f5570d7c503c3240d9af091fcfdf64b1c263df972694dcafeb83d91f6b9a9768a741f54d3b3e4c587e481d0d3513d68477579ee18de261f65f909d46ee7be4bef8beb1a5ee4c983bfff9d0d97304dc37e775a19dd1b8f2601fcac0adcb2c14e632a57265b7aa007f8cd743c8046882b1d5fc9a6eb0975ca27e1d370879853999375a60147224eb79fc0f4ceb87795098cb2e13f582976d6b555730de64f6f998dcdbb5c261a20740ec465ec353feef449d5c613e8a5277a9afa0daf3fd43f625fefe98d0d76d7fefd13399bcc4f12e946f41f7317918440d0f8bf1bcde4c896374607b59a653c5e4cc5000ae8571eac1e22099995e528c0e8c33cab55c65a89b2f6c230b82643fb0a79cbf2a0fe8928935ff14cca998b90f7287a50b7a249b6f0f0d2f817beacf29dacec516e6f27e3a743f640eb0c7613d606e345d2987a1c990ddec3c415287a87346df45c71b76208349a170dffab4342bead24631bcc0db062adfa1af1e94456f985ded2e57a1da3de241a6ea672b22640806b344d54d095c364f232f49cd4972eb5621e73d1becc6d580d1e67f92f5511e66540797419f4a8696158dba8b288da71346c16fc4ce20112458d3ba9a0e52f414eb87e17919e97311fc1c19ec95cb402080e1eb3f459b97bb153d2f9eb3fe7d9058d6ebd0cae58f282230156bc01e165e09046f6ad76d911d04455031946a372d2fb0bb32d1e14219bd7db503193ed4318a177623115377f7b263aef5b1bd2ce3141ac6c08e185bb011a5a7c64cc650a2ff46093501a45e8ba89b53976304413454bb167735d312f60bc2090792b33ddfba8faa1e4a92bc4ca200dc665e5bb1e2bba5a416d82b34cdec3612ce2125b923e256feb2249083fa9fa140d5164ee34212beda60c3015d64244dba3fa4193b4852a4d8a087f32841fdea4f44e3ab400e727d7186733013a2fbab6cf2df8d78287abb628cfdc4a667c5c19d82fbea60e6b32ba68a7ce153b29ebeb4b505edda407c7ae091c335bec9e81cc2407fb3b83de100457c7734d83950748d593c4f952fbec89023321e7fd8b70b1a002e8c62c86af3f4fb78cce22ce33db1c79a793f469e575efb3b47d98c60d2962bafcd5c051a0653f48fe4088f19ee4df134847535612f4d45e859f9fcfa133ae486fec25e782a0ff537dc7d7117ff6d6a3bb1f3021d1971aa4e5d64d0a6a491daf0f350f626eee7a52db23e99d84a53a437940f01a429d71749cddefd39d40809b1d383da98c71cb066208f4268dd13cc42461bc2249e95dc01248663240c0d40b0d93f85fa42fdce2065eb8d304f56f9795f1ab70347a6cc4ac21042f4771ea195485627e612fa0b0a001141f245404603db85c908f12484709871531b509d89c9ed06382e4ea68b0058701d8a08a1659208672b9dec16840bbc81900ee1607d311cddc3d2363a5fef417bff951b2cacc2119cf6872ea9a965db0541ff2e9223a98f3dc2afe70f6adfcc10e101249fb40b573f756f634ef267b65f0d441d314565cfca98c5e6eb35fc7bb9177a73ef2b5406d806998b5b6bb687c18abbb887948e1b397c3909f73e8bbef5ddf4a9038798e42f75309925f428a2bd5888df46ac38685858f7daea0d584132a84f24280e935f54ecc27afff6111adcb47ff4f6b7b3a56b503b376fa7fb88eda13e5c20361809c604e04bba9462212ba525a5af1610c998b7ae7a2f034ca82c5a69d46a92bf6a64b9bb59e648d1dd47197e167d36900d511373c54bb490348d92844577b4a1eb8686c5c5d083616523c2ec61ffc76a0a744e41d711bb5b3d808c7b748d53c1f5eb30e86a0fb823c9442867040a915010bc2713b3b2208b044f96101b1226cdeaae06f5e997fc17c549b4a643a70bdddd8a3b843018944ea367e29888f7883ece74fae25fb55a26820f3c293791cfe88450fbb7783a21b9916bfdd55992f9637f0ad2e29564181229b61ae9b30e2081a45b996101bc9682675951d4ef6b7053c3a80b193658937d8110983f020d0a18352f4fbaeb5011cca8f27d2728ba26f7c064c2479953ebf395a4bcf4740fa5835e86b8f9cbb48b031b7a2179aa60774e7690c75c809bca43aa2d6494d8f878990c14820c6e2d507bb98370c393cd086819faf47b53590a231ad9cd8e6216c73094778ce2349a4e6cd7956be97293cccd4b3f315dc03e80a311ed6930195586b8338ae3c23093d98d42d3c199d74edbcfff790b529416896a44c46d31d9320e2a55512d2c25751c0b869f2f9442262c51b09e936e217480fe1945a3de3c4656f0376d60731b82c1b78c223bad456243b14886f2332b99598f452dcb880264b26526509107a20d88e6e07d9c1495e5c4f022c526e489f284df61cb9596b4d35ca68edf31d1e801bf60b1588e238b3e4b8b7bd9da310ba209da4686490e888af57dd5ee7e71948a7416f4f5d0e66551ffdcb174024a2fb1569dcc16724735d62e753bcff905be9331e0c85eadb4b325afca79313f8e883c57549bac10babb00919112d202e7ab32fdecbb7794b31a05b48ee536b094b9f705164141f2966c2df372a0a94fc10681b108847ac5b82177244caea9be2c41eac42cf1e6cd6e9b7e9befe35ad2d9276f559c13aed5be390d6b59ad244a57534720ed4aaba25920302e400a9823a0ac99027b0a6a476497175f72ddcb72da4394f4a227b841392a5aeb71baa6075b4496c6bf5c5315fe36fc5a0c9cd573345a277c14d60023d014304abbeca8151fe4253e96385b81e8f42a1c2b802dd3f0b588825f30f1688f6b7344ab75a38c1aa06f4f094bc929ba7cd623b9e434bd177bf85405d1f7d6fd35948d286e807f16d36d4ee94e09d2c338ec1990e59aef5541aaca2c8f95602623daffc80916e1cc513cb27bd0fd1543f1105fdf3f2f16cd5e28300f0beaa60016d8bba4967ff497124d5f6d9db27295d4159285f9f8c89c4cd4af08ba18c449c8fc907035ea2e674f3c498ca9624e6c99bb6bdc2f8adbb6216d3dc26400a8db2d5e2decbfdfdabcbd91e8db4ce22bebf6704782dc96ed9cb433a3053e1636af61883653481e5ac6cf81dea4254fb438565c2ad50b7e82c24f5feae4cc8259b45fd51e1a97d2914bd8ef5c17fb1c7399032aa53edfdb3aa1cc9ec192b6f525d0477a9da2cf9b055d07e58623a80f897dea11b289f35423364067fab34446d16a4425035b28bd27e056cdeaabe8e9c98c9ef70199e3fe2934d8d3bb88d2c749f35ea1c8b82e21b061a2448a85719a7f85cab09da8d9cf70a71f95d105f5919fa0f92cff0f5005f6c9db71128084310cf5f2d504b2663aa559345df67788e5094b5110a011df0022283313e9a276fe7a6fd84458bcc2531418a6b4791baa4c6531e586bd669e1e4e85a05f2844f082789bdfa78389ecdd6d26869cd5a546ea78b60cea586b08e263fcbc90a1784fd5969f12250c818122d53015eb18e5583cd79e7c127ca1d82eee12d19289676040640713fdf757e102bfb05a5dba4742258ec983a37f825bc4a1c419baf6ee1d12855a0bfdeba056a14962c14fa8b337164963733750c1e8c35675c9554974cf7a39c493889a12b613ceea010af41fda3360530dc65820c72d0362c49ab9f0b8b259d8ae364e3fa4e6cf766df5de4e09babcdcef2003a74abf36dc3afb837d1dd4042e87e9ad59fef2d49a8b34c76eeace03e8adf8bd6067ad514b9def09de3705dd117d41e92e6b26ef09feb276ffc01af78c60f194b27f3f7b801b0cfdd0c9128fefc96564a3c89067ce25e29b23b458d56c389edca4d549f3df7f8dbd6c32868a8c77947d6a3682cd891b9c0e53c503f9a17ca341b973e9347874ea3cf7a70a61378ce1b05ef5cf636fee206b0320689f2377c42fb68af63eb0741142ed4e3bedbb2809e48a113bd698ea841dbbbeef10adaa9dfa5e6f0e4d39838376e3fd5f2bfc1b3fdf19854dc0f47957565297593d99e5d7dbf97de5a14ab372fc72d553431e1b933ca3cabd229a68908d5bae398f84b05b18f2446795f5048f4291b1e6c6e4876c434d36d8e79f23c84e636bdd5158d481013198205290ba72bce706a03ad80ea0b96706be81d33ea80b3d100bc7871eee52f69d3340f59add74797d5d9094af7db93082598f2f76b89232ecf88ae1c437a360806f5381430f7d6687644f2eddc7f9c919a7b85dcc56285852325954b914d3e22d117acefeb709da650a01bb8a6852ded00ef2d6acf2499a2781540c728d1ed1686abc2a2860d37afb235154ffd1004ed2b4b3db8996b2f4278beadca9436fca77fdad5ae5f01e28c246f055a88afd2a806ccd6366ecf2892e8f61b159e5e6264e029c22532763798c9fda413181bffa417946b2b2365ea3e47093a1fbb8a10bdace3d52d38acdb0545faf0e801a358df63e3544b564238e7ad632d4d2a9563534bcf3b72c65055240e1df475d9ed469130305c9c8884c5ffbf97f237773dcbcdcbc835f3332b14ea5c0474c66abddecec0e73209dc4f8a0b39e8d5ddbf97b89ead0638fc2972bbd73d968cc174f9d89a2561e669cc8889468bc9214fe187168ddb17482eaff5bf6789ef6b86c02076cd75b389d18ca385e843c18d5609c538b1399c05fecdb3bd60d695bbca1f2893ff7d0c6c5f97c87f7edacde18d4811bde941b14a65129f1796cea2533c422338fa3af5a77eedcef730fc24dd46a184c2306859c3a57173cf58c9907c311451c0eb34081e82be0c29e9a223027b6c33be28049f1c7c4f7bcd02c8f0ac01e21be18d17075b0d09a6263a30bbedc64de15edf0cbae68049141b65ed4a439fd06eda07a83314657e46e7b3c92f9c6633e5667271334835c1a9d5ee462f50bb26b00723b8f5dc5840b17215e3426cf42aa93a2ed191b56d1af69d0eec3590d7c58a63fd64e47717542184326abadef8144e78f30b45ded5a37a13f0f3792cec262fd6da850bfd636ddd96c9c82472a8ced8531f06f63cd4761f07ede618f1bfe29b7092379c3ef6497732f1eb8ceb9840904464920f1e4ab532b3d7db306a1eccbad18a4f8821d223a0b87d28a39a2ec9ffda05b62eb8cabf1f06f502743cc6317548dce9770df49c567d03ea8182d9707bbec282ba35ce2526bdcc50d98c9d9dfa549eaadab894d60595972559856f13b4796f817b0b85718c324e90ed80db9861bbc7cc5e2d4c33e6e2e3f4726b4b09fb8650b3560c922293880887b1361e7e7aa853b1931f751bc13cf071d48c5ba1b0fed902393aec9272f8231e781801517e80d5f3f23def1fb0cd39f2cce576d1c9f54abf58f776b3a3a1af5165c82f981e561010d361ca2bb2651d9dbf87d59bd1923600df8121139782f6fe288686b00dc00895f4f7577d95d86f9180919c2d60508ab8f74ef3696a598a73280d8357bd0bfd725502a2ad9cb6052fc11fa3596adb52242968e92bbd6c335fea37bd76c1ebc323385584b133956ba897bb0f12f64e396a5f611bc8f3c9bd2e13161816117206706e63f6c35012b8547b1d60ce0641b9c4249fc8a39e98f875f65c47ded77281f55abf5d0dd55446a47dafd4734ffc8fa1554130239ff3c3c4c5db592823b85ea673add2a36a5726dac7e67aa9c25802907902379af85ddc8cdf702b246b3114027e8f5d3075c9b5bc3f8fd7826780fa33381852c3a012f84a62c3a0cc0e4249fe45b75b67428840b10177e558298d342edfe97bc4a575a89e8f2dde8ce49f9ece65261016ebdee865183e0802ae6bd46d23e49ef17bd1301163f07a0334933594b34942b73341d79ddd74111f329c44868ddd6165cd3745085a0f22a87062a0eea3ff144a6b6146117c0f38820a3e21345303d26011f8c6dce86ae705ecba1d4e1ee16e053d38169dac5236302e27dd8432f09a6b67145e3f6aee836bb2b33d89e5de47353c7871a28624638abda913d8716bf8abe99ae719771ac9b282e530784e022658082fc92ab14020c3edc998c18041aa3389385f1536d7037348f35f6d8e3b9b63eeb96dfe5fdc47f8733cd00f6061f95cbd9fa2cc787c4328326b6a1f3398b3ef0303ecf5b29dabb130bcdd2835e3e2a7bb3de7c22aa0ed62d668989dbaff556c44e8e0018503208eaa0bab6a74dd6fced4a14c12958f5461aaebb7c9eb36ab4384dc5aadafa8f51d7b5824a028b32a614a1dcc6a1854d885f14c11f2373049de4803686598ade0cf97209e98ab6316afa7d94d0de9d9068f47f8f0f9abe927048b98516338522d172e45e6ef818e010126626f025518824156f81ae4f4fe3e4e3e413fde4675811297dfd8891c3858098826a1fe90526371f24f75ead614dd3ab40e3f95303a0e57a9b29551be1171b035bd172b53e46c656919adca3ced45cf1c782fcb12f94451a2012fad639fc9f45511c009557f5581814e8380fd13323cb7f1dc459a05551b5226e71eb9b391179ca90b7fc4f9ead39d5b844f166b42dbc6bfb3d22fe8578a14468e70644dc6cb3efb095bcddeee62a9131b2d0870438a4681c6e34df70cef634db98f46369b17e77a47739390eb3bd6a8bbfbcb91aeb2647c9eb3eacfd60f627a28b97b081bc1e90e42db08d5c3924c04ea31a0ed5196aa87504d8c91f3ff01ee68399e99d7aca13a717ae6d5b12de82b6293711a6e9897b2979aa76c74c5f53ec268a7b4c2c7cf28caef738befc3ce499f6da47bb13847404b90741276b46cb162ce3a2404446ceff7c791330ff9f8abf22d7dd0819920a4a03c806dcecc91fbce7b68dedd18fc123b46eb7d0ead1e175689a0aafcf27121eeb9ecdbed1f1a57fc53e825e45237c67238bed2839e8032c9b629aaae77ca4abbcce4527d67b31f70f32342a247d556431720b3178d806288706b5fd1567b8d1efcae623a0def23f88e97b5610d88e174fb060d1f192bbbadaa4f1d70ec195db94c4e7067bae391ead4c939810deaf83d353504fe3a282f0f256ea871537d2f14a65e625dff88457dc63699e467c70c8f27e15db96599eeb712a1d5c9abde9289f624f0c1c002d8341f5caf3089600ab6fe887c04ce02c7b0a472a799f57f8088fe0d7feec096ab6ac6a2e098a3bfea31ab09b33691764f13da4e3616b446ea0e82341a08d9b463506b669042b19f9e47a69de63c237ab4c62680fee744373f3f6ea0054c23ac57a77afb7c80af9c08d7a3e98d92b4111b23e432cf845521d622228dc65391faacb9613c94d9c871092e88f05e9ef80e313a8bc3f2d6c3b4883ea1f297ef0ff8e823b677e942151191f001c20cf059afe9e3396bd549936be9aa6924a1afbaada7fe9816e214dd249561dbd3dce1d5df10f2940094c7a85588a08c73d2ed96962d6defe62d826af12643216b5029fbaaf06a2090ff2d31eee3e4bd458c8143661a94868d619eb997448969a60d1696edde2ae65355abb6e7b8718e8a067dce6dcf4fe5f918e7eff362e255e905f2480266f5a73984df481bbed22ccaff504714d4fec90c8dd4d33d1e6f3cde084f17779eade0da586952d7907eaf99e89d1fc1748f0f33641de37487e373236b41542b8a4997c1cf52819c04bbb1dfcc410f92cd21db2efc86a3ba1a25d379b364bea9d06c26387af0c51868b074c857d48590b27c91b1bf2eed28bf4c94303f75923ffe0192375bbf14ff6679c5393de43d1fc5d16608e5e4f60aef08149c11e1400d1e0738d29cad47c9884c1e4b2f605c9c2ac223566d7d25b752ce8657968688c259ac5d64addfb550265b566a972ee6e4985adc107ab5f9fe102da620b9703507ecb659e0a2d80e0116266457a1fe1de48111bfc3ebd9325e28a7ff8ff90d9675a714e9bd7e74054a12fa245d3d61ed9f7827c5358ddbf06212e0e1b3658f7c54bb35e85952946b5d72dc502fd1866e0e982d7a7f8567434bdeffec126ae217c7a41d986701490a29928640068049359f672352f29335e293d5822d637c7a16da86bce35e1e465bc20e90b72c9fcc7a07b36a9981af2ab9d6cc4c16beaa03fddd1ddfc234d78c2a7666264d986ff9a47f922fa8751a2877f912f2527d17032aacd2069b87e48d77c6f83541e311c989c58ac05db7d8b9431246bf871900997612b222b8076a2d692be8f939b9222235a623c3e3d44581cee4c5a86e1f9d28404476f134e1a1a2e1f921795de2118987a03e88e57c66630883f237e6500114a78b634b0fb930fe8dc26aead51f8ad47e18773e5cf9ce54cbd810196fa5ab16bba9570f19ea5ed17a886d8daae317c2e1c4647612843ef85f84ed15132200c756267f1e47b705edd7828d6f359dfd1922ea80358be58d9dd00b30c09d8ab6f77b6625e0619c390154e77543c1b82b3d414c8c1f072d10e5212aafe4aa003d2b61173773c736a3812cd52761f32e8b374fe540a2c701430e26e036f42bf1736ac71631c98ee5a3aedaee998111651ebd4d9cbc762dfc5fa73f58a2054d72b9a93a245cb0f886d65a60efc2d3485011b77307f84dbfa28b7179909f1d3a9b5990adb358f4116f4897e06ae6926d00c3d9a931567ada04b0c88a2c7bd08875a9cddec7b7d4278c3bac82d1dbb4d8b18b517289456cf48b68dd33d16a08982b52c485158924694c38521f07676d28c2c39914bef04216de915e0f1c4a48b2c085bb6bce12619bf6ea8ec07e7c73e6e42a97087fc02763e9f1b88a1094cc4c6a99819960f295f83dba8caffac96d39c65dc0b2e2d01658908406fe86f9449024400afd9e688f5f0a3dfc705f54173ea0cb6157f7cf31a6e9eeb13d1c611f6ac4274068e896f35850e5e1d6e5e5706f0efa12c40247ffd6abfe4fc45554bb6c4b097e09eb2dd4d6a0d0a8c8339d41eff0a1b2d9d60d7170677ee3ce8f52990bce0167a67a3e6194d7dbff0cb0f17847bfec76a549593ecb2604ad940e800cf892bb57dee7f4e6a7d8150257dc50562761595e2285b4d3443e0a74524b7b58977d33e5d42bf94e1276c8b17ac47ceb2d4a46d27dbf6acace72e28dce0a2badf2361b4292e8af685d24315509fb9099c60cab3fe1b1490d7d7c8dc0edd64eec7ad1b61d104ce365e8eca06c3c867d75eefba89b4586872a7e962ad1ab48f82a68bbf37974fcaef070a19339f3a18d28a3d41e1fbaaac59e0ae8f7b1b5151c230b1c184198e543d5a2762dfe710b60f24654dbb4dc4b52fb20138a21859f5574ecf4e1f7faf51a5262ddcf216948b0c0226e6824e22127227d18f2f95b970a025610afdcd86ac5bc558a8ee7a5253e5328977b90b5baf2229c893bf4caf396bf993cde0424f458f49e1248671f2085bae417251a339a8d101d92001b859d523d71d1d14cbfd9a3465b107c613aec7ce93820002a84895ffe0f26e0b517f88b76a7b680115f8e1d56ae53256b70453c95c8abf15e8f75f4c2208717151e55c1a6c371be6d7df423fe946dcd23250a751b60773a07a021ee355524b350d95e0724a218ef512c5c0589b9dea8dc65e73b6aaa2876435a6ae1854200ec714f0cc216cd18e2b5b658b9ff17d0ec8ccfe0a38d94116343f2f4fe847e67208db99d514cf844379cb1a4fdceb83837f01184f4667d9d8fad7882324b8e903544f58ce146f00fd3de632c7965b0ba6b097849a56525682ef88bf1902caa48b8812d2a108ff7eb5f5de1d8cc9567100124d73a27fe9e323b170f17d91f8aa13fbeeaa91eb3c9669ab5db69465d9ca1ed82a7d4d9fb57aca22b1d23fd5abebf2734a69b8e4ec50ca8b8c64bad91b1efd83353f338a6ce0900ed6627f9baa2a3483ae477035e91872bee9b5006841e2a2869f668923bb2f6ac3cf8fafd491bbd95033a6d83ca64c7eabe06db1dac6a417cdd0b1a928476a8b0be129457006af8862c16951cea52f8d6118322e65dd20d41faa646260328b25ec33c9a1fda389455197975bd538e8b2c3f78df4eaa7162d98eff5849dc2703fe750d9eeca56c04f504f94db48c84e01af8e0e32ea81a552cee907a6701abbaff7ec51078b4afe1afd6acd987bf7855b6a48967f44361756071e1869360bb225ecba6495e4aaf1e8aa61563854f04157ae05ee8269fbbb1f69b01d8a668114ab6c598977e437607f1f96c57cf8e3fa464eceba7730efe1814f1ac1c2ace5b4e0bed156460bd166390c8edcd733b43f626ac57de523d2de81a2185def618841f1f303f2c241943cd20ab6f1bf666144dde555841393e950fcf573c8fde379f4f5c4edf1616710d39188436b8f4ce958904546995043eeab4241184bd9e55f036eaf531394885c88dab9c23765b4cb5d915f81ba71c2c8e0a48a67083c8b04ed14fa09f07f3b91f1039539e54685c44d94166e1532c69687420a277888b417c48381b304bfeed60248bcc7f77c2a395f2e6f619b381155d6cee9047bcccefd6b00fe298a542a922c8c732cb228b93494dc51530fa574b288a84e34fcd18fa65ec2cc5a882a3b490270189ffa381ab74fee3be09f1c89661f64497082b4617548d23464477dac113f3a6046d727523d94239087e0e6517ddaa22b615b5917415c523e7d319fb1dade96fba41114d9c989034892c5673c0685278f2767a89a841ed409ec655bc9cc53ad2dbe388d2b5cc3bdcf306184731e98adae3ce6f39b437d814363a35996da2f6a71ba49ae5b0f7bda82d5365dbc62f490b062f47070463ed60e2a30de0fdb64d6c211caf1bc7c7d470b81a03359a54b5f04f2f00bdce3321ec3d66122103db84bcf9ed52fc9cfa84bc0b06ef4b5d7dee0db8ba5bc3f8ea075f9187abb593a1d44c46b996c8c7a4696130c8210ba49b24459c6616bcda3e68ade2b92758ace82843c22ecd079d1d1fb895ff3b6341a929fa2112e355f9ef6ecc703b7554248c12fe082a9c596e51b2e6ffb3a78afbf344f4084f91a6c399b00285646a13b5ca0800fbc73889262e2202b72a0cda5910d301b6d731ff288c254b6fa9cd2107d5f66c8874e5c62ce2cb879d00c4a5468cc281149c255128560d778504a07f7874b7724dee423e65ca2b13d636a502cf7e18860af4a66c1c4f5b22da039325a62b0ad43384861d170991762d8cc0f02f177cebf9518944f9aca35f1618cdd7d14a652bb0052b498787cd710586ab0b5023be26f11cb7374b0e232e969eff70b19e3410d67cf9500f9edbb8942eb0b300e50eca2f45c545b91a93384995c00efef3ce62c306baaa83112602cc4ccff83dc12bbaa4a3922cb2dbf193149925a4e97223a90b0bbed052adc38402aa22431a26dad7815992205aa7ce90c6c07c8ad3889d3a9c650b894ad0608165e1d59a8d718c12aa3b3c75bb69e5257ae273887830d59f89ecad95ba5aa13497ca0bfcdafc8c52855a05685067444cbf60237303da3595e2c2f2970fddf998f86e4ae10c9694ec63b3a3a0bfbf3948d8aa9eba17c83f0d6fcceb7074fb333b2288ee18919cbfae9fac4f8ebe687fd279f6b3d1655f9d8d97f2ba34a7f419601ea7f1e484166e8fb76deffde0bf9eeac9f93662e80801659e619a64ebc9589f87149511d2b908bd158479a68b840eca073fff0b06211c6d55596afe290704e4ca1fb3850e2a43acbddbd80ae714dd2bbea24bc280a25cfdddfd12a760e76ec57b51601297527ef60231e77f3715358ec665d6b8c5bd798ccc0a6e5de9f3e2e9473fb276df9087ef46cf76a34be9e0247acdcc471267c674db7e678de032372c6a5aa2f01b53fd89ee6dc8066760a020b1bbd3b95c21b36e300e550640c44e481590911a100ee2cf8dca565d188e21a59ea3805594778fb5655d8728f7d5f9925c1174a60c7abc52e3a420ed332dca0ede0ed6ab87955240624485f8953fa4fde55ed4a477d0ad837406dd509beff9e0a59e65db1572aa7a61f91f39208c47e09d845f47c3b8f0262f8cb1cd9a81a40b78a9959ec99fc827ef13b1c5a98cf91271945169f433777c79176cfae6a2b97bc0b7595f341bf48845936e088bec3fa2c63aeb29363e1dbbb3bc83113490b8c4828727198dd5c3945b817e387c0288237c3c84f37419d884d5eadb3e2d4a33c443d95c4367d9ce7237a4d9835ff79a81ef48028f6896160deb3fd1161a9fd6e898b7c4f088413b34a4e3e1be1fd2813c5d45bae711e74cd8e0628e6b0d92110988cb955ee031bdb97b8bce7597ad7c7f50bc56c20fd08e95d905c9b00644d74783009a1cc6e6560fd84ffa9b2da2923943622f40f9cec29d052a6944515cc83417ca8cdbb2fbfd35932b9d8471c3d4f4e7fa328ee17f8b7d1510d05e6bc14a098ff1d6838763941e4c299f018ae96fb2ed770d2cc61b333916c21137fc46ddd9968ff5244e4280dbf4b3c8aa97390d6e2bd25bdf0f0aa3726da16fdf2825961c413bd2794be4ad442f8b1d68bdc8364cd5261cf70ea2b396a561e868aa488c73ab22505442c66ef8be18b6ee37d268af43765a4f7a1cb1ab0f7bcc72aee4467c5b5bf98bfed5afbc36710fe4bd015c1152f4ef3cda0c228aef513e4ed68bc701c4b40ff2710f80811304572497c3ab27e6a5bf1a0134a81b53c290dc4f2fc54e9fa27b3b93a8bda14755f677348be1dbee85a862cddbb223b777219202a0526f36b8cb5ddb958bf21fa6540289022672e45f66b211347a09cefb6f0cf11b3963bff3c057ce35d37cd54f262e8e92a539b74ddcf2cc500b82b152affd584eb65719fbef061e74871633e1c895c7c02badf2edcc6a419f62a2a8e6c7da309778d1f20b3a462ec189f885a04c204b4fb4581d83112baa0f372eb55d13f2cc1a28885c44d6a98877cdc0039d6a5e047450f873b6f567a9418dacd29fe612c7fb4d2326eba0ce5205753b1a34bfb5a486b5817721f0accfab8268bab1130e68f8ad82f9ae91f7577050b063ecae437b75e3910adc8616885631d1c69251e597511de6498cb35ece7bee24e972c8d7426c5ad290b5ae1502c76cf4196daa941984e4bc38dc9374e8012b29e6231619d773f0d543f9fef92d923ce29439a090b25f1d46be6b800db824a3284b695952340c1a642c86b152a0d286fed4777740b8bf3645e9bec5df86f32998723b507f6710f6f785369a4fda4297b0661154f1261c46f7a003eb454339cc64522e0f2dbe5b3bbc6ebc284d26ed98590aca758c9586cb3c95382068a185b2ddab60e5322dc26d14414014a594f4e4643196240478b6b32fd223d4108bfef403778f882d8bc8eff263c568ce8aaebbc2623e5e4461aa9f0b103f10534110e66dc65cec08541ef1396de9d7d5b130ba9d3de5b88138c796a739ed14d81d7afe51b4dadffac12723a4c4cb0dd568664d5e42e89125afee8f0b0a73056960d3ab7c3ba87c99a7d44869add9cd04d2c787da1a69ae570277f62f7854a40039f076673411b8ccfee908ec43a48f832cf5fdd84f12d54ada1c77804697bcb684f1093effec4ef62f24ac0b6698bbbff33a32516149ee6e768740f7d4f9197b9133ec1f760314a6fefb6a24b6e5b3318de12a2b57dc4bcd0bf1bbdb634085d97863a8031a154d4107c72b6a28058f2d1539628c795ea1a7f10396a2ea80943cdc48bdef99f302fa06bcce76958e385062d58d4f59d6e3896816cc59a5e5011d2d96d3a93e215436a43addfa07f256c9c914d2e347b155a4c7240a23d3c02700d3558eaf15f457fdadc5fe0c0356d4765597ccc722febdf409463e8bb11b6bd48ad031aa31bdac149a68190333ff37360694ecf7fe38c6308dc7f677fae0e4769ecfb11606cde0251053dbf28ee9dfa32a3fa75be1bc582fa0b84c75274f2ee75a181eb6ef0a25edd0aea012de824fbffaf652de18bb209a4c944c4212367143250878d4caf0c64413ac40eb97d0d2fcafeeafd1a2b61e70ce6ba4b213d9b613eff8659db601b13238bdecf45176ff52c548bfb5c29e68ac24794f938c87d571194ec6a63aa80133856d985c687f652452d3ddee619059ca06fb3c19992854325e0bcf216dee6e65be6e5206f8ebb2227b3e22ff3345957a46d366a69eb4367061a20deddea7501a845da343a0aa90715872f496eea5615dbfd71df35d1c6cb0c326916da7dce81aec9c74a488c0ed75556605ac7d216db51ca64f08f1e7c9b2a739fa8ce928d317af26dec6f6a300b478a9befdeca76f3c36f9c0eb905a3248f6999822feb160731b48c6332b23ce8dd6bded43f06354eda126b76184189ba009122b8e2fd70d23a9f78271b76130dc78b11b14bf873a6a743b9dcc493a136a88713f25ee163719531a8da7cf86ba54bb440c8a2e52e1269b1b3f97ac4ad0c60ff6b6ae5553479a064a8c2a639e4bff2ccfdb4996ea72c19210fce9569c8d226dc2bc21a36f8580bd99b55d5b0a24c6b62b268ac1c1cef9ac00ee02867cb827d3e9bf1caeb883127350e914081ef23fe7611948b3220436172589c21a66dd31593aa31acc9cb2c5df2fc1e557c57bb6b5452fec909000158ced43295e939266dea23f983ded4cee6653a908ab0769a29ec0925dab410bdb33d69bebd40cfe59a65c8817e53160b1d34b84bca8d2ee5a94cc2609c0d98535275ac9a4be18f52fd3390a16c418b1e8f7b1eea89a0e9bf01e7465b25de7d572cdceea711c38e2538624e786fdbb5c434c5ce081f486d8e0ed75d8338d1e5539b8e6216cd420aad5dd547daca0c5691890dfdb1c5447edeede703c1b45fd3687151bdd2ddb8dddd67ec46500ff3da3db53be119076b3913ea703d8a56f80a641ba14c4691ddfb3e9e5f977e8a2bf4b1e43beafaa834bf0a2987167580369490b0bba68982612501761cd3e8b29561e5fc343bf1b42c6df8445245e03bf4e8967488669c119be82e0026381ee66cddc0957e522fe011ec1f34b9ffce639d0fe720729f39a4a96fe54a22b761277a1bc04e377ba51ea6d71075e914b452e81a69a1e2a535fbf5b56dd9f725c7b54691bc6d7e04e6cd3c5ca7514254be893a41c272893c489d36461646d035e55164ddf190edd5a6723321a2e5d8162bac2d853b7caed0aa5a12ec1c250dcee856dcbfe419568595d1a992fbe72c8997fc4faa156c6bc54975e2d02a661001d04e2f9e46b9e7f0a2d9a137443f56087b24efff30e4ba57f628a16a0e69a6c659a6fd5ba4e2b93ad9603693d548ea7d47073eaa2f0638837dc94623fbd3769e6e5aa0a4daacec45d44fa6fb39944056524a812ca9e46a3a269d4e83b7f0da4325b3992ba291a5917b3f56124a78c539635bd58080cba74e92ce861ef1418f33155457ac584dd9b333f2fc5846d6f6805e2634df4d1856a77e0b9486e8a5dfc9392c51158d91770f1596710a4fc8b36d4b14fd35256d1832fa69f65df4bfd5357f1d2d1641dd8a0f64c14aa1e0683eaee614cc44ce92b6c0a218997b4bfb475670a2c7acd2b617c56d3e50f932ffc2ec3fc92e962e1b79a54d444ae653d1a47d729fa21b931871c57a793232f34c357ff0be46f7a86beee2166493cd48ac818725f33b537462ae5fd75a72307b893d3adc007f0348aa04163fccc919f5ab8ac405230394932d1f30ae93e3a0cd8a9bebd5d110b5d3dbb8894cb1ab6e2a3dedb2845e780de75f18e86fe5052240b6e999be5b31bfe25b450a71e1fd37ed09d3baccda2b9e2b9c16ebf728bf5bf71a755456d6ea9819ba50382ac97364d3fc058a46d4227fe07576021ae660da617e5d08e914a60e4f912d01455cf90d70813c58e84137bf87d82d40b8da1a6e9afa3e717ae800e4a8c225d17a026f3b8c53e0eb01c0dd4fda61632b2a56b6ada54bd5cb48c41c1c787c50ccadcccf08ad20b2838fe931f57ef0ea2015f3aa3681462ffc013f6d0679b020c18d626238ad3429270d5da735a05bb4e4d0c1207b443a287a3920eb95099a310f909118b1b2b88bde1122fa240d583e86e5103e8c5015c46facdfc8bbfe6a4a7a320444ef66245495b48afebe598f9550248001115d9ceaa3e7163aaf636bb28e2285595aa7223ffe6effed3838de236f83fe86ba3e80fd99f9ab98534e13bf7f375711ea15caa3439474d243915194413332475417cf31e95665fbf3c5ddd18126fe4c42a202dd4235675fe288e989111f062e4e2cfc9bbdd0b0f3b73533fbb9831a3fdddb1e9c443f09f75ede33c6336d3a1c273030dcd0a62375c15249433a8ca12948f341d08b15e6bc5fb1649328b4b94ef81ea34f6d6a9d1f516f5f80b9c526e85281e735e276a7938ec68169b1a89b26ffe860871d2ed085d4c99255da9c6f291da1b8055bd6b899057bc131acfca9a301cac05c4732a525110c49abdf6f32417961c8fbabaf03245473cac061b406ac2c417dc0128cabfe0a63cfbb7f73c8980b97f891cb6b10974be00cf9a2d20b914e476f8445e76ef6357dad58873af1467d4f761c2fe5a98f881c691bee898b93b47dde71a08d3eb0bc89baf8902d861fe7f5840169f2bf0456cf1648db7f946d4f47f7c1d4334942b06600ed21853c709a11714e7038d6c6663233bad76986639cb02a38cfcd28e900e1de8b297d8556e8c251b02a1e8cf78a2ed8fbe1c228f2f461569104f90ccbb5dc3f7082486e3a6fb0137f4b6fecfd52879de31487441f608a87591d42878577a93bbc53e82526eb12b3b82394e439f050c0ac698aa01a59584340dc41bc7b2fb51a8dc4ef8f27af72fe2ecd531b2f031c74695e0b1aac1b73bd1f907314865a9daf01fde72e398e7b2051b2123f660e5204e0812721c7c9d02d5ba31615cdeef0e9677f41d3c707a0a8f61fc68defcaafd2d211bb9d2a957361aaedf726a1bac2dea3b1e6f8ca3efe84b8c4abb54de6ab351b52cb8022ff99ecc59eb79fd0ad3983eead9ef3927db143681bf60309ec432210a0f43a3f12a87a199fd89c17b0c6473eb4b763b6c3799592d4091c1ca4cd30586fa8785bb1377d8b373416ed3aa1da5bb05c5edca927baeaf8be8fbe0b326f8115dedb70489b1a7ac82238b427724310d1e58dbdb0997d41ff6a3c496e97e03c76226b7b283b8a88eac43540f3e61132894089bdf5200b989dab7afef366064fee5c3551357555774ef595db0ddcc07d0206e3c8a20ee5872e2cd83be97f75c14b9bee3464748fcdae2a9e835d4752fd83e3d2963d324dbd480fd864642ac6cc68c222b7b8c5ed2512118350a8bf50e69d25d6a069262a97985cefdec732601820d7dcbec27a15d9fd30ca5ffb6c64c310423af6ab58b4eb1e5a23128582342215c331dac6f7be771b38434150e379958e49ba78df9f96377eb21ae4b9012c38684085aedccccbc4a5ec1bb78db574375a04ac34a028463b1caec3bb0fbd394b62b48ef587c3a9085e65096826e3c4421d48ae1e0f5e342f5bd15e6affef99e4cad7b429ca36e8ba6d81411a64e9017064a2a3a54df583019ce8e1946b314c53a69e500c095fe3ae872f78cae6b4255242ade38b39089814b45516b4f902765ec42a69dd02a8302531ea61ffe5f204fbf7be79b10b629a4c11f6e50b13523748f92697a0dadb31193e16806e043f2abc8ddd9b5b052f7c182e8c7e152b16becb27b681615a66a6dd6a33ebc11249b30fcf605a18175533033c1a5166986f0dba919cc455d6e1d4d6c720ee3bb0288c4ccc211535fce26a677631768db7b4ef4170d47e325e755d2f78745c7bc04b58075a5ff33c4bd58a3fd5bc5c539f80310e261582d206d34218b52c425dde2bfe88d42afe10d686231469ddb98922cbd814b97ce79731cffd2f85b262bae79ba203c592c568778effb7b555400bd3c4bccafaabef16da8363e8fd8305c2bbe2dff94017ffa0889058c27b49714d9dfd9606f745acd9be9151433ea67735e729b57b79f37e48d651965c5711ec12fb47fdcb9988e16a07360414319107e63ea3380cef70f5fa4c9ee4e01c1a06a7f21ed6ba6b41fedfe61fa50d1ec97f124e95e611c624db5515786adab96595f0d63e6fd43c0e20e34430f41ed6ee02559792cba2abc45fb520402d1e1a0b0ad31f3427f9ccfa20734ec48e8d2867d488c7b86b218323aac7d9a258ba70753260cfeb3d8c3db927dadfffa749995e0d0d5a886579cce9e6461214299c63007f743c3f59f568bb73f6e1bcad1cce1b84f23fee6ec128ad267a842bc97713790c0c27d8fb46189ee7059091d908cd4e543c448ebb55b6713c0e6b5e0067457e85411eb8c8b51d2c5537f2835aade35a24cbc8b8731ae6399fde061869b4ddaa60db000cfc8da0c49d932efe0adffc08da7421f0c719806c0df053984b0faf9264a089811e0ccd36f9324e3b96f169c8dd1b2c105e30c33198e7d77c10f75e701818b8bbcd25a0cc12d2da8e1ea890bec6e6990757ed8a61337cc9147520104d1d5044033cb0c8b2eaca0626f4da5e4ac42f1e12d2019a317d4e54bf4c0195441fad86e1e3ba190cac824248b8b3f6537272d18fef4a53e26effd785d0e11b3b92750d89aaa64f8faeb04aa43ac416b97fcdfe9dba69ac1d90069f1984383f5e8b40162996f10525238c55b26c4bde8bb377ae000d49457ac0791f53bd957af36cc9188913803e2597065d814c7ff55e55b0acccbee03cf71e73c86745f30940fd67f1f113e4d1451322786e6d2e223437c09bf48e38e932a2e0404f3d747ea1d65861cd3306dd7228219a1918164b19267d2e602c36ca14c22169eb9f1c8ebfced21e4700d1f9972165e04fb5455a1575c23fe4343796f8d2108171fe509039d7aa825922c09bdc856d348ba542986be21f9dcfbb4718458b153fba0e4c55b1dce9f7ebef4b71db158326f3359dc6dafe133a3030cb63712913ff3164d5a5cda430a7184feb5130cf28e20f3cade7000c214452b33b75678325e28006891e9691100d9f27ba28d721759b6197e3570b6aa098c6d459a3c6818ed8c6762c990c10888298009da15926a6cd0c46a56c8650365ac5c902a902639363e33d2cbd751c57211c645247eed8d169b3ceed7b7088f6c812589299c3242e6f2b03d647fbb8bc212a208f3f82aeb0e93d4f5bde821d9d0fd99e7a974987e52b577a7a925ad36c93e07896ed72ea418e3560d6e82c1968a3f8d2880b058db40d2e433df9617ea1e9bbde14dfcbcb2fdfbffc7c22c4fc581e4bab710d5a14d2132142654155d08175bfbaec82a0e83b48463be07dcaa66f550bdf6a12271d265ac871d2da0a7c54750ac9ec6ebddc6bf6869ac6fa1445f92fecdae410e40a33b40264e89a4979f9c60376ec56b362ef122311f5f8e79b5b7f484f6f6f5df484cfd9912eae902ab9ff29e5ebd237520fc320ece0b37ae2e3fd63c40a8cadc51e7f0f087fa0a2c99688a2ec2e7d553c04f9b3e152b7c981d981a78d63d640b645c97a20e3c7ddf48429f81c418aa845a412ad0033003fed3e6adef317ca1a71a74f65b3281653b961ed197c176485d2fe892d6faf4ad5b3d1e082dbe35c35a7d8c8f8274e5a43fd42963ee92beed1be1f0ea99e83d0edaf13eca363876fcaf9babd7e026984ca0e998b3cec14f8878c5d5cc4f85c3ab99946934ef6de108e92684f8f0e0844bcf4333a2711e784e9f11b013354811e2f181765684ff88d94d95883da71edddc5c143ad341641714c340a202b46463147c5b663b59dc475aa50e28566dd4465ba44213c2a5fc73a3684ae01e49173301899aa4e3d688f11daeaf12b8cb09b5a33f92dba48bc5bd6cc030a7ef3455b4fa3f36481372a6afeef3b727c174be3e5544a282291f9e88d148c6ce78ea3857adfe7e70776235872363268b213900572cd80e6305b43f78e09ac159ea1c9ceb124ea810bb8a3917213aa581f161a3bf5ee34fa82e94feb9c51ce3a13b225760a651afbecee817ed41f535fcc3aa27fb35930b5663bc5f76c75001cefa732ed1639539cf0ace4f18197fbe227df4a7c29c0f4565bb619f53321f9eea1637365270182a6a8aba1967cfe36562883512db3d02bd61e6dbc4e6508fe716dbd2675734eafd5e5613811d39e21dc4f351767016ef77ace1ed0c7ed66bf568f569cff733d1203db7c526f5eae6bd7f7e29bb588f170bde1c18be27fb874dbbcff7fe059e5cf766be2f77d9aa442303f8bb389c15d70507e9811099c36a204840324ab3024b67658ed932b29cbae7ddb6f0ac896b66cea68667a56374b382e5a372401651e61b58cf2e23efdc5dea1cad6d87054d9743b43029e155c16cf31856d2b3e628724b19f06283217673e962e90be715300ced7ebf0901d9a0d172e73ec0e47450314c2998bc8483e24af70a303d3f532b66f903c51dce08b31e836b6c1eb58f31b34f5425eaad5ab943c2994c94cb6dafefc35f1a7f37cb0c5ccf216f8103d9cf8e58250fb646a10d9c28e9c7d08a41639595c81de3f7dc5b3e78dbd10276afd6250184b1dfb468f66d19f20893f16776fe72368994851c8d29ef25ea93d52d18fdbb22be67c79672c0aae51886146160a7cfb197beeb87bd8a9464ac2a6b38c1aa7b508c6dc98e8c28c292ae4519e3530068fc46bc55559cc574cdf18a116bb6ae0ed7153e35139a9801642b4f2b8233427420e4109e14d0cf8b84c823d10a3b87a5e6e53c947508a2a2848d6a6a44f799b522ecee0fd0f13c08a44f3459299811aea1df170d0fa3b8090ed6b20aa070882c74f143fd7bd5c002dcb972deeae29e5714f7b22b78db5eb2f6b472c62e0bc112b6ac01f71be70c31d8800c3675f9a3600d8829cd016d9ccd88ef02347e89d2c3ddedaf32f7babf40415c63e1d94dbc12b858feaf14be6197554ddfe886a58cbd13a5625c7bf127f964bcb14d744127dc6106b5b004b726444618a97a68a628fd0a492c761833d9c683fc28a6bf811aa4851515ed6445a926c03431e9c1fa2812b79ae0673895362686eeb19726ac92fe14b514f0462db6df817f55d7791110f5543d0e919451be5937aeb3474ce36e328f9bb9911abbe5393cf8a65a33827c04de62509d5049dae4d4347f5545b8234fd59c785dc70ff1e3e02d5c4110aeef5e34fba4eefda14a4b00f53ea4a12b20f3fc3740c088bd92d79851476b2628325dd888f71a6ac22d4d822ceb3df4880843401641930fc60b8fa32ab13080678078999133c242845d564dbb2fc5d8372b21bb1327779bfb0c4d0a2e19f10977af4daf1ce210c7166aa40ea1517d72538cba4b94545dcd6f2b40f8c972ca9a3d2ecea3c2f5490bac991f303360f8416ee04ddd2c00962ac227be8253344c24bbc3bacc0c587beab3dcfeb8429168b9b9dc2843b33a745c23b6c028e6aa10b8e20d6e3ad7e3f11aa5e558e9c9fe360901c0422ab41481723c43d9bc9453763b2eacc5ad65a847167cf4df4e4c310f28a2bdc4f991e04f211e5c4b913b3ac38695da4886320e6e1c26f08ab5cda34f856f5aa6a30c5a21fd712c4468e2ea497bea02b9daa750bb48c6bf02d1404fb69a2b132c82f4caa69d4d73d18a0270bf390d38ac0fb6d892b50d2d28b9f3e5e577152bd7e981f007bbb7f5e46555225e48d656fd6a37973882a567e4ae774d7d731bae4e93e3c3aba0a4b3be7b30b99b56bfd971ad10fcec2fb44302c64de620f77707c7e5ac2d2c0f4475ebc829a14fde49b1bcb862808e9748bbaf190050303693985ca9a8fc77774fce5d0cc8480dfc255e1e140873c6cd4ef5ba2333923ccf99db9f677c222a8398222af5cd0d28198a5a79512c151f7dd26a93df834740d489823266a0079a189cc1d285fb4f06073038b9581dcab316a4db41a481b7e97f760254618a252979a2684558167135ae3c7f3db95cb1fda619a77175946e141ee2031978c10d30d0340498ee909d0eaa41a360892932b4cbd1d7a7ad3950f86825bb0959c0b9a6a793efb9283ec8e14be238e3223406cdfcd34ec7617f2181d0aeeaad673e269749a1a7d89c14ff0161953fe7f65b1fc9f3bd3847692374530b8fb9ae7208a75ef73e241aa4ef83702ed6cc54519b0c0928fc912825ab75cb29eae677b3cbc307553880264fdb0679181d3c5848e69299fbb8fe602bd7d95b063307b8726234ec1a6rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootpostgresql15-15.17-150600.16.28.1.src.rpmpostgresql-docs-implementationpostgresql15-docs     postgresql-docs-noarchrpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)153.0.4-14.6.0-14.0-15.2-14.14.3iio@i8@i$Hiivh.hh@gv@g;gg<}g4g*fV@f;i@eCe@eqe@eKx@e@@e%@d,@c@clcGc>@c6@c5c,N@c@c@cb@b@b@b@b|bV@b[@aaza@apa\>@aUaQ@aO@`@```q`OL@`Gc@`/@`#_S__@_F@_mmax@suse.commax@suse.comguillaume.gardet@opensuse.orgmax@suse.commax@suse.commax@suse.commax@suse.commrueckert@suse.demax@suse.commax@suse.commax@suse.commax@suse.commax@suse.commax@suse.commax@suse.commrueckert@suse.demax@suse.comaaronpuchert@alice-dsl.netsarah.kriesch@opensuse.orgdimstar@opensuse.orgmax@suse.commax@suse.commax@suse.commax@suse.comdimstar@opensuse.orgmax@suse.commax@suse.commax@suse.commax@suse.commax@suse.commax@suse.comfvogt@suse.commax@suse.commax@suse.commax@suse.commax@suse.comfvogt@suse.commax@suse.comaaronpuchert@alice-dsl.netschwab@suse.demax@suse.commax@suse.commrueckert@suse.demrueckert@suse.demrueckert@suse.demrueckert@suse.demax@suse.commax@suse.commax@suse.comada.lovelace@gmx.demax@suse.commax@suse.commax@suse.commax@suse.commrueckert@suse.demax@suse.commrueckert@suse.demrueckert@suse.demrueckert@suse.demax@suse.commax@suse.commax@suse.commax@suse.commax@suse.commax@suse.comgmbr3@opensuse.orgmax@suse.commax@suse.commax@suse.commax@suse.com- bsc#1258754: Update to 15.17 to fix two regressions in 15.16: * https://www.postgresql.org/docs/release/15.17/ * The substring() function raises an error "invalid byte sequence for encoding" on non-ASCII text values if the source of that value is a database column. * A standby may halt and return an error "could not access status of transaction".- Update to 15.16: * https://www.postgresql.org/about/news/p-3235/ * https://www.postgresql.org/docs/release/15.16/ * bsc#1258008, CVE-2026-2003: Guard against unexpected dimensions of oidvector/int2vector * bsc#1258009, CVE-2026-2004: Harden selectivity estimators against being attached to operators that accept unexpected data types. * bsc#1258010, CVE-2026-2005: Fix buffer overrun in contrib/pgcrypto's PGP decryption functions. * bsc#1258011, CVE-2026-2006: Fix inadequate validation of multibyte character lengths. * obsoletes llvm-21-aarch64.patch - Disown /var/lib/pgsql to support transactional updates.- Fix build on aarch64 with upstream commit 0dceba2: * llvm-21-aarch64.patch- Fix build with uring for post SLE15 code streams.- Use %product_libs_llvm_ver to determine the LLVM version. - Remove conditionals for obsolete PostgreSQL releases.- Upgrade to 15.15: * https://www.postgresql.org/about/news/p-3171/ * https://www.postgresql.org/docs/release/15.15/ * bsc#1253332, CVE-2025-12817: Missing check for CREATE privileges on the schema in CREATE STATISTICS allowed table owners to create statistics in any schema, potentially leading to unexpected naming conflicts. * bsc#1253333, CVE-2025-12818: Several places in libpq were not sufficiently careful about computing the required size of a memory allocation. Sufficiently large inputs could cause integer overflow, resulting in an undersized buffer, which would then lead to writing past the end of the buffer.- Sync spec file from version 18.- Upgrade to 15.14: * https://www.postgresql.org/about/news/postgresql-176-1610-1514-1419-1322-and-18-beta-3-released-3118/ * https://www.postgresql.org/docs/release/15.14/ Security Issues * CVE-2025-8713: PostgreSQL optimizer statistics can expose sampled data within a view, partition, or child table (boo#1248120) * CVE-2025-8714: PostgreSQL pg_dump lets superuser of origin server execute arbitrary code in psql client (boo#1248122) * CVE-2025-8715: PostgreSQL pg_dump newline in object name executes arbitrary code in psql client and in restore target server (boo#1248119)- Upgrade to 15.13: * bsc#1242931, CVE-2025-4207: postgresql: PostgreSQL GB18030 encoding validation can read one byte past end of allocation for text that fails validation. * https://www.postgresql.org/docs/release/15.13/ * https://www.postgresql.org/about/news/p-3072/ - Add postresql-pg_config_paths.patch to fix a race condition while generating pg_config_paths.h.- Upgrade to 15.12: * Improve behavior of libpq's quoting functions: The changes made for CVE-2025-1094 had one serious oversight: PQescapeLiteral() and PQescapeIdentifier() failed to honor their string length parameter, instead always reading to the input string's trailing null. This resulted in including unwanted text in the output, if the caller intended to truncate the string via the length parameter. With very bad luck it could cause a crash due to reading off the end of memory. In addition, modify all these quoting functions so that when invalid encoding is detected, an invalid sequence is substituted for just the first byte of the presumed character, not all of it. This reduces the risk of problems if a calling application performs additional processing on the quoted string. * Fix small memory leak in pg_createsubscriber. * https://www.postgresql.org/docs/release/15.12/ * https://www.postgresql.org/about/news/p-3018/- Upgrade to 15.11: * bsc#1237093, CVE-2025-1094: Harden PQescapeString and allied functions against invalidly-encoded input strings. * obsoletes postgresql-tzdata2025a.patch * https://www.postgresql.org/docs/release/15.11/ * https://www.postgresql.org/about/news/-3015/ - Disable LLVM JIT on loongarch64- Fix build, add postgresql-tzdata2025a.patch- Upgrade to 15.10 * Repair ABI break for extensions that work with struct ResultRelInfo. * Restore functionality of ALTER {ROLE|DATABASE} SET role. * Fix cases where a logical replication slot's restart_lsn could go backwards. * Avoid deleting still-needed WAL files during pg_rewind. * Fix race conditions associated with dropping shared statistics entries. * Count index scans in contrib/bloom indexes in the statistics views, such as the pg_stat_user_indexes.idx_scan counter. * Fix crash when checking to see if an index's opclass options have changed. * Avoid assertion failure caused by disconnected NFA sub-graphs in regular expression parsing. * https://www.postgresql.org/about/news/p-2965/ * https://www.postgresql.org/docs/release/15.10/- Upgrade to 15.9: * CVE-2024-10976, bsc#1233323: Ensure cached plans are marked as dependent on the calling role when RLS applies to a non-top-level table reference. * CVE-2024-10977, bsc#1233325: Make libpq discard error messages received during SSL or GSS protocol negotiation. * CVE-2024-10978, bsc#1233326: Fix unintended interactions between SET SESSION AUTHORIZATION and SET ROLE * CVE-2024-10979, bsc#1233327: Prevent trusted PL/Perl code from changing environment variables. * https://www.postgresql.org/about/news/p-2955/ * https://www.postgresql.org/docs/release/15.9/- Sync spec file from postgresql17.- Upgrade to 15.8 (bsc#1229013): * bsc#1229013, CVE-2024-7348 PostgreSQL relation replacement during pg_dump executes arbitrary SQL * https://www.postgresql.org/about/news/p-2910/ * https://www.postgresql.org/docs/release/15.8/- Upgrade to 15.7 (bsc#1224051): * bsc#1224038, CVE-2024-4317: Restrict visibility of pg_stats_ext and pg_stats_ext_exprs entries to the table owner. See the release notes for the steps that have to be taken to fix existing PostgreSQL instances. * Fix incompatibility with LLVM 18. * https://www.postgresql.org/docs/release/15.7/ - Prepare for PostgreSQL 17. - Make sure all compilation and doc generation happens in %build.- Require LLVM <= 17 for now, because LLVM 18 doesn't seem to work.- Remove constraints file because improved memory usage for s390x- Use %patch -P N instead of deprecated %patchN.- Upgrade to 15.6: * bsc#1219679, CVE-2024-0985: Tighten security restrictions within REFRESH MATERIALIZED VIEW CONCURRENTLY. One step of a concurrent refresh command was run under weak security restrictions. If a materialized view's owner could persuade a superuser or other high-privileged user to perform a concurrent refresh on that view, the view's owner could control code executed with the privileges of the user running REFRESH. Fix things so that all user-determined code is run as the view's owner, as expected * If you use GIN indexes, you may need to reindex after updating to this release. * LLVM 18 is now supported. * https://www.postgresql.org/docs/release/15.6/- Upgrade to 15.5: * bsc#1216962, CVE-2023-5868: Fix handling of unknown-type arguments in DISTINCT "any" aggregate functions. This error led to a text-type value being interpreted as an unknown-type value (that is, a zero-terminated string) at runtime. This could result in disclosure of server memory following the text value. * bsc#1216961, CVE-2023-5869: Detect integer overflow while computing new array dimensions. When assigning new elements to array subscripts that are outside the current array bounds, an undetected integer overflow could occur in edge cases. Memory stomps that are potentially exploitable for arbitrary code execution are possible, and so is disclosure of server memory. * bsc#1216960, CVE-2023-5870: Prevent the pg_signal_backend role from signalling background workers and autovacuum processes. The documentation says that pg_signal_backend cannot issue signals to superuser-owned processes. It was able to signal these background processes, though, because they advertise a role OID of zero. Treat that as indicating superuser ownership. The security implications of cancelling one of these process types are fairly small so far as the core code goes (we'll just start another one), but extensions might add background workers that are more vulnerable. Also ensure that the is_superuser parameter is set correctly in such processes. No specific security consequences are known for that oversight, but it might be significant for some extensions. * Add support for LLVM 16 and 17 * https://www.postgresql.org/docs/15/release-15-5.html- boo#1216734: Revert the last change and make the devel package independend of all other subpackages except for the libs.- boo#1216022: Call install-alternatives from the devel subpackage as well, otherwise the symlink for ecpg might be missing.- Also buildignore the postgresql*-implementation symbols: this is needed in order to bootstrap when no postgresql version currently has valid symbols provided. Once the packages are built, OBS could translate this to the pgname-* packages and accept the ignores; during bootstrap though, there is nothing providing the symbol and the existing buildignores do not suffice.- The libs and mini package are now provided by postgresql16.- Update to 15.4: * bsc#1214059, CVE-2023-39417: Disallow substituting a schema or owner name into an extension script if the name contains a quote, backslash, or dollar sign. * bsc#1214061, CVE-2023-39418: Fix MERGE to enforce row security policies properly. * https://www.postgresql.org/docs/15/release-15-4.html- Restore the independence of mini builds from the main build after the -mini name change from April 4, 2023. - Adjust icu handling to prepare for PostgreSQL 16.- Overhaul postgresql-README.SUSE and move it from the binary package to the noarch wrapper package. - Change the unix domain socket location from /var/run to /run.- Update to 15.3: * bsc#1211228, CVE-2023-2454: Prevent CREATE SCHEMA from defeating changes in search_path * bsc#1211229, CVE-2023-2455: Enforce row-level security policies correctly after inlining a set-returning function * https://www.postgresql.org/about/news/2637/ * https://www.postgresql.org/docs/15/release-15-3.html- bsc#1210303: Stop using the obsolete internal %_restart_on_update macro and drop support for sysv init to simplify the scriptlets.- Include -mini in Name: to avoid conflicts in the source package name and OBS internal dependency tracking.- Update to 15.2: * CVE-2022-41862, bsc#1208102: memory leak in libpq * https://www.postgresql.org/about/news/2592/ * https://www.postgresql.org/docs/15/release-15-2.html - Bump latest_supported_llvm_ver to 15.- Update to 15.1: * https://www.postgresql.org/about/news/2543/ * https://www.postgresql.org/docs/15/release-15-1.html- Update to 15.0: * https://www.postgresql.org/about/news/p-2526/ * https://www.postgresql.org/docs/15/release-15.html - Move pg_upgrade from *-contrib to *-server. - Drop support for the 9.x versioning scheme.- Update to 15~rc2 * https://www.postgresql.org/about/news/p-2521/ * Reverting the "optimized order of GROUP BY keys" feature.- Fix source URLs- Update to 15~rc1 https://www.postgresql.org/about/news/p-2516/- Create mechanism to specify the latest supported LLVM version. Automatically pin to that version if the distribution has a newer unsupported default version.- Disable LLVM JIT on riscv64- Update to 15~beta4 https://www.postgresql.org/about/news/p-2507/- Update to 15~beta3 https://www.postgresql.org/about/news/p-2496/- use %version requires for the contrib package for now as 15~beta1 is actually smaller than 15.- Add proper conditionals for lz4 and zstd- Upgrade to 15~beta1 https://www.postgresql.org/about/news/postgresql-15-beta-1-released-2453/ https://www.postgresql.org/docs/15/release-15.html - Refreshed patches to apply cleanly again: 0001-jit-Workaround-potential-datalayout-mismatch-on-s390.patch postgresql-conf.patch postgresql-llvm-optional.patch postgresql-plperl-keep-rpath.patch postgresql-testsuite-keep-results-file.patch postgresql-var-run-socket.patch - Add buildrequires for lz4 and zstd support- fork package for postgresql 15- Upgrade to 14.3: * bsc#1199475, CVE-2022-1552: Confine additional operations within "security restricted operation" sandboxes. * https://www.postgresql.org/docs/14/release-14-3.html- bsc#1198166: Pin to llvm13 until the next patchlevel update.- bsc#1195680: Upgrade to 14.2: * https://www.postgresql.org/docs/14/release-14-2.html * Reindexing might be needed after applying this upgrade, so please read the release notes carefully.- boo#1190740: Add constraints file with 12GB of memory for s390x as a workaround- Add a llvmjit-devel subpackage to pull in the right versions of clang and llvm for building extensions. - Fix some mistakes in the interdependencies between the implementation packages and their noarch counterpart. - Update the BuildIgnore section.- bsc#1192516: Upgrade to 14.1 * Make the server reject extraneous data after an SSL or GSS encryption handshake (CVE-2021-23214). * Make libpq reject extraneous data after an SSL or GSS encryption handshake (CVE-2021-23222). * https://www.postgresql.org/docs/14/release-14-1.html- boo#1191782: Let rpmlint ignore shlib-policy-name-error.- Remove postgresql-testsuite-int8.sql.patch, because its purpose is unclear. This affects only the test subpackage.- Upgrade to 14.0 https://www.postgresql.org/about/news/postgresql-14-released-2318/ https://www.postgresql.org/docs/14/release-14.html- Let genlists skip non-existing binaries to avoid lots of version conditionals in the file lists.- Upgrade to 14~rc1 https://www.postgresql.org/about/news/postgresql-14-rc-1-released-2309/ https://www.postgresql.org/docs/14/release-14.html https://wiki.postgresql.org/wiki/PostgreSQL_14_Open_Items- Upgrade to 14~beta2 https://www.postgresql.org/about/news/postgresql-14-beta-2-released-2249/ https://www.postgresql.org/docs/14/release-14.html https://wiki.postgresql.org/wiki/PostgreSQL_14_Open_Items- Upgrade to 14~beta1 https://www.postgresql.org/about/news/postgresql-14-beta-1-released-2213/ https://www.postgresql.org/docs/14/release-14.html https://wiki.postgresql.org/wiki/PostgreSQL_14_Open_Items - disable postgresql-testsuite-int8.sql.patch: it seems it is not needed anymore, need to be double checked.- bsc#1185952: llvm12 breaks PostgreSQL 11 and 12 on s390x. Use llvm11 as a workaround.- Upgrade to version 13.3: * https://www.postgresql.org/docs/13/release-13-3.html * CVE-2021-32027, bsc#1185924: Prevent integer overflows in array subscripting calculations. * CVE-2021-32028, bsc#1185925: Fix mishandling of “junk” columns in INSERT ... ON CONFLICT ... UPDATE target lists. * CVE-2021-32029, bsc#1185926: Fix possibly-incorrect computation of UPDATE ... RETURNING "pg_psql_temporary_savepoint" does not exist”. - Don't use %_stop_on_removal, because it was meant to be private and got removed from openSUSE. %_restart_on_update is also private, but still supported and needed for now (bsc#1183168).- Re-enable build of the llvmjit subpackage on SLE, but it will only be delivered on PackageHub for now (boo#1183118).- Remove leftover PreReq on chkconfig, we stopped using it long time ago.- boo#1179945: Disable icu for PostgreSQL 10 (and older) on TW.- Upgrade to version 13.2: * https://www.postgresql.org/docs/13/release-13-2.html * Updating stored views and reindexing might be needed after applying this update. * CVE-2021-3393, bsc#1182040: Fix information leakage in constraint-violation error messages. * CVE-2021-20229, bsc#1182039: Fix failure to check per-column SELECT privileges in some join queries. * Obsoletes postgresql-icu68.patch.- Add postgresql-icu68.patch: fix build with ICU 68- bsc#1178961: %ghost the symlinks to pg_config and ecpg. - boo#1179765: BuildRequire libpq5 and libecpg6 when not building them to avoid dangling symlinks in the devel package.- Upgrade to version 13.1: * CVE-2020-25695, bsc#1178666: Block DECLARE CURSOR ... WITH HOLD and firing of deferred triggers within index expressions and materialized view queries. * CVE-2020-25694, bsc#1178667: a) Fix usage of complex connection-string parameters in pg_dump, pg_restore, clusterdb, reindexdb, and vacuumdb. b) When psql's \connect command re-uses connection parameters, ensure that all non-overridden parameters from a previous connection string are re-used. * CVE-2020-25696, bsc#1178668: Prevent psql's \gset command from modifying specially-treated variables. * Fix recently-added timetz test case so it works when the USA is not observing daylight savings time. (obsoletes postgresql-timetz.patch) * https://www.postgresql.org/about/news/2111/ * https://www.postgresql.org/docs/13/release-13-1.html- Fix a DST problem in the test suite: postgresql-timetz.patch https://postgr.es/m/16689-57701daa23b377bf@postgresql.org- Initial packaging of PostgreSQL 13: * https://www.postgresql.org/about/news/2077/ * https://www.postgresql.org/docs/13/release-13.htmlh01-ch5a 1772016965  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~15.17-150600.16.28.115.17-150600.16.28.1postgresql15htmlacronyms.htmladmin.htmladminpack.htmlamcheck.htmlapp-clusterdb.htmlapp-createdb.htmlapp-createuser.htmlapp-dropdb.htmlapp-dropuser.htmlapp-ecpg.htmlapp-initdb.htmlapp-pg-ctl.htmlapp-pg-dumpall.htmlapp-pg-isready.htmlapp-pgamcheck.htmlapp-pgbasebackup.htmlapp-pgchecksums.htmlapp-pgconfig.htmlapp-pgcontroldata.htmlapp-pgdump.htmlapp-pgreceivewal.htmlapp-pgreceivexlog.htmlapp-pgrecvlogical.htmlapp-pgresetwal.htmlapp-pgresetxlog.htmlapp-pgrestore.htmlapp-pgrewind.htmlapp-pgverifybackup.htmlapp-postgres.htmlapp-postmaster.htmlapp-psql.htmlapp-reindexdb.htmlapp-vacuumdb.htmlappendix-obsolete.htmlappendixes.htmlapplevel-consistency.htmlarchive-module-callbacks.htmlarchive-module-init.htmlarchive-modules.htmlarrays.htmlauth-bsd.htmlauth-cert.htmlauth-delay.htmlauth-ident.htmlauth-ldap.htmlauth-methods.htmlauth-pam.htmlauth-password.htmlauth-peer.htmlauth-pg-hba-conf.htmlauth-radius.htmlauth-trust.htmlauth-username-maps.htmlauto-explain.htmlbackup-dump.htmlbackup-file.htmlbackup-manifest-files.htmlbackup-manifest-format.htmlbackup-manifest-toplevel.htmlbackup-manifest-wal-ranges.htmlbackup.htmlbasebackup-to-shell.htmlbasic-archive.htmlbgworker.htmlbiblio.htmlbki-commands.htmlbki-example.htmlbki-format.htmlbki-structure.htmlbki.htmlbloom.htmlbookindex.htmlbrin-builtin-opclasses.htmlbrin-extensibility.htmlbrin-intro.htmlbrin.htmlbtree-behavior.htmlbtree-gin.htmlbtree-gist.htmlbtree-implementation.htmlbtree-intro.htmlbtree-support-funcs.htmlbtree.htmlbug-reporting.htmlcatalog-pg-aggregate.htmlcatalog-pg-am.htmlcatalog-pg-amop.htmlcatalog-pg-amproc.htmlcatalog-pg-attrdef.htmlcatalog-pg-attribute.htmlcatalog-pg-auth-members.htmlcatalog-pg-authid.htmlcatalog-pg-cast.htmlcatalog-pg-class.htmlcatalog-pg-collation.htmlcatalog-pg-constraint.htmlcatalog-pg-conversion.htmlcatalog-pg-database.htmlcatalog-pg-db-role-setting.htmlcatalog-pg-default-acl.htmlcatalog-pg-depend.htmlcatalog-pg-description.htmlcatalog-pg-enum.htmlcatalog-pg-event-trigger.htmlcatalog-pg-extension.htmlcatalog-pg-foreign-data-wrapper.htmlcatalog-pg-foreign-server.htmlcatalog-pg-foreign-table.htmlcatalog-pg-index.htmlcatalog-pg-inherits.htmlcatalog-pg-init-privs.htmlcatalog-pg-language.htmlcatalog-pg-largeobject-metadata.htmlcatalog-pg-largeobject.htmlcatalog-pg-namespace.htmlcatalog-pg-opclass.htmlcatalog-pg-operator.htmlcatalog-pg-opfamily.htmlcatalog-pg-parameter-acl.htmlcatalog-pg-partitioned-table.htmlcatalog-pg-policy.htmlcatalog-pg-proc.htmlcatalog-pg-publication-namespace.htmlcatalog-pg-publication-rel.htmlcatalog-pg-publication.htmlcatalog-pg-range.htmlcatalog-pg-replication-origin.htmlcatalog-pg-rewrite.htmlcatalog-pg-seclabel.htmlcatalog-pg-sequence.htmlcatalog-pg-shdepend.htmlcatalog-pg-shdescription.htmlcatalog-pg-shseclabel.htmlcatalog-pg-statistic-ext-data.htmlcatalog-pg-statistic-ext.htmlcatalog-pg-statistic.htmlcatalog-pg-subscription-rel.htmlcatalog-pg-subscription.htmlcatalog-pg-tablespace.htmlcatalog-pg-transform.htmlcatalog-pg-trigger.htmlcatalog-pg-ts-config-map.htmlcatalog-pg-ts-config.htmlcatalog-pg-ts-dict.htmlcatalog-pg-ts-parser.htmlcatalog-pg-ts-template.htmlcatalog-pg-type.htmlcatalog-pg-user-mapping.htmlcatalogs-overview.htmlcatalogs.htmlcharset.htmlchecksums.htmlcitext.htmlclient-authentication-problems.htmlclient-authentication.htmlclient-interfaces.htmlcollation.htmlcolor-when.htmlcolor-which.htmlcolor.htmlconfig-setting.htmlconnect-estab.htmlcontinuous-archiving.htmlcontrib-dblink-build-sql-delete.htmlcontrib-dblink-build-sql-insert.htmlcontrib-dblink-build-sql-update.htmlcontrib-dblink-cancel-query.htmlcontrib-dblink-close.htmlcontrib-dblink-connect-u.htmlcontrib-dblink-connect.htmlcontrib-dblink-disconnect.htmlcontrib-dblink-error-message.htmlcontrib-dblink-exec.htmlcontrib-dblink-fetch.htmlcontrib-dblink-function.htmlcontrib-dblink-get-connections.htmlcontrib-dblink-get-notify.htmlcontrib-dblink-get-pkey.htmlcontrib-dblink-get-result.htmlcontrib-dblink-is-busy.htmlcontrib-dblink-open.htmlcontrib-dblink-send-query.htmlcontrib-prog-client.htmlcontrib-prog-server.htmlcontrib-prog.htmlcontrib-spi.htmlcontrib.htmlcreating-cluster.htmlcube.htmlcustom-rmgr.htmlcustom-scan-execution.htmlcustom-scan-path.htmlcustom-scan-plan.htmlcustom-scan.htmldatabase-roles.htmldatatype-binary.htmldatatype-bit.htmldatatype-boolean.htmldatatype-character.htmldatatype-datetime.htmldatatype-enum.htmldatatype-geometric.htmldatatype-json.htmldatatype-money.htmldatatype-net-types.htmldatatype-numeric.htmldatatype-oid.htmldatatype-pg-lsn.htmldatatype-pseudo.htmldatatype-textsearch.htmldatatype-uuid.htmldatatype-xml.htmldatatype.htmldatetime-appendix.htmldatetime-config-files.htmldatetime-input-rules.htmldatetime-invalid-input.htmldatetime-julian-dates.htmldatetime-keywords.htmldatetime-posix-timezone-specs.htmldatetime-units-history.htmldblink.htmlddl-alter.htmlddl-basics.htmlddl-constraints.htmlddl-default.htmlddl-depend.htmlddl-foreign-data.htmlddl-generated-columns.htmlddl-inherit.htmlddl-others.htmlddl-partitioning.htmlddl-priv.htmlddl-rowsecurity.htmlddl-schemas.htmlddl-system-columns.htmlddl.htmldefault-roles.htmldict-int.htmldict-xsyn.htmldifferent-replication-solutions.htmldisk-full.htmldisk-usage.htmldiskusage.htmldml-delete.htmldml-insert.htmldml-returning.htmldml-update.htmldml.htmldocguide-authoring.htmldocguide-build.htmldocguide-docbook.htmldocguide-style.htmldocguide-toolsets.htmldocguide.htmldomains.htmldynamic-trace.htmlearthdistance.htmlecpg-commands.htmlecpg-concept.htmlecpg-connect.htmlecpg-cpp.htmlecpg-descriptors.htmlecpg-develop.htmlecpg-dynamic.htmlecpg-errors.htmlecpg-informix-compat.htmlecpg-library.htmlecpg-lo.htmlecpg-oracle-compat.htmlecpg-pgtypes.htmlecpg-preproc.htmlecpg-process.htmlecpg-sql-allocate-descriptor.htmlecpg-sql-commands.htmlecpg-sql-connect.htmlecpg-sql-deallocate-descriptor.htmlecpg-sql-declare-statement.htmlecpg-sql-declare.htmlecpg-sql-describe.htmlecpg-sql-disconnect.htmlecpg-sql-execute-immediate.htmlecpg-sql-get-descriptor.htmlecpg-sql-open.htmlecpg-sql-prepare.htmlecpg-sql-set-autocommit.htmlecpg-sql-set-connection.htmlecpg-sql-set-descriptor.htmlecpg-sql-type.htmlecpg-sql-var.htmlecpg-sql-whenever.htmlecpg-variables.htmlecpg.htmlencryption-options.htmlerrcodes-appendix.htmlerror-message-reporting.htmlerror-style-guide.htmlevent-log-registration.htmlevent-trigger-definition.htmlevent-trigger-example.htmlevent-trigger-interface.htmlevent-trigger-matrix.htmlevent-trigger-table-rewrite-example.htmlevent-triggers.htmlexecutor.htmlexplicit-joins.htmlexplicit-locking.htmlextend-extensions.htmlextend-how.htmlextend-pgxs.htmlextend-type-system.htmlextend.htmlexternal-admin-tools.htmlexternal-extensions.htmlexternal-interfaces.htmlexternal-pl.htmlexternal-projects.htmlfdw-callbacks.htmlfdw-functions.htmlfdw-helpers.htmlfdw-planning.htmlfdw-row-locking.htmlfdwhandler.htmlfeatures-sql-standard.htmlfeatures.htmlfile-fdw.htmlfunctions-admin.htmlfunctions-aggregate.htmlfunctions-array.htmlfunctions-binarystring.htmlfunctions-bitstring.htmlfunctions-comparison.htmlfunctions-comparisons.htmlfunctions-conditional.htmlfunctions-datetime.htmlfunctions-enum.htmlfunctions-event-triggers.htmlfunctions-formatting.htmlfunctions-geometry.htmlfunctions-info.htmlfunctions-json.htmlfunctions-logical.htmlfunctions-matching.htmlfunctions-math.htmlfunctions-net.htmlfunctions-range.htmlfunctions-sequence.htmlfunctions-srf.htmlfunctions-statistics.htmlfunctions-string.htmlfunctions-subquery.htmlfunctions-textsearch.htmlfunctions-trigger.htmlfunctions-uuid.htmlfunctions-window.htmlfunctions-xml.htmlfunctions.htmlfuzzystrmatch.htmlgeneric-wal.htmlgenetic-algorithm.svggeqo-biblio.htmlgeqo-intro.htmlgeqo-intro2.htmlgeqo-pg-intro.htmlgeqo.htmlgin-builtin-opclasses.htmlgin-examples.htmlgin-extensibility.htmlgin-implementation.htmlgin-intro.htmlgin-limit.htmlgin-tips.htmlgin.htmlgin.svggist-builtin-opclasses.htmlgist-examples.htmlgist-extensibility.htmlgist-implementation.htmlgist-intro.htmlgist.htmlgit.htmlglossary.htmlgssapi-auth.htmlgssapi-enc.htmlhash-implementation.htmlhash-index.htmlhash-intro.htmlhigh-availability.htmlhistory.htmlhot-standby.htmlhow-parallel-query-works.htmlhstore.htmlindex-api.htmlindex-cost-estimation.htmlindex-functions.htmlindex-locking.htmlindex-scanning.htmlindex-unique-checks.htmlindex.htmlindexam.htmlindexes-bitmap-scans.htmlindexes-collations.htmlindexes-examine.htmlindexes-expressional.htmlindexes-index-only-scans.htmlindexes-intro.htmlindexes-multicolumn.htmlindexes-opclass.htmlindexes-ordering.htmlindexes-partial.htmlindexes-types.htmlindexes-unique.htmlindexes.htmlinformation-schema.htmlinfoschema-administrable-role-authorizations.htmlinfoschema-applicable-roles.htmlinfoschema-attributes.htmlinfoschema-character-sets.htmlinfoschema-check-constraint-routine-usage.htmlinfoschema-check-constraints.htmlinfoschema-collation-character-set-applicab.htmlinfoschema-collations.htmlinfoschema-column-column-usage.htmlinfoschema-column-domain-usage.htmlinfoschema-column-options.htmlinfoschema-column-privileges.htmlinfoschema-column-udt-usage.htmlinfoschema-columns.htmlinfoschema-constraint-column-usage.htmlinfoschema-constraint-table-usage.htmlinfoschema-data-type-privileges.htmlinfoschema-datatypes.htmlinfoschema-domain-constraints.htmlinfoschema-domain-udt-usage.htmlinfoschema-domains.htmlinfoschema-element-types.htmlinfoschema-enabled-roles.htmlinfoschema-foreign-data-wrapper-options.htmlinfoschema-foreign-data-wrappers.htmlinfoschema-foreign-server-options.htmlinfoschema-foreign-servers.htmlinfoschema-foreign-table-options.htmlinfoschema-foreign-tables.htmlinfoschema-information-schema-catalog-name.htmlinfoschema-key-column-usage.htmlinfoschema-parameters.htmlinfoschema-referential-constraints.htmlinfoschema-role-column-grants.htmlinfoschema-role-routine-grants.htmlinfoschema-role-table-grants.htmlinfoschema-role-udt-grants.htmlinfoschema-role-usage-grants.htmlinfoschema-routine-column-usage.htmlinfoschema-routine-privileges.htmlinfoschema-routine-routine-usage.htmlinfoschema-routine-sequence-usage.htmlinfoschema-routine-table-usage.htmlinfoschema-routines.htmlinfoschema-schema.htmlinfoschema-schemata.htmlinfoschema-sequences.htmlinfoschema-sql-features.htmlinfoschema-sql-implementation-info.htmlinfoschema-sql-parts.htmlinfoschema-sql-sizing.htmlinfoschema-table-constraints.htmlinfoschema-table-privileges.htmlinfoschema-tables.htmlinfoschema-transforms.htmlinfoschema-triggered-update-columns.htmlinfoschema-triggers.htmlinfoschema-udt-privileges.htmlinfoschema-usage-privileges.htmlinfoschema-user-defined-types.htmlinfoschema-user-mapping-options.htmlinfoschema-user-mappings.htmlinfoschema-view-column-usage.htmlinfoschema-view-routine-usage.htmlinfoschema-view-table-usage.htmlinfoschema-views.htmlinstall-binaries.htmlinstall-getsource.htmlinstall-post.htmlinstall-procedure.htmlinstall-requirements.htmlinstall-short.htmlinstall-windows-full.htmlinstall-windows.htmlinstallation-platform-notes.htmlinstallation.htmlintagg.htmlintarray.htmlinternals.htmlintro-whatis.htmlisn.htmljit-configuration.htmljit-decision.htmljit-extensibility.htmljit-reason.htmljit.htmlkernel-resources.htmllargeobjects.htmllegalnotice.htmllibpq-async.htmllibpq-build.htmllibpq-cancel.htmllibpq-connect.htmllibpq-control.htmllibpq-copy.htmllibpq-envars.htmllibpq-events.htmllibpq-example.htmllibpq-exec.htmllibpq-fastpath.htmllibpq-ldap.htmllibpq-misc.htmllibpq-notice-processing.htmllibpq-notify.htmllibpq-pgpass.htmllibpq-pgservice.htmllibpq-pipeline-mode.htmllibpq-single-row-mode.htmllibpq-ssl.htmllibpq-status.htmllibpq-threading.htmllibpq.htmllimits.htmllo-examplesect.htmllo-funcs.htmllo-implementation.htmllo-interfaces.htmllo-intro.htmllo.htmllocale.htmllocking-indexes.htmllogfile-maintenance.htmllogical-replication-architecture.htmllogical-replication-col-lists.htmllogical-replication-config.htmllogical-replication-conflicts.htmllogical-replication-monitoring.htmllogical-replication-publication.htmllogical-replication-quick-setup.htmllogical-replication-restrictions.htmllogical-replication-row-filter.htmllogical-replication-security.htmllogical-replication-subscription.htmllogical-replication.htmllogicaldecoding-catalogs.htmllogicaldecoding-example.htmllogicaldecoding-explanation.htmllogicaldecoding-output-plugin.htmllogicaldecoding-sql.htmllogicaldecoding-streaming.htmllogicaldecoding-synchronous.htmllogicaldecoding-two-phase-commits.htmllogicaldecoding-walsender.htmllogicaldecoding-writer.htmllogicaldecoding.htmlltree.htmlmaintenance.htmlmanage-ag-config.htmlmanage-ag-createdb.htmlmanage-ag-dropdb.htmlmanage-ag-overview.htmlmanage-ag-tablespaces.htmlmanage-ag-templatedbs.htmlmanaging-databases.htmlmonitoring-locks.htmlmonitoring-ps.htmlmonitoring-stats.htmlmonitoring.htmlmultibyte.htmlmultivariate-statistics-examples.htmlmvcc-caveats.htmlmvcc-intro.htmlmvcc-serialization-failure-handling.htmlmvcc.htmlnls-programmer.htmlnls-translator.htmlnls.htmlnon-durability.htmlnotation.htmloid2name.htmloldsnapshot.htmloverview.htmlpageinspect.htmlpagelayout.svgparallel-plans.htmlparallel-query.htmlparallel-safety.htmlparser-stage.htmlpasswordcheck.htmlperformance-tips.htmlperm-functions.htmlpgarchivecleanup.htmlpgbench.htmlpgbuffercache.htmlpgcrypto.htmlpgfreespacemap.htmlpgprewarm.htmlpgrowlocks.htmlpgstatstatements.htmlpgstattuple.htmlpgsurgery.htmlpgtestfsync.htmlpgtesttiming.htmlpgtrgm.htmlpgupgrade.htmlpgvisibility.htmlpgwaldump.htmlpgwalinspect.htmlpgxlogdump.htmlplanner-optimizer.htmlplanner-stats-details.htmlplanner-stats-security.htmlplanner-stats.htmlplhandler.htmlplperl-builtins.htmlplperl-data.htmlplperl-event-triggers.htmlplperl-funcs.htmlplperl-global.htmlplperl-triggers.htmlplperl-trusted.htmlplperl-under-the-hood.htmlplperl.htmlplpgsql-control-structures.htmlplpgsql-cursors.htmlplpgsql-declarations.htmlplpgsql-development-tips.htmlplpgsql-errors-and-messages.htmlplpgsql-expressions.htmlplpgsql-implementation.htmlplpgsql-overview.htmlplpgsql-porting.htmlplpgsql-statements.htmlplpgsql-structure.htmlplpgsql-transactions.htmlplpgsql-trigger.htmlplpgsql.htmlplpython-data.htmlplpython-database.htmlplpython-do.htmlplpython-envar.htmlplpython-funcs.htmlplpython-python23.htmlplpython-sharing.htmlplpython-subtransaction.htmlplpython-transactions.htmlplpython-trigger.htmlplpython-util.htmlplpython.htmlpltcl-config.htmlpltcl-data.htmlpltcl-dbaccess.htmlpltcl-error-handling.htmlpltcl-event-trigger.htmlpltcl-functions.htmlpltcl-global.htmlpltcl-overview.htmlpltcl-procnames.htmlpltcl-subtransactions.htmlpltcl-transactions.htmlpltcl-trigger.htmlpltcl.htmlpopulate.htmlpostgres-fdw.htmlpostgres-user.htmlpredefined-roles.htmlpreface.htmlpreventing-server-spoofing.htmlprogress-reporting.htmlprotocol-changes.htmlprotocol-error-fields.htmlprotocol-flow.htmlprotocol-logical-replication.htmlprotocol-logicalrep-message-formats.htmlprotocol-message-formats.htmlprotocol-message-types.htmlprotocol-overview.htmlprotocol-replication.htmlprotocol.htmlqueries-limit.htmlqueries-order.htmlqueries-overview.htmlqueries-select-lists.htmlqueries-table-expressions.htmlqueries-union.htmlqueries-values.htmlqueries-with.htmlqueries.htmlquery-path.htmlquerytree.htmlrangetypes.htmlrecovery-config.htmlreference-client.htmlreference-server.htmlreference.htmlregress-coverage.htmlregress-evaluation.htmlregress-run.htmlregress-tap.htmlregress-variant.htmlregress.htmlrelease-15-1.htmlrelease-15-10.htmlrelease-15-11.htmlrelease-15-12.htmlrelease-15-13.htmlrelease-15-14.htmlrelease-15-15.htmlrelease-15-16.htmlrelease-15-17.htmlrelease-15-2.htmlrelease-15-3.htmlrelease-15-4.htmlrelease-15-5.htmlrelease-15-6.htmlrelease-15-7.htmlrelease-15-8.htmlrelease-15-9.htmlrelease-15.htmlrelease-prior.htmlrelease.htmlreplication-origins.htmlresources.htmlrole-attributes.htmlrole-membership.htmlrole-removal.htmlroutine-reindex.htmlroutine-vacuuming.htmlrow-estimation-examples.htmlrowtypes.htmlrule-system.htmlrules-materializedviews.htmlrules-privileges.htmlrules-status.htmlrules-triggers.htmlrules-update.htmlrules-views.htmlrules.htmlruntime-config-autovacuum.htmlruntime-config-client.htmlruntime-config-compatible.htmlruntime-config-connection.htmlruntime-config-custom.htmlruntime-config-developer.htmlruntime-config-error-handling.htmlruntime-config-file-locations.htmlruntime-config-locks.htmlruntime-config-logging.htmlruntime-config-preset.htmlruntime-config-query.htmlruntime-config-replication.htmlruntime-config-resource.htmlruntime-config-short.htmlruntime-config-statistics.htmlruntime-config-wal.htmlruntime-config.htmlruntime.htmlsasl-authentication.htmlseg.htmlsepgsql.htmlserver-programming.htmlserver-shutdown.htmlserver-start.htmlsource-conventions.htmlsource-format.htmlsource.htmlsourcerepo.htmlspgist-builtin-opclasses.htmlspgist-examples.htmlspgist-extensibility.htmlspgist-implementation.htmlspgist-intro.htmlspgist.htmlspi-examples.htmlspi-interface-support.htmlspi-interface.htmlspi-memory.htmlspi-realloc.htmlspi-spi-commit.htmlspi-spi-connect.htmlspi-spi-copytuple.htmlspi-spi-cursor-close.htmlspi-spi-cursor-fetch.htmlspi-spi-cursor-find.htmlspi-spi-cursor-move.htmlspi-spi-cursor-open-with-args.htmlspi-spi-cursor-open-with-paramlist.htmlspi-spi-cursor-open.htmlspi-spi-cursor-parse-open.htmlspi-spi-exec.htmlspi-spi-execp.htmlspi-spi-execute-extended.htmlspi-spi-execute-plan-extended.htmlspi-spi-execute-plan-with-paramlist.htmlspi-spi-execute-plan.htmlspi-spi-execute-with-args.htmlspi-spi-execute.htmlspi-spi-finish.htmlspi-spi-fname.htmlspi-spi-fnumber.htmlspi-spi-freeplan.htmlspi-spi-freetuple.htmlspi-spi-freetupletable.htmlspi-spi-getargcount.htmlspi-spi-getargtypeid.htmlspi-spi-getbinval.htmlspi-spi-getnspname.htmlspi-spi-getrelname.htmlspi-spi-gettype.htmlspi-spi-gettypeid.htmlspi-spi-getvalue.htmlspi-spi-is-cursor-plan.htmlspi-spi-keepplan.htmlspi-spi-modifytuple.htmlspi-spi-palloc.htmlspi-spi-pfree.htmlspi-spi-prepare-cursor.htmlspi-spi-prepare-extended.htmlspi-spi-prepare-params.htmlspi-spi-prepare.htmlspi-spi-register-relation.htmlspi-spi-register-trigger-data.htmlspi-spi-result-code-string.htmlspi-spi-returntuple.htmlspi-spi-rollback.htmlspi-spi-saveplan.htmlspi-spi-scroll-cursor-fetch.htmlspi-spi-scroll-cursor-move.htmlspi-spi-start-transaction.htmlspi-spi-unregister-relation.htmlspi-transaction.htmlspi-visibility.htmlspi.htmlsql-abort.htmlsql-alteraggregate.htmlsql-altercollation.htmlsql-alterconversion.htmlsql-alterdatabase.htmlsql-alterdefaultprivileges.htmlsql-alterdomain.htmlsql-altereventtrigger.htmlsql-alterextension.htmlsql-alterforeigndatawrapper.htmlsql-alterforeigntable.htmlsql-alterfunction.htmlsql-altergroup.htmlsql-alterindex.htmlsql-alterlanguage.htmlsql-alterlargeobject.htmlsql-altermaterializedview.htmlsql-alteropclass.htmlsql-alteroperator.htmlsql-alteropfamily.htmlsql-alterpolicy.htmlsql-alterprocedure.htmlsql-alterpublication.htmlsql-alterrole.htmlsql-alterroutine.htmlsql-alterrule.htmlsql-alterschema.htmlsql-altersequence.htmlsql-alterserver.htmlsql-alterstatistics.htmlsql-altersubscription.htmlsql-altersystem.htmlsql-altertable.htmlsql-altertablespace.htmlsql-altertrigger.htmlsql-altertsconfig.htmlsql-altertsdictionary.htmlsql-altertsparser.htmlsql-altertstemplate.htmlsql-altertype.htmlsql-alteruser.htmlsql-alterusermapping.htmlsql-alterview.htmlsql-analyze.htmlsql-begin.htmlsql-call.htmlsql-checkpoint.htmlsql-close.htmlsql-cluster.htmlsql-commands.htmlsql-comment.htmlsql-commit-prepared.htmlsql-commit.htmlsql-copy.htmlsql-create-access-method.htmlsql-createaggregate.htmlsql-createcast.htmlsql-createcollation.htmlsql-createconversion.htmlsql-createdatabase.htmlsql-createdomain.htmlsql-createeventtrigger.htmlsql-createextension.htmlsql-createforeigndatawrapper.htmlsql-createforeigntable.htmlsql-createfunction.htmlsql-creategroup.htmlsql-createindex.htmlsql-createlanguage.htmlsql-creatematerializedview.htmlsql-createopclass.htmlsql-createoperator.htmlsql-createopfamily.htmlsql-createpolicy.htmlsql-createprocedure.htmlsql-createpublication.htmlsql-createrole.htmlsql-createrule.htmlsql-createschema.htmlsql-createsequence.htmlsql-createserver.htmlsql-createstatistics.htmlsql-createsubscription.htmlsql-createtable.htmlsql-createtableas.htmlsql-createtablespace.htmlsql-createtransform.htmlsql-createtrigger.htmlsql-createtsconfig.htmlsql-createtsdictionary.htmlsql-createtsparser.htmlsql-createtstemplate.htmlsql-createtype.htmlsql-createuser.htmlsql-createusermapping.htmlsql-createview.htmlsql-deallocate.htmlsql-declare.htmlsql-delete.htmlsql-discard.htmlsql-do.htmlsql-drop-access-method.htmlsql-drop-owned.htmlsql-dropaggregate.htmlsql-dropcast.htmlsql-dropcollation.htmlsql-dropconversion.htmlsql-dropdatabase.htmlsql-dropdomain.htmlsql-dropeventtrigger.htmlsql-dropextension.htmlsql-dropforeigndatawrapper.htmlsql-dropforeigntable.htmlsql-dropfunction.htmlsql-dropgroup.htmlsql-dropindex.htmlsql-droplanguage.htmlsql-dropmaterializedview.htmlsql-dropopclass.htmlsql-dropoperator.htmlsql-dropopfamily.htmlsql-droppolicy.htmlsql-dropprocedure.htmlsql-droppublication.htmlsql-droprole.htmlsql-droproutine.htmlsql-droprule.htmlsql-dropschema.htmlsql-dropsequence.htmlsql-dropserver.htmlsql-dropstatistics.htmlsql-dropsubscription.htmlsql-droptable.htmlsql-droptablespace.htmlsql-droptransform.htmlsql-droptrigger.htmlsql-droptsconfig.htmlsql-droptsdictionary.htmlsql-droptsparser.htmlsql-droptstemplate.htmlsql-droptype.htmlsql-dropuser.htmlsql-dropusermapping.htmlsql-dropview.htmlsql-end.htmlsql-execute.htmlsql-explain.htmlsql-expressions.htmlsql-fetch.htmlsql-grant.htmlsql-importforeignschema.htmlsql-insert.htmlsql-keywords-appendix.htmlsql-listen.htmlsql-load.htmlsql-lock.htmlsql-merge.htmlsql-move.htmlsql-notify.htmlsql-prepare-transaction.htmlsql-prepare.htmlsql-reassign-owned.htmlsql-refreshmaterializedview.htmlsql-reindex.htmlsql-release-savepoint.htmlsql-reset.htmlsql-revoke.htmlsql-rollback-prepared.htmlsql-rollback-to.htmlsql-rollback.htmlsql-savepoint.htmlsql-security-label.htmlsql-select.htmlsql-selectinto.htmlsql-set-constraints.htmlsql-set-role.htmlsql-set-session-authorization.htmlsql-set-transaction.htmlsql-set.htmlsql-show.htmlsql-start-transaction.htmlsql-syntax-calling-funcs.htmlsql-syntax-lexical.htmlsql-syntax.htmlsql-truncate.htmlsql-unlisten.htmlsql-update.htmlsql-vacuum.htmlsql-values.htmlsql.htmlssh-tunnels.htmlssl-tcp.htmlsslinfo.htmlsspi-auth.htmlstorage-file-layout.htmlstorage-fsm.htmlstorage-hot.htmlstorage-init.htmlstorage-page-layout.htmlstorage-toast.htmlstorage-vm.htmlstorage.htmlstylesheet.csssupported-platforms.htmlsystem-catalog-declarations.htmlsystem-catalog-initial-data.htmltableam.htmltablefunc.htmltablesample-method.htmltablesample-support-functions.htmltcn.htmltest-decoding.htmltextsearch-configuration.htmltextsearch-controls.htmltextsearch-debugging.htmltextsearch-dictionaries.htmltextsearch-features.htmltextsearch-indexes.htmltextsearch-intro.htmltextsearch-limitations.htmltextsearch-parsers.htmltextsearch-psql.htmltextsearch-tables.htmltextsearch.htmltransaction-iso.htmltrigger-datachanges.htmltrigger-definition.htmltrigger-example.htmltrigger-interface.htmltriggers.htmltsm-system-rows.htmltsm-system-time.htmltutorial-accessdb.htmltutorial-advanced-intro.htmltutorial-advanced.htmltutorial-agg.htmltutorial-arch.htmltutorial-concepts.htmltutorial-conclusion.htmltutorial-createdb.htmltutorial-delete.htmltutorial-fk.htmltutorial-inheritance.htmltutorial-install.htmltutorial-join.htmltutorial-populate.htmltutorial-select.htmltutorial-sql-intro.htmltutorial-sql.htmltutorial-start.htmltutorial-table.htmltutorial-transactions.htmltutorial-update.htmltutorial-views.htmltutorial-window.htmltutorial.htmltypeconv-func.htmltypeconv-oper.htmltypeconv-overview.htmltypeconv-query.htmltypeconv-select.htmltypeconv-union-case.htmltypeconv.htmlunaccent.htmlunsupported-features-sql-standard.htmlupgrading.htmluser-manag.htmlusing-explain.htmluuid-ossp.htmlvacuumlo.htmlview-pg-available-extension-versions.htmlview-pg-available-extensions.htmlview-pg-backend-memory-contexts.htmlview-pg-config.htmlview-pg-cursors.htmlview-pg-file-settings.htmlview-pg-group.htmlview-pg-hba-file-rules.htmlview-pg-ident-file-mappings.htmlview-pg-indexes.htmlview-pg-locks.htmlview-pg-matviews.htmlview-pg-policies.htmlview-pg-prepared-statements.htmlview-pg-prepared-xacts.htmlview-pg-publication-tables.htmlview-pg-replication-origin-status.htmlview-pg-replication-slots.htmlview-pg-roles.htmlview-pg-rules.htmlview-pg-seclabels.htmlview-pg-sequences.htmlview-pg-settings.htmlview-pg-shadow.htmlview-pg-shmem-allocations.htmlview-pg-stats-ext-exprs.htmlview-pg-stats-ext.htmlview-pg-stats.htmlview-pg-tables.htmlview-pg-timezone-abbrevs.htmlview-pg-timezone-names.htmlview-pg-user-mappings.htmlview-pg-user.htmlview-pg-views.htmlviews-overview.htmlviews.htmlwal-async-commit.htmlwal-configuration.htmlwal-internals.htmlwal-intro.htmlwal-reliability.htmlwal.htmlwarm-standby-failover.htmlwarm-standby.htmlwhen-can-parallel-query-be-used.htmlxaggr.htmlxfunc-c.htmlxfunc-internal.htmlxfunc-optimization.htmlxfunc-overload.htmlxfunc-pl.htmlxfunc-sql.htmlxfunc-volatility.htmlxfunc.htmlxindex.htmlxml-limits-conformance.htmlxml2.htmlxoper-optimization.htmlxoper.htmlxplang-install.htmlxplang.htmlxproc.htmlxtypes.htmlSPI_commit.3pg15.gzSPI_commit_and_chain.3pg15.gzSPI_connect.3pg15.gzSPI_connect_ext.3pg15.gzSPI_copytuple.3pg15.gzSPI_cursor_close.3pg15.gzSPI_cursor_fetch.3pg15.gzSPI_cursor_find.3pg15.gzSPI_cursor_move.3pg15.gzSPI_cursor_open.3pg15.gzSPI_cursor_open_with_args.3pg15.gzSPI_cursor_open_with_paramlist.3pg15.gzSPI_cursor_parse_open.3pg15.gzSPI_exec.3pg15.gzSPI_execp.3pg15.gzSPI_execute.3pg15.gzSPI_execute_extended.3pg15.gzSPI_execute_plan.3pg15.gzSPI_execute_plan_extended.3pg15.gzSPI_execute_plan_with_paramlist.3pg15.gzSPI_execute_with_args.3pg15.gzSPI_finish.3pg15.gzSPI_fname.3pg15.gzSPI_fnumber.3pg15.gzSPI_freeplan.3pg15.gzSPI_freetuple.3pg15.gzSPI_freetuptable.3pg15.gzSPI_getargcount.3pg15.gzSPI_getargtypeid.3pg15.gzSPI_getbinval.3pg15.gzSPI_getnspname.3pg15.gzSPI_getrelname.3pg15.gzSPI_gettype.3pg15.gzSPI_gettypeid.3pg15.gzSPI_getvalue.3pg15.gzSPI_is_cursor_plan.3pg15.gzSPI_keepplan.3pg15.gzSPI_modifytuple.3pg15.gzSPI_palloc.3pg15.gzSPI_pfree.3pg15.gzSPI_prepare.3pg15.gzSPI_prepare_cursor.3pg15.gzSPI_prepare_extended.3pg15.gzSPI_prepare_params.3pg15.gzSPI_register_relation.3pg15.gzSPI_register_trigger_data.3pg15.gzSPI_repalloc.3pg15.gzSPI_result_code_string.3pg15.gzSPI_returntuple.3pg15.gzSPI_rollback.3pg15.gzSPI_rollback_and_chain.3pg15.gzSPI_saveplan.3pg15.gzSPI_scroll_cursor_fetch.3pg15.gzSPI_scroll_cursor_move.3pg15.gzSPI_start_transaction.3pg15.gzSPI_unregister_relation.3pg15.gzdblink.3pg15.gzdblink_build_sql_delete.3pg15.gzdblink_build_sql_insert.3pg15.gzdblink_build_sql_update.3pg15.gzdblink_cancel_query.3pg15.gzdblink_close.3pg15.gzdblink_connect.3pg15.gzdblink_connect_u.3pg15.gzdblink_disconnect.3pg15.gzdblink_error_message.3pg15.gzdblink_exec.3pg15.gzdblink_fetch.3pg15.gzdblink_get_connections.3pg15.gzdblink_get_notify.3pg15.gzdblink_get_pkey.3pg15.gzdblink_get_result.3pg15.gzdblink_is_busy.3pg15.gzdblink_open.3pg15.gzdblink_send_query.3pg15.gz/usr/share/doc/packages//usr/share/doc/packages/postgresql15//usr/share/doc/packages/postgresql15/html//usr/share/man/man3/-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -gobs://build.suse.de/SUSE:Maintenance:42741/SUSE_SLE-15-SP6_Update/49ca1330843530b32809f506e1a3e83a-postgresql15.SUSE_SLE-15-SP6_Updatedrpmxz5x86_64-suse-linuxdirectoryXML 1.0 document, UTF-8 Unicode text, with very long linesSVG Scalable Vector Graphics imageASCII texttroff or preprocessor input, ASCII text, with very long lines (gzip compressed data, max compression, from Unix)troff or preprocessor input, ASCII text (gzip compressed data, max compression, from Unix)|$D!+ utf-869854c60e617a9cc56d19736cceb6b15e2f888d00b36a35a88ff12fc342d5159?P7zXZ !t/(]"k%0#J:fV3sO&|0 V_kwc%Ay|`IT=LbWA<=:c :zE5MHm}D)EA7.Űͨ2o=3dvˑhĘ}:gE/+QarVC䖢;Ut@\<[.:hNX[d01jR*?_iqCH6}R N3t8M]Ѩ 1 eK%bYviG0k<*Q 6n\jigP#LWhݨuV_E6\F Y8c-TwKʂ6}UvΪ%Z7ȸ-ʓ T++%3c}}AXrr4`r ]g ƓW*z{Dr6U¦z yq;e{cJa7E,,RsO;Ҍ)89}9k2w7 &u,*sRs;NjFO8%N玢23VzqT80Zȋ5;J7w ļOj#_b{sݿ3{@LL+ 0Mc'>ŝlc87nV402βj08Ng/z)=1iv.\6Cۃ}M4$>CqBЖzW|t ~)Tɏj7tÙL`Bdz$߂EMs9>D>yPzچcúu^-,ȝ"yJ H *s%R@ZxȖ >t=^%{MH(1qa4BwOZbaiB`_5mGx>БL;WGhVBhl̿8S#$xKarWI%Xq^ĜewijIFRH1{dJq:1zp 0C:E̡Z_DŽGZ:LKvs*<8܇)#h8C;o 3`|)Y_8 H7d@'`Oå x7)>􇫉E28)҆Iw&\eDqZBF x۵x- *5Dty=%E9S 0D~-"b4U").:ٷhHZأzt/$3Z_0%hgoWԢ!ЧEԟ!uv D<իB'{#{:hk~a tKkd'6|2[Z{@D l"?2UoLk M8X pJ_-tL%:(ƫ`.r2kc΄s5h1a݆ScXofM \yպUQmtk&ӷ #D:_jK -HmV_#FuLHj4O eg1F^b( O9rSօGņX}<%p%1U_;XUD{+Vu /Gt)2| .p6~`d[{#rPCSQ/"=HbΧm9 6H\MԘyyob7ׁ 'wP8Al' "!=YȾ8S9_oA&čX璚0|l ~R 8},zYdR/ Re:ITgxX` L=>^ɎRjg@kaԖ#S/>(nUݒ~$%_#8t'WC97sW_Hs Jn2wDs03HMh,1CU6 !~%Lp3AZeae+,=y@8ZDfsr 2R tBI<5A\1zF;%tw^A~q%_yq5eO-IC嶪 8}qMV7 z ՌRW01BJce:١q2>#䄚mQE,)d%z@SMtHkԌ]#>i%g{^PX뱩HW_aÎjV!4ҰY%ڍjGy^uzB"~9h%9x(g8ő$B}} ,"B ks7<UdOR/ V5ss:]mݖn-C-& NA*in#lXD{.-ԙc`e$pozy3$׊:T>L 7î3JD,KX}m_{P֢YFשLkI*)Hx' @9_4 NWw|3ٴ087Mu&Y ;] H Brf4L`gK>w.N٧E;Yauaćr7x0e7dWɐ +[d6Ce"Tdm.Q*&NlO=ܛez!j[&^Au0BS>q`vL&e:#M@UprA{f=-HӾ we]O,O}Ӹq8476TGo`q(o l_ |I.m &,Ҥ-21xX y&rP]t:VEFՋ QUYiΘ <7Z/k%De$V'd HxdKV¿&{;L,csy6N)AjKs B3Eµ=#o7)E][\[uDDt&Zo.)/3_!k^L P9tcCXN(Э1^rOD]imĉ\"S]8wJPO+zOBvVm 5zt!u:#mCO 別,n(&@oP843cǰvKn!wZze;e^tXq i|ֲMm_ ۰qAM|,oyaY]A@*Dye1eK~Ճ/ߍ-w '&d9?^G!MY(j&2!%(Y^G`YσcB!16l6yp97Ƈ;>MS}Zô۷|?EȜpH+{0B7jl!xume#VoOUPb62%͸o1C\J#eˢ˗ݼ23]Ђ&-ykh ̋_=6^cLp Շ$t)RJ{ڄҺe@y )]+Б|}`^<=u!(jRkl S(NɊ뮺/"7Yb ?Yf3Az4bSSb}CEd?PI6=dYu񟡘.{1*FVZp^,՞9,h|t|޾9w^t}3g+ڹ/3Q}8vQK%Q]R8׫ HžVz.;Ad*.iFiTJ*sxl蘕Rʑ2 `Mrx,+%ǂ`M1K ?WvNC)YoIf+vܕy'B]n$ʰv3:`yh[{MmÒ^GNaNQٴ&eeI_EB)6%N? 3 uL $Nr|bRCOq܅fjD*Se$9J4B`YTk,N1\ YUoPBNSU[JB-\in@ߖ™0c ň4Um/I邾; 6"9`@f}_Uر\owuy7gқPȜ'3ʶ Ҵ+S]sLJ#ظ >$F Z* KYDݳ:tceF;̑KP99h/rI'XɛKɔy*ׄb <]Y!j68˄7㍷AjEM+/A-6g3 mfpǾuVF#JsԋuDJ!} OmL ̮ RHPފ[!hIK|.#פyDMAN|iwJ˺'h8D"aWҼLZ{=[UlU %^r~ -;¾ĵ(IpxAr=Oh7Cjh%QcGoȝp&(J]}Bq n`r.ܯ(Zttwg|ҲZ8 _v{Qr@OC 9҉G<0I#wo W~ Fskz6 'numȟ.DE†k" P:lQ x5p{ӝe:mt5?6 #9 2n# yKؚ WiBW)@7LaR%=l+ W)?.ٴDn{Uo,ӳko¯ vw;'q'pL;htfֺvɱYc3%j'R)wQ?EBq׸!VXk$ W6a%Wp3S [opƺQU =dritmfj-G? .W!|Z49 M½JP}vߗC( sl[D1X[oYWaiA+r7u>'`p++ĀbJ%N>m}mc~6~=S%'yQ(]kxSLt}c|ɉ{~xhg88{Yk$stN`4馢Aw]bmc@މ|Fg`- 'oP5L{TWbaع{}' PB>2d@MT$3աBaRtқz 0T+LܹOQf~{W (IJҹߞۀU ~Avߤ5n†0jEMFqeyKVM)1koG Ykqgj>(C95&6 yt^7#c I7ŀˡ Ǚ&_f*v=@3 Ayw^Ù '͈P6*2 i`m}%XI0}UpzWZ")W^588i+RYr7'z@ԚZ,}%Lc3һݸ9.: x^l=ЙRXT9]AA!;pz%Leu60ܾjo39S?o7'~ksP݃[ a#C-Mnxg?]Т۳S9 NEgJI< ]KɁ}|T%w (kP,($7dQ!ۦI7QgLJzp;qߺ,iRϋR eG,B$6PLsζ YZ