<?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>173526</bug_id>
          
          <creation_ts>2017-06-18 13:28:04 -0700</creation_ts>
          <short_desc>Fix Ref to deref before assignment, add tests for this to RefPtr, Ref, Function</short_desc>
          <delta_ts>2017-06-19 10:01:18 -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>Web Template Framework</component>
          <version>WebKit 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>1</everconfirmed>
          <reporter name="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>cdumez</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1320546</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-06-18 13:28:04 -0700</bug_when>
    <thetext>Fix Ref to deref before assignment, add tests for this to RefPtr, Ref, Function</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1320547</commentid>
    <comment_count>1</comment_count>
      <attachid>313243</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-06-18 13:33:57 -0700</bug_when>
    <thetext>Created attachment 313243
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1320548</commentid>
    <comment_count>2</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-06-18 13:34:41 -0700</bug_when>
    <thetext>Chris, I’ll merge this WTF::Function test with the reentrancy test you made, once you land your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1320549</commentid>
    <comment_count>3</comment_count>
      <attachid>313244</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-06-18 13:39:07 -0700</bug_when>
    <thetext>Created attachment 313244
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1320553</commentid>
    <comment_count>4</comment_count>
      <attachid>313244</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-06-18 15:20:52 -0700</bug_when>
    <thetext>Comment on attachment 313244
Patch

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

&gt; Source/WTF/ChangeLog:8
&gt; +        * wtf/Ref.h: Changed operator= to not be inlined. Added swap functions.

I think you mean inline in the definition.  It is still inlined.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1320728</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-06-19 10:01:18 -0700</bug_when>
    <thetext>Committed r218496: &lt;http://trac.webkit.org/changeset/218496&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>313243</attachid>
            <date>2017-06-18 13:33:57 -0700</date>
            <delta_ts>2017-06-18 13:39:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-173526-20170618133356.patch</filename>
            <type>text/plain</type>
            <size>44555</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE4NDY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDFjMWYyODg3ODQyYzU3ZjM3Yjk4ZjVh
