<?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>189128</bug_id>
          
          <creation_ts>2018-08-29 16:47:50 -0700</creation_ts>
          <short_desc>IntersectionObserver leaks documents</short_desc>
          <delta_ts>2018-09-18 20:55:49 -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>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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>159475</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Ali Juma">ajuma</assigned_to>
          <cc>ajuma</cc>
    
    <cc>ap</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tsavell</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1455015</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-08-29 16:47:50 -0700</bug_when>
    <thetext>Testing with changes from bug 186214, I see that the following IntersectionObserver tests leak their documents:

imported/w3c/web-platform-tests/intersection-observer/client-rect.html
imported/w3c/web-platform-tests/intersection-observer/cross-origin-iframe.html
imported/w3c/web-platform-tests/intersection-observer/disconnect.html
imported/w3c/web-platform-tests/intersection-observer/isIntersecting-change-events.html
imported/w3c/web-platform-tests/intersection-observer/observer-attributes.html
imported/w3c/web-platform-tests/intersection-observer/shadow-content.html
imported/w3c/web-platform-tests/intersection-observer/text-target.html
imported/w3c/web-platform-tests/intersection-observer/timestamp.html
imported/w3c/web-platform-tests/intersection-observer/unclipped-root.html
imported/w3c/web-platform-tests/intersection-observer/zero-area-element-hidden.html
imported/w3c/web-platform-tests/intersection-observer/zero-area-element-visible.html

