Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1b7ncN-0005C2-13 for pgadmin-hackers@arkaria.postgresql.org; Tue, 31 May 2016 17:38:15 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1b7ncM-0004En-0i for pgadmin-hackers@arkaria.postgresql.org; Tue, 31 May 2016 17:38:14 +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 1b7nc7-00040I-Hl for pgadmin-hackers@postgresql.org; Tue, 31 May 2016 17:37:59 +0000 Received: from mail-qk0-x236.google.com ([2607:f8b0:400d:c09::236]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1b7nc1-0001jy-Hm for pgadmin-hackers@postgresql.org; Tue, 31 May 2016 17:37:58 +0000 Received: by mail-qk0-x236.google.com with SMTP id i187so9023774qkd.3 for ; Tue, 31 May 2016 10:37:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc; bh=e7lDC263q99mHoSy8xV4dx4VNxMl6ws5DCXe2vyqcWY=; b=dPy1ufoSJRF+Uo8EHQS0A9q02l5tLVl6s9NkEf0Y2UVqkgYkEDz7da8BxYyUbt1M28 i00S31YoBHTTA7mpjGSsTJaEDsrupXXWgWoAiUEJHtelkcPjFmaWccWnErZHGvUMmjv3 64QwUbVo6HlmJRLvGe6EhhgOcCSpvLhLiCDSEluHOzv99jDTjn8ovsjJaO13NBZ2juNI h3XVs8VrkVSdhK/c6XjEMx15DlWgfPNroEaHUpsSRBU1zcEllNHFy88ZBxUYya2DsNaK vvu5p0DcaOvTUyxM3hW28t0ZWk8R6wkO9pGCuTQo347cTL59V6g5XETwMfTWEn2ZpNdf 8x9w== 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=e7lDC263q99mHoSy8xV4dx4VNxMl6ws5DCXe2vyqcWY=; b=byUtO5a/ER1V36Axgubtx9Ya+8g/8PjYNzN1Rx4j98QFLAhn4DlN2CaLS5jeYB1507 Tyb4PYHugTUIyRXopAnDcwqke+c2cEn5IwV+0rkBCtZsNllW07yd+IDjzcIFysp5q2Su wRLQQikmfPwQVqOZJfoqwfwXGhbP0ixndLG9qNdkM1Rbsm2AlGLp9kUNbrqeh371gx5N /WXb32xaoN9KL/3rlZTgzv2yRcgDL4c24+o8M9rRyS4VoMdfdXd9UMpCMyAB+hOBsVGj WCRkO13ZXXLgaTsw1lEfwrquL2GaEX0nWgtNjZc7Pyrv8z3HSPH+KcMg6vi0b4HN3ooP Rd0Q== X-Gm-Message-State: ALyK8tI2iopAem9/zakdgCRJzSWV0+/1syK9bsPL7x+OmLBVJ+w/aAtBHR9tY9G1q3M61++mK4CXmnBMVak3+VJK MIME-Version: 1.0 X-Received: by 10.55.203.73 with SMTP id d70mr18961166qkj.116.1464716271811; Tue, 31 May 2016 10:37:51 -0700 (PDT) Received: by 10.140.101.198 with HTTP; Tue, 31 May 2016 10:37:51 -0700 (PDT) In-Reply-To: References: Date: Tue, 31 May 2016 23:07:51 +0530 Message-ID: Subject: Re: Patch for pgAdmin4 package on Mac OS X From: Sandeep Thakkar To: Dave Page Cc: pgadmin-hackers , Hamid Quddus Content-Type: multipart/mixed; boundary=001a113951b0143731053426d5d1 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 --001a113951b0143731053426d5d1 Content-Type: multipart/alternative; boundary=001a113951b0143729053426d5cf --001a113951b0143729053426d5cf Content-Type: text/plain; charset=UTF-8 Hi Dave, On Tue, May 31, 2016 at 9:29 PM, Dave Page wrote: > Hi, > > On the first run, I get: > > App completed: /Users/dpage/git/pgadmin4/pkg/mac/../../mac-build/pgAdmin > 4.app > ./pkg/mac/create-dmg.sh: line 6: cd: dist: No such file or directory > Cleaning up > Copying data into temporary directory > cp: ./../mac-build/pgAdmin 4.app: No such file or directory > create-dmg.sh failed > make: *** [appbundle] Error 1 > > If I run it again, I get: > > App completed: /Users/dpage/git/pgadmin4/pkg/mac/../../mac-build/pgAdmin > 4.app > ./pkg/mac/create-dmg.sh: line 6: cd: dist: No such file or directory > Directory ./pgadmin4-1.0-dev.dmg.src already exists. Please delete it > manually. > create-dmg.sh failed > make: *** [appbundle] Error 1 > > If I manually create $SRC/dist, it's much happier. > > I have used variable for dist. It will create the directory if doesn't exist. The clean-appbunde will also remove the .src directory in dist just in case it is present. Other issues: > > - Your changes to the runtime don't seem to help. I've been staring at > the code for an hour or so now, and I can't see the issue though. We > may need some fresh eyes. > > yeah, I also spent more time to see the code and test it. Infact, I could hardly reproduce it 1 or 2 times. > - pkg/mac/create-dmg.sh is mixing upper and lower case variable names > and with/without _, e.g. $dmgname vs $DMG_NAME > > not sure, why I used lower case, I prefer upper case always. I have made the changes now to use upper case for all variables. > - Shoudn't DMG_NAME be initialised to `grep "^APP_NAME" web/config.py > | cut -d"=" -f2 | sed "s/'//g"` ? > > yes, I have used the couple of more variables that gives proper understanding. Thanks! I have attached the updated patch. (runtime changes remains same). > > On Tue, May 31, 2016 at 1:19 PM, Sandeep Thakkar > wrote: > > Somehow the patch skipped the Makefile changes. Attached is the updated > > patch. > > > > On Mon, May 30, 2016 at 6:00 PM, Sandeep Thakkar > > wrote: > >> > >> Thanks. I have fixed all the issues. > >> > >> Regarding the app not running from within the DMG for the first time, I > >> was unable to reproduce it on Zilan's machine which didn't have the > >> development env. On Murali's machine, it was reproducible for 1 time > after > >> couple of attempts. > >> > >> So, I just added the sync statement after settings the pythonpath value > in > >> the settings. May be this will resolve the issue. Please confirm. > >> settings.sync(); > >> > >> Attached is the updated patch. Thanks. > >> > >> On Fri, May 27, 2016 at 9:28 PM, Dave Page wrote: > >>> > >>> On Fri, May 27, 2016 at 4:48 PM, Dave Page wrote: > >>> > > >>> > > >>> > On Fri, May 27, 2016 at 1:11 PM, Sandeep Thakkar > >>> > wrote: > >>> >> > >>> >> Sure. Thanks. > >>> >> > >>> >> There is a typo in pkg/mac/build.sh. i.e > >>> >> > >>> >> s/HTML_HELP/HELP_PATH/ > >>> >> > >>> >> > >>> >> On Fri, May 27, 2016 at 5:26 PM, Dave Page > wrote: > >>> >>> > >>> >>> Not entirely - we definitely need to improve it. I'll review the > code > >>> >>> as > >>> >>> it is now though. > >>> > > >>> > > >>> > OK, review time :-) > >>> > > >>> > - The appbundle name should be created from APP_NAME.app in > config.py, > >>> > e.g. > >>> > 'pgAdmin 4.app' > >>> > > >>> > - The DMG name should be created from > >>> > to_lower(remove_spaces(APP_NAME-APP_VERSION)) in config.py, e.g. > >>> > pgadmin4-1.0-dev.dmg > >>> > > >>> > - Use #ifdef Q_OS_MAC in the QT code for Mac-specific code. There's > no > >>> > need > >>> > to define another macro. > >>> > > >>> > - Please add "MINIFY_HTML = False" to config_local.py (and have > Paresh > >>> > do > >>> > the same on his packages). This works around a code issue with the > docs > >>> > that > >>> > I'll log a bug for. > >>> > > >>> > - In testing, I found that running the app from within the DMG > doesn't > >>> > seem > >>> > to work the first time - it prompts for the path, then exits. Once I > >>> > save > >>> > the path it offers, it's fine on subsequent runs. > >>> > > >>> > - Once copied to my laptop, I saw the same issue as above. > >>> > > >>> > Once these issues are resolved, I think we're good to commit. > >>> > >>> Oh, a couple more things: > >>> > >>> - There should not be a copy of the app bundle in dist/ following the > >>> build. Only the dmg should be there. > >>> > >>> - I think mac-build/ should be removed following a successful build, > >>> rather than waiting for make clean (please talk to Paresh - his code > >>> should do the same). > >>> > >>> -- > >>> Dave Page > >>> Blog: http://pgsnake.blogspot.com > >>> Twitter: @pgsnake > >>> > >>> EnterpriseDB UK: http://www.enterprisedb.com > >>> The Enterprise PostgreSQL Company > >> > >> > >> > >> > >> -- > >> Sandeep Thakkar > >> > > > > > > > > -- > > Sandeep Thakkar > > > > > > -- > Dave Page > Blog: http://pgsnake.blogspot.com > Twitter: @pgsnake > > EnterpriseDB UK: http://www.enterprisedb.com > The Enterprise PostgreSQL Company > -- Sandeep Thakkar --001a113951b0143729053426d5cf Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi Dave,


