<?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>131282</bug_id>
          
          <creation_ts>2014-04-06 12:25:12 -0700</creation_ts>
          <short_desc>Refactor post-attach and HTMLObjectElement-related code</short_desc>
          <delta_ts>2014-04-09 09:48:22 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>ap</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>998024</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-04-06 12:25:12 -0700</bug_when>
    <thetext>Refactor post-attach and HTMLObjectElement-related code</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>998025</commentid>
    <comment_count>1</comment_count>
      <attachid>228702</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-04-06 13:26:56 -0700</bug_when>
    <thetext>Created attachment 228702
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>998026</commentid>
    <comment_count>2</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-04-06 13:27:32 -0700</bug_when>
    <thetext>Committed r166853: &lt;http://trac.webkit.org/changeset/166853&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>998839</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-04-08 15:49:35 -0700</bug_when>
    <thetext>I&apos;m seeing fast/preloader/document-write.html fail again: &lt;http://build.webkit.org/results/Apple%20Mavericks%20Release%20WK1%20(Tests)/r166965%20(5045)/fast/preloader/document-write-pretty-diff.html&gt;.

Flakiness dashboard is broken at the moment, so I don&apos;t know when exactly it started. But given past experience, it seems almost certain to be this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999166</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-04-09 07:31:05 -0700</bug_when>
    <thetext>Very interesting! Could you put it on the skipped list again until I have a chance to look at it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999207</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-04-09 09:48:22 -0700</bug_when>
    <thetext>Done, and re-opened bug 130942.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>228702</attachid>
            <date>2014-04-06 13:26:56 -0700</date>
            <delta_ts>2014-04-06 13:27:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-131282-20140406132638.patch</filename>
            <type>text/plain</type>
            <size>48793</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY2ODUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzdjZmMxZmE4OWI0Yjg3
