<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>91281</bug_id>
          
          <creation_ts>2012-07-13 14:30:28 -0700</creation_ts>
          <short_desc>JSC: OfflineASM Pretty printing and commenting enhancements</short_desc>
          <delta_ts>2012-07-13 17:45:05 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>669418</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2012-07-13 14:30:28 -0700</bug_when>
    <thetext>It would be nice to be have the output of the OfflineASM be more prettily formatted for human consumption.  Also, it would be nice to be able to more easily add annotations in the LLInt that will show up in the OfflineASM output for debugging and analysis purposes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>669497</commentid>
    <comment_count>1</comment_count>
      <attachid>152353</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2012-07-13 15:29:53 -0700</bug_when>
    <thetext>Created attachment 152353
Fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>669499</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-13 15:31:30 -0700</bug_when>
    <thetext>Attachment 152353 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source...&quot; exit_code: 1
Source/JavaScriptCore/llint/LLIntOfflineAsmConfig.h:96:  Extra space before )  [whitespace/parens] [2]
Total errors found: 1 in 20 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>669504</commentid>
    <comment_count>3</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2012-07-13 15:35:30 -0700</bug_when>
    <thetext>The 1 style error is because of I have macros that looks like this:

#define OFFLINE_ASM_BEGIN   asm (
#define OFFLINE_ASM_END     );

The style checker is complaining about the spaces before the &quot;);&quot; because it mistook it for an argument list.  I this case, I think the style violation can be allowed as an exception.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>669622</commentid>
    <comment_count>4</comment_count>
      <attachid>152353</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-07-13 17:33:05 -0700</bug_when>
    <thetext>Comment on attachment 152353
Fix.

View in context: https://bugs.webkit.org/attachment.cgi?id=152353&amp;action=review

Looks good to me. I&apos;d like Phil to take a look too, since he&apos;s more familiar with the Ruby driver. I&apos;ve CC&apos;d him.

One comment below.

&gt; Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm:305
&gt; +    loadp CodeBlock[cfr], t2                // t2&lt;CodeBlock&gt; = cfr.CodeBlock
&gt; +    loadi CodeBlock::m_numVars[t2], t2      // t2&lt;size_t&gt; = t2&lt;CodeBlock&gt;.m_numVars

It looks like these comments parrot the LL assembly language in a slightly modified form. Perhaps comment dumping mode should just dump the LL assembly. I could see myself using that when I debugged something in the interpreter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>669630</commentid>
    <comment_count>5</comment_count>
      <attachid>152353</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-13 17:45:00 -0700</bug_when>
    <thetext>Comment on attachment 152353
Fix.

Clearing flags on attachment: 152353

Committed r122650: &lt;http://trac.webkit.org/changeset/122650&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>669631</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-13 17:45:05 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>152353</attachid>
            <date>2012-07-13 15:29:53 -0700</date>
            <delta_ts>2012-07-13 17:45:00 -0700</delta_ts>
            <desc>Fix.</desc>
            <filename>bug-91281.patch</filename>
            <type>text/plain</type>
            <size>34103</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTIyNjMyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ0IEBA