In manual testing, I see that the IntersectionObserver never goes away, which retains the callback, which retains the Document.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455392</commentid>
    <comment_count>1</comment_count>
    <who name="Ali Juma">ajuma</who>
    <bug_when>2018-08-30 13:48:36 -0700</bug_when>
    <thetext>Started looking into this. Using the approach from bug 186873 (making the callback a WeakCallback and using [CustomIsReachable] to add logic to keep the callback alive as long as we need it) seems to be the way to go here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1456883</commentid>
    <comment_count>2</comment_count>
      <attachid>348969</attachid>
    <who name="Ali Juma">ajuma</who>
    <bug_when>2018-09-05 15:05:06 -0700</bug_when>
    <thetext>Created attachment 348969
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1456892</commentid>
    <comment_count>3</comment_count>
      <attachid>348969</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-09-05 15:22:13 -0700</bug_when>
    <thetext>Comment on attachment 348969
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        Currently,`Documents own IntersectionObservers while IntersectionObservers own callbacks

Errant backtick.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1457043</commentid>
    <comment_count>4</comment_count>
      <attachid>349020</attachid>
    <who name="Ali Juma">ajuma</who>
    <bug_when>2018-09-06 06:09:25 -0700</bug_when>
    <thetext>Created attachment 349020
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1457060</commentid>
    <comment_count>5</comment_count>
      <attachid>349020</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-09-06 06:51:33 -0700</bug_when>
    <thetext>Comment on attachment 349020
Patch for landing

Clearing flags on attachment: 349020

Committed r235736: &lt;https://trac.webkit.org/changeset/235736&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1457061</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-09-06 06:51:34 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1457062</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-09-06 06:52:34 -0700</bug_when>
    <thetext>&lt;rdar://problem/44180008&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1460690</commentid>
    <comment_count>8</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2018-09-18 13:08:17 -0700</bug_when>
    <thetext>Looks like the new test added in: https://trac.webkit.org/changeset/235736/webkit

Is a flakey timeout: intersection-observer/no-document-leak.html

History:
https://webkit-test-results.webkit.org/dashboards/flakiness_dashboard.html#showAllRuns=true&amp;tests=intersection-observer%2Fno-document-leak.html

Diff:
https://build.webkit.org/results/Apple%20Sierra%20Release%20WK1%20(Tests)/r236149%20(12846)/intersection-observer/no-document-leak-pretty-diff.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1460849</commentid>
    <comment_count>9</comment_count>
    <who name="Ali Juma">ajuma</who>
    <bug_when>2018-09-18 20:55:49 -0700</bug_when>
    <thetext>(In reply to Truitt Savell from comment #8)
&gt; Looks like the new test added in:
&gt; https://trac.webkit.org/changeset/235736/webkit
&gt; 
&gt; Is a flakey timeout: intersection-observer/no-document-leak.html
&gt; 
&gt; History:
&gt; https://webkit-test-results.webkit.org/dashboards/flakiness_dashboard.
&gt; html#showAllRuns=true&amp;tests=intersection-observer%2Fno-document-leak.html
&gt; 
&gt; Diff:
&gt; https://build.webkit.org/results/Apple%20Sierra%20Release%20WK1%20(Tests)/
&gt; r236149%20(12846)/intersection-observer/no-document-leak-pretty-diff.html

Tracking this in https://bugs.webkit.org/show_bug.cgi?id=189731.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348969</attachid>
            <date>2018-09-05 15:05:06 -0700</date>
            <delta_ts>2018-09-06 06:09:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189128-20180905180505.patch</filename>
            <type>text/plain</type>
            <size>18953</size>
            <attacher name="Ali Juma">ajuma</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NTE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWM0ZGRlM2YyYjUyMjVm
NWE3M2ZiM2Q3MTIyMWM1OTZmZjg2MzIyMi4uMzhkNDRiYzQzNDU1NWFmYzQ2ZDY4MTI4OWU4OGQ5
OGUzYTcwNmM1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDE4LTA5LTA1ICBBbGkg
SnVtYSAgPGFqdW1hQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbnRlcnNlY3Rpb25PYnNlcnZl
ciBsZWFrcyBkb2N1bWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE4OTEyOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEN1cnJlbnRseSxgRG9jdW1lbnRzIG93biBJbnRlcnNlY3Rpb25PYnNlcnZlcnMg
d2hpbGUgSW50ZXJzZWN0aW9uT2JzZXJ2ZXJzIG93biBjYWxsYmFja3MKKyAgICAgICAgdGhhdCBo
YXZlIHN0cm9uZyByZWZlcmVuY2VzIHRvIERvY3VtZW50cy4gVG8gYnJlYWsgdGhpcyBjeWNsZSwg
bWFrZSBEb2N1bWVudHMgb25seSBoYXZlCisgICAgICAgIHdlYWsgcG9pbnRlcnMgdG8gSW50ZXJz
ZWN0aW9uT2JzZXJ2ZXJzLiBJbnN0ZWFkLCBtYW5hZ2UgdGhlIGxpZmV0aW1lIG9mIGFuCisgICAg
ICAgIEludGVyc2VjdGlvbk9ic2VydmVyIGFzIGFuIEFjdGl2ZURPTU9iamVjdCwgb3ZlcnJpZGlu
ZyBoYXNQZW5kaW5nQWN0aXZpdHkgdG8ga2VlcAorICAgICAgICB0aGUgb2JzZXJ2ZXIgYWxpdmUg
d2hpbGUgdGhlcmUgYXJlIG9uZ29pbmcgb2JzZXJ2YXRpb25zLgorCisgICAgICAgIEhvd2V2ZXIs
IHRoZXJlIGlzIGEgc3RpbGwgYSBwb3RlbnRpYWwgcmVmZXJlbmNlIGN5Y2xlLiBUaGUgY2FsbGJh
Y2sga2VlcHMgZ2xvYmFsCisgICAgICAgIHJlZmVyZW5jZXMgYWxpdmUsIHNvIGlmIHRoZXJlJ3Mg
YSBnbG9iYWwgcmVmZXJlbmNlIHRvIHRoZSBvYnNlcnZlciBpbiBKYXZhU2NyaXB0LAorICAgICAg
ICB3ZSBoYXZlIGFuIG9ic2VydmVyLT5jYWxsYmFjay0+b2JzZXJ2ZXIgY3ljbGUsIGtlZXBpbmcg
dGhlIGNhbGxiYWNrIChhbmQgaGVuY2UgdGhlIERvY3VtZW50KQorICAgICAgICBhbGl2ZS4gVG8g
YnJlYWsgdGhpcyBjeWNsZSwgbWFrZSBJbnRlcnNlY3Rpb25PYnNlcnZlciByZWxlYXNlIHRoZSBj
YWxsYmFjayB3aGVuIGl0cworICAgICAgICBEb2N1bWVudCBpcyBzdG9wcGVkLgorCisgICAgICAg
IFdpdGggdGhlc2UgY2hhbmdlcywgdGhlcmUgYXJlIG5vIGxvbmdlciBhbnkgbGVha3MgcmVwb3J0
ZWQgd2l0aCBydW4td2Via2l0LXRlc3RzIC0td29ybGQtbGVha3MKKyAgICAgICAgb24gTGF5b3V0
VGVzdHMvaW50ZXJzZWN0aW9uLW9ic2VydmVyIGFuZCBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ludGVyc2VjdGlvbi1vYnNlcnZlci4KKworICAgICAgICBUZXN0
czogaW50ZXJzZWN0aW9uLW9ic2VydmVyL25vLWRvY3VtZW50LWxlYWsuaHRtbAorICAgICAgICAg
ICAgICAgaW50ZXJzZWN0aW9uLW9ic2VydmVyL29ic2VydmVyLWFuZC1jYWxsYmFjay13aXRob3V0
LWpzLXJlZmVyZW5jZXMuaHRtbAorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50OjphZGRJbnRlcnNlY3Rpb25PYnNlcnZlcik6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudDo6cmVtb3ZlSW50ZXJzZWN0aW9uT2JzZXJ2ZXIpOgorICAgICAg
ICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkVsZW1lbnQ6OmRpZE1vdmVUb05ld0RvY3VtZW50KToKKyAgICAgICAgKiBwYWdl
L0ludGVyc2VjdGlvbk9ic2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVyc2VjdGlv
bk9ic2VydmVyOjpJbnRlcnNlY3Rpb25PYnNlcnZlcik6CisgICAgICAgIChXZWJDb3JlOjpJbnRl
cnNlY3Rpb25PYnNlcnZlcjo6fkludGVyc2VjdGlvbk9ic2VydmVyKToKKyAgICAgICAgKFdlYkNv
cmU6OkludGVyc2VjdGlvbk9ic2VydmVyOjpvYnNlcnZlKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
dGVyc2VjdGlvbk9ic2VydmVyOjpyb290RGVzdHJveWVkKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
dGVyc2VjdGlvbk9ic2VydmVyOjpjcmVhdGVUaW1lc3RhbXAgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6SW50ZXJzZWN0aW9uT2JzZXJ2ZXI6Om5vdGlmeSk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnRlcnNlY3Rpb25PYnNlcnZlcjo6aGFzUGVuZGluZ0FjdGl2aXR5IGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkludGVyc2VjdGlvbk9ic2VydmVyOjphY3RpdmVET01PYmplY3ROYW1lIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkludGVyc2VjdGlvbk9ic2VydmVyOjpjYW5TdXNwZW5kRm9y
RG9jdW1lbnRTdXNwZW5zaW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkludGVyc2VjdGlv
bk9ic2VydmVyOjpzdG9wKToKKyAgICAgICAgKiBwYWdlL0ludGVyc2VjdGlvbk9ic2VydmVyLmg6
CisgICAgICAgIChXZWJDb3JlOjpJbnRlcnNlY3Rpb25PYnNlcnZlcjo6dHJhY2tpbmdEb2N1bWVu
dCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcnNlY3Rpb25PYnNlcnZlcjo6dHJhY2tp
bmdEb2N1bWVudCk6IERlbGV0ZWQuCisgICAgICAgICogcGFnZS9JbnRlcnNlY3Rpb25PYnNlcnZl
ci5pZGw6CisKIDIwMTgtMDgtMzAgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5j
b20+CiAKICAgICAgICAgTW9jayB2aWRlbyBkZXZpY2VzIHNob3VsZCBvbmx5IHN1cHBvcnQgZGlz
Y3JldGUgc2l6ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGU3MjM1OTFhOTEzM2NhNTE4
YmEwYTRlNTEyZWQxN2ZjNGQ3NGNlOGUuLjY2MzJmMWNmMWVmOWFjOWRiNTQxOTU3YTgzYjM3ZTFm
Yjc4YzhlOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNzQyNywyMSArNzQyNywxNSBA
QCB2b2lkIERvY3VtZW50OjpyZW1vdmVWaWV3cG9ydERlcGVuZGVudFBpY3R1cmUoSFRNTFBpY3R1
cmVFbGVtZW50JiBwaWN0dXJlKQogfQogCiAjaWYgRU5BQkxFKElOVEVSU0VDVElPTl9PQlNFUlZF
UikKLXZvaWQgRG9jdW1lbnQ6OmFkZEludGVyc2VjdGlvbk9ic2VydmVyKFJlZlB0cjxJbnRlcnNl
Y3Rpb25PYnNlcnZlcj4mJiBvYnNlcnZlcikKK3ZvaWQgRG9jdW1lbnQ6OmFkZEludGVyc2VjdGlv
bk9ic2VydmVyKEludGVyc2VjdGlvbk9ic2VydmVyJiBvYnNlcnZlcikKIHsKLSAgICBBU1NFUlQo
bV9pbnRlcnNlY3Rpb25PYnNlcnZlcnMuZmluZChvYnNlcnZlcikgPT0gbm90Rm91bmQpOwotICAg
IG1faW50ZXJzZWN0aW9uT2JzZXJ2ZXJzLmFwcGVuZChXVEZNb3ZlKG9ic2VydmVyKSk7CisgICAg
QVNTRVJUKG1faW50ZXJzZWN0aW9uT2JzZXJ2ZXJzLmZpbmQoJm9ic2VydmVyKSA9PSBub3RGb3Vu
ZCk7CisgICAgbV9pbnRlcnNlY3Rpb25PYnNlcnZlcnMuYXBwZW5kKG1ha2VXZWFrUHRyKCZvYnNl
cnZlcikpOwogfQogCi1SZWZQdHI8SW50ZXJzZWN0aW9uT2JzZXJ2ZXI+IERvY3VtZW50OjpyZW1v
dmVJbnRlcnNlY3Rpb25PYnNlcnZlcihJbnRlcnNlY3Rpb25PYnNlcnZlciYgb2JzZXJ2ZXIpCit2
b2lkIERvY3VtZW50OjpyZW1vdmVJbnRlcnNlY3Rpb25PYnNlcnZlcihJbnRlcnNlY3Rpb25PYnNl
cnZlciYgb2JzZXJ2ZXIpCiB7Ci0gICAgUmVmUHRyPEludGVyc2VjdGlvbk9ic2VydmVyPiBvYnNl
cnZlclJlZjsKLSAgICBhdXRvIGluZGV4ID0gbV9pbnRlcnNlY3Rpb25PYnNlcnZlcnMuZmluZCgm
b2JzZXJ2ZXIpOwotICAgIGlmIChpbmRleCAhPSBub3RGb3VuZCkgewotICAgICAgICBvYnNlcnZl
clJlZiA9IFdURk1vdmUobV9pbnRlcnNlY3Rpb25PYnNlcnZlcnNbaW5kZXhdKTsKLSAgICAgICAg
bV9pbnRlcnNlY3Rpb25PYnNlcnZlcnMucmVtb3ZlKGluZGV4KTsKLSAgICB9Ci0gICAgcmV0dXJu
IG9ic2VydmVyUmVmOworICAgIG1faW50ZXJzZWN0aW9uT2JzZXJ2ZXJzLnJlbW92ZUZpcnN0KCZv
YnNlcnZlcik7CiB9CiAKIHN0YXRpYyB2b2lkIGNvbXB1dGVJbnRlcnNlY3Rpb25SZWN0cyhGcmFt
ZVZpZXcmIGZyYW1lVmlldywgSW50ZXJzZWN0aW9uT2JzZXJ2ZXImIG9ic2VydmVyLCBFbGVtZW50
JiB0YXJnZXQsIEZsb2F0UmVjdCYgYWJzVGFyZ2V0UmVjdCwgRmxvYXRSZWN0JiBhYnNJbnRlcnNl
Y3Rpb25SZWN0LCBGbG9hdFJlY3QmIGFic1Jvb3RCb3VuZHMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmlu
ZGV4IDllM2MzMTg1M2YxMjNlYzliZWEzZjY5MGI4NWUxN2JhZDA3Njc1ZDUuLjgwNDkwZDI3NGYy
OWIwYTkyNjMzMTMwMjc2ZmNlMjM3N2NiNzM2NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0x
MzY0LDggKzEzNjQsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCByZW1vdmVWaWV3cG9ydERlcGVuZGVu
dFBpY3R1cmUoSFRNTFBpY3R1cmVFbGVtZW50Jik7CiAKICNpZiBFTkFCTEUoSU5URVJTRUNUSU9O
X09CU0VSVkVSKQotICAgIHZvaWQgYWRkSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoUmVmUHRyPEludGVy
c2VjdGlvbk9ic2VydmVyPiYmKTsKLSAgICBSZWZQdHI8SW50ZXJzZWN0aW9uT2JzZXJ2ZXI+IHJl
bW92ZUludGVyc2VjdGlvbk9ic2VydmVyKEludGVyc2VjdGlvbk9ic2VydmVyJik7CisgICAgdm9p
ZCBhZGRJbnRlcnNlY3Rpb25PYnNlcnZlcihJbnRlcnNlY3Rpb25PYnNlcnZlciYpOworICAgIHZv
aWQgcmVtb3ZlSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoSW50ZXJzZWN0aW9uT2JzZXJ2ZXImKTsKICAg
ICB1bnNpZ25lZCBudW1iZXJPZkludGVyc2VjdGlvbk9ic2VydmVycygpIGNvbnN0IHsgcmV0dXJu
IG1faW50ZXJzZWN0aW9uT2JzZXJ2ZXJzLnNpemUoKTsgfQogICAgIHZvaWQgdXBkYXRlSW50ZXJz
ZWN0aW9uT2JzZXJ2YXRpb25zKCk7CiAgICAgdm9pZCBzY2hlZHVsZUludGVyc2VjdGlvbk9ic2Vy
dmF0aW9uVXBkYXRlKCk7CkBAIC0xNzc0LDcgKzE3NzQsNyBAQCBwcml2YXRlOgogICAgIEhhc2hT
ZXQ8SFRNTFBpY3R1cmVFbGVtZW50Kj4gbV92aWV3cG9ydERlcGVuZGVudFBpY3R1cmVzOwogCiAj
aWYgRU5BQkxFKElOVEVSU0VDVElPTl9PQlNFUlZFUikKLSAgICBWZWN0b3I8UmVmUHRyPEludGVy
c2VjdGlvbk9ic2VydmVyPj4gbV9pbnRlcnNlY3Rpb25PYnNlcnZlcnM7CisgICAgVmVjdG9yPFdl
YWtQdHI8SW50ZXJzZWN0aW9uT2JzZXJ2ZXI+PiBtX2ludGVyc2VjdGlvbk9ic2VydmVyczsKICAg
ICBWZWN0b3I8V2Vha1B0cjxJbnRlcnNlY3Rpb25PYnNlcnZlcj4+IG1faW50ZXJzZWN0aW9uT2Jz
ZXJ2ZXJzV2l0aFBlbmRpbmdOb3RpZmljYXRpb25zOwogCiAgICAgLy8gRklYTUU6IFNjaGVkdWxl
IGludGVyc2VjdGlvbiBvYnNlcnZhdGlvbiB1cGRhdGVzIGluIGEgd2F5IHRoYXQgZml0cyBpbnRv
IHRoZSBIVE1MCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggYjc4ZGE5Y2QzMzJhNzQxOGFiYzVh
OTkzMjZmZGYxYjQyYTA2NmNhYi4uYzI3NjQxMjk0NjM5ZWY1Yzk1YjhiZTM0M2NmOTM0YzJlZTBl
ZmVmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtMTY1NSw4ICsxNjU1LDEwIEBAIHZvaWQg
RWxlbWVudDo6ZGlkTW92ZVRvTmV3RG9jdW1lbnQoRG9jdW1lbnQmIG9sZERvY3VtZW50LCBEb2N1
bWVudCYgbmV3RG9jdW1lbnQpCiAjaWYgRU5BQkxFKElOVEVSU0VDVElPTl9PQlNFUlZFUikKICAg
ICBpZiAoYXV0byogb2JzZXJ2ZXJEYXRhID0gaW50ZXJzZWN0aW9uT2JzZXJ2ZXJEYXRhKCkpIHsK
ICAgICAgICAgZm9yIChhdXRvIG9ic2VydmVyIDogb2JzZXJ2ZXJEYXRhLT5vYnNlcnZlcnMpIHsK
LSAgICAgICAgICAgIGlmIChvYnNlcnZlci0+aGFzT2JzZXJ2YXRpb25UYXJnZXRzKCkpCi0gICAg
ICAgICAgICAgICAgbmV3RG9jdW1lbnQuYWRkSW50ZXJzZWN0aW9uT2JzZXJ2ZXIob2xkRG9jdW1l
bnQucmVtb3ZlSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKm9ic2VydmVyKSk7CisgICAgICAgICAgICBp
ZiAob2JzZXJ2ZXItPmhhc09ic2VydmF0aW9uVGFyZ2V0cygpKSB7CisgICAgICAgICAgICAgICAg
b2xkRG9jdW1lbnQucmVtb3ZlSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKm9ic2VydmVyKTsKKyAgICAg
ICAgICAgICAgICBuZXdEb2N1bWVudC5hZGRJbnRlcnNlY3Rpb25PYnNlcnZlcigqb2JzZXJ2ZXIp
OworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ludGVyc2VjdGlvbk9ic2VydmVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvSW50ZXJzZWN0aW9uT2JzZXJ2ZXIuY3BwCmluZGV4IDVlNjRmNzU5MmJjMDI4MDJm
OTYzYzFiMzZiMjA2YTc5MjQxZTZjY2YuLjc5N2VhNDdiZTE0NWMyYzNlOTc3MTE2N2FmYTdjZWNh
ZTI0NThmMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvSW50ZXJzZWN0aW9uT2Jz
ZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvSW50ZXJzZWN0aW9uT2JzZXJ2ZXIu
Y3BwCkBAIC0xMDUsNyArMTA1LDggQEAgRXhjZXB0aW9uT3I8UmVmPEludGVyc2VjdGlvbk9ic2Vy
dmVyPj4gSW50ZXJzZWN0aW9uT2JzZXJ2ZXI6OmNyZWF0ZShEb2N1bWVudCYgZG8KIH0KIAogSW50
ZXJzZWN0aW9uT2JzZXJ2ZXI6OkludGVyc2VjdGlvbk9ic2VydmVyKERvY3VtZW50JiBkb2N1bWVu
dCwgUmVmPEludGVyc2VjdGlvbk9ic2VydmVyQ2FsbGJhY2s+JiYgY2FsbGJhY2ssIEVsZW1lbnQq
IHJvb3QsIExlbmd0aEJveCYmIHBhcnNlZFJvb3RNYXJnaW4sIFZlY3Rvcjxkb3VibGU+JiYgdGhy
ZXNob2xkcykKLSAgICA6IG1fcm9vdChyb290KQorICAgIDogQWN0aXZlRE9NT2JqZWN0KGRvd25j
YXN0PERvY3VtZW50PihjYWxsYmFjay0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSkKKyAgICAs
IG1fcm9vdChyb290KQogICAgICwgbV9yb290TWFyZ2luKFdURk1vdmUocGFyc2VkUm9vdE1hcmdp
bikpCiAgICAgLCBtX3RocmVzaG9sZHMoV1RGTW92ZSh0aHJlc2hvbGRzKSkKICAgICAsIG1fY2Fs
bGJhY2soV1RGTW92ZShjYWxsYmFjaykpCkBAIC0xMTcsMTMgKzExOCwxNCBAQCBJbnRlcnNlY3Rp
b25PYnNlcnZlcjo6SW50ZXJzZWN0aW9uT2JzZXJ2ZXIoRG9jdW1lbnQmIGRvY3VtZW50LCBSZWY8
SW50ZXJzZWN0aW9uTwogICAgICAgICBtX2ltcGxpY2l0Um9vdERvY3VtZW50ID0gbWFrZVdlYWtQ
dHIoZnJhbWUtPm1haW5GcmFtZSgpLmRvY3VtZW50KCkpOwogCiAgICAgc3RkOjpzb3J0KG1fdGhy
ZXNob2xkcy5iZWdpbigpLCBtX3RocmVzaG9sZHMuZW5kKCkpOworICAgIHN1c3BlbmRJZk5lZWRl
ZCgpOwogfQogCiBJbnRlcnNlY3Rpb25PYnNlcnZlcjo6fkludGVyc2VjdGlvbk9ic2VydmVyKCkK
IHsKICAgICBpZiAobV9yb290KQogICAgICAgICBtX3Jvb3QtPmludGVyc2VjdGlvbk9ic2VydmVy
RGF0YSgpLT5vYnNlcnZlcnMucmVtb3ZlRmlyc3QodGhpcyk7Ci0gICAgcmVtb3ZlQWxsVGFyZ2V0
cygpOworICAgIGRpc2Nvbm5lY3QoKTsKIH0KIAogU3RyaW5nIEludGVyc2VjdGlvbk9ic2VydmVy
Ojpyb290TWFyZ2luKCkgY29uc3QKQEAgLTE0NSw3ICsxNDcsNyBAQCBTdHJpbmcgSW50ZXJzZWN0
aW9uT2JzZXJ2ZXI6OnJvb3RNYXJnaW4oKSBjb25zdAogCiB2b2lkIEludGVyc2VjdGlvbk9ic2Vy
dmVyOjpvYnNlcnZlKEVsZW1lbnQmIHRhcmdldCkKIHsKLSAgICBpZiAoIXRyYWNraW5nRG9jdW1l
bnQoKSB8fCBtX29ic2VydmF0aW9uVGFyZ2V0cy5jb250YWlucygmdGFyZ2V0KSkKKyAgICBpZiAo
IXRyYWNraW5nRG9jdW1lbnQoKSB8fCAhbV9jYWxsYmFjayB8fCBtX29ic2VydmF0aW9uVGFyZ2V0
cy5jb250YWlucygmdGFyZ2V0KSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgdGFyZ2V0LmVuc3Vy
ZUludGVyc2VjdGlvbk9ic2VydmVyRGF0YSgpLnJlZ2lzdHJhdGlvbnMuYXBwZW5kKHsgbWFrZVdl
YWtQdHIodGhpcyksIHN0ZDo6bnVsbG9wdCB9KTsKQEAgLTE1Myw3ICsxNTUsNyBAQCB2b2lkIElu
dGVyc2VjdGlvbk9ic2VydmVyOjpvYnNlcnZlKEVsZW1lbnQmIHRhcmdldCkKICAgICBtX29ic2Vy
dmF0aW9uVGFyZ2V0cy5hcHBlbmQoJnRhcmdldCk7CiAgICAgYXV0byogZG9jdW1lbnQgPSB0cmFj
a2luZ0RvY3VtZW50KCk7CiAgICAgaWYgKCFoYWRPYnNlcnZhdGlvblRhcmdldHMpCi0gICAgICAg
IGRvY3VtZW50LT5hZGRJbnRlcnNlY3Rpb25PYnNlcnZlcih0aGlzKTsKKyAgICAgICAgZG9jdW1l
bnQtPmFkZEludGVyc2VjdGlvbk9ic2VydmVyKCp0aGlzKTsKICAgICBkb2N1bWVudC0+c2NoZWR1
bGVJbnRlcnNlY3Rpb25PYnNlcnZhdGlvblVwZGF0ZSgpOwogfQogCkBAIC0yMTksMTYgKzIyMSwx
NSBAQCB2b2lkIEludGVyc2VjdGlvbk9ic2VydmVyOjpyZW1vdmVBbGxUYXJnZXRzKCkKIHZvaWQg
SW50ZXJzZWN0aW9uT2JzZXJ2ZXI6OnJvb3REZXN0cm95ZWQoKQogewogICAgIEFTU0VSVChtX3Jv
b3QpOwotICAgIGF1dG8mIGRvY3VtZW50ID0gbV9yb290LT5kb2N1bWVudCgpOworICAgIGRpc2Nv
bm5lY3QoKTsKICAgICBtX3Jvb3QgPSBudWxscHRyOwotICAgIGlmIChoYXNPYnNlcnZhdGlvblRh
cmdldHMoKSkgewotICAgICAgICByZW1vdmVBbGxUYXJnZXRzKCk7Ci0gICAgICAgIGRvY3VtZW50
LnJlbW92ZUludGVyc2VjdGlvbk9ic2VydmVyKCp0aGlzKTsKLSAgICB9CiB9CiAKIGJvb2wgSW50
ZXJzZWN0aW9uT2JzZXJ2ZXI6OmNyZWF0ZVRpbWVzdGFtcChET01IaWdoUmVzVGltZVN0YW1wJiB0
aW1lc3RhbXApIGNvbnN0CiB7CisgICAgaWYgKCFtX2NhbGxiYWNrKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKICAgICBhdXRvKiBjb250ZXh0ID0gbV9jYWxsYmFjay0+c2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpOwogICAgIGlmICghY29udGV4dCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAt
MjUwLDEyICsyNTEsMzMgQEAgdm9pZCBJbnRlcnNlY3Rpb25PYnNlcnZlcjo6YXBwZW5kUXVldWVk
RW50cnkoUmVmPEludGVyc2VjdGlvbk9ic2VydmVyRW50cnk+JiYgZW4KIAogdm9pZCBJbnRlcnNl
Y3Rpb25PYnNlcnZlcjo6bm90aWZ5KCkKIHsKLSAgICBpZiAobV9xdWV1ZWRFbnRyaWVzLmlzRW1w
dHkoKSB8fCAhbV9jYWxsYmFjay0+Y2FuSW52b2tlQ2FsbGJhY2soKSkKKyAgICBpZiAobV9xdWV1
ZWRFbnRyaWVzLmlzRW1wdHkoKSB8fCAhbV9jYWxsYmFjayB8fCAhbV9jYWxsYmFjay0+Y2FuSW52
b2tlQ2FsbGJhY2soKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9jYWxsYmFjay0+aGFuZGxl
RXZlbnQodGFrZVJlY29yZHMoKSwgKnRoaXMpOwogfQogCitib29sIEludGVyc2VjdGlvbk9ic2Vy
dmVyOjpoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdAoreworICAgIHJldHVybiBoYXNPYnNlcnZh
dGlvblRhcmdldHMoKSAmJiB0cmFja2luZ0RvY3VtZW50KCk7Cit9CisKK2NvbnN0IGNoYXIqIElu
dGVyc2VjdGlvbk9ic2VydmVyOjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gIkludGVyc2VjdGlvbk9ic2VydmVyIjsKK30KKworYm9vbCBJbnRlcnNlY3Rpb25PYnNl
cnZlcjo6Y2FuU3VzcGVuZEZvckRvY3VtZW50U3VzcGVuc2lvbigpIGNvbnN0Cit7CisgICAgcmV0
dXJuIHRydWU7Cit9CisKK3ZvaWQgSW50ZXJzZWN0aW9uT2JzZXJ2ZXI6OnN0b3AoKQoreworICAg
IGRpc2Nvbm5lY3QoKTsKKyAgICBtX2NhbGxiYWNrID0gbnVsbHB0cjsKK30KKwogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKElOVEVSU0VDVElPTl9PQlNFUlZFUikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvSW50ZXJzZWN0aW9uT2JzZXJ2ZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvSW50ZXJzZWN0aW9uT2JzZXJ2ZXIuaAppbmRleCA3MGFiYzQ5
MzA1NDZlNzZlNTEwNzViNWRiYzU5ZDZjMWE0NWE1NDk1Li5mNTA4OWUwNGZlOTJmZGE0MmE3MmEx
ZmNiYzQxYWRiYzgyM2IxZWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ludGVy
c2VjdGlvbk9ic2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9JbnRlcnNlY3Rpb25P
YnNlcnZlci5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoSU5URVJTRUNUSU9OX09C
U0VSVkVSKQogCisjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCiAjaW5jbHVkZSAiSW50ZXJz
ZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjay5oIgogI2luY2x1ZGUgIkludGVyc2VjdGlvbk9ic2VydmVy
RW50cnkuaCIKICNpbmNsdWRlICJMZW5ndGhCb3guaCIKQEAgLTQ3LDE1ICs0OCwxNSBAQCBzdHJ1
Y3QgSW50ZXJzZWN0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24gewogCiBzdHJ1Y3QgSW50ZXJzZWN0
aW9uT2JzZXJ2ZXJEYXRhIHsKICAgICAvLyBJbnRlcnNlY3Rpb25PYnNlcnZlcnMgZm9yIHdoaWNo
IHRoZSBlbGVtZW50IHRoYXQgb3ducyB0aGlzIEludGVyc2VjdGlvbk9ic2VydmVyRGF0YSBpcyB0
aGUgcm9vdC4KLSAgICAvLyBBbiBJbnRlcnNlY3Rpb25PYnNlcnZlciB3aXRob3V0IGFueSB0YXJn
ZXRzIGlzIG9ubHkgb3duZWQgYnkgSmF2YVNjcmlwdCB3cmFwcGVycy4gQW4KLSAgICAvLyBJbnRl
cnNlY3Rpb25PYnNlcnZlciB3aXRoIGF0IGxlYXN0IG9uZSB0YXJnZXQgaXMgYWxzbyBvd25lZCBi
eSBpdHMgdHJhY2tpbmdEb2N1bWVudC4KKyAgICAvLyBBbiBJbnRlcnNlY3Rpb25PYnNlcnZlciBp
cyBvbmx5IG93bmVkIGJ5IGEgSmF2YVNjcmlwdCB3cmFwcGVyLiBBY3RpdmVET01PYmplY3Q6Omhh
c1BlbmRpbmdBY3Rpdml0eQorICAgIC8vIGlzIG92ZXJyaWRkZW4gdG8ga2VlcCB0aGlzIHdyYXBw
ZXIgYWxpdmUgd2hpbGUgdGhlIG9ic2VydmVyIGhhcyBvbmdvaW5nIG9ic2VydmF0aW9ucy4KICAg
ICBWZWN0b3I8V2Vha1B0cjxJbnRlcnNlY3Rpb25PYnNlcnZlcj4+IG9ic2VydmVyczsKIAogICAg
IC8vIEludGVyc2VjdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9ucyBmb3Igd2hpY2ggdGhlIGVsZW1l
bnQgdGhhdCBvd25zIHRoaXMgSW50ZXJzZWN0aW9uT2JzZXJ2ZXJEYXRhIGlzIHRoZSB0YXJnZXQu
CiAgICAgVmVjdG9yPEludGVyc2VjdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uPiByZWdpc3RyYXRp
b25zOwogfTsKIAotY2xhc3MgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgOiBwdWJsaWMgUmVmQ291bnRl
ZDxJbnRlcnNlY3Rpb25PYnNlcnZlcj4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxJbnRlcnNlY3Rp
b25PYnNlcnZlcj4geworY2xhc3MgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgOiBwdWJsaWMgUmVmQ291
bnRlZDxJbnRlcnNlY3Rpb25PYnNlcnZlcj4sIHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHB1Ymxp
YyBDYW5NYWtlV2Vha1B0cjxJbnRlcnNlY3Rpb25PYnNlcnZlcj4gewogcHVibGljOgogICAgIHN0
cnVjdCBJbml0IHsKICAgICAgICAgRWxlbWVudCogcm9vdCB7IG51bGxwdHIgfTsKQEAgLTY3LDcg
KzY4LDcgQEAgcHVibGljOgogCiAgICAgfkludGVyc2VjdGlvbk9ic2VydmVyKCk7CiAKLSAgICBE
b2N1bWVudCogdHJhY2tpbmdEb2N1bWVudCgpIHsgcmV0dXJuIG1fcm9vdCA/ICZtX3Jvb3QtPmRv
Y3VtZW50KCkgOiBtX2ltcGxpY2l0Um9vdERvY3VtZW50LmdldCgpOyB9CisgICAgRG9jdW1lbnQq
IHRyYWNraW5nRG9jdW1lbnQoKSBjb25zdCB7IHJldHVybiBtX3Jvb3QgPyAmbV9yb290LT5kb2N1
bWVudCgpIDogbV9pbXBsaWNpdFJvb3REb2N1bWVudC5nZXQoKTsgfQogCiAgICAgRWxlbWVudCog
cm9vdCgpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdDsgfQogICAgIFN0cmluZyByb290TWFyZ2luKCkg
Y29uc3Q7CkBAIC04OSw2ICs5MCwxMiBAQCBwdWJsaWM6CiAgICAgdm9pZCBhcHBlbmRRdWV1ZWRF
bnRyeShSZWY8SW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbnRyeT4mJik7CiAgICAgdm9pZCBub3RpZnko
KTsKIAorICAgIC8vIEFjdGl2ZURPTU9iamVjdC4KKyAgICBib29sIGhhc1BlbmRpbmdBY3Rpdml0
eSgpIGNvbnN0IG92ZXJyaWRlOworICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUo
KSBjb25zdCBvdmVycmlkZTsKKyAgICBib29sIGNhblN1c3BlbmRGb3JEb2N1bWVudFN1c3BlbnNp
b24oKSBjb25zdCBvdmVycmlkZTsKKyAgICB2b2lkIHN0b3AoKSBvdmVycmlkZTsKKwogcHJpdmF0
ZToKICAgICBJbnRlcnNlY3Rpb25PYnNlcnZlcihEb2N1bWVudCYsIFJlZjxJbnRlcnNlY3Rpb25P
YnNlcnZlckNhbGxiYWNrPiYmLCBFbGVtZW50KiByb290LCBMZW5ndGhCb3gmJiBwYXJzZWRSb290
TWFyZ2luLCBWZWN0b3I8ZG91YmxlPiYmIHRocmVzaG9sZHMpOwogCkBAIC05OSw3ICsxMDYsNyBA
QCBwcml2YXRlOgogICAgIEVsZW1lbnQqIG1fcm9vdDsKICAgICBMZW5ndGhCb3ggbV9yb290TWFy
Z2luOwogICAgIFZlY3Rvcjxkb3VibGU+IG1fdGhyZXNob2xkczsKLSAgICBSZWY8SW50ZXJzZWN0
aW9uT2JzZXJ2ZXJDYWxsYmFjaz4gbV9jYWxsYmFjazsKKyAgICBSZWZQdHI8SW50ZXJzZWN0aW9u
T2JzZXJ2ZXJDYWxsYmFjaz4gbV9jYWxsYmFjazsKICAgICBWZWN0b3I8RWxlbWVudCo+IG1fb2Jz
ZXJ2YXRpb25UYXJnZXRzOwogICAgIFZlY3RvcjxSZWY8SW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbnRy
eT4+IG1fcXVldWVkRW50cmllczsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ludGVyc2VjdGlvbk9ic2VydmVyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvSW50ZXJzZWN0
aW9uT2JzZXJ2ZXIuaWRsCmluZGV4IGY3ODc3MmFmNzRlYzUzZDkxMDk1ODIzNjVhYWMxYzJmNWMy
ZmM4NTIuLmFlODhhNmUyMzJmYmE5YmE3ZmJiODVlZTdhYTY5Y2UwZjBmNDQxYWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvSW50ZXJzZWN0aW9uT2JzZXJ2ZXIuaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvSW50ZXJzZWN0aW9uT2JzZXJ2ZXIuaWRsCkBAIC0yNiwxMSArMjYs
MTEgQEAKIC8vIGh0dHBzOi8vd2ljZy5naXRodWIuaW8vSW50ZXJzZWN0aW9uT2JzZXJ2ZXIvCiAK
IFsKKyAgICBBY3RpdmVET01PYmplY3QsCiAgICAgQ29uZGl0aW9uYWw9SU5URVJTRUNUSU9OX09C
U0VSVkVSLAogICAgIENvbnN0cnVjdG9yQ2FsbFdpdGg9RG9jdW1lbnQsCiAgICAgQ29uc3RydWN0
b3JNYXlUaHJvd0V4Y2VwdGlvbiwKICAgICBDb25zdHJ1Y3RvcihJbnRlcnNlY3Rpb25PYnNlcnZl
ckNhbGxiYWNrIGNhbGxiYWNrLCBvcHRpb25hbCBJbnRlcnNlY3Rpb25PYnNlcnZlckluaXQgb3B0
aW9ucyksCi0gICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKICAgICBFbmFibGVkQXRSdW50
aW1lPUludGVyc2VjdGlvbk9ic2VydmVyCiBdIGludGVyZmFjZSBJbnRlcnNlY3Rpb25PYnNlcnZl
ciB7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEVsZW1lbnQ/IHJvb3Q7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNWFlZGZi
ZDQ4ODhjYzA1MDZlMDMzM2Y5OTY4ZmZkOTMyODg0ZTZiMi4uOWRmNWE1NGMzYWU1OWNjZmNmMTdj
ZDNlMWRiYWY2NTZmNzE1NTQzMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE4LTA5LTA1ICBB
bGkgSnVtYSAgPGFqdW1hQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbnRlcnNlY3Rpb25PYnNl
cnZlciBsZWFrcyBkb2N1bWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE4OTEyOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogaW50ZXJzZWN0aW9uLW9ic2VydmVyL25vLWRvY3VtZW50LWxlYWstZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvbm8tZG9j
dW1lbnQtbGVhay5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbnRlcnNlY3Rpb24tb2JzZXJ2ZXIv
b2JzZXJ2ZXItYW5kLWNhbGxiYWNrLXdpdGhvdXQtanMtcmVmZXJlbmNlcy1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGludGVyc2VjdGlvbi1vYnNlcnZlci9vYnNlcnZlci1hbmQtY2Fs
bGJhY2std2l0aG91dC1qcy1yZWZlcmVuY2VzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGludGVy
c2VjdGlvbi1vYnNlcnZlci9yZXNvdXJjZXMvbm8tZG9jdW1lbnQtbGVhay1mcmFtZS5odG1sOiBB
ZGRlZC4KKwogMjAxOC0wOC0zMCAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNv
bT4KIAogICAgICAgICBNb2NrIHZpZGVvIGRldmljZXMgc2hvdWxkIG9ubHkgc3VwcG9ydCBkaXNj
cmV0ZSBzaXplcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW50ZXJzZWN0aW9uLW9ic2VydmVy
L25vLWRvY3VtZW50LWxlYWstZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW50ZXJzZWN0aW9u
LW9ic2VydmVyL25vLWRvY3VtZW50LWxlYWstZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc0OWNi
MTgxMjhlNzMyNDA5MGJiNzhhYjE1YWJlNDJmMmRkZWIyNmUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvbm8tZG9jdW1lbnQtbGVhay1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGVzdHMgdGhhdCB1c2luZyBJbnRlcnNlY3Rpb25PYnNl
cnZlciBkb2VzIG5vdCBjYXVzZSB0aGUgZG9jdW1lbnQgdG8gZ2V0IGxlYWtlZC4KKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgRG9jdW1lbnQgZGlkIG5vdCBsZWFrCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW50ZXJzZWN0aW9uLW9ic2VydmVyL25vLWRvY3VtZW50LWxlYWsuaHRt
bCBiL0xheW91dFRlc3RzL2ludGVyc2VjdGlvbi1vYnNlcnZlci9uby1kb2N1bWVudC1sZWFrLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMjhkNWQ0NGJjY2MxN2E3NjRjMjc0YzNmMzYyZTA4Yjk4MzhmZDI4Mwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ludGVyc2VjdGlvbi1vYnNlcnZlci9uby1k
b2N1bWVudC1sZWFrLmh0bWwKQEAgLTAsMCArMSwzOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUgaWQ9InRlc3RGcmFtZSIgc3JjPSJyZXNv
dXJjZXMvbm8tZG9jdW1lbnQtbGVhay1mcmFtZS5odG1sIj48L2lmcmFtZT4KKzxzY3JpcHQ+Citk
ZXNjcmlwdGlvbigiVGVzdHMgdGhhdCB1c2luZyBJbnRlcnNlY3Rpb25PYnNlcnZlciBkb2VzIG5v
dCBjYXVzZSB0aGUgZG9jdW1lbnQgdG8gZ2V0IGxlYWtlZC4iKTsKK3dpbmRvdy5qc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKKworZnVuY3Rpb24gZG9jdW1lbnRTaG91bGREaWUoZG9jdW1lbnRJZGVudGlm
aWVyKQoreworICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3Qp
IHsKKyAgICAgICAgaGFuZGxlID0gc2V0SW50ZXJ2YWwoZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICBnYygpOworICAgICAgICAgICAgaWYgKGludGVybmFscyAmJiAhaW50ZXJuYWxzLmlzRG9jdW1l
bnRBbGl2ZShkb2N1bWVudElkZW50aWZpZXIpICYmIGludGVybmFscy5udW1iZXJPZkludGVyc2Vj
dGlvbk9ic2VydmVycyhkb2N1bWVudCkgPT0gMCkgeworICAgICAgICAgICAgICAgIGNsZWFySW50
ZXJ2YWwoaGFuZGxlKTsKKyAgICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAgICB9
CisgICAgICAgIH0sIDEwKTsKKyAgICB9KTsKK30KKwordmFyIHRlc3RGcmFtZSA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJ0ZXN0RnJhbWUiKTsKK3Rlc3RGcmFtZS5vbmxvYWQgPSBmdW5jdGlv
bigpIHsKKyAgICBsZXQgZnJhbWVEb2N1bWVudElkZW50aWZpZXIgPSBpbnRlcm5hbHMuZG9jdW1l
bnRJZGVudGlmaWVyKHRlc3RGcmFtZS5jb250ZW50RG9jdW1lbnQpOworICAgIHRlc3RGcmFtZS5y
ZW1vdmUoKTsKKyAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICBkb2N1bWVudFNo
b3VsZERpZShmcmFtZURvY3VtZW50SWRlbnRpZmllcikudGhlbihmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgIHRlc3RQYXNzZWQoIkRvY3VtZW50IGRpZCBub3QgbGVhayIpOworICAgICAgICAgICAg
ZmluaXNoSlNUZXN0KCk7CisgICAgICAgIH0pOworICAgIH0pOworfTsKKzwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW50ZXJzZWN0aW9uLW9ic2VydmVy
L29ic2VydmVyLWFuZC1jYWxsYmFjay13aXRob3V0LWpzLXJlZmVyZW5jZXMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW50ZXJzZWN0aW9uLW9ic2VydmVyL29ic2VydmVyLWFuZC1jYWxsYmFj
ay13aXRob3V0LWpzLXJlZmVyZW5jZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQyZTQzM2E3
MmMzMmE0NDgyNzkwYzczZDVlMGFjYzFmNzI1YzA5MDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvb2JzZXJ2ZXItYW5kLWNhbGxiYWNrLXdpdGhv
dXQtanMtcmVmZXJlbmNlcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSW50
ZXJzZWN0aW9uT2JzZXJ2ZXIgY2FsbGJhY2sgZmlyZXMgZXZlbiB3aGVuIHRoZSBvYnNlcnZlciBh
bmQgY2FsbGJhY2sgaGF2ZSBubyBKUyByZWZlcmVuY2VzIAorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvb2JzZXJ2ZXItYW5kLWNhbGxiYWNrLXdpdGhvdXQt
anMtcmVmZXJlbmNlcy5odG1sIGIvTGF5b3V0VGVzdHMvaW50ZXJzZWN0aW9uLW9ic2VydmVyL29i
c2VydmVyLWFuZC1jYWxsYmFjay13aXRob3V0LWpzLXJlZmVyZW5jZXMuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5iYzE3NDlkMDYxZDk3OTUzZThjZWZlN2FhZmE3Mzg2NDNjZDA1M2VlCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW50ZXJzZWN0aW9uLW9ic2VydmVyL29ic2VydmVyLWFuZC1jYWxs
YmFjay13aXRob3V0LWpzLXJlZmVyZW5jZXMuaHRtbApAQCAtMCwwICsxLDI1IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvZ2MuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKworPHN0
eWxlPgorI3RhcmdldCB7CisgIHdpZHRoOiAxMDBweDsKKyAgaGVpZ2h0OiAxMDBweDsKKyAgYmFj
a2dyb3VuZC1jb2xvcjogZ3JlZW47Cit9Cis8L3N0eWxlPgorPGRpdiBpZD0idGFyZ2V0Ij48L2Rp
dj4KKworPHNjcmlwdD4KK3ZhciB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFy
Z2V0Iik7CisKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkgeworICAgIG5ldyBJbnRlcnNlY3Rpb25P
YnNlcnZlcihmdW5jdGlvbihjaGFuZ2VzKSB7CisgICAgICAgIHQuZG9uZSgpOworICAgIH0pLm9i
c2VydmUodGFyZ2V0KTsKK30sICJJbnRlcnNlY3Rpb25PYnNlcnZlciBjYWxsYmFjayBmaXJlcyBl
dmVuIHdoZW4gdGhlIG9ic2VydmVyIGFuZCBjYWxsYmFjayBoYXZlIG5vIEpTIHJlZmVyZW5jZXMi
KTsKKworZ2MoKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW50ZXJzZWN0
aW9uLW9ic2VydmVyL3Jlc291cmNlcy9uby1kb2N1bWVudC1sZWFrLWZyYW1lLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvcmVzb3VyY2VzL25vLWRvY3VtZW50LWxlYWst
ZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMzJiYWZmYWExM2FlMWMyZmU2NTllM2IyZGZiNDM0NGRj
ZTk4NjZmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW50ZXJzZWN0aW9uLW9ic2Vy
dmVyL3Jlc291cmNlcy9uby1kb2N1bWVudC1sZWFrLWZyYW1lLmh0bWwKQEAgLTAsMCArMSw4IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxkaXYgaWQ9InRhcmdldCI+PC9kaXY+CisKKzxzY3JpcHQ+Cit2
YXIgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpOwordmFyIG9ic2Vy
dmVyID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKGZ1bmN0aW9uKCkgeyB9KTsKK29ic2VydmVy
Lm9ic2VydmUodGFyZ2V0KTsKKzwvc2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>349020</attachid>
            <date>2018-09-06 06:09:25 -0700</date>
            <delta_ts>2018-09-06 06:51:33 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-189128-20180906090910.patch</filename>
            <type>text/plain</type>
            <size>18949</size>
            <attacher name="Ali Juma">ajuma</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NTE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWM0ZGRlM2YyYjUyMjVm
NWE3M2ZiM2Q3MTIyMWM1OTZmZjg2MzIyMi4uYjMzM2Q5MWE3MWExNTE0YmEwNzAwMzlkZDM2ODYz
ZTUzYmJjYjg2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDE4LTA5LTA2ICBBbGkg
SnVtYSAgPGFqdW1hQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbnRlcnNlY3Rpb25PYnNlcnZl
ciBsZWFrcyBkb2N1bWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE4OTEyOAorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKwor
ICAgICAgICBDdXJyZW50bHksIERvY3VtZW50cyBvd24gSW50ZXJzZWN0aW9uT2JzZXJ2ZXJzIHdo
aWxlIEludGVyc2VjdGlvbk9ic2VydmVycyBvd24gY2FsbGJhY2tzCisgICAgICAgIHRoYXQgaGF2
ZSBzdHJvbmcgcmVmZXJlbmNlcyB0byBEb2N1bWVudHMuIFRvIGJyZWFrIHRoaXMgY3ljbGUsIG1h
a2UgRG9jdW1lbnRzIG9ubHkgaGF2ZQorICAgICAgICB3ZWFrIHBvaW50ZXJzIHRvIEludGVyc2Vj
dGlvbk9ic2VydmVycy4gSW5zdGVhZCwgbWFuYWdlIHRoZSBsaWZldGltZSBvZiBhbgorICAgICAg
ICBJbnRlcnNlY3Rpb25PYnNlcnZlciBhcyBhbiBBY3RpdmVET01PYmplY3QsIG92ZXJyaWRpbmcg
aGFzUGVuZGluZ0FjdGl2aXR5IHRvIGtlZXAKKyAgICAgICAgdGhlIG9ic2VydmVyIGFsaXZlIHdo
aWxlIHRoZXJlIGFyZSBvbmdvaW5nIG9ic2VydmF0aW9ucy4KKworICAgICAgICBIb3dldmVyLCB0
aGVyZSBpcyBhIHN0aWxsIGEgcG90ZW50aWFsIHJlZmVyZW5jZSBjeWNsZS4gVGhlIGNhbGxiYWNr
IGtlZXBzIGdsb2JhbAorICAgICAgICByZWZlcmVuY2VzIGFsaXZlLCBzbyBpZiB0aGVyZSdzIGEg
Z2xvYmFsIHJlZmVyZW5jZSB0byB0aGUgb2JzZXJ2ZXIgaW4gSmF2YVNjcmlwdCwKKyAgICAgICAg
d2UgaGF2ZSBhbiBvYnNlcnZlci0+Y2FsbGJhY2stPm9ic2VydmVyIGN5Y2xlLCBrZWVwaW5nIHRo
ZSBjYWxsYmFjayAoYW5kIGhlbmNlIHRoZSBEb2N1bWVudCkKKyAgICAgICAgYWxpdmUuIFRvIGJy
ZWFrIHRoaXMgY3ljbGUsIG1ha2UgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgcmVsZWFzZSB0aGUgY2Fs
bGJhY2sgd2hlbiBpdHMKKyAgICAgICAgRG9jdW1lbnQgaXMgc3RvcHBlZC4KKworICAgICAgICBX
aXRoIHRoZXNlIGNoYW5nZXMsIHRoZXJlIGFyZSBubyBsb25nZXIgYW55IGxlYWtzIHJlcG9ydGVk
IHdpdGggcnVuLXdlYmtpdC10ZXN0cyAtLXdvcmxkLWxlYWtzCisgICAgICAgIG9uIExheW91dFRl
c3RzL2ludGVyc2VjdGlvbi1vYnNlcnZlciBhbmQgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXIuCisKKyAgICAgICAgVGVzdHM6
IGludGVyc2VjdGlvbi1vYnNlcnZlci9uby1kb2N1bWVudC1sZWFrLmh0bWwKKyAgICAgICAgICAg
ICAgIGludGVyc2VjdGlvbi1vYnNlcnZlci9vYnNlcnZlci1hbmQtY2FsbGJhY2std2l0aG91dC1q
cy1yZWZlcmVuY2VzLmh0bWwKKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudDo6YWRkSW50ZXJzZWN0aW9uT2JzZXJ2ZXIpOgorICAgICAgICAo
V2ViQ29yZTo6RG9jdW1lbnQ6OnJlbW92ZUludGVyc2VjdGlvbk9ic2VydmVyKToKKyAgICAgICAg
KiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpFbGVtZW50OjpkaWRNb3ZlVG9OZXdEb2N1bWVudCk6CisgICAgICAgICogcGFnZS9J
bnRlcnNlY3Rpb25PYnNlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcnNlY3Rpb25P
YnNlcnZlcjo6SW50ZXJzZWN0aW9uT2JzZXJ2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJz
ZWN0aW9uT2JzZXJ2ZXI6On5JbnRlcnNlY3Rpb25PYnNlcnZlcik6CisgICAgICAgIChXZWJDb3Jl
OjpJbnRlcnNlY3Rpb25PYnNlcnZlcjo6b2JzZXJ2ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnRl
cnNlY3Rpb25PYnNlcnZlcjo6cm9vdERlc3Ryb3llZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnRl
cnNlY3Rpb25PYnNlcnZlcjo6Y3JlYXRlVGltZXN0YW1wIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkludGVyc2VjdGlvbk9ic2VydmVyOjpub3RpZnkpOgorICAgICAgICAoV2ViQ29yZTo6SW50
ZXJzZWN0aW9uT2JzZXJ2ZXI6Omhhc1BlbmRpbmdBY3Rpdml0eSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnRlcnNlY3Rpb25PYnNlcnZlcjo6YWN0aXZlRE9NT2JqZWN0TmFtZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpJbnRlcnNlY3Rpb25PYnNlcnZlcjo6Y2FuU3VzcGVuZEZvckRv
Y3VtZW50U3VzcGVuc2lvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcnNlY3Rpb25P
YnNlcnZlcjo6c3RvcCk6CisgICAgICAgICogcGFnZS9JbnRlcnNlY3Rpb25PYnNlcnZlci5oOgor
ICAgICAgICAoV2ViQ29yZTo6SW50ZXJzZWN0aW9uT2JzZXJ2ZXI6OnRyYWNraW5nRG9jdW1lbnQg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJzZWN0aW9uT2JzZXJ2ZXI6OnRyYWNraW5n
RG9jdW1lbnQpOiBEZWxldGVkLgorICAgICAgICAqIHBhZ2UvSW50ZXJzZWN0aW9uT2JzZXJ2ZXIu
aWRsOgorCiAyMDE4LTA4LTMwICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29t
PgogCiAgICAgICAgIE1vY2sgdmlkZW8gZGV2aWNlcyBzaG91bGQgb25seSBzdXBwb3J0IGRpc2Ny
ZXRlIHNpemVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBlNzIzNTkxYTkxMzNjYTUxOGJh
MGE0ZTUxMmVkMTdmYzRkNzRjZThlLi42NjMyZjFjZjFlZjlhYzlkYjU0MTk1N2E4M2IzN2UxZmI3
OGM4ZTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTc0MjcsMjEgKzc0MjcsMTUgQEAg
dm9pZCBEb2N1bWVudDo6cmVtb3ZlVmlld3BvcnREZXBlbmRlbnRQaWN0dXJlKEhUTUxQaWN0dXJl
RWxlbWVudCYgcGljdHVyZSkKIH0KIAogI2lmIEVOQUJMRShJTlRFUlNFQ1RJT05fT0JTRVJWRVIp
Ci12b2lkIERvY3VtZW50OjphZGRJbnRlcnNlY3Rpb25PYnNlcnZlcihSZWZQdHI8SW50ZXJzZWN0
aW9uT2JzZXJ2ZXI+JiYgb2JzZXJ2ZXIpCit2b2lkIERvY3VtZW50OjphZGRJbnRlcnNlY3Rpb25P
YnNlcnZlcihJbnRlcnNlY3Rpb25PYnNlcnZlciYgb2JzZXJ2ZXIpCiB7Ci0gICAgQVNTRVJUKG1f
aW50ZXJzZWN0aW9uT2JzZXJ2ZXJzLmZpbmQob2JzZXJ2ZXIpID09IG5vdEZvdW5kKTsKLSAgICBt
X2ludGVyc2VjdGlvbk9ic2VydmVycy5hcHBlbmQoV1RGTW92ZShvYnNlcnZlcikpOworICAgIEFT
U0VSVChtX2ludGVyc2VjdGlvbk9ic2VydmVycy5maW5kKCZvYnNlcnZlcikgPT0gbm90Rm91bmQp
OworICAgIG1faW50ZXJzZWN0aW9uT2JzZXJ2ZXJzLmFwcGVuZChtYWtlV2Vha1B0cigmb2JzZXJ2
ZXIpKTsKIH0KIAotUmVmUHRyPEludGVyc2VjdGlvbk9ic2VydmVyPiBEb2N1bWVudDo6cmVtb3Zl
SW50ZXJzZWN0aW9uT2JzZXJ2ZXIoSW50ZXJzZWN0aW9uT2JzZXJ2ZXImIG9ic2VydmVyKQordm9p
ZCBEb2N1bWVudDo6cmVtb3ZlSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoSW50ZXJzZWN0aW9uT2JzZXJ2
ZXImIG9ic2VydmVyKQogewotICAgIFJlZlB0cjxJbnRlcnNlY3Rpb25PYnNlcnZlcj4gb2JzZXJ2
ZXJSZWY7Ci0gICAgYXV0byBpbmRleCA9IG1faW50ZXJzZWN0aW9uT2JzZXJ2ZXJzLmZpbmQoJm9i
c2VydmVyKTsKLSAgICBpZiAoaW5kZXggIT0gbm90Rm91bmQpIHsKLSAgICAgICAgb2JzZXJ2ZXJS
ZWYgPSBXVEZNb3ZlKG1faW50ZXJzZWN0aW9uT2JzZXJ2ZXJzW2luZGV4XSk7Ci0gICAgICAgIG1f
aW50ZXJzZWN0aW9uT2JzZXJ2ZXJzLnJlbW92ZShpbmRleCk7Ci0gICAgfQotICAgIHJldHVybiBv
YnNlcnZlclJlZjsKKyAgICBtX2ludGVyc2VjdGlvbk9ic2VydmVycy5yZW1vdmVGaXJzdCgmb2Jz
ZXJ2ZXIpOwogfQogCiBzdGF0aWMgdm9pZCBjb21wdXRlSW50ZXJzZWN0aW9uUmVjdHMoRnJhbWVW
aWV3JiBmcmFtZVZpZXcsIEludGVyc2VjdGlvbk9ic2VydmVyJiBvYnNlcnZlciwgRWxlbWVudCYg
dGFyZ2V0LCBGbG9hdFJlY3QmIGFic1RhcmdldFJlY3QsIEZsb2F0UmVjdCYgYWJzSW50ZXJzZWN0
aW9uUmVjdCwgRmxvYXRSZWN0JiBhYnNSb290Qm91bmRzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRl
eCA5ZTNjMzE4NTNmMTIzZWM5YmVhM2Y2OTBiODVlMTdiYWQwNzY3NWQ1Li44MDQ5MGQyNzRmMjli
MGE5MjYzMzEzMDI3NmZjZTIzNzdjYjczNjUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTM2
NCw4ICsxMzY0LDggQEAgcHVibGljOgogICAgIHZvaWQgcmVtb3ZlVmlld3BvcnREZXBlbmRlbnRQ
aWN0dXJlKEhUTUxQaWN0dXJlRWxlbWVudCYpOwogCiAjaWYgRU5BQkxFKElOVEVSU0VDVElPTl9P
QlNFUlZFUikKLSAgICB2b2lkIGFkZEludGVyc2VjdGlvbk9ic2VydmVyKFJlZlB0cjxJbnRlcnNl
Y3Rpb25PYnNlcnZlcj4mJik7Ci0gICAgUmVmUHRyPEludGVyc2VjdGlvbk9ic2VydmVyPiByZW1v
dmVJbnRlcnNlY3Rpb25PYnNlcnZlcihJbnRlcnNlY3Rpb25PYnNlcnZlciYpOworICAgIHZvaWQg
YWRkSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoSW50ZXJzZWN0aW9uT2JzZXJ2ZXImKTsKKyAgICB2b2lk
IHJlbW92ZUludGVyc2VjdGlvbk9ic2VydmVyKEludGVyc2VjdGlvbk9ic2VydmVyJik7CiAgICAg
dW5zaWduZWQgbnVtYmVyT2ZJbnRlcnNlY3Rpb25PYnNlcnZlcnMoKSBjb25zdCB7IHJldHVybiBt
X2ludGVyc2VjdGlvbk9ic2VydmVycy5zaXplKCk7IH0KICAgICB2b2lkIHVwZGF0ZUludGVyc2Vj
dGlvbk9ic2VydmF0aW9ucygpOwogICAgIHZvaWQgc2NoZWR1bGVJbnRlcnNlY3Rpb25PYnNlcnZh
dGlvblVwZGF0ZSgpOwpAQCAtMTc3NCw3ICsxNzc0LDcgQEAgcHJpdmF0ZToKICAgICBIYXNoU2V0
PEhUTUxQaWN0dXJlRWxlbWVudCo+IG1fdmlld3BvcnREZXBlbmRlbnRQaWN0dXJlczsKIAogI2lm
IEVOQUJMRShJTlRFUlNFQ1RJT05fT0JTRVJWRVIpCi0gICAgVmVjdG9yPFJlZlB0cjxJbnRlcnNl
Y3Rpb25PYnNlcnZlcj4+IG1faW50ZXJzZWN0aW9uT2JzZXJ2ZXJzOworICAgIFZlY3RvcjxXZWFr
UHRyPEludGVyc2VjdGlvbk9ic2VydmVyPj4gbV9pbnRlcnNlY3Rpb25PYnNlcnZlcnM7CiAgICAg
VmVjdG9yPFdlYWtQdHI8SW50ZXJzZWN0aW9uT2JzZXJ2ZXI+PiBtX2ludGVyc2VjdGlvbk9ic2Vy
dmVyc1dpdGhQZW5kaW5nTm90aWZpY2F0aW9uczsKIAogICAgIC8vIEZJWE1FOiBTY2hlZHVsZSBp
bnRlcnNlY3Rpb24gb2JzZXJ2YXRpb24gdXBkYXRlcyBpbiBhIHdheSB0aGF0IGZpdHMgaW50byB0
aGUgSFRNTApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IGI3OGRhOWNkMzMyYTc0MThhYmM1YTk5
MzI2ZmRmMWI0MmEwNjZjYWIuLmMyNzY0MTI5NDYzOWVmNWM5NWI4YmUzNDNjZjkzNGMyZWUwZWZl
ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTE2NTUsOCArMTY1NSwxMCBAQCB2b2lkIEVs
ZW1lbnQ6OmRpZE1vdmVUb05ld0RvY3VtZW50KERvY3VtZW50JiBvbGREb2N1bWVudCwgRG9jdW1l
bnQmIG5ld0RvY3VtZW50KQogI2lmIEVOQUJMRShJTlRFUlNFQ1RJT05fT0JTRVJWRVIpCiAgICAg
aWYgKGF1dG8qIG9ic2VydmVyRGF0YSA9IGludGVyc2VjdGlvbk9ic2VydmVyRGF0YSgpKSB7CiAg
ICAgICAgIGZvciAoYXV0byBvYnNlcnZlciA6IG9ic2VydmVyRGF0YS0+b2JzZXJ2ZXJzKSB7Ci0g
ICAgICAgICAgICBpZiAob2JzZXJ2ZXItPmhhc09ic2VydmF0aW9uVGFyZ2V0cygpKQotICAgICAg
ICAgICAgICAgIG5ld0RvY3VtZW50LmFkZEludGVyc2VjdGlvbk9ic2VydmVyKG9sZERvY3VtZW50
LnJlbW92ZUludGVyc2VjdGlvbk9ic2VydmVyKCpvYnNlcnZlcikpOworICAgICAgICAgICAgaWYg
KG9ic2VydmVyLT5oYXNPYnNlcnZhdGlvblRhcmdldHMoKSkgeworICAgICAgICAgICAgICAgIG9s
ZERvY3VtZW50LnJlbW92ZUludGVyc2VjdGlvbk9ic2VydmVyKCpvYnNlcnZlcik7CisgICAgICAg
ICAgICAgICAgbmV3RG9jdW1lbnQuYWRkSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKm9ic2VydmVyKTsK
KyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9JbnRlcnNlY3Rpb25PYnNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ludGVyc2VjdGlvbk9ic2VydmVyLmNwcAppbmRleCA1ZTY0Zjc1OTJiYzAyODAyZjk2
M2MxYjM2YjIwNmE3OTI0MWU2Y2NmLi43OTdlYTQ3YmUxNDVjMmMzZTk3NzExNjdhZmE3Y2VjYWUy
NDU4ZjBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ludGVyc2VjdGlvbk9ic2Vy
dmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ludGVyc2VjdGlvbk9ic2VydmVyLmNw
cApAQCAtMTA1LDcgKzEwNSw4IEBAIEV4Y2VwdGlvbk9yPFJlZjxJbnRlcnNlY3Rpb25PYnNlcnZl
cj4+IEludGVyc2VjdGlvbk9ic2VydmVyOjpjcmVhdGUoRG9jdW1lbnQmIGRvCiB9CiAKIEludGVy
c2VjdGlvbk9ic2VydmVyOjpJbnRlcnNlY3Rpb25PYnNlcnZlcihEb2N1bWVudCYgZG9jdW1lbnQs
IFJlZjxJbnRlcnNlY3Rpb25PYnNlcnZlckNhbGxiYWNrPiYmIGNhbGxiYWNrLCBFbGVtZW50KiBy
b290LCBMZW5ndGhCb3gmJiBwYXJzZWRSb290TWFyZ2luLCBWZWN0b3I8ZG91YmxlPiYmIHRocmVz
aG9sZHMpCi0gICAgOiBtX3Jvb3Qocm9vdCkKKyAgICA6IEFjdGl2ZURPTU9iamVjdChkb3duY2Fz
dDxEb2N1bWVudD4oY2FsbGJhY2stPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkpCisgICAgLCBt
X3Jvb3Qocm9vdCkKICAgICAsIG1fcm9vdE1hcmdpbihXVEZNb3ZlKHBhcnNlZFJvb3RNYXJnaW4p
KQogICAgICwgbV90aHJlc2hvbGRzKFdURk1vdmUodGhyZXNob2xkcykpCiAgICAgLCBtX2NhbGxi
YWNrKFdURk1vdmUoY2FsbGJhY2spKQpAQCAtMTE3LDEzICsxMTgsMTQgQEAgSW50ZXJzZWN0aW9u
T2JzZXJ2ZXI6OkludGVyc2VjdGlvbk9ic2VydmVyKERvY3VtZW50JiBkb2N1bWVudCwgUmVmPElu
dGVyc2VjdGlvbk8KICAgICAgICAgbV9pbXBsaWNpdFJvb3REb2N1bWVudCA9IG1ha2VXZWFrUHRy
KGZyYW1lLT5tYWluRnJhbWUoKS5kb2N1bWVudCgpKTsKIAogICAgIHN0ZDo6c29ydChtX3RocmVz
aG9sZHMuYmVnaW4oKSwgbV90aHJlc2hvbGRzLmVuZCgpKTsKKyAgICBzdXNwZW5kSWZOZWVkZWQo
KTsKIH0KIAogSW50ZXJzZWN0aW9uT2JzZXJ2ZXI6On5JbnRlcnNlY3Rpb25PYnNlcnZlcigpCiB7
CiAgICAgaWYgKG1fcm9vdCkKICAgICAgICAgbV9yb290LT5pbnRlcnNlY3Rpb25PYnNlcnZlckRh
dGEoKS0+b2JzZXJ2ZXJzLnJlbW92ZUZpcnN0KHRoaXMpOwotICAgIHJlbW92ZUFsbFRhcmdldHMo
KTsKKyAgICBkaXNjb25uZWN0KCk7CiB9CiAKIFN0cmluZyBJbnRlcnNlY3Rpb25PYnNlcnZlcjo6
cm9vdE1hcmdpbigpIGNvbnN0CkBAIC0xNDUsNyArMTQ3LDcgQEAgU3RyaW5nIEludGVyc2VjdGlv
bk9ic2VydmVyOjpyb290TWFyZ2luKCkgY29uc3QKIAogdm9pZCBJbnRlcnNlY3Rpb25PYnNlcnZl
cjo6b2JzZXJ2ZShFbGVtZW50JiB0YXJnZXQpCiB7Ci0gICAgaWYgKCF0cmFja2luZ0RvY3VtZW50
KCkgfHwgbV9vYnNlcnZhdGlvblRhcmdldHMuY29udGFpbnMoJnRhcmdldCkpCisgICAgaWYgKCF0
cmFja2luZ0RvY3VtZW50KCkgfHwgIW1fY2FsbGJhY2sgfHwgbV9vYnNlcnZhdGlvblRhcmdldHMu
Y29udGFpbnMoJnRhcmdldCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIHRhcmdldC5lbnN1cmVJ
bnRlcnNlY3Rpb25PYnNlcnZlckRhdGEoKS5yZWdpc3RyYXRpb25zLmFwcGVuZCh7IG1ha2VXZWFr
UHRyKHRoaXMpLCBzdGQ6Om51bGxvcHQgfSk7CkBAIC0xNTMsNyArMTU1LDcgQEAgdm9pZCBJbnRl
cnNlY3Rpb25PYnNlcnZlcjo6b2JzZXJ2ZShFbGVtZW50JiB0YXJnZXQpCiAgICAgbV9vYnNlcnZh
dGlvblRhcmdldHMuYXBwZW5kKCZ0YXJnZXQpOwogICAgIGF1dG8qIGRvY3VtZW50ID0gdHJhY2tp
bmdEb2N1bWVudCgpOwogICAgIGlmICghaGFkT2JzZXJ2YXRpb25UYXJnZXRzKQotICAgICAgICBk
b2N1bWVudC0+YWRkSW50ZXJzZWN0aW9uT2JzZXJ2ZXIodGhpcyk7CisgICAgICAgIGRvY3VtZW50
LT5hZGRJbnRlcnNlY3Rpb25PYnNlcnZlcigqdGhpcyk7CiAgICAgZG9jdW1lbnQtPnNjaGVkdWxl
SW50ZXJzZWN0aW9uT2JzZXJ2YXRpb25VcGRhdGUoKTsKIH0KIApAQCAtMjE5LDE2ICsyMjEsMTUg
QEAgdm9pZCBJbnRlcnNlY3Rpb25PYnNlcnZlcjo6cmVtb3ZlQWxsVGFyZ2V0cygpCiB2b2lkIElu
dGVyc2VjdGlvbk9ic2VydmVyOjpyb290RGVzdHJveWVkKCkKIHsKICAgICBBU1NFUlQobV9yb290
KTsKLSAgICBhdXRvJiBkb2N1bWVudCA9IG1fcm9vdC0+ZG9jdW1lbnQoKTsKKyAgICBkaXNjb25u
ZWN0KCk7CiAgICAgbV9yb290ID0gbnVsbHB0cjsKLSAgICBpZiAoaGFzT2JzZXJ2YXRpb25UYXJn
ZXRzKCkpIHsKLSAgICAgICAgcmVtb3ZlQWxsVGFyZ2V0cygpOwotICAgICAgICBkb2N1bWVudC5y
ZW1vdmVJbnRlcnNlY3Rpb25PYnNlcnZlcigqdGhpcyk7Ci0gICAgfQogfQogCiBib29sIEludGVy
c2VjdGlvbk9ic2VydmVyOjpjcmVhdGVUaW1lc3RhbXAoRE9NSGlnaFJlc1RpbWVTdGFtcCYgdGlt
ZXN0YW1wKSBjb25zdAogeworICAgIGlmICghbV9jYWxsYmFjaykKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCiAgICAgYXV0byogY29udGV4dCA9IG1fY2FsbGJhY2stPnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKTsKICAgICBpZiAoIWNvbnRleHQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTI1
MCwxMiArMjUxLDMzIEBAIHZvaWQgSW50ZXJzZWN0aW9uT2JzZXJ2ZXI6OmFwcGVuZFF1ZXVlZEVu
dHJ5KFJlZjxJbnRlcnNlY3Rpb25PYnNlcnZlckVudHJ5PiYmIGVuCiAKIHZvaWQgSW50ZXJzZWN0
aW9uT2JzZXJ2ZXI6Om5vdGlmeSgpCiB7Ci0gICAgaWYgKG1fcXVldWVkRW50cmllcy5pc0VtcHR5
KCkgfHwgIW1fY2FsbGJhY2stPmNhbkludm9rZUNhbGxiYWNrKCkpCisgICAgaWYgKG1fcXVldWVk
RW50cmllcy5pc0VtcHR5KCkgfHwgIW1fY2FsbGJhY2sgfHwgIW1fY2FsbGJhY2stPmNhbkludm9r
ZUNhbGxiYWNrKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fY2FsbGJhY2stPmhhbmRsZUV2
ZW50KHRha2VSZWNvcmRzKCksICp0aGlzKTsKIH0KIAorYm9vbCBJbnRlcnNlY3Rpb25PYnNlcnZl
cjo6aGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QKK3sKKyAgICByZXR1cm4gaGFzT2JzZXJ2YXRp
b25UYXJnZXRzKCkgJiYgdHJhY2tpbmdEb2N1bWVudCgpOworfQorCitjb25zdCBjaGFyKiBJbnRl
cnNlY3Rpb25PYnNlcnZlcjo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0Cit7CisgICAgcmV0
dXJuICJJbnRlcnNlY3Rpb25PYnNlcnZlciI7Cit9CisKK2Jvb2wgSW50ZXJzZWN0aW9uT2JzZXJ2
ZXI6OmNhblN1c3BlbmRGb3JEb2N1bWVudFN1c3BlbnNpb24oKSBjb25zdAoreworICAgIHJldHVy
biB0cnVlOworfQorCit2b2lkIEludGVyc2VjdGlvbk9ic2VydmVyOjpzdG9wKCkKK3sKKyAgICBk
aXNjb25uZWN0KCk7CisgICAgbV9jYWxsYmFjayA9IG51bGxwdHI7Cit9CisKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShJTlRFUlNFQ1RJT05fT0JTRVJWRVIpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ludGVyc2VjdGlvbk9ic2VydmVyLmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ludGVyc2VjdGlvbk9ic2VydmVyLmgKaW5kZXggNzBhYmM0OTMw
NTQ2ZTc2ZTUxMDc1YjVkYmM1OWQ2YzFhNDVhNTQ5NS4uZjUwODllMDRmZTkyZmRhNDJhNzJhMWZj
YmM0MWFkYmM4MjNiMWVhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9JbnRlcnNl
Y3Rpb25PYnNlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvSW50ZXJzZWN0aW9uT2Jz
ZXJ2ZXIuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaWYgRU5BQkxFKElOVEVSU0VDVElPTl9PQlNF
UlZFUikKIAorI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgogI2luY2x1ZGUgIkludGVyc2Vj
dGlvbk9ic2VydmVyQ2FsbGJhY2suaCIKICNpbmNsdWRlICJJbnRlcnNlY3Rpb25PYnNlcnZlckVu
dHJ5LmgiCiAjaW5jbHVkZSAiTGVuZ3RoQm94LmgiCkBAIC00NywxNSArNDgsMTUgQEAgc3RydWN0
IEludGVyc2VjdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uIHsKIAogc3RydWN0IEludGVyc2VjdGlv
bk9ic2VydmVyRGF0YSB7CiAgICAgLy8gSW50ZXJzZWN0aW9uT2JzZXJ2ZXJzIGZvciB3aGljaCB0
aGUgZWxlbWVudCB0aGF0IG93bnMgdGhpcyBJbnRlcnNlY3Rpb25PYnNlcnZlckRhdGEgaXMgdGhl
IHJvb3QuCi0gICAgLy8gQW4gSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgd2l0aG91dCBhbnkgdGFyZ2V0
cyBpcyBvbmx5IG93bmVkIGJ5IEphdmFTY3JpcHQgd3JhcHBlcnMuIEFuCi0gICAgLy8gSW50ZXJz
ZWN0aW9uT2JzZXJ2ZXIgd2l0aCBhdCBsZWFzdCBvbmUgdGFyZ2V0IGlzIGFsc28gb3duZWQgYnkg
aXRzIHRyYWNraW5nRG9jdW1lbnQuCisgICAgLy8gQW4gSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgaXMg
b25seSBvd25lZCBieSBhIEphdmFTY3JpcHQgd3JhcHBlci4gQWN0aXZlRE9NT2JqZWN0OjpoYXNQ
ZW5kaW5nQWN0aXZpdHkKKyAgICAvLyBpcyBvdmVycmlkZGVuIHRvIGtlZXAgdGhpcyB3cmFwcGVy
IGFsaXZlIHdoaWxlIHRoZSBvYnNlcnZlciBoYXMgb25nb2luZyBvYnNlcnZhdGlvbnMuCiAgICAg
VmVjdG9yPFdlYWtQdHI8SW50ZXJzZWN0aW9uT2JzZXJ2ZXI+PiBvYnNlcnZlcnM7CiAKICAgICAv
LyBJbnRlcnNlY3Rpb25PYnNlcnZlclJlZ2lzdHJhdGlvbnMgZm9yIHdoaWNoIHRoZSBlbGVtZW50
IHRoYXQgb3ducyB0aGlzIEludGVyc2VjdGlvbk9ic2VydmVyRGF0YSBpcyB0aGUgdGFyZ2V0Lgog
ICAgIFZlY3RvcjxJbnRlcnNlY3Rpb25PYnNlcnZlclJlZ2lzdHJhdGlvbj4gcmVnaXN0cmF0aW9u
czsKIH07CiAKLWNsYXNzIEludGVyc2VjdGlvbk9ic2VydmVyIDogcHVibGljIFJlZkNvdW50ZWQ8
SW50ZXJzZWN0aW9uT2JzZXJ2ZXI+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8SW50ZXJzZWN0aW9u
T2JzZXJ2ZXI+IHsKK2NsYXNzIEludGVyc2VjdGlvbk9ic2VydmVyIDogcHVibGljIFJlZkNvdW50
ZWQ8SW50ZXJzZWN0aW9uT2JzZXJ2ZXI+LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwdWJsaWMg
Q2FuTWFrZVdlYWtQdHI8SW50ZXJzZWN0aW9uT2JzZXJ2ZXI+IHsKIHB1YmxpYzoKICAgICBzdHJ1
Y3QgSW5pdCB7CiAgICAgICAgIEVsZW1lbnQqIHJvb3QgeyBudWxscHRyIH07CkBAIC02Nyw3ICs2
OCw3IEBAIHB1YmxpYzoKIAogICAgIH5JbnRlcnNlY3Rpb25PYnNlcnZlcigpOwogCi0gICAgRG9j
dW1lbnQqIHRyYWNraW5nRG9jdW1lbnQoKSB7IHJldHVybiBtX3Jvb3QgPyAmbV9yb290LT5kb2N1
bWVudCgpIDogbV9pbXBsaWNpdFJvb3REb2N1bWVudC5nZXQoKTsgfQorICAgIERvY3VtZW50KiB0
cmFja2luZ0RvY3VtZW50KCkgY29uc3QgeyByZXR1cm4gbV9yb290ID8gJm1fcm9vdC0+ZG9jdW1l
bnQoKSA6IG1faW1wbGljaXRSb290RG9jdW1lbnQuZ2V0KCk7IH0KIAogICAgIEVsZW1lbnQqIHJv
b3QoKSBjb25zdCB7IHJldHVybiBtX3Jvb3Q7IH0KICAgICBTdHJpbmcgcm9vdE1hcmdpbigpIGNv
bnN0OwpAQCAtODksNiArOTAsMTIgQEAgcHVibGljOgogICAgIHZvaWQgYXBwZW5kUXVldWVkRW50
cnkoUmVmPEludGVyc2VjdGlvbk9ic2VydmVyRW50cnk+JiYpOwogICAgIHZvaWQgbm90aWZ5KCk7
CiAKKyAgICAvLyBBY3RpdmVET01PYmplY3QuCisgICAgYm9vbCBoYXNQZW5kaW5nQWN0aXZpdHko
KSBjb25zdCBvdmVycmlkZTsKKyAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkg
Y29uc3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBjYW5TdXNwZW5kRm9yRG9jdW1lbnRTdXNwZW5zaW9u
KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7CisKIHByaXZhdGU6
CiAgICAgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoRG9jdW1lbnQmLCBSZWY8SW50ZXJzZWN0aW9uT2Jz
ZXJ2ZXJDYWxsYmFjaz4mJiwgRWxlbWVudCogcm9vdCwgTGVuZ3RoQm94JiYgcGFyc2VkUm9vdE1h
cmdpbiwgVmVjdG9yPGRvdWJsZT4mJiB0aHJlc2hvbGRzKTsKIApAQCAtOTksNyArMTA2LDcgQEAg
cHJpdmF0ZToKICAgICBFbGVtZW50KiBtX3Jvb3Q7CiAgICAgTGVuZ3RoQm94IG1fcm9vdE1hcmdp
bjsKICAgICBWZWN0b3I8ZG91YmxlPiBtX3RocmVzaG9sZHM7Ci0gICAgUmVmPEludGVyc2VjdGlv
bk9ic2VydmVyQ2FsbGJhY2s+IG1fY2FsbGJhY2s7CisgICAgUmVmUHRyPEludGVyc2VjdGlvbk9i
c2VydmVyQ2FsbGJhY2s+IG1fY2FsbGJhY2s7CiAgICAgVmVjdG9yPEVsZW1lbnQqPiBtX29ic2Vy
dmF0aW9uVGFyZ2V0czsKICAgICBWZWN0b3I8UmVmPEludGVyc2VjdGlvbk9ic2VydmVyRW50cnk+
PiBtX3F1ZXVlZEVudHJpZXM7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9J
bnRlcnNlY3Rpb25PYnNlcnZlci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ludGVyc2VjdGlv
bk9ic2VydmVyLmlkbAppbmRleCBmNzg3NzJhZjc0ZWM1M2Q5MTA5NTgyMzY1YWFjMWMyZjVjMmZj
ODUyLi5hZTg4YTZlMjMyZmJhOWJhN2ZiYjg1ZWU3YWE2OWNlMGYwZjQ0MWFhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ludGVyc2VjdGlvbk9ic2VydmVyLmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ludGVyc2VjdGlvbk9ic2VydmVyLmlkbApAQCAtMjYsMTEgKzI2LDEx
IEBACiAvLyBodHRwczovL3dpY2cuZ2l0aHViLmlvL0ludGVyc2VjdGlvbk9ic2VydmVyLwogCiBb
CisgICAgQWN0aXZlRE9NT2JqZWN0LAogICAgIENvbmRpdGlvbmFsPUlOVEVSU0VDVElPTl9PQlNF
UlZFUiwKICAgICBDb25zdHJ1Y3RvckNhbGxXaXRoPURvY3VtZW50LAogICAgIENvbnN0cnVjdG9y
TWF5VGhyb3dFeGNlcHRpb24sCiAgICAgQ29uc3RydWN0b3IoSW50ZXJzZWN0aW9uT2JzZXJ2ZXJD
YWxsYmFjayBjYWxsYmFjaywgb3B0aW9uYWwgSW50ZXJzZWN0aW9uT2JzZXJ2ZXJJbml0IG9wdGlv
bnMpLAotICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCiAgICAgRW5hYmxlZEF0UnVudGlt
ZT1JbnRlcnNlY3Rpb25PYnNlcnZlcgogXSBpbnRlcmZhY2UgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIg
ewogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBFbGVtZW50PyByb290OwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDVhZWRmYmQ0
ODg4Y2MwNTA2ZTAzMzNmOTk2OGZmZDkzMjg4NGU2YjIuLmVmMGVlNTc0ZDllOTVmZDEwMDdlNTJj
M2Y5YTQ1OTJlMDZmZWQ4MTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxOC0wOS0wNiAgQWxp
IEp1bWEgIDxhanVtYUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW50ZXJzZWN0aW9uT2JzZXJ2
ZXIgbGVha3MgZG9jdW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xODkxMjgKKworICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisK
KyAgICAgICAgKiBpbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvbm8tZG9jdW1lbnQtbGVhay1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGludGVyc2VjdGlvbi1vYnNlcnZlci9uby1kb2N1bWVu
dC1sZWFrLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGludGVyc2VjdGlvbi1vYnNlcnZlci9vYnNl
cnZlci1hbmQtY2FsbGJhY2std2l0aG91dC1qcy1yZWZlcmVuY2VzLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaW50ZXJzZWN0aW9uLW9ic2VydmVyL29ic2VydmVyLWFuZC1jYWxsYmFj
ay13aXRob3V0LWpzLXJlZmVyZW5jZXMuaHRtbDogQWRkZWQuCisgICAgICAgICogaW50ZXJzZWN0
aW9uLW9ic2VydmVyL3Jlc291cmNlcy9uby1kb2N1bWVudC1sZWFrLWZyYW1lLmh0bWw6IEFkZGVk
LgorCiAyMDE4LTA4LTMwICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgog
CiAgICAgICAgIE1vY2sgdmlkZW8gZGV2aWNlcyBzaG91bGQgb25seSBzdXBwb3J0IGRpc2NyZXRl
IHNpemVzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvbm8t
ZG9jdW1lbnQtbGVhay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnRlcnNlY3Rpb24tb2Jz
ZXJ2ZXIvbm8tZG9jdW1lbnQtbGVhay1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzQ5Y2IxODEy
OGU3MzI0MDkwYmI3OGFiMTVhYmU0MmYyZGRlYjI2ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ludGVyc2VjdGlvbi1vYnNlcnZlci9uby1kb2N1bWVudC1sZWFrLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDEwIEBACitUZXN0cyB0aGF0IHVzaW5nIEludGVyc2VjdGlvbk9ic2VydmVy
IGRvZXMgbm90IGNhdXNlIHRoZSBkb2N1bWVudCB0byBnZXQgbGVha2VkLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyBEb2N1bWVudCBkaWQgbm90IGxlYWsKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvbm8tZG9jdW1lbnQtbGVhay5odG1sIGIv
TGF5b3V0VGVzdHMvaW50ZXJzZWN0aW9uLW9ic2VydmVyL25vLWRvY3VtZW50LWxlYWsuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4yOGQ1ZDQ0YmNjYzE3YTc2NGMyNzRjM2YzNjJlMDhiOTgzOGZkMjgzCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW50ZXJzZWN0aW9uLW9ic2VydmVyL25vLWRvY3Vt
ZW50LWxlYWsuaHRtbApAQCAtMCwwICsxLDM5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPGlmcmFtZSBpZD0idGVzdEZyYW1lIiBzcmM9InJlc291cmNl
cy9uby1kb2N1bWVudC1sZWFrLWZyYW1lLmh0bWwiPjwvaWZyYW1lPgorPHNjcmlwdD4KK2Rlc2Ny
aXB0aW9uKCJUZXN0cyB0aGF0IHVzaW5nIEludGVyc2VjdGlvbk9ic2VydmVyIGRvZXMgbm90IGNh
dXNlIHRoZSBkb2N1bWVudCB0byBnZXQgbGVha2VkLiIpOword2luZG93LmpzVGVzdElzQXN5bmMg
PSB0cnVlOworCitmdW5jdGlvbiBkb2N1bWVudFNob3VsZERpZShkb2N1bWVudElkZW50aWZpZXIp
Cit7CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgewor
ICAgICAgICBoYW5kbGUgPSBzZXRJbnRlcnZhbChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGdj
KCk7CisgICAgICAgICAgICBpZiAoaW50ZXJuYWxzICYmICFpbnRlcm5hbHMuaXNEb2N1bWVudEFs
aXZlKGRvY3VtZW50SWRlbnRpZmllcikgJiYgaW50ZXJuYWxzLm51bWJlck9mSW50ZXJzZWN0aW9u
T2JzZXJ2ZXJzKGRvY3VtZW50KSA9PSAwKSB7CisgICAgICAgICAgICAgICAgY2xlYXJJbnRlcnZh
bChoYW5kbGUpOworICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfSwgMTApOworICAgIH0pOworfQorCit2YXIgdGVzdEZyYW1lID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInRlc3RGcmFtZSIpOwordGVzdEZyYW1lLm9ubG9hZCA9IGZ1bmN0aW9uKCkg
eworICAgIGxldCBmcmFtZURvY3VtZW50SWRlbnRpZmllciA9IGludGVybmFscy5kb2N1bWVudElk
ZW50aWZpZXIodGVzdEZyYW1lLmNvbnRlbnREb2N1bWVudCk7CisgICAgdGVzdEZyYW1lLnJlbW92
ZSgpOworICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgIGRvY3VtZW50U2hvdWxk
RGllKGZyYW1lRG9jdW1lbnRJZGVudGlmaWVyKS50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgdGVzdFBhc3NlZCgiRG9jdW1lbnQgZGlkIG5vdCBsZWFrIik7CisgICAgICAgICAgICBmaW5p
c2hKU1Rlc3QoKTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9OworPC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvb2Jz
ZXJ2ZXItYW5kLWNhbGxiYWNrLXdpdGhvdXQtanMtcmVmZXJlbmNlcy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvb2JzZXJ2ZXItYW5kLWNhbGxiYWNrLXdp
dGhvdXQtanMtcmVmZXJlbmNlcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDJlNDMzYTcyYzMy
YTQ0ODI3OTBjNzNkNWUwYWNjMWY3MjVjMDkwOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ludGVyc2VjdGlvbi1vYnNlcnZlci9vYnNlcnZlci1hbmQtY2FsbGJhY2std2l0aG91dC1q
cy1yZWZlcmVuY2VzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJbnRlcnNl
Y3Rpb25PYnNlcnZlciBjYWxsYmFjayBmaXJlcyBldmVuIHdoZW4gdGhlIG9ic2VydmVyIGFuZCBj
YWxsYmFjayBoYXZlIG5vIEpTIHJlZmVyZW5jZXMgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ludGVyc2VjdGlvbi1vYnNlcnZlci9vYnNlcnZlci1hbmQtY2FsbGJhY2std2l0aG91dC1qcy1y
ZWZlcmVuY2VzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvb2JzZXJ2
ZXItYW5kLWNhbGxiYWNrLXdpdGhvdXQtanMtcmVmZXJlbmNlcy5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJj
MTc0OWQwNjFkOTc5NTNlOGNlZmU3YWFmYTczODY0M2NkMDUzZWUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvb2JzZXJ2ZXItYW5kLWNhbGxiYWNr
LXdpdGhvdXQtanMtcmVmZXJlbmNlcy5odG1sCkBAIC0wLDAgKzEsMjUgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9nYy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorCis8c3R5bGU+
CisjdGFyZ2V0IHsKKyAgd2lkdGg6IDEwMHB4OworICBoZWlnaHQ6IDEwMHB4OworICBiYWNrZ3Jv
dW5kLWNvbG9yOiBncmVlbjsKK30KKzwvc3R5bGU+Cis8ZGl2IGlkPSJ0YXJnZXQiPjwvZGl2Pgor
Cis8c2NyaXB0PgordmFyIHRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQi
KTsKKworYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CisgICAgbmV3IEludGVyc2VjdGlvbk9ic2Vy
dmVyKGZ1bmN0aW9uKGNoYW5nZXMpIHsKKyAgICAgICAgdC5kb25lKCk7CisgICAgfSkub2JzZXJ2
ZSh0YXJnZXQpOworfSwgIkludGVyc2VjdGlvbk9ic2VydmVyIGNhbGxiYWNrIGZpcmVzIGV2ZW4g
d2hlbiB0aGUgb2JzZXJ2ZXIgYW5kIGNhbGxiYWNrIGhhdmUgbm8gSlMgcmVmZXJlbmNlcyIpOwor
CitnYygpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnRlcnNlY3Rpb24t
b2JzZXJ2ZXIvcmVzb3VyY2VzL25vLWRvY3VtZW50LWxlYWstZnJhbWUuaHRtbCBiL0xheW91dFRl
c3RzL2ludGVyc2VjdGlvbi1vYnNlcnZlci9yZXNvdXJjZXMvbm8tZG9jdW1lbnQtbGVhay1mcmFt
ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjMzMmJhZmZhYTEzYWUxYzJmZTY1OWUzYjJkZmI0MzQ0ZGNlOTg2
NmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXIv
cmVzb3VyY2VzL25vLWRvY3VtZW50LWxlYWstZnJhbWUuaHRtbApAQCAtMCwwICsxLDggQEAKKzwh
RE9DVFlQRSBodG1sPgorPGRpdiBpZD0idGFyZ2V0Ij48L2Rpdj4KKworPHNjcmlwdD4KK3ZhciB0
YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0Iik7Cit2YXIgb2JzZXJ2ZXIg
PSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oKSB7IH0pOworb2JzZXJ2ZXIub2Jz
ZXJ2ZSh0YXJnZXQpOworPC9zY3JpcHQ+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>