Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1b5Egg-00081U-6a for pgadmin-hackers@arkaria.postgresql.org; Tue, 24 May 2016 15:56:06 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1b5Egf-0007vf-OH for pgadmin-hackers@arkaria.postgresql.org; Tue, 24 May 2016 15:56:05 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1b5Ege-0007vT-Cl for pgadmin-hackers@postgresql.org; Tue, 24 May 2016 15:56:04 +0000 Received: from mail-io0-x232.google.com ([2607:f8b0:4001:c06::232]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1b5EgY-0003uy-Jn for pgadmin-hackers@postgresql.org; Tue, 24 May 2016 15:56:03 +0000 Received: by mail-io0-x232.google.com with SMTP id f8so14778576ioe.3 for ; Tue, 24 May 2016 08:55:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pgadmin-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc; bh=gEA4xXvanGL1KOqpgEXxBzL+HWenAZsFwd7PC2foYDQ=; b=urTkCOF6SEuAwAspoR57qilAC2+DOlWsmqA0UbEwm++VdNxSW5PVHMxXrGG6k/KfY1 s2j6ZLo48cordIFue6UsqfvFbNGpIkrQTOFiuEBb+F/NfNGFFe3KDoJHsvcNDZ+JQ8DA lN3ztm+FUoeO0s0lTAntwBM1w8225+Evwnfxd/TMrVUfpAUHff2Z4k5zhn7uD821Om+x bM9LEToE15yc9G7dTU0FZlyvdH8OQaCUSh19Eh+03rfIu2pR6Rt55AbNmH+OAPa5FtEy qAsTgpLGiZGp4OSg4QkebTzg9cLgXvCnwmAo6Be+CtTxwFtumZ5HNunWRNakybfFQweH q0bg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc; bh=gEA4xXvanGL1KOqpgEXxBzL+HWenAZsFwd7PC2foYDQ=; b=cDbv8hfwk25URsWKZjYuShWcNbx5eO1nIAxDRMUOwzxlvWGAsir8+iAOkBzqcbMPMW gXfa7es3iTxCrQL61NPto9N7CPSW7pj5LPYCmgPAhOO+g8A2If5OZw19kpva0d3xQsae gCGlbydocEFRjLwR0itPZuR78por2kkB7w5N+GipSbDJjVBtjZOSpqdCfqMzXy1oKzrG WLRcpIkksRXGFyNg+phNiilo/tgXJb+HJbbKNGwPwE7ZKXkHRkP9/OWvz3vYI1xe+OQz tnRVbXN6lWwIK+kIhlcRUxpT/GRpEwdqiXCDQY7ZkOnDtNL4uhQsRv3NzRVyROIVisYF kiOg== X-Gm-Message-State: ALyK8tK0Am9BRFBn4UGcAqF4jur08DnKD1axAWVDRCn7102rnoGgJGqsn4/uQBaKsQ4uM5iZ0Xygl7/caoO/bw== MIME-Version: 1.0 X-Received: by 10.107.3.89 with SMTP id 86mr7334622iod.156.1464105356397; Tue, 24 May 2016 08:55:56 -0700 (PDT) Received: by 10.64.236.101 with HTTP; Tue, 24 May 2016 08:55:56 -0700 (PDT) In-Reply-To: References: Date: Tue, 24 May 2016 16:55:56 +0100 Message-ID: Subject: Re: Patch for pgAdmin4 package on Mac OS X From: Dave Page To: Sandeep Thakkar Cc: Paresh More , pgadmin-hackers , Hamid Quddus Content-Type: multipart/mixed; boundary=001a113fc002af9e9c05339897f3 X-Pg-Spam-Score: -2.6 (--) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgadmin-hackers Precedence: bulk Sender: pgadmin-hackers-owner@postgresql.org --001a113fc002af9e9c05339897f3 Content-Type: text/plain; charset=UTF-8 Hi Attached is an updated patch in which I made some minor changes, most significantly, to stop the build script from over-writing my configuration file (again)! There are a couple of important issues to be resolved: 1) It doesn't work. When testing on Karen's machine (which is new, and doesn't have any dev environment etc), it errors out because it looks like it cannot find the virtual environment. 2) It's *huge* - like 650MB!! I believe we're bundling much of QT which isn't required. Please only copy what is needed. Thanks! On Mon, May 23, 2016 at 7:22 AM, Sandeep Thakkar wrote: > Hi Dave > > I have fixed this issue. Instead of getting path from otool, script now uses > QTDIR variable to copy the framework directory. Please find the updated > patch attached. > > Thanks. > > On Thu, May 19, 2016 at 7:39 PM, Dave Page wrote: >> >> On Thu, May 19, 2016 at 10:05 AM, Sandeep Thakkar >> wrote: >> > Hmm.. looks like some difference in the QT installation. >> > >> > Can you please provide me the otool -L output for pgAdmin4 from >> > /mac-build/pgAdmin4.app/Contents/MacOS/pgAdmin4 >> >> (pgadmin4)snake:pgadmin4 dpage$ otool -L >> mac-build/pgAdmin4.app/Contents/MacOS/pgAdmin4 >> mac-build/pgAdmin4.app/Contents/MacOS/pgAdmin4: >> /System/Library/Frameworks/Python.framework/Versions/2.7/Python >> (compatibility version 2.7.0, current version 2.7.10) >> /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current >> version 1226.10.1) >> >> /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation >> (compatibility version 150.0.0, current version 1258.1.0) >> @rpath/QtWebKitWidgets.framework/Versions/5/QtWebKitWidgets >> (compatibility version 5.5.0, current version 5.5.1) >> @rpath/QtWidgets.framework/Versions/5/QtWidgets (compatibility version >> 5.5.0, current version 5.5.1) >> @rpath/QtGui.framework/Versions/5/QtGui (compatibility version 5.5.0, >> current version 5.5.1) >> @rpath/QtCore.framework/Versions/5/QtCore (compatibility version >> 5.5.0, current version 5.5.1) >> >> /System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration >> (compatibility version 1.0.0, current version 1.0.0) >> /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit >> (compatibility version 1.0.0, current version 275.0.0) >> @rpath/QtWebKit.framework/Versions/5/QtWebKit (compatibility version >> 5.5.0, current version 5.5.1) >> @rpath/QtNetwork.framework/Versions/5/QtNetwork (compatibility version >> 5.5.0, current version 5.5.1) >> /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL >> (compatibility version 1.0.0, current version 1.0.0) >> /System/Library/Frameworks/AGL.framework/Versions/A/AGL (compatibility >> version 1.0.0, current version 1.0.0) >> /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current >> version 104.1.0) >> >> > >> > and also the tree for $QTDIR/lib >> >> Attached. >> >> Also, my config database now seems to be trashed since I ran "make >> appbundle" :-( >> >> >> -- >> Dave Page >> Blog: http://pgsnake.blogspot.com >> Twitter: @pgsnake >> >> EnterpriseDB UK: http://www.enterprisedb.com >> The Enterprise PostgreSQL Company > > > > > -- > Sandeep Thakkar > -- Dave Page Blog: http://pgsnake.blogspot.com Twitter: @pgsnake EnterpriseDB UK: http://www.enterprisedb.com The Enterprise PostgreSQL Company --001a113fc002af9e9c05339897f3 Content-Type: text/plain; charset=US-ASCII; name="pgadmin-mac-appbundle-dave.diff" Content-Disposition: attachment; filename="pgadmin-mac-appbundle-dave.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_iolmdmbr1 SW5kZXg6IHBrZy9tYWMvLmdpdGlnbm9yZQpJREVBIGFkZGl0aW9uYWwgaW5m bzoKU3Vic3lzdGVtOiBjb20uaW50ZWxsaWoub3BlbmFwaS5kaWZmLmltcGwu cGF0Y2guQ2hhcnNldEVQCjwrPlVURi04Cj09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tIHBrZy9tYWMvLmdpdGlnbm9yZQkocmV2aXNpb24gKQorKysgcGtn L21hYy8uZ2l0aWdub3JlCShyZXZpc2lvbiApCkBAIC0wLDAgKzEsMyBAQAor IyBHbG9iYWwgZXhjbHVkZXMgYWNyb3NzIGFsbCBzdWJkaXJlY3Rvcmllcwor ZGVidWcucGdhZG1pbi5JbmZvLnBsaXN0CitwZ2FkbWluLkluZm8ucGxpc3QK SW5kZXg6IC5naXRpZ25vcmUKSURFQSBhZGRpdGlvbmFsIGluZm86ClN1YnN5 c3RlbTogY29tLmludGVsbGlqLm9wZW5hcGkuZGlmZi5pbXBsLnBhdGNoLkNo YXJzZXRFUAo8Kz5VVEYtOAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSAu Z2l0aWdub3JlCShyZXZpc2lvbiA4YzA3N2JjMmRmZDJkZGE0YmQzYjVlMTMz OGE2ZDYwYjQwNGJhNzhmKQorKysgLmdpdGlnbm9yZQkocmV2aXNpb24gKQpA QCAtMjQsNCArMjQsNSBAQAogL3BnYWRtaW40LmVnZy1pbmZvCiAvTUFOSUZF U1QuaW4KIC9idWlsZAorL21hYy1idWlsZAogL2Rpc3QKSW5kZXg6IHBrZy9t YWMvcGdhZG1pbi5JbmZvLnBsaXN0LmluCklERUEgYWRkaXRpb25hbCBpbmZv OgpTdWJzeXN0ZW06IGNvbS5pbnRlbGxpai5vcGVuYXBpLmRpZmYuaW1wbC5w YXRjaC5DaGFyc2V0RVAKPCs+VVRGLTgKPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0gcGtnL21hYy9wZ2FkbWluLkluZm8ucGxpc3QuaW4JKHJldmlzaW9u ICkKKysrIHBrZy9tYWMvcGdhZG1pbi5JbmZvLnBsaXN0LmluCShyZXZpc2lv biApCkBAIC0wLDAgKzEsMjggQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5j b2Rpbmc9IlVURi04Ij8+Cis8IURPQ1RZUEUgcGxpc3QgUFVCTElDICItLy9B cHBsZSBDb21wdXRlci8vRFREIFBMSVNUIDEuMC8vRU4iICJodHRwOi8vd3d3 LmFwcGxlLmNvbS9EVERzL1Byb3BlcnR5TGlzdC0xLjAuZHRkIj4KKzxwbGlz dCB2ZXJzaW9uPSIxLjAiPgorPGRpY3Q+CisJPGtleT5DRkJ1bmRsZURldmVs b3BtZW50UmVnaW9uPC9rZXk+CisJPHN0cmluZz5FbmdsaXNoPC9zdHJpbmc+ CisJPGtleT5DRkJ1bmRsZUV4ZWN1dGFibGU8L2tleT4KKwk8c3RyaW5nPnBn QWRtaW40PC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZUdldEluZm9TdHJpbmc8 L2tleT4KKwk8c3RyaW5nPnBnQWRtaW40IFBHQURNSU5fTE9OR19WRVJTSU9O PC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZUljb25GaWxlPC9rZXk+CisJPHN0 cmluZz5wZ0FkbWluNC5pY25zPC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZUlk ZW50aWZpZXI8L2tleT4KKwk8c3RyaW5nPm9yZy5wb3N0Z3Jlc3FsLnBnYWRt aW48L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlSW5mb0RpY3Rpb25hcnlWZXJz aW9uPC9rZXk+CisJPHN0cmluZz42LjA8L3N0cmluZz4KKwk8a2V5PkNGQnVu ZGxlUGFja2FnZVR5cGU8L2tleT4KKwk8c3RyaW5nPkFQUEw8L3N0cmluZz4K Kwk8a2V5PkNGQnVuZGxlU2hvcnRWZXJzaW9uU3RyaW5nPC9rZXk+CisJPHN0 cmluZz5QR0FETUlOX1NIT1JUX1ZFUlNJT048L3N0cmluZz4KKwk8a2V5PkNG QnVuZGxlU2lnbmF0dXJlPC9rZXk+CisJPHN0cmluZz4/Pz8/PC9zdHJpbmc+ CisJPGtleT5DRkJ1bmRsZVZlcnNpb248L2tleT4KKwk8c3RyaW5nPlBHQURN SU5fTE9OR19WRVJTSU9OPC9zdHJpbmc+CisJPGtleT5DU1Jlc291cmNlc0Zp bGVNYXBwZWQ8L2tleT4KKwk8dHJ1ZS8+Cis8L2RpY3Q+Cis8L3BsaXN0PgpJ bmRleDogcGtnL21hYy9Qa2dJbmZvCklERUEgYWRkaXRpb25hbCBpbmZvOgpT dWJzeXN0ZW06IGNvbS5pbnRlbGxpai5vcGVuYXBpLmRpZmYuaW1wbC5wYXRj aC5DaGFyc2V0RVAKPCs+VVRGLTgKPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0gcGtnL21hYy9Qa2dJbmZvCShyZXZpc2lvbiApCisrKyBwa2cvbWFjL1Br Z0luZm8JKHJldmlzaW9uICkKQEAgLTAsMCArMSwxIEBACitBUFBMPz8/Pwpc IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IHBrZy9tYWMvY3Jl YXRlLWRtZy5zaApJREVBIGFkZGl0aW9uYWwgaW5mbzoKU3Vic3lzdGVtOiBj b20uaW50ZWxsaWoub3BlbmFwaS5kaWZmLmltcGwucGF0Y2guQ2hhcnNldEVQ CjwrPlVURi04Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHBrZy9tYWMv Y3JlYXRlLWRtZy5zaAkocmV2aXNpb24gKQorKysgcGtnL21hYy9jcmVhdGUt ZG1nLnNoCShyZXZpc2lvbiApCkBAIC0wLDAgKzEsMzYgQEAKKyMhL2Jpbi9z aAorCisjIG1vdmUgdG8gdGhlIGRpcmVjdG9yeSB3aGVyZSB3ZSBoYXZlIHRo ZSBETUcgU291cmNlcworY2QgZGlzdAorCitETUdfU09VUkNFUz0iLi9wZ0Fk bWluNC5hcHAiCitETUdfTElDRU5DRT0uLy4uL3BrZy9tYWMvbGljZW5jZS5y CitETUdfSU1BR0U9cGdBZG1pbjQuZG1nCitETUdfTkFNRT1wZ0FkbWluNAor SERJVVRJTD0vdXNyL2Jpbi9oZGl1dGlsCitSRVo9Ii91c3IvYmluL1JleiAv U3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9DYXJib24uZnJhbWV3b3JrL1Zl cnNpb25zL0EvSGVhZGVycy8qLnIiCisKK0RNR19ESVI9Li8kRE1HX0lNQUdF LnNyYworCitpZiB0ZXN0IC1lICIkRE1HX0RJUiI7IHRoZW4KKwllY2hvICJE aXJlY3RvcnkgJERNR19ESVIgYWxyZWFkeSBleGlzdHMuIFBsZWFzZSBkZWxl dGUgaXQgbWFudWFsbHkuIiA+JjIKKwlleGl0IDEKK2ZpCisKK2VjaG8gIkNs ZWFuaW5nIHVwIgorcm0gLWYgIiRETUdfSU1BR0UiIHx8IGV4aXQgMQorbWtk aXIgIiRETUdfRElSIiB8fCBleGl0IDEKKworZWNobyAiQ29weWluZyBkYXRh IGludG8gdGVtcG9yYXJ5IGRpcmVjdG9yeSIKK2ZvciBzcmMgaW4gJERNR19T T1VSQ0VTOyBkbworCWNwIC1SICIkc3JjIiAiJERNR19ESVIiIHx8IGV4aXQg MQorZG9uZQorCitlY2hvICJDcmVhdGluZyBpbWFnZSIKKyRIRElVVElMIGNy ZWF0ZSAtcXVpZXQgLXNyY2ZvbGRlciAiJERNR19ESVIiIC1mb3JtYXQgVURa TyAtdm9sbmFtZSAiJERNR19OQU1FIiAtb3YgIiRETUdfSU1BR0UiIHx8IGV4 aXQgMQorcm0gLXJmICIkRE1HX0RJUiIgfHwgZXhpdCAxCisKK2VjaG8gIkF0 dGFjaGluZyBMaWNlbnNlIHRvIGltYWdlIgorJEhESVVUSUwgdW5mbGF0dGVu IC1xdWlldCAiJERNR19JTUFHRSIgfHwgZXhpdCAxCiskUkVaICIkRE1HX0xJ Q0VOQ0UiIC1hIC1vICIkRE1HX0lNQUdFIiB8fCBleGl0IDEKKyRIRElVVElM IGZsYXR0ZW4gLXF1aWV0ICIkRE1HX0lNQUdFIiB8fCBleGl0IDEKSW5kZXg6 IHBrZy9tYWMvYnVpbGQuc2gKSURFQSBhZGRpdGlvbmFsIGluZm86ClN1YnN5 c3RlbTogY29tLmludGVsbGlqLm9wZW5hcGkuZGlmZi5pbXBsLnBhdGNoLkNo YXJzZXRFUAo8Kz5VVEYtOAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBw a2cvbWFjL2J1aWxkLnNoCShyZXZpc2lvbiApCisrKyBwa2cvbWFjL2J1aWxk LnNoCShyZXZpc2lvbiApCkBAIC0wLDAgKzEsMTQ2IEBACisjIS9iaW4vYmFz aAorCisjIEJ1aWxkIHNjcmlwdCB0byBjcmVhdGUgTWFjIEFwcCBCdW5kbGUg YW5kIERNRyBmb3IgcGdBZG1pbjQgcnVudGltZQorCitleHBvcnQgV0Q9JChj ZCBgZGlybmFtZSAkMGAgJiYgcHdkKQorZXhwb3J0IFNPVVJDRURJUj0kV0Qv Li4vLi4KK2V4cG9ydCBCVUlMRFJPT1Q9JFdELy4uLy4uL21hYy1idWlsZAor ZXhwb3J0IERJU1RST09UPSRXRC8uLi8uLi9kaXN0CitleHBvcnQgVklSVFVB TEVOVj12ZW52CisKK2lmIFsgIngkUFlUSE9OX0hPTUUiID09ICJ4IiBdOyB0 aGVuCisgICAgZWNobyAiUFlUSE9OX0hPTUUgbm90IHNldC4gU2V0dGluZyBp dCB0byBkZWZhdWx0IgorICAgIGV4cG9ydCBQWVRIT05fSE9NRT0vU3lzdGVt L0xpYnJhcnkvRnJhbWV3b3Jrcy9QeXRob24uZnJhbWV3b3JrL1ZlcnNpb25z LzIuNworICAgIGV4cG9ydCBQWVRIT05fVkVSU0lPTj0yNworZmkKKworIyBD aGVjayBpZiBQeXRob24gaXMgd29ya2luZyBhbmQgY2FsY3VsYXRlIFBZVEhP Tl9WRVJTSU9OCitpZiAkUFlUSE9OX0hPTUUvYmluL3B5dGhvbjIgLVYgPiAv ZGV2L251bGwgMj4mMTsgdGhlbgorICAgIGV4cG9ydCBQWVRIT05fVkVSU0lP Tj1gJFBZVEhPTl9IT01FL2Jpbi9weXRob24yIC1WIDI+JjEgfCBhd2sgJ3tw cmludCAkMn0nIHwgY3V0IC1kIi4iIC1mMS0yIHwgc2VkICdzL1wuLy8nYAor ZWxpZiAkUFlUSE9OX0hPTUUvYmluL3B5dGhvbjMgLVYgPiAvZGV2L251bGwg Mj4mMTsgdGhlbgorICAgIGV4cG9ydCBQWVRIT05fVkVSU0lPTj1gJFBZVEhP Tl9IT01FL2Jpbi9weXRob24zIC1WIDI+JjEgfCBhd2sgJ3twcmludCAkMn0n IHwgY3V0IC1kIi4iIC1mMS0yIHwgc2VkICdzL1wuLy8nYAorZWxzZQorICAg IGVjaG8gIkVycm9yOiBQeXRob24gaW5zdGFsbGF0aW9uIG1pc3NpbmchIgor ICAgIGV4aXQgMQorZmkKKworaWYgWyAiJFBZVEhPTl9WRVJTSU9OIiAtZ3Qg IjM0IiAtYSAiJFBZVEhPTl9WRVJTSU9OIiAtbHQgIjI2IiBdOyB0aGVuCisg ICAgZWNobyAiUHl0aG9uIHZlcnNpb24gbm90IHN1cHBvcnRlZCIKKyAgICBl eGl0IDEKK2ZpCisKK2lmIFsgIiRQWVRIT05fVkVSU0lPTiIgLWdlICIzMCIg XTsgdGhlbgorICAgIGV4cG9ydCBQWVRIT049JFBZVEhPTl9IT01FL2Jpbi9w eXRob24zCisgICAgZXhwb3J0IFBJUD1waXAzCisgICAgZXhwb3J0IFJFUVVJ UkVNRU5UUz1yZXF1aXJlbWVudHNfcHkzLnR4dAorZWxzZQorICAgIGV4cG9y dCBQWVRIT049JFBZVEhPTl9IT01FL2Jpbi9weXRob24yCisgICAgZXhwb3J0 IFBJUD1waXAKKyAgICBleHBvcnQgUkVRVUlSRU1FTlRTPXJlcXVpcmVtZW50 c19weTIudHh0CitmaQorCitpZiBbICJ4JFFURElSIiA9PSAieCIgXTsgdGhl bgorICAgIGVjaG8gIlFURElSIG5vdCBzZXQuIFNldHRpbmcgaXQgdG8gZGVm YXVsdCAofi9RdC81LjUvY2xhbmdfNjQpIgorICAgIGV4cG9ydCBRVERJUj1+ L1F0LzUuNS9jbGFuZ182NAorZmkKK2V4cG9ydCBRTUFLRT0kUVRESVIvYmlu L3FtYWtlCitpZiAhICRRTUFLRSAtLXZlcnNpb24gPiAvZGV2L251bGwgMj4m MTsgdGhlbgorICAgIGVjaG8gIkVycm9yOiBxbWFrZSBub3QgZm91bmQuIFFU IGluc3RhbGxhdGlvbiBpcyBub3QgcHJlc2VudCBvciBpbmNvbXBsZXRlLiIK KyAgICBleGl0IDEKK2ZpCisKK2lmIFsgIngkUEdESVIiID09ICJ4IiBdOyB0 aGVuCisgICAgZWNobyAiUEdESVIgbm90IHNldC4gU2V0dGluZyBpdCB0byBk ZWZhdWx0ICgvdXNyL2xvY2FsL3Bnc3FsKSIKKyAgICBleHBvcnQgUEdESVI9 L3Vzci9sb2NhbC9wZ3NxbAorZmkKK2V4cG9ydCBQQVRIPSRQR0RJUi9iaW46 JFBBVEgKKworX2dldF92ZXJzaW9uKCkgeworICAgIGV4cG9ydCBwZ2FkbWlu NF9yZWxlYXNlPWBncmVwICJeQVBQX1JFTEVBU0UiIHdlYi9jb25maWcucHkg fCBjdXQgLWQiPSIgLWYyIHwgc2VkICdzLyAvL2cnYAorICAgIGV4cG9ydCBw Z2FkbWluNF9yZXZpc2lvbj1gZ3JlcCAiXkFQUF9SRVZJU0lPTiIgd2ViL2Nv bmZpZy5weSB8IGN1dCAtZCI9IiAtZjIgfCBzZWQgJ3MvIC8vZydgCisgICAg ZXhwb3J0IExPTkdfVkVSPSRwZ2FkbWluNF9yZWxlYXNlLiRwZ2FkbWluNF9y ZXZpc2lvbgorICAgIGV4cG9ydCBTSE9SVF9WRVI9YGVjaG8gJExPTkdfVkVS IHwgY3V0IC1kIC4gLWYxLDJgCisgICAgZXhwb3J0IHBnYWRtaW40X3N1ZmZp eD1gZ3JlcCAiXkFQUF9TVUZGSVgiIHdlYi9jb25maWcucHkgfCBjdXQgLWQi PSIgLWYyIHwgc2VkICdzLyAvL2cnIHwgc2VkICJzLycvL2ciYAorICAgIGlm IFsgISAteiAkcGdhZG1pbjRfc3VmZml4IF07IHRoZW4KKyAgICAgICAgZXhw b3J0IExPTkdfVkVSPSRMT05HX1ZFUi0kcGdhZG1pbjRfc3VmZml4CisgICAg ZmkKK30KKworX2NsZWFudXAoKSB7CisgICAgZWNobyAiQ2xlYW5pbmcgdXAg dGhlIG9sZCBlbnZpcm9ubWVudCBhbmQgYXBwIGJ1bmRsZSIKKyAgICBybSAt cmYgJFNPVVJDRURJUi9ydW50aW1lL3BnQWRtaW40LmFwcAorICAgIHJtIC1y ZiAkQlVJTERST09UCisgICAgcm0gLXJmICRESVNUUk9PVC9wZ0FkbWluNC5h cHAKKyAgICBybSAtZiAkRElTVFJPT1QvcGdBZG1pbjQuZG1nCit9CisKK19j cmVhdGVfcHl0aG9uX3ZpcnR1YWxlbnYoKSB7CisgICAgdGVzdCAtZCAkQlVJ TERST09UIHx8IG1rZGlyICRCVUlMRFJPT1QgfHwgZXhpdCAxCisgICAgY2Qg JEJVSUxEUk9PVAorICAgIHRlc3QgLWQgJFZJUlRVQUxFTlYgfHwgdmlydHVh bGVudiAtcCAkUFlUSE9OICRWSVJUVUFMRU5WIHx8IGV4aXQgMQorICAgIHNv dXJjZSAkVklSVFVBTEVOVi9iaW4vYWN0aXZhdGUKKyAgICAkUElQIGluc3Rh bGwgLXIgJFNPVVJDRURJUi8kUkVRVUlSRU1FTlRTIHx8IHsgZWNobyBQSVAg aW5zdGFsbCBmYWlsZWQuIFBsZWFzZSByZXNvbHZlIHRoZSBpc3N1ZSBhbmQg cmVydW4gdGhlIHNjcmlwdDsgZXhpdCAxOyB9Cit9CisKK19idWlsZF9ydW50 aW1lKCkgeworICAgIF9jcmVhdGVfcHl0aG9uX3ZpcnR1YWxlbnYgfHwgZXhp dCAxCisgICAgY2QgJFNPVVJDRURJUi9ydW50aW1lCisgICAgJFFNQUtFIHx8 IHsgZWNobyBxbWFrZSBmYWlsZWQ7IGV4aXQgMTsgfQorICAgIG1ha2UgfHwg eyBlY2hvIG1ha2UgZmFpbGVkOyBleGl0IDE7IH0KKyAgICBjcCAtciBwZ0Fk bWluNC5hcHAgJEJVSUxEUk9PVAorfQorCitfYnVpbGRfZG9jKCkgeworICAg IGNkICRTT1VSQ0VESVIvZG9jcy9lbl9VUworICAgIHRlc3QgLWQgJEJVSUxE Uk9PVC9wZ0FkbWluNC5hcHAvQ29udGVudHMvUmVzb3VyY2VzIHx8IG1rZGly IC1wICRCVUlMRFJPT1QvcGdBZG1pbjQuYXBwL0NvbnRlbnRzL1Jlc291cmNl cworICAgIHRlc3QgLWQgJEJVSUxEUk9PVC9wZ0FkbWluNC5hcHAvQ29udGVu dHMvUmVzb3VyY2VzL2RvY3MvZW5fVVMgfHwgbWtkaXIgLXAgJEJVSUxEUk9P VC9wZ0FkbWluNC5hcHAvQ29udGVudHMvUmVzb3VyY2VzL2RvY3MvZW5fVVMK KyAgICBjcCAtciBfYnVpbGQvaHRtbCAkQlVJTERST09UL3BnQWRtaW40LmFw cC9Db250ZW50cy9SZXNvdXJjZXMvZG9jcy9lbl9VUy8gfHwgZXhpdCAxCit9 CisKK19jb21wbGV0ZV9idW5kbGUoKSB7CisgICAgY2QgJFNPVVJDRURJUi9w a2cvbWFjCisgICAgCisgICAgIyBSZXBsYWNlIHRoZSBwbGFjZSBob2xkZXJz IHdpdGggdGhlIGN1cnJlbnQgdmVyc2lvbgorICAgIHNlZCAtZSAicy9QR0FE TUlOX0xPTkdfVkVSU0lPTi8kTE9OR19WRVIvZyIgLWUgInMvUEdBRE1JTl9T SE9SVF9WRVJTSU9OLyRTSE9SVF9WRVIvZyIgcGdhZG1pbi5JbmZvLnBsaXN0 LmluID4gcGdhZG1pbi5JbmZvLnBsaXN0CisKKyAgICAjIGNvcHkgUHl0aG9u IHByaXZhdGUgZW52aXJvbm1lbnQgdG8gYXBwIGJ1bmRsZQorICAgIGNwIC1Q UiAkQlVJTERST09ULyRWSVJUVUFMRU5WICRCVUlMRFJPT1QvcGdBZG1pbjQu YXBwL0NvbnRlbnRzL1Jlc291cmNlcy8gfHwgZXhpdCAxCisKKyAgICAjIHJl bW92ZSB0aGUgcHl0aG9uIGJpbiBhbmQgaW5jbHVkZSBmcm9tIGFwcCBidW5k bGUgYXMgaXQgaXMgbm90IG5lZWRlZAorICAgIHJtIC1yZiAkQlVJTERST09U L3BnQWRtaW40LmFwcC9Db250ZW50cy9SZXNvdXJjZXMvJFZJUlRVQUxFTlYv YmluICRCVUlMRFJPT1QvcGdBZG1pbjQuYXBwL0NvbnRlbnRzL1Jlc291cmNl cy8kVklSVFVBTEVOVi9pbmNsdWRlCisgICAgcm0gLXJmICRCVUlMRFJPT1Qv cGdBZG1pbjQuYXBwL0NvbnRlbnRzL1Jlc291cmNlcy8kVklSVFVBTEVOVi8u UHl0aG9uCisKKyAgICAjIHJ1biBjb21wbGV0ZS1idW5kbGUgdG8gY29weSB0 aGUgZGVwZW5kZW50IGxpYnJhcmllcyBhbmQgZnJhbWV3b3JrcyBhbmQgZml4 IHRoZSBycGF0aHMKKyAgICAuL2NvbXBsZXRlLWJ1bmRsZS5zaCAkQlVJTERS T09UL3BnQWRtaW40LmFwcCB8fCB7IGVjaG8gY29tcGxldGUtYnVuZGxlLnNo IGZhaWxlZDsgZXhpdCAxOyB9CisKKyAgICAjIFJlbW92ZSB0aGUgdW53YW50 ZWQgUHl0aG9uIHZlcnNpb25zIGZyb20gdGhlIGJ1bmRsZQorICAgIFBZVEhP Tl9ESVJfVE9fS0VFUD1gJEJVSUxEUk9PVC8kVklSVFVBTEVOVi9iaW4vcHl0 aG9uIC1WIDI+JjEgfCBhd2sgJ3twcmludCAkMn0nIHwgY3V0IC1kIi4iIC1m MS0yYAorICAgIGlmIFsgISAteiAkUFlUSE9OX0RJUl9UT19LRUVQIF07IHRo ZW4KKyAgICAgICAgZmluZCAkQlVJTERST09UL3BnQWRtaW40LmFwcC9Db250 ZW50cy9GcmFtZXdvcmtzL1B5dGhvbi5mcmFtZXdvcmsvVmVyc2lvbnMvIC1t YXhkZXB0aCAxIC1taW5kZXB0aCAxICEgLW5hbWUgJFBZVEhPTl9ESVJfVE9f S0VFUCB8IGdyZXAgLXYgQ3VycmVudCB8IHhhcmdzIHJtIC1yZgorICAgIGZp CisgCisgICAgIyBjb3B5IHRoZSB3ZWIgZGlyZWN0b3J5IHRvIHRoZSBidW5k bGUgYXMgaXQgaXMgcmVxdWlyZWQgYnkgcnVudGltZQorICAgIGNwIC1yICRT T1VSQ0VESVIvd2ViICRCVUlMRFJPT1QvcGdBZG1pbjQuYXBwL0NvbnRlbnRz L1Jlc291cmNlcy8gfHwgZXhpdCAxCisKKyAgICAjIGNyZWF0ZSB0aGUgY29u ZmlnIGZpbGUKKyAgICBjZCAkU09VUkNFRElSL3dlYgorICAgIHNlZCAtZSAn cztTRVJWRVJfTU9ERSA9IFRydWU7U0VSVkVSX01PREUgPSBGYWxzZTsnIC1l ICJzO0hFTFBfUEFUSCA9IC4qO0hFTFBfUEFUSCA9IFwnLi5cLy4uXC8uLlwv ZG9jc1wvZW5fVVNcL2h0bWxcL1wnOyIgXAorICAgICAgICAkU09VUkNFRElS L3dlYi9jb25maWcucHkgPiAkQlVJTERST09UL3BnQWRtaW40LmFwcC9Db250 ZW50cy9SZXNvdXJjZXMvd2ViL2NvbmZpZy5weQorCisgICAgIyBjb3B5IHRo ZSByZXN1bHRpbmcgYXBwIGJ1bmRsZSB0byB0aGUgZGlzdAorICAgIHRlc3Qg LWQgJERJU1RST09UIHx8IG1rZGlyICRESVNUUk9PVCB8fCBleGl0IDEKKyAg ICBjcCAtcFIgJEJVSUxEUk9PVC9wZ0FkbWluNC5hcHAgJERJU1RST09ULyB8 fCBleGl0IDEKKworfQorCitfY3JlYXRlX2RtZygpIHsKKyAgICBjZCAkU09V UkNFRElSCisgICAgLi9wa2cvbWFjL2NyZWF0ZS1kbWcuc2ggfHwgeyBlY2hv IGNyZWF0ZS1kbWcuc2ggZmFpbGVkOyBleGl0IDE7IH0KK30KKworX2dldF92 ZXJzaW9uIHx8IHsgZWNobyBDb3VsZCBub3QgZ2V0IHZlcnNpb25pbmc7IGV4 aXQgMTsgfQorX2NsZWFudXAKK19idWlsZF9ydW50aW1lIHx8IHsgZWNobyBS dW50aW1lIGJ1aWxkIGZhaWxlZDsgZXhpdCAxOyB9CitfYnVpbGRfZG9jCitf Y29tcGxldGVfYnVuZGxlCitfY3JlYXRlX2RtZwpJbmRleDogcGtnL21hYy9j b21wbGV0ZS1idW5kbGUuc2gKSURFQSBhZGRpdGlvbmFsIGluZm86ClN1YnN5 c3RlbTogY29tLmludGVsbGlqLm9wZW5hcGkuZGlmZi5pbXBsLnBhdGNoLkNo YXJzZXRFUAo8Kz5VVEYtOAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBw a2cvbWFjL2NvbXBsZXRlLWJ1bmRsZS5zaAkocmV2aXNpb24gKQorKysgcGtn L21hYy9jb21wbGV0ZS1idW5kbGUuc2gJKHJldmlzaW9uICkKQEAgLTAsMCAr MSwxMzYgQEAKKyMhL2Jpbi9zaAorCitidW5kbGU9IiQxIgorCitpZiAhIHRl c3QgLWQgIiRidW5kbGUiIDsgdGhlbgorCWVjaG8gIiRidW5kbGUgaXMgbm8g YnVuZGxlISIgPiYyCisJZXhpdCAxCitmaQorCitpZiB0ZXN0IC16ICRRVERJ UiA7IHRoZW4KKwllY2hvICJRVERJUiBlbnZpcm9ubWVudCB2YXJpYWJsZSBu b3Qgc2V0IgorCWV4aXQgMQorZWxzZQorCWVjaG8gIlFURElSPSRRVERJUiIK K2ZpCisKK3Rlc3QgLWQgIiRidW5kbGUvQ29udGVudHMvUmVzb3VyY2VzIiB8 fCBta2RpciAtcCAiJGJ1bmRsZS9Db250ZW50cy9SZXNvdXJjZXMiIHx8IGV4 aXQgMQorIyBDcmVhdGUgcXQuY29uZiBzbyB0aGF0IGFwcCBrbm93cyB3aGVy ZSB0aGUgUGx1Z2lucyBhcmUgcHJlc2VudAorY2F0ID4+ICIkYnVuZGxlL0Nv bnRlbnRzL1Jlc291cmNlcy9xdC5jb25mIiA8PCBFT0YKK1tQYXRoc10KK1Bs dWdpbnMgPSBQbHVnSW5zCitFT0YKKwordGVzdCAtZCAiJGJ1bmRsZS9Db250 ZW50cy9GcmFtZXdvcmtzIiB8fCBta2RpciAtcCAiJGJ1bmRsZS9Db250ZW50 cy9GcmFtZXdvcmtzIiB8fCBleGl0IDEKK3Rlc3QgLWQgIiRidW5kbGUvQ29u dGVudHMvUGx1Z0lucy9wbGF0Zm9ybXMiIHx8IG1rZGlyIC1wICIkYnVuZGxl L0NvbnRlbnRzL1BsdWdJbnMvcGxhdGZvcm1zIiB8fCBleGl0IDEKK2NwIC1m ICRRVERJUi9wbHVnaW5zL3BsYXRmb3Jtcy9saWJxY29jb2EuZHlsaWIgIiRi dW5kbGUvQ29udGVudHMvUGx1Z0lucy9wbGF0Zm9ybXMiIHx8IHsgZWNobyBs aWJxY29jb2EuZHlsaWIgbm90IGZvdW5kIGluICRRVERJUi9wbHVnaW5zL3Bs YXRmb3JtczsgZXhpdCAxOyB9CitjcCAtZiAkUEdESVIvbGliL2xpYnBxLjUu ZHlsaWIgIiRidW5kbGUvQ29udGVudHMvRnJhbWV3b3JrcyIgfHwgeyBlY2hv IGxpYnBxLjUuZHlsaWIgbm90IGZvdW5kIGluICRQR0RJUjsgZXhpdCAxOyB9 CisKK2Z1bmN0aW9uIENvbXBsZXRlU2luZ2xlQXBwKCkgeworCWxvY2FsIGJ1 bmRsZT0kMSB0YWc9JChiYXNlbmFtZSAiJDEiKSB0b2RvIHRvZG9fb2xkIGZ3 X3JlbHBhdGggbGliIGxpYl9ibiBuZXN0ZWRfYXBwIG5hX3JlbHBhdGgKKwor CWVjaG8gIkNvbXBsZXRpbmcgYXBwOiAkYnVuZGxlIgorCXB1c2hkICIkYnVu ZGxlIiA+IC9kZXYvbnVsbAorCisJI1dlIHNraXAgbmVzdGVkIGFwcHMgaGVy ZSAtIHRob3NlIGFyZSB0cmVhdGVkIHNwZWNpYWxseQorCXRvZG89JChmaWxl IGBmaW5kIC4vIC1wZXJtICswMTExICEgLXR5cGUgZCAhIC1wYXRoICIqLmFw cC8qIiAhIC1uYW1lICIqLmFwcCJgIHwgZ3JlcCAtRSAiTWFjaC1PIDY0LWJp dCIgfCBhd2sgLUYgJzp8ICcgJ3tPUlM9IiAiOyBwcmludCAkMX0nIHwgdW5p cSkKKworCWVjaG8gIkFwcDogJHRhZzogRm91bmQgZXhlY3V0YWJsZXM6ICR0 b2RvIgorCXdoaWxlIHRlc3QgIiR0b2RvIiAhPSAiIjsgZG8KKwkJdG9kb19v bGQ9JHRvZG8gOworCQl0b2RvPSIiIDsKKwkJZm9yIHRvZG9fb2JqIGluICR0 b2RvX29sZDsgZG8KKwkJCWVjaG8gIkFwcDogJHRhZzogUG9zdC1wcm9jZXNz aW5nOiAkdG9kb19vYmoiCisKKwkJCSNGaWd1cmUgb3V0IHRoZSByZWxhdGl2 ZSBwYXRoIGZyb20gdG9kb19vYmogdG8gQ29udGVudHMvRnJhbWV3b3Jrcwor CQkJZndfcmVscGF0aD0kKGVjaG8gIiR0b2RvX29iaiIgfFwKKwkJCQlzZWQg LW4gJ3N8XlwoXC4vLypcKVwoXChbXi9dW14vXSovXCkqXClbXi9dW14vXSok fFwyfGdwJyB8IFwKKwkJCQlzZWQgLW4gJ3N8W14vXVteL10qL3wuLi98Z3An IFwKKwkJCSkiQ29udGVudHMvRnJhbWV3b3JrcyIKKwkJCWZ3X3JlbHBhdGhf b2xkPSRmd19yZWxwYXRoCisKKwkJCWZ3X2xvYz0iQ29udGVudHMvRnJhbWV3 b3JrcyIKKworCQkJI0ZpbmQgYWxsIGxpYnJhcmllcyAkdG9kb19vYmogZGVw ZW5kcyBvbiwgYnV0IHNraXAgc3lzdGVtIGxpYnJhcmllcworCQkJZm9yIGxp YiBpbiAkKAorCQkJCW90b29sIC1MICR0b2RvX29iaiB8IFwKKwkJCQlncmVw ICJRdFx8ZHlsaWJcfEZyYW1ld29ya3NcfFBsdWdJbnMiIHwgZ3JlcCAtdiAi OiIgfCBzZWQgJ3MvKC4qLy8nIHwgZWdyZXAgLXYgJygvdXNyL2xpYil8KC9T eXN0ZW0pfEBleGVjdXRhYmxlX3BhdGhAJyBcCisJCQkpICQob3Rvb2wgLUwg JHRvZG9fb2JqIHwgZ3JlcCAiUHl0aG9uIiB8IGdyZXAgLXYgIjoiIHwgc2Vk ICdzLyguKi8vJyBcCisJCQkpOyBkbworCQkJCWlmIGVjaG8gJGxpYiB8IGdy ZXAgIlBsdWdJbnNcfGxpYnFjb2NvYSIgID4gL2Rldi9udWxsOyB0aGVuCisJ CQkJCWxpYl9sb2M9IkNvbnRlbnRzL1BsdWdJbnMvcGxhdGZvcm1zIgorCQkJ CWVsaWYgZWNobyAkbGliIHwgZ3JlcCAiUXQiID4gL2Rldi9udWxsOyB0aGVu CisJCQkJCXF0ZndfcGF0aD0iJChkaXJuYW1lICRsaWIgfCBzZWQgJ3N8Lipc KFF0LipmcmFtZXdvcmtcKXxcMXwnKSIKKwkJCQkJbGliX2xvYz0iQ29udGVu dHMvRnJhbWV3b3Jrcy8kcXRmd19wYXRoIgorCQkJCQlpZiBbICIkKGJhc2Vu YW1lICR0b2RvX29iaikiID0gIiRsaWIiIF07IHRoZW4KKwkJCQkJCWxpYl9s b2M9IiQoZGlybmFtZSAkdG9kb19vYmopIgorCQkJCQkJcXRmd19wYXRoPSQo ZWNobyAkbGliX2xvYyB8IHNlZCAncy9Db250ZW50c1wvRnJhbWV3b3Jrc1wv Ly8nKQorCQkJCQlmaQorCQkJCWVsaWYgZWNobyAkbGliIHwgZ3JlcCAiUHl0 aG9uIiA+IC9kZXYvbnVsbDsgdGhlbgorCQkJCQlweWZ3X3BhdGg9IiQoZGly bmFtZSAkbGliIHwgc2VkICdzfC4qXChQeXRob24uKmZyYW1ld29ya1wpfFwx fCcpIgorCQkJCQlsaWJfbG9jPSJDb250ZW50cy9GcmFtZXdvcmtzLyRweWZ3 X3BhdGgiCisJCQkJCWlmIFsgIiQoYmFzZW5hbWUgJHRvZG9fb2JqKSIgPSAi JGxpYiIgXTsgdGhlbgorCQkJCQkJbGliX2xvYz0iJChkaXJuYW1lICR0b2Rv X29iaikiCisJCQkJCQlweWZ3X3BhdGg9JChlY2hvICRsaWJfbG9jIHwgc2Vk ICdzL0NvbnRlbnRzXC9GcmFtZXdvcmtzXC8vLycpCisJCQkJCWZpCisJCQkJ ZWxzZQorCQkJCQlsaWJfbG9jPSJDb250ZW50cy9GcmFtZXdvcmtzIgorCQkJ CWZpCisJCQkJbGliX2JuPSIkKGJhc2VuYW1lICIkbGliIikiIDsKKwkJCQlp ZiAhIHRlc3QgLWYgIiRsaWJfbG9jLyRsaWJfYm4iOyB0aGVuCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2ZpbGU9 IiIKKwkJCQkJdGFyZ2V0X3BhdGg9IiIKKwkJCQkJZWNobyAiQXBwOiAkdGFn OiBBZGRpbmcgc3ltbGluazogJGxpYl9ibiAoYmVjYXVzZSBvZjogJHRvZG9f b2JqKSIKKwkJCQkJIyBDb3B5IHRoZSBRVCBhbmQgUHl0aG9uIGZyYW1ld29y aworCQkJCQlpZiBlY2hvICRsaWIgfCBncmVwIFF0ID4gL2Rldi9udWxsIDsg dGhlbgorCQkJCQkJY3AgLVIgJFFURElSL2xpYi8kbGliX2JuLmZyYW1ld29y ayAiJGZ3X2xvYy8iCisJCQkJCWVsaWYgZWNobyAkbGliIHwgZ3JlcCBQeXRo b24gPiAvZGV2L251bGwgOyB0aGVuCisJCQkJCQljcCAtUiAkKGRpcm5hbWUg JGxpYikvLi4vLi4vLi4vJGxpYl9ibi5mcmFtZXdvcmsgIiRmd19sb2MvIgor CQkJCQllbHNlCisJCQkJCQljcCAtUiAiJGxpYiIgIiRsaWJfbG9jLyRsaWJf Ym4iCisJCQkJCWZpCisJCQkJCWlmICEgdGVzdCAtTCAiJGxpYl9sb2MvJGxp Yl9ibiI7IHRoZW4KKwkJCQkJCWNobW9kIDc1NSAiJGxpYl9sb2MvJGxpYl9i biIKKwkJCQkJZWxzZQorCQkJCQkJdGFyZ2V0X2ZpbGU9JChyZWFkbGluayAi JGxpYiIpCisJCQkJCQl0YXJnZXRfcGF0aD0kKGRpcm5hbWUgIiRsaWIiKS8k dGFyZ2V0X2ZpbGUKKwkJCQkJICAgICAgICBlY2hvICJBcHA6ICR0YWc6IEFk ZGluZyBzeW1saW5rIHRhcmdldDogJHRhcmdldF9wYXRoIgorCQkJCQkJY3Ag IiR0YXJnZXRfcGF0aCIgIiRsaWJfbG9jLyR0YXJnZXRfZmlsZSIKKwkJCQkJ CWNobW9kIDc1NSAiJGxpYl9sb2MvJHRhcmdldF9maWxlIgorCQkJCQlmaQor CQkJCQllY2hvICJSZXdyaXRpbmcgSUQgaW4gJGxpYl9sb2MvJGxpYl9ibiB0 byAkbGliX2JuIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGluc3RhbGxfbmFtZV90b29sIFwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1pZCAiJGxpYl9ibiIg XAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIiRsaWJfbG9jLyRsaWJfYm4iIHx8IGV4aXQgMQorCQkJCQl0b2Rv PSIkdG9kbyAuLyRsaWJfbG9jLyRsaWJfYm4iCisJCQkJZmkKKwkJCQlpZiBl Y2hvICRsaWIgfCBncmVwIFF0ID4gL2Rldi9udWxsIDsgdGhlbgorCQkJCQlm d19yZWxwYXRoPSIkZndfcmVscGF0aC8kcXRmd19wYXRoIgorCQkJCWZpCisJ CQkJaWYgZWNobyAkbGliIHwgZ3JlcCBQeXRob24gPiAvZGV2L251bGwgOyB0 aGVuCisJCQkJCWZ3X3JlbHBhdGg9IiRmd19yZWxwYXRoLyRweWZ3X3BhdGgi CisJCQkJZmkKKwkJCQllY2hvICJSZXdyaXRpbmcgbGlicmFyeSAkbGliIHRv IEBsb2FkZXJfcGF0aC8kZndfcmVscGF0aC8kbGliX2JuIGluICR0b2RvX29i aiIKKwkJCQlpbnN0YWxsX25hbWVfdG9vbCAtY2hhbmdlIFwKKwkJCQkJIiRs aWIiIFwKKwkJCQkJIkBsb2FkZXJfcGF0aC8kZndfcmVscGF0aC8kbGliX2Ju IiBcCisJCQkJCSIkdG9kb19vYmoiIHx8IGV4aXQgMQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpbnN0YWxsX25hbWVfdG9vbCAtY2hhbmdl IFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi JHRhcmdldF9wYXRoIiBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIkBsb2FkZXJfcGF0aC8kZndfcmVscGF0aC8kdGFyZ2V0 X2ZpbGUiIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiJHRvZG9fb2JqIiB8fCBleGl0IDEKKwkJCQlmd19yZWxwYXRoPSIk ZndfcmVscGF0aF9vbGQiCisJCQlkb25lCisJCWRvbmUKKwlkb25lCisKKwkj IEZpeCB0aGUgcnBhdGhzIGZvciBwc3ljb3BnIG1vZHVsZQorCWZpbmQgJGJ1 bmRsZS9Db250ZW50cy9SZXNvdXJjZXMvdmVudi8gLW5hbWUgX3BzeWNvcGcu c28gfCB4YXJncyBpbnN0YWxsX25hbWVfdG9vbCAtY2hhbmdlIGxpYnBxLjUu ZHlsaWIgQGxvYWRlcl9wYXRoLy4uLy4uLy4uLy4uLy4uLy4uL0ZyYW1ld29y a3MvbGlicHEuNS5keWxpYgorCWZpbmQgJGJ1bmRsZS9Db250ZW50cy9SZXNv dXJjZXMvdmVudi8gLW5hbWUgX3BzeWNvcGcuc28gfCB4YXJncyBpbnN0YWxs X25hbWVfdG9vbCAtY2hhbmdlIGxpYnNzbC4xLjAuMC5keWxpYiBAbG9hZGVy X3BhdGgvLi4vLi4vLi4vLi4vLi4vLi4vRnJhbWV3b3Jrcy9saWJzc2wuMS4w LjAuZHlsaWIKKwlmaW5kICRidW5kbGUvQ29udGVudHMvUmVzb3VyY2VzL3Zl bnYvIC1uYW1lIF9wc3ljb3BnLnNvIHwgeGFyZ3MgaW5zdGFsbF9uYW1lX3Rv b2wgLWNoYW5nZSBsaWJjcnlwdG8uMS4wLjAuZHlsaWIgQGxvYWRlcl9wYXRo Ly4uLy4uLy4uLy4uLy4uLy4uL0ZyYW1ld29ya3MvbGliY3J5cHRvLjEuMC4w LmR5bGliCisKKwllY2hvICJBcHAgY29tcGxldGVkOiAkYnVuZGxlIgorCXBv cGQgPiAvZGV2L251bGwKK30KKworQ29tcGxldGVTaW5nbGVBcHAgIiRidW5k bGUiCkluZGV4OiBwa2cvbWFjL1JFQURNRS50eHQKSURFQSBhZGRpdGlvbmFs IGluZm86ClN1YnN5c3RlbTogY29tLmludGVsbGlqLm9wZW5hcGkuZGlmZi5p bXBsLnBhdGNoLkNoYXJzZXRFUAo8Kz5VVEYtOAo9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLSBwa2cvbWFjL1JFQURNRS50eHQJKHJldmlzaW9uICkKKysr IHBrZy9tYWMvUkVBRE1FLnR4dAkocmV2aXNpb24gKQpAQCAtMCwwICsxLDMy IEBACitCdWlsZGluZyBwZ0FkbWluNC5kbWcgb24gTWFjIE9TIFgKKz09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitSZXF1aXJlZCBQYWNr YWdlcyAoRWl0aGVyIGJ1aWxkIHRoZSBzb3VyY2VzIG9yIGdldCB0aGVtIGZy b20gbWFjcG9ydHMgb3Igc2ltaWxhcik6CisKKzEuIFB5dGhvbiBpbnN0YWxs YXRpb24KKyAgLSBQeXRob24gMi42IG9yIGFib3ZlIGZyb20gaHR0cHM6Ly93 d3cucHl0aG9uLm9yZy8KKworMi4gUVQgaW5zdGFsbGF0aW9uCisgIC0gUXQg NCBvciA1IGZyb20gaHR0cDovL3d3dy5xdC5pby8KKworMy4gUG9zdGdyZVNR TCBpbnN0YWxsYXRpb24KKyAgLSBQb3N0Z3JlU1FMIDkuMSBvciBhYm92ZSBm cm9tIGh0dHA6Ly93d3cucG9zdGdyZXNxbC5vcmcvCisKK0J1aWxkaW5nOgor CisxLiBTZXQgdGhlIFBZVEhPTl9IT01FIGVudmlyb25tZW50IHZhcmlhYmxl IHRvIHRoZSBQeXRob24gcm9vdCBpbnN0YWxsYXRpb24gZGlyZWN0b3J5LCBl LmcuCisKKyAgIGV4cG9ydCBQWVRIT05fSE9NRT0vU3lzdGVtL0xpYnJhcnkv RnJhbWV3b3Jrcy9QeXRob24uZnJhbWV3b3JrL1ZlcnNpb25zLzIuNworCisy LiBTZXQgdGhlIFFURElSIGVudmlyb25tZW50IHZhcmlhYmxlIHRvIHRoZSBR VCByb290IGluc3RhbGxhdGlvbiBkaXJlY3RvcnksIGUuZy4KKworICAgZXhw b3J0IFFURElSPX4vUXQvNS41L2NsYW5nXzY0CisKKzMuIFNldCB0aGUgUEdE SVIgZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gdGhlIFBvc3RncmVTUUwgaW5z dGFsbGF0aW9uIGRpcmVjdG9yeSwgZS5nLgorCisgICBleHBvcnQgUEdESVI9 L3Vzci9sb2NhbC9wZ3NxbAorCis0LiBUbyBidWlsZCwgZ28gdG8gcGdBZG1p bjQgc291cmNlIHJvb3QgZGlyZWN0b3J5IGFuZCBleGVjdXRlICJtYWtlIGFw cGJ1bmRsZSIuIFRoaXMgd2lsbAorICAgY3JlYXRlIHRoZSBweXRob24gdmly dHVhbCBlbnZpcm9ubWVudCBhbmQgaW5zdGFsbCBhbGwgdGhlIHJlcXVpcmVk IHB5dGhvbiBtb2R1bGVzIG1lbnRpb25lZCBpbiB0aGUKKyAgIHJlcXVpcmVt ZW50cyBmaWxlIHVzaW5nIHBpcCwgYnVpbGQgdGhlIHJ1bnRpbWUgY29kZSBh bmQgZmluYWxseSBjcmVhdGUgdGhlIGFwcCBidW5kbGUgYW5kIHRoZSBETUcg CisgICBpbiAuL2Rpc3QgZGlyZWN0b3J5CkluZGV4OiBNYWtlZmlsZQpJREVB IGFkZGl0aW9uYWwgaW5mbzoKU3Vic3lzdGVtOiBjb20uaW50ZWxsaWoub3Bl bmFwaS5kaWZmLmltcGwucGF0Y2guQ2hhcnNldEVQCjwrPlVURi04Cj09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tIE1ha2VmaWxlCShyZXZpc2lvbiA4YzA3 N2JjMmRmZDJkZGE0YmQzYjVlMTMzOGE2ZDYwYjQwNGJhNzhmKQorKysgTWFr ZWZpbGUJKHJldmlzaW9uICkKQEAgLTEzLDkgKzEzLDkgQEAKICMgSGlnaC1s ZXZlbCB0YXJnZXRzCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAK LWFsbDogaW5zdGFsbC1waXAtcmVxdWlyZW1lbnRzIHBpcAorYWxsOiBkb2Nz IGluc3RhbGwtcGlwLXJlcXVpcmVtZW50cyBwaXAgYXBwYnVuZGxlCiAKLWNs ZWFuOiBjbGVhbi1waXAKK2NsZWFuOiBjbGVhbi1waXAgY2xlYW4tZG9jcyBj bGVhbi1hcHBidW5kbGUKIAogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IwogIyBQeXRob24gUElQIHBhY2thZ2UKQEAgLTM0LDYgKzM0LDcgQEAKIFBH QURNSU5fU1JDX0RJUiA9IHBnYWRtaW40CiBQR0FETUlOX0VHRyA9ICR7UEdB RE1JTl9TUkNfRElSfS5lZ2ctaW5mbwogUEdBRE1JTl9CVUlMRCA9IGJ1aWxk CitQR0FETUlOX01BQ0JVSUxEID0gbWFjLWJ1aWxkCiBQR0FETUlOX0RJU1Qg PSBkaXN0CiBQR0FETUlOX01BTklGRVNUID0gTUFOSUZFU1QuaW4KIFBHQURN SU5fSU5TVEFMTF9DTUQgPSBwaXAgaW5zdGFsbCAtLXVzZS13aGVlbCAtLWZp bmQtbGlua3M9JHtQR0FETUlOX0RJU1R9ICR7UEdBRE1JTl9TUkNfRElSfQpA QCAtODMsOSArODQsMjUgQEAKIGluc3RhbGwtcGlwOgogCSR7UEdBRE1JTl9J TlNUQUxMX0NNRH0KIAorYXBwYnVuZGxlOiBkb2NzCisJLi9wa2cvbWFjL2J1 aWxkLnNoCisKK2RvY3M6CisJTENfQUxMPWVuX1VTLlVURi04IExBTkc9ZW5f VVMuVVRGLTggJChNQUtFKSAtQyBkb2NzL2VuX1VTIC1mIE1ha2VmaWxlLnNw aGlueCBodG1sCisKK2NsZWFuLWRvY3M6CisJTENfQUxMPWVuX1VTLlVURi04 IExBTkc9ZW5fVVMuVVRGLTggJChNQUtFKSAtQyBkb2NzL2VuX1VTIC1mIE1h a2VmaWxlLnNwaGlueCBjbGVhbgorCiBjbGVhbi1waXA6CiAJcm0gLXJmICR7 UEdBRE1JTl9TUkNfRElSfQogCXJtIC1yZiAke1BHQURNSU5fRUdHfQogCXJt IC1yZiAke1BHQURNSU5fQlVJTER9CiAJcm0gLXJmICR7UEdBRE1JTl9ESVNU fQogCXJtIC1mICR7UEdBRE1JTl9NQU5JRkVTVH0KKworY2xlYW4tYXBwYnVu ZGxlOgorCXJtIC1yZiAke1BHQURNSU5fTUFDQlVJTER9CisJcm0gLXJmICR7 UEdBRE1JTl9ESVNUfS9wZ0FkbWluNC5hcHAKKwlybSAtZiAke1BHQURNSU5f RElTVH0vcGdBZG1pbjQuZG1nCisKKy5QSE9OWTogZG9jcwpJbmRleDogcGtn L21hYy9saWNlbmNlLnIKSURFQSBhZGRpdGlvbmFsIGluZm86ClN1YnN5c3Rl bTogY29tLmludGVsbGlqLm9wZW5hcGkuZGlmZi5pbXBsLnBhdGNoLkNoYXJz ZXRFUAo8Kz5VVEYtOAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBwa2cv bWFjL2xpY2VuY2UucgkocmV2aXNpb24gKQorKysgcGtnL21hYy9saWNlbmNl LnIJKHJldmlzaW9uICkKQEAgLTAsMCArMSw0MiBAQAorZGF0YSAnTFBpYycg KDUwMDApIHsKKwkkIjAwMDAgMDAwMSAwMDAwIDAwMDAgMDAwMCIKK307CisK K3Jlc291cmNlICdTVFIjJyAoNTAwMCwgIkVuZ2xpc2ggYnV0dG9ucyIpIHsK KyAgICB7ICAgLyogYXJyYXkgU3RyaW5nQXJyYXk6IDkgZWxlbWVudHMgKi8K KyAgICAgICAgLyogWzFdICovCisgICAgICAgICJFbmdsaXNoIiwKKyAgICAg ICAgLyogWzJdICovCisgICAgICAgICJBZ3JlZSIsCisgICAgICAgIC8qIFsz XSAqLworICAgICAgICAiRGlzYWdyZWUiLAorICAgICAgICAvKiBbNF0gKi8K KyAgICAgICAgIlByaW50IiwKKyAgICAgICAgLyogWzVdICovCisgICAgICAg ICJTYXZlLi4uIiwKKyAgICAgICAgLyogWzZdICovCisgICAgICAgICJJTVBP UlRBTlQgLSBSZWFkIHRoaXMgTGljZW5zZSBBZ3JlZW1lbnQgY2FyZWZ1bGx5 IGJlZm9yZSBjbGlja2luZyBvbiAiCisgICAgICAgICJ0aGUgXCJBZ3JlZVwi IGJ1dHRvbi4gIEJ5IGNsaWNraW5nIG9uIHRoZSBcIkFncmVlXCIgYnV0dG9u LCB5b3UgYWdyZWUgIgorICAgICAgICAidG8gYmUgYm91bmQgYnkgdGhlIHRl cm1zIG9mIHRoZSBMaWNlbnNlIEFncmVlbWVudC4iLAorICAgICAgICAvKiBb N10gKi8KKyAgICAgICAgIlNvZnR3YXJlIExpY2Vuc2UgQWdyZWVtZW50IiwK KyAgICAgICAgLyogWzhdICovCisgICAgICAgICJUaGlzIHRleHQgY2Fubm90 IGJlIHNhdmVkLiBUaGlzIGRpc2sgbWF5IGJlIGZ1bGwgb3IgbG9ja2VkLCBv ciB0aGUgZmlsZSAiCisgICAgICAgICJtYXkgYmUgbG9ja2VkLiIsCisgICAg ICAgIC8qIFs5XSAqLworICAgICAgICAiVW5hYmxlIHRvIHByaW50LiBNYWtl IHN1cmUgeW91J3ZlIHNlbGVjdGVkIGEgcHJpbnRlci4iCisgICAgfQorfTsK KworZGF0YSAnVEVYVCcgKDUwMDAsICJFbmdsaXNoIikgeworICAgICJwZ0Fk bWluIDRcbiIKKyAgICAiXG4iCisgICAgIkNvcHlyaWdodCAoQykgMjAxMyAt IDIwMTYsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW1cbiIKKyAgICAi XG4iCisgICAgIlBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFu ZCBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgYW5kIGl0cyBkb2N1bWVudGF0 aW9uIGZvciBhbnkgcHVycG9zZSwgd2l0aG91dCBmZWUsIGFuZCB3aXRob3V0 IGEgd3JpdHRlbiBhZ3JlZW1lbnQgaXMgaGVyZWJ5IGdyYW50ZWQsIHByb3Zp ZGVkIHRoYXQgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMg cGFyYWdyYXBoIGFuZCB0aGUgZm9sbG93aW5nIHR3byBwYXJhZ3JhcGhzIGFw cGVhciBpbiBhbGwgY29waWVzLlxuIgorICAgICJcbiIKKyAgICAiSU4gTk8g RVZFTlQgU0hBTEwgVEhFIFBHQURNSU4gREVWRUxPUE1FTlQgVEVBTSBCRSBM SUFCTEUgVE8gQU5ZIFBBUlRZIEZPUiBESVJFQ1QsIElORElSRUNULCBTUEVD SUFMLCBJTkNJREVOVEFMLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMsIElO Q0xVRElORyBMT1NUIFBST0ZJVFMsIEFSSVNJTkcgT1VUIE9GIFRIRSBVU0Ug T0YgVEhJUyBTT0ZUV0FSRSBBTkQgSVRTIERPQ1VNRU5UQVRJT04sIEVWRU4g SUYgVEhFIFBHQURNSU4gREVWRUxPUE1FTlQgVEVBTSBIQVMgQkVFTiBBRFZJ U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS5cbiIKKyAg ICAiXG4iCisgICAgIlRIRSBQR0FETUlOIERFVkVMT1BNRU5UIFRFQU0gU1BF Q0lGSUNBTExZIERJU0NMQUlNUyBBTlkgV0FSUkFOVElFUywgSU5DTFVESU5H LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM QVIgUFVSUE9TRS4gVEhFIFNPRlRXQVJFIFBST1ZJREVEIEhFUkVVTkRFUiBJ UyBPTiBBTiBcIkFTIElTXCIgQkFTSVMsIEFORCBUSEUgUEdBRE1JTiBERVZF TE9QTUVOVCBURUFNIEhBUyBOTyBPQkxJR0FUSU9OUyBUTyBQUk9WSURFIE1B SU5URU5BTkNFLCBTVVBQT1JULCBVUERBVEVTLCBFTkhBTkNFTUVOVFMsIE9S IE1PRElGSUNBVElPTlMuXG4iCit9OworCkluZGV4OiB3ZWIvY29uZmlnX2xv Y2FsLnB5LmRlZmF1bHQKSURFQSBhZGRpdGlvbmFsIGluZm86ClN1YnN5c3Rl bTogY29tLmludGVsbGlqLm9wZW5hcGkuZGlmZi5pbXBsLnBhdGNoLkNoYXJz ZXRFUAo8Kz5VVEYtOAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB3ZWIv Y29uZmlnX2xvY2FsLnB5LmRlZmF1bHQJKHJldmlzaW9uICkKKysrIHdlYi9j b25maWdfbG9jYWwucHkuZGVmYXVsdAkocmV2aXNpb24gKQpAQCAtMCwwICsx LDI4IEBACitmcm9tIGNvbmZpZyBpbXBvcnQgKgorCisjIERlYnVnIG1vZGUK K0RFQlVHID0gVHJ1ZQorCisjIEFwcCBtb2RlCitTRVJWRVJfTU9ERSA9IEZh bHNlCisKKyMgRW5hYmxlIHRoZSB0ZXN0IG1vZHVsZQorTU9EVUxFX0JMQUNL TElTVC5yZW1vdmUoJ3Rlc3QnKQorCisjIExvZyBmaWxlIG5hbWUKK0xPR19G SUxFID0gJy9Vc2Vycy9kcGFnZS9wZ2FkbWluNC5sb2cnCitDT05TT0xFX0xP R19MRVZFTCA9IERFQlVHCitGSUxFX0xPR19MRVZFTCA9IERFQlVHCisKKyMg TWFpbCBzZXJ2ZXIgc2V0dGluZ3MKK01BSUxfU0VSVkVSID0gJ3NtdHAuZ21h aWwuY29tJworTUFJTF9QT1JUID0gNDY1CitNQUlMX1VTRV9TU0wgPSBUcnVl CitNQUlMX1VTRVJOQU1FID0gJ2RhdmUucGFnZUBlbnRlcnByaXNlZGIuY29t JworTUFJTF9QQVNTV09SRCA9ICdQMHdlckNvbm5lY3QnCisKK1RFU1RfVVNF Uk5BTUUgPSAnZ3V5YnJ1c2gnCitURVNUX1BBU1NXT1JEID0gJ3Bhc3N3b3Jk JworVEVTVF9ORVdfUEFTU1dPUkQgPSAnbmV3cGFzc3dvcmQnCisKK1VQR1JB REVfQ0hFQ0tfRU5BQkxFRCA9IEZhbHNlCg== --001a113fc002af9e9c05339897f3 Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 8bit MIME-Version: 1.0 -- Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgadmin-hackers --001a113fc002af9e9c05339897f3--