CisyMDEyLTA3LTEzICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBP
ZmZsaW5lQVNNIFByZXR0eSBwcmludGluZyBhbmQgY29tbWVudGluZyBlbmhhbmNlbWVudHMuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTI4MQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIHNvbWUg
bWlub3IgcHJldHR5IHByaW50aW5nIGluIHRoZSBPZmZsaW5lQVNNLgorICAgICAgICBBbHNvIGFk
ZGVkIGluZnJhc3RydXR1cmUgZm9yIGFkZGluZyBtdWx0aXBsZSB0eXBlcyBvZiBjb21tZW50cyBh
bmQKKyAgICAgICAgYW5ub3RhdGlvbnMgd2l0aCB0aGUgYWJpbGl0eSB0byBlbmFibGUvZGlzYWJs
ZSB0aGVtIGluIHRoZSBnZW5lcmF0ZWQKKyAgICAgICAgb3V0cHV0IGFzIGRlc2lyZWQuCisKKyAg
ICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOiBhZGQgbmV3IGZpbGUgY29uZmlnLnJiLgorICAg
ICAgICAqIGxsaW50L0xMSW50T2ZmbGluZUFzbUNvbmZpZy5oOgorICAgICAgICAgIEFkZGVkIE9G
RkxJTkVfQVNNX0JFR0lOLCBPRkZMSU5FX0FTTV9FTkQsIGFuZCBPRkZMSU5FX0FTTV9MT0NBTF9M
QUJFTCBtYWNyb3MuCisgICAgICAgICAgVGhpcyB3aWxsIGFsbG93IHVzIHRvIHJlZGVmaW5lIHRo
ZXNlIGZvciBvdGhlciBiYWNrZW5kcyBsYXRlci4KKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbElu
dGVycHJldGVyMzJfNjQuYXNtOgorICAgICAgICAgIEFkZCBhIHNtYWxsIGV4YW1wbGUgb2YgaW5z
dHJ1Y3Rpb24gYW5ub3RhdGlvbnMgZm9yIG5vdy4KKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbElu
dGVycHJldGVyNjQuYXNtOgorICAgICAgICAgIEFkZCBhIHNtYWxsIGV4YW1wbGUgb2YgaW5zdHJ1
Y3Rpb24gYW5ub3RhdGlvbnMgZm9yIG5vdy4KKyAgICAgICAgKiBvZmZsaW5lYXNtL2FybXY3LnJi
OiBBZGRlZCBoYW5kbGluZyBvZiBhbm5vdGF0aW9ucy4KKyAgICAgICAgKiBvZmZsaW5lYXNtL2Fz
bS5yYjoKKyAgICAgICAgICBBZGRlZCBtYWNoaW5lcnkgdG8gZHVtcCB0aGUgbmV3IGNvbW1lbnRz
IGFuZCBhbm5vdGF0aW9ucy4KKyAgICAgICAgICBBbHNvIGFkZGVkIHNvbWUgaW5kZW50YXRpb25z
IHRvIG1ha2UgdGhlIG91dHB1dCBhIGxpdHRsZSBwcmV0dGllci4KKyAgICAgICAgKiBvZmZsaW5l
YXNtL2FzdC5yYjogQWRkZWQgYW5ub3RhdGlvbiBmaWVsZCBpbiBjbGFzcyBJbnN0cnVjdGlvbi4g
CisgICAgICAgICogb2ZmbGluZWFzbS9iYWNrZW5kcy5yYjoKKyAgICAgICAgKiBvZmZsaW5lYXNt
L2NvbmZpZy5yYjogQWRkZWQuCisgICAgICAgICAgQ3VycmVudGx5IG9ubHkgY29udGFpbnMgY29t
bWVudGluZyBvcHRpb25zLiAgVGhpcyBmaWxlIGlzIG1lYW50IHRvIGJlCisgICAgICAgICAgYSBj
ZW50cmFsaXplZCBwbGFjZSBmb3IgYnVpbGQgY29uZmlnIHZhbHVlcyBtdWNoIGxpa2UgY29uZmln
LmggZm9yCisgICAgICAgICAgSmF2YVNjcmlwdENvcmUuCisgICAgICAgICogb2ZmbGluZWFzbS9n
ZW5lcmF0ZV9vZmZzZXRfZXh0cmFjdG9yLnJiOgorICAgICAgICAqIG9mZmxpbmVhc20vaW5zdHJ1
Y3Rpb25zLnJiOgorICAgICAgICAqIG9mZmxpbmVhc20vb2Zmc2V0cy5yYjoKKyAgICAgICAgKiBv
ZmZsaW5lYXNtL29wdC5yYjoKKyAgICAgICAgKiBvZmZsaW5lYXNtL3BhcnNlci5yYjogUGFyc2Ug
YW5kIHJlY29yZCBhbm5vdGF0aW9ucy4KKyAgICAgICAgKiBvZmZsaW5lYXNtL3JlZ2lzdGVycy5y
YjoKKyAgICAgICAgKiBvZmZsaW5lYXNtL3NlbGZfaGFzaC5yYjoKKyAgICAgICAgKiBvZmZsaW5l
YXNtL3NldHRpbmdzLnJiOgorICAgICAgICAqIG9mZmxpbmVhc20vdHJhbnNmb3JtLnJiOgorICAg
ICAgICAqIG9mZmxpbmVhc20veDg2LnJiOiBBZGRlZCBoYW5kbGluZyBvZiBhbm5vdGF0aW9ucy4K
KwogMjAxMi0wNy0xMyAgWW9uZyBMaSAgPHlvbGlAcmltLmNvbT4KIAogICAgICAgICBbQmxhY2tC
ZXJyeV0gSW1wbGVtZW50IEdDQWN0aXZpdHlDYWxsYmFjayB3aXRoIHBsYXRmb3JtIHRpbWVyCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkocmV2aXNpb24g
MTIyNjMxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHdv
cmtpbmcgY29weSkKQEAgLTY4NCw2ICs2ODQsNyBAQCBvZmZsaW5lYXNtX25vc291cmNlcyArPSBc
CiAJU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXNtLnJiIFwKIAlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hc3QucmIgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9v
ZmZsaW5lYXNtL2JhY2tlbmRzLnJiIFwKKwlTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFz
bS9jb25maWcucmIgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2dlbmVyYXRl
X29mZnNldF9leHRyYWN0b3IucmIgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNt
L2luc3RydWN0aW9ucy5yYiBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vb2Zm
c2V0cy5yYiBcCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRPZmZsaW5l
QXNtQ29uZmlnLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xM
SW50T2ZmbGluZUFzbUNvbmZpZy5oCShyZXZpc2lvbiAxMjI2MzEpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTExJbnRPZmZsaW5lQXNtQ29uZmlnLmgJKHdvcmtpbmcgY29weSkKQEAg
LTkxLDYgKzkxLDEwIEBACiAjZGVmaW5lIE9GRkxJTkVfQVNNX1ZBTFVFX1BST0ZJTEVSIDAKICNl
bmRpZgogCisvLyBUaGVzZSBhcmUgZm9yIGJ1aWxkaW5nIGFuIGludGVycHJldGVyIGZyb20gZ2Vu
ZXJhdGVkIGFzc2VtYmx5IGNvZGU6CisjZGVmaW5lIE9GRkxJTkVfQVNNX0JFR0lOICAgYXNtICgK
KyNkZWZpbmUgT0ZGTElORV9BU01fRU5EICAgICApOworCiAjaWYgQ1BVKEFSTV9USFVNQjIpCiAj
ZGVmaW5lIE9GRkxJTkVfQVNNX0dMT0JBTF9MQUJFTChsYWJlbCkgICAgICAgICAgXAogICAgICIu
Z2xvYmwgIiBTWU1CT0xfU1RSSU5HKGxhYmVsKSAiXG4iICAgICAgICAgIFwKQEAgLTEwNSw0ICsx
MDksNiBAQAogICAgIFNZTUJPTF9TVFJJTkcobGFiZWwpICI6XG4iCiAjZW5kaWYKIAorI2RlZmlu
ZSBPRkZMSU5FX0FTTV9MT0NBTF9MQUJFTChsYWJlbCkgICBMT0NBTF9MQUJFTF9TVFJJTkcobGFi
ZWwpICI6XG4iCisKICNlbmRpZiAvLyBMTEludE9mZmxpbmVBc21Db25maWdfaApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0
ZXIzMl82NC5hc20JKHJldmlzaW9uIDEyMjYzMSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9s
bGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCSh3b3JraW5nIGNvcHkpCkBAIC0zMDEs
OCArMzAxLDggQEAgZW5kCiAKIF9sbGludF9vcF9lbnRlcjoKICAgICB0cmFjZUV4ZWN1dGlvbigp
Ci0gICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHQyCi0gICAgbG9hZGkgQ29kZUJsb2NrOjptX251
bVZhcnNbdDJdLCB0MgorICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCB0MiAgICAgICAgICAgICAg
ICAvLyB0MjxDb2RlQmxvY2s+ID0gY2ZyLkNvZGVCbG9jaworICAgIGxvYWRpIENvZGVCbG9jazo6
bV9udW1WYXJzW3QyXSwgdDIgICAgICAvLyB0MjxzaXplX3Q+ID0gdDI8Q29kZUJsb2NrPi5tX251
bVZhcnMKICAgICBidGl6IHQyLCAub3BFbnRlckRvbmUKICAgICBtb3ZlIFVuZGVmaW5lZFRhZywg
dDAKICAgICBtb3ZlIDAsIHQxCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93
TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQkocmV2aXNpb24gMTIyNjMxKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20JKHdv
cmtpbmcgY29weSkKQEAgLTE4Miw4ICsxODIsOCBAQCBlbmQKIAogX2xsaW50X29wX2VudGVyOgog
ICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgdDIKLSAgICBs
b2FkaSBDb2RlQmxvY2s6Om1fbnVtVmFyc1t0Ml0sIHQyCisgICAgbG9hZHAgQ29kZUJsb2NrW2Nm
cl0sIHQyICAgICAgICAgICAgICAgIC8vIHQyPENvZGVCbG9jaz4gPSBjZnIuQ29kZUJsb2NrCisg
ICAgbG9hZGkgQ29kZUJsb2NrOjptX251bVZhcnNbdDJdLCB0MiAgICAgIC8vIHQyPHNpemVfdD4g
PSB0MjxDb2RlQmxvY2s+Lm1fbnVtVmFycwogICAgIGJ0aXogdDIsIC5vcEVudGVyRG9uZQogICAg
IG1vdmUgVmFsdWVVbmRlZmluZWQsIHQwCiAub3BFbnRlckxvb3A6CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm12Ny5yYgo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm12Ny5yYgkocmV2aXNpb24gMTIyNjMxKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJtdjcucmIJKHdvcmtpbmcgY29weSkKQEAg
LTIxLDYgKzIxLDcgQEAKICMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgogIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCiAKK3JlcXVpcmUgImNvbmZpZyIKIHJlcXVpcmUgImFzdCIKIHJlcXVpcmUgIm9w
dCIKIApAQCAtMTQ3LDYgKzE0OCw3IEBAIGRlZiBhcm1WN0xvd2VyQnJhbmNoT3BzKGxpc3QpCiAg
ICAgbGlzdC5lYWNoIHsKICAgICAgICAgfCBub2RlIHwKICAgICAgICAgaWYgbm9kZS5pc19hPyBJ
bnN0cnVjdGlvbgorICAgICAgICAgICAgYW5ub3RhdGlvbiA9IG5vZGUuYW5ub3RhdGlvbgogICAg
ICAgICAgICAgY2FzZSBub2RlLm9wY29kZQogICAgICAgICAgICAgd2hlbiAvXmIoYWRkaXxzdWJp
fG9yaXxhZGRwKS8KICAgICAgICAgICAgICAgICBvcCA9ICQxCkBAIC0xNjEsMTcgKzE2MywxNyBA
QCBkZWYgYXJtVjdMb3dlckJyYW5jaE9wcyhsaXN0KQogICAgICAgICAgICAgICAgICAgICBvcCA9
ICJvcmlzIgogICAgICAgICAgICAgICAgIGVuZAogICAgICAgICAgICAgICAgIAotICAgICAgICAg
ICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgb3AsIG5v
ZGUub3BlcmFuZHNbMC4uLTJdKQorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rp
b24ubmV3KG5vZGUuY29kZU9yaWdpbiwgb3AsIG5vZGUub3BlcmFuZHNbMC4uLTJdLCBhbm5vdGF0
aW9uKQogICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29k
ZU9yaWdpbiwgYnJhbmNoLCBbbm9kZS5vcGVyYW5kc1stMV1dKQogICAgICAgICAgICAgd2hlbiAi
Ym11bGlvIgogICAgICAgICAgICAgICAgIHRtcDEgPSBUbXAubmV3KG5vZGUuY29kZU9yaWdpbiwg
OmdwcikKICAgICAgICAgICAgICAgICB0bXAyID0gVG1wLm5ldyhub2RlLmNvZGVPcmlnaW4sIDpn
cHIpCi0gICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2Rl
T3JpZ2luLCAic211bGxpIiwgW25vZGUub3BlcmFuZHNbMF0sIG5vZGUub3BlcmFuZHNbMV0sIG5v
ZGUub3BlcmFuZHNbMV0sIHRtcDFdKQorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1
Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgInNtdWxsaSIsIFtub2RlLm9wZXJhbmRzWzBdLCBu
b2RlLm9wZXJhbmRzWzFdLCBub2RlLm9wZXJhbmRzWzFdLCB0bXAxXSwgYW5ub3RhdGlvbikKICAg
ICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4s
ICJyc2hpZnRpIiwgW25vZGUub3BlcmFuZHNbLTJdLCBJbW1lZGlhdGUubmV3KG5vZGUuY29kZU9y
aWdpbiwgMzEpLCB0bXAyXSkKICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9u
Lm5ldyhub2RlLmNvZGVPcmlnaW4sICJiaW5lcSIsIFt0bXAxLCB0bXAyLCBub2RlLm9wZXJhbmRz
Wy0xXV0pCiAgICAgICAgICAgICB3aGVuIC9eYm11bGkvCiAgICAgICAgICAgICAgICAgY29uZGl0
aW9uID0gJH4ucG9zdF9tYXRjaAotICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rp
b24ubmV3KG5vZGUuY29kZU9yaWdpbiwgIm11bGkiLCBub2RlLm9wZXJhbmRzWzAuLi0yXSkKKyAg
ICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4s
ICJtdWxpIiwgbm9kZS5vcGVyYW5kc1swLi4tMl0sIGFubm90YXRpb24pCiAgICAgICAgICAgICAg
ICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAiYnRpIiArIGNv
bmRpdGlvbiwgW25vZGUub3BlcmFuZHNbLTJdLCBub2RlLm9wZXJhbmRzWy0xXV0pCiAgICAgICAg
ICAgICBlbHNlCiAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBub2RlCkBAIC0yMTAsOSArMjEy
LDkgQEAgZGVmIGFybVY3TG93ZXJTaGlmdE9wcyhsaXN0KQogICAgICAgICAgICAgY2FzZSBub2Rl
Lm9wY29kZQogICAgICAgICAgICAgd2hlbiAibHNoaWZ0aSIsICJyc2hpZnRpIiwgInVyc2hpZnRp
IiwgImxzaGlmdHAiLCAicnNoaWZ0cCIsICJ1cnNoaWZ0cCIKICAgICAgICAgICAgICAgICBpZiBu
b2RlLm9wZXJhbmRzLnNpemUgPT0gMgotICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IElu
c3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sIG5vZGUub3Bjb2RlLCBbYXJtVjdTYW5pdGl6
ZVNoaWZ0KG5vZGUub3BlcmFuZHNbMF0sIG5ld0xpc3QpLCBub2RlLm9wZXJhbmRzWzFdXSkKKyAg
ICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3Jp
Z2luLCBub2RlLm9wY29kZSwgW2FybVY3U2FuaXRpemVTaGlmdChub2RlLm9wZXJhbmRzWzBdLCBu
ZXdMaXN0KSwgbm9kZS5vcGVyYW5kc1sxXV0sIG5vZGUuYW5ub3RhdGlvbikKICAgICAgICAgICAg
ICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3
KG5vZGUuY29kZU9yaWdpbiwgbm9kZS5vcGNvZGUsIFtub2RlLm9wZXJhbmRzWzBdLCBhcm1WN1Nh
bml0aXplU2hpZnQobm9kZS5vcGVyYW5kc1sxXSwgbmV3TGlzdCksIG5vZGUub3BlcmFuZHNbMl1d
KQorICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNv
ZGVPcmlnaW4sIG5vZGUub3Bjb2RlLCBbbm9kZS5vcGVyYW5kc1swXSwgYXJtVjdTYW5pdGl6ZVNo
aWZ0KG5vZGUub3BlcmFuZHNbMV0sIG5ld0xpc3QpLCBub2RlLm9wZXJhbmRzWzJdXSwgbm9kZS5h
bm5vdGF0aW9uKQogICAgICAgICAgICAgICAgICAgICByYWlzZSAiV3JvbmcgbnVtYmVyIG9mIG9w
ZXJhbmRzIGZvciBzaGlmdCBhdCAje25vZGUuY29kZU9yaWdpblN0cmluZ30iIHVubGVzcyBub2Rl
Lm9wZXJhbmRzLnNpemUgPT0gMwogICAgICAgICAgICAgICAgIGVuZAogICAgICAgICAgICAgZWxz
ZQpAQCAtMzIxLDkgKzMyMyw5IEBAIGRlZiBhcm1WN0xvd2VyTWFsZm9ybWVkQWRkcmVzc2VzRG91
YmxlKGwKICAgICAgICAgaWYgbm9kZS5pc19hPyBJbnN0cnVjdGlvbgogICAgICAgICAgICAgY2Fz
ZSBub2RlLm9wY29kZQogICAgICAgICAgICAgd2hlbiAibG9hZGQiCi0gICAgICAgICAgICAgICAg
bmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAibG9hZGQiLCBbbm9k
ZS5vcGVyYW5kc1swXS5hcm1WN0RvdWJsZUFkZHJlc3MobmV3TGlzdCksIG5vZGUub3BlcmFuZHNb
MV1dKQorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29k
ZU9yaWdpbiwgImxvYWRkIiwgW25vZGUub3BlcmFuZHNbMF0uYXJtVjdEb3VibGVBZGRyZXNzKG5l
d0xpc3QpLCBub2RlLm9wZXJhbmRzWzFdXSwgbm9kZS5hbm5vdGF0aW9uKQogICAgICAgICAgICAg
d2hlbiAic3RvcmVkIgotICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3
KG5vZGUuY29kZU9yaWdpbiwgInN0b3JlZCIsIFtub2RlLm9wZXJhbmRzWzBdLCBub2RlLm9wZXJh
bmRzWzFdLmFybVY3RG91YmxlQWRkcmVzcyhuZXdMaXN0KV0pCisgICAgICAgICAgICAgICAgbmV3
TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAic3RvcmVkIiwgW25vZGUu
b3BlcmFuZHNbMF0sIG5vZGUub3BlcmFuZHNbMV0uYXJtVjdEb3VibGVBZGRyZXNzKG5ld0xpc3Qp
XSwgbm9kZS5hbm5vdGF0aW9uKQogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIG5l
d0xpc3QgPDwgbm9kZQogICAgICAgICAgICAgZW5kCkBAIC0zNjQsNyArMzY2LDcgQEAgZGVmIGFy
bVY3TG93ZXJNaXNwbGFjZWRJbW1lZGlhdGVzKGxpc3QpCiAgICAgICAgICAgICAgICAgICAgICAg
ICBuZXdPcGVyYW5kcyA8PCBvcGVyYW5kCiAgICAgICAgICAgICAgICAgICAgIGVuZAogICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhu
b2RlLmNvZGVPcmlnaW4sIG5vZGUub3Bjb2RlLCBuZXdPcGVyYW5kcykKKyAgICAgICAgICAgICAg
ICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sIG5vZGUub3Bjb2Rl
LCBuZXdPcGVyYW5kcywgbm9kZS5hbm5vdGF0aW9uKQogICAgICAgICAgICAgZWxzZQogICAgICAg
ICAgICAgICAgIG5ld0xpc3QgPDwgbm9kZQogICAgICAgICAgICAgZW5kCkBAIC00MzEsNiArNDMz
LDcgQEAgZGVmIGFybVY3TG93ZXJNYWxmb3JtZWRJbW1lZGlhdGVzKGxpc3QpCiAgICAgbGlzdC5l
YWNoIHsKICAgICAgICAgfCBub2RlIHwKICAgICAgICAgaWYgbm9kZS5pc19hPyBJbnN0cnVjdGlv
bgorICAgICAgICAgICAgYW5ub3RhdGlvbiA9IG5vZGUuYW5ub3RhdGlvbgogICAgICAgICAgICAg
Y2FzZSBub2RlLm9wY29kZQogICAgICAgICAgICAgd2hlbiAibW92ZSIKICAgICAgICAgICAgICAg
ICBuZXdMaXN0IDw8IG5vZGUKQEAgLTQ0NSwxNCArNDQ4LDE1IEBAIGRlZiBhcm1WN0xvd2VyTWFs
Zm9ybWVkSW1tZWRpYXRlcyhsaXN0KQogICAgICAgICAgICAgICAgICAgICAgICAgbmV3T3Bjb2Rl
ID0gImFkZCIgKyBub2RlLm9wY29kZVstMS4uLTFdCiAgICAgICAgICAgICAgICAgICAgIGVuZAog
ICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVP
cmlnaW4sIG5ld09wY29kZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgW0ltbWVkaWF0ZS5uZXcoLW5vZGUub3BlcmFuZHNbMF0udmFsdWUpXSArIG5vZGUu
b3BlcmFuZHNbMS4uLTFdKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBbSW1tZWRpYXRlLm5ldygtbm9kZS5vcGVyYW5kc1swXS52YWx1ZSldICsgbm9kZS5v
cGVyYW5kc1sxLi4tMV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGFubm90YXRpb24pCiAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAg
ICAgICBuZXdMaXN0IDw8IG5vZGUuYXJtVjdMb3dlck1hbGZvcm1lZEltbWVkaWF0ZXNSZWN1cnNl
KG5ld0xpc3QpCiAgICAgICAgICAgICAgICAgZW5kCiAgICAgICAgICAgICB3aGVuICJtdWxpIiwg
Im11bHAiCiAgICAgICAgICAgICAgICAgaWYgbm9kZS5vcGVyYW5kc1swXS5pc19hPyBJbW1lZGlh
dGUKICAgICAgICAgICAgICAgICAgICAgdG1wID0gVG1wLm5ldyhjb2RlT3JpZ2luLCA6Z3ByKQot
ICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVP
cmlnaW4sICJtb3ZlIiwgW25vZGUub3BlcmFuZHNbMF0sIHRtcF0pCisgICAgICAgICAgICAgICAg
ICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgIm1vdmUiLCBb
bm9kZS5vcGVyYW5kc1swXSwgdG1wXSwgYW5ub3RhdGlvbikKICAgICAgICAgICAgICAgICAgICAg
bmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAibXVsaSIsIFt0bXBd
ICsgbm9kZS5vcGVyYW5kc1sxLi4tMV0pCiAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAg
ICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUuYXJtVjdMb3dlck1hbGZvcm1lZEltbWVkaWF0ZXNS
ZWN1cnNlKG5ld0xpc3QpCkBAIC01MTQsMzAgKzUxOCwzNiBAQCBkZWYgYXJtVjdMb3dlck1pc3Bs
YWNlZEFkZHJlc3NlcyhsaXN0KQogICAgICAgICB8IG5vZGUgfAogICAgICAgICBpZiBub2RlLmlz
X2E/IEluc3RydWN0aW9uCiAgICAgICAgICAgICBwb3N0SW5zdHJ1Y3Rpb25zID0gW10KKyAgICAg
ICAgICAgIGFubm90YXRpb24gPSBub2RlLmFubm90YXRpb24KICAgICAgICAgICAgIGNhc2Ugbm9k
ZS5vcGNvZGUKICAgICAgICAgICAgIHdoZW4gImFkZGkiLCAiYWRkcCIsICJhZGRpcyIsICJhbmRp
IiwgImFuZHAiLCAibHNoaWZ0aSIsICJsc2hpZnRwIiwgIm11bGkiLCAibXVscCIsICJuZWdpIiwK
ICAgICAgICAgICAgICAgICAibmVncCIsICJub3RpIiwgIm9yaSIsICJvcmlzIiwgIm9ycCIsICJy
c2hpZnRpIiwgInVyc2hpZnRpIiwgInJzaGlmdHAiLCAidXJzaGlmdHAiLCAic3ViaSIsCiAgICAg
ICAgICAgICAgICAgInN1YnAiLCAic3ViaXMiLCAieG9yaSIsICJ4b3JwIiwgL15iaS8sIC9eYnAv
LCAvXmJ0aS8sIC9eYnRwLywgL15jaS8sIC9eY3AvLCAvXnRpLwogICAgICAgICAgICAgICAgIG5l
d0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2RlLm9wY29kZSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcm1WN0FzUmVnaXN0ZXJzKG5ld0xpc3QsIHBv
c3RJbnN0cnVjdGlvbnMsIG5vZGUub3BlcmFuZHMsICJpIikpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYXJtVjdBc1JlZ2lzdGVycyhuZXdMaXN0LCBwb3N0SW5z
dHJ1Y3Rpb25zLCBub2RlLm9wZXJhbmRzLCAiaSIpLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGFubm90YXRpb24pCiAgICAgICAgICAgICB3aGVuICJiYmVxIiwg
ImJibmVxIiwgImJiYSIsICJiYmFlcSIsICJiYmIiLCAiYmJiZXEiLCAiYnRibyIsICJidGJ6Iiwg
ImJ0Ym56IiwgInRieiIsICJ0Ym56IiwKICAgICAgICAgICAgICAgICAidGJvIiwgImNiZXEiLCAi
Y2JuZXEiLCAiY2JhIiwgImNiYWVxIiwgImNiYiIsICJjYmJlcSIKICAgICAgICAgICAgICAgICBu
ZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5vcGNvZGUsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJtVjdBc1JlZ2lzdGVycyhuZXdMaXN0LCBw
b3N0SW5zdHJ1Y3Rpb25zLCBub2RlLm9wZXJhbmRzLCAiYiIpKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGFybVY3QXNSZWdpc3RlcnMobmV3TGlzdCwgcG9zdElu
c3RydWN0aW9ucywgbm9kZS5vcGVyYW5kcywgImIiKSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBhbm5vdGF0aW9uKQogICAgICAgICAgICAgd2hlbiAiYmJndCIs
ICJiYmd0ZXEiLCAiYmJsdCIsICJiYmx0ZXEiLCAiYnRicyIsICJ0YnMiLCAiY2JndCIsICJjYmd0
ZXEiLCAiY2JsdCIsICJjYmx0ZXEiCiAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVj
dGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG5vZGUub3Bjb2RlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGFybVY3QXNSZWdpc3RlcnMobmV3TGlzdCwgcG9zdEluc3RydWN0aW9ucywg
bm9kZS5vcGVyYW5kcywgImJzIikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYXJtVjdBc1JlZ2lzdGVycyhuZXdMaXN0LCBwb3N0SW5zdHJ1Y3Rpb25zLCBub2Rl
Lm9wZXJhbmRzLCAiYnMiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBhbm5vdGF0aW9uKQogICAgICAgICAgICAgd2hlbiAiYWRkZCIsICJkaXZkIiwgInN1YmQi
LCAibXVsZCIsICJzcXJ0ZCIsIC9eYmQvCiAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0
cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG5vZGUub3Bjb2RlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGFybVY3QXNSZWdpc3RlcnMobmV3TGlzdCwgcG9zdEluc3RydWN0aW9u
cywgbm9kZS5vcGVyYW5kcywgImQiKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBhcm1WN0FzUmVnaXN0ZXJzKG5ld0xpc3QsIHBvc3RJbnN0cnVjdGlvbnMsIG5v
ZGUub3BlcmFuZHMsICJkIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYW5ub3RhdGlvbikKICAgICAgICAgICAgIHdoZW4gImptcCIsICJjYWxsIgogICAgICAg
ICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2RlLm9wY29kZSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXJtVjdBc1JlZ2lzdGVy
KG5ld0xpc3QsIHBvc3RJbnN0cnVjdGlvbnMsIG5vZGUub3BlcmFuZHNbMF0sICJwIiwgZmFsc2Up
XSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXJtVjdBc1Jl
Z2lzdGVyKG5ld0xpc3QsIHBvc3RJbnN0cnVjdGlvbnMsIG5vZGUub3BlcmFuZHNbMF0sICJwIiwg
ZmFsc2UpXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbm5v
dGF0aW9uKQogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgbm9k
ZQogICAgICAgICAgICAgZW5kCkBAIC01NjUsNiArNTc1LDcgQEAgZGVmIGFybVY3TG93ZXJSZWdp
c3RlclJldXNlKGxpc3QpCiAgICAgbGlzdC5lYWNoIHsKICAgICAgICAgfCBub2RlIHwKICAgICAg
ICAgaWYgbm9kZS5pc19hPyBJbnN0cnVjdGlvbgorICAgICAgICAgICAgYW5ub3RhdGlvbiA9IG5v
ZGUuYW5ub3RhdGlvbgogICAgICAgICAgICAgY2FzZSBub2RlLm9wY29kZQogICAgICAgICAgICAg
d2hlbiAiY2llcSIsICJjaW5lcSIsICJjaWEiLCAiY2lhZXEiLCAiY2liIiwgImNpYmVxIiwgImNp
Z3QiLCAiY2lndGVxIiwgImNpbHQiLCAiY2lsdGVxIiwKICAgICAgICAgICAgICAgICAiY3BlcSIs
ICJjcG5lcSIsICJjcGEiLCAiY3BhZXEiLCAiY3BiIiwgImNwYmVxIiwgImNwZ3QiLCAiY3BndGVx
IiwgImNwbHQiLCAiY3BsdGVxIiwKQEAgLTU3Myw3ICs1ODQsNyBAQCBkZWYgYXJtVjdMb3dlclJl
Z2lzdGVyUmV1c2UobGlzdCkKICAgICAgICAgICAgICAgICBpZiBub2RlLm9wZXJhbmRzLnNpemUg
PT0gMgogICAgICAgICAgICAgICAgICAgICBpZiBub2RlLm9wZXJhbmRzWzBdID09IG5vZGUub3Bl
cmFuZHNbMV0KICAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFRtcC5uZXcobm9kZS5jb2Rl
T3JpZ2luLCA6Z3ByKQotICAgICAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVj
dGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAibW92ZSIsIFtub2RlLm9wZXJhbmRzWzBdLCB0bXBd
KQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9k
ZS5jb2RlT3JpZ2luLCAibW92ZSIsIFtub2RlLm9wZXJhbmRzWzBdLCB0bXBdLCBhbm5vdGF0aW9u
KQogICAgICAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9k
ZS5jb2RlT3JpZ2luLCBub2RlLm9wY29kZSwgW3RtcCwgbm9kZS5vcGVyYW5kc1sxXV0pCiAgICAg
ICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwg
bm9kZQpAQCAtNTgyLDExICs1OTMsMTEgQEAgZGVmIGFybVY3TG93ZXJSZWdpc3RlclJldXNlKGxp
c3QpCiAgICAgICAgICAgICAgICAgICAgIHJhaXNlICJXcm9uZyBudW1iZXIgb2YgYXJndW1lbnRz
IGF0ICN7bm9kZS5jb2RlT3JpZ2luU3RyaW5nfSIgdW5sZXNzIG5vZGUub3BlcmFuZHMuc2l6ZSA9
PSAzCiAgICAgICAgICAgICAgICAgICAgIGlmIG5vZGUub3BlcmFuZHNbMF0gPT0gbm9kZS5vcGVy
YW5kc1syXQogICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gVG1wLm5ldyhub2RlLmNvZGVP
cmlnaW4sIDpncHIpCi0gICAgICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0
aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJtb3ZlIiwgW25vZGUub3BlcmFuZHNbMF0sIHRtcF0p
CisgICAgICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2Rl
LmNvZGVPcmlnaW4sICJtb3ZlIiwgW25vZGUub3BlcmFuZHNbMF0sIHRtcF0sIGFubm90YXRpb24p
CiAgICAgICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2Rl
LmNvZGVPcmlnaW4sIG5vZGUub3Bjb2RlLCBbdG1wLCBub2RlLm9wZXJhbmRzWzFdLCBub2RlLm9w
ZXJhbmRzWzJdXSkKICAgICAgICAgICAgICAgICAgICAgZWxzaWYgbm9kZS5vcGVyYW5kc1sxXSA9
PSBub2RlLm9wZXJhbmRzWzJdCiAgICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBUbXAubmV3
KG5vZGUuY29kZU9yaWdpbiwgOmdwcikKLSAgICAgICAgICAgICAgICAgICAgICAgIG5ld0xpc3Qg
PDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgIm1vdmUiLCBbbm9kZS5vcGVyYW5k
c1sxXSwgdG1wXSkKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rp
b24ubmV3KG5vZGUuY29kZU9yaWdpbiwgIm1vdmUiLCBbbm9kZS5vcGVyYW5kc1sxXSwgdG1wXSwg
YW5ub3RhdGlvbikKICAgICAgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rp
b24ubmV3KG5vZGUuY29kZU9yaWdpbiwgbm9kZS5vcGNvZGUsIFtub2RlLm9wZXJhbmRzWzBdLCB0
bXAsIG5vZGUub3BlcmFuZHNbMl1dKQogICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAg
ICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUKQEAgLTczMiw3ICs3NDMsOSBAQCBlbmQK
IAogY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICBkZWYgbG93ZXJBUk12NwotICAgICAgICAkYXNtLmNv
bW1lbnQgY29kZU9yaWdpblN0cmluZworICAgICAgICAkYXNtLmNvZGVPcmlnaW4gY29kZU9yaWdp
blN0cmluZworICAgICAgICAkYXNtLmFubm90YXRpb24gYW5ub3RhdGlvbgorCiAgICAgICAgIGNh
c2Ugb3Bjb2RlCiAgICAgICAgIHdoZW4gImFkZGkiLCAiYWRkcCIsICJhZGRpcyIKICAgICAgICAg
ICAgIGlmIG9wY29kZSA9PSAiYWRkaXMiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2Zm
bGluZWFzbS9hc20ucmIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxp
bmVhc20vYXNtLnJiCShyZXZpc2lvbiAxMjI2MzEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
b2ZmbGluZWFzbS9hc20ucmIJKHdvcmtpbmcgY29weSkKQEAgLTI1LDYgKzI1LDcgQEAKIAogJDog
PDwgRmlsZS5kaXJuYW1lKF9fRklMRV9fKQogCityZXF1aXJlICJjb25maWciCiByZXF1aXJlICJi
YWNrZW5kcyIKIHJlcXVpcmUgImRpZ2VzdC9zaGExIgogcmVxdWlyZSAib2Zmc2V0cyIKQEAgLTM5
LDE2ICs0MCwyMSBAQCBjbGFzcyBBc3NlbWJsZXIKICAgICAgICAgQHN0YXRlID0gOmNwcAogICAg
ICAgICBAY29tbWVudFN0YXRlID0gOm5vbmUKICAgICAgICAgQGNvbW1lbnQgPSBuaWwKKyAgICAg
ICAgQGludGVybmFsQ29tbWVudCA9IG5pbAorICAgICAgICBAYW5ub3RhdGlvbiA9IG5pbAorICAg
ICAgICBAY29kZU9yaWdpbiA9IG5pbAorICAgICAgICBAbnVtTG9jYWxMYWJlbHMgPSAwCisgICAg
ICAgIEBudW1HbG9iYWxMYWJlbHMgPSAwCiAgICAgZW5kCiAgICAgCiAgICAgZGVmIGVudGVyQXNt
Ci0gICAgICAgIEBvdXRwLnB1dHMgImFzbSAoIgorICAgICAgICBAb3V0cC5wdXRzICJPRkZMSU5F
X0FTTV9CRUdJTiIKICAgICAgICAgQHN0YXRlID0gOmFzbQogICAgIGVuZAogICAgIAogICAgIGRl
ZiBsZWF2ZUFzbQogICAgICAgICBwdXRzTGFzdENvbW1lbnQKLSAgICAgICAgQG91dHAucHV0cyAi
KTsiCisgICAgICAgIEBvdXRwLnB1dHMgIk9GRkxJTkVfQVNNX0VORCIKICAgICAgICAgQHN0YXRl
ID0gOmNwcAogICAgIGVuZAogICAgIApAQCAtNTgsMTcgKzY0LDM1IEBAIGNsYXNzIEFzc2VtYmxl
cgogICAgICAgICBsZWF2ZUFzbQogICAgIGVuZAogICAgIAorICAgICMgQ29uY2F0ZW5hdGVzIGFs
bCB0aGUgdmFyaW91cyBjb21wb25lbnRzIG9mIHRoZSBjb21tZW50IHRvIGR1bXAuCiAgICAgZGVm
IGxhc3RDb21tZW50Ci0gICAgICAgIGlmIEBjb21tZW50Ci0gICAgICAgICAgICByZXN1bHQgPSAi
Ly8gI3tAY29tbWVudH0iCi0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHJlc3VsdCA9ICIiCisg
ICAgICAgIHJlc3VsdCA9ICIiCisgICAgICAgIHJlc3VsdCA9ICIgI3tAY29tbWVudH0gLiIgaWYg
QGNvbW1lbnQKKyAgICAgICAgcmVzdWx0ICs9ICIgI3tAYW5ub3RhdGlvbn0gLiIgaWYgQGFubm90
YXRpb24gYW5kICRlbmFibGVUcmFpbGluZ0luc3RyQW5ub3RhdGlvbnMKKyAgICAgICAgcmVzdWx0
ICs9ICIgI3tAaW50ZXJuYWxDb21tZW50fSAuIiBpZiBAaW50ZXJuYWxDb21tZW50CisgICAgICAg
IHJlc3VsdCArPSAiICN7QGNvZGVPcmlnaW59IC4iIGlmIEBjb2RlT3JpZ2luIGFuZCAkZW5hYmxl
Q29kZU9yaWdpbkNvbW1lbnRzCisgICAgICAgIGlmIHJlc3VsdCAhPSAiIgorICAgICAgICAgICAg
cmVzdWx0ID0gIiAgLy8iICsgcmVzdWx0CiAgICAgICAgIGVuZAorCisgICAgICAgICMgUmVzZXQg
YWxsIHRoZSBjb21wb25lbnRzIHRoYXQgd2UndmUganVzdCBzZW50IHRvIGJlIGR1bXBlZC4KICAg
ICAgICAgQGNvbW1lbnRTdGF0ZSA9IDpub25lCiAgICAgICAgIEBjb21tZW50ID0gbmlsCisgICAg
ICAgIEBpbnRlcm5hbENvbW1lbnQgPSBuaWwKKyAgICAgICAgQGFubm90YXRpb24gPSBuaWwKKyAg
ICAgICAgQGNvZGVPcmlnaW4gPSBuaWwKICAgICAgICAgcmVzdWx0CiAgICAgZW5kCiAgICAgCisg
ICAgIyBEdW1wcyB0aGUgY3VycmVudCBpbnN0cnVjdGlvbiBhbm5vdGF0aW9uIGluIGludGVybGFj
ZWQgbW9kZSBpZiBhcHByb3ByaWF0ZS4KKyAgICBkZWYgcHV0SW50ZXJsYWNlZEFubm90YXRpb24o
KQorICAgICAgICByYWlzZSB1bmxlc3MgQHN0YXRlID09IDphc20KKyAgICAgICAgaWYgJGVuYWJs
ZUludGVybGFjZWRJbnN0ckFubm90YXRpb25zCisgICAgICAgICAgICBAb3V0cC5wdXRzKCIgICAg
Ly8gI3tAYW5ub3RhdGlvbn0iKSBpZiBAYW5ub3RhdGlvbgorICAgICAgICAgICAgQGFubm90YXRp
b24gPSBuaWwKKyAgICAgICAgZW5kCisgICAgZW5kCisKICAgICBkZWYgcHV0c0xhc3RDb21tZW50
CiAgICAgICAgIGNvbW1lbnQgPSBsYXN0Q29tbWVudAogICAgICAgICB1bmxlc3MgY29tbWVudC5l
bXB0eT8KQEAgLTc4LDcgKzEwMiw4IEBAIGNsYXNzIEFzc2VtYmxlcgogICAgIAogICAgIGRlZiBw
dXRzKCpsaW5lKQogICAgICAgICByYWlzZSB1bmxlc3MgQHN0YXRlID09IDphc20KLSAgICAgICAg
QG91dHAucHV0cygiXCJcXHQiICsgbGluZS5qb2luKCcnKSArICJcXG5cIiAje2xhc3RDb21tZW50
fSIpCisgICAgICAgIHB1dEludGVybGFjZWRBbm5vdGF0aW9uCisgICAgICAgIEBvdXRwLnB1dHMo
IiAgICBcIlxcdCIgKyBsaW5lLmpvaW4oJycpICsgIlxcblwiI3tsYXN0Q29tbWVudH0iKQogICAg
IGVuZAogICAgIAogICAgIGRlZiBwcmludChsaW5lKQpAQCAtODgsMTIgKzExMywxOCBAQCBjbGFz
cyBBc3NlbWJsZXIKICAgICAKICAgICBkZWYgcHV0c0xhYmVsKGxhYmVsTmFtZSkKICAgICAgICAg
cmFpc2UgdW5sZXNzIEBzdGF0ZSA9PSA6YXNtCi0gICAgICAgIEBvdXRwLnB1dHMoIk9GRkxJTkVf
QVNNX0dMT0JBTF9MQUJFTCgje2xhYmVsTmFtZX0pICN7bGFzdENvbW1lbnR9IikKKyAgICAgICAg
QG51bUdsb2JhbExhYmVscyArPSAxCisgICAgICAgIEBvdXRwLnB1dHMoIlxuIikKKyAgICAgICAg
QGludGVybmFsQ29tbWVudCA9ICRlbmFibGVMYWJlbENvdW50Q29tbWVudHMgPyAiR2xvYmFsIExh
YmVsICN7QG51bUdsb2JhbExhYmVsc30iIDogbmlsCisgICAgICAgIEBvdXRwLnB1dHMoIk9GRkxJ
TkVfQVNNX0dMT0JBTF9MQUJFTCgje2xhYmVsTmFtZX0pI3tsYXN0Q29tbWVudH0iKQogICAgIGVu
ZAogICAgIAogICAgIGRlZiBwdXRzTG9jYWxMYWJlbChsYWJlbE5hbWUpCiAgICAgICAgIHJhaXNl
IHVubGVzcyBAc3RhdGUgPT0gOmFzbQotICAgICAgICBAb3V0cC5wdXRzKCJMT0NBTF9MQUJFTF9T
VFJJTkcoI3tsYWJlbE5hbWV9KSBcIjpcXG5cIiAje2xhc3RDb21tZW50fSIpCisgICAgICAgIEBu
dW1Mb2NhbExhYmVscyArPSAxCisgICAgICAgIEBvdXRwLnB1dHMoIlxuIikKKyAgICAgICAgQGlu
dGVybmFsQ29tbWVudCA9ICRlbmFibGVMYWJlbENvdW50Q29tbWVudHMgPyAiTG9jYWwgTGFiZWwg
I3tAbnVtTG9jYWxMYWJlbHN9IiA6IG5pbAorICAgICAgICBAb3V0cC5wdXRzKCJPRkZMSU5FX0FT
TV9MT0NBTF9MQUJFTCgje2xhYmVsTmFtZX0pI3tsYXN0Q29tbWVudH0iKQogICAgIGVuZAogICAg
IAogICAgIGRlZiBzZWxmLmxhYmVsUmVmZXJlbmNlKGxhYmVsTmFtZSkKQEAgLTEwNCwyMiArMTM1
LDMxIEBAIGNsYXNzIEFzc2VtYmxlcgogICAgICAgICAiXCIgTE9DQUxfTEFCRUxfU1RSSU5HKCN7
bGFiZWxOYW1lfSkgXCIiCiAgICAgZW5kCiAgICAgCi0gICAgZGVmIGNvbW1lbnQodGV4dCkKKyAg
ICBkZWYgY29kZU9yaWdpbih0ZXh0KQogICAgICAgICBjYXNlIEBjb21tZW50U3RhdGUKICAgICAg
ICAgd2hlbiA6bm9uZQotICAgICAgICAgICAgQGNvbW1lbnQgPSB0ZXh0CisgICAgICAgICAgICBA
Y29kZU9yaWdpbiA9IHRleHQKICAgICAgICAgICAgIEBjb21tZW50U3RhdGUgPSA6b25lCiAgICAg
ICAgIHdoZW4gOm9uZQotICAgICAgICAgICAgQG91dHAucHV0cyAiLy8gI3tAY29tbWVudH0iCi0g
ICAgICAgICAgICBAb3V0cC5wdXRzICIvLyAje3RleHR9IgotICAgICAgICAgICAgQGNvbW1lbnQg
PSBuaWwKKyAgICAgICAgICAgIGlmICRlbmFibGVDb2RlT3JpZ2luQ29tbWVudHMKKyAgICAgICAg
ICAgICAgICBAb3V0cC5wdXRzICIgICAgLy8gI3tAY29kZU9yaWdpbn0iCisgICAgICAgICAgICAg
ICAgQG91dHAucHV0cyAiICAgIC8vICN7dGV4dH0iCisgICAgICAgICAgICBlbmQKKyAgICAgICAg
ICAgIEBjb2RlT3JpZ2luID0gbmlsCiAgICAgICAgICAgICBAY29tbWVudFN0YXRlID0gOm1hbnkK
ICAgICAgICAgd2hlbiA6bWFueQotICAgICAgICAgICAgQG91dHAucHV0cyAiLy8gI3t0ZXh0fSIK
KyAgICAgICAgICAgIEBvdXRwLnB1dHMgIi8vICN7dGV4dH0iIGlmICRlbmFibGVDb2RlT3JpZ2lu
Q29tbWVudHMKICAgICAgICAgZWxzZQogICAgICAgICAgICAgcmFpc2UKICAgICAgICAgZW5kCiAg
ICAgZW5kCisKKyAgICBkZWYgY29tbWVudCh0ZXh0KQorICAgICAgICBAY29tbWVudCA9IHRleHQK
KyAgICBlbmQKKyAgICBkZWYgYW5ub3RhdGlvbih0ZXh0KQorICAgICAgICBAYW5ub3RhdGlvbiA9
IHRleHQKKyAgICBlbmQKIGVuZAogCiBhc21GaWxlID0gQVJHVi5zaGlmdApJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXN0LnJiCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FzdC5yYgkocmV2aXNpb24gMTIyNjMxKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXN0LnJiCSh3b3JraW5nIGNvcHkpCkBAIC0y
MSw2ICsyMSw4IEBACiAjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKICMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgogCityZXF1aXJlICJjb25maWciCisKICMKICMgQmFzZSB1dGlsaXR5IHR5cGVzIGZv
ciB0aGUgQVNULgogIwpAQCAtNzg0LDEyICs3ODYsMTMgQEAgY2xhc3MgQWJzb2x1dGVBZGRyZXNz
IDwgTm9DaGlsZHJlbgogZW5kCiAKIGNsYXNzIEluc3RydWN0aW9uIDwgTm9kZQotICAgIGF0dHJf
cmVhZGVyIDpvcGNvZGUsIDpvcGVyYW5kcworICAgIGF0dHJfcmVhZGVyIDpvcGNvZGUsIDpvcGVy
YW5kcywgOmFubm90YXRpb24KICAgICAKLSAgICBkZWYgaW5pdGlhbGl6ZShjb2RlT3JpZ2luLCBv
cGNvZGUsIG9wZXJhbmRzKQorICAgIGRlZiBpbml0aWFsaXplKGNvZGVPcmlnaW4sIG9wY29kZSwg
b3BlcmFuZHMsIGFubm90YXRpb249bmlsKQogICAgICAgICBzdXBlcihjb2RlT3JpZ2luKQogICAg
ICAgICBAb3Bjb2RlID0gb3Bjb2RlCiAgICAgICAgIEBvcGVyYW5kcyA9IG9wZXJhbmRzCisgICAg
ICAgIEBhbm5vdGF0aW9uID0gYW5ub3RhdGlvbgogICAgIGVuZAogICAgIAogICAgIGRlZiBjaGls
ZHJlbgpAQCAtNzk3LDcgKzgwMCw3IEBAIGNsYXNzIEluc3RydWN0aW9uIDwgTm9kZQogICAgIGVu
ZAogICAgIAogICAgIGRlZiBtYXBDaGlsZHJlbigmcHJvYykKLSAgICAgICAgSW5zdHJ1Y3Rpb24u
bmV3KGNvZGVPcmlnaW4sIEBvcGNvZGUsIEBvcGVyYW5kcy5tYXAoJnByb2MpKQorICAgICAgICBJ
bnN0cnVjdGlvbi5uZXcoY29kZU9yaWdpbiwgQG9wY29kZSwgQG9wZXJhbmRzLm1hcCgmcHJvYyks
IEBhbm5vdGF0aW9uKQogICAgIGVuZAogICAgIAogICAgIGRlZiBkdW1wCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9iYWNrZW5kcy5yYgo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9iYWNrZW5kcy5yYgkocmV2aXNpb24gMTIyNjMx
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYmFja2VuZHMucmIJKHdvcmtp
bmcgY29weSkKQEAgLTIxLDYgKzIxLDcgQEAKICMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgogIyBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKK3JlcXVpcmUgImNvbmZpZyIKIHJlcXVpcmUgImFybXY3
IgogcmVxdWlyZSAiYXN0IgogcmVxdWlyZSAieDg2IgpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL29mZmxpbmVhc20vY29uZmlnLnJiCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9vZmZsaW5lYXNtL2NvbmZpZy5yYgkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9vZmZsaW5lYXNtL2NvbmZpZy5yYgkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3NiBA
QAorIyBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
IworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
IworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworCisjIFR1cm5zIG9uIGR1
bXBpbmcgb2YgdGhlIGNvdW50IG9mIGxhYmVscy4KKyMgRm9yIGV4YW1wbGUsICB0aGUgb3V0cHV0
IHdpbGwgbG9vayBsaWtlIHRoaXM6CisjCisjICAgIC4uLgorIyAgICBPRkZMSU5FX0FTTV9MT0NB
TF9MQUJFTChfb2ZmbGluZWFzbV80X2Z1bmN0aW9uQXJpdHlDaGVja19fY29udGludWUpICAvLyBM
b2NhbCBMYWJlbCAyNCAuCisjICAgIC4uLgorIyAgICBPRkZMSU5FX0FTTV9HTE9CQUxfTEFCRUwo
bGxpbnRfb3BfZW50ZXIpICAvLyBHbG9iYWwgTGFiZWwgOCAuCisjICAgIC4uLgorIworJGVuYWJs
ZUxhYmVsQ291bnRDb21tZW50cyA9IGZhbHNlCisKKyMgVHVybnMgb24gZHVtcGluZyBvZiBzb3Vy
Y2UgZmlsZSBhbmQgbGluZSBudW1iZXJzIGluIHRoZSBvdXRwdXQgZmlsZS4KKyMgRm9yIGV4YW1w
bGUsICB0aGUgb3V0cHV0IHdpbGwgbG9vayBsaWtlIHRoaXM6CisjCisjICAgIC4uLgorIyAgICAi
XHRtb3ZxIC04KCVyMTMpLCAlcmN4XG4iICAgLy8gSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2
ZWxJbnRlcnByZXRlcjY0LmFzbToxODUKKyMgICAgIlx0bW92bCA1MiglcmN4KSwgJWVjeFxuIiAg
IC8vIEphdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc206MTg2Cisj
ICAgIC4uLgorIworJGVuYWJsZUNvZGVPcmlnaW5Db21tZW50cyA9IHRydWUKKworIyBUdXJucyBv
biByZWNvcmRpbmcgYW5kIGR1bXBpbmcgb2YgYW5ub3RhdGlvbnMgaW4gdGhlIGdlbmVyYXRlZCBv
dXRwdXQgZmlsZS4KKyMgQW4gYW5ub3RhdGlvbnMgY2FuIGJlIHNwZWNpZmllZCBmb3IgZWFjaCBp
bnN0cnVjdGlvbiBpbiB0aGUgc291cmNlIGFzbSBmaWxlcy4KKyMKKyMgJGVuYWJsZUludGVybGFj
ZWRJbnN0ckFubm90YXRpb25zIHdpbGwgaW50ZXJsYWNlIHRoZSBhbm5vdGF0aW9uIGJldHdlZW4K
KyMgaW5zdHJ1Y3Rpb25zLiAgRm9yIGV4YW1wbGUsIHRoZSBvdXRwdXQgd2lsbCBsb29rIGxpa2Ug
dGhpczoKKyMKKyMgICAgIC4uLgorIyAgICAgLy8gQCB0MjxDb2RlQmxvY2s+ID0gY2ZyLkNvZGVC
bG9jaworIyAgICAiXHRtb3ZxIC04KCVyMTMpLCAlcmN4XG4iCisjICAgICAvLyBAIHQyPHNpemVf
dD4gPSB0MjxDb2RlQmxvY2s+Lm1fbnVtVmFycworIyAgICAiXHRtb3ZsIDUyKCVyY3gpLCAlZWN4
XG4iCisjICAgICAuLi4KKyMKKyMgJGVuYWJsZVRyYWlsaW5nSW5zdHJBbm5vdGF0aW9ucyB3aWxs
IGluc2VydCB0aGUgYW5ub3RhdGlvbiBpbiB0aGUgdHJhaWxpbmcKKyMgY29tbWVudCBhZnRlciB5
b3VyIGluc3RydWN0aW9ucy4gIEZvciBleGFtcGxlLCB0aGUgb3V0cHV0IHdpbGwgbG9vayBsaWtl
IHRoaXM6CisjCisjICAgICAuLi4KKyMgICAgIlx0bW92cSAtOCglcjEzKSwgJXJjeFxuIiAgIC8v
IEAgdDI8Q29kZUJsb2NrPiA9IGNmci5Db2RlQmxvY2sKKyMgICAgIlx0bW92bCA1MiglcmN4KSwg
JWVjeFxuIiAgIC8vIEAgdDI8c2l6ZV90PiA9IHQyPENvZGVCbG9jaz4ubV9udW1WYXJzCisjICAg
ICAuLi4KKyMKKyMgSWYgYm90aCAkZW5hYmxlSW50ZXJsYWNlZEluc3RyQW5ub3RhdGlvbnMgYW5k
ICRlbmFibGVUcmFpbGluZ0luc3RyQW5ub3RhdGlvbnMKKyMgYXJlIGVuYWJsZWQsIGludGVybGFj
ZWQgYW5ub3RhdGlvbnMgd2lsbCB0YWtlIHByZWNlZGVuY2UsIGFuZCBhbnkgYXZhaWxhYmxlCisj
IGFubm90YXRpb25zIHdpbGwgb25seSBiZSBkdW1wZWQgaW4gdGhlIGludGVybGFjZWQgZm9ybWF0
LgorIworJGVuYWJsZUludGVybGFjZWRJbnN0ckFubm90YXRpb25zID0gZmFsc2UKKyRlbmFibGVU
cmFpbGluZ0luc3RyQW5ub3RhdGlvbnMgPSBmYWxzZQorCisKKyMgU2FuaXR5IGNoZWNrIGZvciBh
bm5vdGF0aW9uIGNvbmZpZ3MuCiskZW5hYmxlSW5zdHJBbm5vdGF0aW9ucyA9ICgkZW5hYmxlSW50
ZXJsYWNlZEluc3RyQW5ub3RhdGlvbnMgb3IgJGVuYWJsZVRyYWlsaW5nSW5zdHJBbm5vdGF0aW9u
cykKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2dlbmVyYXRlX29mZnNl
dF9leHRyYWN0b3IucmIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxp
bmVhc20vZ2VuZXJhdGVfb2Zmc2V0X2V4dHJhY3Rvci5yYgkocmV2aXNpb24gMTIyNjMxKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vZ2VuZXJhdGVfb2Zmc2V0X2V4dHJhY3Rv
ci5yYgkod29ya2luZyBjb3B5KQpAQCAtMjUsNiArMjUsNyBAQAogCiAkOiA8PCBGaWxlLmRpcm5h
bWUoX19GSUxFX18pCiAKK3JlcXVpcmUgImNvbmZpZyIKIHJlcXVpcmUgImJhY2tlbmRzIgogcmVx
dWlyZSAiZGlnZXN0L3NoYTEiCiByZXF1aXJlICJvZmZzZXRzIgpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL29mZmxpbmVhc20vaW5zdHJ1Y3Rpb25zLnJiCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2luc3RydWN0aW9ucy5yYgkocmV2aXNpb24gMTIy
NjMxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vaW5zdHJ1Y3Rpb25zLnJi
CSh3b3JraW5nIGNvcHkpCkBAIC0yMSw2ICsyMSw4IEBACiAjIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKICMgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCityZXF1aXJlICJjb25maWciCisKICMgSW50
ZXJlc3RpbmcgaW52YXJpYW50LCB3aGljaCB3ZSB0YWtlIGFkdmFudGFnZSBvZjogYnJhbmNoaW5n
IGluc3RydWN0aW9ucwogIyBhbHdheXMgYmVnaW4gd2l0aCAiYiIsIGFuZCBubyBub24tYnJhbmNo
aW5nIGluc3RydWN0aW9ucyBiZWdpbiB3aXRoICJiIi4KICMgVGVybWluYWwgaW5zdHJ1Y3Rpb25z
IGFyZSAiam1wIiBhbmQgInJldCIuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGlu
ZWFzbS9vZmZzZXRzLnJiCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZs
aW5lYXNtL29mZnNldHMucmIJKHJldmlzaW9uIDEyMjYzMSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9vZmZsaW5lYXNtL29mZnNldHMucmIJKHdvcmtpbmcgY29weSkKQEAgLTIxLDYgKzIxLDcg
QEAKICMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgogIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAK
K3JlcXVpcmUgImNvbmZpZyIKIHJlcXVpcmUgImFzdCIKIAogZGVmIHRvMzJCaXQodmFsdWUpCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9vcHQucmIKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vb3B0LnJiCShyZXZpc2lvbiAxMjI2
MzEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9vcHQucmIJKHdvcmtpbmcg
Y29weSkKQEAgLTIxLDYgKzIxLDcgQEAKICMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgogIyBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCiAKK3JlcXVpcmUgImNvbmZpZyIKIHJlcXVpcmUgImFzdCIKIAog
IwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcGFyc2VyLnJiCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3BhcnNlci5yYgkocmV2
aXNpb24gMTIyNjMxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcGFyc2Vy
LnJiCSh3b3JraW5nIGNvcHkpCkBAIC0yMSw2ICsyMSw3IEBACiAjIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKICMg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCityZXF1aXJlICJjb25maWciCiByZXF1
aXJlICJhc3QiCiByZXF1aXJlICJpbnN0cnVjdGlvbnMiCiByZXF1aXJlICJwYXRobmFtZSIKQEAg
LTgxLDExICs4MiwyMCBAQCBkZWYgbGV4KHN0ciwgZmlsZU5hbWUpCiAgICAgZmlsZU5hbWUgPSBQ
YXRobmFtZS5uZXcoZmlsZU5hbWUpCiAgICAgcmVzdWx0ID0gW10KICAgICBsaW5lTnVtYmVyID0g
MQorICAgIGFubm90YXRpb24gPSBuaWwKICAgICB3aGlsZSBub3Qgc3RyLmVtcHR5PwogICAgICAg
ICBjYXNlIHN0cgogICAgICAgICB3aGVuIC9cQVwjKFteXG5dKikvCiAgICAgICAgICAgICAjIGNv
bW1lbnQsIGlnbm9yZQorICAgICAgICB3aGVuIC9cQVwvXC8oW15cbl0qKS8KKyAgICAgICAgICAg
ICMgYW5ub3RhdGlvbgorICAgICAgICAgICAgYW5ub3RhdGlvbiA9ICQxCiAgICAgICAgIHdoZW4g
L1xBXG4vCisgICAgICAgICAgICAjIFdlJ3ZlIGZvdW5kIGEgJ1xuJy4gIEVtaXQgdGhlIGxhc3Qg
Y29tbWVudCByZWNvcmRlZCBpZiBhcHByb3ByaWF0ZToKKyAgICAgICAgICAgIGlmICRlbmFibGVJ
bnN0ckFubm90YXRpb25zIGFuZCBhbm5vdGF0aW9uCisgICAgICAgICAgICAgICAgcmVzdWx0IDw8
IFRva2VuLm5ldyhDb2RlT3JpZ2luLm5ldyhmaWxlTmFtZSwgbGluZU51bWJlciksICJAIiArIGFu
bm90YXRpb24pCisgICAgICAgICAgICAgICAgYW5ub3RhdGlvbiA9IG5pbAorICAgICAgICAgICAg
ZW5kCiAgICAgICAgICAgICByZXN1bHQgPDwgVG9rZW4ubmV3KENvZGVPcmlnaW4ubmV3KGZpbGVO
YW1lLCBsaW5lTnVtYmVyKSwgJCYpCiAgICAgICAgICAgICBsaW5lTnVtYmVyICs9IDEKICAgICAg
ICAgd2hlbiAvXEFbYS16QS1aXShbYS16QS1aMC05X10qKS8KQEAgLTEzNiw2ICsxNDYsMTAgQEAg
ZGVmIGlzSWRlbnRpZmllcih0b2tlbikKICAgICB0b2tlbiA9fiAvXEFbYS16QS1aXShbYS16QS1a
MC05X10qKVxaLyBhbmQgbm90IGlzS2V5d29yZCh0b2tlbikKIGVuZAogCitkZWYgaXNBbm5vdGF0
aW9uKHRva2VuKQorICAgIHRva2VuID1+IC9cQVxAKFteXG5dKikvCitlbmQKKwogZGVmIGlzTGFi
ZWwodG9rZW4pCiAgICAgdG9rZW4gPX4gL1xBXyhbYS16QS1aMC05X10qKVxaLwogZW5kCkBAIC01
MzUsNiArNTQ5LDEwIEBAIGNsYXNzIFBhcnNlcgogICAgICAgICAgICAgICAgICAgICAjIFplcm8g
b3BlcmFuZCBpbnN0cnVjdGlvbiwgYW5kIGl0J3MgdGhlIGxhc3Qgb25lLgogICAgICAgICAgICAg
ICAgICAgICBsaXN0IDw8IEluc3RydWN0aW9uLm5ldyhjb2RlT3JpZ2luLCBuYW1lLCBbXSkKICAg
ICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgICAgICBlbHNpZiBpc0Fubm90YXRp
b24gQHRva2Vuc1tAaWR4XQorICAgICAgICAgICAgICAgICAgICBhbm5vdGF0aW9uID0gQHRva2Vu
c1tAaWR4XS5zdHJpbmcKKyAgICAgICAgICAgICAgICAgICAgbGlzdCA8PCBJbnN0cnVjdGlvbi5u
ZXcoY29kZU9yaWdpbiwgbmFtZSwgW10sIGFubm90YXRpb24pCisgICAgICAgICAgICAgICAgICAg
IEBpZHggKz0gMiAjIENvbnN1bWUgdGhlIG5ld2xpbmUgYXMgd2VsbC4KICAgICAgICAgICAgICAg
ICBlbHNpZiBAdG9rZW5zW0BpZHhdID09ICJcbiIKICAgICAgICAgICAgICAgICAgICAgIyBaZXJv
IG9wZXJhbmQgaW5zdHJ1Y3Rpb24uCiAgICAgICAgICAgICAgICAgICAgIGxpc3QgPDwgSW5zdHJ1
Y3Rpb24ubmV3KGNvZGVPcmlnaW4sIG5hbWUsIFtdKQpAQCAtNTQzLDYgKzU2MSw3IEBAIGNsYXNz
IFBhcnNlcgogICAgICAgICAgICAgICAgICAgICAjIEl0J3MgZGVmaW5pdGVseSBhbiBpbnN0cnVj
dGlvbiwgYW5kIGl0IGhhcyBhdCBsZWFzdCBvbmUgb3BlcmFuZC4KICAgICAgICAgICAgICAgICAg
ICAgb3BlcmFuZHMgPSBbXQogICAgICAgICAgICAgICAgICAgICBlbmRPZlNlcXVlbmNlID0gZmFs
c2UKKyAgICAgICAgICAgICAgICAgICAgYW5ub3RhdGlvbiA9IG5pbAogICAgICAgICAgICAgICAg
ICAgICBsb29wIHsKICAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhbmRzIDw8IHBhcnNlT3Bl
cmFuZCgid2hpbGUgaW5zaWRlIG9mIGluc3RydWN0aW9uICN7bmFtZX0iKQogICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKG5vdCBmaW5hbCBhbmQgQGlkeCA9PSBAdG9rZW5zLnNpemUpIG9yIChm
aW5hbCBhbmQgQHRva2Vuc1tAaWR4XSA9fiBmaW5hbCkKQEAgLTU1Miw2ICs1NzEsMTAgQEAgY2xh
c3MgUGFyc2VyCiAgICAgICAgICAgICAgICAgICAgICAgICBlbHNpZiBAdG9rZW5zW0BpZHhdID09
ICIsIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgSGFzIGFub3RoZXIgb3BlcmFuZC4K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWR4ICs9IDEKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGVsc2lmIGlzQW5ub3RhdGlvbiBAdG9rZW5zW0BpZHhdCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYW5ub3RhdGlvbiA9IEB0b2tlbnNbQGlkeF0uc3RyaW5nCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgQGlkeCArPSAyICMgQ29uc3VtZSB0aGUgbmV3bGluZSBhcyB3ZWxs
LgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCiAgICAgICAgICAgICAgICAgICAg
ICAgICBlbHNpZiBAdG9rZW5zW0BpZHhdID09ICJcbiIKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAjIFRoZSBlbmQgb2YgdGhlIGluc3RydWN0aW9uLgogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEBpZHggKz0gMQpAQCAtNTYwLDcgKzU4Myw3IEBAIGNsYXNzIFBhcnNlcgogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBhcnNlRXJyb3IoIkV4cGVjdGVkIGEgY29tbWEsIG5ld2xp
bmUsIG9yICN7ZmluYWx9IGFmdGVyICN7b3BlcmFuZHMubGFzdC5kdW1wfSIpCiAgICAgICAgICAg
ICAgICAgICAgICAgICBlbmQKICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
ICAgICBsaXN0IDw8IEluc3RydWN0aW9uLm5ldyhjb2RlT3JpZ2luLCBuYW1lLCBvcGVyYW5kcykK
KyAgICAgICAgICAgICAgICAgICAgbGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcoY29kZU9yaWdpbiwg
bmFtZSwgb3BlcmFuZHMsIGFubm90YXRpb24pCiAgICAgICAgICAgICAgICAgICAgIGlmIGVuZE9m
U2VxdWVuY2UKICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCiAgICAgICAgICAgICAgICAg
ICAgIGVuZApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcmVnaXN0ZXJz
LnJiCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3JlZ2lz
dGVycy5yYgkocmV2aXNpb24gMTIyNjMxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxp
bmVhc20vcmVnaXN0ZXJzLnJiCSh3b3JraW5nIGNvcHkpCkBAIC0yMSw2ICsyMSw4IEBACiAjIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKICMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCityZXF1aXJl
ICJjb25maWciCisKIEdQUlMgPQogICAgIFsKICAgICAgInQwIiwKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9vZmZsaW5lYXNtL3NlbGZfaGFzaC5yYgo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9zZWxmX2hhc2gucmIJKHJldmlzaW9uIDEyMjYzMSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3NlbGZfaGFzaC5yYgkod29ya2lu
ZyBjb3B5KQpAQCAtMjEsNiArMjEsNyBAQAogIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCiAjIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KIAorcmVxdWlyZSAiY29uZmlnIgogcmVxdWlyZSAiZGlnZXN0
L3NoYTEiCiByZXF1aXJlICJwYXRobmFtZSIKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L29mZmxpbmVhc20vc2V0dGluZ3MucmIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL29mZmxpbmVhc20vc2V0dGluZ3MucmIJKHJldmlzaW9uIDEyMjYzMSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3NldHRpbmdzLnJiCSh3b3JraW5nIGNvcHkpCkBAIC0y
MSw2ICsyMSw3IEBACiAjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKICMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgogCityZXF1aXJlICJjb25maWciCiByZXF1aXJlICJhc3QiCiByZXF1aXJlICJiYWNr
ZW5kcyIKIHJlcXVpcmUgInBhcnNlciIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZs
aW5lYXNtL3RyYW5zZm9ybS5yYgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
b2ZmbGluZWFzbS90cmFuc2Zvcm0ucmIJKHJldmlzaW9uIDEyMjYzMSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9vZmZsaW5lYXNtL3RyYW5zZm9ybS5yYgkod29ya2luZyBjb3B5KQpAQCAtMjEs
NiArMjEsNyBAQAogIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCiAjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KIAorcmVxdWlyZSAiY29uZmlnIgogcmVxdWlyZSAiYXN0IgogCiAjCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS94ODYucmIKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20veDg2LnJiCShyZXZpc2lvbiAxMjI2MzEpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS94ODYucmIJKHdvcmtpbmcgY29weSkKQEAg
LTIxLDYgKzIxLDggQEAKICMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgogIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCiAKK3JlcXVpcmUgImNvbmZpZyIKKwogZGVmIGlzWDY0CiAgICAgY2FzZSAkYWN0
aXZlQmFja2VuZAogICAgIHdoZW4gIlg4NiIKQEAgLTM1Myw3ICszNTUsNyBAQCBjbGFzcyBTZXF1
ZW5jZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhbmQKICAgICAgICAgICAgICAg
ICAgICAgICAgIGVuZAogICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAg
IG5ld05vZGUgPSBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCBub2RlLm9wY29kZSwg
bmV3T3BlcmFuZHMpCisgICAgICAgICAgICAgICAgICAgIG5ld05vZGUgPSBJbnN0cnVjdGlvbi5u
ZXcobm9kZS5jb2RlT3JpZ2luLCBub2RlLm9wY29kZSwgbmV3T3BlcmFuZHMsIG5vZGUuYW5ub3Rh
dGlvbikKICAgICAgICAgICAgICAgICBlbmQKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAg
ICAgICB1bmxlc3Mgbm9kZS5pc19hPyBMYWJlbCBvcgpAQCAtNjIyLDcgKzYyNCw5IEBAIGNsYXNz
IEluc3RydWN0aW9uCiAgICAgZW5kCiAgICAgCiAgICAgZGVmIGxvd2VyWDg2Q29tbW9uCi0gICAg
ICAgICRhc20uY29tbWVudCBjb2RlT3JpZ2luU3RyaW5nCisgICAgICAgICRhc20uY29kZU9yaWdp
biBjb2RlT3JpZ2luU3RyaW5nCisgICAgICAgICRhc20uYW5ub3RhdGlvbiBhbm5vdGF0aW9uCisK
ICAgICAgICAgY2FzZSBvcGNvZGUKICAgICAgICAgd2hlbiAiYWRkaSIKICAgICAgICAgICAgIGhh
bmRsZVg4NkFkZCg6aW50KQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>