<?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>135164</bug_id>
          
          <creation_ts>2014-07-22 10:57:26 -0700</creation_ts>
          <short_desc>[MSE][Mac] In SourceBufferPrivateAVFObjC::abort(), support reseting parser to the last appended initialization segment.</short_desc>
          <delta_ts>2024-09-04 08:18:17 -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>New Bugs</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>135163</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>ahmad.saleem792</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>joeyparrish</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1023990</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2014-07-22 10:57:26 -0700</bug_when>
    <thetext>[MSE][Mac] In SourceBufferPrivateAVFObjC::abort(), support reseting parser to the last appended initialization segment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1234128</commentid>
    <comment_count>1</comment_count>
      <attachid>290022</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2016-09-27 16:46:02 -0700</bug_when>
    <thetext>Created attachment 290022
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1234132</commentid>
    <comment_count>2</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2016-09-27 16:49:23 -0700</bug_when>
    <thetext>rdar://problem/28438637</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1234139</commentid>
    <comment_count>3</comment_count>
      <attachid>290022</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2016-09-27 16:57:59 -0700</bug_when>
    <thetext>Comment on attachment 290022
Patch

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

Looks like you forgot a few files :-)

&gt; Source/WebCore/ChangeLog:17
&gt; +        and will block until the the previous append() operation completes.

Nit: the the

&gt; Source/WebCore/ChangeLog:20
&gt; +        SourceBufferPrivateAVFObjC to be reset after an abort(), so make that ivar a @property. Rather than passing a

Nit: &quot;a @property&quot; -&gt; &quot;an @property&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1234142</commentid>
    <comment_count>4</comment_count>
      <attachid>290026</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2016-09-27 17:01:13 -0700</bug_when>
    <thetext>Created attachment 290026
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1234147</commentid>
    <comment_count>5</comment_count>
      <attachid>290026</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2016-09-27 17:10:15 -0700</bug_when>
    <thetext>Comment on attachment 290026
Patch

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

&gt; Source/WebCore/ChangeLog:17
&gt; +        and will block until the the previous append() operation completes.

Nit: &quot;the the&quot;

&gt; Source/WebCore/ChangeLog:20
&gt; +        SourceBufferPrivateAVFObjC to be reset after an abort(), so make that ivar a @property. Rather than passing a

Nit: &quot;a @property&quot; -&gt; &quot;an @property&quot;

&gt; Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:675
&gt; +    dispatch_group_wait(m_isAppendingGroup.get(), DISPATCH_TIME_FOREVER);

Is it really safe to wait forever?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1234178</commentid>
    <comment_count>6</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2016-09-27 17:48:13 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Comment on attachment 290026 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=290026&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:17
&gt; &gt; +        and will block until the the previous append() operation completes.
&gt; 
&gt; Nit: &quot;the the&quot;

Ok.

&gt; &gt; Source/WebCore/ChangeLog:20
&gt; &gt; +        SourceBufferPrivateAVFObjC to be reset after an abort(), so make that ivar a @property. Rather than passing a
&gt; 
&gt; Nit: &quot;a @property&quot; -&gt; &quot;an @property&quot;

Ok.

&gt; &gt; Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:675
&gt; &gt; +    dispatch_group_wait(m_isAppendingGroup.get(), DISPATCH_TIME_FOREVER);
&gt; 
&gt; Is it really safe to wait forever?

Now that I think of it, no, it&apos;s not.  The parsing thread may be blocked on the main thread providing it a AVStreamSession for EME-backed media elements. Apart from that, however, it should be fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1234180</commentid>
    <comment_count>7</comment_count>
      <attachid>290034</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2016-09-27 17:51:10 -0700</bug_when>
    <thetext>Created attachment 290034
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1234190</commentid>
    <comment_count>8</comment_count>
      <attachid>290040</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2016-09-27 18:01:29 -0700</bug_when>
    <thetext>Created attachment 290040
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1234376</commentid>
    <comment_count>9</comment_count>
      <attachid>290040</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-09-28 07:55:10 -0700</bug_when>
    <thetext>Comment on attachment 290040
Patch for landing

Clearing flags on attachment: 290040

Committed r206518: &lt;http://trac.webkit.org/changeset/206518&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2057587</commentid>
    <comment_count>10</comment_count>
    <who name="Ahmad Saleem">ahmad.saleem792</who>
    <bug_when>2024-09-04 08:18:17 -0700</bug_when>
    <thetext>Seems landed but never changed to fixed - https://github.com/WebKit/WebKit/commit/f533a6787f5fe06616ced4d44333dd16f24eb59d</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290022</attachid>
            <date>2016-09-27 16:46:02 -0700</date>
            <delta_ts>2016-09-27 17:01:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-135164-20160927164303.patch</filename>
            <type>text/plain</type>
            <size>9088</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2NDQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGVlN2IxM2ZiZTgzZjBl
MzRkNWI3MGZmODdlYjE4OThjYzhlNzZjNy4uNGQxOTBkZDkwYmMwOGE5MTA2MjhhNzU5NTFjYzJk
NmY0OTE0YTc3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDE2LTA5LTI3ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtNU0VdW01hY10gSW4gU291
cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmFib3J0KCksIHN1cHBvcnQgcmVzZXRpbmcgcGFyc2Vy
IHRvIHRoZSBsYXN0IGFwcGVuZGVkIGluaXRpYWxpemF0aW9uIHNlZ21lbnQuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzUxNjQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBtZWRpYS9tZWRpYS1z
b3VyY2UvbWVkaWEtc291cmNlLWFib3J0LXJlc2V0cy1wYXJzZXIuaHRtbAorCisgICAgICAgIFVz
ZSB0aGUgLVtBVlN0cmVhbURhdGFQYXJzZXIgYXBwZW5kU3RyZWFtRGF0YTp3aXRoRmxhZ3M6XSB0
byBpbXBsZW1lbnQgInJlc2V0dGluZyIgdGhlIHBhcnNlci4gSW4gdGhpcyBjYXNlLAorICAgICAg
ICB0aGUgcGFyc2VyIGlzbid0IGV4cGxpY2l0bHkgcmVzZXQgZHVyaW5nIHJlc2V0UGFyc2VyU3Rh
dGUoKSwgYnV0IHJhdGhlciBhIGZsYWcgaXMgc2V0IHNvIHRoYXQgdGhlIG5leHQgYXBwZW5kCisg
ICAgICAgIHNpZ25hbHMgYSBkYXRhIGRpc2NvbnRpbnVpdHksIGFuZCB0aGUgcGFyc2VyIGlzIHJl
c2V0IGF0IHRoYXQgcG9pbnQuCisKKyAgICAgICAgQmVjYXVzZSBhIHByZXZpb3VzIGFwcGVuZCBv
cGVyYXRpb24gbWF5IGJlIGluLWZsaWdodCBkdXJpbmcgdGhpcyBhYm9ydCgpLCBjYXJlIG11c3Qg
YmUgdGFrZW4gdG8gaW52YWxpZGF0ZSBhbnkKKyAgICAgICAgb3BlcmF0aW9ucyB3aGljaCBtYXkg
aGF2ZSBhbHJlYWR5IHN0YXJ0ZWQgb24gYSBiYWNrZ3JvdW5kIHRocmVhZC4gU28gU291cmNlQnVm
ZmVyUHJpdmF0ZUFWRk9iakMgd2lsbCB1c2UgYQorICAgICAgICBzZXBhcmF0ZSBXZWFrUHRyRmFj
dG9yeSBmb3IgaXRzIGFwcGVuZCBvcGVyYXRpb25zLCB3aWxsIGludmFsaWRhdGUgYW55IG91dHN0
YW5kaW5nIFdlYWtQdHJzIGR1cmluZyBhbiBhYm9ydCgpLAorICAgICAgICBhbmQgd2lsbCBibG9j
ayB1bnRpbCB0aGUgdGhlIHByZXZpb3VzIGFwcGVuZCgpIG9wZXJhdGlvbiBjb21wbGV0ZXMuCisK
KyAgICAgICAgVGhpcyB3aWxsIHJlcXVpcmUgdGhlIFdlYkFWU3RyZWFtRGF0YVBhcnNlckxpc3Rl
bmVyIG9iamVjdCB0byBvY2Nhc2lvbmFsbHkgaGF2ZSBpdCdzIFdlYWtQdHIgcG9pbnRpbmcgYmFj
ayB0byB0aGUKKyAgICAgICAgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMgdG8gYmUgcmVzZXQg
YWZ0ZXIgYW4gYWJvcnQoKSwgc28gbWFrZSB0aGF0IGl2YXIgYSBAcHJvcGVydHkuIFJhdGhlciB0
aGFuIHBhc3NpbmcgYQorICAgICAgICBSZXRhaW5QdHIgdG8gaXRzZWxmIGluIGFsbCB0aGUgY2Fs
bGJhY2tzIGl0IGhhbmRsZXMsIHRoZSBXZWJBVlN0cmVhbURhdGFQYXJzZXJMaXN0ZW5lciBjYW4g
anVzdCBwYXNzIGluIGEgY29weQorICAgICAgICBvZiBpdHMgb3duIFdlYWtQdHIgKHdoaWNoIG1h
eSBiZSBpbnZhbGlkYXRlZCBkdXJpbmcgYW4gYWJvcnQoKSkuCisKKyAgICAgICAgQnJlYWsgdGhl
IGRpc3RpbmN0IG9wZXJhdGlvbnMgb2YgImFib3J0KCkiIGFuZCAicmVzZXRQYXJzZXJTdGF0ZSgp
IiBpbnRvIHRoZWlyIG93biBtZXRob2RzIGluIFNvdXJjZUJ1ZmZlclByaXZhdGUKKyAgICAgICAg
YW5kIGFsbCBpdHMgc3ViY2xhc3Nlcy4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzb3VyY2Uv
U291cmNlQnVmZmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlcjo6cmVzZXRQ
YXJzZXJTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXI6OmFib3J0SWZVcGRh
dGluZyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvU291cmNlQnVmZmVyUHJpdmF0ZS5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1
ZmZlclByaXZhdGVBVkZPYmpDLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW06CisgICAgICAgICgtW1dl
YkFWU3RyZWFtRGF0YVBhcnNlckxpc3RlbmVyIHN0cmVhbURhdGFQYXJzZXI6ZGlkUGFyc2VTdHJl
YW1EYXRhQXNBc3NldDpdKToKKyAgICAgICAgKC1bV2ViQVZTdHJlYW1EYXRhUGFyc2VyTGlzdGVu
ZXIgc3RyZWFtRGF0YVBhcnNlcjpkaWRQYXJzZVN0cmVhbURhdGFBc0Fzc2V0OndpdGhEaXNjb250
aW51aXR5Ol0pOgorICAgICAgICAoLVtXZWJBVlN0cmVhbURhdGFQYXJzZXJMaXN0ZW5lciBzdHJl
YW1EYXRhUGFyc2VyOmRpZEZhaWxUb1BhcnNlU3RyZWFtRGF0YVdpdGhFcnJvcjpdKToKKyAgICAg
ICAgKC1bV2ViQVZTdHJlYW1EYXRhUGFyc2VyTGlzdGVuZXIgc3RyZWFtRGF0YVBhcnNlcjpkaWRQ
cm92aWRlTWVkaWFEYXRhOmZvclRyYWNrSUQ6bWVkaWFUeXBlOmZsYWdzOl0pOgorICAgICAgICAo
LVtXZWJBVlN0cmVhbURhdGFQYXJzZXJMaXN0ZW5lciBzdHJlYW1EYXRhUGFyc2VyOmRpZFJlYWNo
RW5kT2ZUcmFja1dpdGhUcmFja0lEOm1lZGlhVHlwZTpdKToKKyAgICAgICAgKC1bV2ViQVZTdHJl
YW1EYXRhUGFyc2VyTGlzdGVuZXIgc3RyZWFtRGF0YVBhcnNlcldpbGxQcm92aWRlQ29udGVudEtl
eVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGE6Zm9yVHJhY2tJRDpdKToKKyAgICAgICAgKC1bV2Vi
QVZTdHJlYW1EYXRhUGFyc2VyTGlzdGVuZXIgc3RyZWFtRGF0YVBhcnNlcjpkaWRQcm92aWRlQ29u
dGVudEtleVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGE6Zm9yVHJhY2tJRDpdKToKKyAgICAgICAg
KFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpTb3VyY2VCdWZmZXJQcml2YXRl
QVZGT2JqQyk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6
YXBwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjph
Ym9ydCk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6cmVz
ZXRQYXJzZXJTdGF0ZSk6CisgICAgICAgICgtW1dlYkFWU3RyZWFtRGF0YVBhcnNlckxpc3RlbmVy
IGluaXRXaXRoUGFyc2VyOnBhcmVudDpdKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9t
b2NrL21lZGlhc291cmNlL01vY2tTb3VyY2VCdWZmZXJQcml2YXRlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1vY2tTb3VyY2VCdWZmZXJQcml2YXRlOjpyZXNldFBhcnNlclN0YXRlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tTb3VyY2VCdWZmZXJQcml2YXRlLmg6
CisKIDIwMTYtMDktMjMgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAg
ICAgUkVHUkVTU0lPTiAocjIwNjMwMCk6IExheW91dFRlc3QgbWVkaWEvbWVkaWEtc291cmNlL21l
ZGlhLXNvdXJjZS1kdXBsaWNhdGUtc2Vla2VkLmh0bWwgdGltaW5nIG91dApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDFjZTg5
ZWI5OGJhODlhYTNlYjM4YzMxYTg1ZGUyOTBjYjQzNGZjMDcuLjUwYjVlZmQxNzcyODEzZmQ2YzNm
NjVkYzExNGIwMjdiYzFlMGU5MWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxNi0wOS0yNyAg
SmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBbTVNFXVtNYWNdIElu
IFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjphYm9ydCgpLCBzdXBwb3J0IHJlc2V0aW5nIHBh
cnNlciB0byB0aGUgbGFzdCBhcHBlbmRlZCBpbml0aWFsaXphdGlvbiBzZWdtZW50LgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM1MTY0CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBtZWRpYS9tZWRpYS1z
b3VyY2UvbWVkaWEtc291cmNlLWFib3J0LXJlc2V0cy1wYXJzZXItZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBtZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLWFib3J0LXJlc2V0
cy1wYXJzZXIuaHRtbDogQWRkZWQuCisKIDIwMTYtMDktMjMgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjIwNjMwMCk6IExheW91dFRlc3Qg
bWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1kdXBsaWNhdGUtc2Vla2VkLmh0bWwgdGlt
aW5nIG91dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlh
LXNvdXJjZS1hYm9ydC1yZXNldHMtcGFyc2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21l
ZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtYWJvcnQtcmVzZXRzLXBhcnNlci1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYzdhNTM5MzY2YjRhMDE3MmNkYzQyMTc3MjRjYjAyZjk2ZTdmZTMw
YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRp
YS1zb3VyY2UtYWJvcnQtcmVzZXRzLXBhcnNlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyNCBA
QAorVGhpcyB0ZXN0cyB0aGUgYWJpbGl0eSBvZiB0aGUgU291cmNlQnVmZmVyIHRvIHJlc2V0IHRo
ZSBwYXJzZXIgYWZ0ZXIgYW4gYWJvcnQoKS4gQSBTb3VyY2VCdWZmZXIgaW4gdGhpcyBzdGF0ZSBz
aG91bGQgYmUgYWJsZSB0byBhY2NlcHQgYSBuZXcgaW5pdGlhbGl6YXRpb24gc2VnbWVudCBvciBh
IG5ldyBtZWRpYSBzZWdtZW50LgorCitSVU4odmlkZW8uc3JjID0gVVJMLmNyZWF0ZU9iamVjdFVS
TChzb3VyY2UpKQorRVZFTlQoc291cmNlb3BlbikKK1JVTihzb3VyY2UuZHVyYXRpb24gPSBsb2Fk
ZXIuZHVyYXRpb24oKSkKK1JVTihzb3VyY2VCdWZmZXIgPSBzb3VyY2UuYWRkU291cmNlQnVmZmVy
KGxvYWRlci50eXBlKCkpKQorUlVOKHNvdXJjZUJ1ZmZlci5hcHBlbmRCdWZmZXIobG9hZGVyLmlu
aXRTZWdtZW50KCkpKQorRVZFTlQodXBkYXRlKQorQXBwZW5kIGEgcGFydGlhbCBtZWRpYSBzZWdt
ZW50LgorUlVOKHNvdXJjZUJ1ZmZlci5hcHBlbmRCdWZmZXIobG9hZGVyLm1lZGlhU2VnbWVudCgw
KS5zbGljZSgwLCBsb2FkZXIubWVkaWFTZWdtZW50KDApLmJ5dGVMZW5ndGggLyAyKSkpCitFVkVO
VCh1cGRhdGUpCitBYm9ydCBhbmQgYXBwZW5kIGEgbmV3IGluaXRpYWxpemF0aW9uIHNlZ21lbnQu
CitSVU4oc291cmNlQnVmZmVyLmFib3J0KCkpCitSVU4oc291cmNlQnVmZmVyLmFwcGVuZEJ1ZmZl
cihsb2FkZXIuaW5pdFNlZ21lbnQoKSkpCitFVkVOVCh1cGRhdGUpCitBcHBlbmQgYSBwYXJ0aWFs
IG1lZGlhIHNlZ21lbnQuCitSVU4oc291cmNlQnVmZmVyLmFwcGVuZEJ1ZmZlcihsb2FkZXIubWVk
aWFTZWdtZW50KDApLnNsaWNlKDAsIGxvYWRlci5tZWRpYVNlZ21lbnQoMCkuYnl0ZUxlbmd0aCAv
IDIpKSkKK0VWRU5UKHVwZGF0ZSkKK0Fib3J0IGFuZCBhcHBlbmQgYSBuZXcgbWVkaWEgc2VnbWVu
dC4KK1JVTihzb3VyY2VCdWZmZXIuYWJvcnQoKSkKK1JVTihzb3VyY2VCdWZmZXIuYXBwZW5kQnVm
ZmVyKGxvYWRlci5tZWRpYVNlZ21lbnQoMSkpKQorRVZFTlQodXBkYXRlKQorRU5EIE9GIFRFU1QK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJj
ZS1hYm9ydC1yZXNldHMtcGFyc2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zb3Vy
Y2UvbWVkaWEtc291cmNlLWFib3J0LXJlc2V0cy1wYXJzZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNGYy
ZDdiYWJlOTc4ZGFhNGVjNTdlNjA2YTY0YTQ0NTM2MDE0NDEzCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1hYm9ydC1yZXNldHMt
cGFyc2VyLmh0bWwKQEAgLTAsMCArMSw3MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorICAgIDx0aXRsZT5tZWRpYS1zb3VyY2UtYWJvcnQtcmVzZXRzLXBhcnNlcjwvdGl0bGU+
CisgICAgPHNjcmlwdCBzcmM9Im1lZGlhLXNvdXJjZS1sb2FkZXIuanMiPjwvc2NyaXB0PgorICAg
IDxzY3JpcHQgc3JjPSIuLi92aWRlby10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0Pgor
ICAgIHZhciBsb2FkZXI7CisgICAgdmFyIHNvdXJjZTsKKyAgICB2YXIgc291cmNlQnVmZmVyOwor
CisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgZmluZE1lZGlhRWxlbWVudCgpOwor
CisgICAgICAgIGxvYWRlciA9IG5ldyBNZWRpYVNvdXJjZUxvYWRlcignY29udGVudC90ZXN0LWZy
YWdtZW50ZWQtbWFuaWZlc3QuanNvbicpOworICAgICAgICBsb2FkZXIub25sb2FkID0gbWVkaWFE
YXRhTG9hZGVkOworICAgICAgICBsb2FkZXIub25lcnJvciA9IG1lZGlhRGF0YUxvYWRpbmdGYWls
ZWQ7CisgICAgfQorCisgICAgZnVuY3Rpb24gbWVkaWFEYXRhTG9hZGluZ0ZhaWxlZCgpIHsKKyAg
ICAgICAgZmFpbFRlc3QoJ01lZGlhIGRhdGEgbG9hZGluZyBmYWlsZWQnKTsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiBtZWRpYURhdGFMb2FkZWQoKSB7CisgICAgICAgIHNvdXJjZSA9IG5ldyBNZWRp
YVNvdXJjZSgpOworICAgICAgICB3YWl0Rm9yRXZlbnQoJ3NvdXJjZW9wZW4nLCBzb3VyY2VPcGVu
LCBmYWxzZSwgZmFsc2UsIHNvdXJjZSk7CisgICAgICAgIHdhaXRGb3JFdmVudEFuZEZhaWwoJ2Vy
cm9yJyk7CisgICAgICAgIHJ1bigndmlkZW8uc3JjID0gVVJMLmNyZWF0ZU9iamVjdFVSTChzb3Vy
Y2UpJyk7CisgICAgfQorCisgICAgZnVuY3Rpb24gc291cmNlT3BlbigpIHsKKyAgICAgICAgcnVu
KCdzb3VyY2UuZHVyYXRpb24gPSBsb2FkZXIuZHVyYXRpb24oKScpOworICAgICAgICBydW4oJ3Nv
dXJjZUJ1ZmZlciA9IHNvdXJjZS5hZGRTb3VyY2VCdWZmZXIobG9hZGVyLnR5cGUoKSknKTsKKyAg
ICAgICAgd2FpdEZvckV2ZW50T24oc291cmNlQnVmZmVyLCAndXBkYXRlJywgc291cmNlSW5pdGlh
bGl6ZWQsIGZhbHNlLCB0cnVlKTsKKyAgICAgICAgcnVuKCdzb3VyY2VCdWZmZXIuYXBwZW5kQnVm
ZmVyKGxvYWRlci5pbml0U2VnbWVudCgpKScpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHNvdXJj
ZUluaXRpYWxpemVkKCkgeworICAgICAgICB3YWl0Rm9yRXZlbnRPbihzb3VyY2VCdWZmZXIsICd1
cGRhdGUnLCBwYXJ0aWFsTWVkaWFTZWdtZW50QXBwZW5kZWQxLCBmYWxzZSwgdHJ1ZSk7CisgICAg
ICAgIGNvbnNvbGVXcml0ZSgnQXBwZW5kIGEgcGFydGlhbCBtZWRpYSBzZWdtZW50LicpCisgICAg
ICAgIHJ1bignc291cmNlQnVmZmVyLmFwcGVuZEJ1ZmZlcihsb2FkZXIubWVkaWFTZWdtZW50KDAp
LnNsaWNlKDAsIGxvYWRlci5tZWRpYVNlZ21lbnQoMCkuYnl0ZUxlbmd0aCAvIDIpKScpOworICAg
IH0KKworICAgIGZ1bmN0aW9uIHBhcnRpYWxNZWRpYVNlZ21lbnRBcHBlbmRlZDEoKSB7CisgICAg
ICAgIGNvbnNvbGVXcml0ZSgnQWJvcnQgYW5kIGFwcGVuZCBhIG5ldyBpbml0aWFsaXphdGlvbiBz
ZWdtZW50LicpCisgICAgICAgIHJ1bignc291cmNlQnVmZmVyLmFib3J0KCknKTsKKyAgICAgICAg
cnVuKCdzb3VyY2VCdWZmZXIuYXBwZW5kQnVmZmVyKGxvYWRlci5pbml0U2VnbWVudCgpKScpOwor
ICAgICAgICB3YWl0Rm9yRXZlbnRPbihzb3VyY2VCdWZmZXIsICd1cGRhdGUnLCBpbml0U2VnbWVu
dEFwcGVuZGVkLCBmYWxzZSwgdHJ1ZSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gaW5pdFNlZ21l
bnRBcHBlbmRlZCgpIHsKKyAgICAgICAgd2FpdEZvckV2ZW50T24oc291cmNlQnVmZmVyLCAndXBk
YXRlJywgcGFydGlhbE1lZGlhU2VnbWVudEFwcGVuZGVkMiwgZmFsc2UsIHRydWUpOworICAgICAg
ICBjb25zb2xlV3JpdGUoJ0FwcGVuZCBhIHBhcnRpYWwgbWVkaWEgc2VnbWVudC4nKQorICAgICAg
ICBydW4oJ3NvdXJjZUJ1ZmZlci5hcHBlbmRCdWZmZXIobG9hZGVyLm1lZGlhU2VnbWVudCgwKS5z
bGljZSgwLCBsb2FkZXIubWVkaWFTZWdtZW50KDApLmJ5dGVMZW5ndGggLyAyKSknKTsKKyAgICB9
CisKKyAgICBmdW5jdGlvbiBwYXJ0aWFsTWVkaWFTZWdtZW50QXBwZW5kZWQyKCkgeworICAgICAg
ICBjb25zb2xlV3JpdGUoJ0Fib3J0IGFuZCBhcHBlbmQgYSBuZXcgbWVkaWEgc2VnbWVudC4nKQor
ICAgICAgICBydW4oJ3NvdXJjZUJ1ZmZlci5hYm9ydCgpJyk7CisgICAgICAgIHJ1bignc291cmNl
QnVmZmVyLmFwcGVuZEJ1ZmZlcihsb2FkZXIubWVkaWFTZWdtZW50KDEpKScpOworICAgICAgICB3
YWl0Rm9yRXZlbnRPbihzb3VyY2VCdWZmZXIsICd1cGRhdGUnLCBlbmRUZXN0LCBmYWxzZSwgdHJ1
ZSk7CisgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0
KCkiPgorICAgIDxkaXY+CisgICAgICAgIFRoaXMgdGVzdHMgdGhlIGFiaWxpdHkgb2YgdGhlIFNv
dXJjZUJ1ZmZlciB0byByZXNldCB0aGUgcGFyc2VyIGFmdGVyIGFuIGFib3J0KCkuIEEgU291cmNl
QnVmZmVyIGluIHRoaXMgc3RhdGUgc2hvdWxkIGJlIGFibGUgdG8gYWNjZXB0CisgICAgICAgIGEg
bmV3IGluaXRpYWxpemF0aW9uIHNlZ21lbnQgb3IgYSBuZXcgbWVkaWEgc2VnbWVudC4KKyAgICA8
L2Rpdj4KKyAgICA8dmlkZW8gY29udHJvbHM+PC92aWRlbz4KKzwvYm9keT4KKzwvaHRtbD4KXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290026</attachid>
            <date>2016-09-27 17:01:13 -0700</date>
            <delta_ts>2016-09-27 17:10:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-135164-20160927165814.patch</filename>
            <type>text/plain</type>
            <size>23542</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2NDQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGVlN2IxM2ZiZTgzZjBl