OWI4OGYzODY5YmI3NjIwMGEuLjU5YWFkYTM2Y2NlZWU3OTFiNDczNDgwZGUwMmQ4MmExZTY3NzUw
MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTctMDYtMTggIERhcmluIEFkbGVyICA8ZGFyaW5A
YXBwbGUuY29tPgorCisgICAgICAgIEZpeCBSZWYgdG8gZGVyZWYgYmVmb3JlIGFzc2lnbm1lbnQs
IGFkZCB0ZXN0cyBmb3IgdGhpcyB0byBSZWZQdHIsIFJlZiwgRnVuY3Rpb24KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MzUyNgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL1JlZi5oOiBDaGFuZ2Vk
IG9wZXJhdG9yPSB0byBub3QgYmUgaW5saW5lZC4gQWRkZWQgc3dhcCBmdW5jdGlvbnMuCisgICAg
ICAgIENoYW5nZWQgb3BlcmF0b3I9IGltcGxlbWVudGF0aW9ucyB0byB1c2Ugc3dhcCBpbiB0aGUg
Y29udmVudGlvbmFsIG1hbm5lciwgdGhlCisgICAgICAgIHNhbWUgd2F5IHRoYXQgUmVmUHRyIGRv
ZXMuCisKIDIwMTctMDYtMTggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAg
ICAgICBVc2UgV1RGOjpGdW5jdGlvbiBpbnN0ZWFkIG9mIHN0ZDo6ZnVuY3Rpb24gaW4gV1RGLwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUmVmLmggYi9Tb3VyY2UvV1RGL3d0Zi9SZWYuaApp
bmRleCBkZjU2OGYxOGQxZDdkMzRjZDIzZjE5MjNiMzU1MWE2YTNjNTZjYzBlLi5kM2RmZGNjYjQy
NTU4ZDAyYjk3YmZiMzk5OWQ4YzZhZTUwNWVmMDI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0
Zi9SZWYuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9SZWYuaApAQCAtODIsMzcgKzgyLDE1IEBAIHB1
YmxpYzoKICAgICAgICAgQVNTRVJUKG1fcHRyKTsKICAgICB9CiAKLSAgICBSZWYmIG9wZXJhdG9y
PShUJiBvYmplY3QpCi0gICAgewotICAgICAgICBBU1NFUlQobV9wdHIpOwotICAgICAgICBvYmpl
Y3QucmVmKCk7Ci0gICAgICAgIG1fcHRyLT5kZXJlZigpOwotICAgICAgICBtX3B0ciA9ICZvYmpl
Y3Q7Ci0gICAgICAgIEFTU0VSVChtX3B0cik7Ci0gICAgICAgIHJldHVybiAqdGhpczsKLSAgICB9
CisgICAgUmVmJiBvcGVyYXRvcj0oVCYpOworICAgIFJlZiYgb3BlcmF0b3I9KFJlZiYmKTsKKyAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiBSZWYmIG9wZXJhdG9yPShSZWY8VT4mJik7CiAKICAgICAv
LyBVc2UgY29weVJlZigpIGFuZCB0aGUgbW92ZSBhc3NpZ25tZW50IG9wZXJhdG9ycyBpbnN0ZWFk
LgotICAgIFJlZiYgb3BlcmF0b3I9KGNvbnN0IFJlZiYgcmVmZXJlbmNlKSA9IGRlbGV0ZTsKLSAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiBSZWYmIG9wZXJhdG9yPShjb25zdCBSZWY8VT4mIHJlZmVy
ZW5jZSkgPSBkZWxldGU7Ci0KLSAgICBSZWYmIG9wZXJhdG9yPShSZWYmJiByZWZlcmVuY2UpCi0g
ICAgewotICAgICAgICBBU1NFUlQobV9wdHIpOwotICAgICAgICBtX3B0ci0+ZGVyZWYoKTsKLSAg
ICAgICAgbV9wdHIgPSAmcmVmZXJlbmNlLmxlYWtSZWYoKTsKLSAgICAgICAgQVNTRVJUKG1fcHRy
KTsKLSAgICAgICAgcmV0dXJuICp0aGlzOwotICAgIH0KKyAgICBSZWYmIG9wZXJhdG9yPShjb25z
dCBSZWYmKSA9IGRlbGV0ZTsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiBSZWYmIG9wZXJhdG9y
PShjb25zdCBSZWY8VT4mKSA9IGRlbGV0ZTsKIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+IFJl
ZiYgb3BlcmF0b3I9KFJlZjxVPiYmIHJlZmVyZW5jZSkKLSAgICB7Ci0gICAgICAgIEFTU0VSVCht
X3B0cik7Ci0gICAgICAgIG1fcHRyLT5kZXJlZigpOwotICAgICAgICBtX3B0ciA9ICZyZWZlcmVu
Y2UubGVha1JlZigpOwotICAgICAgICBBU1NFUlQobV9wdHIpOwotICAgICAgICByZXR1cm4gKnRo
aXM7Ci0gICAgfQorICAgIHZvaWQgc3dhcChSZWYmKTsKIAogICAgIC8vIEhhc2ggdGFibGUgZGVs
ZXRlZCB2YWx1ZXMsIHdoaWNoIGFyZSBvbmx5IGNvbnN0cnVjdGVkIGFuZCBuZXZlciBjb3BpZWQg
b3IgZGVzdHJveWVkLgogICAgIFJlZihIYXNoVGFibGVEZWxldGVkVmFsdWVUeXBlKSA6IG1fcHRy
KGhhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpKSB7IH0KQEAgLTE3MSw2ICsxNDksNDEgQEAgcHJpdmF0
ZToKICAgICBUKiBtX3B0cjsKIH07CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IHZvaWQgc3dhcChS
ZWY8VD4mLCBSZWY8VD4mKTsKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IFJlZjxUPiBhZG9wdFJlZihU
Jik7Cit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBSZWY8VD4gbWFrZVJlZihUJik7CisKK3RlbXBsYXRl
PHR5cGVuYW1lIFQ+IGlubGluZSBSZWY8VD4mIFJlZjxUPjo6b3BlcmF0b3I9KFQmIHJlZmVyZW5j
ZSkKK3sKKyAgICBSZWYgY29waWVkUmVmZXJlbmNlID0gcmVmZXJlbmNlOworICAgIHN3YXAoY29w
aWVkUmVmZXJlbmNlKTsKKyAgICByZXR1cm4gKnRoaXM7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1l
IFQ+IGlubGluZSBSZWY8VD4mIFJlZjxUPjo6b3BlcmF0b3I9KFJlZiYmIHJlZmVyZW5jZSkKK3sK
KyAgICBSZWYgbW92ZWRSZWZlcmVuY2UgPSBXVEZNb3ZlKHJlZmVyZW5jZSk7CisgICAgc3dhcCht
b3ZlZFJlZmVyZW5jZSk7CisgICAgcmV0dXJuICp0aGlzOworfQorCit0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPiB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiBpbmxpbmUgUmVmPFQ+JiBSZWY8VD46Om9wZXJhdG9y
PShSZWY8VT4mJiByZWZlcmVuY2UpCit7CisgICAgUmVmIG1vdmVkUmVmZXJlbmNlID0gV1RGTW92
ZShyZWZlcmVuY2UpOworICAgIHN3YXAobW92ZWRSZWZlcmVuY2UpOworICAgIHJldHVybiAqdGhp
czsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIHZvaWQgUmVmPFQ+Ojpzd2FwKFJl
ZiYgb3RoZXIpCit7CisgICAgc3RkOjpzd2FwKG1fcHRyLCBvdGhlci5tX3B0cik7Cit9CisKK3Rl
bXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSB2b2lkIHN3YXAoUmVmPFQ+JiBhLCBSZWY8VD4mIGIp
Cit7CisgICAgYS5zd2FwKGIpOworfQorCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB0ZW1wbGF0ZTx0
eXBlbmFtZSBVPiBpbmxpbmUgUmVmPFQ+IFJlZjxUPjo6cmVwbGFjZShSZWY8VT4mJiByZWZlcmVu
Y2UpCiB7CiAgICAgYXV0byBvbGRSZWZlcmVuY2UgPSBhZG9wdFJlZigqbV9wdHIpOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDdlNDE3ZGE0ZDRk
ZTViMWE0YWI3NjRhZTc3Nzk1ZGQyM2Q4MWM3YTMuLjQxOTkzZjg5NTIzY2JmYTNkMGVlMmY5YWUw
MTBjZTU4YWQ2Mzk2M2MgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAxNy0wNi0xOCAgRGFyaW4gQWRsZXIgIDxkYXJp
bkBhcHBsZS5jb20+CisKKyAgICAgICAgRml4IFJlZiB0byBkZXJlZiBiZWZvcmUgYXNzaWdubWVu
dCwgYWRkIHRlc3RzIGZvciB0aGlzIHRvIFJlZlB0ciwgUmVmLCBGdW5jdGlvbgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTczNTI2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL0NN
YWtlTGlzdHMudHh0OiBBZGRlZCBGdW5jdGlvbi5jcHAuCisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IERpdHRvLgorCisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRnVuY3Rpb24uY3BwOiBBZGRlZC4gQ29udGFp
bnMgYmFzaWMgdGVzdHMgYW5kIHNvbWUKKyAgICAgICAgdGVzdHMgZm9yIGFzc2lnbm1lbnQgYmVm
b3JlIGRlc3RydWN0aW9uIG9uZXMuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9Nb3ZlT25seS5oOiBBZGRlZCBhICgpIG9wZXJhdG9yIHNvIHRoaXMgY2FuIGJlIHVzZWQKKyAg
ICAgICAgYXMgYSBmdW5jdGlvbiwgc28gaXQgY2FuIGJlIHVzZWQgaW4gV1RGOjpGdW5jdGlvbiB0
ZXN0cy4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1JlZi5jcHA6IFVzZSBF
WFBFQ1QgbWFjcm9zIGluc2VhZCBvZiBBU1NFUlQuCisgICAgICAgIEFkZGVkIHRlc3RzIGZvciBz
d2FwIGFuZCBmb3IgYXNzaWdubWVudCBiZWZvcmUgZGVyZWYuCisKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9SZWZMb2dnZXIuY3BwOiBTdG9wcGVkIHVzaW5nIGlubGluaW5nOyBu
byBnb29kIHJlYXNvbgorICAgICAgICB0byBpbmxpbmUgZXZlcnl0aGluZy4gQWxzbyByZW1vdmVk
IHRoZSB1bm5lY2Vzc2FyeSBjbGVhcmluZyBvZiB0aGUgbG9nIGV2ZXJ5IHRpbWUKKyAgICAgICAg
dGhlIERlcml2ZWRSZWZMb2dnZXIgY29uc3RydWN0b3IgaXMgY2FsbGVkLgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL1JlZkxvZ2dlci5oOiBEaXR0by4KKworICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL1JlZlB0ci5jcHA6IFVzZSBFWFBFQ1QgbWFjcm9zIGluc3Rl
YWQgb2YgQVNTRVJULgorICAgICAgICBBZGRlZCB0ZXN0cyBmb3IgYXNzaWdubWVudCBiZWZvcmUg
ZGVyZWYgYW5kIHNpbWlsYXIgZm9yIHJlbGVhc2VOb25OdWxsLgorCiAyMDE3LTA2LTE2ICBEYW4g
QmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBTb21lIGRlY2xh
cmF0aW9ucyBoYXZlIG1pc3Npbmcgb3IgaW5jb3JyZWN0IGF2YWlsYWJpbGl0eSBhdHRyaWJ1dGVz
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL0NNYWtlTGlzdHMudHh0IGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9DTWFrZUxpc3RzLnR4dAppbmRleCA3MmExZmNkN2FlZGZmNGJjYTE0MmQz
YzZmZjM3Y2VlODZjM2FkMTAzLi5kODhkZjc5ZGJlZjBkMWNmZGZhOWEwMWU3MWEwZThlNDE2NjFj
YmFhIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL0NNYWtlTGlzdHMudHh0CisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ01ha2VMaXN0cy50eHQKQEAgLTUwLDYgKzUwLDcgQEAgc2V0
KFRlc3RXVEZfU09VUkNFUwogICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dURi9EZXF1
ZS5jcHAKICAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XVEYvRW51bVRyYWl0cy5jcHAK
ICAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XVEYvRXhwZWN0ZWQuY3BwCisgICAgJHtU
RVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV1RGL0Z1bmN0aW9uLmNwcAogICAgICR7VEVTVFdFQktJ
VEFQSV9ESVJ9L1Rlc3RzL1dURi9IYXNoQ291bnRlZFNldC5jcHAKICAgICAke1RFU1RXRUJLSVRB
UElfRElSfS9UZXN0cy9XVEYvSGFzaE1hcC5jcHAKICAgICAke1RFU1RXRUJLSVRBUElfRElSfS9U
ZXN0cy9XVEYvSGFzaFNldC5jcHAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZTU5ZWEzM2Nl
YzBmYTIyOWY4OGIyMWFlNTQwMDc5YjJlM2EyYzA2Yy4uNGM5MWM2NjNhYmRmNWNkNTZkZWExODU1
ZjUzNGJhNjYyNDYyZmNkZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQ4OCw2ICs0ODgs
NyBAQAogCQk4M0RFMTM0RDFFRjFDNTA4MDBDMUIzNTUgLyogUmVzcG9uc2l2ZW5lc3NUaW1lci5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0RFMTM0
QzFFRjFDNEZFMDBDMUIzNTUgLyogUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHAgKi87IH07CiAJCThF
NEE4NTM3MUUxRDFBQjIwMEY1M0IwRiAvKiBHcmlkUG9zaXRpb24uY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEU0QTg1MzYxRTFEMUFBMTAwRjUzQjBG
IC8qIEdyaWRQb3NpdGlvbi5jcHAgKi87IH07CiAJCTkzMEFENDAyMTUwNjk4RDAwMDY3OTcwRiAv
KiBsb3RzLW9mLXRleHQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5MzBBRDQwMTE1MDY5OEIzMDA2Nzk3MEYgLyogbG90cy1vZi10ZXh0
Lmh0bWwgKi87IH07CisJCTkzMTBDRDM4MUVGNzA4RkIwMDUwRkZFMCAvKiBGdW5jdGlvbi5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzEwQ0QzNjFF
RjcwOEZCMDA1MEZGRTAgLyogRnVuY3Rpb24uY3BwICovOyB9OwogCQk5MzI5QUEyOTFERTNGODFF
MDAzQUJEMDcgLyogVGV4dEJyZWFrSXRlcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMyOUFBMjgxREUzRjgxRTAwM0FCRDA3IC8qIFRleHRC
cmVha0l0ZXJhdG9yLmNwcCAqLzsgfTsKIAkJOTMyQUU1M0QxRDM3MTA0NzAwNURGRkFGIC8qIGZv
Y3VzLWlucHV0cy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzNTc1QzU1MUQzMDM2NkUwMDBENjA0RCAvKiBmb2N1cy1pbnB1dHMuaHRt
bCAqLzsgfTsKIAkJOTM2MTAwMjkxNERDOTVBNzAwNjEzNzlEIC8qIGxvdHMtb2YtaWZyYW1lcy5o
dG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzNjEwMDI4MTREQzk1N0IwMDYxMzc5RCAvKiBsb3RzLW9mLWlmcmFtZXMuaHRtbCAqLzsgfTsK
QEAgLTEzMzEsNiArMTMzMiw3IEBACiAJCThERDc2RkExMDQ4NkFBNzYwMEQ5NkI1RSAvKiBUZXN0
V2ViS2l0QVBJICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUg
PSAiY29tcGlsZWQubWFjaC1vLmV4ZWN1dGFibGUiOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGgg
PSBUZXN0V2ViS2l0QVBJOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk4
RTRBODUzNjFFMUQxQUExMDBGNTNCMEYgLyogR3JpZFBvc2l0aW9uLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdyaWRQb3NpdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTkzMEFENDAxMTUwNjk4QjMwMDY3OTcwRiAvKiBsb3RzLW9mLXRleHQu
aHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJsb3RzLW9mLXRleHQuaHRtbCI7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzMTBDRDM2MUVGNzA4RkIwMDUwRkZFMCAvKiBG
dW5jdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGdW5jdGlv
bi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMjlBQTI4MURFM0Y4MUUwMDNB
QkQwNyAvKiBUZXh0QnJlYWtJdGVyYXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBUZXh0QnJlYWtJdGVyYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTkzMzE0MDdCMTdCNDQxOTAwMEYwODNCMSAvKiBEaWROb3RIYW5kbGVLZXlEb3duLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERpZE5vdEhhbmRsZUtleURv
d24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzU3NUM1NTFEMzAzNjZFMDAw
RDYwNEQgLyogZm9jdXMtaW5wdXRzLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAi
Zm9jdXMtaW5wdXRzLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjMwNiw2
ICsyMzA4LDcgQEAKIAkJCQlFNEE3NTdEMzE3OEFFQTVCMDBCNUQ3QTQgLyogRGVxdWUuY3BwICov
LAogCQkJCTFBRjdCMjFEMUQ2Q0QxMkUwMDhDMTI2QyAvKiBFbnVtVHJhaXRzLmNwcCAqLywKIAkJ
CQlBRDdDNDM0QzFERDJBNTQ3MDAyNjg4OEIgLyogRXhwZWN0ZWQuY3BwICovLAorCQkJCTkzMTBD
RDM2MUVGNzA4RkIwMDUwRkZFMCAvKiBGdW5jdGlvbi5jcHAgKi8sCiAJCQkJN0EzOEQ3RTUxQzc1
MkQ1RjAwNEYxNTdEIC8qIEhhc2hDb3VudGVkU2V0LmNwcCAqLywKIAkJCQkwQkNEODMzNDE0ODU3
Q0U0MDBFQTIwMDMgLyogSGFzaE1hcC5jcHAgKi8sCiAJCQkJMjZCMkRGRjgxNUJERTU5OTAwNEY2
OTFEIC8qIEhhc2hTZXQuY3BwICovLApAQCAtMjg0Myw2ICsyODQ2LDcgQEAKIAkJCQk3QzgzREU5
OTFEMEE1OTBDMDBGRUJDRjMgLyogQXRvbWljU3RyaW5nLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTFBREFEMTUwMUQ3N0E5RjYwMDIxMjU4NiAvKiBCbG9ja1B0ci5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTdDODNERTlDMUQwQTU5MEMwMEZFQkNGMyAvKiBCbG9vbUZpbHRlci5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQk5MzEwQ0QzODFFRjcwOEZCMDA1MEZGRTAgLyogRnVuY3Rpb24uY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJN0M4M0RFQTAxRDBBNTkwQzAwRkVCQ0YzIC8qIENoZWNrZWRBcml0aG1l
dGljT3BlcmF0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QzgzREVDMzFEMEE1OTBDMDBG
RUJDRjMgLyogQ29uZGl0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDODNERUE2MUQwQTU5
MEMwMEZFQkNGMyAvKiBDb3VudGVycy5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0Z1bmN0aW9uLmNwcCBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL0Z1bmN0aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNzg0MGI5M2FhMWVhN2Q1
M2I5ZDUyYzJhYzQzMWVkNGU2NWE1ODgzCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvRnVuY3Rpb24uY3BwCkBAIC0wLDAgKzEsMTM2IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAiTW92ZU9ubHkuaCIKKyNpbmNs
dWRlIDx3dGYvRnVuY3Rpb24uaD4KKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitURVNU
KFdURl9GdW5jdGlvbiwgQmFzaWNzKQoreworICAgIEZ1bmN0aW9uPHVuc2lnbmVkKCk+IGE7Cisg
ICAgRVhQRUNUX0ZBTFNFKHN0YXRpY19jYXN0PGJvb2w+KGEpKTsKKyAgICBFWFBFQ1RfRVEoMFUs
IGEoKSk7CisKKyAgICBhID0gW10geworICAgICAgICByZXR1cm4gMVU7CisgICAgfTsKKyAgICBF
WFBFQ1RfVFJVRShzdGF0aWNfY2FzdDxib29sPihhKSk7CisgICAgRVhQRUNUX0VRKDFVLCBhKCkp
OworCisgICAgYSA9IG51bGxwdHI7CisgICAgRVhQRUNUX0ZBTFNFKHN0YXRpY19jYXN0PGJvb2w+
KGEpKTsKKyAgICBFWFBFQ1RfRVEoMFUsIGEoKSk7CisKKyAgICBhID0gTW92ZU9ubHkgeyAyIH07
CisgICAgRVhQRUNUX1RSVUUoc3RhdGljX2Nhc3Q8Ym9vbD4oYSkpOworICAgIEVYUEVDVF9FUSgy
VSwgYSgpKTsKKworICAgIEZ1bmN0aW9uPHVuc2lnbmVkKCk+IGIgPSBXVEZNb3ZlKGEpOworICAg
IEVYUEVDVF9UUlVFKHN0YXRpY19jYXN0PGJvb2w+KGIpKTsKKyAgICBFWFBFQ1RfRVEoMlUsIGIo
KSk7CisgICAgRVhQRUNUX0ZBTFNFKHN0YXRpY19jYXN0PGJvb2w+KGEpKTsKKyAgICBFWFBFQ1Rf
RVEoMFUsIGEoKSk7CisKKyAgICBhID0gTW92ZU9ubHkgeyAzIH07CisgICAgRnVuY3Rpb248dW5z
aWduZWQoKT4gYyA9IFdURk1vdmUoYSk7CisgICAgRVhQRUNUX1RSVUUoc3RhdGljX2Nhc3Q8Ym9v
bD4oYykpOworICAgIEVYUEVDVF9FUSgzVSwgYygpKTsKKyAgICBFWFBFQ1RfRkFMU0Uoc3RhdGlj
X2Nhc3Q8Ym9vbD4oYSkpOworICAgIEVYUEVDVF9FUSgwVSwgYSgpKTsKKworICAgIGIgPSBXVEZN
b3ZlKGMpOworICAgIEVYUEVDVF9UUlVFKHN0YXRpY19jYXN0PGJvb2w+KGIpKTsKKyAgICBFWFBF
Q1RfRVEoM1UsIGIoKSk7CisgICAgRVhQRUNUX0ZBTFNFKHN0YXRpY19jYXN0PGJvb2w+KGMpKTsK
KyAgICBFWFBFQ1RfRVEoMFUsIGMoKSk7CisKKyAgICBGdW5jdGlvbjx1bnNpZ25lZCgpPiBkID0g
bnVsbHB0cjsKKyAgICBFWFBFQ1RfRkFMU0Uoc3RhdGljX2Nhc3Q8Ym9vbD4oZCkpOworICAgIEVY
UEVDVF9FUSgwVSwgZCgpKTsKK30KKworc3RydWN0IEZ1bmN0aW9uRGVzdHJ1Y3Rpb25DaGVja2Vy
IHsKKyAgICBGdW5jdGlvbkRlc3RydWN0aW9uQ2hlY2tlcihGdW5jdGlvbjx1bnNpZ25lZCgpPiYg
ZnVuY3Rpb24pCisgICAgICAgIDogZnVuY3Rpb24geyBmdW5jdGlvbiB9CisgICAgeworICAgIH0K
KworICAgIH5GdW5jdGlvbkRlc3RydWN0aW9uQ2hlY2tlcigpCisgICAgeworICAgICAgICBmdW5j
dGlvbkFzQm9vbCA9IHN0YXRpY19jYXN0PGJvb2w+KGZ1bmN0aW9uKTsKKyAgICAgICAgZnVuY3Rp
b25SZXN1bHQgPSBmdW5jdGlvbigpOworICAgIH0KKworICAgIHVuc2lnbmVkIG9wZXJhdG9yKCko
KSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIDEwOworICAgIH0KKworICAgIEZ1bmN0aW9u
PHVuc2lnbmVkKCk+JiBmdW5jdGlvbjsKKyAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxib29sPiBm
dW5jdGlvbkFzQm9vbDsKKyAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gZnVuY3Rp
b25SZXN1bHQ7Cit9OworCitzdGQ6Om9wdGlvbmFsPGJvb2w+IEZ1bmN0aW9uRGVzdHJ1Y3Rpb25D
aGVja2VyOjpmdW5jdGlvbkFzQm9vbDsKK3N0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+IEZ1bmN0aW9u
RGVzdHJ1Y3Rpb25DaGVja2VyOjpmdW5jdGlvblJlc3VsdDsKKworVEVTVChXVEZfRnVuY3Rpb24s
IEFzc2lnbkJlZm9yZURlc3Ryb3kpCit7CisgICAgRnVuY3Rpb248dW5zaWduZWQoKT4gYTsKKwor
ICAgIGEgPSBGdW5jdGlvbkRlc3RydWN0aW9uQ2hlY2tlcihhKTsKKyAgICBhID0gW10geworICAg
ICAgICByZXR1cm4gMVU7CisgICAgfTsKKyAgICBFWFBFQ1RfVFJVRShzdGF0aWNfY2FzdDxib29s
PihGdW5jdGlvbkRlc3RydWN0aW9uQ2hlY2tlcjo6ZnVuY3Rpb25Bc0Jvb2wpKTsKKyAgICBFWFBF
Q1RfVFJVRShzdGF0aWNfY2FzdDxib29sPihGdW5jdGlvbkRlc3RydWN0aW9uQ2hlY2tlcjo6ZnVu
Y3Rpb25SZXN1bHQpKTsKKyAgICBFWFBFQ1RfVFJVRShGdW5jdGlvbkRlc3RydWN0aW9uQ2hlY2tl
cjo6ZnVuY3Rpb25Bc0Jvb2wudmFsdWUoKSk7CisgICAgRVhQRUNUX0VRKDFVLCBGdW5jdGlvbkRl
c3RydWN0aW9uQ2hlY2tlcjo6ZnVuY3Rpb25SZXN1bHQudmFsdWUoKSk7CisgICAgRnVuY3Rpb25E
ZXN0cnVjdGlvbkNoZWNrZXI6OmZ1bmN0aW9uQXNCb29sID0gc3RkOjpudWxsb3B0OworICAgIEZ1
bmN0aW9uRGVzdHJ1Y3Rpb25DaGVja2VyOjpmdW5jdGlvblJlc3VsdCA9IHN0ZDo6bnVsbG9wdDsK
KworICAgIGEgPSBGdW5jdGlvbkRlc3RydWN0aW9uQ2hlY2tlcihhKTsKKyAgICBhID0gbnVsbHB0
cjsKKyAgICBFWFBFQ1RfVFJVRShzdGF0aWNfY2FzdDxib29sPihGdW5jdGlvbkRlc3RydWN0aW9u
Q2hlY2tlcjo6ZnVuY3Rpb25Bc0Jvb2wpKTsKKyAgICBFWFBFQ1RfVFJVRShzdGF0aWNfY2FzdDxi
b29sPihGdW5jdGlvbkRlc3RydWN0aW9uQ2hlY2tlcjo6ZnVuY3Rpb25SZXN1bHQpKTsKKyAgICBF
WFBFQ1RfRkFMU0UoRnVuY3Rpb25EZXN0cnVjdGlvbkNoZWNrZXI6OmZ1bmN0aW9uQXNCb29sLnZh
bHVlKCkpOworICAgIEVYUEVDVF9FUSgwVSwgRnVuY3Rpb25EZXN0cnVjdGlvbkNoZWNrZXI6OmZ1
bmN0aW9uUmVzdWx0LnZhbHVlKCkpOworICAgIEZ1bmN0aW9uRGVzdHJ1Y3Rpb25DaGVja2VyOjpm
dW5jdGlvbkFzQm9vbCA9IHN0ZDo6bnVsbG9wdDsKKyAgICBGdW5jdGlvbkRlc3RydWN0aW9uQ2hl
Y2tlcjo6ZnVuY3Rpb25SZXN1bHQgPSBzdGQ6Om51bGxvcHQ7CisKKyAgICBhID0gRnVuY3Rpb25E
ZXN0cnVjdGlvbkNoZWNrZXIoYSk7CisgICAgYSA9IE1vdmVPbmx5IHsgMiB9OworICAgIEVYUEVD
VF9UUlVFKHN0YXRpY19jYXN0PGJvb2w+KEZ1bmN0aW9uRGVzdHJ1Y3Rpb25DaGVja2VyOjpmdW5j
dGlvbkFzQm9vbCkpOworICAgIEVYUEVDVF9UUlVFKHN0YXRpY19jYXN0PGJvb2w+KEZ1bmN0aW9u
RGVzdHJ1Y3Rpb25DaGVja2VyOjpmdW5jdGlvblJlc3VsdCkpOworICAgIEVYUEVDVF9UUlVFKEZ1
bmN0aW9uRGVzdHJ1Y3Rpb25DaGVja2VyOjpmdW5jdGlvbkFzQm9vbC52YWx1ZSgpKTsKKyAgICBF
WFBFQ1RfRVEoMlUsIEZ1bmN0aW9uRGVzdHJ1Y3Rpb25DaGVja2VyOjpmdW5jdGlvblJlc3VsdC52
YWx1ZSgpKTsKKyAgICBGdW5jdGlvbkRlc3RydWN0aW9uQ2hlY2tlcjo6ZnVuY3Rpb25Bc0Jvb2wg
PSBzdGQ6Om51bGxvcHQ7CisgICAgRnVuY3Rpb25EZXN0cnVjdGlvbkNoZWNrZXI6OmZ1bmN0aW9u
UmVzdWx0ID0gc3RkOjpudWxsb3B0OworfQorCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJ
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Nb3ZlT25seS5oIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvTW92ZU9ubHkuaAppbmRleCBjZWNjNDkxNTI1
OGQ1NWJiNjkzYjM0YTdiMjljZTU3NjNhODkwZjRiLi4zZmYxZWEwM2I5MWRiZDRjOGMwMzcyMWE4
MDEyOGRhY2UxNWNmY2NmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9Nb3ZlT25seS5oCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL01vdmVPbmx5
LmgKQEAgLTQ2LDYgKzQ2LDExIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIG1fdmFsdWU7CiAg
ICAgfQogCisgICAgdW5zaWduZWQgb3BlcmF0b3IoKSgpIGNvbnN0CisgICAgeworICAgICAgICBy
ZXR1cm4gbV92YWx1ZTsKKyAgICB9CisKICAgICBNb3ZlT25seShNb3ZlT25seSYmIG90aGVyKQog
ICAgICAgICA6IG1fdmFsdWUob3RoZXIubV92YWx1ZSkKICAgICB7CmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9SZWYuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvUmVmLmNwcAppbmRleCA4N2U1Y2NhMDBiNzA5NTUyMTAzYWZiNTE4Nzc1N2NjYTQ3
ODQyOWZhLi5hNWM3YmQxNTQxNjAzYmNkYmMyOWJiN2E3ZDIxYTA0YzE2NDM1MzNkIDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9SZWYuY3BwCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL1JlZi5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxMy0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjYsNyArMjYsNiBAQAogI2luY2x1ZGUgImNv
bmZpZy5oIgogCiAjaW5jbHVkZSAiUmVmTG9nZ2VyLmgiCi0jaW5jbHVkZSA8d3RmL1JlZi5oPgog
I2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewpAQCAt
MzYsMTggKzM1LDE4IEBAIFRFU1QoV1RGX1JlZiwgQmFzaWMpCiAgICAgRGVyaXZlZFJlZkxvZ2dl
ciBhKCJhIik7CiAKICAgICB7Ci0gICAgICAgIFJlZjxSZWZMb2dnZXI+IHB0cihhKTsKLSAgICAg
ICAgQVNTRVJUX0VRKCZhLCBwdHIucHRyKCkpOwotICAgICAgICBBU1NFUlRfRVEoJmEubmFtZSwg
JnB0ci0+bmFtZSk7CisgICAgICAgIFJlZjxSZWZMb2dnZXI+IHJlZihhKTsKKyAgICAgICAgRVhQ
RUNUX0VRKCZhLCByZWYucHRyKCkpOworICAgICAgICBFWFBFQ1RfRVEoJmEubmFtZSwgJnJlZi0+
bmFtZSk7CiAgICAgfQotICAgIEFTU0VSVF9TVFJFUSgicmVmKGEpIGRlcmVmKGEpICIsIHRha2VM
b2dTdHIoKS5jX3N0cigpKTsKKyAgICBFWFBFQ1RfU1RSRVEoInJlZihhKSBkZXJlZihhKSAiLCB0
YWtlTG9nU3RyKCkuY19zdHIoKSk7CiAKICAgICB7Ci0gICAgICAgIFJlZjxSZWZMb2dnZXI+IHB0
cihhZG9wdFJlZihhKSk7Ci0gICAgICAgIEFTU0VSVF9FUSgmYSwgcHRyLnB0cigpKTsKLSAgICAg
ICAgQVNTRVJUX0VRKCZhLm5hbWUsICZwdHItPm5hbWUpOworICAgICAgICBSZWY8UmVmTG9nZ2Vy
PiByZWYoYWRvcHRSZWYoYSkpOworICAgICAgICBFWFBFQ1RfRVEoJmEsIHJlZi5wdHIoKSk7Cisg
ICAgICAgIEVYUEVDVF9FUSgmYS5uYW1lLCAmcmVmLT5uYW1lKTsKICAgICB9Ci0gICAgQVNTRVJU
X1NUUkVRKCJkZXJlZihhKSAiLCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7CisgICAgRVhQRUNUX1NU
UkVRKCJkZXJlZihhKSAiLCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7CiB9CiAKIFRFU1QoV1RGX1Jl
ZiwgQXNzaWdubWVudCkKQEAgLTU3LDQ0ICs1Niw0NCBAQCBURVNUKFdURl9SZWYsIEFzc2lnbm1l
bnQpCiAgICAgRGVyaXZlZFJlZkxvZ2dlciBjKCJjIik7CiAKICAgICB7Ci0gICAgICAgIFJlZjxS
ZWZMb2dnZXI+IHB0cihhKTsKLSAgICAgICAgQVNTRVJUX0VRKCZhLCBwdHIucHRyKCkpOworICAg
ICAgICBSZWY8UmVmTG9nZ2VyPiByZWYoYSk7CisgICAgICAgIEVYUEVDVF9FUSgmYSwgcmVmLnB0
cigpKTsKICAgICAgICAgbG9nKCkgPDwgInwgIjsKLSAgICAgICAgcHRyID0gYjsKLSAgICAgICAg
QVNTRVJUX0VRKCZiLCBwdHIucHRyKCkpOworICAgICAgICByZWYgPSBiOworICAgICAgICBFWFBF
Q1RfRVEoJmIsIHJlZi5wdHIoKSk7CiAgICAgICAgIGxvZygpIDw8ICJ8ICI7CiAgICAgfQotICAg
IEFTU0VSVF9TVFJFUSgicmVmKGEpIHwgcmVmKGIpIGRlcmVmKGEpIHwgZGVyZWYoYikgIiwgdGFr
ZUxvZ1N0cigpLmNfc3RyKCkpOworICAgIEVYUEVDVF9TVFJFUSgicmVmKGEpIHwgcmVmKGIpIGRl
cmVmKGEpIHwgZGVyZWYoYikgIiwgdGFrZUxvZ1N0cigpLmNfc3RyKCkpOwogCiAgICAgewotICAg
ICAgICBSZWY8UmVmTG9nZ2VyPiBwdHIoYSk7Ci0gICAgICAgIEFTU0VSVF9FUSgmYSwgcHRyLnB0
cigpKTsKKyAgICAgICAgUmVmPFJlZkxvZ2dlcj4gcmVmKGEpOworICAgICAgICBFWFBFQ1RfRVEo
JmEsIHJlZi5wdHIoKSk7CiAgICAgICAgIGxvZygpIDw8ICJ8ICI7Ci0gICAgICAgIHB0ciA9IGM7
Ci0gICAgICAgIEFTU0VSVF9FUSgmYywgcHRyLnB0cigpKTsKKyAgICAgICAgcmVmID0gYzsKKyAg
ICAgICAgRVhQRUNUX0VRKCZjLCByZWYucHRyKCkpOwogICAgICAgICBsb2coKSA8PCAifCAiOwog
ICAgIH0KLSAgICBBU1NFUlRfU1RSRVEoInJlZihhKSB8IHJlZihjKSBkZXJlZihhKSB8IGRlcmVm
KGMpICIsIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKKyAgICBFWFBFQ1RfU1RSRVEoInJlZihhKSB8
IHJlZihjKSBkZXJlZihhKSB8IGRlcmVmKGMpICIsIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKIAog
ICAgIHsKLSAgICAgICAgUmVmPFJlZkxvZ2dlcj4gcHRyKGEpOwotICAgICAgICBBU1NFUlRfRVEo
JmEsIHB0ci5wdHIoKSk7CisgICAgICAgIFJlZjxSZWZMb2dnZXI+IHJlZihhKTsKKyAgICAgICAg
RVhQRUNUX0VRKCZhLCByZWYucHRyKCkpOwogICAgICAgICBsb2coKSA8PCAifCAiOwotICAgICAg
ICBwdHIgPSBhZG9wdFJlZihiKTsKLSAgICAgICAgQVNTRVJUX0VRKCZiLCBwdHIucHRyKCkpOwor
ICAgICAgICByZWYgPSBhZG9wdFJlZihiKTsKKyAgICAgICAgRVhQRUNUX0VRKCZiLCByZWYucHRy
KCkpOwogICAgICAgICBsb2coKSA8PCAifCAiOwogICAgIH0KLSAgICBBU1NFUlRfU1RSRVEoInJl
ZihhKSB8IGRlcmVmKGEpIHwgZGVyZWYoYikgIiwgdGFrZUxvZ1N0cigpLmNfc3RyKCkpOworICAg
IEVYUEVDVF9TVFJFUSgicmVmKGEpIHwgZGVyZWYoYSkgfCBkZXJlZihiKSAiLCB0YWtlTG9nU3Ry
KCkuY19zdHIoKSk7CiAKICAgICB7Ci0gICAgICAgIFJlZjxSZWZMb2dnZXI+IHB0cihhKTsKLSAg
ICAgICAgQVNTRVJUX0VRKCZhLCBwdHIucHRyKCkpOworICAgICAgICBSZWY8UmVmTG9nZ2VyPiBy
ZWYoYSk7CisgICAgICAgIEVYUEVDVF9FUSgmYSwgcmVmLnB0cigpKTsKICAgICAgICAgbG9nKCkg
PDwgInwgIjsKLSAgICAgICAgcHRyID0gYWRvcHRSZWYoYyk7Ci0gICAgICAgIEFTU0VSVF9FUSgm
YywgcHRyLnB0cigpKTsKKyAgICAgICAgcmVmID0gYWRvcHRSZWYoYyk7CisgICAgICAgIEVYUEVD
VF9FUSgmYywgcmVmLnB0cigpKTsKICAgICAgICAgbG9nKCkgPDwgInwgIjsKICAgICB9Ci0gICAg
QVNTRVJUX1NUUkVRKCJyZWYoYSkgfCBkZXJlZihhKSB8IGRlcmVmKGMpICIsIHRha2VMb2dTdHIo
KS5jX3N0cigpKTsKKyAgICBFWFBFQ1RfU1RSRVEoInJlZihhKSB8IGRlcmVmKGEpIHwgZGVyZWYo
YykgIiwgdGFrZUxvZ1N0cigpLmNfc3RyKCkpOwogfQogCiBzdGF0aWMgUmVmPFJlZkxvZ2dlcj4g
cGFzc1dpdGhSZWYoUmVmPFJlZkxvZ2dlcj4mJiByZWZlcmVuY2UpCkBAIC0xMDksNDIgKzEwOCwx
NjggQEAgVEVTVChXVEZfUmVmLCBSZXR1cm5WYWx1ZSkKICAgICBEZXJpdmVkUmVmTG9nZ2VyIGMo
ImMiKTsKIAogICAgIHsKLSAgICAgICAgUmVmPFJlZkxvZ2dlcj4gcHRyKHBhc3NXaXRoUmVmKFJl
ZjxSZWZMb2dnZXI+KGEpKSk7Ci0gICAgICAgIEFTU0VSVF9FUSgmYSwgcHRyLnB0cigpKTsKKyAg
ICAgICAgUmVmPFJlZkxvZ2dlcj4gcmVmKHBhc3NXaXRoUmVmKFJlZjxSZWZMb2dnZXI+KGEpKSk7
CisgICAgICAgIEVYUEVDVF9FUSgmYSwgcmVmLnB0cigpKTsKICAgICB9Ci0gICAgQVNTRVJUX1NU
UkVRKCJyZWYoYSkgZGVyZWYoYSkgIiwgdGFrZUxvZ1N0cigpLmNfc3RyKCkpOworICAgIEVYUEVD
VF9TVFJFUSgicmVmKGEpIGRlcmVmKGEpICIsIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKIAogICAg
IHsKLSAgICAgICAgUmVmPFJlZkxvZ2dlcj4gcHRyKGEpOwotICAgICAgICBBU1NFUlRfRVEoJmEs
IHB0ci5wdHIoKSk7CisgICAgICAgIFJlZjxSZWZMb2dnZXI+IHJlZihhKTsKKyAgICAgICAgRVhQ
RUNUX0VRKCZhLCByZWYucHRyKCkpOwogICAgICAgICBsb2coKSA8PCAifCAiOwotICAgICAgICBw
dHIgPSBwYXNzV2l0aFJlZihiKTsKLSAgICAgICAgQVNTRVJUX0VRKCZiLCBwdHIucHRyKCkpOwor
ICAgICAgICByZWYgPSBwYXNzV2l0aFJlZihiKTsKKyAgICAgICAgRVhQRUNUX0VRKCZiLCByZWYu
cHRyKCkpOwogICAgICAgICBsb2coKSA8PCAifCAiOwogICAgIH0KLSAgICBBU1NFUlRfU1RSRVEo
InJlZihhKSB8IHJlZihiKSBkZXJlZihhKSB8IGRlcmVmKGIpICIsIHRha2VMb2dTdHIoKS5jX3N0
cigpKTsKKyAgICBFWFBFQ1RfU1RSRVEoInJlZihhKSB8IHJlZihiKSBkZXJlZihhKSB8IGRlcmVm
KGIpICIsIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKIAogICAgIHsKICAgICAgICAgUmVmUHRyPFJl
ZkxvZ2dlcj4gcHRyKHBhc3NXaXRoUmVmKGEpKTsKLSAgICAgICAgQVNTRVJUX0VRKCZhLCBwdHIu
Z2V0KCkpOworICAgICAgICBFWFBFQ1RfRVEoJmEsIHB0ci5nZXQoKSk7CiAgICAgfQotICAgIEFT
U0VSVF9TVFJFUSgicmVmKGEpIGRlcmVmKGEpICIsIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKKyAg
ICBFWFBFQ1RfU1RSRVEoInJlZihhKSBkZXJlZihhKSAiLCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7
CiAKICAgICB7CiAgICAgICAgIFJlZlB0cjxEZXJpdmVkUmVmTG9nZ2VyPiBwdHIoJmEpOwogICAg
ICAgICBSZWZQdHI8UmVmTG9nZ2VyPiBwdHIyKFdURk1vdmUocHRyKSk7Ci0gICAgICAgIEFTU0VS
VF9FUShudWxscHRyLCBwdHIuZ2V0KCkpOwotICAgICAgICBBU1NFUlRfRVEoJmEsIHB0cjIuZ2V0
KCkpOworICAgICAgICBFWFBFQ1RfRVEobnVsbHB0ciwgcHRyLmdldCgpKTsKKyAgICAgICAgRVhQ
RUNUX0VRKCZhLCBwdHIyLmdldCgpKTsKICAgICB9Ci0gICAgQVNTRVJUX1NUUkVRKCJyZWYoYSkg
ZGVyZWYoYSkgIiwgdGFrZUxvZ1N0cigpLmNfc3RyKCkpOworICAgIEVYUEVDVF9TVFJFUSgicmVm
KGEpIGRlcmVmKGEpICIsIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKIAogICAgIHsKICAgICAgICAg
UmVmPERlcml2ZWRSZWZMb2dnZXI+IGRlcml2ZWRSZWZlcmVuY2UoYSk7CiAgICAgICAgIFJlZjxS
ZWZMb2dnZXI+IGJhc2VSZWZlcmVuY2UocGFzc1dpdGhSZWYoZGVyaXZlZFJlZmVyZW5jZS5jb3B5
UmVmKCkpKTsKLSAgICAgICAgQVNTRVJUX0VRKCZhLCBkZXJpdmVkUmVmZXJlbmNlLnB0cigpKTsK
LSAgICAgICAgQVNTRVJUX0VRKCZhLCBiYXNlUmVmZXJlbmNlLnB0cigpKTsKKyAgICAgICAgRVhQ
RUNUX0VRKCZhLCBkZXJpdmVkUmVmZXJlbmNlLnB0cigpKTsKKyAgICAgICAgRVhQRUNUX0VRKCZh
LCBiYXNlUmVmZXJlbmNlLnB0cigpKTsKICAgICB9Ci0gICAgQVNTRVJUX1NUUkVRKCJyZWYoYSkg
cmVmKGEpIGRlcmVmKGEpIGRlcmVmKGEpICIsIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKKyAgICBF
WFBFQ1RfU1RSRVEoInJlZihhKSByZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgIiwgdGFrZUxvZ1N0
cigpLmNfc3RyKCkpOworfQorCitURVNUKFdURl9SZWYsIFN3YXApCit7CisgICAgUmVmTG9nZ2Vy
IGEoImEiKTsKKyAgICBSZWZMb2dnZXIgYigiYiIpOworCisgICAgeworICAgICAgICBSZWY8UmVm
TG9nZ2VyPiBwMShhKTsKKyAgICAgICAgUmVmPFJlZkxvZ2dlcj4gcDIoYik7CisgICAgICAgIGxv
ZygpIDw8ICJ8ICI7CisgICAgICAgIEVYUEVDVF9FUSgmYSwgcDEucHRyKCkpOworICAgICAgICBF
WFBFQ1RfRVEoJmIsIHAyLnB0cigpKTsKKyAgICAgICAgcDEuc3dhcChwMik7CisgICAgICAgIEVY
UEVDVF9FUSgmYiwgcDEucHRyKCkpOworICAgICAgICBFWFBFQ1RfRVEoJmEsIHAyLnB0cigpKTsK
KyAgICAgICAgbG9nKCkgPDwgInwgIjsKKyAgICB9CisgICAgRVhQRUNUX1NUUkVRKCJyZWYoYSkg
cmVmKGIpIHwgfCBkZXJlZihhKSBkZXJlZihiKSAiLCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7CisK
KyAgICB7CisgICAgICAgIFJlZjxSZWZMb2dnZXI+IHAxKGEpOworICAgICAgICBSZWY8UmVmTG9n
Z2VyPiBwMihiKTsKKyAgICAgICAgbG9nKCkgPDwgInwgIjsKKyAgICAgICAgRVhQRUNUX0VRKCZh
LCBwMS5wdHIoKSk7CisgICAgICAgIEVYUEVDVF9FUSgmYiwgcDIucHRyKCkpOworICAgICAgICBz
dGQ6OnN3YXAocDEsIHAyKTsKKyAgICAgICAgRVhQRUNUX0VRKCZiLCBwMS5wdHIoKSk7CisgICAg
ICAgIEVYUEVDVF9FUSgmYSwgcDIucHRyKCkpOworICAgICAgICBsb2coKSA8PCAifCAiOworICAg
IH0KKyAgICBFWFBFQ1RfU1RSRVEoInJlZihhKSByZWYoYikgfCB8IGRlcmVmKGEpIGRlcmVmKGIp
ICIsIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKK30KKworc3RydWN0IFJlZkNoZWNraW5nUmVmTG9n
Z2VyIDogUmVmTG9nZ2VyIHsKKyAgICBSZWZDaGVja2luZ1JlZkxvZ2dlcihjb25zdCBjaGFyKiBu
YW1lKTsKKyAgICB2b2lkIHJlZigpOworICAgIHZvaWQgZGVyZWYoKTsKKyAgICBjb25zdCBSZWY8
UmVmQ2hlY2tpbmdSZWZMb2dnZXI+KiBzbG90VG9DaGVjayB7IG51bGxwdHIgfTsKK307CisKK3N0
cnVjdCBEZXJpdmVkUmVmQ2hlY2tpbmdSZWZMb2dnZXIgOiBSZWZDaGVja2luZ1JlZkxvZ2dlciB7
CisgICAgRGVyaXZlZFJlZkNoZWNraW5nUmVmTG9nZ2VyKGNvbnN0IGNoYXIqIG5hbWUpOworfTsK
KworUmVmQ2hlY2tpbmdSZWZMb2dnZXI6OlJlZkNoZWNraW5nUmVmTG9nZ2VyKGNvbnN0IGNoYXIq
IG5hbWUpCisgICAgOiBSZWZMb2dnZXIgeyBuYW1lIH0KK3sKK30KKwordm9pZCBSZWZDaGVja2lu
Z1JlZkxvZ2dlcjo6cmVmKCkKK3sKKyAgICBpZiAoc2xvdFRvQ2hlY2spCisgICAgICAgIGxvZygp
IDw8ICJzbG90PSIgPDwgc2xvdFRvQ2hlY2stPmdldCgpLm5hbWUgPDwgIiAiOworICAgIFJlZkxv
Z2dlcjo6cmVmKCk7Cit9CisKK3ZvaWQgUmVmQ2hlY2tpbmdSZWZMb2dnZXI6OmRlcmVmKCkKK3sK
KyAgICBpZiAoc2xvdFRvQ2hlY2spCisgICAgICAgIGxvZygpIDw8ICJzbG90PSIgPDwgc2xvdFRv
Q2hlY2stPmdldCgpLm5hbWUgPDwgIiAiOworICAgIFJlZkxvZ2dlcjo6ZGVyZWYoKTsKK30KKwor
RGVyaXZlZFJlZkNoZWNraW5nUmVmTG9nZ2VyOjpEZXJpdmVkUmVmQ2hlY2tpbmdSZWZMb2dnZXIo
Y29uc3QgY2hhciogbmFtZSkKKyAgICA6IFJlZkNoZWNraW5nUmVmTG9nZ2VyIHsgbmFtZSB9Cit7
Cit9CisKK1RFU1QoV1RGX1JlZiwgQXNzaWduQmVmb3JlRGVyZWYpCit7CisgICAgRGVyaXZlZFJl
ZkNoZWNraW5nUmVmTG9nZ2VyIGEoImEiKTsKKyAgICBSZWZDaGVja2luZ1JlZkxvZ2dlciBiKCJi
Iik7CisgICAgRGVyaXZlZFJlZkNoZWNraW5nUmVmTG9nZ2VyIGMoImMiKTsKKworICAgIHsKKyAg
ICAgICAgUmVmPFJlZkNoZWNraW5nUmVmTG9nZ2VyPiByZWYoYSk7CisgICAgICAgIEVYUEVDVF9F
USgmYSwgcmVmLnB0cigpKTsKKyAgICAgICAgbG9nKCkgPDwgInwgIjsKKyAgICAgICAgYS5zbG90
VG9DaGVjayA9ICZyZWY7CisgICAgICAgIGIuc2xvdFRvQ2hlY2sgPSAmcmVmOworICAgICAgICBy
ZWYgPSBiOworICAgICAgICBhLnNsb3RUb0NoZWNrID0gbnVsbHB0cjsKKyAgICAgICAgYi5zbG90
VG9DaGVjayA9IG51bGxwdHI7CisgICAgICAgIEVYUEVDVF9FUSgmYiwgcmVmLnB0cigpKTsKKyAg
ICAgICAgbG9nKCkgPDwgInwgIjsKKyAgICB9CisgICAgRVhQRUNUX1NUUkVRKCJyZWYoYSkgfCBz
bG90PWEgcmVmKGIpIHNsb3Q9YiBkZXJlZihhKSB8IGRlcmVmKGIpICIsIHRha2VMb2dTdHIoKS5j
X3N0cigpKTsKKworICAgIHsKKyAgICAgICAgUmVmPFJlZkNoZWNraW5nUmVmTG9nZ2VyPiByZWYo
YSk7CisgICAgICAgIEVYUEVDVF9FUSgmYSwgcmVmLnB0cigpKTsKKyAgICAgICAgbG9nKCkgPDwg
InwgIjsKKyAgICAgICAgYS5zbG90VG9DaGVjayA9ICZyZWY7CisgICAgICAgIGMuc2xvdFRvQ2hl
Y2sgPSAmcmVmOworICAgICAgICByZWYgPSBjOworICAgICAgICBhLnNsb3RUb0NoZWNrID0gbnVs
bHB0cjsKKyAgICAgICAgYy5zbG90VG9DaGVjayA9IG51bGxwdHI7CisgICAgICAgIEVYUEVDVF9F
USgmYywgcmVmLnB0cigpKTsKKyAgICAgICAgbG9nKCkgPDwgInwgIjsKKyAgICB9CisgICAgRVhQ
RUNUX1NUUkVRKCJyZWYoYSkgfCBzbG90PWEgcmVmKGMpIHNsb3Q9YyBkZXJlZihhKSB8IGRlcmVm
KGMpICIsIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKKworICAgIHsKKyAgICAgICAgUmVmPFJlZkNo
ZWNraW5nUmVmTG9nZ2VyPiByZWYoYSk7CisgICAgICAgIEVYUEVDVF9FUSgmYSwgcmVmLnB0cigp
KTsKKyAgICAgICAgbG9nKCkgPDwgInwgIjsKKyAgICAgICAgYS5zbG90VG9DaGVjayA9ICZyZWY7
CisgICAgICAgIHJlZiA9IGFkb3B0UmVmKGIpOworICAgICAgICBhLnNsb3RUb0NoZWNrID0gbnVs
bHB0cjsKKyAgICAgICAgRVhQRUNUX0VRKCZiLCByZWYucHRyKCkpOworICAgICAgICBsb2coKSA8
PCAifCAiOworICAgIH0KKyAgICBFWFBFQ1RfU1RSRVEoInJlZihhKSB8IHNsb3Q9YiBkZXJlZihh
KSB8IGRlcmVmKGIpICIsIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKKworICAgIHsKKyAgICAgICAg
UmVmPFJlZkNoZWNraW5nUmVmTG9nZ2VyPiByZWYoYSk7CisgICAgICAgIEVYUEVDVF9FUSgmYSwg
cmVmLnB0cigpKTsKKyAgICAgICAgbG9nKCkgPDwgInwgIjsKKyAgICAgICAgYS5zbG90VG9DaGVj
ayA9ICZyZWY7CisgICAgICAgIHJlZiA9IGFkb3B0UmVmKGMpOworICAgICAgICBhLnNsb3RUb0No
ZWNrID0gbnVsbHB0cjsKKyAgICAgICAgRVhQRUNUX0VRKCZjLCByZWYucHRyKCkpOworICAgICAg
ICBsb2coKSA8PCAifCAiOworICAgIH0KKyAgICBFWFBFQ1RfU1RSRVEoInJlZihhKSB8IHNsb3Q9
YyBkZXJlZihhKSB8IGRlcmVmKGMpICIsIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKIH0KIAogfSAv
LyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvUmVmTG9nZ2VyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L1JlZkxvZ2dlci5jcHAKaW5kZXggZjQ2OGEzMTJjN2MwY2M0MjA5NmVjYWYwYjQ1OWYwOTAxODg2
Y2EwNS4uN2YxNjVmMjQyYzRhMmI5MzZhNGQ1NDNmMGU1YmYyNDJlMGI1MDgxNSAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvUmVmTG9nZ2VyLmNwcAorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9SZWZMb2dnZXIuY3BwCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM0LDQgKzM0LDMx
IEBAIHN0ZDo6b3N0cmluZ3N0cmVhbSYgbG9nKCkKICAgICByZXR1cm4gbG9nOwogfQogCitzdGQ6
OnN0cmluZyB0YWtlTG9nU3RyKCkKK3sKKyAgICBzdGQ6OnN0cmluZyBzdHJpbmcgPSBsb2coKS5z
dHIoKTsKKyAgICBsb2coKS5zdHIoIiIpOworICAgIHJldHVybiBzdHJpbmc7Cit9CisKK1JlZkxv
Z2dlcjo6UmVmTG9nZ2VyKGNvbnN0IGNoYXIqIG5hbWUpCisgICAgOiBuYW1lIHsgKm5hbWUgfQor
eworfQorCit2b2lkIFJlZkxvZ2dlcjo6cmVmKCkKK3sKKyAgICBsb2coKSA8PCAicmVmKCIgPDwg
Jm5hbWUgPDwgIikgIjsKK30KKwordm9pZCBSZWZMb2dnZXI6OmRlcmVmKCkKK3sKKyAgICBsb2co
KSA8PCAiZGVyZWYoIiA8PCAmbmFtZSA8PCAiKSAiOworfQorCitEZXJpdmVkUmVmTG9nZ2VyOjpE
ZXJpdmVkUmVmTG9nZ2VyKGNvbnN0IGNoYXIqIG5hbWUpCisgICAgOiBSZWZMb2dnZXIgeyBuYW1l
IH0KK3sKK30KKwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
UmVmTG9nZ2VyLmggYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9SZWZMb2dnZXIuaApp
bmRleCAwMjU0N2RmZWNkMWJmMDVjNTk3YzBlYzg0YmQwYTJhNjQ0YzgyOTRhLi43MjY2Y2JlNjk0
ZjdhYmJkNmVkZjlmMWZlNmU3YTA2OGYzMjcwZTE2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9SZWZMb2dnZXIuaAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9SZWZMb2dnZXIuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTMsIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDEzLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yMywzMCArMjMsMjMgQEAKICAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIFJlZkxvZ2dlcl9oCisjcHJhZ21h
IG9uY2UKIAogbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogCiBzdGQ6Om9zdHJpbmdzdHJlYW0m
IGxvZygpOwogCi1pbmxpbmUgc3RkOjpzdHJpbmcgdGFrZUxvZ1N0cigpCi17Ci0gICAgc3RkOjpz
dHJpbmcgc3RyaW5nID0gbG9nKCkuc3RyKCk7Ci0gICAgbG9nKCkuc3RyKCIiKTsKLSAgICByZXR1
cm4gc3RyaW5nOwotfQorc3RkOjpzdHJpbmcgdGFrZUxvZ1N0cigpOwogCiBzdHJ1Y3QgUmVmTG9n
Z2VyIHsKLSAgICBSZWZMb2dnZXIoY29uc3QgY2hhciogbmFtZSkgOiBuYW1lKCpuYW1lKSB7IH0K
LSAgICB2b2lkIHJlZigpIHsgbG9nKCkgPDwgInJlZigiIDw8ICZuYW1lIDw8ICIpICI7IH0KLSAg
ICB2b2lkIGRlcmVmKCkgeyBsb2coKSA8PCAiZGVyZWYoIiA8PCAmbmFtZSA8PCAiKSAiOyB9Cisg
ICAgUmVmTG9nZ2VyKGNvbnN0IGNoYXIqIG5hbWUpOworICAgIHZvaWQgcmVmKCk7CisgICAgdm9p
ZCBkZXJlZigpOwogICAgIGNvbnN0IGNoYXImIG5hbWU7CiB9OwogCiBzdHJ1Y3QgRGVyaXZlZFJl
ZkxvZ2dlciA6IFJlZkxvZ2dlciB7Ci0gICAgRGVyaXZlZFJlZkxvZ2dlcihjb25zdCBjaGFyKiBu
YW1lKSA6IFJlZkxvZ2dlcihuYW1lKSB7IGxvZygpLnN0cigiIik7IH0KKyAgICBEZXJpdmVkUmVm
TG9nZ2VyKGNvbnN0IGNoYXIqIG5hbWUpOwogfTsKIAogfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1JlZlB0ci5jcHAgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9SZWZQdHIuY3BwCmluZGV4IDk1Zjk3ZDhkYTc5ZGExZjdiMmRmMDEy
ODUyZTJjMTkxZDc3MjEyZWEuLmEwOTRkNzJlZWI2YTA5Nzg5NWYzZTM2MmI4NzdkMmE1ZTVhNzI0
MDcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1JlZlB0ci5jcHAK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvUmVmUHRyLmNwcApAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNyw3NyArMzcs
NzcgQEAgVEVTVChXVEZfUmVmUHRyLCBCYXNpYykKICAgICBEZXJpdmVkUmVmTG9nZ2VyIGEoImEi
KTsKIAogICAgIFJlZlB0cjxSZWZMb2dnZXI+IGVtcHR5OwotICAgIEFTU0VSVF9FUShudWxscHRy
LCBlbXB0eS5nZXQoKSk7CisgICAgRVhQRUNUX0VRKG51bGxwdHIsIGVtcHR5LmdldCgpKTsKIAog
ICAgIHsKICAgICAgICAgUmVmUHRyPFJlZkxvZ2dlcj4gcHRyKCZhKTsKLSAgICAgICAgQVNTRVJU
X0VRKCZhLCBwdHIuZ2V0KCkpOwotICAgICAgICBBU1NFUlRfRVEoJmEsICYqcHRyKTsKLSAgICAg
ICAgQVNTRVJUX0VRKCZhLm5hbWUsICZwdHItPm5hbWUpOworICAgICAgICBFWFBFQ1RfRVEoJmEs
IHB0ci5nZXQoKSk7CisgICAgICAgIEVYUEVDVF9FUSgmYSwgJipwdHIpOworICAgICAgICBFWFBF
Q1RfRVEoJmEubmFtZSwgJnB0ci0+bmFtZSk7CiAgICAgfQotICAgIEFTU0VSVF9TVFJFUSgicmVm
KGEpIGRlcmVmKGEpICIsIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKKyAgICBFWFBFQ1RfU1RSRVEo
InJlZihhKSBkZXJlZihhKSAiLCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7CiAKICAgICB7CiAgICAg
ICAgIFJlZlB0cjxSZWZMb2dnZXI+IHB0ciA9ICZhOwotICAgICAgICBBU1NFUlRfRVEoJmEsIHB0
ci5nZXQoKSk7CisgICAgICAgIEVYUEVDVF9FUSgmYSwgcHRyLmdldCgpKTsKICAgICB9Ci0gICAg
QVNTRVJUX1NUUkVRKCJyZWYoYSkgZGVyZWYoYSkgIiwgdGFrZUxvZ1N0cigpLmNfc3RyKCkpOwor
ICAgIEVYUEVDVF9TVFJFUSgicmVmKGEpIGRlcmVmKGEpICIsIHRha2VMb2dTdHIoKS5jX3N0cigp
KTsKIAogICAgIHsKICAgICAgICAgUmVmUHRyPFJlZkxvZ2dlcj4gcDEgPSAmYTsKICAgICAgICAg
UmVmUHRyPFJlZkxvZ2dlcj4gcDIocDEpOwotICAgICAgICBBU1NFUlRfRVEoJmEsIHAxLmdldCgp
KTsKLSAgICAgICAgQVNTRVJUX0VRKCZhLCBwMi5nZXQoKSk7CisgICAgICAgIEVYUEVDVF9FUSgm
YSwgcDEuZ2V0KCkpOworICAgICAgICBFWFBFQ1RfRVEoJmEsIHAyLmdldCgpKTsKICAgICB9Ci0g
ICAgQVNTRVJUX1NUUkVRKCJyZWYoYSkgcmVmKGEpIGRlcmVmKGEpIGRlcmVmKGEpICIsIHRha2VM
b2dTdHIoKS5jX3N0cigpKTsKKyAgICBFWFBFQ1RfU1RSRVEoInJlZihhKSByZWYoYSkgZGVyZWYo
YSkgZGVyZWYoYSkgIiwgdGFrZUxvZ1N0cigpLmNfc3RyKCkpOwogCiAgICAgewogICAgICAgICBS
ZWZQdHI8UmVmTG9nZ2VyPiBwMSA9ICZhOwogICAgICAgICBSZWZQdHI8UmVmTG9nZ2VyPiBwMiA9
IHAxOwotICAgICAgICBBU1NFUlRfRVEoJmEsIHAxLmdldCgpKTsKLSAgICAgICAgQVNTRVJUX0VR
KCZhLCBwMi5nZXQoKSk7CisgICAgICAgIEVYUEVDVF9FUSgmYSwgcDEuZ2V0KCkpOworICAgICAg
ICBFWFBFQ1RfRVEoJmEsIHAyLmdldCgpKTsKICAgICB9Ci0gICAgQVNTRVJUX1NUUkVRKCJyZWYo
YSkgcmVmKGEpIGRlcmVmKGEpIGRlcmVmKGEpICIsIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKKyAg
ICBFWFBFQ1RfU1RSRVEoInJlZihhKSByZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgIiwgdGFrZUxv
Z1N0cigpLmNfc3RyKCkpOwogCiAgICAgewogICAgICAgICBSZWZQdHI8UmVmTG9nZ2VyPiBwMSA9
ICZhOwogICAgICAgICBSZWZQdHI8UmVmTG9nZ2VyPiBwMiA9IFdURk1vdmUocDEpOwotICAgICAg
ICBBU1NFUlRfRVEobnVsbHB0ciwgcDEuZ2V0KCkpOwotICAgICAgICBBU1NFUlRfRVEoJmEsIHAy
LmdldCgpKTsKKyAgICAgICAgRVhQRUNUX0VRKG51bGxwdHIsIHAxLmdldCgpKTsKKyAgICAgICAg
RVhQRUNUX0VRKCZhLCBwMi5nZXQoKSk7CiAgICAgfQotICAgIEFTU0VSVF9TVFJFUSgicmVmKGEp
IGRlcmVmKGEpICIsIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKKyAgICBFWFBFQ1RfU1RSRVEoInJl
ZihhKSBkZXJlZihhKSAiLCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7CiAKICAgICB7CiAgICAgICAg
IFJlZlB0cjxSZWZMb2dnZXI+IHAxID0gJmE7CiAgICAgICAgIFJlZlB0cjxSZWZMb2dnZXI+IHAy
KFdURk1vdmUocDEpKTsKLSAgICAgICAgQVNTRVJUX0VRKG51bGxwdHIsIHAxLmdldCgpKTsKLSAg
ICAgICAgQVNTRVJUX0VRKCZhLCBwMi5nZXQoKSk7CisgICAgICAgIEVYUEVDVF9FUShudWxscHRy
LCBwMS5nZXQoKSk7CisgICAgICAgIEVYUEVDVF9FUSgmYSwgcDIuZ2V0KCkpOwogICAgIH0KLSAg
ICBBU1NFUlRfU1RSRVEoInJlZihhKSBkZXJlZihhKSAiLCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7
CisgICAgRVhQRUNUX1NUUkVRKCJyZWYoYSkgZGVyZWYoYSkgIiwgdGFrZUxvZ1N0cigpLmNfc3Ry
KCkpOwogCiAgICAgewogICAgICAgICBSZWZQdHI8RGVyaXZlZFJlZkxvZ2dlcj4gcDEgPSAmYTsK
ICAgICAgICAgUmVmUHRyPFJlZkxvZ2dlcj4gcDIgPSBwMTsKLSAgICAgICAgQVNTRVJUX0VRKCZh
LCBwMS5nZXQoKSk7Ci0gICAgICAgIEFTU0VSVF9FUSgmYSwgcDIuZ2V0KCkpOworICAgICAgICBF
WFBFQ1RfRVEoJmEsIHAxLmdldCgpKTsKKyAgICAgICAgRVhQRUNUX0VRKCZhLCBwMi5nZXQoKSk7
CiAgICAgfQotICAgIEFTU0VSVF9TVFJFUSgicmVmKGEpIHJlZihhKSBkZXJlZihhKSBkZXJlZihh
KSAiLCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7CisgICAgRVhQRUNUX1NUUkVRKCJyZWYoYSkgcmVm
KGEpIGRlcmVmKGEpIGRlcmVmKGEpICIsIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKIAogICAgIHsK
ICAgICAgICAgUmVmUHRyPERlcml2ZWRSZWZMb2dnZXI+IHAxID0gJmE7CiAgICAgICAgIFJlZlB0
cjxSZWZMb2dnZXI+IHAyID0gV1RGTW92ZShwMSk7Ci0gICAgICAgIEFTU0VSVF9FUShudWxscHRy
LCBwMS5nZXQoKSk7Ci0gICAgICAgIEFTU0VSVF9FUSgmYSwgcDIuZ2V0KCkpOworICAgICAgICBF
WFBFQ1RfRVEobnVsbHB0ciwgcDEuZ2V0KCkpOworICAgICAgICBFWFBFQ1RfRVEoJmEsIHAyLmdl
dCgpKTsKICAgICB9Ci0gICAgQVNTRVJUX1NUUkVRKCJyZWYoYSkgZGVyZWYoYSkgIiwgdGFrZUxv
Z1N0cigpLmNfc3RyKCkpOworICAgIEVYUEVDVF9TVFJFUSgicmVmKGEpIGRlcmVmKGEpICIsIHRh
a2VMb2dTdHIoKS5jX3N0cigpKTsKIAogICAgIHsKICAgICAgICAgUmVmUHRyPFJlZkxvZ2dlcj4g
cHRyKCZhKTsKLSAgICAgICAgQVNTRVJUX0VRKCZhLCBwdHIuZ2V0KCkpOworICAgICAgICBFWFBF
Q1RfRVEoJmEsIHB0ci5nZXQoKSk7CiAgICAgICAgIHB0ciA9IG51bGxwdHI7Ci0gICAgICAgIEFT
U0VSVF9FUShudWxscHRyLCBwdHIuZ2V0KCkpOworICAgICAgICBFWFBFQ1RfRVEobnVsbHB0ciwg
cHRyLmdldCgpKTsKICAgICB9Ci0gICAgQVNTRVJUX1NUUkVRKCJyZWYoYSkgZGVyZWYoYSkgIiwg
dGFrZUxvZ1N0cigpLmNfc3RyKCkpOworICAgIEVYUEVDVF9TVFJFUSgicmVmKGEpIGRlcmVmKGEp
ICIsIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKIH0KIAogVEVTVChXVEZfUmVmUHRyLCBBc3NpZ25Q
YXNzUmVmVG9SZWZQdHIpCkBAIC0xMTYsOSArMTE2LDkgQEAgVEVTVChXVEZfUmVmUHRyLCBBc3Np
Z25QYXNzUmVmVG9SZWZQdHIpCiAgICAgewogICAgICAgICBSZWY8UmVmTG9nZ2VyPiBwYXNzUmVm
KGEpOwogICAgICAgICBSZWZQdHI8UmVmTG9nZ2VyPiBwdHIgPSBXVEZNb3ZlKHBhc3NSZWYpOwot
ICAgICAgICBBU1NFUlRfRVEoJmEsIHB0ci5nZXQoKSk7CisgICAgICAgIEVYUEVDVF9FUSgmYSwg
cHRyLmdldCgpKTsKICAgICB9Ci0gICAgQVNTRVJUX1NUUkVRKCJyZWYoYSkgZGVyZWYoYSkgIiwg
dGFrZUxvZ1N0cigpLmNfc3RyKCkpOworICAgIEVYUEVDVF9TVFJFUSgicmVmKGEpIGRlcmVmKGEp
ICIsIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKIH0KIAogVEVTVChXVEZfUmVmUHRyLCBBZG9wdCkK
QEAgLTEyNiwyMSArMTI2LDIxIEBAIFRFU1QoV1RGX1JlZlB0ciwgQWRvcHQpCiAgICAgRGVyaXZl
ZFJlZkxvZ2dlciBhKCJhIik7CiAKICAgICBSZWZQdHI8UmVmTG9nZ2VyPiBlbXB0eTsKLSAgICBB
U1NFUlRfRVEobnVsbHB0ciwgZW1wdHkuZ2V0KCkpOworICAgIEVYUEVDVF9FUShudWxscHRyLCBl
bXB0eS5nZXQoKSk7CiAKICAgICB7CiAgICAgICAgIFJlZlB0cjxSZWZMb2dnZXI+IHB0cihhZG9w
dFJlZigmYSkpOwotICAgICAgICBBU1NFUlRfRVEoJmEsIHB0ci5nZXQoKSk7Ci0gICAgICAgIEFT
U0VSVF9FUSgmYSwgJipwdHIpOwotICAgICAgICBBU1NFUlRfRVEoJmEubmFtZSwgJnB0ci0+bmFt
ZSk7CisgICAgICAgIEVYUEVDVF9FUSgmYSwgcHRyLmdldCgpKTsKKyAgICAgICAgRVhQRUNUX0VR
KCZhLCAmKnB0cik7CisgICAgICAgIEVYUEVDVF9FUSgmYS5uYW1lLCAmcHRyLT5uYW1lKTsKICAg
ICB9Ci0gICAgQVNTRVJUX1NUUkVRKCJkZXJlZihhKSAiLCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7
CisgICAgRVhQRUNUX1NUUkVRKCJkZXJlZihhKSAiLCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7CiAK
ICAgICB7CiAgICAgICAgIFJlZlB0cjxSZWZMb2dnZXI+IHB0ciA9IGFkb3B0UmVmKCZhKTsKLSAg
ICAgICAgQVNTRVJUX0VRKCZhLCBwdHIuZ2V0KCkpOworICAgICAgICBFWFBFQ1RfRVEoJmEsIHB0
ci5nZXQoKSk7CiAgICAgfQotICAgIEFTU0VSVF9TVFJFUSgiZGVyZWYoYSkgIiwgdGFrZUxvZ1N0
cigpLmNfc3RyKCkpOworICAgIEVYUEVDVF9TVFJFUSgiZGVyZWYoYSkgIiwgdGFrZUxvZ1N0cigp
LmNfc3RyKCkpOwogfQogCiBURVNUKFdURl9SZWZQdHIsIEFzc2lnbm1lbnQpCkBAIC0xNTIsMTE2
ICsxNTIsMTE2IEBAIFRFU1QoV1RGX1JlZlB0ciwgQXNzaWdubWVudCkKICAgICB7CiAgICAgICAg
IFJlZlB0cjxSZWZMb2dnZXI+IHAxKCZhKTsKICAgICAgICAgUmVmUHRyPFJlZkxvZ2dlcj4gcDIo
JmIpOwotICAgICAgICBBU1NFUlRfRVEoJmEsIHAxLmdldCgpKTsKLSAgICAgICAgQVNTRVJUX0VR
KCZiLCBwMi5nZXQoKSk7CisgICAgICAgIEVYUEVDVF9FUSgmYSwgcDEuZ2V0KCkpOworICAgICAg
ICBFWFBFQ1RfRVEoJmIsIHAyLmdldCgpKTsKICAgICAgICAgbG9nKCkgPDwgInwgIjsKICAgICAg
ICAgcDEgPSBwMjsKLSAgICAgICAgQVNTRVJUX0VRKCZiLCBwMS5nZXQoKSk7Ci0gICAgICAgIEFT
U0VSVF9FUSgmYiwgcDIuZ2V0KCkpOworICAgICAgICBFWFBFQ1RfRVEoJmIsIHAxLmdldCgpKTsK
KyAgICAgICAgRVhQRUNUX0VRKCZiLCBwMi5nZXQoKSk7CiAgICAgICAgIGxvZygpIDw8ICJ8ICI7
CiAgICAgfQotICAgIEFTU0VSVF9TVFJFUSgicmVmKGEpIHJlZihiKSB8IHJlZihiKSBkZXJlZihh
KSB8IGRlcmVmKGIpIGRlcmVmKGIpICIsIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKKyAgICBFWFBF
Q1RfU1RSRVEoInJlZihhKSByZWYoYikgfCByZWYoYikgZGVyZWYoYSkgfCBkZXJlZihiKSBkZXJl
ZihiKSAiLCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7CiAKICAgICB7CiAgICAgICAgIFJlZlB0cjxS
ZWZMb2dnZXI+IHB0cigmYSk7Ci0gICAgICAgIEFTU0VSVF9FUSgmYSwgcHRyLmdldCgpKTsKKyAg
ICAgICAgRVhQRUNUX0VRKCZhLCBwdHIuZ2V0KCkpOwogICAgICAgICBsb2coKSA8PCAifCAiOwog
ICAgICAgICBwdHIgPSAmYjsKLSAgICAgICAgQVNTRVJUX0VRKCZiLCBwdHIuZ2V0KCkpOworICAg
ICAgICBFWFBFQ1RfRVEoJmIsIHB0ci5nZXQoKSk7CiAgICAgICAgIGxvZygpIDw8ICJ8ICI7CiAg
ICAgfQotICAgIEFTU0VSVF9TVFJFUSgicmVmKGEpIHwgcmVmKGIpIGRlcmVmKGEpIHwgZGVyZWYo
YikgIiwgdGFrZUxvZ1N0cigpLmNfc3RyKCkpOworICAgIEVYUEVDVF9TVFJFUSgicmVmKGEpIHwg
cmVmKGIpIGRlcmVmKGEpIHwgZGVyZWYoYikgIiwgdGFrZUxvZ1N0cigpLmNfc3RyKCkpOwogCiAg
ICAgewogICAgICAgICBSZWZQdHI8UmVmTG9nZ2VyPiBwdHIoJmEpOwotICAgICAgICBBU1NFUlRf
RVEoJmEsIHB0ci5nZXQoKSk7CisgICAgICAgIEVYUEVDVF9FUSgmYSwgcHRyLmdldCgpKTsKICAg
ICAgICAgbG9nKCkgPDwgInwgIjsKICAgICAgICAgcHRyID0gYWRvcHRSZWYoJmIpOwotICAgICAg
ICBBU1NFUlRfRVEoJmIsIHB0ci5nZXQoKSk7CisgICAgICAgIEVYUEVDVF9FUSgmYiwgcHRyLmdl
dCgpKTsKICAgICAgICAgbG9nKCkgPDwgInwgIjsKICAgICB9Ci0gICAgQVNTRVJUX1NUUkVRKCJy
ZWYoYSkgfCBkZXJlZihhKSB8IGRlcmVmKGIpICIsIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKKyAg
ICBFWFBFQ1RfU1RSRVEoInJlZihhKSB8IGRlcmVmKGEpIHwgZGVyZWYoYikgIiwgdGFrZUxvZ1N0
cigpLmNfc3RyKCkpOwogCiAgICAgewogICAgICAgICBSZWZQdHI8UmVmTG9nZ2VyPiBwdHIoJmEp
OwotICAgICAgICBBU1NFUlRfRVEoJmEsIHB0ci5nZXQoKSk7CisgICAgICAgIEVYUEVDVF9FUSgm
YSwgcHRyLmdldCgpKTsKICAgICAgICAgcHRyID0gbnVsbHB0cjsKLSAgICAgICAgQVNTRVJUX0VR
KG51bGxwdHIsIHB0ci5nZXQoKSk7CisgICAgICAgIEVYUEVDVF9FUShudWxscHRyLCBwdHIuZ2V0
KCkpOwogICAgIH0KLSAgICBBU1NFUlRfU1RSRVEoInJlZihhKSBkZXJlZihhKSAiLCB0YWtlTG9n
U3RyKCkuY19zdHIoKSk7CisgICAgRVhQRUNUX1NUUkVRKCJyZWYoYSkgZGVyZWYoYSkgIiwgdGFr
ZUxvZ1N0cigpLmNfc3RyKCkpOwogCiAgICAgewogICAgICAgICBSZWZQdHI8UmVmTG9nZ2VyPiBw
MSgmYSk7CiAgICAgICAgIFJlZlB0cjxSZWZMb2dnZXI+IHAyKCZiKTsKLSAgICAgICAgQVNTRVJU
X0VRKCZhLCBwMS5nZXQoKSk7Ci0gICAgICAgIEFTU0VSVF9FUSgmYiwgcDIuZ2V0KCkpOworICAg
ICAgICBFWFBFQ1RfRVEoJmEsIHAxLmdldCgpKTsKKyAgICAgICAgRVhQRUNUX0VRKCZiLCBwMi5n
ZXQoKSk7CiAgICAgICAgIGxvZygpIDw8ICJ8ICI7CiAgICAgICAgIHAxID0gV1RGTW92ZShwMik7
Ci0gICAgICAgIEFTU0VSVF9FUSgmYiwgcDEuZ2V0KCkpOwotICAgICAgICBBU1NFUlRfRVEobnVs
bHB0ciwgcDIuZ2V0KCkpOworICAgICAgICBFWFBFQ1RfRVEoJmIsIHAxLmdldCgpKTsKKyAgICAg
ICAgRVhQRUNUX0VRKG51bGxwdHIsIHAyLmdldCgpKTsKICAgICAgICAgbG9nKCkgPDwgInwgIjsK
ICAgICB9Ci0gICAgQVNTRVJUX1NUUkVRKCJyZWYoYSkgcmVmKGIpIHwgZGVyZWYoYSkgfCBkZXJl
ZihiKSAiLCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7CisgICAgRVhQRUNUX1NUUkVRKCJyZWYoYSkg
cmVmKGIpIHwgZGVyZWYoYSkgfCBkZXJlZihiKSAiLCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7CiAK
ICAgICB7CiAgICAgICAgIFJlZlB0cjxSZWZMb2dnZXI+IHAxKCZhKTsKICAgICAgICAgUmVmUHRy
PERlcml2ZWRSZWZMb2dnZXI+IHAyKCZjKTsKLSAgICAgICAgQVNTRVJUX0VRKCZhLCBwMS5nZXQo
KSk7Ci0gICAgICAgIEFTU0VSVF9FUSgmYywgcDIuZ2V0KCkpOworICAgICAgICBFWFBFQ1RfRVEo
JmEsIHAxLmdldCgpKTsKKyAgICAgICAgRVhQRUNUX0VRKCZjLCBwMi5nZXQoKSk7CiAgICAgICAg
IGxvZygpIDw8ICJ8ICI7CiAgICAgICAgIHAxID0gcDI7Ci0gICAgICAgIEFTU0VSVF9FUSgmYywg
cDEuZ2V0KCkpOwotICAgICAgICBBU1NFUlRfRVEoJmMsIHAyLmdldCgpKTsKKyAgICAgICAgRVhQ
RUNUX0VRKCZjLCBwMS5nZXQoKSk7CisgICAgICAgIEVYUEVDVF9FUSgmYywgcDIuZ2V0KCkpOwog
ICAgICAgICBsb2coKSA8PCAifCAiOwogICAgIH0KLSAgICBBU1NFUlRfU1RSRVEoInJlZihhKSBy
ZWYoYykgfCByZWYoYykgZGVyZWYoYSkgfCBkZXJlZihjKSBkZXJlZihjKSAiLCB0YWtlTG9nU3Ry
KCkuY19zdHIoKSk7CisgICAgRVhQRUNUX1NUUkVRKCJyZWYoYSkgcmVmKGMpIHwgcmVmKGMpIGRl
cmVmKGEpIHwgZGVyZWYoYykgZGVyZWYoYykgIiwgdGFrZUxvZ1N0cigpLmNfc3RyKCkpOwogCiAg
ICAgewogICAgICAgICBSZWZQdHI8UmVmTG9nZ2VyPiBwdHIoJmEpOwotICAgICAgICBBU1NFUlRf
RVEoJmEsIHB0ci5nZXQoKSk7CisgICAgICAgIEVYUEVDVF9FUSgmYSwgcHRyLmdldCgpKTsKICAg
ICAgICAgbG9nKCkgPDwgInwgIjsKICAgICAgICAgcHRyID0gJmM7Ci0gICAgICAgIEFTU0VSVF9F
USgmYywgcHRyLmdldCgpKTsKKyAgICAgICAgRVhQRUNUX0VRKCZjLCBwdHIuZ2V0KCkpOwogICAg
ICAgICBsb2coKSA8PCAifCAiOwogICAgIH0KLSAgICBBU1NFUlRfU1RSRVEoInJlZihhKSB8IHJl
ZihjKSBkZXJlZihhKSB8IGRlcmVmKGMpICIsIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKKyAgICBF
WFBFQ1RfU1RSRVEoInJlZihhKSB8IHJlZihjKSBkZXJlZihhKSB8IGRlcmVmKGMpICIsIHRha2VM
b2dTdHIoKS5jX3N0cigpKTsKIAogICAgIHsKICAgICAgICAgUmVmUHRyPFJlZkxvZ2dlcj4gcHRy
KCZhKTsKLSAgICAgICAgQVNTRVJUX0VRKCZhLCBwdHIuZ2V0KCkpOworICAgICAgICBFWFBFQ1Rf
RVEoJmEsIHB0ci5nZXQoKSk7CiAgICAgICAgIGxvZygpIDw8ICJ8ICI7CiAgICAgICAgIHB0ciA9
IGFkb3B0UmVmKCZjKTsKLSAgICAgICAgQVNTRVJUX0VRKCZjLCBwdHIuZ2V0KCkpOworICAgICAg
ICBFWFBFQ1RfRVEoJmMsIHB0ci5nZXQoKSk7CiAgICAgICAgIGxvZygpIDw8ICJ8ICI7CiAgICAg
fQotICAgIEFTU0VSVF9TVFJFUSgicmVmKGEpIHwgZGVyZWYoYSkgfCBkZXJlZihjKSAiLCB0YWtl
TG9nU3RyKCkuY19zdHIoKSk7CisgICAgRVhQRUNUX1NUUkVRKCJyZWYoYSkgfCBkZXJlZihhKSB8
IGRlcmVmKGMpICIsIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKIAogICAgIHsKICAgICAgICAgUmVm
UHRyPFJlZkxvZ2dlcj4gcDEoJmEpOwogICAgICAgICBSZWZQdHI8RGVyaXZlZFJlZkxvZ2dlcj4g
cDIoJmMpOwotICAgICAgICBBU1NFUlRfRVEoJmEsIHAxLmdldCgpKTsKLSAgICAgICAgQVNTRVJU
X0VRKCZjLCBwMi5nZXQoKSk7CisgICAgICAgIEVYUEVDVF9FUSgmYSwgcDEuZ2V0KCkpOworICAg
ICAgICBFWFBFQ1RfRVEoJmMsIHAyLmdldCgpKTsKICAgICAgICAgbG9nKCkgPDwgInwgIjsKICAg
ICAgICAgcDEgPSBXVEZNb3ZlKHAyKTsKLSAgICAgICAgQVNTRVJUX0VRKCZjLCBwMS5nZXQoKSk7
Ci0gICAgICAgIEFTU0VSVF9FUShudWxscHRyLCBwMi5nZXQoKSk7CisgICAgICAgIEVYUEVDVF9F
USgmYywgcDEuZ2V0KCkpOworICAgICAgICBFWFBFQ1RfRVEobnVsbHB0ciwgcDIuZ2V0KCkpOwog
ICAgICAgICBsb2coKSA8PCAifCAiOwogICAgIH0KLSAgICBBU1NFUlRfU1RSRVEoInJlZihhKSBy
ZWYoYykgfCBkZXJlZihhKSB8IGRlcmVmKGMpICIsIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKKyAg
ICBFWFBFQ1RfU1RSRVEoInJlZihhKSByZWYoYykgfCBkZXJlZihhKSB8IGRlcmVmKGMpICIsIHRh
a2VMb2dTdHIoKS5jX3N0cigpKTsKIAogICAgIHsKICAgICAgICAgUmVmUHRyPFJlZkxvZ2dlcj4g
cHRyKCZhKTsKLSAgICAgICAgQVNTRVJUX0VRKCZhLCBwdHIuZ2V0KCkpOworICAgICAgICBFWFBF
Q1RfRVEoJmEsIHB0ci5nZXQoKSk7CiAgICAgICAgIGxvZygpIDw8ICJ8ICI7CiAgICAgICAgIHB0
ciA9IHB0cjsKLSAgICAgICAgQVNTRVJUX0VRKCZhLCBwdHIuZ2V0KCkpOworICAgICAgICBFWFBF
Q1RfRVEoJmEsIHB0ci5nZXQoKSk7CiAgICAgICAgIGxvZygpIDw8ICJ8ICI7CiAgICAgfQotICAg
IEFTU0VSVF9TVFJFUSgicmVmKGEpIHwgcmVmKGEpIGRlcmVmKGEpIHwgZGVyZWYoYSkgIiwgdGFr
ZUxvZ1N0cigpLmNfc3RyKCkpOworICAgIEVYUEVDVF9TVFJFUSgicmVmKGEpIHwgcmVmKGEpIGRl
cmVmKGEpIHwgZGVyZWYoYSkgIiwgdGFrZUxvZ1N0cigpLmNfc3RyKCkpOwogCiAgICAgewogICAg
ICAgICBSZWZQdHI8UmVmTG9nZ2VyPiBwdHIoJmEpOwotICAgICAgICBBU1NFUlRfRVEoJmEsIHB0
ci5nZXQoKSk7CisgICAgICAgIEVYUEVDVF9FUSgmYSwgcHRyLmdldCgpKTsKICNpZiBDT01QSUxF
UihDTEFORykKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCiAjcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVd1bmtub3duLXByYWdtYXMiCkBAIC0yNzEsOSArMjcxLDkgQEAg
VEVTVChXVEZfUmVmUHRyLCBBc3NpZ25tZW50KQogI2lmIENPTVBJTEVSKENMQU5HKQogI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAogI2VuZGlmCi0gICAgICAgIEFTU0VSVF9FUSgmYSwgcHRy
LmdldCgpKTsKKyAgICAgICAgRVhQRUNUX0VRKCZhLCBwdHIuZ2V0KCkpOwogICAgIH0KLSAgICBB
U1NFUlRfU1RSRVEoInJlZihhKSBkZXJlZihhKSAiLCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7Cisg
ICAgRVhQRUNUX1NUUkVRKCJyZWYoYSkgZGVyZWYoYSkgIiwgdGFrZUxvZ1N0cigpLmNfc3RyKCkp
OwogfQogCiBURVNUKFdURl9SZWZQdHIsIFN3YXApCkBAIC0yODQsMjYgKzI4NCwyOCBAQCBURVNU
KFdURl9SZWZQdHIsIFN3YXApCiAgICAgewogICAgICAgICBSZWZQdHI8UmVmTG9nZ2VyPiBwMSgm
YSk7CiAgICAgICAgIFJlZlB0cjxSZWZMb2dnZXI+IHAyKCZiKTsKLSAgICAgICAgQVNTRVJUX0VR
KCZhLCBwMS5nZXQoKSk7Ci0gICAgICAgIEFTU0VSVF9FUSgmYiwgcDIuZ2V0KCkpOworICAgICAg
ICBsb2coKSA8PCAifCAiOworICAgICAgICBFWFBFQ1RfRVEoJmEsIHAxLmdldCgpKTsKKyAgICAg
ICAgRVhQRUNUX0VRKCZiLCBwMi5nZXQoKSk7CiAgICAgICAgIHAxLnN3YXAocDIpOwotICAgICAg
ICBBU1NFUlRfRVEoJmIsIHAxLmdldCgpKTsKLSAgICAgICAgQVNTRVJUX0VRKCZhLCBwMi5nZXQo
KSk7CisgICAgICAgIEVYUEVDVF9FUSgmYiwgcDEuZ2V0KCkpOworICAgICAgICBFWFBFQ1RfRVEo
JmEsIHAyLmdldCgpKTsKICAgICAgICAgbG9nKCkgPDwgInwgIjsKICAgICB9Ci0gICAgQVNTRVJU
X1NUUkVRKCJyZWYoYSkgcmVmKGIpIHwgZGVyZWYoYSkgZGVyZWYoYikgIiwgdGFrZUxvZ1N0cigp
LmNfc3RyKCkpOworICAgIEVYUEVDVF9TVFJFUSgicmVmKGEpIHJlZihiKSB8IHwgZGVyZWYoYSkg
ZGVyZWYoYikgIiwgdGFrZUxvZ1N0cigpLmNfc3RyKCkpOwogCiAgICAgewogICAgICAgICBSZWZQ
dHI8UmVmTG9nZ2VyPiBwMSgmYSk7CiAgICAgICAgIFJlZlB0cjxSZWZMb2dnZXI+IHAyKCZiKTsK
LSAgICAgICAgQVNTRVJUX0VRKCZhLCBwMS5nZXQoKSk7Ci0gICAgICAgIEFTU0VSVF9FUSgmYiwg
cDIuZ2V0KCkpOworICAgICAgICBsb2coKSA8PCAifCAiOworICAgICAgICBFWFBFQ1RfRVEoJmEs
IHAxLmdldCgpKTsKKyAgICAgICAgRVhQRUNUX0VRKCZiLCBwMi5nZXQoKSk7CiAgICAgICAgIHN0
ZDo6c3dhcChwMSwgcDIpOwotICAgICAgICBBU1NFUlRfRVEoJmIsIHAxLmdldCgpKTsKLSAgICAg
ICAgQVNTRVJUX0VRKCZhLCBwMi5nZXQoKSk7CisgICAgICAgIEVYUEVDVF9FUSgmYiwgcDEuZ2V0
KCkpOworICAgICAgICBFWFBFQ1RfRVEoJmEsIHAyLmdldCgpKTsKICAgICAgICAgbG9nKCkgPDwg
InwgIjsKICAgICB9Ci0gICAgQVNTRVJUX1NUUkVRKCJyZWYoYSkgcmVmKGIpIHwgZGVyZWYoYSkg
ZGVyZWYoYikgIiwgdGFrZUxvZ1N0cigpLmNfc3RyKCkpOworICAgIEVYUEVDVF9TVFJFUSgicmVm
KGEpIHJlZihiKSB8IHwgZGVyZWYoYSkgZGVyZWYoYikgIiwgdGFrZUxvZ1N0cigpLmNfc3RyKCkp
OwogfQogCiBURVNUKFdURl9SZWZQdHIsIFJlbGVhc2VOb25OdWxsKQpAQCAtMzE1LDcgKzMxNyw3
IEBAIFRFU1QoV1RGX1JlZlB0ciwgUmVsZWFzZU5vbk51bGwpCiAgICAgICAgIFJlZlB0cjxSZWZM
b2dnZXI+IHJlZiA9IHJlZlB0ci5yZWxlYXNlTm9uTnVsbCgpOwogICAgIH0KIAotICAgIEFTU0VS
VF9TVFJFUSgicmVmKGEpIGRlcmVmKGEpICIsIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKKyAgICBF
WFBFQ1RfU1RSRVEoInJlZihhKSBkZXJlZihhKSAiLCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7CiB9
CiAKIFRFU1QoV1RGX1JlZlB0ciwgUmVsZWFzZSkKQEAgLTMyNyw1MiArMzI5LDUyIEBAIFRFU1Qo
V1RGX1JlZlB0ciwgUmVsZWFzZSkKICAgICB7CiAgICAgICAgIFJlZlB0cjxSZWZMb2dnZXI+IHAx
ID0gJmE7CiAgICAgICAgIFJlZlB0cjxSZWZMb2dnZXI+IHAyID0gV1RGTW92ZShwMSk7Ci0gICAg
ICAgIEFTU0VSVF9FUShudWxscHRyLCBwMS5nZXQoKSk7Ci0gICAgICAgIEFTU0VSVF9FUSgmYSwg
cDIuZ2V0KCkpOworICAgICAgICBFWFBFQ1RfRVEobnVsbHB0ciwgcDEuZ2V0KCkpOworICAgICAg
ICBFWFBFQ1RfRVEoJmEsIHAyLmdldCgpKTsKICAgICB9Ci0gICAgQVNTRVJUX1NUUkVRKCJyZWYo
YSkgZGVyZWYoYSkgIiwgdGFrZUxvZ1N0cigpLmNfc3RyKCkpOworICAgIEVYUEVDVF9TVFJFUSgi
cmVmKGEpIGRlcmVmKGEpICIsIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKIAogICAgIHsKICAgICAg
ICAgUmVmUHRyPFJlZkxvZ2dlcj4gcDEgPSAmYTsKICAgICAgICAgUmVmUHRyPFJlZkxvZ2dlcj4g
cDIoV1RGTW92ZShwMSkpOwotICAgICAgICBBU1NFUlRfRVEobnVsbHB0ciwgcDEuZ2V0KCkpOwot
ICAgICAgICBBU1NFUlRfRVEoJmEsIHAyLmdldCgpKTsKKyAgICAgICAgRVhQRUNUX0VRKG51bGxw
dHIsIHAxLmdldCgpKTsKKyAgICAgICAgRVhQRUNUX0VRKCZhLCBwMi5nZXQoKSk7CiAgICAgfQot
ICAgIEFTU0VSVF9TVFJFUSgicmVmKGEpIGRlcmVmKGEpICIsIHRha2VMb2dTdHIoKS5jX3N0cigp
KTsKKyAgICBFWFBFQ1RfU1RSRVEoInJlZihhKSBkZXJlZihhKSAiLCB0YWtlTG9nU3RyKCkuY19z
dHIoKSk7CiAKICAgICB7CiAgICAgICAgIFJlZlB0cjxEZXJpdmVkUmVmTG9nZ2VyPiBwMSA9ICZh
OwogICAgICAgICBSZWZQdHI8UmVmTG9nZ2VyPiBwMiA9IFdURk1vdmUocDEpOwotICAgICAgICBB
U1NFUlRfRVEobnVsbHB0ciwgcDEuZ2V0KCkpOwotICAgICAgICBBU1NFUlRfRVEoJmEsIHAyLmdl
dCgpKTsKKyAgICAgICAgRVhQRUNUX0VRKG51bGxwdHIsIHAxLmdldCgpKTsKKyAgICAgICAgRVhQ
RUNUX0VRKCZhLCBwMi5nZXQoKSk7CiAgICAgfQotICAgIEFTU0VSVF9TVFJFUSgicmVmKGEpIGRl
cmVmKGEpICIsIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKKyAgICBFWFBFQ1RfU1RSRVEoInJlZihh
KSBkZXJlZihhKSAiLCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7CiAKICAgICB7CiAgICAgICAgIFJl
ZlB0cjxSZWZMb2dnZXI+IHAxKCZhKTsKICAgICAgICAgUmVmUHRyPFJlZkxvZ2dlcj4gcDIoJmIp
OwotICAgICAgICBBU1NFUlRfRVEoJmEsIHAxLmdldCgpKTsKLSAgICAgICAgQVNTRVJUX0VRKCZi
LCBwMi5nZXQoKSk7CisgICAgICAgIEVYUEVDVF9FUSgmYSwgcDEuZ2V0KCkpOworICAgICAgICBF
WFBFQ1RfRVEoJmIsIHAyLmdldCgpKTsKICAgICAgICAgbG9nKCkgPDwgInwgIjsKICAgICAgICAg
cDEgPSBXVEZNb3ZlKHAyKTsKLSAgICAgICAgQVNTRVJUX0VRKCZiLCBwMS5nZXQoKSk7Ci0gICAg
ICAgIEFTU0VSVF9FUShudWxscHRyLCBwMi5nZXQoKSk7CisgICAgICAgIEVYUEVDVF9FUSgmYiwg
cDEuZ2V0KCkpOworICAgICAgICBFWFBFQ1RfRVEobnVsbHB0ciwgcDIuZ2V0KCkpOwogICAgICAg
ICBsb2coKSA8PCAifCAiOwogICAgIH0KLSAgICBBU1NFUlRfU1RSRVEoInJlZihhKSByZWYoYikg
fCBkZXJlZihhKSB8IGRlcmVmKGIpICIsIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKKyAgICBFWFBF
Q1RfU1RSRVEoInJlZihhKSByZWYoYikgfCBkZXJlZihhKSB8IGRlcmVmKGIpICIsIHRha2VMb2dT
dHIoKS5jX3N0cigpKTsKIAogICAgIHsKICAgICAgICAgUmVmUHRyPFJlZkxvZ2dlcj4gcDEoJmEp
OwogICAgICAgICBSZWZQdHI8RGVyaXZlZFJlZkxvZ2dlcj4gcDIoJmMpOwotICAgICAgICBBU1NF
UlRfRVEoJmEsIHAxLmdldCgpKTsKLSAgICAgICAgQVNTRVJUX0VRKCZjLCBwMi5nZXQoKSk7Cisg
ICAgICAgIEVYUEVDVF9FUSgmYSwgcDEuZ2V0KCkpOworICAgICAgICBFWFBFQ1RfRVEoJmMsIHAy
LmdldCgpKTsKICAgICAgICAgbG9nKCkgPDwgInwgIjsKICAgICAgICAgcDEgPSBXVEZNb3ZlKHAy
KTsKLSAgICAgICAgQVNTRVJUX0VRKCZjLCBwMS5nZXQoKSk7Ci0gICAgICAgIEFTU0VSVF9FUShu
dWxscHRyLCBwMi5nZXQoKSk7CisgICAgICAgIEVYUEVDVF9FUSgmYywgcDEuZ2V0KCkpOworICAg
ICAgICBFWFBFQ1RfRVEobnVsbHB0ciwgcDIuZ2V0KCkpOwogICAgICAgICBsb2coKSA8PCAifCAi
OwogICAgIH0KLSAgICBBU1NFUlRfU1RSRVEoInJlZihhKSByZWYoYykgfCBkZXJlZihhKSB8IGRl
cmVmKGMpICIsIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKKyAgICBFWFBFQ1RfU1RSRVEoInJlZihh
KSByZWYoYykgfCBkZXJlZihhKSB8IGRlcmVmKGMpICIsIHRha2VMb2dTdHIoKS5jX3N0cigpKTsK
IH0KIAogUmVmUHRyPFJlZkxvZ2dlcj4gZjEoUmVmTG9nZ2VyJiBsb2dnZXIpCkBAIC0zODcsMTUg
KzM4OSwxNCBAQCBURVNUKFdURl9SZWZQdHIsIFJldHVyblZhbHVlKQogICAgIHsKICAgICAgICAg
ZjEoYSk7CiAgICAgfQotICAgIEFTU0VSVF9TVFJFUSgicmVmKGEpIGRlcmVmKGEpICIsIHRha2VM
b2dTdHIoKS5jX3N0cigpKTsKKyAgICBFWFBFQ1RfU1RSRVEoInJlZihhKSBkZXJlZihhKSAiLCB0
YWtlTG9nU3RyKCkuY19zdHIoKSk7CiAKICAgICB7CiAgICAgICAgIGF1dG8gcHRyID0gZjEoYSk7
CiAgICAgfQotICAgIEFTU0VSVF9TVFJFUSgicmVmKGEpIGRlcmVmKGEpICIsIHRha2VMb2dTdHIo
KS5jX3N0cigpKTsKKyAgICBFWFBFQ1RfU1RSRVEoInJlZihhKSBkZXJlZihhKSAiLCB0YWtlTG9n
U3RyKCkuY19zdHIoKSk7CiB9CiAKLSAgICAKIHN0cnVjdCBDb25zdFJlZkNvdW50ZWQgOiBSZWZD
b3VudGVkPENvbnN0UmVmQ291bnRlZD4gewogICAgIHN0YXRpYyBSZWY8Q29uc3RSZWZDb3VudGVk
PiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IENvbnN0UmVmQ291bnRlZCk7IH0KIH07
CkBAIC00MjUsNCArNDI2LDExMyBAQCBURVNUKFdURl9SZWZQdHIsIENvbnN0KQogICAgIFJlZjxj
b25zdCBDb25zdFJlZkNvdW50ZWQ+IGkocmV0dXJuUmVmQ291bnRlZFJlZigpKTsKIH0KIAorc3Ry
dWN0IFJlZlB0ckNoZWNraW5nUmVmTG9nZ2VyIDogUmVmTG9nZ2VyIHsKKyAgICBSZWZQdHJDaGVj
a2luZ1JlZkxvZ2dlcihjb25zdCBjaGFyKiBuYW1lKTsKKyAgICB2b2lkIHJlZigpOworICAgIHZv
aWQgZGVyZWYoKTsKKyAgICBjb25zdCBSZWZQdHI8UmVmUHRyQ2hlY2tpbmdSZWZMb2dnZXI+KiBz
bG90VG9DaGVjayB7IG51bGxwdHIgfTsKK307CisKK1JlZlB0ckNoZWNraW5nUmVmTG9nZ2VyOjpS
ZWZQdHJDaGVja2luZ1JlZkxvZ2dlcihjb25zdCBjaGFyKiBuYW1lKQorICAgIDogUmVmTG9nZ2Vy
IHsgbmFtZSB9Cit7Cit9CisKK3N0YXRpYyBjb25zdCBjaGFyKiBsb2dnZXJOYW1lKGNvbnN0IFJl
ZlB0cjxSZWZQdHJDaGVja2luZ1JlZkxvZ2dlcj4mIHBvaW50ZXIpCit7CisgICAgcmV0dXJuIHBv
aW50ZXIgPyAmcG9pbnRlci0+bmFtZSA6ICJudWxsIjsKK30KKwordm9pZCBSZWZQdHJDaGVja2lu
Z1JlZkxvZ2dlcjo6cmVmKCkKK3sKKyAgICBpZiAoc2xvdFRvQ2hlY2spCisgICAgICAgIGxvZygp
IDw8ICJzbG90PSIgPDwgbG9nZ2VyTmFtZSgqc2xvdFRvQ2hlY2spIDw8ICIgIjsKKyAgICBSZWZM
b2dnZXI6OnJlZigpOworfQorCit2b2lkIFJlZlB0ckNoZWNraW5nUmVmTG9nZ2VyOjpkZXJlZigp
Cit7CisgICAgaWYgKHNsb3RUb0NoZWNrKQorICAgICAgICBsb2coKSA8PCAic2xvdD0iIDw8IGxv
Z2dlck5hbWUoKnNsb3RUb0NoZWNrKSA8PCAiICI7CisgICAgUmVmTG9nZ2VyOjpkZXJlZigpOwor
fQorCitURVNUKFdURl9SZWZQdHIsIEFzc2lnbkJlZm9yZURlcmVmKQoreworICAgIFJlZlB0ckNo
ZWNraW5nUmVmTG9nZ2VyIGEoImEiKTsKKyAgICBSZWZQdHJDaGVja2luZ1JlZkxvZ2dlciBiKCJi
Iik7CisKKyAgICB7CisgICAgICAgIFJlZlB0cjxSZWZQdHJDaGVja2luZ1JlZkxvZ2dlcj4gcDEo
JmEpOworICAgICAgICBSZWZQdHI8UmVmUHRyQ2hlY2tpbmdSZWZMb2dnZXI+IHAyKCZiKTsKKyAg
ICAgICAgRVhQRUNUX0VRKCZhLCBwMS5nZXQoKSk7CisgICAgICAgIEVYUEVDVF9FUSgmYiwgcDIu
Z2V0KCkpOworICAgICAgICBsb2coKSA8PCAifCAiOworICAgICAgICBhLnNsb3RUb0NoZWNrID0g
JnAxOworICAgICAgICBiLnNsb3RUb0NoZWNrID0gJnAxOworICAgICAgICBwMSA9IHAyOworICAg
ICAgICBhLnNsb3RUb0NoZWNrID0gbnVsbHB0cjsKKyAgICAgICAgYi5zbG90VG9DaGVjayA9IG51
bGxwdHI7CisgICAgICAgIEVYUEVDVF9FUSgmYiwgcDEuZ2V0KCkpOworICAgICAgICBFWFBFQ1Rf
RVEoJmIsIHAyLmdldCgpKTsKKyAgICAgICAgbG9nKCkgPDwgInwgIjsKKyAgICB9CisgICAgRVhQ
RUNUX1NUUkVRKCJyZWYoYSkgcmVmKGIpIHwgc2xvdD1hIHJlZihiKSBzbG90PWIgZGVyZWYoYSkg
fCBkZXJlZihiKSBkZXJlZihiKSAiLCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7CisKKyAgICB7Cisg
ICAgICAgIFJlZlB0cjxSZWZQdHJDaGVja2luZ1JlZkxvZ2dlcj4gcHRyKCZhKTsKKyAgICAgICAg
RVhQRUNUX0VRKCZhLCBwdHIuZ2V0KCkpOworICAgICAgICBsb2coKSA8PCAifCAiOworICAgICAg
ICBhLnNsb3RUb0NoZWNrID0gJnB0cjsKKyAgICAgICAgYi5zbG90VG9DaGVjayA9ICZwdHI7Cisg
ICAgICAgIHB0ciA9ICZiOworICAgICAgICBhLnNsb3RUb0NoZWNrID0gbnVsbHB0cjsKKyAgICAg
ICAgYi5zbG90VG9DaGVjayA9IG51bGxwdHI7CisgICAgICAgIEVYUEVDVF9FUSgmYiwgcHRyLmdl
dCgpKTsKKyAgICAgICAgbG9nKCkgPDwgInwgIjsKKyAgICB9CisgICAgRVhQRUNUX1NUUkVRKCJy
ZWYoYSkgfCBzbG90PWEgcmVmKGIpIHNsb3Q9YiBkZXJlZihhKSB8IGRlcmVmKGIpICIsIHRha2VM
b2dTdHIoKS5jX3N0cigpKTsKKworICAgIHsKKyAgICAgICAgUmVmUHRyPFJlZlB0ckNoZWNraW5n
UmVmTG9nZ2VyPiBwdHIoJmEpOworICAgICAgICBFWFBFQ1RfRVEoJmEsIHB0ci5nZXQoKSk7Cisg
ICAgICAgIGEuc2xvdFRvQ2hlY2sgPSAmcHRyOworICAgICAgICBwdHIgPSBudWxscHRyOworICAg
ICAgICBhLnNsb3RUb0NoZWNrID0gbnVsbHB0cjsKKyAgICAgICAgRVhQRUNUX0VRKG51bGxwdHIs
IHB0ci5nZXQoKSk7CisgICAgfQorICAgIEVYUEVDVF9TVFJFUSgicmVmKGEpIHNsb3Q9bnVsbCBk
ZXJlZihhKSAiLCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7CisKKyAgICB7CisgICAgICAgIFJlZlB0
cjxSZWZQdHJDaGVja2luZ1JlZkxvZ2dlcj4gcDEoJmEpOworICAgICAgICBSZWZQdHI8UmVmUHRy
Q2hlY2tpbmdSZWZMb2dnZXI+IHAyKCZiKTsKKyAgICAgICAgRVhQRUNUX0VRKCZhLCBwMS5nZXQo
KSk7CisgICAgICAgIEVYUEVDVF9FUSgmYiwgcDIuZ2V0KCkpOworICAgICAgICBsb2coKSA8PCAi
fCAiOworICAgICAgICBhLnNsb3RUb0NoZWNrID0gJnAxOworICAgICAgICBiLnNsb3RUb0NoZWNr
ID0gJnAxOworICAgICAgICBwMSA9IFdURk1vdmUocDIpOworICAgICAgICBhLnNsb3RUb0NoZWNr
ID0gbnVsbHB0cjsKKyAgICAgICAgYi5zbG90VG9DaGVjayA9IG51bGxwdHI7CisgICAgICAgIEVY
UEVDVF9FUSgmYiwgcDEuZ2V0KCkpOworICAgICAgICBFWFBFQ1RfRVEobnVsbHB0ciwgcDIuZ2V0
KCkpOworICAgICAgICBsb2coKSA8PCAifCAiOworICAgIH0KKyAgICBFWFBFQ1RfU1RSRVEoInJl
ZihhKSByZWYoYikgfCBzbG90PWIgZGVyZWYoYSkgfCBkZXJlZihiKSAiLCB0YWtlTG9nU3RyKCku
Y19zdHIoKSk7Cit9CisKK1RFU1QoV1RGX1JlZlB0ciwgUmVsZWFzZU5vbk51bGxCZWZvcmVEZXJl
ZikKK3sKKyAgICBSZWZQdHJDaGVja2luZ1JlZkxvZ2dlciBhKCJhIik7CisKKyAgICB7CisgICAg
ICAgIFJlZlB0cjxSZWZQdHJDaGVja2luZ1JlZkxvZ2dlcj4gcmVmUHRyID0gJmE7CisgICAgICAg
IGEuc2xvdFRvQ2hlY2sgPSAmcmVmUHRyOworICAgICAgICByZWZQdHIucmVsZWFzZU5vbk51bGwo
KTsKKyAgICAgICAgYS5zbG90VG9DaGVjayA9IG51bGxwdHI7CisgICAgfQorCisgICAgRVhQRUNU
X1NUUkVRKCJyZWYoYSkgc2xvdD1udWxsIGRlcmVmKGEpICIsIHRha2VMb2dTdHIoKS5jX3N0cigp
KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>313244</attachid>
            <date>2017-06-18 13:39:07 -0700</date>
            <delta_ts>2017-06-18 15:20:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-173526-20170618133907.patch</filename>
            <type>text/plain</type>
            <size>43331</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE4NDY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDFjMWYyODg3ODQyYzU3ZjM3Yjk4ZjVh