M2ZmNDQyZDUxNzdjZDRmOGZiNmMzY2Y0Yy4uMzcwMTczOWMwZWI4NmZkMGFhZWRiNDVkM2I2YzA1
MWY3YmRhNTNiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgyIEBACisyMDE0LTAzLTIzICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBSZWZhY3RvciBwb3N0LWF0dGFj
aCBhbmQgSFRNTE9iamVjdEVsZW1lbnQtcmVsYXRlZCBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzEyODIKKworICAgICAgICBSZXZpZXdlZCBi
eSBBbnR0aSBLb2l2aXN0by4KKworICAgICAgICAqIGRvbS9Db250YWluZXJOb2RlLmNwcDogTW92
ZWQgdGhlIHBvc3QtYXR0YWNoIGNhbGxiYWNrIGNvZGUgZnJvbSBoZXJlIHRvCisgICAgICAgIFN0
eWxlUmVzb2x2ZVRyZWUuaC9jcHAuCisgICAgICAgICogZG9tL0NvbnRhaW5lck5vZGUuaDogRGl0
dG8uCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnQ6OnJlY2FsY1N0eWxlKTogVXNlIFN0eWxlOjpQb3N0UmVzb2x1dGlvbkNhbGxiYWNrRGlz
YWJsZXIgaW5zdGVhZCBvZgorICAgICAgICBQb3N0QXR0YWNoQ2FsbGJhY2tEaXNhYmxlci4KKwor
ICAgICAgICAqIGRvbS9FbGVtZW50Lmg6IE1vdmVkIHRoZSBwb3N0LWF0dGFjaCBjYWxsYmFjayBj
b2RlIGZyb20gaGVyZSB0byBTdHlsZVJlc29sdmVUcmVlLmgvY3BwLgorCisgICAgICAgICogaHRt
bC9IVE1MRW1iZWRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbWJlZEVsZW1l
bnQ6OnBhcnNlQXR0cmlidXRlKTogU2ltcGxpZmllZCB0aGUgY29kZSBmb3IgdHlwZUF0dHIsIHR1
cm5pbmcKKyAgICAgICAgaXQgaW50byBhIDEtbGluZXIuIEFkZGVkIGEgRklYTUUgaW4gY29kZUF0
dHIgYWJvdXQgdGhlIGZhY3QgdGhhdCBpdCBkb2VzIG5vdCBoYXZlIHRoZQorICAgICAgICBjb2Rl
IHRvIHRyaWdnZXIgaW1hZ2UgbG9hZHMuCisKKyAgICAgICAgKiBodG1sL0hUTUxGb3JtQ29udHJv
bEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZvcm1Db250cm9sRWxlbWVudDo6
ZGlkQXR0YWNoUmVuZGVyZXJzKTogVXBkYXRlZCB0byB1c2UKKyAgICAgICAgU3R5bGU6OnF1ZXVl
UG9zdFJlc29sdXRpb25DYWxsYmFjayBhbmQgdXNlIGEgbGFtYmRhIGluc3RlYWQgb2YgYSBmdW5j
dGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmRpZFJlY2Fs
Y1N0eWxlKTogRGl0dG8uIEFsc28gYWRkZWQgUmVmUHRyIGluc3RlYWQKKyAgICAgICAgb2YganVz
dCB1c2luZyB3aXNoZnVsIHRoaW5raW5nIHRvIGtlZXAgdGhlIG9iamVjdCBhbGl2ZS4KKyAgICAg
ICAgKiBodG1sL0hUTUxGcmFtZU93bmVyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MRnJhbWVPd25lckVsZW1lbnQ6OnNjaGVkdWxlU2V0TmVlZHNTdHlsZVJlY2FsYyk6IERpdHRv
LgorCisgICAgICAgICogaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MT2JqZWN0RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUpOjogU2ltcGxpZmllZCB0aGUg
Y29kZSBmb3IgdHlwZUF0dHIsIHR1cm5pbmcKKyAgICAgICAgaXQgaW50byBhIDEtbGluZXIuIE1h
ZGUgZGF0YUF0dHIgY2FsbCBzZXROZWVkc1dpZGdldFVwZGF0ZSh0cnVlKSB1bmNvbmRpdGlvbmFs
bHkgYWZ0ZXIKKyAgICAgICAgY2hlY2tpbmcgY2FyZWZ1bGx5IHRvIHNlZSB0aGF0J3MgaGFybWxl
c3MgaWYgdGhlcmUgaXMgbm8gcmVuZGVyZXIuIENoYW5nZWQgY2xhc3NpZEF0dHIKKyAgICAgICAg
dG8gY2FsbCBzZXROZWVkc1dpZGdldFVwZGF0ZSh0cnVlKSB1bmNvbmRpdGlvbmFsbHkgYW5kIG5v
dCBzZXQgbV9jbGFzc0lkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9iamVjdEVsZW1lbnQ6OnNo
b3VsZEFsbG93UXVpY2tUaW1lQ2xhc3NJZFF1aXJrKTogVXNlIGZhc3RHZXRBdHRyaWJ1dGUKKyAg
ICAgICAgaW5zdGVhZCBvZiBjbGFzc0lkIGFuZCBkZXNjZW5kYW50c09mVHlwZSBpbnN0ZWFkIG9m
IGdldEVsZW1lbnRzQnlUYWdOYW1lLgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9iamVjdEVsZW1l
bnQ6Omhhc1ZhbGlkQ2xhc3NJZCk6IFVzZSBmYXN0R2V0QXR0cmlidXRlIGluc3RlYWQgb2YgY2xh
c3NJZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxPYmplY3RFbGVtZW50OjpyZW5kZXJGYWxsYmFj
a0NvbnRlbnQpOiBVc2UgaW1hZ2VMb2FkZXIgaW5zdGVhZCBvZiBtX2ltYWdlTG9hZGVyLgorCisg
ICAgICAgICogaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5oOiBSZW1vdmVkIGNsYXNzSWQsIHNpbmNl
IHRoZXJlIGlzIG5vIHJlYXNvbiB0byBjYWNoZSB0aGF0CisgICAgICAgIGF0dHJpYnV0ZSBpbiBh
IGRhdGEgbWVtYmVyLiBSZWFycmFuZ2VkIGhlYWRlciwgbWFraW5nIG1vcmUgcHJpdmF0ZSwgYW5k
IGZpeGluZyBzb21lIHR5cG9zLAorICAgICAgICBhbmQgZG9pbmcgYSAidXNpbmciIGluc3RlYWQg
b2YgYSBmdW5jdGlvbiB0byBkaXNhbWJpZ3VhdGUgdGhlIGluaGVyaXRlZCBmb3JtIGZ1bmN0aW9u
cy4KKworICAgICAgICAqIGh0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIp
OiBGaXhlZCBzb21lIGNvZGUgdGhhdCBhc3N1bWVkIHRoZQorICAgICAgICBmaXJzdCBjaGlsZCBv
ZiB0aGUgc2hhZG93IHJvb3QgaXMgZ3VhcmFudGVlZCB0byBiZSBhbiBlbGVtZW50LgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTFBsdWdJbkltYWdlRWxlbWVudDo6ZGlkTW92ZVRvTmV3RG9jdW1lbnQp
OiBSZW1vdmVkIG51bGwgY2hlY2sgb24gb2xkRG9jdW1lbnQsCisgICAgICAgIHNpbmNlIG1fbmVl
ZHNEb2N1bWVudEFjdGl2YXRpb25DYWxsYmFja3MgY2FuJ3QgYmUgdHJ1ZSBpZiB0aGUgb2xkIGRv
Y3VtZW50IHdhcyBudWxsLgorICAgICAgICAoV2ViQ29yZTo6aXMxMDBQZXJjZW50KTogQWRkZWQg
aGVscGVyIHRvIG1ha2UgZnVuY3Rpb24gYmVsb3cgbW9yZSByZWFkYWJsZS4KKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OnN1YmZyYW1lTG9hZGVyV2lsbENyZWF0ZVBs
dWdJbik6IFJlc3RydWN0dXJlZCB0aGUgY29kZSBhCisgICAgICAgIGJpdC4gVGhlIHBhcnQgdGhh
dCBhdHRyYWN0ZWQgbXkgYXR0ZW50aW9uIHdhcyB0aGUgbG9jYWwgdmFyaWFibGUgb2YgdHlwZSBS
ZW5kZXJCb3gsIHdoaWNoCisgICAgICAgIHdhcyBuYW1lZCByZW5kZXJFbWJlZGRlZE9iamVjdC4g
VHVybnMgb3V0IHRoZSBjYWxsZXIgZ3VhcmFudGVlcyB0byBvbmx5IGNhbGwgdGhpcyBpZiB0aGVy
ZQorICAgICAgICBpcyBhIHJlbmRlcmVyIG9mIHR5cGUgUmVuZGVyRW1iZWRkZWRPYmplY3QsIHNv
IGRlcGVuZCBvbiB0aGF0LgorCisgICAgICAgICogaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50
Lmg6IFRyaW1tZWQgaW5jbHVkZXMgYSBiaXQuIE1hZGUgbW9yZSBtZW1iZXJzIHByaXZhdGUuCisg
ICAgICAgIE1hcmtlZCBtb3JlIGZ1bmN0aW9uIG1lbWJlcnMgZmluYWwuIE1hZGUgYSBwcm90ZWN0
ZWQgaW1hZ2VMb2FkZXIgZnVuY3Rpb24gc28gdGhhdAorICAgICAgICBtX2ltYWdlTG9hZGVyIGNh
biBiZSBwcml2YXRlIGV2ZW50dWFsbHkuIE1hZGUgbV9pbWFnZUxvYWRlciBiZSBzdGQ6OnVuaXF1
ZV9wdHIuCisKKyAgICAgICAgKiBzdHlsZS9TdHlsZVJlc29sdmVUcmVlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlOjpuZWVkc1BzZXVkb0VsZW1lbnQpOiBGaXhlZCBzcGVsbGluZyBlcnJv
ciBpbiB0aGUgbmFtZSBvZiB0aGlzIGZ1bmN0aW9uLgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6
OmF0dGFjaEJlZm9yZU9yQWZ0ZXJQc2V1ZG9FbGVtZW50SWZOZWVkZWQpOiBVcGRhdGVkIGZvciBu
YW1lIGNoYW5nZS4KKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjphdHRhY2hSZW5kZXJUcmVlKTog
VXBkYXRlIGZvciBuZXcgbmFtZSBvZiBQb3N0UmVzb2x1dGlvbkNhbGxiYWNrRGlzYWJsZXIuCisg
ICAgICAgIChXZWJDb3JlOjpTdHlsZTo6dXBkYXRlQmVmb3JlT3JBZnRlclBzZXVkb0VsZW1lbnQp
OiBVcGRhdGVkIGZvciBuYW1lIGNoYW5nZS4KKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpwb3N0
UmVzb2x1dGlvbkNhbGxiYWNrUXVldWUpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlN0eWxl
OjpxdWV1ZVBvc3RSZXNvbHV0aW9uQ2FsbGJhY2spOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlN0eWxlOjpzdXNwZW5kTWVtb3J5Q2FjaGVDbGllbnRDYWxscyk6IEFkZGVkLiBUaGlzIGlzIGEg
c2lkZSBlZmZlY3Qgb2YgdGhlIG9yaWdpbmFsCisgICAgICAgIFBvc3RBdHRhY2hDYWxsYmFja0Rp
c2FibGVyIHRoYXQgaXMgbm93IGRvbmUgaW4gYSBjbGVhbmVyIHdheSwgdXNpbmcgdGhlIGNhbGxi
YWNrIHF1ZXVlLCBpbnN0ZWFkCisgICAgICAgIG9mIGFzIGEgc3BlY2lhbCBjYXNlLiBJdCBzaG91
bGQgbm90IHdvcmsgZm9yIG11bHRpcGxlIGRvY3VtZW50cyBhY3Jvc3MgbXVsdGlwbGUgcGFnZXMg
aW5zdGVhZCBvZgorICAgICAgICBvbmx5IHRoZSBvdXRlcm1vc3Qgb25lLgorICAgICAgICAoV2Vi
Q29yZTo6U3R5bGU6OlBvc3RSZXNvbHV0aW9uQ2FsbGJhY2tEaXNhYmxlcjo6UG9zdFJlc29sdXRp
b25DYWxsYmFja0Rpc2FibGVyKTogQWRkZWQuCisgICAgICAgIENhbGxzIHN1c3BlbmRNZW1vcnlD
YWNoZUNsaWVudENhbGxzLCBidXQgYSBGSVhNRSB0cmllcyB0byBwb2ludCBvdXQgd2h5IHRoYXQg
aXNuJ3Qgc28gZ3JlYXQuCisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6UG9zdFJlc29sdXRpb25D
YWxsYmFja0Rpc2FibGVyOjp+UG9zdFJlc29sdXRpb25DYWxsYmFja0Rpc2FibGVyKTogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6cG9zdFJlc29sdXRpb25DYWxsYmFja3NBcmVTdXNw
ZW5kZWQpOiBBZGRlZC4KKworICAgICAgICAqIHN0eWxlL1N0eWxlUmVzb2x2ZVRyZWUuaDogQWRk
ZWQgcXVldWVQb3N0UmVzb2x1dGlvbkNhbGxiYWNrIGFuZAorICAgICAgICBwb3N0UmVzb2x1dGlv
bkNhbGxiYWNrc0FyZVN1c3BlbmRlZC4gQWxzbyBhZGRlZCBQb3N0UmVzb2x1dGlvbkNhbGxiYWNr
RGlzYWJsZXIsIHdoaWNoIHNob3VsZAorICAgICAgICBldmVudHVhbGx5IGJlY29tZSBhIHByaXZh
dGUgaW1wbGVtZW50YXRpb24gZGV0YWlsLgorCiAyMDE0LTA0LTA0ICBCcmlhbiBKLiBCdXJnICA8
YnVyZ0Bjcy53YXNoaW5ndG9uLmVkdT4KIAogICAgICAgICBFbmFibGUgV0VCX1JFUExBWSBmb3Ig
UExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IGQ5YjU2NjliNGM2OWY0OTVhOWQzNjQw
ODE5NmNjY2NiZGNkNzAxMzQuLmNlOGEyMjE1MjFhZWQ3NDhkMzMxMDFjNTZjNWI4ZTYyN2FiNDk0
NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxNC0wMy0yMyAgRGFyaW4g
QWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVmYWN0b3IgcG9zdC1hdHRhY2gg
YW5kIEhUTUxPYmplY3RFbGVtZW50LXJlbGF0ZWQgY29kZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMxMjgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
QW50dGkgS29pdmlzdG8uCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5tbTogQ2FsbCB0b0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQgaW5zdGVhZCBvZgorICAg
ICAgICBkb2luZyBhIHN0YXRpY19jYXN0LgorCiAyMDE0LTA0LTA0ICBCcmlhbiBKLiBCdXJnICA8
YnVyZ0Bjcy53YXNoaW5ndG9uLmVkdT4KIAogICAgICAgICBFbmFibGUgV0VCX1JFUExBWSBmb3Ig
UExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5v
ZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCmluZGV4IGYzMmFh
YjQxNjhhMjU3MzBiYjE1NjBjOGQ2ZmVhYWVmOTU1YzA3ZjQuLmI4NGNjOWE0MDY2MGQzOWJlYzJj
MTYzYWU5OWMyMWJkM2NiMzc5NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250
YWluZXJOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAK
QEAgLTM3LDEzICszNywxMCBAQAogI2luY2x1ZGUgIkpTTGF6eUV2ZW50TGlzdGVuZXIuaCIKICNp
bmNsdWRlICJKU05vZGUuaCIKICNpbmNsdWRlICJMYWJlbHNOb2RlTGlzdC5oIgotI2luY2x1ZGUg
IkxvYWRlclN0cmF0ZWd5LmgiCi0jaW5jbHVkZSAiTWVtb3J5Q2FjaGUuaCIKICNpbmNsdWRlICJN
dXRhdGlvbkV2ZW50LmgiCiAjaW5jbHVkZSAiTmFtZU5vZGVMaXN0LmgiCiAjaW5jbHVkZSAiTm9k
ZVJhcmVEYXRhLmgiCiAjaW5jbHVkZSAiTm9kZVJlbmRlclN0eWxlLmgiCi0jaW5jbHVkZSAiUGxh
dGZvcm1TdHJhdGVnaWVzLmgiCiAjaW5jbHVkZSAiUmFkaW9Ob2RlTGlzdC5oIgogI2luY2x1ZGUg
IlJlbmRlckJveC5oIgogI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCkBAIC02MywxNSArNjAsNiBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBzdGF0aWMgdm9pZCBkaXNwYXRjaENoaWxkSW5zZXJ0aW9u
RXZlbnRzKE5vZGUmKTsKIHN0YXRpYyB2b2lkIGRpc3BhdGNoQ2hpbGRSZW1vdmFsRXZlbnRzKE5v
ZGUmKTsKIAotdHlwZWRlZiBzdGQ6OnBhaXI8UmVmUHRyPE5vZGU+LCB1bnNpZ25lZD4gQ2FsbGJh
Y2tQYXJhbWV0ZXJzOwotdHlwZWRlZiBzdGQ6OnBhaXI8Tm9kZUNhbGxiYWNrLCBDYWxsYmFja1Bh
cmFtZXRlcnM+IENhbGxiYWNrSW5mbzsKLXR5cGVkZWYgVmVjdG9yPENhbGxiYWNrSW5mbz4gTm9k
ZUNhbGxiYWNrUXVldWU7Ci0KLXN0YXRpYyBOb2RlQ2FsbGJhY2tRdWV1ZSogc19wb3N0QXR0YWNo
Q2FsbGJhY2tRdWV1ZTsKLQotc3RhdGljIHNpemVfdCBzX2F0dGFjaERlcHRoOwotc3RhdGljIGJv
b2wgc19zaG91bGRSZUVuYWJsZU1lbW9yeUNhY2hlQ2FsbHNBZnRlckF0dGFjaDsKLQogQ2hpbGRO
b2Rlc0xhenlTbmFwc2hvdCogQ2hpbGROb2Rlc0xhenlTbmFwc2hvdDo6bGF0ZXN0U25hcHNob3Qg
PSAwOwogCiAjaWZuZGVmIE5ERUJVRwpAQCAtNzU4LDY3ICs3NDYsNiBAQCB2b2lkIENvbnRhaW5l
ck5vZGU6OnBhcnNlckFwcGVuZENoaWxkKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQpCiAgICAg
bmV3Q2hpbGQtPnNldE5lZWRzU3R5bGVSZWNhbGMoUmVjb25zdHJ1Y3RSZW5kZXJUcmVlKTsKIH0K
IAotdm9pZCBDb250YWluZXJOb2RlOjpzdXNwZW5kUG9zdEF0dGFjaENhbGxiYWNrcyhEb2N1bWVu
dCYgZG9jdW1lbnQpCi17Ci0gICAgaWYgKCFzX2F0dGFjaERlcHRoKSB7Ci0gICAgICAgIEFTU0VS
VCghc19zaG91bGRSZUVuYWJsZU1lbW9yeUNhY2hlQ2FsbHNBZnRlckF0dGFjaCk7Ci0gICAgICAg
IGlmIChQYWdlKiBwYWdlID0gZG9jdW1lbnQucGFnZSgpKSB7Ci0gICAgICAgICAgICAvLyBGSVhN
RTogSG93IGNhbiB0aGlzIGNhbGwgYmUgc3BlY2lmaWMgdG8gb25lIFBhZ2UsIHdoaWxlIHRoZQot
ICAgICAgICAgICAgLy8gc19hdHRhY2hEZXB0aCBpcyBhIGdsb2JhbD8gRG9lc24ndCBtYWtlIHNl
bnNlLgotICAgICAgICAgICAgaWYgKHBhZ2UtPmFyZU1lbW9yeUNhY2hlQ2xpZW50Q2FsbHNFbmFi
bGVkKCkpIHsKLSAgICAgICAgICAgICAgICBwYWdlLT5zZXRNZW1vcnlDYWNoZUNsaWVudENhbGxz
RW5hYmxlZChmYWxzZSk7Ci0gICAgICAgICAgICAgICAgc19zaG91bGRSZUVuYWJsZU1lbW9yeUNh
Y2hlQ2FsbHNBZnRlckF0dGFjaCA9IHRydWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAg
ICAgICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPmxvYWRlclN0cmF0ZWd5KCktPnJlc291cmNlTG9h
ZFNjaGVkdWxlcigpLT5zdXNwZW5kUGVuZGluZ1JlcXVlc3RzKCk7Ci0gICAgfQotICAgICsrc19h
dHRhY2hEZXB0aDsKLX0KLQotdm9pZCBDb250YWluZXJOb2RlOjpyZXN1bWVQb3N0QXR0YWNoQ2Fs
bGJhY2tzKERvY3VtZW50JiBkb2N1bWVudCkKLXsKLSAgICBpZiAoc19hdHRhY2hEZXB0aCA9PSAx
KSB7Ci0gICAgICAgIFJlZjxEb2N1bWVudD4gcHJvdGVjdChkb2N1bWVudCk7Ci0KLSAgICAgICAg
aWYgKHNfcG9zdEF0dGFjaENhbGxiYWNrUXVldWUpCi0gICAgICAgICAgICBkaXNwYXRjaFBvc3RB
dHRhY2hDYWxsYmFja3MoKTsKLSAgICAgICAgaWYgKHNfc2hvdWxkUmVFbmFibGVNZW1vcnlDYWNo
ZUNhbGxzQWZ0ZXJBdHRhY2gpIHsKLSAgICAgICAgICAgIHNfc2hvdWxkUmVFbmFibGVNZW1vcnlD
YWNoZUNhbGxzQWZ0ZXJBdHRhY2ggPSBmYWxzZTsKLSAgICAgICAgICAgIGlmIChQYWdlKiBwYWdl
ID0gZG9jdW1lbnQucGFnZSgpKQotICAgICAgICAgICAgICAgIHBhZ2UtPnNldE1lbW9yeUNhY2hl
Q2xpZW50Q2FsbHNFbmFibGVkKHRydWUpOwotICAgICAgICB9Ci0gICAgICAgIHBsYXRmb3JtU3Ry
YXRlZ2llcygpLT5sb2FkZXJTdHJhdGVneSgpLT5yZXNvdXJjZUxvYWRTY2hlZHVsZXIoKS0+cmVz
dW1lUGVuZGluZ1JlcXVlc3RzKCk7Ci0gICAgfQotICAgIC0tc19hdHRhY2hEZXB0aDsKLX0KLQot
dm9pZCBDb250YWluZXJOb2RlOjpxdWV1ZVBvc3RBdHRhY2hDYWxsYmFjayhOb2RlQ2FsbGJhY2sg
Y2FsbGJhY2ssIE5vZGUmIG5vZGUsIHVuc2lnbmVkIGNhbGxiYWNrRGF0YSkKLXsKLSAgICBpZiAo
IXNfcG9zdEF0dGFjaENhbGxiYWNrUXVldWUpCi0gICAgICAgIHNfcG9zdEF0dGFjaENhbGxiYWNr
UXVldWUgPSBuZXcgTm9kZUNhbGxiYWNrUXVldWU7Ci0gICAgCi0gICAgc19wb3N0QXR0YWNoQ2Fs
bGJhY2tRdWV1ZS0+YXBwZW5kKENhbGxiYWNrSW5mbyhjYWxsYmFjaywgQ2FsbGJhY2tQYXJhbWV0
ZXJzKCZub2RlLCBjYWxsYmFja0RhdGEpKSk7Ci19Ci0KLWJvb2wgQ29udGFpbmVyTm9kZTo6cG9z
dEF0dGFjaENhbGxiYWNrc0FyZVN1c3BlbmRlZCgpCi17Ci0gICAgcmV0dXJuIHNfYXR0YWNoRGVw
dGg7Ci19Ci0KLXZvaWQgQ29udGFpbmVyTm9kZTo6ZGlzcGF0Y2hQb3N0QXR0YWNoQ2FsbGJhY2tz
KCkKLXsKLSAgICAvLyBXZSByZWNhbGN1bGF0ZSBzaXplKCkgZWFjaCB0aW1lIHRocm91Z2ggdGhl
IGxvb3AgYmVjYXVzZSBhIGNhbGxiYWNrCi0gICAgLy8gY2FuIGFkZCBtb3JlIGNhbGxiYWNrcyB0
byB0aGUgZW5kIG9mIHRoZSBxdWV1ZS4KLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNfcG9z
dEF0dGFjaENhbGxiYWNrUXVldWUtPnNpemUoKTsgKytpKSB7Ci0gICAgICAgIGNvbnN0IENhbGxi
YWNrSW5mbyYgaW5mbyA9ICgqc19wb3N0QXR0YWNoQ2FsbGJhY2tRdWV1ZSlbaV07Ci0gICAgICAg
IE5vZGVDYWxsYmFjayBjYWxsYmFjayA9IGluZm8uZmlyc3Q7Ci0gICAgICAgIENhbGxiYWNrUGFy
YW1ldGVycyBwYXJhbXMgPSBpbmZvLnNlY29uZDsKLQotICAgICAgICBjYWxsYmFjaygqcGFyYW1z
LmZpcnN0LCBwYXJhbXMuc2Vjb25kKTsKLSAgICB9Ci0gICAgc19wb3N0QXR0YWNoQ2FsbGJhY2tR
dWV1ZS0+Y2xlYXIoKTsKLX0KLQogdm9pZCBDb250YWluZXJOb2RlOjpjaGlsZHJlbkNoYW5nZWQo
Y29uc3QgQ2hpbGRDaGFuZ2UmIGNoYW5nZSkKIHsKICAgICBkb2N1bWVudCgpLmluY0RPTVRyZWVW
ZXJzaW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5o
IGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuaAppbmRleCA4YzE1NTYyMmRmOTJk
Mzc2M2ZkYTRkOTY4YWU3OTAxODgyMzY1ZDExLi4zMjFlZGE2YWIzZmE2NmEwZWIzMTM3ZjgzZTE0
YTU5ODg5OGQ2ZjA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9k
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmgKQEAgLTc5LDcgKzc5
LDYgQEAgcHJpdmF0ZToKIH07CiAKIGNsYXNzIENvbnRhaW5lck5vZGUgOiBwdWJsaWMgTm9kZSB7
Ci0gICAgZnJpZW5kIGNsYXNzIFBvc3RBdHRhY2hDYWxsYmFja0Rpc2FibGVyOwogcHVibGljOgog
ICAgIHZpcnR1YWwgfkNvbnRhaW5lck5vZGUoKTsKIApAQCAtMTQwLDkgKzEzOSw2IEBAIHB1Ymxp
YzoKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBDb250YWluZXJOb2RlKERvY3VtZW50JiwgQ29u
c3RydWN0aW9uVHlwZSA9IENyZWF0ZUNvbnRhaW5lcik7CiAKLSAgICBzdGF0aWMgdm9pZCBxdWV1
ZVBvc3RBdHRhY2hDYWxsYmFjayhOb2RlQ2FsbGJhY2ssIE5vZGUmLCB1bnNpZ25lZCA9IDApOwot
ICAgIHN0YXRpYyBib29sIHBvc3RBdHRhY2hDYWxsYmFja3NBcmVTdXNwZW5kZWQoKTsKLQogICAg
IHRlbXBsYXRlPGNsYXNzIEdlbmVyaWNOb2RlLCBjbGFzcyBHZW5lcmljTm9kZUNvbnRhaW5lcj4K
ICAgICBmcmllbmQgdm9pZCBhcHBlbmRDaGlsZFRvQ29udGFpbmVyKEdlbmVyaWNOb2RlKiBjaGls
ZCwgR2VuZXJpY05vZGVDb250YWluZXImKTsKIApAQCAtMTU3LDEwICsxNTMsNiBAQCBwcml2YXRl
OgogICAgIHZvaWQgcmVtb3ZlQmV0d2VlbihOb2RlKiBwcmV2aW91c0NoaWxkLCBOb2RlKiBuZXh0
Q2hpbGQsIE5vZGUmIG9sZENoaWxkKTsKICAgICB2b2lkIGluc2VydEJlZm9yZUNvbW1vbihOb2Rl
JiBuZXh0Q2hpbGQsIE5vZGUmIG9sZENoaWxkKTsKIAotICAgIHN0YXRpYyB2b2lkIGRpc3BhdGNo
UG9zdEF0dGFjaENhbGxiYWNrcygpOwotICAgIHN0YXRpYyB2b2lkIHN1c3BlbmRQb3N0QXR0YWNo
Q2FsbGJhY2tzKERvY3VtZW50Jik7Ci0gICAgc3RhdGljIHZvaWQgcmVzdW1lUG9zdEF0dGFjaENh
bGxiYWNrcyhEb2N1bWVudCYpOwotCiAgICAgYm9vbCBnZXRVcHBlckxlZnRDb3JuZXIoRmxvYXRQ
b2ludCYpIGNvbnN0OwogICAgIGJvb2wgZ2V0TG93ZXJSaWdodENvcm5lcihGbG9hdFBvaW50Jikg
Y29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDFlYjgwOTJiNmIyZjMzNmI5NzJk
MTkzNDFiNmYyZmYwMzEwYThlNmQuLmM4ZWU4YmEzMjU2MmRmNGZjMTljZTUwMzcwM2Y5YzY2NDVj
NmMzMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMTc1NCw3ICsxNzU0LDcgQEAgdm9p
ZCBEb2N1bWVudDo6cmVjYWxjU3R5bGUoU3R5bGU6OkNoYW5nZSBjaGFuZ2UpCiAKICAgICBtX2lu
U3R5bGVSZWNhbGMgPSB0cnVlOwogICAgIHsKLSAgICAgICAgUG9zdEF0dGFjaENhbGxiYWNrRGlz
YWJsZXIgZGlzYWJsZXIoKnRoaXMpOworICAgICAgICBTdHlsZTo6UG9zdFJlc29sdXRpb25DYWxs
YmFja0Rpc2FibGVyIGRpc2FibGVyKCp0aGlzKTsKICAgICAgICAgV2lkZ2V0SGllcmFyY2h5VXBk
YXRlc1N1c3BlbnNpb25TY29wZSBzdXNwZW5kV2lkZ2V0SGllcmFyY2h5VXBkYXRlczsKIAogICAg
ICAgICBpZiAobV9wZW5kaW5nU3R5bGVSZWNhbGNTaG91bGRGb3JjZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5o
CmluZGV4IDVkOTQ5YzAwM2Q1YjM5ZjM4NmNhN2M5ZjU1N2M2N2MyM2FlMTU0MWIuLmY5MjVhOGQ0
Y2YyM2FmZDExYzRhNTkzNjMyMjI4Y2MwNTQyZGM1MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaApAQCAt
Nzk2LDIzICs3OTYsNiBAQCBpbmxpbmUgVW5pcXVlRWxlbWVudERhdGEmIEVsZW1lbnQ6OmVuc3Vy
ZVVuaXF1ZUVsZW1lbnREYXRhKCkKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VW5pcXVlRWxlbWVu
dERhdGEmPigqbV9lbGVtZW50RGF0YSk7CiB9CiAKLWNsYXNzIFBvc3RBdHRhY2hDYWxsYmFja0Rp
c2FibGVyIHsKLXB1YmxpYzoKLSAgICBleHBsaWNpdCBQb3N0QXR0YWNoQ2FsbGJhY2tEaXNhYmxl
cihEb2N1bWVudCYgZG9jdW1lbnQpCi0gICAgICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKLSAg
ICB7Ci0gICAgICAgIEVsZW1lbnQ6OnN1c3BlbmRQb3N0QXR0YWNoQ2FsbGJhY2tzKG1fZG9jdW1l
bnQpOwotICAgIH0KLQotICAgIH5Qb3N0QXR0YWNoQ2FsbGJhY2tEaXNhYmxlcigpCi0gICAgewot
ICAgICAgICBFbGVtZW50OjpyZXN1bWVQb3N0QXR0YWNoQ2FsbGJhY2tzKG1fZG9jdW1lbnQpOwot
ICAgIH0KLQotcHJpdmF0ZToKLSAgICBEb2N1bWVudCYgbV9kb2N1bWVudDsKLX07Ci0KIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxFbWJlZEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRF
bGVtZW50LmNwcAppbmRleCAwOTZmNmZhMzE4MGQwMGQzMGYxZjMwNGUzMjRkYjdlYTcyMWRjZmE4
Li42N2I5NjZlOTc4MTM0ZWY0Y2U4NTE5YTQ0MzRhMDNjMDgxNmEwN2MxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5jcHAKQEAgLTk3LDIwICs5NywyMyBAQCB2b2lkIEhU
TUxFbWJlZEVsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJgogdm9pZCBIVE1MRW1iZWRFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKQogewog
ICAgIGlmIChuYW1lID09IHR5cGVBdHRyKSB7Ci0gICAgICAgIG1fc2VydmljZVR5cGUgPSB2YWx1
ZS5zdHJpbmcoKS5sb3dlcigpOwotICAgICAgICBzaXplX3QgcG9zID0gbV9zZXJ2aWNlVHlwZS5m
aW5kKCI7Iik7Ci0gICAgICAgIGlmIChwb3MgIT0gbm90Rm91bmQpCi0gICAgICAgICAgICBtX3Nl
cnZpY2VUeXBlID0gbV9zZXJ2aWNlVHlwZS5sZWZ0KHBvcyk7Ci0gICAgfSBlbHNlIGlmIChuYW1l
ID09IGNvZGVBdHRyKQorICAgICAgICBtX3NlcnZpY2VUeXBlID0gdmFsdWUuc3RyaW5nKCkubGVm
dCh2YWx1ZS5maW5kKCI7IikpLmxvd2VyKCk7CisgICAgICAgIC8vIEZJWE1FOiBUaGUgb25seSBk
aWZmZXJlbmNlIGJldHdlZW4gdGhpcyBhbmQgSFRNTE9iamVjdEVsZW1lbnQncyBjb3JyZXNwb25k
aW5nCisgICAgICAgIC8vIGNvZGUgaXMgdGhhdCBIVE1MT2JqZWN0RWxlbWVudCBkb2VzIHNldE5l
ZWRzV2lkZ2V0VXBkYXRlKHRydWUpLiBDb25zaWRlciBtb3ZpbmcKKyAgICAgICAgLy8gdGhpcyB1
cCB0byB0aGUgSFRNTFBsdWdJbkltYWdlRWxlbWVudCB0byBiZSBzaGFyZWQuCisgICAgfSBlbHNl
IGlmIChuYW1lID09IGNvZGVBdHRyKSB7CiAgICAgICAgIG1fdXJsID0gc3RyaXBMZWFkaW5nQW5k
VHJhaWxpbmdIVE1MU3BhY2VzKHZhbHVlKTsKLSAgICBlbHNlIGlmIChuYW1lID09IHNyY0F0dHIp
IHsKKyAgICAgICAgLy8gRklYTUU6IFdoeSBubyBjYWxsIHRvIHRoZSBpbWFnZSBsb2FkZXI/Cisg
ICAgICAgIC8vIEZJWE1FOiBJZiBib3RoIGNvZGUgYW5kIHNyYyBhdHRyaWJ1dGVzIGFyZSBzcGVj
aWZpZWQsIGxhc3Qgb25lIHBhcnNlZC9jaGFuZ2VkIHdpbnMuIFRoYXQgY2FuJ3QgYmUgcmlnaHQh
CisgICAgfSBlbHNlIGlmIChuYW1lID09IHNyY0F0dHIpIHsKICAgICAgICAgbV91cmwgPSBzdHJp
cExlYWRpbmdBbmRUcmFpbGluZ0hUTUxTcGFjZXModmFsdWUpOwogICAgICAgICBkb2N1bWVudCgp
LnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKICAgICAgICAgaWYgKHJlbmRlcmVyKCkgJiYgaXNJbWFn
ZVR5cGUoKSkgewogICAgICAgICAgICAgaWYgKCFtX2ltYWdlTG9hZGVyKQotICAgICAgICAgICAg
ICAgIG1faW1hZ2VMb2FkZXIgPSBhZG9wdFB0cihuZXcgSFRNTEltYWdlTG9hZGVyKCp0aGlzKSk7
CisgICAgICAgICAgICAgICAgbV9pbWFnZUxvYWRlciA9IHN0ZDo6bWFrZV91bmlxdWU8SFRNTElt
YWdlTG9hZGVyPigqdGhpcyk7CiAgICAgICAgICAgICBtX2ltYWdlTG9hZGVyLT51cGRhdGVGcm9t
RWxlbWVudElnbm9yaW5nUHJldmlvdXNFcnJvcigpOwogICAgICAgICB9CisgICAgICAgIC8vIEZJ
WE1FOiBJZiBib3RoIGNvZGUgYW5kIHNyYyBhdHRyaWJ1dGVzIGFyZSBzcGVjaWZpZWQsIGxhc3Qg
b25lIHBhcnNlZC9jaGFuZ2VkIHdpbnMuIFRoYXQgY2FuJ3QgYmUgcmlnaHQhCiAgICAgfSBlbHNl
CiAgICAgICAgIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZh
bHVlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9s
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQu
Y3BwCmluZGV4IDUwNDFhM2VkMzI5NTdhM2QxZjFiNzQyNWEzYmEwM2I0Y2M3ZTljY2YuLmUwYjg1
ZDU5NzBmODhiZDRjMDUxMmY1NzRjMmFiMWQ3ZjBjYTdmZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcApAQCAtMjA4LDEyICsyMDgsNiBAQCBz
dGF0aWMgYm9vbCBzaG91bGRBdXRvZm9jdXMoSFRNTEZvcm1Db250cm9sRWxlbWVudCogZWxlbWVu
dCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXN0YXRpYyB2b2lkIGZvY3VzUG9zdEF0dGFjaChO
b2RlJiBlbGVtZW50LCB1bnNpZ25lZCkKLXsgCi0gICAgdG9FbGVtZW50KGVsZW1lbnQpLmZvY3Vz
KCk7Ci0gICAgZWxlbWVudC5kZXJlZigpOwotfQotCiB2b2lkIEhUTUxGb3JtQ29udHJvbEVsZW1l
bnQ6OmRpZEF0dGFjaFJlbmRlcmVycygpCiB7CiAgICAgLy8gVGhlIGNhbGwgdG8gdXBkYXRlRnJv
bUVsZW1lbnQoKSBuZWVkcyB0byBnbyBhZnRlciB0aGUgY2FsbCB0aHJvdWdoCkBAIC0yMjQsOCAr
MjE4LDExIEBAIHZvaWQgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6ZGlkQXR0YWNoUmVuZGVyZXJz
KCkKIAogICAgIGlmIChzaG91bGRBdXRvZm9jdXModGhpcykpIHsKICAgICAgICAgc2V0QXV0b2Zv
Y3VzZWQoKTsKLSAgICAgICAgcmVmKCk7Ci0gICAgICAgIHF1ZXVlUG9zdEF0dGFjaENhbGxiYWNr
KGZvY3VzUG9zdEF0dGFjaCwgKnRoaXMpOworCisgICAgICAgIFJlZlB0cjxIVE1MRm9ybUNvbnRy
b2xFbGVtZW50PiBlbGVtZW50ID0gdGhpczsKKyAgICAgICAgU3R5bGU6OnF1ZXVlUG9zdFJlc29s
dXRpb25DYWxsYmFjayhbZWxlbWVudF0geworICAgICAgICAgICAgZWxlbWVudC0+Zm9jdXMoKTsK
KyAgICAgICAgfSk7CiAgICAgfQogfQogCkBAIC0yODgsMTggKzI4NSwxNyBAQCBib29sIEhUTUxG
b3JtQ29udHJvbEVsZW1lbnQ6OmlzUmVxdWlyZWQoKSBjb25zdAogICAgIHJldHVybiBtX2lzUmVx
dWlyZWQ7CiB9CiAKLXN0YXRpYyB2b2lkIHVwZGF0ZUZyb21FbGVtZW50Q2FsbGJhY2soTm9kZSYg
bm9kZSwgdW5zaWduZWQpCi17Ci0gICAgaWYgKGF1dG8gcmVuZGVyZXIgPSB0b0hUTUxGb3JtQ29u
dHJvbEVsZW1lbnQobm9kZSkucmVuZGVyZXIoKSkKLSAgICAgICAgcmVuZGVyZXItPnVwZGF0ZUZy
b21FbGVtZW50KCk7Ci19Ci0KIHZvaWQgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6ZGlkUmVjYWxj
U3R5bGUoU3R5bGU6OkNoYW5nZSkKIHsKICAgICAvLyB1cGRhdGVGcm9tRWxlbWVudCgpIGNhbiBj
YXVzZSB0aGUgc2VsZWN0aW9uIHRvIGNoYW5nZSwgYW5kIGluIHR1cm4KICAgICAvLyB0cmlnZ2Vy
IHN5bmNocm9ub3VzIGxheW91dCwgc28gaXQgbXVzdCBub3QgYmUgY2FsbGVkIGR1cmluZyBzdHls
ZSByZWNhbGMuCi0gICAgaWYgKHJlbmRlcmVyKCkpCi0gICAgICAgIHF1ZXVlUG9zdEF0dGFjaENh
bGxiYWNrKHVwZGF0ZUZyb21FbGVtZW50Q2FsbGJhY2ssICp0aGlzKTsKKyAgICBpZiAocmVuZGVy
ZXIoKSkgeworICAgICAgICBSZWZQdHI8SFRNTEZvcm1Db250cm9sRWxlbWVudD4gZWxlbWVudCA9
IHRoaXM7CisgICAgICAgIFN0eWxlOjpxdWV1ZVBvc3RSZXNvbHV0aW9uQ2FsbGJhY2soW2VsZW1l
bnRdeworICAgICAgICAgICAgaWYgKGF1dG8qIHJlbmRlcmVyID0gZWxlbWVudC0+cmVuZGVyZXIo
KSkKKyAgICAgICAgICAgICAgICByZW5kZXJlci0+dXBkYXRlRnJvbUVsZW1lbnQoKTsKKyAgICAg
ICAgfSk7CisgICAgfQogfQogCiBib29sIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OnN1cHBvcnRz
Rm9jdXMoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVP
d25lckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVPd25lckVsZW1l
bnQuY3BwCmluZGV4IDhjMThlYWIyZjkyYWQ3MjE1ZTdmM2FkNWY4YTdkMzMyODcxMWE3YWQuLjhi
N2I3MzllMTEwMWIzM2VmNWM3NTU1YjhiYjNlNDEzZTkyN2E0NGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lT3duZXJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxGcmFtZU93bmVyRWxlbWVudC5jcHAKQEAgLTEyMSwxNiArMTIxLDE0IEBA
IFNWR0RvY3VtZW50KiBIVE1MRnJhbWVPd25lckVsZW1lbnQ6OmdldFNWR0RvY3VtZW50KEV4Y2Vw
dGlvbkNvZGUmIGVjKSBjb25zdAogICAgIHJldHVybiAwOwogfQogCi1zdGF0aWMgdm9pZCBuZWVk
c1N0eWxlUmVjYWxjQ2FsbGJhY2soTm9kZSYgbm9kZSwgdW5zaWduZWQgZGF0YSkKLXsKLSAgICBu
b2RlLnNldE5lZWRzU3R5bGVSZWNhbGMoc3RhdGljX2Nhc3Q8U3R5bGVDaGFuZ2VUeXBlPihkYXRh
KSk7Ci19Ci0KIHZvaWQgSFRNTEZyYW1lT3duZXJFbGVtZW50OjpzY2hlZHVsZVNldE5lZWRzU3R5
bGVSZWNhbGMoU3R5bGVDaGFuZ2VUeXBlIGNoYW5nZVR5cGUpCiB7Ci0gICAgaWYgKHBvc3RBdHRh
Y2hDYWxsYmFja3NBcmVTdXNwZW5kZWQoKSkKLSAgICAgICAgcXVldWVQb3N0QXR0YWNoQ2FsbGJh
Y2sobmVlZHNTdHlsZVJlY2FsY0NhbGxiYWNrLCAqdGhpcywgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KGNoYW5nZVR5cGUpKTsKLSAgICBlbHNlCisgICAgaWYgKFN0eWxlOjpwb3N0UmVzb2x1dGlvbkNh
bGxiYWNrc0FyZVN1c3BlbmRlZCgpKSB7CisgICAgICAgIFJlZlB0cjxIVE1MRnJhbWVPd25lckVs
ZW1lbnQ+IGVsZW1lbnQgPSB0aGlzOworICAgICAgICBTdHlsZTo6cXVldWVQb3N0UmVzb2x1dGlv
bkNhbGxiYWNrKFtlbGVtZW50LCBjaGFuZ2VUeXBlXXsKKyAgICAgICAgICAgIGVsZW1lbnQtPnNl
dE5lZWRzU3R5bGVSZWNhbGMoY2hhbmdlVHlwZSk7CisgICAgICAgIH0pOworICAgIH0gZWxzZQog
ICAgICAgICBzZXROZWVkc1N0eWxlUmVjYWxjKGNoYW5nZVR5cGUpOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwCmluZGV4IGFlZjExYTg0NDQ5OWZjYTc3Y2Ux
ZDQ0MjEwMzc0ZDhhOWE5ZjFlMWMuLmIxNTg0NWZjYjk1NzBlZGY3MjEzZTdmMWRlZTg5MWFjZTMy
ZWZmYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwCkBAIC0x
MDcsMjggKzEwNywyMiBAQCB2b2lkIEhUTUxPYmplY3RFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdAogICAgIGlmIChuYW1lID09
IGZvcm1BdHRyKQogICAgICAgICBmb3JtQXR0cmlidXRlQ2hhbmdlZCgpOwogICAgIGVsc2UgaWYg
KG5hbWUgPT0gdHlwZUF0dHIpIHsKLSAgICAgICAgbV9zZXJ2aWNlVHlwZSA9IHZhbHVlLmxvd2Vy
KCk7Ci0gICAgICAgIHNpemVfdCBwb3MgPSBtX3NlcnZpY2VUeXBlLmZpbmQoIjsiKTsKLSAgICAg
ICAgaWYgKHBvcyAhPSBub3RGb3VuZCkKLSAgICAgICAgICAgIG1fc2VydmljZVR5cGUgPSBtX3Nl
cnZpY2VUeXBlLmxlZnQocG9zKTsKLSAgICAgICAgaWYgKHJlbmRlcmVyKCkpCi0gICAgICAgICAg
ICBzZXROZWVkc1dpZGdldFVwZGF0ZSh0cnVlKTsKKyAgICAgICAgbV9zZXJ2aWNlVHlwZSA9IHZh
bHVlLnN0cmluZygpLmxlZnQodmFsdWUuZmluZCgnOycpKS5sb3dlcigpOworICAgICAgICBzZXRO
ZWVkc1dpZGdldFVwZGF0ZSh0cnVlKTsKICAgICB9IGVsc2UgaWYgKG5hbWUgPT0gZGF0YUF0dHIp
IHsKICAgICAgICAgbV91cmwgPSBzdHJpcExlYWRpbmdBbmRUcmFpbGluZ0hUTUxTcGFjZXModmFs
dWUpOworICAgICAgICBzZXROZWVkc1dpZGdldFVwZGF0ZSh0cnVlKTsKICAgICAgICAgZG9jdW1l
bnQoKS51cGRhdGVTdHlsZUlmTmVlZGVkKCk7CiAgICAgICAgIGlmIChyZW5kZXJlcigpKSB7Ci0g
ICAgICAgICAgICBzZXROZWVkc1dpZGdldFVwZGF0ZSh0cnVlKTsKICAgICAgICAgICAgIGlmIChp
c0ltYWdlVHlwZSgpKSB7CiAgICAgICAgICAgICAgICAgaWYgKCFtX2ltYWdlTG9hZGVyKQotICAg
ICAgICAgICAgICAgICAgICBtX2ltYWdlTG9hZGVyID0gYWRvcHRQdHIobmV3IEhUTUxJbWFnZUxv
YWRlcigqdGhpcykpOworICAgICAgICAgICAgICAgICAgICBtX2ltYWdlTG9hZGVyID0gc3RkOjpt
YWtlX3VuaXF1ZTxIVE1MSW1hZ2VMb2FkZXI+KCp0aGlzKTsKICAgICAgICAgICAgICAgICBtX2lt
YWdlTG9hZGVyLT51cGRhdGVGcm9tRWxlbWVudElnbm9yaW5nUHJldmlvdXNFcnJvcigpOwogICAg
ICAgICAgICAgfQogICAgICAgICB9Ci0gICAgfSBlbHNlIGlmIChuYW1lID09IGNsYXNzaWRBdHRy
KSB7Ci0gICAgICAgIG1fY2xhc3NJZCA9IHZhbHVlOwotICAgICAgICBpZiAocmVuZGVyZXIoKSkK
LSAgICAgICAgICAgIHNldE5lZWRzV2lkZ2V0VXBkYXRlKHRydWUpOwotICAgIH0gZWxzZSBpZiAo
bmFtZSA9PSBvbmJlZm9yZWxvYWRBdHRyKQorICAgIH0gZWxzZSBpZiAobmFtZSA9PSBjbGFzc2lk
QXR0cikKKyAgICAgICAgc2V0TmVlZHNXaWRnZXRVcGRhdGUodHJ1ZSk7CisgICAgZWxzZSBpZiAo
bmFtZSA9PSBvbmJlZm9yZWxvYWRBdHRyKQogICAgICAgICBzZXRBdHRyaWJ1dGVFdmVudExpc3Rl
bmVyKGV2ZW50TmFtZXMoKS5iZWZvcmVsb2FkRXZlbnQsIG5hbWUsIHZhbHVlKTsKICAgICBlbHNl
CiAgICAgICAgIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZh
bHVlKTsKQEAgLTI1MSwyNiArMjQ1LDI0IEBAIGJvb2wgSFRNTE9iamVjdEVsZW1lbnQ6OnNob3Vs
ZEFsbG93UXVpY2tUaW1lQ2xhc3NJZFF1aXJrKCkKICAgICAvLyAnZ2VuZXJhdG9yJyBtZXRhIHRh
ZyBpcyBwcmVzZW50LiBPbmx5IGFwcGx5IHRoaXMgcXVpcmsgaWYgdGhlcmUgaXMgbm8KICAgICAv
LyBmYWxsYmFjayBjb250ZW50LCB3aGljaCBlbnN1cmVzIHRoZSBxdWlyayB3aWxsIGRpc2FibGUg
aXRzZWxmIGlmIFdpa2kKICAgICAvLyBTZXJ2ZXIgaXMgdXBkYXRlZCB0byBnZW5lcmF0ZSBhbiBh
bHRlcm5hdGUgZW1iZWQgdGFnIGFzIGZhbGxiYWNrIGNvbnRlbnQuCisKICAgICBpZiAoIWRvY3Vt
ZW50KCkucGFnZSgpCiAgICAgICAgIHx8ICFkb2N1bWVudCgpLnBhZ2UoKS0+c2V0dGluZ3MoKS5u
ZWVkc1NpdGVTcGVjaWZpY1F1aXJrcygpCiAgICAgICAgIHx8IGhhc0ZhbGxiYWNrQ29udGVudCgp
Ci0gICAgICAgIHx8ICFlcXVhbElnbm9yaW5nQ2FzZShjbGFzc0lkKCksICJjbHNpZDowMkJGMjVE
NS04QzE3LTRCMjMtQkM4MC1EMzQ4OEFCRERDNkIiKSkKKyAgICAgICAgfHwgIWVxdWFsSWdub3Jp
bmdDYXNlKGZhc3RHZXRBdHRyaWJ1dGUoY2xhc3NpZEF0dHIpLCAiY2xzaWQ6MDJCRjI1RDUtOEMx
Ny00QjIzLUJDODAtRDM0ODhBQkREQzZCIikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAg
IFJlZlB0cjxOb2RlTGlzdD4gbWV0YUVsZW1lbnRzID0gZG9jdW1lbnQoKS5nZXRFbGVtZW50c0J5
VGFnTmFtZShIVE1MTmFtZXM6Om1ldGFUYWcubG9jYWxOYW1lKCkpOwotICAgIHVuc2lnbmVkIGxl
bmd0aCA9IG1ldGFFbGVtZW50cy0+bGVuZ3RoKCk7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IGxlbmd0aDsgKytpKSB7Ci0gICAgICAgIEhUTUxNZXRhRWxlbWVudCYgbWV0YUVsZW1lbnQg
PSB0b0hUTUxNZXRhRWxlbWVudCgqbWV0YUVsZW1lbnRzLT5pdGVtKGkpKTsKKyAgICBmb3IgKGF1
dG8mIG1ldGFFbGVtZW50IDogZGVzY2VuZGFudHNPZlR5cGU8SFRNTE1ldGFFbGVtZW50Pihkb2N1
bWVudCgpKSkgewogICAgICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UobWV0YUVsZW1lbnQubmFt
ZSgpLCAiZ2VuZXJhdG9yIikgJiYgbWV0YUVsZW1lbnQuY29udGVudCgpLnN0YXJ0c1dpdGgoIk1h
YyBPUyBYIFNlcnZlciBXZWIgU2VydmljZXMgU2VydmVyIiwgZmFsc2UpKQogICAgICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgfQotICAgIAorCiAgICAgcmV0dXJuIGZhbHNlOwogfQogICAgIAog
Ym9vbCBIVE1MT2JqZWN0RWxlbWVudDo6aGFzVmFsaWRDbGFzc0lkKCkKIHsKLSAgICBpZiAoTUlN
RVR5cGVSZWdpc3RyeTo6aXNKYXZhQXBwbGV0TUlNRVR5cGUoc2VydmljZVR5cGUoKSkgJiYgY2xh
c3NJZCgpLnN0YXJ0c1dpdGgoImphdmE6IiwgZmFsc2UpKQorICAgIGlmIChNSU1FVHlwZVJlZ2lz
dHJ5Ojppc0phdmFBcHBsZXRNSU1FVHlwZShzZXJ2aWNlVHlwZSgpKSAmJiBmYXN0R2V0QXR0cmli
dXRlKGNsYXNzaWRBdHRyKS5zdGFydHNXaXRoKCJqYXZhOiIsIGZhbHNlKSkKICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgCiAgICAgaWYgKHNob3VsZEFsbG93UXVpY2tUaW1lQ2xhc3NJZFF1aXJr
KCkpCkBAIC0yNzgsNyArMjcwLDcgQEAgYm9vbCBIVE1MT2JqZWN0RWxlbWVudDo6aGFzVmFsaWRD
bGFzc0lkKCkKIAogICAgIC8vIEhUTUw1IHNheXMgdGhhdCBmYWxsYmFjayBjb250ZW50IHNob3Vs
ZCBiZSByZW5kZXJlZCBpZiBhIG5vbi1lbXB0eQogICAgIC8vIGNsYXNzaWQgaXMgc3BlY2lmaWVk
IGZvciB3aGljaCB0aGUgVUEgY2FuJ3QgZmluZCBhIHN1aXRhYmxlIHBsdWctaW4uCi0gICAgcmV0
dXJuIGNsYXNzSWQoKS5pc0VtcHR5KCk7CisgICAgcmV0dXJuIGZhc3RHZXRBdHRyaWJ1dGUoY2xh
c3NpZEF0dHIpLmlzRW1wdHkoKTsKIH0KIAogLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIHVuaWZp
ZWQgd2l0aCBIVE1MRW1iZWRFbGVtZW50Ojp1cGRhdGVXaWRnZXQgYW5kCkBAIC0zNzUsMjAgKzM2
NywyMiBAQCB2b2lkIEhUTUxPYmplY3RFbGVtZW50OjpyZW5kZXJGYWxsYmFja0NvbnRlbnQoKQog
ICAgIHNldE5lZWRzU3R5bGVSZWNhbGMoUmVjb25zdHJ1Y3RSZW5kZXJUcmVlKTsKIAogICAgIC8v
IEJlZm9yZSB3ZSBnaXZlIHVwIGFuZCB1c2UgZmFsbGJhY2sgY29udGVudCwgY2hlY2sgdG8gc2Vl
IGlmIHRoaXMgaXMgYSBNSU1FIHR5cGUgaXNzdWUuCi0gICAgaWYgKG1faW1hZ2VMb2FkZXIgJiYg
bV9pbWFnZUxvYWRlci0+aW1hZ2UoKSAmJiBtX2ltYWdlTG9hZGVyLT5pbWFnZSgpLT5zdGF0dXMo
KSAhPSBDYWNoZWRSZXNvdXJjZTo6TG9hZEVycm9yKSB7Ci0gICAgICAgIG1fc2VydmljZVR5cGUg
PSBtX2ltYWdlTG9hZGVyLT5pbWFnZSgpLT5yZXNwb25zZSgpLm1pbWVUeXBlKCk7CisgICAgYXV0
byogbG9hZGVyID0gaW1hZ2VMb2FkZXIoKTsKKyAgICBpZiAobG9hZGVyICYmIGxvYWRlci0+aW1h
Z2UoKSAmJiBsb2FkZXItPmltYWdlKCktPnN0YXR1cygpICE9IENhY2hlZFJlc291cmNlOjpMb2Fk
RXJyb3IpIHsKKyAgICAgICAgbV9zZXJ2aWNlVHlwZSA9IGxvYWRlci0+aW1hZ2UoKS0+cmVzcG9u
c2UoKS5taW1lVHlwZSgpOwogICAgICAgICBpZiAoIWlzSW1hZ2VUeXBlKCkpIHsKICAgICAgICAg
ICAgIC8vIElmIHdlIGRvbid0IHRoaW5rIHdlIGhhdmUgYW4gaW1hZ2UgdHlwZSBhbnltb3JlLCB0
aGVuIGNsZWFyIHRoZSBpbWFnZSBmcm9tIHRoZSBsb2FkZXIuCi0gICAgICAgICAgICBtX2ltYWdl
TG9hZGVyLT5zZXRJbWFnZSgwKTsKKyAgICAgICAgICAgIGxvYWRlci0+c2V0SW1hZ2UobnVsbHB0
cik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICB9CiAKICAgICBtX3VzZUZh
bGxiYWNrQ29udGVudCA9IHRydWU7CiAKLSAgICAvLyBUaGlzIGlzIGhlcmUgbWFpbmx5IHRvIGtl
ZXAgYWNpZDIgbm9uLWZsYWt5LiBBIHN0eWxlIHJlY2FsYyBpcyByZXF1aXJlZCB0byBtYWtlIGZh
bGxiYWNrIHJlc291cmNlcyB0byBsb2FkLiBXaXRob3V0IGZvcmNpbmcKLSAgICAvLyB0aGlzIG1h
eSBoYXBwZW4gYWZ0ZXIgYWxsIHRoZSBvdGhlciByZXNvdXJjZXMgaGF2ZSBiZWVuIGxvYWRlZCBh
bmQgdGhlIGRvY3VtZW50IGlzIGFscmVhZHkgY29uc2lkZXJlZCBjb21wbGV0ZS4KLSAgICAvLyBG
SVhNRTogRGlzZW50YW5nbGUgZmFsbGJhY2sgY29udGVudCBoYW5kbGluZyBmcm9tIHN0eWxlIHJl
Y2FsY3MuCisgICAgLy8gVGhpcyB3YXMgYWRkZWQgdG8ga2VlcCBBY2lkIDIgbm9uLWZsYWt5LiBB
IHN0eWxlIHJlY2FsYyBpcyByZXF1aXJlZCB0byBtYWtlIGZhbGxiYWNrIHJlc291cmNlcyBsb2Fk
LgorICAgIC8vIFdpdGhvdXQgZm9yY2luZywgdGhpcyBtYXkgaGFwcGVuIGFmdGVyIGFsbCB0aGUg
b3RoZXIgcmVzb3VyY2VzIGhhdmUgYmVlbiBsb2FkZWQgYW5kIHRoZSBkb2N1bWVudCBpcyBhbHJl
YWR5CisgICAgLy8gY29uc2lkZXJlZCBjb21wbGV0ZS4gRklYTUU6IFdvdWxkIGJlIGJldHRlciB0
byBhZGRyZXNzIHRoaXMgd2l0aCBpbmNyZW1lbnRMb2FkRXZlbnREZWxheUNvdW50IGluc3RlYWQK
KyAgICAvLyBvciBkaXNlbnRhbmdsZSBsb2FkaW5nIGZyb20gc3R5bGUgZW50aXJlbHkuCiAgICAg
ZG9jdW1lbnQoKS51cGRhdGVTdHlsZUlmTmVlZGVkKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE9iamVjdEVsZW1lbnQuaAppbmRleCA2MzZmNmQ2MjcwMjA1NzhkMzMyMTY3OTExZTkzNGUw
YWEzYmIwNDQyLi44N2ZlODQxNWMxMWQxMDVhYmUwNjJmNWU2Nzg0MWQ4MmMwZTk0N2FmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5oCkBAIC0zNiwzNCArMzYsMjIgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgfkhUTUxPYmplY3RFbGVtZW50KCk7CiAKICAgICBib29sIGlz
RG9jTmFtZWRJdGVtKCkgY29uc3QgeyByZXR1cm4gbV9kb2NOYW1lZEl0ZW07IH0KLQotICAgIGNv
bnN0IFN0cmluZyYgY2xhc3NJZCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xhc3NJZDsgfQotCiAgICAg
Ym9vbCBjb250YWluc0phdmFBcHBsZXQoKSBjb25zdDsKIAorICAgIGJvb2wgaGFzRmFsbGJhY2tD
b250ZW50KCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIHVzZUZhbGxiYWNrQ29udGVudCgpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fdXNlRmFsbGJhY2tDb250ZW50OyB9CiAgICAgdm9pZCBy
ZW5kZXJGYWxsYmFja0NvbnRlbnQoKTsKIAotICAgIC8vIEltcGxlbWVudGF0aW9ucyBvZiBGb3Jt
QXNzb2NpYXRlZEVsZW1lbnQKLSAgICBIVE1MRm9ybUVsZW1lbnQqIGZvcm0oKSBjb25zdCB7IHJl
dHVybiBGb3JtQXNzb2NpYXRlZEVsZW1lbnQ6OmZvcm0oKTsgfQotCi0gICAgdmlydHVhbCBib29s
IGlzRm9ybUNvbnRyb2xFbGVtZW50KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0K
LQotICAgIHZpcnR1YWwgYm9vbCBpc0VudW1lcmF0YWJsZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIGJvb2wgYXBwZW5kRm9ybURhdGEoRm9ybURhdGFMaXN0
JiwgYm9vbCkgb3ZlcnJpZGU7Ci0KLSAgICAvLyBJbXBsZW1lbnRhdGlvbnMgb2YgY29uc3RyYWlu
dCB2YWxpZGF0aW9uIEFQSS4KKyAgICAvLyBJbXBsZW1lbnRhdGlvbiBvZiBjb25zdHJhaW50IHZh
bGlkYXRpb24gQVBJLgogICAgIC8vIE5vdGUgdGhhdCB0aGUgb2JqZWN0IGVsZW1lbnRzIGFyZSBh
bHdheXMgYmFycmVkIGZyb20gY29uc3RyYWludCB2YWxpZGF0aW9uLgotICAgIHZpcnR1YWwgU3Ry
aW5nIHZhbGlkYXRpb25NZXNzYWdlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gU3RyaW5nKCk7
IH0KLSAgICBib29sIGNoZWNrVmFsaWRpdHkoKSB7IHJldHVybiB0cnVlOyB9CisgICAgc3RhdGlj
IGJvb2wgY2hlY2tWYWxpZGl0eSgpIHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIHZvaWQg
c2V0Q3VzdG9tVmFsaWRpdHkoY29uc3QgU3RyaW5nJikgb3ZlcnJpZGUgeyB9CisgICAgdmlydHVh
bCBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2UoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBTdHJp
bmcoKTsgfQogCi0gICAgdXNpbmcgTm9kZTo6cmVmOwotICAgIHVzaW5nIE5vZGU6OmRlcmVmOwot
Ci0gICAgdmlydHVhbCBib29sIGNhbkNvbnRhaW5SYW5nZUVuZFBvaW50KCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gdXNlRmFsbGJhY2tDb250ZW50KCk7IH0KKyAgICB1c2luZyBIVE1MUGx1Z0lu
SW1hZ2VFbGVtZW50OjpyZWY7CisgICAgdXNpbmcgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6ZGVy
ZWY7CiAKLSAgICBib29sIGhhc0ZhbGxiYWNrQ29udGVudCgpIGNvbnN0OworICAgIHVzaW5nIEZv
cm1Bc3NvY2lhdGVkRWxlbWVudDo6Zm9ybTsKIAogcHJpdmF0ZToKICAgICBIVE1MT2JqZWN0RWxl
bWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBIVE1MRm9ybUVsZW1lbnQqLCBi
b29sIGNyZWF0ZWRCeVBhcnNlcik7CkBAIC0xMDQsNyArOTIsMTMgQEAgcHJpdmF0ZToKICAgICB2
aXJ0dWFsIEhUTUxPYmplY3RFbGVtZW50JiBhc0hUTUxFbGVtZW50KCkgb3ZlcnJpZGUgZmluYWwg
eyByZXR1cm4gKnRoaXM7IH0KICAgICB2aXJ0dWFsIGNvbnN0IEhUTUxPYmplY3RFbGVtZW50JiBh
c0hUTUxFbGVtZW50KCkgY29uc3Qgb3ZlcnJpZGUgZmluYWwgeyByZXR1cm4gKnRoaXM7IH0KIAot
ICAgIFN0cmluZyBtX2NsYXNzSWQ7CisgICAgdmlydHVhbCBib29sIGlzRm9ybUNvbnRyb2xFbGVt
ZW50KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KKworICAgIHZpcnR1YWwgYm9v
bCBpc0VudW1lcmF0YWJsZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2
aXJ0dWFsIGJvb2wgYXBwZW5kRm9ybURhdGEoRm9ybURhdGFMaXN0JiwgYm9vbCkgb3ZlcnJpZGU7
CisKKyAgICB2aXJ0dWFsIGJvb2wgY2FuQ29udGFpblJhbmdlRW5kUG9pbnQoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiB1c2VGYWxsYmFja0NvbnRlbnQoKTsgfQorCiAgICAgYm9vbCBtX2RvY05h
bWVkSXRlbSA6IDE7CiAgICAgYm9vbCBtX3VzZUZhbGxiYWNrQ29udGVudCA6IDE7CiB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAKaW5kZXggZDZi
MDYxNTUwNzgyZTM5NWVjNmZkY2EzZjBhOGI0MzZiMzg2NTgwNC4uZjRkZmQxZjM3YTVjZTQyY2Ey
ZjI5ODI2YmRhMzhhM2U3YzQ2NGVkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQ
bHVnSW5JbWFnZUVsZW1lbnQuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAwOCwgMjAxMSwgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDgsIDIwMTEsIDIwMTIsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yMjcsMTEgKzIyNywxMiBAQCBSZW5k
ZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6Y3JlYXRlRWxlbWVu
dFJlbmRlcmVyKFBhc3NSZWY8UgogCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIGlmIChTaGFkb3dS
b290KiBzaGFkb3dSb290ID0gdGhpcy0+c2hhZG93Um9vdCgpKSB7Ci0gICAgICAgIEVsZW1lbnQq
IHNoYWRvd0VsZW1lbnQgPSB0b0VsZW1lbnQoc2hhZG93Um9vdC0+Zmlyc3RDaGlsZCgpKTsKLSAg
ICAgICAgaWYgKHNoYWRvd0VsZW1lbnQgJiYgc2hhZG93RWxlbWVudC0+c2hhZG93UHNldWRvSWQo
KSA9PSAiLWFwcGxlLXlvdXR1YmUtc2hhZG93LWlmcmFtZSIpCisgICAgICAgIE5vZGUqIHNoYWRv
d05vZGUgPSBzaGFkb3dSb290LT5maXJzdENoaWxkKCk7CisgICAgICAgIGlmIChzaGFkb3dOb2Rl
ICYmIHNoYWRvd05vZGUtPmlzRWxlbWVudE5vZGUoKSAmJiB0b0VsZW1lbnQoKnNoYWRvd05vZGUp
LnNoYWRvd1BzZXVkb0lkKCkgPT0gIi1hcHBsZS15b3V0dWJlLXNoYWRvdy1pZnJhbWUiKQogICAg
ICAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlckJsb2NrRmxvdz4oKnRoaXMsIHN0
ZDo6bW92ZShzdHlsZSkpOwogICAgIH0KICNlbmRpZgorCiAgICAgcmV0dXJuIEhUTUxQbHVnSW5F
bGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoc3RkOjptb3ZlKHN0eWxlKSk7CiB9CiAKQEAg
LTI0NywyNSArMjQ4LDMyIEBAIGJvb2wgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6d2lsbFJlY2Fs
Y1N0eWxlKFN0eWxlOjpDaGFuZ2UpCiB2b2lkIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OmRpZEF0
dGFjaFJlbmRlcmVycygpCiB7CiAgICAgaWYgKCFpc0ltYWdlVHlwZSgpKSB7Ci0gICAgICAgIHF1
ZXVlUG9zdEF0dGFjaENhbGxiYWNrKCZIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Ojp1cGRhdGVXaWRn
ZXRDYWxsYmFjaywgKnRoaXMpOworICAgICAgICBSZWZQdHI8SFRNTFBsdWdJbkltYWdlRWxlbWVu
dD4gZWxlbWVudCA9IHRoaXM7CisgICAgICAgIFN0eWxlOjpxdWV1ZVBvc3RSZXNvbHV0aW9uQ2Fs
bGJhY2soW2VsZW1lbnRdeworICAgICAgICAgICAgZWxlbWVudC0+dXBkYXRlV2lkZ2V0SWZOZWNl
c3NhcnkoKTsKKyAgICAgICAgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgaWYgKCFy
ZW5kZXJlcigpIHx8IHVzZUZhbGxiYWNrQ29udGVudCgpKQogICAgICAgICByZXR1cm47CiAKLSAg
ICAvLyBJbWFnZSBsb2FkIG1pZ2h0IGNvbXBsZXRlIHN5bmNocm9ub3VzbHkgYW5kIGNhdXNlIHVz
IHRvIHJlLWVudGVyIGF0dGFjaC4KLSAgICBxdWV1ZVBvc3RBdHRhY2hDYWxsYmFjaygmSFRNTFBs
dWdJbkltYWdlRWxlbWVudDo6c3RhcnRMb2FkaW5nSW1hZ2VDYWxsYmFjaywgKnRoaXMpOworICAg
IC8vIEltYWdlIGxvYWQgbWlnaHQgY29tcGxldGUgc3luY2hyb25vdXNseSBhbmQgY2F1c2UgdXMg
dG8gcmUtZW50ZXIuCisgICAgUmVmUHRyPEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ+IGVsZW1lbnQg
PSB0aGlzOworICAgIFN0eWxlOjpxdWV1ZVBvc3RSZXNvbHV0aW9uQ2FsbGJhY2soW2VsZW1lbnRd
eworICAgICAgICBlbGVtZW50LT5zdGFydExvYWRpbmdJbWFnZSgpOworICAgIH0pOwogfQogCiB2
b2lkIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OndpbGxEZXRhY2hSZW5kZXJlcnMoKQogewogICAg
IC8vIEZJWE1FOiBCZWNhdXNlIG9mIHRoZSBpbnNhbml0eSB0aGF0IGlzIEhUTUxQbHVnSW5JbWFn
ZUVsZW1lbnQ6OndpbGxSZWNhbGNTdHlsZSwKICAgICAvLyB3ZSBjYW4gZW5kIHVwIGRldGFjaGlu
ZyBkdXJpbmcgYW4gYXR0YWNoKCkgY2FsbCwgYmVmb3JlIHdlIGV2ZW4gaGF2ZSBhCi0gICAgLy8g
cmVuZGVyZXIuICBJbiB0aGF0IGNhc2UsIGRvbid0IG1hcmsgdGhlIHdpZGdldCBmb3IgdXBkYXRl
LgorICAgIC8vIHJlbmRlcmVyLiBJbiB0aGF0IGNhc2UsIGRvbid0IG1hcmsgdGhlIHdpZGdldCBm
b3IgdXBkYXRlLgogICAgIGlmIChyZW5kZXJlcigpICYmICF1c2VGYWxsYmFja0NvbnRlbnQoKSkg
ewogICAgICAgICAvLyBVcGRhdGUgdGhlIHdpZGdldCB0aGUgbmV4dCB0aW1lIHdlIGF0dGFjaCAo
ZGV0YWNoaW5nIGRlc3Ryb3lzIHRoZSBwbHVnaW4pLgogICAgICAgICBzZXROZWVkc1dpZGdldFVw
ZGF0ZSh0cnVlKTsKICAgICB9CisKICAgICBIVE1MUGx1Z0luRWxlbWVudDo6d2lsbERldGFjaFJl
bmRlcmVycygpOwogfQogCkBAIC0yOTYsMTMgKzMwNCwxMyBAQCB2b2lkIEhUTUxQbHVnSW5JbWFn
ZUVsZW1lbnQ6OmZpbmlzaFBhcnNpbmdDaGlsZHJlbigpCiB2b2lkIEhUTUxQbHVnSW5JbWFnZUVs
ZW1lbnQ6OmRpZE1vdmVUb05ld0RvY3VtZW50KERvY3VtZW50KiBvbGREb2N1bWVudCkKIHsKICAg
ICBpZiAobV9uZWVkc0RvY3VtZW50QWN0aXZhdGlvbkNhbGxiYWNrcykgewotICAgICAgICBpZiAo
b2xkRG9jdW1lbnQpCi0gICAgICAgICAgICBvbGREb2N1bWVudC0+dW5yZWdpc3RlckZvclBhZ2VD
YWNoZVN1c3BlbnNpb25DYWxsYmFja3ModGhpcyk7CisgICAgICAgIG9sZERvY3VtZW50LT51bnJl
Z2lzdGVyRm9yUGFnZUNhY2hlU3VzcGVuc2lvbkNhbGxiYWNrcyh0aGlzKTsKICAgICAgICAgZG9j
dW1lbnQoKS5yZWdpc3RlckZvclBhZ2VDYWNoZVN1c3BlbnNpb25DYWxsYmFja3ModGhpcyk7CiAg
ICAgfQogCiAgICAgaWYgKG1faW1hZ2VMb2FkZXIpCiAgICAgICAgIG1faW1hZ2VMb2FkZXItPmVs
ZW1lbnREaWRNb3ZlVG9OZXdEb2N1bWVudCgpOworCiAgICAgSFRNTFBsdWdJbkVsZW1lbnQ6OmRp
ZE1vdmVUb05ld0RvY3VtZW50KG9sZERvY3VtZW50KTsKIH0KIApAQCAtMzIxLDIzICszMjksMTMg
QEAgdm9pZCBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Ojpkb2N1bWVudERpZFJlc3VtZUZyb21QYWdl
Q2FjaGUoKQogICAgIEhUTUxQbHVnSW5FbGVtZW50Ojpkb2N1bWVudERpZFJlc3VtZUZyb21QYWdl
Q2FjaGUoKTsKIH0KIAotdm9pZCBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Ojp1cGRhdGVXaWRnZXRD
YWxsYmFjayhOb2RlJiBub2RlLCB1bnNpZ25lZCkKLXsKLSAgICB0b0hUTUxQbHVnSW5JbWFnZUVs
ZW1lbnQobm9kZSkudXBkYXRlV2lkZ2V0SWZOZWNlc3NhcnkoKTsKLX0KLQogdm9pZCBIVE1MUGx1
Z0luSW1hZ2VFbGVtZW50OjpzdGFydExvYWRpbmdJbWFnZSgpCiB7CiAgICAgaWYgKCFtX2ltYWdl
TG9hZGVyKQotICAgICAgICBtX2ltYWdlTG9hZGVyID0gYWRvcHRQdHIobmV3IEhUTUxJbWFnZUxv
YWRlcigqdGhpcykpOworICAgICAgICBtX2ltYWdlTG9hZGVyID0gc3RkOjptYWtlX3VuaXF1ZTxI
VE1MSW1hZ2VMb2FkZXI+KCp0aGlzKTsKICAgICBtX2ltYWdlTG9hZGVyLT51cGRhdGVGcm9tRWxl
bWVudCgpOwogfQogCi12b2lkIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OnN0YXJ0TG9hZGluZ0lt
YWdlQ2FsbGJhY2soTm9kZSYgbm9kZSwgdW5zaWduZWQpCi17Ci0gICAgdG9IVE1MUGx1Z0luSW1h
Z2VFbGVtZW50KG5vZGUpLnN0YXJ0TG9hZGluZ0ltYWdlKCk7Ci19Ci0KIHZvaWQgSFRNTFBsdWdJ
bkltYWdlRWxlbWVudDo6dXBkYXRlU25hcHNob3QoUGFzc1JlZlB0cjxJbWFnZT4gaW1hZ2UpCiB7
CiAgICAgaWYgKGRpc3BsYXlTdGF0ZSgpID4gRGlzcGxheWluZ1NuYXBzaG90KQpAQCAtNDM3LDE4
ICs0MzUsMTggQEAgdm9pZCBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpjcmVhdGVTaGFkb3dJRnJh
bWVTdWJ0cmVlKGNvbnN0IFN0cmluZyYgc3JjKQogICAgIFNoYWRvd1Jvb3QmIHJvb3QgPSB0aGlz
LT5lbnN1cmVVc2VyQWdlbnRTaGFkb3dSb290KCk7CiAgICAgcm9vdC5hcHBlbmRDaGlsZChzaGFk
b3dFbGVtZW50LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIAotICAgIFJlZlB0cjxIVE1MSUZyYW1l
RWxlbWVudD4gaWZyYW1lRWxlbWVudCA9IEhUTUxJRnJhbWVFbGVtZW50OjpjcmVhdGUoSFRNTE5h
bWVzOjppZnJhbWVUYWcsIGRvY3VtZW50KCkpOwotICAgIGlmIChoYXNBdHRyaWJ1dGUoSFRNTE5h
bWVzOjp3aWR0aEF0dHIpKQotICAgICAgICBpZnJhbWVFbGVtZW50LT5zZXRBdHRyaWJ1dGUoSFRN
TE5hbWVzOjp3aWR0aEF0dHIsIEF0b21pY1N0cmluZygiMTAwJSIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICBpZiAoaGFzQXR0cmlidXRlKEhUTUxOYW1lczo6aGVp
Z2h0QXR0cikpIHsKLSAgICAgICAgaWZyYW1lRWxlbWVudC0+c2V0QXR0cmlidXRlKEhUTUxOYW1l
czo6c3R5bGVBdHRyLCBBdG9taWNTdHJpbmcoIm1heC1oZWlnaHQ6IDEwMCUiLCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgICAgIGlmcmFtZUVsZW1lbnQtPnNldEF0
dHJpYnV0ZShIVE1MTmFtZXM6OmhlaWdodEF0dHIsIGdldEF0dHJpYnV0ZShIVE1MTmFtZXM6Omhl
aWdodEF0dHIpKTsKKyAgICBSZWZQdHI8SFRNTElGcmFtZUVsZW1lbnQ+IGlmcmFtZUVsZW1lbnQg
PSBIVE1MSUZyYW1lRWxlbWVudDo6Y3JlYXRlKGlmcmFtZVRhZywgZG9jdW1lbnQoKSk7CisgICAg
aWYgKGhhc0F0dHJpYnV0ZSh3aWR0aEF0dHIpKQorICAgICAgICBpZnJhbWVFbGVtZW50LT5zZXRB
dHRyaWJ1dGUod2lkdGhBdHRyLCBBdG9taWNTdHJpbmcoIjEwMCUiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgaWYgKGhhc0F0dHJpYnV0ZShoZWlnaHRBdHRyKSkg
eworICAgICAgICBpZnJhbWVFbGVtZW50LT5zZXRBdHRyaWJ1dGUoc3R5bGVBdHRyLCBBdG9taWNT
dHJpbmcoIm1heC1oZWlnaHQ6IDEwMCUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKSk7CisgICAgICAgIGlmcmFtZUVsZW1lbnQtPnNldEF0dHJpYnV0ZShoZWlnaHRBdHRyLCBn
ZXRBdHRyaWJ1dGUoaGVpZ2h0QXR0cikpOwogICAgIH0KLSAgICBpZnJhbWVFbGVtZW50LT5zZXRB
dHRyaWJ1dGUoSFRNTE5hbWVzOjpzcmNBdHRyLCBzcmMpOwotICAgIGlmcmFtZUVsZW1lbnQtPnNl
dEF0dHJpYnV0ZShIVE1MTmFtZXM6OmZyYW1lYm9yZGVyQXR0ciwgQXRvbWljU3RyaW5nKCIwIiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIGlmcmFtZUVsZW1lbnQt
PnNldEF0dHJpYnV0ZShzcmNBdHRyLCBzcmMpOworICAgIGlmcmFtZUVsZW1lbnQtPnNldEF0dHJp
YnV0ZShmcmFtZWJvcmRlckF0dHIsIEF0b21pY1N0cmluZygiMCIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpKTsKIAogICAgIC8vIERpc2FibGUgZnJhbWUgZmxhdHRlbmluZyBm
b3IgdGhpcyBpZnJhbWUuCi0gICAgaWZyYW1lRWxlbWVudC0+c2V0QXR0cmlidXRlKEhUTUxOYW1l
czo6c2Nyb2xsaW5nQXR0ciwgQXRvbWljU3RyaW5nKCJubyIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpKTsKKyAgICBpZnJhbWVFbGVtZW50LT5zZXRBdHRyaWJ1dGUoc2Nyb2xs
aW5nQXR0ciwgQXRvbWljU3RyaW5nKCJubyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpKTsKICAgICBzaGFkb3dFbGVtZW50LT5hcHBlbmRDaGlsZChpZnJhbWVFbGVtZW50LCBB
U1NFUlRfTk9fRVhDRVBUSU9OKTsKIH0KICNlbmRpZgpAQCAtNjEwLDYgKzYwOCwxMSBAQCB2b2lk
IEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OmNoZWNrU2l6ZUNoYW5nZUZvclNuYXBzaG90dGluZygp
CiAgICAgICAgIHRvUGx1Z2luVmlld0Jhc2Uod2lkZ2V0KS0+YmVnaW5TbmFwc2hvdHRpbmdSdW5u
aW5nUGx1Z2luKCk7CiB9CiAKK3N0YXRpYyBpbmxpbmUgYm9vbCBpczEwMFBlcmNlbnQoTGVuZ3Ro
IGxlbmd0aCkKK3sKKyAgICByZXR1cm4gbGVuZ3RoLmlzUGVyY2VudCgpICYmIGxlbmd0aC5wZXJj
ZW50KCkgPT0gMTAwOworfQorCiB2b2lkIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OnN1YmZyYW1l
TG9hZGVyV2lsbENyZWF0ZVBsdWdJbihjb25zdCBVUkwmIHVybCkKIHsKICAgICBMT0coUGx1Z2lu
cywgIiVwIFBsdWctaW4gVVJMOiAlcyIsIHRoaXMsIG1fdXJsLnV0ZjgoKS5kYXRhKCkpOwpAQCAt
Njk0LDI3ICs2OTcsMjcgQEAgdm9pZCBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpzdWJmcmFtZUxv
YWRlcldpbGxDcmVhdGVQbHVnSW4oY29uc3QgVVJMJiB1cmwpCiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKLSAgICBSZW5kZXJCb3gqIHJlbmRlckVtYmVkZGVkT2JqZWN0ID0gdG9SZW5kZXJCb3go
cmVuZGVyZXIoKSk7Ci0gICAgTGVuZ3RoIHN0eWxlV2lkdGggPSByZW5kZXJFbWJlZGRlZE9iamVj
dC0+c3R5bGUoKS53aWR0aCgpOwotICAgIExlbmd0aCBzdHlsZUhlaWdodCA9IHJlbmRlckVtYmVk
ZGVkT2JqZWN0LT5zdHlsZSgpLmhlaWdodCgpOwotICAgIExheW91dFJlY3QgY29udGVudEJveFJl
Y3QgPSByZW5kZXJFbWJlZGRlZE9iamVjdC0+Y29udGVudEJveFJlY3QoKTsKLSAgICBpbnQgY29u
dGVudFdpZHRoID0gY29udGVudEJveFJlY3Qud2lkdGgoKTsKLSAgICBpbnQgY29udGVudEhlaWdo
dCA9IGNvbnRlbnRCb3hSZWN0LmhlaWdodCgpOwotICAgIGludCBjb250ZW50QXJlYSA9IGNvbnRl
bnRXaWR0aCAqIGNvbnRlbnRIZWlnaHQ7Ci0gICAgSW50U2l6ZSB2aXNpYmxlVmlld1NpemUgPSBk
b2N1bWVudCgpLmZyYW1lKCktPnZpZXcoKS0+dmlzaWJsZVNpemUoKTsKLSAgICBpbnQgdmlzaWJs
ZUFyZWEgPSB2aXNpYmxlVmlld1NpemUud2lkdGgoKSAqIHZpc2libGVWaWV3U2l6ZS5oZWlnaHQo
KTsKLQotICAgIGlmIChpbk1haW5GcmFtZSAmJiBzdHlsZVdpZHRoLmlzUGVyY2VudCgpICYmIChz
dHlsZVdpZHRoLnBlcmNlbnQoKSA9PSAxMDApCi0gICAgICAgICYmIHN0eWxlSGVpZ2h0LmlzUGVy
Y2VudCgpICYmIChzdHlsZUhlaWdodC5wZXJjZW50KCkgPT0gMTAwKQotICAgICAgICAmJiAoc3Rh
dGljX2Nhc3Q8ZmxvYXQ+KGNvbnRlbnRBcmVhKSAvIHZpc2libGVBcmVhID4gc2l6aW5nRnVsbFBh
Z2VBcmVhUmF0aW9UaHJlc2hvbGQpKSB7Ci0gICAgICAgIExPRyhQbHVnaW5zLCAiJXAgUGx1Zy1p
biBpcyB0b3AgbGV2ZWwgZnVsbCBwYWdlLCBzZXQgdG8gcGxheSIsIHRoaXMpOwotICAgICAgICBt
X3NuYXBzaG90RGVjaXNpb24gPSBOZXZlclNuYXBzaG90OwotICAgICAgICByZXR1cm47CisgICAg
YXV0byYgcmVuZGVyZXIgPSB0b1JlbmRlckVtYmVkZGVkT2JqZWN0KCp0aGlzLT5yZW5kZXJlcigp
KTsKKyAgICBMYXlvdXRSZWN0IGNvbnRlbnRSZWN0ID0gcmVuZGVyZXIuY29udGVudEJveFJlY3Qo
KTsKKyAgICBpbnQgY29udGVudFdpZHRoID0gY29udGVudFJlY3Qud2lkdGgoKTsKKyAgICBpbnQg
Y29udGVudEhlaWdodCA9IGNvbnRlbnRSZWN0LmhlaWdodCgpOworCisgICAgaWYgKGluTWFpbkZy
YW1lKSB7CisgICAgICAgIGF1dG8mIHN0eWxlID0gcmVuZGVyZXIuc3R5bGUoKTsKKyAgICAgICAg
Ym9vbCBpc0Z1bGxQYWdlID0gaXMxMDBQZXJjZW50KHN0eWxlLndpZHRoKCkpICYmIGlzMTAwUGVy
Y2VudChzdHlsZS5oZWlnaHQoKSk7CisgICAgICAgIEludFNpemUgdmlzaWJsZVZpZXdTaXplID0g
ZG9jdW1lbnQoKS5mcmFtZSgpLT52aWV3KCktPnZpc2libGVTaXplKCk7CisgICAgICAgIGZsb2F0
IGNvbnRlbnRBcmVhID0gY29udGVudFdpZHRoICogY29udGVudEhlaWdodDsKKyAgICAgICAgZmxv
YXQgdmlzaWJsZUFyZWEgPSB2aXNpYmxlVmlld1NpemUud2lkdGgoKSAqIHZpc2libGVWaWV3U2l6
ZS5oZWlnaHQoKTsKKyAgICAgICAgaWYgKGlzRnVsbFBhZ2UgJiYgY29udGVudEFyZWEgPiB2aXNp
YmxlQXJlYSAqIHNpemluZ0Z1bGxQYWdlQXJlYVJhdGlvVGhyZXNob2xkKSB7CisgICAgICAgICAg
ICBMT0coUGx1Z2lucywgIiVwIFBsdWctaW4gaXMgdG9wIGxldmVsIGZ1bGwgcGFnZSwgc2V0IHRv
IHBsYXkiLCB0aGlzKTsKKyAgICAgICAgICAgIG1fc25hcHNob3REZWNpc2lvbiA9IE5ldmVyU25h
cHNob3Q7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KICAgICB9CiAKICAgICBpZiAo
Y29udGVudFdpZHRoIDw9IHNpemluZ1RpbnlEaW1lbnNpb25UaHJlc2hvbGQgfHwgY29udGVudEhl
aWdodCA8PSBzaXppbmdUaW55RGltZW5zaW9uVGhyZXNob2xkKSB7CiAgICAgICAgIExPRyhQbHVn
aW5zLCAiJXAgUGx1Zy1pbiBpcyB2ZXJ5IHNtYWxsICVkeCVkLCBzZXQgdG8gcGxheSIsIHRoaXMs
IGNvbnRlbnRXaWR0aCwgY29udGVudEhlaWdodCk7Ci0gICAgICAgIG1fc2l6ZVdoZW5TbmFwc2hv
dHRlZCA9IEludFNpemUoY29udGVudEJveFJlY3Qud2lkdGgoKS50b0ludCgpLCBjb250ZW50Qm94
UmVjdC5oZWlnaHQoKS50b0ludCgpKTsKKyAgICAgICAgbV9zaXplV2hlblNuYXBzaG90dGVkID0g
SW50U2l6ZShjb250ZW50V2lkdGgsIGNvbnRlbnRIZWlnaHQpOwogICAgICAgICBtX3NuYXBzaG90
RGVjaXNpb24gPSBNYXlTbmFwc2hvdFdoZW5SZXNpemVkOwogICAgICAgICByZXR1cm47CiAgICAg
fQpAQCAtNzI2LDcgKzcyOSw3IEBAIHZvaWQgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6c3ViZnJh
bWVMb2FkZXJXaWxsQ3JlYXRlUGx1Z0luKGNvbnN0IFVSTCYgdXJsKQogICAgICAgICByZXR1cm47
CiAgICAgfQogCi0gICAgTE9HKFBsdWdpbnMsICIlcCBQbHVnLWluIGZyb20gKCVzLCAlcykgaXMg
bm90IGF1dG8tc3RhcnQsIHNpemVkIGF0ICVkeCVkLCBzZXQgdG8gd2FpdCBmb3Igc25hcHNob3Qi
LCB0aGlzLCBkb2N1bWVudCgpLnBhZ2UoKS0+bWFpbkZyYW1lKCkuZG9jdW1lbnQoKS0+YmFzZVVS
TCgpLmhvc3QoKS51dGY4KCkuZGF0YSgpLCB1cmwuaG9zdCgpLnV0ZjgoKS5kYXRhKCksIGNvbnRl
bnRXaWR0aCwgY29udGVudEhlaWdodCk7CisgICAgTE9HKFBsdWdpbnMsICIlcCBQbHVnLWluIGZy
b20gKCVzLCAlcykgaXMgbm90IGF1dG8tc3RhcnQsIHNpemVkIGF0ICVkeCVkLCBzZXQgdG8gd2Fp
dCBmb3Igc25hcHNob3QiLCB0aGlzLCBkb2N1bWVudCgpLnRvcERvY3VtZW50KCkuYmFzZVVSTCgp
Lmhvc3QoKS51dGY4KCkuZGF0YSgpLCB1cmwuaG9zdCgpLnV0ZjgoKS5kYXRhKCksIGNvbnRlbnRX
aWR0aCwgY29udGVudEhlaWdodCk7CiAgICAgbV9zbmFwc2hvdERlY2lzaW9uID0gU25hcHNob3R0
ZWQ7CiAgICAgc2V0RGlzcGxheVN0YXRlKFdhaXRpbmdGb3JTbmFwc2hvdCk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5oCmluZGV4IDY1MWIxZGNlMGI4
ZTJhOWFiNjU1N2EzZDM3ZWE2ODAxMWQ5ZWMzZTQuLmJlYzFiMmNiYWU2YjY4YTY2ZWM1YjA4MTRm
YmIxYTJjZmQyMWQ1ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJ
bkltYWdlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdl
RWxlbWVudC5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAw
OSwgMjAxMSwgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMDgsIDIwMDksIDIwMTEsIDIwMTIsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yMywxNiArMjMsMTMgQEAKIAogI2lu
Y2x1ZGUgIkhUTUxQbHVnSW5FbGVtZW50LmgiCiAKLSNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgot
I2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBI
VE1MSW1hZ2VMb2FkZXI7Ci1jbGFzcyBIVE1MVmlkZW9FbGVtZW50OwogY2xhc3MgRnJhbWVMb2Fk
ZXI7CiBjbGFzcyBJbWFnZTsKIGNsYXNzIE1vdXNlRXZlbnQ7CitjbGFzcyBSZW5kZXJTdHlsZTsK
IGNsYXNzIFdpZGdldDsKIAogZW51bSBQbHVnaW5DcmVhdGlvbk9wdGlvbiB7CkBAIC00MCwxMiAr
MzcsOCBAQCBlbnVtIFBsdWdpbkNyZWF0aW9uT3B0aW9uIHsKICAgICBDcmVhdGVPbmx5Tm9uTmV0
c2NhcGVQbHVnaW5zLAogfTsKIAotZW51bSBQcmVmZXJQbHVnSW5zRm9ySW1hZ2VzT3B0aW9uIHsK
LSAgICBTaG91bGRQcmVmZXJQbHVnSW5zRm9ySW1hZ2VzLAotICAgIFNob3VsZE5vdFByZWZlclBs
dWdJbnNGb3JJbWFnZXMKLX07Ci0KLS8vIEJhc2UgY2xhc3MgZm9yIEhUTUxPYmplY3RFbGVtZW50
IGFuZCBIVE1MRW1iZWRFbGVtZW50CisvLyBCYXNlIGNsYXNzIGZvciBIVE1MQXBwbGV0RWxlbWVu
dCwgSFRNTEVtYmVkRWxlbWVudCwgYW5kIEhUTUxPYmplY3RFbGVtZW50LgorLy8gRklYTUU6IFNo
b3VsZCBIVE1MQXBwbGV0RWxlbWVudCBpbmhlcml0IGZyb20gSFRNTFBsdWdJbkVsZW1lbnQgZGly
ZWN0bHkgaW5zdGVhZD8KIGNsYXNzIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQgOiBwdWJsaWMgSFRN
TFBsdWdJbkVsZW1lbnQgewogcHVibGljOgogICAgIHZpcnR1YWwgfkhUTUxQbHVnSW5JbWFnZUVs
ZW1lbnQoKTsKQEAgLTEwNCw1NSArOTcsNTMgQEAgcHVibGljOgogICAgIFNuYXBzaG90RGVjaXNp
b24gc25hcHNob3REZWNpc2lvbigpIGNvbnN0IHsgcmV0dXJuIG1fc25hcHNob3REZWNpc2lvbjsg
fQogCiBwcm90ZWN0ZWQ6CisgICAgZW51bSBQcmVmZXJQbHVnSW5zRm9ySW1hZ2VzT3B0aW9uIHsg
U2hvdWxkUHJlZmVyUGx1Z0luc0ZvckltYWdlcywgU2hvdWxkTm90UHJlZmVyUGx1Z0luc0Zvcklt
YWdlcyB9OwogICAgIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
dGFnTmFtZSwgRG9jdW1lbnQmLCBib29sIGNyZWF0ZWRCeVBhcnNlciwgUHJlZmVyUGx1Z0luc0Zv
ckltYWdlc09wdGlvbik7CiAKLSAgICBib29sIGlzSW1hZ2VUeXBlKCk7Ci0KLSAgICBPd25QdHI8
SFRNTEltYWdlTG9hZGVyPiBtX2ltYWdlTG9hZGVyOwotICAgIFN0cmluZyBtX3NlcnZpY2VUeXBl
OwotICAgIFN0cmluZyBtX3VybDsKLSAgICBVUkwgbV9sb2FkZWRVcmw7Ci0KLSAgICBzdGF0aWMg
dm9pZCB1cGRhdGVXaWRnZXRDYWxsYmFjayhOb2RlJiwgdW5zaWduZWQpOwotICAgIHN0YXRpYyB2
b2lkIHN0YXJ0TG9hZGluZ0ltYWdlQ2FsbGJhY2soTm9kZSYsIHVuc2lnbmVkKTsKKyAgICB2aXJ0
dWFsIHZvaWQgZGlkTW92ZVRvTmV3RG9jdW1lbnQoRG9jdW1lbnQqIG9sZERvY3VtZW50KSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgcmVxdWVzdE9iamVjdChjb25zdCBTdHJpbmcmIHVybCwg
Y29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcmFtTmFtZXMs
IGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJhbVZhbHVlcykgb3ZlcnJpZGUgZmluYWw7CiAKLSAg
ICB2aXJ0dWFsIHZvaWQgZGlkQXR0YWNoUmVuZGVyZXJzKCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVh
bCB2b2lkIHdpbGxEZXRhY2hSZW5kZXJlcnMoKSBvdmVycmlkZTsKKyAgICBib29sIGlzSW1hZ2VU
eXBlKCk7CisgICAgSFRNTEltYWdlTG9hZGVyKiBpbWFnZUxvYWRlcigpIHsgcmV0dXJuIG1faW1h
Z2VMb2FkZXIuZ2V0KCk7IH0KIAogICAgIGJvb2wgYWxsb3dlZFRvTG9hZEZyYW1lVVJMKGNvbnN0
IFN0cmluZyYgdXJsKTsKICAgICBib29sIHdvdWxkTG9hZEFzTmV0c2NhcGVQbHVnaW4oY29uc3Qg
U3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgc2VydmljZVR5cGUpOwogCi0gICAgdmlydHVhbCB2
b2lkIGRpZE1vdmVUb05ld0RvY3VtZW50KERvY3VtZW50KiBvbGREb2N1bWVudCkgb3ZlcnJpZGU7
Ci0KLSAgICB2aXJ0dWFsIHZvaWQgZG9jdW1lbnRXaWxsU3VzcGVuZEZvclBhZ2VDYWNoZSgpIG92
ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBkb2N1bWVudERpZFJlc3VtZUZyb21QYWdlQ2FjaGUo
KSBvdmVycmlkZTsKKyAgICBTdHJpbmcgbV9zZXJ2aWNlVHlwZTsKKyAgICBTdHJpbmcgbV91cmw7
CiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNSZXN0YXJ0ZWRQbHVnaW4oKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiBtX2lzUmVzdGFydGVkUGx1Z2luOyB9Ci0gICAgdmlydHVhbCBib29sIHJlcXVlc3RP
YmplY3QoY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiBwYXJhbU5hbWVzLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1WYWx1
ZXMpIG92ZXJyaWRlOworICAgIHN0ZDo6dW5pcXVlX3B0cjxIVE1MSW1hZ2VMb2FkZXI+IG1faW1h
Z2VMb2FkZXI7CiAKIHByaXZhdGU6CisgICAgdmlydHVhbCBib29sIGlzUGx1Z0luSW1hZ2VFbGVt
ZW50KCkgY29uc3Qgb3ZlcnJpZGUgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwg
Ym9vbCBpc1Jlc3RhcnRlZFBsdWdpbigpIGNvbnN0IG92ZXJyaWRlIGZpbmFsIHsgcmV0dXJuIG1f
aXNSZXN0YXJ0ZWRQbHVnaW47IH0KKworICAgIHZpcnR1YWwgdm9pZCBmaW5pc2hQYXJzaW5nQ2hp
bGRyZW4oKSBvdmVycmlkZSBmaW5hbDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQWRkVXNlckFnZW50
U2hhZG93Um9vdChTaGFkb3dSb290Kikgb3ZlcnJpZGUgZmluYWw7CisKICAgICB2aXJ0dWFsIFJl
bmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5k
ZXJTdHlsZT4pIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgYm9vbCB3aWxsUmVjYWxjU3R5bGUoU3R5
bGU6OkNoYW5nZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIHdpbGxSZWNhbGNTdHlsZShT
dHlsZTo6Q2hhbmdlKSBvdmVycmlkZSBmaW5hbDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQXR0YWNo
UmVuZGVyZXJzKCkgb3ZlcnJpZGUgZmluYWw7CisgICAgdmlydHVhbCB2b2lkIHdpbGxEZXRhY2hS
ZW5kZXJlcnMoKSBvdmVycmlkZSBmaW5hbDsKIAotICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRVc2Vy
QWdlbnRTaGFkb3dSb290KFNoYWRvd1Jvb3QqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
ZG9jdW1lbnRXaWxsU3VzcGVuZEZvclBhZ2VDYWNoZSgpIG92ZXJyaWRlIGZpbmFsOworICAgIHZp
cnR1YWwgdm9pZCBkb2N1bWVudERpZFJlc3VtZUZyb21QYWdlQ2FjaGUoKSBvdmVycmlkZSBmaW5h
bDsKIAotICAgIHZpcnR1YWwgdm9pZCBmaW5pc2hQYXJzaW5nQ2hpbGRyZW4oKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCopIG92ZXJyaWRlIGZp
bmFsOworICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFBlbmRpbmdNb3VzZUNsaWNrKCkgb3ZlcnJp
ZGUgZmluYWw7CisKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlU25hcHNob3QoUGFzc1JlZlB0cjxJ
bWFnZT4pIG92ZXJyaWRlIGZpbmFsOwogCi0gICAgdm9pZCB1cGRhdGVXaWRnZXRJZk5lY2Vzc2Fy
eSgpOwogICAgIHZvaWQgc3RhcnRMb2FkaW5nSW1hZ2UoKTsKKyAgICB2b2lkIHVwZGF0ZVdpZGdl
dElmTmVjZXNzYXJ5KCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlU25hcHNob3QoUGFzc1Jl
ZlB0cjxJbWFnZT4pIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFBlbmRpbmdN
b3VzZUNsaWNrKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzaW11bGF0ZWRNb3VzZUNsaWNrVGltZXJG
aXJlZChEZWZlcnJhYmxlT25lU2hvdFRpbWVyPEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ+Jik7CiAK
ICAgICB2b2lkIHJlc3RhcnRTaW1pbGFyUGx1Z0lucygpOwotCi0gICAgdmlydHVhbCBib29sIGlz
UGx1Z0luSW1hZ2VFbGVtZW50KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQotCiAg
ICAgdm9pZCByZW1vdmVTbmFwc2hvdFRpbWVyRmlyZWQoVGltZXI8SFRNTFBsdWdJbkltYWdlRWxl
bWVudD4mKTsKIAotICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50Kikg
b3ZlcnJpZGU7Ci0KK3ByaXZhdGU6CisgICAgVVJMIG1fbG9hZGVkVXJsOwogICAgIGJvb2wgbV9u
ZWVkc1dpZGdldFVwZGF0ZTsKICAgICBib29sIG1fc2hvdWxkUHJlZmVyUGx1Z0luc0ZvckltYWdl
czsKICAgICBib29sIG1fbmVlZHNEb2N1bWVudEFjdGl2YXRpb25DYWxsYmFja3M7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVUcmVlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZVRyZWUuY3BwCmluZGV4IDEwNmMzODQ1YTNmNjE3NTlh
MmJiMWQ1NGRkY2JlMWI2YzMyODFkMDUuLjJiM2NjZjRmYWY2OWJiYTI3ZTVlYzcxMWE2NzQ4MTRi
MzA1NGU1YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZVRy
ZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZVRyZWUuY3BwCkBA
IC0yOSwyMCArMjksMjEgQEAKICNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAi
QW5pbWF0aW9uQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkNTU0ZvbnRTZWxlY3Rvci5oIgotI2lu
Y2x1ZGUgIkVsZW1lbnQuaCIKICNpbmNsdWRlICJFbGVtZW50SXRlcmF0b3IuaCIKICNpbmNsdWRl
ICJFbGVtZW50UmFyZURhdGEuaCIKICNpbmNsdWRlICJGbG93VGhyZWFkQ29udHJvbGxlci5oIgog
I2luY2x1ZGUgIkluc2VydGlvblBvaW50LmgiCisjaW5jbHVkZSAiTG9hZGVyU3RyYXRlZ3kuaCIK
ICNpbmNsdWRlICJOb2RlUmVuZGVyU3R5bGUuaCIKICNpbmNsdWRlICJOb2RlUmVuZGVyaW5nVHJh
dmVyc2FsLmgiCiAjaW5jbHVkZSAiTm9kZVRyYXZlcnNhbC5oIgotI2luY2x1ZGUgIlJlbmRlckVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCIKICNpbmNsdWRlICJSZW5k
ZXJGdWxsU2NyZWVuLmgiCiAjaW5jbHVkZSAiUmVuZGVyTmFtZWRGbG93VGhyZWFkLmgiCiAjaW5j
bHVkZSAiUmVuZGVyVGV4dC5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJS
ZW5kZXJXaWRnZXQuaCIKKyNpbmNsdWRlICJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaCIKICNpbmNs
dWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKICNpbmNsdWRlICJTdHls
ZVJlc29sdmVGb3JEb2N1bWVudC5oIgpAQCAtNTc1LDcgKzU3Niw3IEBAIHN0YXRpYyB2b2lkIGF0
dGFjaEJlZm9yZU9yQWZ0ZXJQc2V1ZG9FbGVtZW50SWZOZWVkZWQoRWxlbWVudCYgY3VycmVudCwg
UHNldWRvSWQKIAogc3RhdGljIHZvaWQgYXR0YWNoUmVuZGVyVHJlZShFbGVtZW50JiBjdXJyZW50
LCBDb250YWluZXJOb2RlJiByZW5kZXJpbmdQYXJlbnROb2RlLCBSZW5kZXJUcmVlUG9zaXRpb24m
IHJlbmRlclRyZWVQb3NpdGlvbiwgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gcmVzb2x2ZWRTdHls
ZSkKIHsKLSAgICBQb3N0QXR0YWNoQ2FsbGJhY2tEaXNhYmxlciBjYWxsYmFja0Rpc2FibGVyKGN1
cnJlbnQuZG9jdW1lbnQoKSk7CisgICAgUG9zdFJlc29sdXRpb25DYWxsYmFja0Rpc2FibGVyIGNh
bGxiYWNrRGlzYWJsZXIoY3VycmVudC5kb2N1bWVudCgpKTsKICAgICBXaWRnZXRIaWVyYXJjaHlV
cGRhdGVzU3VzcGVuc2lvblNjb3BlIHN1c3BlbmRXaWRnZXRIaWVyYXJjaHlVcGRhdGVzOwogCiAg
ICAgaWYgKGN1cnJlbnQuaGFzQ3VzdG9tU3R5bGVSZXNvbHZlQ2FsbGJhY2tzKCkpCkBAIC05Njcs
NSArOTY4LDY2IEBAIHZvaWQgZGV0YWNoUmVuZGVyVHJlZShFbGVtZW50JiBlbGVtZW50KQogICAg
IGRldGFjaFJlbmRlclRyZWUoZWxlbWVudCwgTm9ybWFsRGV0YWNoKTsKIH0KIAorc3RhdGljIFZl
Y3RvcjxzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+PiYgcG9zdFJlc29sdXRpb25DYWxsYmFja1F1ZXVl
KCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VmVjdG9yPHN0ZDo6ZnVuY3Rpb248dm9p
ZCAoKT4+PiB2ZWN0b3I7CisgICAgcmV0dXJuIHZlY3RvcjsKK30KKwordm9pZCBxdWV1ZVBvc3RS
ZXNvbHV0aW9uQ2FsbGJhY2soc3RkOjpmdW5jdGlvbjx2b2lkICgpPiBjYWxsYmFjaykKK3sKKyAg
ICBwb3N0UmVzb2x1dGlvbkNhbGxiYWNrUXVldWUoKS5hcHBlbmQoY2FsbGJhY2spOworfQorCitz
dGF0aWMgdm9pZCBzdXNwZW5kTWVtb3J5Q2FjaGVDbGllbnRDYWxscyhEb2N1bWVudCYgZG9jdW1l
bnQpCit7CisgICAgUGFnZSogcGFnZSA9IGRvY3VtZW50LnBhZ2UoKTsKKyAgICBpZiAoIXBhZ2Ug
fHwgIXBhZ2UtPmFyZU1lbW9yeUNhY2hlQ2xpZW50Q2FsbHNFbmFibGVkKCkpCisgICAgICAgIHJl
dHVybjsKKworICAgIHBhZ2UtPnNldE1lbW9yeUNhY2hlQ2xpZW50Q2FsbHNFbmFibGVkKGZhbHNl
KTsKKworICAgIFJlZlB0cjxEb2N1bWVudD4gcHJvdGVjdGVkRG9jdW1lbnQgPSAmZG9jdW1lbnQ7
CisgICAgcG9zdFJlc29sdXRpb25DYWxsYmFja1F1ZXVlKCkuYXBwZW5kKFtwcm90ZWN0ZWREb2N1
bWVudF17CisgICAgICAgIC8vIEZJWE1FOiBJZiB0aGUgZG9jdW1lbnQgYmVjb21lcyB1bmFzc29j
aWF0ZWQgd2l0aCB0aGUgcGFnZSBkdXJpbmcgc3R5bGUgcmVzb2x1dGlvbgorICAgICAgICAvLyB0
aGVuIHRoaXMgd29uJ3Qgd29yayBhbmQgdGhlIG1lbW9yeSBjYWNoZSBjbGllbnQgY2FsbHMgd2ls
bCBiZSBwZXJtYW5lbnRseSBkaXNhYmxlZC4KKyAgICAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBwcm90
ZWN0ZWREb2N1bWVudC0+cGFnZSgpKQorICAgICAgICAgICAgcGFnZS0+c2V0TWVtb3J5Q2FjaGVD
bGllbnRDYWxsc0VuYWJsZWQodHJ1ZSk7CisgICAgfSk7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBy
ZXNvbHV0aW9uTmVzdGluZ0RlcHRoOworCitQb3N0UmVzb2x1dGlvbkNhbGxiYWNrRGlzYWJsZXI6
OlBvc3RSZXNvbHV0aW9uQ2FsbGJhY2tEaXNhYmxlcihEb2N1bWVudCYgZG9jdW1lbnQpCit7Cisg
ICAgKytyZXNvbHV0aW9uTmVzdGluZ0RlcHRoOworCisgICAgaWYgKHJlc29sdXRpb25OZXN0aW5n
RGVwdGggPT0gMSkKKyAgICAgICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPmxvYWRlclN0cmF0ZWd5
KCktPnJlc291cmNlTG9hZFNjaGVkdWxlcigpLT5zdXNwZW5kUGVuZGluZ1JlcXVlc3RzKCk7CisK
KyAgICAvLyBGSVhNRTogSXQncyBzdHJhbmdlIHRvIGJ1aWxkIHRoaXMgaW50byB0aGUgZGlzYWJs
ZXIuCisgICAgc3VzcGVuZE1lbW9yeUNhY2hlQ2xpZW50Q2FsbHMoZG9jdW1lbnQpOworfQorCitQ
b3N0UmVzb2x1dGlvbkNhbGxiYWNrRGlzYWJsZXI6On5Qb3N0UmVzb2x1dGlvbkNhbGxiYWNrRGlz
YWJsZXIoKQoreworICAgIGlmIChyZXNvbHV0aW9uTmVzdGluZ0RlcHRoID09IDEpIHsKKyAgICAg
ICAgLy8gR2V0IHNpemUgZWFjaCB0aW1lIHRocm91Z2ggdGhlIGxvb3AgYmVjYXVzZSBhIGNhbGxi
YWNrIGNhbiBhZGQgbW9yZSBjYWxsYmFja3MgdG8gdGhlIGVuZCBvZiB0aGUgcXVldWUuCisgICAg
ICAgIGF1dG8mIHF1ZXVlID0gcG9zdFJlc29sdXRpb25DYWxsYmFja1F1ZXVlKCk7CisgICAgICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcXVldWUuc2l6ZSgpOyArK2kpCisgICAgICAgICAgICBx
dWV1ZVtpXSgpOworICAgICAgICBxdWV1ZS5jbGVhcigpOworCisgICAgICAgIHBsYXRmb3JtU3Ry
YXRlZ2llcygpLT5sb2FkZXJTdHJhdGVneSgpLT5yZXNvdXJjZUxvYWRTY2hlZHVsZXIoKS0+cmVz
dW1lUGVuZGluZ1JlcXVlc3RzKCk7CisgICAgfQorCisgICAgLS1yZXNvbHV0aW9uTmVzdGluZ0Rl
cHRoOworfQorCitib29sIHBvc3RSZXNvbHV0aW9uQ2FsbGJhY2tzQXJlU3VzcGVuZGVkKCkKK3sK
KyAgICByZXR1cm4gcmVzb2x1dGlvbk5lc3RpbmdEZXB0aDsKK30KKwogfQogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlVHJlZS5oIGIvU291cmNlL1dlYkNv
cmUvc3R5bGUvU3R5bGVSZXNvbHZlVHJlZS5oCmluZGV4IDU1YWFkMDUwNTcwZjE1ZWRlMmM0NmNl
MDVhY2FjOThlOTc3NmIwYWEuLjdkZDI1MWI5Mzc1NmM4N2U3MzI5MTEyNWNkODhiYjM0YzA2ZGI3
ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZVRyZWUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVUcmVlLmgKQEAgLTI2LDYgKzI2
LDggQEAKICNpZm5kZWYgU3R5bGVSZXNvbHZlVHJlZV9oCiAjZGVmaW5lIFN0eWxlUmVzb2x2ZVRy
ZWVfaAogCisjaW5jbHVkZSA8ZnVuY3Rpb25hbD4KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBEb2N1bWVudDsKQEAgLTQ3LDYgKzQ5LDE1IEBAIHZvaWQgdXBkYXRlVGV4dFJlbmRlcmVy
QWZ0ZXJDb250ZW50Q2hhbmdlKFRleHQmLCB1bnNpZ25lZCBvZmZzZXRPZlJlcGxhY2VkRGF0YSwK
IAogQ2hhbmdlIGRldGVybWluZUNoYW5nZShjb25zdCBSZW5kZXJTdHlsZSosIGNvbnN0IFJlbmRl
clN0eWxlKik7CiAKK3ZvaWQgcXVldWVQb3N0UmVzb2x1dGlvbkNhbGxiYWNrKHN0ZDo6ZnVuY3Rp
b248dm9pZCAoKT4pOworYm9vbCBwb3N0UmVzb2x1dGlvbkNhbGxiYWNrc0FyZVN1c3BlbmRlZCgp
OworCitjbGFzcyBQb3N0UmVzb2x1dGlvbkNhbGxiYWNrRGlzYWJsZXIgeworcHVibGljOgorICAg
IGV4cGxpY2l0IFBvc3RSZXNvbHV0aW9uQ2FsbGJhY2tEaXNhYmxlcihEb2N1bWVudCYpOworICAg
IH5Qb3N0UmVzb2x1dGlvbkNhbGxiYWNrRGlzYWJsZXIoKTsKK307CisKIH0KIAogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5tbQppbmRleCBmNGZmZmQ1MWIwMTk1MTZjNDU1NzczZjM3NTJmMDBmNzNkNjkzMjIzLi4w
NzkwNjhmNTgwYzdiZGI5ZGYwMGE2YmFjMjIzYmJmNTFiOGU1ZDJjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5t
bQpAQCAtMjEwMCw4ICsyMTAwLDcgQEAgUGFzc1JlZlB0cjxXaWRnZXQ+IFdlYkZyYW1lTG9hZGVy
Q2xpZW50OjpjcmVhdGVQbHVnaW4oY29uc3QgSW50U2l6ZSYgc2l6ZSwgSFRNTFAKIAogICAgICAg
ICAgICAgICAgICAgICBpZiAoZWxlbWVudC0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OmVtYmVkVGFn
KSB8fCBlbGVtZW50LT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6b2JqZWN0VGFnKSkgewogICAgICAg
ICAgICAgICAgICAgICAgICAgLy8gQ3JlYXRlIGEgc2hhZG93IHN1YnRyZWUgZm9yIHRoZSBwbHVn
aW4gZWxlbWVudCwgdGhlIGlmcmFtZSBwbGF5ZXIgaXMgaW5qZWN0ZWQgaW4gdGhlIHNoYWRvdyB0
cmVlLgotICAgICAgICAgICAgICAgICAgICAgICAgSFRNTFBsdWdJbkltYWdlRWxlbWVudCogcGx1
Z2luRWxlbWVudCA9IHN0YXRpY19jYXN0PEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQqPihlbGVtZW50
KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHBsdWdpbkVsZW1lbnQtPmNyZWF0ZVNoYWRvd0lG
cmFtZVN1YnRyZWUoZW1iZWRTcmMpOworICAgICAgICAgICAgICAgICAgICAgICAgdG9IVE1MUGx1
Z0luSW1hZ2VFbGVtZW50KCplbGVtZW50KS5jcmVhdGVTaGFkb3dJRnJhbWVTdWJ0cmVlKGVtYmVk
U3JjKTsKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICAg
ICAgICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlYjBmN2U2N2NhZGVkODI1YTIyOTZkOWE3NWZkZmJiYTc4
NzdhYjQxLi43YjRkY2QzNTI2ZGI1MjA5OWY0ZjNhMTQ4MDk4ZTBmZTA2ZmI1ZDk2IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMTQtMDMtMjMgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29t
PgorCisgICAgICAgIFJlZmFjdG9yIHBvc3QtYXR0YWNoIGFuZCBIVE1MT2JqZWN0RWxlbWVudC1y
ZWxhdGVkIGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEzMTI4MgorCisgICAgICAgIFJldmlld2VkIGJ5IEFudHRpIEtvaXZpc3RvLgorCisgICAg
ICAgICogc3ZnL2N1c3RvbS9vYmplY3Qtbm8tc2l6ZS1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dDog
UmVtb3ZlZCBleHBlY3RhdGlvbiBvZiBhbiBlbXB0eSB0ZXh0CisgICAgICAgIHJlbmRlcmVyIGZy
b20gdGhlIHJlbmRlciB0cmVlLgorICAgICAgICAqIHN2Zy9jdXN0b20vb2JqZWN0LW5vLXNpemUt
YXR0cmlidXRlcy54aHRtbDogUmVzdHJ1Y3R1cmVkIHRoZSBzb3VyY2Ugc28gdGhlcmUgaXMgbm8g
dGV4dAorICAgICAgICB0byByZW5kZXIuIFdpdGhvdXQgdGhpcywgd2Ugd2VyZSBzZWVpbmcgdHdv
IHRleHQgcmVuZGVyZXJzIGR1ZSB0byB0aGUgbG9hZGluZyB0aW1pbmcgY2hhbmdlLgorCiAyMDE0
LTA0LTA1ICBEaXJrIFNjaHVsemUgIDxrcml0QHdlYmtpdC5vcmc+CiAKICAgICAgICAgQ2FudmFz
IHN0cm9rZVRleHQgYW5kIGZpbGxUZXh0IHdpdGggU291cmNlSW4sIERlc3RpbmF0aW9uSW4sIFNv
dXJjZU91dCwgRGVzdGluYXRpb25BdG9wIGFuZCBDb3B5IGhhdmUgZXJyb3JzCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL29iamVjdC1uby1zaXplLWF0dHJpYnV0ZXMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9vYmplY3Qtbm8tc2l6ZS1hdHRyaWJ1dGVz
LWV4cGVjdGVkLnR4dAppbmRleCA0Yzc3ZjI1MDY3NGZkN2Y0ZTkyOGZlNTgzMTQwNzAxYTAxYTBi
NmY4Li5lN2VmNjI1ZjFiZGY3MmI1NDYwOTNiNWZjZjZlNjg4ZDYzNjQ2NDI2IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL29iamVjdC1uby1zaXplLWF0dHJpYnV0ZXMtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vb2JqZWN0LW5vLXNpemUtYXR0cmli
dXRlcy1leHBlY3RlZC50eHQKQEAgLTksNCArOSwzIEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAw
eDEyMAogICAgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDEwMHgxMDAKICAgICAgICAgICBSZW5k
ZXJTVkdSb290IHtzdmd9IGF0ICgwLDApIHNpemUgMTAweDEwMAogICAgICAgICAgICAgUmVuZGVy
U1ZHUmVjdCB7cmVjdH0gYXQgKDAsMCkgc2l6ZSAxMDB4MTAwIFtmaWxsPXtbdHlwZT1TT0xJRF0g
W2NvbG9yPSMwMDgwMDBdfV0gW3g9MC4wMF0gW3k9MC4wMF0gW3dpZHRoPTEwMC4wMF0gW2hlaWdo
dD0xMDAuMDBdCi0gICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vb2JqZWN0LW5vLXNpemUtYXR0cmlidXRl
cy54aHRtbCBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vb2JqZWN0LW5vLXNpemUtYXR0cmlidXRl
cy54aHRtbAppbmRleCBjZTIxOTc1MmEwYTUzMWQxNDk3YjE4ZDUwNTE5M2E4NzE1OTlkN2JlLi42
MWVhYTk3NDg1ODQwZDdlMDE3NTc2YzM0YjEyNzRmZjRiM2Q3NWE0IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9zdmcvY3VzdG9tL29iamVjdC1uby1zaXplLWF0dHJpYnV0ZXMueGh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9vYmplY3Qtbm8tc2l6ZS1hdHRyaWJ1dGVzLnhodG1sCkBA
IC0xLDkgKzEsNyBAQAogPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAx
LjAgU3RyaWN0Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0
cmljdC5kdGQiPgogPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHht
bDpsYW5nPSJlbiI+CiA8Ym9keT4KLTxvYmplY3QgdHlwZT0iaW1hZ2Uvc3ZnK3htbCIgZGF0YT0i
ZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmLTgsJTNDc3ZnJTIwd2lkdGglM0QlMjIxMDBw
eCUyMiUyMGhlaWdodCUzRCUyMjEwMHB4JTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3
LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlM0UlM0NyZWN0JTIwZmlsbCUzRCUyMmdyZWVuJTIyJTIw
d2lkdGglM0QlMjIxMDBweCUyMiUyMGhlaWdodCUzRCUyMjEwMHB4JTIyJTIwJTJGJTNFJTNDJTJG
c3ZnJTNFIiBzdHlsZT0nYmFja2dyb3VuZDogcmVkJz48L29iamVjdD4KLQotPCEtLQorPG9iamVj
dCB0eXBlPSJpbWFnZS9zdmcreG1sIiBkYXRhPSJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11
dGYtOCwlM0NzdmclMjB3aWR0aCUzRCUyMjEwMHB4JTIyJTIwaGVpZ2h0JTNEJTIyMTAwcHglMjIl
MjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUzRSUz
Q3JlY3QlMjBmaWxsJTNEJTIyZ3JlZW4lMjIlMjB3aWR0aCUzRCUyMjEwMHB4JTIyJTIwaGVpZ2h0
JTNEJTIyMTAwcHglMjIlMjAlMkYlM0UlM0MlMkZzdmclM0UiIHN0eWxlPSdiYWNrZ3JvdW5kOiBy
ZWQnPjwvb2JqZWN0PjwhLS0KIDEwMHB4IHggMTAwcHggU1ZHCiAKIENvZGU6CkBAIC0xMyw3ICsx
MSw1IEBAIENvZGU6CiA8L3N2Zz4KIAogWW91IHNob3VsZCBzZWUgYSAxMDAgeCAxMDAgZ3JlZW4g
c3F1YXJlIGFib3ZlLiAgTm8gcmVkIHNob3VsZCBiZSB2aXNpYmxlLiAgJmx0O29iamVjdCZndDsg
dGFncyBzaG91bGQgdHJlYXQgdGhlIHdpZHRoL2hlaWdodCBhdHRyaWJ1dGVzIG9uIGFuIGVtYmVk
ZWQgU1ZHIGFzIHRoZSBpbnRyaW5zaWMgc2l6ZSBhbmQgbm90IGRlZmF1bHQgdG8gdGhlIENTUyBk
ZWZhdWx0IG9mIDMwMCB4IDE1MC4KLS0tPgotCi08L2JvZHk+CistLT48L2JvZHk+CiA8L2h0bWw+
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>