MzRkNWI3MGZmODdlYjE4OThjYzhlNzZjNy4uNGQxOTBkZDkwYmMwOGE5MTA2MjhhNzU5NTFjYzJk
NmY0OTE0YTc3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDE2LTA5LTI3ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtNU0VdW01hY10gSW4gU291
cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmFib3J0KCksIHN1cHBvcnQgcmVzZXRpbmcgcGFyc2Vy
IHRvIHRoZSBsYXN0IGFwcGVuZGVkIGluaXRpYWxpemF0aW9uIHNlZ21lbnQuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzUxNjQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBtZWRpYS9tZWRpYS1z
b3VyY2UvbWVkaWEtc291cmNlLWFib3J0LXJlc2V0cy1wYXJzZXIuaHRtbAorCisgICAgICAgIFVz
ZSB0aGUgLVtBVlN0cmVhbURhdGFQYXJzZXIgYXBwZW5kU3RyZWFtRGF0YTp3aXRoRmxhZ3M6XSB0
byBpbXBsZW1lbnQgInJlc2V0dGluZyIgdGhlIHBhcnNlci4gSW4gdGhpcyBjYXNlLAorICAgICAg
ICB0aGUgcGFyc2VyIGlzbid0IGV4cGxpY2l0bHkgcmVzZXQgZHVyaW5nIHJlc2V0UGFyc2VyU3Rh
dGUoKSwgYnV0IHJhdGhlciBhIGZsYWcgaXMgc2V0IHNvIHRoYXQgdGhlIG5leHQgYXBwZW5kCisg
ICAgICAgIHNpZ25hbHMgYSBkYXRhIGRpc2NvbnRpbnVpdHksIGFuZCB0aGUgcGFyc2VyIGlzIHJl
c2V0IGF0IHRoYXQgcG9pbnQuCisKKyAgICAgICAgQmVjYXVzZSBhIHByZXZpb3VzIGFwcGVuZCBv
cGVyYXRpb24gbWF5IGJlIGluLWZsaWdodCBkdXJpbmcgdGhpcyBhYm9ydCgpLCBjYXJlIG11c3Qg
YmUgdGFrZW4gdG8gaW52YWxpZGF0ZSBhbnkKKyAgICAgICAgb3BlcmF0aW9ucyB3aGljaCBtYXkg
aGF2ZSBhbHJlYWR5IHN0YXJ0ZWQgb24gYSBiYWNrZ3JvdW5kIHRocmVhZC4gU28gU291cmNlQnVm
ZmVyUHJpdmF0ZUFWRk9iakMgd2lsbCB1c2UgYQorICAgICAgICBzZXBhcmF0ZSBXZWFrUHRyRmFj
dG9yeSBmb3IgaXRzIGFwcGVuZCBvcGVyYXRpb25zLCB3aWxsIGludmFsaWRhdGUgYW55IG91dHN0
YW5kaW5nIFdlYWtQdHJzIGR1cmluZyBhbiBhYm9ydCgpLAorICAgICAgICBhbmQgd2lsbCBibG9j
ayB1bnRpbCB0aGUgdGhlIHByZXZpb3VzIGFwcGVuZCgpIG9wZXJhdGlvbiBjb21wbGV0ZXMuCisK
KyAgICAgICAgVGhpcyB3aWxsIHJlcXVpcmUgdGhlIFdlYkFWU3RyZWFtRGF0YVBhcnNlckxpc3Rl
bmVyIG9iamVjdCB0byBvY2Nhc2lvbmFsbHkgaGF2ZSBpdCdzIFdlYWtQdHIgcG9pbnRpbmcgYmFj
ayB0byB0aGUKKyAgICAgICAgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMgdG8gYmUgcmVzZXQg
YWZ0ZXIgYW4gYWJvcnQoKSwgc28gbWFrZSB0aGF0IGl2YXIgYSBAcHJvcGVydHkuIFJhdGhlciB0
aGFuIHBhc3NpbmcgYQorICAgICAgICBSZXRhaW5QdHIgdG8gaXRzZWxmIGluIGFsbCB0aGUgY2Fs
bGJhY2tzIGl0IGhhbmRsZXMsIHRoZSBXZWJBVlN0cmVhbURhdGFQYXJzZXJMaXN0ZW5lciBjYW4g
anVzdCBwYXNzIGluIGEgY29weQorICAgICAgICBvZiBpdHMgb3duIFdlYWtQdHIgKHdoaWNoIG1h
eSBiZSBpbnZhbGlkYXRlZCBkdXJpbmcgYW4gYWJvcnQoKSkuCisKKyAgICAgICAgQnJlYWsgdGhl
IGRpc3RpbmN0IG9wZXJhdGlvbnMgb2YgImFib3J0KCkiIGFuZCAicmVzZXRQYXJzZXJTdGF0ZSgp
IiBpbnRvIHRoZWlyIG93biBtZXRob2RzIGluIFNvdXJjZUJ1ZmZlclByaXZhdGUKKyAgICAgICAg
YW5kIGFsbCBpdHMgc3ViY2xhc3Nlcy4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzb3VyY2Uv
U291cmNlQnVmZmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlcjo6cmVzZXRQ
YXJzZXJTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXI6OmFib3J0SWZVcGRh
dGluZyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvU291cmNlQnVmZmVyUHJpdmF0ZS5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1
ZmZlclByaXZhdGVBVkZPYmpDLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW06CisgICAgICAgICgtW1dl
YkFWU3RyZWFtRGF0YVBhcnNlckxpc3RlbmVyIHN0cmVhbURhdGFQYXJzZXI6ZGlkUGFyc2VTdHJl
YW1EYXRhQXNBc3NldDpdKToKKyAgICAgICAgKC1bV2ViQVZTdHJlYW1EYXRhUGFyc2VyTGlzdGVu
ZXIgc3RyZWFtRGF0YVBhcnNlcjpkaWRQYXJzZVN0cmVhbURhdGFBc0Fzc2V0OndpdGhEaXNjb250
aW51aXR5Ol0pOgorICAgICAgICAoLVtXZWJBVlN0cmVhbURhdGFQYXJzZXJMaXN0ZW5lciBzdHJl
YW1EYXRhUGFyc2VyOmRpZEZhaWxUb1BhcnNlU3RyZWFtRGF0YVdpdGhFcnJvcjpdKToKKyAgICAg
ICAgKC1bV2ViQVZTdHJlYW1EYXRhUGFyc2VyTGlzdGVuZXIgc3RyZWFtRGF0YVBhcnNlcjpkaWRQ
cm92aWRlTWVkaWFEYXRhOmZvclRyYWNrSUQ6bWVkaWFUeXBlOmZsYWdzOl0pOgorICAgICAgICAo
LVtXZWJBVlN0cmVhbURhdGFQYXJzZXJMaXN0ZW5lciBzdHJlYW1EYXRhUGFyc2VyOmRpZFJlYWNo
RW5kT2ZUcmFja1dpdGhUcmFja0lEOm1lZGlhVHlwZTpdKToKKyAgICAgICAgKC1bV2ViQVZTdHJl
YW1EYXRhUGFyc2VyTGlzdGVuZXIgc3RyZWFtRGF0YVBhcnNlcldpbGxQcm92aWRlQ29udGVudEtl
eVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGE6Zm9yVHJhY2tJRDpdKToKKyAgICAgICAgKC1bV2Vi
QVZTdHJlYW1EYXRhUGFyc2VyTGlzdGVuZXIgc3RyZWFtRGF0YVBhcnNlcjpkaWRQcm92aWRlQ29u
dGVudEtleVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGE6Zm9yVHJhY2tJRDpdKToKKyAgICAgICAg
KFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpTb3VyY2VCdWZmZXJQcml2YXRl
QVZGT2JqQyk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6
YXBwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjph
Ym9ydCk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6cmVz
ZXRQYXJzZXJTdGF0ZSk6CisgICAgICAgICgtW1dlYkFWU3RyZWFtRGF0YVBhcnNlckxpc3RlbmVy
IGluaXRXaXRoUGFyc2VyOnBhcmVudDpdKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9t
b2NrL21lZGlhc291cmNlL01vY2tTb3VyY2VCdWZmZXJQcml2YXRlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1vY2tTb3VyY2VCdWZmZXJQcml2YXRlOjpyZXNldFBhcnNlclN0YXRlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tTb3VyY2VCdWZmZXJQcml2YXRlLmg6
CisKIDIwMTYtMDktMjMgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAg
ICAgUkVHUkVTU0lPTiAocjIwNjMwMCk6IExheW91dFRlc3QgbWVkaWEvbWVkaWEtc291cmNlL21l
ZGlhLXNvdXJjZS1kdXBsaWNhdGUtc2Vla2VkLmh0bWwgdGltaW5nIG91dApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwCmluZGV4IDdh
ZTY3ZmIzM2NiODU1YWE3ZTQ3OGY1NjYwMTY3MGNlZTZiMjdkZjguLmNmMjAwNzI4OTAyOTE1MDdm
M2ZiNGVlNWI0ZmM2ZTYyMDJlYTJmODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAKQEAgLTI3OCw3ICsyNzgsNyBAQCB2b2lk
IFNvdXJjZUJ1ZmZlcjo6cmVzZXRQYXJzZXJTdGF0ZSgpCiAgICAgLy8gNy4gU2V0IGFwcGVuZCBz
dGF0ZSB0byBXQUlUSU5HX0ZPUl9TRUdNRU5ULgogICAgIG1fYXBwZW5kU3RhdGUgPSBXYWl0aW5n
Rm9yU2VnbWVudDsKIAotICAgIG1fcHJpdmF0ZS0+YWJvcnQoKTsKKyAgICBtX3ByaXZhdGUtPnJl
c2V0UGFyc2VyU3RhdGUoKTsKIH0KIAogdm9pZCBTb3VyY2VCdWZmZXI6OmFib3J0KEV4Y2VwdGlv
bkNvZGUmIGVjKQpAQCAtMzgzLDYgKzM4Myw3IEBAIHZvaWQgU291cmNlQnVmZmVyOjphYm9ydElm
VXBkYXRpbmcoKQogICAgIC8vIDQuMS4gQWJvcnQgdGhlIGJ1ZmZlciBhcHBlbmQgYWxnb3JpdGht
IGlmIGl0IGlzIHJ1bm5pbmcuCiAgICAgbV9hcHBlbmRCdWZmZXJUaW1lci5zdG9wKCk7CiAgICAg
bV9wZW5kaW5nQXBwZW5kRGF0YS5jbGVhcigpOworICAgIG1fcHJpdmF0ZS0+YWJvcnQoKTsKIAog
ICAgIC8vIDQuMi4gU2V0IHRoZSB1cGRhdGluZyBhdHRyaWJ1dGUgdG8gZmFsc2UuCiAgICAgbV91
cGRhdGluZyA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvU291cmNlQnVmZmVyUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvU291cmNlQnVmZmVyUHJpdmF0ZS5oCmluZGV4IDBhMTg1NjI2YTdlYTBmOTUwNDNiNTFi
YTg4YWZjMjM2ZDhmOWZmZGUuLjE1YjI1NWJjN2VhMzg2ODdhZTY5MjM3OWE4Yjk4Y2RiNzc3YzQ0
N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NvdXJjZUJ1
ZmZlclByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Tb3Vy
Y2VCdWZmZXJQcml2YXRlLmgKQEAgLTUyLDYgKzUyLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVh
bCB2b2lkIGFwcGVuZChjb25zdCB1bnNpZ25lZCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgp
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgYWJvcnQoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJl
c2V0UGFyc2VyU3RhdGUoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZWRGcm9tTWVkaWFT
b3VyY2UoKSA9IDA7CiAKICAgICB2aXJ0dWFsIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIHJlYWR5
U3RhdGUoKSBjb25zdCA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNl
QnVmZmVyUHJpdmF0ZUFWRk9iakMuaAppbmRleCBjMjMyMWMxYjY5Y2IxMmJjNmFlYTg1MzhiNTk4
ZmJlNDAzMTI1YTQ5Li5iYWY1YmZkYmYxMzBmZTkzMjI4YjVmYjIxYzQzZGVlOTU0MDU2OWM0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZP
YmpDLmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBVU0Uo
QVZGT1VOREFUSU9OKQogCiAjaW5jbHVkZSAiU291cmNlQnVmZmVyUHJpdmF0ZS5oIgorI2luY2x1
ZGUgPGRpc3BhdGNoL2dyb3VwLmg+CiAjaW5jbHVkZSA8ZGlzcGF0Y2gvc2VtYXBob3JlLmg+CiAj
aW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTExNSw2
ICsxMTYsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0Q2xpZW50KFNvdXJjZUJ1ZmZlclByaXZh
dGVDbGllbnQqKSBvdmVycmlkZTsKICAgICB2b2lkIGFwcGVuZChjb25zdCB1bnNpZ25lZCBjaGFy
KiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpIG92ZXJyaWRlOwogICAgIHZvaWQgYWJvcnQoKSBvdmVy
cmlkZTsKKyAgICB2b2lkIHJlc2V0UGFyc2VyU3RhdGUoKSBvdmVycmlkZTsKICAgICB2b2lkIHJl
bW92ZWRGcm9tTWVkaWFTb3VyY2UoKSBvdmVycmlkZTsKICAgICBNZWRpYVBsYXllcjo6UmVhZHlT
dGF0ZSByZWFkeVN0YXRlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRSZWFkeVN0YXRl
KE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlKSBvdmVycmlkZTsKQEAgLTEzOSw2ICsxNDEsNyBAQCBw
cml2YXRlOgogICAgIFZlY3RvcjxTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQ0Vycm9yQ2xpZW50
Kj4gbV9lcnJvckNsaWVudHM7CiAKICAgICBXZWFrUHRyRmFjdG9yeTxTb3VyY2VCdWZmZXJQcml2
YXRlQVZGT2JqQz4gbV93ZWFrRmFjdG9yeTsKKyAgICBXZWFrUHRyRmFjdG9yeTxTb3VyY2VCdWZm
ZXJQcml2YXRlQVZGT2JqQz4gbV9hcHBlbmRXZWFrRmFjdG9yeTsKIAogICAgIFJldGFpblB0cjxB
VlN0cmVhbURhdGFQYXJzZXI+IG1fcGFyc2VyOwogICAgIFJldGFpblB0cjxBVkFzc2V0PiBtX2Fz
c2V0OwpAQCAtMTQ4LDYgKzE1MSw3IEBAIHByaXZhdGU6CiAgICAgUmV0YWluUHRyPFdlYkFWU2Ft
cGxlQnVmZmVyRXJyb3JMaXN0ZW5lcj4gbV9lcnJvckxpc3RlbmVyOwogICAgIFJldGFpblB0cjxO
U0Vycm9yPiBtX2hkY3BFcnJvcjsKICAgICBPU09iamVjdFB0cjxkaXNwYXRjaF9zZW1hcGhvcmVf
dD4gbV9oYXNTZXNzaW9uU2VtYXBob3JlOworICAgIE9TT2JqZWN0UHRyPGRpc3BhdGNoX2dyb3Vw
X3Q+IG1faXNBcHBlbmRpbmdHcm91cDsKIAogICAgIE1lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMq
IG1fbWVkaWFTb3VyY2U7CiAgICAgU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudCogbV9jbGllbnQ7
CkBAIC0xNTYsNiArMTYwLDcgQEAgcHJpdmF0ZToKICAgICBGbG9hdFNpemUgbV9jYWNoZWRTaXpl
OwogICAgIEZsb2F0U2l6ZSBtX2N1cnJlbnRTaXplOwogICAgIGJvb2wgbV9wYXJzaW5nU3VjY2Vl
ZGVkOworICAgIGJvb2wgbV9wYXJzZXJTdGF0ZVdhc1Jlc2V0IHsgZmFsc2UgfTsKICAgICBpbnQg
bV9lbmFibGVkVmlkZW9UcmFja0lEOwogICAgIGludCBtX3Byb3RlY3RlZFRyYWNrSUQ7CiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
Qy5tbQppbmRleCBhOTdmMWE3ZjNmOThjNWM1ZDdiMWU4N2U3MTljMGQyZmJjNmE0NTIxLi42MGE4
OWE5ODcxMjRkMjM5M2MzOTg3ODA3N2RlYzcwMDkzOGZkMGM5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQ
cml2YXRlQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbQpAQCAtMTMxLDYg
KzEzMSw3IEBAIEBpbnRlcmZhY2UgV2ViQVZTdHJlYW1EYXRhUGFyc2VyTGlzdGVuZXIgOiBOU09i
amVjdDxBVlN0cmVhbURhdGFQYXJzZXJPdXRwdXRIYW5kCiAgICAgV2Vha1B0cjxXZWJDb3JlOjpT
b3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQz4gX3BhcmVudDsKICAgICBBVlN0cmVhbURhdGFQYXJz
ZXIqIF9wYXJzZXI7CiB9CitAcHJvcGVydHkgKGFzc2lnbikgV2Vha1B0cjxXZWJDb3JlOjpTb3Vy
Y2VCdWZmZXJQcml2YXRlQVZGT2JqQz4gcGFyZW50OwogLSAoaWQpaW5pdFdpdGhQYXJzZXI6KEFW
U3RyZWFtRGF0YVBhcnNlciopcGFyc2VyIHBhcmVudDooV2Vha1B0cjxXZWJDb3JlOjpTb3VyY2VC
dWZmZXJQcml2YXRlQVZGT2JqQz4pcGFyZW50OwogQGVuZAogCkBAIC0xNDgsNiArMTQ5LDggQEAg
LSAoaWQpaW5pdFdpdGhQYXJzZXI6KEFWU3RyZWFtRGF0YVBhcnNlciopcGFyc2VyIHBhcmVudDoo
V2Vha1B0cjxXZWJDb3JlOjpTb3VyY2UKICAgICByZXR1cm4gc2VsZjsKIH0KIAorQHN5bnRoZXNp
emUgcGFyZW50PV9wYXJlbnQ7CisKIC0gKHZvaWQpZGVhbGxvYwogewogICAgIFtfcGFyc2VyIHNl
dERlbGVnYXRlOm5pbF07CkBAIC0xNjYsMTIgKzE2OSwxMSBAQCAtICh2b2lkKXN0cmVhbURhdGFQ
YXJzZXI6KEFWU3RyZWFtRGF0YVBhcnNlciAqKXN0cmVhbURhdGFQYXJzZXIgZGlkUGFyc2VTdHJl
YW1EYQogICAgIFVOVVNFRF9QQVJBTShzdHJlYW1EYXRhUGFyc2VyKTsKICNlbmRpZgogICAgIEFT
U0VSVChzdHJlYW1EYXRhUGFyc2VyID09IF9wYXJzZXIpOwotICAgIFJldGFpblB0cjxXZWJBVlN0
cmVhbURhdGFQYXJzZXJMaXN0ZW5lcj4gcHJvdGVjdGVkU2VsZiA9IHNlbGY7CiAKICAgICBSZXRh
aW5QdHI8QVZBc3NldCo+IHByb3RlY3RlZEFzc2V0ID0gYXNzZXQ7Ci0gICAgY2FsbE9uTWFpblRo
cmVhZChbcHJvdGVjdGVkU2VsZiA9IFdURk1vdmUocHJvdGVjdGVkU2VsZiksIHByb3RlY3RlZEFz
c2V0ID0gV1RGTW92ZShwcm90ZWN0ZWRBc3NldCldIHsKLSAgICAgICAgaWYgKHByb3RlY3RlZFNl
bGYtPl9wYXJlbnQpCi0gICAgICAgICAgICBwcm90ZWN0ZWRTZWxmLT5fcGFyZW50LT5kaWRQYXJz
ZVN0cmVhbURhdGFBc0Fzc2V0KHByb3RlY3RlZEFzc2V0LmdldCgpKTsKKyAgICBjYWxsT25NYWlu
VGhyZWFkKFtwYXJlbnQgPSBfcGFyZW50LCBwcm90ZWN0ZWRBc3NldCA9IFdURk1vdmUocHJvdGVj
dGVkQXNzZXQpXSB7CisgICAgICAgIGlmIChwYXJlbnQpCisgICAgICAgICAgICBwYXJlbnQtPmRp
ZFBhcnNlU3RyZWFtRGF0YUFzQXNzZXQocHJvdGVjdGVkQXNzZXQuZ2V0KCkpOwogICAgIH0pOwog
fQogCkBAIC0xODIsMTIgKzE4NCwxMSBAQCAtICh2b2lkKXN0cmVhbURhdGFQYXJzZXI6KEFWU3Ry
ZWFtRGF0YVBhcnNlciAqKXN0cmVhbURhdGFQYXJzZXIgZGlkUGFyc2VTdHJlYW1EYQogICAgIFVO
VVNFRF9QQVJBTShzdHJlYW1EYXRhUGFyc2VyKTsKICNlbmRpZgogICAgIEFTU0VSVChzdHJlYW1E
YXRhUGFyc2VyID09IF9wYXJzZXIpOwotICAgIFJldGFpblB0cjxXZWJBVlN0cmVhbURhdGFQYXJz
ZXJMaXN0ZW5lcj4gcHJvdGVjdGVkU2VsZiA9IHNlbGY7CiAKICAgICBSZXRhaW5QdHI8QVZBc3Nl
dCo+IHByb3RlY3RlZEFzc2V0ID0gYXNzZXQ7Ci0gICAgY2FsbE9uTWFpblRocmVhZChbcHJvdGVj
dGVkU2VsZiA9IFdURk1vdmUocHJvdGVjdGVkU2VsZiksIHByb3RlY3RlZEFzc2V0ID0gV1RGTW92
ZShwcm90ZWN0ZWRBc3NldCldIHsKLSAgICAgICAgaWYgKHByb3RlY3RlZFNlbGYtPl9wYXJlbnQp
Ci0gICAgICAgICAgICBwcm90ZWN0ZWRTZWxmLT5fcGFyZW50LT5kaWRQYXJzZVN0cmVhbURhdGFB
c0Fzc2V0KHByb3RlY3RlZEFzc2V0LmdldCgpKTsKKyAgICBjYWxsT25NYWluVGhyZWFkKFtwYXJl
bnQgPSBfcGFyZW50LCBwcm90ZWN0ZWRBc3NldCA9IFdURk1vdmUocHJvdGVjdGVkQXNzZXQpXSB7
CisgICAgICAgIGlmIChwYXJlbnQpCisgICAgICAgICAgICBwYXJlbnQtPmRpZFBhcnNlU3RyZWFt
RGF0YUFzQXNzZXQocHJvdGVjdGVkQXNzZXQuZ2V0KCkpOwogICAgIH0pOwogfQogCkBAIC0xOTcs
MTIgKzE5OCwxMSBAQCAtICh2b2lkKXN0cmVhbURhdGFQYXJzZXI6KEFWU3RyZWFtRGF0YVBhcnNl
ciAqKXN0cmVhbURhdGFQYXJzZXIgZGlkRmFpbFRvUGFyc2VTdAogICAgIFVOVVNFRF9QQVJBTShz
dHJlYW1EYXRhUGFyc2VyKTsKICNlbmRpZgogICAgIEFTU0VSVChzdHJlYW1EYXRhUGFyc2VyID09
IF9wYXJzZXIpOwotICAgIFJldGFpblB0cjxXZWJBVlN0cmVhbURhdGFQYXJzZXJMaXN0ZW5lcj4g
cHJvdGVjdGVkU2VsZiA9IHNlbGY7CiAKICAgICBSZXRhaW5QdHI8TlNFcnJvcj4gcHJvdGVjdGVk
RXJyb3IgPSBlcnJvcjsKLSAgICBjYWxsT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRTZWxmID0gV1RG
TW92ZShwcm90ZWN0ZWRTZWxmKSwgcHJvdGVjdGVkRXJyb3IgPSBXVEZNb3ZlKHByb3RlY3RlZEVy
cm9yKV0gewotICAgICAgICBpZiAocHJvdGVjdGVkU2VsZi0+X3BhcmVudCkKLSAgICAgICAgICAg
IHByb3RlY3RlZFNlbGYtPl9wYXJlbnQtPmRpZEZhaWxUb1BhcnNlU3RyZWFtRGF0YVdpdGhFcnJv
cihwcm90ZWN0ZWRFcnJvci5nZXQoKSk7CisgICAgY2FsbE9uTWFpblRocmVhZChbcGFyZW50ID0g
X3BhcmVudCwgcHJvdGVjdGVkRXJyb3IgPSBXVEZNb3ZlKHByb3RlY3RlZEVycm9yKV0geworICAg
ICAgICBpZiAocGFyZW50KQorICAgICAgICAgICAgcGFyZW50LT5kaWRGYWlsVG9QYXJzZVN0cmVh
bURhdGFXaXRoRXJyb3IocHJvdGVjdGVkRXJyb3IuZ2V0KCkpOwogICAgIH0pOwogfQogCkBAIC0y
MTIsMTMgKzIxMiwxMiBAQCAtICh2b2lkKXN0cmVhbURhdGFQYXJzZXI6KEFWU3RyZWFtRGF0YVBh
cnNlciAqKXN0cmVhbURhdGFQYXJzZXIgZGlkUHJvdmlkZU1lZGlhRAogICAgIFVOVVNFRF9QQVJB
TShzdHJlYW1EYXRhUGFyc2VyKTsKICNlbmRpZgogICAgIEFTU0VSVChzdHJlYW1EYXRhUGFyc2Vy
ID09IF9wYXJzZXIpOwotICAgIFJldGFpblB0cjxXZWJBVlN0cmVhbURhdGFQYXJzZXJMaXN0ZW5l
cj4gcHJvdGVjdGVkU2VsZiA9IHNlbGY7CiAKICAgICBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJS
ZWY+IHByb3RlY3RlZFNhbXBsZSA9IHNhbXBsZTsKICAgICBTdHJpbmcgbWVkaWFUeXBlID0gbnNN
ZWRpYVR5cGU7Ci0gICAgY2FsbE9uTWFpblRocmVhZChbcHJvdGVjdGVkU2VsZiA9IFdURk1vdmUo
cHJvdGVjdGVkU2VsZiksIHByb3RlY3RlZFNhbXBsZSA9IFdURk1vdmUocHJvdGVjdGVkU2FtcGxl
KSwgdHJhY2tJRCwgbWVkaWFUeXBlLCBmbGFnc10gewotICAgICAgICBpZiAocHJvdGVjdGVkU2Vs
Zi0+X3BhcmVudCkKLSAgICAgICAgICAgIHByb3RlY3RlZFNlbGYtPl9wYXJlbnQtPmRpZFByb3Zp
ZGVNZWRpYURhdGFGb3JUcmFja0lEKHRyYWNrSUQsIHByb3RlY3RlZFNhbXBsZS5nZXQoKSwgbWVk
aWFUeXBlLCBmbGFncyk7CisgICAgY2FsbE9uTWFpblRocmVhZChbcGFyZW50ID0gX3BhcmVudCwg
cHJvdGVjdGVkU2FtcGxlID0gV1RGTW92ZShwcm90ZWN0ZWRTYW1wbGUpLCB0cmFja0lELCBtZWRp
YVR5cGUsIGZsYWdzXSB7CisgICAgICAgIGlmIChwYXJlbnQpCisgICAgICAgICAgICBwYXJlbnQt
PmRpZFByb3ZpZGVNZWRpYURhdGFGb3JUcmFja0lEKHRyYWNrSUQsIHByb3RlY3RlZFNhbXBsZS5n
ZXQoKSwgbWVkaWFUeXBlLCBmbGFncyk7CiAgICAgfSk7CiB9CiAKQEAgLTIyOCwxMiArMjI3LDEx
IEBAIC0gKHZvaWQpc3RyZWFtRGF0YVBhcnNlcjooQVZTdHJlYW1EYXRhUGFyc2VyICopc3RyZWFt
RGF0YVBhcnNlciBkaWRSZWFjaEVuZE9mVHJhCiAgICAgVU5VU0VEX1BBUkFNKHN0cmVhbURhdGFQ
YXJzZXIpOwogI2VuZGlmCiAgICAgQVNTRVJUKHN0cmVhbURhdGFQYXJzZXIgPT0gX3BhcnNlcik7
Ci0gICAgUmV0YWluUHRyPFdlYkFWU3RyZWFtRGF0YVBhcnNlckxpc3RlbmVyPiBwcm90ZWN0ZWRT
ZWxmID0gc2VsZjsKIAogICAgIFN0cmluZyBtZWRpYVR5cGUgPSBuc01lZGlhVHlwZTsKLSAgICBj
YWxsT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRTZWxmID0gV1RGTW92ZShwcm90ZWN0ZWRTZWxmKSwg
dHJhY2tJRCwgbWVkaWFUeXBlXSB7Ci0gICAgICAgIGlmIChwcm90ZWN0ZWRTZWxmLT5fcGFyZW50
KQotICAgICAgICAgICAgcHJvdGVjdGVkU2VsZi0+X3BhcmVudC0+ZGlkUmVhY2hFbmRPZlRyYWNr
V2l0aFRyYWNrSUQodHJhY2tJRCwgbWVkaWFUeXBlKTsKKyAgICBjYWxsT25NYWluVGhyZWFkKFtw
YXJlbnQgPSBfcGFyZW50LCB0cmFja0lELCBtZWRpYVR5cGVdIHsKKyAgICAgICAgaWYgKHBhcmVu
dCkKKyAgICAgICAgICAgIHBhcmVudC0+ZGlkUmVhY2hFbmRPZlRyYWNrV2l0aFRyYWNrSUQodHJh
Y2tJRCwgbWVkaWFUeXBlKTsKICAgICB9KTsKIH0KIApAQCAtMjQ2LDEwICsyNDQsOSBAQCAtICh2
b2lkKXN0cmVhbURhdGFQYXJzZXJXaWxsUHJvdmlkZUNvbnRlbnRLZXlSZXF1ZXN0SW5pdGlhbGl6
YXRpb25EYXRhOihBVlN0cmVhbQogCiAgICAgLy8gV2UgbXVzdCBjYWxsIHN5bmNocm9ub3VzbHkg
dG8gdGhlIG1haW4gdGhyZWFkLCBhcyB0aGUgQVZTdHJlYW1TZXNzaW9uIG11c3QgYmUgYXNzb2Np
YXRlZAogICAgIC8vIHdpdGggdGhlIHN0cmVhbURhdGFQYXJzZXIgYmVmb3JlIHRoZSBkZWxlZ2F0
ZSBtZXRob2QgcmV0dXJucy4KLSAgICBSZXRhaW5QdHI8V2ViQVZTdHJlYW1EYXRhUGFyc2VyTGlz
dGVuZXI+IHN0cm9uZ1NlbGYgPSBzZWxmOwotICAgIGRpc3BhdGNoX3N5bmMoZGlzcGF0Y2hfZ2V0
X21haW5fcXVldWUoKSwgW3N0cm9uZ1NlbGYsIHRyYWNrSURdKCkgewotICAgICAgICBpZiAoc3Ry
b25nU2VsZi0+X3BhcmVudCkKLSAgICAgICAgICAgIHN0cm9uZ1NlbGYtPl9wYXJlbnQtPndpbGxQ
cm92aWRlQ29udGVudEtleVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGFGb3JUcmFja0lEKHRyYWNr
SUQpOworICAgIGRpc3BhdGNoX3N5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW3BhcmVu
dCA9IF9wYXJlbnQsIHRyYWNrSURdKCkgeworICAgICAgICBpZiAocGFyZW50KQorICAgICAgICAg
ICAgcGFyZW50LT53aWxsUHJvdmlkZUNvbnRlbnRLZXlSZXF1ZXN0SW5pdGlhbGl6YXRpb25EYXRh
Rm9yVHJhY2tJRCh0cmFja0lEKTsKICAgICB9KTsKIH0KIApAQCAtMjU5LDEyICsyNTYsMTEgQEAg
LSAodm9pZClzdHJlYW1EYXRhUGFyc2VyOihBVlN0cmVhbURhdGFQYXJzZXIgKilzdHJlYW1EYXRh
UGFyc2VyIGRpZFByb3ZpZGVDb250ZW4KICAgICBVTlVTRURfUEFSQU0oc3RyZWFtRGF0YVBhcnNl
cik7CiAjZW5kaWYKICAgICBBU1NFUlQoc3RyZWFtRGF0YVBhcnNlciA9PSBfcGFyc2VyKTsKLSAg
ICBSZXRhaW5QdHI8V2ViQVZTdHJlYW1EYXRhUGFyc2VyTGlzdGVuZXI+IHByb3RlY3RlZFNlbGYg
PSBzZWxmOwogCiAgICAgT1NPYmplY3RQdHI8ZGlzcGF0Y2hfc2VtYXBob3JlX3Q+IGhhc1Nlc3Np
b25TZW1hcGhvcmUgPSBhZG9wdE9TT2JqZWN0KGRpc3BhdGNoX3NlbWFwaG9yZV9jcmVhdGUoMCkp
OwotICAgIGNhbGxPbk1haW5UaHJlYWQoW3Byb3RlY3RlZFNlbGYgPSBXVEZNb3ZlKHByb3RlY3Rl
ZFNlbGYpLCBwcm90ZWN0ZWRJbml0RGF0YSA9IFJldGFpblB0cjxOU0RhdGE+KGluaXREYXRhKSwg
dHJhY2tJRCwgaGFzU2Vzc2lvblNlbWFwaG9yZV0gewotICAgICAgICBpZiAocHJvdGVjdGVkU2Vs
Zi0+X3BhcmVudCkKLSAgICAgICAgICAgIHByb3RlY3RlZFNlbGYtPl9wYXJlbnQtPmRpZFByb3Zp
ZGVDb250ZW50S2V5UmVxdWVzdEluaXRpYWxpemF0aW9uRGF0YUZvclRyYWNrSUQocHJvdGVjdGVk
SW5pdERhdGEuZ2V0KCksIHRyYWNrSUQsIGhhc1Nlc3Npb25TZW1hcGhvcmUpOworICAgIGNhbGxP
bk1haW5UaHJlYWQoW3BhcmVudCA9IF9wYXJlbnQsIHByb3RlY3RlZEluaXREYXRhID0gUmV0YWlu
UHRyPE5TRGF0YT4oaW5pdERhdGEpLCB0cmFja0lELCBoYXNTZXNzaW9uU2VtYXBob3JlXSB7Cisg
ICAgICAgIGlmIChwYXJlbnQpCisgICAgICAgICAgICBwYXJlbnQtPmRpZFByb3ZpZGVDb250ZW50
S2V5UmVxdWVzdEluaXRpYWxpemF0aW9uRGF0YUZvclRyYWNrSUQocHJvdGVjdGVkSW5pdERhdGEu
Z2V0KCksIHRyYWNrSUQsIGhhc1Nlc3Npb25TZW1hcGhvcmUpOwogICAgIH0pOwogICAgIGRpc3Bh
dGNoX3NlbWFwaG9yZV93YWl0KGhhc1Nlc3Npb25TZW1hcGhvcmUuZ2V0KCksIERJU1BBVENIX1RJ
TUVfRk9SRVZFUik7CiB9CkBAIC00NjEsOSArNDU3LDExIEBAIFJlZlB0cjxTb3VyY2VCdWZmZXJQ
cml2YXRlQVZGT2JqQz4gU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmNyZWF0ZShNZWRpYVNv
dXJjCiAKIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZG
T2JqQyhNZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDKiBwYXJlbnQpCiAgICAgOiBtX3dlYWtGYWN0
b3J5KHRoaXMpCisgICAgLCBtX2FwcGVuZFdlYWtGYWN0b3J5KHRoaXMpCiAgICAgLCBtX3BhcnNl
cihhZG9wdE5TKFthbGxvY0FWU3RyZWFtRGF0YVBhcnNlckluc3RhbmNlKCkgaW5pdF0pKQogICAg
ICwgbV9kZWxlZ2F0ZShhZG9wdE5TKFtbV2ViQVZTdHJlYW1EYXRhUGFyc2VyTGlzdGVuZXIgYWxs
b2NdIGluaXRXaXRoUGFyc2VyOm1fcGFyc2VyLmdldCgpIHBhcmVudDpjcmVhdGVXZWFrUHRyKCld
KSkKICAgICAsIG1fZXJyb3JMaXN0ZW5lcihhZG9wdE5TKFtbV2ViQVZTYW1wbGVCdWZmZXJFcnJv
ckxpc3RlbmVyIGFsbG9jXSBpbml0V2l0aFBhcmVudDp0aGlzXSkpCisgICAgLCBtX2lzQXBwZW5k
aW5nR3JvdXAoYWRvcHRPU09iamVjdChkaXNwYXRjaF9ncm91cF9jcmVhdGUoKSkpCiAgICAgLCBt
X21lZGlhU291cmNlKHBhcmVudCkKICAgICAsIG1fY2xpZW50KDApCiAgICAgLCBtX3BhcnNpbmdT
dWNjZWVkZWQodHJ1ZSkKQEAgLTY0MSwyMSArNjM5LDI2IEBAIHZvaWQgU291cmNlQnVmZmVyUHJp
dmF0ZUFWRk9iakM6OmFwcGVuZChjb25zdCB1bnNpZ25lZCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBs
ZW5nCiAgICAgTE9HKE1lZGlhU291cmNlLCAiU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmFw
cGVuZCglcCkgLSBkYXRhOiVwLCBsZW5ndGg6JWQiLCB0aGlzLCBkYXRhLCBsZW5ndGgpOwogCiAg
ICAgUmV0YWluUHRyPE5TRGF0YT4gbnNEYXRhID0gYWRvcHROUyhbW05TRGF0YSBhbGxvY10gaW5p
dFdpdGhCeXRlczpkYXRhIGxlbmd0aDpsZW5ndGhdKTsKLSAgICBXZWFrUHRyPFNvdXJjZUJ1ZmZl
clByaXZhdGVBVkZPYmpDPiB3ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQdHIoKTsKKyAgICBXZWFrUHRy
PFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDPiB3ZWFrVGhpcyA9IG1fYXBwZW5kV2Vha0ZhY3Rv
cnkuY3JlYXRlV2Vha1B0cigpOwogICAgIFJldGFpblB0cjxBVlN0cmVhbURhdGFQYXJzZXI+IHBh
cnNlciA9IG1fcGFyc2VyOwogICAgIFJldGFpblB0cjxXZWJBVlN0cmVhbURhdGFQYXJzZXJMaXN0
ZW5lcj4gZGVsZWdhdGUgPSBtX2RlbGVnYXRlOwogCiAgICAgbV9wYXJzaW5nU3VjY2VlZGVkID0g
dHJ1ZTsKKyAgICBkaXNwYXRjaF9ncm91cF9lbnRlcihtX2lzQXBwZW5kaW5nR3JvdXAuZ2V0KCkp
OwogCi0gICAgZGlzcGF0Y2hfYXN5bmMoZ2xvYmFsRGF0YVBhcnNlclF1ZXVlKCksIFtuc0RhdGEs
IHdlYWtUaGlzLCBwYXJzZXIsIGRlbGVnYXRlXSB7Ci0KLSAgICAgICAgW3BhcnNlciBhcHBlbmRT
dHJlYW1EYXRhOm5zRGF0YS5nZXQoKV07CisgICAgZGlzcGF0Y2hfYXN5bmMoZ2xvYmFsRGF0YVBh
cnNlclF1ZXVlKCksIFtuc0RhdGEsIHdlYWtUaGlzLCBwYXJzZXIsIGRlbGVnYXRlLCBpc0FwcGVu
ZGluZ0dyb3VwID0gbV9pc0FwcGVuZGluZ0dyb3VwLCBwYXJzZXJTdGF0ZVdhc1Jlc2V0ID0gbV9w
YXJzZXJTdGF0ZVdhc1Jlc2V0XSB7CisgICAgICAgIGlmIChwYXJzZXJTdGF0ZVdhc1Jlc2V0KQor
ICAgICAgICAgICAgW3BhcnNlciBhcHBlbmRTdHJlYW1EYXRhOm5zRGF0YS5nZXQoKSB3aXRoRmxh
Z3M6QVZTdHJlYW1EYXRhUGFyc2VyU3RyZWFtRGF0YURpc2NvbnRpbnVpdHldOworICAgICAgICBl
bHNlCisgICAgICAgICAgICBbcGFyc2VyIGFwcGVuZFN0cmVhbURhdGE6bnNEYXRhLmdldCgpXTsK
IAogICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt3ZWFrVGhpc10gewogICAgICAgICAgICAgaWYg
KHdlYWtUaGlzKQogICAgICAgICAgICAgICAgIHdlYWtUaGlzLT5hcHBlbmRDb21wbGV0ZWQoKTsK
ICAgICAgICAgfSk7CisgICAgICAgIGRpc3BhdGNoX2dyb3VwX2xlYXZlKGlzQXBwZW5kaW5nR3Jv
dXAuZ2V0KCkpOwogICAgIH0pOworICAgIG1fcGFyc2VyU3RhdGVXYXNSZXNldCA9IGZhbHNlOwog
fQogCiB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjphcHBlbmRDb21wbGV0ZWQoKQpA
QCAtNjY5LDEyICs2NzIsMTQgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6YXBw
ZW5kQ29tcGxldGVkKCkKIAogdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6YWJvcnQo
KQogewotICAgIC8vIFRoZSBwYXJzZXIgZG9lcyBub3QgaGF2ZSBhIG1lY2hhbmlzbSBmb3IgcmVz
ZXR0aW5nIHRvIGEgY2xlYW4gc3RhdGUsIHNvIGRlc3Ryb3kgYW5kIHJlLWNyZWF0ZSBpdC4KLSAg
ICAvLyBGSVhNRSgxMzUxNjQpOiBTdXBwb3J0IHJlc2V0dGluZyBwYXJzZXIgdG8gdGhlIGxhc3Qg
YXBwZW5kZWQgaW5pdGlhbGl6YXRpb24gc2VnbWVudC4KLSAgICBkZXN0cm95UGFyc2VyKCk7Cisg
ICAgZGlzcGF0Y2hfZ3JvdXBfd2FpdChtX2lzQXBwZW5kaW5nR3JvdXAuZ2V0KCksIERJU1BBVENI
X1RJTUVfRk9SRVZFUik7CisgICAgbV9hcHBlbmRXZWFrRmFjdG9yeS5yZXZva2VBbGwoKTsKKyAg
ICBtX2RlbGVnYXRlLmdldCgpLnBhcmVudCA9IG1fYXBwZW5kV2Vha0ZhY3RvcnkuY3JlYXRlV2Vh
a1B0cigpOworfQogCi0gICAgbV9wYXJzZXIgPSBhZG9wdE5TKFthbGxvY0FWU3RyZWFtRGF0YVBh
cnNlckluc3RhbmNlKCkgaW5pdF0pOwotICAgIG1fZGVsZWdhdGUgPSBhZG9wdE5TKFtbV2ViQVZT
dHJlYW1EYXRhUGFyc2VyTGlzdGVuZXIgYWxsb2NdIGluaXRXaXRoUGFyc2VyOm1fcGFyc2VyLmdl
dCgpIHBhcmVudDpjcmVhdGVXZWFrUHRyKCldKTsKK3ZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFW
Rk9iakM6OnJlc2V0UGFyc2VyU3RhdGUoKQoreworICAgIG1fcGFyc2VyU3RhdGVXYXNSZXNldCA9
IHRydWU7CiB9CiAKIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmRlc3Ryb3lQYXJz
ZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJj
ZS9Nb2NrU291cmNlQnVmZmVyUHJpdmF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
b2NrL21lZGlhc291cmNlL01vY2tTb3VyY2VCdWZmZXJQcml2YXRlLmNwcAppbmRleCA2MjNhZmIz
OGU3MWQ5ZWFlYjViM2YwZTlkM2FiYzZjZjc2MjlhYzBkLi5lNDJmM2NhZDc3YmU2MGE0N2I5Njg3
YmRkYzRlMTUxMGY4MTZlMTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
b2NrL21lZGlhc291cmNlL01vY2tTb3VyY2VCdWZmZXJQcml2YXRlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tTb3VyY2VCdWZmZXJQcml2YXRl
LmNwcApAQCAtMjAzLDYgKzIwMywxMCBAQCB2b2lkIE1vY2tTb3VyY2VCdWZmZXJQcml2YXRlOjph
Ym9ydCgpCiB7CiB9CiAKK3ZvaWQgTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGU6OnJlc2V0UGFyc2Vy
U3RhdGUoKQoreworfQorCiB2b2lkIE1vY2tTb3VyY2VCdWZmZXJQcml2YXRlOjpyZW1vdmVkRnJv
bU1lZGlhU291cmNlKCkKIHsKICAgICBpZiAobV9tZWRpYVNvdXJjZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja1NvdXJjZUJ1ZmZlclBy
aXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja1Nv
dXJjZUJ1ZmZlclByaXZhdGUuaAppbmRleCBhZTBjNjZjMzVhYWI3ZGY5NTk3OTdmNGM5MzRhYzMx
NjQzMDk1OTdlLi44MzgwOTYxMTQ5NDJkOTZmYjllNWRkNTZiY2VhZTlmMGMyOWVhZjdiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tTb3Vy
Y2VCdWZmZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRp
YXNvdXJjZS9Nb2NrU291cmNlQnVmZmVyUHJpdmF0ZS5oCkBAIC02Myw2ICs2Myw3IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBzZXRDbGllbnQoU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudCopIG92ZXJy
aWRlOwogICAgIHZvaWQgYXBwZW5kKGNvbnN0IHVuc2lnbmVkIGNoYXIqIGRhdGEsIHVuc2lnbmVk
IGxlbmd0aCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBhYm9ydCgpIG92ZXJyaWRlOworICAgIHZvaWQg
cmVzZXRQYXJzZXJTdGF0ZSgpIG92ZXJyaWRlOwogICAgIHZvaWQgcmVtb3ZlZEZyb21NZWRpYVNv
dXJjZSgpIG92ZXJyaWRlOwogICAgIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIHJlYWR5U3RhdGUo
KSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIHNldFJlYWR5U3RhdGUoTWVkaWFQbGF5ZXI6OlJl
YWR5U3RhdGUpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDFjZTg5ZWI5OGJhODlhYTNlYjM4YzMxYTg1ZGUy
OTBjYjQzNGZjMDcuLjUwYjVlZmQxNzcyODEzZmQ2YzNmNjVkYzExNGIwMjdiYzFlMGU5MWYgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxMyBAQAorMjAxNi0wOS0yNyAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFw
cGxlLmNvbT4KKworICAgICAgICBbTVNFXVtNYWNdIEluIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZP
YmpDOjphYm9ydCgpLCBzdXBwb3J0IHJlc2V0aW5nIHBhcnNlciB0byB0aGUgbGFzdCBhcHBlbmRl
ZCBpbml0aWFsaXphdGlvbiBzZWdtZW50LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTM1MTY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBtZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLWFib3J0
LXJlc2V0cy1wYXJzZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS9tZWRp
YS1zb3VyY2UvbWVkaWEtc291cmNlLWFib3J0LXJlc2V0cy1wYXJzZXIuaHRtbDogQWRkZWQuCisK
IDIwMTYtMDktMjMgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAg
UkVHUkVTU0lPTiAocjIwNjMwMCk6IExheW91dFRlc3QgbWVkaWEvbWVkaWEtc291cmNlL21lZGlh
LXNvdXJjZS1kdXBsaWNhdGUtc2Vla2VkLmh0bWwgdGltaW5nIG91dApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1hYm9ydC1yZXNldHMtcGFy
c2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1z
b3VyY2UtYWJvcnQtcmVzZXRzLXBhcnNlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzdhNTM5
MzY2YjRhMDE3MmNkYzQyMTc3MjRjYjAyZjk2ZTdmZTMwYQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtYWJvcnQtcmVzZXRzLXBh
cnNlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyNCBAQAorVGhpcyB0ZXN0cyB0aGUgYWJpbGl0
eSBvZiB0aGUgU291cmNlQnVmZmVyIHRvIHJlc2V0IHRoZSBwYXJzZXIgYWZ0ZXIgYW4gYWJvcnQo
KS4gQSBTb3VyY2VCdWZmZXIgaW4gdGhpcyBzdGF0ZSBzaG91bGQgYmUgYWJsZSB0byBhY2NlcHQg
YSBuZXcgaW5pdGlhbGl6YXRpb24gc2VnbWVudCBvciBhIG5ldyBtZWRpYSBzZWdtZW50LgorCitS
VU4odmlkZW8uc3JjID0gVVJMLmNyZWF0ZU9iamVjdFVSTChzb3VyY2UpKQorRVZFTlQoc291cmNl
b3BlbikKK1JVTihzb3VyY2UuZHVyYXRpb24gPSBsb2FkZXIuZHVyYXRpb24oKSkKK1JVTihzb3Vy
Y2VCdWZmZXIgPSBzb3VyY2UuYWRkU291cmNlQnVmZmVyKGxvYWRlci50eXBlKCkpKQorUlVOKHNv
dXJjZUJ1ZmZlci5hcHBlbmRCdWZmZXIobG9hZGVyLmluaXRTZWdtZW50KCkpKQorRVZFTlQodXBk
YXRlKQorQXBwZW5kIGEgcGFydGlhbCBtZWRpYSBzZWdtZW50LgorUlVOKHNvdXJjZUJ1ZmZlci5h
cHBlbmRCdWZmZXIobG9hZGVyLm1lZGlhU2VnbWVudCgwKS5zbGljZSgwLCBsb2FkZXIubWVkaWFT
ZWdtZW50KDApLmJ5dGVMZW5ndGggLyAyKSkpCitFVkVOVCh1cGRhdGUpCitBYm9ydCBhbmQgYXBw
ZW5kIGEgbmV3IGluaXRpYWxpemF0aW9uIHNlZ21lbnQuCitSVU4oc291cmNlQnVmZmVyLmFib3J0
KCkpCitSVU4oc291cmNlQnVmZmVyLmFwcGVuZEJ1ZmZlcihsb2FkZXIuaW5pdFNlZ21lbnQoKSkp
CitFVkVOVCh1cGRhdGUpCitBcHBlbmQgYSBwYXJ0aWFsIG1lZGlhIHNlZ21lbnQuCitSVU4oc291
cmNlQnVmZmVyLmFwcGVuZEJ1ZmZlcihsb2FkZXIubWVkaWFTZWdtZW50KDApLnNsaWNlKDAsIGxv
YWRlci5tZWRpYVNlZ21lbnQoMCkuYnl0ZUxlbmd0aCAvIDIpKSkKK0VWRU5UKHVwZGF0ZSkKK0Fi
b3J0IGFuZCBhcHBlbmQgYSBuZXcgbWVkaWEgc2VnbWVudC4KK1JVTihzb3VyY2VCdWZmZXIuYWJv
cnQoKSkKK1JVTihzb3VyY2VCdWZmZXIuYXBwZW5kQnVmZmVyKGxvYWRlci5tZWRpYVNlZ21lbnQo
MSkpKQorRVZFTlQodXBkYXRlKQorRU5EIE9GIFRFU1QKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1hYm9ydC1yZXNldHMtcGFyc2VyLmh0
bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLWFib3J0LXJl
c2V0cy1wYXJzZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNGYyZDdiYWJlOTc4ZGFhNGVjNTdlNjA2YTY0
YTQ0NTM2MDE0NDEzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEt
c291cmNlL21lZGlhLXNvdXJjZS1hYm9ydC1yZXNldHMtcGFyc2VyLmh0bWwKQEAgLTAsMCArMSw3
MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRsZT5tZWRpYS1z
b3VyY2UtYWJvcnQtcmVzZXRzLXBhcnNlcjwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Im1lZGlh
LXNvdXJjZS1sb2FkZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi92aWRlby10
ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgIHZhciBsb2FkZXI7CisgICAgdmFy
IHNvdXJjZTsKKyAgICB2YXIgc291cmNlQnVmZmVyOworCisgICAgZnVuY3Rpb24gcnVuVGVzdCgp
IHsKKyAgICAgICAgZmluZE1lZGlhRWxlbWVudCgpOworCisgICAgICAgIGxvYWRlciA9IG5ldyBN
ZWRpYVNvdXJjZUxvYWRlcignY29udGVudC90ZXN0LWZyYWdtZW50ZWQtbWFuaWZlc3QuanNvbicp
OworICAgICAgICBsb2FkZXIub25sb2FkID0gbWVkaWFEYXRhTG9hZGVkOworICAgICAgICBsb2Fk
ZXIub25lcnJvciA9IG1lZGlhRGF0YUxvYWRpbmdGYWlsZWQ7CisgICAgfQorCisgICAgZnVuY3Rp
b24gbWVkaWFEYXRhTG9hZGluZ0ZhaWxlZCgpIHsKKyAgICAgICAgZmFpbFRlc3QoJ01lZGlhIGRh
dGEgbG9hZGluZyBmYWlsZWQnKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBtZWRpYURhdGFMb2Fk
ZWQoKSB7CisgICAgICAgIHNvdXJjZSA9IG5ldyBNZWRpYVNvdXJjZSgpOworICAgICAgICB3YWl0
Rm9yRXZlbnQoJ3NvdXJjZW9wZW4nLCBzb3VyY2VPcGVuLCBmYWxzZSwgZmFsc2UsIHNvdXJjZSk7
CisgICAgICAgIHdhaXRGb3JFdmVudEFuZEZhaWwoJ2Vycm9yJyk7CisgICAgICAgIHJ1bigndmlk
ZW8uc3JjID0gVVJMLmNyZWF0ZU9iamVjdFVSTChzb3VyY2UpJyk7CisgICAgfQorCisgICAgZnVu
Y3Rpb24gc291cmNlT3BlbigpIHsKKyAgICAgICAgcnVuKCdzb3VyY2UuZHVyYXRpb24gPSBsb2Fk
ZXIuZHVyYXRpb24oKScpOworICAgICAgICBydW4oJ3NvdXJjZUJ1ZmZlciA9IHNvdXJjZS5hZGRT
b3VyY2VCdWZmZXIobG9hZGVyLnR5cGUoKSknKTsKKyAgICAgICAgd2FpdEZvckV2ZW50T24oc291
cmNlQnVmZmVyLCAndXBkYXRlJywgc291cmNlSW5pdGlhbGl6ZWQsIGZhbHNlLCB0cnVlKTsKKyAg
ICAgICAgcnVuKCdzb3VyY2VCdWZmZXIuYXBwZW5kQnVmZmVyKGxvYWRlci5pbml0U2VnbWVudCgp
KScpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHNvdXJjZUluaXRpYWxpemVkKCkgeworICAgICAg
ICB3YWl0Rm9yRXZlbnRPbihzb3VyY2VCdWZmZXIsICd1cGRhdGUnLCBwYXJ0aWFsTWVkaWFTZWdt
ZW50QXBwZW5kZWQxLCBmYWxzZSwgdHJ1ZSk7CisgICAgICAgIGNvbnNvbGVXcml0ZSgnQXBwZW5k
IGEgcGFydGlhbCBtZWRpYSBzZWdtZW50LicpCisgICAgICAgIHJ1bignc291cmNlQnVmZmVyLmFw
cGVuZEJ1ZmZlcihsb2FkZXIubWVkaWFTZWdtZW50KDApLnNsaWNlKDAsIGxvYWRlci5tZWRpYVNl
Z21lbnQoMCkuYnl0ZUxlbmd0aCAvIDIpKScpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHBhcnRp
YWxNZWRpYVNlZ21lbnRBcHBlbmRlZDEoKSB7CisgICAgICAgIGNvbnNvbGVXcml0ZSgnQWJvcnQg
YW5kIGFwcGVuZCBhIG5ldyBpbml0aWFsaXphdGlvbiBzZWdtZW50LicpCisgICAgICAgIHJ1bign
c291cmNlQnVmZmVyLmFib3J0KCknKTsKKyAgICAgICAgcnVuKCdzb3VyY2VCdWZmZXIuYXBwZW5k
QnVmZmVyKGxvYWRlci5pbml0U2VnbWVudCgpKScpOworICAgICAgICB3YWl0Rm9yRXZlbnRPbihz
b3VyY2VCdWZmZXIsICd1cGRhdGUnLCBpbml0U2VnbWVudEFwcGVuZGVkLCBmYWxzZSwgdHJ1ZSk7
CisgICAgfQorCisgICAgZnVuY3Rpb24gaW5pdFNlZ21lbnRBcHBlbmRlZCgpIHsKKyAgICAgICAg
d2FpdEZvckV2ZW50T24oc291cmNlQnVmZmVyLCAndXBkYXRlJywgcGFydGlhbE1lZGlhU2VnbWVu
dEFwcGVuZGVkMiwgZmFsc2UsIHRydWUpOworICAgICAgICBjb25zb2xlV3JpdGUoJ0FwcGVuZCBh
IHBhcnRpYWwgbWVkaWEgc2VnbWVudC4nKQorICAgICAgICBydW4oJ3NvdXJjZUJ1ZmZlci5hcHBl
bmRCdWZmZXIobG9hZGVyLm1lZGlhU2VnbWVudCgwKS5zbGljZSgwLCBsb2FkZXIubWVkaWFTZWdt
ZW50KDApLmJ5dGVMZW5ndGggLyAyKSknKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBwYXJ0aWFs
TWVkaWFTZWdtZW50QXBwZW5kZWQyKCkgeworICAgICAgICBjb25zb2xlV3JpdGUoJ0Fib3J0IGFu
ZCBhcHBlbmQgYSBuZXcgbWVkaWEgc2VnbWVudC4nKQorICAgICAgICBydW4oJ3NvdXJjZUJ1ZmZl
ci5hYm9ydCgpJyk7CisgICAgICAgIHJ1bignc291cmNlQnVmZmVyLmFwcGVuZEJ1ZmZlcihsb2Fk
ZXIubWVkaWFTZWdtZW50KDEpKScpOworICAgICAgICB3YWl0Rm9yRXZlbnRPbihzb3VyY2VCdWZm
ZXIsICd1cGRhdGUnLCBlbmRUZXN0LCBmYWxzZSwgdHJ1ZSk7CisgICAgfQorICAgIDwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorICAgIDxkaXY+CisgICAgICAg
IFRoaXMgdGVzdHMgdGhlIGFiaWxpdHkgb2YgdGhlIFNvdXJjZUJ1ZmZlciB0byByZXNldCB0aGUg
cGFyc2VyIGFmdGVyIGFuIGFib3J0KCkuIEEgU291cmNlQnVmZmVyIGluIHRoaXMgc3RhdGUgc2hv
dWxkIGJlIGFibGUgdG8gYWNjZXB0CisgICAgICAgIGEgbmV3IGluaXRpYWxpemF0aW9uIHNlZ21l
bnQgb3IgYSBuZXcgbWVkaWEgc2VnbWVudC4KKyAgICA8L2Rpdj4KKyAgICA8dmlkZW8gY29udHJv
bHM+PC92aWRlbz4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
Cg==
</data>
<flag name="review"
          id="313226"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290034</attachid>
            <date>2016-09-27 17:51:10 -0700</date>
            <delta_ts>2016-09-27 18:01:40 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-135164-20160927174811.patch</filename>
            <type>text/plain</type>
            <size>25032</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2NDQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGVlN2IxM2ZiZTgzZjBl