On Tue, May 31, 2016 at 9:29 PM, Dave Page <dpage@p= gadmin.org> wrote:
Hi,

On the first run, I get:

App completed: /Users/dpage/git/pgadmin4/pkg/mac/../../mac-build/pgAdmin 4.= app
./pkg/mac/create-dmg.sh: line 6: cd: dist: No such file or directory
Cleaning up
Copying data into temporary directory
cp: ./../mac-build/pgAdmin 4.app: No such file or directory
create-dmg.sh failed
make: *** [appbundle] Error 1

If I run it again, I get:

App completed: /Users/dpage/git/pgadmin4/pkg/mac/../../mac-build/pgAdmin 4.= app
./pkg/mac/create-dmg.sh: line 6: cd: dist: No such file or directory
Directory ./pgadmin4-1.0-dev.dmg.src already exists. Please delete it manua= lly.
create-dmg.sh failed
make: *** [appbundle] Error 1

If I manually create $SRC/dist, it's much happier.

I have used variable for dist. It will create the dir= ectory if doesn't exist. The clean-appbunde will also remove the .src d= irectory in dist just in case it is present.

Other issues:

- Your changes to the runtime don't seem to help. I've been staring= at
the code for an hour or so now, and I can't see the issue though. We
may need some fresh eyes.

yeah, I also spent more time to see the code and test= it. Infact, I could hardly reproduce it 1 or 2 times.
=C2=A0
- pkg/mac/create-dmg.sh is mixing upper and lower case variable names
and with/without _, e.g. $dmgname vs $DMG_NAME

