From nobody Sun Jun 11 15:54:21 2023 X-Original-To: freebsd-questions@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QfKBx6jJqz4cMlC for ; Sun, 11 Jun 2023 15:54:49 +0000 (UTC) (envelope-from scott.gasch@gmail.com) Received: from mail-pj1-x102f.google.com (mail-pj1-x102f.google.com [IPv6:2607:f8b0:4864:20::102f]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1D4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QfKBw5cgWz3p9l for ; Sun, 11 Jun 2023 15:54:48 +0000 (UTC) (envelope-from scott.gasch@gmail.com) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20221208 header.b=VZjX6DJI; spf=pass (mx1.freebsd.org: domain of scott.gasch@gmail.com designates 2607:f8b0:4864:20::102f as permitted sender) smtp.mailfrom=scott.gasch@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-pj1-x102f.google.com with SMTP id 98e67ed59e1d1-25bd72d7093so232661a91.2 for ; Sun, 11 Jun 2023 08:54:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1686498887; x=1689090887; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=SNlhG35176nwji7u6svcnoOOc+7B//LFtbope/QB5iI=; b=VZjX6DJI0bt/5IoZJ3omp+FEN9B/QptX/41fcPGuJ+0+w+eebOAQL4YnE7w/UwptXh o8tAOKhnz3NZaAzW2H5G8g2PYDTUzvuN7kUCaCagKmvLNMN7Bq/pU+JIoUnKuvNkCN9S VBQGzgV2qn4VU3YWGWYlEURohRSkJfJV4tseiL9DDM8QHLmS0Ob1VfYI4X7rAQKWZsWi z2Vdw84Hmky0uYbTBECalTnfzbISCiXTWFMmYQGZauwaXobJ2SVt32Pnp0lXTHEYKoVa Ngve8ypFwXsww4HgZFaWcbAnnXRkelmeM5WxwA7EYXvhAu0aW6bUNtIO+F3hG2EheWJr CgDQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686498887; x=1689090887; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=SNlhG35176nwji7u6svcnoOOc+7B//LFtbope/QB5iI=; b=Qv9Uiz1TxtkSnZ+mLAkqD3mZuVJgCRfXIgwLt6oO6Y1/hBxJYojtHx+o6NIV/T6zPM X7bLAaEwmcXiJ3BtDY2l9qu1qu4s0W6ZCJ5yroqoEScRgfzPda6wEtesX7p22gz9DjpD JvbYhsf5jauvF1dSpm3IcPXtlE6H6ufJYPFcSDqbh9nKHbbIHObwsVjMNBcxVACP7cYg 53shdI9a46WXdhWn2uQ8qzyYGHJF0pPwv5FAnoY194VQDVkSAmDrFFTsIOheGHosqodi 3CXz6worlRGz3bq/Rt6UvPLwp6GtoYkYYeV+yrMYs0zSFvpFI7l49Zm6ZZdcMpRXmo7m tg+w== X-Gm-Message-State: AC+VfDxmFORs6PrZu0rR4o0fvfCgqdQ2rtOghslywhQ3MWG7eo4A/lLD 3bpQJnAfjWUWvhf2nb0QBUPmYLLYmc/iYrTlzSxB3aG3cVE= X-Google-Smtp-Source: ACHHUZ7FSh36Ck9JjMnDX6yfa0hfpc/SpQ0yjNXRGjm3LoDhQ1vQw6BbfUFkjJtF+YuRWSGRWE0S99E61natkTgxIk8= X-Received: by 2002:a17:90a:8988:b0:258:b0f7:8758 with SMTP id v8-20020a17090a898800b00258b0f78758mr5533780pjn.49.1686498886990; Sun, 11 Jun 2023 08:54:46 -0700 (PDT) List-Id: User questions List-Archive: https://lists.freebsd.org/archives/freebsd-questions List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-questions@freebsd.org X-BeenThere: freebsd-questions@freebsd.org MIME-Version: 1.0 From: Scott Gasch Date: Sun, 11 Jun 2023 08:54:21 -0700 Message-ID: Subject: Swap filling up, suspect kernel memory issue? To: freebsd-questions Content-Type: multipart/alternative; boundary="00000000000012c3a805fddc9f0e" X-Spamd-Result: default: False [0.59 / 15.00]; SUBJECT_ENDS_QUESTION(1.00)[]; NEURAL_HAM_LONG(-0.95)[-0.950]; NEURAL_SPAM_MEDIUM(0.93)[0.928]; NEURAL_SPAM_SHORT(0.51)[0.512]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20221208]; R_SPF_ALLOW(-0.20)[+ip6:2607:f8b0:4000::/36:c]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; MIME_BASE64_TEXT(0.10)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; PREVIOUSLY_DELIVERED(0.00)[freebsd-questions@freebsd.org]; RCPT_COUNT_ONE(0.00)[1]; RCVD_TLS_LAST(0.00)[]; FROM_HAS_DN(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[2607:f8b0:4864:20::102f:from]; FREEMAIL_FROM(0.00)[gmail.com]; DWL_DNSWL_NONE(0.00)[gmail.com:dkim]; MLMMJ_DEST(0.00)[freebsd-questions@freebsd.org]; DKIM_TRACE(0.00)[gmail.com:+]; TO_DN_ALL(0.00)[]; MID_RHS_MATCH_FROMTLD(0.00)[]; ARC_NA(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; FREEMAIL_ENVFROM(0.00)[gmail.com]; MIME_TRACE(0.00)[0:+,1:+,2:~]; TAGGED_FROM(0.00)[]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; RCVD_COUNT_TWO(0.00)[2] X-Rspamd-Queue-Id: 4QfKBw5cgWz3p9l X-Spamd-Bar: / X-ThisMailContainsUnwantedMimeParts: N --00000000000012c3a805fddc9f0e Content-Type: text/plain; charset="UTF-8" I am running a 13.2-RELEASE GENERIC kernel and seeing a pattern where, after about 10 days of uptime, my swap begins to fill up. # *swapinfo -h* Device Size Used Avail Capacity /dev/ada0p3 48G 4.3G 44G 9% /dev/ada1p3 48G 4.3G 44G 9% /dev/ada2p3 48G 4.3G 44G 9% Total 144G 13G 131G 9% # *vmstat -h* procs memory page disks faults cpu r b w avm fre flt re pi po fr sr ad0 ad1 in sy cs us sy id 1 0 45 598G 17G 19K 2 0 0 20K 2.3K 0 0 1206 48K 19K 3 1 96 I cannot find a usermode culprit; the sum of the size of process swaps is nowhere near the amount of space reported by swapinfo: # */usr/bin/top -w -o swap* last pid: 88600; load averages: 1.15, 1.00, 0.88 up 11+11:21:55 08:41:54 352 processes: 3 running, 347 sleeping, 2 zombie CPU: 5.9% user, 0.0% nice, 1.1% system, 0.0% interrupt, 92.9% idle Mem: 7812M Active, 13G Inact, 65G Laundry, 22G Wired, 744M Buf, 17G Free ARC: 9571M Total, 1507M MFU, 5037M MRU, 27M Anon, 92M Header, 2907M Other 4620M Compressed, 12G Uncompressed, 2.57:1 Ratio Swap: 144G Total, 13G Used, 131G Free, 9% Inuse PID USERNAME THR PRI NICE SIZE RES SWAP STATE C TIME WCPU COMMAND 2097 jupyter 1 20 0 118M 10M 12M kqread 17 0:09 0.00% python3.9 85444 770 1 20 0 179M 52K 11M kqread 21 0:00 0.00% postgres 85441 770 1 20 0 179M 52K 11M kqread 12 0:00 0.00% postgres 85439 770 1 20 0 179M 52K 11M kqread 19 0:00 0.00% postgres 9886 www 1 52 0 367M 52K 10M accept 10 0:00 0.00% php-fpm 9887 www 1 52 0 367M 52K 10M accept 0 0:00 0.00% php-fpm 9885 www 1 52 0 367M 52K 10M accept 8 0:00 0.00% php-fpm 9883 www 1 52 0 367M 52K 10M accept 12 0:00 0.00% php-fpm 9881 www 1 52 0 367M 52K 10M accept 0 0:00 0.00% php-fpm 9880 www 1 52 0 367M 52K 10M accept 3 0:00 0.00% php-fpm 9882 www 1 52 0 367M 52K 10M accept 3 0:00 0.00% php-fpm 9876 www 1 52 0 367M 52K 10M accept 22 0:00 0.00% php-fpm 9875 www 1 52 0 367M 52K 10M accept 5 0:00 0.00% php-fpm 9878 www 1 52 0 367M 52K 10M accept 7 0:00 0.00% php-fpm 9874 www 1 52 0 367M 52K 10M accept 1 0:00 0.00% php-fpm 9872 www 1 52 0 367M 52K 10M accept 1 0:00 0.00% php-fpm 9873 www 1 52 0 367M 52K 10M accept 3 0:00 0.00% php-fpm 9871 www 1 52 0 367M 52K 10M accept 13 0:00 0.00% php-fpm 9870 www 1 52 0 367M 52K 10M accept 2 0:00 0.00% php-fpm 57411 770 1 20 0 179M 696K 9108K kqread 10 0:01 0.00% postgres 54978 www 1 20 0 32M 852K 8336K accept 17 0:08 0.02% httpd 9639 770 1 20 0 179M 572K 8060K kqread 6 0:02 0.00% postgres 8350 770 1 20 0 176M 560K 7744K kqread 18 0:02 0.00% postgres 8349 770 1 20 0 176M 668K 7640K kqread 5 0:00 0.00% postgres 8354 770 1 20 0 177M 3248K 5280K kqread 5 0:00 0.00% postgres 8353 770 1 20 0 177M 3452K 5172K kqread 2 0:03 0.00% postgres 5949 smmsp 1 20 0 18M 964K 3324K pause 17 0:00 0.00% sendmail 1956 root 1 52 0 18M 4096B 3024K lockf 14 0:00 0.00% 5984 scott 1 20 0 15M 4096B 3020K wait 20 0:00 0.00% 1968 root 1 52 0 18M 4096B 2976K accept 12 0:00 0.00% There are not "that many" processes so this is not "death by a thousand cuts": # *ps -aux | wc -l* 372 I have a suspicion that this is related to the wireguard kmod simply because I run wireguard in a vnet jail and didn't observe this problem until setting that up. But I don't have any evidence. I've tried to mitigate this via swapoff -a. This works once but the next day swap will be back, even fuller. I've been doing regular reboots to fix this but would like to get to the bottom of it. If left alone, swap will fill up and the machine will get into a "not quite hung" but unusable and useless state. Am I off base with my suspicion that this is kernel mode memory? Can someone teach me how to diagnose the status of kernel mode memory heap? Thx, Scott --00000000000012c3a805fddc9f0e Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: base64 PGRpdiBkaXI9Imx0ciI+PGRpdj5JIGFtIHJ1bm5pbmcgYSAxMy4yLVJFTEVBU0UgR0VORVJJQyBr ZXJuZWwgYW5kIHNlZWluZyBhIHBhdHRlcm4gd2hlcmUsIGFmdGVyIGFib3V0IDEwIGRheXMgb2Yg dXB0aW1lLCBteSBzd2FwIGJlZ2lucyB0byBmaWxsIHVwLsKgwqA8L2Rpdj48ZGl2Pjxicj48L2Rp dj48ZGl2Pjxmb250IGZhY2U9Im1vbm9zcGFjZSI+I8KgPGI+c3dhcGluZm8gLWg8L2I+PC9mb250 PjwvZGl2PjxkaXY+PGZvbnQgZmFjZT0ibW9ub3NwYWNlIj5EZXZpY2UgwqAgwqAgwqAgwqAgwqAg wqAgwqBTaXplIMKgIMKgIFVzZWQgwqAgwqBBdmFpbCBDYXBhY2l0eTxicj4vZGV2L2FkYTBwMyDC oCDCoCDCoCDCoCDCoDQ4RyDCoCDCoCA0LjNHIMKgIMKgIMKgNDRHIMKgIMKgIDklPGJyPi9kZXYv YWRhMXAzIMKgIMKgIMKgIMKgIMKgNDhHIMKgIMKgIDQuM0cgwqAgwqAgwqA0NEcgwqAgwqAgOSU8 YnI+L2Rldi9hZGEycDMgwqAgwqAgwqAgwqAgwqA0OEcgwqAgwqAgNC4zRyDCoCDCoCDCoDQ0RyDC oCDCoCA5JTxicj5Ub3RhbCDCoCDCoCDCoCDCoCDCoCDCoCDCoCAxNDRHIMKgIMKgIMKgMTNHIMKg IMKgIDEzMUcgwqAgwqAgOSU8L2ZvbnQ+PGJyPjwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+PGZv bnQgZmFjZT0ibW9ub3NwYWNlIj4jwqA8Yj52bXN0YXQgLWg8L2I+PGJyPsKgcHJvY3MgwqAgwqBt ZW1vcnkgwqAgwqBwYWdlIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgZGlza3MgwqAg wqAgZmF1bHRzIMKgIMKgIMKgIGNwdTxicj7CoHIgwqBiIMKgdyDCoGF2bSDCoGZyZSDCoGZsdCDC oHJlIMKgcGkgwqBwbyDCoCBmciDCoCBzciBhZDAgYWQxIMKgIGluIMKgIHN5IMKgIGNzIHVzIHN5 IGlkPGJyPsKgMSDCoDAgNDUgNTk4RyDCoDE3RyDCoDE5SyDCoCAyIMKgIDAgwqAgMCDCoDIwSyAy LjNLIMKgIDAgwqAgMCAxMjA2IMKgNDhLIMKgMTlLIMKgMyDCoDEgOTY8L2ZvbnQ+PGJyPjwvZGl2 PjxkaXY+PGJyPjwvZGl2PjxkaXY+SSBjYW5ub3QgZmluZCBhIHVzZXJtb2RlwqBjdWxwcml0OyB0 aGUgc3VtIG9mIHRoZSBzaXplIG9mIHByb2Nlc3Mgc3dhcHMgaXMgbm93aGVyZSBuZWFyIHRoZSBh bW91bnQgb2Ygc3BhY2UgcmVwb3J0ZWQgYnkgc3dhcGluZm86PC9kaXY+PGRpdj48YnI+PC9kaXY+ PGRpdj48Zm9udCBmYWNlPSJtb25vc3BhY2UiPiPCoDxiPi91c3IvYmluL3RvcCAtdyAtbyBzd2Fw PC9iPjwvZm9udD48L2Rpdj48ZGl2Pjxmb250IGZhY2U9Im1vbm9zcGFjZSI+bGFzdCBwaWQ6IDg4 NjAwOyDCoGxvYWQgYXZlcmFnZXM6IMKgMS4xNSwgwqAxLjAwLCDCoDAuODggwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqB1cCAxMSsxMToyMTo1NSDCoDA4OjQxOjU0PC9mb250PjwvZGl2Pjxmb250 IGZhY2U9Im1vbm9zcGFjZSI+MzUyIHByb2Nlc3NlczogMyBydW5uaW5nLCAzNDcgc2xlZXBpbmcs IDIgem9tYmllPGJyPkNQVTogwqA1LjklIHVzZXIsIMKgMC4wJSBuaWNlLCDCoDEuMSUgc3lzdGVt LCDCoDAuMCUgaW50ZXJydXB0LCA5Mi45JSBpZGxlPGJyPk1lbTogNzgxMk0gQWN0aXZlLCAxM0cg SW5hY3QsIDY1RyBMYXVuZHJ5LCAyMkcgV2lyZWQsIDc0NE0gQnVmLCAxN0cgRnJlZTxicj5BUkM6 IDk1NzFNIFRvdGFsLCAxNTA3TSBNRlUsIDUwMzdNIE1SVSwgMjdNIEFub24sIDkyTSBIZWFkZXIs IDI5MDdNIE90aGVyPGJyPsKgIMKgIMKgNDYyME0gQ29tcHJlc3NlZCwgMTJHIFVuY29tcHJlc3Nl ZCwgMi41NzoxIFJhdGlvPGJyPlN3YXA6IDE0NEcgVG90YWwsIDEzRyBVc2VkLCAxMzFHIEZyZWUs IDklIEludXNlPGJyPjxicj7CoCBQSUQgVVNFUk5BTUUgwqAgwqBUSFIgUFJJIE5JQ0UgwqAgU0la RSDCoCDCoFJFUyBTV0FQIFNUQVRFIMKgIMKgQyDCoCBUSU1FIMKgIMKgV0NQVSBDT01NQU5EPGJy PsKgMjA5NyBqdXB5dGVyIMKgIMKgIMKgIDEgwqAyMCDCoCDCoDAgwqAgMTE4TSDCoCDCoDEwTSDC oDEyTSBrcXJlYWQgwqAxNyDCoCAwOjA5IMKgIDAuMDAlIHB5dGhvbjMuOTxicj44NTQ0NCDCoCDC oDc3MCDCoCDCoCDCoCDCoDEgwqAyMCDCoCDCoDAgwqAgMTc5TSDCoCDCoDUySyDCoDExTSBrcXJl YWQgwqAyMSDCoCAwOjAwIMKgIDAuMDAlIHBvc3RncmVzPGJyPjg1NDQxIMKgIMKgNzcwIMKgIMKg IMKgIMKgMSDCoDIwIMKgIMKgMCDCoCAxNzlNIMKgIMKgNTJLIMKgMTFNIGtxcmVhZCDCoDEyIMKg IDA6MDAgwqAgMC4wMCUgcG9zdGdyZXM8YnI+ODU0MzkgwqAgwqA3NzAgwqAgwqAgwqAgwqAxIMKg MjAgwqAgwqAwIMKgIDE3OU0gwqAgwqA1MksgwqAxMU0ga3FyZWFkIMKgMTkgwqAgMDowMCDCoCAw LjAwJSBwb3N0Z3Jlczxicj7CoDk4ODYgd3d3IMKgIMKgIMKgIMKgIMKgIDEgwqA1MiDCoCDCoDAg wqAgMzY3TSDCoCDCoDUySyDCoDEwTSBhY2NlcHQgwqAxMCDCoCAwOjAwIMKgIDAuMDAlIHBocC1m cG08YnI+wqA5ODg3IHd3dyDCoCDCoCDCoCDCoCDCoCAxIMKgNTIgwqAgwqAwIMKgIDM2N00gwqAg wqA1MksgwqAxME0gYWNjZXB0IMKgIDAgwqAgMDowMCDCoCAwLjAwJSBwaHAtZnBtPGJyPsKgOTg4 NSB3d3cgwqAgwqAgwqAgwqAgwqAgMSDCoDUyIMKgIMKgMCDCoCAzNjdNIMKgIMKgNTJLIMKgMTBN IGFjY2VwdCDCoCA4IMKgIDA6MDAgwqAgMC4wMCUgcGhwLWZwbTxicj7CoDk4ODMgd3d3IMKgIMKg IMKgIMKgIMKgIDEgwqA1MiDCoCDCoDAgwqAgMzY3TSDCoCDCoDUySyDCoDEwTSBhY2NlcHQgwqAx MiDCoCAwOjAwIMKgIDAuMDAlIHBocC1mcG08YnI+wqA5ODgxIHd3dyDCoCDCoCDCoCDCoCDCoCAx IMKgNTIgwqAgwqAwIMKgIDM2N00gwqAgwqA1MksgwqAxME0gYWNjZXB0IMKgIDAgwqAgMDowMCDC oCAwLjAwJSBwaHAtZnBtPGJyPsKgOTg4MCB3d3cgwqAgwqAgwqAgwqAgwqAgMSDCoDUyIMKgIMKg MCDCoCAzNjdNIMKgIMKgNTJLIMKgMTBNIGFjY2VwdCDCoCAzIMKgIDA6MDAgwqAgMC4wMCUgcGhw LWZwbTxicj7CoDk4ODIgd3d3IMKgIMKgIMKgIMKgIMKgIDEgwqA1MiDCoCDCoDAgwqAgMzY3TSDC oCDCoDUySyDCoDEwTSBhY2NlcHQgwqAgMyDCoCAwOjAwIMKgIDAuMDAlIHBocC1mcG08YnI+wqA5 ODc2IHd3dyDCoCDCoCDCoCDCoCDCoCAxIMKgNTIgwqAgwqAwIMKgIDM2N00gwqAgwqA1MksgwqAx ME0gYWNjZXB0IMKgMjIgwqAgMDowMCDCoCAwLjAwJSBwaHAtZnBtPGJyPsKgOTg3NSB3d3cgwqAg wqAgwqAgwqAgwqAgMSDCoDUyIMKgIMKgMCDCoCAzNjdNIMKgIMKgNTJLIMKgMTBNIGFjY2VwdCDC oCA1IMKgIDA6MDAgwqAgMC4wMCUgcGhwLWZwbTxicj7CoDk4Nzggd3d3IMKgIMKgIMKgIMKgIMKg IDEgwqA1MiDCoCDCoDAgwqAgMzY3TSDCoCDCoDUySyDCoDEwTSBhY2NlcHQgwqAgNyDCoCAwOjAw IMKgIDAuMDAlIHBocC1mcG08YnI+wqA5ODc0IHd3dyDCoCDCoCDCoCDCoCDCoCAxIMKgNTIgwqAg wqAwIMKgIDM2N00gwqAgwqA1MksgwqAxME0gYWNjZXB0IMKgIDEgwqAgMDowMCDCoCAwLjAwJSBw aHAtZnBtPGJyPsKgOTg3MiB3d3cgwqAgwqAgwqAgwqAgwqAgMSDCoDUyIMKgIMKgMCDCoCAzNjdN IMKgIMKgNTJLIMKgMTBNIGFjY2VwdCDCoCAxIMKgIDA6MDAgwqAgMC4wMCUgcGhwLWZwbTxicj7C oDk4NzMgd3d3IMKgIMKgIMKgIMKgIMKgIDEgwqA1MiDCoCDCoDAgwqAgMzY3TSDCoCDCoDUySyDC oDEwTSBhY2NlcHQgwqAgMyDCoCAwOjAwIMKgIDAuMDAlIHBocC1mcG08YnI+wqA5ODcxIHd3dyDC oCDCoCDCoCDCoCDCoCAxIMKgNTIgwqAgwqAwIMKgIDM2N00gwqAgwqA1MksgwqAxME0gYWNjZXB0 IMKgMTMgwqAgMDowMCDCoCAwLjAwJSBwaHAtZnBtPGJyPsKgOTg3MCB3d3cgwqAgwqAgwqAgwqAg wqAgMSDCoDUyIMKgIMKgMCDCoCAzNjdNIMKgIMKgNTJLIMKgMTBNIGFjY2VwdCDCoCAyIMKgIDA6 MDAgwqAgMC4wMCUgcGhwLWZwbTxicj41NzQxMSDCoCDCoDc3MCDCoCDCoCDCoCDCoDEgwqAyMCDC oCDCoDAgwqAgMTc5TSDCoCA2OTZLIDkxMDhLIGtxcmVhZCDCoDEwIMKgIDA6MDEgwqAgMC4wMCUg cG9zdGdyZXM8YnI+NTQ5Nzggd3d3IMKgIMKgIMKgIMKgIMKgIDEgwqAyMCDCoCDCoDAgwqAgwqAz Mk0gwqAgODUySyA4MzM2SyBhY2NlcHQgwqAxNyDCoCAwOjA4IMKgIDAuMDIlIGh0dHBkPGJyPsKg OTYzOSDCoCDCoDc3MCDCoCDCoCDCoCDCoDEgwqAyMCDCoCDCoDAgwqAgMTc5TSDCoCA1NzJLIDgw NjBLIGtxcmVhZCDCoCA2IMKgIDA6MDIgwqAgMC4wMCUgcG9zdGdyZXM8YnI+wqA4MzUwIMKgIMKg NzcwIMKgIMKgIMKgIMKgMSDCoDIwIMKgIMKgMCDCoCAxNzZNIMKgIDU2MEsgNzc0NEsga3FyZWFk IMKgMTggwqAgMDowMiDCoCAwLjAwJSBwb3N0Z3Jlczxicj7CoDgzNDkgwqAgwqA3NzAgwqAgwqAg wqAgwqAxIMKgMjAgwqAgwqAwIMKgIDE3Nk0gwqAgNjY4SyA3NjQwSyBrcXJlYWQgwqAgNSDCoCAw OjAwIMKgIDAuMDAlIHBvc3RncmVzPGJyPsKgODM1NCDCoCDCoDc3MCDCoCDCoCDCoCDCoDEgwqAy MCDCoCDCoDAgwqAgMTc3TSDCoDMyNDhLIDUyODBLIGtxcmVhZCDCoCA1IMKgIDA6MDAgwqAgMC4w MCUgcG9zdGdyZXM8YnI+wqA4MzUzIMKgIMKgNzcwIMKgIMKgIMKgIMKgMSDCoDIwIMKgIMKgMCDC oCAxNzdNIMKgMzQ1MksgNTE3Mksga3FyZWFkIMKgIDIgwqAgMDowMyDCoCAwLjAwJSBwb3N0Z3Jl czxicj7CoDU5NDkgc21tc3AgwqAgwqAgwqAgwqAgMSDCoDIwIMKgIMKgMCDCoCDCoDE4TSDCoCA5 NjRLIDMzMjRLIHBhdXNlIMKgIDE3IMKgIDA6MDAgwqAgMC4wMCUgc2VuZG1haWw8YnI+wqAxOTU2 IHJvb3QgwqAgwqAgwqAgwqAgwqAxIMKgNTIgwqAgwqAwIMKgIMKgMThNIMKgNDA5NkIgMzAyNEsg bG9ja2YgwqAgMTQgwqAgMDowMCDCoCAwLjAwJSAmbHQ7c2FzbGF1dGhkJmd0Ozxicj7CoDU5ODQg c2NvdHQgwqAgwqAgwqAgwqAgMSDCoDIwIMKgIMKgMCDCoCDCoDE1TSDCoDQwOTZCIDMwMjBLIHdh aXQgwqAgwqAyMCDCoCAwOjAwIMKgIDAuMDAlICZsdDtiYXNoJmd0Ozxicj48L2ZvbnQ+PGRpdj48 Zm9udCBmYWNlPSJtb25vc3BhY2UiPsKgMTk2OCByb290IMKgIMKgIMKgIMKgIMKgMSDCoDUyIMKg IMKgMCDCoCDCoDE4TSDCoDQwOTZCIDI5NzZLIGFjY2VwdCDCoDEyIMKgIDA6MDAgwqAgMC4wMCUg Jmx0O3Nhc2xhdXRoZCZndDs8L2ZvbnQ+PC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj5UaGVyZSBh cmUgbm90ICZxdW90O3RoYXQgbWFueSZxdW90OyBwcm9jZXNzZXMgc28gdGhpcyBpcyBub3QgJnF1 b3Q7ZGVhdGggYnkgYSB0aG91c2FuZCBjdXRzJnF1b3Q7OjwvZGl2PjxkaXY+PGJyPjwvZGl2Pjxk aXY+PGZvbnQgZmFjZT0ibW9ub3NwYWNlIj4jwqA8Yj5wcyAtYXV4IHwgd2MgLWw8L2I+PGJyPsKg IMKgIMKgMzcyPGJyPjwvZm9udD48L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PkkgaGF2ZSBhIHN1 c3BpY2lvbiB0aGF0IHRoaXMgaXMgcmVsYXRlZCB0byB0aGUgd2lyZWd1YXJkIGttb2Qgc2ltcGx5 IGJlY2F1c2UgSSBydW4gd2lyZWd1YXJkIGluIGEgdm5ldCBqYWlsIGFuZCBkaWRuJiMzOTt0IG9i c2VydmUgdGhpcyBwcm9ibGVtIHVudGlsIHNldHRpbmcgdGhhdCB1cC7CoCBCdXQgSSBkb24mIzM5 O3QgaGF2ZSBhbnkgZXZpZGVuY2UuPC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj5JJiMzOTt2ZSB0 cmllZCB0byBtaXRpZ2F0ZSB0aGlzIHZpYSBzd2Fwb2ZmIC1hLsKgIFRoaXMgd29ya3Mgb25jZSBi dXQgdGhlIG5leHQgZGF5IHN3YXAgd2lsbCBiZSBiYWNrLCBldmVuIGZ1bGxlci7CoCBJJiMzOTt2 ZSBiZWVuIGRvaW5nIHJlZ3VsYXIgcmVib290cyB0byBmaXggdGhpcyBidXQgd291bGQgbGlrZSB0 byBnZXQgdG8gdGhlIGJvdHRvbSBvZiBpdC7CoCBJZiBsZWZ0IGFsb25lLCBzd2FwIHdpbGwgZmls bCB1cCBhbmQgdGhlIG1hY2hpbmUgd2lsbCBnZXQgaW50byBhICZxdW90O25vdCBxdWl0ZSBodW5n JnF1b3Q7IGJ1dCB1bnVzYWJsZSBhbmQgdXNlbGVzcyBzdGF0ZS48L2Rpdj48ZGl2Pjxicj48L2Rp dj48ZGl2PkFtIEkgb2ZmIGJhc2Ugd2l0aCBteSBzdXNwaWNpb24gdGhhdCB0aGlzIGlzIGtlcm5l bCBtb2RlIG1lbW9yeT/CoCBDYW4gc29tZW9uZSB0ZWFjaCBtZSBob3cgdG8gZGlhZ25vc2UgdGhl IHN0YXR1cyBvZiBrZXJuZWwgbW9kZSBtZW1vcnkgaGVhcD88L2Rpdj48ZGl2Pjxicj48L2Rpdj48 ZGl2PlRoeCw8L2Rpdj48ZGl2PlNjb3R0PC9kaXY+PC9kaXY+DQo= --00000000000012c3a805fddc9f0e--