MzRkNWI3MGZmODdlYjE4OThjYzhlNzZjNy4uZTgxM2IwODkzMWZjYjVlMzg1NmQ2OWZmMzExZmVm
NWNiOGQxMmJiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDE2LTA5LTI3ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtNU0VdW01hY10gSW4gU291
cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmFib3J0KCksIHN1cHBvcnQgcmVzZXRpbmcgcGFyc2Vy
IHRvIHRoZSBsYXN0IGFwcGVuZGVkIGluaXRpYWxpemF0aW9uIHNlZ21lbnQuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzUxNjQKKworICAgICAgICBS
ZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgVGVzdDogbWVkaWEvbWVkaWEtc291
cmNlL21lZGlhLXNvdXJjZS1hYm9ydC1yZXNldHMtcGFyc2VyLmh0bWwKKworICAgICAgICBVc2Ug
dGhlIC1bQVZTdHJlYW1EYXRhUGFyc2VyIGFwcGVuZFN0cmVhbURhdGE6d2l0aEZsYWdzOl0gdG8g
aW1wbGVtZW50ICJyZXNldHRpbmciIHRoZSBwYXJzZXIuIEluIHRoaXMgY2FzZSwKKyAgICAgICAg
dGhlIHBhcnNlciBpc24ndCBleHBsaWNpdGx5IHJlc2V0IGR1cmluZyByZXNldFBhcnNlclN0YXRl
KCksIGJ1dCByYXRoZXIgYSBmbGFnIGlzIHNldCBzbyB0aGF0IHRoZSBuZXh0IGFwcGVuZAorICAg
ICAgICBzaWduYWxzIGEgZGF0YSBkaXNjb250aW51aXR5LCBhbmQgdGhlIHBhcnNlciBpcyByZXNl
dCBhdCB0aGF0IHBvaW50LgorCisgICAgICAgIEJlY2F1c2UgYSBwcmV2aW91cyBhcHBlbmQgb3Bl
cmF0aW9uIG1heSBiZSBpbi1mbGlnaHQgZHVyaW5nIHRoaXMgYWJvcnQoKSwgY2FyZSBtdXN0IGJl
IHRha2VuIHRvIGludmFsaWRhdGUgYW55CisgICAgICAgIG9wZXJhdGlvbnMgd2hpY2ggbWF5IGhh
dmUgYWxyZWFkeSBzdGFydGVkIG9uIGEgYmFja2dyb3VuZCB0aHJlYWQuIFNvIFNvdXJjZUJ1ZmZl
clByaXZhdGVBVkZPYmpDIHdpbGwgdXNlIGEKKyAgICAgICAgc2VwYXJhdGUgV2Vha1B0ckZhY3Rv
cnkgZm9yIGl0cyBhcHBlbmQgb3BlcmF0aW9ucywgd2lsbCBpbnZhbGlkYXRlIGFueSBvdXRzdGFu
ZGluZyBXZWFrUHRycyBkdXJpbmcgYW4gYWJvcnQoKSwKKyAgICAgICAgYW5kIHdpbGwgYmxvY2sg
dW50aWwgdGhlIHByZXZpb3VzIGFwcGVuZCgpIG9wZXJhdGlvbiBjb21wbGV0ZXMuCisKKyAgICAg
ICAgVGhpcyB3aWxsIHJlcXVpcmUgdGhlIFdlYkFWU3RyZWFtRGF0YVBhcnNlckxpc3RlbmVyIG9i
amVjdCB0byBvY2Nhc2lvbmFsbHkgaGF2ZSBpdCdzIFdlYWtQdHIgcG9pbnRpbmcgYmFjayB0byB0
aGUKKyAgICAgICAgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMgdG8gYmUgcmVzZXQgYWZ0ZXIg
YW4gYWJvcnQoKSwgc28gbWFrZSB0aGF0IGl2YXIgYW4gQHByb3BlcnR5LiBSYXRoZXIgdGhhbiBw
YXNzaW5nIGEKKyAgICAgICAgUmV0YWluUHRyIHRvIGl0c2VsZiBpbiBhbGwgdGhlIGNhbGxiYWNr
cyBpdCBoYW5kbGVzLCB0aGUgV2ViQVZTdHJlYW1EYXRhUGFyc2VyTGlzdGVuZXIgY2FuIGp1c3Qg
cGFzcyBpbiBhIGNvcHkKKyAgICAgICAgb2YgaXRzIG93biBXZWFrUHRyICh3aGljaCBtYXkgYmUg
aW52YWxpZGF0ZWQgZHVyaW5nIGFuIGFib3J0KCkpLgorCisgICAgICAgIEJyZWFrIHRoZSBkaXN0
aW5jdCBvcGVyYXRpb25zIG9mICJhYm9ydCgpIiBhbmQgInJlc2V0UGFyc2VyU3RhdGUoKSIgaW50
byB0aGVpciBvd24gbWV0aG9kcyBpbiBTb3VyY2VCdWZmZXJQcml2YXRlCisgICAgICAgIGFuZCBh
bGwgaXRzIHN1YmNsYXNzZXMuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc291cmNlL1NvdXJj
ZUJ1ZmZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXI6OnJlc2V0UGFyc2Vy
U3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjphYm9ydElmVXBkYXRpbmcp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1NvdXJjZUJ1ZmZlclByaXZhdGUuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQ
cml2YXRlQVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tOgorICAgICAgICAoLVtXZWJBVlN0
cmVhbURhdGFQYXJzZXJMaXN0ZW5lciBzdHJlYW1EYXRhUGFyc2VyOmRpZFBhcnNlU3RyZWFtRGF0
YUFzQXNzZXQ6XSk6CisgICAgICAgICgtW1dlYkFWU3RyZWFtRGF0YVBhcnNlckxpc3RlbmVyIHN0
cmVhbURhdGFQYXJzZXI6ZGlkUGFyc2VTdHJlYW1EYXRhQXNBc3NldDp3aXRoRGlzY29udGludWl0
eTpdKToKKyAgICAgICAgKC1bV2ViQVZTdHJlYW1EYXRhUGFyc2VyTGlzdGVuZXIgc3RyZWFtRGF0
YVBhcnNlcjpkaWRGYWlsVG9QYXJzZVN0cmVhbURhdGFXaXRoRXJyb3I6XSk6CisgICAgICAgICgt
W1dlYkFWU3RyZWFtRGF0YVBhcnNlckxpc3RlbmVyIHN0cmVhbURhdGFQYXJzZXI6ZGlkUHJvdmlk
ZU1lZGlhRGF0YTpmb3JUcmFja0lEOm1lZGlhVHlwZTpmbGFnczpdKToKKyAgICAgICAgKC1bV2Vi
QVZTdHJlYW1EYXRhUGFyc2VyTGlzdGVuZXIgc3RyZWFtRGF0YVBhcnNlcjpkaWRSZWFjaEVuZE9m
VHJhY2tXaXRoVHJhY2tJRDptZWRpYVR5cGU6XSk6CisgICAgICAgICgtW1dlYkFWU3RyZWFtRGF0
YVBhcnNlckxpc3RlbmVyIHN0cmVhbURhdGFQYXJzZXJXaWxsUHJvdmlkZUNvbnRlbnRLZXlSZXF1
ZXN0SW5pdGlhbGl6YXRpb25EYXRhOmZvclRyYWNrSUQ6XSk6CisgICAgICAgICgtW1dlYkFWU3Ry
ZWFtRGF0YVBhcnNlckxpc3RlbmVyIHN0cmVhbURhdGFQYXJzZXI6ZGlkUHJvdmlkZUNvbnRlbnRL
ZXlSZXF1ZXN0SW5pdGlhbGl6YXRpb25EYXRhOmZvclRyYWNrSUQ6XSk6CisgICAgICAgIChXZWJD
b3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9i
akMpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmFwcGVu
ZCk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6YWJvcnQp
OgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OnJlc2V0UGFy
c2VyU3RhdGUpOgorICAgICAgICAoLVtXZWJBVlN0cmVhbURhdGFQYXJzZXJMaXN0ZW5lciBpbml0
V2l0aFBhcnNlcjpwYXJlbnQ6XSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vbW9jay9t
ZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVmZmVyUHJpdmF0ZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpNb2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6cmVzZXRQYXJzZXJTdGF0ZSk6CisgICAgICAgICog
cGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVmZmVyUHJpdmF0ZS5oOgorICAg
ICAgICAqIHBsYXRmb3JtL3NwaS9tYWMvQVZGb3VuZGF0aW9uU1BJLmg6CisKIDIwMTYtMDktMjMg
IEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAo
cjIwNjMwMCk6IExheW91dFRlc3QgbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1kdXBs
aWNhdGUtc2Vla2VkLmh0bWwgdGltaW5nIG91dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwCmluZGV4IDdhZTY3ZmIzM2NiODU1YWE3
ZTQ3OGY1NjYwMTY3MGNlZTZiMjdkZjguLmNmMjAwNzI4OTAyOTE1MDdmM2ZiNGVlNWI0ZmM2ZTYy
MDJlYTJmODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2Uv
U291cmNlQnVmZmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNl
L1NvdXJjZUJ1ZmZlci5jcHAKQEAgLTI3OCw3ICsyNzgsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6
cmVzZXRQYXJzZXJTdGF0ZSgpCiAgICAgLy8gNy4gU2V0IGFwcGVuZCBzdGF0ZSB0byBXQUlUSU5H
X0ZPUl9TRUdNRU5ULgogICAgIG1fYXBwZW5kU3RhdGUgPSBXYWl0aW5nRm9yU2VnbWVudDsKIAot
ICAgIG1fcHJpdmF0ZS0+YWJvcnQoKTsKKyAgICBtX3ByaXZhdGUtPnJlc2V0UGFyc2VyU3RhdGUo
KTsKIH0KIAogdm9pZCBTb3VyY2VCdWZmZXI6OmFib3J0KEV4Y2VwdGlvbkNvZGUmIGVjKQpAQCAt
MzgzLDYgKzM4Myw3IEBAIHZvaWQgU291cmNlQnVmZmVyOjphYm9ydElmVXBkYXRpbmcoKQogICAg
IC8vIDQuMS4gQWJvcnQgdGhlIGJ1ZmZlciBhcHBlbmQgYWxnb3JpdGhtIGlmIGl0IGlzIHJ1bm5p
bmcuCiAgICAgbV9hcHBlbmRCdWZmZXJUaW1lci5zdG9wKCk7CiAgICAgbV9wZW5kaW5nQXBwZW5k
RGF0YS5jbGVhcigpOworICAgIG1fcHJpdmF0ZS0+YWJvcnQoKTsKIAogICAgIC8vIDQuMi4gU2V0
IHRoZSB1cGRhdGluZyBhdHRyaWJ1dGUgdG8gZmFsc2UuCiAgICAgbV91cGRhdGluZyA9IGZhbHNl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU291cmNlQnVm
ZmVyUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU291cmNlQnVm
ZmVyUHJpdmF0ZS5oCmluZGV4IDBhMTg1NjI2YTdlYTBmOTUwNDNiNTFiYTg4YWZjMjM2ZDhmOWZm
ZGUuLjE1YjI1NWJjN2VhMzg2ODdhZTY5MjM3OWE4Yjk4Y2RiNzc3YzQ0N2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NvdXJjZUJ1ZmZlclByaXZhdGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VCdWZmZXJQcml2YXRl
LmgKQEAgLTUyLDYgKzUyLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGFwcGVuZChj
b25zdCB1bnNpZ25lZCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgYWJvcnQoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlc2V0UGFyc2VyU3RhdGUo
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZWRGcm9tTWVkaWFTb3VyY2UoKSA9IDA7CiAK
ICAgICB2aXJ0dWFsIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdCA9
IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFW
Rk9iakMuaAppbmRleCBjMjMyMWMxYjY5Y2IxMmJjNmFlYTg1MzhiNTk4ZmJlNDAzMTI1YTQ5Li5i
YWY1YmZkYmYxMzBmZTkzMjI4YjVmYjIxYzQzZGVlOTU0MDU2OWM0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZm
ZXJQcml2YXRlQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLmgKQEAgLTI5LDYg
KzI5LDcgQEAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBVU0UoQVZGT1VOREFUSU9OKQog
CiAjaW5jbHVkZSAiU291cmNlQnVmZmVyUHJpdmF0ZS5oIgorI2luY2x1ZGUgPGRpc3BhdGNoL2dy
b3VwLmg+CiAjaW5jbHVkZSA8ZGlzcGF0Y2gvc2VtYXBob3JlLmg+CiAjaW5jbHVkZSA8d3RmL0Rl
cXVlLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTExNSw2ICsxMTYsNyBAQCBwcml2
YXRlOgogICAgIHZvaWQgc2V0Q2xpZW50KFNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQqKSBvdmVy
cmlkZTsKICAgICB2b2lkIGFwcGVuZChjb25zdCB1bnNpZ25lZCBjaGFyKiBkYXRhLCB1bnNpZ25l
ZCBsZW5ndGgpIG92ZXJyaWRlOwogICAgIHZvaWQgYWJvcnQoKSBvdmVycmlkZTsKKyAgICB2b2lk
IHJlc2V0UGFyc2VyU3RhdGUoKSBvdmVycmlkZTsKICAgICB2b2lkIHJlbW92ZWRGcm9tTWVkaWFT
b3VyY2UoKSBvdmVycmlkZTsKICAgICBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSByZWFkeVN0YXRl
KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRSZWFkeVN0YXRlKE1lZGlhUGxheWVyOjpS
ZWFkeVN0YXRlKSBvdmVycmlkZTsKQEAgLTEzOSw2ICsxNDEsNyBAQCBwcml2YXRlOgogICAgIFZl
Y3RvcjxTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQ0Vycm9yQ2xpZW50Kj4gbV9lcnJvckNsaWVu
dHM7CiAKICAgICBXZWFrUHRyRmFjdG9yeTxTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQz4gbV93
ZWFrRmFjdG9yeTsKKyAgICBXZWFrUHRyRmFjdG9yeTxTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
Qz4gbV9hcHBlbmRXZWFrRmFjdG9yeTsKIAogICAgIFJldGFpblB0cjxBVlN0cmVhbURhdGFQYXJz
ZXI+IG1fcGFyc2VyOwogICAgIFJldGFpblB0cjxBVkFzc2V0PiBtX2Fzc2V0OwpAQCAtMTQ4LDYg
KzE1MSw3IEBAIHByaXZhdGU6CiAgICAgUmV0YWluUHRyPFdlYkFWU2FtcGxlQnVmZmVyRXJyb3JM
aXN0ZW5lcj4gbV9lcnJvckxpc3RlbmVyOwogICAgIFJldGFpblB0cjxOU0Vycm9yPiBtX2hkY3BF
cnJvcjsKICAgICBPU09iamVjdFB0cjxkaXNwYXRjaF9zZW1hcGhvcmVfdD4gbV9oYXNTZXNzaW9u
U2VtYXBob3JlOworICAgIE9TT2JqZWN0UHRyPGRpc3BhdGNoX2dyb3VwX3Q+IG1faXNBcHBlbmRp
bmdHcm91cDsKIAogICAgIE1lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMqIG1fbWVkaWFTb3VyY2U7
CiAgICAgU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudCogbV9jbGllbnQ7CkBAIC0xNTYsNiArMTYw
LDcgQEAgcHJpdmF0ZToKICAgICBGbG9hdFNpemUgbV9jYWNoZWRTaXplOwogICAgIEZsb2F0U2l6
ZSBtX2N1cnJlbnRTaXplOwogICAgIGJvb2wgbV9wYXJzaW5nU3VjY2VlZGVkOworICAgIGJvb2wg
bV9wYXJzZXJTdGF0ZVdhc1Jlc2V0IHsgZmFsc2UgfTsKICAgICBpbnQgbV9lbmFibGVkVmlkZW9U
cmFja0lEOwogICAgIGludCBtX3Byb3RlY3RlZFRyYWNrSUQ7CiB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVm
ZmVyUHJpdmF0ZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbQppbmRleCBhOTdm
MWE3ZjNmOThjNWM1ZDdiMWU4N2U3MTljMGQyZmJjNmE0NTIxLi4xOGJkYzFiYTcxYTg4NGQzYzk1
YTBhNjhlZjcxYjkwODdhYmM4YTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbQpAQCAtMTMxLDYgKzEzMSw3IEBAIEBpbnRl
cmZhY2UgV2ViQVZTdHJlYW1EYXRhUGFyc2VyTGlzdGVuZXIgOiBOU09iamVjdDxBVlN0cmVhbURh
dGFQYXJzZXJPdXRwdXRIYW5kCiAgICAgV2Vha1B0cjxXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2
YXRlQVZGT2JqQz4gX3BhcmVudDsKICAgICBBVlN0cmVhbURhdGFQYXJzZXIqIF9wYXJzZXI7CiB9
CitAcHJvcGVydHkgKGFzc2lnbikgV2Vha1B0cjxXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRl
QVZGT2JqQz4gcGFyZW50OwogLSAoaWQpaW5pdFdpdGhQYXJzZXI6KEFWU3RyZWFtRGF0YVBhcnNl
ciopcGFyc2VyIHBhcmVudDooV2Vha1B0cjxXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZG
T2JqQz4pcGFyZW50OwogQGVuZAogCkBAIC0xNDgsNiArMTQ5LDggQEAgLSAoaWQpaW5pdFdpdGhQ
YXJzZXI6KEFWU3RyZWFtRGF0YVBhcnNlciopcGFyc2VyIHBhcmVudDooV2Vha1B0cjxXZWJDb3Jl
OjpTb3VyY2UKICAgICByZXR1cm4gc2VsZjsKIH0KIAorQHN5bnRoZXNpemUgcGFyZW50PV9wYXJl
bnQ7CisKIC0gKHZvaWQpZGVhbGxvYwogewogICAgIFtfcGFyc2VyIHNldERlbGVnYXRlOm5pbF07
CkBAIC0xNjYsMTIgKzE2OSwxMSBAQCAtICh2b2lkKXN0cmVhbURhdGFQYXJzZXI6KEFWU3RyZWFt
RGF0YVBhcnNlciAqKXN0cmVhbURhdGFQYXJzZXIgZGlkUGFyc2VTdHJlYW1EYQogICAgIFVOVVNF
RF9QQVJBTShzdHJlYW1EYXRhUGFyc2VyKTsKICNlbmRpZgogICAgIEFTU0VSVChzdHJlYW1EYXRh
UGFyc2VyID09IF9wYXJzZXIpOwotICAgIFJldGFpblB0cjxXZWJBVlN0cmVhbURhdGFQYXJzZXJM
aXN0ZW5lcj4gcHJvdGVjdGVkU2VsZiA9IHNlbGY7CiAKICAgICBSZXRhaW5QdHI8QVZBc3NldCo+
IHByb3RlY3RlZEFzc2V0ID0gYXNzZXQ7Ci0gICAgY2FsbE9uTWFpblRocmVhZChbcHJvdGVjdGVk
U2VsZiA9IFdURk1vdmUocHJvdGVjdGVkU2VsZiksIHByb3RlY3RlZEFzc2V0ID0gV1RGTW92ZShw
cm90ZWN0ZWRBc3NldCldIHsKLSAgICAgICAgaWYgKHByb3RlY3RlZFNlbGYtPl9wYXJlbnQpCi0g
ICAgICAgICAgICBwcm90ZWN0ZWRTZWxmLT5fcGFyZW50LT5kaWRQYXJzZVN0cmVhbURhdGFBc0Fz
c2V0KHByb3RlY3RlZEFzc2V0LmdldCgpKTsKKyAgICBjYWxsT25NYWluVGhyZWFkKFtwYXJlbnQg
PSBfcGFyZW50LCBwcm90ZWN0ZWRBc3NldCA9IFdURk1vdmUocHJvdGVjdGVkQXNzZXQpXSB7Cisg
ICAgICAgIGlmIChwYXJlbnQpCisgICAgICAgICAgICBwYXJlbnQtPmRpZFBhcnNlU3RyZWFtRGF0
YUFzQXNzZXQocHJvdGVjdGVkQXNzZXQuZ2V0KCkpOwogICAgIH0pOwogfQogCkBAIC0xODIsMTIg
KzE4NCwxMSBAQCAtICh2b2lkKXN0cmVhbURhdGFQYXJzZXI6KEFWU3RyZWFtRGF0YVBhcnNlciAq
KXN0cmVhbURhdGFQYXJzZXIgZGlkUGFyc2VTdHJlYW1EYQogICAgIFVOVVNFRF9QQVJBTShzdHJl
YW1EYXRhUGFyc2VyKTsKICNlbmRpZgogICAgIEFTU0VSVChzdHJlYW1EYXRhUGFyc2VyID09IF9w
YXJzZXIpOwotICAgIFJldGFpblB0cjxXZWJBVlN0cmVhbURhdGFQYXJzZXJMaXN0ZW5lcj4gcHJv
dGVjdGVkU2VsZiA9IHNlbGY7CiAKICAgICBSZXRhaW5QdHI8QVZBc3NldCo+IHByb3RlY3RlZEFz
c2V0ID0gYXNzZXQ7Ci0gICAgY2FsbE9uTWFpblRocmVhZChbcHJvdGVjdGVkU2VsZiA9IFdURk1v
dmUocHJvdGVjdGVkU2VsZiksIHByb3RlY3RlZEFzc2V0ID0gV1RGTW92ZShwcm90ZWN0ZWRBc3Nl
dCldIHsKLSAgICAgICAgaWYgKHByb3RlY3RlZFNlbGYtPl9wYXJlbnQpCi0gICAgICAgICAgICBw
cm90ZWN0ZWRTZWxmLT5fcGFyZW50LT5kaWRQYXJzZVN0cmVhbURhdGFBc0Fzc2V0KHByb3RlY3Rl
ZEFzc2V0LmdldCgpKTsKKyAgICBjYWxsT25NYWluVGhyZWFkKFtwYXJlbnQgPSBfcGFyZW50LCBw
cm90ZWN0ZWRBc3NldCA9IFdURk1vdmUocHJvdGVjdGVkQXNzZXQpXSB7CisgICAgICAgIGlmIChw
YXJlbnQpCisgICAgICAgICAgICBwYXJlbnQtPmRpZFBhcnNlU3RyZWFtRGF0YUFzQXNzZXQocHJv
dGVjdGVkQXNzZXQuZ2V0KCkpOwogICAgIH0pOwogfQogCkBAIC0xOTcsMTIgKzE5OCwxMSBAQCAt
ICh2b2lkKXN0cmVhbURhdGFQYXJzZXI6KEFWU3RyZWFtRGF0YVBhcnNlciAqKXN0cmVhbURhdGFQ
YXJzZXIgZGlkRmFpbFRvUGFyc2VTdAogICAgIFVOVVNFRF9QQVJBTShzdHJlYW1EYXRhUGFyc2Vy
KTsKICNlbmRpZgogICAgIEFTU0VSVChzdHJlYW1EYXRhUGFyc2VyID09IF9wYXJzZXIpOwotICAg
IFJldGFpblB0cjxXZWJBVlN0cmVhbURhdGFQYXJzZXJMaXN0ZW5lcj4gcHJvdGVjdGVkU2VsZiA9
IHNlbGY7CiAKICAgICBSZXRhaW5QdHI8TlNFcnJvcj4gcHJvdGVjdGVkRXJyb3IgPSBlcnJvcjsK
LSAgICBjYWxsT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRTZWxmID0gV1RGTW92ZShwcm90ZWN0ZWRT
ZWxmKSwgcHJvdGVjdGVkRXJyb3IgPSBXVEZNb3ZlKHByb3RlY3RlZEVycm9yKV0gewotICAgICAg
ICBpZiAocHJvdGVjdGVkU2VsZi0+X3BhcmVudCkKLSAgICAgICAgICAgIHByb3RlY3RlZFNlbGYt
Pl9wYXJlbnQtPmRpZEZhaWxUb1BhcnNlU3RyZWFtRGF0YVdpdGhFcnJvcihwcm90ZWN0ZWRFcnJv
ci5nZXQoKSk7CisgICAgY2FsbE9uTWFpblRocmVhZChbcGFyZW50ID0gX3BhcmVudCwgcHJvdGVj
dGVkRXJyb3IgPSBXVEZNb3ZlKHByb3RlY3RlZEVycm9yKV0geworICAgICAgICBpZiAocGFyZW50
KQorICAgICAgICAgICAgcGFyZW50LT5kaWRGYWlsVG9QYXJzZVN0cmVhbURhdGFXaXRoRXJyb3Io
cHJvdGVjdGVkRXJyb3IuZ2V0KCkpOwogICAgIH0pOwogfQogCkBAIC0yMTIsMTMgKzIxMiwxMiBA
QCAtICh2b2lkKXN0cmVhbURhdGFQYXJzZXI6KEFWU3RyZWFtRGF0YVBhcnNlciAqKXN0cmVhbURh
dGFQYXJzZXIgZGlkUHJvdmlkZU1lZGlhRAogICAgIFVOVVNFRF9QQVJBTShzdHJlYW1EYXRhUGFy
c2VyKTsKICNlbmRpZgogICAgIEFTU0VSVChzdHJlYW1EYXRhUGFyc2VyID09IF9wYXJzZXIpOwot
ICAgIFJldGFpblB0cjxXZWJBVlN0cmVhbURhdGFQYXJzZXJMaXN0ZW5lcj4gcHJvdGVjdGVkU2Vs
ZiA9IHNlbGY7CiAKICAgICBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IHByb3RlY3RlZFNh
bXBsZSA9IHNhbXBsZTsKICAgICBTdHJpbmcgbWVkaWFUeXBlID0gbnNNZWRpYVR5cGU7Ci0gICAg
Y2FsbE9uTWFpblRocmVhZChbcHJvdGVjdGVkU2VsZiA9IFdURk1vdmUocHJvdGVjdGVkU2VsZiks
IHByb3RlY3RlZFNhbXBsZSA9IFdURk1vdmUocHJvdGVjdGVkU2FtcGxlKSwgdHJhY2tJRCwgbWVk
aWFUeXBlLCBmbGFnc10gewotICAgICAgICBpZiAocHJvdGVjdGVkU2VsZi0+X3BhcmVudCkKLSAg
ICAgICAgICAgIHByb3RlY3RlZFNlbGYtPl9wYXJlbnQtPmRpZFByb3ZpZGVNZWRpYURhdGFGb3JU
cmFja0lEKHRyYWNrSUQsIHByb3RlY3RlZFNhbXBsZS5nZXQoKSwgbWVkaWFUeXBlLCBmbGFncyk7
CisgICAgY2FsbE9uTWFpblRocmVhZChbcGFyZW50ID0gX3BhcmVudCwgcHJvdGVjdGVkU2FtcGxl
ID0gV1RGTW92ZShwcm90ZWN0ZWRTYW1wbGUpLCB0cmFja0lELCBtZWRpYVR5cGUsIGZsYWdzXSB7
CisgICAgICAgIGlmIChwYXJlbnQpCisgICAgICAgICAgICBwYXJlbnQtPmRpZFByb3ZpZGVNZWRp
YURhdGFGb3JUcmFja0lEKHRyYWNrSUQsIHByb3RlY3RlZFNhbXBsZS5nZXQoKSwgbWVkaWFUeXBl
LCBmbGFncyk7CiAgICAgfSk7CiB9CiAKQEAgLTIyOCwxMiArMjI3LDExIEBAIC0gKHZvaWQpc3Ry
ZWFtRGF0YVBhcnNlcjooQVZTdHJlYW1EYXRhUGFyc2VyICopc3RyZWFtRGF0YVBhcnNlciBkaWRS
ZWFjaEVuZE9mVHJhCiAgICAgVU5VU0VEX1BBUkFNKHN0cmVhbURhdGFQYXJzZXIpOwogI2VuZGlm
CiAgICAgQVNTRVJUKHN0cmVhbURhdGFQYXJzZXIgPT0gX3BhcnNlcik7Ci0gICAgUmV0YWluUHRy
PFdlYkFWU3RyZWFtRGF0YVBhcnNlckxpc3RlbmVyPiBwcm90ZWN0ZWRTZWxmID0gc2VsZjsKIAog
ICAgIFN0cmluZyBtZWRpYVR5cGUgPSBuc01lZGlhVHlwZTsKLSAgICBjYWxsT25NYWluVGhyZWFk
KFtwcm90ZWN0ZWRTZWxmID0gV1RGTW92ZShwcm90ZWN0ZWRTZWxmKSwgdHJhY2tJRCwgbWVkaWFU
eXBlXSB7Ci0gICAgICAgIGlmIChwcm90ZWN0ZWRTZWxmLT5fcGFyZW50KQotICAgICAgICAgICAg
cHJvdGVjdGVkU2VsZi0+X3BhcmVudC0+ZGlkUmVhY2hFbmRPZlRyYWNrV2l0aFRyYWNrSUQodHJh
Y2tJRCwgbWVkaWFUeXBlKTsKKyAgICBjYWxsT25NYWluVGhyZWFkKFtwYXJlbnQgPSBfcGFyZW50
LCB0cmFja0lELCBtZWRpYVR5cGVdIHsKKyAgICAgICAgaWYgKHBhcmVudCkKKyAgICAgICAgICAg
IHBhcmVudC0+ZGlkUmVhY2hFbmRPZlRyYWNrV2l0aFRyYWNrSUQodHJhY2tJRCwgbWVkaWFUeXBl
KTsKICAgICB9KTsKIH0KIApAQCAtMjQ2LDEwICsyNDQsOSBAQCAtICh2b2lkKXN0cmVhbURhdGFQ
YXJzZXJXaWxsUHJvdmlkZUNvbnRlbnRLZXlSZXF1ZXN0SW5pdGlhbGl6YXRpb25EYXRhOihBVlN0
cmVhbQogCiAgICAgLy8gV2UgbXVzdCBjYWxsIHN5bmNocm9ub3VzbHkgdG8gdGhlIG1haW4gdGhy
ZWFkLCBhcyB0aGUgQVZTdHJlYW1TZXNzaW9uIG11c3QgYmUgYXNzb2NpYXRlZAogICAgIC8vIHdp
dGggdGhlIHN0cmVhbURhdGFQYXJzZXIgYmVmb3JlIHRoZSBkZWxlZ2F0ZSBtZXRob2QgcmV0dXJu
cy4KLSAgICBSZXRhaW5QdHI8V2ViQVZTdHJlYW1EYXRhUGFyc2VyTGlzdGVuZXI+IHN0cm9uZ1Nl
bGYgPSBzZWxmOwotICAgIGRpc3BhdGNoX3N5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwg
W3N0cm9uZ1NlbGYsIHRyYWNrSURdKCkgewotICAgICAgICBpZiAoc3Ryb25nU2VsZi0+X3BhcmVu
dCkKLSAgICAgICAgICAgIHN0cm9uZ1NlbGYtPl9wYXJlbnQtPndpbGxQcm92aWRlQ29udGVudEtl
eVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGFGb3JUcmFja0lEKHRyYWNrSUQpOworICAgIGRpc3Bh
dGNoX3N5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW3BhcmVudCA9IF9wYXJlbnQsIHRy
YWNrSURdKCkgeworICAgICAgICBpZiAocGFyZW50KQorICAgICAgICAgICAgcGFyZW50LT53aWxs
UHJvdmlkZUNvbnRlbnRLZXlSZXF1ZXN0SW5pdGlhbGl6YXRpb25EYXRhRm9yVHJhY2tJRCh0cmFj
a0lEKTsKICAgICB9KTsKIH0KIApAQCAtMjU5LDEyICsyNTYsMTEgQEAgLSAodm9pZClzdHJlYW1E
YXRhUGFyc2VyOihBVlN0cmVhbURhdGFQYXJzZXIgKilzdHJlYW1EYXRhUGFyc2VyIGRpZFByb3Zp
ZGVDb250ZW4KICAgICBVTlVTRURfUEFSQU0oc3RyZWFtRGF0YVBhcnNlcik7CiAjZW5kaWYKICAg
ICBBU1NFUlQoc3RyZWFtRGF0YVBhcnNlciA9PSBfcGFyc2VyKTsKLSAgICBSZXRhaW5QdHI8V2Vi
QVZTdHJlYW1EYXRhUGFyc2VyTGlzdGVuZXI+IHByb3RlY3RlZFNlbGYgPSBzZWxmOwogCiAgICAg
T1NPYmplY3RQdHI8ZGlzcGF0Y2hfc2VtYXBob3JlX3Q+IGhhc1Nlc3Npb25TZW1hcGhvcmUgPSBh
ZG9wdE9TT2JqZWN0KGRpc3BhdGNoX3NlbWFwaG9yZV9jcmVhdGUoMCkpOwotICAgIGNhbGxPbk1h
aW5UaHJlYWQoW3Byb3RlY3RlZFNlbGYgPSBXVEZNb3ZlKHByb3RlY3RlZFNlbGYpLCBwcm90ZWN0
ZWRJbml0RGF0YSA9IFJldGFpblB0cjxOU0RhdGE+KGluaXREYXRhKSwgdHJhY2tJRCwgaGFzU2Vz
c2lvblNlbWFwaG9yZV0gewotICAgICAgICBpZiAocHJvdGVjdGVkU2VsZi0+X3BhcmVudCkKLSAg
ICAgICAgICAgIHByb3RlY3RlZFNlbGYtPl9wYXJlbnQtPmRpZFByb3ZpZGVDb250ZW50S2V5UmVx
dWVzdEluaXRpYWxpemF0aW9uRGF0YUZvclRyYWNrSUQocHJvdGVjdGVkSW5pdERhdGEuZ2V0KCks
IHRyYWNrSUQsIGhhc1Nlc3Npb25TZW1hcGhvcmUpOworICAgIGNhbGxPbk1haW5UaHJlYWQoW3Bh
cmVudCA9IF9wYXJlbnQsIHByb3RlY3RlZEluaXREYXRhID0gUmV0YWluUHRyPE5TRGF0YT4oaW5p
dERhdGEpLCB0cmFja0lELCBoYXNTZXNzaW9uU2VtYXBob3JlXSB7CisgICAgICAgIGlmIChwYXJl
bnQpCisgICAgICAgICAgICBwYXJlbnQtPmRpZFByb3ZpZGVDb250ZW50S2V5UmVxdWVzdEluaXRp
YWxpemF0aW9uRGF0YUZvclRyYWNrSUQocHJvdGVjdGVkSW5pdERhdGEuZ2V0KCksIHRyYWNrSUQs
IGhhc1Nlc3Npb25TZW1hcGhvcmUpOwogICAgIH0pOwogICAgIGRpc3BhdGNoX3NlbWFwaG9yZV93
YWl0KGhhc1Nlc3Npb25TZW1hcGhvcmUuZ2V0KCksIERJU1BBVENIX1RJTUVfRk9SRVZFUik7CiB9
CkBAIC00NjEsOSArNDU3LDExIEBAIFJlZlB0cjxTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQz4g
U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmNyZWF0ZShNZWRpYVNvdXJjCiAKIFNvdXJjZUJ1
ZmZlclByaXZhdGVBVkZPYmpDOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQyhNZWRpYVNvdXJj
ZVByaXZhdGVBVkZPYmpDKiBwYXJlbnQpCiAgICAgOiBtX3dlYWtGYWN0b3J5KHRoaXMpCisgICAg
LCBtX2FwcGVuZFdlYWtGYWN0b3J5KHRoaXMpCiAgICAgLCBtX3BhcnNlcihhZG9wdE5TKFthbGxv
Y0FWU3RyZWFtRGF0YVBhcnNlckluc3RhbmNlKCkgaW5pdF0pKQogICAgICwgbV9kZWxlZ2F0ZShh
ZG9wdE5TKFtbV2ViQVZTdHJlYW1EYXRhUGFyc2VyTGlzdGVuZXIgYWxsb2NdIGluaXRXaXRoUGFy
c2VyOm1fcGFyc2VyLmdldCgpIHBhcmVudDpjcmVhdGVXZWFrUHRyKCldKSkKICAgICAsIG1fZXJy
b3JMaXN0ZW5lcihhZG9wdE5TKFtbV2ViQVZTYW1wbGVCdWZmZXJFcnJvckxpc3RlbmVyIGFsbG9j
XSBpbml0V2l0aFBhcmVudDp0aGlzXSkpCisgICAgLCBtX2lzQXBwZW5kaW5nR3JvdXAoYWRvcHRP
U09iamVjdChkaXNwYXRjaF9ncm91cF9jcmVhdGUoKSkpCiAgICAgLCBtX21lZGlhU291cmNlKHBh
cmVudCkKICAgICAsIG1fY2xpZW50KDApCiAgICAgLCBtX3BhcnNpbmdTdWNjZWVkZWQodHJ1ZSkK
QEAgLTY0MSwyMSArNjM5LDI2IEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmFw
cGVuZChjb25zdCB1bnNpZ25lZCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5nCiAgICAgTE9HKE1l
ZGlhU291cmNlLCAiU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmFwcGVuZCglcCkgLSBkYXRh
OiVwLCBsZW5ndGg6JWQiLCB0aGlzLCBkYXRhLCBsZW5ndGgpOwogCiAgICAgUmV0YWluUHRyPE5T
RGF0YT4gbnNEYXRhID0gYWRvcHROUyhbW05TRGF0YSBhbGxvY10gaW5pdFdpdGhCeXRlczpkYXRh
IGxlbmd0aDpsZW5ndGhdKTsKLSAgICBXZWFrUHRyPFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpD
PiB3ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQdHIoKTsKKyAgICBXZWFrUHRyPFNvdXJjZUJ1ZmZlclBy
aXZhdGVBVkZPYmpDPiB3ZWFrVGhpcyA9IG1fYXBwZW5kV2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0
cigpOwogICAgIFJldGFpblB0cjxBVlN0cmVhbURhdGFQYXJzZXI+IHBhcnNlciA9IG1fcGFyc2Vy
OwogICAgIFJldGFpblB0cjxXZWJBVlN0cmVhbURhdGFQYXJzZXJMaXN0ZW5lcj4gZGVsZWdhdGUg
PSBtX2RlbGVnYXRlOwogCiAgICAgbV9wYXJzaW5nU3VjY2VlZGVkID0gdHJ1ZTsKKyAgICBkaXNw
YXRjaF9ncm91cF9lbnRlcihtX2lzQXBwZW5kaW5nR3JvdXAuZ2V0KCkpOwogCi0gICAgZGlzcGF0
Y2hfYXN5bmMoZ2xvYmFsRGF0YVBhcnNlclF1ZXVlKCksIFtuc0RhdGEsIHdlYWtUaGlzLCBwYXJz
ZXIsIGRlbGVnYXRlXSB7Ci0KLSAgICAgICAgW3BhcnNlciBhcHBlbmRTdHJlYW1EYXRhOm5zRGF0
YS5nZXQoKV07CisgICAgZGlzcGF0Y2hfYXN5bmMoZ2xvYmFsRGF0YVBhcnNlclF1ZXVlKCksIFtu
c0RhdGEsIHdlYWtUaGlzLCBwYXJzZXIsIGRlbGVnYXRlLCBpc0FwcGVuZGluZ0dyb3VwID0gbV9p
c0FwcGVuZGluZ0dyb3VwLCBwYXJzZXJTdGF0ZVdhc1Jlc2V0ID0gbV9wYXJzZXJTdGF0ZVdhc1Jl
c2V0XSB7CisgICAgICAgIGlmIChwYXJzZXJTdGF0ZVdhc1Jlc2V0KQorICAgICAgICAgICAgW3Bh
cnNlciBhcHBlbmRTdHJlYW1EYXRhOm5zRGF0YS5nZXQoKSB3aXRoRmxhZ3M6QVZTdHJlYW1EYXRh
UGFyc2VyU3RyZWFtRGF0YURpc2NvbnRpbnVpdHldOworICAgICAgICBlbHNlCisgICAgICAgICAg
ICBbcGFyc2VyIGFwcGVuZFN0cmVhbURhdGE6bnNEYXRhLmdldCgpXTsKIAogICAgICAgICBjYWxs
T25NYWluVGhyZWFkKFt3ZWFrVGhpc10gewogICAgICAgICAgICAgaWYgKHdlYWtUaGlzKQogICAg
ICAgICAgICAgICAgIHdlYWtUaGlzLT5hcHBlbmRDb21wbGV0ZWQoKTsKICAgICAgICAgfSk7Cisg
ICAgICAgIGRpc3BhdGNoX2dyb3VwX2xlYXZlKGlzQXBwZW5kaW5nR3JvdXAuZ2V0KCkpOwogICAg
IH0pOworICAgIG1fcGFyc2VyU3RhdGVXYXNSZXNldCA9IGZhbHNlOwogfQogCiB2b2lkIFNvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjphcHBlbmRDb21wbGV0ZWQoKQpAQCAtNjY5LDEyICs2NzIs
MTkgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6YXBwZW5kQ29tcGxldGVkKCkK
IAogdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6YWJvcnQoKQogewotICAgIC8vIFRo
ZSBwYXJzZXIgZG9lcyBub3QgaGF2ZSBhIG1lY2hhbmlzbSBmb3IgcmVzZXR0aW5nIHRvIGEgY2xl
YW4gc3RhdGUsIHNvIGRlc3Ryb3kgYW5kIHJlLWNyZWF0ZSBpdC4KLSAgICAvLyBGSVhNRSgxMzUx
NjQpOiBTdXBwb3J0IHJlc2V0dGluZyBwYXJzZXIgdG8gdGhlIGxhc3QgYXBwZW5kZWQgaW5pdGlh
bGl6YXRpb24gc2VnbWVudC4KLSAgICBkZXN0cm95UGFyc2VyKCk7CisgICAgLy8gVGhlIHBhcnNp
bmcgcXVldWUgbWF5IGJlIGJsb2NrZWQgd2FpdGluZyBmb3IgdGhlIG1haW4gdGhyZWFkIHRvIHBy
b3ZpZGUgaXQgYSBBVlN0cmVhbVNlc3Npb24uIFdlCisgICAgLy8gd2VyZSBhc2tlZCB0byBhYm9y
dCwgYW5kIHRoYXQgY2FuY2VscyBhbGwgb3V0c3RhbmRpbmcgYXBwZW5kIG9wZXJhdGlvbnMuIFdp
dGhvdXQgY2FuY2VsbGluZyB0aGlzCisgICAgLy8gc2VtYXBob3JlLCB0aGUgbV9pc0FwcGVuZGlu
Z0dyb3VwIHdhaXQgb3BlcmF0aW9uIHdpbGwgZGVhZGxvY2suCisgICAgaWYgKG1faGFzU2Vzc2lv
blNlbWFwaG9yZSkKKyAgICAgICAgZGlzcGF0Y2hfc2VtYXBob3JlX3NpZ25hbChtX2hhc1Nlc3Np
b25TZW1hcGhvcmUuZ2V0KCkpOworICAgIGRpc3BhdGNoX2dyb3VwX3dhaXQobV9pc0FwcGVuZGlu
Z0dyb3VwLmdldCgpLCBESVNQQVRDSF9USU1FX0ZPUkVWRVIpOworICAgIG1fYXBwZW5kV2Vha0Zh
Y3RvcnkucmV2b2tlQWxsKCk7CisgICAgbV9kZWxlZ2F0ZS5nZXQoKS5wYXJlbnQgPSBtX2FwcGVu
ZFdlYWtGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsKK30KIAotICAgIG1fcGFyc2VyID0gYWRvcHRO
UyhbYWxsb2NBVlN0cmVhbURhdGFQYXJzZXJJbnN0YW5jZSgpIGluaXRdKTsKLSAgICBtX2RlbGVn
YXRlID0gYWRvcHROUyhbW1dlYkFWU3RyZWFtRGF0YVBhcnNlckxpc3RlbmVyIGFsbG9jXSBpbml0
V2l0aFBhcnNlcjptX3BhcnNlci5nZXQoKSBwYXJlbnQ6Y3JlYXRlV2Vha1B0cigpXSk7Cit2b2lk
IFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpyZXNldFBhcnNlclN0YXRlKCkKK3sKKyAgICBt
X3BhcnNlclN0YXRlV2FzUmVzZXQgPSB0cnVlOwogfQogCiB2b2lkIFNvdXJjZUJ1ZmZlclByaXZh
dGVBVkZPYmpDOjpkZXN0cm95UGFyc2VyKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVmZmVyUHJp
dmF0ZS5jcHAKaW5kZXggNjIzYWZiMzhlNzFkOWVhZWI1YjNmMGU5ZDNhYmM2Y2Y3NjI5YWMwZC4u
ZTQyZjNjYWQ3N2JlNjBhNDdiOTY4N2JkZGM0ZTE1MTBmODE2ZTE1NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVmZmVyUHJp
dmF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9N
b2NrU291cmNlQnVmZmVyUHJpdmF0ZS5jcHAKQEAgLTIwMyw2ICsyMDMsMTAgQEAgdm9pZCBNb2Nr
U291cmNlQnVmZmVyUHJpdmF0ZTo6YWJvcnQoKQogewogfQogCit2b2lkIE1vY2tTb3VyY2VCdWZm
ZXJQcml2YXRlOjpyZXNldFBhcnNlclN0YXRlKCkKK3sKK30KKwogdm9pZCBNb2NrU291cmNlQnVm
ZmVyUHJpdmF0ZTo6cmVtb3ZlZEZyb21NZWRpYVNvdXJjZSgpCiB7CiAgICAgaWYgKG1fbWVkaWFT
b3VyY2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291
cmNlL01vY2tTb3VyY2VCdWZmZXJQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
b2NrL21lZGlhc291cmNlL01vY2tTb3VyY2VCdWZmZXJQcml2YXRlLmgKaW5kZXggYWUwYzY2YzM1
YWFiN2RmOTU5Nzk3ZjRjOTM0YWMzMTY0MzA5NTk3ZS4uODM4MDk2MTE0OTQyZDk2ZmI5ZTVkZDU2
YmNlYWU5ZjBjMjllYWY3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9j
ay9tZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVmZmVyUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGUuaApA
QCAtNjMsNiArNjMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0Q2xpZW50KFNvdXJjZUJ1ZmZl
clByaXZhdGVDbGllbnQqKSBvdmVycmlkZTsKICAgICB2b2lkIGFwcGVuZChjb25zdCB1bnNpZ25l
ZCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpIG92ZXJyaWRlOwogICAgIHZvaWQgYWJvcnQo
KSBvdmVycmlkZTsKKyAgICB2b2lkIHJlc2V0UGFyc2VyU3RhdGUoKSBvdmVycmlkZTsKICAgICB2
b2lkIHJlbW92ZWRGcm9tTWVkaWFTb3VyY2UoKSBvdmVycmlkZTsKICAgICBNZWRpYVBsYXllcjo6
UmVhZHlTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRSZWFk
eVN0YXRlKE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9tYWMvQVZGb3VuZGF0aW9uU1BJLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9zcGkvbWFjL0FWRm91bmRhdGlvblNQSS5oCmluZGV4IDcyZTE0MGRl
OWIwYjgwYWU4N2Y4MmQ4MDE1ZjVjZjdmMmE4ODc1NWUuLmVhYmE4MTZmNjlkYzYwMzQxNmZhMTg3
ZjNmNDA3ZWFjMjJjNjE1YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Nw
aS9tYWMvQVZGb3VuZGF0aW9uU1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3Bp
L21hYy9BVkZvdW5kYXRpb25TUEkuaApAQCAtMTE2LDkgKzExNiwxNCBAQCB0eXBlZGVmIE5TX0VO
VU0oTlNVSW50ZWdlciwgQVZTdHJlYW1EYXRhUGFyc2VyT3V0cHV0TWVkaWFEYXRhRmxhZ3MpIHsK
ICAgICBBVlN0cmVhbURhdGFQYXJzZXJPdXRwdXRNZWRpYURhdGFSZXNlcnZlZCA9IDEgPDwgMAog
fTsKIAordHlwZWRlZiBOU19FTlVNKE5TVUludGVnZXIsIEFWU3RyZWFtRGF0YVBhcnNlclN0cmVh
bURhdGFGbGFncykgeworICAgIEFWU3RyZWFtRGF0YVBhcnNlclN0cmVhbURhdGFEaXNjb250aW51
aXR5ID0gMSA8PCAwLAorfTsKKwogQGludGVyZmFjZSBBVlN0cmVhbURhdGFQYXJzZXIgOiBOU09i
amVjdAogLSAodm9pZClzZXREZWxlZ2F0ZToobnVsbGFibGUgaWQ8QVZTdHJlYW1EYXRhUGFyc2Vy
T3V0cHV0SGFuZGxpbmc+KWRlbGVnYXRlOwogLSAodm9pZClhcHBlbmRTdHJlYW1EYXRhOihOU0Rh
dGEgKilkYXRhOworLSAodm9pZClhcHBlbmRTdHJlYW1EYXRhOihOU0RhdGEgKilkYXRhIHdpdGhG
bGFnczooQVZTdHJlYW1EYXRhUGFyc2VyU3RyZWFtRGF0YUZsYWdzKWZsYWdzOwogLSAodm9pZClz
ZXRTaG91bGRQcm92aWRlTWVkaWFEYXRhOihCT09MKXNob3VsZFByb3ZpZGVNZWRpYURhdGEgZm9y
VHJhY2tJRDooQ01QZXJzaXN0ZW50VHJhY2tJRCl0cmFja0lEOwogLSAoQk9PTClzaG91bGRQcm92
aWRlTWVkaWFEYXRhRm9yVHJhY2tJRDooQ01QZXJzaXN0ZW50VHJhY2tJRCl0cmFja0lEOwogLSAo
dm9pZClwcm92aWRlUGVuZGluZ01lZGlhRGF0YTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxY2U4OWViOThiYTg5YWEzZWIz
OGMzMWE4NWRlMjkwY2I0MzRmYzA3Li45NWU1ODgxZTc5YTZiNjhmYzJkZWY1ODQwODIwYjQ5MDlk
OGE5MDRlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTYtMDktMjcgIEplciBOb2JsZSAgPGpl
ci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgW01TRV1bTWFjXSBJbiBTb3VyY2VCdWZmZXJQ
cml2YXRlQVZGT2JqQzo6YWJvcnQoKSwgc3VwcG9ydCByZXNldGluZyBwYXJzZXIgdG8gdGhlIGxh
c3QgYXBwZW5kZWQgaW5pdGlhbGl6YXRpb24gc2VnbWVudC4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNTE2NAorCisgICAgICAgIFJldmlld2VkIGJ5
IEVyaWMgQ2FybHNvbi4KKworICAgICAgICAqIG1lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3Vy
Y2UtYWJvcnQtcmVzZXRzLXBhcnNlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIG1l
ZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtYWJvcnQtcmVzZXRzLXBhcnNlci5odG1sOiBB
ZGRlZC4KKwogMjAxNi0wOS0yMyAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSRUdSRVNTSU9OIChyMjA2MzAwKTogTGF5b3V0VGVzdCBtZWRpYS9tZWRpYS1zb3Vy
Y2UvbWVkaWEtc291cmNlLWR1cGxpY2F0ZS1zZWVrZWQuaHRtbCB0aW1pbmcgb3V0CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLWFib3J0LXJl
c2V0cy1wYXJzZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNl
L21lZGlhLXNvdXJjZS1hYm9ydC1yZXNldHMtcGFyc2VyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5jN2E1MzkzNjZiNGEwMTcyY2RjNDIxNzcyNGNiMDJmOTZlN2ZlMzBhCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1hYm9ydC1y
ZXNldHMtcGFyc2VyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI0IEBACitUaGlzIHRlc3RzIHRo
ZSBhYmlsaXR5IG9mIHRoZSBTb3VyY2VCdWZmZXIgdG8gcmVzZXQgdGhlIHBhcnNlciBhZnRlciBh
biBhYm9ydCgpLiBBIFNvdXJjZUJ1ZmZlciBpbiB0aGlzIHN0YXRlIHNob3VsZCBiZSBhYmxlIHRv
IGFjY2VwdCBhIG5ldyBpbml0aWFsaXphdGlvbiBzZWdtZW50IG9yIGEgbmV3IG1lZGlhIHNlZ21l
bnQuCisKK1JVTih2aWRlby5zcmMgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKHNvdXJjZSkpCitFVkVO
VChzb3VyY2VvcGVuKQorUlVOKHNvdXJjZS5kdXJhdGlvbiA9IGxvYWRlci5kdXJhdGlvbigpKQor
UlVOKHNvdXJjZUJ1ZmZlciA9IHNvdXJjZS5hZGRTb3VyY2VCdWZmZXIobG9hZGVyLnR5cGUoKSkp
CitSVU4oc291cmNlQnVmZmVyLmFwcGVuZEJ1ZmZlcihsb2FkZXIuaW5pdFNlZ21lbnQoKSkpCitF
VkVOVCh1cGRhdGUpCitBcHBlbmQgYSBwYXJ0aWFsIG1lZGlhIHNlZ21lbnQuCitSVU4oc291cmNl
QnVmZmVyLmFwcGVuZEJ1ZmZlcihsb2FkZXIubWVkaWFTZWdtZW50KDApLnNsaWNlKDAsIGxvYWRl
ci5tZWRpYVNlZ21lbnQoMCkuYnl0ZUxlbmd0aCAvIDIpKSkKK0VWRU5UKHVwZGF0ZSkKK0Fib3J0
IGFuZCBhcHBlbmQgYSBuZXcgaW5pdGlhbGl6YXRpb24gc2VnbWVudC4KK1JVTihzb3VyY2VCdWZm
ZXIuYWJvcnQoKSkKK1JVTihzb3VyY2VCdWZmZXIuYXBwZW5kQnVmZmVyKGxvYWRlci5pbml0U2Vn
bWVudCgpKSkKK0VWRU5UKHVwZGF0ZSkKK0FwcGVuZCBhIHBhcnRpYWwgbWVkaWEgc2VnbWVudC4K
K1JVTihzb3VyY2VCdWZmZXIuYXBwZW5kQnVmZmVyKGxvYWRlci5tZWRpYVNlZ21lbnQoMCkuc2xp
Y2UoMCwgbG9hZGVyLm1lZGlhU2VnbWVudCgwKS5ieXRlTGVuZ3RoIC8gMikpKQorRVZFTlQodXBk
YXRlKQorQWJvcnQgYW5kIGFwcGVuZCBhIG5ldyBtZWRpYSBzZWdtZW50LgorUlVOKHNvdXJjZUJ1
ZmZlci5hYm9ydCgpKQorUlVOKHNvdXJjZUJ1ZmZlci5hcHBlbmRCdWZmZXIobG9hZGVyLm1lZGlh
U2VnbWVudCgxKSkpCitFVkVOVCh1cGRhdGUpCitFTkQgT0YgVEVTVAorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLWFib3J0LXJlc2V0cy1w
YXJzZXIuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2Ut
YWJvcnQtcmVzZXRzLXBhcnNlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE0ZjJkN2JhYmU5NzhkYWE0ZWM1
N2U2MDZhNjRhNDQ1MzYwMTQ0MTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRp
YS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLWFib3J0LXJlc2V0cy1wYXJzZXIuaHRtbApAQCAt
MCwwICsxLDcyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxl
Pm1lZGlhLXNvdXJjZS1hYm9ydC1yZXNldHMtcGFyc2VyPC90aXRsZT4KKyAgICA8c2NyaXB0IHNy
Yz0ibWVkaWEtc291cmNlLWxvYWRlci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4u
L3ZpZGVvLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgdmFyIGxvYWRlcjsK
KyAgICB2YXIgc291cmNlOworICAgIHZhciBzb3VyY2VCdWZmZXI7CisKKyAgICBmdW5jdGlvbiBy
dW5UZXN0KCkgeworICAgICAgICBmaW5kTWVkaWFFbGVtZW50KCk7CisKKyAgICAgICAgbG9hZGVy
ID0gbmV3IE1lZGlhU291cmNlTG9hZGVyKCdjb250ZW50L3Rlc3QtZnJhZ21lbnRlZC1tYW5pZmVz
dC5qc29uJyk7CisgICAgICAgIGxvYWRlci5vbmxvYWQgPSBtZWRpYURhdGFMb2FkZWQ7CisgICAg
ICAgIGxvYWRlci5vbmVycm9yID0gbWVkaWFEYXRhTG9hZGluZ0ZhaWxlZDsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiBtZWRpYURhdGFMb2FkaW5nRmFpbGVkKCkgeworICAgICAgICBmYWlsVGVzdCgn
TWVkaWEgZGF0YSBsb2FkaW5nIGZhaWxlZCcpOworICAgIH0KKworICAgIGZ1bmN0aW9uIG1lZGlh
RGF0YUxvYWRlZCgpIHsKKyAgICAgICAgc291cmNlID0gbmV3IE1lZGlhU291cmNlKCk7CisgICAg
ICAgIHdhaXRGb3JFdmVudCgnc291cmNlb3BlbicsIHNvdXJjZU9wZW4sIGZhbHNlLCBmYWxzZSwg
c291cmNlKTsKKyAgICAgICAgd2FpdEZvckV2ZW50QW5kRmFpbCgnZXJyb3InKTsKKyAgICAgICAg
cnVuKCd2aWRlby5zcmMgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKHNvdXJjZSknKTsKKyAgICB9CisK
KyAgICBmdW5jdGlvbiBzb3VyY2VPcGVuKCkgeworICAgICAgICBydW4oJ3NvdXJjZS5kdXJhdGlv
biA9IGxvYWRlci5kdXJhdGlvbigpJyk7CisgICAgICAgIHJ1bignc291cmNlQnVmZmVyID0gc291
cmNlLmFkZFNvdXJjZUJ1ZmZlcihsb2FkZXIudHlwZSgpKScpOworICAgICAgICB3YWl0Rm9yRXZl
bnRPbihzb3VyY2VCdWZmZXIsICd1cGRhdGUnLCBzb3VyY2VJbml0aWFsaXplZCwgZmFsc2UsIHRy
dWUpOworICAgICAgICBydW4oJ3NvdXJjZUJ1ZmZlci5hcHBlbmRCdWZmZXIobG9hZGVyLmluaXRT
ZWdtZW50KCkpJyk7CisgICAgfQorCisgICAgZnVuY3Rpb24gc291cmNlSW5pdGlhbGl6ZWQoKSB7
CisgICAgICAgIHdhaXRGb3JFdmVudE9uKHNvdXJjZUJ1ZmZlciwgJ3VwZGF0ZScsIHBhcnRpYWxN
ZWRpYVNlZ21lbnRBcHBlbmRlZDEsIGZhbHNlLCB0cnVlKTsKKyAgICAgICAgY29uc29sZVdyaXRl
KCdBcHBlbmQgYSBwYXJ0aWFsIG1lZGlhIHNlZ21lbnQuJykKKyAgICAgICAgcnVuKCdzb3VyY2VC
dWZmZXIuYXBwZW5kQnVmZmVyKGxvYWRlci5tZWRpYVNlZ21lbnQoMCkuc2xpY2UoMCwgbG9hZGVy
Lm1lZGlhU2VnbWVudCgwKS5ieXRlTGVuZ3RoIC8gMikpJyk7CisgICAgfQorCisgICAgZnVuY3Rp
b24gcGFydGlhbE1lZGlhU2VnbWVudEFwcGVuZGVkMSgpIHsKKyAgICAgICAgY29uc29sZVdyaXRl
KCdBYm9ydCBhbmQgYXBwZW5kIGEgbmV3IGluaXRpYWxpemF0aW9uIHNlZ21lbnQuJykKKyAgICAg
ICAgcnVuKCdzb3VyY2VCdWZmZXIuYWJvcnQoKScpOworICAgICAgICBydW4oJ3NvdXJjZUJ1ZmZl
ci5hcHBlbmRCdWZmZXIobG9hZGVyLmluaXRTZWdtZW50KCkpJyk7CisgICAgICAgIHdhaXRGb3JF
dmVudE9uKHNvdXJjZUJ1ZmZlciwgJ3VwZGF0ZScsIGluaXRTZWdtZW50QXBwZW5kZWQsIGZhbHNl
LCB0cnVlKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBpbml0U2VnbWVudEFwcGVuZGVkKCkgewor
ICAgICAgICB3YWl0Rm9yRXZlbnRPbihzb3VyY2VCdWZmZXIsICd1cGRhdGUnLCBwYXJ0aWFsTWVk
aWFTZWdtZW50QXBwZW5kZWQyLCBmYWxzZSwgdHJ1ZSk7CisgICAgICAgIGNvbnNvbGVXcml0ZSgn
QXBwZW5kIGEgcGFydGlhbCBtZWRpYSBzZWdtZW50LicpCisgICAgICAgIHJ1bignc291cmNlQnVm
ZmVyLmFwcGVuZEJ1ZmZlcihsb2FkZXIubWVkaWFTZWdtZW50KDApLnNsaWNlKDAsIGxvYWRlci5t
ZWRpYVNlZ21lbnQoMCkuYnl0ZUxlbmd0aCAvIDIpKScpOworICAgIH0KKworICAgIGZ1bmN0aW9u
IHBhcnRpYWxNZWRpYVNlZ21lbnRBcHBlbmRlZDIoKSB7CisgICAgICAgIGNvbnNvbGVXcml0ZSgn
QWJvcnQgYW5kIGFwcGVuZCBhIG5ldyBtZWRpYSBzZWdtZW50LicpCisgICAgICAgIHJ1bignc291
cmNlQnVmZmVyLmFib3J0KCknKTsKKyAgICAgICAgcnVuKCdzb3VyY2VCdWZmZXIuYXBwZW5kQnVm
ZmVyKGxvYWRlci5tZWRpYVNlZ21lbnQoMSkpJyk7CisgICAgICAgIHdhaXRGb3JFdmVudE9uKHNv
dXJjZUJ1ZmZlciwgJ3VwZGF0ZScsIGVuZFRlc3QsIGZhbHNlLCB0cnVlKTsKKyAgICB9CisgICAg
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+CisgICAgPGRpdj4K
KyAgICAgICAgVGhpcyB0ZXN0cyB0aGUgYWJpbGl0eSBvZiB0aGUgU291cmNlQnVmZmVyIHRvIHJl
c2V0IHRoZSBwYXJzZXIgYWZ0ZXIgYW4gYWJvcnQoKS4gQSBTb3VyY2VCdWZmZXIgaW4gdGhpcyBz
dGF0ZSBzaG91bGQgYmUgYWJsZSB0byBhY2NlcHQKKyAgICAgICAgYSBuZXcgaW5pdGlhbGl6YXRp
b24gc2VnbWVudCBvciBhIG5ldyBtZWRpYSBzZWdtZW50LgorICAgIDwvZGl2PgorICAgIDx2aWRl
byBjb250cm9scz48L3ZpZGVvPgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290040</attachid>
            <date>2016-09-27 18:01:29 -0700</date>
            <delta_ts>2016-09-28 07:55:10 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-135164-20160927175830.patch</filename>
            <type>text/plain</type>
            <size>26641</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2NDQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGVlN2IxM2ZiZTgzZjBl