OWI4OGYzODY5YmI3NjIwMGEuLjU5YWFkYTM2Y2NlZWU3OTFiNDczNDgwZGUwMmQ4MmExZTY3NzUw
MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTctMDYtMTggIERhcmluIEFkbGVyICA8ZGFyaW5A
YXBwbGUuY29tPgorCisgICAgICAgIEZpeCBSZWYgdG8gZGVyZWYgYmVmb3JlIGFzc2lnbm1lbnQs
IGFkZCB0ZXN0cyBmb3IgdGhpcyB0byBSZWZQdHIsIFJlZiwgRnVuY3Rpb24KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MzUyNgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL1JlZi5oOiBDaGFuZ2Vk
IG9wZXJhdG9yPSB0byBub3QgYmUgaW5saW5lZC4gQWRkZWQgc3dhcCBmdW5jdGlvbnMuCisgICAg
ICAgIENoYW5nZWQgb3BlcmF0b3I9IGltcGxlbWVudGF0aW9ucyB0byB1c2Ugc3dhcCBpbiB0aGUg
Y29udmVudGlvbmFsIG1hbm5lciwgdGhlCisgICAgICAgIHNhbWUgd2F5IHRoYXQgUmVmUHRyIGRv
ZXMuCisKIDIwMTctMDYtMTggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAg
ICAgICBVc2UgV1RGOjpGdW5jdGlvbiBpbnN0ZWFkIG9mIHN0ZDo6ZnVuY3Rpb24gaW4gV1RGLwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUmVmLmggYi9Tb3VyY2UvV1RGL3d0Zi9SZWYuaApp
bmRleCBkZjU2OGYxOGQxZDdkMzRjZDIzZjE5MjNiMzU1MWE2YTNjNTZjYzBlLi5kM2RmZGNjYjQy
NTU4ZDAyYjk3YmZiMzk5OWQ4YzZhZTUwNWVmMDI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0
Zi9SZWYuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9SZWYuaApAQCAtODIsMzcgKzgyLDE1IEBAIHB1
YmxpYzoKICAgICAgICAgQVNTRVJUKG1fcHRyKTsKICAgICB9CiAKLSAgICBSZWYmIG9wZXJhdG9y
PShUJiBvYmplY3QpCi0gICAgewotICAgICAgICBBU1NFUlQobV9wdHIpOwotICAgICAgICBvYmpl
Y3QucmVmKCk7Ci0gICAgICAgIG1fcHRyLT5kZXJlZigpOwotICAgICAgICBtX3B0ciA9ICZvYmpl
Y3Q7Ci0gICAgICAgIEFTU0VSVChtX3B0cik7Ci0gICAgICAgIHJldHVybiAqdGhpczsKLSAgICB9
CisgICAgUmVmJiBvcGVyYXRvcj0oVCYpOworICAgIFJlZiYgb3BlcmF0b3I9KFJlZiYmKTsKKyAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiBSZWYmIG9wZXJhdG9yPShSZWY8VT4mJik7CiAKICAgICAv
LyBVc2UgY29weVJlZigpIGFuZCB0aGUgbW92ZSBhc3NpZ25tZW50IG9wZXJhdG9ycyBpbnN0ZWFk
LgotICAgIFJlZiYgb3BlcmF0b3I9KGNvbnN0IFJlZiYgcmVmZXJlbmNlKSA9IGRlbGV0ZTsKLSAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiBSZWYmIG9wZXJhdG9yPShjb25zdCBSZWY8VT4mIHJlZmVy
ZW5jZSkgPSBkZWxldGU7Ci0KLSAgICBSZWYmIG9wZXJhdG9yPShSZWYmJiByZWZlcmVuY2UpCi0g
ICAgewotICAgICAgICBBU1NFUlQobV9wdHIpOwotICAgICAgICBtX3B0ci0+ZGVyZWYoKTsKLSAg
ICAgICAgbV9wdHIgPSAmcmVmZXJlbmNlLmxlYWtSZWYoKTsKLSAgICAgICAgQVNTRVJUKG1fcHRy
KTsKLSAgICAgICAgcmV0dXJuICp0aGlzOwotICAgIH0KKyAgICBSZWYmIG9wZXJhdG9yPShjb25z
dCBSZWYmKSA9IGRlbGV0ZTsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiBSZWYmIG9wZXJhdG9y
PShjb25zdCBSZWY8VT4mKSA9IGRlbGV0ZTsKIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+IFJl
ZiYgb3BlcmF0b3I9KFJlZjxVPiYmIHJlZmVyZW5jZSkKLSAgICB7Ci0gICAgICAgIEFTU0VSVCht
X3B0cik7Ci0gICAgICAgIG1fcHRyLT5kZXJlZigpOwotICAgICAgICBtX3B0ciA9ICZyZWZlcmVu
Y2UubGVha1JlZigpOwotICAgICAgICBBU1NFUlQobV9wdHIpOwotICAgICAgICByZXR1cm4gKnRo
aXM7Ci0gICAgfQorICAgIHZvaWQgc3dhcChSZWYmKTsKIAogICAgIC8vIEhhc2ggdGFibGUgZGVs
ZXRlZCB2YWx1ZXMsIHdoaWNoIGFyZSBvbmx5IGNvbnN0cnVjdGVkIGFuZCBuZXZlciBjb3BpZWQg
b3IgZGVzdHJveWVkLgogICAgIFJlZihIYXNoVGFibGVEZWxldGVkVmFsdWVUeXBlKSA6IG1fcHRy
KGhhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpKSB7IH0KQEAgLTE3MSw2ICsxNDksNDEgQEAgcHJpdmF0
ZToKICAgICBUKiBtX3B0cjsKIH07CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IHZvaWQgc3dhcChS
ZWY8VD4mLCBSZWY8VD4mKTsKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IFJlZjxUPiBhZG9wdFJlZihU
Jik7Cit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBSZWY8VD4gbWFrZVJlZihUJik7CisKK3RlbXBsYXRl
PHR5cGVuYW1lIFQ+IGlubGluZSBSZWY8VD4mIFJlZjxUPjo6b3BlcmF0b3I9KFQmIHJlZmVyZW5j
ZSkKK3sKKyAgICBSZWYgY29waWVkUmVmZXJlbmNlID0gcmVmZXJlbmNlOworICAgIHN3YXAoY29w
aWVkUmVmZXJlbmNlKTsKKyAgICByZXR1cm4gKnRoaXM7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1l
IFQ+IGlubGluZSBSZWY8VD4mIFJlZjxUPjo6b3BlcmF0b3I9KFJlZiYmIHJlZmVyZW5jZSkKK3sK
KyAgICBSZWYgbW92ZWRSZWZlcmVuY2UgPSBXVEZNb3ZlKHJlZmVyZW5jZSk7CisgICAgc3dhcCht
b3ZlZFJlZmVyZW5jZSk7CisgICAgcmV0dXJuICp0aGlzOworfQorCit0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPiB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiBpbmxpbmUgUmVmPFQ+JiBSZWY8VD46Om9wZXJhdG9y
PShSZWY8VT4mJiByZWZlcmVuY2UpCit7CisgICAgUmVmIG1vdmVkUmVmZXJlbmNlID0gV1RGTW92
ZShyZWZlcmVuY2UpOworICAgIHN3YXAobW92ZWRSZWZlcmVuY2UpOworICAgIHJldHVybiAqdGhp
czsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIHZvaWQgUmVmPFQ+Ojpzd2FwKFJl
ZiYgb3RoZXIpCit7CisgICAgc3RkOjpzd2FwKG1fcHRyLCBvdGhlci5tX3B0cik7Cit9CisKK3Rl
bXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSB2b2lkIHN3YXAoUmVmPFQ+JiBhLCBSZWY8VD4mIGIp
Cit7CisgICAgYS5zd2FwKGIpOworfQorCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB0ZW1wbGF0ZTx0
eXBlbmFtZSBVPiBpbmxpbmUgUmVmPFQ+IFJlZjxUPjo6cmVwbGFjZShSZWY8VT4mJiByZWZlcmVu
Y2UpCiB7CiAgICAgYXV0byBvbGRSZWZlcmVuY2UgPSBhZG9wdFJlZigqbV9wdHIpOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDJkYmM0YzFhMTFl
YWIyODkyY2U5NTdiZmQyZWFjZDVhY2Q0YTZiNjQuLjAwMmYyNTQ0ZTQyYzRjNGVlNmQ2MTdhNjI2
ZGVmMDk3NTk1MzQxZmMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAxNy0wNi0xOCAgRGFyaW4gQWRsZXIgIDxkYXJp
bkBhcHBsZS5jb20+CisKKyAgICAgICAgRml4IFJlZiB0byBkZXJlZiBiZWZvcmUgYXNzaWdubWVu
dCwgYWRkIHRlc3RzIGZvciB0aGlzIHRvIFJlZlB0ciwgUmVmLCBGdW5jdGlvbgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTczNTI2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL0NN
YWtlTGlzdHMudHh0OiBBZGRlZCBGdW5jdGlvbi5jcHAuCisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IERpdHRvLgorCisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRnVuY3Rpb24uY3BwOiBBZGRlZC4gQ29udGFp
bnMgYmFzaWMgdGVzdHMgYW5kIHNvbWUKKyAgICAgICAgdGVzdHMgZm9yIGFzc2lnbm1lbnQgYmVm
b3JlIGRlc3RydWN0aW9uIG9uZXMuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9Nb3ZlT25seS5oOiBBZGRlZCBhICgpIG9wZXJhdG9yIHNvIHRoaXMgY2FuIGJlIHVzZWQKKyAg
ICAgICAgYXMgYSBmdW5jdGlvbiwgc28gaXQgY2FuIGJlIHVzZWQgaW4gV1RGOjpGdW5jdGlvbiB0
ZXN0cy4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1JlZi5jcHA6IFVzZSBF
WFBFQ1QgbWFjcm9zIGluc2VhZCBvZiBBU1NFUlQuCisgICAgICAgIEFkZGVkIHRlc3RzIGZvciBz
d2FwIGFuZCBmb3IgYXNzaWdubWVudCBiZWZvcmUgZGVyZWYuCisKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9SZWZMb2dnZXIuY3BwOiBTdG9wcGVkIHVzaW5nIGlubGluaW5nOyBu
byBnb29kIHJlYXNvbgorICAgICAgICB0byBpbmxpbmUgZXZlcnl0aGluZy4gQWxzbyByZW1vdmVk
IHRoZSB1bm5lY2Vzc2FyeSBjbGVhcmluZyBvZiB0aGUgbG9nIGV2ZXJ5IHRpbWUKKyAgICAgICAg
dGhlIERlcml2ZWRSZWZMb2dnZXIgY29uc3RydWN0b3IgaXMgY2FsbGVkLgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL1JlZkxvZ2dlci5oOiBEaXR0by4KKworICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL1JlZlB0ci5jcHA6IFVzZSBFWFBFQ1QgbWFjcm9zIGluc3Rl
YWQgb2YgQVNTRVJULgorICAgICAgICBBZGRlZCB0ZXN0cyBmb3IgYXNzaWdubWVudCBiZWZvcmUg
ZGVyZWYgYW5kIHNpbWlsYXIgZm9yIHJlbGVhc2VOb25OdWxsLgorCiAyMDE3LTA2LTE4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQ3Jhc2ggd2hlbiByZS1lbnRl
cmluZyBNZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVlc3Q6OmNhbmNlbCgpCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL0NNYWtlTGlzdHMudHh0IGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9DTWFrZUxpc3RzLnR4dAppbmRleCA3MmExZmNkN2FlZGZmNGJjYTE0MmQzYzZmZjM3Y2VlODZj
M2FkMTAzLi5kODhkZjc5ZGJlZjBkMWNmZGZhOWEwMWU3MWEwZThlNDE2NjFjYmFhIDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL0NNYWtlTGlzdHMudHh0CisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvQ01ha2VMaXN0cy50eHQKQEAgLTUwLDYgKzUwLDcgQEAgc2V0KFRlc3RXVEZfU09V
UkNFUwogICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dURi9EZXF1ZS5jcHAKICAgICAk
e1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XVEYvRW51bVRyYWl0cy5jcHAKICAgICAke1RFU1RX
RUJLSVRBUElfRElSfS9UZXN0cy9XVEYvRXhwZWN0ZWQuY3BwCisgICAgJHtURVNUV0VCS0lUQVBJ
X0RJUn0vVGVzdHMvV1RGL0Z1bmN0aW9uLmNwcAogICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rl
c3RzL1dURi9IYXNoQ291bnRlZFNldC5jcHAKICAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0
cy9XVEYvSGFzaE1hcC5jcHAKICAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XVEYvSGFz
aFNldC5jcHAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0
QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYWU4MWU1ZjBhYTkxODc4NjI4ZTY2
ODIzNzAyZTFmOGI2MmE4NzE0Ny4uNjQzYmM3YThmMTdiZjhiOTQ3M2IzNzlmN2M4ZjBhNTFjMWZm
N2JmMCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0
QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQ4OSw2ICs0ODksNyBAQAogCQk4M0RF
MTM0RDFFRjFDNTA4MDBDMUIzNTUgLyogUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0RFMTM0QzFFRjFDNEZFMDBD
MUIzNTUgLyogUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHAgKi87IH07CiAJCThFNEE4NTM3MUUxRDFB
QjIwMEY1M0IwRiAvKiBHcmlkUG9zaXRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOEU0QTg1MzYxRTFEMUFBMTAwRjUzQjBGIC8qIEdyaWRQb3Np
dGlvbi5jcHAgKi87IH07CiAJCTkzMEFENDAyMTUwNjk4RDAwMDY3OTcwRiAvKiBsb3RzLW9mLXRl
eHQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5MzBBRDQwMTE1MDY5OEIzMDA2Nzk3MEYgLyogbG90cy1vZi10ZXh0Lmh0bWwgKi87IH07
CisJCTkzMTBDRDM4MUVGNzA4RkIwMDUwRkZFMCAvKiBGdW5jdGlvbi5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzEwQ0QzNjFFRjcwOEZCMDA1MEZG
RTAgLyogRnVuY3Rpb24uY3BwICovOyB9OwogCQk5MzI5QUEyOTFERTNGODFFMDAzQUJEMDcgLyog
VGV4dEJyZWFrSXRlcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTMyOUFBMjgxREUzRjgxRTAwM0FCRDA3IC8qIFRleHRCcmVha0l0ZXJhdG9y
LmNwcCAqLzsgfTsKIAkJOTMyQUU1M0QxRDM3MTA0NzAwNURGRkFGIC8qIGZvY3VzLWlucHV0cy5o
dG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzNTc1QzU1MUQzMDM2NkUwMDBENjA0RCAvKiBmb2N1cy1pbnB1dHMuaHRtbCAqLzsgfTsKIAkJ
OTM2MTAwMjkxNERDOTVBNzAwNjEzNzlEIC8qIGxvdHMtb2YtaWZyYW1lcy5odG1sIGluIENvcHkg
UmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNjEwMDI4MTRE
Qzk1N0IwMDYxMzc5RCAvKiBsb3RzLW9mLWlmcmFtZXMuaHRtbCAqLzsgfTsKQEAgLTEzMzMsNiAr
MTMzNCw3IEBACiAJCThERDc2RkExMDQ4NkFBNzYwMEQ5NkI1RSAvKiBUZXN0V2ViS2l0QVBJICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSAiY29tcGlsZWQu
bWFjaC1vLmV4ZWN1dGFibGUiOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGggPSBUZXN0V2ViS2l0
QVBJOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk4RTRBODUzNjFFMUQx
QUExMDBGNTNCMEYgLyogR3JpZFBvc2l0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEdyaWRQb3NpdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTkzMEFENDAxMTUwNjk4QjMwMDY3OTcwRiAvKiBsb3RzLW9mLXRleHQuaHRtbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJsb3RzLW9mLXRleHQuaHRtbCI7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTkzMTBDRDM2MUVGNzA4RkIwMDUwRkZFMCAvKiBGdW5jdGlvbi5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGdW5jdGlvbi5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMjlBQTI4MURFM0Y4MUUwMDNBQkQwNyAvKiBUZXh0
QnJlYWtJdGVyYXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBU
ZXh0QnJlYWtJdGVyYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMzE0
MDdCMTdCNDQxOTAwMEYwODNCMSAvKiBEaWROb3RIYW5kbGVLZXlEb3duLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERpZE5vdEhhbmRsZUtleURvd24uY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzU3NUM1NTFEMzAzNjZFMDAwRDYwNEQgLyogZm9j
dXMtaW5wdXRzLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiZm9jdXMtaW5wdXRz
Lmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjMwOCw2ICsyMzEwLDcgQEAK
IAkJCQlFNEE3NTdEMzE3OEFFQTVCMDBCNUQ3QTQgLyogRGVxdWUuY3BwICovLAogCQkJCTFBRjdC
MjFEMUQ2Q0QxMkUwMDhDMTI2QyAvKiBFbnVtVHJhaXRzLmNwcCAqLywKIAkJCQlBRDdDNDM0QzFE
RDJBNTQ3MDAyNjg4OEIgLyogRXhwZWN0ZWQuY3BwICovLAorCQkJCTkzMTBDRDM2MUVGNzA4RkIw
MDUwRkZFMCAvKiBGdW5jdGlvbi5jcHAgKi8sCiAJCQkJN0EzOEQ3RTUxQzc1MkQ1RjAwNEYxNTdE
IC8qIEhhc2hDb3VudGVkU2V0LmNwcCAqLywKIAkJCQkwQkNEODMzNDE0ODU3Q0U0MDBFQTIwMDMg
LyogSGFzaE1hcC5jcHAgKi8sCiAJCQkJMjZCMkRGRjgxNUJERTU5OTAwNEY2OTFEIC8qIEhhc2hT
ZXQuY3BwICovLApAQCAtMjg0Niw2ICsyODQ5LDcgQEAKIAkJCQk3QzgzREU5OTFEMEE1OTBDMDBG
RUJDRjMgLyogQXRvbWljU3RyaW5nLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBREFEMTUwMUQ3
N0E5RjYwMDIxMjU4NiAvKiBCbG9ja1B0ci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDODNERTlD
MUQwQTU5MEMwMEZFQkNGMyAvKiBCbG9vbUZpbHRlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5
MzEwQ0QzODFFRjcwOEZCMDA1MEZGRTAgLyogRnVuY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJN0M4M0RFQTAxRDBBNTkwQzAwRkVCQ0YzIC8qIENoZWNrZWRBcml0aG1ldGljT3BlcmF0aW9u
cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QzgzREVDMzFEMEE1OTBDMDBGRUJDRjMgLyogQ29u
ZGl0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDODNERUE2MUQwQTU5MEMwMEZFQkNGMyAv
KiBDb3VudGVycy5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL0Z1bmN0aW9uLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL0Z1bmN0aW9uLmNwcAppbmRleCBjY2YwZmU3NWU2OTg3MTljNDljNmYzZWJiNTg3MjEyMDNl
ZmExMjMwLi4wYzljYjUwMGNjMDk3NjI5MjZjYjU1ZWQxNzJiNTg0ZTFhN2Y0NmY2IDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GdW5jdGlvbi5jcHAKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRnVuY3Rpb24uY3BwCkBAIC0yNSw3ICsyNSw3IEBA
CiAKICNpbmNsdWRlICJjb25maWcuaCIKIAotI2luY2x1ZGUgIlRlc3QuaCIKKyNpbmNsdWRlICJN
b3ZlT25seS5oIgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogCiBuYW1lc3BhY2UgVGVzdFdl
YktpdEFQSSB7CkBAIC0xMzcsNCArMTM3LDEwNyBAQCBURVNUKFdURl9GdW5jdGlvbiwgYXNzaWdu
TnVsbFJlRW50ZXJzQXNzaWduTGFtZGEpCiAgICAgRVhQRUNUX0VRKC0xLCBmdW5jdGlvbl9mb3Jf
cmVlbnRyYW5jeV90ZXN0KCkpOwogfQogCitURVNUKFdURl9GdW5jdGlvbiwgQmFzaWNzKQorewor
ICAgIEZ1bmN0aW9uPHVuc2lnbmVkKCk+IGE7CisgICAgRVhQRUNUX0ZBTFNFKHN0YXRpY19jYXN0
PGJvb2w+KGEpKTsKKyAgICBFWFBFQ1RfRVEoMFUsIGEoKSk7CisKKyAgICBhID0gW10geworICAg
ICAgICByZXR1cm4gMVU7CisgICAgfTsKKyAgICBFWFBFQ1RfVFJVRShzdGF0aWNfY2FzdDxib29s
PihhKSk7CisgICAgRVhQRUNUX0VRKDFVLCBhKCkpOworCisgICAgYSA9IG51bGxwdHI7CisgICAg
RVhQRUNUX0ZBTFNFKHN0YXRpY19jYXN0PGJvb2w+KGEpKTsKKyAgICBFWFBFQ1RfRVEoMFUsIGEo
KSk7CisKKyAgICBhID0gTW92ZU9ubHkgeyAyIH07CisgICAgRVhQRUNUX1RSVUUoc3RhdGljX2Nh
c3Q8Ym9vbD4oYSkpOworICAgIEVYUEVDVF9FUSgyVSwgYSgpKTsKKworICAgIEZ1bmN0aW9uPHVu
c2lnbmVkKCk+IGIgPSBXVEZNb3ZlKGEpOworICAgIEVYUEVDVF9UUlVFKHN0YXRpY19jYXN0PGJv
b2w+KGIpKTsKKyAgICBFWFBFQ1RfRVEoMlUsIGIoKSk7CisgICAgRVhQRUNUX0ZBTFNFKHN0YXRp
Y19jYXN0PGJvb2w+KGEpKTsKKyAgICBFWFBFQ1RfRVEoMFUsIGEoKSk7CisKKyAgICBhID0gTW92
ZU9ubHkgeyAzIH07CisgICAgRnVuY3Rpb248dW5zaWduZWQoKT4gYyA9IFdURk1vdmUoYSk7Cisg
ICAgRVhQRUNUX1RSVUUoc3RhdGljX2Nhc3Q8Ym9vbD4oYykpOworICAgIEVYUEVDVF9FUSgzVSwg
YygpKTsKKyAgICBFWFBFQ1RfRkFMU0Uoc3RhdGljX2Nhc3Q8Ym9vbD4oYSkpOworICAgIEVYUEVD
VF9FUSgwVSwgYSgpKTsKKworICAgIGIgPSBXVEZNb3ZlKGMpOworICAgIEVYUEVDVF9UUlVFKHN0
YXRpY19jYXN0PGJvb2w+KGIpKTsKKyAgICBFWFBFQ1RfRVEoM1UsIGIoKSk7CisgICAgRVhQRUNU
X0ZBTFNFKHN0YXRpY19jYXN0PGJvb2w+KGMpKTsKKyAgICBFWFBFQ1RfRVEoMFUsIGMoKSk7CisK
KyAgICBGdW5jdGlvbjx1bnNpZ25lZCgpPiBkID0gbnVsbHB0cjsKKyAgICBFWFBFQ1RfRkFMU0Uo
c3RhdGljX2Nhc3Q8Ym9vbD4oZCkpOworICAgIEVYUEVDVF9FUSgwVSwgZCgpKTsKK30KKworc3Ry
dWN0IEZ1bmN0aW9uRGVzdHJ1Y3Rpb25DaGVja2VyIHsKKyAgICBGdW5jdGlvbkRlc3RydWN0aW9u
Q2hlY2tlcihGdW5jdGlvbjx1bnNpZ25lZCgpPiYgZnVuY3Rpb24pCisgICAgICAgIDogZnVuY3Rp
b24geyBmdW5jdGlvbiB9CisgICAgeworICAgIH0KKworICAgIH5GdW5jdGlvbkRlc3RydWN0aW9u
Q2hlY2tlcigpCisgICAgeworICAgICAgICBmdW5jdGlvbkFzQm9vbCA9IHN0YXRpY19jYXN0PGJv
b2w+KGZ1bmN0aW9uKTsKKyAgICAgICAgZnVuY3Rpb25SZXN1bHQgPSBmdW5jdGlvbigpOworICAg
IH0KKworICAgIHVuc2lnbmVkIG9wZXJhdG9yKCkoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0
dXJuIDEwOworICAgIH0KKworICAgIEZ1bmN0aW9uPHVuc2lnbmVkKCk+JiBmdW5jdGlvbjsKKyAg
ICBzdGF0aWMgc3RkOjpvcHRpb25hbDxib29sPiBmdW5jdGlvbkFzQm9vbDsKKyAgICBzdGF0aWMg
c3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gZnVuY3Rpb25SZXN1bHQ7Cit9OworCitzdGQ6Om9wdGlv
bmFsPGJvb2w+IEZ1bmN0aW9uRGVzdHJ1Y3Rpb25DaGVja2VyOjpmdW5jdGlvbkFzQm9vbDsKK3N0
ZDo6b3B0aW9uYWw8dW5zaWduZWQ+IEZ1bmN0aW9uRGVzdHJ1Y3Rpb25DaGVja2VyOjpmdW5jdGlv
blJlc3VsdDsKKworVEVTVChXVEZfRnVuY3Rpb24sIEFzc2lnbkJlZm9yZURlc3Ryb3kpCit7Cisg
ICAgRnVuY3Rpb248dW5zaWduZWQoKT4gYTsKKworICAgIGEgPSBGdW5jdGlvbkRlc3RydWN0aW9u
Q2hlY2tlcihhKTsKKyAgICBhID0gW10geworICAgICAgICByZXR1cm4gMVU7CisgICAgfTsKKyAg
ICBFWFBFQ1RfVFJVRShzdGF0aWNfY2FzdDxib29sPihGdW5jdGlvbkRlc3RydWN0aW9uQ2hlY2tl
cjo6ZnVuY3Rpb25Bc0Jvb2wpKTsKKyAgICBFWFBFQ1RfVFJVRShzdGF0aWNfY2FzdDxib29sPihG
dW5jdGlvbkRlc3RydWN0aW9uQ2hlY2tlcjo6ZnVuY3Rpb25SZXN1bHQpKTsKKyAgICBFWFBFQ1Rf
VFJVRShGdW5jdGlvbkRlc3RydWN0aW9uQ2hlY2tlcjo6ZnVuY3Rpb25Bc0Jvb2wudmFsdWUoKSk7
CisgICAgRVhQRUNUX0VRKDFVLCBGdW5jdGlvbkRlc3RydWN0aW9uQ2hlY2tlcjo6ZnVuY3Rpb25S
ZXN1bHQudmFsdWUoKSk7CisgICAgRnVuY3Rpb25EZXN0cnVjdGlvbkNoZWNrZXI6OmZ1bmN0aW9u
QXNCb29sID0gc3RkOjpudWxsb3B0OworICAgIEZ1bmN0aW9uRGVzdHJ1Y3Rpb25DaGVja2VyOjpm
dW5jdGlvblJlc3VsdCA9IHN0ZDo6bnVsbG9wdDsKKworICAgIGEgPSBGdW5jdGlvbkRlc3RydWN0
aW9uQ2hlY2tlcihhKTsKKyAgICBhID0gbnVsbHB0cjsKKyAgICBFWFBFQ1RfVFJVRShzdGF0aWNf
Y2FzdDxib29sPihGdW5jdGlvbkRlc3RydWN0aW9uQ2hlY2tlcjo6ZnVuY3Rpb25Bc0Jvb2wpKTsK
KyAgICBFWFBFQ1RfVFJVRShzdGF0aWNfY2FzdDxib29sPihGdW5jdGlvbkRlc3RydWN0aW9uQ2hl
Y2tlcjo6ZnVuY3Rpb25SZXN1bHQpKTsKKyAgICBFWFBFQ1RfRkFMU0UoRnVuY3Rpb25EZXN0cnVj
dGlvbkNoZWNrZXI6OmZ1bmN0aW9uQXNCb29sLnZhbHVlKCkpOworICAgIEVYUEVDVF9FUSgwVSwg
RnVuY3Rpb25EZXN0cnVjdGlvbkNoZWNrZXI6OmZ1bmN0aW9uUmVzdWx0LnZhbHVlKCkpOworICAg
IEZ1bmN0aW9uRGVzdHJ1Y3Rpb25DaGVja2VyOjpmdW5jdGlvbkFzQm9vbCA9IHN0ZDo6bnVsbG9w
dDsKKyAgICBGdW5jdGlvbkRlc3RydWN0aW9uQ2hlY2tlcjo6ZnVuY3Rpb25SZXN1bHQgPSBzdGQ6
Om51bGxvcHQ7CisKKyAgICBhID0gRnVuY3Rpb25EZXN0cnVjdGlvbkNoZWNrZXIoYSk7CisgICAg
YSA9IE1vdmVPbmx5IHsgMiB9OworICAgIEVYUEVDVF9UUlVFKHN0YXRpY19jYXN0PGJvb2w+KEZ1
bmN0aW9uRGVzdHJ1Y3Rpb25DaGVja2VyOjpmdW5jdGlvbkFzQm9vbCkpOworICAgIEVYUEVDVF9U
UlVFKHN0YXRpY19jYXN0PGJvb2w+KEZ1bmN0aW9uRGVzdHJ1Y3Rpb25DaGVja2VyOjpmdW5jdGlv
blJlc3VsdCkpOworICAgIEVYUEVDVF9UUlVFKEZ1bmN0aW9uRGVzdHJ1Y3Rpb25DaGVja2VyOjpm
dW5jdGlvbkFzQm9vbC52YWx1ZSgpKTsKKyAgICBFWFBFQ1RfRVEoMlUsIEZ1bmN0aW9uRGVzdHJ1
Y3Rpb25DaGVja2VyOjpmdW5jdGlvblJlc3VsdC52YWx1ZSgpKTsKKyAgICBGdW5jdGlvbkRlc3Ry
dWN0aW9uQ2hlY2tlcjo6ZnVuY3Rpb25Bc0Jvb2wgPSBzdGQ6Om51bGxvcHQ7CisgICAgRnVuY3Rp
b25EZXN0cnVjdGlvbkNoZWNrZXI6OmZ1bmN0aW9uUmVzdWx0ID0gc3RkOjpudWxsb3B0OwogfQor
Cit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9Nb3ZlT25seS5oIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvTW92ZU9ubHkuaAppbmRleCBjZWNjNDkxNTI1OGQ1NWJiNjkzYjM0YTdiMjljZTU3NjNhODkw
ZjRiLi4zZmYxZWEwM2I5MWRiZDRjOGMwMzcyMWE4MDEyOGRhY2UxNWNmY2NmIDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Nb3ZlT25seS5oCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL01vdmVPbmx5LmgKQEAgLTQ2LDYgKzQ2LDExIEBAIHB1Ymxp
YzoKICAgICAgICAgcmV0dXJuIG1fdmFsdWU7CiAgICAgfQogCisgICAgdW5zaWduZWQgb3BlcmF0
b3IoKSgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbV92YWx1ZTsKKyAgICB9CisKICAg
ICBNb3ZlT25seShNb3ZlT25seSYmIG90aGVyKQogICAgICAgICA6IG1fdmFsdWUob3RoZXIubV92
YWx1ZSkKICAgICB7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9S
ZWYuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvUmVmLmNwcAppbmRleCA4N2U1
Y2NhMDBiNzA5NTUyMTAzYWZiNTE4Nzc1N2NjYTQ3ODQyOWZhLi5hNWM3YmQxNTQxNjAzYmNkYmMy
OWJiN2E3ZDIxYTA0YzE2NDM1MzNkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9SZWYuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1JlZi5j
cHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtMjYsNyArMjYsNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogCiAjaW5jbHVkZSAiUmVmTG9n
Z2VyLmgiCi0jaW5jbHVkZSA8d3RmL1JlZi5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAog
bmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewpAQCAtMzYsMTggKzM1LDE4IEBAIFRFU1QoV1RGX1Jl
ZiwgQmFzaWMpCiAgICAgRGVyaXZlZFJlZkxvZ2dlciBhKCJhIik7CiAKICAgICB7Ci0gICAgICAg
IFJlZjxSZWZMb2dnZXI+IHB0cihhKTsKLSAgICAgICAgQVNTRVJUX0VRKCZhLCBwdHIucHRyKCkp
OwotICAgICAgICBBU1NFUlRfRVEoJmEubmFtZSwgJnB0ci0+bmFtZSk7CisgICAgICAgIFJlZjxS
ZWZMb2dnZXI+IHJlZihhKTsKKyAgICAgICAgRVhQRUNUX0VRKCZhLCByZWYucHRyKCkpOworICAg
ICAgICBFWFBFQ1RfRVEoJmEubmFtZSwgJnJlZi0+bmFtZSk7CiAgICAgfQotICAgIEFTU0VSVF9T
VFJFUSgicmVmKGEpIGRlcmVmKGEpICIsIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKKyAgICBFWFBF
Q1RfU1RSRVEoInJlZihhKSBkZXJlZihhKSAiLCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7CiAKICAg
ICB7Ci0gICAgICAgIFJlZjxSZWZMb2dnZXI+IHB0cihhZG9wdFJlZihhKSk7Ci0gICAgICAgIEFT
U0VSVF9FUSgmYSwgcHRyLnB0cigpKTsKLSAgICAgICAgQVNTRVJUX0VRKCZhLm5hbWUsICZwdHIt
Pm5hbWUpOworICAgICAgICBSZWY8UmVmTG9nZ2VyPiByZWYoYWRvcHRSZWYoYSkpOworICAgICAg
ICBFWFBFQ1RfRVEoJmEsIHJlZi5wdHIoKSk7CisgICAgICAgIEVYUEVDVF9FUSgmYS5uYW1lLCAm
cmVmLT5uYW1lKTsKICAgICB9Ci0gICAgQVNTRVJUX1NUUkVRKCJkZXJlZihhKSAiLCB0YWtlTG9n
U3RyKCkuY19zdHIoKSk7CisgICAgRVhQRUNUX1NUUkVRKCJkZXJlZihhKSAiLCB0YWtlTG9nU3Ry
KCkuY19zdHIoKSk7CiB9CiAKIFRFU1QoV1RGX1JlZiwgQXNzaWdubWVudCkKQEAgLTU3LDQ0ICs1
Niw0NCBAQCBURVNUKFdURl9SZWYsIEFzc2lnbm1lbnQpCiAgICAgRGVyaXZlZFJlZkxvZ2dlciBj
KCJjIik7CiAKICAgICB7Ci0gICAgICAgIFJlZjxSZWZMb2dnZXI+IHB0cihhKTsKLSAgICAgICAg
QVNTRVJUX0VRKCZhLCBwdHIucHRyKCkpOworICAgICAgICBSZWY8UmVmTG9nZ2VyPiByZWYoYSk7
CisgICAgICAgIEVYUEVDVF9FUSgmYSwgcmVmLnB0cigpKTsKICAgICAgICAgbG9nKCkgPDwgInwg
IjsKLSAgICAgICAgcHRyID0gYjsKLSAgICAgICAgQVNTRVJUX0VRKCZiLCBwdHIucHRyKCkpOwor
ICAgICAgICByZWYgPSBiOworICAgICAgICBFWFBFQ1RfRVEoJmIsIHJlZi5wdHIoKSk7CiAgICAg
ICAgIGxvZygpIDw8ICJ8ICI7CiAgICAgfQotICAgIEFTU0VSVF9TVFJFUSgicmVmKGEpIHwgcmVm
KGIpIGRlcmVmKGEpIHwgZGVyZWYoYikgIiwgdGFrZUxvZ1N0cigpLmNfc3RyKCkpOworICAgIEVY
UEVDVF9TVFJFUSgicmVmKGEpIHwgcmVmKGIpIGRlcmVmKGEpIHwgZGVyZWYoYikgIiwgdGFrZUxv
Z1N0cigpLmNfc3RyKCkpOwogCiAgICAgewotICAgICAgICBSZWY8UmVmTG9nZ2VyPiBwdHIoYSk7
Ci0gICAgICAgIEFTU0VSVF9FUSgmYSwgcHRyLnB0cigpKTsKKyAgICAgICAgUmVmPFJlZkxvZ2dl
cj4gcmVmKGEpOworICAgICAgICBFWFBFQ1RfRVEoJmEsIHJlZi5wdHIoKSk7CiAgICAgICAgIGxv
ZygpIDw8ICJ8ICI7Ci0gICAgICAgIHB0ciA9IGM7Ci0gICAgICAgIEFTU0VSVF9FUSgmYywgcHRy
LnB0cigpKTsKKyAgICAgICAgcmVmID0gYzsKKyAgICAgICAgRVhQRUNUX0VRKCZjLCByZWYucHRy
KCkpOwogICAgICAgICBsb2coKSA8PCAifCAiOwogICAgIH0KLSAgICBBU1NFUlRfU1RSRVEoInJl
ZihhKSB8IHJlZihjKSBkZXJlZihhKSB8IGRlcmVmKGMpICIsIHRha2VMb2dTdHIoKS5jX3N0cigp
KTsKKyAgICBFWFBFQ1RfU1RSRVEoInJlZihhKSB8IHJlZihjKSBkZXJlZihhKSB8IGRlcmVmKGMp
ICIsIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKIAogICAgIHsKLSAgICAgICAgUmVmPFJlZkxvZ2dl
cj4gcHRyKGEpOwotICAgICAgICBBU1NFUlRfRVEoJmEsIHB0ci5wdHIoKSk7CisgICAgICAgIFJl
ZjxSZWZMb2dnZXI+IHJlZihhKTsKKyAgICAgICAgRVhQRUNUX0VRKCZhLCByZWYucHRyKCkpOwog
ICAgICAgICBsb2coKSA8PCAifCAiOwotICAgICAgICBwdHIgPSBhZG9wdFJlZihiKTsKLSAgICAg
ICAgQVNTRVJUX0VRKCZiLCBwdHIucHRyKCkpOworICAgICAgICByZWYgPSBhZG9wdFJlZihiKTsK
KyAgICAgICAgRVhQRUNUX0VRKCZiLCByZWYucHRyKCkpOwogICAgICAgICBsb2coKSA8PCAifCAi
OwogICAgIH0KLSAgICBBU1NFUlRfU1RSRVEoInJlZihhKSB8IGRlcmVmKGEpIHwgZGVyZWYoYikg
IiwgdGFrZUxvZ1N0cigpLmNfc3RyKCkpOworICAgIEVYUEVDVF9TVFJFUSgicmVmKGEpIHwgZGVy
ZWYoYSkgfCBkZXJlZihiKSAiLCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7CiAKICAgICB7Ci0gICAg
ICAgIFJlZjxSZWZMb2dnZXI+IHB0cihhKTsKLSAgICAgICAgQVNTRVJUX0VRKCZhLCBwdHIucHRy
KCkpOworICAgICAgICBSZWY8UmVmTG9nZ2VyPiByZWYoYSk7CisgICAgICAgIEVYUEVDVF9FUSgm
YSwgcmVmLnB0cigpKTsKICAgICAgICAgbG9nKCkgPDwgInwgIjsKLSAgICAgICAgcHRyID0gYWRv
cHRSZWYoYyk7Ci0gICAgICAgIEFTU0VSVF9FUSgmYywgcHRyLnB0cigpKTsKKyAgICAgICAgcmVm
ID0gYWRvcHRSZWYoYyk7CisgICAgICAgIEVYUEVDVF9FUSgmYywgcmVmLnB0cigpKTsKICAgICAg
ICAgbG9nKCkgPDwgInwgIjsKICAgICB9Ci0gICAgQVNTRVJUX1NUUkVRKCJyZWYoYSkgfCBkZXJl
ZihhKSB8IGRlcmVmKGMpICIsIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKKyAgICBFWFBFQ1RfU1RS
RVEoInJlZihhKSB8IGRlcmVmKGEpIHwgZGVyZWYoYykgIiwgdGFrZUxvZ1N0cigpLmNfc3RyKCkp
OwogfQogCiBzdGF0aWMgUmVmPFJlZkxvZ2dlcj4gcGFzc1dpdGhSZWYoUmVmPFJlZkxvZ2dlcj4m
JiByZWZlcmVuY2UpCkBAIC0xMDksNDIgKzEwOCwxNjggQEAgVEVTVChXVEZfUmVmLCBSZXR1cm5W
YWx1ZSkKICAgICBEZXJpdmVkUmVmTG9nZ2VyIGMoImMiKTsKIAogICAgIHsKLSAgICAgICAgUmVm
PFJlZkxvZ2dlcj4gcHRyKHBhc3NXaXRoUmVmKFJlZjxSZWZMb2dnZXI+KGEpKSk7Ci0gICAgICAg
IEFTU0VSVF9FUSgmYSwgcHRyLnB0cigpKTsKKyAgICAgICAgUmVmPFJlZkxvZ2dlcj4gcmVmKHBh
c3NXaXRoUmVmKFJlZjxSZWZMb2dnZXI+KGEpKSk7CisgICAgICAgIEVYUEVDVF9FUSgmYSwgcmVm
LnB0cigpKTsKICAgICB9Ci0gICAgQVNTRVJUX1NUUkVRKCJyZWYoYSkgZGVyZWYoYSkgIiwgdGFr
ZUxvZ1N0cigpLmNfc3RyKCkpOworICAgIEVYUEVDVF9TVFJFUSgicmVmKGEpIGRlcmVmKGEpICIs
IHRha2VMb2dTdHIoKS5jX3N0cigpKTsKIAogICAgIHsKLSAgICAgICAgUmVmPFJlZkxvZ2dlcj4g
cHRyKGEpOwotICAgICAgICBBU1NFUlRfRVEoJmEsIHB0ci5wdHIoKSk7CisgICAgICAgIFJlZjxS
ZWZMb2dnZXI+IHJlZihhKTsKKyAgICAgICAgRVhQRUNUX0VRKCZhLCByZWYucHRyKCkpOwogICAg
ICAgICBsb2coKSA8PCAifCAiOwotICAgICAgICBwdHIgPSBwYXNzV2l0aFJlZihiKTsKLSAgICAg
ICAgQVNTRVJUX0VRKCZiLCBwdHIucHRyKCkpOworICAgICAgICByZWYgPSBwYXNzV2l0aFJlZihi
KTsKKyAgICAgICAgRVhQRUNUX0VRKCZiLCByZWYucHRyKCkpOwogICAgICAgICBsb2coKSA8PCAi
fCAiOwogICAgIH0KLSAgICBBU1NFUlRfU1RSRVEoInJlZihhKSB8IHJlZihiKSBkZXJlZihhKSB8
IGRlcmVmKGIpICIsIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKKyAgICBFWFBFQ1RfU1RSRVEoInJl
ZihhKSB8IHJlZihiKSBkZXJlZihhKSB8IGRlcmVmKGIpICIsIHRha2VMb2dTdHIoKS5jX3N0cigp
KTsKIAogICAgIHsKICAgICAgICAgUmVmUHRyPFJlZkxvZ2dlcj4gcHRyKHBhc3NXaXRoUmVmKGEp
KTsKLSAgICAgICAgQVNTRVJUX0VRKCZhLCBwdHIuZ2V0KCkpOworICAgICAgICBFWFBFQ1RfRVEo
JmEsIHB0ci5nZXQoKSk7CiAgICAgfQotICAgIEFTU0VSVF9TVFJFUSgicmVmKGEpIGRlcmVmKGEp
ICIsIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKKyAgICBFWFBFQ1RfU1RSRVEoInJlZihhKSBkZXJl
ZihhKSAiLCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7CiAKICAgICB7CiAgICAgICAgIFJlZlB0cjxE
ZXJpdmVkUmVmTG9nZ2VyPiBwdHIoJmEpOwogICAgICAgICBSZWZQdHI8UmVmTG9nZ2VyPiBwdHIy
KFdURk1vdmUocHRyKSk7Ci0gICAgICAgIEFTU0VSVF9FUShudWxscHRyLCBwdHIuZ2V0KCkpOwot
ICAgICAgICBBU1NFUlRfRVEoJmEsIHB0cjIuZ2V0KCkpOworICAgICAgICBFWFBFQ1RfRVEobnVs
bHB0ciwgcHRyLmdldCgpKTsKKyAgICAgICAgRVhQRUNUX0VRKCZhLCBwdHIyLmdldCgpKTsKICAg
ICB9Ci0gICAgQVNTRVJUX1NUUkVRKCJyZWYoYSkgZGVyZWYoYSkgIiwgdGFrZUxvZ1N0cigpLmNf
c3RyKCkpOworICAgIEVYUEVDVF9TVFJFUSgicmVmKGEpIGRlcmVmKGEpICIsIHRha2VMb2dTdHIo
KS5jX3N0cigpKTsKIAogICAgIHsKICAgICAgICAgUmVmPERlcml2ZWRSZWZMb2dnZXI+IGRlcml2
ZWRSZWZlcmVuY2UoYSk7CiAgICAgICAgIFJlZjxSZWZMb2dnZXI+IGJhc2VSZWZlcmVuY2UocGFz
c1dpdGhSZWYoZGVyaXZlZFJlZmVyZW5jZS5jb3B5UmVmKCkpKTsKLSAgICAgICAgQVNTRVJUX0VR
KCZhLCBkZXJpdmVkUmVmZXJlbmNlLnB0cigpKTsKLSAgICAgICAgQVNTRVJUX0VRKCZhLCBiYXNl
UmVmZXJlbmNlLnB0cigpKTsKKyAgICAgICAgRVhQRUNUX0VRKCZhLCBkZXJpdmVkUmVmZXJlbmNl
LnB0cigpKTsKKyAgICAgICAgRVhQRUNUX0VRKCZhLCBiYXNlUmVmZXJlbmNlLnB0cigpKTsKICAg
ICB9Ci0gICAgQVNTRVJUX1NUUkVRKCJyZWYoYSkgcmVmKGEpIGRlcmVmKGEpIGRlcmVmKGEpICIs
IHRha2VMb2dTdHIoKS5jX3N0cigpKTsKKyAgICBFWFBFQ1RfU1RSRVEoInJlZihhKSByZWYoYSkg
ZGVyZWYoYSkgZGVyZWYoYSkgIiwgdGFrZUxvZ1N0cigpLmNfc3RyKCkpOworfQorCitURVNUKFdU
Rl9SZWYsIFN3YXApCit7CisgICAgUmVmTG9nZ2VyIGEoImEiKTsKKyAgICBSZWZMb2dnZXIgYigi
YiIpOworCisgICAgeworICAgICAgICBSZWY8UmVmTG9nZ2VyPiBwMShhKTsKKyAgICAgICAgUmVm
PFJlZkxvZ2dlcj4gcDIoYik7CisgICAgICAgIGxvZygpIDw8ICJ8ICI7CisgICAgICAgIEVYUEVD
VF9FUSgmYSwgcDEucHRyKCkpOworICAgICAgICBFWFBFQ1RfRVEoJmIsIHAyLnB0cigpKTsKKyAg
ICAgICAgcDEuc3dhcChwMik7CisgICAgICAgIEVYUEVDVF9FUSgmYiwgcDEucHRyKCkpOworICAg
ICAgICBFWFBFQ1RfRVEoJmEsIHAyLnB0cigpKTsKKyAgICAgICAgbG9nKCkgPDwgInwgIjsKKyAg
ICB9CisgICAgRVhQRUNUX1NUUkVRKCJyZWYoYSkgcmVmKGIpIHwgfCBkZXJlZihhKSBkZXJlZihi
KSAiLCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7CisKKyAgICB7CisgICAgICAgIFJlZjxSZWZMb2dn
ZXI+IHAxKGEpOworICAgICAgICBSZWY8UmVmTG9nZ2VyPiBwMihiKTsKKyAgICAgICAgbG9nKCkg
PDwgInwgIjsKKyAgICAgICAgRVhQRUNUX0VRKCZhLCBwMS5wdHIoKSk7CisgICAgICAgIEVYUEVD
VF9FUSgmYiwgcDIucHRyKCkpOworICAgICAgICBzdGQ6OnN3YXAocDEsIHAyKTsKKyAgICAgICAg
RVhQRUNUX0VRKCZiLCBwMS5wdHIoKSk7CisgICAgICAgIEVYUEVDVF9FUSgmYSwgcDIucHRyKCkp
OworICAgICAgICBsb2coKSA8PCAifCAiOworICAgIH0KKyAgICBFWFBFQ1RfU1RSRVEoInJlZihh
KSByZWYoYikgfCB8IGRlcmVmKGEpIGRlcmVmKGIpICIsIHRha2VMb2dTdHIoKS5jX3N0cigpKTsK
K30KKworc3RydWN0IFJlZkNoZWNraW5nUmVmTG9nZ2VyIDogUmVmTG9nZ2VyIHsKKyAgICBSZWZD
aGVja2luZ1JlZkxvZ2dlcihjb25zdCBjaGFyKiBuYW1lKTsKKyAgICB2b2lkIHJlZigpOworICAg
IHZvaWQgZGVyZWYoKTsKKyAgICBjb25zdCBSZWY8UmVmQ2hlY2tpbmdSZWZMb2dnZXI+KiBzbG90
VG9DaGVjayB7IG51bGxwdHIgfTsKK307CisKK3N0cnVjdCBEZXJpdmVkUmVmQ2hlY2tpbmdSZWZM
b2dnZXIgOiBSZWZDaGVja2luZ1JlZkxvZ2dlciB7CisgICAgRGVyaXZlZFJlZkNoZWNraW5nUmVm
TG9nZ2VyKGNvbnN0IGNoYXIqIG5hbWUpOworfTsKKworUmVmQ2hlY2tpbmdSZWZMb2dnZXI6OlJl
ZkNoZWNraW5nUmVmTG9nZ2VyKGNvbnN0IGNoYXIqIG5hbWUpCisgICAgOiBSZWZMb2dnZXIgeyBu
YW1lIH0KK3sKK30KKwordm9pZCBSZWZDaGVja2luZ1JlZkxvZ2dlcjo6cmVmKCkKK3sKKyAgICBp
ZiAoc2xvdFRvQ2hlY2spCisgICAgICAgIGxvZygpIDw8ICJzbG90PSIgPDwgc2xvdFRvQ2hlY2st
PmdldCgpLm5hbWUgPDwgIiAiOworICAgIFJlZkxvZ2dlcjo6cmVmKCk7Cit9CisKK3ZvaWQgUmVm
Q2hlY2tpbmdSZWZMb2dnZXI6OmRlcmVmKCkKK3sKKyAgICBpZiAoc2xvdFRvQ2hlY2spCisgICAg
ICAgIGxvZygpIDw8ICJzbG90PSIgPDwgc2xvdFRvQ2hlY2stPmdldCgpLm5hbWUgPDwgIiAiOwor
ICAgIFJlZkxvZ2dlcjo6ZGVyZWYoKTsKK30KKworRGVyaXZlZFJlZkNoZWNraW5nUmVmTG9nZ2Vy
OjpEZXJpdmVkUmVmQ2hlY2tpbmdSZWZMb2dnZXIoY29uc3QgY2hhciogbmFtZSkKKyAgICA6IFJl
ZkNoZWNraW5nUmVmTG9nZ2VyIHsgbmFtZSB9Cit7Cit9CisKK1RFU1QoV1RGX1JlZiwgQXNzaWdu
QmVmb3JlRGVyZWYpCit7CisgICAgRGVyaXZlZFJlZkNoZWNraW5nUmVmTG9nZ2VyIGEoImEiKTsK
KyAgICBSZWZDaGVja2luZ1JlZkxvZ2dlciBiKCJiIik7CisgICAgRGVyaXZlZFJlZkNoZWNraW5n
UmVmTG9nZ2VyIGMoImMiKTsKKworICAgIHsKKyAgICAgICAgUmVmPFJlZkNoZWNraW5nUmVmTG9n
Z2VyPiByZWYoYSk7CisgICAgICAgIEVYUEVDVF9FUSgmYSwgcmVmLnB0cigpKTsKKyAgICAgICAg
bG9nKCkgPDwgInwgIjsKKyAgICAgICAgYS5zbG90VG9DaGVjayA9ICZyZWY7CisgICAgICAgIGIu
c2xvdFRvQ2hlY2sgPSAmcmVmOworICAgICAgICByZWYgPSBiOworICAgICAgICBhLnNsb3RUb0No
ZWNrID0gbnVsbHB0cjsKKyAgICAgICAgYi5zbG90VG9DaGVjayA9IG51bGxwdHI7CisgICAgICAg
IEVYUEVDVF9FUSgmYiwgcmVmLnB0cigpKTsKKyAgICAgICAgbG9nKCkgPDwgInwgIjsKKyAgICB9
CisgICAgRVhQRUNUX1NUUkVRKCJyZWYoYSkgfCBzbG90PWEgcmVmKGIpIHNsb3Q9YiBkZXJlZihh
KSB8IGRlcmVmKGIpICIsIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKKworICAgIHsKKyAgICAgICAg
UmVmPFJlZkNoZWNraW5nUmVmTG9nZ2VyPiByZWYoYSk7CisgICAgICAgIEVYUEVDVF9FUSgmYSwg
cmVmLnB0cigpKTsKKyAgICAgICAgbG9nKCkgPDwgInwgIjsKKyAgICAgICAgYS5zbG90VG9DaGVj
ayA9ICZyZWY7CisgICAgICAgIGMuc2xvdFRvQ2hlY2sgPSAmcmVmOworICAgICAgICByZWYgPSBj
OworICAgICAgICBhLnNsb3RUb0NoZWNrID0gbnVsbHB0cjsKKyAgICAgICAgYy5zbG90VG9DaGVj
ayA9IG51bGxwdHI7CisgICAgICAgIEVYUEVDVF9FUSgmYywgcmVmLnB0cigpKTsKKyAgICAgICAg
bG9nKCkgPDwgInwgIjsKKyAgICB9CisgICAgRVhQRUNUX1NUUkVRKCJyZWYoYSkgfCBzbG90PWEg
cmVmKGMpIHNsb3Q9YyBkZXJlZihhKSB8IGRlcmVmKGMpICIsIHRha2VMb2dTdHIoKS5jX3N0cigp
KTsKKworICAgIHsKKyAgICAgICAgUmVmPFJlZkNoZWNraW5nUmVmTG9nZ2VyPiByZWYoYSk7Cisg
ICAgICAgIEVYUEVDVF9FUSgmYSwgcmVmLnB0cigpKTsKKyAgICAgICAgbG9nKCkgPDwgInwgIjsK
KyAgICAgICAgYS5zbG90VG9DaGVjayA9ICZyZWY7CisgICAgICAgIHJlZiA9IGFkb3B0UmVmKGIp
OworICAgICAgICBhLnNsb3RUb0NoZWNrID0gbnVsbHB0cjsKKyAgICAgICAgRVhQRUNUX0VRKCZi
LCByZWYucHRyKCkpOworICAgICAgICBsb2coKSA8PCAifCAiOworICAgIH0KKyAgICBFWFBFQ1Rf
U1RSRVEoInJlZihhKSB8IHNsb3Q9YiBkZXJlZihhKSB8IGRlcmVmKGIpICIsIHRha2VMb2dTdHIo
KS5jX3N0cigpKTsKKworICAgIHsKKyAgICAgICAgUmVmPFJlZkNoZWNraW5nUmVmTG9nZ2VyPiBy
ZWYoYSk7CisgICAgICAgIEVYUEVDVF9FUSgmYSwgcmVmLnB0cigpKTsKKyAgICAgICAgbG9nKCkg
PDwgInwgIjsKKyAgICAgICAgYS5zbG90VG9DaGVjayA9ICZyZWY7CisgICAgICAgIHJlZiA9IGFk
b3B0UmVmKGMpOworICAgICAgICBhLnNsb3RUb0NoZWNrID0gbnVsbHB0cjsKKyAgICAgICAgRVhQ
RUNUX0VRKCZjLCByZWYucHRyKCkpOworICAgICAgICBsb2coKSA8PCAifCAiOworICAgIH0KKyAg
ICBFWFBFQ1RfU1RSRVEoInJlZihhKSB8IHNsb3Q9YyBkZXJlZihhKSB8IGRlcmVmKGMpICIsIHRh
a2VMb2dTdHIoKS5jX3N0cigpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvUmVmTG9nZ2VyLmNwcCBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1JlZkxvZ2dlci5jcHAKaW5kZXggZjQ2OGEz
MTJjN2MwY2M0MjA5NmVjYWYwYjQ1OWYwOTAxODg2Y2EwNS4uN2YxNjVmMjQyYzRhMmI5MzZhNGQ1
NDNmMGU1YmYyNDJlMGI1MDgxNSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvUmVmTG9nZ2VyLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9S
ZWZMb2dnZXIuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMywg
MjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTMtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTM0LDQgKzM0LDMxIEBAIHN0ZDo6b3N0cmluZ3N0cmVhbSYgbG9n
KCkKICAgICByZXR1cm4gbG9nOwogfQogCitzdGQ6OnN0cmluZyB0YWtlTG9nU3RyKCkKK3sKKyAg
ICBzdGQ6OnN0cmluZyBzdHJpbmcgPSBsb2coKS5zdHIoKTsKKyAgICBsb2coKS5zdHIoIiIpOwor
ICAgIHJldHVybiBzdHJpbmc7Cit9CisKK1JlZkxvZ2dlcjo6UmVmTG9nZ2VyKGNvbnN0IGNoYXIq
IG5hbWUpCisgICAgOiBuYW1lIHsgKm5hbWUgfQoreworfQorCit2b2lkIFJlZkxvZ2dlcjo6cmVm
KCkKK3sKKyAgICBsb2coKSA8PCAicmVmKCIgPDwgJm5hbWUgPDwgIikgIjsKK30KKwordm9pZCBS
ZWZMb2dnZXI6OmRlcmVmKCkKK3sKKyAgICBsb2coKSA8PCAiZGVyZWYoIiA8PCAmbmFtZSA8PCAi
KSAiOworfQorCitEZXJpdmVkUmVmTG9nZ2VyOjpEZXJpdmVkUmVmTG9nZ2VyKGNvbnN0IGNoYXIq
IG5hbWUpCisgICAgOiBSZWZMb2dnZXIgeyBuYW1lIH0KK3sKK30KKwogfQpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvUmVmTG9nZ2VyLmggYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9SZWZMb2dnZXIuaAppbmRleCAwMjU0N2RmZWNkMWJmMDVjNTk3YzBl
Yzg0YmQwYTJhNjQ0YzgyOTRhLi43MjY2Y2JlNjk0ZjdhYmJkNmVkZjlmMWZlNmU3YTA2OGYzMjcw
ZTE2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9SZWZMb2dnZXIu
aAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9SZWZMb2dnZXIuaApAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0y
MywzMCArMjMsMjMgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwog
Ci0jaWZuZGVmIFJlZkxvZ2dlcl9oCisjcHJhZ21hIG9uY2UKIAogbmFtZXNwYWNlIFRlc3RXZWJL
aXRBUEkgewogCiBzdGQ6Om9zdHJpbmdzdHJlYW0mIGxvZygpOwogCi1pbmxpbmUgc3RkOjpzdHJp
bmcgdGFrZUxvZ1N0cigpCi17Ci0gICAgc3RkOjpzdHJpbmcgc3RyaW5nID0gbG9nKCkuc3RyKCk7
Ci0gICAgbG9nKCkuc3RyKCIiKTsKLSAgICByZXR1cm4gc3RyaW5nOwotfQorc3RkOjpzdHJpbmcg
dGFrZUxvZ1N0cigpOwogCiBzdHJ1Y3QgUmVmTG9nZ2VyIHsKLSAgICBSZWZMb2dnZXIoY29uc3Qg
Y2hhciogbmFtZSkgOiBuYW1lKCpuYW1lKSB7IH0KLSAgICB2b2lkIHJlZigpIHsgbG9nKCkgPDwg
InJlZigiIDw8ICZuYW1lIDw8ICIpICI7IH0KLSAgICB2b2lkIGRlcmVmKCkgeyBsb2coKSA8PCAi
ZGVyZWYoIiA8PCAmbmFtZSA8PCAiKSAiOyB9CisgICAgUmVmTG9nZ2VyKGNvbnN0IGNoYXIqIG5h
bWUpOworICAgIHZvaWQgcmVmKCk7CisgICAgdm9pZCBkZXJlZigpOwogICAgIGNvbnN0IGNoYXIm
IG5hbWU7CiB9OwogCiBzdHJ1Y3QgRGVyaXZlZFJlZkxvZ2dlciA6IFJlZkxvZ2dlciB7Ci0gICAg
RGVyaXZlZFJlZkxvZ2dlcihjb25zdCBjaGFyKiBuYW1lKSA6IFJlZkxvZ2dlcihuYW1lKSB7IGxv
ZygpLnN0cigiIik7IH0KKyAgICBEZXJpdmVkUmVmTG9nZ2VyKGNvbnN0IGNoYXIqIG5hbWUpOwog
fTsKIAogfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL1JlZlB0ci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9SZWZQdHIuY3Bw
CmluZGV4IDk1Zjk3ZDhkYTc5ZGExZjdiMmRmMDEyODUyZTJjMTkxZDc3MjEyZWEuLmEwOTRkNzJl
ZWI2YTA5Nzg5NWYzZTM2MmI4NzdkMmE1ZTVhNzI0MDcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL1JlZlB0ci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvUmVmUHRyLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDEzLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0zNyw3NyArMzcsNzcgQEAgVEVTVChXVEZfUmVmUHRyLCBCYXNp
YykKICAgICBEZXJpdmVkUmVmTG9nZ2VyIGEoImEiKTsKIAogICAgIFJlZlB0cjxSZWZMb2dnZXI+
IGVtcHR5OwotICAgIEFTU0VSVF9FUShudWxscHRyLCBlbXB0eS5nZXQoKSk7CisgICAgRVhQRUNU
X0VRKG51bGxwdHIsIGVtcHR5LmdldCgpKTsKIAogICAgIHsKICAgICAgICAgUmVmUHRyPFJlZkxv
Z2dlcj4gcHRyKCZhKTsKLSAgICAgICAgQVNTRVJUX0VRKCZhLCBwdHIuZ2V0KCkpOwotICAgICAg
ICBBU1NFUlRfRVEoJmEsICYqcHRyKTsKLSAgICAgICAgQVNTRVJUX0VRKCZhLm5hbWUsICZwdHIt
Pm5hbWUpOworICAgICAgICBFWFBFQ1RfRVEoJmEsIHB0ci5nZXQoKSk7CisgICAgICAgIEVYUEVD
VF9FUSgmYSwgJipwdHIpOworICAgICAgICBFWFBFQ1RfRVEoJmEubmFtZSwgJnB0ci0+bmFtZSk7
CiAgICAgfQotICAgIEFTU0VSVF9TVFJFUSgicmVmKGEpIGRlcmVmKGEpICIsIHRha2VMb2dTdHIo
KS5jX3N0cigpKTsKKyAgICBFWFBFQ1RfU1RSRVEoInJlZihhKSBkZXJlZihhKSAiLCB0YWtlTG9n
U3RyKCkuY19zdHIoKSk7CiAKICAgICB7CiAgICAgICAgIFJlZlB0cjxSZWZMb2dnZXI+IHB0ciA9
ICZhOwotICAgICAgICBBU1NFUlRfRVEoJmEsIHB0ci5nZXQoKSk7CisgICAgICAgIEVYUEVDVF9F
USgmYSwgcHRyLmdldCgpKTsKICAgICB9Ci0gICAgQVNTRVJUX1NUUkVRKCJyZWYoYSkgZGVyZWYo
YSkgIiwgdGFrZUxvZ1N0cigpLmNfc3RyKCkpOworICAgIEVYUEVDVF9TVFJFUSgicmVmKGEpIGRl
cmVmKGEpICIsIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKIAogICAgIHsKICAgICAgICAgUmVmUHRy
PFJlZkxvZ2dlcj4gcDEgPSAmYTsKICAgICAgICAgUmVmUHRyPFJlZkxvZ2dlcj4gcDIocDEpOwot
ICAgICAgICBBU1NFUlRfRVEoJmEsIHAxLmdldCgpKTsKLSAgICAgICAgQVNTRVJUX0VRKCZhLCBw
Mi5nZXQoKSk7CisgICAgICAgIEVYUEVDVF9FUSgmYSwgcDEuZ2V0KCkpOworICAgICAgICBFWFBF
Q1RfRVEoJmEsIHAyLmdldCgpKTsKICAgICB9Ci0gICAgQVNTRVJUX1NUUkVRKCJyZWYoYSkgcmVm
KGEpIGRlcmVmKGEpIGRlcmVmKGEpICIsIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKKyAgICBFWFBF
Q1RfU1RSRVEoInJlZihhKSByZWYoYSkgZGVyZWYoYSkgZGVyZWYoYSkgIiwgdGFrZUxvZ1N0cigp
LmNfc3RyKCkpOwogCiAgICAgewogICAgICAgICBSZWZQdHI8UmVmTG9nZ2VyPiBwMSA9ICZhOwog
ICAgICAgICBSZWZQdHI8UmVmTG9nZ2VyPiBwMiA9IHAxOwotICAgICAgICBBU1NFUlRfRVEoJmEs
IHAxLmdldCgpKTsKLSAgICAgICAgQVNTRVJUX0VRKCZhLCBwMi5nZXQoKSk7CisgICAgICAgIEVY
UEVDVF9FUSgmYSwgcDEuZ2V0KCkpOworICAgICAgICBFWFBFQ1RfRVEoJmEsIHAyLmdldCgpKTsK
ICAgICB9Ci0gICAgQVNTRVJUX1NUUkVRKCJyZWYoYSkgcmVmKGEpIGRlcmVmKGEpIGRlcmVmKGEp
ICIsIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKKyAgICBFWFBFQ1RfU1RSRVEoInJlZihhKSByZWYo
YSkgZGVyZWYoYSkgZGVyZWYoYSkgIiwgdGFrZUxvZ1N0cigpLmNfc3RyKCkpOwogCiAgICAgewog
ICAgICAgICBSZWZQdHI8UmVmTG9nZ2VyPiBwMSA9ICZhOwogICAgICAgICBSZWZQdHI8UmVmTG9n
Z2VyPiBwMiA9IFdURk1vdmUocDEpOwotICAgICAgICBBU1NFUlRfRVEobnVsbHB0ciwgcDEuZ2V0
KCkpOwotICAgICAgICBBU1NFUlRfRVEoJmEsIHAyLmdldCgpKTsKKyAgICAgICAgRVhQRUNUX0VR
KG51bGxwdHIsIHAxLmdldCgpKTsKKyAgICAgICAgRVhQRUNUX0VRKCZhLCBwMi5nZXQoKSk7CiAg
ICAgfQotICAgIEFTU0VSVF9TVFJFUSgicmVmKGEpIGRlcmVmKGEpICIsIHRha2VMb2dTdHIoKS5j
X3N0cigpKTsKKyAgICBFWFBFQ1RfU1RSRVEoInJlZihhKSBkZXJlZihhKSAiLCB0YWtlTG9nU3Ry
KCkuY19zdHIoKSk7CiAKICAgICB7CiAgICAgICAgIFJlZlB0cjxSZWZMb2dnZXI+IHAxID0gJmE7
CiAgICAgICAgIFJlZlB0cjxSZWZMb2dnZXI+IHAyKFdURk1vdmUocDEpKTsKLSAgICAgICAgQVNT
RVJUX0VRKG51bGxwdHIsIHAxLmdldCgpKTsKLSAgICAgICAgQVNTRVJUX0VRKCZhLCBwMi5nZXQo
KSk7CisgICAgICAgIEVYUEVDVF9FUShudWxscHRyLCBwMS5nZXQoKSk7CisgICAgICAgIEVYUEVD
VF9FUSgmYSwgcDIuZ2V0KCkpOwogICAgIH0KLSAgICBBU1NFUlRfU1RSRVEoInJlZihhKSBkZXJl
ZihhKSAiLCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7CisgICAgRVhQRUNUX1NUUkVRKCJyZWYoYSkg
ZGVyZWYoYSkgIiwgdGFrZUxvZ1N0cigpLmNfc3RyKCkpOwogCiAgICAgewogICAgICAgICBSZWZQ
dHI8RGVyaXZlZFJlZkxvZ2dlcj4gcDEgPSAmYTsKICAgICAgICAgUmVmUHRyPFJlZkxvZ2dlcj4g
cDIgPSBwMTsKLSAgICAgICAgQVNTRVJUX0VRKCZhLCBwMS5nZXQoKSk7Ci0gICAgICAgIEFTU0VS
VF9FUSgmYSwgcDIuZ2V0KCkpOworICAgICAgICBFWFBFQ1RfRVEoJmEsIHAxLmdldCgpKTsKKyAg
ICAgICAgRVhQRUNUX0VRKCZhLCBwMi5nZXQoKSk7CiAgICAgfQotICAgIEFTU0VSVF9TVFJFUSgi
cmVmKGEpIHJlZihhKSBkZXJlZihhKSBkZXJlZihhKSAiLCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7
CisgICAgRVhQRUNUX1NUUkVRKCJyZWYoYSkgcmVmKGEpIGRlcmVmKGEpIGRlcmVmKGEpICIsIHRh
a2VMb2dTdHIoKS5jX3N0cigpKTsKIAogICAgIHsKICAgICAgICAgUmVmUHRyPERlcml2ZWRSZWZM
b2dnZXI+IHAxID0gJmE7CiAgICAgICAgIFJlZlB0cjxSZWZMb2dnZXI+IHAyID0gV1RGTW92ZShw
MSk7Ci0gICAgICAgIEFTU0VSVF9FUShudWxscHRyLCBwMS5nZXQoKSk7Ci0gICAgICAgIEFTU0VS
VF9FUSgmYSwgcDIuZ2V0KCkpOworICAgICAgICBFWFBFQ1RfRVEobnVsbHB0ciwgcDEuZ2V0KCkp
OworICAgICAgICBFWFBFQ1RfRVEoJmEsIHAyLmdldCgpKTsKICAgICB9Ci0gICAgQVNTRVJUX1NU
UkVRKCJyZWYoYSkgZGVyZWYoYSkgIiwgdGFrZUxvZ1N0cigpLmNfc3RyKCkpOworICAgIEVYUEVD
VF9TVFJFUSgicmVmKGEpIGRlcmVmKGEpICIsIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKIAogICAg
IHsKICAgICAgICAgUmVmUHRyPFJlZkxvZ2dlcj4gcHRyKCZhKTsKLSAgICAgICAgQVNTRVJUX0VR
KCZhLCBwdHIuZ2V0KCkpOworICAgICAgICBFWFBFQ1RfRVEoJmEsIHB0ci5nZXQoKSk7CiAgICAg
ICAgIHB0ciA9IG51bGxwdHI7Ci0gICAgICAgIEFTU0VSVF9FUShudWxscHRyLCBwdHIuZ2V0KCkp
OworICAgICAgICBFWFBFQ1RfRVEobnVsbHB0ciwgcHRyLmdldCgpKTsKICAgICB9Ci0gICAgQVNT
RVJUX1NUUkVRKCJyZWYoYSkgZGVyZWYoYSkgIiwgdGFrZUxvZ1N0cigpLmNfc3RyKCkpOworICAg
IEVYUEVDVF9TVFJFUSgicmVmKGEpIGRlcmVmKGEpICIsIHRha2VMb2dTdHIoKS5jX3N0cigpKTsK
IH0KIAogVEVTVChXVEZfUmVmUHRyLCBBc3NpZ25QYXNzUmVmVG9SZWZQdHIpCkBAIC0xMTYsOSAr
MTE2LDkgQEAgVEVTVChXVEZfUmVmUHRyLCBBc3NpZ25QYXNzUmVmVG9SZWZQdHIpCiAgICAgewog
ICAgICAgICBSZWY8UmVmTG9nZ2VyPiBwYXNzUmVmKGEpOwogICAgICAgICBSZWZQdHI8UmVmTG9n
Z2VyPiBwdHIgPSBXVEZNb3ZlKHBhc3NSZWYpOwotICAgICAgICBBU1NFUlRfRVEoJmEsIHB0ci5n
ZXQoKSk7CisgICAgICAgIEVYUEVDVF9FUSgmYSwgcHRyLmdldCgpKTsKICAgICB9Ci0gICAgQVNT
RVJUX1NUUkVRKCJyZWYoYSkgZGVyZWYoYSkgIiwgdGFrZUxvZ1N0cigpLmNfc3RyKCkpOworICAg
IEVYUEVDVF9TVFJFUSgicmVmKGEpIGRlcmVmKGEpICIsIHRha2VMb2dTdHIoKS5jX3N0cigpKTsK
IH0KIAogVEVTVChXVEZfUmVmUHRyLCBBZG9wdCkKQEAgLTEyNiwyMSArMTI2LDIxIEBAIFRFU1Qo
V1RGX1JlZlB0ciwgQWRvcHQpCiAgICAgRGVyaXZlZFJlZkxvZ2dlciBhKCJhIik7CiAKICAgICBS
ZWZQdHI8UmVmTG9nZ2VyPiBlbXB0eTsKLSAgICBBU1NFUlRfRVEobnVsbHB0ciwgZW1wdHkuZ2V0
KCkpOworICAgIEVYUEVDVF9FUShudWxscHRyLCBlbXB0eS5nZXQoKSk7CiAKICAgICB7CiAgICAg
ICAgIFJlZlB0cjxSZWZMb2dnZXI+IHB0cihhZG9wdFJlZigmYSkpOwotICAgICAgICBBU1NFUlRf
RVEoJmEsIHB0ci5nZXQoKSk7Ci0gICAgICAgIEFTU0VSVF9FUSgmYSwgJipwdHIpOwotICAgICAg
ICBBU1NFUlRfRVEoJmEubmFtZSwgJnB0ci0+bmFtZSk7CisgICAgICAgIEVYUEVDVF9FUSgmYSwg
cHRyLmdldCgpKTsKKyAgICAgICAgRVhQRUNUX0VRKCZhLCAmKnB0cik7CisgICAgICAgIEVYUEVD
VF9FUSgmYS5uYW1lLCAmcHRyLT5uYW1lKTsKICAgICB9Ci0gICAgQVNTRVJUX1NUUkVRKCJkZXJl
ZihhKSAiLCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7CisgICAgRVhQRUNUX1NUUkVRKCJkZXJlZihh
KSAiLCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7CiAKICAgICB7CiAgICAgICAgIFJlZlB0cjxSZWZM
b2dnZXI+IHB0ciA9IGFkb3B0UmVmKCZhKTsKLSAgICAgICAgQVNTRVJUX0VRKCZhLCBwdHIuZ2V0
KCkpOworICAgICAgICBFWFBFQ1RfRVEoJmEsIHB0ci5nZXQoKSk7CiAgICAgfQotICAgIEFTU0VS
VF9TVFJFUSgiZGVyZWYoYSkgIiwgdGFrZUxvZ1N0cigpLmNfc3RyKCkpOworICAgIEVYUEVDVF9T
VFJFUSgiZGVyZWYoYSkgIiwgdGFrZUxvZ1N0cigpLmNfc3RyKCkpOwogfQogCiBURVNUKFdURl9S
ZWZQdHIsIEFzc2lnbm1lbnQpCkBAIC0xNTIsMTE2ICsxNTIsMTE2IEBAIFRFU1QoV1RGX1JlZlB0
ciwgQXNzaWdubWVudCkKICAgICB7CiAgICAgICAgIFJlZlB0cjxSZWZMb2dnZXI+IHAxKCZhKTsK
ICAgICAgICAgUmVmUHRyPFJlZkxvZ2dlcj4gcDIoJmIpOwotICAgICAgICBBU1NFUlRfRVEoJmEs
IHAxLmdldCgpKTsKLSAgICAgICAgQVNTRVJUX0VRKCZiLCBwMi5nZXQoKSk7CisgICAgICAgIEVY
UEVDVF9FUSgmYSwgcDEuZ2V0KCkpOworICAgICAgICBFWFBFQ1RfRVEoJmIsIHAyLmdldCgpKTsK
ICAgICAgICAgbG9nKCkgPDwgInwgIjsKICAgICAgICAgcDEgPSBwMjsKLSAgICAgICAgQVNTRVJU
X0VRKCZiLCBwMS5nZXQoKSk7Ci0gICAgICAgIEFTU0VSVF9FUSgmYiwgcDIuZ2V0KCkpOworICAg
ICAgICBFWFBFQ1RfRVEoJmIsIHAxLmdldCgpKTsKKyAgICAgICAgRVhQRUNUX0VRKCZiLCBwMi5n
ZXQoKSk7CiAgICAgICAgIGxvZygpIDw8ICJ8ICI7CiAgICAgfQotICAgIEFTU0VSVF9TVFJFUSgi
cmVmKGEpIHJlZihiKSB8IHJlZihiKSBkZXJlZihhKSB8IGRlcmVmKGIpIGRlcmVmKGIpICIsIHRh
a2VMb2dTdHIoKS5jX3N0cigpKTsKKyAgICBFWFBFQ1RfU1RSRVEoInJlZihhKSByZWYoYikgfCBy
ZWYoYikgZGVyZWYoYSkgfCBkZXJlZihiKSBkZXJlZihiKSAiLCB0YWtlTG9nU3RyKCkuY19zdHIo
KSk7CiAKICAgICB7CiAgICAgICAgIFJlZlB0cjxSZWZMb2dnZXI+IHB0cigmYSk7Ci0gICAgICAg
IEFTU0VSVF9FUSgmYSwgcHRyLmdldCgpKTsKKyAgICAgICAgRVhQRUNUX0VRKCZhLCBwdHIuZ2V0
KCkpOwogICAgICAgICBsb2coKSA8PCAifCAiOwogICAgICAgICBwdHIgPSAmYjsKLSAgICAgICAg
QVNTRVJUX0VRKCZiLCBwdHIuZ2V0KCkpOworICAgICAgICBFWFBFQ1RfRVEoJmIsIHB0ci5nZXQo
KSk7CiAgICAgICAgIGxvZygpIDw8ICJ8ICI7CiAgICAgfQotICAgIEFTU0VSVF9TVFJFUSgicmVm
KGEpIHwgcmVmKGIpIGRlcmVmKGEpIHwgZGVyZWYoYikgIiwgdGFrZUxvZ1N0cigpLmNfc3RyKCkp
OworICAgIEVYUEVDVF9TVFJFUSgicmVmKGEpIHwgcmVmKGIpIGRlcmVmKGEpIHwgZGVyZWYoYikg
IiwgdGFrZUxvZ1N0cigpLmNfc3RyKCkpOwogCiAgICAgewogICAgICAgICBSZWZQdHI8UmVmTG9n
Z2VyPiBwdHIoJmEpOwotICAgICAgICBBU1NFUlRfRVEoJmEsIHB0ci5nZXQoKSk7CisgICAgICAg
IEVYUEVDVF9FUSgmYSwgcHRyLmdldCgpKTsKICAgICAgICAgbG9nKCkgPDwgInwgIjsKICAgICAg
ICAgcHRyID0gYWRvcHRSZWYoJmIpOwotICAgICAgICBBU1NFUlRfRVEoJmIsIHB0ci5nZXQoKSk7
CisgICAgICAgIEVYUEVDVF9FUSgmYiwgcHRyLmdldCgpKTsKICAgICAgICAgbG9nKCkgPDwgInwg
IjsKICAgICB9Ci0gICAgQVNTRVJUX1NUUkVRKCJyZWYoYSkgfCBkZXJlZihhKSB8IGRlcmVmKGIp
ICIsIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKKyAgICBFWFBFQ1RfU1RSRVEoInJlZihhKSB8IGRl
cmVmKGEpIHwgZGVyZWYoYikgIiwgdGFrZUxvZ1N0cigpLmNfc3RyKCkpOwogCiAgICAgewogICAg
ICAgICBSZWZQdHI8UmVmTG9nZ2VyPiBwdHIoJmEpOwotICAgICAgICBBU1NFUlRfRVEoJmEsIHB0
ci5nZXQoKSk7CisgICAgICAgIEVYUEVDVF9FUSgmYSwgcHRyLmdldCgpKTsKICAgICAgICAgcHRy
ID0gbnVsbHB0cjsKLSAgICAgICAgQVNTRVJUX0VRKG51bGxwdHIsIHB0ci5nZXQoKSk7CisgICAg
ICAgIEVYUEVDVF9FUShudWxscHRyLCBwdHIuZ2V0KCkpOwogICAgIH0KLSAgICBBU1NFUlRfU1RS
RVEoInJlZihhKSBkZXJlZihhKSAiLCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7CisgICAgRVhQRUNU
X1NUUkVRKCJyZWYoYSkgZGVyZWYoYSkgIiwgdGFrZUxvZ1N0cigpLmNfc3RyKCkpOwogCiAgICAg
ewogICAgICAgICBSZWZQdHI8UmVmTG9nZ2VyPiBwMSgmYSk7CiAgICAgICAgIFJlZlB0cjxSZWZM
b2dnZXI+IHAyKCZiKTsKLSAgICAgICAgQVNTRVJUX0VRKCZhLCBwMS5nZXQoKSk7Ci0gICAgICAg
IEFTU0VSVF9FUSgmYiwgcDIuZ2V0KCkpOworICAgICAgICBFWFBFQ1RfRVEoJmEsIHAxLmdldCgp
KTsKKyAgICAgICAgRVhQRUNUX0VRKCZiLCBwMi5nZXQoKSk7CiAgICAgICAgIGxvZygpIDw8ICJ8
ICI7CiAgICAgICAgIHAxID0gV1RGTW92ZShwMik7Ci0gICAgICAgIEFTU0VSVF9FUSgmYiwgcDEu
Z2V0KCkpOwotICAgICAgICBBU1NFUlRfRVEobnVsbHB0ciwgcDIuZ2V0KCkpOworICAgICAgICBF
WFBFQ1RfRVEoJmIsIHAxLmdldCgpKTsKKyAgICAgICAgRVhQRUNUX0VRKG51bGxwdHIsIHAyLmdl
dCgpKTsKICAgICAgICAgbG9nKCkgPDwgInwgIjsKICAgICB9Ci0gICAgQVNTRVJUX1NUUkVRKCJy
ZWYoYSkgcmVmKGIpIHwgZGVyZWYoYSkgfCBkZXJlZihiKSAiLCB0YWtlTG9nU3RyKCkuY19zdHIo
KSk7CisgICAgRVhQRUNUX1NUUkVRKCJyZWYoYSkgcmVmKGIpIHwgZGVyZWYoYSkgfCBkZXJlZihi
KSAiLCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7CiAKICAgICB7CiAgICAgICAgIFJlZlB0cjxSZWZM
b2dnZXI+IHAxKCZhKTsKICAgICAgICAgUmVmUHRyPERlcml2ZWRSZWZMb2dnZXI+IHAyKCZjKTsK
LSAgICAgICAgQVNTRVJUX0VRKCZhLCBwMS5nZXQoKSk7Ci0gICAgICAgIEFTU0VSVF9FUSgmYywg
cDIuZ2V0KCkpOworICAgICAgICBFWFBFQ1RfRVEoJmEsIHAxLmdldCgpKTsKKyAgICAgICAgRVhQ
RUNUX0VRKCZjLCBwMi5nZXQoKSk7CiAgICAgICAgIGxvZygpIDw8ICJ8ICI7CiAgICAgICAgIHAx
ID0gcDI7Ci0gICAgICAgIEFTU0VSVF9FUSgmYywgcDEuZ2V0KCkpOwotICAgICAgICBBU1NFUlRf
RVEoJmMsIHAyLmdldCgpKTsKKyAgICAgICAgRVhQRUNUX0VRKCZjLCBwMS5nZXQoKSk7CisgICAg
ICAgIEVYUEVDVF9FUSgmYywgcDIuZ2V0KCkpOwogICAgICAgICBsb2coKSA8PCAifCAiOwogICAg
IH0KLSAgICBBU1NFUlRfU1RSRVEoInJlZihhKSByZWYoYykgfCByZWYoYykgZGVyZWYoYSkgfCBk
ZXJlZihjKSBkZXJlZihjKSAiLCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7CisgICAgRVhQRUNUX1NU
UkVRKCJyZWYoYSkgcmVmKGMpIHwgcmVmKGMpIGRlcmVmKGEpIHwgZGVyZWYoYykgZGVyZWYoYykg
IiwgdGFrZUxvZ1N0cigpLmNfc3RyKCkpOwogCiAgICAgewogICAgICAgICBSZWZQdHI8UmVmTG9n
Z2VyPiBwdHIoJmEpOwotICAgICAgICBBU1NFUlRfRVEoJmEsIHB0ci5nZXQoKSk7CisgICAgICAg
IEVYUEVDVF9FUSgmYSwgcHRyLmdldCgpKTsKICAgICAgICAgbG9nKCkgPDwgInwgIjsKICAgICAg
ICAgcHRyID0gJmM7Ci0gICAgICAgIEFTU0VSVF9FUSgmYywgcHRyLmdldCgpKTsKKyAgICAgICAg
RVhQRUNUX0VRKCZjLCBwdHIuZ2V0KCkpOwogICAgICAgICBsb2coKSA8PCAifCAiOwogICAgIH0K
LSAgICBBU1NFUlRfU1RSRVEoInJlZihhKSB8IHJlZihjKSBkZXJlZihhKSB8IGRlcmVmKGMpICIs
IHRha2VMb2dTdHIoKS5jX3N0cigpKTsKKyAgICBFWFBFQ1RfU1RSRVEoInJlZihhKSB8IHJlZihj
KSBkZXJlZihhKSB8IGRlcmVmKGMpICIsIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKIAogICAgIHsK
ICAgICAgICAgUmVmUHRyPFJlZkxvZ2dlcj4gcHRyKCZhKTsKLSAgICAgICAgQVNTRVJUX0VRKCZh
LCBwdHIuZ2V0KCkpOworICAgICAgICBFWFBFQ1RfRVEoJmEsIHB0ci5nZXQoKSk7CiAgICAgICAg
IGxvZygpIDw8ICJ8ICI7CiAgICAgICAgIHB0ciA9IGFkb3B0UmVmKCZjKTsKLSAgICAgICAgQVNT
RVJUX0VRKCZjLCBwdHIuZ2V0KCkpOworICAgICAgICBFWFBFQ1RfRVEoJmMsIHB0ci5nZXQoKSk7
CiAgICAgICAgIGxvZygpIDw8ICJ8ICI7CiAgICAgfQotICAgIEFTU0VSVF9TVFJFUSgicmVmKGEp
IHwgZGVyZWYoYSkgfCBkZXJlZihjKSAiLCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7CisgICAgRVhQ
RUNUX1NUUkVRKCJyZWYoYSkgfCBkZXJlZihhKSB8IGRlcmVmKGMpICIsIHRha2VMb2dTdHIoKS5j
X3N0cigpKTsKIAogICAgIHsKICAgICAgICAgUmVmUHRyPFJlZkxvZ2dlcj4gcDEoJmEpOwogICAg
ICAgICBSZWZQdHI8RGVyaXZlZFJlZkxvZ2dlcj4gcDIoJmMpOwotICAgICAgICBBU1NFUlRfRVEo
JmEsIHAxLmdldCgpKTsKLSAgICAgICAgQVNTRVJUX0VRKCZjLCBwMi5nZXQoKSk7CisgICAgICAg
IEVYUEVDVF9FUSgmYSwgcDEuZ2V0KCkpOworICAgICAgICBFWFBFQ1RfRVEoJmMsIHAyLmdldCgp
KTsKICAgICAgICAgbG9nKCkgPDwgInwgIjsKICAgICAgICAgcDEgPSBXVEZNb3ZlKHAyKTsKLSAg
ICAgICAgQVNTRVJUX0VRKCZjLCBwMS5nZXQoKSk7Ci0gICAgICAgIEFTU0VSVF9FUShudWxscHRy
LCBwMi5nZXQoKSk7CisgICAgICAgIEVYUEVDVF9FUSgmYywgcDEuZ2V0KCkpOworICAgICAgICBF
WFBFQ1RfRVEobnVsbHB0ciwgcDIuZ2V0KCkpOwogICAgICAgICBsb2coKSA8PCAifCAiOwogICAg
IH0KLSAgICBBU1NFUlRfU1RSRVEoInJlZihhKSByZWYoYykgfCBkZXJlZihhKSB8IGRlcmVmKGMp
ICIsIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKKyAgICBFWFBFQ1RfU1RSRVEoInJlZihhKSByZWYo
YykgfCBkZXJlZihhKSB8IGRlcmVmKGMpICIsIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKIAogICAg
IHsKICAgICAgICAgUmVmUHRyPFJlZkxvZ2dlcj4gcHRyKCZhKTsKLSAgICAgICAgQVNTRVJUX0VR
KCZhLCBwdHIuZ2V0KCkpOworICAgICAgICBFWFBFQ1RfRVEoJmEsIHB0ci5nZXQoKSk7CiAgICAg
ICAgIGxvZygpIDw8ICJ8ICI7CiAgICAgICAgIHB0ciA9IHB0cjsKLSAgICAgICAgQVNTRVJUX0VR
KCZhLCBwdHIuZ2V0KCkpOworICAgICAgICBFWFBFQ1RfRVEoJmEsIHB0ci5nZXQoKSk7CiAgICAg
ICAgIGxvZygpIDw8ICJ8ICI7CiAgICAgfQotICAgIEFTU0VSVF9TVFJFUSgicmVmKGEpIHwgcmVm
KGEpIGRlcmVmKGEpIHwgZGVyZWYoYSkgIiwgdGFrZUxvZ1N0cigpLmNfc3RyKCkpOworICAgIEVY
UEVDVF9TVFJFUSgicmVmKGEpIHwgcmVmKGEpIGRlcmVmKGEpIHwgZGVyZWYoYSkgIiwgdGFrZUxv
Z1N0cigpLmNfc3RyKCkpOwogCiAgICAgewogICAgICAgICBSZWZQdHI8UmVmTG9nZ2VyPiBwdHIo
JmEpOwotICAgICAgICBBU1NFUlRfRVEoJmEsIHB0ci5nZXQoKSk7CisgICAgICAgIEVYUEVDVF9F
USgmYSwgcHRyLmdldCgpKTsKICNpZiBDT01QSUxFUihDTEFORykKICNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmtub3du
LXByYWdtYXMiCkBAIC0yNzEsOSArMjcxLDkgQEAgVEVTVChXVEZfUmVmUHRyLCBBc3NpZ25tZW50
KQogI2lmIENPTVBJTEVSKENMQU5HKQogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogI2Vu
ZGlmCi0gICAgICAgIEFTU0VSVF9FUSgmYSwgcHRyLmdldCgpKTsKKyAgICAgICAgRVhQRUNUX0VR
KCZhLCBwdHIuZ2V0KCkpOwogICAgIH0KLSAgICBBU1NFUlRfU1RSRVEoInJlZihhKSBkZXJlZihh
KSAiLCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7CisgICAgRVhQRUNUX1NUUkVRKCJyZWYoYSkgZGVy
ZWYoYSkgIiwgdGFrZUxvZ1N0cigpLmNfc3RyKCkpOwogfQogCiBURVNUKFdURl9SZWZQdHIsIFN3
YXApCkBAIC0yODQsMjYgKzI4NCwyOCBAQCBURVNUKFdURl9SZWZQdHIsIFN3YXApCiAgICAgewog
ICAgICAgICBSZWZQdHI8UmVmTG9nZ2VyPiBwMSgmYSk7CiAgICAgICAgIFJlZlB0cjxSZWZMb2dn
ZXI+IHAyKCZiKTsKLSAgICAgICAgQVNTRVJUX0VRKCZhLCBwMS5nZXQoKSk7Ci0gICAgICAgIEFT
U0VSVF9FUSgmYiwgcDIuZ2V0KCkpOworICAgICAgICBsb2coKSA8PCAifCAiOworICAgICAgICBF
WFBFQ1RfRVEoJmEsIHAxLmdldCgpKTsKKyAgICAgICAgRVhQRUNUX0VRKCZiLCBwMi5nZXQoKSk7
CiAgICAgICAgIHAxLnN3YXAocDIpOwotICAgICAgICBBU1NFUlRfRVEoJmIsIHAxLmdldCgpKTsK
LSAgICAgICAgQVNTRVJUX0VRKCZhLCBwMi5nZXQoKSk7CisgICAgICAgIEVYUEVDVF9FUSgmYiwg
cDEuZ2V0KCkpOworICAgICAgICBFWFBFQ1RfRVEoJmEsIHAyLmdldCgpKTsKICAgICAgICAgbG9n
KCkgPDwgInwgIjsKICAgICB9Ci0gICAgQVNTRVJUX1NUUkVRKCJyZWYoYSkgcmVmKGIpIHwgZGVy
ZWYoYSkgZGVyZWYoYikgIiwgdGFrZUxvZ1N0cigpLmNfc3RyKCkpOworICAgIEVYUEVDVF9TVFJF
USgicmVmKGEpIHJlZihiKSB8IHwgZGVyZWYoYSkgZGVyZWYoYikgIiwgdGFrZUxvZ1N0cigpLmNf
c3RyKCkpOwogCiAgICAgewogICAgICAgICBSZWZQdHI8UmVmTG9nZ2VyPiBwMSgmYSk7CiAgICAg
ICAgIFJlZlB0cjxSZWZMb2dnZXI+IHAyKCZiKTsKLSAgICAgICAgQVNTRVJUX0VRKCZhLCBwMS5n
ZXQoKSk7Ci0gICAgICAgIEFTU0VSVF9FUSgmYiwgcDIuZ2V0KCkpOworICAgICAgICBsb2coKSA8
PCAifCAiOworICAgICAgICBFWFBFQ1RfRVEoJmEsIHAxLmdldCgpKTsKKyAgICAgICAgRVhQRUNU
X0VRKCZiLCBwMi5nZXQoKSk7CiAgICAgICAgIHN0ZDo6c3dhcChwMSwgcDIpOwotICAgICAgICBB
U1NFUlRfRVEoJmIsIHAxLmdldCgpKTsKLSAgICAgICAgQVNTRVJUX0VRKCZhLCBwMi5nZXQoKSk7
CisgICAgICAgIEVYUEVDVF9FUSgmYiwgcDEuZ2V0KCkpOworICAgICAgICBFWFBFQ1RfRVEoJmEs
IHAyLmdldCgpKTsKICAgICAgICAgbG9nKCkgPDwgInwgIjsKICAgICB9Ci0gICAgQVNTRVJUX1NU
UkVRKCJyZWYoYSkgcmVmKGIpIHwgZGVyZWYoYSkgZGVyZWYoYikgIiwgdGFrZUxvZ1N0cigpLmNf
c3RyKCkpOworICAgIEVYUEVDVF9TVFJFUSgicmVmKGEpIHJlZihiKSB8IHwgZGVyZWYoYSkgZGVy
ZWYoYikgIiwgdGFrZUxvZ1N0cigpLmNfc3RyKCkpOwogfQogCiBURVNUKFdURl9SZWZQdHIsIFJl
bGVhc2VOb25OdWxsKQpAQCAtMzE1LDcgKzMxNyw3IEBAIFRFU1QoV1RGX1JlZlB0ciwgUmVsZWFz
ZU5vbk51bGwpCiAgICAgICAgIFJlZlB0cjxSZWZMb2dnZXI+IHJlZiA9IHJlZlB0ci5yZWxlYXNl
Tm9uTnVsbCgpOwogICAgIH0KIAotICAgIEFTU0VSVF9TVFJFUSgicmVmKGEpIGRlcmVmKGEpICIs
IHRha2VMb2dTdHIoKS5jX3N0cigpKTsKKyAgICBFWFBFQ1RfU1RSRVEoInJlZihhKSBkZXJlZihh
KSAiLCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7CiB9CiAKIFRFU1QoV1RGX1JlZlB0ciwgUmVsZWFz
ZSkKQEAgLTMyNyw1MiArMzI5LDUyIEBAIFRFU1QoV1RGX1JlZlB0ciwgUmVsZWFzZSkKICAgICB7
CiAgICAgICAgIFJlZlB0cjxSZWZMb2dnZXI+IHAxID0gJmE7CiAgICAgICAgIFJlZlB0cjxSZWZM
b2dnZXI+IHAyID0gV1RGTW92ZShwMSk7Ci0gICAgICAgIEFTU0VSVF9FUShudWxscHRyLCBwMS5n
ZXQoKSk7Ci0gICAgICAgIEFTU0VSVF9FUSgmYSwgcDIuZ2V0KCkpOworICAgICAgICBFWFBFQ1Rf
RVEobnVsbHB0ciwgcDEuZ2V0KCkpOworICAgICAgICBFWFBFQ1RfRVEoJmEsIHAyLmdldCgpKTsK
ICAgICB9Ci0gICAgQVNTRVJUX1NUUkVRKCJyZWYoYSkgZGVyZWYoYSkgIiwgdGFrZUxvZ1N0cigp
LmNfc3RyKCkpOworICAgIEVYUEVDVF9TVFJFUSgicmVmKGEpIGRlcmVmKGEpICIsIHRha2VMb2dT
dHIoKS5jX3N0cigpKTsKIAogICAgIHsKICAgICAgICAgUmVmUHRyPFJlZkxvZ2dlcj4gcDEgPSAm
YTsKICAgICAgICAgUmVmUHRyPFJlZkxvZ2dlcj4gcDIoV1RGTW92ZShwMSkpOwotICAgICAgICBB
U1NFUlRfRVEobnVsbHB0ciwgcDEuZ2V0KCkpOwotICAgICAgICBBU1NFUlRfRVEoJmEsIHAyLmdl
dCgpKTsKKyAgICAgICAgRVhQRUNUX0VRKG51bGxwdHIsIHAxLmdldCgpKTsKKyAgICAgICAgRVhQ
RUNUX0VRKCZhLCBwMi5nZXQoKSk7CiAgICAgfQotICAgIEFTU0VSVF9TVFJFUSgicmVmKGEpIGRl
cmVmKGEpICIsIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKKyAgICBFWFBFQ1RfU1RSRVEoInJlZihh
KSBkZXJlZihhKSAiLCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7CiAKICAgICB7CiAgICAgICAgIFJl
ZlB0cjxEZXJpdmVkUmVmTG9nZ2VyPiBwMSA9ICZhOwogICAgICAgICBSZWZQdHI8UmVmTG9nZ2Vy
PiBwMiA9IFdURk1vdmUocDEpOwotICAgICAgICBBU1NFUlRfRVEobnVsbHB0ciwgcDEuZ2V0KCkp
OwotICAgICAgICBBU1NFUlRfRVEoJmEsIHAyLmdldCgpKTsKKyAgICAgICAgRVhQRUNUX0VRKG51
bGxwdHIsIHAxLmdldCgpKTsKKyAgICAgICAgRVhQRUNUX0VRKCZhLCBwMi5nZXQoKSk7CiAgICAg
fQotICAgIEFTU0VSVF9TVFJFUSgicmVmKGEpIGRlcmVmKGEpICIsIHRha2VMb2dTdHIoKS5jX3N0
cigpKTsKKyAgICBFWFBFQ1RfU1RSRVEoInJlZihhKSBkZXJlZihhKSAiLCB0YWtlTG9nU3RyKCku
Y19zdHIoKSk7CiAKICAgICB7CiAgICAgICAgIFJlZlB0cjxSZWZMb2dnZXI+IHAxKCZhKTsKICAg
ICAgICAgUmVmUHRyPFJlZkxvZ2dlcj4gcDIoJmIpOwotICAgICAgICBBU1NFUlRfRVEoJmEsIHAx
LmdldCgpKTsKLSAgICAgICAgQVNTRVJUX0VRKCZiLCBwMi5nZXQoKSk7CisgICAgICAgIEVYUEVD
VF9FUSgmYSwgcDEuZ2V0KCkpOworICAgICAgICBFWFBFQ1RfRVEoJmIsIHAyLmdldCgpKTsKICAg
ICAgICAgbG9nKCkgPDwgInwgIjsKICAgICAgICAgcDEgPSBXVEZNb3ZlKHAyKTsKLSAgICAgICAg
QVNTRVJUX0VRKCZiLCBwMS5nZXQoKSk7Ci0gICAgICAgIEFTU0VSVF9FUShudWxscHRyLCBwMi5n
ZXQoKSk7CisgICAgICAgIEVYUEVDVF9FUSgmYiwgcDEuZ2V0KCkpOworICAgICAgICBFWFBFQ1Rf
RVEobnVsbHB0ciwgcDIuZ2V0KCkpOwogICAgICAgICBsb2coKSA8PCAifCAiOwogICAgIH0KLSAg
ICBBU1NFUlRfU1RSRVEoInJlZihhKSByZWYoYikgfCBkZXJlZihhKSB8IGRlcmVmKGIpICIsIHRh
a2VMb2dTdHIoKS5jX3N0cigpKTsKKyAgICBFWFBFQ1RfU1RSRVEoInJlZihhKSByZWYoYikgfCBk
ZXJlZihhKSB8IGRlcmVmKGIpICIsIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKIAogICAgIHsKICAg
ICAgICAgUmVmUHRyPFJlZkxvZ2dlcj4gcDEoJmEpOwogICAgICAgICBSZWZQdHI8RGVyaXZlZFJl
ZkxvZ2dlcj4gcDIoJmMpOwotICAgICAgICBBU1NFUlRfRVEoJmEsIHAxLmdldCgpKTsKLSAgICAg
ICAgQVNTRVJUX0VRKCZjLCBwMi5nZXQoKSk7CisgICAgICAgIEVYUEVDVF9FUSgmYSwgcDEuZ2V0
KCkpOworICAgICAgICBFWFBFQ1RfRVEoJmMsIHAyLmdldCgpKTsKICAgICAgICAgbG9nKCkgPDwg
InwgIjsKICAgICAgICAgcDEgPSBXVEZNb3ZlKHAyKTsKLSAgICAgICAgQVNTRVJUX0VRKCZjLCBw
MS5nZXQoKSk7Ci0gICAgICAgIEFTU0VSVF9FUShudWxscHRyLCBwMi5nZXQoKSk7CisgICAgICAg
IEVYUEVDVF9FUSgmYywgcDEuZ2V0KCkpOworICAgICAgICBFWFBFQ1RfRVEobnVsbHB0ciwgcDIu
Z2V0KCkpOwogICAgICAgICBsb2coKSA8PCAifCAiOwogICAgIH0KLSAgICBBU1NFUlRfU1RSRVEo
InJlZihhKSByZWYoYykgfCBkZXJlZihhKSB8IGRlcmVmKGMpICIsIHRha2VMb2dTdHIoKS5jX3N0
cigpKTsKKyAgICBFWFBFQ1RfU1RSRVEoInJlZihhKSByZWYoYykgfCBkZXJlZihhKSB8IGRlcmVm
KGMpICIsIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKIH0KIAogUmVmUHRyPFJlZkxvZ2dlcj4gZjEo
UmVmTG9nZ2VyJiBsb2dnZXIpCkBAIC0zODcsMTUgKzM4OSwxNCBAQCBURVNUKFdURl9SZWZQdHIs
IFJldHVyblZhbHVlKQogICAgIHsKICAgICAgICAgZjEoYSk7CiAgICAgfQotICAgIEFTU0VSVF9T
VFJFUSgicmVmKGEpIGRlcmVmKGEpICIsIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKKyAgICBFWFBF
Q1RfU1RSRVEoInJlZihhKSBkZXJlZihhKSAiLCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7CiAKICAg
ICB7CiAgICAgICAgIGF1dG8gcHRyID0gZjEoYSk7CiAgICAgfQotICAgIEFTU0VSVF9TVFJFUSgi
cmVmKGEpIGRlcmVmKGEpICIsIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKKyAgICBFWFBFQ1RfU1RS
RVEoInJlZihhKSBkZXJlZihhKSAiLCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7CiB9CiAKLSAgICAK
IHN0cnVjdCBDb25zdFJlZkNvdW50ZWQgOiBSZWZDb3VudGVkPENvbnN0UmVmQ291bnRlZD4gewog
ICAgIHN0YXRpYyBSZWY8Q29uc3RSZWZDb3VudGVkPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJl
ZigqbmV3IENvbnN0UmVmQ291bnRlZCk7IH0KIH07CkBAIC00MjUsNCArNDI2LDExMyBAQCBURVNU
KFdURl9SZWZQdHIsIENvbnN0KQogICAgIFJlZjxjb25zdCBDb25zdFJlZkNvdW50ZWQ+IGkocmV0
dXJuUmVmQ291bnRlZFJlZigpKTsKIH0KIAorc3RydWN0IFJlZlB0ckNoZWNraW5nUmVmTG9nZ2Vy
IDogUmVmTG9nZ2VyIHsKKyAgICBSZWZQdHJDaGVja2luZ1JlZkxvZ2dlcihjb25zdCBjaGFyKiBu
YW1lKTsKKyAgICB2b2lkIHJlZigpOworICAgIHZvaWQgZGVyZWYoKTsKKyAgICBjb25zdCBSZWZQ
dHI8UmVmUHRyQ2hlY2tpbmdSZWZMb2dnZXI+KiBzbG90VG9DaGVjayB7IG51bGxwdHIgfTsKK307
CisKK1JlZlB0ckNoZWNraW5nUmVmTG9nZ2VyOjpSZWZQdHJDaGVja2luZ1JlZkxvZ2dlcihjb25z
dCBjaGFyKiBuYW1lKQorICAgIDogUmVmTG9nZ2VyIHsgbmFtZSB9Cit7Cit9CisKK3N0YXRpYyBj
b25zdCBjaGFyKiBsb2dnZXJOYW1lKGNvbnN0IFJlZlB0cjxSZWZQdHJDaGVja2luZ1JlZkxvZ2dl
cj4mIHBvaW50ZXIpCit7CisgICAgcmV0dXJuIHBvaW50ZXIgPyAmcG9pbnRlci0+bmFtZSA6ICJu
dWxsIjsKK30KKwordm9pZCBSZWZQdHJDaGVja2luZ1JlZkxvZ2dlcjo6cmVmKCkKK3sKKyAgICBp
ZiAoc2xvdFRvQ2hlY2spCisgICAgICAgIGxvZygpIDw8ICJzbG90PSIgPDwgbG9nZ2VyTmFtZSgq
c2xvdFRvQ2hlY2spIDw8ICIgIjsKKyAgICBSZWZMb2dnZXI6OnJlZigpOworfQorCit2b2lkIFJl
ZlB0ckNoZWNraW5nUmVmTG9nZ2VyOjpkZXJlZigpCit7CisgICAgaWYgKHNsb3RUb0NoZWNrKQor
ICAgICAgICBsb2coKSA8PCAic2xvdD0iIDw8IGxvZ2dlck5hbWUoKnNsb3RUb0NoZWNrKSA8PCAi
ICI7CisgICAgUmVmTG9nZ2VyOjpkZXJlZigpOworfQorCitURVNUKFdURl9SZWZQdHIsIEFzc2ln
bkJlZm9yZURlcmVmKQoreworICAgIFJlZlB0ckNoZWNraW5nUmVmTG9nZ2VyIGEoImEiKTsKKyAg
ICBSZWZQdHJDaGVja2luZ1JlZkxvZ2dlciBiKCJiIik7CisKKyAgICB7CisgICAgICAgIFJlZlB0
cjxSZWZQdHJDaGVja2luZ1JlZkxvZ2dlcj4gcDEoJmEpOworICAgICAgICBSZWZQdHI8UmVmUHRy
Q2hlY2tpbmdSZWZMb2dnZXI+IHAyKCZiKTsKKyAgICAgICAgRVhQRUNUX0VRKCZhLCBwMS5nZXQo
KSk7CisgICAgICAgIEVYUEVDVF9FUSgmYiwgcDIuZ2V0KCkpOworICAgICAgICBsb2coKSA8PCAi
fCAiOworICAgICAgICBhLnNsb3RUb0NoZWNrID0gJnAxOworICAgICAgICBiLnNsb3RUb0NoZWNr
ID0gJnAxOworICAgICAgICBwMSA9IHAyOworICAgICAgICBhLnNsb3RUb0NoZWNrID0gbnVsbHB0
cjsKKyAgICAgICAgYi5zbG90VG9DaGVjayA9IG51bGxwdHI7CisgICAgICAgIEVYUEVDVF9FUSgm
YiwgcDEuZ2V0KCkpOworICAgICAgICBFWFBFQ1RfRVEoJmIsIHAyLmdldCgpKTsKKyAgICAgICAg
bG9nKCkgPDwgInwgIjsKKyAgICB9CisgICAgRVhQRUNUX1NUUkVRKCJyZWYoYSkgcmVmKGIpIHwg
c2xvdD1hIHJlZihiKSBzbG90PWIgZGVyZWYoYSkgfCBkZXJlZihiKSBkZXJlZihiKSAiLCB0YWtl
TG9nU3RyKCkuY19zdHIoKSk7CisKKyAgICB7CisgICAgICAgIFJlZlB0cjxSZWZQdHJDaGVja2lu
Z1JlZkxvZ2dlcj4gcHRyKCZhKTsKKyAgICAgICAgRVhQRUNUX0VRKCZhLCBwdHIuZ2V0KCkpOwor
ICAgICAgICBsb2coKSA8PCAifCAiOworICAgICAgICBhLnNsb3RUb0NoZWNrID0gJnB0cjsKKyAg
ICAgICAgYi5zbG90VG9DaGVjayA9ICZwdHI7CisgICAgICAgIHB0ciA9ICZiOworICAgICAgICBh
LnNsb3RUb0NoZWNrID0gbnVsbHB0cjsKKyAgICAgICAgYi5zbG90VG9DaGVjayA9IG51bGxwdHI7
CisgICAgICAgIEVYUEVDVF9FUSgmYiwgcHRyLmdldCgpKTsKKyAgICAgICAgbG9nKCkgPDwgInwg
IjsKKyAgICB9CisgICAgRVhQRUNUX1NUUkVRKCJyZWYoYSkgfCBzbG90PWEgcmVmKGIpIHNsb3Q9
YiBkZXJlZihhKSB8IGRlcmVmKGIpICIsIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKKworICAgIHsK
KyAgICAgICAgUmVmUHRyPFJlZlB0ckNoZWNraW5nUmVmTG9nZ2VyPiBwdHIoJmEpOworICAgICAg
ICBFWFBFQ1RfRVEoJmEsIHB0ci5nZXQoKSk7CisgICAgICAgIGEuc2xvdFRvQ2hlY2sgPSAmcHRy
OworICAgICAgICBwdHIgPSBudWxscHRyOworICAgICAgICBhLnNsb3RUb0NoZWNrID0gbnVsbHB0
cjsKKyAgICAgICAgRVhQRUNUX0VRKG51bGxwdHIsIHB0ci5nZXQoKSk7CisgICAgfQorICAgIEVY
UEVDVF9TVFJFUSgicmVmKGEpIHNsb3Q9bnVsbCBkZXJlZihhKSAiLCB0YWtlTG9nU3RyKCkuY19z
dHIoKSk7CisKKyAgICB7CisgICAgICAgIFJlZlB0cjxSZWZQdHJDaGVja2luZ1JlZkxvZ2dlcj4g
cDEoJmEpOworICAgICAgICBSZWZQdHI8UmVmUHRyQ2hlY2tpbmdSZWZMb2dnZXI+IHAyKCZiKTsK
KyAgICAgICAgRVhQRUNUX0VRKCZhLCBwMS5nZXQoKSk7CisgICAgICAgIEVYUEVDVF9FUSgmYiwg
cDIuZ2V0KCkpOworICAgICAgICBsb2coKSA8PCAifCAiOworICAgICAgICBhLnNsb3RUb0NoZWNr
ID0gJnAxOworICAgICAgICBiLnNsb3RUb0NoZWNrID0gJnAxOworICAgICAgICBwMSA9IFdURk1v
dmUocDIpOworICAgICAgICBhLnNsb3RUb0NoZWNrID0gbnVsbHB0cjsKKyAgICAgICAgYi5zbG90
VG9DaGVjayA9IG51bGxwdHI7CisgICAgICAgIEVYUEVDVF9FUSgmYiwgcDEuZ2V0KCkpOworICAg
ICAgICBFWFBFQ1RfRVEobnVsbHB0ciwgcDIuZ2V0KCkpOworICAgICAgICBsb2coKSA8PCAifCAi
OworICAgIH0KKyAgICBFWFBFQ1RfU1RSRVEoInJlZihhKSByZWYoYikgfCBzbG90PWIgZGVyZWYo
YSkgfCBkZXJlZihiKSAiLCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7Cit9CisKK1RFU1QoV1RGX1Jl
ZlB0ciwgUmVsZWFzZU5vbk51bGxCZWZvcmVEZXJlZikKK3sKKyAgICBSZWZQdHJDaGVja2luZ1Jl
ZkxvZ2dlciBhKCJhIik7CisKKyAgICB7CisgICAgICAgIFJlZlB0cjxSZWZQdHJDaGVja2luZ1Jl
ZkxvZ2dlcj4gcmVmUHRyID0gJmE7CisgICAgICAgIGEuc2xvdFRvQ2hlY2sgPSAmcmVmUHRyOwor
ICAgICAgICByZWZQdHIucmVsZWFzZU5vbk51bGwoKTsKKyAgICAgICAgYS5zbG90VG9DaGVjayA9
IG51bGxwdHI7CisgICAgfQorCisgICAgRVhQRUNUX1NUUkVRKCJyZWYoYSkgc2xvdD1udWxsIGRl
cmVmKGEpICIsIHRha2VMb2dTdHIoKS5jX3N0cigpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgVGVz
dFdlYktpdEFQSQo=
</data>
<flag name="review"
          id="334143"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>