not sure, why I used lower case, I prefer upper case = always. I have made the changes now to use upper case for all variables.
=C2=A0
- Shoudn't DMG_NAME be initialised to `grep "^APP_NAME" web/c= onfig.py
| cut -d"=3D" -f2 | sed "s/'//g"` ?

yes, I have used the couple of more variables that gi= ves proper understanding.

Thanks! I have attached = the updated patch. (runtime changes remains same).

On Tue, May 31, 2016 at 1:19 PM, Sandeep Thakkar
<sandeep.thakkar@enterprisedb.com> wrote:
> Somehow the patch skipped the Makefile changes. Attached is the update= d
> patch.
>
> On Mon, May 30, 2016 at 6:00 PM, Sandeep Thakkar
> <sandeep.thakka= r@enterprisedb.com> wrote:
>>
>> Thanks. I have fixed all the issues.
>>
>> Regarding the app not running from within the DMG for the first ti= me, I
>> was unable to reproduce it on Zilan's machine which didn't= have the
>> development env. On Murali's machine, it was reproducible for = 1 time after
>> couple of attempts.
>>
>> So, I just added the sync statement after settings the pythonpath = value in
>> the settings. May be this will resolve the issue. Please confirm.<= br> >> settings.sync();
>>
>> Attached is the updated patch. Thanks.
>>
>> On Fri, May 27, 2016 at 9:28 PM, Dave Page <dpage@pgadmin.org> wrote:
>>>
>>> On Fri, May 27, 2016 at 4:48 PM, Dave Page <dpage@pgadmin.org> wrote:
>>> >
>>> >
>>> > On Fri, May 27, 2016 at 1:11 PM, Sandeep Thakkar
>>> > <s= andeep.thakkar@enterprisedb.com> wrote:
>>> >>
>>> >> Sure. Thanks.
>>> >>
>>> >> There is a typo in pkg/mac/build.sh. i.e
>>> >>
>>> >> s/HTML_HELP/HELP_PATH/
>>> >>
>>> >>
>>> >> On Fri, May 27, 2016 at 5:26 PM, Dave Page <dpage@pgadmin.org> wrote:
>>> >>>
>>> >>> Not entirely - we definitely need to improve it. = I'll review the code
>>> >>> as
>>> >>> it is now though.
>>> >
>>> >
>>> > OK, review time :-)
>>> >
>>> > - The appbundle name should be created from APP_NAME.app = in config.py,
>>> > e.g.
>>> > 'pgAdmin 4.app'
>>> >
>>> > - The DMG name should be created from
>>> > to_lower(remove_spaces(APP_NAME-APP_VERSION)) in config.p= y, e.g.
>>> > pgadmin4-1.0-dev.dmg
>>> >
>>> > - Use #ifdef Q_OS_MAC in the QT code for Mac-specific cod= e. There's no
>>> > need
>>> > to define another macro.
>>> >
>>> > - Please add "MINIFY_HTML =3D False" to config_= local.py (and have Paresh
>>> > do
>>> > the same on his packages). This works around a code issue= with the docs
>>> > that
>>> > I'll log a bug for.
>>> >
>>> > - In testing, I found that running the app from within th= e DMG doesn't
>>> > seem
>>> > to work the first time - it prompts for the path, then ex= its. Once I
>>> > save
>>> > the path it offers, it's fine on subsequent runs.
>>> >
>>> > - Once copied to my laptop, I saw the same issue as above= .
>>> >
>>> > Once these issues are resolved, I think we're good to= commit.
>>>
>>> Oh, a couple more things:
>>>
>>> - There should not be a copy of the app bundle in dist/ follow= ing the
>>> build. Only the dmg should be there.
>>>
>>> - I think mac-build/ should be removed following a successful = build,
>>> rather than waiting for make clean (please talk to Paresh - hi= s code
>>> should do the same).
>>>
>>> --
>>> Dave Page
>>> Blog: http://pgsnake.blogspot.com
>>> Twitter: @pgsnake
>>>
>>> EnterpriseDB UK: http://www.enterprisedb.com
>>> The Enterprise PostgreSQL Company
>>
>>
>>
>>
>> --
>> Sandeep Thakkar
>>
>
>
>
> --
> Sandeep Thakkar
>



--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



--
=
Sandeep Thakkar

--001a113951b0143729053426d5cf-- --001a113951b0143731053426d5d1 Content-Type: application/octet-stream; name="pgadmin-mac-appbundle-jun01.patch" Content-Disposition: attachment; filename="pgadmin-mac-appbundle-jun01.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_iovq8rkz0 ZGlmZiAtLWdpdCBhLy5naXRpZ25vcmUgYi8uZ2l0aWdub3JlCmluZGV4IDVk ODRkZDIuLjU2MmZlZTYgMTAwNjQ0Ci0tLSBhLy5naXRpZ25vcmUKKysrIGIv LmdpdGlnbm9yZQpAQCAtMjQsNCArMjQsNSBAQCBwZ2FkbWluNC5sb2cKIC9w Z2FkbWluNC5lZ2ctaW5mbwogL01BTklGRVNULmluCiAvYnVpbGQKKy9tYWMt YnVpbGQKIC9kaXN0CmRpZmYgLS1naXQgYS9NYWtlZmlsZSBiL01ha2VmaWxl CmluZGV4IGFkYWU0MWMuLjNmNGU1ZmMgMTAwNjQ0Ci0tLSBhL01ha2VmaWxl CisrKyBiL01ha2VmaWxlCkBAIC0xMyw5ICsxMyw5IEBAIFNIRUxMID0gL2Jp bi9zaAogIyBIaWdoLWxldmVsIHRhcmdldHMKICMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMKIAotYWxsOiBpbnN0YWxsLXBpcC1yZXF1aXJlbWVudHMg cGlwCithbGw6IGRvY3MgaW5zdGFsbC1waXAtcmVxdWlyZW1lbnRzIHBpcCBh cHBidW5kbGUKIAotY2xlYW46IGNsZWFuLXBpcAorY2xlYW46IGNsZWFuLXBp cCBjbGVhbi1kb2NzIGNsZWFuLWFwcGJ1bmRsZQogCiAjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjCiAjIFB5dGhvbiBQSVAgcGFja2FnZQpAQCAtMzQs NiArMzQsNyBAQCBQSVBfQ0hFQ0tfQ01EID0gd2hpY2ggcGlwICY+IC9kZXYv bnVsbCAmJiBwaXAgc2hvdyBwaXAgfCBncmVwIE1ldGFkYXRhLVZlcnNpb24g MgogUEdBRE1JTl9TUkNfRElSID0gcGdhZG1pbjQKIFBHQURNSU5fRUdHID0g JHtQR0FETUlOX1NSQ19ESVJ9LmVnZy1pbmZvCiBQR0FETUlOX0JVSUxEID0g YnVpbGQKK1BHQURNSU5fTUFDQlVJTEQgPSBtYWMtYnVpbGQKIFBHQURNSU5f RElTVCA9IGRpc3QKIFBHQURNSU5fTUFOSUZFU1QgPSBNQU5JRkVTVC5pbgog UEdBRE1JTl9JTlNUQUxMX0NNRCA9IHBpcCBpbnN0YWxsIC0tdXNlLXdoZWVs IC0tZmluZC1saW5rcz0ke1BHQURNSU5fRElTVH0gJHtQR0FETUlOX1NSQ19E SVJ9CkBAIC04Myw5ICs4NCwyNCBAQCBlbmRpZgogaW5zdGFsbC1waXA6CiAJ JHtQR0FETUlOX0lOU1RBTExfQ01EfQogCithcHBidW5kbGU6IGRvY3MKKwku L3BrZy9tYWMvYnVpbGQuc2gKKworZG9jczoKKwlMQ19BTEw9ZW5fVVMuVVRG LTggTEFORz1lbl9VUy5VVEYtOCAkKE1BS0UpIC1DIGRvY3MvZW5fVVMgLWYg TWFrZWZpbGUuc3BoaW54IGh0bWwKKworY2xlYW4tZG9jczoKKwlMQ19BTEw9 ZW5fVVMuVVRGLTggTEFORz1lbl9VUy5VVEYtOCAkKE1BS0UpIC1DIGRvY3Mv ZW5fVVMgLWYgTWFrZWZpbGUuc3BoaW54IGNsZWFuCisKIGNsZWFuLXBpcDoK IAlybSAtcmYgJHtQR0FETUlOX1NSQ19ESVJ9CiAJcm0gLXJmICR7UEdBRE1J Tl9FR0d9CiAJcm0gLXJmICR7UEdBRE1JTl9CVUlMRH0KIAlybSAtcmYgJHtQ R0FETUlOX0RJU1R9CiAJcm0gLWYgJHtQR0FETUlOX01BTklGRVNUfQorCitj bGVhbi1hcHBidW5kbGU6CisJcm0gLXJmICR7UEdBRE1JTl9NQUNCVUlMRH0K KwlybSAtcmYgJHtQR0FETUlOX0RJU1R9L3BnYWRtaW40Ki5kbWcqCisKKy5Q SE9OWTogZG9jcwpkaWZmIC0tZ2l0IGEvcGtnL21hYy8uZ2l0aWdub3JlIGIv cGtnL21hYy8uZ2l0aWdub3JlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLjdkMjljYjAKLS0tIC9kZXYvbnVsbAorKysgYi9wa2cvbWFj Ly5naXRpZ25vcmUKQEAgLTAsMCArMSwzIEBACisjIEdsb2JhbCBleGNsdWRl cyBhY3Jvc3MgYWxsIHN1YmRpcmVjdG9yaWVzCitkZWJ1Zy5wZ2FkbWluLklu Zm8ucGxpc3QKK3BnYWRtaW4uSW5mby5wbGlzdApkaWZmIC0tZ2l0IGEvcGtn L21hYy9Qa2dJbmZvIGIvcGtnL21hYy9Qa2dJbmZvCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJkMDQyMTAKLS0tIC9kZXYvbnVsbAor KysgYi9wa2cvbWFjL1BrZ0luZm8KQEAgLTAsMCArMSBAQAorQVBQTD8/Pz8K XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9wa2cv bWFjL1JFQURNRS50eHQgYi9wa2cvbWFjL1JFQURNRS50eHQKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTg3YmYyNAotLS0gL2Rldi9u dWxsCisrKyBiL3BrZy9tYWMvUkVBRE1FLnR4dApAQCAtMCwwICsxLDMyIEBA CitCdWlsZGluZyBwZ0FkbWluNC5kbWcgb24gTWFjIE9TIFgKKz09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQorCitSZXF1aXJlZCBQYWNrYWdl cyAoRWl0aGVyIGJ1aWxkIHRoZSBzb3VyY2VzIG9yIGdldCB0aGVtIGZyb20g bWFjcG9ydHMgb3Igc2ltaWxhcik6CisKKzEuIFB5dGhvbiBpbnN0YWxsYXRp b24KKyAgLSBQeXRob24gMi42IG9yIGFib3ZlIGZyb20gaHR0cHM6Ly93d3cu cHl0aG9uLm9yZy8KKworMi4gUVQgaW5zdGFsbGF0aW9uCisgIC0gUXQgNCBv ciA1IGZyb20gaHR0cDovL3d3dy5xdC5pby8KKworMy4gUG9zdGdyZVNRTCBp bnN0YWxsYXRpb24KKyAgLSBQb3N0Z3JlU1FMIDkuMSBvciBhYm92ZSBmcm9t IGh0dHA6Ly93d3cucG9zdGdyZXNxbC5vcmcvCisKK0J1aWxkaW5nOgorCisx LiBTZXQgdGhlIFBZVEhPTl9IT01FIGVudmlyb25tZW50IHZhcmlhYmxlIHRv IHRoZSBQeXRob24gcm9vdCBpbnN0YWxsYXRpb24gZGlyZWN0b3J5LCBlLmcu CisKKyAgIGV4cG9ydCBQWVRIT05fSE9NRT0vU3lzdGVtL0xpYnJhcnkvRnJh bWV3b3Jrcy9QeXRob24uZnJhbWV3b3JrL1ZlcnNpb25zLzIuNworCisyLiBT ZXQgdGhlIFFURElSIGVudmlyb25tZW50IHZhcmlhYmxlIHRvIHRoZSBRVCBy b290IGluc3RhbGxhdGlvbiBkaXJlY3RvcnksIGUuZy4KKworICAgZXhwb3J0 IFFURElSPX4vUXQvNS41L2NsYW5nXzY0CisKKzMuIFNldCB0aGUgUEdESVIg ZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gdGhlIFBvc3RncmVTUUwgaW5zdGFs bGF0aW9uIGRpcmVjdG9yeSwgZS5nLgorCisgICBleHBvcnQgUEdESVI9L3Vz ci9sb2NhbC9wZ3NxbAorCis0LiBUbyBidWlsZCwgZ28gdG8gcGdBZG1pbjQg c291cmNlIHJvb3QgZGlyZWN0b3J5IGFuZCBleGVjdXRlICJtYWtlIGFwcGJ1 bmRsZSIuIFRoaXMgd2lsbAorICAgY3JlYXRlIHRoZSBweXRob24gdmlydHVh bCBlbnZpcm9ubWVudCBhbmQgaW5zdGFsbCBhbGwgdGhlIHJlcXVpcmVkIHB5 dGhvbiBtb2R1bGVzIG1lbnRpb25lZCBpbiB0aGUKKyAgIHJlcXVpcmVtZW50 cyBmaWxlIHVzaW5nIHBpcCwgYnVpbGQgdGhlIHJ1bnRpbWUgY29kZSBhbmQg ZmluYWxseSBjcmVhdGUgdGhlIGFwcCBidW5kbGUgYW5kIHRoZSBETUcgCisg ICBpbiAuL2Rpc3QgZGlyZWN0b3J5CmRpZmYgLS1naXQgYS9wa2cvbWFjL2J1 aWxkLnNoIGIvcGtnL21hYy9idWlsZC5zaApuZXcgZmlsZSBtb2RlIDEwMDc1 NQppbmRleCAwMDAwMDAwLi5kMzlhMDFiCi0tLSAvZGV2L251bGwKKysrIGIv cGtnL21hYy9idWlsZC5zaApAQCAtMCwwICsxLDE1MyBAQAorIyEvYmluL2Jh c2gKKworIyBCdWlsZCBzY3JpcHQgdG8gY3JlYXRlIE1hYyBBcHAgQnVuZGxl IGFuZCBETUcgZm9yIHBnQWRtaW40IHJ1bnRpbWUKKworZXhwb3J0IFdEPSQo Y2QgYGRpcm5hbWUgJDBgICYmIHB3ZCkKK2V4cG9ydCBTT1VSQ0VESVI9JFdE Ly4uLy4uCitleHBvcnQgQlVJTERST09UPSRXRC8uLi8uLi9tYWMtYnVpbGQK K2V4cG9ydCBESVNUUk9PVD0kV0QvLi4vLi4vZGlzdAorZXhwb3J0IFZJUlRV QUxFTlY9dmVudgorCitpZiBbICJ4JFBZVEhPTl9IT01FIiA9PSAieCIgXTsg dGhlbgorICAgIGVjaG8gIlBZVEhPTl9IT01FIG5vdCBzZXQuIFNldHRpbmcg aXQgdG8gZGVmYXVsdCIKKyAgICBleHBvcnQgUFlUSE9OX0hPTUU9L1N5c3Rl bS9MaWJyYXJ5L0ZyYW1ld29ya3MvUHl0aG9uLmZyYW1ld29yay9WZXJzaW9u cy8yLjcKKyAgICBleHBvcnQgUFlUSE9OX1ZFUlNJT049MjcKK2ZpCisKKyMg Q2hlY2sgaWYgUHl0aG9uIGlzIHdvcmtpbmcgYW5kIGNhbGN1bGF0ZSBQWVRI T05fVkVSU0lPTgoraWYgJFBZVEhPTl9IT01FL2Jpbi9weXRob24yIC1WID4g L2Rldi9udWxsIDI+JjE7IHRoZW4KKyAgICBleHBvcnQgUFlUSE9OX1ZFUlNJ T049YCRQWVRIT05fSE9NRS9iaW4vcHl0aG9uMiAtViAyPiYxIHwgYXdrICd7 cHJpbnQgJDJ9JyB8IGN1dCAtZCIuIiAtZjEtMiB8IHNlZCAncy9cLi8vJ2AK K2VsaWYgJFBZVEhPTl9IT01FL2Jpbi9weXRob24zIC1WID4gL2Rldi9udWxs IDI+JjE7IHRoZW4KKyAgICBleHBvcnQgUFlUSE9OX1ZFUlNJT049YCRQWVRI T05fSE9NRS9iaW4vcHl0aG9uMyAtViAyPiYxIHwgYXdrICd7cHJpbnQgJDJ9 JyB8IGN1dCAtZCIuIiAtZjEtMiB8IHNlZCAncy9cLi8vJ2AKK2Vsc2UKKyAg ICBlY2hvICJFcnJvcjogUHl0aG9uIGluc3RhbGxhdGlvbiBtaXNzaW5nISIK KyAgICBleGl0IDEKK2ZpCisKK2lmIFsgIiRQWVRIT05fVkVSU0lPTiIgLWd0 ICIzNCIgLWEgIiRQWVRIT05fVkVSU0lPTiIgLWx0ICIyNiIgXTsgdGhlbgor ICAgIGVjaG8gIlB5dGhvbiB2ZXJzaW9uIG5vdCBzdXBwb3J0ZWQiCisgICAg ZXhpdCAxCitmaQorCitpZiBbICIkUFlUSE9OX1ZFUlNJT04iIC1nZSAiMzAi IF07IHRoZW4KKyAgICBleHBvcnQgUFlUSE9OPSRQWVRIT05fSE9NRS9iaW4v cHl0aG9uMworICAgIGV4cG9ydCBQSVA9cGlwMworICAgIGV4cG9ydCBSRVFV SVJFTUVOVFM9cmVxdWlyZW1lbnRzX3B5My50eHQKK2Vsc2UKKyAgICBleHBv cnQgUFlUSE9OPSRQWVRIT05fSE9NRS9iaW4vcHl0aG9uMgorICAgIGV4cG9y dCBQSVA9cGlwCisgICAgZXhwb3J0IFJFUVVJUkVNRU5UUz1yZXF1aXJlbWVu dHNfcHkyLnR4dAorZmkKKworaWYgWyAieCRRVERJUiIgPT0gIngiIF07IHRo ZW4KKyAgICBlY2hvICJRVERJUiBub3Qgc2V0LiBTZXR0aW5nIGl0IHRvIGRl ZmF1bHQiCisgICAgZXhwb3J0IFFURElSPX4vUXQvNS41L2NsYW5nXzY0Citm aQorZXhwb3J0IFFNQUtFPSRRVERJUi9iaW4vcW1ha2UKK2lmICEgJFFNQUtF IC0tdmVyc2lvbiA+IC9kZXYvbnVsbCAyPiYxOyB0aGVuCisgICAgZWNobyAi RXJyb3I6IHFtYWtlIG5vdCBmb3VuZC4gUVQgaW5zdGFsbGF0aW9uIGlzIG5v dCBwcmVzZW50IG9yIGluY29tcGxldGUuIgorICAgIGV4aXQgMQorZmkKKwor aWYgWyAieCRQR0RJUiIgPT0gIngiIF07IHRoZW4KKyAgICBlY2hvICJQR0RJ UiBub3Qgc2V0LiBTZXR0aW5nIGl0IHRvIGRlZmF1bHQiCisgICAgZXhwb3J0 IFBHRElSPS91c3IvbG9jYWwvcGdzcWwKK2ZpCisKK19nZXRfdmVyc2lvbigp IHsKKyAgICBleHBvcnQgQVBQX1JFTEVBU0U9YGdyZXAgIl5BUFBfUkVMRUFT RSIgd2ViL2NvbmZpZy5weSB8IGN1dCAtZCI9IiAtZjIgfCBzZWQgJ3MvIC8v ZydgCisgICAgZXhwb3J0IEFQUF9SRVZJU0lPTj1gZ3JlcCAiXkFQUF9SRVZJ U0lPTiIgd2ViL2NvbmZpZy5weSB8IGN1dCAtZCI9IiAtZjIgfCBzZWQgJ3Mv IC8vZydgCisgICAgZXhwb3J0IEFQUF9OQU1FPWBncmVwICJeQVBQX05BTUUi IHdlYi9jb25maWcucHkgfCBjdXQgLWQiPSIgLWYyIHwgc2VkICJzLycvL2ci IHwgc2VkICdzL14gLy8nYAorICAgIGV4cG9ydCBBUFBfQlVORExFX05BTUU9 JEFQUF9OQU1FLmFwcAorICAgIGV4cG9ydCBBUFBfTE9OR19WRVJTSU9OPSRB UFBfUkVMRUFTRS4kQVBQX1JFVklTSU9OCisgICAgZXhwb3J0IEFQUF9TSE9S VF9WRVJTSU9OPWBlY2hvICRBUFBfTE9OR19WRVJTSU9OIHwgY3V0IC1kIC4g LWYxLDJgCisgICAgZXhwb3J0IEFQUF9TVUZGSVg9YGdyZXAgIl5BUFBfU1VG RklYIiB3ZWIvY29uZmlnLnB5IHwgY3V0IC1kIj0iIC1mMiB8IHNlZCAncy8g Ly9nJyB8IHNlZCAicy8nLy9nImAKKyAgICBpZiBbICEgLXogJEFQUF9TVUZG SVggXTsgdGhlbgorICAgICAgICBleHBvcnQgQVBQX0xPTkdfVkVSU0lPTj0k QVBQX0xPTkdfVkVSU0lPTi0kQVBQX1NVRkZJWAorICAgIGZpCit9CisKK19j bGVhbnVwKCkgeworICAgIGVjaG8gIkNsZWFuaW5nIHVwIHRoZSBvbGQgZW52 aXJvbm1lbnQgYW5kIGFwcCBidW5kbGUiCisgICAgcm0gLXJmICRTT1VSQ0VE SVIvcnVudGltZS9wZ0FkbWluNC5hcHAKKyAgICBybSAtcmYgJEJVSUxEUk9P VAorICAgIHJtIC1mICRESVNUUk9PVC9wZ2FkbWluNCouZG1nCit9CisKK19j cmVhdGVfcHl0aG9uX3ZpcnR1YWxlbnYoKSB7CisgICAgZXhwb3J0IFBBVEg9 JFBHRElSL2JpbjokUEFUSAorICAgIGV4cG9ydCBMRF9MSUJSQVJZX1BBVEg9 JFBHRElSL2xpYjokX0xEX0xJQlJBUllfUEFUSAorICAgIHRlc3QgLWQgJEJV SUxEUk9PVCB8fCBta2RpciAkQlVJTERST09UIHx8IGV4aXQgMQorICAgIGNk ICRCVUlMRFJPT1QKKyAgICB0ZXN0IC1kICRWSVJUVUFMRU5WIHx8IHZpcnR1 YWxlbnYgLXAgJFBZVEhPTiAkVklSVFVBTEVOViB8fCBleGl0IDEKKyAgICBz b3VyY2UgJFZJUlRVQUxFTlYvYmluL2FjdGl2YXRlCisgICAgJFBJUCBpbnN0 YWxsIC1yICRTT1VSQ0VESVIvJFJFUVVJUkVNRU5UUyB8fCB7IGVjaG8gUElQ IGluc3RhbGwgZmFpbGVkLiBQbGVhc2UgcmVzb2x2ZSB0aGUgaXNzdWUgYW5k IHJlcnVuIHRoZSBzY3JpcHQ7IGV4aXQgMTsgfQorCisgICAgIyBNb3ZlIHRo ZSBweXRob248dmVyc2lvbj4gZGlyZWN0b3J5IHRvIHB5dGhvbiBzbyB0aGF0 IHRoZSBwcml2YXRlIGVudmlyb25tZW50IHBhdGggaXMgZm91bmQgYnkgdGhl IGFwcGxpY2F0aW9uLgorICAgIGV4cG9ydCBQWU1PRFVMRVNfUEFUSD1gcHl0 aG9uIC1jICJmcm9tIGRpc3R1dGlscy5zeXNjb25maWcgaW1wb3J0IGdldF9w eXRob25fbGliOyBwcmludChnZXRfcHl0aG9uX2xpYigpKSJgCisgICAgZXhw b3J0IERJUl9QWU1PRFVMRVNfUEFUSD1gZGlybmFtZSAkUFlNT0RVTEVTX1BB VEhgCisgICAgaWYgdGVzdCAtZCAkRElSX1BZTU9EVUxFU19QQVRIOyB0aGVu CisgICAgICAgIG12ICRESVJfUFlNT0RVTEVTX1BBVEggJERJUl9QWU1PRFVM RVNfUEFUSC8uLi9weXRob24KKyAgICBmaQorfQorCitfYnVpbGRfcnVudGlt ZSgpIHsKKyAgICBfY3JlYXRlX3B5dGhvbl92aXJ0dWFsZW52IHx8IGV4aXQg MQorICAgIGNkICRTT1VSQ0VESVIvcnVudGltZQorICAgICRRTUFLRSB8fCB7 IGVjaG8gcW1ha2UgZmFpbGVkOyBleGl0IDE7IH0KKyAgICBtYWtlIHx8IHsg ZWNobyBtYWtlIGZhaWxlZDsgZXhpdCAxOyB9CisgICAgY3AgLXIgcGdBZG1p bjQuYXBwICIkQlVJTERST09ULyRBUFBfQlVORExFX05BTUUiCit9CisKK19i dWlsZF9kb2MoKSB7CisgICAgY2QgJFNPVVJDRURJUi9kb2NzL2VuX1VTCisg ICAgIyBDb21tZW50aW5nIHRoZSBidWlsZCBhcyBpdCBpcyB0YWtlbiBjYXJl IGJ5IE1ha2VmaWxlCisgICAgI0xDX0FMTD1lbl9VUy5VVEYtOCBMQU5HPWVu X1VTLlVURi04IG1ha2UgLWYgTWFrZWZpbGUuc3BoaW54IGh0bWwgfHwgZXhp dCAxCisgICAgdGVzdCAtZCAiJEJVSUxEUk9PVC8kQVBQX0JVTkRMRV9OQU1F L0NvbnRlbnRzL1Jlc291cmNlcyIgfHwgIm1rZGlyIC1wICRCVUlMRFJPT1Qv JEFQUF9CVU5ETEVfTkFNRS9Db250ZW50cy9SZXNvdXJjZXMiCisgICAgdGVz dCAtZCAiJEJVSUxEUk9PVC8kQVBQX0JVTkRMRV9OQU1FL0NvbnRlbnRzL1Jl c291cmNlcy9kb2NzL2VuX1VTIiB8fCBta2RpciAtcCAiJEJVSUxEUk9PVC8k QVBQX0JVTkRMRV9OQU1FL0NvbnRlbnRzL1Jlc291cmNlcy9kb2NzL2VuX1VT IgorICAgIGNwIC1yIF9idWlsZC9odG1sICIkQlVJTERST09ULyRBUFBfQlVO RExFX05BTUUvQ29udGVudHMvUmVzb3VyY2VzL2RvY3MvZW5fVVMvIiB8fCBl eGl0IDEKK30KKworX2NvbXBsZXRlX2J1bmRsZSgpIHsKKyAgICBjZCAkU09V UkNFRElSL3BrZy9tYWMKKyAgICAKKyAgICAjIFJlcGxhY2UgdGhlIHBsYWNl IGhvbGRlcnMgd2l0aCB0aGUgY3VycmVudCB2ZXJzaW9uCisgICAgc2VkIC1l ICJzL1BHQURNSU5fTE9OR19WRVJTSU9OLyRBUFBfTE9OR19WRVJTSU9OL2ci IC1lICJzL1BHQURNSU5fU0hPUlRfVkVSU0lPTi8kQVBQX1NIT1JUX1ZFUlNJ T04vZyIgcGdhZG1pbi5JbmZvLnBsaXN0LmluID4gcGdhZG1pbi5JbmZvLnBs aXN0CisKKyAgICAjIGNvcHkgUHl0aG9uIHByaXZhdGUgZW52aXJvbm1lbnQg dG8gYXBwIGJ1bmRsZQorICAgIGNwIC1QUiAkQlVJTERST09ULyRWSVJUVUFM RU5WICIkQlVJTERST09ULyRBUFBfQlVORExFX05BTUUvQ29udGVudHMvUmVz b3VyY2VzLyIgfHwgZXhpdCAxCisKKyAgICAjIHJlbW92ZSB0aGUgcHl0aG9u IGJpbiBhbmQgaW5jbHVkZSBmcm9tIGFwcCBidW5kbGUgYXMgaXQgaXMgbm90 IG5lZWRlZAorICAgIHJtIC1yZiAiJEJVSUxEUk9PVC8kQVBQX0JVTkRMRV9O QU1FL0NvbnRlbnRzL1Jlc291cmNlcy8kVklSVFVBTEVOVi9iaW4iICIkQlVJ TERST09ULyRBUFBfQlVORExFX05BTUUvQ29udGVudHMvUmVzb3VyY2VzLyRW SVJUVUFMRU5WL2luY2x1ZGUiCisgICAgcm0gLXJmICIkQlVJTERST09ULyRB UFBfQlVORExFX05BTUUvQ29udGVudHMvUmVzb3VyY2VzLyRWSVJUVUFMRU5W Ly5QeXRob24iCisKKyAgICAjIHJ1biBjb21wbGV0ZS1idW5kbGUgdG8gY29w eSB0aGUgZGVwZW5kZW50IGxpYnJhcmllcyBhbmQgZnJhbWV3b3JrcyBhbmQg Zml4IHRoZSBycGF0aHMKKyAgICAuL2NvbXBsZXRlLWJ1bmRsZS5zaCAiJEJV SUxEUk9PVC8kQVBQX0JVTkRMRV9OQU1FIiB8fCB7IGVjaG8gY29tcGxldGUt YnVuZGxlLnNoIGZhaWxlZDsgZXhpdCAxOyB9CisKKyAgICAjIGNvcHkgdGhl IHdlYiBkaXJlY3RvcnkgdG8gdGhlIGJ1bmRsZSBhcyBpdCBpcyByZXF1aXJl ZCBieSBydW50aW1lCisgICAgY3AgLXIgJFNPVVJDRURJUi93ZWIgIiRCVUlM RFJPT1QvJEFQUF9CVU5ETEVfTkFNRS9Db250ZW50cy9SZXNvdXJjZXMvIiB8 fCBleGl0IDEKKyAgICBjZCAiJEJVSUxEUk9PVC8kQVBQX0JVTkRMRV9OQU1F L0NvbnRlbnRzL1Jlc291cmNlcy93ZWIiCisgICAgcm0gLWYgcGdhZG1pbjQu ZGIgY29uZmlnX2xvY2FsLioKKyAgICBlY2hvICJTRVJWRVJfTU9ERSA9IEZh bHNlIiA+IGNvbmZpZ19sb2NhbC5weQorICAgIGVjaG8gIk1JTklGWV9IVE1M ID0gRmFsc2UiID4+IGNvbmZpZ19sb2NhbC5weQorICAgIGVjaG8gIkhFTFBf UEFUSCA9ICcuLi8uLi8uLi9kb2NzL2VuX1VTL2h0bWwvJyIgPj4gY29uZmln X2xvY2FsLnB5CisKKyAgICAjIFJlbW92ZSB0aGUgLnB5YyBmaWxlcyBpZiBh bnkKKyAgICBjZCAiJEJVSUxEUk9PVC8kQVBQX0JVTkRMRV9OQU1FIgorICAg IGZpbmQgLiAtbmFtZSAqLnB5YyB8IHhhcmdzIHJtIC1mIAorCit9CisKK19j cmVhdGVfZG1nKCkgeworICAgIGNkICRTT1VSQ0VESVIKKyAgICAuL3BrZy9t YWMvY3JlYXRlLWRtZy5zaCB8fCB7IGVjaG8gY3JlYXRlLWRtZy5zaCBmYWls ZWQ7IGV4aXQgMTsgfQorICAgICMgQ2xlYW4gdGhlIG1hYy1idWlsZC8gb24g c3VjY2Vzc2Z1bCBidWlsZAorICAgIHJtIC1yZiAkQlVJTERST09ULyoKK30K KworX2dldF92ZXJzaW9uIHx8IHsgZWNobyBDb3VsZCBub3QgZ2V0IHZlcnNp b25pbmc7IGV4aXQgMTsgfQorX2NsZWFudXAKK19idWlsZF9ydW50aW1lIHx8 IHsgZWNobyBSdW50aW1lIGJ1aWxkIGZhaWxlZDsgZXhpdCAxOyB9CitfYnVp bGRfZG9jCitfY29tcGxldGVfYnVuZGxlCitfY3JlYXRlX2RtZwpkaWZmIC0t Z2l0IGEvcGtnL21hYy9jb21wbGV0ZS1idW5kbGUuc2ggYi9wa2cvbWFjL2Nv bXBsZXRlLWJ1bmRsZS5zaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAw MDAwMDAwLi5mOTU0ZDExCi0tLSAvZGV2L251bGwKKysrIGIvcGtnL21hYy9j b21wbGV0ZS1idW5kbGUuc2gKQEAgLTAsMCArMSwxNDAgQEAKKyMhL2Jpbi9z aAorCitidW5kbGU9IiQxIgorCitpZiAhIHRlc3QgLWQgIiRidW5kbGUiIDsg dGhlbgorCWVjaG8gIiRidW5kbGUgaXMgbm8gYnVuZGxlISIgPiYyCisJZXhp dCAxCitmaQorCitpZiB0ZXN0IC16ICRRVERJUiA7IHRoZW4KKwllY2hvICJR VERJUiBlbnZpcm9ubWVudCB2YXJpYWJsZSBub3Qgc2V0IgorCWV4aXQgMQor ZWxzZQorCWVjaG8gIlFURElSPSRRVERJUiIKK2ZpCisKK3Rlc3QgLWQgIiRi dW5kbGUvQ29udGVudHMvUmVzb3VyY2VzIiB8fCBta2RpciAtcCAiJGJ1bmRs ZS9Db250ZW50cy9SZXNvdXJjZXMiIHx8IGV4aXQgMQorIyBDcmVhdGUgcXQu Y29uZiBzbyB0aGF0IGFwcCBrbm93cyB3aGVyZSB0aGUgUGx1Z2lucyBhcmUg cHJlc2VudAorY2F0ID4+ICIkYnVuZGxlL0NvbnRlbnRzL1Jlc291cmNlcy9x dC5jb25mIiA8PCBFT0YKK1tQYXRoc10KK1BsdWdpbnMgPSBQbHVnSW5zCitF T0YKKwordGVzdCAtZCAiJGJ1bmRsZS9Db250ZW50cy9GcmFtZXdvcmtzIiB8 fCBta2RpciAtcCAiJGJ1bmRsZS9Db250ZW50cy9GcmFtZXdvcmtzIiB8fCBl eGl0IDEKK3Rlc3QgLWQgIiRidW5kbGUvQ29udGVudHMvUGx1Z0lucy9wbGF0 Zm9ybXMiIHx8IG1rZGlyIC1wICIkYnVuZGxlL0NvbnRlbnRzL1BsdWdJbnMv cGxhdGZvcm1zIiB8fCBleGl0IDEKK2NwIC1mICRRVERJUi9wbHVnaW5zL3Bs YXRmb3Jtcy9saWJxY29jb2EuZHlsaWIgIiRidW5kbGUvQ29udGVudHMvUGx1 Z0lucy9wbGF0Zm9ybXMiIHx8IHsgZWNobyBsaWJxY29jb2EuZHlsaWIgbm90 IGZvdW5kIGluICRRVERJUi9wbHVnaW5zL3BsYXRmb3JtczsgZXhpdCAxOyB9 CitjcCAtZiAkUEdESVIvbGliL2xpYnBxLjUuZHlsaWIgIiRidW5kbGUvQ29u dGVudHMvRnJhbWV3b3JrcyIgfHwgeyBlY2hvIGxpYnBxLjUuZHlsaWIgbm90 IGZvdW5kIGluICRQR0RJUjsgZXhpdCAxOyB9CisKK2Z1bmN0aW9uIENvbXBs ZXRlU2luZ2xlQXBwKCkgeworCWxvY2FsIGJ1bmRsZT0kMSB0YWc9JChiYXNl bmFtZSAiJDEiKSB0b2RvIHRvZG9fb2xkIGZ3X3JlbHBhdGggbGliIGxpYl9i biBuZXN0ZWRfYXBwIG5hX3JlbHBhdGgKKworCWVjaG8gIkNvbXBsZXRpbmcg YXBwOiAkYnVuZGxlIgorCXB1c2hkICIkYnVuZGxlIiA+IC9kZXYvbnVsbAor CisJI1dlIHNraXAgbmVzdGVkIGFwcHMgaGVyZSAtIHRob3NlIGFyZSB0cmVh dGVkIHNwZWNpYWxseQorCXRvZG89JChmaWxlIGBmaW5kIC4vIC1wZXJtICsw MTExICEgLXR5cGUgZCAhIC1wYXRoICIqLmFwcC8qIiAhIC1uYW1lICIqLmFw cCJgIHwgZ3JlcCAtRSAiTWFjaC1PIDY0LWJpdCIgfCBhd2sgLUYgJzp8ICcg J3tPUlM9IiAiOyBwcmludCAkMX0nIHwgdW5pcSkKKworCWVjaG8gIkFwcDog JHRhZzogRm91bmQgZXhlY3V0YWJsZXM6ICR0b2RvIgorCXdoaWxlIHRlc3Qg IiR0b2RvIiAhPSAiIjsgZG8KKwkJdG9kb19vbGQ9JHRvZG8gOworCQl0b2Rv PSIiIDsKKwkJZm9yIHRvZG9fb2JqIGluICR0b2RvX29sZDsgZG8KKwkJCWVj aG8gIkFwcDogJHRhZzogUG9zdC1wcm9jZXNzaW5nOiAkdG9kb19vYmoiCisK KwkJCSNGaWd1cmUgb3V0IHRoZSByZWxhdGl2ZSBwYXRoIGZyb20gdG9kb19v YmogdG8gQ29udGVudHMvRnJhbWV3b3JrcworCQkJZndfcmVscGF0aD0kKGVj aG8gIiR0b2RvX29iaiIgfFwKKwkJCQlzZWQgLW4gJ3N8XlwoXC4vLypcKVwo XChbXi9dW14vXSovXCkqXClbXi9dW14vXSokfFwyfGdwJyB8IFwKKwkJCQlz ZWQgLW4gJ3N8W14vXVteL10qL3wuLi98Z3AnIFwKKwkJCSkiQ29udGVudHMv RnJhbWV3b3JrcyIKKwkJCWZ3X3JlbHBhdGhfb2xkPSRmd19yZWxwYXRoCisK KwkJCWZ3X2xvYz0iQ29udGVudHMvRnJhbWV3b3JrcyIKKworCQkJI0ZpbmQg YWxsIGxpYnJhcmllcyAkdG9kb19vYmogZGVwZW5kcyBvbiwgYnV0IHNraXAg c3lzdGVtIGxpYnJhcmllcworCQkJZm9yIGxpYiBpbiAkKAorCQkJCW90b29s IC1MICR0b2RvX29iaiB8IFwKKwkJCQlncmVwICJRdFx8ZHlsaWJcfEZyYW1l d29ya3NcfFBsdWdJbnMiIHwgZ3JlcCAtdiAiOiIgfCBzZWQgJ3MvKC4qLy8n IHwgZWdyZXAgLXYgJygvdXNyL2xpYil8KC9TeXN0ZW0pfEBleGVjdXRhYmxl X3BhdGhAJyBcCisJCQkpICQob3Rvb2wgLUwgJHRvZG9fb2JqIHwgZ3JlcCAi UHl0aG9uIiB8IGdyZXAgLXYgIjoiIHwgc2VkICdzLyguKi8vJyBcCisJCQkp OyBkbworCQkJCWlmIGVjaG8gJGxpYiB8IGdyZXAgIlBsdWdJbnNcfGxpYnFj b2NvYSIgID4gL2Rldi9udWxsOyB0aGVuCisJCQkJCWxpYl9sb2M9IkNvbnRl bnRzL1BsdWdJbnMvcGxhdGZvcm1zIgorCQkJCWVsaWYgZWNobyAkbGliIHwg Z3JlcCAiUXQiID4gL2Rldi9udWxsOyB0aGVuCisJCQkJCXF0ZndfcGF0aD0i JChkaXJuYW1lICRsaWIgfCBzZWQgJ3N8LipcKFF0LipmcmFtZXdvcmtcKXxc MXwnKSIKKwkJCQkJbGliX2xvYz0iQ29udGVudHMvRnJhbWV3b3Jrcy8kcXRm d19wYXRoIgorCQkJCQlpZiBbICIkKGJhc2VuYW1lICR0b2RvX29iaikiID0g IiRsaWIiIF07IHRoZW4KKwkJCQkJCWxpYl9sb2M9IiQoZGlybmFtZSAkdG9k b19vYmopIgorCQkJCQkJcXRmd19wYXRoPSQoZWNobyAkbGliX2xvYyB8IHNl ZCAncy9Db250ZW50c1wvRnJhbWV3b3Jrc1wvLy8nKQorCQkJCQlmaQorCQkJ CWVsaWYgZWNobyAkbGliIHwgZ3JlcCAiUHl0aG9uIiA+IC9kZXYvbnVsbDsg dGhlbgorCQkJCQlweWZ3X3BhdGg9IiQoZGlybmFtZSAkbGliIHwgc2VkICdz fC4qXChQeXRob24uKmZyYW1ld29ya1wpfFwxfCcpIgorCQkJCQlsaWJfbG9j PSJDb250ZW50cy9GcmFtZXdvcmtzLyRweWZ3X3BhdGgiCisJCQkJCWlmIFsg IiQoYmFzZW5hbWUgJHRvZG9fb2JqKSIgPSAiJGxpYiIgXTsgdGhlbgorCQkJ CQkJbGliX2xvYz0iJChkaXJuYW1lICR0b2RvX29iaikiCisJCQkJCQlweWZ3 X3BhdGg9JChlY2hvICRsaWJfbG9jIHwgc2VkICdzL0NvbnRlbnRzXC9GcmFt ZXdvcmtzXC8vLycpCisJCQkJCWZpCisJCQkJZWxzZQorCQkJCQlsaWJfbG9j PSJDb250ZW50cy9GcmFtZXdvcmtzIgorCQkJCWZpCisJCQkJbGliX2JuPSIk KGJhc2VuYW1lICIkbGliIikiIDsKKwkJCQlpZiAhIHRlc3QgLWYgIiRsaWJf bG9jLyRsaWJfYm4iOyB0aGVuCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdGFyZ2V0X2ZpbGU9IiIKKwkJCQkJdGFyZ2V0X3Bh dGg9IiIKKwkJCQkJZWNobyAiQXBwOiAkdGFnOiBBZGRpbmcgc3ltbGluazog JGxpYl9ibiAoYmVjYXVzZSBvZjogJHRvZG9fb2JqKSIKKwkJCQkJIyBDb3B5 IHRoZSBRVCBhbmQgUHl0aG9uIGZyYW1ld29yaworCQkJCQlpZiBlY2hvICRs aWIgfCBncmVwIFF0ID4gL2Rldi9udWxsIDsgdGhlbgorCQkJCQkJdGVzdCAt ZCAkbGliX2xvYyB8fCBta2RpciAtcCAkbGliX2xvYworCQkJCQkJY3AgJFFU RElSL2xpYi8kcXRmd19wYXRoLyRsaWJfYm4gJGxpYl9sb2MvCisJCQkJCWVs aWYgZWNobyAkbGliIHwgZ3JlcCBQeXRob24gPiAvZGV2L251bGwgOyB0aGVu CisJCQkJCQl0ZXN0IC1kICRsaWJfbG9jIHx8IG1rZGlyIC1wICRsaWJfbG9j CisJCQkJCQljcCAtUiAiJGxpYiIgIiRsaWJfbG9jLyRsaWJfYm4iCisJCQkJ CWVsc2UKKwkJCQkJCWNwIC1SICIkbGliIiAiJGxpYl9sb2MvJGxpYl9ibiIK KwkJCQkJZmkKKwkJCQkJaWYgISB0ZXN0IC1MICIkbGliX2xvYy8kbGliX2Ju IjsgdGhlbgorCQkJCQkJY2htb2QgNzU1ICIkbGliX2xvYy8kbGliX2JuIgor CQkJCQllbHNlCisJCQkJCQl0YXJnZXRfZmlsZT0kKHJlYWRsaW5rICIkbGli IikKKwkJCQkJCXRhcmdldF9wYXRoPSQoZGlybmFtZSAiJGxpYiIpLyR0YXJn ZXRfZmlsZQorCQkJCQkgICAgICAgIGVjaG8gIkFwcDogJHRhZzogQWRkaW5n IHN5bWxpbmsgdGFyZ2V0OiAkdGFyZ2V0X3BhdGgiCisJCQkJCQljcCAiJHRh cmdldF9wYXRoIiAiJGxpYl9sb2MvJHRhcmdldF9maWxlIgorCQkJCQkJY2ht b2QgNzU1ICIkbGliX2xvYy8kdGFyZ2V0X2ZpbGUiCisJCQkJCWZpCisJCQkJ CWVjaG8gIlJld3JpdGluZyBJRCBpbiAkbGliX2xvYy8kbGliX2JuIHRvICRs aWJfYm4iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZWNobyBpbnN0YWxsX25hbWVfdG9vbCAtaWQgIiRsaWJfYm4iICIkbGli X2xvYy8kbGliX2JuIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGluc3RhbGxfbmFtZV90b29sIFwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1pZCAiJGxpYl9i biIgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIiRsaWJfbG9jLyRsaWJfYm4iIHx8IGV4aXQgMQorCQkJCQl0 b2RvPSIkdG9kbyAuLyRsaWJfbG9jLyRsaWJfYm4iCisJCQkJZmkKKwkJCQlp ZiBlY2hvICRsaWIgfCBncmVwIFF0ID4gL2Rldi9udWxsIDsgdGhlbgorCQkJ CQlmd19yZWxwYXRoPSIkZndfcmVscGF0aC8kcXRmd19wYXRoIgorCQkJCWZp CisJCQkJaWYgZWNobyAkbGliIHwgZ3JlcCBQeXRob24gPiAvZGV2L251bGwg OyB0aGVuCisJCQkJCWZ3X3JlbHBhdGg9IiRmd19yZWxwYXRoLyRweWZ3X3Bh dGgiCisJCQkJZmkKKwkJCQllY2hvICJSZXdyaXRpbmcgbGlicmFyeSAkbGli IHRvIEBsb2FkZXJfcGF0aC8kZndfcmVscGF0aC8kbGliX2JuIGluICR0b2Rv X29iaiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBlY2hvIGluc3RhbGxfbmFtZV90b29sIC1jaGFuZ2UgIiRsaWIiICJAbG9h ZGVyX3BhdGgvJGZ3X3JlbHBhdGgvJGxpYl9ibiIgIiR0b2RvX29iaiIKKwkJ CQlpbnN0YWxsX25hbWVfdG9vbCAtY2hhbmdlIFwKKwkJCQkJIiRsaWIiIFwK KwkJCQkJIkBsb2FkZXJfcGF0aC8kZndfcmVscGF0aC8kbGliX2JuIiBcCisJ CQkJCSIkdG9kb19vYmoiIHx8IGV4aXQgMQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBpbnN0YWxsX25hbWVfdG9vbCAtY2hhbmdlIFwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJHRhcmdl dF9wYXRoIiBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIkBsb2FkZXJfcGF0aC8kZndfcmVscGF0aC8kdGFyZ2V0X2ZpbGUi IFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi JHRvZG9fb2JqIiB8fCBleGl0IDEKKwkJCQlmd19yZWxwYXRoPSIkZndfcmVs cGF0aF9vbGQiCisJCQlkb25lCisJCWRvbmUKKwlkb25lCisKKwkjIEZpeCB0 aGUgcnBhdGhzIGZvciBwc3ljb3BnIG1vZHVsZQorCWZpbmQgIiRidW5kbGUv Q29udGVudHMvUmVzb3VyY2VzL3ZlbnYvIiAtbmFtZSBfcHN5Y29wZy5zbyAt cHJpbnQwIHwgeGFyZ3MgLTAgaW5zdGFsbF9uYW1lX3Rvb2wgLWNoYW5nZSBs aWJwcS41LmR5bGliIEBsb2FkZXJfcGF0aC8uLi8uLi8uLi8uLi8uLi8uLi9G cmFtZXdvcmtzL2xpYnBxLjUuZHlsaWIKKwlmaW5kICIkYnVuZGxlL0NvbnRl bnRzL1Jlc291cmNlcy92ZW52LyIgLW5hbWUgX3BzeWNvcGcuc28gLXByaW50 MCB8IHhhcmdzIC0wIGluc3RhbGxfbmFtZV90b29sIC1jaGFuZ2UgbGlic3Ns LjEuMC4wLmR5bGliIEBsb2FkZXJfcGF0aC8uLi8uLi8uLi8uLi8uLi8uLi9G cmFtZXdvcmtzL2xpYnNzbC4xLjAuMC5keWxpYgorCWZpbmQgIiRidW5kbGUv Q29udGVudHMvUmVzb3VyY2VzL3ZlbnYvIiAtbmFtZSBfcHN5Y29wZy5zbyAt cHJpbnQwIHwgeGFyZ3MgLTAgaW5zdGFsbF9uYW1lX3Rvb2wgLWNoYW5nZSBs aWJjcnlwdG8uMS4wLjAuZHlsaWIgQGxvYWRlcl9wYXRoLy4uLy4uLy4uLy4u Ly4uLy4uL0ZyYW1ld29ya3MvbGliY3J5cHRvLjEuMC4wLmR5bGliCisKKwll Y2hvICJBcHAgY29tcGxldGVkOiAkYnVuZGxlIgorCXBvcGQgPiAvZGV2L251 bGwKK30KKworQ29tcGxldGVTaW5nbGVBcHAgIiRidW5kbGUiCmRpZmYgLS1n aXQgYS9wa2cvbWFjL2NyZWF0ZS1kbWcuc2ggYi9wa2cvbWFjL2NyZWF0ZS1k bWcuc2gKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMWQy OTBhYgotLS0gL2Rldi9udWxsCisrKyBiL3BrZy9tYWMvY3JlYXRlLWRtZy5z aApAQCAtMCwwICsxLDM4IEBACisjIS9iaW4vc2gKKworIyBtb3ZlIHRvIHRo ZSBkaXJlY3Rvcnkgd2hlcmUgd2Ugd2FudCB0byBjcmVhdGUgdGhlIERNRwor dGVzdCAtZCAkRElTVFJPT1QgfHwgbWtkaXIgJERJU1RST09UCitjZCAkRElT VFJPT1QKKworRE1HX1NPVVJDRVM9Ii4vLi4vbWFjLWJ1aWxkLyRBUFBfQlVO RExFX05BTUUiCitETUdfTElDRU5DRT0uLy4uL3BrZy9tYWMvbGljZW5jZS5y CitETUdfVk9MVU1FX05BTUU9JEFQUF9OQU1FCitETUdfTkFNRT1gZWNobyAk RE1HX1ZPTFVNRV9OQU1FIHwgc2VkICdzLyAvL2cnIHwgYXdrICd7cHJpbnQg dG9sb3dlcigkMCl9J2AKK0RNR19JTUFHRT0kRE1HX05BTUUtJEFQUF9MT05H X1ZFUlNJT04uZG1nCitIRElVVElMPS91c3IvYmluL2hkaXV0aWwKK1JFWj0i L3Vzci9iaW4vUmV6IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NhcmJv bi5mcmFtZXdvcmsvVmVyc2lvbnMvQS9IZWFkZXJzLyouciIKKworRE1HX0RJ Uj0uLyRETUdfSU1BR0Uuc3JjCisKK2lmIHRlc3QgLWUgIiRETUdfRElSIjsg dGhlbgorCWVjaG8gIkRpcmVjdG9yeSAkRE1HX0RJUiBhbHJlYWR5IGV4aXN0 cy4gUGxlYXNlIGRlbGV0ZSBpdCBtYW51YWxseS4iID4mMgorCWV4aXQgMQor ZmkKKworZWNobyAiQ2xlYW5pbmcgdXAiCitybSAtZiAiJERNR19JTUFHRSIg fHwgZXhpdCAxCitta2RpciAiJERNR19ESVIiIHx8IGV4aXQgMQorCitlY2hv ICJDb3B5aW5nIGRhdGEgaW50byB0ZW1wb3JhcnkgZGlyZWN0b3J5IgorZm9y IHNyYyBpbiAiJERNR19TT1VSQ0VTIjsgZG8KKwljcCAtUiAiJHNyYyIgIiRE TUdfRElSIiB8fCBleGl0IDEKK2RvbmUKKworZWNobyAiQ3JlYXRpbmcgaW1h Z2UiCiskSERJVVRJTCBjcmVhdGUgLXF1aWV0IC1zcmNmb2xkZXIgIiRETUdf RElSIiAtZm9ybWF0IFVEWk8gLXZvbG5hbWUgIiRETUdfVk9MVU1FX05BTUUi IC1vdiAiJERNR19JTUFHRSIgfHwgZXhpdCAxCitybSAtcmYgIiRETUdfRElS IiB8fCBleGl0IDEKKworZWNobyAiQXR0YWNoaW5nIExpY2Vuc2UgdG8gaW1h Z2UiCiskSERJVVRJTCB1bmZsYXR0ZW4gLXF1aWV0ICIkRE1HX0lNQUdFIiB8 fCBleGl0IDEKKyRSRVogIiRETUdfTElDRU5DRSIgLWEgLW8gIiRETUdfSU1B R0UiIHx8IGV4aXQgMQorJEhESVVUSUwgZmxhdHRlbiAtcXVpZXQgIiRETUdf SU1BR0UiIHx8IGV4aXQgMQpkaWZmIC0tZ2l0IGEvcGtnL21hYy9saWNlbmNl LnIgYi9wa2cvbWFjL2xpY2VuY2UucgpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi44OGE4OWFmCi0tLSAvZGV2L251bGwKKysrIGIvcGtn L21hYy9saWNlbmNlLnIKQEAgLTAsMCArMSw0MiBAQAorZGF0YSAnTFBpYycg 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 IE1PRElGSUNBVElPTlMuXG4iCit9OworCmRpZmYgLS1naXQgYS9wa2cvbWFj L3BnYWRtaW4uSW5mby5wbGlzdC5pbiBiL3BrZy9tYWMvcGdhZG1pbi5JbmZv LnBsaXN0LmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LmZiNTdhYzgKLS0tIC9kZXYvbnVsbAorKysgYi9wa2cvbWFjL3BnYWRtaW4u SW5mby5wbGlzdC5pbgpAQCAtMCwwICsxLDI4IEBACis8P3htbCB2ZXJzaW9u PSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCFET0NUWVBFIHBsaXN0IFBV QkxJQyAiLS8vQXBwbGUgQ29tcHV0ZXIvL0RURCBQTElTVCAxLjAvL0VOIiAi aHR0cDovL3d3dy5hcHBsZS5jb20vRFREcy9Qcm9wZXJ0eUxpc3QtMS4wLmR0 ZCI+Cis8cGxpc3QgdmVyc2lvbj0iMS4wIj4KKzxkaWN0PgorCTxrZXk+Q0ZC dW5kbGVEZXZlbG9wbWVudFJlZ2lvbjwva2V5PgorCTxzdHJpbmc+RW5nbGlz aDwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVFeGVjdXRhYmxlPC9rZXk+CisJ PHN0cmluZz5wZ0FkbWluNDwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVHZXRJ bmZvU3RyaW5nPC9rZXk+CisJPHN0cmluZz5wZ0FkbWluNCBQR0FETUlOX0xP TkdfVkVSU0lPTjwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVJY29uRmlsZTwv a2V5PgorCTxzdHJpbmc+cGdBZG1pbjQuaWNuczwvc3RyaW5nPgorCTxrZXk+ Q0ZCdW5kbGVJZGVudGlmaWVyPC9rZXk+CisJPHN0cmluZz5vcmcucG9zdGdy ZXNxbC5wZ2FkbWluPC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZUluZm9EaWN0 aW9uYXJ5VmVyc2lvbjwva2V5PgorCTxzdHJpbmc+Ni4wPC9zdHJpbmc+CisJ PGtleT5DRkJ1bmRsZVBhY2thZ2VUeXBlPC9rZXk+CisJPHN0cmluZz5BUFBM PC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZVNob3J0VmVyc2lvblN0cmluZzwv a2V5PgorCTxzdHJpbmc+UEdBRE1JTl9TSE9SVF9WRVJTSU9OPC9zdHJpbmc+ CisJPGtleT5DRkJ1bmRsZVNpZ25hdHVyZTwva2V5PgorCTxzdHJpbmc+Pz8/ Pzwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVWZXJzaW9uPC9rZXk+CisJPHN0 cmluZz5QR0FETUlOX0xPTkdfVkVSU0lPTjwvc3RyaW5nPgorCTxrZXk+Q1NS ZXNvdXJjZXNGaWxlTWFwcGVkPC9rZXk+CisJPHRydWUvPgorPC9kaWN0Pgor PC9wbGlzdD4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvU2VydmVyLmNwcCBiL3J1 bnRpbWUvU2VydmVyLmNwcAppbmRleCA4NjkxMjI0Li5kYTJjOWRjIDEwMDY0 NAotLS0gYS9ydW50aW1lL1NlcnZlci5jcHAKKysrIGIvcnVudGltZS9TZXJ2 ZXIuY3BwCkBAIC0yMyw3ICsyMyw3IEBACiAjaW5jbHVkZSAiU2VydmVyLmgi CiAKIFNlcnZlcjo6U2VydmVyKHF1aW50MTYgcG9ydCkKLXsgICAgCit7CiAg ICAgLy8gQXBwc2VydmVyIHBvcnQKICAgICBtX3BvcnQgPSBwb3J0OwogICAg IG1fd2NBcHBOYW1lID0gTlVMTDsKQEAgLTQ3LDYgKzQ3LDE4IEBAIFNlcnZl cjo6U2VydmVyKHF1aW50MTYgcG9ydCkKICAgICAvLyBTZXR1cCB0aGUgc2Vh cmNoIHBhdGgKICAgICBRU2V0dGluZ3Mgc2V0dGluZ3M7CiAgICAgUVN0cmlu ZyBweXRob25fcGF0aCA9IHNldHRpbmdzLnZhbHVlKCJQeXRob25QYXRoIiku dG9TdHJpbmcoKTsKKyNpZmRlZiBRX09TX01BQworICAgIFFTdHJpbmcgYXBw X2RpciA9IHFBcHAtPmFwcGxpY2F0aW9uRGlyUGF0aCgpOworICAgIFFTdHJp bmcgZ2V0X3B5bW9kdWxlc19wYXRoID0gKGFwcF9kaXIgKyAiLy4uL1Jlc291 cmNlcy92ZW52L2xpYi9weXRob24vc2l0ZS1wYWNrYWdlcyIpOworICAgIFFG aWxlSW5mbyBmaShnZXRfcHltb2R1bGVzX3BhdGgpOworICAgIFFTdHJpbmcg cHltb2R1bGVzX3BhdGggPSBmaS5jYW5vbmljYWxGaWxlUGF0aCgpOworICAg IGlmICghcHl0aG9uX3BhdGguY29udGFpbnMocHltb2R1bGVzX3BhdGgpKQor ICAgIHsKKyAgICAgICAgcHl0aG9uX3BhdGgucHJlcGVuZChweW1vZHVsZXNf cGF0aCk7IC8vIE1hYyBzb3VyY2UgdHJlZSAoaW4gYSByZWxlYXNlIGFwcCBi dW5kbGUpCisgICAgICAgIHNldHRpbmdzLnNldFZhbHVlKCJQeXRob25QYXRo IiwgcHltb2R1bGVzX3BhdGgpOworCXNldHRpbmdzLnN5bmMoKTsKKyAgICB9 CisjZW5kaWYKIAogICAgIGlmIChweXRob25fcGF0aC5sZW5ndGgoKSA+IDAp CiAgICAgewpAQCAtNjYsNiArNzgsOCBAQCBTZXJ2ZXI6OlNlcnZlcihxdWlu dDE2IHBvcnQpCiAjZW5kaWYKICAgICAgICAgfQogICAgIH0KKyAgICBweXRo b25fcGF0aCA9IHNldHRpbmdzLnZhbHVlKCJQeXRob25QYXRoIikudG9TdHJp bmcoKTsKKyAgICBxRGVidWcoKSA8PCAiUHl0aG9uIHBhdGg6ICIgPDwgcHl0 aG9uX3BhdGg7CiB9CiAKIFNlcnZlcjo6flNlcnZlcigpCkBAIC04Niw3ICsx MDAsOSBAQCBib29sIFNlcnZlcjo6SW5pdCgpCiAgICAgcGF0aHMuYXBwZW5k KCIuLi93ZWIvIik7IC8vIExpbnV4IHNvdXJjZSB0cmVlCiAgICAgcGF0aHMu YXBwZW5kKCIuLi8uLi93ZWIvIik7IC8vIFdpbmRvd3Mgc291cmNlIHRyZWUK ICAgICBwYXRocy5hcHBlbmQoIi4uLy4uLy4uLy4uL3dlYi8iKTsgLy8gTWFj IHNvdXJjZSB0cmVlIChpbiBhIGRldiBlbnYpCisjaWZkZWYgUV9PU19NQUMK ICAgICBwYXRocy5hcHBlbmQoIi4uL1Jlc291cmNlcy93ZWIvIik7IC8vIE1h YyBzb3VyY2UgdHJlZSAoaW4gYSByZWxlYXNlIGFwcCBidW5kbGUpCisjZW5k aWYKICAgICBwYXRocy5hcHBlbmQoc2V0dGluZ3MudmFsdWUoIkFwcGxpY2F0 aW9uUGF0aCIpLnRvU3RyaW5nKCkpOyAvLyBTeXN0ZW0gY29uZmlndXJlZCB2 YWx1ZQogICAgIHBhdGhzLmFwcGVuZCgiIik7IC8vIFNob3VsZCBiZSBsYXN0 IQogCg== --001a113951b0143731053426d5d1 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 --001a113951b0143731053426d5d1--