<?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>204543</bug_id>
          
          <creation_ts>2019-11-22 18:10:28 -0800</creation_ts>
          <short_desc>macCatalyst: REGRESSION (r251320): WebKit-native media controls do not respond to hover or click</short_desc>
          <delta_ts>2019-12-07 03:22:25 -0800</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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>cdumez</cc>
    
    <cc>dbates</cc>
    
    <cc>dino</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>graouts</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>joepeck</cc>
    
    <cc>mifenton</cc>
    
    <cc>mjs</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1593136</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-11-22 18:10:28 -0800</bug_when>
    <thetext>macCatalyst: REGRESSION (r251320): WebKit-native media controls do not respond to hover or click</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1593137</commentid>
    <comment_count>1</comment_count>
      <attachid>384218</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-11-22 18:11:15 -0800</bug_when>
    <thetext>Created attachment 384218
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1593138</commentid>
    <comment_count>2</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-11-22 18:11:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/57208621&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1593139</commentid>
    <comment_count>3</comment_count>
      <attachid>384219</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-11-22 18:13:10 -0800</bug_when>
    <thetext>Created attachment 384219
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595593</commentid>
    <comment_count>4</comment_count>
      <attachid>384849</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-12-04 14:55:43 -0800</bug_when>
    <thetext>Created attachment 384849
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595672</commentid>
    <comment_count>5</comment_count>
      <attachid>384871</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-12-04 18:38:45 -0800</bug_when>
    <thetext>Created attachment 384871
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595725</commentid>
    <comment_count>6</comment_count>
      <attachid>384871</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2019-12-04 23:06:18 -0800</bug_when>
    <thetext>Comment on attachment 384871
Patch

Is it feasible to make test cases for this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595751</commentid>
    <comment_count>7</comment_count>
      <attachid>384871</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-12-05 02:32:17 -0800</bug_when>
    <thetext>Comment on attachment 384871
Patch

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

Very nice to see those #if !PLATFORM(IOS_FAMILY) go away!

&gt; Source/WebCore/Modules/modern-media-controls/controls/auto-hide-controller.js:63
&gt; +            this._mediaControls.element.addEventListener(&quot;pointerout&quot;, this);

I suppose we didn&apos;t have `touchcancel` before, but I wonder if we need to handle `pointercancel` here too.

&gt; Source/WebCore/Modules/modern-media-controls/controls/auto-hide-controller.js:68
&gt; +            this._mediaControls.element.removeEventListener(&quot;pointerout&quot;, this);

We add a `pointerleave` event listener that we don&apos;t seem to remove.

&gt; Source/WebCore/Modules/modern-media-controls/controls/auto-hide-controller.js:172
&gt; +        let disableAutoHiding = this._pointerIdentifiersPreventingAutoHide.size || this._pointerIdentifiersPreventingAutoHideForHover.size;

