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 1tBru4-006cxJ-KU for pgsql-hackers@arkaria.postgresql.org; Fri, 15 Nov 2024 08:42:08 +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 1tBru2-008PzE-2W for pgsql-hackers@arkaria.postgresql.org; Fri, 15 Nov 2024 08:42:06 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1tBru1-008Pz2-Ks for pgsql-hackers@lists.postgresql.org; Fri, 15 Nov 2024 08:42:06 +0000 Received: from mail-ed1-x532.google.com ([2a00:1450:4864:20::532]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1tBrtu-0022eL-UX for pgsql-hackers@lists.postgresql.org; Fri, 15 Nov 2024 08:42:05 +0000 Received: by mail-ed1-x532.google.com with SMTP id 4fb4d7f45d1cf-5c937982445so200597a12.2 for ; Fri, 15 Nov 2024 00:41:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1731660119; x=1732264919; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=UjOACu1vvba6yk29v9m080NPhNO9fGB7VlJyfXdCBWA=; b=igPAoDL40epUNImtPOQ3zsbM6B+oDVxWrVjJ5MmYZL3Z73xM/cCENAJ3DR3Z+dJVDK CaBrwlRV92V91RPMV0+HqssLA9YT/oBBDxuPMEsTIsp9uQ2WOJeLIeSZ8hWdctr9gWpC yFfH/DR4hh8ig5E5YpYP3NQ+7Xf3ChCEje4/PfC8kH2AuX2qfs9kdCX7dkh8f8iYtGt4 edUQUfbuc202iAU+0NvN6QvV6VTdTtrbZ8sKLU8z1lECz635XPTSpOn9Ag4QKrqfMfP0 3rkQsLCN+gVFpxuBPA84k7sVXg30kzHPU1svFBjCujb9jCAzh1nxb38hvArhpjRDgt6m 1Lyg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1731660119; x=1732264919; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=UjOACu1vvba6yk29v9m080NPhNO9fGB7VlJyfXdCBWA=; b=C8PSNhJb5y2GoHlFwXmABar83KhgkQF6EkPx2UTlyP5uoEDViCmU2zkFvbXplnx98A HladImZKEyhzVPOTNm85oMu/b5Ddf94Dn6hB2PcAkhUVZzkhcJr8pJD2ahbF1lxTgD80 4thMZj0GC7a70AmzVUSCL6v59UL3SL3EgoeWX4nBVLhN1alG4XbpT6dtBCeG2DaWOLFn EZUtD7cOIqEiUIY2Sin2fudSH4azvWjWYiT00XHz1SPrKPN2MKnDveNgjw5wNqN/hQSq 7ap9C2LoTVjVlWEG2R8rWrMdVjbnsIRjS96fAEzEcXDo6j275Xu79j3CH7BaRVJ9Lruf b0xw== X-Forwarded-Encrypted: i=1; AJvYcCVSCtHrSXobC+1kecBDkczU+LpH2GbBoIcNHhUFsU/ftr+py4H4A7PsQia9jyO1xI6j+pbrHrdMD1dWK342@lists.postgresql.org X-Gm-Message-State: AOJu0Yxxxde/QA6jlqWcPIXlB4ruNZ+IhP5QZQDkGaDD/Pf8JDfHTiUk 0gPax2lAOYPh3UUmdjbOIx+yF7l5C7Dn3eYyPbKO+V1Ozg/aBuJs5L1/kBJlQJHSngCIA+Xb1uj VUIg/ZgMdAVqa0IuWP6f8/cMJtnw= X-Google-Smtp-Source: AGHT+IFap8dIxZUYx5cApUv1rGRa06utN3zUIcZYdx+hsVqTaoZJEAdRXWRf5+aCfwd6YFUSexuykd4x5WsJ2tadbY8= X-Received: by 2002:a05:6402:50cf:b0:5cb:6b9f:91fd with SMTP id 4fb4d7f45d1cf-5cf8fc5244emr531433a12.5.1731660118806; Fri, 15 Nov 2024 00:41:58 -0800 (PST) MIME-Version: 1.0 References: <5ecc35f5-1111-47fc-8a02-36d89490a50d@iki.fi> <24b3deb6-a732-4256-847a-560f4bf39d59@iki.fi> In-Reply-To: From: Maxim Orlov Date: Fri, 15 Nov 2024 11:41:46 +0300 Message-ID: Subject: Re: POC: make mxidoff 64 bits To: Heikki Linnakangas Cc: wenhui qiu , Alexander Korotkov , Postgres hackers Content-Type: multipart/mixed; boundary="0000000000004115440626ef8a3d" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000004115440626ef8a3d Content-Type: multipart/alternative; boundary="0000000000004115420626ef8a3b" --0000000000004115420626ef8a3b Content-Type: text/plain; charset="UTF-8" Here is the test scripts. The generate.sh script is used to generate data dir with multimple clusters in it. This script will call multixids.py in order to generate data. If you are not use system psql consider using LD_LIBRARY_PATH env to specify path to the lib directory. OLDBIN=/.../pgsql-new ./generate.sh Then the test.sh is used to run various upgrades. OLDBIN=/.../pgsql-old NEWBIN=/.../pgsql-new ./test.sh I hope that helps! -- Best regards, Maxim Orlov. --0000000000004115420626ef8a3b Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable

Here is the test scripts. =
The generate.sh script is used to generate data dir with mul= timple clusters in it. This script will call multixids.py in order to gener= ate data. If you are not use system psql consider using LD_LIBRARY_PATH env= to specify path to the lib directory.
OLDBIN=3D/.../pgsql-ne= w ./generate.sh

Then the test.sh is use= d to run various upgrades.=C2=A0
OLDBIN=3D/= .../pgsql-old NEWBIN=3D/.../pgsql-new ./test.sh

I hope that helps!

<= span class=3D"gmail_signature_prefix">--
Best regards,
Maxi= m Orlov.
--0000000000004115420626ef8a3b-- --0000000000004115440626ef8a3d Content-Type: text/x-python-script; charset="US-ASCII"; name="multixids.py" Content-Disposition: attachment; filename="multixids.py" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m3ihdva11 IyEvdXNyL2Jpbi9lbnYgcHl0aG9uMwoKaW1wb3J0IHN5czsKaW1wb3J0IHRocmVhZGluZzsKaW1w b3J0IHBzeWNvcGcyOwoKZGVmIHRlc3RfbXVsdGl4YWN0KHRibG5hbWU6IHN0cik6CiAgICB3aXRo IHBzeWNvcGcyLmNvbm5lY3QoZGJuYW1lPSJwb3N0Z3JlcyIpIGFzIGNvbm46CiAgICAgICAgY3Vy ID0gY29ubi5jdXJzb3IoKQogICAgICAgIGN1ci5leGVjdXRlKAogICAgICAgICAgICBmIiIiCiAg ICAgICAgICAgIERST1AgVEFCTEUgSUYgRVhJU1RTIHt0YmxuYW1lfTsKICAgICAgICAgICAgQ1JF QVRFIFRBQkxFIHt0YmxuYW1lfShpIGludCBwcmltYXJ5IGtleSwgbl91cGRhdGVkIGludCkgV0lU SCAoYXV0b3ZhY3V1bV9lbmFibGVkPWZhbHNlKTsKICAgICAgICAgICAgSU5TRVJUIElOVE8ge3Ri bG5hbWV9IHNlbGVjdCBnLCAwIGZyb20gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwKSBnOwogICAgICAg ICAgICAiIiIKICAgICAgICApCgogICAgIyBMb2NrIGVudHJpZXMgdXNpbmcgcGFyYWxsZWwgY29u bmVjdGlvbnMgaW4gYSByb3VuZC1yb2JpbiBmYXNoaW9uLgogICAgbmNsaWVudHMgPSA1MAogICAg dXBkYXRlX2V2ZXJ5ID0gOTcKICAgIGNvbm5lY3Rpb25zID0gW10KICAgIGZvciBfIGluIHJhbmdl KG5jbGllbnRzKToKICAgICAgICAjIERvIG5vdCB0dXJuIG9uIGF1dG9jb21taXQuIFdlIHdhbnQg dG8gaG9sZCB0aGUga2V5LXNoYXJlIGxvY2tzLgogICAgICAgIGNvbm4gPSBwc3ljb3BnMi5jb25u ZWN0KGRibmFtZT0icG9zdGdyZXMiKQogICAgICAgIGNvbm5lY3Rpb25zLmFwcGVuZChjb25uKQoK ICAgICMgT24gZWFjaCBpdGVyYXRpb24sIHdlIGNvbW1pdCB0aGUgcHJldmlvdXMgdHJhbnNhY3Rp b24gb24gYSBjb25uZWN0aW9uLAogICAgIyBhbmQgaXNzdWUgYW5vdGhlciBzZWxlY3QuIEVhY2gg U0VMRUNUIGdlbmVyYXRlcyBhIG5ldyBtdWx0aXhhY3QgdGhhdAogICAgIyBpbmNsdWRlcyB0aGUg bmV3IFhJRCwgYW5kIHRoZSBYSURzIG9mIGFsbCB0aGUgb3RoZXIgcGFyYWxsZWwgdHJhbnNhY3Rp b25zLgogICAgIyBUaGlzIGdlbmVyYXRlcyBlbm91Z2ggdHJhZmZpYyBvbiBib3RoIG11bHRpeGFj dCBvZmZzZXRzIGFuZCBtZW1iZXJzIFNMUlVzCiAgICAjIHRvIGNyb3NzIHBhZ2UgYm91bmRhcmll cy4KICAgIGZvciBpIGluIHJhbmdlKDIwMDAwKToKICAgICAgICBjb25uID0gY29ubmVjdGlvbnNb aSAlIG5jbGllbnRzXQogICAgICAgIGNvbm4uY29tbWl0KCkKCiAgICAgICAgIyBQZXJmb3JtIHNv bWUgbm9uLWtleSBVUERBVEVzIHRvbywgdG8gZXhlcmNpc2UgZGlmZmVyZW50IG11bHRpeGFjdAog ICAgICAgICMgbWVtYmVyIHN0YXR1c2VzLgogICAgICAgIGlmIGkgJSB1cGRhdGVfZXZlcnkgPT0g MDoKICAgICAgICAgICAgY29ubi5jdXJzb3IoKS5leGVjdXRlKGYidXBkYXRlIHt0YmxuYW1lfSBz ZXQgbl91cGRhdGVkID0gbl91cGRhdGVkICsgMSB3aGVyZSBpID0ge2kgJSA1MH0iKQogICAgICAg IGVsc2U6CiAgICAgICAgICAgIGNvbm4uY3Vyc29yKCkuZXhlY3V0ZShmInNlbGVjdCAqIGZyb20g e3RibG5hbWV9IGZvciBrZXkgc2hhcmUiKQoKdGVzdF9tdWx0aXhhY3Qoc3lzLmFyZ3ZbMV0pCg== --0000000000004115440626ef8a3d Content-Type: application/x-sh; name="generate.sh" Content-Disposition: attachment; filename="generate.sh" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m3ihdv9k0 IyEvYmluL3NoCiMKIyBHZW5lcmF0ZSB2YXJpdW9zIGNvbWJpbmF0aW9ucyBvZiBtZW1iZXJzL29m ZnNldHMgc2VnbWVudHMuCiMKCmlmIFsgLXogIiRPTERCSU4iIF0KdGhlbgoJZWNobyAiU2V0IGVu diBPTERCSU4gdG8gZ2VuZXJhdGUgY2x1c3RlcnMgZGF0YS4iCmZpCgpUUkc9YHB3ZGAvZGF0YQpl Y2hvICJVc2Ugb3V0cHV0IGRpcjogJFRSRyIKCnJtIC1yZiAkVFJHCgojIHNpbXBsZSwgZGVmYXVs dCB2YWx1ZXMKREFUQT0kVFJHL3NpbXBsZQokT0xEQklOL2Jpbi9pbml0ZGIgLS1uby1pbnN0cnVj dGlvbnMgLUQgJERBVEEKJE9MREJJTi9iaW4vcGdfY3RsIC1EICREQVRBIC1sICREQVRBL2xvZ2Zp bGUgc3RhcnQKCnB5dGhvbjMgbXVsdGl4aWRzLnB5IEZPTwpweXRob24zIG11bHRpeGlkcy5weSBC QVIKcHl0aG9uMyBtdWx0aXhpZHMucHkgQkFaCnB5dGhvbjMgbXVsdGl4aWRzLnB5IFFVWAoKJE9M REJJTi9iaW4vcGdfY3RsIC1EICREQVRBIHN0b3AKCiMgb2Zmc2V0IHdyYXAKREFUQT0kVFJHL29m ZnNldC13cmFwCiRPTERCSU4vYmluL2luaXRkYiAtLW5vLWluc3RydWN0aW9ucyAtRCAkREFUQQok T0xEQklOL2Jpbi9wZ19yZXNldHdhbCAtTyAweEZGRkFFMDA3IC1EICREQVRBCmRkIGlmPS9kZXYv emVybyBvZj0kREFUQS9wZ19tdWx0aXhhY3QvbWVtYmVycy8xNDA3MSBicz04MTkyIGNvdW50PTMy CiRPTERCSU4vYmluL3BnX2N0bCAtRCAkREFUQSAtbCAkREFUQS9sb2dmaWxlIHN0YXJ0IHx8IGV4 aXQgMQoKcHl0aG9uMyBtdWx0aXhpZHMucHkgRk9PCnB5dGhvbjMgbXVsdGl4aWRzLnB5IEJBUgpw eXRob24zIG11bHRpeGlkcy5weSBCQVoKcHl0aG9uMyBtdWx0aXhpZHMucHkgUVVYCgokT0xEQklO L2Jpbi9wZ19jdGwgLUQgJERBVEEgc3RvcAoKIyBtdWx0aSB3cmFwCkRBVEE9JFRSRy9tdWx0aS13 cmFwCiRPTERCSU4vYmluL2luaXRkYiAtLW5vLWluc3RydWN0aW9ucyAtRCAkREFUQQokT0xEQklO L2Jpbi9wZ19yZXNldHdhbCAtbSAweEZGRkVGOTIxLDB4RkZGRUY5MjAgLUQgJERBVEEKZGQgaWY9 L2Rldi96ZXJvIG9mPSREQVRBL3BnX211bHRpeGFjdC9vZmZzZXRzL0ZGRkUgYnM9ODE5MiBjb3Vu dD0zMgokT0xEQklOL2Jpbi9wZ19jdGwgLUQgJERBVEEgLWwgJERBVEEvbG9nZmlsZSBzdGFydCB8 fCBleGl0IDEKCnB5dGhvbjMgbXVsdGl4aWRzLnB5IEZPTwpweXRob24zIG11bHRpeGlkcy5weSBC QVIKcHl0aG9uMyBtdWx0aXhpZHMucHkgQkFaCnB5dGhvbjMgbXVsdGl4aWRzLnB5IFFVWApweXRo b24zIG11bHRpeGlkcy5weSBYVVEKCiRPTERCSU4vYmluL3BnX2N0bCAtRCAkREFUQSBzdG9wCgoj IG9mZnNldCBhbmQgbXVsdGkgd3JhcApEQVRBPSRUUkcvb2Zmc2V0LW11bHRpLXdyYXAKJE9MREJJ Ti9iaW4vaW5pdGRiIC0tbm8taW5zdHJ1Y3Rpb25zIC1EICREQVRBCiRPTERCSU4vYmluL3BnX3Jl c2V0d2FsIC1tIDB4RkZGRUY5MjEsMHhGRkZFRjkyMCAtTyAweEZGRkFFMDA3IC1EICREQVRBCmRk IGlmPS9kZXYvemVybyBvZj0kREFUQS9wZ19tdWx0aXhhY3QvbWVtYmVycy8xNDA3MSBicz04MTky IGNvdW50PTMyCmRkIGlmPS9kZXYvemVybyBvZj0kREFUQS9wZ19tdWx0aXhhY3Qvb2Zmc2V0cy9G RkZFIGJzPTgxOTIgY291bnQ9MzIKJE9MREJJTi9iaW4vcGdfY3RsIC1EICREQVRBIC1sICREQVRB L2xvZ2ZpbGUgc3RhcnQgfHwgZXhpdCAxCgojIGZpeHVwIGRiClNRTD0idXBkYXRlIHBnX2RhdGFi YXNlIHNldApkYXRtaW5teGlkPSc0Mjk0OTAwMDAxJwp3aGVyZSBkYXRuYW1lPSd0ZW1wbGF0ZTAn IgokT0xEQklOL2Jpbi9wc3FsIC1jIiRTUUwiIHBvc3RncmVzCiRPTERCSU4vYmluL3ZhY3V1bWRi IC1hIC1GIC0tZGlzYWJsZS1wYWdlLXNraXBwaW5nIAoKcHl0aG9uMyBtdWx0aXhpZHMucHkgRk9P CnB5dGhvbjMgbXVsdGl4aWRzLnB5IEJBUgpweXRob24zIG11bHRpeGlkcy5weSBCQVoKcHl0aG9u MyBtdWx0aXhpZHMucHkgUVVYCgokT0xEQklOL2Jpbi9wZ19jdGwgLUQgJERBVEEgc3RvcAo= --0000000000004115440626ef8a3d Content-Type: application/x-sh; name="test.sh" Content-Disposition: attachment; filename="test.sh" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m3ihdva72 IyEvYmluL3NoCgppZiBbIC16ICIkT0xEQklOIiBdCnRoZW4KCWVjaG8gIlNldCBlbnYgT0xEQklO LiIKZmkKCmlmIFsgLXogIiRORVdCSU4iIF0KdGhlbgoJZWNobyAiU2V0IGVudiBORVdCSU4uIgpm aQoKVFJHPWBwd2RgL2RhdGEKZWNobyAiVXNlIG91dHB1dCBkaXI6ICRUUkciCgpkb191cGdyYWRl KCkKewoJT0xEX0ZPTz0ib2xkLWZvby50bXAiCglPTERfQkFSPSJvbGQtYmFyLnRtcCIKCU9MRF9C QVo9Im9sZC1iYXoudG1wIgoJTkVXX0ZPTz0ibmV3LWZvby50bXAiCglORVdfQkFSPSJuZXctYmFy LnRtcCIKCU5FV19CQVo9Im5ldy1iYXoudG1wIgoJJE9MREJJTi9iaW4vcGdfY3RsIC1EICREQVRB IC1sICREQVRBL2xvZ2ZpbGUgc3RhcnQKCSRPTERCSU4vYmluL3BzcWwgLWMgIlNFTEVDVCAqIEZS T00gRk9PIiBwb3N0Z3JlcyA+ICRPTERfRk9PCgkkT0xEQklOL2Jpbi9wc3FsIC1jICJTRUxFQ1Qg KiBGUk9NIEJBUiIgcG9zdGdyZXMgPiAkT0xEX0JBUgoJJE9MREJJTi9iaW4vcHNxbCAtYyAiU0VM RUNUICogRlJPTSBCQVoiIHBvc3RncmVzID4gJE9MRF9CQVoKCSRPTERCSU4vYmluL3BnX2N0bCAt RCAkREFUQSBzdG9wCgoJJE5FV0JJTi9iaW4vaW5pdGRiIC0tbm8taW5zdHJ1Y3Rpb25zIC1EICRO RVdEQVRBCgkkTkVXQklOL2Jpbi9wZ191cGdyYWRlCQkJCVwKCQktZCAkREFUQSAtRCAkTkVXREFU QQkJCVwKCQktYiAkT0xEQklOL2JpbiAtQiAkTkVXQklOL2JpbglcCgkJLS1jb3B5CgkkTkVXQklO L2Jpbi9wZ19jdGwgLUQgJE5FV0RBVEEgLWwgJE5FV0RBVEEvbG9nZmlsZSBzdGFydCB8fCBleGl0 IDEKCSRORVdCSU4vYmluL3BzcWwgLWMgIlNFTEVDVCAqIEZST00gRk9PIiBwb3N0Z3JlcyA+ICRO RVdfRk9PIHx8IGV4aXQgMQoJJE5FV0JJTi9iaW4vcHNxbCAtYyAiU0VMRUNUICogRlJPTSBCQVIi IHBvc3RncmVzID4gJE5FV19CQVIgfHwgZXhpdCAxCgkkTkVXQklOL2Jpbi9wc3FsIC1jICJTRUxF Q1QgKiBGUk9NIEJBWiIgcG9zdGdyZXMgPiAkTkVXX0JBWiB8fCBleGl0IDEKCSRORVdCSU4vYmlu L3BnX2N0bCAtRCAkTkVXREFUQSBzdG9wCgoJaWYgISBkaWZmIC0tc3VwcHJlc3MtY29tbW9uLWxp bmVzICRPTERfRk9PICRORVdfRk9PCgl0aGVuCgkJZWNobyAiPj4+IEZBSUwgLSBGT08gPDw8IgoJ CWV4aXQgMQoJZmkKCglpZiAhIGRpZmYgLS1zdXBwcmVzcy1jb21tb24tbGluZXMgJE9MRF9CQVIg JE5FV19CQVIKCXRoZW4KCQllY2hvICI+Pj4gRkFJTCAtIEJBUiA8PDwiCgkJZXhpdCAxCglmaQoK CWlmICEgZGlmZiAtLXN1cHByZXNzLWNvbW1vbi1saW5lcyAkT0xEX0JBWiAkTkVXX0JBWgoJdGhl bgoJCWVjaG8gIj4+PiBGQUlMIC0gQkFaIDw8PCIKCQlleGl0IDEKCWZpCglybSAkT0xEX0ZPTyAk T0xEX0JBUiAkT0xEX0JBWiAkTkVXX0ZPTyAkTkVXX0JBUiAkTkVXX0JBWgp9CgojIHNpbXBsZQpE QVRBPSRUUkcvc2ltcGxlCk5FV0RBVEE9JFRSRy9zaW1wbGUtbmV3CnJtIC1mIC1SICRORVdEQVRB CmRvX3VwZ3JhZGUKCiMgb2Zmc2V0IHdyYXAKREFUQT0kVFJHL29mZnNldC13cmFwCk5FV0RBVEE9 JFRSRy9vZmZzZXQtd3JhcC1uZXcKcm0gLWYgLVIgJE5FV0RBVEEKZG9fdXBncmFkZQoKIyBtdWx0 aSB3cmFwCkRBVEE9JFRSRy9tdWx0aS13cmFwCk5FV0RBVEE9JFRSRy9tdWx0aS13cmFwLW5ldwpy bSAtZiAtUiAkTkVXREFUQQpkb191cGdyYWRlCgojIG9mZnNldCBhbmQgbXVsdGkgd3JhcApEQVRB PSRUUkcvb2Zmc2V0LW11bHRpLXdyYXAKTkVXREFUQT0kVFJHL29mZnNldC1tdWx0aS13cmFwLW5l dwpybSAtZiAtUiAkTkVXREFUQQpkb191cGdyYWRlCgplY2hvICI+Pj4gU1VDQ0VTUyA8PDwiCg== --0000000000004115440626ef8a3d--