MzRkNWI3MGZmODdlYjE4OThjYzhlNzZjNy4uMzFmYWE4YWFhNWU4Zjg0ZDdhNGQzZWRlZTczZDY5
ZjNjYzUyOWNkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDE2LTA5LTI3ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtNU0VdW01hY10gSW4gU291
cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmFib3J0KCksIHN1cHBvcnQgcmVzZXRpbmcgcGFyc2Vy
IHRvIHRoZSBsYXN0IGFwcGVuZGVkIGluaXRpYWxpemF0aW9uIHNlZ21lbnQuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzUxNjQKKworICAgICAgICBS
ZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgVGVzdDogbWVkaWEvbWVkaWEtc291
cmNlL21lZGlhLXNvdXJjZS1hYm9ydC1yZXNldHMtcGFyc2VyLmh0bWwKKworICAgICAgICBVc2Ug
dGhlIC1bQVZTdHJlYW1EYXRhUGFyc2VyIGFwcGVuZFN0cmVhbURhdGE6d2l0aEZsYWdzOl0gdG8g
aW1wbGVtZW50ICJyZXNldHRpbmciIHRoZSBwYXJzZXIuIEluIHRoaXMgY2FzZSwKKyAgICAgICAg
dGhlIHBhcnNlciBpc24ndCBleHBsaWNpdGx5IHJlc2V0IGR1cmluZyByZXNldFBhcnNlclN0YXRl
KCksIGJ1dCByYXRoZXIgYSBmbGFnIGlzIHNldCBzbyB0aGF0IHRoZSBuZXh0IGFwcGVuZAorICAg
ICAgICBzaWduYWxzIGEgZGF0YSBkaXNjb250aW51aXR5LCBhbmQgdGhlIHBhcnNlciBpcyByZXNl
dCBhdCB0aGF0IHBvaW50LgorCisgICAgICAgIEJlY2F1c2UgYSBwcmV2aW91cyBhcHBlbmQgb3Bl
cmF0aW9uIG1heSBiZSBpbi1mbGlnaHQgZHVyaW5nIHRoaXMgYWJvcnQoKSwgY2FyZSBtdXN0IGJl
IHRha2VuIHRvIGludmFsaWRhdGUgYW55CisgICAgICAgIG9wZXJhdGlvbnMgd2hpY2ggbWF5IGhh
dmUgYWxyZWFkeSBzdGFydGVkIG9uIGEgYmFja2dyb3VuZCB0aHJlYWQuIFNvIFNvdXJjZUJ1ZmZl
clByaXZhdGVBVkZPYmpDIHdpbGwgdXNlIGEKKyAgICAgICAgc2VwYXJhdGUgV2Vha1B0ckZhY3Rv
cnkgZm9yIGl0cyBhcHBlbmQgb3BlcmF0aW9ucywgd2lsbCBpbnZhbGlkYXRlIGFueSBvdXRzdGFu
ZGluZyBXZWFrUHRycyBkdXJpbmcgYW4gYWJvcnQoKSwKKyAgICAgICAgYW5kIHdpbGwgYmxvY2sg
dW50aWwgdGhlIHByZXZpb3VzIGFwcGVuZCgpIG9wZXJhdGlvbiBjb21wbGV0ZXMuCisKKyAgICAg
ICAgVGhpcyB3aWxsIHJlcXVpcmUgdGhlIFdlYkFWU3RyZWFtRGF0YVBhcnNlckxpc3RlbmVyIG9i
amVjdCB0byBvY2Nhc2lvbmFsbHkgaGF2ZSBpdCdzIFdlYWtQdHIgcG9pbnRpbmcgYmFjayB0byB0
aGUKKyAgICAgICAgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMgdG8gYmUgcmVzZXQgYWZ0ZXIg
YW4gYWJvcnQoKSwgc28gbWFrZSB0aGF0IGl2YXIgYW4gQHByb3BlcnR5LiBSYXRoZXIgdGhhbiBw
YXNzaW5nIGEKKyAgICAgICAgUmV0YWluUHRyIHRvIGl0c2VsZiBpbiBhbGwgdGhlIGNhbGxiYWNr
cyBpdCBoYW5kbGVzLCB0aGUgV2ViQVZTdHJlYW1EYXRhUGFyc2VyTGlzdGVuZXIgY2FuIGp1c3Qg
cGFzcyBpbiBhIGNvcHkKKyAgICAgICAgb2YgaXRzIG93biBXZWFrUHRyICh3aGljaCBtYXkgYmUg
aW52YWxpZGF0ZWQgZHVyaW5nIGFuIGFib3J0KCkpLgorCisgICAgICAgIEJyZWFrIHRoZSBkaXN0
aW5jdCBvcGVyYXRpb25zIG9mICJhYm9ydCgpIiBhbmQgInJlc2V0UGFyc2VyU3RhdGUoKSIgaW50
byB0aGVpciBvd24gbWV0aG9kcyBpbiBTb3VyY2VCdWZmZXJQcml2YXRlCisgICAgICAgIGFuZCBh
bGwgaXRzIHN1YmNsYXNzZXMuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc291cmNlL1NvdXJj
ZUJ1ZmZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXI6OnJlc2V0UGFyc2Vy
U3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjphYm9ydElmVXBkYXRpbmcp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1NvdXJjZUJ1ZmZlclByaXZhdGUuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQ
cml2YXRlQVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tOgorICAgICAgICAoLVtXZWJBVlN0
cmVhbURhdGFQYXJzZXJMaXN0ZW5lciBzdHJlYW1EYXRhUGFyc2VyOmRpZFBhcnNlU3RyZWFtRGF0
YUFzQXNzZXQ6XSk6CisgICAgICAgICgtW1dlYkFWU3RyZWFtRGF0YVBhcnNlckxpc3RlbmVyIHN0
cmVhbURhdGFQYXJzZXI6ZGlkUGFyc2VTdHJlYW1EYXRhQXNBc3NldDp3aXRoRGlzY29udGludWl0
eTpdKToKKyAgICAgICAgKC1bV2ViQVZTdHJlYW1EYXRhUGFyc2VyTGlzdGVuZXIgc3RyZWFtRGF0
YVBhcnNlcjpkaWRGYWlsVG9QYXJzZVN0cmVhbURhdGFXaXRoRXJyb3I6XSk6CisgICAgICAgICgt
W1dlYkFWU3RyZWFtRGF0YVBhcnNlckxpc3RlbmVyIHN0cmVhbURhdGFQYXJzZXI6ZGlkUHJvdmlk
ZU1lZGlhRGF0YTpmb3JUcmFja0lEOm1lZGlhVHlwZTpmbGFnczpdKToKKyAgICAgICAgKC1bV2Vi
QVZTdHJlYW1EYXRhUGFyc2VyTGlzdGVuZXIgc3RyZWFtRGF0YVBhcnNlcjpkaWRSZWFjaEVuZE9m
VHJhY2tXaXRoVHJhY2tJRDptZWRpYVR5cGU6XSk6CisgICAgICAgICgtW1dlYkFWU3RyZWFtRGF0
YVBhcnNlckxpc3RlbmVyIHN0cmVhbURhdGFQYXJzZXJXaWxsUHJvdmlkZUNvbnRlbnRLZXlSZXF1
ZXN0SW5pdGlhbGl6YXRpb25EYXRhOmZvclRyYWNrSUQ6XSk6CisgICAgICAgICgtW1dlYkFWU3Ry
ZWFtRGF0YVBhcnNlckxpc3RlbmVyIHN0cmVhbURhdGFQYXJzZXI6ZGlkUHJvdmlkZUNvbnRlbnRL
ZXlSZXF1ZXN0SW5pdGlhbGl6YXRpb25EYXRhOmZvclRyYWNrSUQ6XSk6CisgICAgICAgIChXZWJD
b3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9i
akMpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmFwcGVu
ZCk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6YWJvcnQp
OgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OnJlc2V0UGFy
c2VyU3RhdGUpOgorICAgICAgICAoLVtXZWJBVlN0cmVhbURhdGFQYXJzZXJMaXN0ZW5lciBpbml0
V2l0aFBhcnNlcjpwYXJlbnQ6XSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6cmVzZXRQYXJzZXJTdGF0ZSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1NvdXJjZUJ1ZmZlclByaXZh
dGVHU3RyZWFtZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tT
b3VyY2VCdWZmZXJQcml2YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tTb3VyY2VCdWZm
ZXJQcml2YXRlOjpyZXNldFBhcnNlclN0YXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL21l
ZGlhc291cmNlL01vY2tTb3VyY2VCdWZmZXJQcml2YXRlLmg6CisgICAgICAgICogcGxhdGZvcm0v
c3BpL21hYy9BVkZvdW5kYXRpb25TUEkuaDoKKwogMjAxNi0wOS0yMyAgSmVyIE5vYmxlICA8amVy
Lm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMjA2MzAwKTogTGF5b3V0
VGVzdCBtZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLWR1cGxpY2F0ZS1zZWVrZWQuaHRt
bCB0aW1pbmcgb3V0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291
cmNlL1NvdXJjZUJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNl
L1NvdXJjZUJ1ZmZlci5jcHAKaW5kZXggN2FlNjdmYjMzY2I4NTVhYTdlNDc4ZjU2NjAxNjcwY2Vl
NmIyN2RmOC4uY2YyMDA3Mjg5MDI5MTUwN2YzZmI0ZWU1YjRmYzZlNjIwMmVhMmY4MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNw
cApAQCAtMjc4LDcgKzI3OCw3IEBAIHZvaWQgU291cmNlQnVmZmVyOjpyZXNldFBhcnNlclN0YXRl
KCkKICAgICAvLyA3LiBTZXQgYXBwZW5kIHN0YXRlIHRvIFdBSVRJTkdfRk9SX1NFR01FTlQuCiAg
ICAgbV9hcHBlbmRTdGF0ZSA9IFdhaXRpbmdGb3JTZWdtZW50OwogCi0gICAgbV9wcml2YXRlLT5h
Ym9ydCgpOworICAgIG1fcHJpdmF0ZS0+cmVzZXRQYXJzZXJTdGF0ZSgpOwogfQogCiB2b2lkIFNv
dXJjZUJ1ZmZlcjo6YWJvcnQoRXhjZXB0aW9uQ29kZSYgZWMpCkBAIC0zODMsNiArMzgzLDcgQEAg
dm9pZCBTb3VyY2VCdWZmZXI6OmFib3J0SWZVcGRhdGluZygpCiAgICAgLy8gNC4xLiBBYm9ydCB0
aGUgYnVmZmVyIGFwcGVuZCBhbGdvcml0aG0gaWYgaXQgaXMgcnVubmluZy4KICAgICBtX2FwcGVu
ZEJ1ZmZlclRpbWVyLnN0b3AoKTsKICAgICBtX3BlbmRpbmdBcHBlbmREYXRhLmNsZWFyKCk7Cisg
ICAgbV9wcml2YXRlLT5hYm9ydCgpOwogCiAgICAgLy8gNC4yLiBTZXQgdGhlIHVwZGF0aW5nIGF0
dHJpYnV0ZSB0byBmYWxzZS4KICAgICBtX3VwZGF0aW5nID0gZmFsc2U7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VCdWZmZXJQcml2YXRlLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VCdWZmZXJQcml2YXRlLmgKaW5k
ZXggMGExODU2MjZhN2VhMGY5NTA0M2I1MWJhODhhZmMyMzZkOGY5ZmZkZS4uMTViMjU1YmM3ZWEz
ODY4N2FlNjkyMzc5YThiOThjZGI3NzdjNDQ3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvU291cmNlQnVmZmVyUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NvdXJjZUJ1ZmZlclByaXZhdGUuaApAQCAtNTIsNiArNTIs
NyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgYXBwZW5kKGNvbnN0IHVuc2lnbmVkIGNo
YXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBhYm9ydCgp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVzZXRQYXJzZXJTdGF0ZSgpID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgcmVtb3ZlZEZyb21NZWRpYVNvdXJjZSgpID0gMDsKIAogICAgIHZpcnR1YWwgTWVk
aWFQbGF5ZXI6OlJlYWR5U3RhdGUgcmVhZHlTdGF0ZSgpIGNvbnN0ID0gMDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5oCmluZGV4IGMy
MzIxYzFiNjljYjEyYmM2YWVhODUzOGI1OThmYmU0MDMxMjVhNDkuLmJhZjViZmRiZjEzMGZlOTMy
MjhiNWZiMjFjNDNkZWU5NTQwNTY5YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpD
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaApAQCAtMjksNiArMjksNyBAQAogI2lmIEVO
QUJMRShNRURJQV9TT1VSQ0UpICYmIFVTRShBVkZPVU5EQVRJT04pCiAKICNpbmNsdWRlICJTb3Vy
Y2VCdWZmZXJQcml2YXRlLmgiCisjaW5jbHVkZSA8ZGlzcGF0Y2gvZ3JvdXAuaD4KICNpbmNsdWRl
IDxkaXNwYXRjaC9zZW1hcGhvcmUuaD4KICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KICNpbmNsdWRl
IDx3dGYvSGFzaE1hcC5oPgpAQCAtMTE1LDYgKzExNiw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBz
ZXRDbGllbnQoU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudCopIG92ZXJyaWRlOwogICAgIHZvaWQg
YXBwZW5kKGNvbnN0IHVuc2lnbmVkIGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBhYm9ydCgpIG92ZXJyaWRlOworICAgIHZvaWQgcmVzZXRQYXJzZXJTdGF0
ZSgpIG92ZXJyaWRlOwogICAgIHZvaWQgcmVtb3ZlZEZyb21NZWRpYVNvdXJjZSgpIG92ZXJyaWRl
OwogICAgIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdCBvdmVycmlk
ZTsKICAgICB2b2lkIHNldFJlYWR5U3RhdGUoTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUpIG92ZXJy
aWRlOwpAQCAtMTM5LDYgKzE0MSw3IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPFNvdXJjZUJ1ZmZl
clByaXZhdGVBVkZPYmpDRXJyb3JDbGllbnQqPiBtX2Vycm9yQ2xpZW50czsKIAogICAgIFdlYWtQ
dHJGYWN0b3J5PFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDPiBtX3dlYWtGYWN0b3J5OworICAg
IFdlYWtQdHJGYWN0b3J5PFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDPiBtX2FwcGVuZFdlYWtG
YWN0b3J5OwogCiAgICAgUmV0YWluUHRyPEFWU3RyZWFtRGF0YVBhcnNlcj4gbV9wYXJzZXI7CiAg
ICAgUmV0YWluUHRyPEFWQXNzZXQ+IG1fYXNzZXQ7CkBAIC0xNDgsNiArMTUxLDcgQEAgcHJpdmF0
ZToKICAgICBSZXRhaW5QdHI8V2ViQVZTYW1wbGVCdWZmZXJFcnJvckxpc3RlbmVyPiBtX2Vycm9y
TGlzdGVuZXI7CiAgICAgUmV0YWluUHRyPE5TRXJyb3I+IG1faGRjcEVycm9yOwogICAgIE9TT2Jq
ZWN0UHRyPGRpc3BhdGNoX3NlbWFwaG9yZV90PiBtX2hhc1Nlc3Npb25TZW1hcGhvcmU7CisgICAg
T1NPYmplY3RQdHI8ZGlzcGF0Y2hfZ3JvdXBfdD4gbV9pc0FwcGVuZGluZ0dyb3VwOwogCiAgICAg
TWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQyogbV9tZWRpYVNvdXJjZTsKICAgICBTb3VyY2VCdWZm
ZXJQcml2YXRlQ2xpZW50KiBtX2NsaWVudDsKQEAgLTE1Niw2ICsxNjAsNyBAQCBwcml2YXRlOgog
ICAgIEZsb2F0U2l6ZSBtX2NhY2hlZFNpemU7CiAgICAgRmxvYXRTaXplIG1fY3VycmVudFNpemU7
CiAgICAgYm9vbCBtX3BhcnNpbmdTdWNjZWVkZWQ7CisgICAgYm9vbCBtX3BhcnNlclN0YXRlV2Fz
UmVzZXQgeyBmYWxzZSB9OwogICAgIGludCBtX2VuYWJsZWRWaWRlb1RyYWNrSUQ7CiAgICAgaW50
IG1fcHJvdGVjdGVkVHJhY2tJRDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
Qy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tCmluZGV4IGE5N2YxYTdmM2Y5OGM1YzVkN2Ix
ZTg3ZTcxOWMwZDJmYmM2YTQ1MjEuLjE4YmRjMWJhNzFhODg0ZDNjOTVhMGE2OGVmNzFiOTA4N2Fi
YzhhODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclBy
aXZhdGVBVkZPYmpDLm1tCkBAIC0xMzEsNiArMTMxLDcgQEAgQGludGVyZmFjZSBXZWJBVlN0cmVh
bURhdGFQYXJzZXJMaXN0ZW5lciA6IE5TT2JqZWN0PEFWU3RyZWFtRGF0YVBhcnNlck91dHB1dEhh
bmQKICAgICBXZWFrUHRyPFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDPiBfcGFy
ZW50OwogICAgIEFWU3RyZWFtRGF0YVBhcnNlciogX3BhcnNlcjsKIH0KK0Bwcm9wZXJ0eSAoYXNz
aWduKSBXZWFrUHRyPFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDPiBwYXJlbnQ7
CiAtIChpZClpbml0V2l0aFBhcnNlcjooQVZTdHJlYW1EYXRhUGFyc2VyKilwYXJzZXIgcGFyZW50
OihXZWFrUHRyPFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDPilwYXJlbnQ7CiBA
ZW5kCiAKQEAgLTE0OCw2ICsxNDksOCBAQCAtIChpZClpbml0V2l0aFBhcnNlcjooQVZTdHJlYW1E
YXRhUGFyc2VyKilwYXJzZXIgcGFyZW50OihXZWFrUHRyPFdlYkNvcmU6OlNvdXJjZQogICAgIHJl
dHVybiBzZWxmOwogfQogCitAc3ludGhlc2l6ZSBwYXJlbnQ9X3BhcmVudDsKKwogLSAodm9pZClk
ZWFsbG9jCiB7CiAgICAgW19wYXJzZXIgc2V0RGVsZWdhdGU6bmlsXTsKQEAgLTE2NiwxMiArMTY5
LDExIEBAIC0gKHZvaWQpc3RyZWFtRGF0YVBhcnNlcjooQVZTdHJlYW1EYXRhUGFyc2VyICopc3Ry
ZWFtRGF0YVBhcnNlciBkaWRQYXJzZVN0cmVhbURhCiAgICAgVU5VU0VEX1BBUkFNKHN0cmVhbURh
dGFQYXJzZXIpOwogI2VuZGlmCiAgICAgQVNTRVJUKHN0cmVhbURhdGFQYXJzZXIgPT0gX3BhcnNl
cik7Ci0gICAgUmV0YWluUHRyPFdlYkFWU3RyZWFtRGF0YVBhcnNlckxpc3RlbmVyPiBwcm90ZWN0
ZWRTZWxmID0gc2VsZjsKIAogICAgIFJldGFpblB0cjxBVkFzc2V0Kj4gcHJvdGVjdGVkQXNzZXQg
PSBhc3NldDsKLSAgICBjYWxsT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRTZWxmID0gV1RGTW92ZShw
cm90ZWN0ZWRTZWxmKSwgcHJvdGVjdGVkQXNzZXQgPSBXVEZNb3ZlKHByb3RlY3RlZEFzc2V0KV0g
ewotICAgICAgICBpZiAocHJvdGVjdGVkU2VsZi0+X3BhcmVudCkKLSAgICAgICAgICAgIHByb3Rl
Y3RlZFNlbGYtPl9wYXJlbnQtPmRpZFBhcnNlU3RyZWFtRGF0YUFzQXNzZXQocHJvdGVjdGVkQXNz
ZXQuZ2V0KCkpOworICAgIGNhbGxPbk1haW5UaHJlYWQoW3BhcmVudCA9IF9wYXJlbnQsIHByb3Rl
Y3RlZEFzc2V0ID0gV1RGTW92ZShwcm90ZWN0ZWRBc3NldCldIHsKKyAgICAgICAgaWYgKHBhcmVu
dCkKKyAgICAgICAgICAgIHBhcmVudC0+ZGlkUGFyc2VTdHJlYW1EYXRhQXNBc3NldChwcm90ZWN0
ZWRBc3NldC5nZXQoKSk7CiAgICAgfSk7CiB9CiAKQEAgLTE4MiwxMiArMTg0LDExIEBAIC0gKHZv
aWQpc3RyZWFtRGF0YVBhcnNlcjooQVZTdHJlYW1EYXRhUGFyc2VyICopc3RyZWFtRGF0YVBhcnNl
ciBkaWRQYXJzZVN0cmVhbURhCiAgICAgVU5VU0VEX1BBUkFNKHN0cmVhbURhdGFQYXJzZXIpOwog
I2VuZGlmCiAgICAgQVNTRVJUKHN0cmVhbURhdGFQYXJzZXIgPT0gX3BhcnNlcik7Ci0gICAgUmV0
YWluUHRyPFdlYkFWU3RyZWFtRGF0YVBhcnNlckxpc3RlbmVyPiBwcm90ZWN0ZWRTZWxmID0gc2Vs
ZjsKIAogICAgIFJldGFpblB0cjxBVkFzc2V0Kj4gcHJvdGVjdGVkQXNzZXQgPSBhc3NldDsKLSAg
ICBjYWxsT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRTZWxmID0gV1RGTW92ZShwcm90ZWN0ZWRTZWxm
KSwgcHJvdGVjdGVkQXNzZXQgPSBXVEZNb3ZlKHByb3RlY3RlZEFzc2V0KV0gewotICAgICAgICBp
ZiAocHJvdGVjdGVkU2VsZi0+X3BhcmVudCkKLSAgICAgICAgICAgIHByb3RlY3RlZFNlbGYtPl9w
YXJlbnQtPmRpZFBhcnNlU3RyZWFtRGF0YUFzQXNzZXQocHJvdGVjdGVkQXNzZXQuZ2V0KCkpOwor
ICAgIGNhbGxPbk1haW5UaHJlYWQoW3BhcmVudCA9IF9wYXJlbnQsIHByb3RlY3RlZEFzc2V0ID0g
V1RGTW92ZShwcm90ZWN0ZWRBc3NldCldIHsKKyAgICAgICAgaWYgKHBhcmVudCkKKyAgICAgICAg
ICAgIHBhcmVudC0+ZGlkUGFyc2VTdHJlYW1EYXRhQXNBc3NldChwcm90ZWN0ZWRBc3NldC5nZXQo
KSk7CiAgICAgfSk7CiB9CiAKQEAgLTE5NywxMiArMTk4LDExIEBAIC0gKHZvaWQpc3RyZWFtRGF0
YVBhcnNlcjooQVZTdHJlYW1EYXRhUGFyc2VyICopc3RyZWFtRGF0YVBhcnNlciBkaWRGYWlsVG9Q
YXJzZVN0CiAgICAgVU5VU0VEX1BBUkFNKHN0cmVhbURhdGFQYXJzZXIpOwogI2VuZGlmCiAgICAg
QVNTRVJUKHN0cmVhbURhdGFQYXJzZXIgPT0gX3BhcnNlcik7Ci0gICAgUmV0YWluUHRyPFdlYkFW
U3RyZWFtRGF0YVBhcnNlckxpc3RlbmVyPiBwcm90ZWN0ZWRTZWxmID0gc2VsZjsKIAogICAgIFJl
dGFpblB0cjxOU0Vycm9yPiBwcm90ZWN0ZWRFcnJvciA9IGVycm9yOwotICAgIGNhbGxPbk1haW5U
aHJlYWQoW3Byb3RlY3RlZFNlbGYgPSBXVEZNb3ZlKHByb3RlY3RlZFNlbGYpLCBwcm90ZWN0ZWRF
cnJvciA9IFdURk1vdmUocHJvdGVjdGVkRXJyb3IpXSB7Ci0gICAgICAgIGlmIChwcm90ZWN0ZWRT
ZWxmLT5fcGFyZW50KQotICAgICAgICAgICAgcHJvdGVjdGVkU2VsZi0+X3BhcmVudC0+ZGlkRmFp
bFRvUGFyc2VTdHJlYW1EYXRhV2l0aEVycm9yKHByb3RlY3RlZEVycm9yLmdldCgpKTsKKyAgICBj
YWxsT25NYWluVGhyZWFkKFtwYXJlbnQgPSBfcGFyZW50LCBwcm90ZWN0ZWRFcnJvciA9IFdURk1v
dmUocHJvdGVjdGVkRXJyb3IpXSB7CisgICAgICAgIGlmIChwYXJlbnQpCisgICAgICAgICAgICBw
YXJlbnQtPmRpZEZhaWxUb1BhcnNlU3RyZWFtRGF0YVdpdGhFcnJvcihwcm90ZWN0ZWRFcnJvci5n
ZXQoKSk7CiAgICAgfSk7CiB9CiAKQEAgLTIxMiwxMyArMjEyLDEyIEBAIC0gKHZvaWQpc3RyZWFt
RGF0YVBhcnNlcjooQVZTdHJlYW1EYXRhUGFyc2VyICopc3RyZWFtRGF0YVBhcnNlciBkaWRQcm92
aWRlTWVkaWFECiAgICAgVU5VU0VEX1BBUkFNKHN0cmVhbURhdGFQYXJzZXIpOwogI2VuZGlmCiAg
ICAgQVNTRVJUKHN0cmVhbURhdGFQYXJzZXIgPT0gX3BhcnNlcik7Ci0gICAgUmV0YWluUHRyPFdl
YkFWU3RyZWFtRGF0YVBhcnNlckxpc3RlbmVyPiBwcm90ZWN0ZWRTZWxmID0gc2VsZjsKIAogICAg
IFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gcHJvdGVjdGVkU2FtcGxlID0gc2FtcGxlOwog
ICAgIFN0cmluZyBtZWRpYVR5cGUgPSBuc01lZGlhVHlwZTsKLSAgICBjYWxsT25NYWluVGhyZWFk
KFtwcm90ZWN0ZWRTZWxmID0gV1RGTW92ZShwcm90ZWN0ZWRTZWxmKSwgcHJvdGVjdGVkU2FtcGxl
ID0gV1RGTW92ZShwcm90ZWN0ZWRTYW1wbGUpLCB0cmFja0lELCBtZWRpYVR5cGUsIGZsYWdzXSB7
Ci0gICAgICAgIGlmIChwcm90ZWN0ZWRTZWxmLT5fcGFyZW50KQotICAgICAgICAgICAgcHJvdGVj
dGVkU2VsZi0+X3BhcmVudC0+ZGlkUHJvdmlkZU1lZGlhRGF0YUZvclRyYWNrSUQodHJhY2tJRCwg
cHJvdGVjdGVkU2FtcGxlLmdldCgpLCBtZWRpYVR5cGUsIGZsYWdzKTsKKyAgICBjYWxsT25NYWlu
VGhyZWFkKFtwYXJlbnQgPSBfcGFyZW50LCBwcm90ZWN0ZWRTYW1wbGUgPSBXVEZNb3ZlKHByb3Rl
Y3RlZFNhbXBsZSksIHRyYWNrSUQsIG1lZGlhVHlwZSwgZmxhZ3NdIHsKKyAgICAgICAgaWYgKHBh
cmVudCkKKyAgICAgICAgICAgIHBhcmVudC0+ZGlkUHJvdmlkZU1lZGlhRGF0YUZvclRyYWNrSUQo
dHJhY2tJRCwgcHJvdGVjdGVkU2FtcGxlLmdldCgpLCBtZWRpYVR5cGUsIGZsYWdzKTsKICAgICB9
KTsKIH0KIApAQCAtMjI4LDEyICsyMjcsMTEgQEAgLSAodm9pZClzdHJlYW1EYXRhUGFyc2VyOihB
VlN0cmVhbURhdGFQYXJzZXIgKilzdHJlYW1EYXRhUGFyc2VyIGRpZFJlYWNoRW5kT2ZUcmEKICAg
ICBVTlVTRURfUEFSQU0oc3RyZWFtRGF0YVBhcnNlcik7CiAjZW5kaWYKICAgICBBU1NFUlQoc3Ry
ZWFtRGF0YVBhcnNlciA9PSBfcGFyc2VyKTsKLSAgICBSZXRhaW5QdHI8V2ViQVZTdHJlYW1EYXRh
UGFyc2VyTGlzdGVuZXI+IHByb3RlY3RlZFNlbGYgPSBzZWxmOwogCiAgICAgU3RyaW5nIG1lZGlh
VHlwZSA9IG5zTWVkaWFUeXBlOwotICAgIGNhbGxPbk1haW5UaHJlYWQoW3Byb3RlY3RlZFNlbGYg
PSBXVEZNb3ZlKHByb3RlY3RlZFNlbGYpLCB0cmFja0lELCBtZWRpYVR5cGVdIHsKLSAgICAgICAg
aWYgKHByb3RlY3RlZFNlbGYtPl9wYXJlbnQpCi0gICAgICAgICAgICBwcm90ZWN0ZWRTZWxmLT5f
cGFyZW50LT5kaWRSZWFjaEVuZE9mVHJhY2tXaXRoVHJhY2tJRCh0cmFja0lELCBtZWRpYVR5cGUp
OworICAgIGNhbGxPbk1haW5UaHJlYWQoW3BhcmVudCA9IF9wYXJlbnQsIHRyYWNrSUQsIG1lZGlh
VHlwZV0geworICAgICAgICBpZiAocGFyZW50KQorICAgICAgICAgICAgcGFyZW50LT5kaWRSZWFj
aEVuZE9mVHJhY2tXaXRoVHJhY2tJRCh0cmFja0lELCBtZWRpYVR5cGUpOwogICAgIH0pOwogfQog
CkBAIC0yNDYsMTAgKzI0NCw5IEBAIC0gKHZvaWQpc3RyZWFtRGF0YVBhcnNlcldpbGxQcm92aWRl
Q29udGVudEtleVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGE6KEFWU3RyZWFtCiAKICAgICAvLyBX
ZSBtdXN0IGNhbGwgc3luY2hyb25vdXNseSB0byB0aGUgbWFpbiB0aHJlYWQsIGFzIHRoZSBBVlN0
cmVhbVNlc3Npb24gbXVzdCBiZSBhc3NvY2lhdGVkCiAgICAgLy8gd2l0aCB0aGUgc3RyZWFtRGF0
YVBhcnNlciBiZWZvcmUgdGhlIGRlbGVnYXRlIG1ldGhvZCByZXR1cm5zLgotICAgIFJldGFpblB0
cjxXZWJBVlN0cmVhbURhdGFQYXJzZXJMaXN0ZW5lcj4gc3Ryb25nU2VsZiA9IHNlbGY7Ci0gICAg
ZGlzcGF0Y2hfc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBbc3Ryb25nU2VsZiwgdHJh
Y2tJRF0oKSB7Ci0gICAgICAgIGlmIChzdHJvbmdTZWxmLT5fcGFyZW50KQotICAgICAgICAgICAg
c3Ryb25nU2VsZi0+X3BhcmVudC0+d2lsbFByb3ZpZGVDb250ZW50S2V5UmVxdWVzdEluaXRpYWxp
emF0aW9uRGF0YUZvclRyYWNrSUQodHJhY2tJRCk7CisgICAgZGlzcGF0Y2hfc3luYyhkaXNwYXRj
aF9nZXRfbWFpbl9xdWV1ZSgpLCBbcGFyZW50ID0gX3BhcmVudCwgdHJhY2tJRF0oKSB7CisgICAg
ICAgIGlmIChwYXJlbnQpCisgICAgICAgICAgICBwYXJlbnQtPndpbGxQcm92aWRlQ29udGVudEtl
eVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGFGb3JUcmFja0lEKHRyYWNrSUQpOwogICAgIH0pOwog
fQogCkBAIC0yNTksMTIgKzI1NiwxMSBAQCAtICh2b2lkKXN0cmVhbURhdGFQYXJzZXI6KEFWU3Ry
ZWFtRGF0YVBhcnNlciAqKXN0cmVhbURhdGFQYXJzZXIgZGlkUHJvdmlkZUNvbnRlbgogICAgIFVO
VVNFRF9QQVJBTShzdHJlYW1EYXRhUGFyc2VyKTsKICNlbmRpZgogICAgIEFTU0VSVChzdHJlYW1E
YXRhUGFyc2VyID09IF9wYXJzZXIpOwotICAgIFJldGFpblB0cjxXZWJBVlN0cmVhbURhdGFQYXJz
ZXJMaXN0ZW5lcj4gcHJvdGVjdGVkU2VsZiA9IHNlbGY7CiAKICAgICBPU09iamVjdFB0cjxkaXNw
YXRjaF9zZW1hcGhvcmVfdD4gaGFzU2Vzc2lvblNlbWFwaG9yZSA9IGFkb3B0T1NPYmplY3QoZGlz
cGF0Y2hfc2VtYXBob3JlX2NyZWF0ZSgwKSk7Ci0gICAgY2FsbE9uTWFpblRocmVhZChbcHJvdGVj
dGVkU2VsZiA9IFdURk1vdmUocHJvdGVjdGVkU2VsZiksIHByb3RlY3RlZEluaXREYXRhID0gUmV0
YWluUHRyPE5TRGF0YT4oaW5pdERhdGEpLCB0cmFja0lELCBoYXNTZXNzaW9uU2VtYXBob3JlXSB7
Ci0gICAgICAgIGlmIChwcm90ZWN0ZWRTZWxmLT5fcGFyZW50KQotICAgICAgICAgICAgcHJvdGVj
dGVkU2VsZi0+X3BhcmVudC0+ZGlkUHJvdmlkZUNvbnRlbnRLZXlSZXF1ZXN0SW5pdGlhbGl6YXRp
b25EYXRhRm9yVHJhY2tJRChwcm90ZWN0ZWRJbml0RGF0YS5nZXQoKSwgdHJhY2tJRCwgaGFzU2Vz
c2lvblNlbWFwaG9yZSk7CisgICAgY2FsbE9uTWFpblRocmVhZChbcGFyZW50ID0gX3BhcmVudCwg
cHJvdGVjdGVkSW5pdERhdGEgPSBSZXRhaW5QdHI8TlNEYXRhPihpbml0RGF0YSksIHRyYWNrSUQs
IGhhc1Nlc3Npb25TZW1hcGhvcmVdIHsKKyAgICAgICAgaWYgKHBhcmVudCkKKyAgICAgICAgICAg
IHBhcmVudC0+ZGlkUHJvdmlkZUNvbnRlbnRLZXlSZXF1ZXN0SW5pdGlhbGl6YXRpb25EYXRhRm9y
VHJhY2tJRChwcm90ZWN0ZWRJbml0RGF0YS5nZXQoKSwgdHJhY2tJRCwgaGFzU2Vzc2lvblNlbWFw
aG9yZSk7CiAgICAgfSk7CiAgICAgZGlzcGF0Y2hfc2VtYXBob3JlX3dhaXQoaGFzU2Vzc2lvblNl
bWFwaG9yZS5nZXQoKSwgRElTUEFUQ0hfVElNRV9GT1JFVkVSKTsKIH0KQEAgLTQ2MSw5ICs0NTcs
MTEgQEAgUmVmUHRyPFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDPiBTb3VyY2VCdWZmZXJQcml2
YXRlQVZGT2JqQzo6Y3JlYXRlKE1lZGlhU291cmMKIAogU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9i
akM6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDKE1lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMq
IHBhcmVudCkKICAgICA6IG1fd2Vha0ZhY3RvcnkodGhpcykKKyAgICAsIG1fYXBwZW5kV2Vha0Zh
Y3RvcnkodGhpcykKICAgICAsIG1fcGFyc2VyKGFkb3B0TlMoW2FsbG9jQVZTdHJlYW1EYXRhUGFy
c2VySW5zdGFuY2UoKSBpbml0XSkpCiAgICAgLCBtX2RlbGVnYXRlKGFkb3B0TlMoW1tXZWJBVlN0
cmVhbURhdGFQYXJzZXJMaXN0ZW5lciBhbGxvY10gaW5pdFdpdGhQYXJzZXI6bV9wYXJzZXIuZ2V0
KCkgcGFyZW50OmNyZWF0ZVdlYWtQdHIoKV0pKQogICAgICwgbV9lcnJvckxpc3RlbmVyKGFkb3B0
TlMoW1tXZWJBVlNhbXBsZUJ1ZmZlckVycm9yTGlzdGVuZXIgYWxsb2NdIGluaXRXaXRoUGFyZW50
OnRoaXNdKSkKKyAgICAsIG1faXNBcHBlbmRpbmdHcm91cChhZG9wdE9TT2JqZWN0KGRpc3BhdGNo
X2dyb3VwX2NyZWF0ZSgpKSkKICAgICAsIG1fbWVkaWFTb3VyY2UocGFyZW50KQogICAgICwgbV9j
bGllbnQoMCkKICAgICAsIG1fcGFyc2luZ1N1Y2NlZWRlZCh0cnVlKQpAQCAtNjQxLDIxICs2Mzks
MjYgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6YXBwZW5kKGNvbnN0IHVuc2ln
bmVkIGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmcKICAgICBMT0coTWVkaWFTb3VyY2UsICJTb3Vy
Y2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6YXBwZW5kKCVwKSAtIGRhdGE6JXAsIGxlbmd0aDolZCIs
IHRoaXMsIGRhdGEsIGxlbmd0aCk7CiAKICAgICBSZXRhaW5QdHI8TlNEYXRhPiBuc0RhdGEgPSBh
ZG9wdE5TKFtbTlNEYXRhIGFsbG9jXSBpbml0V2l0aEJ5dGVzOmRhdGEgbGVuZ3RoOmxlbmd0aF0p
OwotICAgIFdlYWtQdHI8U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM+IHdlYWtUaGlzID0gY3Jl
YXRlV2Vha1B0cigpOworICAgIFdlYWtQdHI8U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM+IHdl
YWtUaGlzID0gbV9hcHBlbmRXZWFrRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7CiAgICAgUmV0YWlu
UHRyPEFWU3RyZWFtRGF0YVBhcnNlcj4gcGFyc2VyID0gbV9wYXJzZXI7CiAgICAgUmV0YWluUHRy
PFdlYkFWU3RyZWFtRGF0YVBhcnNlckxpc3RlbmVyPiBkZWxlZ2F0ZSA9IG1fZGVsZWdhdGU7CiAK
ICAgICBtX3BhcnNpbmdTdWNjZWVkZWQgPSB0cnVlOworICAgIGRpc3BhdGNoX2dyb3VwX2VudGVy
KG1faXNBcHBlbmRpbmdHcm91cC5nZXQoKSk7CiAKLSAgICBkaXNwYXRjaF9hc3luYyhnbG9iYWxE
YXRhUGFyc2VyUXVldWUoKSwgW25zRGF0YSwgd2Vha1RoaXMsIHBhcnNlciwgZGVsZWdhdGVdIHsK
LQotICAgICAgICBbcGFyc2VyIGFwcGVuZFN0cmVhbURhdGE6bnNEYXRhLmdldCgpXTsKKyAgICBk
aXNwYXRjaF9hc3luYyhnbG9iYWxEYXRhUGFyc2VyUXVldWUoKSwgW25zRGF0YSwgd2Vha1RoaXMs
IHBhcnNlciwgZGVsZWdhdGUsIGlzQXBwZW5kaW5nR3JvdXAgPSBtX2lzQXBwZW5kaW5nR3JvdXAs
IHBhcnNlclN0YXRlV2FzUmVzZXQgPSBtX3BhcnNlclN0YXRlV2FzUmVzZXRdIHsKKyAgICAgICAg
aWYgKHBhcnNlclN0YXRlV2FzUmVzZXQpCisgICAgICAgICAgICBbcGFyc2VyIGFwcGVuZFN0cmVh
bURhdGE6bnNEYXRhLmdldCgpIHdpdGhGbGFnczpBVlN0cmVhbURhdGFQYXJzZXJTdHJlYW1EYXRh
RGlzY29udGludWl0eV07CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIFtwYXJzZXIgYXBwZW5k
U3RyZWFtRGF0YTpuc0RhdGEuZ2V0KCldOwogCiAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3dl
YWtUaGlzXSB7CiAgICAgICAgICAgICBpZiAod2Vha1RoaXMpCiAgICAgICAgICAgICAgICAgd2Vh
a1RoaXMtPmFwcGVuZENvbXBsZXRlZCgpOwogICAgICAgICB9KTsKKyAgICAgICAgZGlzcGF0Y2hf
Z3JvdXBfbGVhdmUoaXNBcHBlbmRpbmdHcm91cC5nZXQoKSk7CiAgICAgfSk7CisgICAgbV9wYXJz
ZXJTdGF0ZVdhc1Jlc2V0ID0gZmFsc2U7CiB9CiAKIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFW
Rk9iakM6OmFwcGVuZENvbXBsZXRlZCgpCkBAIC02NjksMTIgKzY3MiwxOSBAQCB2b2lkIFNvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjphcHBlbmRDb21wbGV0ZWQoKQogCiB2b2lkIFNvdXJjZUJ1
ZmZlclByaXZhdGVBVkZPYmpDOjphYm9ydCgpCiB7Ci0gICAgLy8gVGhlIHBhcnNlciBkb2VzIG5v
dCBoYXZlIGEgbWVjaGFuaXNtIGZvciByZXNldHRpbmcgdG8gYSBjbGVhbiBzdGF0ZSwgc28gZGVz
dHJveSBhbmQgcmUtY3JlYXRlIGl0LgotICAgIC8vIEZJWE1FKDEzNTE2NCk6IFN1cHBvcnQgcmVz
ZXR0aW5nIHBhcnNlciB0byB0aGUgbGFzdCBhcHBlbmRlZCBpbml0aWFsaXphdGlvbiBzZWdtZW50
LgotICAgIGRlc3Ryb3lQYXJzZXIoKTsKKyAgICAvLyBUaGUgcGFyc2luZyBxdWV1ZSBtYXkgYmUg
YmxvY2tlZCB3YWl0aW5nIGZvciB0aGUgbWFpbiB0aHJlYWQgdG8gcHJvdmlkZSBpdCBhIEFWU3Ry
ZWFtU2Vzc2lvbi4gV2UKKyAgICAvLyB3ZXJlIGFza2VkIHRvIGFib3J0LCBhbmQgdGhhdCBjYW5j
ZWxzIGFsbCBvdXRzdGFuZGluZyBhcHBlbmQgb3BlcmF0aW9ucy4gV2l0aG91dCBjYW5jZWxsaW5n
IHRoaXMKKyAgICAvLyBzZW1hcGhvcmUsIHRoZSBtX2lzQXBwZW5kaW5nR3JvdXAgd2FpdCBvcGVy
YXRpb24gd2lsbCBkZWFkbG9jay4KKyAgICBpZiAobV9oYXNTZXNzaW9uU2VtYXBob3JlKQorICAg
ICAgICBkaXNwYXRjaF9zZW1hcGhvcmVfc2lnbmFsKG1faGFzU2Vzc2lvblNlbWFwaG9yZS5nZXQo
KSk7CisgICAgZGlzcGF0Y2hfZ3JvdXBfd2FpdChtX2lzQXBwZW5kaW5nR3JvdXAuZ2V0KCksIERJ
U1BBVENIX1RJTUVfRk9SRVZFUik7CisgICAgbV9hcHBlbmRXZWFrRmFjdG9yeS5yZXZva2VBbGwo
KTsKKyAgICBtX2RlbGVnYXRlLmdldCgpLnBhcmVudCA9IG1fYXBwZW5kV2Vha0ZhY3RvcnkuY3Jl
YXRlV2Vha1B0cigpOworfQogCi0gICAgbV9wYXJzZXIgPSBhZG9wdE5TKFthbGxvY0FWU3RyZWFt
RGF0YVBhcnNlckluc3RhbmNlKCkgaW5pdF0pOwotICAgIG1fZGVsZWdhdGUgPSBhZG9wdE5TKFtb
V2ViQVZTdHJlYW1EYXRhUGFyc2VyTGlzdGVuZXIgYWxsb2NdIGluaXRXaXRoUGFyc2VyOm1fcGFy
c2VyLmdldCgpIHBhcmVudDpjcmVhdGVXZWFrUHRyKCldKTsKK3ZvaWQgU291cmNlQnVmZmVyUHJp
dmF0ZUFWRk9iakM6OnJlc2V0UGFyc2VyU3RhdGUoKQoreworICAgIG1fcGFyc2VyU3RhdGVXYXNS
ZXNldCA9IHRydWU7CiB9CiAKIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmRlc3Ry
b3lQYXJzZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFt
ZXIuY3BwCmluZGV4IGVkMDA0YTM3YTBkMTU3YTQ1OGMxZDE0MDgwOWRiMDgzOGI2YjdkZGEuLmM5
ZGQ3ZmQyNDY2NWUwNWRhYzQyNDM3NmVjZTQ3NGUyMzRiNjljZTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9Tb3VyY2VCdWZmZXJQcml2YXRl
R1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTc1LDYgKzc1LDExIEBA
IHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6YWJvcnQoKQogICAgIG5vdEltcGxl
bWVudGVkKCk7CiB9CiAKK3ZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6cmVzZXRQ
YXJzZXJTdGF0ZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwogdm9pZCBTb3VyY2VC
dWZmZXJQcml2YXRlR1N0cmVhbWVyOjpyZW1vdmVkRnJvbU1lZGlhU291cmNlKCkKIHsKICAgICBt
X2NsaWVudC0+cmVtb3ZlZEZyb21NZWRpYVNvdXJjZSh0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9Tb3VyY2VCdWZmZXJQcml2YXRl
R1N0cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5oCmluZGV4IGQ0ZWNlZGViYzMxNjc4YmY4YmI0
Y2ZiNTkxMTdhYmQzZWJhZmE0MmUuLjI4MmY4NmM3NmVjMGVlOTM3NjMyYTgwNjVmNDMzYjg2NGM0
ZGJmYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIu
aApAQCAtNTAsNiArNTAsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgYXBwZW5kKGNv
bnN0IHVuc2lnbmVkIGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCk7CiAgICAgdmlydHVhbCB2
b2lkIGFib3J0KCk7CisgICAgdmlydHVhbCB2b2lkIHJlc2V0UGFyc2VyU3RhdGUoKTsKICAgICB2
aXJ0dWFsIHZvaWQgcmVtb3ZlZEZyb21NZWRpYVNvdXJjZSgpOwogCiAgICAgdmlydHVhbCBNZWRp
YVBsYXllcjo6UmVhZHlTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tTb3VyY2VCdWZmZXJQcml2
YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja1Nv
dXJjZUJ1ZmZlclByaXZhdGUuY3BwCmluZGV4IDYyM2FmYjM4ZTcxZDllYWViNWIzZjBlOWQzYWJj
NmNmNzYyOWFjMGQuLmU0MmYzY2FkNzdiZTYwYTQ3Yjk2ODdiZGRjNGUxNTEwZjgxNmUxNTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja1Nv
dXJjZUJ1ZmZlclByaXZhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2sv
bWVkaWFzb3VyY2UvTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGUuY3BwCkBAIC0yMDMsNiArMjAzLDEw
IEBAIHZvaWQgTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGU6OmFib3J0KCkKIHsKIH0KIAordm9pZCBN
b2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6cmVzZXRQYXJzZXJTdGF0ZSgpCit7Cit9CisKIHZvaWQg
TW9ja1NvdXJjZUJ1ZmZlclByaXZhdGU6OnJlbW92ZWRGcm9tTWVkaWFTb3VyY2UoKQogewogICAg
IGlmIChtX21lZGlhU291cmNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bW9jay9tZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVmZmVyUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVmZmVyUHJpdmF0ZS5oCmlu
ZGV4IGFlMGM2NmMzNWFhYjdkZjk1OTc5N2Y0YzkzNGFjMzE2NDMwOTU5N2UuLjgzODA5NjExNDk0
MmQ5NmZiOWU1ZGQ1NmJjZWFlOWYwYzI5ZWFmN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tTb3VyY2VCdWZm
ZXJQcml2YXRlLmgKQEAgLTYzLDYgKzYzLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldENsaWVu
dChTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50Kikgb3ZlcnJpZGU7CiAgICAgdm9pZCBhcHBlbmQo
Y29uc3QgdW5zaWduZWQgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoKSBvdmVycmlkZTsKICAg
ICB2b2lkIGFib3J0KCkgb3ZlcnJpZGU7CisgICAgdm9pZCByZXNldFBhcnNlclN0YXRlKCkgb3Zl
cnJpZGU7CiAgICAgdm9pZCByZW1vdmVkRnJvbU1lZGlhU291cmNlKCkgb3ZlcnJpZGU7CiAgICAg
TWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgcmVhZHlTdGF0ZSgpIGNvbnN0IG92ZXJyaWRlOwogICAg
IHZvaWQgc2V0UmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSkgb3ZlcnJpZGU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvbWFjL0FWRm91bmRhdGlvblNQ
SS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL21hYy9BVkZvdW5kYXRpb25TUEkuaApp
bmRleCA3MmUxNDBkZTliMGI4MGFlODdmODJkODAxNWY1Y2Y3ZjJhODg3NTVlLi5lYWJhODE2ZjY5
ZGM2MDM0MTZmYTE4N2YzZjQwN2VhYzIyYzYxNWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9zcGkvbWFjL0FWRm91bmRhdGlvblNQSS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3NwaS9tYWMvQVZGb3VuZGF0aW9uU1BJLmgKQEAgLTExNiw5ICsxMTYsMTQgQEAg
dHlwZWRlZiBOU19FTlVNKE5TVUludGVnZXIsIEFWU3RyZWFtRGF0YVBhcnNlck91dHB1dE1lZGlh
RGF0YUZsYWdzKSB7CiAgICAgQVZTdHJlYW1EYXRhUGFyc2VyT3V0cHV0TWVkaWFEYXRhUmVzZXJ2
ZWQgPSAxIDw8IDAKIH07CiAKK3R5cGVkZWYgTlNfRU5VTShOU1VJbnRlZ2VyLCBBVlN0cmVhbURh
dGFQYXJzZXJTdHJlYW1EYXRhRmxhZ3MpIHsKKyAgICBBVlN0cmVhbURhdGFQYXJzZXJTdHJlYW1E
YXRhRGlzY29udGludWl0eSA9IDEgPDwgMCwKK307CisKIEBpbnRlcmZhY2UgQVZTdHJlYW1EYXRh
UGFyc2VyIDogTlNPYmplY3QKIC0gKHZvaWQpc2V0RGVsZWdhdGU6KG51bGxhYmxlIGlkPEFWU3Ry
ZWFtRGF0YVBhcnNlck91dHB1dEhhbmRsaW5nPilkZWxlZ2F0ZTsKIC0gKHZvaWQpYXBwZW5kU3Ry
ZWFtRGF0YTooTlNEYXRhICopZGF0YTsKKy0gKHZvaWQpYXBwZW5kU3RyZWFtRGF0YTooTlNEYXRh
ICopZGF0YSB3aXRoRmxhZ3M6KEFWU3RyZWFtRGF0YVBhcnNlclN0cmVhbURhdGFGbGFncylmbGFn
czsKIC0gKHZvaWQpc2V0U2hvdWxkUHJvdmlkZU1lZGlhRGF0YTooQk9PTClzaG91bGRQcm92aWRl
TWVkaWFEYXRhIGZvclRyYWNrSUQ6KENNUGVyc2lzdGVudFRyYWNrSUQpdHJhY2tJRDsKIC0gKEJP
T0wpc2hvdWxkUHJvdmlkZU1lZGlhRGF0YUZvclRyYWNrSUQ6KENNUGVyc2lzdGVudFRyYWNrSUQp
dHJhY2tJRDsKIC0gKHZvaWQpcHJvdmlkZVBlbmRpbmdNZWRpYURhdGE7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMWNlODll
Yjk4YmE4OWFhM2ViMzhjMzFhODVkZTI5MGNiNDM0ZmMwNy4uOTVlNTg4MWU3OWE2YjY4ZmMyZGVm
NTg0MDgyMGI0OTA5ZDhhOTA0ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE2LTA5LTI3ICBK
ZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtNU0VdW01hY10gSW4g
U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmFib3J0KCksIHN1cHBvcnQgcmVzZXRpbmcgcGFy
c2VyIHRvIHRoZSBsYXN0IGFwcGVuZGVkIGluaXRpYWxpemF0aW9uIHNlZ21lbnQuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzUxNjQKKworICAgICAg
ICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgKiBtZWRpYS9tZWRpYS1zb3Vy
Y2UvbWVkaWEtc291cmNlLWFib3J0LXJlc2V0cy1wYXJzZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBtZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLWFib3J0LXJlc2V0cy1w
YXJzZXIuaHRtbDogQWRkZWQuCisKIDIwMTYtMDktMjMgIEplciBOb2JsZSAgPGplci5ub2JsZUBh
cHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjIwNjMwMCk6IExheW91dFRlc3QgbWVk
aWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1kdXBsaWNhdGUtc2Vla2VkLmh0bWwgdGltaW5n
IG91dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNv
dXJjZS1hYm9ydC1yZXNldHMtcGFyc2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlh
L21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtYWJvcnQtcmVzZXRzLXBhcnNlci1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYzdhNTM5MzY2YjRhMDE3MmNkYzQyMTc3MjRjYjAyZjk2ZTdmZTMwYQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1z
b3VyY2UtYWJvcnQtcmVzZXRzLXBhcnNlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyNCBAQAor
VGhpcyB0ZXN0cyB0aGUgYWJpbGl0eSBvZiB0aGUgU291cmNlQnVmZmVyIHRvIHJlc2V0IHRoZSBw
YXJzZXIgYWZ0ZXIgYW4gYWJvcnQoKS4gQSBTb3VyY2VCdWZmZXIgaW4gdGhpcyBzdGF0ZSBzaG91
bGQgYmUgYWJsZSB0byBhY2NlcHQgYSBuZXcgaW5pdGlhbGl6YXRpb24gc2VnbWVudCBvciBhIG5l
dyBtZWRpYSBzZWdtZW50LgorCitSVU4odmlkZW8uc3JjID0gVVJMLmNyZWF0ZU9iamVjdFVSTChz
b3VyY2UpKQorRVZFTlQoc291cmNlb3BlbikKK1JVTihzb3VyY2UuZHVyYXRpb24gPSBsb2FkZXIu
ZHVyYXRpb24oKSkKK1JVTihzb3VyY2VCdWZmZXIgPSBzb3VyY2UuYWRkU291cmNlQnVmZmVyKGxv
YWRlci50eXBlKCkpKQorUlVOKHNvdXJjZUJ1ZmZlci5hcHBlbmRCdWZmZXIobG9hZGVyLmluaXRT
ZWdtZW50KCkpKQorRVZFTlQodXBkYXRlKQorQXBwZW5kIGEgcGFydGlhbCBtZWRpYSBzZWdtZW50
LgorUlVOKHNvdXJjZUJ1ZmZlci5hcHBlbmRCdWZmZXIobG9hZGVyLm1lZGlhU2VnbWVudCgwKS5z
bGljZSgwLCBsb2FkZXIubWVkaWFTZWdtZW50KDApLmJ5dGVMZW5ndGggLyAyKSkpCitFVkVOVCh1
cGRhdGUpCitBYm9ydCBhbmQgYXBwZW5kIGEgbmV3IGluaXRpYWxpemF0aW9uIHNlZ21lbnQuCitS
VU4oc291cmNlQnVmZmVyLmFib3J0KCkpCitSVU4oc291cmNlQnVmZmVyLmFwcGVuZEJ1ZmZlcihs
b2FkZXIuaW5pdFNlZ21lbnQoKSkpCitFVkVOVCh1cGRhdGUpCitBcHBlbmQgYSBwYXJ0aWFsIG1l
ZGlhIHNlZ21lbnQuCitSVU4oc291cmNlQnVmZmVyLmFwcGVuZEJ1ZmZlcihsb2FkZXIubWVkaWFT
ZWdtZW50KDApLnNsaWNlKDAsIGxvYWRlci5tZWRpYVNlZ21lbnQoMCkuYnl0ZUxlbmd0aCAvIDIp
KSkKK0VWRU5UKHVwZGF0ZSkKK0Fib3J0IGFuZCBhcHBlbmQgYSBuZXcgbWVkaWEgc2VnbWVudC4K
K1JVTihzb3VyY2VCdWZmZXIuYWJvcnQoKSkKK1JVTihzb3VyY2VCdWZmZXIuYXBwZW5kQnVmZmVy
KGxvYWRlci5tZWRpYVNlZ21lbnQoMSkpKQorRVZFTlQodXBkYXRlKQorRU5EIE9GIFRFU1QKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1h
Ym9ydC1yZXNldHMtcGFyc2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2Uv
bWVkaWEtc291cmNlLWFib3J0LXJlc2V0cy1wYXJzZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNGYyZDdi
YWJlOTc4ZGFhNGVjNTdlNjA2YTY0YTQ0NTM2MDE0NDEzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1hYm9ydC1yZXNldHMtcGFy
c2VyLmh0bWwKQEAgLTAsMCArMSw3MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorICAgIDx0aXRsZT5tZWRpYS1zb3VyY2UtYWJvcnQtcmVzZXRzLXBhcnNlcjwvdGl0bGU+Cisg
ICAgPHNjcmlwdCBzcmM9Im1lZGlhLXNvdXJjZS1sb2FkZXIuanMiPjwvc2NyaXB0PgorICAgIDxz
Y3JpcHQgc3JjPSIuLi92aWRlby10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAg
IHZhciBsb2FkZXI7CisgICAgdmFyIHNvdXJjZTsKKyAgICB2YXIgc291cmNlQnVmZmVyOworCisg
ICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgZmluZE1lZGlhRWxlbWVudCgpOworCisg
ICAgICAgIGxvYWRlciA9IG5ldyBNZWRpYVNvdXJjZUxvYWRlcignY29udGVudC90ZXN0LWZyYWdt
ZW50ZWQtbWFuaWZlc3QuanNvbicpOworICAgICAgICBsb2FkZXIub25sb2FkID0gbWVkaWFEYXRh
TG9hZGVkOworICAgICAgICBsb2FkZXIub25lcnJvciA9IG1lZGlhRGF0YUxvYWRpbmdGYWlsZWQ7
CisgICAgfQorCisgICAgZnVuY3Rpb24gbWVkaWFEYXRhTG9hZGluZ0ZhaWxlZCgpIHsKKyAgICAg
ICAgZmFpbFRlc3QoJ01lZGlhIGRhdGEgbG9hZGluZyBmYWlsZWQnKTsKKyAgICB9CisKKyAgICBm
dW5jdGlvbiBtZWRpYURhdGFMb2FkZWQoKSB7CisgICAgICAgIHNvdXJjZSA9IG5ldyBNZWRpYVNv
dXJjZSgpOworICAgICAgICB3YWl0Rm9yRXZlbnQoJ3NvdXJjZW9wZW4nLCBzb3VyY2VPcGVuLCBm
YWxzZSwgZmFsc2UsIHNvdXJjZSk7CisgICAgICAgIHdhaXRGb3JFdmVudEFuZEZhaWwoJ2Vycm9y
Jyk7CisgICAgICAgIHJ1bigndmlkZW8uc3JjID0gVVJMLmNyZWF0ZU9iamVjdFVSTChzb3VyY2Up
Jyk7CisgICAgfQorCisgICAgZnVuY3Rpb24gc291cmNlT3BlbigpIHsKKyAgICAgICAgcnVuKCdz
b3VyY2UuZHVyYXRpb24gPSBsb2FkZXIuZHVyYXRpb24oKScpOworICAgICAgICBydW4oJ3NvdXJj
ZUJ1ZmZlciA9IHNvdXJjZS5hZGRTb3VyY2VCdWZmZXIobG9hZGVyLnR5cGUoKSknKTsKKyAgICAg
ICAgd2FpdEZvckV2ZW50T24oc291cmNlQnVmZmVyLCAndXBkYXRlJywgc291cmNlSW5pdGlhbGl6
ZWQsIGZhbHNlLCB0cnVlKTsKKyAgICAgICAgcnVuKCdzb3VyY2VCdWZmZXIuYXBwZW5kQnVmZmVy
KGxvYWRlci5pbml0U2VnbWVudCgpKScpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHNvdXJjZUlu
aXRpYWxpemVkKCkgeworICAgICAgICB3YWl0Rm9yRXZlbnRPbihzb3VyY2VCdWZmZXIsICd1cGRh
dGUnLCBwYXJ0aWFsTWVkaWFTZWdtZW50QXBwZW5kZWQxLCBmYWxzZSwgdHJ1ZSk7CisgICAgICAg
IGNvbnNvbGVXcml0ZSgnQXBwZW5kIGEgcGFydGlhbCBtZWRpYSBzZWdtZW50LicpCisgICAgICAg
IHJ1bignc291cmNlQnVmZmVyLmFwcGVuZEJ1ZmZlcihsb2FkZXIubWVkaWFTZWdtZW50KDApLnNs
aWNlKDAsIGxvYWRlci5tZWRpYVNlZ21lbnQoMCkuYnl0ZUxlbmd0aCAvIDIpKScpOworICAgIH0K
KworICAgIGZ1bmN0aW9uIHBhcnRpYWxNZWRpYVNlZ21lbnRBcHBlbmRlZDEoKSB7CisgICAgICAg
IGNvbnNvbGVXcml0ZSgnQWJvcnQgYW5kIGFwcGVuZCBhIG5ldyBpbml0aWFsaXphdGlvbiBzZWdt
ZW50LicpCisgICAgICAgIHJ1bignc291cmNlQnVmZmVyLmFib3J0KCknKTsKKyAgICAgICAgcnVu
KCdzb3VyY2VCdWZmZXIuYXBwZW5kQnVmZmVyKGxvYWRlci5pbml0U2VnbWVudCgpKScpOworICAg
ICAgICB3YWl0Rm9yRXZlbnRPbihzb3VyY2VCdWZmZXIsICd1cGRhdGUnLCBpbml0U2VnbWVudEFw
cGVuZGVkLCBmYWxzZSwgdHJ1ZSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gaW5pdFNlZ21lbnRB
cHBlbmRlZCgpIHsKKyAgICAgICAgd2FpdEZvckV2ZW50T24oc291cmNlQnVmZmVyLCAndXBkYXRl
JywgcGFydGlhbE1lZGlhU2VnbWVudEFwcGVuZGVkMiwgZmFsc2UsIHRydWUpOworICAgICAgICBj
b25zb2xlV3JpdGUoJ0FwcGVuZCBhIHBhcnRpYWwgbWVkaWEgc2VnbWVudC4nKQorICAgICAgICBy
dW4oJ3NvdXJjZUJ1ZmZlci5hcHBlbmRCdWZmZXIobG9hZGVyLm1lZGlhU2VnbWVudCgwKS5zbGlj
ZSgwLCBsb2FkZXIubWVkaWFTZWdtZW50KDApLmJ5dGVMZW5ndGggLyAyKSknKTsKKyAgICB9CisK
KyAgICBmdW5jdGlvbiBwYXJ0aWFsTWVkaWFTZWdtZW50QXBwZW5kZWQyKCkgeworICAgICAgICBj
b25zb2xlV3JpdGUoJ0Fib3J0IGFuZCBhcHBlbmQgYSBuZXcgbWVkaWEgc2VnbWVudC4nKQorICAg
ICAgICBydW4oJ3NvdXJjZUJ1ZmZlci5hYm9ydCgpJyk7CisgICAgICAgIHJ1bignc291cmNlQnVm
ZmVyLmFwcGVuZEJ1ZmZlcihsb2FkZXIubWVkaWFTZWdtZW50KDEpKScpOworICAgICAgICB3YWl0
Rm9yRXZlbnRPbihzb3VyY2VCdWZmZXIsICd1cGRhdGUnLCBlbmRUZXN0LCBmYWxzZSwgdHJ1ZSk7
CisgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCki
PgorICAgIDxkaXY+CisgICAgICAgIFRoaXMgdGVzdHMgdGhlIGFiaWxpdHkgb2YgdGhlIFNvdXJj
ZUJ1ZmZlciB0byByZXNldCB0aGUgcGFyc2VyIGFmdGVyIGFuIGFib3J0KCkuIEEgU291cmNlQnVm
ZmVyIGluIHRoaXMgc3RhdGUgc2hvdWxkIGJlIGFibGUgdG8gYWNjZXB0CisgICAgICAgIGEgbmV3
IGluaXRpYWxpemF0aW9uIHNlZ21lbnQgb3IgYSBuZXcgbWVkaWEgc2VnbWVudC4KKyAgICA8L2Rp
dj4KKyAgICA8dmlkZW8gY29udHJvbHM+PC92aWRlbz4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>