`const` would do here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595752</commentid>
    <comment_count>8</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-12-05 02:33:38 -0800</bug_when>
    <thetext>(In reply to Maciej Stachowiak from comment #6)
&gt; Comment on attachment 384871 [details]
&gt; Patch
&gt; 
&gt; Is it feasible to make test cases for this?

We already have tests for auto-hide of media controls, so we should be able to extend those to work for the macCatalyst case. However, I don&apos;t know what constraints may exist due to this being macCatalyst.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595759</commentid>
    <comment_count>9</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-12-05 03:01:49 -0800</bug_when>
    <thetext>(In reply to Antoine Quint from comment #8)
&gt; (In reply to Maciej Stachowiak from comment #6)
&gt; &gt; Comment on attachment 384871 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; Is it feasible to make test cases for this?
&gt; 
&gt; We already have tests for auto-hide of media controls, so we should be able
&gt; to extend those to work for the macCatalyst case. However, I don&apos;t know what
&gt; constraints may exist due to this being macCatalyst.

The existing tests found a mistake I made, and we don&apos;t currently have layout testing for macCatalyst. Possible we could come up with something crazy though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596548</commentid>
    <comment_count>10</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-12-07 03:22:25 -0800</bug_when>
    <thetext>https://trac.webkit.org/changeset/253248/webkit</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384218</attachid>
            <date>2019-11-22 18:11:15 -0800</date>
            <delta_ts>2019-11-22 18:13:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204543-20191122181114.patch</filename>
            <type>text/plain</type>
            <size>30378</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyNzI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTZmMTNmMjU5YTFkYTM2
YWZlZDg0YWI5NWFmZDJkYWM0MWIzNjI4Yy4uZjYwMWMyZDdiZGQxYjU3NmY0OWQ2MTFlODE1N2Fl
ZTczYTY0Y2MyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDE5LTExLTIyICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIG1hY0NhdGFseXN0
OiBSRUdSRVNTSU9OIChyMjUxMzIwKTogV2ViS2l0LW5hdGl2ZSBtZWRpYSBjb250cm9scyBkbyBu
b3QgcmVzcG9uZCB0byBob3ZlciBvciBjbGljaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0NTQzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NzIw
ODYyMT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IE1vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL2F1dG8taGlkZS1jb250cm9s
bGVyLmpzOgorICAgICAgICAoQXV0b0hpZGVDb250cm9sbGVyKToKKyAgICAgICAgKEF1dG9IaWRl
Q29udHJvbGxlci5wcm90b3R5cGUuc2V0IGZhZGVzV2hpbGVJZGxlKToKKyAgICAgICAgKEF1dG9I
aWRlQ29udHJvbGxlci5wcm90b3R5cGUuaGFuZGxlRXZlbnQpOgorICAgICAgICAqIE1vZHVsZXMv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL3NsaWRlci5jc3M6CisgICAgICAgICguaW9z
IC5zbGlkZXIgPiBpbnB1dCk6CisgICAgICAgICogTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvY29udHJvbHMvc2xpZGVyLmpzOgorICAgICAgICAoU2xpZGVyLnByb3RvdHlwZS5oYW5kbGVF
dmVudCk6CisgICAgICAgIChTbGlkZXIucHJvdG90eXBlLl9oYW5kbGVQb2ludGVyZG93bkV2ZW50
KToKKyAgICAgICAgKFNsaWRlci5wcm90b3R5cGUuX2hhbmRsZVBvaW50ZXJ1cEV2ZW50KToKKyAg
ICAgICAgKFNsaWRlci5wcm90b3R5cGUuX2hhbmRsZU1vdXNlZG93bkV2ZW50KTogRGVsZXRlZC4K
KyAgICAgICAgKFNsaWRlci5wcm90b3R5cGUuX2hhbmRsZVRvdWNoc3RhcnRFdmVudCk6IERlbGV0
ZWQuCisgICAgICAgIChTbGlkZXIucHJvdG90eXBlLl9oYW5kbGVNb3VzZXVwRXZlbnQpOiBEZWxl
dGVkLgorICAgICAgICAoU2xpZGVyLnByb3RvdHlwZS5faGFuZGxlVG91Y2hlbmRFdmVudCk6IERl
bGV0ZWQuCisgICAgICAgICogTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvZ2VzdHVyZS1y
ZWNvZ25pemVycy9nZXN0dXJlLXJlY29nbml6ZXIuanM6CisgICAgICAgIChHZXN0dXJlUmVjb2du
aXplcik6CisgICAgICAgIChHZXN0dXJlUmVjb2duaXplci5wcm90b3R5cGUuZ2V0IG51bWJlck9m
VG91Y2hlcyk6CisgICAgICAgIChHZXN0dXJlUmVjb2duaXplci5wcm90b3R5cGUubG9jYXRpb25J
bkVsZW1lbnQpOgorICAgICAgICAoR2VzdHVyZVJlY29nbml6ZXIucHJvdG90eXBlLmxvY2F0aW9u
SW5DbGllbnQpOgorICAgICAgICAoR2VzdHVyZVJlY29nbml6ZXIucHJvdG90eXBlLnRvdWNoZXNC
ZWdhbik6CisgICAgICAgIChHZXN0dXJlUmVjb2duaXplci5wcm90b3R5cGUuaGFuZGxlRXZlbnQp
OgorICAgICAgICAoR2VzdHVyZVJlY29nbml6ZXIucHJvdG90eXBlLl91cGRhdGVCYXNlTGlzdGVu
ZXJzKToKKyAgICAgICAgKEdlc3R1cmVSZWNvZ25pemVyLnByb3RvdHlwZS5fcmVtb3ZlVHJhY2tp
bmdMaXN0ZW5lcnMpOgorICAgICAgICAoR2VzdHVyZVJlY29nbml6ZXIucHJvdG90eXBlLl91cGRh
dGVUYXJnZXRUb3VjaGVzKToKKyAgICAgICAgKEdlc3R1cmVSZWNvZ25pemVyLnByb3RvdHlwZS5s
b2NhdGlvbk9mVG91Y2hJbkVsZW1lbnQpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBodG1sL1JhbmdlSW5wdXRUeXBlLmNw
cDoKKyAgICAgICAgKiBodG1sL1JhbmdlSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9zaGFk
b3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNsaWRlclRodW1i
RWxlbWVudDo6ZHJhZ0Zyb20pOgorICAgICAgICAoV2ViQ29yZTo6U2xpZGVyVGh1bWJFbGVtZW50
OjpkZWZhdWx0RXZlbnRIYW5kbGVyKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9TbGlkZXJUaHVt
YkVsZW1lbnQuaDoKKwogMjAxOS0xMS0yMCAgRnVqaWkgSGlyb25vcmkgIDxIaXJvbm9yaS5GdWpp
aUBzb255LmNvbT4KIAogICAgICAgICBbTVNWQ10gZXJyb3IgQzIwMzk6ICd3ZWFrUHRyRmFjdG9y
eSc6IGlzIG5vdCBhIG1lbWJlciBvZiAnV2ViQ29yZTo6RG9jdW1lbnRTdG9yYWdlQWNjZXNzOjpy
ZXF1ZXN0U3RvcmFnZUFjY2Vzczo6PGxhbWJkYV8zZjJjZmQ3NzA0ZjkzZDhmZTE5ZDViNWYwNjRm
OGFkZD4nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1j
b250cm9scy9jb250cm9scy9hdXRvLWhpZGUtY29udHJvbGxlci5qcyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL2F1dG8taGlkZS1jb250cm9s
bGVyLmpzCmluZGV4IGE3NGJjNzFhMTVhYTY1MmMzNGNmNzg4OTI4ZjE0OTc4MWY3ODBkMjYuLmJm
OTg5ZjQ1YzI1NjEzMzAzMzNhNGYyNGQ0NmU5OGQxYTNjNTBkODIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL2F1dG8taGlk
ZS1jb250cm9sbGVyLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL2NvbnRyb2xzL2F1dG8taGlkZS1jb250cm9sbGVyLmpzCkBAIC0zMyw3ICszMyw3
IEBAIGNsYXNzIEF1dG9IaWRlQ29udHJvbGxlcgogICAgICAgICB0aGlzLl9tZWRpYUNvbnRyb2xz
ID0gbWVkaWFDb250cm9sczsKIAogICAgICAgICBpZiAoR2VzdHVyZVJlY29nbml6ZXIuU3VwcG9y
dHNUb3VjaGVzKSB7Ci0gICAgICAgICAgICB0aGlzLl90b3VjaElkZW50aWZpZXJzUHJldmVudGlu
Z0F1dG9IaWRlID0gbmV3IFNldDsKKyAgICAgICAgICAgIHRoaXMuX3BvaW50ZXJJZGVudGlmaWVy
c1ByZXZlbnRpbmdBdXRvSGlkZSA9IG5ldyBTZXQ7CiAgICAgICAgICAgICB0aGlzLl90YXBHZXN0
dXJlUmVjb2duaXplciA9IG5ldyBUYXBHZXN0dXJlUmVjb2duaXplcih0aGlzLl9tZWRpYUNvbnRy
b2xzLmVsZW1lbnQsIHRoaXMpOwogICAgICAgICB9CiAKQEAgLTU0LDIzICs1NCwxNiBAQCBjbGFz
cyBBdXRvSGlkZUNvbnRyb2xsZXIKIAogICAgICAgICB0aGlzLl9mYWRlc1doaWxlSWRsZSA9IGZs
YWc7CiAKLSAgICAgICAgaWYgKEdlc3R1cmVSZWNvZ25pemVyLlN1cHBvcnRzVG91Y2hlcykgewot
ICAgICAgICAgICAgaWYgKGZsYWcpIHsKLSAgICAgICAgICAgICAgICB0aGlzLl9tZWRpYUNvbnRy
b2xzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsIHRoaXMpOwotICAgICAg
ICAgICAgICAgIHRoaXMuX21lZGlhQ29udHJvbHMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJ0
b3VjaGVuZCIsIHRoaXMpOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICB0
aGlzLl9tZWRpYUNvbnRyb2xzLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFy
dCIsIHRoaXMpOwotICAgICAgICAgICAgICAgIHRoaXMuX21lZGlhQ29udHJvbHMuZWxlbWVudC5y
ZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsIHRoaXMpOwotICAgICAgICAgICAgfQotICAg
ICAgICAgICAgdGhpcy5fdGFwR2VzdHVyZVJlY29nbml6ZXIuZW5hYmxlZCA9IGZsYWc7CisgICAg
ICAgIGlmIChmbGFnKSB7CisgICAgICAgICAgICB0aGlzLl9tZWRpYUNvbnRyb2xzLmVsZW1lbnQu
YWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLCB0aGlzKTsKKyAgICAgICAgICAgIHRoaXMu
X21lZGlhQ29udHJvbHMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVyZG93biIsIHRo
aXMpOworICAgICAgICAgICAgdGhpcy5fbWVkaWFDb250cm9scy5lbGVtZW50LmFkZEV2ZW50TGlz
dGVuZXIoInBvaW50ZXJ1cCIsIHRoaXMpOworICAgICAgICAgICAgdGhpcy5fbWVkaWFDb250cm9s
cy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJsZWF2ZSIsIHRoaXMpOwogICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgaWYgKGZsYWcpIHsKLSAgICAgICAgICAgICAgICB0aGlz
Ll9tZWRpYUNvbnRyb2xzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIiwgdGhp
cyk7Ci0gICAgICAgICAgICAgICAgdGhpcy5fbWVkaWFDb250cm9scy5lbGVtZW50LmFkZEV2ZW50
TGlzdGVuZXIoIm1vdXNlbGVhdmUiLCB0aGlzKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICAgICAgdGhpcy5fbWVkaWFDb250cm9scy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVu
ZXIoIm1vdXNlbW92ZSIsIHRoaXMpOwotICAgICAgICAgICAgICAgIHRoaXMuX21lZGlhQ29udHJv
bHMuZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWxlYXZlIiwgdGhpcyk7Ci0gICAg
ICAgICAgICB9CisgICAgICAgICAgICB0aGlzLl9tZWRpYUNvbnRyb2xzLmVsZW1lbnQucmVtb3Zl
RXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLCB0aGlzKTsKKyAgICAgICAgICAgIHRoaXMuX21l
ZGlhQ29udHJvbHMuZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVyZG93biIsIHRo
aXMpOworICAgICAgICAgICAgdGhpcy5fbWVkaWFDb250cm9scy5lbGVtZW50LnJlbW92ZUV2ZW50
TGlzdGVuZXIoInBvaW50ZXJ1cCIsIHRoaXMpOworICAgICAgICAgICAgdGhpcy5fbWVkaWFDb250
cm9scy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJsZWF2ZSIsIHRoaXMpOwog
ICAgICAgICB9CiAKICAgICAgICAgaWYgKGZsYWcgJiYgIXRoaXMuX21lZGlhQ29udHJvbHMuZmFk
ZWQpCkBAIC04Niw3ICs3OSw3IEBAIGNsYXNzIEF1dG9IaWRlQ29udHJvbGxlcgogICAgICAgICBp
ZiAoZXZlbnQuY3VycmVudFRhcmdldCAhPT0gdGhpcy5fbWVkaWFDb250cm9scy5lbGVtZW50KQog
ICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGlmIChldmVudC50eXBlID09PSAibW91c2Vt
b3ZlIikgeworICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gInBvaW50ZXJtb3ZlIikgewogICAg
ICAgICAgICAgdGhpcy5fbWVkaWFDb250cm9scy5mYWRlZCA9IGZhbHNlOwogICAgICAgICAgICAg
dGhpcy5fcmVzZXRBdXRvSGlkZVRpbWVyKHRydWUpOwogICAgICAgICAgICAgaWYgKHRoaXMuX21l
ZGlhQ29udHJvbHMuaXNQb2ludEluQ29udHJvbHMobmV3IERPTVBvaW50KGV2ZW50LmNsaWVudFgs
IGV2ZW50LmNsaWVudFkpKSkgewpAQCAtOTYsMjIgKzg5LDIwIEBAIGNsYXNzIEF1dG9IaWRlQ29u
dHJvbGxlcgogICAgICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9kaXNhYmxlQXV0b0hpZGluZzsK
ICAgICAgICAgICAgICAgICB0aGlzLl9yZXNldEF1dG9IaWRlVGltZXIodHJ1ZSk7CiAgICAgICAg
ICAgICB9Ci0gICAgICAgIH0gZWxzZSBpZiAoZXZlbnQudHlwZSA9PT0gIm1vdXNlbGVhdmUiICYm
IHRoaXMuX2ZhZGVzV2hpbGVJZGxlICYmICF0aGlzLmhhc1NlY29uZGFyeVVJQXR0YWNoZWQgJiYg
IXRoaXMuX2VuZm9yY2VBdXRvSGlkZVRpbWVyKQorICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LnR5
cGUgPT09ICJwb2ludGVybGVhdmUiICYmIEdlc3R1cmVSZWNvZ25pemVyLlN1cHBvcnRzVG91Y2hl
cyAmJiB0aGlzLl9mYWRlc1doaWxlSWRsZSAmJiAhdGhpcy5oYXNTZWNvbmRhcnlVSUF0dGFjaGVk
ICYmICF0aGlzLl9lbmZvcmNlQXV0b0hpZGVUaW1lcikKICAgICAgICAgICAgIHRoaXMuX21lZGlh
Q29udHJvbHMuZmFkZWQgPSAhdGhpcy5fbWVkaWFDb250cm9scy5pc1BvaW50SW5Db250cm9scyhu
ZXcgRE9NUG9pbnQoZXZlbnQuY2xpZW50WCwgZXZlbnQuY2xpZW50WSkpOwogCi0gICAgICAgIGlm
IChldmVudC50eXBlID09PSAidG91Y2hzdGFydCIpIHsKKyAgICAgICAgaWYgKGV2ZW50LnR5cGUg
PT09ICJwb2ludGVyZG93biIpIHsKICAgICAgICAgICAgIC8vIFJlbWVtYmVyIHRoZSBjdXJyZW50
IGZhZGVkIHN0YXRlIHNvIHRoYXQgd2UgY2FuIGRldGVybWluZSwKICAgICAgICAgICAgIC8vIGlm
IHdlIHJlY29nbml6ZSBhIHRhcCwgaWYgaXQgc2hvdWxkIGZhZGUgdGhlIGNvbnRyb2xzIG91dC4K
ICAgICAgICAgICAgIHRoaXMuX25leHRUYXBDYW5GYWRlQ29udHJvbHMgPSAhdGhpcy5fbWVkaWFD
b250cm9scy5mYWRlZDsKLSAgICAgICAgICAgIGZvciAodmFyIHRvdWNoIGluIGV2ZW50LmNoYW5n
ZWRUb3VjaGVzKQotICAgICAgICAgICAgICAgIHRoaXMuX3RvdWNoSWRlbnRpZmllcnNQcmV2ZW50
aW5nQXV0b0hpZGUuYWRkKHRvdWNoLmlkZW50aWZpZXIpOworICAgICAgICAgICAgdGhpcy5fcG9p
bnRlcklkZW50aWZpZXJzUHJldmVudGluZ0F1dG9IaWRlLmFkZChldmVudC5wb2ludGVySWQpOwog
ICAgICAgICAgICAgdGhpcy5fbWVkaWFDb250cm9scy5mYWRlZCA9IGZhbHNlOwogICAgICAgICAg
ICAgdGhpcy5fZGlzYWJsZUF1dG9IaWRpbmcgPSB0cnVlOwogICAgICAgICAgICAgdGhpcy5fY2Fu
Y2VsTm9uRW5mb3JjZWRBdXRvSGlkZVRpbWVyKCk7Ci0gICAgICAgIH0gZWxzZSBpZiAoZXZlbnQu
dHlwZSA9PT0gInRvdWNoZW5kIikgewotICAgICAgICAgICAgZm9yICh2YXIgdG91Y2ggaW4gZXZl
bnQuY2hhbmdlZFRvdWNoZXMpCi0gICAgICAgICAgICAgICAgdGhpcy5fdG91Y2hJZGVudGlmaWVy
c1ByZXZlbnRpbmdBdXRvSGlkZS5kZWxldGUodG91Y2guaWRlbnRpZmllcik7Ci0gICAgICAgICAg
ICBpZiAoIXRoaXMuX3RvdWNoSWRlbnRpZmllcnNQcmV2ZW50aW5nQXV0b0hpZGUuc2l6ZSkgewor
ICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LnR5cGUgPT09ICJwb2ludGVydXAiKSB7CisgICAgICAg
ICAgICB0aGlzLl9wb2ludGVySWRlbnRpZmllcnNQcmV2ZW50aW5nQXV0b0hpZGUuZGVsZXRlKGV2
ZW50LnBvaW50ZXJJZCk7CisgICAgICAgICAgICBpZiAoIXRoaXMuX3BvaW50ZXJJZGVudGlmaWVy
c1ByZXZlbnRpbmdBdXRvSGlkZS5zaXplKSB7CiAgICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMu
X2Rpc2FibGVBdXRvSGlkaW5nOwogICAgICAgICAgICAgICAgIHRoaXMuX3Jlc2V0QXV0b0hpZGVU
aW1lcih0cnVlKTsKICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL3NsaWRlci5jc3MgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9zbGlkZXIuY3Nz
CmluZGV4IGU5YWIwMTk0Njg3MDE5ZDhjNjc4YjNmMmVmNjYzNTkyMjQzY2MwYTguLjk5ZmU5YzIy
MGUwZDMwNTdlMTdkOGIwMTgwZTdiZWY5ZTlkYzdjZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL3NsaWRlci5jc3MKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMv
c2xpZGVyLmNzcwpAQCAtODksNyArODksNyBAQAogCiAuaW9zIC5zbGlkZXIgPiBpbnB1dCB7CiAg
ICAgLyogT24gaU9TIG9ubHksIHdlIHdhbnQgdG8gb25seSBjYXB0dXJlIGV2ZW50cyBvbiB0aGUg
dGh1bWIgYW5kIG5vdCB0aGUgdHJhY2suICovCi0gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7Cisv
KiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsqLwogCiAgICAgLyogTWFrZSBzdXJlIHdlIGRvbid0
IHNob3cgYW55IFVJIGFzIHdlIGRyYWcgdGhlIHNjcnViYmVyIG9uIGlPUy4gKi8KICAgICAtd2Vi
a2l0LXVzZXItc2VsZWN0OiBub25lICFpbXBvcnRhbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9zbGlkZXIuanMgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9zbGlk
ZXIuanMKaW5kZXggMjhlZjMzMDg4MDViMGI2MzJhNTkyNmZjMWQ2ZWFmZTBmYjMyZWI2NS4uY2My
YjJkNjk1NmQxY2RjNGY4ZGExYzNhYmViNjkyODdjOGExYTUwYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvc2xpZGVyLmpz
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRy
b2xzL3NsaWRlci5qcwpAQCAtMzgsNyArMzgsNyBAQCBjbGFzcyBTbGlkZXIgZXh0ZW5kcyBMYXlv
dXROb2RlCiAgICAgICAgIHRoaXMuX2NvbnRhaW5lci5jaGlsZHJlbiA9IFt0aGlzLl90cmFjaywg
dGhpcy5fcHJpbWFyeUZpbGwsIHRoaXMuX3NlY29uZGFyeUZpbGwsIHRoaXMuX2tub2JdOwogCiAg
ICAgICAgIHRoaXMuX2lucHV0ID0gbmV3IExheW91dE5vZGUoYDxpbnB1dCB0eXBlPSJyYW5nZSIg
bWluPSIwIiBtYXg9IjEiIHN0ZXA9IjAuMDAxIiAvPmApOwotICAgICAgICB0aGlzLl9pbnB1dC5l
bGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoR2VzdHVyZVJlY29nbml6ZXIuU3VwcG9ydHNUb3VjaGVz
ID8gInRvdWNoc3RhcnQiIDogIm1vdXNlZG93biIsIHRoaXMpOworICAgICAgICB0aGlzLl9pbnB1
dC5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJkb3duIiwgdGhpcyk7CiAgICAgICAg
IHRoaXMuX2lucHV0LmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLCB0aGlzKTsKICAg
ICAgICAgdGhpcy5faW5wdXQuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLCB0aGlz
KTsKIApAQCAtMTA5LDE3ICsxMDksMTEgQEAgY2xhc3MgU2xpZGVyIGV4dGVuZHMgTGF5b3V0Tm9k
ZQogICAgIGhhbmRsZUV2ZW50KGV2ZW50KQogICAgIHsKICAgICAgICAgc3dpdGNoIChldmVudC50
eXBlKSB7Ci0gICAgICAgIGNhc2UgIm1vdXNlZG93biI6Ci0gICAgICAgICAgICB0aGlzLl9oYW5k
bGVNb3VzZWRvd25FdmVudCgpOworICAgICAgICBjYXNlICJwb2ludGVyZG93biI6CisgICAgICAg
ICAgICB0aGlzLl9oYW5kbGVQb2ludGVyZG93bkV2ZW50KCk7CiAgICAgICAgICAgICBicmVhazsK
LSAgICAgICAgY2FzZSAidG91Y2hzdGFydCI6Ci0gICAgICAgICAgICB0aGlzLl9oYW5kbGVUb3Vj
aHN0YXJ0RXZlbnQoZXZlbnQpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgIm1v
dXNldXAiOgotICAgICAgICAgICAgdGhpcy5faGFuZGxlTW91c2V1cEV2ZW50KCk7Ci0gICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgY2FzZSAidG91Y2hlbmQiOgotICAgICAgICAgICAgdGhpcy5f
aGFuZGxlVG91Y2hlbmRFdmVudChldmVudCk7CisgICAgICAgIGNhc2UgInBvaW50ZXJ1cCI6Cisg
ICAgICAgICAgICB0aGlzLl9oYW5kbGVQb2ludGVydXBFdmVudCgpOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIGNhc2UgImNoYW5nZSI6CiAgICAgICAgIGNhc2UgImlucHV0IjoKQEAgLTE1
OCwxMCArMTUyLDEwIEBAIGNsYXNzIFNsaWRlciBleHRlbmRzIExheW91dE5vZGUKIAogICAgIC8v
IFByaXZhdGUKIAotICAgIF9oYW5kbGVNb3VzZWRvd25FdmVudCgpCisgICAgX2hhbmRsZVBvaW50
ZXJkb3duRXZlbnQoKQogICAgIHsKLSAgICAgICAgdGhpcy5fbW91c2V1cFRhcmdldCA9IHRoaXMu
X2ludGVyYWN0aW9uRW5kVGFyZ2V0KCk7Ci0gICAgICAgIHRoaXMuX21vdXNldXBUYXJnZXQuYWRk
RXZlbnRMaXN0ZW5lcigibW91c2V1cCIsIHRoaXMsIHRydWUpOworICAgICAgICB0aGlzLl9wb2lu
dGVydXBUYXJnZXQgPSB0aGlzLl9pbnRlcmFjdGlvbkVuZFRhcmdldCgpOworICAgICAgICB0aGlz
Ll9wb2ludGVydXBUYXJnZXQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcnVwIiwgdGhpcywgdHJ1
ZSk7CiAKICAgICAgICAgdGhpcy5fdmFsdWVXaWxsU3RhcnRDaGFuZ2luZygpOwogICAgIH0KQEAg
LTE3MiwyMCArMTY2LDYgQEAgY2xhc3MgU2xpZGVyIGV4dGVuZHMgTGF5b3V0Tm9kZQogICAgICAg
ICByZXR1cm4gKCFtZWRpYUNvbnRyb2xzIHx8IG1lZGlhQ29udHJvbHMgaW5zdGFuY2VvZiBNYWNP
U0lubGluZU1lZGlhQ29udHJvbHMpID8gd2luZG93IDogbWVkaWFDb250cm9scy5lbGVtZW50Owog
ICAgIH0KIAotICAgIF9oYW5kbGVUb3VjaHN0YXJ0RXZlbnQoZXZlbnQpCi0gICAgewotICAgICAg
ICAvLyBXZSdyZSBvbmx5IGludGVyZXN0ZWQgaW4gdGhlIHZlcnkgZmlyc3QgdG91Y2ggb24gdGhl
IDxpbnB1dD4uCi0gICAgICAgIGlmIChldmVudC50b3VjaGVzLmxlbmd0aCAhPT0gMSkKLSAgICAg
ICAgICAgIHJldHVybjsKLQotICAgICAgICB0aGlzLl9pbml0aWFsVG91Y2hJZGVudGlmaWVyID0g
ZXZlbnQudG91Y2hlc1swXS5pZGVudGlmaWVyOwotCi0gICAgICAgIHRoaXMuX3RvdWNoZW5kVGFy
Z2V0ID0gdGhpcy5faW50ZXJhY3Rpb25FbmRUYXJnZXQoKTsKLSAgICAgICAgdGhpcy5fdG91Y2hl
bmRUYXJnZXQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLCB0aGlzLCB0cnVlKTsKLQotICAg
ICAgICB0aGlzLl92YWx1ZVdpbGxTdGFydENoYW5naW5nKCk7Ci0gICAgfQotCiAgICAgX3ZhbHVl
V2lsbFN0YXJ0Q2hhbmdpbmcoKQogICAgIHsKICAgICAgICAgLy8gV2Ugc2hvdWxkIG5vIGxvbmdl
ciBjYWNoZSB0aGUgdmFsdWUgc2luY2Ugd2UnbGwgYmUgaW50ZXJhY3Rpbmcgd2l0aCB0aGUgPGlu
cHV0PgpAQCAtMjE1LDI0ICsxOTUsMTEgQEAgY2xhc3MgU2xpZGVyIGV4dGVuZHMgTGF5b3V0Tm9k
ZQogICAgICAgICB0aGlzLm5lZWRzTGF5b3V0ID0gdHJ1ZTsKICAgICB9CiAKLSAgICBfaGFuZGxl
TW91c2V1cEV2ZW50KCkKKyAgICBfaGFuZGxlUG9pbnRlcnVwRXZlbnQoKQogICAgIHsKLSAgICAg
ICAgdGhpcy5fbW91c2V1cFRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIiwgdGhp
cywgdHJ1ZSk7Ci0gICAgICAgIGRlbGV0ZSB0aGlzLl9tb3VzZXVwVGFyZ2V0OworICAgICAgICB0
aGlzLl9wb2ludGVydXBUYXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcnVwIiwgdGhp
cywgdHJ1ZSk7CisgICAgICAgIGRlbGV0ZSB0aGlzLl9wb2ludGVydXBUYXJnZXQ7CiAKICAgICAg
ICAgdGhpcy5fdmFsdWVEaWRTdG9wQ2hhbmdpbmcoKTsKICAgICB9Ci0KLSAgICBfaGFuZGxlVG91
Y2hlbmRFdmVudChldmVudCkKLSAgICB7Ci0gICAgICAgIGlmICghQXJyYXkuZnJvbShldmVudC5j
aGFuZ2VkVG91Y2hlcykuZmluZCh0b3VjaCA9PiB0b3VjaC5pZGVudGlmaWVyID09PSB0aGlzLl9p
bml0aWFsVG91Y2hJZGVudGlmaWVyKSkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICB0
aGlzLl90b3VjaGVuZFRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsIHRoaXMs
IHRydWUpOwotICAgICAgICBkZWxldGUgdGhpcy5fdG91Y2hlbmRUYXJnZXQ7Ci0gICAgICAgIGRl
bGV0ZSB0aGlzLl9pbml0aWFsVG91Y2hJZGVudGlmaWVyOwotCi0gICAgICAgIHRoaXMuX3ZhbHVl
RGlkU3RvcENoYW5naW5nKCk7Ci0gICAgfQotCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9nZXN0dXJlLXJlY29nbml6ZXJzL2dlc3R1
cmUtcmVjb2duaXplci5qcyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNv
bnRyb2xzL2dlc3R1cmUtcmVjb2duaXplcnMvZ2VzdHVyZS1yZWNvZ25pemVyLmpzCmluZGV4IDJi
NTUxZTdlM2I2OTZmNDY1OWEyMmRkZTc3ZWM0NjczYjViN2U2NGQuLjdmZGNiY2EzNDBjYWY2ZTcw
YTg4NDY3ZjdkODYzYzc5YTExMzY0N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2dlc3R1cmUtcmVjb2duaXplcnMvZ2VzdHVyZS1yZWNv
Z25pemVyLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRy
b2xzL2dlc3R1cmUtcmVjb2duaXplcnMvZ2VzdHVyZS1yZWNvZ25pemVyLmpzCkBAIC0xLDEwICsx
LDkgQEAKLQogY2xhc3MgR2VzdHVyZVJlY29nbml6ZXIKIHsKIAogICAgIGNvbnN0cnVjdG9yKHRh
cmdldCA9IG51bGwsIGRlbGVnYXRlID0gbnVsbCkKICAgICB7Ci0gICAgICAgIHRoaXMuX3Rhcmdl
dFRvdWNoZXMgPSBbXTsKKyAgICAgICAgdGhpcy5fdGFyZ2V0UG9pbnRlcnMgPSBuZXcgTWFwKCk7
CiAKICAgICAgICAgdGhpcy5tb2RpZmllcktleXMgPSB7CiAgICAgICAgICAgICBhbHQgOiBmYWxz
ZSwKQEAgLTUzLDcgKzUyLDcgQEAgY2xhc3MgR2VzdHVyZVJlY29nbml6ZXIKIAogICAgIGdldCBu
dW1iZXJPZlRvdWNoZXMoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3RhcmdldFRvdWNo
ZXMubGVuZ3RoOworICAgICAgICByZXR1cm4gdGhpcy5fdGFyZ2V0UG9pbnRlcnMuc2l6ZTsKICAg
ICB9CiAKICAgICBnZXQgZW5hYmxlZCgpCkBAIC04NywxMiArODYsMTQgQEAgY2xhc3MgR2VzdHVy
ZVJlY29nbml6ZXIKICAgICBsb2NhdGlvbkluRWxlbWVudChlbGVtZW50KQogICAgIHsKICAgICAg
ICAgY29uc3QgcCA9IG5ldyBET01Qb2ludDsKLSAgICAgICAgY29uc3QgdG91Y2hlcyA9IHRoaXMu
X3RhcmdldFRvdWNoZXM7Ci0gICAgICAgIGNvbnN0IGNvdW50ID0gdG91Y2hlcy5sZW5ndGg7Cisg
ICAgICAgIGNvbnN0IHBvaW50ZXJzID0gdGhpcy5fdGFyZ2V0UG9pbnRlcnMudmFsdWVzKCk7Cisg
ICAgICAgIGNvbnN0IGNvdW50ID0gcG9pbnRlcnMubGVuZ3RoOworICAgICAgICBpZiAoIWNvdW50
KQorICAgICAgICAgICAgcmV0dXJuIHA7CiAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY291
bnQ7ICsraSkgewotICAgICAgICAgICAgY29uc3QgdG91Y2ggPSB0b3VjaGVzW2ldOwotICAgICAg
ICAgICAgcC54ICs9IHRvdWNoLnBhZ2VYOwotICAgICAgICAgICAgcC55ICs9IHRvdWNoLnBhZ2VZ
OworICAgICAgICAgICAgY29uc3QgcG9pbnRlciA9IHBvaW50ZXJzW2ldOworICAgICAgICAgICAg
cC54ICs9IHBvaW50ZXIucGFnZVg7CisgICAgICAgICAgICBwLnkgKz0gcG9pbnRlci5wYWdlWTsK
ICAgICAgICAgfQogICAgICAgICBwLnggLz0gY291bnQ7CiAgICAgICAgIHAueSAvPSBjb3VudDsK
QEAgLTEwOCwxMiArMTA5LDE0IEBAIGNsYXNzIEdlc3R1cmVSZWNvZ25pemVyCiAgICAgbG9jYXRp
b25JbkNsaWVudCgpCiAgICAgewogICAgICAgICBjb25zdCBwID0gbmV3IERPTVBvaW50OwotICAg
ICAgICBjb25zdCB0b3VjaGVzID0gdGhpcy5fdGFyZ2V0VG91Y2hlczsKLSAgICAgICAgY29uc3Qg
Y291bnQgPSB0b3VjaGVzLmxlbmd0aDsKKyAgICAgICAgY29uc3QgcG9pbnRlcnMgPSB0aGlzLl90
YXJnZXRQb2ludGVycy52YWx1ZXMoKTsKKyAgICAgICAgY29uc3QgY291bnQgPSBwb2ludGVycy5s
ZW5ndGg7CisgICAgICAgIGlmICghY291bnQpCisgICAgICAgICAgICByZXR1cm4gcDsKICAgICAg
ICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7Ci0gICAgICAgICAgICBjb25zdCB0
b3VjaCA9IHRvdWNoZXNbaV07Ci0gICAgICAgICAgICBwLnggKz0gdG91Y2guY2xpZW50WDsKLSAg
ICAgICAgICAgIHAueSArPSB0b3VjaC5jbGllbnRZOworICAgICAgICAgICAgY29uc3QgcG9pbnRl
ciA9IHBvaW50ZXJzW2ldOworICAgICAgICAgICAgcC54ICs9IHBvaW50ZXIuY2xpZW50WDsKKyAg
ICAgICAgICAgIHAueSArPSBwb2ludGVyLmNsaWVudFk7CiAgICAgICAgIH0KICAgICAgICAgcC54
IC89IGNvdW50OwogICAgICAgICBwLnkgLz0gY291bnQ7CkBAIC0xMjEsMjkgKzEyNCwxNCBAQCBj
bGFzcyBHZXN0dXJlUmVjb2duaXplcgogICAgICAgICByZXR1cm4gcDsKICAgICB9CiAKLSAgICBs
b2NhdGlvbk9mVG91Y2hJbkVsZW1lbnQodG91Y2hJbmRleCwgZWxlbWVudCkKLSAgICB7Ci0gICAg
ICAgIGNvbnN0IHRvdWNoID0gdGhpcy5fdGFyZ2V0VG91Y2hlc1t0b3VjaEluZGV4XTsKLSAgICAg
ICAgaWYgKCF0b3VjaCkKLSAgICAgICAgICAgIHJldHVybiBuZXcgRE9NUG9pbnQ7Ci0KLSAgICAg
ICAgY29uc3QgdG91Y2hMb2NhdGlvbiA9IG5ldyBET01Qb2ludCh0b3VjaC5wYWdlWCwgdG91Y2gu
cGFnZVkpOwotICAgICAgICBpZiAoIWVsZW1lbnQpCi0gICAgICAgICAgICByZXR1cm4gdG91Y2hM
b2NhdGlvbjsKLQotICAgICAgICAvLyBGSVhNRTogYXJlIFdlYktpdFBvaW50IGFuZCBET01Qb2lu
dCBpbnRlcmNoYW5nZWFibGU/Ci0gICAgICAgIGNvbnN0IHdrUG9pbnQgPSB3aW5kb3cud2Via2l0
Q29udmVydFBvaW50RnJvbVBhZ2VUb05vZGUoZWxlbWVudCwgbmV3IFdlYktpdFBvaW50KHRvdWNo
TG9jYXRpb24ueCwgdG91Y2hMb2NhdGlvbi55KSk7Ci0gICAgICAgIHJldHVybiBuZXcgRE9NUG9p
bnQod2tQb2ludC54LCB3a1BvaW50LnkpOwotICAgIH0KLQogICAgIHRvdWNoZXNCZWdhbihldmVu
dCkKICAgICB7CiAgICAgICAgIGlmIChldmVudC5jdXJyZW50VGFyZ2V0ICE9PSB0aGlzLl90YXJn
ZXQpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVu
ZXIoR2VzdHVyZVJlY29nbml6ZXIuRXZlbnRzLlRvdWNoTW92ZSwgdGhpcywgdHJ1ZSk7Ci0gICAg
ICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKEdlc3R1cmVSZWNvZ25pemVyLkV2ZW50cy5Ub3Vj
aEVuZCwgdGhpcywgdHJ1ZSk7Ci0gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKEdlc3R1
cmVSZWNvZ25pemVyLkV2ZW50cy5Ub3VjaENhbmNlbCwgdGhpcywgdHJ1ZSk7CisgICAgICAgIHdp
bmRvdy5hZGRFdmVudExpc3RlbmVyKEdlc3R1cmVSZWNvZ25pemVyLkV2ZW50cy5Qb2ludGVyTW92
ZSwgdGhpcywgdHJ1ZSk7CisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKEdlc3R1cmVS
ZWNvZ25pemVyLkV2ZW50cy5Qb2ludGVyVXAsIHRoaXMsIHRydWUpOworICAgICAgICB3aW5kb3cu
YWRkRXZlbnRMaXN0ZW5lcihHZXN0dXJlUmVjb2duaXplci5FdmVudHMuUG9pbnRlckNhbmNlbCwg
dGhpcywgdHJ1ZSk7CiAgICAgICAgIHRoaXMuZW50ZXJQb3NzaWJsZVN0YXRlKCk7CiAgICAgfQog
CkBAIC0yMzUsMTYgKzIyMywxNiBAQCBjbGFzcyBHZXN0dXJlUmVjb2duaXplcgogICAgICAgICB0
aGlzLl91cGRhdGVLZXlib2FyZE1vZGlmaWVycyhldmVudCk7CiAKICAgICAgICAgc3dpdGNoIChl
dmVudC50eXBlKSB7Ci0gICAgICAgIGNhc2UgR2VzdHVyZVJlY29nbml6ZXIuRXZlbnRzLlRvdWNo
U3RhcnQ6CisgICAgICAgIGNhc2UgR2VzdHVyZVJlY29nbml6ZXIuRXZlbnRzLlBvaW50ZXJEb3du
OgogICAgICAgICAgICAgdGhpcy50b3VjaGVzQmVnYW4oZXZlbnQpOwogICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgIGNhc2UgR2VzdHVyZVJlY29nbml6ZXIuRXZlbnRzLlRvdWNoTW92ZToKKyAg
ICAgICAgY2FzZSBHZXN0dXJlUmVjb2duaXplci5FdmVudHMuUG9pbnRlck1vdmU6CiAgICAgICAg
ICAgICB0aGlzLnRvdWNoZXNNb3ZlZChldmVudCk7CiAgICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgY2FzZSBHZXN0dXJlUmVjb2duaXplci5FdmVudHMuVG91Y2hFbmQ6CisgICAgICAgIGNhc2Ug
R2VzdHVyZVJlY29nbml6ZXIuRXZlbnRzLlBvaW50ZXJVcDoKICAgICAgICAgICAgIHRoaXMudG91
Y2hlc0VuZGVkKGV2ZW50KTsKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIEdlc3R1
cmVSZWNvZ25pemVyLkV2ZW50cy5Ub3VjaENhbmNlbDoKKyAgICAgICAgY2FzZSBHZXN0dXJlUmVj
b2duaXplci5FdmVudHMuUG9pbnRlckNhbmNlbDoKICAgICAgICAgICAgIHRoaXMudG91Y2hlc0Nh
bmNlbGxlZChldmVudCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBHZXN0dXJl
UmVjb2duaXplci5FdmVudHMuR2VzdHVyZVN0YXJ0OgpAQCAtMjc1LDExICsyNjMsMTEgQEAgY2xh
c3MgR2VzdHVyZVJlY29nbml6ZXIKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBpZiAo
dGhpcy5fZW5hYmxlZCkgewotICAgICAgICAgICAgdGhpcy5fdGFyZ2V0LmFkZEV2ZW50TGlzdGVu
ZXIoR2VzdHVyZVJlY29nbml6ZXIuRXZlbnRzLlRvdWNoU3RhcnQsIHRoaXMpOworICAgICAgICAg
ICAgdGhpcy5fdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoR2VzdHVyZVJlY29nbml6ZXIuRXZlbnRz
LlBvaW50ZXJEb3duLCB0aGlzKTsKICAgICAgICAgICAgIGlmIChHZXN0dXJlUmVjb2duaXplci5T
dXBwb3J0c0dlc3R1cmVzKQogICAgICAgICAgICAgICAgIHRoaXMuX3RhcmdldC5hZGRFdmVudExp
c3RlbmVyKEdlc3R1cmVSZWNvZ25pemVyLkV2ZW50cy5HZXN0dXJlU3RhcnQsIHRoaXMpOwogICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgICAgdGhpcy5fdGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVu
ZXIoR2VzdHVyZVJlY29nbml6ZXIuRXZlbnRzLlRvdWNoU3RhcnQsIHRoaXMpOworICAgICAgICAg
ICAgdGhpcy5fdGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoR2VzdHVyZVJlY29nbml6ZXIuRXZl
bnRzLlBvaW50ZXJEb3duLCB0aGlzKTsKICAgICAgICAgICAgIGlmIChHZXN0dXJlUmVjb2duaXpl
ci5TdXBwb3J0c0dlc3R1cmVzKQogICAgICAgICAgICAgICAgIHRoaXMuX3RhcmdldC5yZW1vdmVF
dmVudExpc3RlbmVyKEdlc3R1cmVSZWNvZ25pemVyLkV2ZW50cy5HZXN0dXJlU3RhcnQsIHRoaXMp
OwogICAgICAgICB9CkBAIC0yODcsNjIgKzI3NSwyOSBAQCBjbGFzcyBHZXN0dXJlUmVjb2duaXpl
cgogCiAgICAgX3JlbW92ZVRyYWNraW5nTGlzdGVuZXJzKCkKICAgICB7Ci0gICAgICAgIHdpbmRv
dy5yZW1vdmVFdmVudExpc3RlbmVyKEdlc3R1cmVSZWNvZ25pemVyLkV2ZW50cy5Ub3VjaE1vdmUs
IHRoaXMsIHRydWUpOwotICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihHZXN0dXJl
UmVjb2duaXplci5FdmVudHMuVG91Y2hFbmQsIHRoaXMsIHRydWUpOworICAgICAgICB3aW5kb3cu
cmVtb3ZlRXZlbnRMaXN0ZW5lcihHZXN0dXJlUmVjb2duaXplci5FdmVudHMuUG9pbnRlck1vdmUs
IHRoaXMsIHRydWUpOworICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihHZXN0dXJl
UmVjb2duaXplci5FdmVudHMuUG9pbnRlclVwLCB0aGlzLCB0cnVlKTsKKyAgICAgICAgd2luZG93
LnJlbW92ZUV2ZW50TGlzdGVuZXIoR2VzdHVyZVJlY29nbml6ZXIuRXZlbnRzLlBvaW50ZXJDYW5j
ZWwsIHRoaXMsIHRydWUpOwogICAgICAgICB0aGlzLl90YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5l
cihHZXN0dXJlUmVjb2duaXplci5FdmVudHMuR2VzdHVyZUNoYW5nZSwgdGhpcywgdHJ1ZSk7CiAg
ICAgICAgIHRoaXMuX3RhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKEdlc3R1cmVSZWNvZ25pemVy
LkV2ZW50cy5HZXN0dXJlRW5kLCB0aGlzLCB0cnVlKTsKICAgICB9CiAKICAgICBfdXBkYXRlVGFy
Z2V0VG91Y2hlcyhldmVudCkKICAgICB7Ci0gICAgICAgIGlmICghR2VzdHVyZVJlY29nbml6ZXIu
U3VwcG9ydHNUb3VjaGVzKSB7Ci0gICAgICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gR2VzdHVy
ZVJlY29nbml6ZXIuRXZlbnRzLlRvdWNoRW5kKQotICAgICAgICAgICAgICAgIHRoaXMuX3Rhcmdl
dFRvdWNoZXMgPSBbXTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICB0aGlzLl90
YXJnZXRUb3VjaGVzID0gW2V2ZW50XTsKKyAgICAgICAgaWYgKCEoZXZlbnQgaW5zdGFuY2VvZiBQ
b2ludGVyRXZlbnQpKQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9CiAKLSAgICAgICAg
aWYgKCEoZXZlbnQgaW5zdGFuY2VvZiBUb3VjaEV2ZW50KSkKLSAgICAgICAgICAgIHJldHVybjsK
LQotICAgICAgICAvLyBXaXRoIGEgdG91Y2hzdGFydCBldmVudCwgZXZlbnQudGFyZ2V0VG91Y2hl
cyBpcyBhY2N1cmF0ZSBzbwotICAgICAgICAvLyB3ZSBzaW1wbHkgYWRkIGFsbCBvZiB0aG9zZS4K
LSAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09IEdlc3R1cmVSZWNvZ25pemVyLkV2ZW50cy5Ub3Vj
aFN0YXJ0KSB7Ci0gICAgICAgICAgICB0aGlzLl90YXJnZXRUb3VjaGVzID0gW107Ci0gICAgICAg
ICAgICBsZXQgdG91Y2hlcyA9IGV2ZW50LnRhcmdldFRvdWNoZXM7Ci0gICAgICAgICAgICBmb3Ig
KGxldCBpID0gMCwgY291bnQgPSB0b3VjaGVzLmxlbmd0aDsgaSA8IGNvdW50OyArK2kpCi0gICAg
ICAgICAgICAgICAgdGhpcy5fdGFyZ2V0VG91Y2hlcy5wdXNoKHRvdWNoZXNbaV0pOworICAgICAg
ICBpZiAoZXZlbnQudHlwZSA9PT0gR2VzdHVyZVJlY29nbml6ZXIuRXZlbnRzLlBvaW50ZXJEb3du
KSB7CisgICAgICAgICAgICB0aGlzLl90YXJnZXRQb2ludGVycy5zZXQoZXZlbnQucG9pbnRlcklk
LCBldmVudCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICAvLyBX
aXRoIGEgdG91Y2htb3ZlIGV2ZW50LCB0aGUgdGFyZ2V0IGlzIHdpbmRvdyBzbyBldmVudC50YXJn
ZXRUb3VjaGVzIGlzCi0gICAgICAgIC8vIGluYWNjdXJhdGUgc28gd2UgYWRkIGFsbCB0b3VjaGVz
IHRoYXQgd2Uga25ldyBhYm91dCBwcmV2aW91c2x5LgotICAgICAgICBpZiAoZXZlbnQudHlwZSA9
PT0gR2VzdHVyZVJlY29nbml6ZXIuRXZlbnRzLlRvdWNoTW92ZSkgewotICAgICAgICAgICAgbGV0
IHRhcmdldElkZW50aWZpZXJzID0gdGhpcy5fdGFyZ2V0VG91Y2hlcy5tYXAoZnVuY3Rpb24odG91
Y2gpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gdG91Y2guaWRlbnRpZmllcjsKLSAgICAgICAg
ICAgIH0pOwotCi0gICAgICAgICAgICB0aGlzLl90YXJnZXRUb3VjaGVzID0gW107Ci0gICAgICAg
ICAgICBsZXQgdG91Y2hlcyA9IGV2ZW50LnRvdWNoZXM7Ci0gICAgICAgICAgICBmb3IgKGxldCBp
ID0gMCwgY291bnQgPSB0b3VjaGVzLmxlbmd0aDsgaSA8IGNvdW50OyArK2kpIHsKLSAgICAgICAg
ICAgICAgICBsZXQgdG91Y2ggPSB0b3VjaGVzW2ldOwotICAgICAgICAgICAgICAgIGlmICh0YXJn
ZXRJZGVudGlmaWVycy5pbmRleE9mKHRvdWNoLmlkZW50aWZpZXIpICE9PSAtMSkKLSAgICAgICAg
ICAgICAgICAgICAgdGhpcy5fdGFyZ2V0VG91Y2hlcy5wdXNoKHRvdWNoKTsKLSAgICAgICAgICAg
IH0KKyAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09IEdlc3R1cmVSZWNvZ25pemVyLkV2ZW50cy5Q
b2ludGVyTW92ZSkgeworICAgICAgICAgICAgdGhpcy5fdGFyZ2V0UG9pbnRlcnMuc2V0KGV2ZW50
LnBvaW50ZXJJZCwgZXZlbnQpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAg
ICAgICAgLy8gV2l0aCBhIHRvdWNoZW5kIG9yIHRvdWNoY2FuY2VsIGV2ZW50LCB3ZSBvbmx5IGtl
ZXAgdGhlIGV4aXN0aW5nIHRvdWNoZXMKLSAgICAgICAgLy8gdGhhdCBhcmUgYWxzbyBmb3VuZCBp
biBldmVudC50b3VjaGVzLgotICAgICAgICBsZXQgYWxsVG91Y2hlcyA9IGV2ZW50LnRvdWNoZXM7
Ci0gICAgICAgIGxldCBleGlzdGluZ0lkZW50aWZpZXJzID0gW107Ci0gICAgICAgIGZvciAobGV0
IGkgPSAwLCBjb3VudCA9IGFsbFRvdWNoZXMubGVuZ3RoOyBpIDwgY291bnQ7ICsraSkKLSAgICAg
ICAgICAgIGV4aXN0aW5nSWRlbnRpZmllcnMucHVzaChhbGxUb3VjaGVzW2ldLmlkZW50aWZpZXIp
OwotCi0gICAgICAgIHRoaXMuX3RhcmdldFRvdWNoZXMgPSB0aGlzLl90YXJnZXRUb3VjaGVzLmZp
bHRlcihmdW5jdGlvbih0b3VjaCkgewotICAgICAgICAgICAgcmV0dXJuIGV4aXN0aW5nSWRlbnRp
ZmllcnMuaW5kZXhPZih0b3VjaC5pZGVudGlmaWVyKSAhPT0gLTE7Ci0gICAgICAgIH0pOworICAg
ICAgICB0aGlzLl90YXJnZXRQb2ludGVycy5kZWxldGUoZXZlbnQucG9pbnRlcklkKTsKICAgICB9
CiAKICAgICBfdXBkYXRlS2V5Ym9hcmRNb2RpZmllcnMoZXZlbnQpCkBAIC0zNjksMTAgKzMyNCwx
MCBAQCBHZXN0dXJlUmVjb2duaXplci5TdGF0ZXMgPSB7CiB9OwogCiBHZXN0dXJlUmVjb2duaXpl
ci5FdmVudHMgPSB7Ci0gICAgVG91Y2hTdGFydCAgICAgOiBHZXN0dXJlUmVjb2duaXplci5TdXBw
b3J0c1RvdWNoZXMgPyAidG91Y2hzdGFydCIgOiAibW91c2Vkb3duIiwKLSAgICBUb3VjaE1vdmUg
ICAgICA6IEdlc3R1cmVSZWNvZ25pemVyLlN1cHBvcnRzVG91Y2hlcyA/ICJ0b3VjaG1vdmUiIDog
Im1vdXNlbW92ZSIsCi0gICAgVG91Y2hFbmQgICAgICAgOiBHZXN0dXJlUmVjb2duaXplci5TdXBw
b3J0c1RvdWNoZXMgPyAidG91Y2hlbmQiIDogIm1vdXNldXAiLAotICAgIFRvdWNoQ2FuY2VsICAg
IDogInRvdWNoY2FuY2VsIiwKKyAgICBQb2ludGVyRG93biAgICA6ICJwb2ludGVyZG93biIsCisg
ICAgUG9pbnRlck1vdmUgICAgOiAicG9pbnRlcm1vdmUiLAorICAgIFBvaW50ZXJVcCAgICAgIDog
InBvaW50ZXJ1cCIsCisgICAgUG9pbnRlckNhbmNlbCAgOiAicG9pbnRlcmNhbmNlbCIsCiAgICAg
R2VzdHVyZVN0YXJ0ICAgOiAiZ2VzdHVyZXN0YXJ0IiwKICAgICBHZXN0dXJlQ2hhbmdlICA6ICJn
ZXN0dXJlY2hhbmdlIiwKICAgICBHZXN0dXJlRW5kICAgICA6ICJnZXN0dXJlZW5kIgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDBm
NDhjZjBmNzM4ZTczMDczM2M2YzQzM2IwODlmMGM5OGIzNTRjMGYuLjM4M2Q1MmRjNDQ4NmFlNDE5
ZjVlYzQzMGQ4NzIxNTVlZjE2YzYwM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTc0MSw2ICs3NDEsNyBAQAogCQkyRDUwQTRC
NzFDRTEwRTAwMDAxOTgwNDkgLyogQXR0YWNobWVudFBsYWNlaG9sZGVyLnBuZyBpbiBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ1MEE0QjUxQ0UxMEUwMDAw
MTk4MDQ5IC8qIEF0dGFjaG1lbnRQbGFjZWhvbGRlci5wbmcgKi87IH07CiAJCTJENTBBNEI4MUNF
MTBFMDAwMDE5ODA0OSAvKiBBdHRhY2htZW50UGxhY2Vob2xkZXJAMngucG5nIGluIFJlc291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDUwQTRCNjFDRTEwRTAwMDAx
OTgwNDkgLyogQXR0YWNobWVudFBsYWNlaG9sZGVyQDJ4LnBuZyAqLzsgfTsKIAkJMkQ1NjQ2QjAx
QjhGODQ5MzAwM0M0OTk0IC8qIERpY3Rpb25hcnlQb3B1cEluZm8uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJENTY0NkFGMUI4Rjg0OTMwMDNDNDk5NCAv
KiBEaWN0aW9uYXJ5UG9wdXBJbmZvLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJMkQ1NjgwMDMyMzg4ODYwNDAwN0VDQjhBIC8qIGF1dG8taGlkZS1j
b250cm9sbGVyLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyRDU2ODAwMTIzODg4NjAzMDA3RUNCOEEgLyogYXV0by1oaWRlLWNvbnRyb2xsZXIuanMg
Ki87IH07CiAJCTJENUE1OTMxMTUyNTI1RDAwMDM2RUU1MSAvKiBJbWFnZU9yaWVudGF0aW9uLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODc0OEQ2NjEy
Q0MzNzYzMDAxRkJBNDEgLyogSW1hZ2VPcmllbnRhdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTJENUJDNDI3MTZGODgyRUUwMDcwNDhEMCAv
KiBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDVCQzQyNTE2Rjg4MkJFMDA3MDQ4RDAgLyogU2VjdXJp
dHlQb2xpY3lWaW9sYXRpb25FdmVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTJENUM5RDAwMTlDN0I1MkUwMEIzQzVDMSAvKiBQYWdlT3Zlcmxh
eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ1QzlD
RkMxOUM3QjUyRTAwQjNDNUMxIC8qIFBhZ2VPdmVybGF5LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTY3MDksNiArNjcxMCw3IEBACiAJCTJENTBB
NEI1MUNFMTBFMDAwMDE5ODA0OSAvKiBBdHRhY2htZW50UGxhY2Vob2xkZXIucG5nICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gaW1hZ2UucG5nOyBwYXRo
ID0gQXR0YWNobWVudFBsYWNlaG9sZGVyLnBuZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMkQ1MEE0QjYxQ0UxMEUwMDAwMTk4MDQ5IC8qIEF0dGFjaG1lbnRQbGFjZWhvbGRlckAyeC5w
bmcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBpbWFn
ZS5wbmc7IHBhdGggPSAiQXR0YWNobWVudFBsYWNlaG9sZGVyQDJ4LnBuZyI7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTJENTY0NkFGMUI4Rjg0OTMwMDNDNDk5NCAvKiBEaWN0aW9uYXJ5
UG9wdXBJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERpY3Rpb25hcnlQ
b3B1cEluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkQ1NjgwMDEyMzg4ODYw
MzAwN0VDQjhBIC8qIGF1dG8taGlkZS1jb250cm9sbGVyLmpzICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5qYXZhc2NyaXB0OyBwYXRoID0gImF1dG8taGlkZS1jb250cm9sbGVyLmpzIjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ1QkM0MjUxNkY4ODJCRTAwNzA0OEQwIC8qIFNlY3VyaXR5
UG9saWN5VmlvbGF0aW9uRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkyRDVCQzQyNjE2Rjg4MkJFMDA3MDQ4RDAgLyogU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25F
dmVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25F
dmVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJENUM5Q0ZCMTlDN0I1MkUw
MEIzQzVDMSAvKiBQYWdlT3ZlcmxheS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBQYWdlT3ZlcmxheS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02
NzMwLDYgKzY3MzIsOSBAQAogCQkyRDgxRTFDRDIxQTc4Q0MyMDBBMzJDRjQgLyogSW5zZXJ0RWRp
dGFibGVJbWFnZUNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5z
ZXJ0RWRpdGFibGVJbWFnZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MkQ4Mjg3RjQxNkU0QTAzODAwODZCRDAwIC8qIEhpdFRlc3RMb2NhdGlvbi5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIaXRUZXN0TG9jYXRpb24uY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkyRDgyODdGNTE2RTRBMDM4MDA4NkJEMDAgLyogSGl0VGVz
dExvY2F0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhpdFRlc3RMb2Nh
dGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRDhEM0JFQjIzODQ3QUM5MDA2
NTcwNzUgLyogZ2VzdHVyZS1yZWNvZ25pemVyLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRoID0gImdl
c3R1cmUtcmVjb2duaXplci5qcyI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJEOEQz
QkVDMjM4NDdBQzkwMDY1NzA3NSAvKiBwaW5jaC5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgcGF0aCA9IHBp
bmNoLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRDhEM0JFRDIzODQ3QUM5MDA2
NTcwNzUgLyogdGFwLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRoID0gdGFwLmpzOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkyRDhGRUJEQTE0M0UzRUY3MDA3MjUwMkIgLyogQ1NTQ3Jvc3Nm
YWRlVmFsdWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTQ3Jv
c3NmYWRlVmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDhGRUJEQjE0
M0UzRUY3MDA3MjUwMkIgLyogQ1NTQ3Jvc3NmYWRlVmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQ1NTQ3Jvc3NmYWRlVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMkQ5MDY2MDQwQkUxNDFENDAwOTU2OTk4IC8qIFJlbmRlckxheW91dFN0YXRlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJMYXlvdXRTdGF0
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzczOCw2ICsxNzc0MywxNiBA
QAogCQkJcGF0aCA9IG1hYzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTJE
OEQzQkVBMjM4NDdBQzgwMDY1NzA3NSAvKiBnZXN0dXJlLXJlY29nbml6ZXJzICovID0geworCQkJ
aXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQkyRDhEM0JFQjIzODQ3QUM5MDA2
NTcwNzUgLyogZ2VzdHVyZS1yZWNvZ25pemVyLmpzICovLAorCQkJCTJEOEQzQkVDMjM4NDdBQzkw
MDY1NzA3NSAvKiBwaW5jaC5qcyAqLywKKwkJCQkyRDhEM0JFRDIzODQ3QUM5MDA2NTcwNzUgLyog
dGFwLmpzICovLAorCQkJKTsKKwkJCXBhdGggPSAiZ2VzdHVyZS1yZWNvZ25pemVycyI7CisJCQlz
b3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQkyRERFMUNBQjFGNTc0NzU5MDBEMUEzNjUg
Lyogd2VidnIgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAt
MjA5MTgsNiArMjA5MzMsNyBAQAogCQkJCTcxNkZBMEQ4MURCMjY1OTEwMDczMjNDQyAvKiBhaXJw
bGF5LWJ1dHRvbi5jc3MgKi8sCiAJCQkJNzE2RkEwRDkxREIyNjU5MTAwNzMyM0NDIC8qIGFpcnBs
YXktYnV0dG9uLmpzICovLAogCQkJCTcxNkZBMERBMURCMjY1OTEwMDczMjNDQyAvKiBhaXJwbGF5
LXBsYWNhcmQuanMgKi8sCisJCQkJMkQ1NjgwMDEyMzg4ODYwMzAwN0VDQjhBIC8qIGF1dG8taGlk
ZS1jb250cm9sbGVyLmpzICovLAogCQkJCTcxNkZBMERDMURCMjY1OTEwMDczMjNDQyAvKiBidXR0
b24uY3NzICovLAogCQkJCTcxNkZBMEREMURCMjY1OTEwMDczMjNDQyAvKiBidXR0b24uanMgKi8s
CiAJCQkJNzE2RkEwREUxREIyNjU5MTAwNzMyM0NDIC8qIGJ1dHRvbnMtY29udGFpbmVyLmNzcyAq
LywKQEAgLTIwOTk3LDYgKzIxMDEzLDcgQEAKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRy
ZW4gPSAoCiAJCQkJNzE2RkEwRDcxREIyNjU5MTAwNzMyM0NDIC8qIGNvbnRyb2xzICovLAorCQkJ
CTJEOEQzQkVBMjM4NDdBQzgwMDY1NzA3NSAvKiBnZXN0dXJlLXJlY29nbml6ZXJzICovLAogCQkJ
CTcxRDZBQTZGMURBNEVBRjcwMEIyMzk2OSAvKiBpbWFnZXMgKi8sCiAJCQkJNzE0MTMxNDgxREM5
RDZFRjAwMzM2MTA3IC8qIGpzLWZpbGVzICovLAogCQkJCTcxRDAyRDkxMURCNTVDNEUwMERENUNG
NSAvKiBtZWRpYSAqLywKQEAgLTMzMTE5LDYgKzMzMTM2LDcgQEAKIAkJCWZpbGVzID0gKAogCQkJ
CTJENTBBNEI3MUNFMTBFMDAwMDE5ODA0OSAvKiBBdHRhY2htZW50UGxhY2Vob2xkZXIucG5nIGlu
IFJlc291cmNlcyAqLywKIAkJCQkyRDUwQTRCODFDRTEwRTAwMDAxOTgwNDkgLyogQXR0YWNobWVu
dFBsYWNlaG9sZGVyQDJ4LnBuZyBpbiBSZXNvdXJjZXMgKi8sCisJCQkJMkQ1NjgwMDMyMzg4ODYw
NDAwN0VDQjhBIC8qIGF1dG8taGlkZS1jb250cm9sbGVyLmpzIGluIFJlc291cmNlcyAqLywKIAkJ
CQlBMUFBOUFCOTFEMjM5MTE1MDBGRUFEQjMgLyogQ29udGVudEZpbHRlckJsb2NrZWRQYWdlLmh0
bWwgaW4gUmVzb3VyY2VzICovLAogCQkJCUExMUU4QzA1MUIxRTI4RjQwMDAzQTdDNyAvKiBjb3B5
Q3Vyc29yLnBuZyBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJMkQ5RjBFMTMxNEZGMUNCRjAwQkEwRkY3
IC8qIGxpbmVhclNSR0IuaWNjIGluIFJlc291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5n
ZUlucHV0VHlwZS5jcHAKaW5kZXggODVlZGI5N2JiMzUwY2U2ZTY1ODk0MmM0MjY0NDc2ODM2ZTEw
M2I0YS4uMWRjZmUzZTMxMjgyN2U0NGZlMDZjNDQwOTMwNjFiYWI3YzNiMTJlNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAKQEAgLTEzNSw4ICsxMzUsNiBAQCBib29sIFJh
bmdlSW5wdXRUeXBlOjppc1N0ZXBwYWJsZSgpIGNvbnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
LSNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKLQogdm9pZCBSYW5nZUlucHV0VHlwZTo6aGFuZGxl
TW91c2VEb3duRXZlbnQoTW91c2VFdmVudCYgZXZlbnQpCiB7CiAgICAgQVNTRVJUKGVsZW1lbnQo
KSk7CkBAIC0xNTUsOCArMTUzLDYgQEAgdm9pZCBSYW5nZUlucHV0VHlwZTo6aGFuZGxlTW91c2VE
b3duRXZlbnQoTW91c2VFdmVudCYgZXZlbnQpCiAgICAgdGh1bWIuZHJhZ0Zyb20oZXZlbnQuYWJz
b2x1dGVMb2NhdGlvbigpKTsKIH0KIAotI2VuZGlmCi0KICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRT
KQogdm9pZCBSYW5nZUlucHV0VHlwZTo6aGFuZGxlVG91Y2hFdmVudChUb3VjaEV2ZW50JiBldmVu
dCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuaAppbmRleCAzMmM4OGU3NjlkMGUx
ZDQ0Yjc3MzhiZDZjMjM2NDFhYTNiNTE4M2ZjLi41MWZiNzlkM2Y0OTllNDEyZTcxMGZhNzY5NTdm
OGJhYWM5MmZmYTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRU
eXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5oCkBAIC01MCw5
ICs1MCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBzdXBwb3J0c1JlcXVpcmVkKCkgY29uc3QgZmlu
YWw7CiAgICAgU3RlcFJhbmdlIGNyZWF0ZVN0ZXBSYW5nZShBbnlTdGVwSGFuZGxpbmcpIGNvbnN0
IGZpbmFsOwogICAgIGJvb2wgaXNTdGVwcGFibGUoKSBjb25zdCBmaW5hbDsKLSNpZiAhUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKICAgICB2b2lkIGhhbmRsZU1vdXNlRG93bkV2ZW50KE1vdXNlRXZlbnQm
KSBmaW5hbDsKLSNlbmRpZgogICAgIFNob3VsZENhbGxCYXNlRXZlbnRIYW5kbGVyIGhhbmRsZUtl
eWRvd25FdmVudChLZXlib2FyZEV2ZW50JikgZmluYWw7CiAgICAgUmVuZGVyUHRyPFJlbmRlckVs
ZW1lbnQ+IGNyZWF0ZUlucHV0UmVuZGVyZXIoUmVuZGVyU3R5bGUmJikgZmluYWw7CiAgICAgdm9p
ZCBjcmVhdGVTaGFkb3dTdWJ0cmVlKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcAppbmRleCA5MmE3ZTIxZDcwMGE0NmQ5NTNi
MTA1MDdlNDhhOTE2NzQ4NDIyYjIxLi4zNTMzZThiYTgwNzc0ZGMyZDY2YzE1YTQ4MTIxYzYzNzhk
ZGFlNmE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVt
YkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1i
RWxlbWVudC5jcHAKQEAgLTI0Niw5ICsyNDYsNyBAQCB2b2lkIFNsaWRlclRodW1iRWxlbWVudDo6
ZHJhZ0Zyb20oY29uc3QgTGF5b3V0UG9pbnQmIHBvaW50KQogewogICAgIFJlZjxTbGlkZXJUaHVt
YkVsZW1lbnQ+IHByb3RlY3RlZFRoaXMoKnRoaXMpOwogICAgIHNldFBvc2l0aW9uRnJvbVBvaW50
KHBvaW50KTsKLSNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBzdGFydERyYWdnaW5nKCk7
Ci0jZW5kaWYKIH0KIAogdm9pZCBTbGlkZXJUaHVtYkVsZW1lbnQ6OnNldFBvc2l0aW9uRnJvbVBv
aW50KGNvbnN0IExheW91dFBvaW50JiBhYnNvbHV0ZVBvaW50KQpAQCAtMzM4LDcgKzMzNiw2IEBA
IHZvaWQgU2xpZGVyVGh1bWJFbGVtZW50OjpzdG9wRHJhZ2dpbmcoKQogICAgICAgICByZW5kZXJl
cigpLT5zZXROZWVkc0xheW91dCgpOwogfQogCi0jaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCiB2
b2lkIFNsaWRlclRodW1iRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCYgZXZlbnQp
CiB7CiAgICAgaWYgKCFpczxNb3VzZUV2ZW50PihldmVudCkpIHsKQEAgLTM3Niw5ICszNzMsNiBA
QCB2b2lkIFNsaWRlclRodW1iRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCYgZXZl
bnQpCiAKICAgICBIVE1MRGl2RWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihtb3VzZUV2ZW50
KTsKIH0KLSNlbmRpZgotCi0jaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCiAKIGJvb2wgU2xpZGVy
VGh1bWJFbGVtZW50Ojp3aWxsUmVzcG9uZFRvTW91c2VNb3ZlRXZlbnRzKCkKIHsKQEAgLTM5OCw3
ICszOTIsNiBAQCBib29sIFNsaWRlclRodW1iRWxlbWVudDo6d2lsbFJlc3BvbmRUb01vdXNlQ2xp
Y2tFdmVudHMoKQogICAgIHJldHVybiBIVE1MRGl2RWxlbWVudDo6d2lsbFJlc3BvbmRUb01vdXNl
Q2xpY2tFdmVudHMoKTsKIH0KIAotI2VuZGlmIC8vICFQTEFURk9STShJT1NfRkFNSUxZKQogCiB2
b2lkIFNsaWRlclRodW1iRWxlbWVudDo6d2lsbERldGFjaFJlbmRlcmVycygpCiB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5oCmluZGV4IDg0MjBi
MDA3YjI2YmZlZjBhYjRkMjUxNTljMzk1YmM5ZWM3NTJjNzYuLjA2YWJiZjk2NzAwZDFkZGRhMTZk
NTUyM2U1NTAwMjNjNTJhMDYwZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L1NsaWRlclRodW1iRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L1NsaWRlclRodW1iRWxlbWVudC5oCkBAIC02NiwxMSArNjYsOSBAQCBwcml2YXRlOgogICAgIGJv
b2wgbWF0Y2hlc1JlYWRXcml0ZVBzZXVkb0NsYXNzKCkgY29uc3QgZmluYWw7CiAgICAgUmVmUHRy
PEVsZW1lbnQ+IGZvY3VzRGVsZWdhdGUoKSBmaW5hbDsKIAotI2lmICFQTEFURk9STShJT1NfRkFN
SUxZKQogICAgIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCYpIGZpbmFsOwogICAgIGJv
b2wgd2lsbFJlc3BvbmRUb01vdXNlTW92ZUV2ZW50cygpIGZpbmFsOwogICAgIGJvb2wgd2lsbFJl
c3BvbmRUb01vdXNlQ2xpY2tFdmVudHMoKSBmaW5hbDsKLSNlbmRpZgogCiAjaWYgRU5BQkxFKElP
U19UT1VDSF9FVkVOVFMpCiAgICAgdm9pZCBkaWRBdHRhY2hSZW5kZXJlcnMoKSBmaW5hbDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384219</attachid>
            <date>2019-11-22 18:13:10 -0800</date>
            <delta_ts>2019-12-04 14:55:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204543-20191122181309.patch</filename>
            <type>text/plain</type>
            <size>30379</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyNzI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTZmMTNmMjU5YTFkYTM2
YWZlZDg0YWI5NWFmZDJkYWM0MWIzNjI4Yy4uZjYwMWMyZDdiZGQxYjU3NmY0OWQ2MTFlODE1N2Fl
ZTczYTY0Y2MyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDE5LTExLTIyICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIG1hY0NhdGFseXN0
OiBSRUdSRVNTSU9OIChyMjUxMzIwKTogV2ViS2l0LW5hdGl2ZSBtZWRpYSBjb250cm9scyBkbyBu
b3QgcmVzcG9uZCB0byBob3ZlciBvciBjbGljaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0NTQzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NzIw
ODYyMT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IE1vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL2F1dG8taGlkZS1jb250cm9s
bGVyLmpzOgorICAgICAgICAoQXV0b0hpZGVDb250cm9sbGVyKToKKyAgICAgICAgKEF1dG9IaWRl
Q29udHJvbGxlci5wcm90b3R5cGUuc2V0IGZhZGVzV2hpbGVJZGxlKToKKyAgICAgICAgKEF1dG9I
aWRlQ29udHJvbGxlci5wcm90b3R5cGUuaGFuZGxlRXZlbnQpOgorICAgICAgICAqIE1vZHVsZXMv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL3NsaWRlci5jc3M6CisgICAgICAgICguaW9z
IC5zbGlkZXIgPiBpbnB1dCk6CisgICAgICAgICogTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvY29udHJvbHMvc2xpZGVyLmpzOgorICAgICAgICAoU2xpZGVyLnByb3RvdHlwZS5oYW5kbGVF
dmVudCk6CisgICAgICAgIChTbGlkZXIucHJvdG90eXBlLl9oYW5kbGVQb2ludGVyZG93bkV2ZW50
KToKKyAgICAgICAgKFNsaWRlci5wcm90b3R5cGUuX2hhbmRsZVBvaW50ZXJ1cEV2ZW50KToKKyAg
ICAgICAgKFNsaWRlci5wcm90b3R5cGUuX2hhbmRsZU1vdXNlZG93bkV2ZW50KTogRGVsZXRlZC4K
KyAgICAgICAgKFNsaWRlci5wcm90b3R5cGUuX2hhbmRsZVRvdWNoc3RhcnRFdmVudCk6IERlbGV0
ZWQuCisgICAgICAgIChTbGlkZXIucHJvdG90eXBlLl9oYW5kbGVNb3VzZXVwRXZlbnQpOiBEZWxl
dGVkLgorICAgICAgICAoU2xpZGVyLnByb3RvdHlwZS5faGFuZGxlVG91Y2hlbmRFdmVudCk6IERl
bGV0ZWQuCisgICAgICAgICogTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvZ2VzdHVyZS1y
ZWNvZ25pemVycy9nZXN0dXJlLXJlY29nbml6ZXIuanM6CisgICAgICAgIChHZXN0dXJlUmVjb2du
aXplcik6CisgICAgICAgIChHZXN0dXJlUmVjb2duaXplci5wcm90b3R5cGUuZ2V0IG51bWJlck9m
VG91Y2hlcyk6CisgICAgICAgIChHZXN0dXJlUmVjb2duaXplci5wcm90b3R5cGUubG9jYXRpb25J
bkVsZW1lbnQpOgorICAgICAgICAoR2VzdHVyZVJlY29nbml6ZXIucHJvdG90eXBlLmxvY2F0aW9u
SW5DbGllbnQpOgorICAgICAgICAoR2VzdHVyZVJlY29nbml6ZXIucHJvdG90eXBlLnRvdWNoZXNC
ZWdhbik6CisgICAgICAgIChHZXN0dXJlUmVjb2duaXplci5wcm90b3R5cGUuaGFuZGxlRXZlbnQp
OgorICAgICAgICAoR2VzdHVyZVJlY29nbml6ZXIucHJvdG90eXBlLl91cGRhdGVCYXNlTGlzdGVu
ZXJzKToKKyAgICAgICAgKEdlc3R1cmVSZWNvZ25pemVyLnByb3RvdHlwZS5fcmVtb3ZlVHJhY2tp
bmdMaXN0ZW5lcnMpOgorICAgICAgICAoR2VzdHVyZVJlY29nbml6ZXIucHJvdG90eXBlLl91cGRh
dGVUYXJnZXRUb3VjaGVzKToKKyAgICAgICAgKEdlc3R1cmVSZWNvZ25pemVyLnByb3RvdHlwZS5s
b2NhdGlvbk9mVG91Y2hJbkVsZW1lbnQpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBodG1sL1JhbmdlSW5wdXRUeXBlLmNw
cDoKKyAgICAgICAgKiBodG1sL1JhbmdlSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9zaGFk
b3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNsaWRlclRodW1i
RWxlbWVudDo6ZHJhZ0Zyb20pOgorICAgICAgICAoV2ViQ29yZTo6U2xpZGVyVGh1bWJFbGVtZW50
OjpkZWZhdWx0RXZlbnRIYW5kbGVyKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9TbGlkZXJUaHVt
YkVsZW1lbnQuaDoKKwogMjAxOS0xMS0yMCAgRnVqaWkgSGlyb25vcmkgIDxIaXJvbm9yaS5GdWpp
aUBzb255LmNvbT4KIAogICAgICAgICBbTVNWQ10gZXJyb3IgQzIwMzk6ICd3ZWFrUHRyRmFjdG9y
eSc6IGlzIG5vdCBhIG1lbWJlciBvZiAnV2ViQ29yZTo6RG9jdW1lbnRTdG9yYWdlQWNjZXNzOjpy
ZXF1ZXN0U3RvcmFnZUFjY2Vzczo6PGxhbWJkYV8zZjJjZmQ3NzA0ZjkzZDhmZTE5ZDViNWYwNjRm
OGFkZD4nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1j
b250cm9scy9jb250cm9scy9hdXRvLWhpZGUtY29udHJvbGxlci5qcyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL2F1dG8taGlkZS1jb250cm9s
bGVyLmpzCmluZGV4IGE3NGJjNzFhMTVhYTY1MmMzNGNmNzg4OTI4ZjE0OTc4MWY3ODBkMjYuLjQ0
NTBjNjdhNDU5NmQwODk1MzkwZWEwNzM2Yjc0MWY5MWRiYWQ5ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL2F1dG8taGlk
ZS1jb250cm9sbGVyLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL2NvbnRyb2xzL2F1dG8taGlkZS1jb250cm9sbGVyLmpzCkBAIC0zMyw3ICszMyw3
IEBAIGNsYXNzIEF1dG9IaWRlQ29udHJvbGxlcgogICAgICAgICB0aGlzLl9tZWRpYUNvbnRyb2xz
ID0gbWVkaWFDb250cm9sczsKIAogICAgICAgICBpZiAoR2VzdHVyZVJlY29nbml6ZXIuU3VwcG9y
dHNUb3VjaGVzKSB7Ci0gICAgICAgICAgICB0aGlzLl90b3VjaElkZW50aWZpZXJzUHJldmVudGlu
Z0F1dG9IaWRlID0gbmV3IFNldDsKKyAgICAgICAgICAgIHRoaXMuX3BvaW50ZXJJZGVudGlmaWVy
c1ByZXZlbnRpbmdBdXRvSGlkZSA9IG5ldyBTZXQ7CiAgICAgICAgICAgICB0aGlzLl90YXBHZXN0
dXJlUmVjb2duaXplciA9IG5ldyBUYXBHZXN0dXJlUmVjb2duaXplcih0aGlzLl9tZWRpYUNvbnRy
b2xzLmVsZW1lbnQsIHRoaXMpOwogICAgICAgICB9CiAKQEAgLTU0LDIzICs1NCwxNiBAQCBjbGFz
cyBBdXRvSGlkZUNvbnRyb2xsZXIKIAogICAgICAgICB0aGlzLl9mYWRlc1doaWxlSWRsZSA9IGZs
YWc7CiAKLSAgICAgICAgaWYgKEdlc3R1cmVSZWNvZ25pemVyLlN1cHBvcnRzVG91Y2hlcykgewot
ICAgICAgICAgICAgaWYgKGZsYWcpIHsKLSAgICAgICAgICAgICAgICB0aGlzLl9tZWRpYUNvbnRy
b2xzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsIHRoaXMpOwotICAgICAg
ICAgICAgICAgIHRoaXMuX21lZGlhQ29udHJvbHMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJ0
b3VjaGVuZCIsIHRoaXMpOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICB0
aGlzLl9tZWRpYUNvbnRyb2xzLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFy
dCIsIHRoaXMpOwotICAgICAgICAgICAgICAgIHRoaXMuX21lZGlhQ29udHJvbHMuZWxlbWVudC5y
ZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsIHRoaXMpOwotICAgICAgICAgICAgfQotICAg
ICAgICAgICAgdGhpcy5fdGFwR2VzdHVyZVJlY29nbml6ZXIuZW5hYmxlZCA9IGZsYWc7CisgICAg
ICAgIGlmIChmbGFnKSB7CisgICAgICAgICAgICB0aGlzLl9tZWRpYUNvbnRyb2xzLmVsZW1lbnQu
YWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLCB0aGlzKTsKKyAgICAgICAgICAgIHRoaXMu
X21lZGlhQ29udHJvbHMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVyZG93biIsIHRo
aXMpOworICAgICAgICAgICAgdGhpcy5fbWVkaWFDb250cm9scy5lbGVtZW50LmFkZEV2ZW50TGlz
dGVuZXIoInBvaW50ZXJ1cCIsIHRoaXMpOworICAgICAgICAgICAgdGhpcy5fbWVkaWFDb250cm9s
cy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJsZWF2ZSIsIHRoaXMpOwogICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgaWYgKGZsYWcpIHsKLSAgICAgICAgICAgICAgICB0aGlz
Ll9tZWRpYUNvbnRyb2xzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIiwgdGhp
cyk7Ci0gICAgICAgICAgICAgICAgdGhpcy5fbWVkaWFDb250cm9scy5lbGVtZW50LmFkZEV2ZW50
TGlzdGVuZXIoIm1vdXNlbGVhdmUiLCB0aGlzKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICAgICAgdGhpcy5fbWVkaWFDb250cm9scy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVu
ZXIoIm1vdXNlbW92ZSIsIHRoaXMpOwotICAgICAgICAgICAgICAgIHRoaXMuX21lZGlhQ29udHJv
bHMuZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWxlYXZlIiwgdGhpcyk7Ci0gICAg
ICAgICAgICB9CisgICAgICAgICAgICB0aGlzLl9tZWRpYUNvbnRyb2xzLmVsZW1lbnQucmVtb3Zl
RXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLCB0aGlzKTsKKyAgICAgICAgICAgIHRoaXMuX21l
ZGlhQ29udHJvbHMuZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVyZG93biIsIHRo
aXMpOworICAgICAgICAgICAgdGhpcy5fbWVkaWFDb250cm9scy5lbGVtZW50LnJlbW92ZUV2ZW50
TGlzdGVuZXIoInBvaW50ZXJ1cCIsIHRoaXMpOworICAgICAgICAgICAgdGhpcy5fbWVkaWFDb250
cm9scy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJsZWF2ZSIsIHRoaXMpOwog
ICAgICAgICB9CiAKICAgICAgICAgaWYgKGZsYWcgJiYgIXRoaXMuX21lZGlhQ29udHJvbHMuZmFk
ZWQpCkBAIC04Niw3ICs3OSw3IEBAIGNsYXNzIEF1dG9IaWRlQ29udHJvbGxlcgogICAgICAgICBp
ZiAoZXZlbnQuY3VycmVudFRhcmdldCAhPT0gdGhpcy5fbWVkaWFDb250cm9scy5lbGVtZW50KQog
ICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGlmIChldmVudC50eXBlID09PSAibW91c2Vt
b3ZlIikgeworICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gInBvaW50ZXJtb3ZlIikgewogICAg
ICAgICAgICAgdGhpcy5fbWVkaWFDb250cm9scy5mYWRlZCA9IGZhbHNlOwogICAgICAgICAgICAg
dGhpcy5fcmVzZXRBdXRvSGlkZVRpbWVyKHRydWUpOwogICAgICAgICAgICAgaWYgKHRoaXMuX21l
ZGlhQ29udHJvbHMuaXNQb2ludEluQ29udHJvbHMobmV3IERPTVBvaW50KGV2ZW50LmNsaWVudFgs
IGV2ZW50LmNsaWVudFkpKSkgewpAQCAtOTYsMjIgKzg5LDIwIEBAIGNsYXNzIEF1dG9IaWRlQ29u
dHJvbGxlcgogICAgICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9kaXNhYmxlQXV0b0hpZGluZzsK
ICAgICAgICAgICAgICAgICB0aGlzLl9yZXNldEF1dG9IaWRlVGltZXIodHJ1ZSk7CiAgICAgICAg
ICAgICB9Ci0gICAgICAgIH0gZWxzZSBpZiAoZXZlbnQudHlwZSA9PT0gIm1vdXNlbGVhdmUiICYm
IHRoaXMuX2ZhZGVzV2hpbGVJZGxlICYmICF0aGlzLmhhc1NlY29uZGFyeVVJQXR0YWNoZWQgJiYg
IXRoaXMuX2VuZm9yY2VBdXRvSGlkZVRpbWVyKQorICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LnR5
cGUgPT09ICJwb2ludGVybGVhdmUiICYmICFHZXN0dXJlUmVjb2duaXplci5TdXBwb3J0c1RvdWNo
ZXMgJiYgdGhpcy5fZmFkZXNXaGlsZUlkbGUgJiYgIXRoaXMuaGFzU2Vjb25kYXJ5VUlBdHRhY2hl
ZCAmJiAhdGhpcy5fZW5mb3JjZUF1dG9IaWRlVGltZXIpCiAgICAgICAgICAgICB0aGlzLl9tZWRp
YUNvbnRyb2xzLmZhZGVkID0gIXRoaXMuX21lZGlhQ29udHJvbHMuaXNQb2ludEluQ29udHJvbHMo
bmV3IERPTVBvaW50KGV2ZW50LmNsaWVudFgsIGV2ZW50LmNsaWVudFkpKTsKIAotICAgICAgICBp
ZiAoZXZlbnQudHlwZSA9PT0gInRvdWNoc3RhcnQiKSB7CisgICAgICAgIGlmIChldmVudC50eXBl
ID09PSAicG9pbnRlcmRvd24iKSB7CiAgICAgICAgICAgICAvLyBSZW1lbWJlciB0aGUgY3VycmVu
dCBmYWRlZCBzdGF0ZSBzbyB0aGF0IHdlIGNhbiBkZXRlcm1pbmUsCiAgICAgICAgICAgICAvLyBp
ZiB3ZSByZWNvZ25pemUgYSB0YXAsIGlmIGl0IHNob3VsZCBmYWRlIHRoZSBjb250cm9scyBvdXQu
CiAgICAgICAgICAgICB0aGlzLl9uZXh0VGFwQ2FuRmFkZUNvbnRyb2xzID0gIXRoaXMuX21lZGlh
Q29udHJvbHMuZmFkZWQ7Ci0gICAgICAgICAgICBmb3IgKHZhciB0b3VjaCBpbiBldmVudC5jaGFu
Z2VkVG91Y2hlcykKLSAgICAgICAgICAgICAgICB0aGlzLl90b3VjaElkZW50aWZpZXJzUHJldmVu
dGluZ0F1dG9IaWRlLmFkZCh0b3VjaC5pZGVudGlmaWVyKTsKKyAgICAgICAgICAgIHRoaXMuX3Bv
aW50ZXJJZGVudGlmaWVyc1ByZXZlbnRpbmdBdXRvSGlkZS5hZGQoZXZlbnQucG9pbnRlcklkKTsK
ICAgICAgICAgICAgIHRoaXMuX21lZGlhQ29udHJvbHMuZmFkZWQgPSBmYWxzZTsKICAgICAgICAg
ICAgIHRoaXMuX2Rpc2FibGVBdXRvSGlkaW5nID0gdHJ1ZTsKICAgICAgICAgICAgIHRoaXMuX2Nh
bmNlbE5vbkVuZm9yY2VkQXV0b0hpZGVUaW1lcigpOwotICAgICAgICB9IGVsc2UgaWYgKGV2ZW50
LnR5cGUgPT09ICJ0b3VjaGVuZCIpIHsKLSAgICAgICAgICAgIGZvciAodmFyIHRvdWNoIGluIGV2
ZW50LmNoYW5nZWRUb3VjaGVzKQotICAgICAgICAgICAgICAgIHRoaXMuX3RvdWNoSWRlbnRpZmll
cnNQcmV2ZW50aW5nQXV0b0hpZGUuZGVsZXRlKHRvdWNoLmlkZW50aWZpZXIpOwotICAgICAgICAg
ICAgaWYgKCF0aGlzLl90b3VjaElkZW50aWZpZXJzUHJldmVudGluZ0F1dG9IaWRlLnNpemUpIHsK
KyAgICAgICAgfSBlbHNlIGlmIChldmVudC50eXBlID09PSAicG9pbnRlcnVwIikgeworICAgICAg
ICAgICAgdGhpcy5fcG9pbnRlcklkZW50aWZpZXJzUHJldmVudGluZ0F1dG9IaWRlLmRlbGV0ZShl
dmVudC5wb2ludGVySWQpOworICAgICAgICAgICAgaWYgKCF0aGlzLl9wb2ludGVySWRlbnRpZmll
cnNQcmV2ZW50aW5nQXV0b0hpZGUuc2l6ZSkgewogICAgICAgICAgICAgICAgIGRlbGV0ZSB0aGlz
Ll9kaXNhYmxlQXV0b0hpZGluZzsKICAgICAgICAgICAgICAgICB0aGlzLl9yZXNldEF1dG9IaWRl
VGltZXIodHJ1ZSk7CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9zbGlkZXIuY3NzIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvc2xpZGVyLmNz
cwppbmRleCBlOWFiMDE5NDY4NzAxOWQ4YzY3OGIzZjJlZjY2MzU5MjI0M2NjMGE4Li45OWZlOWMy
MjBlMGQzMDU3ZTE3ZDhiMDE4MGU3YmVmOWU5ZGM3Y2QzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9zbGlkZXIuY3NzCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xz
L3NsaWRlci5jc3MKQEAgLTg5LDcgKzg5LDcgQEAKIAogLmlvcyAuc2xpZGVyID4gaW5wdXQgewog
ICAgIC8qIE9uIGlPUyBvbmx5LCB3ZSB3YW50IHRvIG9ubHkgY2FwdHVyZSBldmVudHMgb24gdGhl
IHRodW1iIGFuZCBub3QgdGhlIHRyYWNrLiAqLwotICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwor
LyogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7Ki8KIAogICAgIC8qIE1ha2Ugc3VyZSB3ZSBkb24n
dCBzaG93IGFueSBVSSBhcyB3ZSBkcmFnIHRoZSBzY3J1YmJlciBvbiBpT1MuICovCiAgICAgLXdl
YmtpdC11c2VyLXNlbGVjdDogbm9uZSAhaW1wb3J0YW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvc2xpZGVyLmpzIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvc2xp
ZGVyLmpzCmluZGV4IDI4ZWYzMzA4ODA1YjBiNjMyYTU5MjZmYzFkNmVhZmUwZmIzMmViNjUuLmNj
MmIyZDY5NTZkMWNkYzRmOGRhMWMzYWJlYjY5Mjg3YzhhMWE1MGIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL3NsaWRlci5q
cworKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250
cm9scy9zbGlkZXIuanMKQEAgLTM4LDcgKzM4LDcgQEAgY2xhc3MgU2xpZGVyIGV4dGVuZHMgTGF5
b3V0Tm9kZQogICAgICAgICB0aGlzLl9jb250YWluZXIuY2hpbGRyZW4gPSBbdGhpcy5fdHJhY2ss
IHRoaXMuX3ByaW1hcnlGaWxsLCB0aGlzLl9zZWNvbmRhcnlGaWxsLCB0aGlzLl9rbm9iXTsKIAog
ICAgICAgICB0aGlzLl9pbnB1dCA9IG5ldyBMYXlvdXROb2RlKGA8aW5wdXQgdHlwZT0icmFuZ2Ui
IG1pbj0iMCIgbWF4PSIxIiBzdGVwPSIwLjAwMSIgLz5gKTsKLSAgICAgICAgdGhpcy5faW5wdXQu
ZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKEdlc3R1cmVSZWNvZ25pemVyLlN1cHBvcnRzVG91Y2hl
cyA/ICJ0b3VjaHN0YXJ0IiA6ICJtb3VzZWRvd24iLCB0aGlzKTsKKyAgICAgICAgdGhpcy5faW5w
dXQuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVyZG93biIsIHRoaXMpOwogICAgICAg
ICB0aGlzLl9pbnB1dC5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IiwgdGhpcyk7CiAg
ICAgICAgIHRoaXMuX2lucHV0LmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwgdGhp
cyk7CiAKQEAgLTEwOSwxNyArMTA5LDExIEBAIGNsYXNzIFNsaWRlciBleHRlbmRzIExheW91dE5v
ZGUKICAgICBoYW5kbGVFdmVudChldmVudCkKICAgICB7CiAgICAgICAgIHN3aXRjaCAoZXZlbnQu
dHlwZSkgewotICAgICAgICBjYXNlICJtb3VzZWRvd24iOgotICAgICAgICAgICAgdGhpcy5faGFu
ZGxlTW91c2Vkb3duRXZlbnQoKTsKKyAgICAgICAgY2FzZSAicG9pbnRlcmRvd24iOgorICAgICAg
ICAgICAgdGhpcy5faGFuZGxlUG9pbnRlcmRvd25FdmVudCgpOwogICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgIGNhc2UgInRvdWNoc3RhcnQiOgotICAgICAgICAgICAgdGhpcy5faGFuZGxlVG91
Y2hzdGFydEV2ZW50KGV2ZW50KTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlICJt
b3VzZXVwIjoKLSAgICAgICAgICAgIHRoaXMuX2hhbmRsZU1vdXNldXBFdmVudCgpOwotICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgInRvdWNoZW5kIjoKLSAgICAgICAgICAgIHRoaXMu
X2hhbmRsZVRvdWNoZW5kRXZlbnQoZXZlbnQpOworICAgICAgICBjYXNlICJwb2ludGVydXAiOgor
ICAgICAgICAgICAgdGhpcy5faGFuZGxlUG9pbnRlcnVwRXZlbnQoKTsKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICBjYXNlICJjaGFuZ2UiOgogICAgICAgICBjYXNlICJpbnB1dCI6CkBAIC0x
NTgsMTAgKzE1MiwxMCBAQCBjbGFzcyBTbGlkZXIgZXh0ZW5kcyBMYXlvdXROb2RlCiAKICAgICAv
LyBQcml2YXRlCiAKLSAgICBfaGFuZGxlTW91c2Vkb3duRXZlbnQoKQorICAgIF9oYW5kbGVQb2lu
dGVyZG93bkV2ZW50KCkKICAgICB7Ci0gICAgICAgIHRoaXMuX21vdXNldXBUYXJnZXQgPSB0aGlz
Ll9pbnRlcmFjdGlvbkVuZFRhcmdldCgpOwotICAgICAgICB0aGlzLl9tb3VzZXVwVGFyZ2V0LmFk
ZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLCB0aGlzLCB0cnVlKTsKKyAgICAgICAgdGhpcy5fcG9p
bnRlcnVwVGFyZ2V0ID0gdGhpcy5faW50ZXJhY3Rpb25FbmRUYXJnZXQoKTsKKyAgICAgICAgdGhp
cy5fcG9pbnRlcnVwVGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsIHRoaXMsIHRy
dWUpOwogCiAgICAgICAgIHRoaXMuX3ZhbHVlV2lsbFN0YXJ0Q2hhbmdpbmcoKTsKICAgICB9CkBA
IC0xNzIsMjAgKzE2Niw2IEBAIGNsYXNzIFNsaWRlciBleHRlbmRzIExheW91dE5vZGUKICAgICAg
ICAgcmV0dXJuICghbWVkaWFDb250cm9scyB8fCBtZWRpYUNvbnRyb2xzIGluc3RhbmNlb2YgTWFj
T1NJbmxpbmVNZWRpYUNvbnRyb2xzKSA/IHdpbmRvdyA6IG1lZGlhQ29udHJvbHMuZWxlbWVudDsK
ICAgICB9CiAKLSAgICBfaGFuZGxlVG91Y2hzdGFydEV2ZW50KGV2ZW50KQotICAgIHsKLSAgICAg
ICAgLy8gV2UncmUgb25seSBpbnRlcmVzdGVkIGluIHRoZSB2ZXJ5IGZpcnN0IHRvdWNoIG9uIHRo
ZSA8aW5wdXQ+LgotICAgICAgICBpZiAoZXZlbnQudG91Y2hlcy5sZW5ndGggIT09IDEpCi0gICAg
ICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgdGhpcy5faW5pdGlhbFRvdWNoSWRlbnRpZmllciA9
IGV2ZW50LnRvdWNoZXNbMF0uaWRlbnRpZmllcjsKLQotICAgICAgICB0aGlzLl90b3VjaGVuZFRh
cmdldCA9IHRoaXMuX2ludGVyYWN0aW9uRW5kVGFyZ2V0KCk7Ci0gICAgICAgIHRoaXMuX3RvdWNo
ZW5kVGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIiwgdGhpcywgdHJ1ZSk7Ci0KLSAg
ICAgICAgdGhpcy5fdmFsdWVXaWxsU3RhcnRDaGFuZ2luZygpOwotICAgIH0KLQogICAgIF92YWx1
ZVdpbGxTdGFydENoYW5naW5nKCkKICAgICB7CiAgICAgICAgIC8vIFdlIHNob3VsZCBubyBsb25n
ZXIgY2FjaGUgdGhlIHZhbHVlIHNpbmNlIHdlJ2xsIGJlIGludGVyYWN0aW5nIHdpdGggdGhlIDxp
bnB1dD4KQEAgLTIxNSwyNCArMTk1LDExIEBAIGNsYXNzIFNsaWRlciBleHRlbmRzIExheW91dE5v
ZGUKICAgICAgICAgdGhpcy5uZWVkc0xheW91dCA9IHRydWU7CiAgICAgfQogCi0gICAgX2hhbmRs
ZU1vdXNldXBFdmVudCgpCisgICAgX2hhbmRsZVBvaW50ZXJ1cEV2ZW50KCkKICAgICB7Ci0gICAg
ICAgIHRoaXMuX21vdXNldXBUYXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsIHRo
aXMsIHRydWUpOwotICAgICAgICBkZWxldGUgdGhpcy5fbW91c2V1cFRhcmdldDsKKyAgICAgICAg
dGhpcy5fcG9pbnRlcnVwVGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsIHRo
aXMsIHRydWUpOworICAgICAgICBkZWxldGUgdGhpcy5fcG9pbnRlcnVwVGFyZ2V0OwogCiAgICAg
ICAgIHRoaXMuX3ZhbHVlRGlkU3RvcENoYW5naW5nKCk7CiAgICAgfQotCi0gICAgX2hhbmRsZVRv
dWNoZW5kRXZlbnQoZXZlbnQpCi0gICAgewotICAgICAgICBpZiAoIUFycmF5LmZyb20oZXZlbnQu
Y2hhbmdlZFRvdWNoZXMpLmZpbmQodG91Y2ggPT4gdG91Y2guaWRlbnRpZmllciA9PT0gdGhpcy5f
aW5pdGlhbFRvdWNoSWRlbnRpZmllcikpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAg
dGhpcy5fdG91Y2hlbmRUYXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLCB0aGlz
LCB0cnVlKTsKLSAgICAgICAgZGVsZXRlIHRoaXMuX3RvdWNoZW5kVGFyZ2V0OwotICAgICAgICBk
ZWxldGUgdGhpcy5faW5pdGlhbFRvdWNoSWRlbnRpZmllcjsKLQotICAgICAgICB0aGlzLl92YWx1
ZURpZFN0b3BDaGFuZ2luZygpOwotICAgIH0KLQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvZ2VzdHVyZS1yZWNvZ25pemVycy9nZXN0
dXJlLXJlY29nbml6ZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1j
b250cm9scy9nZXN0dXJlLXJlY29nbml6ZXJzL2dlc3R1cmUtcmVjb2duaXplci5qcwppbmRleCAy
YjU1MWU3ZTNiNjk2ZjQ2NTlhMjJkZGU3N2VjNDY3M2I1YjdlNjRkLi43ZmRjYmNhMzQwY2FmNmU3
MGE4ODQ2N2Y3ZDg2M2M3OWExMTM2NDdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9nZXN0dXJlLXJlY29nbml6ZXJzL2dlc3R1cmUtcmVj
b2duaXplci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250
cm9scy9nZXN0dXJlLXJlY29nbml6ZXJzL2dlc3R1cmUtcmVjb2duaXplci5qcwpAQCAtMSwxMCAr
MSw5IEBACi0KIGNsYXNzIEdlc3R1cmVSZWNvZ25pemVyCiB7CiAKICAgICBjb25zdHJ1Y3Rvcih0
YXJnZXQgPSBudWxsLCBkZWxlZ2F0ZSA9IG51bGwpCiAgICAgewotICAgICAgICB0aGlzLl90YXJn
ZXRUb3VjaGVzID0gW107CisgICAgICAgIHRoaXMuX3RhcmdldFBvaW50ZXJzID0gbmV3IE1hcCgp
OwogCiAgICAgICAgIHRoaXMubW9kaWZpZXJLZXlzID0gewogICAgICAgICAgICAgYWx0IDogZmFs
c2UsCkBAIC01Myw3ICs1Miw3IEBAIGNsYXNzIEdlc3R1cmVSZWNvZ25pemVyCiAKICAgICBnZXQg
bnVtYmVyT2ZUb3VjaGVzKCkKICAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl90YXJnZXRUb3Vj
aGVzLmxlbmd0aDsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3RhcmdldFBvaW50ZXJzLnNpemU7CiAg
ICAgfQogCiAgICAgZ2V0IGVuYWJsZWQoKQpAQCAtODcsMTIgKzg2LDE0IEBAIGNsYXNzIEdlc3R1
cmVSZWNvZ25pemVyCiAgICAgbG9jYXRpb25JbkVsZW1lbnQoZWxlbWVudCkKICAgICB7CiAgICAg
ICAgIGNvbnN0IHAgPSBuZXcgRE9NUG9pbnQ7Ci0gICAgICAgIGNvbnN0IHRvdWNoZXMgPSB0aGlz
Ll90YXJnZXRUb3VjaGVzOwotICAgICAgICBjb25zdCBjb3VudCA9IHRvdWNoZXMubGVuZ3RoOwor
ICAgICAgICBjb25zdCBwb2ludGVycyA9IHRoaXMuX3RhcmdldFBvaW50ZXJzLnZhbHVlcygpOwor
ICAgICAgICBjb25zdCBjb3VudCA9IHBvaW50ZXJzLmxlbmd0aDsKKyAgICAgICAgaWYgKCFjb3Vu
dCkKKyAgICAgICAgICAgIHJldHVybiBwOwogICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNv
dW50OyArK2kpIHsKLSAgICAgICAgICAgIGNvbnN0IHRvdWNoID0gdG91Y2hlc1tpXTsKLSAgICAg
ICAgICAgIHAueCArPSB0b3VjaC5wYWdlWDsKLSAgICAgICAgICAgIHAueSArPSB0b3VjaC5wYWdl
WTsKKyAgICAgICAgICAgIGNvbnN0IHBvaW50ZXIgPSBwb2ludGVyc1tpXTsKKyAgICAgICAgICAg
IHAueCArPSBwb2ludGVyLnBhZ2VYOworICAgICAgICAgICAgcC55ICs9IHBvaW50ZXIucGFnZVk7
CiAgICAgICAgIH0KICAgICAgICAgcC54IC89IGNvdW50OwogICAgICAgICBwLnkgLz0gY291bnQ7
CkBAIC0xMDgsMTIgKzEwOSwxNCBAQCBjbGFzcyBHZXN0dXJlUmVjb2duaXplcgogICAgIGxvY2F0
aW9uSW5DbGllbnQoKQogICAgIHsKICAgICAgICAgY29uc3QgcCA9IG5ldyBET01Qb2ludDsKLSAg
ICAgICAgY29uc3QgdG91Y2hlcyA9IHRoaXMuX3RhcmdldFRvdWNoZXM7Ci0gICAgICAgIGNvbnN0
IGNvdW50ID0gdG91Y2hlcy5sZW5ndGg7CisgICAgICAgIGNvbnN0IHBvaW50ZXJzID0gdGhpcy5f
dGFyZ2V0UG9pbnRlcnMudmFsdWVzKCk7CisgICAgICAgIGNvbnN0IGNvdW50ID0gcG9pbnRlcnMu
bGVuZ3RoOworICAgICAgICBpZiAoIWNvdW50KQorICAgICAgICAgICAgcmV0dXJuIHA7CiAgICAg
ICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY291bnQ7ICsraSkgewotICAgICAgICAgICAgY29uc3Qg
dG91Y2ggPSB0b3VjaGVzW2ldOwotICAgICAgICAgICAgcC54ICs9IHRvdWNoLmNsaWVudFg7Ci0g
ICAgICAgICAgICBwLnkgKz0gdG91Y2guY2xpZW50WTsKKyAgICAgICAgICAgIGNvbnN0IHBvaW50
ZXIgPSBwb2ludGVyc1tpXTsKKyAgICAgICAgICAgIHAueCArPSBwb2ludGVyLmNsaWVudFg7Cisg
ICAgICAgICAgICBwLnkgKz0gcG9pbnRlci5jbGllbnRZOwogICAgICAgICB9CiAgICAgICAgIHAu
eCAvPSBjb3VudDsKICAgICAgICAgcC55IC89IGNvdW50OwpAQCAtMTIxLDI5ICsxMjQsMTQgQEAg
Y2xhc3MgR2VzdHVyZVJlY29nbml6ZXIKICAgICAgICAgcmV0dXJuIHA7CiAgICAgfQogCi0gICAg
bG9jYXRpb25PZlRvdWNoSW5FbGVtZW50KHRvdWNoSW5kZXgsIGVsZW1lbnQpCi0gICAgewotICAg
ICAgICBjb25zdCB0b3VjaCA9IHRoaXMuX3RhcmdldFRvdWNoZXNbdG91Y2hJbmRleF07Ci0gICAg
ICAgIGlmICghdG91Y2gpCi0gICAgICAgICAgICByZXR1cm4gbmV3IERPTVBvaW50OwotCi0gICAg
ICAgIGNvbnN0IHRvdWNoTG9jYXRpb24gPSBuZXcgRE9NUG9pbnQodG91Y2gucGFnZVgsIHRvdWNo
LnBhZ2VZKTsKLSAgICAgICAgaWYgKCFlbGVtZW50KQotICAgICAgICAgICAgcmV0dXJuIHRvdWNo
TG9jYXRpb247Ci0KLSAgICAgICAgLy8gRklYTUU6IGFyZSBXZWJLaXRQb2ludCBhbmQgRE9NUG9p
bnQgaW50ZXJjaGFuZ2VhYmxlPwotICAgICAgICBjb25zdCB3a1BvaW50ID0gd2luZG93LndlYmtp
dENvbnZlcnRQb2ludEZyb21QYWdlVG9Ob2RlKGVsZW1lbnQsIG5ldyBXZWJLaXRQb2ludCh0b3Vj
aExvY2F0aW9uLngsIHRvdWNoTG9jYXRpb24ueSkpOwotICAgICAgICByZXR1cm4gbmV3IERPTVBv
aW50KHdrUG9pbnQueCwgd2tQb2ludC55KTsKLSAgICB9Ci0KICAgICB0b3VjaGVzQmVnYW4oZXZl
bnQpCiAgICAgewogICAgICAgICBpZiAoZXZlbnQuY3VycmVudFRhcmdldCAhPT0gdGhpcy5fdGFy
Z2V0KQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3Rl
bmVyKEdlc3R1cmVSZWNvZ25pemVyLkV2ZW50cy5Ub3VjaE1vdmUsIHRoaXMsIHRydWUpOwotICAg
ICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihHZXN0dXJlUmVjb2duaXplci5FdmVudHMuVG91
Y2hFbmQsIHRoaXMsIHRydWUpOwotICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihHZXN0
dXJlUmVjb2duaXplci5FdmVudHMuVG91Y2hDYW5jZWwsIHRoaXMsIHRydWUpOworICAgICAgICB3
aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihHZXN0dXJlUmVjb2duaXplci5FdmVudHMuUG9pbnRlck1v
dmUsIHRoaXMsIHRydWUpOworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihHZXN0dXJl
UmVjb2duaXplci5FdmVudHMuUG9pbnRlclVwLCB0aGlzLCB0cnVlKTsKKyAgICAgICAgd2luZG93
LmFkZEV2ZW50TGlzdGVuZXIoR2VzdHVyZVJlY29nbml6ZXIuRXZlbnRzLlBvaW50ZXJDYW5jZWws
IHRoaXMsIHRydWUpOwogICAgICAgICB0aGlzLmVudGVyUG9zc2libGVTdGF0ZSgpOwogICAgIH0K
IApAQCAtMjM1LDE2ICsyMjMsMTYgQEAgY2xhc3MgR2VzdHVyZVJlY29nbml6ZXIKICAgICAgICAg
dGhpcy5fdXBkYXRlS2V5Ym9hcmRNb2RpZmllcnMoZXZlbnQpOwogCiAgICAgICAgIHN3aXRjaCAo
ZXZlbnQudHlwZSkgewotICAgICAgICBjYXNlIEdlc3R1cmVSZWNvZ25pemVyLkV2ZW50cy5Ub3Vj
aFN0YXJ0OgorICAgICAgICBjYXNlIEdlc3R1cmVSZWNvZ25pemVyLkV2ZW50cy5Qb2ludGVyRG93
bjoKICAgICAgICAgICAgIHRoaXMudG91Y2hlc0JlZ2FuKGV2ZW50KTsKICAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICBjYXNlIEdlc3R1cmVSZWNvZ25pemVyLkV2ZW50cy5Ub3VjaE1vdmU6Cisg
ICAgICAgIGNhc2UgR2VzdHVyZVJlY29nbml6ZXIuRXZlbnRzLlBvaW50ZXJNb3ZlOgogICAgICAg
ICAgICAgdGhpcy50b3VjaGVzTW92ZWQoZXZlbnQpOwogICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIGNhc2UgR2VzdHVyZVJlY29nbml6ZXIuRXZlbnRzLlRvdWNoRW5kOgorICAgICAgICBjYXNl
IEdlc3R1cmVSZWNvZ25pemVyLkV2ZW50cy5Qb2ludGVyVXA6CiAgICAgICAgICAgICB0aGlzLnRv
dWNoZXNFbmRlZChldmVudCk7CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBHZXN0
dXJlUmVjb2duaXplci5FdmVudHMuVG91Y2hDYW5jZWw6CisgICAgICAgIGNhc2UgR2VzdHVyZVJl
Y29nbml6ZXIuRXZlbnRzLlBvaW50ZXJDYW5jZWw6CiAgICAgICAgICAgICB0aGlzLnRvdWNoZXND
YW5jZWxsZWQoZXZlbnQpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgR2VzdHVy
ZVJlY29nbml6ZXIuRXZlbnRzLkdlc3R1cmVTdGFydDoKQEAgLTI3NSwxMSArMjYzLDExIEBAIGNs
YXNzIEdlc3R1cmVSZWNvZ25pemVyCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgaWYg
KHRoaXMuX2VuYWJsZWQpIHsKLSAgICAgICAgICAgIHRoaXMuX3RhcmdldC5hZGRFdmVudExpc3Rl
bmVyKEdlc3R1cmVSZWNvZ25pemVyLkV2ZW50cy5Ub3VjaFN0YXJ0LCB0aGlzKTsKKyAgICAgICAg
ICAgIHRoaXMuX3RhcmdldC5hZGRFdmVudExpc3RlbmVyKEdlc3R1cmVSZWNvZ25pemVyLkV2ZW50
cy5Qb2ludGVyRG93biwgdGhpcyk7CiAgICAgICAgICAgICBpZiAoR2VzdHVyZVJlY29nbml6ZXIu
U3VwcG9ydHNHZXN0dXJlcykKICAgICAgICAgICAgICAgICB0aGlzLl90YXJnZXQuYWRkRXZlbnRM
aXN0ZW5lcihHZXN0dXJlUmVjb2duaXplci5FdmVudHMuR2VzdHVyZVN0YXJ0LCB0aGlzKTsKICAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHRoaXMuX3RhcmdldC5yZW1vdmVFdmVudExpc3Rl
bmVyKEdlc3R1cmVSZWNvZ25pemVyLkV2ZW50cy5Ub3VjaFN0YXJ0LCB0aGlzKTsKKyAgICAgICAg
ICAgIHRoaXMuX3RhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKEdlc3R1cmVSZWNvZ25pemVyLkV2
ZW50cy5Qb2ludGVyRG93biwgdGhpcyk7CiAgICAgICAgICAgICBpZiAoR2VzdHVyZVJlY29nbml6
ZXIuU3VwcG9ydHNHZXN0dXJlcykKICAgICAgICAgICAgICAgICB0aGlzLl90YXJnZXQucmVtb3Zl
RXZlbnRMaXN0ZW5lcihHZXN0dXJlUmVjb2duaXplci5FdmVudHMuR2VzdHVyZVN0YXJ0LCB0aGlz
KTsKICAgICAgICAgfQpAQCAtMjg3LDYyICsyNzUsMjkgQEAgY2xhc3MgR2VzdHVyZVJlY29nbml6
ZXIKIAogICAgIF9yZW1vdmVUcmFja2luZ0xpc3RlbmVycygpCiAgICAgewotICAgICAgICB3aW5k
b3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihHZXN0dXJlUmVjb2duaXplci5FdmVudHMuVG91Y2hNb3Zl
LCB0aGlzLCB0cnVlKTsKLSAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoR2VzdHVy
ZVJlY29nbml6ZXIuRXZlbnRzLlRvdWNoRW5kLCB0aGlzLCB0cnVlKTsKKyAgICAgICAgd2luZG93
LnJlbW92ZUV2ZW50TGlzdGVuZXIoR2VzdHVyZVJlY29nbml6ZXIuRXZlbnRzLlBvaW50ZXJNb3Zl
LCB0aGlzLCB0cnVlKTsKKyAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoR2VzdHVy
ZVJlY29nbml6ZXIuRXZlbnRzLlBvaW50ZXJVcCwgdGhpcywgdHJ1ZSk7CisgICAgICAgIHdpbmRv
dy5yZW1vdmVFdmVudExpc3RlbmVyKEdlc3R1cmVSZWNvZ25pemVyLkV2ZW50cy5Qb2ludGVyQ2Fu
Y2VsLCB0aGlzLCB0cnVlKTsKICAgICAgICAgdGhpcy5fdGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVu
ZXIoR2VzdHVyZVJlY29nbml6ZXIuRXZlbnRzLkdlc3R1cmVDaGFuZ2UsIHRoaXMsIHRydWUpOwog
ICAgICAgICB0aGlzLl90YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcihHZXN0dXJlUmVjb2duaXpl
ci5FdmVudHMuR2VzdHVyZUVuZCwgdGhpcywgdHJ1ZSk7CiAgICAgfQogCiAgICAgX3VwZGF0ZVRh
cmdldFRvdWNoZXMoZXZlbnQpCiAgICAgewotICAgICAgICBpZiAoIUdlc3R1cmVSZWNvZ25pemVy
LlN1cHBvcnRzVG91Y2hlcykgewotICAgICAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09IEdlc3R1
cmVSZWNvZ25pemVyLkV2ZW50cy5Ub3VjaEVuZCkKLSAgICAgICAgICAgICAgICB0aGlzLl90YXJn
ZXRUb3VjaGVzID0gW107Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgdGhpcy5f
dGFyZ2V0VG91Y2hlcyA9IFtldmVudF07CisgICAgICAgIGlmICghKGV2ZW50IGluc3RhbmNlb2Yg
UG9pbnRlckV2ZW50KSkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQogCi0gICAgICAg
IGlmICghKGV2ZW50IGluc3RhbmNlb2YgVG91Y2hFdmVudCkpCi0gICAgICAgICAgICByZXR1cm47
Ci0KLSAgICAgICAgLy8gV2l0aCBhIHRvdWNoc3RhcnQgZXZlbnQsIGV2ZW50LnRhcmdldFRvdWNo
ZXMgaXMgYWNjdXJhdGUgc28KLSAgICAgICAgLy8gd2Ugc2ltcGx5IGFkZCBhbGwgb2YgdGhvc2Uu
Ci0gICAgICAgIGlmIChldmVudC50eXBlID09PSBHZXN0dXJlUmVjb2duaXplci5FdmVudHMuVG91
Y2hTdGFydCkgewotICAgICAgICAgICAgdGhpcy5fdGFyZ2V0VG91Y2hlcyA9IFtdOwotICAgICAg
ICAgICAgbGV0IHRvdWNoZXMgPSBldmVudC50YXJnZXRUb3VjaGVzOwotICAgICAgICAgICAgZm9y
IChsZXQgaSA9IDAsIGNvdW50ID0gdG91Y2hlcy5sZW5ndGg7IGkgPCBjb3VudDsgKytpKQotICAg
ICAgICAgICAgICAgIHRoaXMuX3RhcmdldFRvdWNoZXMucHVzaCh0b3VjaGVzW2ldKTsKKyAgICAg
ICAgaWYgKGV2ZW50LnR5cGUgPT09IEdlc3R1cmVSZWNvZ25pemVyLkV2ZW50cy5Qb2ludGVyRG93
bikgeworICAgICAgICAgICAgdGhpcy5fdGFyZ2V0UG9pbnRlcnMuc2V0KGV2ZW50LnBvaW50ZXJJ
ZCwgZXZlbnQpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgLy8g
V2l0aCBhIHRvdWNobW92ZSBldmVudCwgdGhlIHRhcmdldCBpcyB3aW5kb3cgc28gZXZlbnQudGFy
Z2V0VG91Y2hlcyBpcwotICAgICAgICAvLyBpbmFjY3VyYXRlIHNvIHdlIGFkZCBhbGwgdG91Y2hl
cyB0aGF0IHdlIGtuZXcgYWJvdXQgcHJldmlvdXNseS4KLSAgICAgICAgaWYgKGV2ZW50LnR5cGUg
PT09IEdlc3R1cmVSZWNvZ25pemVyLkV2ZW50cy5Ub3VjaE1vdmUpIHsKLSAgICAgICAgICAgIGxl
dCB0YXJnZXRJZGVudGlmaWVycyA9IHRoaXMuX3RhcmdldFRvdWNoZXMubWFwKGZ1bmN0aW9uKHRv
dWNoKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHRvdWNoLmlkZW50aWZpZXI7Ci0gICAgICAg
ICAgICB9KTsKLQotICAgICAgICAgICAgdGhpcy5fdGFyZ2V0VG91Y2hlcyA9IFtdOwotICAgICAg
ICAgICAgbGV0IHRvdWNoZXMgPSBldmVudC50b3VjaGVzOwotICAgICAgICAgICAgZm9yIChsZXQg
aSA9IDAsIGNvdW50ID0gdG91Y2hlcy5sZW5ndGg7IGkgPCBjb3VudDsgKytpKSB7Ci0gICAgICAg
ICAgICAgICAgbGV0IHRvdWNoID0gdG91Y2hlc1tpXTsKLSAgICAgICAgICAgICAgICBpZiAodGFy
Z2V0SWRlbnRpZmllcnMuaW5kZXhPZih0b3VjaC5pZGVudGlmaWVyKSAhPT0gLTEpCi0gICAgICAg
ICAgICAgICAgICAgIHRoaXMuX3RhcmdldFRvdWNoZXMucHVzaCh0b3VjaCk7Ci0gICAgICAgICAg
ICB9CisgICAgICAgIGlmIChldmVudC50eXBlID09PSBHZXN0dXJlUmVjb2duaXplci5FdmVudHMu
UG9pbnRlck1vdmUpIHsKKyAgICAgICAgICAgIHRoaXMuX3RhcmdldFBvaW50ZXJzLnNldChldmVu
dC5wb2ludGVySWQsIGV2ZW50KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0g
ICAgICAgIC8vIFdpdGggYSB0b3VjaGVuZCBvciB0b3VjaGNhbmNlbCBldmVudCwgd2Ugb25seSBr
ZWVwIHRoZSBleGlzdGluZyB0b3VjaGVzCi0gICAgICAgIC8vIHRoYXQgYXJlIGFsc28gZm91bmQg
aW4gZXZlbnQudG91Y2hlcy4KLSAgICAgICAgbGV0IGFsbFRvdWNoZXMgPSBldmVudC50b3VjaGVz
OwotICAgICAgICBsZXQgZXhpc3RpbmdJZGVudGlmaWVycyA9IFtdOwotICAgICAgICBmb3IgKGxl
dCBpID0gMCwgY291bnQgPSBhbGxUb3VjaGVzLmxlbmd0aDsgaSA8IGNvdW50OyArK2kpCi0gICAg
ICAgICAgICBleGlzdGluZ0lkZW50aWZpZXJzLnB1c2goYWxsVG91Y2hlc1tpXS5pZGVudGlmaWVy
KTsKLQotICAgICAgICB0aGlzLl90YXJnZXRUb3VjaGVzID0gdGhpcy5fdGFyZ2V0VG91Y2hlcy5m
aWx0ZXIoZnVuY3Rpb24odG91Y2gpIHsKLSAgICAgICAgICAgIHJldHVybiBleGlzdGluZ0lkZW50
aWZpZXJzLmluZGV4T2YodG91Y2guaWRlbnRpZmllcikgIT09IC0xOwotICAgICAgICB9KTsKKyAg
ICAgICAgdGhpcy5fdGFyZ2V0UG9pbnRlcnMuZGVsZXRlKGV2ZW50LnBvaW50ZXJJZCk7CiAgICAg
fQogCiAgICAgX3VwZGF0ZUtleWJvYXJkTW9kaWZpZXJzKGV2ZW50KQpAQCAtMzY5LDEwICszMjQs
MTAgQEAgR2VzdHVyZVJlY29nbml6ZXIuU3RhdGVzID0gewogfTsKIAogR2VzdHVyZVJlY29nbml6
ZXIuRXZlbnRzID0gewotICAgIFRvdWNoU3RhcnQgICAgIDogR2VzdHVyZVJlY29nbml6ZXIuU3Vw
cG9ydHNUb3VjaGVzID8gInRvdWNoc3RhcnQiIDogIm1vdXNlZG93biIsCi0gICAgVG91Y2hNb3Zl
ICAgICAgOiBHZXN0dXJlUmVjb2duaXplci5TdXBwb3J0c1RvdWNoZXMgPyAidG91Y2htb3ZlIiA6
ICJtb3VzZW1vdmUiLAotICAgIFRvdWNoRW5kICAgICAgIDogR2VzdHVyZVJlY29nbml6ZXIuU3Vw
cG9ydHNUb3VjaGVzID8gInRvdWNoZW5kIiA6ICJtb3VzZXVwIiwKLSAgICBUb3VjaENhbmNlbCAg
ICA6ICJ0b3VjaGNhbmNlbCIsCisgICAgUG9pbnRlckRvd24gICAgOiAicG9pbnRlcmRvd24iLAor
ICAgIFBvaW50ZXJNb3ZlICAgIDogInBvaW50ZXJtb3ZlIiwKKyAgICBQb2ludGVyVXAgICAgICA6
ICJwb2ludGVydXAiLAorICAgIFBvaW50ZXJDYW5jZWwgIDogInBvaW50ZXJjYW5jZWwiLAogICAg
IEdlc3R1cmVTdGFydCAgIDogImdlc3R1cmVzdGFydCIsCiAgICAgR2VzdHVyZUNoYW5nZSAgOiAi
Z2VzdHVyZWNoYW5nZSIsCiAgICAgR2VzdHVyZUVuZCAgICAgOiAiZ2VzdHVyZWVuZCIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAw
ZjQ4Y2YwZjczOGU3MzA3MzNjNmM0MzNiMDg5ZjBjOThiMzU0YzBmLi4zODNkNTJkYzQ0ODZhZTQx
OWY1ZWM0MzBkODcyMTU1ZWYxNmM2MDNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC03NDEsNiArNzQxLDcgQEAKIAkJMkQ1MEE0
QjcxQ0UxMEUwMDAwMTk4MDQ5IC8qIEF0dGFjaG1lbnRQbGFjZWhvbGRlci5wbmcgaW4gUmVzb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJENTBBNEI1MUNFMTBFMDAw
MDE5ODA0OSAvKiBBdHRhY2htZW50UGxhY2Vob2xkZXIucG5nICovOyB9OwogCQkyRDUwQTRCODFD
RTEwRTAwMDAxOTgwNDkgLyogQXR0YWNobWVudFBsYWNlaG9sZGVyQDJ4LnBuZyBpbiBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ1MEE0QjYxQ0UxMEUwMDAw
MTk4MDQ5IC8qIEF0dGFjaG1lbnRQbGFjZWhvbGRlckAyeC5wbmcgKi87IH07CiAJCTJENTY0NkIw
MUI4Rjg0OTMwMDNDNDk5NCAvKiBEaWN0aW9uYXJ5UG9wdXBJbmZvLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDU2NDZBRjFCOEY4NDkzMDAzQzQ5OTQg
LyogRGljdGlvbmFyeVBvcHVwSW5mby5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CisJCTJENTY4MDAzMjM4ODg2MDQwMDdFQ0I4QSAvKiBhdXRvLWhpZGUt
Y29udHJvbGxlci5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMkQ1NjgwMDEyMzg4ODYwMzAwN0VDQjhBIC8qIGF1dG8taGlkZS1jb250cm9sbGVyLmpz
ICovOyB9OwogCQkyRDVBNTkzMTE1MjUyNUQwMDAzNkVFNTEgLyogSW1hZ2VPcmllbnRhdGlvbi5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTg3NDhENjYx
MkNDMzc2MzAwMUZCQTQxIC8qIEltYWdlT3JpZW50YXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkyRDVCQzQyNzE2Rjg4MkVFMDA3MDQ4RDAg
LyogU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ1QkM0MjUxNkY4ODJCRTAwNzA0OEQwIC8qIFNlY3Vy
aXR5UG9saWN5VmlvbGF0aW9uRXZlbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQkyRDVDOUQwMDE5QzdCNTJFMDBCM0M1QzEgLyogUGFnZU92ZXJs
YXkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJENUM5
Q0ZDMTlDN0I1MkUwMEIzQzVDMSAvKiBQYWdlT3ZlcmxheS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC02NzA5LDYgKzY3MTAsNyBAQAogCQkyRDUw
QTRCNTFDRTEwRTAwMDAxOTgwNDkgLyogQXR0YWNobWVudFBsYWNlaG9sZGVyLnBuZyAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGltYWdlLnBuZzsgcGF0
aCA9IEF0dGFjaG1lbnRQbGFjZWhvbGRlci5wbmc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTJENTBBNEI2MUNFMTBFMDAwMDE5ODA0OSAvKiBBdHRhY2htZW50UGxhY2Vob2xkZXJAMngu
cG5nICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gaW1h
Z2UucG5nOyBwYXRoID0gIkF0dGFjaG1lbnRQbGFjZWhvbGRlckAyeC5wbmciOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkyRDU2NDZBRjFCOEY4NDkzMDAzQzQ5OTQgLyogRGljdGlvbmFy
eVBvcHVwSW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaWN0aW9uYXJ5
UG9wdXBJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJENTY4MDAxMjM4ODg2
MDMwMDdFQ0I4QSAvKiBhdXRvLWhpZGUtY29udHJvbGxlci5qcyAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuamF2YXNjcmlwdDsgcGF0aCA9ICJhdXRvLWhpZGUtY29udHJvbGxlci5qcyI7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJENUJDNDI1MTZGODgyQkUwMDcwNDhEMCAvKiBTZWN1cml0
eVBvbGljeVZpb2xhdGlvbkV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMkQ1QkM0MjYxNkY4ODJCRTAwNzA0OEQwIC8qIFNlY3VyaXR5UG9saWN5VmlvbGF0aW9u
RXZlbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNlY3VyaXR5UG9saWN5VmlvbGF0aW9u
RXZlbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDVDOUNGQjE5QzdCNTJF
MDBCM0M1QzEgLyogUGFnZU92ZXJsYXkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUGFnZU92ZXJsYXkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
NjczMCw2ICs2NzMyLDkgQEAKIAkJMkQ4MUUxQ0QyMUE3OENDMjAwQTMyQ0Y0IC8qIEluc2VydEVk
aXRhYmxlSW1hZ2VDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElu
c2VydEVkaXRhYmxlSW1hZ2VDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTJEODI4N0Y0MTZFNEEwMzgwMDg2QkQwMCAvKiBIaXRUZXN0TG9jYXRpb24uY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSGl0VGVzdExvY2F0aW9uLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ4Mjg3RjUxNkU0QTAzODAwODZCRDAwIC8qIEhpdFRl
c3RMb2NhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIaXRUZXN0TG9j
YXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkQ4RDNCRUIyMzg0N0FDOTAw
NjU3MDc1IC8qIGdlc3R1cmUtcmVjb2duaXplci5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgcGF0aCA9ICJn
ZXN0dXJlLXJlY29nbml6ZXIuanMiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRDhE
M0JFQzIzODQ3QUM5MDA2NTcwNzUgLyogcGluY2guanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IHBhdGggPSBw
aW5jaC5qczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkQ4RDNCRUQyMzg0N0FDOTAw
NjU3MDc1IC8qIHRhcC5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgcGF0aCA9IHRhcC5qczsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ4RkVCREExNDNFM0VGNzAwNzI1MDJCIC8qIENTU0Nyb3Nz
ZmFkZVZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU0Ny
b3NzZmFkZVZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ4RkVCREIx
NDNFM0VGNzAwNzI1MDJCIC8qIENTU0Nyb3NzZmFkZVZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IENTU0Nyb3NzZmFkZVZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTJEOTA2NjA0MEJFMTQxRDQwMDk1Njk5OCAvKiBSZW5kZXJMYXlvdXRTdGF0ZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyTGF5b3V0U3Rh
dGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTc3MzgsNiArMTc3NDMsMTYg
QEAKIAkJCXBhdGggPSBtYWM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQky
RDhEM0JFQTIzODQ3QUM4MDA2NTcwNzUgLyogZ2VzdHVyZS1yZWNvZ25pemVycyAqLyA9IHsKKwkJ
CWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJMkQ4RDNCRUIyMzg0N0FDOTAw
NjU3MDc1IC8qIGdlc3R1cmUtcmVjb2duaXplci5qcyAqLywKKwkJCQkyRDhEM0JFQzIzODQ3QUM5
MDA2NTcwNzUgLyogcGluY2guanMgKi8sCisJCQkJMkQ4RDNCRUQyMzg0N0FDOTAwNjU3MDc1IC8q
IHRhcC5qcyAqLywKKwkJCSk7CisJCQlwYXRoID0gImdlc3R1cmUtcmVjb2duaXplcnMiOworCQkJ
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJMkRERTFDQUIxRjU3NDc1OTAwRDFBMzY1
IC8qIHdlYnZyICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAg
LTIwOTE4LDYgKzIwOTMzLDcgQEAKIAkJCQk3MTZGQTBEODFEQjI2NTkxMDA3MzIzQ0MgLyogYWly
cGxheS1idXR0b24uY3NzICovLAogCQkJCTcxNkZBMEQ5MURCMjY1OTEwMDczMjNDQyAvKiBhaXJw
bGF5LWJ1dHRvbi5qcyAqLywKIAkJCQk3MTZGQTBEQTFEQjI2NTkxMDA3MzIzQ0MgLyogYWlycGxh
eS1wbGFjYXJkLmpzICovLAorCQkJCTJENTY4MDAxMjM4ODg2MDMwMDdFQ0I4QSAvKiBhdXRvLWhp
ZGUtY29udHJvbGxlci5qcyAqLywKIAkJCQk3MTZGQTBEQzFEQjI2NTkxMDA3MzIzQ0MgLyogYnV0
dG9uLmNzcyAqLywKIAkJCQk3MTZGQTBERDFEQjI2NTkxMDA3MzIzQ0MgLyogYnV0dG9uLmpzICov
LAogCQkJCTcxNkZBMERFMURCMjY1OTEwMDczMjNDQyAvKiBidXR0b25zLWNvbnRhaW5lci5jc3Mg
Ki8sCkBAIC0yMDk5Nyw2ICsyMTAxMyw3IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxk
cmVuID0gKAogCQkJCTcxNkZBMEQ3MURCMjY1OTEwMDczMjNDQyAvKiBjb250cm9scyAqLywKKwkJ
CQkyRDhEM0JFQTIzODQ3QUM4MDA2NTcwNzUgLyogZ2VzdHVyZS1yZWNvZ25pemVycyAqLywKIAkJ
CQk3MUQ2QUE2RjFEQTRFQUY3MDBCMjM5NjkgLyogaW1hZ2VzICovLAogCQkJCTcxNDEzMTQ4MURD
OUQ2RUYwMDMzNjEwNyAvKiBqcy1maWxlcyAqLywKIAkJCQk3MUQwMkQ5MTFEQjU1QzRFMDBERDVD
RjUgLyogbWVkaWEgKi8sCkBAIC0zMzExOSw2ICszMzEzNiw3IEBACiAJCQlmaWxlcyA9ICgKIAkJ
CQkyRDUwQTRCNzFDRTEwRTAwMDAxOTgwNDkgLyogQXR0YWNobWVudFBsYWNlaG9sZGVyLnBuZyBp
biBSZXNvdXJjZXMgKi8sCiAJCQkJMkQ1MEE0QjgxQ0UxMEUwMDAwMTk4MDQ5IC8qIEF0dGFjaG1l
bnRQbGFjZWhvbGRlckAyeC5wbmcgaW4gUmVzb3VyY2VzICovLAorCQkJCTJENTY4MDAzMjM4ODg2
MDQwMDdFQ0I4QSAvKiBhdXRvLWhpZGUtY29udHJvbGxlci5qcyBpbiBSZXNvdXJjZXMgKi8sCiAJ
CQkJQTFBQTlBQjkxRDIzOTExNTAwRkVBREIzIC8qIENvbnRlbnRGaWx0ZXJCbG9ja2VkUGFnZS5o
dG1sIGluIFJlc291cmNlcyAqLywKIAkJCQlBMTFFOEMwNTFCMUUyOEY0MDAwM0E3QzcgLyogY29w
eUN1cnNvci5wbmcgaW4gUmVzb3VyY2VzICovLAogCQkJCTJEOUYwRTEzMTRGRjFDQkYwMEJBMEZG
NyAvKiBsaW5lYXJTUkdCLmljYyBpbiBSZXNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFu
Z2VJbnB1dFR5cGUuY3BwCmluZGV4IDg1ZWRiOTdiYjM1MGNlNmU2NTg5NDJjNDI2NDQ3NjgzNmUx
MDNiNGEuLjFkY2ZlM2UzMTI4MjdlNDRmZTA2YzQ0MDkzMDYxYmFiN2MzYjEyZTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCkBAIC0xMzUsOCArMTM1LDYgQEAgYm9vbCBS
YW5nZUlucHV0VHlwZTo6aXNTdGVwcGFibGUoKSBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQog
Ci0jaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCi0KIHZvaWQgUmFuZ2VJbnB1dFR5cGU6OmhhbmRs
ZU1vdXNlRG93bkV2ZW50KE1vdXNlRXZlbnQmIGV2ZW50KQogewogICAgIEFTU0VSVChlbGVtZW50
KCkpOwpAQCAtMTU1LDggKzE1Myw2IEBAIHZvaWQgUmFuZ2VJbnB1dFR5cGU6OmhhbmRsZU1vdXNl
RG93bkV2ZW50KE1vdXNlRXZlbnQmIGV2ZW50KQogICAgIHRodW1iLmRyYWdGcm9tKGV2ZW50LmFi
c29sdXRlTG9jYXRpb24oKSk7CiB9CiAKLSNlbmRpZgotCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5U
UykKIHZvaWQgUmFuZ2VJbnB1dFR5cGU6OmhhbmRsZVRvdWNoRXZlbnQoVG91Y2hFdmVudCYgZXZl
bnQpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmgKaW5kZXggMzJjODhlNzY5ZDBl
MWQ0NGI3NzM4YmQ2YzIzNjQxYWEzYjUxODNmYy4uNTFmYjc5ZDNmNDk5ZTQxMmU3MTBmYTc2OTU3
ZjhiYWFjOTJmZmEyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0
VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuaApAQCAtNTAs
OSArNTAsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgc3VwcG9ydHNSZXF1aXJlZCgpIGNvbnN0IGZp
bmFsOwogICAgIFN0ZXBSYW5nZSBjcmVhdGVTdGVwUmFuZ2UoQW55U3RlcEhhbmRsaW5nKSBjb25z
dCBmaW5hbDsKICAgICBib29sIGlzU3RlcHBhYmxlKCkgY29uc3QgZmluYWw7Ci0jaWYgIVBMQVRG
T1JNKElPU19GQU1JTFkpCiAgICAgdm9pZCBoYW5kbGVNb3VzZURvd25FdmVudChNb3VzZUV2ZW50
JikgZmluYWw7Ci0jZW5kaWYKICAgICBTaG91bGRDYWxsQmFzZUV2ZW50SGFuZGxlciBoYW5kbGVL
ZXlkb3duRXZlbnQoS2V5Ym9hcmRFdmVudCYpIGZpbmFsOwogICAgIFJlbmRlclB0cjxSZW5kZXJF
bGVtZW50PiBjcmVhdGVJbnB1dFJlbmRlcmVyKFJlbmRlclN0eWxlJiYpIGZpbmFsOwogICAgIHZv
aWQgY3JlYXRlU2hhZG93U3VidHJlZSgpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAKaW5kZXggOTJhN2UyMWQ3MDBhNDZkOTUz
YjEwNTA3ZTQ4YTkxNjc0ODQyMmIyMS4uMzUzM2U4YmE4MDc3NGRjMmQ2NmMxNWE0ODEyMWM2Mzc4
ZGRhZTZhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1
bWJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVt
YkVsZW1lbnQuY3BwCkBAIC0yNDYsOSArMjQ2LDcgQEAgdm9pZCBTbGlkZXJUaHVtYkVsZW1lbnQ6
OmRyYWdGcm9tKGNvbnN0IExheW91dFBvaW50JiBwb2ludCkKIHsKICAgICBSZWY8U2xpZGVyVGh1
bWJFbGVtZW50PiBwcm90ZWN0ZWRUaGlzKCp0aGlzKTsKICAgICBzZXRQb3NpdGlvbkZyb21Qb2lu
dChwb2ludCk7Ci0jaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgc3RhcnREcmFnZ2luZygp
OwotI2VuZGlmCiB9CiAKIHZvaWQgU2xpZGVyVGh1bWJFbGVtZW50OjpzZXRQb3NpdGlvbkZyb21Q
b2ludChjb25zdCBMYXlvdXRQb2ludCYgYWJzb2x1dGVQb2ludCkKQEAgLTMzOCw3ICszMzYsNiBA
QCB2b2lkIFNsaWRlclRodW1iRWxlbWVudDo6c3RvcERyYWdnaW5nKCkKICAgICAgICAgcmVuZGVy
ZXIoKS0+c2V0TmVlZHNMYXlvdXQoKTsKIH0KIAotI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQog
dm9pZCBTbGlkZXJUaHVtYkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQmIGV2ZW50
KQogewogICAgIGlmICghaXM8TW91c2VFdmVudD4oZXZlbnQpKSB7CkBAIC0zNzYsOSArMzczLDYg
QEAgdm9pZCBTbGlkZXJUaHVtYkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQmIGV2
ZW50KQogCiAgICAgSFRNTERpdkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIobW91c2VFdmVu
dCk7CiB9Ci0jZW5kaWYKLQotI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQogCiBib29sIFNsaWRl
clRodW1iRWxlbWVudDo6d2lsbFJlc3BvbmRUb01vdXNlTW92ZUV2ZW50cygpCiB7CkBAIC0zOTgs
NyArMzkyLDYgQEAgYm9vbCBTbGlkZXJUaHVtYkVsZW1lbnQ6OndpbGxSZXNwb25kVG9Nb3VzZUNs
aWNrRXZlbnRzKCkKICAgICByZXR1cm4gSFRNTERpdkVsZW1lbnQ6OndpbGxSZXNwb25kVG9Nb3Vz
ZUNsaWNrRXZlbnRzKCk7CiB9CiAKLSNlbmRpZiAvLyAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKIAog
dm9pZCBTbGlkZXJUaHVtYkVsZW1lbnQ6OndpbGxEZXRhY2hSZW5kZXJlcnMoKQogewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuaAppbmRleCA4NDIw
YjAwN2IyNmJmZWYwYWI0ZDI1MTU5YzM5NWJjOWVjNzUyYzc2Li4wNmFiYmY5NjcwMGQxZGRkYTE2
ZDU1MjNlNTUwMDIzYzUyYTA2MGVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9TbGlkZXJUaHVtYkVsZW1lbnQuaApAQCAtNjYsMTEgKzY2LDkgQEAgcHJpdmF0ZToKICAgICBi
b29sIG1hdGNoZXNSZWFkV3JpdGVQc2V1ZG9DbGFzcygpIGNvbnN0IGZpbmFsOwogICAgIFJlZlB0
cjxFbGVtZW50PiBmb2N1c0RlbGVnYXRlKCkgZmluYWw7CiAKLSNpZiAhUExBVEZPUk0oSU9TX0ZB
TUlMWSkKICAgICB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQmKSBmaW5hbDsKICAgICBi
b29sIHdpbGxSZXNwb25kVG9Nb3VzZU1vdmVFdmVudHMoKSBmaW5hbDsKICAgICBib29sIHdpbGxS
ZXNwb25kVG9Nb3VzZUNsaWNrRXZlbnRzKCkgZmluYWw7Ci0jZW5kaWYKIAogI2lmIEVOQUJMRShJ
T1NfVE9VQ0hfRVZFTlRTKQogICAgIHZvaWQgZGlkQXR0YWNoUmVuZGVyZXJzKCkgZmluYWw7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384849</attachid>
            <date>2019-12-04 14:55:43 -0800</date>
            <delta_ts>2019-12-04 18:29:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204543-20191204145542.patch</filename>
            <type>text/plain</type>
            <size>31602</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzMDQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmQ0OWU0NjcyNWFhNjA0
ZTVhZTEyNWE4YjQ4NTg1YTAzMjA3MTJiZS4uYzIyNTQyODM2ZmY4NmFkMzk1NzNmOTAyYjAwNTU5
OWNmZmY2Zjc5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDE5LTEyLTA0ICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIG1hY0NhdGFseXN0
OiBSRUdSRVNTSU9OIChyMjUxMzIwKTogV2ViS2l0LW5hdGl2ZSBtZWRpYSBjb250cm9scyBkbyBu
b3QgcmVzcG9uZCB0byBob3ZlciBvciBjbGljaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0NTQzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NzIw
ODYyMT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZG9wdCBwb2ludGVyIGV2ZW50cyBmb3IgbWVkaWEgY29udHJvbHMsIGluIG9yZGVyIHRvIG1ha2Ug
dGhlbSBpbnB1dC1kZXZpY2UgYWdub3N0aWMuCisKKyAgICAgICAgKiBNb2R1bGVzL21vZGVybi1t
ZWRpYS1jb250cm9scy9jb250cm9scy9hdXRvLWhpZGUtY29udHJvbGxlci5qczoKKyAgICAgICAg
KEF1dG9IaWRlQ29udHJvbGxlcik6CisgICAgICAgIChBdXRvSGlkZUNvbnRyb2xsZXIucHJvdG90
eXBlLnNldCBmYWRlc1doaWxlSWRsZSk6CisgICAgICAgIChBdXRvSGlkZUNvbnRyb2xsZXIucHJv
dG90eXBlLmhhbmRsZUV2ZW50KToKKyAgICAgICAgKEF1dG9IaWRlQ29udHJvbGxlci5wcm90b3R5
cGUuX2F1dG9IaWRlVGltZXJGaXJlZCk6CisgICAgICAgIEluc3RlYWQgb2YgdHJhY2tpbmcgc3Rh
dGUgaW4gYSBzaW5nbGUgYml0IChfZGlzYWJsZUF1dG9IaWRpbmcpLCBrZWVwIHRyYWNrCisgICAg
ICAgIG9mIHNldHMgb2YgcG9pbnRlcnMgdGhhdCBhcmUgYWN0aXZlLCBmb3IgaG92ZXIgYW5kIGZv
ciBhY3R1YWwgdG91Y2gvY2xpY2suCisKKyAgICAgICAgKiBNb2R1bGVzL21vZGVybi1tZWRpYS1j
b250cm9scy9jb250cm9scy9zbGlkZXIuanM6CisgICAgICAgIChTbGlkZXIucHJvdG90eXBlLmhh
bmRsZUV2ZW50KToKKyAgICAgICAgKFNsaWRlci5wcm90b3R5cGUuX2hhbmRsZVBvaW50ZXJkb3du
RXZlbnQpOgorICAgICAgICAoU2xpZGVyLnByb3RvdHlwZS5faGFuZGxlUG9pbnRlcnVwRXZlbnQp
OgorICAgICAgICAoU2xpZGVyLnByb3RvdHlwZS5faGFuZGxlTW91c2Vkb3duRXZlbnQpOiBEZWxl
dGVkLgorICAgICAgICAoU2xpZGVyLnByb3RvdHlwZS5faGFuZGxlVG91Y2hzdGFydEV2ZW50KTog
RGVsZXRlZC4KKyAgICAgICAgKFNsaWRlci5wcm90b3R5cGUuX2hhbmRsZU1vdXNldXBFdmVudCk6
IERlbGV0ZWQuCisgICAgICAgIChTbGlkZXIucHJvdG90eXBlLl9oYW5kbGVUb3VjaGVuZEV2ZW50
KTogRGVsZXRlZC4KKyAgICAgICAgQWRvcHQgcG9pbnRlciBldmVudHMuCisKKyAgICAgICAgKiBN
b2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9nZXN0dXJlLXJlY29nbml6ZXJzL2dlc3R1cmUt
cmVjb2duaXplci5qczoKKyAgICAgICAgKEdlc3R1cmVSZWNvZ25pemVyKToKKyAgICAgICAgKEdl
c3R1cmVSZWNvZ25pemVyLnByb3RvdHlwZS5nZXQgbnVtYmVyT2ZUb3VjaGVzKToKKyAgICAgICAg
KEdlc3R1cmVSZWNvZ25pemVyLnByb3RvdHlwZS5sb2NhdGlvbkluRWxlbWVudCk6CisgICAgICAg
IChHZXN0dXJlUmVjb2duaXplci5wcm90b3R5cGUubG9jYXRpb25JbkNsaWVudCk6CisgICAgICAg
IChHZXN0dXJlUmVjb2duaXplci5wcm90b3R5cGUudG91Y2hlc0JlZ2FuKToKKyAgICAgICAgKEdl
c3R1cmVSZWNvZ25pemVyLnByb3RvdHlwZS5oYW5kbGVFdmVudCk6CisgICAgICAgIChHZXN0dXJl
UmVjb2duaXplci5wcm90b3R5cGUuX3VwZGF0ZUJhc2VMaXN0ZW5lcnMpOgorICAgICAgICAoR2Vz
dHVyZVJlY29nbml6ZXIucHJvdG90eXBlLl9yZW1vdmVUcmFja2luZ0xpc3RlbmVycyk6CisgICAg
ICAgIChHZXN0dXJlUmVjb2duaXplci5wcm90b3R5cGUuX3VwZGF0ZVRhcmdldFRvdWNoZXMpOgor
ICAgICAgICAoR2VzdHVyZVJlY29nbml6ZXIucHJvdG90eXBlLmxvY2F0aW9uT2ZUb3VjaEluRWxl
bWVudCk6IERlbGV0ZWQuCisgICAgICAgIEluc3RlYWQgb2Yga2VlcGluZyB0cmFjayBvZiBUb3Vj
aGVzLCBrZWVwIHRyYWNrIG9mIHRoZSBjdXJyZW50bHktYWN0aXZlIHNldCBvZiBQb2ludGVyRXZl
bnRzLgorICAgICAgICBXZSBqdXN0IHN0b3JlIGV2ZW50cyBieSBwb2ludGVySWQsIGFuZCB1cGRh
dGUgdGhlbSB3aGVuIHRoZXkgY2hhbmdlLCBzbyB3ZSBjYW4KKyAgICAgICAgbGF0ZXIgcmV0cmll
dmUgZS5nLiBwb2ludHMuCisgICAgICAgIFJlbW92ZSBsb2NhdGlvbk9mVG91Y2hJbkVsZW1lbnQg
d2hpY2ggc2VlbXMgdG8gbm90IGJlIHVzZWQuCisKKyAgICAgICAgKiBodG1sL1JhbmdlSW5wdXRU
eXBlLmNwcDoKKyAgICAgICAgKiBodG1sL1JhbmdlSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRt
bC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNsaWRl
clRodW1iRWxlbWVudDo6ZHJhZ0Zyb20pOgorICAgICAgICAoV2ViQ29yZTo6U2xpZGVyVGh1bWJF
bGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9TbGlk
ZXJUaHVtYkVsZW1lbnQuaDoKKyAgICAgICAgQWxsb3cgcmFuZ2UgaW5wdXRzIHRvIGFjY2VwdCBt
b3VzZSBldmVudHMgZXZlcnl3aGVyZS4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgQWRkIHNvbWUgbWlzc2luZyBmaWxlcyB0byB0aGUgcHJv
amVjdC4KKwogMjAxOS0xMi0wMyAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNv
bT4KIAogICAgICAgICBTdGFydCBhZGRpbmcgZW5jb2Rpbmcgc3VwcG9ydCBmb3IgRGlzcGxheUxp
c3QgYW5kIHNvbWUgRGlzcGxheUxpc3RJdGVtcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvYXV0by1oaWRlLWNvbnRyb2xs
ZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250
cm9scy9hdXRvLWhpZGUtY29udHJvbGxlci5qcwppbmRleCBhNzRiYzcxYTE1YWE2NTJjMzRjZjc4
ODkyOGYxNDk3ODFmNzgwZDI2Li41OGM2OWQ5YzFhOGY5MDdkZWNmMDY0NjFjNzIzMDBjMWEyYzYz
NGMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250
cm9scy9jb250cm9scy9hdXRvLWhpZGUtY29udHJvbGxlci5qcworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9hdXRvLWhpZGUtY29udHJv
bGxlci5qcwpAQCAtMzIsMTAgKzMyLDExIEBAIGNsYXNzIEF1dG9IaWRlQ29udHJvbGxlcgogICAg
IHsKICAgICAgICAgdGhpcy5fbWVkaWFDb250cm9scyA9IG1lZGlhQ29udHJvbHM7CiAKLSAgICAg
ICAgaWYgKEdlc3R1cmVSZWNvZ25pemVyLlN1cHBvcnRzVG91Y2hlcykgewotICAgICAgICAgICAg
dGhpcy5fdG91Y2hJZGVudGlmaWVyc1ByZXZlbnRpbmdBdXRvSGlkZSA9IG5ldyBTZXQ7CisgICAg
ICAgIHRoaXMuX3BvaW50ZXJJZGVudGlmaWVyc1ByZXZlbnRpbmdBdXRvSGlkZSA9IG5ldyBTZXQ7
CisgICAgICAgIHRoaXMuX3BvaW50ZXJJZGVudGlmaWVyc1ByZXZlbnRpbmdBdXRvSGlkZUZvckhv
dmVyID0gbmV3IFNldDsKKworICAgICAgICBpZiAoR2VzdHVyZVJlY29nbml6ZXIuU3VwcG9ydHNU
b3VjaGVzKQogICAgICAgICAgICAgdGhpcy5fdGFwR2VzdHVyZVJlY29nbml6ZXIgPSBuZXcgVGFw
R2VzdHVyZVJlY29nbml6ZXIodGhpcy5fbWVkaWFDb250cm9scy5lbGVtZW50LCB0aGlzKTsKLSAg
ICAgICAgfQogCiAgICAgICAgIHRoaXMuYXV0b0hpZGVEZWxheSA9IEF1dG9IaWRlRGVsYXlNUzsK
ICAgICB9CkBAIC01NCwyMyArNTUsMTcgQEAgY2xhc3MgQXV0b0hpZGVDb250cm9sbGVyCiAKICAg
ICAgICAgdGhpcy5fZmFkZXNXaGlsZUlkbGUgPSBmbGFnOwogCi0gICAgICAgIGlmIChHZXN0dXJl
UmVjb2duaXplci5TdXBwb3J0c1RvdWNoZXMpIHsKLSAgICAgICAgICAgIGlmIChmbGFnKSB7Ci0g
ICAgICAgICAgICAgICAgdGhpcy5fbWVkaWFDb250cm9scy5lbGVtZW50LmFkZEV2ZW50TGlzdGVu
ZXIoInRvdWNoc3RhcnQiLCB0aGlzKTsKLSAgICAgICAgICAgICAgICB0aGlzLl9tZWRpYUNvbnRy
b2xzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLCB0aGlzKTsKLSAgICAgICAg
ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgdGhpcy5fbWVkaWFDb250cm9scy5lbGVtZW50
LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLCB0aGlzKTsKLSAgICAgICAgICAgICAg
ICB0aGlzLl9tZWRpYUNvbnRyb2xzLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hl
bmQiLCB0aGlzKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHRoaXMuX3RhcEdlc3R1cmVS
ZWNvZ25pemVyLmVuYWJsZWQgPSBmbGFnOworICAgICAgICBpZiAoZmxhZykgeworICAgICAgICAg
ICAgdGhpcy5fbWVkaWFDb250cm9scy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJt
b3ZlIiwgdGhpcyk7CisgICAgICAgICAgICB0aGlzLl9tZWRpYUNvbnRyb2xzLmVsZW1lbnQuYWRk
RXZlbnRMaXN0ZW5lcigicG9pbnRlcmRvd24iLCB0aGlzKTsKKyAgICAgICAgICAgIHRoaXMuX21l
ZGlhQ29udHJvbHMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVydXAiLCB0aGlzKTsK
KyAgICAgICAgICAgIHRoaXMuX21lZGlhQ29udHJvbHMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVy
KCJwb2ludGVybGVhdmUiLCB0aGlzKTsKKyAgICAgICAgICAgIHRoaXMuX21lZGlhQ29udHJvbHMu
ZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVyb3V0IiwgdGhpcyk7CiAgICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICBpZiAoZmxhZykgewotICAgICAgICAgICAgICAgIHRoaXMuX21l
ZGlhQ29udHJvbHMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLCB0aGlzKTsK
LSAgICAgICAgICAgICAgICB0aGlzLl9tZWRpYUNvbnRyb2xzLmVsZW1lbnQuYWRkRXZlbnRMaXN0
ZW5lcigibW91c2VsZWF2ZSIsIHRoaXMpOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICAgICAgICB0aGlzLl9tZWRpYUNvbnRyb2xzLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigi
bW91c2Vtb3ZlIiwgdGhpcyk7Ci0gICAgICAgICAgICAgICAgdGhpcy5fbWVkaWFDb250cm9scy5l
bGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLCB0aGlzKTsKLSAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIHRoaXMuX21lZGlhQ29udHJvbHMuZWxlbWVudC5yZW1vdmVFdmVu
dExpc3RlbmVyKCJwb2ludGVybW92ZSIsIHRoaXMpOworICAgICAgICAgICAgdGhpcy5fbWVkaWFD
b250cm9scy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJkb3duIiwgdGhpcyk7
CisgICAgICAgICAgICB0aGlzLl9tZWRpYUNvbnRyb2xzLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0
ZW5lcigicG9pbnRlcnVwIiwgdGhpcyk7CisgICAgICAgICAgICB0aGlzLl9tZWRpYUNvbnRyb2xz
LmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcm91dCIsIHRoaXMpOwogICAgICAg
ICB9CiAKICAgICAgICAgaWYgKGZsYWcgJiYgIXRoaXMuX21lZGlhQ29udHJvbHMuZmFkZWQpCkBA
IC04NiwzNSArODEsMzggQEAgY2xhc3MgQXV0b0hpZGVDb250cm9sbGVyCiAgICAgICAgIGlmIChl
dmVudC5jdXJyZW50VGFyZ2V0ICE9PSB0aGlzLl9tZWRpYUNvbnRyb2xzLmVsZW1lbnQpCiAgICAg
ICAgICAgICByZXR1cm47CiAKLSAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09ICJtb3VzZW1vdmUi
KSB7CisgICAgICAgIGlmIChldmVudC50eXBlID09PSAicG9pbnRlcm1vdmUiKSB7CiAgICAgICAg
ICAgICB0aGlzLl9tZWRpYUNvbnRyb2xzLmZhZGVkID0gZmFsc2U7CiAgICAgICAgICAgICB0aGlz
Ll9yZXNldEF1dG9IaWRlVGltZXIodHJ1ZSk7CiAgICAgICAgICAgICBpZiAodGhpcy5fbWVkaWFD
b250cm9scy5pc1BvaW50SW5Db250cm9scyhuZXcgRE9NUG9pbnQoZXZlbnQuY2xpZW50WCwgZXZl
bnQuY2xpZW50WSkpKSB7Ci0gICAgICAgICAgICAgICAgdGhpcy5fZGlzYWJsZUF1dG9IaWRpbmcg
PSB0cnVlOworICAgICAgICAgICAgICAgIHRoaXMuX3BvaW50ZXJJZGVudGlmaWVyc1ByZXZlbnRp
bmdBdXRvSGlkZUZvckhvdmVyLmFkZChldmVudC5wb2ludGVySWQpOwogICAgICAgICAgICAgICAg
IHRoaXMuX2NhbmNlbE5vbkVuZm9yY2VkQXV0b0hpZGVUaW1lcigpOwogICAgICAgICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICAgICAgICBkZWxldGUgdGhpcy5fZGlzYWJsZUF1dG9IaWRpbmc7Cisg
ICAgICAgICAgICAgICAgdGhpcy5fcG9pbnRlcklkZW50aWZpZXJzUHJldmVudGluZ0F1dG9IaWRl
Rm9ySG92ZXIuZGVsZXRlKGV2ZW50LnBvaW50ZXJJZCk7CiAgICAgICAgICAgICAgICAgdGhpcy5f
cmVzZXRBdXRvSGlkZVRpbWVyKHRydWUpOwogICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2Ug
aWYgKGV2ZW50LnR5cGUgPT09ICJtb3VzZWxlYXZlIiAmJiB0aGlzLl9mYWRlc1doaWxlSWRsZSAm
JiAhdGhpcy5oYXNTZWNvbmRhcnlVSUF0dGFjaGVkICYmICF0aGlzLl9lbmZvcmNlQXV0b0hpZGVU
aW1lcikKLSAgICAgICAgICAgIHRoaXMuX21lZGlhQ29udHJvbHMuZmFkZWQgPSAhdGhpcy5fbWVk
aWFDb250cm9scy5pc1BvaW50SW5Db250cm9scyhuZXcgRE9NUG9pbnQoZXZlbnQuY2xpZW50WCwg
ZXZlbnQuY2xpZW50WSkpOworICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LnR5cGUgPT09ICJwb2lu
dGVybGVhdmUiICYmIHRoaXMuX2ZhZGVzV2hpbGVJZGxlICYmICF0aGlzLmhhc1NlY29uZGFyeVVJ
QXR0YWNoZWQgJiYgIXRoaXMuX2VuZm9yY2VBdXRvSGlkZVRpbWVyKSB7CisgICAgICAgICAgICB0
aGlzLl9wb2ludGVySWRlbnRpZmllcnNQcmV2ZW50aW5nQXV0b0hpZGUuZGVsZXRlKGV2ZW50LnBv
aW50ZXJJZCk7CisgICAgICAgICAgICB0aGlzLl9wb2ludGVySWRlbnRpZmllcnNQcmV2ZW50aW5n
QXV0b0hpZGVGb3JIb3Zlci5kZWxldGUoZXZlbnQucG9pbnRlcklkKTsKKworICAgICAgICAgICAg
Ly8gSWYgdGhlIHBvaW50ZXIgaXMgYSBtb3VzZSAoc3VwcG9ydHMgaG92ZXIpLCBzZWUgaWYgd2Ug
Y2FuCisgICAgICAgICAgICAvLyBpbW1lZGlhdGVseSBoaWRlIHdpdGhvdXQgd2FpdGluZyBmb3Ig
dGhlIGF1dG8taGlkZSB0aW1lci4KKyAgICAgICAgICAgIGlmIChldmVudC5wb2ludGVyVHlwZSA9
PSAibW91c2UiKQorICAgICAgICAgICAgICAgIHRoaXMuX2F1dG9IaWRlVGltZXJGaXJlZCgpOwog
Ci0gICAgICAgIGlmIChldmVudC50eXBlID09PSAidG91Y2hzdGFydCIpIHsKKyAgICAgICAgICAg
IHRoaXMuX3Jlc2V0QXV0b0hpZGVUaW1lcih0cnVlKTsKKyAgICAgICAgfQorCisgICAgICAgIGlm
IChldmVudC50eXBlID09PSAicG9pbnRlcmRvd24iKSB7CiAgICAgICAgICAgICAvLyBSZW1lbWJl
ciB0aGUgY3VycmVudCBmYWRlZCBzdGF0ZSBzbyB0aGF0IHdlIGNhbiBkZXRlcm1pbmUsCiAgICAg
ICAgICAgICAvLyBpZiB3ZSByZWNvZ25pemUgYSB0YXAsIGlmIGl0IHNob3VsZCBmYWRlIHRoZSBj
b250cm9scyBvdXQuCiAgICAgICAgICAgICB0aGlzLl9uZXh0VGFwQ2FuRmFkZUNvbnRyb2xzID0g
IXRoaXMuX21lZGlhQ29udHJvbHMuZmFkZWQ7Ci0gICAgICAgICAgICBmb3IgKHZhciB0b3VjaCBp
biBldmVudC5jaGFuZ2VkVG91Y2hlcykKLSAgICAgICAgICAgICAgICB0aGlzLl90b3VjaElkZW50
aWZpZXJzUHJldmVudGluZ0F1dG9IaWRlLmFkZCh0b3VjaC5pZGVudGlmaWVyKTsKKyAgICAgICAg
ICAgIHRoaXMuX3BvaW50ZXJJZGVudGlmaWVyc1ByZXZlbnRpbmdBdXRvSGlkZS5hZGQoZXZlbnQu
cG9pbnRlcklkKTsKICAgICAgICAgICAgIHRoaXMuX21lZGlhQ29udHJvbHMuZmFkZWQgPSBmYWxz
ZTsKLSAgICAgICAgICAgIHRoaXMuX2Rpc2FibGVBdXRvSGlkaW5nID0gdHJ1ZTsKICAgICAgICAg
ICAgIHRoaXMuX2NhbmNlbE5vbkVuZm9yY2VkQXV0b0hpZGVUaW1lcigpOwotICAgICAgICB9IGVs
c2UgaWYgKGV2ZW50LnR5cGUgPT09ICJ0b3VjaGVuZCIpIHsKLSAgICAgICAgICAgIGZvciAodmFy
IHRvdWNoIGluIGV2ZW50LmNoYW5nZWRUb3VjaGVzKQotICAgICAgICAgICAgICAgIHRoaXMuX3Rv
dWNoSWRlbnRpZmllcnNQcmV2ZW50aW5nQXV0b0hpZGUuZGVsZXRlKHRvdWNoLmlkZW50aWZpZXIp
OwotICAgICAgICAgICAgaWYgKCF0aGlzLl90b3VjaElkZW50aWZpZXJzUHJldmVudGluZ0F1dG9I
aWRlLnNpemUpIHsKLSAgICAgICAgICAgICAgICBkZWxldGUgdGhpcy5fZGlzYWJsZUF1dG9IaWRp
bmc7Ci0gICAgICAgICAgICAgICAgdGhpcy5fcmVzZXRBdXRvSGlkZVRpbWVyKHRydWUpOwotICAg
ICAgICAgICAgfQorICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LnR5cGUgPT09ICJwb2ludGVydXAi
KSB7CisgICAgICAgICAgICB0aGlzLl9wb2ludGVySWRlbnRpZmllcnNQcmV2ZW50aW5nQXV0b0hp
ZGUuZGVsZXRlKGV2ZW50LnBvaW50ZXJJZCk7CisgICAgICAgICAgICB0aGlzLl9yZXNldEF1dG9I
aWRlVGltZXIodHJ1ZSk7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTE3MSw4ICsxNjksMTAgQEAg
Y2xhc3MgQXV0b0hpZGVDb250cm9sbGVyCiAKICAgICBfYXV0b0hpZGVUaW1lckZpcmVkKCkKICAg
ICB7CisgICAgICAgIGxldCBkaXNhYmxlQXV0b0hpZGluZyA9ICF0aGlzLl9wb2ludGVySWRlbnRp
ZmllcnNQcmV2ZW50aW5nQXV0b0hpZGUuc2l6ZSAmJiAhdGhpcy5fcG9pbnRlcklkZW50aWZpZXJz
UHJldmVudGluZ0F1dG9IaWRlRm9ySG92ZXIuc2l6ZTsKKwogICAgICAgICBkZWxldGUgdGhpcy5f
ZW5mb3JjZUF1dG9IaWRlVGltZXI7Ci0gICAgICAgIGlmICh0aGlzLl9kaXNhYmxlQXV0b0hpZGlu
ZykKKyAgICAgICAgaWYgKGRpc2FibGVBdXRvSGlkaW5nKQogICAgICAgICAgICAgcmV0dXJuOwog
CiAgICAgICAgIHRoaXMuX2NhbmNlbEF1dG9IaWRlVGltZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL3NsaWRlci5q
cyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xz
L3NsaWRlci5qcwppbmRleCAyOGVmMzMwODgwNWIwYjYzMmE1OTI2ZmMxZDZlYWZlMGZiMzJlYjY1
Li5jYzJiMmQ2OTU2ZDFjZGM0ZjhkYTFjM2FiZWI2OTI4N2M4YTFhNTBiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9zbGlk
ZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMv
Y29udHJvbHMvc2xpZGVyLmpzCkBAIC0zOCw3ICszOCw3IEBAIGNsYXNzIFNsaWRlciBleHRlbmRz
IExheW91dE5vZGUKICAgICAgICAgdGhpcy5fY29udGFpbmVyLmNoaWxkcmVuID0gW3RoaXMuX3Ry
YWNrLCB0aGlzLl9wcmltYXJ5RmlsbCwgdGhpcy5fc2Vjb25kYXJ5RmlsbCwgdGhpcy5fa25vYl07
CiAKICAgICAgICAgdGhpcy5faW5wdXQgPSBuZXcgTGF5b3V0Tm9kZShgPGlucHV0IHR5cGU9InJh
bmdlIiBtaW49IjAiIG1heD0iMSIgc3RlcD0iMC4wMDEiIC8+YCk7Ci0gICAgICAgIHRoaXMuX2lu
cHV0LmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihHZXN0dXJlUmVjb2duaXplci5TdXBwb3J0c1Rv
dWNoZXMgPyAidG91Y2hzdGFydCIgOiAibW91c2Vkb3duIiwgdGhpcyk7CisgICAgICAgIHRoaXMu
X2lucHV0LmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmRvd24iLCB0aGlzKTsKICAg
ICAgICAgdGhpcy5faW5wdXQuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsIHRoaXMp
OwogICAgICAgICB0aGlzLl9pbnB1dC5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIs
IHRoaXMpOwogCkBAIC0xMDksMTcgKzEwOSwxMSBAQCBjbGFzcyBTbGlkZXIgZXh0ZW5kcyBMYXlv
dXROb2RlCiAgICAgaGFuZGxlRXZlbnQoZXZlbnQpCiAgICAgewogICAgICAgICBzd2l0Y2ggKGV2
ZW50LnR5cGUpIHsKLSAgICAgICAgY2FzZSAibW91c2Vkb3duIjoKLSAgICAgICAgICAgIHRoaXMu
X2hhbmRsZU1vdXNlZG93bkV2ZW50KCk7CisgICAgICAgIGNhc2UgInBvaW50ZXJkb3duIjoKKyAg
ICAgICAgICAgIHRoaXMuX2hhbmRsZVBvaW50ZXJkb3duRXZlbnQoKTsKICAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICBjYXNlICJ0b3VjaHN0YXJ0IjoKLSAgICAgICAgICAgIHRoaXMuX2hhbmRs
ZVRvdWNoc3RhcnRFdmVudChldmVudCk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2Fz
ZSAibW91c2V1cCI6Ci0gICAgICAgICAgICB0aGlzLl9oYW5kbGVNb3VzZXVwRXZlbnQoKTsKLSAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlICJ0b3VjaGVuZCI6Ci0gICAgICAgICAgICB0
aGlzLl9oYW5kbGVUb3VjaGVuZEV2ZW50KGV2ZW50KTsKKyAgICAgICAgY2FzZSAicG9pbnRlcnVw
IjoKKyAgICAgICAgICAgIHRoaXMuX2hhbmRsZVBvaW50ZXJ1cEV2ZW50KCk7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgY2FzZSAiY2hhbmdlIjoKICAgICAgICAgY2FzZSAiaW5wdXQiOgpA
QCAtMTU4LDEwICsxNTIsMTAgQEAgY2xhc3MgU2xpZGVyIGV4dGVuZHMgTGF5b3V0Tm9kZQogCiAg
ICAgLy8gUHJpdmF0ZQogCi0gICAgX2hhbmRsZU1vdXNlZG93bkV2ZW50KCkKKyAgICBfaGFuZGxl
UG9pbnRlcmRvd25FdmVudCgpCiAgICAgewotICAgICAgICB0aGlzLl9tb3VzZXVwVGFyZ2V0ID0g
dGhpcy5faW50ZXJhY3Rpb25FbmRUYXJnZXQoKTsKLSAgICAgICAgdGhpcy5fbW91c2V1cFRhcmdl
dC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIiwgdGhpcywgdHJ1ZSk7CisgICAgICAgIHRoaXMu
X3BvaW50ZXJ1cFRhcmdldCA9IHRoaXMuX2ludGVyYWN0aW9uRW5kVGFyZ2V0KCk7CisgICAgICAg
IHRoaXMuX3BvaW50ZXJ1cFRhcmdldC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVydXAiLCB0aGlz
LCB0cnVlKTsKIAogICAgICAgICB0aGlzLl92YWx1ZVdpbGxTdGFydENoYW5naW5nKCk7CiAgICAg
fQpAQCAtMTcyLDIwICsxNjYsNiBAQCBjbGFzcyBTbGlkZXIgZXh0ZW5kcyBMYXlvdXROb2RlCiAg
ICAgICAgIHJldHVybiAoIW1lZGlhQ29udHJvbHMgfHwgbWVkaWFDb250cm9scyBpbnN0YW5jZW9m
IE1hY09TSW5saW5lTWVkaWFDb250cm9scykgPyB3aW5kb3cgOiBtZWRpYUNvbnRyb2xzLmVsZW1l
bnQ7CiAgICAgfQogCi0gICAgX2hhbmRsZVRvdWNoc3RhcnRFdmVudChldmVudCkKLSAgICB7Ci0g
ICAgICAgIC8vIFdlJ3JlIG9ubHkgaW50ZXJlc3RlZCBpbiB0aGUgdmVyeSBmaXJzdCB0b3VjaCBv
biB0aGUgPGlucHV0Pi4KLSAgICAgICAgaWYgKGV2ZW50LnRvdWNoZXMubGVuZ3RoICE9PSAxKQot
ICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIHRoaXMuX2luaXRpYWxUb3VjaElkZW50aWZp
ZXIgPSBldmVudC50b3VjaGVzWzBdLmlkZW50aWZpZXI7Ci0KLSAgICAgICAgdGhpcy5fdG91Y2hl
bmRUYXJnZXQgPSB0aGlzLl9pbnRlcmFjdGlvbkVuZFRhcmdldCgpOwotICAgICAgICB0aGlzLl90
b3VjaGVuZFRhcmdldC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsIHRoaXMsIHRydWUpOwot
Ci0gICAgICAgIHRoaXMuX3ZhbHVlV2lsbFN0YXJ0Q2hhbmdpbmcoKTsKLSAgICB9Ci0KICAgICBf
dmFsdWVXaWxsU3RhcnRDaGFuZ2luZygpCiAgICAgewogICAgICAgICAvLyBXZSBzaG91bGQgbm8g
bG9uZ2VyIGNhY2hlIHRoZSB2YWx1ZSBzaW5jZSB3ZSdsbCBiZSBpbnRlcmFjdGluZyB3aXRoIHRo
ZSA8aW5wdXQ+CkBAIC0yMTUsMjQgKzE5NSwxMSBAQCBjbGFzcyBTbGlkZXIgZXh0ZW5kcyBMYXlv
dXROb2RlCiAgICAgICAgIHRoaXMubmVlZHNMYXlvdXQgPSB0cnVlOwogICAgIH0KIAotICAgIF9o
YW5kbGVNb3VzZXVwRXZlbnQoKQorICAgIF9oYW5kbGVQb2ludGVydXBFdmVudCgpCiAgICAgewot
ICAgICAgICB0aGlzLl9tb3VzZXVwVGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAi
LCB0aGlzLCB0cnVlKTsKLSAgICAgICAgZGVsZXRlIHRoaXMuX21vdXNldXBUYXJnZXQ7CisgICAg
ICAgIHRoaXMuX3BvaW50ZXJ1cFRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVydXAi
LCB0aGlzLCB0cnVlKTsKKyAgICAgICAgZGVsZXRlIHRoaXMuX3BvaW50ZXJ1cFRhcmdldDsKIAog
ICAgICAgICB0aGlzLl92YWx1ZURpZFN0b3BDaGFuZ2luZygpOwogICAgIH0KLQotICAgIF9oYW5k
bGVUb3VjaGVuZEV2ZW50KGV2ZW50KQotICAgIHsKLSAgICAgICAgaWYgKCFBcnJheS5mcm9tKGV2
ZW50LmNoYW5nZWRUb3VjaGVzKS5maW5kKHRvdWNoID0+IHRvdWNoLmlkZW50aWZpZXIgPT09IHRo
aXMuX2luaXRpYWxUb3VjaElkZW50aWZpZXIpKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAg
ICAgIHRoaXMuX3RvdWNoZW5kVGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIiwg
dGhpcywgdHJ1ZSk7Ci0gICAgICAgIGRlbGV0ZSB0aGlzLl90b3VjaGVuZFRhcmdldDsKLSAgICAg
ICAgZGVsZXRlIHRoaXMuX2luaXRpYWxUb3VjaElkZW50aWZpZXI7Ci0KLSAgICAgICAgdGhpcy5f
dmFsdWVEaWRTdG9wQ2hhbmdpbmcoKTsKLSAgICB9Ci0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2dlc3R1cmUtcmVjb2duaXplcnMv
Z2VzdHVyZS1yZWNvZ25pemVyLmpzIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVk
aWEtY29udHJvbHMvZ2VzdHVyZS1yZWNvZ25pemVycy9nZXN0dXJlLXJlY29nbml6ZXIuanMKaW5k
ZXggMmI1NTFlN2UzYjY5NmY0NjU5YTIyZGRlNzdlYzQ2NzNiNWI3ZTY0ZC4uNWEyNzAwNjU5MmZi
MjI4ZGMzNTE5MjRjNWNiNjdlY2NhMDUzZGQyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvZ2VzdHVyZS1yZWNvZ25pemVycy9nZXN0dXJl
LXJlY29nbml6ZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvZ2VzdHVyZS1yZWNvZ25pemVycy9nZXN0dXJlLXJlY29nbml6ZXIuanMKQEAgLTEs
MTAgKzEsOSBAQAotCiBjbGFzcyBHZXN0dXJlUmVjb2duaXplcgogewogCiAgICAgY29uc3RydWN0
b3IodGFyZ2V0ID0gbnVsbCwgZGVsZWdhdGUgPSBudWxsKQogICAgIHsKLSAgICAgICAgdGhpcy5f
dGFyZ2V0VG91Y2hlcyA9IFtdOworICAgICAgICB0aGlzLl90YXJnZXRQb2ludGVycyA9IG5ldyBN
YXA7CiAKICAgICAgICAgdGhpcy5tb2RpZmllcktleXMgPSB7CiAgICAgICAgICAgICBhbHQgOiBm
YWxzZSwKQEAgLTUzLDcgKzUyLDcgQEAgY2xhc3MgR2VzdHVyZVJlY29nbml6ZXIKIAogICAgIGdl
dCBudW1iZXJPZlRvdWNoZXMoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3RhcmdldFRv
dWNoZXMubGVuZ3RoOworICAgICAgICByZXR1cm4gdGhpcy5fdGFyZ2V0UG9pbnRlcnMuc2l6ZTsK
ICAgICB9CiAKICAgICBnZXQgZW5hYmxlZCgpCkBAIC04NywxMyArODYsMTMgQEAgY2xhc3MgR2Vz
dHVyZVJlY29nbml6ZXIKICAgICBsb2NhdGlvbkluRWxlbWVudChlbGVtZW50KQogICAgIHsKICAg
ICAgICAgY29uc3QgcCA9IG5ldyBET01Qb2ludDsKLSAgICAgICAgY29uc3QgdG91Y2hlcyA9IHRo
aXMuX3RhcmdldFRvdWNoZXM7Ci0gICAgICAgIGNvbnN0IGNvdW50ID0gdG91Y2hlcy5sZW5ndGg7
Ci0gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY291bnQ7ICsraSkgewotICAgICAgICAgICAg
Y29uc3QgdG91Y2ggPSB0b3VjaGVzW2ldOwotICAgICAgICAgICAgcC54ICs9IHRvdWNoLnBhZ2VY
OwotICAgICAgICAgICAgcC55ICs9IHRvdWNoLnBhZ2VZOwotICAgICAgICB9CisgICAgICAgIGNv
bnN0IGNvdW50ID0gdGhpcy5fdGFyZ2V0UG9pbnRlcnMuc2l6ZTsKKyAgICAgICAgaWYgKCFjb3Vu
dCkKKyAgICAgICAgICAgIHJldHVybiBwOworICAgICAgICB0aGlzLl90YXJnZXRQb2ludGVycy5m
b3JFYWNoKGZ1bmN0aW9uIChwb2ludGVyKSB7CisgICAgICAgICAgICBwLnggKz0gcG9pbnRlci5w
YWdlWDsKKyAgICAgICAgICAgIHAueSArPSBwb2ludGVyLnBhZ2VZOworICAgICAgICB9KTsKICAg
ICAgICAgcC54IC89IGNvdW50OwogICAgICAgICBwLnkgLz0gY291bnQ7CiAKQEAgLTEwOCw0MiAr
MTA3LDI3IEBAIGNsYXNzIEdlc3R1cmVSZWNvZ25pemVyCiAgICAgbG9jYXRpb25JbkNsaWVudCgp
CiAgICAgewogICAgICAgICBjb25zdCBwID0gbmV3IERPTVBvaW50OwotICAgICAgICBjb25zdCB0
b3VjaGVzID0gdGhpcy5fdGFyZ2V0VG91Y2hlczsKLSAgICAgICAgY29uc3QgY291bnQgPSB0b3Vj
aGVzLmxlbmd0aDsKLSAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7Ci0g
ICAgICAgICAgICBjb25zdCB0b3VjaCA9IHRvdWNoZXNbaV07Ci0gICAgICAgICAgICBwLnggKz0g
dG91Y2guY2xpZW50WDsKLSAgICAgICAgICAgIHAueSArPSB0b3VjaC5jbGllbnRZOwotICAgICAg
ICB9CisgICAgICAgIGNvbnN0IGNvdW50ID0gdGhpcy5fdGFyZ2V0UG9pbnRlcnMuc2l6ZTsKKyAg
ICAgICAgaWYgKCFjb3VudCkKKyAgICAgICAgICAgIHJldHVybiBwOworICAgICAgICB0aGlzLl90
YXJnZXRQb2ludGVycy5mb3JFYWNoKGZ1bmN0aW9uIChwb2ludGVyKSB7CisgICAgICAgICAgICBw
LnggKz0gcG9pbnRlci5jbGllbnRYOworICAgICAgICAgICAgcC55ICs9IHBvaW50ZXIuY2xpZW50
WTsKKyAgICAgICAgfSk7CiAgICAgICAgIHAueCAvPSBjb3VudDsKICAgICAgICAgcC55IC89IGNv
dW50OwogCiAgICAgICAgIHJldHVybiBwOwogICAgIH0KIAotICAgIGxvY2F0aW9uT2ZUb3VjaElu
RWxlbWVudCh0b3VjaEluZGV4LCBlbGVtZW50KQotICAgIHsKLSAgICAgICAgY29uc3QgdG91Y2gg
PSB0aGlzLl90YXJnZXRUb3VjaGVzW3RvdWNoSW5kZXhdOwotICAgICAgICBpZiAoIXRvdWNoKQot
ICAgICAgICAgICAgcmV0dXJuIG5ldyBET01Qb2ludDsKLQotICAgICAgICBjb25zdCB0b3VjaExv
Y2F0aW9uID0gbmV3IERPTVBvaW50KHRvdWNoLnBhZ2VYLCB0b3VjaC5wYWdlWSk7Ci0gICAgICAg
IGlmICghZWxlbWVudCkKLSAgICAgICAgICAgIHJldHVybiB0b3VjaExvY2F0aW9uOwotCi0gICAg
ICAgIC8vIEZJWE1FOiBhcmUgV2ViS2l0UG9pbnQgYW5kIERPTVBvaW50IGludGVyY2hhbmdlYWJs
ZT8KLSAgICAgICAgY29uc3Qgd2tQb2ludCA9IHdpbmRvdy53ZWJraXRDb252ZXJ0UG9pbnRGcm9t
UGFnZVRvTm9kZShlbGVtZW50LCBuZXcgV2ViS2l0UG9pbnQodG91Y2hMb2NhdGlvbi54LCB0b3Vj
aExvY2F0aW9uLnkpKTsKLSAgICAgICAgcmV0dXJuIG5ldyBET01Qb2ludCh3a1BvaW50LngsIHdr
UG9pbnQueSk7Ci0gICAgfQotCiAgICAgdG91Y2hlc0JlZ2FuKGV2ZW50KQogICAgIHsKICAgICAg
ICAgaWYgKGV2ZW50LmN1cnJlbnRUYXJnZXQgIT09IHRoaXMuX3RhcmdldCkKICAgICAgICAgICAg
IHJldHVybjsKIAotICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihHZXN0dXJlUmVjb2du
aXplci5FdmVudHMuVG91Y2hNb3ZlLCB0aGlzLCB0cnVlKTsKLSAgICAgICAgd2luZG93LmFkZEV2
ZW50TGlzdGVuZXIoR2VzdHVyZVJlY29nbml6ZXIuRXZlbnRzLlRvdWNoRW5kLCB0aGlzLCB0cnVl
KTsKLSAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoR2VzdHVyZVJlY29nbml6ZXIuRXZl
bnRzLlRvdWNoQ2FuY2VsLCB0aGlzLCB0cnVlKTsKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlz
dGVuZXIoR2VzdHVyZVJlY29nbml6ZXIuRXZlbnRzLlBvaW50ZXJNb3ZlLCB0aGlzLCB0cnVlKTsK
KyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoR2VzdHVyZVJlY29nbml6ZXIuRXZlbnRz
LlBvaW50ZXJVcCwgdGhpcywgdHJ1ZSk7CisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVy
KEdlc3R1cmVSZWNvZ25pemVyLkV2ZW50cy5Qb2ludGVyQ2FuY2VsLCB0aGlzLCB0cnVlKTsKICAg
ICAgICAgdGhpcy5lbnRlclBvc3NpYmxlU3RhdGUoKTsKICAgICB9CiAKQEAgLTIzNSwxNiArMjE5
LDE2IEBAIGNsYXNzIEdlc3R1cmVSZWNvZ25pemVyCiAgICAgICAgIHRoaXMuX3VwZGF0ZUtleWJv
YXJkTW9kaWZpZXJzKGV2ZW50KTsKIAogICAgICAgICBzd2l0Y2ggKGV2ZW50LnR5cGUpIHsKLSAg
ICAgICAgY2FzZSBHZXN0dXJlUmVjb2duaXplci5FdmVudHMuVG91Y2hTdGFydDoKKyAgICAgICAg
Y2FzZSBHZXN0dXJlUmVjb2duaXplci5FdmVudHMuUG9pbnRlckRvd246CiAgICAgICAgICAgICB0
aGlzLnRvdWNoZXNCZWdhbihldmVudCk7CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2Fz
ZSBHZXN0dXJlUmVjb2duaXplci5FdmVudHMuVG91Y2hNb3ZlOgorICAgICAgICBjYXNlIEdlc3R1
cmVSZWNvZ25pemVyLkV2ZW50cy5Qb2ludGVyTW92ZToKICAgICAgICAgICAgIHRoaXMudG91Y2hl
c01vdmVkKGV2ZW50KTsKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIEdlc3R1cmVS
ZWNvZ25pemVyLkV2ZW50cy5Ub3VjaEVuZDoKKyAgICAgICAgY2FzZSBHZXN0dXJlUmVjb2duaXpl
ci5FdmVudHMuUG9pbnRlclVwOgogICAgICAgICAgICAgdGhpcy50b3VjaGVzRW5kZWQoZXZlbnQp
OwogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgR2VzdHVyZVJlY29nbml6ZXIuRXZl
bnRzLlRvdWNoQ2FuY2VsOgorICAgICAgICBjYXNlIEdlc3R1cmVSZWNvZ25pemVyLkV2ZW50cy5Q
b2ludGVyQ2FuY2VsOgogICAgICAgICAgICAgdGhpcy50b3VjaGVzQ2FuY2VsbGVkKGV2ZW50KTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEdlc3R1cmVSZWNvZ25pemVyLkV2ZW50
cy5HZXN0dXJlU3RhcnQ6CkBAIC0yNzUsMTEgKzI1OSwxMSBAQCBjbGFzcyBHZXN0dXJlUmVjb2du
aXplcgogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIGlmICh0aGlzLl9lbmFibGVkKSB7
Ci0gICAgICAgICAgICB0aGlzLl90YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcihHZXN0dXJlUmVjb2du
aXplci5FdmVudHMuVG91Y2hTdGFydCwgdGhpcyk7CisgICAgICAgICAgICB0aGlzLl90YXJnZXQu
YWRkRXZlbnRMaXN0ZW5lcihHZXN0dXJlUmVjb2duaXplci5FdmVudHMuUG9pbnRlckRvd24sIHRo
aXMpOwogICAgICAgICAgICAgaWYgKEdlc3R1cmVSZWNvZ25pemVyLlN1cHBvcnRzR2VzdHVyZXMp
CiAgICAgICAgICAgICAgICAgdGhpcy5fdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoR2VzdHVyZVJl
Y29nbml6ZXIuRXZlbnRzLkdlc3R1cmVTdGFydCwgdGhpcyk7CiAgICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICAgICB0aGlzLl90YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcihHZXN0dXJlUmVjb2du
aXplci5FdmVudHMuVG91Y2hTdGFydCwgdGhpcyk7CisgICAgICAgICAgICB0aGlzLl90YXJnZXQu
cmVtb3ZlRXZlbnRMaXN0ZW5lcihHZXN0dXJlUmVjb2duaXplci5FdmVudHMuUG9pbnRlckRvd24s
IHRoaXMpOwogICAgICAgICAgICAgaWYgKEdlc3R1cmVSZWNvZ25pemVyLlN1cHBvcnRzR2VzdHVy
ZXMpCiAgICAgICAgICAgICAgICAgdGhpcy5fdGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoR2Vz
dHVyZVJlY29nbml6ZXIuRXZlbnRzLkdlc3R1cmVTdGFydCwgdGhpcyk7CiAgICAgICAgIH0KQEAg
LTI4Nyw2MiArMjcxLDMxIEBAIGNsYXNzIEdlc3R1cmVSZWNvZ25pemVyCiAKICAgICBfcmVtb3Zl
VHJhY2tpbmdMaXN0ZW5lcnMoKQogICAgIHsKLSAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlz
dGVuZXIoR2VzdHVyZVJlY29nbml6ZXIuRXZlbnRzLlRvdWNoTW92ZSwgdGhpcywgdHJ1ZSk7Ci0g
ICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKEdlc3R1cmVSZWNvZ25pemVyLkV2ZW50
cy5Ub3VjaEVuZCwgdGhpcywgdHJ1ZSk7CisgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3Rl
bmVyKEdlc3R1cmVSZWNvZ25pemVyLkV2ZW50cy5Qb2ludGVyTW92ZSwgdGhpcywgdHJ1ZSk7Cisg
ICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKEdlc3R1cmVSZWNvZ25pemVyLkV2ZW50
cy5Qb2ludGVyVXAsIHRoaXMsIHRydWUpOworICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0
ZW5lcihHZXN0dXJlUmVjb2duaXplci5FdmVudHMuUG9pbnRlckNhbmNlbCwgdGhpcywgdHJ1ZSk7
CiAgICAgICAgIHRoaXMuX3RhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKEdlc3R1cmVSZWNvZ25p
emVyLkV2ZW50cy5HZXN0dXJlQ2hhbmdlLCB0aGlzLCB0cnVlKTsKICAgICAgICAgdGhpcy5fdGFy
Z2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoR2VzdHVyZVJlY29nbml6ZXIuRXZlbnRzLkdlc3R1cmVF
bmQsIHRoaXMsIHRydWUpOworCisgICAgICAgIHRoaXMuX3RhcmdldFBvaW50ZXJzID0gbmV3IE1h
cDsKICAgICB9CiAKICAgICBfdXBkYXRlVGFyZ2V0VG91Y2hlcyhldmVudCkKICAgICB7Ci0gICAg
ICAgIGlmICghR2VzdHVyZVJlY29nbml6ZXIuU3VwcG9ydHNUb3VjaGVzKSB7Ci0gICAgICAgICAg
ICBpZiAoZXZlbnQudHlwZSA9PT0gR2VzdHVyZVJlY29nbml6ZXIuRXZlbnRzLlRvdWNoRW5kKQot
ICAgICAgICAgICAgICAgIHRoaXMuX3RhcmdldFRvdWNoZXMgPSBbXTsKLSAgICAgICAgICAgIGVs
c2UKLSAgICAgICAgICAgICAgICB0aGlzLl90YXJnZXRUb3VjaGVzID0gW2V2ZW50XTsKLSAgICAg
ICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIGlmICghKGV2ZW50IGluc3RhbmNl
b2YgVG91Y2hFdmVudCkpCisgICAgICAgIGlmICghKGV2ZW50IGluc3RhbmNlb2YgUG9pbnRlckV2
ZW50KSkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICAvLyBXaXRoIGEgdG91Y2hzdGFy
dCBldmVudCwgZXZlbnQudGFyZ2V0VG91Y2hlcyBpcyBhY2N1cmF0ZSBzbwotICAgICAgICAvLyB3
ZSBzaW1wbHkgYWRkIGFsbCBvZiB0aG9zZS4KLSAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09IEdl
c3R1cmVSZWNvZ25pemVyLkV2ZW50cy5Ub3VjaFN0YXJ0KSB7Ci0gICAgICAgICAgICB0aGlzLl90
YXJnZXRUb3VjaGVzID0gW107Ci0gICAgICAgICAgICBsZXQgdG91Y2hlcyA9IGV2ZW50LnRhcmdl
dFRvdWNoZXM7Ci0gICAgICAgICAgICBmb3IgKGxldCBpID0gMCwgY291bnQgPSB0b3VjaGVzLmxl
bmd0aDsgaSA8IGNvdW50OyArK2kpCi0gICAgICAgICAgICAgICAgdGhpcy5fdGFyZ2V0VG91Y2hl
cy5wdXNoKHRvdWNoZXNbaV0pOworICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gR2VzdHVyZVJl
Y29nbml6ZXIuRXZlbnRzLlBvaW50ZXJEb3duKSB7CisgICAgICAgICAgICB0aGlzLl90YXJnZXRQ
b2ludGVycy5zZXQoZXZlbnQucG9pbnRlcklkLCBldmVudCk7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KIAotICAgICAgICAvLyBXaXRoIGEgdG91Y2htb3ZlIGV2ZW50LCB0aGUgdGFy
Z2V0IGlzIHdpbmRvdyBzbyBldmVudC50YXJnZXRUb3VjaGVzIGlzCi0gICAgICAgIC8vIGluYWNj
dXJhdGUgc28gd2UgYWRkIGFsbCB0b3VjaGVzIHRoYXQgd2Uga25ldyBhYm91dCBwcmV2aW91c2x5
LgotICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gR2VzdHVyZVJlY29nbml6ZXIuRXZlbnRzLlRv
dWNoTW92ZSkgewotICAgICAgICAgICAgbGV0IHRhcmdldElkZW50aWZpZXJzID0gdGhpcy5fdGFy
Z2V0VG91Y2hlcy5tYXAoZnVuY3Rpb24odG91Y2gpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4g
dG91Y2guaWRlbnRpZmllcjsKLSAgICAgICAgICAgIH0pOwotCi0gICAgICAgICAgICB0aGlzLl90
YXJnZXRUb3VjaGVzID0gW107Ci0gICAgICAgICAgICBsZXQgdG91Y2hlcyA9IGV2ZW50LnRvdWNo
ZXM7Ci0gICAgICAgICAgICBmb3IgKGxldCBpID0gMCwgY291bnQgPSB0b3VjaGVzLmxlbmd0aDsg
aSA8IGNvdW50OyArK2kpIHsKLSAgICAgICAgICAgICAgICBsZXQgdG91Y2ggPSB0b3VjaGVzW2ld
OwotICAgICAgICAgICAgICAgIGlmICh0YXJnZXRJZGVudGlmaWVycy5pbmRleE9mKHRvdWNoLmlk
ZW50aWZpZXIpICE9PSAtMSkKLSAgICAgICAgICAgICAgICAgICAgdGhpcy5fdGFyZ2V0VG91Y2hl
cy5wdXNoKHRvdWNoKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09
IEdlc3R1cmVSZWNvZ25pemVyLkV2ZW50cy5Qb2ludGVyTW92ZSkgeworICAgICAgICAgICAgdGhp
cy5fdGFyZ2V0UG9pbnRlcnMuc2V0KGV2ZW50LnBvaW50ZXJJZCwgZXZlbnQpOwogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgLy8gV2l0aCBhIHRvdWNoZW5kIG9yIHRv
dWNoY2FuY2VsIGV2ZW50LCB3ZSBvbmx5IGtlZXAgdGhlIGV4aXN0aW5nIHRvdWNoZXMKLSAgICAg
ICAgLy8gdGhhdCBhcmUgYWxzbyBmb3VuZCBpbiBldmVudC50b3VjaGVzLgotICAgICAgICBsZXQg
YWxsVG91Y2hlcyA9IGV2ZW50LnRvdWNoZXM7Ci0gICAgICAgIGxldCBleGlzdGluZ0lkZW50aWZp
ZXJzID0gW107Ci0gICAgICAgIGZvciAobGV0IGkgPSAwLCBjb3VudCA9IGFsbFRvdWNoZXMubGVu
Z3RoOyBpIDwgY291bnQ7ICsraSkKLSAgICAgICAgICAgIGV4aXN0aW5nSWRlbnRpZmllcnMucHVz
aChhbGxUb3VjaGVzW2ldLmlkZW50aWZpZXIpOwotCi0gICAgICAgIHRoaXMuX3RhcmdldFRvdWNo
ZXMgPSB0aGlzLl90YXJnZXRUb3VjaGVzLmZpbHRlcihmdW5jdGlvbih0b3VjaCkgewotICAgICAg
ICAgICAgcmV0dXJuIGV4aXN0aW5nSWRlbnRpZmllcnMuaW5kZXhPZih0b3VjaC5pZGVudGlmaWVy
KSAhPT0gLTE7Ci0gICAgICAgIH0pOworICAgICAgICB0aGlzLl90YXJnZXRQb2ludGVycy5kZWxl
dGUoZXZlbnQucG9pbnRlcklkKTsKICAgICB9CiAKICAgICBfdXBkYXRlS2V5Ym9hcmRNb2RpZmll
cnMoZXZlbnQpCkBAIC0zNjksMTAgKzMyMiwxMCBAQCBHZXN0dXJlUmVjb2duaXplci5TdGF0ZXMg
PSB7CiB9OwogCiBHZXN0dXJlUmVjb2duaXplci5FdmVudHMgPSB7Ci0gICAgVG91Y2hTdGFydCAg
ICAgOiBHZXN0dXJlUmVjb2duaXplci5TdXBwb3J0c1RvdWNoZXMgPyAidG91Y2hzdGFydCIgOiAi
bW91c2Vkb3duIiwKLSAgICBUb3VjaE1vdmUgICAgICA6IEdlc3R1cmVSZWNvZ25pemVyLlN1cHBv
cnRzVG91Y2hlcyA/ICJ0b3VjaG1vdmUiIDogIm1vdXNlbW92ZSIsCi0gICAgVG91Y2hFbmQgICAg
ICAgOiBHZXN0dXJlUmVjb2duaXplci5TdXBwb3J0c1RvdWNoZXMgPyAidG91Y2hlbmQiIDogIm1v
dXNldXAiLAotICAgIFRvdWNoQ2FuY2VsICAgIDogInRvdWNoY2FuY2VsIiwKKyAgICBQb2ludGVy
RG93biAgICA6ICJwb2ludGVyZG93biIsCisgICAgUG9pbnRlck1vdmUgICAgOiAicG9pbnRlcm1v
dmUiLAorICAgIFBvaW50ZXJVcCAgICAgIDogInBvaW50ZXJ1cCIsCisgICAgUG9pbnRlckNhbmNl
bCAgOiAicG9pbnRlcmNhbmNlbCIsCiAgICAgR2VzdHVyZVN0YXJ0ICAgOiAiZ2VzdHVyZXN0YXJ0
IiwKICAgICBHZXN0dXJlQ2hhbmdlICA6ICJnZXN0dXJlY2hhbmdlIiwKICAgICBHZXN0dXJlRW5k
ICAgICA6ICJnZXN0dXJlZW5kIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGY1MDg2MzYzYzM2YzExZDM0ZGU0NzljNDgzZWYwMjY5
OGVmYTRhOWEuLjU4NzA3ZTVmNjkxYzZhYzVhNDA2MTg5OTZlMjdmYzkxMzQyNmMzMjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTc0MSw2ICs3NDEsNyBAQAogCQkyRDUwQTRCNzFDRTEwRTAwMDAxOTgwNDkgLyogQXR0YWNobWVu
dFBsYWNlaG9sZGVyLnBuZyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMkQ1MEE0QjUxQ0UxMEUwMDAwMTk4MDQ5IC8qIEF0dGFjaG1lbnRQbGFjZWhvbGRl
ci5wbmcgKi87IH07CiAJCTJENTBBNEI4MUNFMTBFMDAwMDE5ODA0OSAvKiBBdHRhY2htZW50UGxh
Y2Vob2xkZXJAMngucG5nIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAyRDUwQTRCNjFDRTEwRTAwMDAxOTgwNDkgLyogQXR0YWNobWVudFBsYWNlaG9sZGVy
QDJ4LnBuZyAqLzsgfTsKIAkJMkQ1NjQ2QjAxQjhGODQ5MzAwM0M0OTk0IC8qIERpY3Rpb25hcnlQ
b3B1cEluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDJENTY0NkFGMUI4Rjg0OTMwMDNDNDk5NCAvKiBEaWN0aW9uYXJ5UG9wdXBJbmZvLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMkQ1NjgwMDMyMzg4
ODYwNDAwN0VDQjhBIC8qIGF1dG8taGlkZS1jb250cm9sbGVyLmpzIGluIFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDU2ODAwMTIzODg4NjAzMDA3RUNCOEEg
LyogYXV0by1oaWRlLWNvbnRyb2xsZXIuanMgKi87IH07CiAJCTJENUE1OTMxMTUyNTI1RDAwMDM2
RUU1MSAvKiBJbWFnZU9yaWVudGF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBODc0OEQ2NjEyQ0MzNzYzMDAxRkJBNDEgLyogSW1hZ2VPcmllbnRh
dGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTJENUJDNDI3MTZGODgyRUUwMDcwNDhEMCAvKiBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDVCQzQy
NTE2Rjg4MkJFMDA3MDQ4RDAgLyogU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTJENUM5RDAwMTlD
N0I1MkUwMEIzQzVDMSAvKiBQYWdlT3ZlcmxheS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ1QzlDRkMxOUM3QjUyRTAwQjNDNUMxIC8qIFBhZ2VPdmVy
bGF5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAg
LTY3MTUsNiArNjcxNiw3IEBACiAJCTJENTBBNEI1MUNFMTBFMDAwMDE5ODA0OSAvKiBBdHRhY2ht
ZW50UGxhY2Vob2xkZXIucG5nICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gaW1hZ2UucG5nOyBwYXRoID0gQXR0YWNobWVudFBsYWNlaG9sZGVyLnBuZzsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ1MEE0QjYxQ0UxMEUwMDAwMTk4MDQ5IC8q
IEF0dGFjaG1lbnRQbGFjZWhvbGRlckAyeC5wbmcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBpbWFnZS5wbmc7IHBhdGggPSAiQXR0YWNobWVudFBsYWNl
aG9sZGVyQDJ4LnBuZyI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJENTY0NkFGMUI4
Rjg0OTMwMDNDNDk5NCAvKiBEaWN0aW9uYXJ5UG9wdXBJbmZvLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IERpY3Rpb25hcnlQb3B1cEluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMkQ1NjgwMDEyMzg4ODYwMzAwN0VDQjhBIC8qIGF1dG8taGlkZS1jb250cm9s
bGVyLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRoID0gImF1dG8taGlk
ZS1jb250cm9sbGVyLmpzIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ1QkM0MjUx
NkY4ODJCRTAwNzA0OEQwIC8qIFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDVCQzQyNjE2Rjg4MkJFMDA3MDQ4RDAg
LyogU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTJENUM5Q0ZCMTlDN0I1MkUwMEIzQzVDMSAvKiBQYWdlT3ZlcmxheS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYWdlT3ZlcmxheS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02NzM2LDYgKzY3MzgsOSBAQAogCQkyRDgxRTFDRDIx
QTc4Q0MyMDBBMzJDRjQgLyogSW5zZXJ0RWRpdGFibGVJbWFnZUNvbW1hbmQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zZXJ0RWRpdGFibGVJbWFnZUNvbW1hbmQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ4Mjg3RjQxNkU0QTAzODAwODZCRDAwIC8qIEhp
dFRlc3RMb2NhdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBI
aXRUZXN0TG9jYXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDgyODdG
NTE2RTRBMDM4MDA4NkJEMDAgLyogSGl0VGVzdExvY2F0aW9uLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEhpdFRlc3RMb2NhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkyRDhEM0JFQjIzODQ3QUM5MDA2NTcwNzUgLyogZ2VzdHVyZS1yZWNvZ25pemVyLmpz
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5qYXZhc2NyaXB0OyBwYXRoID0gImdlc3R1cmUtcmVjb2duaXplci5qcyI7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTJEOEQzQkVDMjM4NDdBQzkwMDY1NzA3NSAvKiBwaW5jaC5q
cyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuamF2YXNjcmlwdDsgcGF0aCA9IHBpbmNoLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkyRDhEM0JFRDIzODQ3QUM5MDA2NTcwNzUgLyogdGFwLmpzICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0
OyBwYXRoID0gdGFwLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDhGRUJEQTE0
M0UzRUY3MDA3MjUwMkIgLyogQ1NTQ3Jvc3NmYWRlVmFsdWUuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTQ3Jvc3NmYWRlVmFsdWUuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkyRDhGRUJEQjE0M0UzRUY3MDA3MjUwMkIgLyogQ1NTQ3Jvc3NmYWRl
VmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTQ3Jvc3NmYWRlVmFs
dWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ5MDY2MDQwQkUxNDFENDAwOTU2
OTk4IC8qIFJlbmRlckxheW91dFN0YXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBSZW5kZXJMYXlvdXRTdGF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0xNzc0OSw2ICsxNzc1NCwxNiBAQAogCQkJcGF0aCA9IG1hYzsKIAkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTJEOEQzQkVBMjM4NDdBQzgwMDY1NzA3NSAvKiBnZXN0
dXJlLXJlY29nbml6ZXJzICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9
ICgKKwkJCQkyRDhEM0JFQjIzODQ3QUM5MDA2NTcwNzUgLyogZ2VzdHVyZS1yZWNvZ25pemVyLmpz
ICovLAorCQkJCTJEOEQzQkVDMjM4NDdBQzkwMDY1NzA3NSAvKiBwaW5jaC5qcyAqLywKKwkJCQky
RDhEM0JFRDIzODQ3QUM5MDA2NTcwNzUgLyogdGFwLmpzICovLAorCQkJKTsKKwkJCXBhdGggPSAi
Z2VzdHVyZS1yZWNvZ25pemVycyI7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9Owog
CQkyRERFMUNBQjFGNTc0NzU5MDBEMUEzNjUgLyogd2VidnIgKi8gPSB7CiAJCQlpc2EgPSBQQlhH
cm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMjA5MzAsNiArMjA5NDUsNyBAQAogCQkJCTcxNkZB
MEQ4MURCMjY1OTEwMDczMjNDQyAvKiBhaXJwbGF5LWJ1dHRvbi5jc3MgKi8sCiAJCQkJNzE2RkEw
RDkxREIyNjU5MTAwNzMyM0NDIC8qIGFpcnBsYXktYnV0dG9uLmpzICovLAogCQkJCTcxNkZBMERB
MURCMjY1OTEwMDczMjNDQyAvKiBhaXJwbGF5LXBsYWNhcmQuanMgKi8sCisJCQkJMkQ1NjgwMDEy
Mzg4ODYwMzAwN0VDQjhBIC8qIGF1dG8taGlkZS1jb250cm9sbGVyLmpzICovLAogCQkJCTcxNkZB
MERDMURCMjY1OTEwMDczMjNDQyAvKiBidXR0b24uY3NzICovLAogCQkJCTcxNkZBMEREMURCMjY1
OTEwMDczMjNDQyAvKiBidXR0b24uanMgKi8sCiAJCQkJNzE2RkEwREUxREIyNjU5MTAwNzMyM0ND
IC8qIGJ1dHRvbnMtY29udGFpbmVyLmNzcyAqLywKQEAgLTIxMDA5LDYgKzIxMDI1LDcgQEAKIAkJ
CWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJNzE2RkEwRDcxREIyNjU5MTAw
NzMyM0NDIC8qIGNvbnRyb2xzICovLAorCQkJCTJEOEQzQkVBMjM4NDdBQzgwMDY1NzA3NSAvKiBn
ZXN0dXJlLXJlY29nbml6ZXJzICovLAogCQkJCTcxRDZBQTZGMURBNEVBRjcwMEIyMzk2OSAvKiBp
bWFnZXMgKi8sCiAJCQkJNzE0MTMxNDgxREM5RDZFRjAwMzM2MTA3IC8qIGpzLWZpbGVzICovLAog
CQkJCTcxRDAyRDkxMURCNTVDNEUwMERENUNGNSAvKiBtZWRpYSAqLywKQEAgLTMzMTQ3LDYgKzMz
MTY0LDcgQEAKIAkJCWZpbGVzID0gKAogCQkJCTJENTBBNEI3MUNFMTBFMDAwMDE5ODA0OSAvKiBB
dHRhY2htZW50UGxhY2Vob2xkZXIucG5nIGluIFJlc291cmNlcyAqLywKIAkJCQkyRDUwQTRCODFD
RTEwRTAwMDAxOTgwNDkgLyogQXR0YWNobWVudFBsYWNlaG9sZGVyQDJ4LnBuZyBpbiBSZXNvdXJj
ZXMgKi8sCisJCQkJMkQ1NjgwMDMyMzg4ODYwNDAwN0VDQjhBIC8qIGF1dG8taGlkZS1jb250cm9s
bGVyLmpzIGluIFJlc291cmNlcyAqLywKIAkJCQlBMUFBOUFCOTFEMjM5MTE1MDBGRUFEQjMgLyog
Q29udGVudEZpbHRlckJsb2NrZWRQYWdlLmh0bWwgaW4gUmVzb3VyY2VzICovLAogCQkJCUExMUU4
QzA1MUIxRTI4RjQwMDAzQTdDNyAvKiBjb3B5Q3Vyc29yLnBuZyBpbiBSZXNvdXJjZXMgKi8sCiAJ
CQkJMkQ5RjBFMTMxNEZGMUNCRjAwQkEwRkY3IC8qIGxpbmVhclNSR0IuaWNjIGluIFJlc291cmNl
cyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAKaW5kZXggODVlZGI5N2Ji
MzUwY2U2ZTY1ODk0MmM0MjY0NDc2ODM2ZTEwM2I0YS4uMWRjZmUzZTMxMjgyN2U0NGZlMDZjNDQw
OTMwNjFiYWI3YzNiMTJlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlu
cHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAK
QEAgLTEzNSw4ICsxMzUsNiBAQCBib29sIFJhbmdlSW5wdXRUeXBlOjppc1N0ZXBwYWJsZSgpIGNv
bnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLSNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKLQog
dm9pZCBSYW5nZUlucHV0VHlwZTo6aGFuZGxlTW91c2VEb3duRXZlbnQoTW91c2VFdmVudCYgZXZl
bnQpCiB7CiAgICAgQVNTRVJUKGVsZW1lbnQoKSk7CkBAIC0xNTUsOCArMTUzLDYgQEAgdm9pZCBS
YW5nZUlucHV0VHlwZTo6aGFuZGxlTW91c2VEb3duRXZlbnQoTW91c2VFdmVudCYgZXZlbnQpCiAg
ICAgdGh1bWIuZHJhZ0Zyb20oZXZlbnQuYWJzb2x1dGVMb2NhdGlvbigpKTsKIH0KIAotI2VuZGlm
Ci0KICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogdm9pZCBSYW5nZUlucHV0VHlwZTo6aGFuZGxl
VG91Y2hFdmVudChUb3VjaEV2ZW50JiBldmVudCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1
dFR5cGUuaAppbmRleCAzMmM4OGU3NjlkMGUxZDQ0Yjc3MzhiZDZjMjM2NDFhYTNiNTE4M2ZjLi41
MWZiNzlkM2Y0OTllNDEyZTcxMGZhNzY5NTdmOGJhYWM5MmZmYTIxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9SYW5nZUlucHV0VHlwZS5oCkBAIC01MCw5ICs1MCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBz
dXBwb3J0c1JlcXVpcmVkKCkgY29uc3QgZmluYWw7CiAgICAgU3RlcFJhbmdlIGNyZWF0ZVN0ZXBS
YW5nZShBbnlTdGVwSGFuZGxpbmcpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgaXNTdGVwcGFibGUo
KSBjb25zdCBmaW5hbDsKLSNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICB2b2lkIGhhbmRs
ZU1vdXNlRG93bkV2ZW50KE1vdXNlRXZlbnQmKSBmaW5hbDsKLSNlbmRpZgogICAgIFNob3VsZENh
bGxCYXNlRXZlbnRIYW5kbGVyIGhhbmRsZUtleWRvd25FdmVudChLZXlib2FyZEV2ZW50JikgZmlu
YWw7CiAgICAgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUlucHV0UmVuZGVyZXIoUmVu
ZGVyU3R5bGUmJikgZmluYWw7CiAgICAgdm9pZCBjcmVhdGVTaGFkb3dTdWJ0cmVlKCkgZmluYWw7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNw
cAppbmRleCA5MmE3ZTIxZDcwMGE0NmQ5NTNiMTA1MDdlNDhhOTE2NzQ4NDIyYjIxLi4zNTMzZThi
YTgwNzc0ZGMyZDY2YzE1YTQ4MTIxYzYzNzhkZGFlNmE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAKQEAgLTI0Niw5ICsyNDYsNyBA
QCB2b2lkIFNsaWRlclRodW1iRWxlbWVudDo6ZHJhZ0Zyb20oY29uc3QgTGF5b3V0UG9pbnQmIHBv
aW50KQogewogICAgIFJlZjxTbGlkZXJUaHVtYkVsZW1lbnQ+IHByb3RlY3RlZFRoaXMoKnRoaXMp
OwogICAgIHNldFBvc2l0aW9uRnJvbVBvaW50KHBvaW50KTsKLSNpZiAhUExBVEZPUk0oSU9TX0ZB
TUlMWSkKICAgICBzdGFydERyYWdnaW5nKCk7Ci0jZW5kaWYKIH0KIAogdm9pZCBTbGlkZXJUaHVt
YkVsZW1lbnQ6OnNldFBvc2l0aW9uRnJvbVBvaW50KGNvbnN0IExheW91dFBvaW50JiBhYnNvbHV0
ZVBvaW50KQpAQCAtMzM4LDcgKzMzNiw2IEBAIHZvaWQgU2xpZGVyVGh1bWJFbGVtZW50OjpzdG9w
RHJhZ2dpbmcoKQogICAgICAgICByZW5kZXJlcigpLT5zZXROZWVkc0xheW91dCgpOwogfQogCi0j
aWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCiB2b2lkIFNsaWRlclRodW1iRWxlbWVudDo6ZGVmYXVs
dEV2ZW50SGFuZGxlcihFdmVudCYgZXZlbnQpCiB7CiAgICAgaWYgKCFpczxNb3VzZUV2ZW50Pihl
dmVudCkpIHsKQEAgLTM3Niw5ICszNzMsNiBAQCB2b2lkIFNsaWRlclRodW1iRWxlbWVudDo6ZGVm
YXVsdEV2ZW50SGFuZGxlcihFdmVudCYgZXZlbnQpCiAKICAgICBIVE1MRGl2RWxlbWVudDo6ZGVm
YXVsdEV2ZW50SGFuZGxlcihtb3VzZUV2ZW50KTsKIH0KLSNlbmRpZgotCi0jaWYgIVBMQVRGT1JN
KElPU19GQU1JTFkpCiAKIGJvb2wgU2xpZGVyVGh1bWJFbGVtZW50Ojp3aWxsUmVzcG9uZFRvTW91
c2VNb3ZlRXZlbnRzKCkKIHsKQEAgLTM5OCw3ICszOTIsNiBAQCBib29sIFNsaWRlclRodW1iRWxl
bWVudDo6d2lsbFJlc3BvbmRUb01vdXNlQ2xpY2tFdmVudHMoKQogICAgIHJldHVybiBIVE1MRGl2
RWxlbWVudDo6d2lsbFJlc3BvbmRUb01vdXNlQ2xpY2tFdmVudHMoKTsKIH0KIAotI2VuZGlmIC8v
ICFQTEFURk9STShJT1NfRkFNSUxZKQogCiB2b2lkIFNsaWRlclRodW1iRWxlbWVudDo6d2lsbERl
dGFjaFJlbmRlcmVycygpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9TbGlkZXJUaHVtYkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRl
clRodW1iRWxlbWVudC5oCmluZGV4IDg0MjBiMDA3YjI2YmZlZjBhYjRkMjUxNTljMzk1YmM5ZWM3
NTJjNzYuLjA2YWJiZjk2NzAwZDFkZGRhMTZkNTUyM2U1NTAwMjNjNTJhMDYwZWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5oCkBAIC02Niwx
MSArNjYsOSBAQCBwcml2YXRlOgogICAgIGJvb2wgbWF0Y2hlc1JlYWRXcml0ZVBzZXVkb0NsYXNz
KCkgY29uc3QgZmluYWw7CiAgICAgUmVmUHRyPEVsZW1lbnQ+IGZvY3VzRGVsZWdhdGUoKSBmaW5h
bDsKIAotI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQogICAgIHZvaWQgZGVmYXVsdEV2ZW50SGFu
ZGxlcihFdmVudCYpIGZpbmFsOwogICAgIGJvb2wgd2lsbFJlc3BvbmRUb01vdXNlTW92ZUV2ZW50
cygpIGZpbmFsOwogICAgIGJvb2wgd2lsbFJlc3BvbmRUb01vdXNlQ2xpY2tFdmVudHMoKSBmaW5h
bDsKLSNlbmRpZgogCiAjaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCiAgICAgdm9pZCBkaWRB
dHRhY2hSZW5kZXJlcnMoKSBmaW5hbDsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384871</attachid>
            <date>2019-12-04 18:38:45 -0800</date>
            <delta_ts>2019-12-05 02:32:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204543-20191204183845.patch</filename>
            <type>text/plain</type>
            <size>31589</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzMTM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmJlZWQ2ZDU5MGYxN2E1
NWE5ODIwOTUxMWIxOTY0MjE2ZDAyNTIwNC4uMDVjNGFlN2ZiNmY2NTI4ODg5ZjUxNDRmMzNiNjBm
MTM3MmQ5Yjk4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDE5LTEyLTA0ICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIG1hY0NhdGFseXN0
OiBSRUdSRVNTSU9OIChyMjUxMzIwKTogV2ViS2l0LW5hdGl2ZSBtZWRpYSBjb250cm9scyBkbyBu
b3QgcmVzcG9uZCB0byBob3ZlciBvciBjbGljaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0NTQzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NzIw
ODYyMT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZG9wdCBwb2ludGVyIGV2ZW50cyBmb3IgbWVkaWEgY29udHJvbHMsIGluIG9yZGVyIHRvIG1ha2Ug
dGhlbSBpbnB1dC1kZXZpY2UgYWdub3N0aWMuCisKKyAgICAgICAgKiBNb2R1bGVzL21vZGVybi1t
ZWRpYS1jb250cm9scy9jb250cm9scy9hdXRvLWhpZGUtY29udHJvbGxlci5qczoKKyAgICAgICAg
KEF1dG9IaWRlQ29udHJvbGxlcik6CisgICAgICAgIChBdXRvSGlkZUNvbnRyb2xsZXIucHJvdG90
eXBlLnNldCBmYWRlc1doaWxlSWRsZSk6CisgICAgICAgIChBdXRvSGlkZUNvbnRyb2xsZXIucHJv
dG90eXBlLmhhbmRsZUV2ZW50KToKKyAgICAgICAgKEF1dG9IaWRlQ29udHJvbGxlci5wcm90b3R5
cGUuX2F1dG9IaWRlVGltZXJGaXJlZCk6CisgICAgICAgIEluc3RlYWQgb2YgdHJhY2tpbmcgc3Rh
dGUgaW4gYSBzaW5nbGUgYml0IChfZGlzYWJsZUF1dG9IaWRpbmcpLCBrZWVwIHRyYWNrCisgICAg
ICAgIG9mIHNldHMgb2YgcG9pbnRlcnMgdGhhdCBhcmUgYWN0aXZlLCBmb3IgaG92ZXIgYW5kIGZv
ciBhY3R1YWwgdG91Y2gvY2xpY2suCisKKyAgICAgICAgKiBNb2R1bGVzL21vZGVybi1tZWRpYS1j
b250cm9scy9jb250cm9scy9zbGlkZXIuanM6CisgICAgICAgIChTbGlkZXIucHJvdG90eXBlLmhh
bmRsZUV2ZW50KToKKyAgICAgICAgKFNsaWRlci5wcm90b3R5cGUuX2hhbmRsZVBvaW50ZXJkb3du
RXZlbnQpOgorICAgICAgICAoU2xpZGVyLnByb3RvdHlwZS5faGFuZGxlUG9pbnRlcnVwRXZlbnQp
OgorICAgICAgICAoU2xpZGVyLnByb3RvdHlwZS5faGFuZGxlTW91c2Vkb3duRXZlbnQpOiBEZWxl
dGVkLgorICAgICAgICAoU2xpZGVyLnByb3RvdHlwZS5faGFuZGxlVG91Y2hzdGFydEV2ZW50KTog
RGVsZXRlZC4KKyAgICAgICAgKFNsaWRlci5wcm90b3R5cGUuX2hhbmRsZU1vdXNldXBFdmVudCk6
IERlbGV0ZWQuCisgICAgICAgIChTbGlkZXIucHJvdG90eXBlLl9oYW5kbGVUb3VjaGVuZEV2ZW50
KTogRGVsZXRlZC4KKyAgICAgICAgQWRvcHQgcG9pbnRlciBldmVudHMuCisKKyAgICAgICAgKiBN
b2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9nZXN0dXJlLXJlY29nbml6ZXJzL2dlc3R1cmUt
cmVjb2duaXplci5qczoKKyAgICAgICAgKEdlc3R1cmVSZWNvZ25pemVyKToKKyAgICAgICAgKEdl
c3R1cmVSZWNvZ25pemVyLnByb3RvdHlwZS5nZXQgbnVtYmVyT2ZUb3VjaGVzKToKKyAgICAgICAg
KEdlc3R1cmVSZWNvZ25pemVyLnByb3RvdHlwZS5sb2NhdGlvbkluRWxlbWVudCk6CisgICAgICAg
IChHZXN0dXJlUmVjb2duaXplci5wcm90b3R5cGUubG9jYXRpb25JbkNsaWVudCk6CisgICAgICAg
IChHZXN0dXJlUmVjb2duaXplci5wcm90b3R5cGUudG91Y2hlc0JlZ2FuKToKKyAgICAgICAgKEdl
c3R1cmVSZWNvZ25pemVyLnByb3RvdHlwZS5oYW5kbGVFdmVudCk6CisgICAgICAgIChHZXN0dXJl
UmVjb2duaXplci5wcm90b3R5cGUuX3VwZGF0ZUJhc2VMaXN0ZW5lcnMpOgorICAgICAgICAoR2Vz
dHVyZVJlY29nbml6ZXIucHJvdG90eXBlLl9yZW1vdmVUcmFja2luZ0xpc3RlbmVycyk6CisgICAg
ICAgIChHZXN0dXJlUmVjb2duaXplci5wcm90b3R5cGUuX3VwZGF0ZVRhcmdldFRvdWNoZXMpOgor
ICAgICAgICAoR2VzdHVyZVJlY29nbml6ZXIucHJvdG90eXBlLmxvY2F0aW9uT2ZUb3VjaEluRWxl
bWVudCk6IERlbGV0ZWQuCisgICAgICAgIEluc3RlYWQgb2Yga2VlcGluZyB0cmFjayBvZiBUb3Vj
aGVzLCBrZWVwIHRyYWNrIG9mIHRoZSBjdXJyZW50bHktYWN0aXZlIHNldCBvZiBQb2ludGVyRXZl
bnRzLgorICAgICAgICBXZSBqdXN0IHN0b3JlIGV2ZW50cyBieSBwb2ludGVySWQsIGFuZCB1cGRh
dGUgdGhlbSB3aGVuIHRoZXkgY2hhbmdlLCBzbyB3ZSBjYW4KKyAgICAgICAgbGF0ZXIgcmV0cmll
dmUgZS5nLiBwb2ludHMuCisgICAgICAgIFJlbW92ZSBsb2NhdGlvbk9mVG91Y2hJbkVsZW1lbnQg
d2hpY2ggc2VlbXMgdG8gbm90IGJlIHVzZWQuCisKKyAgICAgICAgKiBodG1sL1JhbmdlSW5wdXRU
eXBlLmNwcDoKKyAgICAgICAgKiBodG1sL1JhbmdlSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRt
bC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNsaWRl
clRodW1iRWxlbWVudDo6ZHJhZ0Zyb20pOgorICAgICAgICAoV2ViQ29yZTo6U2xpZGVyVGh1bWJF
bGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9TbGlk
ZXJUaHVtYkVsZW1lbnQuaDoKKyAgICAgICAgQWxsb3cgcmFuZ2UgaW5wdXRzIHRvIGFjY2VwdCBt
b3VzZSBldmVudHMgZXZlcnl3aGVyZS4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgQWRkIHNvbWUgbWlzc2luZyBmaWxlcyB0byB0aGUgcHJv
amVjdC4KKwogMjAxOS0xMi0wNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAg
ICAgICAgIFBhZ2VDb25maWd1cmF0aW9uOjpwcm9ncmVzc1RyYWNrZXJDbGllbnQgc2hvdWxkIHVz
ZSBhIHNtYXJ0IHBvaW50ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL2F1dG8taGlkZS1jb250cm9sbGVyLmpzIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvYXV0by1o
aWRlLWNvbnRyb2xsZXIuanMKaW5kZXggYTc0YmM3MWExNWFhNjUyYzM0Y2Y3ODg5MjhmMTQ5Nzgx
Zjc4MGQyNi4uMjgxZWFmOGNlNmEwNjVlNDc0OTc5ZGVjNjI0YzMwY2FjZWM4Yjc1NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJv
bHMvYXV0by1oaWRlLWNvbnRyb2xsZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvYXV0by1oaWRlLWNvbnRyb2xsZXIuanMKQEAg
LTMyLDEwICszMiwxMSBAQCBjbGFzcyBBdXRvSGlkZUNvbnRyb2xsZXIKICAgICB7CiAgICAgICAg
IHRoaXMuX21lZGlhQ29udHJvbHMgPSBtZWRpYUNvbnRyb2xzOwogCi0gICAgICAgIGlmIChHZXN0
dXJlUmVjb2duaXplci5TdXBwb3J0c1RvdWNoZXMpIHsKLSAgICAgICAgICAgIHRoaXMuX3RvdWNo
SWRlbnRpZmllcnNQcmV2ZW50aW5nQXV0b0hpZGUgPSBuZXcgU2V0OworICAgICAgICB0aGlzLl9w
b2ludGVySWRlbnRpZmllcnNQcmV2ZW50aW5nQXV0b0hpZGUgPSBuZXcgU2V0OworICAgICAgICB0
aGlzLl9wb2ludGVySWRlbnRpZmllcnNQcmV2ZW50aW5nQXV0b0hpZGVGb3JIb3ZlciA9IG5ldyBT
ZXQ7CisKKyAgICAgICAgaWYgKEdlc3R1cmVSZWNvZ25pemVyLlN1cHBvcnRzVG91Y2hlcykKICAg
ICAgICAgICAgIHRoaXMuX3RhcEdlc3R1cmVSZWNvZ25pemVyID0gbmV3IFRhcEdlc3R1cmVSZWNv
Z25pemVyKHRoaXMuX21lZGlhQ29udHJvbHMuZWxlbWVudCwgdGhpcyk7Ci0gICAgICAgIH0KIAog
ICAgICAgICB0aGlzLmF1dG9IaWRlRGVsYXkgPSBBdXRvSGlkZURlbGF5TVM7CiAgICAgfQpAQCAt
NTQsMjMgKzU1LDE3IEBAIGNsYXNzIEF1dG9IaWRlQ29udHJvbGxlcgogCiAgICAgICAgIHRoaXMu
X2ZhZGVzV2hpbGVJZGxlID0gZmxhZzsKIAotICAgICAgICBpZiAoR2VzdHVyZVJlY29nbml6ZXIu
U3VwcG9ydHNUb3VjaGVzKSB7Ci0gICAgICAgICAgICBpZiAoZmxhZykgewotICAgICAgICAgICAg
ICAgIHRoaXMuX21lZGlhQ29udHJvbHMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0
YXJ0IiwgdGhpcyk7Ci0gICAgICAgICAgICAgICAgdGhpcy5fbWVkaWFDb250cm9scy5lbGVtZW50
LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIiwgdGhpcyk7Ci0gICAgICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgICAgIHRoaXMuX21lZGlhQ29udHJvbHMuZWxlbWVudC5yZW1vdmVFdmVu
dExpc3RlbmVyKCJ0b3VjaHN0YXJ0IiwgdGhpcyk7Ci0gICAgICAgICAgICAgICAgdGhpcy5fbWVk
aWFDb250cm9scy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIiwgdGhpcyk7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICB0aGlzLl90YXBHZXN0dXJlUmVjb2duaXplci5l
bmFibGVkID0gZmxhZzsKKyAgICAgICAgaWYgKGZsYWcpIHsKKyAgICAgICAgICAgIHRoaXMuX21l
ZGlhQ29udHJvbHMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsIHRoaXMp
OworICAgICAgICAgICAgdGhpcy5fbWVkaWFDb250cm9scy5lbGVtZW50LmFkZEV2ZW50TGlzdGVu
ZXIoInBvaW50ZXJkb3duIiwgdGhpcyk7CisgICAgICAgICAgICB0aGlzLl9tZWRpYUNvbnRyb2xz
LmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcnVwIiwgdGhpcyk7CisgICAgICAgICAg
ICB0aGlzLl9tZWRpYUNvbnRyb2xzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmxl
YXZlIiwgdGhpcyk7CisgICAgICAgICAgICB0aGlzLl9tZWRpYUNvbnRyb2xzLmVsZW1lbnQuYWRk
RXZlbnRMaXN0ZW5lcigicG9pbnRlcm91dCIsIHRoaXMpOwogICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgICAgaWYgKGZsYWcpIHsKLSAgICAgICAgICAgICAgICB0aGlzLl9tZWRpYUNvbnRyb2xz
LmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIiwgdGhpcyk7Ci0gICAgICAgICAg
ICAgICAgdGhpcy5fbWVkaWFDb250cm9scy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNl
bGVhdmUiLCB0aGlzKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgdGhp
cy5fbWVkaWFDb250cm9scy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIs
IHRoaXMpOwotICAgICAgICAgICAgICAgIHRoaXMuX21lZGlhQ29udHJvbHMuZWxlbWVudC5yZW1v
dmVFdmVudExpc3RlbmVyKCJtb3VzZWxlYXZlIiwgdGhpcyk7Ci0gICAgICAgICAgICB9CisgICAg
ICAgICAgICB0aGlzLl9tZWRpYUNvbnRyb2xzLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigi
cG9pbnRlcm1vdmUiLCB0aGlzKTsKKyAgICAgICAgICAgIHRoaXMuX21lZGlhQ29udHJvbHMuZWxl
bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVyZG93biIsIHRoaXMpOworICAgICAgICAg
ICAgdGhpcy5fbWVkaWFDb250cm9scy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50
ZXJ1cCIsIHRoaXMpOworICAgICAgICAgICAgdGhpcy5fbWVkaWFDb250cm9scy5lbGVtZW50LnJl
bW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJvdXQiLCB0aGlzKTsKICAgICAgICAgfQogCiAgICAg
ICAgIGlmIChmbGFnICYmICF0aGlzLl9tZWRpYUNvbnRyb2xzLmZhZGVkKQpAQCAtODYsMzUgKzgx
LDM4IEBAIGNsYXNzIEF1dG9IaWRlQ29udHJvbGxlcgogICAgICAgICBpZiAoZXZlbnQuY3VycmVu
dFRhcmdldCAhPT0gdGhpcy5fbWVkaWFDb250cm9scy5lbGVtZW50KQogICAgICAgICAgICAgcmV0
dXJuOwogCi0gICAgICAgIGlmIChldmVudC50eXBlID09PSAibW91c2Vtb3ZlIikgeworICAgICAg
ICBpZiAoZXZlbnQudHlwZSA9PT0gInBvaW50ZXJtb3ZlIikgewogICAgICAgICAgICAgdGhpcy5f
bWVkaWFDb250cm9scy5mYWRlZCA9IGZhbHNlOwogICAgICAgICAgICAgdGhpcy5fcmVzZXRBdXRv
SGlkZVRpbWVyKHRydWUpOwogICAgICAgICAgICAgaWYgKHRoaXMuX21lZGlhQ29udHJvbHMuaXNQ
b2ludEluQ29udHJvbHMobmV3IERPTVBvaW50KGV2ZW50LmNsaWVudFgsIGV2ZW50LmNsaWVudFkp
KSkgewotICAgICAgICAgICAgICAgIHRoaXMuX2Rpc2FibGVBdXRvSGlkaW5nID0gdHJ1ZTsKKyAg
ICAgICAgICAgICAgICB0aGlzLl9wb2ludGVySWRlbnRpZmllcnNQcmV2ZW50aW5nQXV0b0hpZGVG
b3JIb3Zlci5hZGQoZXZlbnQucG9pbnRlcklkKTsKICAgICAgICAgICAgICAgICB0aGlzLl9jYW5j
ZWxOb25FbmZvcmNlZEF1dG9IaWRlVGltZXIoKTsKICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICAgICAgZGVsZXRlIHRoaXMuX2Rpc2FibGVBdXRvSGlkaW5nOworICAgICAgICAgICAg
ICAgIHRoaXMuX3BvaW50ZXJJZGVudGlmaWVyc1ByZXZlbnRpbmdBdXRvSGlkZUZvckhvdmVyLmRl
bGV0ZShldmVudC5wb2ludGVySWQpOwogICAgICAgICAgICAgICAgIHRoaXMuX3Jlc2V0QXV0b0hp
ZGVUaW1lcih0cnVlKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIGlmIChldmVudC50
eXBlID09PSAibW91c2VsZWF2ZSIgJiYgdGhpcy5fZmFkZXNXaGlsZUlkbGUgJiYgIXRoaXMuaGFz
U2Vjb25kYXJ5VUlBdHRhY2hlZCAmJiAhdGhpcy5fZW5mb3JjZUF1dG9IaWRlVGltZXIpCi0gICAg
ICAgICAgICB0aGlzLl9tZWRpYUNvbnRyb2xzLmZhZGVkID0gIXRoaXMuX21lZGlhQ29udHJvbHMu
aXNQb2ludEluQ29udHJvbHMobmV3IERPTVBvaW50KGV2ZW50LmNsaWVudFgsIGV2ZW50LmNsaWVu
dFkpKTsKKyAgICAgICAgfSBlbHNlIGlmIChldmVudC50eXBlID09PSAicG9pbnRlcmxlYXZlIiAm
JiB0aGlzLl9mYWRlc1doaWxlSWRsZSAmJiAhdGhpcy5oYXNTZWNvbmRhcnlVSUF0dGFjaGVkICYm
ICF0aGlzLl9lbmZvcmNlQXV0b0hpZGVUaW1lcikgeworICAgICAgICAgICAgdGhpcy5fcG9pbnRl
cklkZW50aWZpZXJzUHJldmVudGluZ0F1dG9IaWRlLmRlbGV0ZShldmVudC5wb2ludGVySWQpOwor
ICAgICAgICAgICAgdGhpcy5fcG9pbnRlcklkZW50aWZpZXJzUHJldmVudGluZ0F1dG9IaWRlRm9y
SG92ZXIuZGVsZXRlKGV2ZW50LnBvaW50ZXJJZCk7CisKKyAgICAgICAgICAgIC8vIElmIHRoZSBw
b2ludGVyIGlzIGEgbW91c2UgKHN1cHBvcnRzIGhvdmVyKSwgc2VlIGlmIHdlIGNhbgorICAgICAg
ICAgICAgLy8gaW1tZWRpYXRlbHkgaGlkZSB3aXRob3V0IHdhaXRpbmcgZm9yIHRoZSBhdXRvLWhp
ZGUgdGltZXIuCisgICAgICAgICAgICBpZiAoZXZlbnQucG9pbnRlclR5cGUgPT0gIm1vdXNlIikK
KyAgICAgICAgICAgICAgICB0aGlzLl9hdXRvSGlkZVRpbWVyRmlyZWQoKTsKIAotICAgICAgICBp
ZiAoZXZlbnQudHlwZSA9PT0gInRvdWNoc3RhcnQiKSB7CisgICAgICAgICAgICB0aGlzLl9yZXNl
dEF1dG9IaWRlVGltZXIodHJ1ZSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZXZlbnQudHlw
ZSA9PT0gInBvaW50ZXJkb3duIikgewogICAgICAgICAgICAgLy8gUmVtZW1iZXIgdGhlIGN1cnJl
bnQgZmFkZWQgc3RhdGUgc28gdGhhdCB3ZSBjYW4gZGV0ZXJtaW5lLAogICAgICAgICAgICAgLy8g
aWYgd2UgcmVjb2duaXplIGEgdGFwLCBpZiBpdCBzaG91bGQgZmFkZSB0aGUgY29udHJvbHMgb3V0
LgogICAgICAgICAgICAgdGhpcy5fbmV4dFRhcENhbkZhZGVDb250cm9scyA9ICF0aGlzLl9tZWRp
YUNvbnRyb2xzLmZhZGVkOwotICAgICAgICAgICAgZm9yICh2YXIgdG91Y2ggaW4gZXZlbnQuY2hh
bmdlZFRvdWNoZXMpCi0gICAgICAgICAgICAgICAgdGhpcy5fdG91Y2hJZGVudGlmaWVyc1ByZXZl
bnRpbmdBdXRvSGlkZS5hZGQodG91Y2guaWRlbnRpZmllcik7CisgICAgICAgICAgICB0aGlzLl9w
b2ludGVySWRlbnRpZmllcnNQcmV2ZW50aW5nQXV0b0hpZGUuYWRkKGV2ZW50LnBvaW50ZXJJZCk7
CiAgICAgICAgICAgICB0aGlzLl9tZWRpYUNvbnRyb2xzLmZhZGVkID0gZmFsc2U7Ci0gICAgICAg
ICAgICB0aGlzLl9kaXNhYmxlQXV0b0hpZGluZyA9IHRydWU7CiAgICAgICAgICAgICB0aGlzLl9j
YW5jZWxOb25FbmZvcmNlZEF1dG9IaWRlVGltZXIoKTsKLSAgICAgICAgfSBlbHNlIGlmIChldmVu
dC50eXBlID09PSAidG91Y2hlbmQiKSB7Ci0gICAgICAgICAgICBmb3IgKHZhciB0b3VjaCBpbiBl
dmVudC5jaGFuZ2VkVG91Y2hlcykKLSAgICAgICAgICAgICAgICB0aGlzLl90b3VjaElkZW50aWZp
ZXJzUHJldmVudGluZ0F1dG9IaWRlLmRlbGV0ZSh0b3VjaC5pZGVudGlmaWVyKTsKLSAgICAgICAg
ICAgIGlmICghdGhpcy5fdG91Y2hJZGVudGlmaWVyc1ByZXZlbnRpbmdBdXRvSGlkZS5zaXplKSB7
Ci0gICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMuX2Rpc2FibGVBdXRvSGlkaW5nOwotICAgICAg
ICAgICAgICAgIHRoaXMuX3Jlc2V0QXV0b0hpZGVUaW1lcih0cnVlKTsKLSAgICAgICAgICAgIH0K
KyAgICAgICAgfSBlbHNlIGlmIChldmVudC50eXBlID09PSAicG9pbnRlcnVwIikgeworICAgICAg
ICAgICAgdGhpcy5fcG9pbnRlcklkZW50aWZpZXJzUHJldmVudGluZ0F1dG9IaWRlLmRlbGV0ZShl
dmVudC5wb2ludGVySWQpOworICAgICAgICAgICAgdGhpcy5fcmVzZXRBdXRvSGlkZVRpbWVyKHRy
dWUpOwogICAgICAgICB9CiAgICAgfQogCkBAIC0xNzEsOCArMTY5LDEwIEBAIGNsYXNzIEF1dG9I
aWRlQ29udHJvbGxlcgogCiAgICAgX2F1dG9IaWRlVGltZXJGaXJlZCgpCiAgICAgeworICAgICAg
ICBsZXQgZGlzYWJsZUF1dG9IaWRpbmcgPSB0aGlzLl9wb2ludGVySWRlbnRpZmllcnNQcmV2ZW50
aW5nQXV0b0hpZGUuc2l6ZSB8fCB0aGlzLl9wb2ludGVySWRlbnRpZmllcnNQcmV2ZW50aW5nQXV0
b0hpZGVGb3JIb3Zlci5zaXplOworCiAgICAgICAgIGRlbGV0ZSB0aGlzLl9lbmZvcmNlQXV0b0hp
ZGVUaW1lcjsKLSAgICAgICAgaWYgKHRoaXMuX2Rpc2FibGVBdXRvSGlkaW5nKQorICAgICAgICBp
ZiAoZGlzYWJsZUF1dG9IaWRpbmcpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgdGhp
cy5fY2FuY2VsQXV0b0hpZGVUaW1lcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvc2xpZGVyLmpzIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvc2xpZGVyLmpzCmlu
ZGV4IDI4ZWYzMzA4ODA1YjBiNjMyYTU5MjZmYzFkNmVhZmUwZmIzMmViNjUuLmNjMmIyZDY5NTZk
MWNkYzRmOGRhMWMzYWJlYjY5Mjg3YzhhMWE1MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL3NsaWRlci5qcworKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9zbGlk
ZXIuanMKQEAgLTM4LDcgKzM4LDcgQEAgY2xhc3MgU2xpZGVyIGV4dGVuZHMgTGF5b3V0Tm9kZQog
ICAgICAgICB0aGlzLl9jb250YWluZXIuY2hpbGRyZW4gPSBbdGhpcy5fdHJhY2ssIHRoaXMuX3By
aW1hcnlGaWxsLCB0aGlzLl9zZWNvbmRhcnlGaWxsLCB0aGlzLl9rbm9iXTsKIAogICAgICAgICB0
aGlzLl9pbnB1dCA9IG5ldyBMYXlvdXROb2RlKGA8aW5wdXQgdHlwZT0icmFuZ2UiIG1pbj0iMCIg
bWF4PSIxIiBzdGVwPSIwLjAwMSIgLz5gKTsKLSAgICAgICAgdGhpcy5faW5wdXQuZWxlbWVudC5h
ZGRFdmVudExpc3RlbmVyKEdlc3R1cmVSZWNvZ25pemVyLlN1cHBvcnRzVG91Y2hlcyA/ICJ0b3Vj
aHN0YXJ0IiA6ICJtb3VzZWRvd24iLCB0aGlzKTsKKyAgICAgICAgdGhpcy5faW5wdXQuZWxlbWVu
dC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVyZG93biIsIHRoaXMpOwogICAgICAgICB0aGlzLl9p
bnB1dC5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IiwgdGhpcyk7CiAgICAgICAgIHRo
aXMuX2lucHV0LmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwgdGhpcyk7CiAKQEAg
LTEwOSwxNyArMTA5LDExIEBAIGNsYXNzIFNsaWRlciBleHRlbmRzIExheW91dE5vZGUKICAgICBo
YW5kbGVFdmVudChldmVudCkKICAgICB7CiAgICAgICAgIHN3aXRjaCAoZXZlbnQudHlwZSkgewot
ICAgICAgICBjYXNlICJtb3VzZWRvd24iOgotICAgICAgICAgICAgdGhpcy5faGFuZGxlTW91c2Vk
b3duRXZlbnQoKTsKKyAgICAgICAgY2FzZSAicG9pbnRlcmRvd24iOgorICAgICAgICAgICAgdGhp
cy5faGFuZGxlUG9pbnRlcmRvd25FdmVudCgpOwogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IGNhc2UgInRvdWNoc3RhcnQiOgotICAgICAgICAgICAgdGhpcy5faGFuZGxlVG91Y2hzdGFydEV2
ZW50KGV2ZW50KTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlICJtb3VzZXVwIjoK
LSAgICAgICAgICAgIHRoaXMuX2hhbmRsZU1vdXNldXBFdmVudCgpOwotICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgIGNhc2UgInRvdWNoZW5kIjoKLSAgICAgICAgICAgIHRoaXMuX2hhbmRsZVRv
dWNoZW5kRXZlbnQoZXZlbnQpOworICAgICAgICBjYXNlICJwb2ludGVydXAiOgorICAgICAgICAg
ICAgdGhpcy5faGFuZGxlUG9pbnRlcnVwRXZlbnQoKTsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICBjYXNlICJjaGFuZ2UiOgogICAgICAgICBjYXNlICJpbnB1dCI6CkBAIC0xNTgsMTAgKzE1
MiwxMCBAQCBjbGFzcyBTbGlkZXIgZXh0ZW5kcyBMYXlvdXROb2RlCiAKICAgICAvLyBQcml2YXRl
CiAKLSAgICBfaGFuZGxlTW91c2Vkb3duRXZlbnQoKQorICAgIF9oYW5kbGVQb2ludGVyZG93bkV2
ZW50KCkKICAgICB7Ci0gICAgICAgIHRoaXMuX21vdXNldXBUYXJnZXQgPSB0aGlzLl9pbnRlcmFj
dGlvbkVuZFRhcmdldCgpOwotICAgICAgICB0aGlzLl9tb3VzZXVwVGFyZ2V0LmFkZEV2ZW50TGlz
dGVuZXIoIm1vdXNldXAiLCB0aGlzLCB0cnVlKTsKKyAgICAgICAgdGhpcy5fcG9pbnRlcnVwVGFy
Z2V0ID0gdGhpcy5faW50ZXJhY3Rpb25FbmRUYXJnZXQoKTsKKyAgICAgICAgdGhpcy5fcG9pbnRl
cnVwVGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsIHRoaXMsIHRydWUpOwogCiAg
ICAgICAgIHRoaXMuX3ZhbHVlV2lsbFN0YXJ0Q2hhbmdpbmcoKTsKICAgICB9CkBAIC0xNzIsMjAg
KzE2Niw2IEBAIGNsYXNzIFNsaWRlciBleHRlbmRzIExheW91dE5vZGUKICAgICAgICAgcmV0dXJu
ICghbWVkaWFDb250cm9scyB8fCBtZWRpYUNvbnRyb2xzIGluc3RhbmNlb2YgTWFjT1NJbmxpbmVN
ZWRpYUNvbnRyb2xzKSA/IHdpbmRvdyA6IG1lZGlhQ29udHJvbHMuZWxlbWVudDsKICAgICB9CiAK
LSAgICBfaGFuZGxlVG91Y2hzdGFydEV2ZW50KGV2ZW50KQotICAgIHsKLSAgICAgICAgLy8gV2Un
cmUgb25seSBpbnRlcmVzdGVkIGluIHRoZSB2ZXJ5IGZpcnN0IHRvdWNoIG9uIHRoZSA8aW5wdXQ+
LgotICAgICAgICBpZiAoZXZlbnQudG91Y2hlcy5sZW5ndGggIT09IDEpCi0gICAgICAgICAgICBy
ZXR1cm47Ci0KLSAgICAgICAgdGhpcy5faW5pdGlhbFRvdWNoSWRlbnRpZmllciA9IGV2ZW50LnRv
dWNoZXNbMF0uaWRlbnRpZmllcjsKLQotICAgICAgICB0aGlzLl90b3VjaGVuZFRhcmdldCA9IHRo
aXMuX2ludGVyYWN0aW9uRW5kVGFyZ2V0KCk7Ci0gICAgICAgIHRoaXMuX3RvdWNoZW5kVGFyZ2V0
LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIiwgdGhpcywgdHJ1ZSk7Ci0KLSAgICAgICAgdGhp
cy5fdmFsdWVXaWxsU3RhcnRDaGFuZ2luZygpOwotICAgIH0KLQogICAgIF92YWx1ZVdpbGxTdGFy
dENoYW5naW5nKCkKICAgICB7CiAgICAgICAgIC8vIFdlIHNob3VsZCBubyBsb25nZXIgY2FjaGUg
dGhlIHZhbHVlIHNpbmNlIHdlJ2xsIGJlIGludGVyYWN0aW5nIHdpdGggdGhlIDxpbnB1dD4KQEAg
LTIxNSwyNCArMTk1LDExIEBAIGNsYXNzIFNsaWRlciBleHRlbmRzIExheW91dE5vZGUKICAgICAg
ICAgdGhpcy5uZWVkc0xheW91dCA9IHRydWU7CiAgICAgfQogCi0gICAgX2hhbmRsZU1vdXNldXBF
dmVudCgpCisgICAgX2hhbmRsZVBvaW50ZXJ1cEV2ZW50KCkKICAgICB7Ci0gICAgICAgIHRoaXMu
X21vdXNldXBUYXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsIHRoaXMsIHRydWUp
OwotICAgICAgICBkZWxldGUgdGhpcy5fbW91c2V1cFRhcmdldDsKKyAgICAgICAgdGhpcy5fcG9p
bnRlcnVwVGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsIHRoaXMsIHRydWUp
OworICAgICAgICBkZWxldGUgdGhpcy5fcG9pbnRlcnVwVGFyZ2V0OwogCiAgICAgICAgIHRoaXMu
X3ZhbHVlRGlkU3RvcENoYW5naW5nKCk7CiAgICAgfQotCi0gICAgX2hhbmRsZVRvdWNoZW5kRXZl
bnQoZXZlbnQpCi0gICAgewotICAgICAgICBpZiAoIUFycmF5LmZyb20oZXZlbnQuY2hhbmdlZFRv
dWNoZXMpLmZpbmQodG91Y2ggPT4gdG91Y2guaWRlbnRpZmllciA9PT0gdGhpcy5faW5pdGlhbFRv
dWNoSWRlbnRpZmllcikpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgdGhpcy5fdG91
Y2hlbmRUYXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLCB0aGlzLCB0cnVlKTsK
LSAgICAgICAgZGVsZXRlIHRoaXMuX3RvdWNoZW5kVGFyZ2V0OwotICAgICAgICBkZWxldGUgdGhp
cy5faW5pdGlhbFRvdWNoSWRlbnRpZmllcjsKLQotICAgICAgICB0aGlzLl92YWx1ZURpZFN0b3BD
aGFuZ2luZygpOwotICAgIH0KLQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvZ2VzdHVyZS1yZWNvZ25pemVycy9nZXN0dXJlLXJlY29n
bml6ZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9n
ZXN0dXJlLXJlY29nbml6ZXJzL2dlc3R1cmUtcmVjb2duaXplci5qcwppbmRleCAyYjU1MWU3ZTNi
Njk2ZjQ2NTlhMjJkZGU3N2VjNDY3M2I1YjdlNjRkLi41YTI3MDA2NTkyZmIyMjhkYzM1MTkyNGM1
Y2I2N2VjY2EwNTNkZDIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVy
bi1tZWRpYS1jb250cm9scy9nZXN0dXJlLXJlY29nbml6ZXJzL2dlc3R1cmUtcmVjb2duaXplci5q
cworKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9nZXN0
dXJlLXJlY29nbml6ZXJzL2dlc3R1cmUtcmVjb2duaXplci5qcwpAQCAtMSwxMCArMSw5IEBACi0K
IGNsYXNzIEdlc3R1cmVSZWNvZ25pemVyCiB7CiAKICAgICBjb25zdHJ1Y3Rvcih0YXJnZXQgPSBu
dWxsLCBkZWxlZ2F0ZSA9IG51bGwpCiAgICAgewotICAgICAgICB0aGlzLl90YXJnZXRUb3VjaGVz
ID0gW107CisgICAgICAgIHRoaXMuX3RhcmdldFBvaW50ZXJzID0gbmV3IE1hcDsKIAogICAgICAg
ICB0aGlzLm1vZGlmaWVyS2V5cyA9IHsKICAgICAgICAgICAgIGFsdCA6IGZhbHNlLApAQCAtNTMs
NyArNTIsNyBAQCBjbGFzcyBHZXN0dXJlUmVjb2duaXplcgogCiAgICAgZ2V0IG51bWJlck9mVG91
Y2hlcygpCiAgICAgewotICAgICAgICByZXR1cm4gdGhpcy5fdGFyZ2V0VG91Y2hlcy5sZW5ndGg7
CisgICAgICAgIHJldHVybiB0aGlzLl90YXJnZXRQb2ludGVycy5zaXplOwogICAgIH0KIAogICAg
IGdldCBlbmFibGVkKCkKQEAgLTg3LDEzICs4NiwxMyBAQCBjbGFzcyBHZXN0dXJlUmVjb2duaXpl
cgogICAgIGxvY2F0aW9uSW5FbGVtZW50KGVsZW1lbnQpCiAgICAgewogICAgICAgICBjb25zdCBw
ID0gbmV3IERPTVBvaW50OwotICAgICAgICBjb25zdCB0b3VjaGVzID0gdGhpcy5fdGFyZ2V0VG91
Y2hlczsKLSAgICAgICAgY29uc3QgY291bnQgPSB0b3VjaGVzLmxlbmd0aDsKLSAgICAgICAgZm9y
IChsZXQgaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7Ci0gICAgICAgICAgICBjb25zdCB0b3VjaCA9
IHRvdWNoZXNbaV07Ci0gICAgICAgICAgICBwLnggKz0gdG91Y2gucGFnZVg7Ci0gICAgICAgICAg
ICBwLnkgKz0gdG91Y2gucGFnZVk7Ci0gICAgICAgIH0KKyAgICAgICAgY29uc3QgY291bnQgPSB0
aGlzLl90YXJnZXRQb2ludGVycy5zaXplOworICAgICAgICBpZiAoIWNvdW50KQorICAgICAgICAg
ICAgcmV0dXJuIHA7CisgICAgICAgIHRoaXMuX3RhcmdldFBvaW50ZXJzLmZvckVhY2goZnVuY3Rp
b24gKHBvaW50ZXIpIHsKKyAgICAgICAgICAgIHAueCArPSBwb2ludGVyLnBhZ2VYOworICAgICAg
ICAgICAgcC55ICs9IHBvaW50ZXIucGFnZVk7CisgICAgICAgIH0pOwogICAgICAgICBwLnggLz0g
Y291bnQ7CiAgICAgICAgIHAueSAvPSBjb3VudDsKIApAQCAtMTA4LDQyICsxMDcsMjcgQEAgY2xh
c3MgR2VzdHVyZVJlY29nbml6ZXIKICAgICBsb2NhdGlvbkluQ2xpZW50KCkKICAgICB7CiAgICAg
ICAgIGNvbnN0IHAgPSBuZXcgRE9NUG9pbnQ7Ci0gICAgICAgIGNvbnN0IHRvdWNoZXMgPSB0aGlz
Ll90YXJnZXRUb3VjaGVzOwotICAgICAgICBjb25zdCBjb3VudCA9IHRvdWNoZXMubGVuZ3RoOwot
ICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKLSAgICAgICAgICAgIGNv
bnN0IHRvdWNoID0gdG91Y2hlc1tpXTsKLSAgICAgICAgICAgIHAueCArPSB0b3VjaC5jbGllbnRY
OwotICAgICAgICAgICAgcC55ICs9IHRvdWNoLmNsaWVudFk7Ci0gICAgICAgIH0KKyAgICAgICAg
Y29uc3QgY291bnQgPSB0aGlzLl90YXJnZXRQb2ludGVycy5zaXplOworICAgICAgICBpZiAoIWNv
dW50KQorICAgICAgICAgICAgcmV0dXJuIHA7CisgICAgICAgIHRoaXMuX3RhcmdldFBvaW50ZXJz
LmZvckVhY2goZnVuY3Rpb24gKHBvaW50ZXIpIHsKKyAgICAgICAgICAgIHAueCArPSBwb2ludGVy
LmNsaWVudFg7CisgICAgICAgICAgICBwLnkgKz0gcG9pbnRlci5jbGllbnRZOworICAgICAgICB9
KTsKICAgICAgICAgcC54IC89IGNvdW50OwogICAgICAgICBwLnkgLz0gY291bnQ7CiAKICAgICAg
ICAgcmV0dXJuIHA7CiAgICAgfQogCi0gICAgbG9jYXRpb25PZlRvdWNoSW5FbGVtZW50KHRvdWNo
SW5kZXgsIGVsZW1lbnQpCi0gICAgewotICAgICAgICBjb25zdCB0b3VjaCA9IHRoaXMuX3Rhcmdl
dFRvdWNoZXNbdG91Y2hJbmRleF07Ci0gICAgICAgIGlmICghdG91Y2gpCi0gICAgICAgICAgICBy
ZXR1cm4gbmV3IERPTVBvaW50OwotCi0gICAgICAgIGNvbnN0IHRvdWNoTG9jYXRpb24gPSBuZXcg
RE9NUG9pbnQodG91Y2gucGFnZVgsIHRvdWNoLnBhZ2VZKTsKLSAgICAgICAgaWYgKCFlbGVtZW50
KQotICAgICAgICAgICAgcmV0dXJuIHRvdWNoTG9jYXRpb247Ci0KLSAgICAgICAgLy8gRklYTUU6
IGFyZSBXZWJLaXRQb2ludCBhbmQgRE9NUG9pbnQgaW50ZXJjaGFuZ2VhYmxlPwotICAgICAgICBj
b25zdCB3a1BvaW50ID0gd2luZG93LndlYmtpdENvbnZlcnRQb2ludEZyb21QYWdlVG9Ob2RlKGVs
ZW1lbnQsIG5ldyBXZWJLaXRQb2ludCh0b3VjaExvY2F0aW9uLngsIHRvdWNoTG9jYXRpb24ueSkp
OwotICAgICAgICByZXR1cm4gbmV3IERPTVBvaW50KHdrUG9pbnQueCwgd2tQb2ludC55KTsKLSAg
ICB9Ci0KICAgICB0b3VjaGVzQmVnYW4oZXZlbnQpCiAgICAgewogICAgICAgICBpZiAoZXZlbnQu
Y3VycmVudFRhcmdldCAhPT0gdGhpcy5fdGFyZ2V0KQogICAgICAgICAgICAgcmV0dXJuOwogCi0g
ICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKEdlc3R1cmVSZWNvZ25pemVyLkV2ZW50cy5U
b3VjaE1vdmUsIHRoaXMsIHRydWUpOwotICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihH
ZXN0dXJlUmVjb2duaXplci5FdmVudHMuVG91Y2hFbmQsIHRoaXMsIHRydWUpOwotICAgICAgICB3
aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihHZXN0dXJlUmVjb2duaXplci5FdmVudHMuVG91Y2hDYW5j
ZWwsIHRoaXMsIHRydWUpOworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihHZXN0dXJl
UmVjb2duaXplci5FdmVudHMuUG9pbnRlck1vdmUsIHRoaXMsIHRydWUpOworICAgICAgICB3aW5k
b3cuYWRkRXZlbnRMaXN0ZW5lcihHZXN0dXJlUmVjb2duaXplci5FdmVudHMuUG9pbnRlclVwLCB0
aGlzLCB0cnVlKTsKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoR2VzdHVyZVJlY29n
bml6ZXIuRXZlbnRzLlBvaW50ZXJDYW5jZWwsIHRoaXMsIHRydWUpOwogICAgICAgICB0aGlzLmVu
dGVyUG9zc2libGVTdGF0ZSgpOwogICAgIH0KIApAQCAtMjM1LDE2ICsyMTksMTYgQEAgY2xhc3Mg
R2VzdHVyZVJlY29nbml6ZXIKICAgICAgICAgdGhpcy5fdXBkYXRlS2V5Ym9hcmRNb2RpZmllcnMo
ZXZlbnQpOwogCiAgICAgICAgIHN3aXRjaCAoZXZlbnQudHlwZSkgewotICAgICAgICBjYXNlIEdl
c3R1cmVSZWNvZ25pemVyLkV2ZW50cy5Ub3VjaFN0YXJ0OgorICAgICAgICBjYXNlIEdlc3R1cmVS
ZWNvZ25pemVyLkV2ZW50cy5Qb2ludGVyRG93bjoKICAgICAgICAgICAgIHRoaXMudG91Y2hlc0Jl
Z2FuKGV2ZW50KTsKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIEdlc3R1cmVSZWNv
Z25pemVyLkV2ZW50cy5Ub3VjaE1vdmU6CisgICAgICAgIGNhc2UgR2VzdHVyZVJlY29nbml6ZXIu
RXZlbnRzLlBvaW50ZXJNb3ZlOgogICAgICAgICAgICAgdGhpcy50b3VjaGVzTW92ZWQoZXZlbnQp
OwogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgR2VzdHVyZVJlY29nbml6ZXIuRXZl
bnRzLlRvdWNoRW5kOgorICAgICAgICBjYXNlIEdlc3R1cmVSZWNvZ25pemVyLkV2ZW50cy5Qb2lu
dGVyVXA6CiAgICAgICAgICAgICB0aGlzLnRvdWNoZXNFbmRlZChldmVudCk7CiAgICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgY2FzZSBHZXN0dXJlUmVjb2duaXplci5FdmVudHMuVG91Y2hDYW5j
ZWw6CisgICAgICAgIGNhc2UgR2VzdHVyZVJlY29nbml6ZXIuRXZlbnRzLlBvaW50ZXJDYW5jZWw6
CiAgICAgICAgICAgICB0aGlzLnRvdWNoZXNDYW5jZWxsZWQoZXZlbnQpOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIGNhc2UgR2VzdHVyZVJlY29nbml6ZXIuRXZlbnRzLkdlc3R1cmVTdGFy
dDoKQEAgLTI3NSwxMSArMjU5LDExIEBAIGNsYXNzIEdlc3R1cmVSZWNvZ25pemVyCiAgICAgICAg
ICAgICByZXR1cm47CiAKICAgICAgICAgaWYgKHRoaXMuX2VuYWJsZWQpIHsKLSAgICAgICAgICAg
IHRoaXMuX3RhcmdldC5hZGRFdmVudExpc3RlbmVyKEdlc3R1cmVSZWNvZ25pemVyLkV2ZW50cy5U
b3VjaFN0YXJ0LCB0aGlzKTsKKyAgICAgICAgICAgIHRoaXMuX3RhcmdldC5hZGRFdmVudExpc3Rl
bmVyKEdlc3R1cmVSZWNvZ25pemVyLkV2ZW50cy5Qb2ludGVyRG93biwgdGhpcyk7CiAgICAgICAg
ICAgICBpZiAoR2VzdHVyZVJlY29nbml6ZXIuU3VwcG9ydHNHZXN0dXJlcykKICAgICAgICAgICAg
ICAgICB0aGlzLl90YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcihHZXN0dXJlUmVjb2duaXplci5FdmVu
dHMuR2VzdHVyZVN0YXJ0LCB0aGlzKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHRo
aXMuX3RhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKEdlc3R1cmVSZWNvZ25pemVyLkV2ZW50cy5U
b3VjaFN0YXJ0LCB0aGlzKTsKKyAgICAgICAgICAgIHRoaXMuX3RhcmdldC5yZW1vdmVFdmVudExp
c3RlbmVyKEdlc3R1cmVSZWNvZ25pemVyLkV2ZW50cy5Qb2ludGVyRG93biwgdGhpcyk7CiAgICAg
ICAgICAgICBpZiAoR2VzdHVyZVJlY29nbml6ZXIuU3VwcG9ydHNHZXN0dXJlcykKICAgICAgICAg
ICAgICAgICB0aGlzLl90YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcihHZXN0dXJlUmVjb2duaXpl
ci5FdmVudHMuR2VzdHVyZVN0YXJ0LCB0aGlzKTsKICAgICAgICAgfQpAQCAtMjg3LDYyICsyNzEs
MzEgQEAgY2xhc3MgR2VzdHVyZVJlY29nbml6ZXIKIAogICAgIF9yZW1vdmVUcmFja2luZ0xpc3Rl
bmVycygpCiAgICAgewotICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihHZXN0dXJl
UmVjb2duaXplci5FdmVudHMuVG91Y2hNb3ZlLCB0aGlzLCB0cnVlKTsKLSAgICAgICAgd2luZG93
LnJlbW92ZUV2ZW50TGlzdGVuZXIoR2VzdHVyZVJlY29nbml6ZXIuRXZlbnRzLlRvdWNoRW5kLCB0
aGlzLCB0cnVlKTsKKyAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoR2VzdHVyZVJl
Y29nbml6ZXIuRXZlbnRzLlBvaW50ZXJNb3ZlLCB0aGlzLCB0cnVlKTsKKyAgICAgICAgd2luZG93
LnJlbW92ZUV2ZW50TGlzdGVuZXIoR2VzdHVyZVJlY29nbml6ZXIuRXZlbnRzLlBvaW50ZXJVcCwg
dGhpcywgdHJ1ZSk7CisgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKEdlc3R1cmVS
ZWNvZ25pemVyLkV2ZW50cy5Qb2ludGVyQ2FuY2VsLCB0aGlzLCB0cnVlKTsKICAgICAgICAgdGhp
cy5fdGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoR2VzdHVyZVJlY29nbml6ZXIuRXZlbnRzLkdl
c3R1cmVDaGFuZ2UsIHRoaXMsIHRydWUpOwogICAgICAgICB0aGlzLl90YXJnZXQucmVtb3ZlRXZl
bnRMaXN0ZW5lcihHZXN0dXJlUmVjb2duaXplci5FdmVudHMuR2VzdHVyZUVuZCwgdGhpcywgdHJ1
ZSk7CisKKyAgICAgICAgdGhpcy5fdGFyZ2V0UG9pbnRlcnMgPSBuZXcgTWFwOwogICAgIH0KIAog
ICAgIF91cGRhdGVUYXJnZXRUb3VjaGVzKGV2ZW50KQogICAgIHsKLSAgICAgICAgaWYgKCFHZXN0
dXJlUmVjb2duaXplci5TdXBwb3J0c1RvdWNoZXMpIHsKLSAgICAgICAgICAgIGlmIChldmVudC50
eXBlID09PSBHZXN0dXJlUmVjb2duaXplci5FdmVudHMuVG91Y2hFbmQpCi0gICAgICAgICAgICAg
ICAgdGhpcy5fdGFyZ2V0VG91Y2hlcyA9IFtdOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAg
ICAgICAgIHRoaXMuX3RhcmdldFRvdWNoZXMgPSBbZXZlbnRdOwotICAgICAgICAgICAgcmV0dXJu
OwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKCEoZXZlbnQgaW5zdGFuY2VvZiBUb3VjaEV2ZW50
KSkKKyAgICAgICAgaWYgKCEoZXZlbnQgaW5zdGFuY2VvZiBQb2ludGVyRXZlbnQpKQogICAgICAg
ICAgICAgcmV0dXJuOwogCi0gICAgICAgIC8vIFdpdGggYSB0b3VjaHN0YXJ0IGV2ZW50LCBldmVu
dC50YXJnZXRUb3VjaGVzIGlzIGFjY3VyYXRlIHNvCi0gICAgICAgIC8vIHdlIHNpbXBseSBhZGQg
YWxsIG9mIHRob3NlLgotICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gR2VzdHVyZVJlY29nbml6
ZXIuRXZlbnRzLlRvdWNoU3RhcnQpIHsKLSAgICAgICAgICAgIHRoaXMuX3RhcmdldFRvdWNoZXMg
PSBbXTsKLSAgICAgICAgICAgIGxldCB0b3VjaGVzID0gZXZlbnQudGFyZ2V0VG91Y2hlczsKLSAg
ICAgICAgICAgIGZvciAobGV0IGkgPSAwLCBjb3VudCA9IHRvdWNoZXMubGVuZ3RoOyBpIDwgY291
bnQ7ICsraSkKLSAgICAgICAgICAgICAgICB0aGlzLl90YXJnZXRUb3VjaGVzLnB1c2godG91Y2hl
c1tpXSk7CisgICAgICAgIGlmIChldmVudC50eXBlID09PSBHZXN0dXJlUmVjb2duaXplci5FdmVu
dHMuUG9pbnRlckRvd24pIHsKKyAgICAgICAgICAgIHRoaXMuX3RhcmdldFBvaW50ZXJzLnNldChl
dmVudC5wb2ludGVySWQsIGV2ZW50KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQog
Ci0gICAgICAgIC8vIFdpdGggYSB0b3VjaG1vdmUgZXZlbnQsIHRoZSB0YXJnZXQgaXMgd2luZG93
IHNvIGV2ZW50LnRhcmdldFRvdWNoZXMgaXMKLSAgICAgICAgLy8gaW5hY2N1cmF0ZSBzbyB3ZSBh
ZGQgYWxsIHRvdWNoZXMgdGhhdCB3ZSBrbmV3IGFib3V0IHByZXZpb3VzbHkuCi0gICAgICAgIGlm
IChldmVudC50eXBlID09PSBHZXN0dXJlUmVjb2duaXplci5FdmVudHMuVG91Y2hNb3ZlKSB7Ci0g
ICAgICAgICAgICBsZXQgdGFyZ2V0SWRlbnRpZmllcnMgPSB0aGlzLl90YXJnZXRUb3VjaGVzLm1h
cChmdW5jdGlvbih0b3VjaCkgewotICAgICAgICAgICAgICAgIHJldHVybiB0b3VjaC5pZGVudGlm
aWVyOwotICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAgICAgIHRoaXMuX3RhcmdldFRvdWNoZXMg
PSBbXTsKLSAgICAgICAgICAgIGxldCB0b3VjaGVzID0gZXZlbnQudG91Y2hlczsKLSAgICAgICAg
ICAgIGZvciAobGV0IGkgPSAwLCBjb3VudCA9IHRvdWNoZXMubGVuZ3RoOyBpIDwgY291bnQ7ICsr
aSkgewotICAgICAgICAgICAgICAgIGxldCB0b3VjaCA9IHRvdWNoZXNbaV07Ci0gICAgICAgICAg
ICAgICAgaWYgKHRhcmdldElkZW50aWZpZXJzLmluZGV4T2YodG91Y2guaWRlbnRpZmllcikgIT09
IC0xKQotICAgICAgICAgICAgICAgICAgICB0aGlzLl90YXJnZXRUb3VjaGVzLnB1c2godG91Y2gp
OwotICAgICAgICAgICAgfQorICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gR2VzdHVyZVJlY29n
bml6ZXIuRXZlbnRzLlBvaW50ZXJNb3ZlKSB7CisgICAgICAgICAgICB0aGlzLl90YXJnZXRQb2lu
dGVycy5zZXQoZXZlbnQucG9pbnRlcklkLCBldmVudCk7CiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIH0KIAotICAgICAgICAvLyBXaXRoIGEgdG91Y2hlbmQgb3IgdG91Y2hjYW5jZWwgZXZl
bnQsIHdlIG9ubHkga2VlcCB0aGUgZXhpc3RpbmcgdG91Y2hlcwotICAgICAgICAvLyB0aGF0IGFy
ZSBhbHNvIGZvdW5kIGluIGV2ZW50LnRvdWNoZXMuCi0gICAgICAgIGxldCBhbGxUb3VjaGVzID0g
ZXZlbnQudG91Y2hlczsKLSAgICAgICAgbGV0IGV4aXN0aW5nSWRlbnRpZmllcnMgPSBbXTsKLSAg
ICAgICAgZm9yIChsZXQgaSA9IDAsIGNvdW50ID0gYWxsVG91Y2hlcy5sZW5ndGg7IGkgPCBjb3Vu
dDsgKytpKQotICAgICAgICAgICAgZXhpc3RpbmdJZGVudGlmaWVycy5wdXNoKGFsbFRvdWNoZXNb
aV0uaWRlbnRpZmllcik7Ci0KLSAgICAgICAgdGhpcy5fdGFyZ2V0VG91Y2hlcyA9IHRoaXMuX3Rh
cmdldFRvdWNoZXMuZmlsdGVyKGZ1bmN0aW9uKHRvdWNoKSB7Ci0gICAgICAgICAgICByZXR1cm4g
ZXhpc3RpbmdJZGVudGlmaWVycy5pbmRleE9mKHRvdWNoLmlkZW50aWZpZXIpICE9PSAtMTsKLSAg
ICAgICAgfSk7CisgICAgICAgIHRoaXMuX3RhcmdldFBvaW50ZXJzLmRlbGV0ZShldmVudC5wb2lu
dGVySWQpOwogICAgIH0KIAogICAgIF91cGRhdGVLZXlib2FyZE1vZGlmaWVycyhldmVudCkKQEAg
LTM2OSwxMCArMzIyLDEwIEBAIEdlc3R1cmVSZWNvZ25pemVyLlN0YXRlcyA9IHsKIH07CiAKIEdl
c3R1cmVSZWNvZ25pemVyLkV2ZW50cyA9IHsKLSAgICBUb3VjaFN0YXJ0ICAgICA6IEdlc3R1cmVS
ZWNvZ25pemVyLlN1cHBvcnRzVG91Y2hlcyA/ICJ0b3VjaHN0YXJ0IiA6ICJtb3VzZWRvd24iLAot
ICAgIFRvdWNoTW92ZSAgICAgIDogR2VzdHVyZVJlY29nbml6ZXIuU3VwcG9ydHNUb3VjaGVzID8g
InRvdWNobW92ZSIgOiAibW91c2Vtb3ZlIiwKLSAgICBUb3VjaEVuZCAgICAgICA6IEdlc3R1cmVS
ZWNvZ25pemVyLlN1cHBvcnRzVG91Y2hlcyA/ICJ0b3VjaGVuZCIgOiAibW91c2V1cCIsCi0gICAg
VG91Y2hDYW5jZWwgICAgOiAidG91Y2hjYW5jZWwiLAorICAgIFBvaW50ZXJEb3duICAgIDogInBv
aW50ZXJkb3duIiwKKyAgICBQb2ludGVyTW92ZSAgICA6ICJwb2ludGVybW92ZSIsCisgICAgUG9p
bnRlclVwICAgICAgOiAicG9pbnRlcnVwIiwKKyAgICBQb2ludGVyQ2FuY2VsICA6ICJwb2ludGVy
Y2FuY2VsIiwKICAgICBHZXN0dXJlU3RhcnQgICA6ICJnZXN0dXJlc3RhcnQiLAogICAgIEdlc3R1
cmVDaGFuZ2UgIDogImdlc3R1cmVjaGFuZ2UiLAogICAgIEdlc3R1cmVFbmQgICAgIDogImdlc3R1
cmVlbmQiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggZjgzNmJmZDU4NDhiNGNhOTQ2ZjIzOTAyZGJlZjk5OGUxNzhlMzZkYi4uZTZl
ZWE0NDVhNmEzODk5YmQ2ZWI3YWQ2YWE4NTRmMjg0NDczODdmMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNzQyLDYgKzc0Miw3
IEBACiAJCTJENTBBNEI3MUNFMTBFMDAwMDE5ODA0OSAvKiBBdHRhY2htZW50UGxhY2Vob2xkZXIu
cG5nIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDUw
QTRCNTFDRTEwRTAwMDAxOTgwNDkgLyogQXR0YWNobWVudFBsYWNlaG9sZGVyLnBuZyAqLzsgfTsK
IAkJMkQ1MEE0QjgxQ0UxMEUwMDAwMTk4MDQ5IC8qIEF0dGFjaG1lbnRQbGFjZWhvbGRlckAyeC5w
bmcgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJENTBB
NEI2MUNFMTBFMDAwMDE5ODA0OSAvKiBBdHRhY2htZW50UGxhY2Vob2xkZXJAMngucG5nICovOyB9
OwogCQkyRDU2NDZCMDFCOEY4NDkzMDAzQzQ5OTQgLyogRGljdGlvbmFyeVBvcHVwSW5mby5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ1NjQ2QUYxQjhG
ODQ5MzAwM0M0OTk0IC8qIERpY3Rpb25hcnlQb3B1cEluZm8uaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkyRDU2ODAwMzIzODg4NjA0MDA3RUNCOEEg
LyogYXV0by1oaWRlLWNvbnRyb2xsZXIuanMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDJENTY4MDAxMjM4ODg2MDMwMDdFQ0I4QSAvKiBhdXRvLWhpZGUt
Y29udHJvbGxlci5qcyAqLzsgfTsKIAkJMkQ1QTU5MzExNTI1MjVEMDAwMzZFRTUxIC8qIEltYWdl
T3JpZW50YXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE4NzQ4RDY2MTJDQzM3NjMwMDFGQkE0MSAvKiBJbWFnZU9yaWVudGF0aW9uLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMkQ1QkM0MjcxNkY4
ODJFRTAwNzA0OEQwIC8qIFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJENUJDNDI1MTZGODgyQkUwMDcw
NDhEMCAvKiBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMkQ1QzlEMDAxOUM3QjUyRTAwQjNDNUMx
IC8qIFBhZ2VPdmVybGF5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAyRDVDOUNGQzE5QzdCNTJFMDBCM0M1QzEgLyogUGFnZU92ZXJsYXkuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNjcxOSw2ICs2NzIw
LDcgQEAKIAkJMkQ1MEE0QjUxQ0UxMEUwMDAwMTk4MDQ5IC8qIEF0dGFjaG1lbnRQbGFjZWhvbGRl
ci5wbmcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBp
bWFnZS5wbmc7IHBhdGggPSBBdHRhY2htZW50UGxhY2Vob2xkZXIucG5nOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkyRDUwQTRCNjFDRTEwRTAwMDAxOTgwNDkgLyogQXR0YWNobWVudFBs
YWNlaG9sZGVyQDJ4LnBuZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IGltYWdlLnBuZzsgcGF0aCA9ICJBdHRhY2htZW50UGxhY2Vob2xkZXJAMngucG5n
Ijsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ1NjQ2QUYxQjhGODQ5MzAwM0M0OTk0
IC8qIERpY3Rpb25hcnlQb3B1cEluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRGljdGlvbmFyeVBvcHVwSW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQky
RDU2ODAwMTIzODg4NjAzMDA3RUNCOEEgLyogYXV0by1oaWRlLWNvbnRyb2xsZXIuanMgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IHBhdGggPSAiYXV0by1oaWRlLWNvbnRyb2xsZXIu
anMiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDVCQzQyNTE2Rjg4MkJFMDA3MDQ4
RDAgLyogU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTJENUJDNDI2MTZGODgyQkUwMDcwNDhEMCAvKiBTZWN1cml0eVBv
bGljeVZpb2xhdGlvbkV2ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTZWN1cml0eVBv
bGljeVZpb2xhdGlvbkV2ZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ1
QzlDRkIxOUM3QjUyRTAwQjNDNUMxIC8qIFBhZ2VPdmVybGF5LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhZ2VPdmVybGF5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTY3NDEsNiArNjc0Myw5IEBACiAJCTJEODFFMUNEMjFBNzhDQzIwMEEzMkNG
NCAvKiBJbnNlcnRFZGl0YWJsZUltYWdlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBJbnNlcnRFZGl0YWJsZUltYWdlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkyRDgyODdGNDE2RTRBMDM4MDA4NkJEMDAgLyogSGl0VGVzdExvY2F0aW9u
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhpdFRlc3RMb2NhdGlv
bi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEODI4N0Y1MTZFNEEwMzgwMDg2
QkQwMCAvKiBIaXRUZXN0TG9jYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSGl0VGVzdExvY2F0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJEOEQz
QkVCMjM4NDdBQzkwMDY1NzA3NSAvKiBnZXN0dXJlLXJlY29nbml6ZXIuanMgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3Jp
cHQ7IHBhdGggPSAiZ2VzdHVyZS1yZWNvZ25pemVyLmpzIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMkQ4RDNCRUMyMzg0N0FDOTAwNjU3MDc1IC8qIHBpbmNoLmpzICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2Ny
aXB0OyBwYXRoID0gcGluY2guanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJEOEQz
QkVEMjM4NDdBQzkwMDY1NzA3NSAvKiB0YXAuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IHBhdGggPSB0YXAu
anM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEOEZFQkRBMTQzRTNFRjcwMDcyNTAy
QiAvKiBDU1NDcm9zc2ZhZGVWYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBDU1NDcm9zc2ZhZGVWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTJEOEZFQkRCMTQzRTNFRjcwMDcyNTAyQiAvKiBDU1NDcm9zc2ZhZGVWYWx1ZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NDcm9zc2ZhZGVWYWx1ZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkyRDkwNjYwNDBCRTE0MUQ0MDA5NTY5OTggLyogUmVuZGVy
TGF5b3V0U3RhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJl
bmRlckxheW91dFN0YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3NzY1
LDYgKzE3NzcwLDE2IEBACiAJCQlwYXRoID0gbWFjOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsKIAkJfTsKKwkJMkQ4RDNCRUEyMzg0N0FDODAwNjU3MDc1IC8qIGdlc3R1cmUtcmVjb2duaXpl
cnMgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTJEOEQz
QkVCMjM4NDdBQzkwMDY1NzA3NSAvKiBnZXN0dXJlLXJlY29nbml6ZXIuanMgKi8sCisJCQkJMkQ4
RDNCRUMyMzg0N0FDOTAwNjU3MDc1IC8qIHBpbmNoLmpzICovLAorCQkJCTJEOEQzQkVEMjM4NDdB
QzkwMDY1NzA3NSAvKiB0YXAuanMgKi8sCisJCQkpOworCQkJcGF0aCA9ICJnZXN0dXJlLXJlY29n
bml6ZXJzIjsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTJEREUxQ0FCMUY1
NzQ3NTkwMEQxQTM2NSAvKiB3ZWJ2ciAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hp
bGRyZW4gPSAoCkBAIC0yMDk2Myw2ICsyMDk3OCw3IEBACiAJCQkJNzE2RkEwRDgxREIyNjU5MTAw
NzMyM0NDIC8qIGFpcnBsYXktYnV0dG9uLmNzcyAqLywKIAkJCQk3MTZGQTBEOTFEQjI2NTkxMDA3
MzIzQ0MgLyogYWlycGxheS1idXR0b24uanMgKi8sCiAJCQkJNzE2RkEwREExREIyNjU5MTAwNzMy
M0NDIC8qIGFpcnBsYXktcGxhY2FyZC5qcyAqLywKKwkJCQkyRDU2ODAwMTIzODg4NjAzMDA3RUNC
OEEgLyogYXV0by1oaWRlLWNvbnRyb2xsZXIuanMgKi8sCiAJCQkJNzE2RkEwREMxREIyNjU5MTAw
NzMyM0NDIC8qIGJ1dHRvbi5jc3MgKi8sCiAJCQkJNzE2RkEwREQxREIyNjU5MTAwNzMyM0NDIC8q
IGJ1dHRvbi5qcyAqLywKIAkJCQk3MTZGQTBERTFEQjI2NTkxMDA3MzIzQ0MgLyogYnV0dG9ucy1j
b250YWluZXIuY3NzICovLApAQCAtMjEwNDIsNiArMjEwNTgsNyBAQAogCQkJaXNhID0gUEJYR3Jv
dXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQk3MTZGQTBENzFEQjI2NTkxMDA3MzIzQ0MgLyogY29u
dHJvbHMgKi8sCisJCQkJMkQ4RDNCRUEyMzg0N0FDODAwNjU3MDc1IC8qIGdlc3R1cmUtcmVjb2du
aXplcnMgKi8sCiAJCQkJNzFENkFBNkYxREE0RUFGNzAwQjIzOTY5IC8qIGltYWdlcyAqLywKIAkJ
CQk3MTQxMzE0ODFEQzlENkVGMDAzMzYxMDcgLyoganMtZmlsZXMgKi8sCiAJCQkJNzFEMDJEOTEx
REI1NUM0RTAwREQ1Q0Y1IC8qIG1lZGlhICovLApAQCAtMzMxODcsNiArMzMyMDQsNyBAQAogCQkJ
ZmlsZXMgPSAoCiAJCQkJMkQ1MEE0QjcxQ0UxMEUwMDAwMTk4MDQ5IC8qIEF0dGFjaG1lbnRQbGFj
ZWhvbGRlci5wbmcgaW4gUmVzb3VyY2VzICovLAogCQkJCTJENTBBNEI4MUNFMTBFMDAwMDE5ODA0
OSAvKiBBdHRhY2htZW50UGxhY2Vob2xkZXJAMngucG5nIGluIFJlc291cmNlcyAqLywKKwkJCQky
RDU2ODAwMzIzODg4NjA0MDA3RUNCOEEgLyogYXV0by1oaWRlLWNvbnRyb2xsZXIuanMgaW4gUmVz
b3VyY2VzICovLAogCQkJCUExQUE5QUI5MUQyMzkxMTUwMEZFQURCMyAvKiBDb250ZW50RmlsdGVy
QmxvY2tlZFBhZ2UuaHRtbCBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJQTExRThDMDUxQjFFMjhGNDAw
MDNBN0M3IC8qIGNvcHlDdXJzb3IucG5nIGluIFJlc291cmNlcyAqLywKIAkJCQkyRDlGMEUxMzE0
RkYxQ0JGMDBCQTBGRjcgLyogbGluZWFyU1JHQi5pY2MgaW4gUmVzb3VyY2VzICovLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcAppbmRleCA4NWVkYjk3YmIzNTBjZTZlNjU4OTQy
YzQyNjQ0NzY4MzZlMTAzYjRhLi4xZGNmZTNlMzEyODI3ZTQ0ZmUwNmM0NDA5MzA2MWJhYjdjM2Ix
MmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcApAQCAtMTM1LDggKzEz
NSw2IEBAIGJvb2wgUmFuZ2VJbnB1dFR5cGU6OmlzU3RlcHBhYmxlKCkgY29uc3QKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAotI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQotCiB2b2lkIFJhbmdlSW5w
dXRUeXBlOjpoYW5kbGVNb3VzZURvd25FdmVudChNb3VzZUV2ZW50JiBldmVudCkKIHsKICAgICBB
U1NFUlQoZWxlbWVudCgpKTsKQEAgLTE1NSw4ICsxNTMsNiBAQCB2b2lkIFJhbmdlSW5wdXRUeXBl
OjpoYW5kbGVNb3VzZURvd25FdmVudChNb3VzZUV2ZW50JiBldmVudCkKICAgICB0aHVtYi5kcmFn
RnJvbShldmVudC5hYnNvbHV0ZUxvY2F0aW9uKCkpOwogfQogCi0jZW5kaWYKLQogI2lmIEVOQUJM
RShUT1VDSF9FVkVOVFMpCiB2b2lkIFJhbmdlSW5wdXRUeXBlOjpoYW5kbGVUb3VjaEV2ZW50KFRv
dWNoRXZlbnQmIGV2ZW50KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5n
ZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5oCmluZGV4
IDMyYzg4ZTc2OWQwZTFkNDRiNzczOGJkNmMyMzY0MWFhM2I1MTgzZmMuLjUxZmI3OWQzZjQ5OWU0
MTJlNzEwZmE3Njk1N2Y4YmFhYzkyZmZhMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvUmFuZ2VJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRU
eXBlLmgKQEAgLTUwLDkgKzUwLDcgQEAgcHJpdmF0ZToKICAgICBib29sIHN1cHBvcnRzUmVxdWly
ZWQoKSBjb25zdCBmaW5hbDsKICAgICBTdGVwUmFuZ2UgY3JlYXRlU3RlcFJhbmdlKEFueVN0ZXBI
YW5kbGluZykgY29uc3QgZmluYWw7CiAgICAgYm9vbCBpc1N0ZXBwYWJsZSgpIGNvbnN0IGZpbmFs
OwotI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQogICAgIHZvaWQgaGFuZGxlTW91c2VEb3duRXZl
bnQoTW91c2VFdmVudCYpIGZpbmFsOwotI2VuZGlmCiAgICAgU2hvdWxkQ2FsbEJhc2VFdmVudEhh
bmRsZXIgaGFuZGxlS2V5ZG93bkV2ZW50KEtleWJvYXJkRXZlbnQmKSBmaW5hbDsKICAgICBSZW5k
ZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlSW5wdXRSZW5kZXJlcihSZW5kZXJTdHlsZSYmKSBm
aW5hbDsKICAgICB2b2lkIGNyZWF0ZVNoYWRvd1N1YnRyZWUoKSBmaW5hbDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwCmluZGV4IDkyYTdl
MjFkNzAwYTQ2ZDk1M2IxMDUwN2U0OGE5MTY3NDg0MjJiMjEuLjM1MzNlOGJhODA3NzRkYzJkNjZj
MTVhNDgxMjFjNjM3OGRkYWU2YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcApAQCAtMjQ2LDkgKzI0Niw3IEBAIHZvaWQgU2xpZGVy
VGh1bWJFbGVtZW50OjpkcmFnRnJvbShjb25zdCBMYXlvdXRQb2ludCYgcG9pbnQpCiB7CiAgICAg
UmVmPFNsaWRlclRodW1iRWxlbWVudD4gcHJvdGVjdGVkVGhpcygqdGhpcyk7CiAgICAgc2V0UG9z
aXRpb25Gcm9tUG9pbnQocG9pbnQpOwotI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQogICAgIHN0
YXJ0RHJhZ2dpbmcoKTsKLSNlbmRpZgogfQogCiB2b2lkIFNsaWRlclRodW1iRWxlbWVudDo6c2V0
UG9zaXRpb25Gcm9tUG9pbnQoY29uc3QgTGF5b3V0UG9pbnQmIGFic29sdXRlUG9pbnQpCkBAIC0z
MzgsNyArMzM2LDYgQEAgdm9pZCBTbGlkZXJUaHVtYkVsZW1lbnQ6OnN0b3BEcmFnZ2luZygpCiAg
ICAgICAgIHJlbmRlcmVyKCktPnNldE5lZWRzTGF5b3V0KCk7CiB9CiAKLSNpZiAhUExBVEZPUk0o
SU9TX0ZBTUlMWSkKIHZvaWQgU2xpZGVyVGh1bWJFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVy
KEV2ZW50JiBldmVudCkKIHsKICAgICBpZiAoIWlzPE1vdXNlRXZlbnQ+KGV2ZW50KSkgewpAQCAt
Mzc2LDkgKzM3Myw2IEBAIHZvaWQgU2xpZGVyVGh1bWJFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5k
bGVyKEV2ZW50JiBldmVudCkKIAogICAgIEhUTUxEaXZFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5k
bGVyKG1vdXNlRXZlbnQpOwogfQotI2VuZGlmCi0KLSNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkK
IAogYm9vbCBTbGlkZXJUaHVtYkVsZW1lbnQ6OndpbGxSZXNwb25kVG9Nb3VzZU1vdmVFdmVudHMo
KQogewpAQCAtMzk4LDcgKzM5Miw2IEBAIGJvb2wgU2xpZGVyVGh1bWJFbGVtZW50Ojp3aWxsUmVz
cG9uZFRvTW91c2VDbGlja0V2ZW50cygpCiAgICAgcmV0dXJuIEhUTUxEaXZFbGVtZW50Ojp3aWxs
UmVzcG9uZFRvTW91c2VDbGlja0V2ZW50cygpOwogfQogCi0jZW5kaWYgLy8gIVBMQVRGT1JNKElP
U19GQU1JTFkpCiAKIHZvaWQgU2xpZGVyVGh1bWJFbGVtZW50Ojp3aWxsRGV0YWNoUmVuZGVyZXJz
KCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1i
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50
LmgKaW5kZXggODQyMGIwMDdiMjZiZmVmMGFiNGQyNTE1OWMzOTViYzllYzc1MmM3Ni4uMDZhYmJm
OTY3MDBkMWRkZGExNmQ1NTIzZTU1MDAyM2M1MmEwNjBlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmgKQEAgLTY2LDExICs2Niw5IEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBtYXRjaGVzUmVhZFdyaXRlUHNldWRvQ2xhc3MoKSBjb25zdCBmaW5h
bDsKICAgICBSZWZQdHI8RWxlbWVudD4gZm9jdXNEZWxlZ2F0ZSgpIGZpbmFsOwogCi0jaWYgIVBM
QVRGT1JNKElPU19GQU1JTFkpCiAgICAgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50Jikg
ZmluYWw7CiAgICAgYm9vbCB3aWxsUmVzcG9uZFRvTW91c2VNb3ZlRXZlbnRzKCkgZmluYWw7CiAg
ICAgYm9vbCB3aWxsUmVzcG9uZFRvTW91c2VDbGlja0V2ZW50cygpIGZpbmFsOwotI2VuZGlmCiAK
ICNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKICAgICB2b2lkIGRpZEF0dGFjaFJlbmRlcmVy
cygpIGZpbmFsOwo=
</data>
<flag name="review"
          id="400704"
          type_id="1"
          status="+"
          setter="graouts"
    />
          </attachment>
      

    </bug>

</bugzilla>