Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1t8jbZ-005hqE-Pv for pgsql-general@arkaria.postgresql.org; Wed, 06 Nov 2024 17:14:05 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1t8jbX-007gRG-8P for pgsql-general@arkaria.postgresql.org; Wed, 06 Nov 2024 17:14:03 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1t8jbW-007gR7-KB for pgsql-general@lists.postgresql.org; Wed, 06 Nov 2024 17:14:03 +0000 Received: from mail-oo1-xc36.google.com ([2607:f8b0:4864:20::c36]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1t8jbU-000V6p-KN for pgsql-general@lists.postgresql.org; Wed, 06 Nov 2024 17:14:01 +0000 Received: by mail-oo1-xc36.google.com with SMTP id 006d021491bc7-5ee354637b4so788696eaf.3 for ; Wed, 06 Nov 2024 09:14:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1730913239; x=1731518039; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=ahnxIKiZyhyEKX/dIb5xukRqs3zZzfqtjYSC/zof5c4=; b=Msc8Ge7YNJ8GIrgB7vrpUeH616wo4b8Ho90JF88cJo3RsHIT/Bk7N4Llz+Zt/fAeYp jWAvJ/qT+0yRIat+tgT5FyfUQIPxCO5FHc6MLR4eCI+BtOIPmze8S56d/Oz/5SOwCRJW d1l1ExSdBPgdcXbyJneXVWKhFkjsp3cBb0VUzSXlGlxv7uTnpkjoE7KJ0qrt8q7RMJSD +DuNSyEOG2fc+NnsMcWsDICKNxB/d9Q2wVKd9uc9UaEsNf8+0yBGMYyiw0fgpXqvppXt 5CUkqtl5I+x+HWXS+reB1lRmmQzDE4Vtl/5+tL6Ytlga7Q4P331oYLiADEUUb03TiRpq YZag== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1730913239; x=1731518039; h=cc:to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=ahnxIKiZyhyEKX/dIb5xukRqs3zZzfqtjYSC/zof5c4=; b=ZnX1J0AndsQgHubax0yheb8cSWL2gdsnQ5tGF+ab70sdINGiF5Y+7zmFTdfUiYCwYp QUQN/5JhNV0Mf8AuLa2Yy+fdgafyHsAudHxo3PcSmP9OKVg7ET3074JpW+I700aWZJ7s iupBD1YXZ87ZXvlL7Nsn8zYXD+U6NN72ajyd/1M4heSessO+EuuvLsrs2Abtc8OEpeiA E8aqujdN6nFRwO1Qec9KwQUyZaPXmJy3mveqiGoAeQWkHOttelrcHx7ENv3Y8lAIADEV SxP3Oz6opBQdVfPCmOE6RDMWQtgQutwqvPNb02R7CcqokrY7EXURxA6QayEqk8EdHmaF izkg== X-Gm-Message-State: AOJu0YwPbh7OMUSmP1g9SpuY/X9gKsue0S/PhT24tSd4QK6m2yw+AmYr TBpzR3/KhuCUKrpE7EECkATzhpKB6jcItpLzgAegcyHUF8X/y9rE6opwfEtUPQdcnxA08sYyjww bmBrLWNxjzTSK3+m+md+2f4vud1WfmcWL X-Google-Smtp-Source: AGHT+IGsr3S/0b/0aqldyejhiUWI0UFEA7jHpyoVhLTddR36HMCMrnMkpBSUtZP3dJAKi/YIJU0bWUAsJbIl7C/6SZM= X-Received: by 2002:a05:6820:310b:b0:5ed:f849:51dd with SMTP id 006d021491bc7-5edf8495895mr11459089eaf.8.1730913238856; Wed, 06 Nov 2024 09:13:58 -0800 (PST) MIME-Version: 1.0 From: Ramakrishna m Date: Wed, 6 Nov 2024 22:43:46 +0530 Message-ID: Subject: Performance Issue with Hash Partition Query Execution in PostgreSQL 16 To: pgsql-general@lists.postgresql.org Cc: ravisql09@gmail.com Content-Type: multipart/mixed; boundary="000000000000c13d47062641a4b3" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000c13d47062641a4b3 Content-Type: multipart/alternative; boundary="000000000000c13d46062641a4b1" --000000000000c13d46062641a4b1 Content-Type: text/plain; charset="UTF-8" Hi Team, One of the queries, which retrieves a single record from a table with 16 hash partitions, is taking more than 10 seconds to execute. In contrast, when we run the same query manually, it completes within milliseconds. This issue is causing exhaustion of the application pools. Do we have any bugs in postgrs16 hash partitions? Please find the attached log, table, and execution plan. size of the each partitions : 300GB Index Size : 12GB Postgres Version : 16.x Shared Buffers : 75 GB Effective_cache : 175 GB Work _mem : 4MB Max_connections : 3000 OS : Ubuntu 22.04 Ram : 384 GB CPU : 64 Please let us know if you need any further information or if there are additional details required. Regards, Ram. --000000000000c13d46062641a4b1 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Team,

One of the queries, which retrieves a single record from a= table with 16 hash partitions, is taking more than 10 seconds to execute. = In contrast, when we run the same query manually, it completes within milli= seconds. This issue is causing exhaustion of the application pools.=C2=A0Do= we have any bugs in postgrs16 hash partitions? Please find the attached lo= g, table, and execution plan.=C2=A0

= size of the each partitions : 300GB=C2=A0
Index Size : 12GB

Postgres Version : 16.x
Shared Buffers : 75 GBEffective_cache := =C2=A0 175 GB

Work _mem : 4MB
Max_c= onnections : 3000

OS=C2=A0 :=C2=A0Ubuntu 22.04
Ram : 384 GB
CPU : 64

Please let us know if you need any further= information or if there are additional details required.=C2=A0=C2=A0


Regards,
Ram.
--000000000000c13d46062641a4b1-- --000000000000c13d47062641a4b3 Content-Type: application/octet-stream; name="Postgres_hash_partion_issue.sql" Content-Disposition: attachment; filename="Postgres_hash_partion_issue.sql" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m364c3yz0 c2l6ZSBvZiB0aGUgcGFydGl0aW9ucyAzMDBHQiBlYWNoDQoNClF1ZXJ5IHRvb2sgdGltZSA6DQpk dXJhdGlvbjogODc3MC4zNTIgbXMgwqBleGVjdXRlIF9QTEFOMHhiNzVmNDAwOiBTRUxFQ1QgZXF1 SURTRVFJRCwgZXF1SUQgRlJPTSBzMTRlcXVJTkZPIFdIRVJFIHNlcmVxdUlEU0VRSUQ9JDEgbGlt aXQgNTUNCg0KTWFudWFsIGV4ZWN1dGlvbjoNCg0KDQoNClNFTEVDVCBlcXVJRFNFUUlELCBlcXVJ RCBGUk9NIHMxNGVxdUlORk8gV0hFUkUgc2VyZXF1SURTRVFJRD0nMzMzMTQ1NzE1OTgnIA0KDQoN CsKgQXBwZW5kIMKgKGNvc3Q9MC41Ny4uNzQuODUgcm93cz0xOSB3aWR0aD03OSkgKGFjdHVhbCB0 aW1lPTAuNjIzLi44LjkzNCByb3dzPTEgbG9vcHM9MSkNCsKgIMKgLT4gwqBJbmRleCBTY2FuIHVz aW5nIHMxNGVxdWluZm9fcGFydDE2X3NlcmVxdWlkc2VxaWRfaWR4IG9uIHMxNGVxdWluZm9fcGFy dDE2IHMxNGVxdWluZm9fMSDCoChjb3N0PTAuNTcuLjQuNjEgcm93cz0xIHdpZHRoPTc5KSAoYWN0 dWFsIHRpbWU9MC42MjIuLjAuNjM0IHJvd3M9MSBsb29wcz0xKQ0KwqAgwqAgwqAgwqAgwqBJbmRl eCBDb25kOiAoc2VyZXF1aWRzZXFpZCA9ICczMzMxNDU3MTU5OCc6OmJpZ2ludCkNCsKgIMKgLT4g wqBJbmRleCBTY2FuIHVzaW5nIHMxNGVxdWluZm9fcGFydDFfc2VyZXF1aWRzZXFpZF9pZHggb24g czE0ZXF1aW5mb19wYXJ0MSBzMTRlcXVpbmZvXzIgwqAoY29zdD0wLjU3Li40LjYxIHJvd3M9MSB3 aWR0aD03OSkgKGFjdHVhbCB0aW1lPTAuNTU3Li4wLjU1NyByb3dzPTAgbG9vcHM9MSkNCsKgIMKg IMKgIMKgIMKgSW5kZXggQ29uZDogKHNlcmVxdWlkc2VxaWQgPSAnMzMzMTQ1NzE1OTgnOjpiaWdp bnQpDQrCoCDCoC0+IMKgSW5kZXggU2NhbiB1c2luZyBzMTRlcXVpbmZvX3BhcnQyX3NlcmVxdWlk c2VxaWRfaWR4IG9uIHMxNGVxdWluZm9fcGFydDIgczE0ZXF1aW5mb18zIMKgKGNvc3Q9MC41Ny4u NC42MSByb3dzPTEgd2lkdGg9NzkpIChhY3R1YWwgdGltZT0wLjU2OC4uMC41Njggcm93cz0wIGxv b3BzPTEpDQrCoCDCoCDCoCDCoCDCoEluZGV4IENvbmQ6IChzZXJlcXVpZHNlcWlkID0gJzMzMzE0 NTcxNTk4Jzo6YmlnaW50KQ0KwqAgwqAtPiDCoEluZGV4IFNjYW4gdXNpbmcgczE0ZXF1aW5mb19w YXJ0M19zZXJlcXVpZHNlcWlkX2lkeCBvbiBzMTRlcXVpbmZvX3BhcnQzIHMxNGVxdWluZm9fNCDC oChjb3N0PTAuNTcuLjQuNjEgcm93cz0xIHdpZHRoPTc5KSAoYWN0dWFsIHRpbWU9MC43MDIuLjAu NzAyIHJvd3M9MCBsb29wcz0xKQ0KwqAgwqAgwqAgwqAgwqBJbmRleCBDb25kOiAoc2VyZXF1aWRz ZXFpZCA9ICczMzMxNDU3MTU5OCc6OmJpZ2ludCkNCsKgIMKgLT4gwqBJbmRleCBTY2FuIHVzaW5n IHMxNGVxdWluZm9fcGFydDRfc2VyZXF1aWRzZXFpZF9pZHggb24gczE0ZXF1aW5mb19wYXJ0NCBz MTRlcXVpbmZvXzUgwqAoY29zdD0wLjU3Li40LjYxIHJvd3M9MSB3aWR0aD03OSkgKGFjdHVhbCB0 aW1lPTAuNjQxLi4wLjY0MSByb3dzPTAgbG9vcHM9MSkNCsKgIMKgIMKgIMKgIMKgSW5kZXggQ29u ZDogKHNlcmVxdWlkc2VxaWQgPSAnMzMzMTQ1NzE1OTgnOjpiaWdpbnQpDQrCoCDCoC0+IMKgSW5k ZXggU2NhbiB1c2luZyBzMTRlcXVpbmZvX3BhcnQ1X3NlcmVxdWlkc2VxaWRfaWR4IG9uIHMxNGVx dWluZm9fcGFydDUgczE0ZXF1aW5mb182IMKgKGNvc3Q9MC41Ny4uNC42MSByb3dzPTEgd2lkdGg9 NzkpIChhY3R1YWwgdGltZT0wLjUyNC4uMC41MjQgcm93cz0wIGxvb3BzPTEpDQrCoCDCoCDCoCDC oCDCoEluZGV4IENvbmQ6IChzZXJlcXVpZHNlcWlkID0gJzMzMzE0NTcxNTk4Jzo6YmlnaW50KQ0K wqAgwqAtPiDCoEluZGV4IFNjYW4gdXNpbmcgczE0ZXF1aW5mb19wYXJ0Nl9zZXJlcXVpZHNlcWlk X2lkeCBvbiBzMTRlcXVpbmZvX3BhcnQ2IHMxNGVxdWluZm9fNyDCoChjb3N0PTAuNTcuLjQuNjEg cm93cz0xIHdpZHRoPTc5KSAoYWN0dWFsIHRpbWU9MC42ODQuLjAuNjg0IHJvd3M9MCBsb29wcz0x KQ0KwqAgwqAgwqAgwqAgwqBJbmRleCBDb25kOiAoc2VyZXF1aWRzZXFpZCA9ICczMzMxNDU3MTU5 OCc6OmJpZ2ludCkNCsKgIMKgLT4gwqBJbmRleCBTY2FuIHVzaW5nIHMxNGVxdWluZm9fcGFydDdf c2VyZXF1aWRzZXFpZF9pZHggb24gczE0ZXF1aW5mb19wYXJ0NyBzMTRlcXVpbmZvXzggwqAoY29z dD0wLjU3Li40LjYxIHJvd3M9MSB3aWR0aD03OSkgKGFjdHVhbCB0aW1lPTAuNTE0Li4wLjUxNCBy b3dzPTAgbG9vcHM9MSkNCsKgIMKgIMKgIMKgIMKgSW5kZXggQ29uZDogKHNlcmVxdWlkc2VxaWQg PSAnMzMzMTQ1NzE1OTgnOjpiaWdpbnQpDQrCoCDCoC0+IMKgSW5kZXggU2NhbiB1c2luZyBzMTRl cXVpbmZvX3BhcnQ4X3NlcmVxdWlkc2VxaWRfaWR4IG9uIHMxNGVxdWluZm9fcGFydDggczE0ZXF1 aW5mb185IMKgKGNvc3Q9MC41Ny4uNC42MSByb3dzPTEgd2lkdGg9NzkpIChhY3R1YWwgdGltZT0w LjYzNC4uMC42MzQgcm93cz0wIGxvb3BzPTEpDQrCoCDCoCDCoCDCoCDCoEluZGV4IENvbmQ6IChz ZXJlcXVpZHNlcWlkID0gJzMzMzE0NTcxNTk4Jzo6YmlnaW50KQ0KwqAgwqAtPiDCoEluZGV4IFNj YW4gdXNpbmcgczE0ZXF1aW5mb19wYXJ0OV9zZXJlcXVpZHNlcWlkX2lkeCBvbiBzMTRlcXVpbmZv X3BhcnQ5IHMxNGVxdWluZm9fMTAgwqAoY29zdD0wLjU3Li40LjYxIHJvd3M9MSB3aWR0aD03OSkg KGFjdHVhbCB0aW1lPTAuMzk1Li4wLjM5NSByb3dzPTAgbG9vcHM9MSkNCsKgIMKgIMKgIMKgIMKg SW5kZXggQ29uZDogKHNlcmVxdWlkc2VxaWQgPSAnMzMzMTQ1NzE1OTgnOjpiaWdpbnQpDQrCoCDC oC0+IMKgSW5kZXggU2NhbiB1c2luZyBzMTRlcXVpbmZvX3BhcnQxMF9zZXJlcXVpZHNlcWlkX2lk eCBvbiBzMTRlcXVpbmZvX3BhcnQxMCBzMTRlcXVpbmZvXzExIMKgKGNvc3Q9MC41Ny4uNC42MSBy b3dzPTEgd2lkdGg9NzkpIChhY3R1YWwgdGltZT0wLjM1My4uMC4zNTMgcm93cz0wIGxvb3BzPTEp DQrCoCDCoCDCoCDCoCDCoEluZGV4IENvbmQ6IChzZXJlcXVpZHNlcWlkID0gJzMzMzE0NTcxNTk4 Jzo6YmlnaW50KQ0KwqAgwqAtPiDCoEluZGV4IFNjYW4gdXNpbmcgczE0ZXF1aW5mb19wYXJ0MTFf c2VyZXF1aWRzZXFpZF9pZHggb24gczE0ZXF1aW5mb19wYXJ0MTEgczE0ZXF1aW5mb18xMiDCoChj b3N0PTAuNTcuLjQuNjEgcm93cz0xIHdpZHRoPTc5KSAoYWN0dWFsIHRpbWU9MC41NTcuLjAuNTU3 IHJvd3M9MCBsb29wcz0xKQ0KwqAgwqAgwqAgwqAgwqBJbmRleCBDb25kOiAoc2VyZXF1aWRzZXFp ZCA9ICczMzMxNDU3MTU5OCc6OmJpZ2ludCkNCsKgIMKgLT4gwqBJbmRleCBTY2FuIHVzaW5nIHMx NGVxdWluZm9fcGFydDEyX3NlcmVxdWlkc2VxaWRfaWR4IG9uIHMxNGVxdWluZm9fcGFydDEyIHMx NGVxdWluZm9fMTMgwqAoY29zdD0wLjU3Li41LjM4IHJvd3M9NCB3aWR0aD03OSkgKGFjdHVhbCB0 aW1lPTAuNjYyLi4wLjY2MiByb3dzPTAgbG9vcHM9MSkNCsKgIMKgIMKgIMKgIMKgSW5kZXggQ29u ZDogKHNlcmVxdWlkc2VxaWQgPSAnMzMzMTQ1NzE1OTgnOjpiaWdpbnQpDQrCoCDCoC0+IMKgSW5k ZXggU2NhbiB1c2luZyBzMTRlcXVpbmZvX3BhcnQxM19zZXJlcXVpZHNlcWlkX2lkeCBvbiBzMTRl cXVpbmZvX3BhcnQxMyBzMTRlcXVpbmZvXzE0IMKgKGNvc3Q9MC41Ny4uNC42MSByb3dzPTEgd2lk dGg9NzkpIChhY3R1YWwgdGltZT0wLjQ3OS4uMC40Nzkgcm93cz0wIGxvb3BzPTEpDQrCoCDCoCDC oCDCoCDCoEluZGV4IENvbmQ6IChzZXJlcXVpZHNlcWlkID0gJzMzMzE0NTcxNTk4Jzo6YmlnaW50 KQ0KwqAgwqAtPiDCoEluZGV4IFNjYW4gdXNpbmcgczE0ZXF1aW5mb19wYXJ0MTRfc2VyZXF1aWRz ZXFpZF9pZHggb24gczE0ZXF1aW5mb19wYXJ0MTQgczE0ZXF1aW5mb18xNSDCoChjb3N0PTAuNTcu LjQuNjEgcm93cz0xIHdpZHRoPTc5KSAoYWN0dWFsIHRpbWU9MC41MTguLjAuNTE4IHJvd3M9MCBs b29wcz0xKQ0KwqAgwqAgwqAgwqAgwqBJbmRleCBDb25kOiAoc2VyZXF1aWRzZXFpZCA9ICczMzMx NDU3MTU5OCc6OmJpZ2ludCkNCsKgIMKgLT4gwqBJbmRleCBTY2FuIHVzaW5nIHMxNGVxdWluZm9f cGFydDE1X3NlcmVxdWlkc2VxaWRfaWR4IG9uIHMxNGVxdWluZm9fcGFydDE1IHMxNGVxdWluZm9f MTYgwqAoY29zdD0wLjU3Li40LjYxIHJvd3M9MSB3aWR0aD03OSkgKGFjdHVhbCB0aW1lPTAuNTA4 Li4wLjUwOCByb3dzPTAgbG9vcHM9MSkNCsKgIMKgIMKgIMKgIMKgSW5kZXggQ29uZDogKHNlcmVx dWlkc2VxaWQgPSAnMzMzMTQ1NzE1OTgnOjpiaWdpbnQpDQrCoFBsYW5uaW5nIFRpbWU6IDEzNS42 MDIgbXMNCsKgRXhlY3V0aW9uIFRpbWU6IDkuMDQ1IG1zDQooMzUgcm93cykNCg0KVGFibGUgc3Ry dWN0dXJlOg0KDQpcZCsgczE0ZXF1SU5GTw0KwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBQYXJ0aXRp b25lZCB0YWJsZSAiczEuczE0ZXF1aW5mbyINCsKgIMKgIMKgIMKgIENvbHVtbiDCoCDCoCDCoCDC oHwgwqAgwqAgwqAgwqAgwqAgwqBUeXBlIMKgIMKgIMKgIMKgIMKgIMKgIHwgQ29sbGF0aW9uIHwg TnVsbGFibGUgfCDCoCDCoERlZmF1bHQgwqAgwqAgfCBTdG9yYWdlIMKgfCBDb21wcmVzc2lvbiB8 IFN0YXRzIHRhcmdldCB8IERlc2NyaXB0aW9uDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLQ0KwqBlcXVpZHNlcWlkIMKgIMKgIMKgIMKgfCBiaWdpbnQgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqB8IMKgIMKgIMKgIMKgIMKgIHwgbm90IG51bGwgfCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoHwgcGxhaW4gwqAgwqB8IMKgIMKgIMKgIMKgIMKgIMKgIHwgwqAgwqAgwqAgwqAg wqAgwqAgwqB8DQrCoGVxdWlkIMKgIMKgIMKgIMKgIMKgIMKgIHwgY2hhcmFjdGVyIHZhcnlpbmco MTI4KSDCoCDCoCDCoHwgwqAgwqAgwqAgwqAgwqAgfCBub3QgbnVsbCB8IMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgfCBleHRlbmRlZCB8IMKgIMKgIMKgIMKgIMKgIMKgIHwgwqAgwqAgwqAgwqAgwqAg wqAgwqB8DQrCoHZlcnNpb24gwqAgwqAgwqAgwqAgwqAgwqAgwqB8IGludGVnZXIgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgfCDCoCDCoCDCoCDCoCDCoCB8IG5vdCBudWxsIHwgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqB8IHBsYWluIMKgIMKgfCDCoCDCoCDCoCDCoCDCoCDCoCB8IMKgIMKg IMKgIMKgIMKgIMKgIMKgfA0KwqBleHBpcnl0aW1lIMKgIMKgIMKgIMKgIMKgIHwgaW50ZWdlciDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCB8IMKgIMKgIMKgIMKgIMKgIHwgbm90IG51bGwg fCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoHwgcGxhaW4gwqAgwqB8IMKgIMKgIMKgIMKgIMKgIMKg IHwgwqAgwqAgwqAgwqAgwqAgwqAgwqB8DQrCoGR0Y3JlYXRlZCDCoCDCoCDCoCDCoCDCoCDCoHwg dGltZXN0YW1wIHdpdGhvdXQgdGltZSB6b25lIHwgwqAgwqAgwqAgwqAgwqAgfCBub3QgbnVsbCB8 IExPQ0FMVElNRVNUQU1QIHwgcGxhaW4gwqAgwqB8IMKgIMKgIMKgIMKgIMKgIMKgIHwgwqAgwqAg wqAgwqAgwqAgwqAgwqB8DQrCoGVxdWNhcGFiaWxpdGllcyDCoCB8IGNoYXJhY3RlciB2YXJ5aW5n KDEwKSDCoCDCoCDCoCB8IMKgIMKgIMKgIMKgIMKgIHwgbm90IG51bGwgfCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoHwgZXh0ZW5kZWQgfCDCoCDCoCDCoCDCoCDCoCDCoCB8IMKgIMKgIMKgIMKgIMKg IMKgIMKgfA0KwqBlcXVhdXRoY29uZmlybWVkIMKgfCBjaGFyYWN0ZXIgdmFyeWluZygxKSDCoCDC oCDCoCDCoHwgwqAgwqAgwqAgwqAgwqAgfCBub3QgbnVsbCB8IMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgfCBleHRlbmRlZCB8IMKgIMKgIMKgIMKgIMKgIMKgIHwgwqAgwqAgwqAgwqAgwqAgwqAgwqB8 DQrCoGVxdXNpZ25hdHVyZSDCoCDCoCDCoHwgY2hhcmFjdGVyIHZhcnlpbmcoNDAwMCkgwqAgwqAg fCDCoCDCoCDCoCDCoCDCoCB8IMKgIMKgIMKgIMKgIMKgfCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oHwgZXh0ZW5kZWQgfCDCoCDCoCDCoCDCoCDCoCDCoCB8IMKgIMKgIMKgIMKgIMKgIMKgIMKgfA0K wqBlcXVzaWdsZW5ndGggwqAgwqAgwqB8IGludGVnZXIgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgfCDCoCDCoCDCoCDCoCDCoCB8IMKgIMKgIMKgIMKgIMKgfCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoHwgcGxhaW4gwqAgwqB8IMKgIMKgIMKgIMKgIMKgIMKgIHwgwqAgwqAgwqAgwqAgwqAg wqAgwqB8DQrCoGVxdXNpZ3ZlcnNpb24gwqAgwqAgfCBjaGFyYWN0ZXIgdmFyeWluZygxMCkgwqAg wqAgwqAgfCDCoCDCoCDCoCDCoCDCoCB8IMKgIMKgIMKgIMKgIMKgfCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoHwgZXh0ZW5kZWQgfCDCoCDCoCDCoCDCoCDCoCDCoCB8IMKgIMKgIMKgIMKgIMKgIMKg IMKgfA0KwqBjbGllbnRpcGFkZHJlc3MgwqAgwqAgwqB8IG51bWVyaWMoMzIsMCkgwqAgwqAgwqAg wqAgwqAgwqAgwqAgfCDCoCDCoCDCoCDCoCDCoCB8IMKgIMKgIMKgIMKgIMKgfCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoHwgbWFpbiDCoCDCoCB8IMKgIMKgIMKgIMKgIMKgIMKgIHwgwqAgwqAgwqAg wqAgwqAgwqAgwqB8DQrCoGluc3RhbmNlaWQgwqAgwqAgwqAgwqAgwqAgfCBpbnRlZ2VyIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHwgwqAgwqAgwqAgwqAgwqAgfCBub3QgbnVsbCB8IMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgfCBwbGFpbiDCoCDCoHwgwqAgwqAgwqAgwqAgwqAgwqAgfCDC oCDCoCDCoCDCoCDCoCDCoCDCoHwNCsKgdHhpZCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCB8IGJp Z2ludCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoHwgwqAgwqAgwqAgwqAgwqAgfCBu b3QgbnVsbCB8IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgfCBwbGFpbiDCoCDCoHwgwqAgwqAgwqAg wqAgwqAgwqAgfCDCoCDCoCDCoCDCoCDCoCDCoCDCoHwNCsKgZHRvYnNlcnZlZCDCoCDCoCDCoCDC oCDCoCB8IHRpbWVzdGFtcCB3aXRob3V0IHRpbWUgem9uZSB8IMKgIMKgIMKgIMKgIMKgIHwgbm90 IG51bGwgfCBMT0NBTFRJTUVTVEFNUCB8IHBsYWluIMKgIMKgfCDCoCDCoCDCoCDCoCDCoCDCoCB8 IMKgIMKgIMKgIMKgIMKgIMKgIMKgfA0KwqBzaG9ydGVxdXNpZ25hdHVyZSB8IGNoYXJhY3RlciB2 YXJ5aW5nKDUxMikgwqAgwqAgwqB8IMKgIMKgIMKgIMKgIMKgIHwgwqAgwqAgwqAgwqAgwqB8IMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgfCBleHRlbmRlZCB8IMKgIMKgIMKgIMKgIMKgIMKgIHwgwqAg wqAgwqAgwqAgwqAgwqAgwqB8DQrCoGVxdXR5cGUgwqAgwqAgwqAgwqAgwqAgfCBpbnRlZ2VyIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHwgwqAgwqAgwqAgwqAgwqAgfCDCoCDCoCDCoCDC oCDCoHwgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqB8IHBsYWluIMKgIMKgfCDCoCDCoCDCoCDCoCDC oCDCoCB8IMKgIMKgIMKgIMKgIMKgIMKgIMKgfA0KwqBlcXVpZHN0YXR1cyDCoCDCoCDCoCB8IGlu dGVnZXIgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgfCDCoCDCoCDCoCDCoCDCoCB8IMKg IMKgIMKgIMKgIMKgfCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoHwgcGxhaW4gwqAgwqB8IMKgIMKg IMKgIMKgIMKgIMKgIHwgwqAgwqAgwqAgwqAgwqAgwqAgwqB8DQrCoG1mcGZvbnRpbmZvIMKgIMKg IMKgIMKgIMKgfCBjaGFyYWN0ZXIgdmFyeWluZyg0MDAwKSDCoCDCoCB8IMKgIMKgIMKgIMKgIMKg IHwgwqAgwqAgwqAgwqAgwqB8IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgfCBleHRlbmRlZCB8IMKg IMKgIMKgIMKgIMKgIMKgIHwgwqAgwqAgwqAgwqAgwqAgwqAgwqB8DQrCoG1mcGZvbnRpbmZvZXh0 MSDCoCDCoCDCoHwgY2hhcmFjdGVyIHZhcnlpbmcoNDAwMCkgwqAgwqAgfCDCoCDCoCDCoCDCoCDC oCB8IMKgIMKgIMKgIMKgIMKgfCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoHwgZXh0ZW5kZWQgfCDC oCDCoCDCoCDCoCDCoCDCoCB8IMKgIMKgIMKgIMKgIMKgIMKgIMKgfA0KwqBtZnBmb250aW5mb2V4 dDIgwqAgwqAgwqB8IGNoYXJhY3RlciB2YXJ5aW5nKDQwMDApIMKgIMKgIHwgwqAgwqAgwqAgwqAg wqAgfCDCoCDCoCDCoCDCoCDCoHwgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqB8IGV4dGVuZGVkIHwg wqAgwqAgwqAgwqAgwqAgwqAgfCDCoCDCoCDCoCDCoCDCoCDCoCDCoHwNCsKgb3MgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgfCBjaGFyYWN0ZXIgdmFyeWluZyg2NCkgwqAgwqAgwqAgfCDCoCDC oCDCoCDCoCDCoCB8IMKgIMKgIMKgIMKgIMKgfCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoHwgZXh0 ZW5kZWQgfCDCoCDCoCDCoCDCoCDCoCDCoCB8IMKgIMKgIMKgIMKgIMKgIMKgIMKgfA0KwqBicm93 c2VyIMKgIMKgIMKgIMKgIMKgIMKgIMKgfCBjaGFyYWN0ZXIgdmFyeWluZyg2NCkgwqAgwqAgwqAg fCDCoCDCoCDCoCDCoCDCoCB8IMKgIMKgIMKgIMKgIMKgfCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oHwgZXh0ZW5kZWQgfCDCoCDCoCDCoCDCoCDCoCDCoCB8IMKgIMKgIMKgIMKgIMKgIMKgIMKgfA0K wqBzZXJlcXVpZHNlcWlkIMKgfCBiaWdpbnQgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqB8IMKgIMKgIMKgIMKgIMKgIHwgwqAgwqAgwqAgwqAgwqB8IMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgfCBwbGFpbiDCoCDCoHwgwqAgwqAgwqAgwqAgwqAgwqAgfCDCoCDCoCDCoCDCoCDCoCDCoCDC oHwNClBhcnRpdGlvbiBrZXk6IEhBU0ggKGVxdWlkc2VxaWQpDQpJbmRleGVzOg0KwqAgwqAgInMx NGVxdWluZm9fcGtleSIgUFJJTUFSWSBLRVksIGJ0cmVlIChlcXVpZHNlcWlkKQ0KwqAgwqAgInNl cl9zMTRlcXVpbmZvX2lkeCIgYnRyZWUgKHNlcmVxdWlkc2VxaWQpDQpQdWJsaWNhdGlvbnM6DQrC oCDCoCAicDFfdG9fcDJfYWxsX3RhYmxlX3B1YiINClBhcnRpdGlvbnM6IHMxNGVxdWluZm9fcGFy dDEgRk9SIFZBTFVFUyBXSVRIIChtb2R1bHVzIDE2LCByZW1haW5kZXIgMSksDQrCoCDCoCDCoCDC oCDCoCDCoCBzMTRlcXVpbmZvX3BhcnQxMCBGT1IgVkFMVUVTIFdJVEggKG1vZHVsdXMgMTYsIHJl bWFpbmRlciAxMCksDQrCoCDCoCDCoCDCoCDCoCDCoCBzMTRlcXVpbmZvX3BhcnQxMSBGT1IgVkFM VUVTIFdJVEggKG1vZHVsdXMgMTYsIHJlbWFpbmRlciAxMSksDQrCoCDCoCDCoCDCoCDCoCDCoCBz MTRlcXVpbmZvX3BhcnQxMiBGT1IgVkFMVUVTIFdJVEggKG1vZHVsdXMgMTYsIHJlbWFpbmRlciAx MiksDQrCoCDCoCDCoCDCoCDCoCDCoCBzMTRlcXVpbmZvX3BhcnQxMyBGT1IgVkFMVUVTIFdJVEgg KG1vZHVsdXMgMTYsIHJlbWFpbmRlciAxMyksDQrCoCDCoCDCoCDCoCDCoCDCoCBzMTRlcXVpbmZv X3BhcnQxNCBGT1IgVkFMVUVTIFdJVEggKG1vZHVsdXMgMTYsIHJlbWFpbmRlciAxNCksDQrCoCDC oCDCoCDCoCDCoCDCoCBzMTRlcXVpbmZvX3BhcnQxNSBGT1IgVkFMVUVTIFdJVEggKG1vZHVsdXMg MTYsIHJlbWFpbmRlciAxNSksDQrCoCDCoCDCoCDCoCDCoCDCoCBzMTRlcXVpbmZvX3BhcnQxNiBG T1IgVkFMVUVTIFdJVEggKG1vZHVsdXMgMTYsIHJlbWFpbmRlciAwKSwNCsKgIMKgIMKgIMKgIMKg IMKgIHMxNGVxdWluZm9fcGFydDIgRk9SIFZBTFVFUyBXSVRIIChtb2R1bHVzIDE2LCByZW1haW5k ZXIgMiksDQrCoCDCoCDCoCDCoCDCoCDCoCBzMTRlcXVpbmZvX3BhcnQzIEZPUiBWQUxVRVMgV0lU SCAobW9kdWx1cyAxNiwgcmVtYWluZGVyIDMpLA0KwqAgwqAgwqAgwqAgwqAgwqAgczE0ZXF1aW5m b19wYXJ0NCBGT1IgVkFMVUVTIFdJVEggKG1vZHVsdXMgMTYsIHJlbWFpbmRlciA0KSwNCsKgIMKg IMKgIMKgIMKgIMKgIHMxNGVxdWluZm9fcGFydDUgRk9SIFZBTFVFUyBXSVRIIChtb2R1bHVzIDE2 LCByZW1haW5kZXIgNSksDQrCoCDCoCDCoCDCoCDCoCDCoCBzMTRlcXVpbmZvX3BhcnQ2IEZPUiBW QUxVRVMgV0lUSCAobW9kdWx1cyAxNiwgcmVtYWluZGVyIDYpLA0KwqAgwqAgwqAgwqAgwqAgwqAg czE0ZXF1aW5mb19wYXJ0NyBGT1IgVkFMVUVTIFdJVEggKG1vZHVsdXMgMTYsIHJlbWFpbmRlciA3 KSwNCsKgIMKgIMKgIMKgIMKgIMKgIHMxNGVxdWluZm9fcGFydDggRk9SIFZBTFVFUyBXSVRIICht b2R1bHVzIDE2LCByZW1haW5kZXIgOCksDQrCoCDCoCDCoCDCoCDCoCDCoCBzMTRlcXVpbmZvX3Bh cnQ5IEZPUiBWQUxVRVMgV0lUSCAobW9kdWx1cyAxNiwgcmVtYWluZGVyIDkpDQo= --000000000000c13d47062641a4b3--