<?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>141223</bug_id>
          
          <creation_ts>2015-02-03 17:24:00 -0800</creation_ts>
          <short_desc>[iOS WK2] Assert in ScrollingTreeOverflowScrollingNodeIOS::updateAfterChildren() on tab switching</short_desc>
          <delta_ts>2015-02-04 09:15:24 -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>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>dino</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1066659</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-02-03 17:24:00 -0800</bug_when>
    <thetext>[iOS WK2] Assert in ScrollingTreeOverflowScrollingNodeIOS::updateAfterChildren() on tab switching</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1066665</commentid>
    <comment_count>1</comment_count>
      <attachid>245995</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-02-03 17:30:38 -0800</bug_when>
    <thetext>Created attachment 245995
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1066666</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-02-03 17:31:24 -0800</bug_when>
    <thetext>This patch will almost certainly break on non-Apple platforms. Will fix before submitting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1066667</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-02-03 17:31:47 -0800</bug_when>
    <thetext>rdar://problem/18458993</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1066688</commentid>
    <comment_count>4</comment_count>
      <attachid>245995</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-02-03 18:07:41 -0800</bug_when>
    <thetext>Comment on attachment 245995
Patch

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

&gt; Source/WebCore/platform/graphics/GraphicsLayer.h:198
&gt; +    enum class LayerType {

should this just be &quot;Type&quot;? So that its name is WebCore::GraphicsLayer::Type instead of WebCore::GraphicsLayer::LayerType?

&gt; Source/WebCore/platform/graphics/GraphicsLayer.h:317
&gt; +    

no.

&gt; Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp:3183
&gt;      // move over animations

Get rid of this comment?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1066715</commentid>
    <comment_count>5</comment_count>
      <attachid>246010</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-02-03 20:15:42 -0800</bug_when>
    <thetext>Created attachment 246010
EWS testing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1066751</commentid>
    <comment_count>6</comment_count>
      <attachid>246020</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-02-03 22:57:02 -0800</bug_when>
    <thetext>Created attachment 246020
More EWSing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1066825</commentid>
    <comment_count>7</comment_count>
      <attachid>246020</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-02-04 09:14:12 -0800</bug_when>
    <thetext>Comment on attachment 246020
More EWSing

Carrying Tim&apos;s r+ forward</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1066827</commentid>
    <comment_count>8</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-02-04 09:15:24 -0800</bug_when>
    <thetext>https://trac.webkit.org/r179604</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>245995</attachid>
            <date>2015-02-03 17:30:38 -0800</date>
            <delta_ts>2015-02-03 20:15:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-141223-20150203173038.patch</filename>
            <type>text/plain</type>
            <size>46301</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc5NTE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzlkYWY4OWFlNDdmYzdh
MTcwZTY1YmEwZWU2M2ZlYmRmZjEzNzIzMS4uMjYwZDgxYTNhODAwOGE1ZTdlMzIyMjI1NWVmNDUz
MmE1YjZhMTAwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDE1LTAyLTAzICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1MgV0syXSBB
c3NlcnQgaW4gU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUzo6dXBkYXRlQWZ0
ZXJDaGlsZHJlbigpIG9uIHRhYiBzd2l0Y2hpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MTIyMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgSXQncyBwb3NzaWJsZSB0byBzdWJtaXQgYSBS
ZW1vdGVMYXllclRyZWUgdHJhbnNhY3Rpb24gdGhhdCBjb250YWlucyBkYXRhCisgICAgICAgIGFi
b3V0IGEgY3JlYXRlZCBsYXllciwgYnV0IGRvZXNuJ3QgaGF2ZSBhbnkgcHJvcGVydGllcyBmb3Ig
dGhhdCBsYXllci4gVGhpcworICAgICAgICBoYXBwZW5zIHdoZW4gdGhlIG5ld2x5IGNyZWF0ZWQg
bGF5ZXIgaXNuJ3QgcmVhY2hlZCBkdXJpbmcgdGhlIHRyYXZlcnNhbCB0aGF0CisgICAgICAgIGdh
dGhlcnMgbGF5ZXIgcHJvcGVydGllcyAoaS5lLiBpdCdzIG5vdCByb290ZWQpLiBIb3dldmVyLCB3
aGV0aGVyIHdlIGNyZWF0ZQorICAgICAgICBhIHNjcm9sbGluZyBsYXllciBvciBub3QgcmVxdWly
ZXMgaGF2aW5nIHByb3BlcnRpZXM7IHRoZXkgYXJlIG1pc3NpbmcsIHNvIHdlCisgICAgICAgIGNy
ZWF0ZSBhIG5vcm1hbCBsYXllciwgYnV0IHRoZW4gdGhlIHNjcm9sbGluZyB0cmVlIGNvbW1pdCBh
c3NlcnRzIHRoYXQgd2UKKyAgICAgICAgc2hvdWxkIGhhdmUgYSBzY3JvbGxpbmcgbGF5ZXIuCisg
ICAgICAgIAorICAgICAgICBGaXggYnkgbWFraW5nIHNjcm9sbGluZyBsYXllcnMgaGF2ZSBhIGNv
cnJlc3BvbmRpbmcgbGF5ZXIgdHlwZSwgd2hpY2ggaXMKKyAgICAgICAgc3RvcmVkIGluIGxheWVy
IGNyZWF0aW9uIHByb3BlcnRpZXMuIFRoaXMgcmVxdWlyZWQgZXhwb3NpbmcgbGF5ZXIgdHlwZXMK
KyAgICAgICAgdXAgdGhyb3VnaCBHcmFwaGljc0xheWVyLCBidXQgdGhhdCBhbGxvd3MgZm9yIHNv
bWUgbmljZSBjbGVhbnVwOgorICAgICAgICAKKyAgICAgICAgMS4gTm8gbmVlZCB0byBoYXZlIHRo
ZSBob2tleSBzaG91bGRVc2VUaWxlZEJhY2tpbmcoKSBHcmFwaGljc0xheWVyQ2xpZW50IGhhY2sK
KyAgICAgICAgICAgZm9yIGNyZWF0aW5nIHRoZSBwYWdlIHRpbGVkIGxheWVyLgorICAgICAgICAy
LiBUaGUgbm90aW9uIG9mICJjdXN0b20gYmVoYXZpb3JzIiBjYW4gYmUgcmVtb3ZlZCBmcm9tIEdy
YXBoaWNzTGF5ZXIgZW50aXJlbHkuCisKKyAgICAgICAgTm90IHRlc3RhYmxlIGJlY2F1c2UgaXQg
cmVxdWlyZXMgdGFiIHN3aXRjaGluZy4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NMYXllcjo6R3JhcGhpY3NMYXllcik6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NMYXllci5oOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXll
cjo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpzZXRDdXN0
b21CZWhhdmlvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpj
dXN0b21CZWhhdmlvcik6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NMYXllckNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNsaWVu
dDo6c2hvdWxkVXNlVGlsZWRCYWNraW5nKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0xheWVyRmFjdG9yeS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xh
eWVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjpHcmFwaGlj
c0xheWVyQ0EpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjppbml0aWFsaXpl
KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6Y29tbWl0TGF5ZXJDaGFuZ2Vz
QmVmb3JlU3VibGF5ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6ZW5z
dXJlU3RydWN0dXJhbExheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6
c3dhcEZyb21PclRvVGlsZWRMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVy
Q0E6OnVwZGF0ZUN1c3RvbUJlaGF2aW9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXJDQTo6c2V0Q3VzdG9tQmVoYXZpb3IpOiBEZWxldGVkLgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oOgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NMYXllckNBOjptb3ZlQW5pbWF0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0xheWVyQ0E6OmNvcHlBbmltYXRpb25zKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jYS9QbGF0Zm9ybUNBTGF5ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9t
YWMvUGxhdGZvcm1DQUxheWVyTWFjLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Ev
bWFjL1BsYXRmb3JtQ0FMYXllck1hYy5tbToKKyAgICAgICAgKFBsYXRmb3JtQ0FMYXllck1hYzo6
UGxhdGZvcm1DQUxheWVyTWFjKToKKyAgICAgICAgKFBsYXRmb3JtQ0FMYXllck1hYzo6Y29tbW9u
SW5pdCk6CisgICAgICAgIChQbGF0Zm9ybUNBTGF5ZXJNYWM6OnVwZGF0ZUN1c3RvbUJlaGF2aW9y
KTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6Y3JlYXRlR3JhcGhpY3NMYXll
cik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OmNyZWF0ZVByaW1hcnlH
cmFwaGljc0xheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6dXBk
YXRlU2Nyb2xsaW5nTGF5ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2lu
Zzo6c2hvdWxkVXNlVGlsZWRCYWNraW5nKTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyTGF5ZXJCYWNraW5nLmg6CisKIDIwMTUtMDItMDIgIFphbGFuIEJ1anRhcyAgPHphbGFu
QGFwcGxlLmNvbT4KIAogICAgICAgICBTaW1wbGUgbGluZSBsYXlvdXQ6IHVzZSBzdGQ6OnVwcGVy
X2JvdW5kIGluIHNwbGl0RnJhZ21lbnRUb0ZpdExpbmUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDgxZDE3ZjQw
YWIyOTRkMGNiMTUyODM1Y2QxMWZhN2U4MWEyOWU2MGYuLjU3ZmJjZDZiNjIxYWNhMDU1ZmRjNjYw
YTE1MjU4NzdmZGE0YWEyYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0OCBAQAorMjAxNS0wMi0w
MyAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9T
IFdLMl0gQXNzZXJ0IGluIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVJT1M6OnVw
ZGF0ZUFmdGVyQ2hpbGRyZW4oKSBvbiB0YWIgc3dpdGNoaW5nCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDEyMjMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJdCdzIHBvc3NpYmxlIHRvIHN1Ym1pdCBhIFJl
bW90ZUxheWVyVHJlZSB0cmFuc2FjdGlvbiB0aGF0IGNvbnRhaW5zIGRhdGEKKyAgICAgICAgYWJv
dXQgYSBjcmVhdGVkIGxheWVyLCBidXQgZG9lc24ndCBoYXZlIGFueSBwcm9wZXJ0aWVzIGZvciB0
aGF0IGxheWVyLiBUaGlzCisgICAgICAgIGhhcHBlbnMgd2hlbiB0aGUgbmV3bHkgY3JlYXRlZCBs
YXllciBpc24ndCByZWFjaGVkIGR1cmluZyB0aGUgdHJhdmVyc2FsIHRoYXQKKyAgICAgICAgZ2F0
aGVycyBsYXllciBwcm9wZXJ0aWVzIChpLmUuIGl0J3Mgbm90IHJvb3RlZCkuIEhvd2V2ZXIsIHdo
ZXRoZXIgd2UgY3JlYXRlCisgICAgICAgIGEgc2Nyb2xsaW5nIGxheWVyIG9yIG5vdCByZXF1aXJl
cyBoYXZpbmcgcHJvcGVydGllczsgdGhleSBhcmUgbWlzc2luZywgc28gd2UKKyAgICAgICAgY3Jl
YXRlIGEgbm9ybWFsIGxheWVyLCBidXQgdGhlbiB0aGUgc2Nyb2xsaW5nIHRyZWUgY29tbWl0IGFz
c2VydHMgdGhhdCB3ZQorICAgICAgICBzaG91bGQgaGF2ZSBhIHNjcm9sbGluZyBsYXllci4KKyAg
ICAgICAgCisgICAgICAgIEZpeCBieSBtYWtpbmcgc2Nyb2xsaW5nIGxheWVycyBoYXZlIGEgY29y
cmVzcG9uZGluZyBsYXllciB0eXBlLCB3aGljaCBpcworICAgICAgICBzdG9yZWQgaW4gbGF5ZXIg
Y3JlYXRpb24gcHJvcGVydGllcy4gVGhpcyByZXF1aXJlZCBleHBvc2luZyBsYXllciB0eXBlcwor
ICAgICAgICB1cCB0aHJvdWdoIEdyYXBoaWNzTGF5ZXIsIGJ1dCB0aGF0IGFsbG93cyBmb3Igc29t
ZSBuaWNlIGNsZWFudXA6CisgICAgICAgIAorICAgICAgICAxLiBObyBuZWVkIHRvIGhhdmUgdGhl
IGhva2V5IHNob3VsZFVzZVRpbGVkQmFja2luZygpIEdyYXBoaWNzTGF5ZXJDbGllbnQgaGFjawor
ICAgICAgICAgICBmb3IgY3JlYXRpbmcgdGhlIHBhZ2UgdGlsZWQgbGF5ZXIuCisgICAgICAgIDIu
IFRoZSBub3Rpb24gb2YgImN1c3RvbSBiZWhhdmlvcnMiIGNhbiBiZSByZW1vdmVkIGZyb20gR3Jh
cGhpY3NMYXllciBlbnRpcmVseS4KKworICAgICAgICAqIFNoYXJlZC9tYWMvUmVtb3RlTGF5ZXJC
YWNraW5nU3RvcmUubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyQmFja2luZ1N0b3Jl
OjpkcmF3SW5Db250ZXh0KToKKyAgICAgICAgKiBTaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRy
YW5zYWN0aW9uLmg6CisgICAgICAgICogU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2Fj
dGlvbi5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246Okxh
eWVyUHJvcGVydGllczo6TGF5ZXJQcm9wZXJ0aWVzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
TGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyUHJvcGVydGllczo6ZW5jb2RlKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyUHJvcGVydGllczo6ZGVj
b2RlKToKKyAgICAgICAgKFdlYktpdDo6ZHVtcENoYW5nZWRMYXllcnMpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6ZGVzY3JpcHRpb24pOgorICAgICAgICAq
IFVJUHJvY2Vzcy9pb3MvUmVtb3RlTGF5ZXJUcmVlSG9zdElPUy5tbToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlTGF5ZXJUcmVlSG9zdDo6Y3JlYXRlTGF5ZXIpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9tYWMvUmVtb3RlTGF5ZXJUcmVlSG9zdC5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5
ZXJUcmVlSG9zdDo6Y3JlYXRlTGF5ZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9t
YWMvR3JhcGhpY3NMYXllckNBUmVtb3RlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpQbGF0Zm9y
bUNBTGF5ZXJSZW1vdGU6OmN1c3RvbUJlaGF2aW9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktp
dDo6UGxhdGZvcm1DQUxheWVyUmVtb3RlOjp1cGRhdGVDdXN0b21CZWhhdmlvcik6IERlbGV0ZWQu
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRl
eHQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNv
bnRleHQubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZUNvbnRleHQ6OmNyZWF0
ZUdyYXBoaWNzTGF5ZXIpOgorCiAyMDE1LTAyLTAyICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBs
ZS5jb20+CiAKICAgICAgICAgUmV2ZXJ0IGFjY2lkZW50YWwgKGFuZCBzdXBlciBiYWQpIGNoYW5n
ZSBpbiByMTc5NDkwLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4g
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCAxNWJiNDdlYjY3ZDk5YjU5MzYy
YTliYTQ4N2RlM2Y5ZmRhZjNkODU0Li4zZDY0NGExNDM4MGEzYWQ2ZTE2ZDA2NmZiNzQ4NDA5OTQy
Y2Q3OWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMzExLDEwICszMTEsOSBAQCBfX1pON1dl
YkNvcmUxM0dyYXBoaWNzTGF5ZXIxN3N1c3BlbmRBbmltYXRpb25zRWQKIF9fWk43V2ViQ29yZTEz
R3JhcGhpY3NMYXllcjE4c2V0QmFja2dyb3VuZENvbG9yRVJLTlNfNUNvbG9yRQogX19aTjdXZWJD
b3JlMTNHcmFwaGljc0xheWVyMjBzZXRSZXBsaWNhdGVkQnlMYXllckVQUzBfCiBfX1pON1dlYkNv
cmUxM0dyYXBoaWNzTGF5ZXI1NG5vdGVEZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWRJbmNs
dWRpbmdEZXNjZW5kYW50c0V2Ci1fX1pON1dlYkNvcmUxM0dyYXBoaWNzTGF5ZXI2Y3JlYXRlRVBO
U18yMEdyYXBoaWNzTGF5ZXJGYWN0b3J5RVJOU18xOUdyYXBoaWNzTGF5ZXJDbGllbnRFCitfX1pO
N1dlYkNvcmUxM0dyYXBoaWNzTGF5ZXI2Y3JlYXRlRVBOU18yMEdyYXBoaWNzTGF5ZXJGYWN0b3J5
RVJOU18xOUdyYXBoaWNzTGF5ZXJDbGllbnRFTlMwXzlMYXllclR5cGVFCiBfX1pON1dlYkNvcmUx
M0dyYXBoaWNzTGF5ZXI3c2V0U2l6ZUVSS05TXzlGbG9hdFNpemVFCiBfX1pON1dlYkNvcmUxM0dy
YXBoaWNzTGF5ZXI4YWRkQ2hpbGRFUFMwXwotX19aTjdXZWJDb3JlMTNHcmFwaGljc0xheWVyQzJF
Uk5TXzE5R3JhcGhpY3NMYXllckNsaWVudEUKIF9fWk43V2ViQ29yZTEzR3JhcGhpY3NMYXllckQy
RXYKIF9fWk43V2ViQ29yZTEzSFRUUEhlYWRlck1hcDNzZXRFUktOM1dURjZTdHJpbmdFUzRfCiBf
X1pON1dlYkNvcmUxM0hUVFBIZWFkZXJNYXA2cmVtb3ZlRU5TXzE0SFRUUEhlYWRlck5hbWVFCkBA
IC01NjIsNyArNTYxLDcgQEAgX19aTjdXZWJDb3JlMTVHcmFwaGljc0NvbnRleHQ5c2V0U2hhZG93
RVJLTlNfOUZsb2F0U2l6ZUVmUktOU181Q29sb3JFTlNfMTBDb2xvclMKIF9fWk43V2ViQ29yZTE1
R3JhcGhpY3NDb250ZXh0OXRyYW5zbGF0ZUVmZgogX19aTjdXZWJDb3JlMTVHcmFwaGljc0NvbnRl
eHRDMUVQOUNHQ29udGV4dAogX19aTjdXZWJDb3JlMTVHcmFwaGljc0NvbnRleHREMUV2Ci1fX1pO
N1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQTEwaW5pdGlhbGl6ZUV2CitfX1pON1dlYkNvcmUxNUdy
YXBoaWNzTGF5ZXJDQTEwaW5pdGlhbGl6ZUVOU18xM0dyYXBoaWNzTGF5ZXI5TGF5ZXJUeXBlRQog
X19aTjdXZWJDb3JlMTVHcmFwaGljc0xheWVyQ0ExMHNldEZpbHRlcnNFUktOU18xNkZpbHRlck9w
ZXJhdGlvbnNFCiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQTEwc2V0T3BhY2l0eUVmCiBf
X1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQTExc2V0Q2hpbGRyZW5FUktOM1dURjZWZWN0b3JJ
UE5TXzEzR3JhcGhpY3NMYXllckVMbTBFTlMxXzE1Q3Jhc2hPbk92ZXJmbG93RUVFCkBAIC01OTAs
NyArNTg5LDYgQEAgX19aTjdXZWJDb3JlMTVHcmFwaGljc0xheWVyQ0ExNnJlbW92ZUZyb21QYXJl
bnRFdgogX19aTjdXZWJDb3JlMTVHcmFwaGljc0xheWVyQ0ExNnJlc3VtZUFuaW1hdGlvbnNFdgog
X19aTjdXZWJDb3JlMTVHcmFwaGljc0xheWVyQ0ExNnNldE1hc2tzVG9Cb3VuZHNFYgogX19aTjdX
ZWJDb3JlMTVHcmFwaGljc0xheWVyQ0ExN3NldENvbnRlbnRzT3BhcXVlRWIKLV9fWk43V2ViQ29y
ZTE1R3JhcGhpY3NMYXllckNBMTdzZXRDdXN0b21CZWhhdmlvckVOU18xM0dyYXBoaWNzTGF5ZXIx
NEN1c3RvbUJlaGF2aW9yRQogX19aTjdXZWJDb3JlMTVHcmFwaGljc0xheWVyQ0ExN3N1c3BlbmRB
bmltYXRpb25zRWQKIF9fWk43V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBMThzZXRCYWNrZHJvcEZp
bHRlcnNFUktOU18xNkZpbHRlck9wZXJhdGlvbnNFCiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5
ZXJDQTE4c2V0QmFja2dyb3VuZENvbG9yRVJLTlNfNUNvbG9yRQpAQCAtNjIyLDcgKzYyMCw3IEBA
IF9fWk43V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBNDBwbGF0Zm9ybUNBTGF5ZXJTZXROZWVkc1Rv
UmV2YWxpZGF0ZVRpbGVzRXYKIF9fWk43V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBN3NldE5hbWVF
UktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQTdzZXRTaXplRVJL
TlNfOUZsb2F0U2l6ZUUKIF9fWk43V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBOGFkZENoaWxkRVBO
U18xM0dyYXBoaWNzTGF5ZXJFCi1fX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQUMyRVJOU18x
OUdyYXBoaWNzTGF5ZXJDbGllbnRFCitfX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQUMyRU5T
XzEzR3JhcGhpY3NMYXllcjlMYXllclR5cGVFUk5TXzE5R3JhcGhpY3NMYXllckNsaWVudEUKIF9f
Wk43V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBRDJFdgogX19aTjdXZWJDb3JlMTVIaXRUZXN0TG9j
YXRpb24xMnJlY3RGb3JQb2ludEVSS05TXzExTGF5b3V0UG9pbnRFampqagogX19aTjdXZWJDb3Jl
MTVIaXRUZXN0TG9jYXRpb25DMUVSS05TXzEwRmxvYXRQb2ludEUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAKaW5kZXggOTc5OWI4NWU5
NTk1OTE1MzEzMmNmNGVjZTFkMjdmZTJjNjEzYTRiMC4uMzY1MzkxYzNjY2Q5YWI5ZWUyNTA1NzY4
MGI4ODMwZWY3Zjc1NGI4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NMYXllci5jcHAKQEAgLTcxLDcgKzcxLDcgQEAgdm9pZCBLZXlmcmFtZVZh
bHVlTGlzdDo6aW5zZXJ0KHN0ZDo6dW5pcXVlX3B0cjxjb25zdCBBbmltYXRpb25WYWx1ZT4gdmFs
dWUpCiAgICAgbV92YWx1ZXMuYXBwZW5kKFdURjo6bW92ZSh2YWx1ZSkpOwogfQogCi1HcmFwaGlj
c0xheWVyOjpHcmFwaGljc0xheWVyKEdyYXBoaWNzTGF5ZXJDbGllbnQmIGNsaWVudCkKK0dyYXBo
aWNzTGF5ZXI6OkdyYXBoaWNzTGF5ZXIoTGF5ZXJUeXBlLCBHcmFwaGljc0xheWVyQ2xpZW50JiBj
bGllbnQpCiAgICAgOiBtX2NsaWVudChjbGllbnQpCiAgICAgLCBtX2FuY2hvclBvaW50KDAuNWYs
IDAuNWYsIDApCiAgICAgLCBtX29wYWNpdHkoMSkKQEAgLTk5LDcgKzk5LDYgQEAgR3JhcGhpY3NM
YXllcjo6R3JhcGhpY3NMYXllcihHcmFwaGljc0xheWVyQ2xpZW50JiBjbGllbnQpCiAgICAgLCBt
X3JlcGxpY2F0ZWRMYXllcihudWxscHRyKQogICAgICwgbV9yZXBhaW50Q291bnQoMCkKICAgICAs
IG1fY3VzdG9tQXBwZWFyYW5jZShOb0N1c3RvbUFwcGVhcmFuY2UpCi0gICAgLCBtX2N1c3RvbUJl
aGF2aW9yKE5vQ3VzdG9tQmVoYXZpb3IpCiB7CiAjaWZuZGVmIE5ERUJVRwogICAgIG1fY2xpZW50
LnZlcmlmeU5vdFBhaW50aW5nKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0xheWVyLmgKaW5kZXggNjVhYTIzNjBiNzk5YjQ1ZDM4YmU2YzBiYTlmNjIy
NGExNmU0ODc1Yy4uMzg0ZGUwMjA2MzlhYTIzOTJiYmE4Njk1N2U3YmI1NDQ5YTRkNzdmYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaApA
QCAtMTk0LDExICsxOTQsMTggQEAgcHJvdGVjdGVkOgogY2xhc3MgR3JhcGhpY3NMYXllciB7CiAg
ICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoR3JhcGhpY3NMYXllcik7IFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwogcHVibGljOgotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBzdGQ6OnVuaXF1ZV9w
dHI8R3JhcGhpY3NMYXllcj4gY3JlYXRlKEdyYXBoaWNzTGF5ZXJGYWN0b3J5KiwgR3JhcGhpY3NM
YXllckNsaWVudCYpOworCisgICAgZW51bSBjbGFzcyBMYXllclR5cGUgeworICAgICAgICBOb3Jt
YWwsCisgICAgICAgIFBhZ2VUaWxlZEJhY2tpbmcsCisgICAgICAgIFNjcm9sbGluZworICAgIH07
CisgICAgCisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGlj
c0xheWVyPiBjcmVhdGUoR3JhcGhpY3NMYXllckZhY3RvcnkqLCBHcmFwaGljc0xheWVyQ2xpZW50
JiwgTGF5ZXJUeXBlID0gTGF5ZXJUeXBlOjpOb3JtYWwpOwogICAgIAogICAgIFdFQkNPUkVfRVhQ
T1JUIHZpcnR1YWwgfkdyYXBoaWNzTGF5ZXIoKTsKIAotICAgIHZpcnR1YWwgdm9pZCBpbml0aWFs
aXplKCkgeyB9CisgICAgdmlydHVhbCB2b2lkIGluaXRpYWxpemUoTGF5ZXJUeXBlKSB7IH0KIAog
ICAgIHR5cGVkZWYgdWludDY0X3QgUGxhdGZvcm1MYXllcklEOwogICAgIHZpcnR1YWwgUGxhdGZv
cm1MYXllcklEIHByaW1hcnlMYXllcklEKCkgY29uc3QgeyByZXR1cm4gMDsgfQpAQCAtMzA3LDcg
KzMxNCw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgYWNjZWxlcmF0ZXNEcmF3aW5nKCkgY29uc3Qg
eyByZXR1cm4gbV9hY2NlbGVyYXRlc0RyYXdpbmc7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0QWNj
ZWxlcmF0ZXNEcmF3aW5nKGJvb2wgYikgeyBtX2FjY2VsZXJhdGVzRHJhd2luZyA9IGI7IH0KLQor
ICAgIAogICAgIGJvb2wgbmVlZHNCYWNrZHJvcCgpIGNvbnN0IHsgcmV0dXJuICFtX2JhY2tkcm9w
RmlsdGVycy5pc0VtcHR5KCk7IH0KIAogICAgIC8vIFRoZSBjb2xvciB1c2VkIHRvIHBhaW50IHRo
ZSBsYXllciBiYWNrZ3JvdW5kLiBQYXNzIGFuIGludmFsaWQgY29sb3IgdG8gcmVtb3ZlIGl0LgpA
QCAtNDI5LDEwICs0MzYsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldEN1c3RvbUFw
cGVhcmFuY2UoQ3VzdG9tQXBwZWFyYW5jZSBjdXN0b21BcHBlYXJhbmNlKSB7IG1fY3VzdG9tQXBw
ZWFyYW5jZSA9IGN1c3RvbUFwcGVhcmFuY2U7IH0KICAgICBDdXN0b21BcHBlYXJhbmNlIGN1c3Rv
bUFwcGVhcmFuY2UoKSBjb25zdCB7IHJldHVybiBtX2N1c3RvbUFwcGVhcmFuY2U7IH0KIAotICAg
IGVudW0gQ3VzdG9tQmVoYXZpb3IgeyBOb0N1c3RvbUJlaGF2aW9yLCBDdXN0b21TY3JvbGxpbmdC
ZWhhdmlvciwgQ3VzdG9tU2Nyb2xsZWRDb250ZW50c0JlaGF2aW9yIH07Ci0gICAgdmlydHVhbCB2
b2lkIHNldEN1c3RvbUJlaGF2aW9yKEN1c3RvbUJlaGF2aW9yIGN1c3RvbUJlaGF2aW9yKSB7IG1f
Y3VzdG9tQmVoYXZpb3IgPSBjdXN0b21CZWhhdmlvcjsgfQotICAgIEN1c3RvbUJlaGF2aW9yIGN1
c3RvbUJlaGF2aW9yKCkgY29uc3QgeyByZXR1cm4gbV9jdXN0b21CZWhhdmlvcjsgfQotCiAgICAg
Ly8gei1wb3NpdGlvbiBpcyB0aGUgei1lcXVpdmFsZW50IG9mIHBvc2l0aW9uKCkuIEl0J3Mgb25s
eSB1c2VkIGZvciBkZWJ1Z2dpbmcgcHVycG9zZXMuCiAgICAgdmlydHVhbCBmbG9hdCB6UG9zaXRp
b24oKSBjb25zdCB7IHJldHVybiBtX3pQb3NpdGlvbjsgfQogICAgIFdFQkNPUkVfRVhQT1JUIHZp
cnR1YWwgdm9pZCBzZXRaUG9zaXRpb24oZmxvYXQpOwpAQCAtNTA3LDYgKzUxMCw4IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIGJvb2wgbmVlZHNDbGlwcGluZ01hc2tMYXllcigpIHsgcmV0dXJuIHRy
dWU7IH07CiAKIHByb3RlY3RlZDoKKyAgICBXRUJDT1JFX0VYUE9SVCBleHBsaWNpdCBHcmFwaGlj
c0xheWVyKExheWVyVHlwZSwgR3JhcGhpY3NMYXllckNsaWVudCYpOworCiAgICAgLy8gU2hvdWxk
IGJlIGNhbGxlZCBmcm9tIGRlcml2ZWQgY2xhc3MgZGVzdHJ1Y3RvcnMuIFNob3VsZCBjYWxsIHdp
bGxCZURlc3Ryb3llZCgpIG9uIHN1cGVyLgogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9p
ZCB3aWxsQmVEZXN0cm95ZWQoKTsKIApAQCAtNTM0LDggKzUzOSw2IEBAIHByb3RlY3RlZDoKICAg
ICBHcmFwaGljc0xheWVyKiByZXBsaWNhdGVkTGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX3JlcGxp
Y2F0ZWRMYXllcjsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRSZXBsaWNhdGVkTGF5ZXIoR3JhcGhp
Y3NMYXllciogbGF5ZXIpIHsgbV9yZXBsaWNhdGVkTGF5ZXIgPSBsYXllcjsgfQogCi0gICAgV0VC
Q09SRV9FWFBPUlQgZXhwbGljaXQgR3JhcGhpY3NMYXllcihHcmFwaGljc0xheWVyQ2xpZW50Jik7
Ci0KICAgICB2b2lkIGR1bXBQcm9wZXJ0aWVzKFRleHRTdHJlYW0mLCBpbnQgaW5kZW50LCBMYXll
clRyZWVBc1RleHRCZWhhdmlvcikgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGR1bXBBZGRpdGlv
bmFsUHJvcGVydGllcyhUZXh0U3RyZWFtJiwgaW50IC8qaW5kZW50Ki8sIExheWVyVHJlZUFzVGV4
dEJlaGF2aW9yKSBjb25zdCB7IH0KIApAQCAtNjAxLDcgKzYwNCw2IEBAIHByb3RlY3RlZDoKIAog
ICAgIGludCBtX3JlcGFpbnRDb3VudDsKICAgICBDdXN0b21BcHBlYXJhbmNlIG1fY3VzdG9tQXBw
ZWFyYW5jZTsKLSAgICBDdXN0b21CZWhhdmlvciBtX2N1c3RvbUJlaGF2aW9yOwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oCmluZGV4IDZlYzU0ODA5NTU1M2I3NDc5N2Jh
MzkzNjg4YjNmMjk0MzUwZDk4Y2UuLjFkY2NjNTcyNDM0NDU1M2Q2ZGI5OTVkMjkwNzYyMzA3YjVm
OWY0Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzTGF5ZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0xheWVyQ2xpZW50LmgKQEAgLTczLDcgKzczLDYgQEAgY2xhc3MgR3JhcGhpY3NMYXll
ckNsaWVudCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+R3JhcGhpY3NMYXllckNsaWVudCgpIHt9
CiAKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVXNlVGlsZWRCYWNraW5nKGNvbnN0IEdyYXBoaWNz
TGF5ZXIqKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9pZCB0aWxlZEJh
Y2tpbmdVc2FnZUNoYW5nZWQoY29uc3QgR3JhcGhpY3NMYXllciosIGJvb2wgLyp1c2luZ1RpbGVk
QmFja2luZyovKSB7IH0KICAgICAKICAgICAvLyBDYWxsYmFjayBmb3Igd2hlbiBoYXJkd2FyZS1h
Y2NlbGVyYXRlZCBhbmltYXRpb24gc3RhcnRlZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJGYWN0b3J5LmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyRmFjdG9yeS5oCmluZGV4IDNjMGYzZDE3
M2E1MDQxZWU4NDcyNmExM2FiMTI3NmM3YmEwNDdmZTMuLmJlYjc1MGNmYzI2ZjBjY2I0OWYwY2Ew
NTllNGFiNDg4NmY5N2ZiZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzTGF5ZXJGYWN0b3J5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckZhY3RvcnkuaApAQCAtMzcsNyArMzcsNyBAQCBjbGFz
cyBHcmFwaGljc0xheWVyRmFjdG9yeSB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+R3JhcGhpY3NM
YXllckZhY3RvcnkoKSB7IH0KIAotICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNz
TGF5ZXI+IGNyZWF0ZUdyYXBoaWNzTGF5ZXIoR3JhcGhpY3NMYXllckNsaWVudCYpID0gMDsKKyAg
ICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBjcmVhdGVHcmFwaGljc0xh
eWVyKEdyYXBoaWNzTGF5ZXI6OkxheWVyVHlwZSwgR3JhcGhpY3NMYXllckNsaWVudCYpID0gMDsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCmluZGV4IGEyMTQ0M2Jh
MzVkNmFhYTY2MDAxNjZkODE0NjZhMWM4NzkyYzcwMmMuLjMyYzk4NzIyYTUzNjU2ZTRjYjZjNTYz
YjdkNjFjOTIxNzVmMTRjZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcApAQCAtMjc2LDE1ICsyNzYsMTUgQEAg
c3RhdGljIGlubGluZSBib29sIHN1cHBvcnRzQWNjZWxlcmF0ZWRGaWx0ZXJBbmltYXRpb25zKCkK
ICNlbmRpZgogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gR3JhcGhpY3NMYXll
cjo6Y3JlYXRlKEdyYXBoaWNzTGF5ZXJGYWN0b3J5KiBmYWN0b3J5LCBHcmFwaGljc0xheWVyQ2xp
ZW50JiBjbGllbnQpCitzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gR3JhcGhpY3NMYXll
cjo6Y3JlYXRlKEdyYXBoaWNzTGF5ZXJGYWN0b3J5KiBmYWN0b3J5LCBHcmFwaGljc0xheWVyQ2xp
ZW50JiBjbGllbnQsIExheWVyVHlwZSBsYXllclR5cGUpCiB7CiAgICAgc3RkOjp1bmlxdWVfcHRy
PEdyYXBoaWNzTGF5ZXI+IGdyYXBoaWNzTGF5ZXI7CiAgICAgaWYgKCFmYWN0b3J5KQotICAgICAg
ICBncmFwaGljc0xheWVyID0gc3RkOjptYWtlX3VuaXF1ZTxHcmFwaGljc0xheWVyQ0E+KGNsaWVu
dCk7CisgICAgICAgIGdyYXBoaWNzTGF5ZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPEdyYXBoaWNzTGF5
ZXJDQT4obGF5ZXJUeXBlLCBjbGllbnQpOwogICAgIGVsc2UKLSAgICAgICAgZ3JhcGhpY3NMYXll
ciA9IGZhY3RvcnktPmNyZWF0ZUdyYXBoaWNzTGF5ZXIoY2xpZW50KTsKKyAgICAgICAgZ3JhcGhp
Y3NMYXllciA9IGZhY3RvcnktPmNyZWF0ZUdyYXBoaWNzTGF5ZXIobGF5ZXJUeXBlLCBjbGllbnQp
OwogCi0gICAgZ3JhcGhpY3NMYXllci0+aW5pdGlhbGl6ZSgpOworICAgIGdyYXBoaWNzTGF5ZXIt
PmluaXRpYWxpemUobGF5ZXJUeXBlKTsKIAogICAgIHJldHVybiBncmFwaGljc0xheWVyOwogfQpA
QCAtMzI1LDggKzMyNSw4IEBAIFBhc3NSZWZQdHI8UGxhdGZvcm1DQUFuaW1hdGlvbj4gR3JhcGhp
Y3NMYXllckNBOjpjcmVhdGVQbGF0Zm9ybUNBQW5pbWF0aW9uKFBsYXRmCiAjZW5kaWYKIH0KIAot
R3JhcGhpY3NMYXllckNBOjpHcmFwaGljc0xheWVyQ0EoR3JhcGhpY3NMYXllckNsaWVudCYgY2xp
ZW50KQotICAgIDogR3JhcGhpY3NMYXllcihjbGllbnQpCitHcmFwaGljc0xheWVyQ0E6OkdyYXBo
aWNzTGF5ZXJDQShMYXllclR5cGUgbGF5ZXJUeXBlLCBHcmFwaGljc0xheWVyQ2xpZW50JiBjbGll
bnQpCisgICAgOiBHcmFwaGljc0xheWVyKGxheWVyVHlwZSwgY2xpZW50KQogICAgICwgbV9jb250
ZW50c0xheWVyUHVycG9zZShOb0NvbnRlbnRzTGF5ZXIpCiAgICAgLCBtX2lzUGFnZVRpbGVkQmFj
a2luZ0xheWVyKGZhbHNlKQogICAgICwgbV9uZWVkc0Z1bGxSZXBhaW50KGZhbHNlKQpAQCAtMzM1
LDE1ICszMzUsMjQgQEAgR3JhcGhpY3NMYXllckNBOjpHcmFwaGljc0xheWVyQ0EoR3JhcGhpY3NM
YXllckNsaWVudCYgY2xpZW50KQogewogfQogCi12b2lkIEdyYXBoaWNzTGF5ZXJDQTo6aW5pdGlh
bGl6ZSgpCit2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6aW5pdGlhbGl6ZShMYXllclR5cGUgbGF5ZXJU
eXBlKQogewotICAgIFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlIGxheWVyVHlwZSA9IFBsYXRm
b3JtQ0FMYXllcjo6TGF5ZXJUeXBlV2ViTGF5ZXI7Ci0gICAgaWYgKGNsaWVudCgpLnNob3VsZFVz
ZVRpbGVkQmFja2luZyh0aGlzKSkgewotICAgICAgICBsYXllclR5cGUgPSBQbGF0Zm9ybUNBTGF5
ZXI6OkxheWVyVHlwZVBhZ2VUaWxlZEJhY2tpbmdMYXllcjsKKyAgICBpZiAobGF5ZXJUeXBlID09
IExheWVyVHlwZTo6UGFnZVRpbGVkQmFja2luZykKICAgICAgICAgbV9pc1BhZ2VUaWxlZEJhY2tp
bmdMYXllciA9IHRydWU7Ci0gICAgfQogCi0gICAgbV9sYXllciA9IGNyZWF0ZVBsYXRmb3JtQ0FM
YXllcihsYXllclR5cGUsIHRoaXMpOworICAgIFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlIHBs
YXRmb3JtTGF5ZXJUeXBlOworICAgIHN3aXRjaCAobGF5ZXJUeXBlKSB7CisgICAgY2FzZSBMYXll
clR5cGU6Ok5vcm1hbDoKKyAgICAgICAgcGxhdGZvcm1MYXllclR5cGUgPSBQbGF0Zm9ybUNBTGF5
ZXI6OkxheWVyVHlwZTo6TGF5ZXJUeXBlV2ViTGF5ZXI7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgTGF5ZXJUeXBlOjpQYWdlVGlsZWRCYWNraW5nOgorICAgICAgICBwbGF0Zm9ybUxheWVyVHlw
ZSA9IFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlOjpMYXllclR5cGVQYWdlVGlsZWRCYWNraW5n
TGF5ZXI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTGF5ZXJUeXBlOjpTY3JvbGxpbmc6Cisg
ICAgICAgIHBsYXRmb3JtTGF5ZXJUeXBlID0gUGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGU6Okxh
eWVyVHlwZVNjcm9sbGluZ0xheWVyOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgbV9sYXll
ciA9IGNyZWF0ZVBsYXRmb3JtQ0FMYXllcihwbGF0Zm9ybUxheWVyVHlwZSwgdGhpcyk7CiAgICAg
bm90ZUxheWVyUHJvcGVydHlDaGFuZ2VkKENvbnRlbnRzU2NhbGVDaGFuZ2VkKTsKIH0KIApAQCAt
MTQwNCw5ICsxNDEzLDYgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OmNvbW1pdExheWVyQ2hhbmdl
c0JlZm9yZVN1YmxheWVycyhDb21taXRTdGF0ZSYgY29tbWl0U3RhdGUKICAgICBpZiAobV91bmNv
bW1pdHRlZENoYW5nZXMgJiBDdXN0b21BcHBlYXJhbmNlQ2hhbmdlZCkKICAgICAgICAgdXBkYXRl
Q3VzdG9tQXBwZWFyYW5jZSgpOwogCi0gICAgaWYgKG1fdW5jb21taXR0ZWRDaGFuZ2VzICYgQ3Vz
dG9tQmVoYXZpb3JDaGFuZ2VkKQotICAgICAgICB1cGRhdGVDdXN0b21CZWhhdmlvcigpOwotCiAg
ICAgaWYgKG1fdW5jb21taXR0ZWRDaGFuZ2VzICYgQ2hpbGRyZW5DaGFuZ2VkKSB7CiAgICAgICAg
IHVwZGF0ZVN1YmxheWVyTGlzdCgpOwogICAgICAgICAvLyBTdWJsYXllcnMgbWF5IHNldCB0aGlz
IGZsYWcgYWdhaW4sIHNvIGNsZWFyIGl0IHRvIGF2b2lkIGFsd2F5cyB1cGRhdGluZyBzdWJsYXll
cnMgaW4gY29tbWl0TGF5ZXJDaGFuZ2VzQWZ0ZXJTdWJsYXllcnMoKS4KQEAgLTE3NTEsNyArMTc1
Nyw3IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjplbnN1cmVTdHJ1Y3R1cmFsTGF5ZXIoU3RydWN0
dXJhbExheWVyUHVycG9zZSBwdXJwb3NlKQogICAgICAgICAgICAgQVNTRVJUKG1fc3RydWN0dXJh
bExheWVyLT5zdXBlcmxheWVyKCkpOwogICAgICAgICAgICAgbV9zdHJ1Y3R1cmFsTGF5ZXItPnN1
cGVybGF5ZXIoKS0+cmVwbGFjZVN1YmxheWVyKCptX3N0cnVjdHVyYWxMYXllciwgKm1fbGF5ZXIp
OwogCi0gICAgICAgICAgICBtb3ZlT3JDb3B5QW5pbWF0aW9ucyhNb3ZlLCBtX3N0cnVjdHVyYWxM
YXllci5nZXQoKSwgbV9sYXllci5nZXQoKSk7CisgICAgICAgICAgICBtb3ZlQW5pbWF0aW9ucyht
X3N0cnVjdHVyYWxMYXllci5nZXQoKSwgbV9sYXllci5nZXQoKSk7CiAKICAgICAgICAgICAgIC8v
IFJlbGVhc2UgdGhlIHN0cnVjdHVyYWwgbGF5ZXIuCiAgICAgICAgICAgICBtX3N0cnVjdHVyYWxM
YXllciA9IG51bGxwdHI7CkBAIC0xODA4LDcgKzE4MTQsNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJD
QTo6ZW5zdXJlU3RydWN0dXJhbExheWVyKFN0cnVjdHVyYWxMYXllclB1cnBvc2UgcHVycG9zZSkK
ICAgICAgICAgfQogICAgIH0KIAotICAgIG1vdmVPckNvcHlBbmltYXRpb25zKE1vdmUsIG1fbGF5
ZXIuZ2V0KCksIG1fc3RydWN0dXJhbExheWVyLmdldCgpKTsKKyAgICBtb3ZlQW5pbWF0aW9ucyht
X2xheWVyLmdldCgpLCBtX3N0cnVjdHVyYWxMYXllci5nZXQoKSk7CiB9CiAKIEdyYXBoaWNzTGF5
ZXJDQTo6U3RydWN0dXJhbExheWVyUHVycG9zZSBHcmFwaGljc0xheWVyQ0E6OnN0cnVjdHVyYWxM
YXllclB1cnBvc2UoKSBjb25zdApAQCAtMzAwMSwxMSArMzAwNyw2IEBAIHZvaWQgR3JhcGhpY3NM
YXllckNBOjp1cGRhdGVDdXN0b21BcHBlYXJhbmNlKCkKICAgICBtX2xheWVyLT51cGRhdGVDdXN0
b21BcHBlYXJhbmNlKG1fY3VzdG9tQXBwZWFyYW5jZSk7CiB9CiAKLXZvaWQgR3JhcGhpY3NMYXll
ckNBOjp1cGRhdGVDdXN0b21CZWhhdmlvcigpCi17Ci0gICAgbV9sYXllci0+dXBkYXRlQ3VzdG9t
QmVoYXZpb3IobV9jdXN0b21CZWhhdmlvcik7Ci19Ci0KIHZvaWQgR3JhcGhpY3NMYXllckNBOjpz
ZXRTaG93RGVidWdCb3JkZXIoYm9vbCBzaG93Qm9yZGVyKQogewogICAgIGlmIChzaG93Qm9yZGVy
ID09IG1fc2hvd0RlYnVnQm9yZGVyKQpAQCAtMzExMCwxNSArMzExMSw2IEBAIHZvaWQgR3JhcGhp
Y3NMYXllckNBOjpzZXRDdXN0b21BcHBlYXJhbmNlKEN1c3RvbUFwcGVhcmFuY2UgY3VzdG9tQXBw
ZWFyYW5jZSkKICAgICBub3RlTGF5ZXJQcm9wZXJ0eUNoYW5nZWQoQ3VzdG9tQXBwZWFyYW5jZUNo
YW5nZWQpOwogfQogCi12b2lkIEdyYXBoaWNzTGF5ZXJDQTo6c2V0Q3VzdG9tQmVoYXZpb3IoQ3Vz
dG9tQmVoYXZpb3IgY3VzdG9tQmVoYXZpb3IpCi17Ci0gICAgaWYgKGN1c3RvbUJlaGF2aW9yID09
IG1fY3VzdG9tQmVoYXZpb3IpCi0gICAgICAgIHJldHVybjsKLQotICAgIEdyYXBoaWNzTGF5ZXI6
OnNldEN1c3RvbUJlaGF2aW9yKGN1c3RvbUJlaGF2aW9yKTsKLSAgICBub3RlTGF5ZXJQcm9wZXJ0
eUNoYW5nZWQoQ3VzdG9tQmVoYXZpb3JDaGFuZ2VkKTsKLX0KLQogYm9vbCBHcmFwaGljc0xheWVy
Q0E6OnJlcXVpcmVzVGlsZWRMYXllcihmbG9hdCBwYWdlU2NhbGVGYWN0b3IpIGNvbnN0CiB7CiAg
ICAgaWYgKCFtX2RyYXdzQ29udGVudCB8fCBtX2lzUGFnZVRpbGVkQmFja2luZ0xheWVyKQpAQCAt
MzE4OSw3ICszMTgxLDcgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OnN3YXBGcm9tT3JUb1RpbGVk
TGF5ZXIoYm9vbCB1c2VUaWxlZExheWVyKQogI2VuZGlmCiAKICAgICAvLyBtb3ZlIG92ZXIgYW5p
bWF0aW9ucwotICAgIG1vdmVPckNvcHlBbmltYXRpb25zKE1vdmUsIG9sZExheWVyLmdldCgpLCBt
X2xheWVyLmdldCgpKTsKKyAgICBtb3ZlQW5pbWF0aW9ucyhvbGRMYXllci5nZXQoKSwgbV9sYXll
ci5nZXQoKSk7CiAgICAgCiAgICAgLy8gbmVlZCB0byB0ZWxsIG5ldyBsYXllciB0byBkcmF3IGl0
c2VsZgogICAgIHNldE5lZWRzRGlzcGxheSgpOwpAQCAtMzQyNiw3ICszNDE4LDcgQEAgUGFzc1Jl
ZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+IEdyYXBoaWNzTGF5ZXJDQTo6Y2xvbmVMYXllcihQbGF0Zm9y
bUNBTGF5ZXIgKmxheWVyLAogCiAgICAgaWYgKGNsb25lTGV2ZWwgPT0gSW50ZXJtZWRpYXRlQ2xv
bmVMZXZlbCkgewogICAgICAgICBuZXdMYXllci0+c2V0T3BhY2l0eShsYXllci0+b3BhY2l0eSgp
KTsKLSAgICAgICAgbW92ZU9yQ29weUFuaW1hdGlvbnMoQ29weSwgbGF5ZXIsIG5ld0xheWVyLmdl
dCgpKTsKKyAgICAgICAgY29weUFuaW1hdGlvbnMobGF5ZXIsIG5ld0xheWVyLmdldCgpKTsKICAg
ICB9CiAKICAgICBzZXRMYXllckRlYnVnQm9yZGVyKCpuZXdMYXllciwgY2xvbmVMYXllckRlYnVn
Qm9yZGVyQ29sb3IoaXNTaG93aW5nRGVidWdCb3JkZXIoKSksIGNsb25lTGF5ZXJCb3JkZXJXaWR0
aCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFw
aGljc0xheWVyQ0EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBo
aWNzTGF5ZXJDQS5oCmluZGV4IGE3ZGY2NTdiODNkODkzN2NmMmJmY2UwYmQ2NjRkMzVmYmNiMjE3
NjEuLjA5MWUxMDUzMzQ2YmQwN2M4Njc2Y2I1N2MwMmQwYzllYWMyNWUxMjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5o
CkBAIC01NiwxMCArNTYsMTAgQEAgcHVibGljOgogICAgIC8vIHRvIGtlZXAgdGhlIG92ZXJhbGwg
dGlsZSBjb3N0IGxvdy4KICAgICBzdGF0aWMgY29uc3QgaW50IGtUaWxlZExheWVyVGlsZVNpemUg
PSA1MTI7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBleHBsaWNpdCBHcmFwaGljc0xheWVyQ0EoR3Jh
cGhpY3NMYXllckNsaWVudCYpOworICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IEdyYXBoaWNz
TGF5ZXJDQShMYXllclR5cGUsIEdyYXBoaWNzTGF5ZXJDbGllbnQmKTsKICAgICBXRUJDT1JFX0VY
UE9SVCB2aXJ0dWFsIH5HcmFwaGljc0xheWVyQ0EoKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHZp
cnR1YWwgdm9pZCBpbml0aWFsaXplKCkgb3ZlcnJpZGU7CisgICAgV0VCQ09SRV9FWFBPUlQgdmly
dHVhbCB2b2lkIGluaXRpYWxpemUoTGF5ZXJUeXBlKSBvdmVycmlkZTsKIAogICAgIFdFQkNPUkVf
RVhQT1JUIHZpcnR1YWwgdm9pZCBzZXROYW1lKGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOwogCkBA
IC0xNDMsNyArMTQzLDYgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9p
ZCBzZXREZWJ1Z0JvcmRlcihjb25zdCBDb2xvciYsIGZsb2F0IGJvcmRlcldpZHRoKSBvdmVycmlk
ZTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBzZXRDdXN0b21BcHBlYXJhbmNl
KEN1c3RvbUFwcGVhcmFuY2UpIG92ZXJyaWRlOwotICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwg
dm9pZCBzZXRDdXN0b21CZWhhdmlvcihDdXN0b21CZWhhdmlvcikgb3ZlcnJpZGU7CiAKICAgICBX
RUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgZGV2aWNlT3JQYWdlU2NhbGVGYWN0b3JDaGFuZ2Vk
KCkgb3ZlcnJpZGU7CiAKQEAgLTM4NCw3ICszODMsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgdXBk
YXRlVGlsZXMoKTsKICAgICB2b2lkIHVwZGF0ZUNvbnRlbnRzU2NhbGUoZmxvYXQgcGFnZVNjYWxl
RmFjdG9yKTsKICAgICB2b2lkIHVwZGF0ZUN1c3RvbUFwcGVhcmFuY2UoKTsKLSAgICB2b2lkIHVw
ZGF0ZUN1c3RvbUJlaGF2aW9yKCk7CiAKICAgICBlbnVtIFN0cnVjdHVyYWxMYXllclB1cnBvc2Ug
ewogICAgICAgICBOb1N0cnVjdHVyYWxMYXllciA9IDAsCkBAIC00MDEsOCArMzk5LDE3IEBAIHBy
aXZhdGU6CiAKICAgICBlbnVtIE1vdmVPckNvcHkgeyBNb3ZlLCBDb3B5IH07CiAgICAgc3RhdGlj
IHZvaWQgbW92ZU9yQ29weUxheWVyQW5pbWF0aW9uKE1vdmVPckNvcHksIGNvbnN0IFN0cmluZyYg
YW5pbWF0aW9uSWRlbnRpZmllciwgUGxhdGZvcm1DQUxheWVyICpmcm9tTGF5ZXIsIFBsYXRmb3Jt
Q0FMYXllciAqdG9MYXllcik7Ci0gICAgdm9pZCBtb3ZlT3JDb3B5QW5pbWF0aW9ucyhNb3ZlT3JD
b3B5LCBQbGF0Zm9ybUNBTGF5ZXIgKiBmcm9tTGF5ZXIsIFBsYXRmb3JtQ0FMYXllciAqIHRvTGF5
ZXIpOwotICAgIAorICAgIHZvaWQgbW92ZU9yQ29weUFuaW1hdGlvbnMoTW92ZU9yQ29weSwgUGxh
dGZvcm1DQUxheWVyKiBmcm9tTGF5ZXIsIFBsYXRmb3JtQ0FMYXllciogdG9MYXllcik7CisKKyAg
ICB2b2lkIG1vdmVBbmltYXRpb25zKFBsYXRmb3JtQ0FMYXllciogZnJvbUxheWVyLCBQbGF0Zm9y
bUNBTGF5ZXIqIHRvTGF5ZXIpCisgICAgeworICAgICAgICBtb3ZlT3JDb3B5QW5pbWF0aW9ucyhN
b3ZlLCBmcm9tTGF5ZXIsIHRvTGF5ZXIpOworICAgIH0KKyAgICB2b2lkIGNvcHlBbmltYXRpb25z
KFBsYXRmb3JtQ0FMYXllciogZnJvbUxheWVyLCBQbGF0Zm9ybUNBTGF5ZXIqIHRvTGF5ZXIpCisg
ICAgeworICAgICAgICBtb3ZlT3JDb3B5QW5pbWF0aW9ucyhDb3B5LCBmcm9tTGF5ZXIsIHRvTGF5
ZXIpOworICAgIH0KKwogICAgIGJvb2wgYXBwZW5kVG9VbmNvbW1pdHRlZEFuaW1hdGlvbnMoY29u
c3QgS2V5ZnJhbWVWYWx1ZUxpc3QmLCBjb25zdCBUcmFuc2Zvcm1PcGVyYXRpb25zKiwgY29uc3Qg
QW5pbWF0aW9uKiwgY29uc3QgU3RyaW5nJiBhbmltYXRpb25OYW1lLCBjb25zdCBGbG9hdFNpemUm
IGJveFNpemUsIGludCBhbmltYXRpb25JbmRleCwgZG91YmxlIHRpbWVPZmZzZXQsIGJvb2wgaXNN
YXRyaXhBbmltYXRpb24pOwogICAgIGJvb2wgYXBwZW5kVG9VbmNvbW1pdHRlZEFuaW1hdGlvbnMo
Y29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmLCBjb25zdCBGaWx0ZXJPcGVyYXRpb24qLCBjb25zdCBB
bmltYXRpb24qLCBjb25zdCBTdHJpbmcmIGFuaW1hdGlvbk5hbWUsIGludCBhbmltYXRpb25JbmRl
eCwgZG91YmxlIHRpbWVPZmZzZXQpOwogCkBAIC00NDAsOCArNDQ3LDcgQEAgcHJpdmF0ZToKICAg
ICAgICAgVGlsZXNBZGRlZCA9ICAgICAgICAgICAgICAgICAgICAxTExVIDw8IDMwLAogICAgICAg
ICBEZWJ1Z0luZGljYXRvcnNDaGFuZ2VkID0gICAgICAgIDFMTFUgPDwgMzEsCiAgICAgICAgIEN1
c3RvbUFwcGVhcmFuY2VDaGFuZ2VkID0gICAgICAgMUxMVSA8PCAzMiwKLSAgICAgICAgQ3VzdG9t
QmVoYXZpb3JDaGFuZ2VkID0gICAgICAgICAxTExVIDw8IDMzLAotICAgICAgICBCbGVuZE1vZGVD
aGFuZ2VkID0gICAgICAgICAgICAgIDFMTFUgPDwgMzQsCisgICAgICAgIEJsZW5kTW9kZUNoYW5n
ZWQgPSAgICAgICAgICAgICAgMUxMVSA8PCAzMywKICAgICB9OwogICAgIHR5cGVkZWYgdWludDY0
X3QgTGF5ZXJDaGFuZ2VGbGFnczsKICAgICBlbnVtIFNjaGVkdWxlRmx1c2hPck5vdCB7IFNjaGVk
dWxlRmx1c2gsIERvbnRTY2hlZHVsZUZsdXNoIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllci5oCmluZGV4IDcxZTRhNWJmZGNi
MmI0MzkwMmE1NDQyODA4MmNiNzdmYTI0OGE3MDQuLjg4NDViN2MwNjI2MDU1MTIwZDI2MTY1MTY2
Yzk1MjQ5YjA0NDM3NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhL1BsYXRmb3JtQ0FMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllci5oCkBAIC04MCw2ICs4MCw3IEBAIHB1YmxpYzoKICAg
ICAgICAgTGF5ZXJUeXBlV2ViR0xMYXllciwKICAgICAgICAgTGF5ZXJUeXBlQmFja2Ryb3BMYXll
ciwKICAgICAgICAgTGF5ZXJUeXBlU2hhcGVMYXllciwKKyAgICAgICAgTGF5ZXJUeXBlU2Nyb2xs
aW5nTGF5ZXIsCiAgICAgICAgIExheWVyVHlwZUN1c3RvbQogICAgIH07CiAgICAgZW51bSBGaWx0
ZXJUeXBlIHsgTGluZWFyLCBOZWFyZXN0LCBUcmlsaW5lYXIgfTsKQEAgLTIxMyw5ICsyMTQsNiBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCBHcmFwaGljc0xheWVyOjpDdXN0b21BcHBlYXJhbmNlIGN1
c3RvbUFwcGVhcmFuY2UoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUN1c3Rv
bUFwcGVhcmFuY2UoR3JhcGhpY3NMYXllcjo6Q3VzdG9tQXBwZWFyYW5jZSkgPSAwOwogCi0gICAg
dmlydHVhbCBHcmFwaGljc0xheWVyOjpDdXN0b21CZWhhdmlvciBjdXN0b21CZWhhdmlvcigpIGNv
bnN0ID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQ3VzdG9tQmVoYXZpb3IoR3JhcGhpY3NM
YXllcjo6Q3VzdG9tQmVoYXZpb3IpID0gMDsKLQogICAgIHZpcnR1YWwgVGlsZWRCYWNraW5nKiB0
aWxlZEJhY2tpbmcoKSA9IDA7CiAKICNpZiBQTEFURk9STShXSU4pCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUxheWVyTWFjLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUxheWVy
TWFjLmgKaW5kZXggY2QxZDU2ZTQxNmJkYjFmOTMyNjI4NGU3ZWU1NjUwY2U5ZWI5ZWM5MS4uNmZh
NmQ1N2E2NDNlNDlmMzMwNmQ3ZjkwNTRmYjY0MzE3ZWM2MDNjZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5
ZXJNYWMuaApAQCAtMTQ1LDkgKzE0NSw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEdyYXBoaWNz
TGF5ZXI6OkN1c3RvbUFwcGVhcmFuY2UgY3VzdG9tQXBwZWFyYW5jZSgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIG1fY3VzdG9tQXBwZWFyYW5jZTsgfQogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVD
dXN0b21BcHBlYXJhbmNlKEdyYXBoaWNzTGF5ZXI6OkN1c3RvbUFwcGVhcmFuY2UpIG92ZXJyaWRl
OwogCi0gICAgdmlydHVhbCBHcmFwaGljc0xheWVyOjpDdXN0b21CZWhhdmlvciBjdXN0b21CZWhh
dmlvcigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fY3VzdG9tQmVoYXZpb3I7IH0KLSAgICB2
aXJ0dWFsIHZvaWQgdXBkYXRlQ3VzdG9tQmVoYXZpb3IoR3JhcGhpY3NMYXllcjo6Q3VzdG9tQmVo
YXZpb3IpIG92ZXJyaWRlOwotCiAgICAgdmlydHVhbCBUaWxlZEJhY2tpbmcqIHRpbGVkQmFja2lu
ZygpIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFBsYXRmb3JtQ0FMYXllcj4g
Y2xvbmUoUGxhdGZvcm1DQUxheWVyQ2xpZW50KiBvd25lcikgY29uc3Qgb3ZlcnJpZGU7CkBAIC0x
NjksNyArMTY2LDYgQEAgcHJpdmF0ZToKICAgICBSZXRhaW5QdHI8TlNPYmplY3Q+IG1fZGVsZWdh
dGU7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtQ0FMYXllckxpc3Q+IG1fY3VzdG9tU3Vi
bGF5ZXJzOwogICAgIEdyYXBoaWNzTGF5ZXI6OkN1c3RvbUFwcGVhcmFuY2UgbV9jdXN0b21BcHBl
YXJhbmNlOwotICAgIEdyYXBoaWNzTGF5ZXI6OkN1c3RvbUJlaGF2aW9yIG1fY3VzdG9tQmVoYXZp
b3I7CiAgICAgc3RkOjp1bmlxdWVfcHRyPEZsb2F0Um91bmRlZFJlY3Q+IG1fc2hhcGVSb3VuZGVk
UmVjdDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUxheWVyTWFjLm1tCmluZGV4IGI1MTVjMDVjNDU1NGE5
OTI5OWVhMWE5YmFiMjcyMmFhZmI2NTYwNzguLjdiZTE2OTQyZjdmMGZiOTE3N2JhYTRiYjQyZjgy
YzljM2Q3NmIyOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5tbQpAQCAtMjA1LDcgKzIwNSw2
IEBAIFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlIFBsYXRmb3JtQ0FMYXllck1hYzo6bGF5ZXJU
eXBlRm9yUGxhdGZvcm1MYXllcihQbGF0Zm9yCiBQbGF0Zm9ybUNBTGF5ZXJNYWM6OlBsYXRmb3Jt
Q0FMYXllck1hYyhMYXllclR5cGUgbGF5ZXJUeXBlLCBQbGF0Zm9ybUNBTGF5ZXJDbGllbnQqIG93
bmVyKQogICAgIDogUGxhdGZvcm1DQUxheWVyKGxheWVyVHlwZSwgb3duZXIpCiAgICAgLCBtX2N1
c3RvbUFwcGVhcmFuY2UoR3JhcGhpY3NMYXllcjo6Tm9DdXN0b21BcHBlYXJhbmNlKQotICAgICwg
bV9jdXN0b21CZWhhdmlvcihHcmFwaGljc0xheWVyOjpOb0N1c3RvbUJlaGF2aW9yKQogewogICAg
IENsYXNzIGxheWVyQ2xhc3MgPSBOaWw7CiAgICAgc3dpdGNoIChsYXllclR5cGUpIHsKQEAgLTIx
Myw2ICsyMTIsOSBAQCBQbGF0Zm9ybUNBTGF5ZXJNYWM6OlBsYXRmb3JtQ0FMYXllck1hYyhMYXll
clR5cGUgbGF5ZXJUeXBlLCBQbGF0Zm9ybUNBTGF5ZXJDbGllbgogICAgIGNhc2UgTGF5ZXJUeXBl
Um9vdExheWVyOgogICAgICAgICBsYXllckNsYXNzID0gW0NBTGF5ZXIgY2xhc3NdOwogICAgICAg
ICBicmVhazsKKyAgICBjYXNlIExheWVyVHlwZVNjcm9sbGluZ0xheWVyOgorICAgICAgICAvLyBT
Y3JvbGxpbmcgbGF5ZXJzIG9ubHkgaGF2ZSBzcGVjaWFsIGJlaGF2aW9yIHdpdGggUGxhdGZvcm1D
QUxheWVyUmVtb3RlLgorICAgICAgICAvLyBmYWxsdGhyb3VnaAogICAgIGNhc2UgTGF5ZXJUeXBl
V2ViTGF5ZXI6CiAgICAgICAgIGxheWVyQ2xhc3MgPSBbV2ViTGF5ZXIgY2xhc3NdOwogICAgICAg
ICBicmVhazsKQEAgLTI2Miw3ICsyNjQsNiBAQCBQbGF0Zm9ybUNBTGF5ZXJNYWM6OlBsYXRmb3Jt
Q0FMYXllck1hYyhMYXllclR5cGUgbGF5ZXJUeXBlLCBQbGF0Zm9ybUNBTGF5ZXJDbGllbgogUGxh
dGZvcm1DQUxheWVyTWFjOjpQbGF0Zm9ybUNBTGF5ZXJNYWMoUGxhdGZvcm1MYXllciogbGF5ZXIs
IFBsYXRmb3JtQ0FMYXllckNsaWVudCogb3duZXIpCiAgICAgOiBQbGF0Zm9ybUNBTGF5ZXIobGF5
ZXJUeXBlRm9yUGxhdGZvcm1MYXllcihsYXllciksIG93bmVyKQogICAgICwgbV9jdXN0b21BcHBl
YXJhbmNlKEdyYXBoaWNzTGF5ZXI6Ok5vQ3VzdG9tQXBwZWFyYW5jZSkKLSAgICAsIG1fY3VzdG9t
QmVoYXZpb3IoR3JhcGhpY3NMYXllcjo6Tm9DdXN0b21CZWhhdmlvcikKIHsKICAgICBtX2xheWVy
ID0gbGF5ZXI7CiAgICAgY29tbW9uSW5pdCgpOwpAQCAtMjc1LDcgKzI3Niw3IEBAIHZvaWQgUGxh
dGZvcm1DQUxheWVyTWFjOjpjb21tb25Jbml0KCkKICAgICBbbV9sYXllciBzZXRWYWx1ZTpbTlNW
YWx1ZSB2YWx1ZVdpdGhQb2ludGVyOnRoaXNdIGZvcktleTpwbGF0Zm9ybUNBTGF5ZXJQb2ludGVy
XTsKICAgICAKICAgICAvLyBDbGVhciBhbGwgdGhlIGltcGxpY2l0IGFuaW1hdGlvbnMgb24gdGhl
IENBTGF5ZXIKLSAgICBpZiAobV9sYXllclR5cGUgPT0gTGF5ZXJUeXBlQVZQbGF5ZXJMYXllciB8
fCBtX2xheWVyVHlwZSA9PSBMYXllclR5cGVXZWJHTExheWVyIHx8IG1fbGF5ZXJUeXBlID09IExh
eWVyVHlwZUN1c3RvbSkKKyAgICBpZiAobV9sYXllclR5cGUgPT0gTGF5ZXJUeXBlQVZQbGF5ZXJM
YXllciB8fCBtX2xheWVyVHlwZSA9PSBMYXllclR5cGVXZWJHTExheWVyIHx8IG1fbGF5ZXJUeXBl
ID09IExheWVyVHlwZVNjcm9sbGluZ0xheWVyIHx8IG1fbGF5ZXJUeXBlID09IExheWVyVHlwZUN1
c3RvbSkKICAgICAgICAgW21fbGF5ZXIgd2ViX2Rpc2FibGVBbGxBY3Rpb25zXTsKICAgICBlbHNl
CiAgICAgICAgIFttX2xheWVyIHNldERlbGVnYXRlOltXZWJBY3Rpb25EaXNhYmxpbmdDQUxheWVy
RGVsZWdhdGUgc2hhcmVkXV07CkBAIC04NzcsMTkgKzg3OCw2IEBAIHZvaWQgUGxhdGZvcm1DQUxh
eWVyTWFjOjp1cGRhdGVDdXN0b21BcHBlYXJhbmNlKEdyYXBoaWNzTGF5ZXI6OkN1c3RvbUFwcGVh
cmFuY2UKICNlbmRpZgogfQogCi12b2lkIFBsYXRmb3JtQ0FMYXllck1hYzo6dXBkYXRlQ3VzdG9t
QmVoYXZpb3IoR3JhcGhpY3NMYXllcjo6Q3VzdG9tQmVoYXZpb3IgY3VzdG9tQmVoYXZpb3IpCi17
Ci0gICAgbV9jdXN0b21CZWhhdmlvciA9IGN1c3RvbUJlaGF2aW9yOwotCi0gICAgLy8gQ3VzdG9t
IGxheWVycyBjYW4gZ2V0IHdyYXBwZWQgaW4gVUlWaWV3cyAod2hpY2ggY2xvYmJlcnMgdGhlIGxh
eWVyIGRlbGVnYXRlKSwKLSAgICAvLyBzbyBmYWxsIGJhY2sgdG8gdGhlIHNsb3dlciB3YXkgb2Yg
ZGlzYWJsaW5nIGltcGxpY2l0IGFuaW1hdGlvbnMuCi0gICAgaWYgKG1fY3VzdG9tQmVoYXZpb3Ig
IT0gR3JhcGhpY3NMYXllcjo6Tm9DdXN0b21CZWhhdmlvcikgewotICAgICAgICBpZiAoW1ttX2xh
eWVyIGRlbGVnYXRlXSBpc0tpbmRPZkNsYXNzOltXZWJBY3Rpb25EaXNhYmxpbmdDQUxheWVyRGVs
ZWdhdGUgY2xhc3NdXSkKLSAgICAgICAgICAgIFttX2xheWVyIHNldERlbGVnYXRlOm5pbF07Ci0g
ICAgICAgIFttX2xheWVyIHdlYl9kaXNhYmxlQWxsQWN0aW9uc107Ci0gICAgfQotfQotCiBUaWxl
ZEJhY2tpbmcqIFBsYXRmb3JtQ0FMYXllck1hYzo6dGlsZWRCYWNraW5nKCkKIHsKICAgICBpZiAo
IXVzZXNUaWxlZEJhY2tpbmdMYXllcigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJCYWNraW5nLmNwcAppbmRleCBhYmMwMDdlMTBhODBmMDNmYjE4YWRlMGI5NjYy
N2EzNDc0MmQyZjAzLi5iZGYyODMwYWM4ZWM2YWQwYWQ0OGRhMDI4ZjAxMTg5OGUxZWYwOTRmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcApA
QCAtMTA1LDggKzEwNSw2IEBAIHN0YXRpYyBTY3JvbGxpbmdDb29yZGluYXRvciogc2Nyb2xsaW5n
Q29vcmRpbmF0b3JGcm9tTGF5ZXIoUmVuZGVyTGF5ZXImIGxheWVyKQogICAgIHJldHVybiBwYWdl
LT5zY3JvbGxpbmdDb29yZGluYXRvcigpOwogfQogCi1ib29sIFJlbmRlckxheWVyQmFja2luZzo6
bV9jcmVhdGluZ1ByaW1hcnlHcmFwaGljc0xheWVyID0gZmFsc2U7Ci0KIFJlbmRlckxheWVyQmFj
a2luZzo6UmVuZGVyTGF5ZXJCYWNraW5nKFJlbmRlckxheWVyJiBsYXllcikKICAgICA6IG1fb3du
aW5nTGF5ZXIobGF5ZXIpCiAgICAgLCBtX3ZpZXdwb3J0Q29uc3RyYWluZWROb2RlSUQoMCkKQEAg
LTE2MywxMyArMTYxLDEzIEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjp3aWxsRGVzdHJveUxh
eWVyKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGxheWVyKQogICAgICAgICBjb21wb3NpdG9yKCkubGF5
ZXJUaWxlZEJhY2tpbmdVc2FnZUNoYW5nZWQobGF5ZXIsIGZhbHNlKTsKIH0KIAotc3RkOjp1bmlx
dWVfcHRyPEdyYXBoaWNzTGF5ZXI+IFJlbmRlckxheWVyQmFja2luZzo6Y3JlYXRlR3JhcGhpY3NM
YXllcihjb25zdCBTdHJpbmcmIG5hbWUpCitzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4g
UmVuZGVyTGF5ZXJCYWNraW5nOjpjcmVhdGVHcmFwaGljc0xheWVyKGNvbnN0IFN0cmluZyYgbmFt
ZSwgR3JhcGhpY3NMYXllcjo6TGF5ZXJUeXBlIGxheWVyVHlwZSkKIHsKICAgICBHcmFwaGljc0xh
eWVyRmFjdG9yeSogZ3JhcGhpY3NMYXllckZhY3RvcnkgPSAwOwogICAgIGlmIChQYWdlKiBwYWdl
ID0gcmVuZGVyZXIoKS5mcmFtZSgpLnBhZ2UoKSkKICAgICAgICAgZ3JhcGhpY3NMYXllckZhY3Rv
cnkgPSBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5ncmFwaGljc0xheWVyRmFjdG9yeSgpOwogCi0g
ICAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IGdyYXBoaWNzTGF5ZXIgPSBHcmFwaGlj
c0xheWVyOjpjcmVhdGUoZ3JhcGhpY3NMYXllckZhY3RvcnksICp0aGlzKTsKKyAgICBzdGQ6OnVu
aXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gZ3JhcGhpY3NMYXllciA9IEdyYXBoaWNzTGF5ZXI6OmNy
ZWF0ZShncmFwaGljc0xheWVyRmFjdG9yeSwgKnRoaXMsIGxheWVyVHlwZSk7CiAKICNpZm5kZWYg
TkRFQlVHCiAgICAgZ3JhcGhpY3NMYXllci0+c2V0TmFtZShuYW1lKTsKQEAgLTE4MywxMSArMTgx
LDYgQEAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IFJlbmRlckxheWVyQmFja2luZzo6
Y3JlYXRlR3JhcGhpY3NMYXllcihjb25zdCBTdHIKICAgICByZXR1cm4gZ3JhcGhpY3NMYXllcjsK
IH0KIAotYm9vbCBSZW5kZXJMYXllckJhY2tpbmc6OnNob3VsZFVzZVRpbGVkQmFja2luZyhjb25z
dCBHcmFwaGljc0xheWVyKikgY29uc3QKLXsKLSAgICByZXR1cm4gbV91c2luZ1RpbGVkQ2FjaGVM
YXllciAmJiBtX2NyZWF0aW5nUHJpbWFyeUdyYXBoaWNzTGF5ZXI7Ci19Ci0KIHZvaWQgUmVuZGVy
TGF5ZXJCYWNraW5nOjp0aWxlZEJhY2tpbmdVc2FnZUNoYW5nZWQoY29uc3QgR3JhcGhpY3NMYXll
ciogbGF5ZXIsIGJvb2wgdXNpbmdUaWxlZEJhY2tpbmcpCiB7CiAgICAgY29tcG9zaXRvcigpLmxh
eWVyVGlsZWRCYWNraW5nVXNhZ2VDaGFuZ2VkKGxheWVyLCB1c2luZ1RpbGVkQmFja2luZyk7CkBA
IC0yODYsMTQgKzI3OSw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpjcmVhdGVQcmltYXJ5
R3JhcGhpY3NMYXllcigpCiAgICAgbGF5ZXJOYW1lID0gbV9vd25pbmdMYXllci5uYW1lKCk7CiAj
ZW5kaWYKICAgICAKLSAgICAvLyBUaGUgY2FsbCB0byBjcmVhdGVHcmFwaGljc0xheWVyIGVuZHMg
Y2FsbGluZyBiYWNrIGludG8gaGVyZSBhcwotICAgIC8vIGEgR3JhcGhpY3NMYXllckNsaWVudCB0
byBhc2sgaWYgaXQgc2hvdWxkVXNlVGlsZWRCYWNraW5nKCkuIFdlIG9ubHkgd2FudAotICAgIC8v
IHRoZSB0aWxlIGNhY2hlIG9uIG91ciBtYWluIGxheWVyLiBUaGlzIGlzIHByZXR0eSB1Z2x5LCBi
dXQgc2F2ZXMgdXMgZnJvbQotICAgIC8vIGV4cG9zaW5nIHRoZSBBUEkgdG8gYWxsIGNsaWVudHMu
Ci0KLSAgICBtX2NyZWF0aW5nUHJpbWFyeUdyYXBoaWNzTGF5ZXIgPSB0cnVlOwotICAgIG1fZ3Jh
cGhpY3NMYXllciA9IGNyZWF0ZUdyYXBoaWNzTGF5ZXIobGF5ZXJOYW1lKTsKLSAgICBtX2NyZWF0
aW5nUHJpbWFyeUdyYXBoaWNzTGF5ZXIgPSBmYWxzZTsKKyAgICBtX2dyYXBoaWNzTGF5ZXIgPSBj
cmVhdGVHcmFwaGljc0xheWVyKGxheWVyTmFtZSwgbV91c2luZ1RpbGVkQ2FjaGVMYXllciA/IEdy
YXBoaWNzTGF5ZXI6OkxheWVyVHlwZTo6UGFnZVRpbGVkQmFja2luZyA6IEdyYXBoaWNzTGF5ZXI6
OkxheWVyVHlwZTo6Tm9ybWFsKTsKIAogICAgIGlmIChtX3VzaW5nVGlsZWRDYWNoZUxheWVyKSB7
CiAgICAgICAgIG1fY2hpbGRDb250YWlubWVudExheWVyID0gY3JlYXRlR3JhcGhpY3NMYXllcigi
VGlsZWRCYWNraW5nIEZsYXR0ZW5pbmcgTGF5ZXIiKTsKQEAgLTE0ODQsMTggKzE0NzAsMTQgQEAg
Ym9vbCBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZVNjcm9sbGluZ0xheWVycyhib29sIG5lZWRz
U2Nyb2xsaW5nTGF5ZXJzKQogCiAgICAgaWYgKCFtX3Njcm9sbGluZ0xheWVyKSB7CiAgICAgICAg
IC8vIE91dGVyIGxheWVyIHdoaWNoIGNvcnJlc3BvbmRzIHdpdGggdGhlIHNjcm9sbCB2aWV3Lgot
ICAgICAgICBtX3Njcm9sbGluZ0xheWVyID0gY3JlYXRlR3JhcGhpY3NMYXllcigiU2Nyb2xsaW5n
IGNvbnRhaW5lciIpOworICAgICAgICBtX3Njcm9sbGluZ0xheWVyID0gY3JlYXRlR3JhcGhpY3NM
YXllcigiU2Nyb2xsaW5nIGNvbnRhaW5lciIsIEdyYXBoaWNzTGF5ZXI6OkxheWVyVHlwZTo6U2Ny
b2xsaW5nKTsKICAgICAgICAgbV9zY3JvbGxpbmdMYXllci0+c2V0RHJhd3NDb250ZW50KGZhbHNl
KTsKICAgICAgICAgbV9zY3JvbGxpbmdMYXllci0+c2V0TWFza3NUb0JvdW5kcyh0cnVlKTsKLSNp
ZiBQTEFURk9STShJT1MpCi0gICAgICAgIG1fc2Nyb2xsaW5nTGF5ZXItPnNldEN1c3RvbUJlaGF2
aW9yKEdyYXBoaWNzTGF5ZXI6OkN1c3RvbVNjcm9sbGluZ0JlaGF2aW9yKTsKLSNlbmRpZgorCiAg
ICAgICAgIC8vIElubmVyIGxheWVyIHdoaWNoIHJlbmRlcnMgdGhlIGNvbnRlbnQgdGhhdCBzY3Jv
bGxzLgogICAgICAgICBtX3Njcm9sbGluZ0NvbnRlbnRzTGF5ZXIgPSBjcmVhdGVHcmFwaGljc0xh
eWVyKCJTY3JvbGxlZCBDb250ZW50cyIpOwogICAgICAgICBtX3Njcm9sbGluZ0NvbnRlbnRzTGF5
ZXItPnNldERyYXdzQ29udGVudCh0cnVlKTsKLSNpZiBQTEFURk9STShJT1MpCi0gICAgICAgIG1f
c2Nyb2xsaW5nQ29udGVudHNMYXllci0+c2V0Q3VzdG9tQmVoYXZpb3IoR3JhcGhpY3NMYXllcjo6
Q3VzdG9tU2Nyb2xsZWRDb250ZW50c0JlaGF2aW9yKTsKLSNlbmRpZgorCiAgICAgICAgIEdyYXBo
aWNzTGF5ZXJQYWludGluZ1BoYXNlIHBhaW50UGhhc2UgPSBHcmFwaGljc0xheWVyUGFpbnRPdmVy
Zmxvd0NvbnRlbnRzIHwgR3JhcGhpY3NMYXllclBhaW50Q29tcG9zaXRlZFNjcm9sbDsKICAgICAg
ICAgaWYgKCFtX2ZvcmVncm91bmRMYXllcikKICAgICAgICAgICAgIHBhaW50UGhhc2UgfD0gR3Jh
cGhpY3NMYXllclBhaW50Rm9yZWdyb3VuZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckJhY2tpbmcuaAppbmRleCAyYzJlZGY1YzIyOTgzNWYzNjViNmYzOGM4N2Q3Yzcz
YTUyNzcyZTdmLi4xNjI2MDhjZmFiOGYzZTY0MTlhY2ZjYjNkNTlmNDc4ZTM0MGE5NGRhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCkBAIC0xOTMs
NyArMTkzLDYgQEAgcHVibGljOgogICAgIHZvaWQgdXBkYXRlRGVidWdJbmRpY2F0b3JzKGJvb2wg
c2hvd0JvcmRlciwgYm9vbCBzaG93UmVwYWludENvdW50ZXIpOwogCiAgICAgLy8gR3JhcGhpY3NM
YXllckNsaWVudCBpbnRlcmZhY2UKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVXNlVGlsZWRCYWNr
aW5nKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZv
aWQgdGlsZWRCYWNraW5nVXNhZ2VDaGFuZ2VkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBib29sIC8q
dXNpbmdUaWxlZEJhY2tpbmcqLykgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFu
aW1hdGlvblN0YXJ0ZWQoY29uc3QgR3JhcGhpY3NMYXllciosIGNvbnN0IFN0cmluZyYgYW5pbWF0
aW9uS2V5LCBkb3VibGUgc3RhcnRUaW1lKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgbm90
aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7CkBAIC0yNTYs
NyArMjU1LDcgQEAgcHJpdmF0ZToKIAogICAgIExheW91dFJlY3QgY29tcG9zaXRlZEJvdW5kc0lu
Y2x1ZGluZ01hcmdpbigpIGNvbnN0OwogICAgIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGlj
c0xheWVyPiBjcmVhdGVHcmFwaGljc0xheWVyKGNvbnN0IFN0cmluZyYpOworICAgIHN0ZDo6dW5p
cXVlX3B0cjxHcmFwaGljc0xheWVyPiBjcmVhdGVHcmFwaGljc0xheWVyKGNvbnN0IFN0cmluZyYs
IEdyYXBoaWNzTGF5ZXI6OkxheWVyVHlwZSA9IEdyYXBoaWNzTGF5ZXI6OkxheWVyVHlwZTo6Tm9y
bWFsKTsKIAogICAgIFJlbmRlckxheWVyTW9kZWxPYmplY3QmIHJlbmRlcmVyKCkgY29uc3QgeyBy
ZXR1cm4gbV9vd25pbmdMYXllci5yZW5kZXJlcigpOyB9CiAgICAgUmVuZGVyTGF5ZXJDb21wb3Np
dG9yJiBjb21wb3NpdG9yKCkgY29uc3QgeyByZXR1cm4gbV9vd25pbmdMYXllci5jb21wb3NpdG9y
KCk7IH0KQEAgLTM2NSw4ICszNjQsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9jYW5Db21wb3Np
dGVCYWNrZHJvcEZpbHRlcnM7CiAjZW5kaWYKICAgICBib29sIG1fYmFja2dyb3VuZExheWVyUGFp
bnRzRml4ZWRSb290QmFja2dyb3VuZDsKLQotICAgIHN0YXRpYyBib29sIG1fY3JlYXRpbmdQcmlt
YXJ5R3JhcGhpY3NMYXllcjsKIH07CiAKIGVudW0gQ2FudmFzQ29tcG9zaXRpbmdTdHJhdGVneSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyQmFja2lu
Z1N0b3JlLm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllckJhY2tpbmdT
dG9yZS5tbQppbmRleCAwYzIzMmMyODNmN2JkYmE4MzMwZjIyZWMzZWYxM2UzMzcwOTRmMDZmLi5h
ZjZlYzU5ZDMwY2E4OWZiNDNhYTk1YmU2ZWIxNzRiNzg3YjFiMDlhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW0KQEAgLTM0
Miw2ICszNDIsNyBAQCB2b2lkIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpkcmF3SW5Db250ZXh0
KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgQ0dJbWFnZVJlZgogICAgIGNhc2UgUGxhdGZvcm1D
QUxheWVyOjpMYXllclR5cGVXZWJHTExheWVyOgogICAgIGNhc2UgUGxhdGZvcm1DQUxheWVyOjpM
YXllclR5cGVCYWNrZHJvcExheWVyOgogICAgIGNhc2UgUGxhdGZvcm1DQUxheWVyOjpMYXllclR5
cGVTaGFwZUxheWVyOgorICAgIGNhc2UgUGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGVTY3JvbGxp
bmdMYXllcjoKICAgICBjYXNlIFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlQ3VzdG9tOgogICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmggYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmgKaW5k
ZXggNGI1MTYwOWFhMDkwY2Q0MzhkNTQ5MTRmMmNhMzg2MTJhNDNkMDZjMi4uYjA0NTk2M2ViYTA3
ODg0MDUyZjcyNzEyOTM4NTljNWIzZjdlYzFlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24uaApAQCAtODIsOCArODIs
NyBAQCBwdWJsaWM6CiAgICAgICAgIEZpbHRlcnNDaGFuZ2VkICAgICAgICAgICAgICAgICAgPSAx
TExVIDw8IDI5LAogICAgICAgICBBbmltYXRpb25zQ2hhbmdlZCAgICAgICAgICAgICAgID0gMUxM
VSA8PCAzMCwKICAgICAgICAgRWRnZUFudGlhbGlhc2luZ01hc2tDaGFuZ2VkICAgICA9IDFMTFUg
PDwgMzEsCi0gICAgICAgIEN1c3RvbUFwcGVhcmFuY2VDaGFuZ2VkICAgICAgICAgPSAxTExVIDw8
IDMyLAotICAgICAgICBDdXN0b21CZWhhdmlvckNoYW5nZWQgICAgICAgICAgID0gMUxMVSA8PCAz
MworICAgICAgICBDdXN0b21BcHBlYXJhbmNlQ2hhbmdlZCAgICAgICAgID0gMUxMVSA8PCAzMgog
ICAgIH07CiAgICAgdHlwZWRlZiB1aW50NjRfdCBMYXllckNoYW5nZTsKIApAQCAtMTQ5LDcgKzE0
OCw2IEBAIHB1YmxpYzoKICAgICAgICAgV2ViQ29yZTo6Q29sb3IgYm9yZGVyQ29sb3I7CiAgICAg
ICAgIHVuc2lnbmVkIGVkZ2VBbnRpYWxpYXNpbmdNYXNrOwogICAgICAgICBXZWJDb3JlOjpHcmFw
aGljc0xheWVyOjpDdXN0b21BcHBlYXJhbmNlIGN1c3RvbUFwcGVhcmFuY2U7Ci0gICAgICAgIFdl
YkNvcmU6OkdyYXBoaWNzTGF5ZXI6OkN1c3RvbUJlaGF2aW9yIGN1c3RvbUJlaGF2aW9yOwogICAg
ICAgICBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXI6OkZpbHRlclR5cGUgbWluaWZpY2F0aW9uRmls
dGVyOwogICAgICAgICBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXI6OkZpbHRlclR5cGUgbWFnbmlm
aWNhdGlvbkZpbHRlcjsKICAgICAgICAgV2ViQ29yZTo6QmxlbmRNb2RlIGJsZW5kTW9kZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlVHJhbnNh
Y3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5z
YWN0aW9uLm1tCmluZGV4IDlkNTc1OTIzOTViNWQ4MTljNWI2MGRhMGFmNDViYmRjNjUxMmYzNjAu
Ljg5NjhlOWNkNjQwN2FkOGE0YmE4YTc0NDk3MzhjZWEwMzRkODk4OGYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24ubW0KKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5t
bQpAQCAtOTMsNyArOTMsNiBAQCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJQcm9w
ZXJ0aWVzOjpMYXllclByb3BlcnRpZXMoKQogICAgICwgYm9yZGVyQ29sb3IoQ29sb3I6OmJsYWNr
KQogICAgICwgZWRnZUFudGlhbGlhc2luZ01hc2soa0NBTGF5ZXJMZWZ0RWRnZSB8IGtDQUxheWVy
UmlnaHRFZGdlIHwga0NBTGF5ZXJCb3R0b21FZGdlIHwga0NBTGF5ZXJUb3BFZGdlKQogICAgICwg
Y3VzdG9tQXBwZWFyYW5jZShHcmFwaGljc0xheWVyOjpOb0N1c3RvbUFwcGVhcmFuY2UpCi0gICAg
LCBjdXN0b21CZWhhdmlvcihHcmFwaGljc0xheWVyOjpOb0N1c3RvbUJlaGF2aW9yKQogICAgICwg
bWluaWZpY2F0aW9uRmlsdGVyKFBsYXRmb3JtQ0FMYXllcjo6RmlsdGVyVHlwZTo6TGluZWFyKQog
ICAgICwgbWFnbmlmaWNhdGlvbkZpbHRlcihQbGF0Zm9ybUNBTGF5ZXI6OkZpbHRlclR5cGU6Okxp
bmVhcikKICAgICAsIGJsZW5kTW9kZShCbGVuZE1vZGVOb3JtYWwpCkBAIC0xMjgsNyArMTI3LDYg
QEAgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyUHJvcGVydGllczo6TGF5ZXJQcm9w
ZXJ0aWVzKGNvbnN0IExheWVyUHJvcGVydGkKICAgICAsIGJvcmRlckNvbG9yKG90aGVyLmJvcmRl
ckNvbG9yKQogICAgICwgZWRnZUFudGlhbGlhc2luZ01hc2sob3RoZXIuZWRnZUFudGlhbGlhc2lu
Z01hc2spCiAgICAgLCBjdXN0b21BcHBlYXJhbmNlKG90aGVyLmN1c3RvbUFwcGVhcmFuY2UpCi0g
ICAgLCBjdXN0b21CZWhhdmlvcihvdGhlci5jdXN0b21CZWhhdmlvcikKICAgICAsIG1pbmlmaWNh
dGlvbkZpbHRlcihvdGhlci5taW5pZmljYXRpb25GaWx0ZXIpCiAgICAgLCBtYWduaWZpY2F0aW9u
RmlsdGVyKG90aGVyLm1hZ25pZmljYXRpb25GaWx0ZXIpCiAgICAgLCBibGVuZE1vZGUob3RoZXIu
YmxlbmRNb2RlKQpAQCAtMjU2LDkgKzI1NCw2IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlVHJhbnNh
Y3Rpb246OkxheWVyUHJvcGVydGllczo6ZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJiBlCiAK
ICAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMgJiBDdXN0b21BcHBlYXJhbmNlQ2hhbmdlZCkKICAg
ICAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKGN1c3RvbUFwcGVhcmFuY2UpOwotCi0gICAgaWYgKGNo
YW5nZWRQcm9wZXJ0aWVzICYgQ3VzdG9tQmVoYXZpb3JDaGFuZ2VkKQotICAgICAgICBlbmNvZGVy
LmVuY29kZUVudW0oY3VzdG9tQmVoYXZpb3IpOwogfQogCiBib29sIFJlbW90ZUxheWVyVHJlZVRy
YW5zYWN0aW9uOjpMYXllclByb3BlcnRpZXM6OmRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYg
ZGVjb2RlciwgTGF5ZXJQcm9wZXJ0aWVzJiByZXN1bHQpCkBAIC00NTQsMTEgKzQ0OSw2IEBAIGJv
b2wgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyUHJvcGVydGllczo6ZGVjb2RlKElQ
Qzo6QXJndW1lbnREZWNvZGVyJiBkCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQog
Ci0gICAgaWYgKHJlc3VsdC5jaGFuZ2VkUHJvcGVydGllcyAmIEN1c3RvbUJlaGF2aW9yQ2hhbmdl
ZCkgewotICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51bShyZXN1bHQuY3VzdG9tQmVoYXZp
b3IpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQogICAgIHJldHVybiB0cnVl
OwogfQogCkBAIC0xMTg1LDkgKzExNzUsNiBAQCBzdGF0aWMgdm9pZCBkdW1wQ2hhbmdlZExheWVy
cyhSZW1vdGVMYXllclRyZWVUZXh0U3RyZWFtJiB0cywgY29uc3QgUmVtb3RlTGF5ZXJUcgogICAg
ICAgICBpZiAobGF5ZXJQcm9wZXJ0aWVzLmNoYW5nZWRQcm9wZXJ0aWVzICYgUmVtb3RlTGF5ZXJU
cmVlVHJhbnNhY3Rpb246OkN1c3RvbUFwcGVhcmFuY2VDaGFuZ2VkKQogICAgICAgICAgICAgZHVt
cFByb3BlcnR5KHRzLCAiY3VzdG9tQXBwZWFyYW5jZSIsIGxheWVyUHJvcGVydGllcy5jdXN0b21B
cHBlYXJhbmNlKTsKIAotICAgICAgICBpZiAobGF5ZXJQcm9wZXJ0aWVzLmNoYW5nZWRQcm9wZXJ0
aWVzICYgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkN1c3RvbUJlaGF2aW9yQ2hhbmdlZCkK
LSAgICAgICAgICAgIGR1bXBQcm9wZXJ0eSh0cywgImN1c3RvbUJlaGF2aW9yIiwgbGF5ZXJQcm9w
ZXJ0aWVzLmN1c3RvbUJlaGF2aW9yKTsKLQogICAgICAgICB0cyA8PCAiKSI7CiAKICAgICAgICAg
dHMuZGVjcmVhc2VJbmRlbnQoKTsKQEAgLTEyNTUsNiArMTI0Miw5IEBAIENTdHJpbmcgUmVtb3Rl
TGF5ZXJUcmVlVHJhbnNhY3Rpb246OmRlc2NyaXB0aW9uKCkgY29uc3QKICAgICAgICAgICAgIGNh
c2UgUGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGVTaGFwZUxheWVyOgogICAgICAgICAgICAgICAg
IHRzIDw8ICJzaGFwZS1sYXllciI7CiAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICBjYXNlIFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlU2Nyb2xsaW5nTGF5ZXI6CisgICAgICAg
ICAgICAgICAgdHMgPDwgInNjcm9sbGluZy1sYXllciI7CisgICAgICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgICAgICBjYXNlIFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlQ3VzdG9tOgogICAg
ICAgICAgICAgICAgIHRzIDw8ICJjdXN0b20tbGF5ZXIgKGNvbnRleHQtaWQgIiA8PCBjcmVhdGVk
TGF5ZXIuaG9zdGluZ0NvbnRleHRJRCA8PCAiKSI7CiAgICAgICAgICAgICAgICAgYnJlYWs7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1JlbW90ZUxheWVyVHJlZUhv
c3RJT1MubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1JlbW90ZUxheWVyVHJlZUhv
c3RJT1MubW0KaW5kZXggOGUyMmY3YzNkZDM4YWExZmYyYmY0ZjhjZTY3Y2QyNzk3ZGJiZDQ1OC4u
MjdmMzdjYmU0ZGQ3MTBiNDlmN2I1OGY3NWZlYTc3ZjM3MjQzMTIzNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9SZW1vdGVMYXllclRyZWVIb3N0SU9TLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUmVtb3RlTGF5ZXJUcmVlSG9zdElPUy5tbQpA
QCAtMTczLDEzICsxNzMsNyBAQCBMYXllck9yVmlldyAqUmVtb3RlTGF5ZXJUcmVlSG9zdDo6Y3Jl
YXRlTGF5ZXIoY29uc3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OgogICAgIGNhc2UgUGxh
dGZvcm1DQUxheWVyOjpMYXllclR5cGVUaWxlZEJhY2tpbmdMYXllcjoKICAgICBjYXNlIFBsYXRm
b3JtQ0FMYXllcjo6TGF5ZXJUeXBlUGFnZVRpbGVkQmFja2luZ0xheWVyOgogICAgIGNhc2UgUGxh
dGZvcm1DQUxheWVyOjpMYXllclR5cGVUaWxlZEJhY2tpbmdUaWxlTGF5ZXI6Ci0gICAgICAgIGlm
IChsYXllclByb3BlcnRpZXMgJiYgbGF5ZXJQcm9wZXJ0aWVzLT5jdXN0b21CZWhhdmlvciA9PSBH
cmFwaGljc0xheWVyOjpDdXN0b21TY3JvbGxpbmdCZWhhdmlvcikgewotICAgICAgICAgICAgaWYg
KCFtX2lzRGVidWdMYXllclRyZWVIb3N0KQotICAgICAgICAgICAgICAgIHZpZXcgPSBhZG9wdE5T
KFtbVUlTY3JvbGxWaWV3IGFsbG9jXSBpbml0XSk7Ci0gICAgICAgICAgICBlbHNlIC8vIFRoZSBk
ZWJ1ZyBpbmRpY2F0b3IgcGFyZW50cyB2aWV3cyB1bmRlciBsYXllcnMsIHdoaWNoIGNhbiBjYXVz
ZSBjcmFzaGVzIHdpdGggVUlTY3JvbGxWaWV3LgotICAgICAgICAgICAgICAgIHZpZXcgPSBhZG9w
dE5TKFtbVUlWaWV3IGFsbG9jXSBpbml0XSk7Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAg
dmlldyA9IGFkb3B0TlMoW1tXS0NvbXBvc2l0aW5nVmlldyBhbGxvY10gaW5pdF0pOworICAgICAg
ICB2aWV3ID0gYWRvcHROUyhbW1dLQ29tcG9zaXRpbmdWaWV3IGFsbG9jXSBpbml0XSk7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgUGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGVCYWNrZHJvcExh
eWVyOgogICAgICAgICB2aWV3ID0gYWRvcHROUyhbW1dLQmFja2Ryb3BWaWV3IGFsbG9jXSBpbml0
XSk7CkBAIC0xOTgsNiArMTkyLDEyIEBAIExheWVyT3JWaWV3ICpSZW1vdGVMYXllclRyZWVIb3N0
OjpjcmVhdGVMYXllcihjb25zdCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6CiAgICAgY2Fz
ZSBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZVNoYXBlTGF5ZXI6CiAgICAgICAgIHZpZXcgPSBh
ZG9wdE5TKFtbV0tTaGFwZVZpZXcgYWxsb2NdIGluaXRdKTsKICAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZVNjcm9sbGluZ0xheWVyOgorICAgICAgICBp
ZiAoIW1faXNEZWJ1Z0xheWVyVHJlZUhvc3QpCisgICAgICAgICAgICB2aWV3ID0gYWRvcHROUyhb
W1VJU2Nyb2xsVmlldyBhbGxvY10gaW5pdF0pOworICAgICAgICBlbHNlIC8vIFRoZSBkZWJ1ZyBp
bmRpY2F0b3IgcGFyZW50cyB2aWV3cyB1bmRlciBsYXllcnMsIHdoaWNoIGNhbiBjYXVzZSBjcmFz
aGVzIHdpdGggVUlTY3JvbGxWaWV3LgorICAgICAgICAgICAgdmlldyA9IGFkb3B0TlMoW1tVSVZp
ZXcgYWxsb2NdIGluaXRdKTsKKyAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVIb3N0Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVIb3N0Lm1tCmluZGV4IDI4NmE2NzU2MzlkNjMwMzAx
NDI4MTBhNjM2NGVkMTE4MTUxMzFmYjEuLjE2Y2QyN2U4Yzc2NDY5MDFhMTYxMjZjNTdlNWY3YmJm
ZjIyZjhkYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3Rl
TGF5ZXJUcmVlSG9zdC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90
ZUxheWVyVHJlZUhvc3QubW0KQEAgLTIyMiw2ICsyMjIsNyBAQCBMYXllck9yVmlldyAqUmVtb3Rl
TGF5ZXJUcmVlSG9zdDo6Y3JlYXRlTGF5ZXIoY29uc3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rp
b246OgogICAgIGNhc2UgUGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGVUaWxlZEJhY2tpbmdMYXll
cjoKICAgICBjYXNlIFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlUGFnZVRpbGVkQmFja2luZ0xh
eWVyOgogICAgIGNhc2UgUGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGVUaWxlZEJhY2tpbmdUaWxl
TGF5ZXI6CisgICAgY2FzZSBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZVNjcm9sbGluZ0xheWVy
OgogICAgICAgICBsYXllciA9IGFkb3B0TlMoW1tDQUxheWVyIGFsbG9jXSBpbml0XSk7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgUGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGVUcmFuc2Zvcm1M
YXllcjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMv
R3JhcGhpY3NMYXllckNBUmVtb3RlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL0dyYXBoaWNzTGF5ZXJDQVJlbW90ZS5oCmluZGV4IDMyZTZiZDFmMDM0YmViYTI3Zjk1
OWI5OWI1MGRhMzMwMmZlYzkwNGUuLjI4NWUwY2U0MzE0ZmQzMWI0YWQ2ZGE5YTc5YTAzYzVmZTgz
OTZkY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMv
R3JhcGhpY3NMYXllckNBUmVtb3RlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL21hYy9HcmFwaGljc0xheWVyQ0FSZW1vdGUuaApAQCAtMzUsOCArMzUsOCBAQCBjbGFz
cyBSZW1vdGVMYXllclRyZWVDb250ZXh0OwogCiBjbGFzcyBHcmFwaGljc0xheWVyQ0FSZW1vdGUg
ZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBIHsKIHB1YmxpYzoKLSAgICBH
cmFwaGljc0xheWVyQ0FSZW1vdGUoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNsaWVudCYgY2xpZW50
LCBSZW1vdGVMYXllclRyZWVDb250ZXh0JiBjb250ZXh0KQotICAgICAgICA6IEdyYXBoaWNzTGF5
ZXJDQShjbGllbnQpCisgICAgR3JhcGhpY3NMYXllckNBUmVtb3RlKFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXJDbGllbnQmIGNsaWVudCwgTGF5ZXJUeXBlIGxheWVyVHlwZSwgUmVtb3RlTGF5ZXJUcmVl
Q29udGV4dCYgY29udGV4dCkKKyAgICAgICAgOiBHcmFwaGljc0xheWVyQ0EobGF5ZXJUeXBlLCBj
bGllbnQpCiAgICAgICAgICwgbV9jb250ZXh0KGNvbnRleHQpCiAgICAgewogICAgIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxh
eWVyUmVtb3RlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxh
dGZvcm1DQUxheWVyUmVtb3RlLmNwcAppbmRleCAxOGIwNGFiOTRkMTE0MzhhYzBiZjczMzJjNWMz
N2M4MDdjYmE5OGM3Li44YjBkYTNhMjZjZTlhYmNlYzNmZTAzZjY3Yzc1ZjBmYjIwNjI0YjMwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3Jt
Q0FMYXllclJlbW90ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuY3BwCkBAIC03MjQsMTcgKzcyNCw2IEBAIHZvaWQg
UGxhdGZvcm1DQUxheWVyUmVtb3RlOjp1cGRhdGVDdXN0b21BcHBlYXJhbmNlKEdyYXBoaWNzTGF5
ZXI6OkN1c3RvbUFwcGVhcmFuCiAgICAgbV9wcm9wZXJ0aWVzLm5vdGVQcm9wZXJ0aWVzQ2hhbmdl
ZChSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6Q3VzdG9tQXBwZWFyYW5jZUNoYW5nZWQpOwog
fQogCi1HcmFwaGljc0xheWVyOjpDdXN0b21CZWhhdmlvciBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6
OmN1c3RvbUJlaGF2aW9yKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9wcm9wZXJ0aWVzLmN1c3Rv
bUJlaGF2aW9yOwotfQotCi12b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6dXBkYXRlQ3VzdG9t
QmVoYXZpb3IoR3JhcGhpY3NMYXllcjo6Q3VzdG9tQmVoYXZpb3IgY3VzdG9tQmVoYXZpb3IpCi17
Ci0gICAgbV9wcm9wZXJ0aWVzLmN1c3RvbUJlaGF2aW9yID0gY3VzdG9tQmVoYXZpb3I7Ci0gICAg
bV9wcm9wZXJ0aWVzLm5vdGVQcm9wZXJ0aWVzQ2hhbmdlZChSZW1vdGVMYXllclRyZWVUcmFuc2Fj
dGlvbjo6Q3VzdG9tQmVoYXZpb3JDaGFuZ2VkKTsKLX0KLQogUGFzc1JlZlB0cjxQbGF0Zm9ybUNB
TGF5ZXI+IFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6Y3JlYXRlQ29tcGF0aWJsZUxheWVyKFBsYXRm
b3JtQ0FMYXllcjo6TGF5ZXJUeXBlIGxheWVyVHlwZSwgUGxhdGZvcm1DQUxheWVyQ2xpZW50KiBj
bGllbnQpIGNvbnN0CiB7CiAgICAgcmV0dXJuIFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6Y3JlYXRl
KGxheWVyVHlwZSwgY2xpZW50LCAqbV9jb250ZXh0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5o
CmluZGV4IGQ2MGFjMzU0NGFiYzM4ZWViYWJjMjMxOTE1YzI0ZjZlZjkwNmM5MzMuLjRhNTEyYzZm
NGI1ZTZhZTQ1NjA5NjgyYjkxZjUwYTljYWZlNWI2M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmgKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1v
dGUuaApAQCAtMTUwLDkgKzE1MCw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXI6OkN1c3RvbUFwcGVhcmFuY2UgY3VzdG9tQXBwZWFyYW5jZSgpIGNvbnN0IG92
ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVDdXN0b21BcHBlYXJhbmNlKFdlYkNvcmU6
OkdyYXBoaWNzTGF5ZXI6OkN1c3RvbUFwcGVhcmFuY2UpIG92ZXJyaWRlOwogCi0gICAgdmlydHVh
bCBXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpDdXN0b21CZWhhdmlvciBjdXN0b21CZWhhdmlvcigp
IGNvbnN0IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVDdXN0b21CZWhhdmlvcihX
ZWJDb3JlOjpHcmFwaGljc0xheWVyOjpDdXN0b21CZWhhdmlvcikgb3ZlcnJpZGU7Ci0KICAgICB2
aXJ0dWFsIFdlYkNvcmU6OlRpbGVkQmFja2luZyogdGlsZWRCYWNraW5nKCkgb3ZlcnJpZGUgeyBy
ZXR1cm4gbnVsbHB0cjsgfQogCiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OlBsYXRm
b3JtQ0FMYXllcj4gY2xvbmUoV2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyQ2xpZW50KiBvd25lcikg
Y29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5oCmluZGV4IDdlOWQ1Y2Fh
MzdlODkwNDQxOTIwNzQ4ZGE5ZjFhMDMzMTZkY2M4ZTQuLjBlNzdjMzc2ODE4NGVjMmZkYTEwNDFm
OWEyYmM2ZTMwOWE1MTUwZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5oCkBAIC03Myw3
ICs3Myw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICAvLyBXZWJDb3JlOjpHcmFwaGljc0xh
eWVyRmFjdG9yeQotICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXI+IGNyZWF0ZUdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNsaWVudCYp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXI+IGNyZWF0ZUdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6TGF5ZXJU
eXBlLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyQ2xpZW50Jikgb3ZlcnJpZGU7CiAKICAgICBXZWJQ
YWdlJiBtX3dlYlBhZ2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5tbSBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5tbQppbmRleCA3ZDI0
ZTc2MjZhZGFhZjBjMWVmNzA5ZDg4NjQ3ZmQxMDkyNDc5YzY2Li4xZTJlMjM3YzRiODAyNzY2ODcz
ZGE4ZDAwNzM3NDk2YzMzZDM5OTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQubW0KKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVDb250ZXh0Lm1tCkBA
IC05OCw5ICs5OCw5IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlQ29udGV4dDo6YmFja2luZ1N0b3Jl
V2lsbEJlRGlzcGxheWVkKFJlbW90ZUxheWVyQmFja2luZ1N0b3JlCiAgICAgbV9iYWNraW5nU3Rv
cmVDb2xsZWN0aW9uLmJhY2tpbmdTdG9yZVdpbGxCZURpc3BsYXllZChiYWNraW5nU3RvcmUpOwog
fQogCi1zdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gUmVtb3RlTGF5ZXJUcmVlQ29udGV4
dDo6Y3JlYXRlR3JhcGhpY3NMYXllcihHcmFwaGljc0xheWVyQ2xpZW50JiBjbGllbnQpCitzdGQ6
OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gUmVtb3RlTGF5ZXJUcmVlQ29udGV4dDo6Y3JlYXRl
R3JhcGhpY3NMYXllcihXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpMYXllclR5cGUgbGF5ZXJUeXBl
LCBHcmFwaGljc0xheWVyQ2xpZW50JiBjbGllbnQpCiB7Ci0gICAgcmV0dXJuIHN0ZDo6bWFrZV91
bmlxdWU8R3JhcGhpY3NMYXllckNBUmVtb3RlPihjbGllbnQsICp0aGlzKTsKKyAgICByZXR1cm4g
c3RkOjptYWtlX3VuaXF1ZTxHcmFwaGljc0xheWVyQ0FSZW1vdGU+KGNsaWVudCwgbGF5ZXJUeXBl
LCAqdGhpcyk7CiB9CiAKIHZvaWQgUmVtb3RlTGF5ZXJUcmVlQ29udGV4dDo6YnVpbGRUcmFuc2Fj
dGlvbihSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24sIFBsYXRmb3JtQ0FM
YXllciYgcm9vdExheWVyKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>246010</attachid>
            <date>2015-02-03 20:15:42 -0800</date>
            <delta_ts>2015-02-03 22:56:58 -0800</delta_ts>
            <desc>EWS testing</desc>
            <filename>bug-141223-20150203201541.patch</filename>
            <type>text/plain</type>
            <size>51779</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc5NTE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzlkYWY4OWFlNDdmYzdh
MTcwZTY1YmEwZWU2M2ZlYmRmZjEzNzIzMS4uYTE3NDFhMjI3MWNlZTAyZTY1NDEwY2NhNWU5ZGE1
Y2UzYzBkZjEyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY0IEBACisyMDE1LTAyLTAzICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1MgV0syXSBB
c3NlcnQgaW4gU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUzo6dXBkYXRlQWZ0
ZXJDaGlsZHJlbigpIG9uIHRhYiBzd2l0Y2hpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MTIyMworICAgICAgICByZGFyOi8vcHJvYmxlbS8xODQ1
ODk5MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAg
ICAgICAgSXQncyBwb3NzaWJsZSB0byBzdWJtaXQgYSBSZW1vdGVMYXllclRyZWUgdHJhbnNhY3Rp
b24gdGhhdCBjb250YWlucyBkYXRhCisgICAgICAgIGFib3V0IGEgY3JlYXRlZCBsYXllciwgYnV0
IGRvZXNuJ3QgaGF2ZSBhbnkgcHJvcGVydGllcyBmb3IgdGhhdCBsYXllci4gVGhpcworICAgICAg
ICBoYXBwZW5zIHdoZW4gdGhlIG5ld2x5IGNyZWF0ZWQgbGF5ZXIgaXNuJ3QgcmVhY2hlZCBkdXJp
bmcgdGhlIHRyYXZlcnNhbCB0aGF0CisgICAgICAgIGdhdGhlcnMgbGF5ZXIgcHJvcGVydGllcyAo
aS5lLiBpdCdzIG5vdCByb290ZWQpLiBIb3dldmVyLCB3aGV0aGVyIHdlIGNyZWF0ZQorICAgICAg
ICBhIHNjcm9sbGluZyBsYXllciBvciBub3QgcmVxdWlyZXMgaGF2aW5nIHByb3BlcnRpZXM7IHRo
ZXkgYXJlIG1pc3NpbmcsIHNvIHdlCisgICAgICAgIGNyZWF0ZSBhIG5vcm1hbCBsYXllciwgYnV0
IHRoZW4gdGhlIHNjcm9sbGluZyB0cmVlIGNvbW1pdCBhc3NlcnRzIHRoYXQgd2UKKyAgICAgICAg
c2hvdWxkIGhhdmUgYSBzY3JvbGxpbmcgbGF5ZXIuCisgICAgICAgIAorICAgICAgICBGaXggYnkg
bWFraW5nIHNjcm9sbGluZyBsYXllcnMgaGF2ZSBhIGNvcnJlc3BvbmRpbmcgbGF5ZXIgdHlwZSwg
d2hpY2ggaXMKKyAgICAgICAgc3RvcmVkIGluIGxheWVyIGNyZWF0aW9uIHByb3BlcnRpZXMuIFRo
aXMgcmVxdWlyZWQgZXhwb3NpbmcgbGF5ZXIgdHlwZXMKKyAgICAgICAgdXAgdGhyb3VnaCBHcmFw
aGljc0xheWVyLCBidXQgdGhhdCBhbGxvd3MgZm9yIHNvbWUgbmljZSBjbGVhbnVwOgorICAgICAg
ICAKKyAgICAgICAgMS4gTm8gbmVlZCB0byBoYXZlIHRoZSBob2tleSBzaG91bGRVc2VUaWxlZEJh
Y2tpbmcoKSBHcmFwaGljc0xheWVyQ2xpZW50IGhhY2sKKyAgICAgICAgICAgZm9yIGNyZWF0aW5n
IHRoZSBwYWdlIHRpbGVkIGxheWVyLgorICAgICAgICAyLiBUaGUgbm90aW9uIG9mICJjdXN0b20g
YmVoYXZpb3JzIiBjYW4gYmUgcmVtb3ZlZCBmcm9tIEdyYXBoaWNzTGF5ZXIgZW50aXJlbHkuCisK
KyAgICAgICAgTm90IHRlc3RhYmxlIGJlY2F1c2UgaXQgcmVxdWlyZXMgdGFiIHN3aXRjaGluZy4K
KworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6R3Jh
cGhpY3NMYXllcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5o
OgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6aW5pdGlhbGl6ZSk6CisgICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpzZXRDdXN0b21CZWhhdmlvcik6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpjdXN0b21CZWhhdmlvcik6IERlbGV0ZWQu
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNsaWVudDo6c2hvdWxkVXNlVGlsZWRCYWNraW5n
KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyRmFj
dG9yeS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjpHcmFwaGljc0xheWVyQ0EpOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NMYXllckNBOjppbml0aWFsaXplKToKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXJDQTo6Y29tbWl0TGF5ZXJDaGFuZ2VzQmVmb3JlU3VibGF5ZXJzKToKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6ZW5zdXJlU3RydWN0dXJhbExheWVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6c3dhcEZyb21PclRvVGlsZWRMYXllcik6
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZUN1c3RvbUJlaGF2aW9y
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6c2V0Q3VzdG9t
QmVoYXZpb3IpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBo
aWNzTGF5ZXJDQS5oOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjptb3ZlQW5p
bWF0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OmNvcHlBbmltYXRp
b25zKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBTGF5ZXIuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUxheWVyTWFjLmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5t
bToKKyAgICAgICAgKFBsYXRmb3JtQ0FMYXllck1hYzo6UGxhdGZvcm1DQUxheWVyTWFjKToKKyAg
ICAgICAgKFBsYXRmb3JtQ0FMYXllck1hYzo6Y29tbW9uSW5pdCk6CisgICAgICAgIChQbGF0Zm9y
bUNBTGF5ZXJNYWM6OnVwZGF0ZUN1c3RvbUJlaGF2aW9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyQmFja2luZzo6Y3JlYXRlR3JhcGhpY3NMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMYXllckJhY2tpbmc6OmNyZWF0ZVByaW1hcnlHcmFwaGljc0xheWVyKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlU2Nyb2xsaW5nTGF5ZXJzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6c2hvdWxkVXNlVGlsZWRCYWNraW5n
KTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmg6CisK
IDIwMTUtMDItMDIgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBT
aW1wbGUgbGluZSBsYXlvdXQ6IHVzZSBzdGQ6OnVwcGVyX2JvdW5kIGluIHNwbGl0RnJhZ21lbnRU
b0ZpdExpbmUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDgxZDE3ZjQwYWIyOTRkMGNiMTUyODM1Y2QxMWZhN2U4
MWEyOWU2MGYuLjg0ZGI0NjM4MDE2ZDg1Y2U4ZjNjMzAxNTkzMjA5Yjk3ZDYzMTFmMjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw0OSBAQAorMjAxNS0wMi0wMyAgU2ltb24gRnJhc2VyICA8c2ltb24u
ZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TIFdLMl0gQXNzZXJ0IGluIFNjcm9sbGlu
Z1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVJT1M6OnVwZGF0ZUFmdGVyQ2hpbGRyZW4oKSBvbiB0
YWIgc3dpdGNoaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNDEyMjMKKyAgICAgICAgcmRhcjovL3Byb2JsZW0vMTg0NTg5OTMKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJdCdzIHBvc3NpYmxlIHRvIHN1
Ym1pdCBhIFJlbW90ZUxheWVyVHJlZSB0cmFuc2FjdGlvbiB0aGF0IGNvbnRhaW5zIGRhdGEKKyAg
ICAgICAgYWJvdXQgYSBjcmVhdGVkIGxheWVyLCBidXQgZG9lc24ndCBoYXZlIGFueSBwcm9wZXJ0
aWVzIGZvciB0aGF0IGxheWVyLiBUaGlzCisgICAgICAgIGhhcHBlbnMgd2hlbiB0aGUgbmV3bHkg
Y3JlYXRlZCBsYXllciBpc24ndCByZWFjaGVkIGR1cmluZyB0aGUgdHJhdmVyc2FsIHRoYXQKKyAg
ICAgICAgZ2F0aGVycyBsYXllciBwcm9wZXJ0aWVzIChpLmUuIGl0J3Mgbm90IHJvb3RlZCkuIEhv
d2V2ZXIsIHdoZXRoZXIgd2UgY3JlYXRlCisgICAgICAgIGEgc2Nyb2xsaW5nIGxheWVyIG9yIG5v
dCByZXF1aXJlcyBoYXZpbmcgcHJvcGVydGllczsgdGhleSBhcmUgbWlzc2luZywgc28gd2UKKyAg
ICAgICAgY3JlYXRlIGEgbm9ybWFsIGxheWVyLCBidXQgdGhlbiB0aGUgc2Nyb2xsaW5nIHRyZWUg
Y29tbWl0IGFzc2VydHMgdGhhdCB3ZQorICAgICAgICBzaG91bGQgaGF2ZSBhIHNjcm9sbGluZyBs
YXllci4KKyAgICAgICAgCisgICAgICAgIEZpeCBieSBtYWtpbmcgc2Nyb2xsaW5nIGxheWVycyBo
YXZlIGEgY29ycmVzcG9uZGluZyBsYXllciB0eXBlLCB3aGljaCBpcworICAgICAgICBzdG9yZWQg
aW4gbGF5ZXIgY3JlYXRpb24gcHJvcGVydGllcy4gVGhpcyByZXF1aXJlZCBleHBvc2luZyBsYXll
ciB0eXBlcworICAgICAgICB1cCB0aHJvdWdoIEdyYXBoaWNzTGF5ZXIsIGJ1dCB0aGF0IGFsbG93
cyBmb3Igc29tZSBuaWNlIGNsZWFudXA6CisgICAgICAgIAorICAgICAgICAxLiBObyBuZWVkIHRv
IGhhdmUgdGhlIGhva2V5IHNob3VsZFVzZVRpbGVkQmFja2luZygpIEdyYXBoaWNzTGF5ZXJDbGll
bnQgaGFjaworICAgICAgICAgICBmb3IgY3JlYXRpbmcgdGhlIHBhZ2UgdGlsZWQgbGF5ZXIuCisg
ICAgICAgIDIuIFRoZSBub3Rpb24gb2YgImN1c3RvbSBiZWhhdmlvcnMiIGNhbiBiZSByZW1vdmVk
IGZyb20gR3JhcGhpY3NMYXllciBlbnRpcmVseS4KKworICAgICAgICAqIFNoYXJlZC9tYWMvUmVt
b3RlTGF5ZXJCYWNraW5nU3RvcmUubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyQmFj
a2luZ1N0b3JlOjpkcmF3SW5Db250ZXh0KToKKyAgICAgICAgKiBTaGFyZWQvbWFjL1JlbW90ZUxh
eWVyVHJlZVRyYW5zYWN0aW9uLmg6CisgICAgICAgICogU2hhcmVkL21hYy9SZW1vdGVMYXllclRy
ZWVUcmFuc2FjdGlvbi5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlVHJhbnNh
Y3Rpb246OkxheWVyUHJvcGVydGllczo6TGF5ZXJQcm9wZXJ0aWVzKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyUHJvcGVydGllczo6ZW5jb2RlKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyUHJvcGVy
dGllczo6ZGVjb2RlKToKKyAgICAgICAgKFdlYktpdDo6ZHVtcENoYW5nZWRMYXllcnMpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6ZGVzY3JpcHRpb24pOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUmVtb3RlTGF5ZXJUcmVlSG9zdElPUy5tbToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlSG9zdDo6Y3JlYXRlTGF5ZXIpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlSG9zdC5tbToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlTGF5ZXJUcmVlSG9zdDo6Y3JlYXRlTGF5ZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvR3JhcGhpY3NMYXllckNBUmVtb3RlLmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0
OjpQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OmN1c3RvbUJlaGF2aW9yKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6UGxhdGZvcm1DQUxheWVyUmVtb3RlOjp1cGRhdGVDdXN0b21CZWhhdmlvcik6
IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5
ZXJSZW1vdGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVy
VHJlZUNvbnRleHQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxh
eWVyVHJlZUNvbnRleHQubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZUNvbnRl
eHQ6OmNyZWF0ZUdyYXBoaWNzTGF5ZXIpOgorCiAyMDE1LTAyLTAyICBGaWxpcCBQaXpsbyAgPGZw
aXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgUmV2ZXJ0IGFjY2lkZW50YWwgKGFuZCBzdXBlciBi
YWQpIGNoYW5nZSBpbiByMTc5NDkwLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCAxNWJiNDdlYjY3
ZDk5YjU5MzYyYTliYTQ4N2RlM2Y5ZmRhZjNkODU0Li4yZDZlN2JkYjRjMWE3ZWU3NTYzZGYxMGJm
MWUwYzYxZDMxYWI5NWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
bgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMzExLDEwICszMTEsOSBA
QCBfX1pON1dlYkNvcmUxM0dyYXBoaWNzTGF5ZXIxN3N1c3BlbmRBbmltYXRpb25zRWQKIF9fWk43
V2ViQ29yZTEzR3JhcGhpY3NMYXllcjE4c2V0QmFja2dyb3VuZENvbG9yRVJLTlNfNUNvbG9yRQog
X19aTjdXZWJDb3JlMTNHcmFwaGljc0xheWVyMjBzZXRSZXBsaWNhdGVkQnlMYXllckVQUzBfCiBf
X1pON1dlYkNvcmUxM0dyYXBoaWNzTGF5ZXI1NG5vdGVEZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNo
YW5nZWRJbmNsdWRpbmdEZXNjZW5kYW50c0V2Ci1fX1pON1dlYkNvcmUxM0dyYXBoaWNzTGF5ZXI2
Y3JlYXRlRVBOU18yMEdyYXBoaWNzTGF5ZXJGYWN0b3J5RVJOU18xOUdyYXBoaWNzTGF5ZXJDbGll
bnRFCitfX1pON1dlYkNvcmUxM0dyYXBoaWNzTGF5ZXI2Y3JlYXRlRVBOU18yMEdyYXBoaWNzTGF5
ZXJGYWN0b3J5RVJOU18xOUdyYXBoaWNzTGF5ZXJDbGllbnRFTlMwXzRUeXBlRQogX19aTjdXZWJD
b3JlMTNHcmFwaGljc0xheWVyN3NldFNpemVFUktOU185RmxvYXRTaXplRQogX19aTjdXZWJDb3Jl
MTNHcmFwaGljc0xheWVyOGFkZENoaWxkRVBTMF8KLV9fWk43V2ViQ29yZTEzR3JhcGhpY3NMYXll
ckMyRVJOU18xOUdyYXBoaWNzTGF5ZXJDbGllbnRFCiBfX1pON1dlYkNvcmUxM0dyYXBoaWNzTGF5
ZXJEMkV2CiBfX1pON1dlYkNvcmUxM0hUVFBIZWFkZXJNYXAzc2V0RVJLTjNXVEY2U3RyaW5nRVM0
XwogX19aTjdXZWJDb3JlMTNIVFRQSGVhZGVyTWFwNnJlbW92ZUVOU18xNEhUVFBIZWFkZXJOYW1l
RQpAQCAtNTYyLDcgKzU2MSw3IEBAIF9fWk43V2ViQ29yZTE1R3JhcGhpY3NDb250ZXh0OXNldFNo
YWRvd0VSS05TXzlGbG9hdFNpemVFZlJLTlNfNUNvbG9yRU5TXzEwQ29sb3JTCiBfX1pON1dlYkNv
cmUxNUdyYXBoaWNzQ29udGV4dDl0cmFuc2xhdGVFZmYKIF9fWk43V2ViQ29yZTE1R3JhcGhpY3ND
b250ZXh0QzFFUDlDR0NvbnRleHQKIF9fWk43V2ViQ29yZTE1R3JhcGhpY3NDb250ZXh0RDFFdgot
X19aTjdXZWJDb3JlMTVHcmFwaGljc0xheWVyQ0ExMGluaXRpYWxpemVFdgorX19aTjdXZWJDb3Jl
MTVHcmFwaGljc0xheWVyQ0ExMGluaXRpYWxpemVFTlNfMTNHcmFwaGljc0xheWVyNFR5cGVFCiBf
X1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQTEwc2V0RmlsdGVyc0VSS05TXzE2RmlsdGVyT3Bl
cmF0aW9uc0UKIF9fWk43V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBMTBzZXRPcGFjaXR5RWYKIF9f
Wk43V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBMTFzZXRDaGlsZHJlbkVSS04zV1RGNlZlY3RvcklQ
TlNfMTNHcmFwaGljc0xheWVyRUxtMEVOUzFfMTVDcmFzaE9uT3ZlcmZsb3dFRUUKQEAgLTU5MCw3
ICs1ODksNiBAQCBfX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQTE2cmVtb3ZlRnJvbVBhcmVu
dEV2CiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQTE2cmVzdW1lQW5pbWF0aW9uc0V2CiBf
X1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQTE2c2V0TWFza3NUb0JvdW5kc0ViCiBfX1pON1dl
YkNvcmUxNUdyYXBoaWNzTGF5ZXJDQTE3c2V0Q29udGVudHNPcGFxdWVFYgotX19aTjdXZWJDb3Jl
MTVHcmFwaGljc0xheWVyQ0ExN3NldEN1c3RvbUJlaGF2aW9yRU5TXzEzR3JhcGhpY3NMYXllcjE0
Q3VzdG9tQmVoYXZpb3JFCiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQTE3c3VzcGVuZEFu
aW1hdGlvbnNFZAogX19aTjdXZWJDb3JlMTVHcmFwaGljc0xheWVyQ0ExOHNldEJhY2tkcm9wRmls
dGVyc0VSS05TXzE2RmlsdGVyT3BlcmF0aW9uc0UKIF9fWk43V2ViQ29yZTE1R3JhcGhpY3NMYXll
ckNBMThzZXRCYWNrZ3JvdW5kQ29sb3JFUktOU181Q29sb3JFCkBAIC02MjIsNyArNjIwLDcgQEAg
X19aTjdXZWJDb3JlMTVHcmFwaGljc0xheWVyQ0E0MHBsYXRmb3JtQ0FMYXllclNldE5lZWRzVG9S
ZXZhbGlkYXRlVGlsZXNFdgogX19aTjdXZWJDb3JlMTVHcmFwaGljc0xheWVyQ0E3c2V0TmFtZUVS
S04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBN3NldFNpemVFUktO
U185RmxvYXRTaXplRQogX19aTjdXZWJDb3JlMTVHcmFwaGljc0xheWVyQ0E4YWRkQ2hpbGRFUE5T
XzEzR3JhcGhpY3NMYXllckUKLV9fWk43V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBQzJFUk5TXzE5
R3JhcGhpY3NMYXllckNsaWVudEUKK19fWk43V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBQzJFTlNf
MTNHcmFwaGljc0xheWVyNFR5cGVFUk5TXzE5R3JhcGhpY3NMYXllckNsaWVudEUKIF9fWk43V2Vi
Q29yZTE1R3JhcGhpY3NMYXllckNBRDJFdgogX19aTjdXZWJDb3JlMTVIaXRUZXN0TG9jYXRpb24x
MnJlY3RGb3JQb2ludEVSS05TXzExTGF5b3V0UG9pbnRFampqagogX19aTjdXZWJDb3JlMTVIaXRU
ZXN0TG9jYXRpb25DMUVSS05TXzEwRmxvYXRQb2ludEUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAKaW5kZXggOTc5OWI4NWU5NTk1OTE1
MzEzMmNmNGVjZTFkMjdmZTJjNjEzYTRiMC4uMjlhZTUyMWU2MThjMGI4OTg3M2E0Mzk1NzJlY2Jm
MDMwZTMzMWE5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NMYXllci5jcHAKQEAgLTcxLDcgKzcxLDcgQEAgdm9pZCBLZXlmcmFtZVZhbHVlTGlz
dDo6aW5zZXJ0KHN0ZDo6dW5pcXVlX3B0cjxjb25zdCBBbmltYXRpb25WYWx1ZT4gdmFsdWUpCiAg
ICAgbV92YWx1ZXMuYXBwZW5kKFdURjo6bW92ZSh2YWx1ZSkpOwogfQogCi1HcmFwaGljc0xheWVy
OjpHcmFwaGljc0xheWVyKEdyYXBoaWNzTGF5ZXJDbGllbnQmIGNsaWVudCkKK0dyYXBoaWNzTGF5
ZXI6OkdyYXBoaWNzTGF5ZXIoVHlwZSwgR3JhcGhpY3NMYXllckNsaWVudCYgY2xpZW50KQogICAg
IDogbV9jbGllbnQoY2xpZW50KQogICAgICwgbV9hbmNob3JQb2ludCgwLjVmLCAwLjVmLCAwKQog
ICAgICwgbV9vcGFjaXR5KDEpCkBAIC05OSw3ICs5OSw2IEBAIEdyYXBoaWNzTGF5ZXI6OkdyYXBo
aWNzTGF5ZXIoR3JhcGhpY3NMYXllckNsaWVudCYgY2xpZW50KQogICAgICwgbV9yZXBsaWNhdGVk
TGF5ZXIobnVsbHB0cikKICAgICAsIG1fcmVwYWludENvdW50KDApCiAgICAgLCBtX2N1c3RvbUFw
cGVhcmFuY2UoTm9DdXN0b21BcHBlYXJhbmNlKQotICAgICwgbV9jdXN0b21CZWhhdmlvcihOb0N1
c3RvbUJlaGF2aW9yKQogewogI2lmbmRlZiBOREVCVUcKICAgICBtX2NsaWVudC52ZXJpZnlOb3RQ
YWludGluZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NMYXllci5oCmluZGV4IDY1YWEyMzYwYjc5OWI0NWQzOGJlNmMwYmE5ZjYyMjRhMTZlNDg3NWMu
LmU1OGJmMjQ1Zjc2M2E2Y2I5NTJiZDVjMTlkMTAwZjVhMWY2ZjFiYjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKQEAgLTE5NCwxMSAr
MTk0LDE4IEBAIHByb3RlY3RlZDoKIGNsYXNzIEdyYXBoaWNzTGF5ZXIgewogICAgIFdURl9NQUtF
X05PTkNPUFlBQkxFKEdyYXBoaWNzTGF5ZXIpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1
YmxpYzoKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNz
TGF5ZXI+IGNyZWF0ZShHcmFwaGljc0xheWVyRmFjdG9yeSosIEdyYXBoaWNzTGF5ZXJDbGllbnQm
KTsKKworICAgIGVudW0gY2xhc3MgVHlwZSB7CisgICAgICAgIE5vcm1hbCwKKyAgICAgICAgUGFn
ZVRpbGVkQmFja2luZywKKyAgICAgICAgU2Nyb2xsaW5nCisgICAgfTsKKyAgICAKKyAgICBXRUJD
T1JFX0VYUE9SVCBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IGNyZWF0ZShH
cmFwaGljc0xheWVyRmFjdG9yeSosIEdyYXBoaWNzTGF5ZXJDbGllbnQmLCBUeXBlID0gVHlwZTo6
Tm9ybWFsKTsKICAgICAKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIH5HcmFwaGljc0xheWVy
KCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgaW5pdGlhbGl6ZSgpIHsgfQorICAgIHZpcnR1YWwgdm9p
ZCBpbml0aWFsaXplKFR5cGUpIHsgfQogCiAgICAgdHlwZWRlZiB1aW50NjRfdCBQbGF0Zm9ybUxh
eWVySUQ7CiAgICAgdmlydHVhbCBQbGF0Zm9ybUxheWVySUQgcHJpbWFyeUxheWVySUQoKSBjb25z
dCB7IHJldHVybiAwOyB9CkBAIC00MjksMTAgKzQzNiw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHZvaWQgc2V0Q3VzdG9tQXBwZWFyYW5jZShDdXN0b21BcHBlYXJhbmNlIGN1c3RvbUFwcGVhcmFu
Y2UpIHsgbV9jdXN0b21BcHBlYXJhbmNlID0gY3VzdG9tQXBwZWFyYW5jZTsgfQogICAgIEN1c3Rv
bUFwcGVhcmFuY2UgY3VzdG9tQXBwZWFyYW5jZSgpIGNvbnN0IHsgcmV0dXJuIG1fY3VzdG9tQXBw
ZWFyYW5jZTsgfQogCi0gICAgZW51bSBDdXN0b21CZWhhdmlvciB7IE5vQ3VzdG9tQmVoYXZpb3Is
IEN1c3RvbVNjcm9sbGluZ0JlaGF2aW9yLCBDdXN0b21TY3JvbGxlZENvbnRlbnRzQmVoYXZpb3Ig
fTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q3VzdG9tQmVoYXZpb3IoQ3VzdG9tQmVoYXZpb3IgY3Vz
dG9tQmVoYXZpb3IpIHsgbV9jdXN0b21CZWhhdmlvciA9IGN1c3RvbUJlaGF2aW9yOyB9Ci0gICAg
Q3VzdG9tQmVoYXZpb3IgY3VzdG9tQmVoYXZpb3IoKSBjb25zdCB7IHJldHVybiBtX2N1c3RvbUJl
aGF2aW9yOyB9Ci0KICAgICAvLyB6LXBvc2l0aW9uIGlzIHRoZSB6LWVxdWl2YWxlbnQgb2YgcG9z
aXRpb24oKS4gSXQncyBvbmx5IHVzZWQgZm9yIGRlYnVnZ2luZyBwdXJwb3Nlcy4KICAgICB2aXJ0
dWFsIGZsb2F0IHpQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1felBvc2l0aW9uOyB9CiAgICAg
V0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIHNldFpQb3NpdGlvbihmbG9hdCk7CkBAIC01MDcs
NiArNTEwLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBuZWVkc0NsaXBwaW5nTWFza0xh
eWVyKCkgeyByZXR1cm4gdHJ1ZTsgfTsKIAogcHJvdGVjdGVkOgorICAgIFdFQkNPUkVfRVhQT1JU
IGV4cGxpY2l0IEdyYXBoaWNzTGF5ZXIoVHlwZSwgR3JhcGhpY3NMYXllckNsaWVudCYpOworCiAg
ICAgLy8gU2hvdWxkIGJlIGNhbGxlZCBmcm9tIGRlcml2ZWQgY2xhc3MgZGVzdHJ1Y3RvcnMuIFNo
b3VsZCBjYWxsIHdpbGxCZURlc3Ryb3llZCgpIG9uIHN1cGVyLgogICAgIFdFQkNPUkVfRVhQT1JU
IHZpcnR1YWwgdm9pZCB3aWxsQmVEZXN0cm95ZWQoKTsKIApAQCAtNTM0LDggKzUzOSw2IEBAIHBy
b3RlY3RlZDoKICAgICBHcmFwaGljc0xheWVyKiByZXBsaWNhdGVkTGF5ZXIoKSBjb25zdCB7IHJl
dHVybiBtX3JlcGxpY2F0ZWRMYXllcjsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRSZXBsaWNhdGVk
TGF5ZXIoR3JhcGhpY3NMYXllciogbGF5ZXIpIHsgbV9yZXBsaWNhdGVkTGF5ZXIgPSBsYXllcjsg
fQogCi0gICAgV0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgR3JhcGhpY3NMYXllcihHcmFwaGljc0xh
eWVyQ2xpZW50Jik7Ci0KICAgICB2b2lkIGR1bXBQcm9wZXJ0aWVzKFRleHRTdHJlYW0mLCBpbnQg
aW5kZW50LCBMYXllclRyZWVBc1RleHRCZWhhdmlvcikgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lk
IGR1bXBBZGRpdGlvbmFsUHJvcGVydGllcyhUZXh0U3RyZWFtJiwgaW50IC8qaW5kZW50Ki8sIExh
eWVyVHJlZUFzVGV4dEJlaGF2aW9yKSBjb25zdCB7IH0KIApAQCAtNjAxLDcgKzYwNCw2IEBAIHBy
b3RlY3RlZDoKIAogICAgIGludCBtX3JlcGFpbnRDb3VudDsKICAgICBDdXN0b21BcHBlYXJhbmNl
IG1fY3VzdG9tQXBwZWFyYW5jZTsKLSAgICBDdXN0b21CZWhhdmlvciBtX2N1c3RvbUJlaGF2aW9y
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oCmluZGV4IDZlYzU0ODA5
NTU1M2I3NDc5N2JhMzkzNjg4YjNmMjk0MzUwZDk4Y2UuLjFkY2NjNTcyNDM0NDU1M2Q2ZGI5OTVk
MjkwNzYyMzA3YjVmOWY0Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzTGF5ZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0xheWVyQ2xpZW50LmgKQEAgLTczLDcgKzczLDYgQEAgY2xhc3Mg
R3JhcGhpY3NMYXllckNsaWVudCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+R3JhcGhpY3NMYXll
ckNsaWVudCgpIHt9CiAKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVXNlVGlsZWRCYWNraW5nKGNv
bnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwg
dm9pZCB0aWxlZEJhY2tpbmdVc2FnZUNoYW5nZWQoY29uc3QgR3JhcGhpY3NMYXllciosIGJvb2wg
Lyp1c2luZ1RpbGVkQmFja2luZyovKSB7IH0KICAgICAKICAgICAvLyBDYWxsYmFjayBmb3Igd2hl
biBoYXJkd2FyZS1hY2NlbGVyYXRlZCBhbmltYXRpb24gc3RhcnRlZC4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJGYWN0b3J5LmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyRmFjdG9yeS5oCmlu
ZGV4IDNjMGYzZDE3M2E1MDQxZWU4NDcyNmExM2FiMTI3NmM3YmEwNDdmZTMuLmE3ZjA5ZjRjOTA1
ZTAxZjU1MzgwMmE0ZDRlNjVmMzFhMTM0Yjc1YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJGYWN0b3J5LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckZhY3RvcnkuaApAQCAtMzcsNyAr
MzcsNyBAQCBjbGFzcyBHcmFwaGljc0xheWVyRmFjdG9yeSB7CiBwdWJsaWM6CiAgICAgdmlydHVh
bCB+R3JhcGhpY3NMYXllckZhY3RvcnkoKSB7IH0KIAotICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVf
cHRyPEdyYXBoaWNzTGF5ZXI+IGNyZWF0ZUdyYXBoaWNzTGF5ZXIoR3JhcGhpY3NMYXllckNsaWVu
dCYpID0gMDsKKyAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBjcmVh
dGVHcmFwaGljc0xheWVyKEdyYXBoaWNzTGF5ZXI6OlR5cGUsIEdyYXBoaWNzTGF5ZXJDbGllbnQm
KSA9IDA7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcAppbmRleCBh
MjE0NDNiYTM1ZDZhYWE2NjAwMTY2ZDgxNDY2YTFjODc5MmM3MDJjLi5iNzA5N2NlMTIyOWMwOTU1
NzY2ZWYxMjM1M2U3OGQxZDZmOTRjNDBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKQEAgLTI3NiwxNSArMjc2
LDE1IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzdXBwb3J0c0FjY2VsZXJhdGVkRmlsdGVyQW5pbWF0
aW9ucygpCiAjZW5kaWYKIH0KIAotc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IEdyYXBo
aWNzTGF5ZXI6OmNyZWF0ZShHcmFwaGljc0xheWVyRmFjdG9yeSogZmFjdG9yeSwgR3JhcGhpY3NM
YXllckNsaWVudCYgY2xpZW50KQorc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IEdyYXBo
aWNzTGF5ZXI6OmNyZWF0ZShHcmFwaGljc0xheWVyRmFjdG9yeSogZmFjdG9yeSwgR3JhcGhpY3NM
YXllckNsaWVudCYgY2xpZW50LCBUeXBlIGxheWVyVHlwZSkKIHsKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8R3JhcGhpY3NMYXllcj4gZ3JhcGhpY3NMYXllcjsKICAgICBpZiAoIWZhY3RvcnkpCi0gICAg
ICAgIGdyYXBoaWNzTGF5ZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPEdyYXBoaWNzTGF5ZXJDQT4oY2xp
ZW50KTsKKyAgICAgICAgZ3JhcGhpY3NMYXllciA9IHN0ZDo6bWFrZV91bmlxdWU8R3JhcGhpY3NM
YXllckNBPihsYXllclR5cGUsIGNsaWVudCk7CiAgICAgZWxzZQotICAgICAgICBncmFwaGljc0xh
eWVyID0gZmFjdG9yeS0+Y3JlYXRlR3JhcGhpY3NMYXllcihjbGllbnQpOworICAgICAgICBncmFw
aGljc0xheWVyID0gZmFjdG9yeS0+Y3JlYXRlR3JhcGhpY3NMYXllcihsYXllclR5cGUsIGNsaWVu
dCk7CiAKLSAgICBncmFwaGljc0xheWVyLT5pbml0aWFsaXplKCk7CisgICAgZ3JhcGhpY3NMYXll
ci0+aW5pdGlhbGl6ZShsYXllclR5cGUpOwogCiAgICAgcmV0dXJuIGdyYXBoaWNzTGF5ZXI7CiB9
CkBAIC0zMjUsOCArMzI1LDggQEAgUGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBHcmFw
aGljc0xheWVyQ0E6OmNyZWF0ZVBsYXRmb3JtQ0FBbmltYXRpb24oUGxhdGYKICNlbmRpZgogfQog
Ci1HcmFwaGljc0xheWVyQ0E6OkdyYXBoaWNzTGF5ZXJDQShHcmFwaGljc0xheWVyQ2xpZW50JiBj
bGllbnQpCi0gICAgOiBHcmFwaGljc0xheWVyKGNsaWVudCkKK0dyYXBoaWNzTGF5ZXJDQTo6R3Jh
cGhpY3NMYXllckNBKFR5cGUgbGF5ZXJUeXBlLCBHcmFwaGljc0xheWVyQ2xpZW50JiBjbGllbnQp
CisgICAgOiBHcmFwaGljc0xheWVyKGxheWVyVHlwZSwgY2xpZW50KQogICAgICwgbV9jb250ZW50
c0xheWVyUHVycG9zZShOb0NvbnRlbnRzTGF5ZXIpCiAgICAgLCBtX2lzUGFnZVRpbGVkQmFja2lu
Z0xheWVyKGZhbHNlKQogICAgICwgbV9uZWVkc0Z1bGxSZXBhaW50KGZhbHNlKQpAQCAtMzM1LDE1
ICszMzUsMjQgQEAgR3JhcGhpY3NMYXllckNBOjpHcmFwaGljc0xheWVyQ0EoR3JhcGhpY3NMYXll
ckNsaWVudCYgY2xpZW50KQogewogfQogCi12b2lkIEdyYXBoaWNzTGF5ZXJDQTo6aW5pdGlhbGl6
ZSgpCit2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6aW5pdGlhbGl6ZShUeXBlIGxheWVyVHlwZSkKIHsK
LSAgICBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZSBsYXllclR5cGUgPSBQbGF0Zm9ybUNBTGF5
ZXI6OkxheWVyVHlwZVdlYkxheWVyOwotICAgIGlmIChjbGllbnQoKS5zaG91bGRVc2VUaWxlZEJh
Y2tpbmcodGhpcykpIHsKLSAgICAgICAgbGF5ZXJUeXBlID0gUGxhdGZvcm1DQUxheWVyOjpMYXll
clR5cGVQYWdlVGlsZWRCYWNraW5nTGF5ZXI7CisgICAgaWYgKGxheWVyVHlwZSA9PSBUeXBlOjpQ
YWdlVGlsZWRCYWNraW5nKQogICAgICAgICBtX2lzUGFnZVRpbGVkQmFja2luZ0xheWVyID0gdHJ1
ZTsKLSAgICB9CiAKLSAgICBtX2xheWVyID0gY3JlYXRlUGxhdGZvcm1DQUxheWVyKGxheWVyVHlw
ZSwgdGhpcyk7CisgICAgUGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGUgcGxhdGZvcm1MYXllclR5
cGU7CisgICAgc3dpdGNoIChsYXllclR5cGUpIHsKKyAgICBjYXNlIFR5cGU6Ok5vcm1hbDoKKyAg
ICAgICAgcGxhdGZvcm1MYXllclR5cGUgPSBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZTo6TGF5
ZXJUeXBlV2ViTGF5ZXI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgVHlwZTo6UGFnZVRpbGVk
QmFja2luZzoKKyAgICAgICAgcGxhdGZvcm1MYXllclR5cGUgPSBQbGF0Zm9ybUNBTGF5ZXI6Okxh
eWVyVHlwZTo6TGF5ZXJUeXBlUGFnZVRpbGVkQmFja2luZ0xheWVyOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFR5cGU6OlNjcm9sbGluZzoKKyAgICAgICAgcGxhdGZvcm1MYXllclR5cGUgPSBQ
bGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZTo6TGF5ZXJUeXBlU2Nyb2xsaW5nTGF5ZXI7CisgICAg
ICAgIGJyZWFrOworICAgIH0KKyAgICBtX2xheWVyID0gY3JlYXRlUGxhdGZvcm1DQUxheWVyKHBs
YXRmb3JtTGF5ZXJUeXBlLCB0aGlzKTsKICAgICBub3RlTGF5ZXJQcm9wZXJ0eUNoYW5nZWQoQ29u
dGVudHNTY2FsZUNoYW5nZWQpOwogfQogCkBAIC0xNDA0LDkgKzE0MTMsNiBAQCB2b2lkIEdyYXBo
aWNzTGF5ZXJDQTo6Y29tbWl0TGF5ZXJDaGFuZ2VzQmVmb3JlU3VibGF5ZXJzKENvbW1pdFN0YXRl
JiBjb21taXRTdGF0ZQogICAgIGlmIChtX3VuY29tbWl0dGVkQ2hhbmdlcyAmIEN1c3RvbUFwcGVh
cmFuY2VDaGFuZ2VkKQogICAgICAgICB1cGRhdGVDdXN0b21BcHBlYXJhbmNlKCk7CiAKLSAgICBp
ZiAobV91bmNvbW1pdHRlZENoYW5nZXMgJiBDdXN0b21CZWhhdmlvckNoYW5nZWQpCi0gICAgICAg
IHVwZGF0ZUN1c3RvbUJlaGF2aW9yKCk7Ci0KICAgICBpZiAobV91bmNvbW1pdHRlZENoYW5nZXMg
JiBDaGlsZHJlbkNoYW5nZWQpIHsKICAgICAgICAgdXBkYXRlU3VibGF5ZXJMaXN0KCk7CiAgICAg
ICAgIC8vIFN1YmxheWVycyBtYXkgc2V0IHRoaXMgZmxhZyBhZ2Fpbiwgc28gY2xlYXIgaXQgdG8g
YXZvaWQgYWx3YXlzIHVwZGF0aW5nIHN1YmxheWVycyBpbiBjb21taXRMYXllckNoYW5nZXNBZnRl
clN1YmxheWVycygpLgpAQCAtMTc1MSw3ICsxNzU3LDcgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6
OmVuc3VyZVN0cnVjdHVyYWxMYXllcihTdHJ1Y3R1cmFsTGF5ZXJQdXJwb3NlIHB1cnBvc2UpCiAg
ICAgICAgICAgICBBU1NFUlQobV9zdHJ1Y3R1cmFsTGF5ZXItPnN1cGVybGF5ZXIoKSk7CiAgICAg
ICAgICAgICBtX3N0cnVjdHVyYWxMYXllci0+c3VwZXJsYXllcigpLT5yZXBsYWNlU3VibGF5ZXIo
Km1fc3RydWN0dXJhbExheWVyLCAqbV9sYXllcik7CiAKLSAgICAgICAgICAgIG1vdmVPckNvcHlB
bmltYXRpb25zKE1vdmUsIG1fc3RydWN0dXJhbExheWVyLmdldCgpLCBtX2xheWVyLmdldCgpKTsK
KyAgICAgICAgICAgIG1vdmVBbmltYXRpb25zKG1fc3RydWN0dXJhbExheWVyLmdldCgpLCBtX2xh
eWVyLmdldCgpKTsKIAogICAgICAgICAgICAgLy8gUmVsZWFzZSB0aGUgc3RydWN0dXJhbCBsYXll
ci4KICAgICAgICAgICAgIG1fc3RydWN0dXJhbExheWVyID0gbnVsbHB0cjsKQEAgLTE4MDgsNyAr
MTgxNCw3IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjplbnN1cmVTdHJ1Y3R1cmFsTGF5ZXIoU3Ry
dWN0dXJhbExheWVyUHVycG9zZSBwdXJwb3NlKQogICAgICAgICB9CiAgICAgfQogCi0gICAgbW92
ZU9yQ29weUFuaW1hdGlvbnMoTW92ZSwgbV9sYXllci5nZXQoKSwgbV9zdHJ1Y3R1cmFsTGF5ZXIu
Z2V0KCkpOworICAgIG1vdmVBbmltYXRpb25zKG1fbGF5ZXIuZ2V0KCksIG1fc3RydWN0dXJhbExh
eWVyLmdldCgpKTsKIH0KIAogR3JhcGhpY3NMYXllckNBOjpTdHJ1Y3R1cmFsTGF5ZXJQdXJwb3Nl
IEdyYXBoaWNzTGF5ZXJDQTo6c3RydWN0dXJhbExheWVyUHVycG9zZSgpIGNvbnN0CkBAIC0zMDAx
LDExICszMDA3LDYgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZUN1c3RvbUFwcGVhcmFu
Y2UoKQogICAgIG1fbGF5ZXItPnVwZGF0ZUN1c3RvbUFwcGVhcmFuY2UobV9jdXN0b21BcHBlYXJh
bmNlKTsKIH0KIAotdm9pZCBHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZUN1c3RvbUJlaGF2aW9yKCkK
LXsKLSAgICBtX2xheWVyLT51cGRhdGVDdXN0b21CZWhhdmlvcihtX2N1c3RvbUJlaGF2aW9yKTsK
LX0KLQogdm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldFNob3dEZWJ1Z0JvcmRlcihib29sIHNob3dC
b3JkZXIpCiB7CiAgICAgaWYgKHNob3dCb3JkZXIgPT0gbV9zaG93RGVidWdCb3JkZXIpCkBAIC0z
MTEwLDE1ICszMTExLDYgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldEN1c3RvbUFwcGVhcmFu
Y2UoQ3VzdG9tQXBwZWFyYW5jZSBjdXN0b21BcHBlYXJhbmNlKQogICAgIG5vdGVMYXllclByb3Bl
cnR5Q2hhbmdlZChDdXN0b21BcHBlYXJhbmNlQ2hhbmdlZCk7CiB9CiAKLXZvaWQgR3JhcGhpY3NM
YXllckNBOjpzZXRDdXN0b21CZWhhdmlvcihDdXN0b21CZWhhdmlvciBjdXN0b21CZWhhdmlvcikK
LXsKLSAgICBpZiAoY3VzdG9tQmVoYXZpb3IgPT0gbV9jdXN0b21CZWhhdmlvcikKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgR3JhcGhpY3NMYXllcjo6c2V0Q3VzdG9tQmVoYXZpb3IoY3VzdG9tQmVo
YXZpb3IpOwotICAgIG5vdGVMYXllclByb3BlcnR5Q2hhbmdlZChDdXN0b21CZWhhdmlvckNoYW5n
ZWQpOwotfQotCiBib29sIEdyYXBoaWNzTGF5ZXJDQTo6cmVxdWlyZXNUaWxlZExheWVyKGZsb2F0
IHBhZ2VTY2FsZUZhY3RvcikgY29uc3QKIHsKICAgICBpZiAoIW1fZHJhd3NDb250ZW50IHx8IG1f
aXNQYWdlVGlsZWRCYWNraW5nTGF5ZXIpCkBAIC0zMTg5LDcgKzMxODEsNyBAQCB2b2lkIEdyYXBo
aWNzTGF5ZXJDQTo6c3dhcEZyb21PclRvVGlsZWRMYXllcihib29sIHVzZVRpbGVkTGF5ZXIpCiAj
ZW5kaWYKIAogICAgIC8vIG1vdmUgb3ZlciBhbmltYXRpb25zCi0gICAgbW92ZU9yQ29weUFuaW1h
dGlvbnMoTW92ZSwgb2xkTGF5ZXIuZ2V0KCksIG1fbGF5ZXIuZ2V0KCkpOworICAgIG1vdmVBbmlt
YXRpb25zKG9sZExheWVyLmdldCgpLCBtX2xheWVyLmdldCgpKTsKICAgICAKICAgICAvLyBuZWVk
IHRvIHRlbGwgbmV3IGxheWVyIHRvIGRyYXcgaXRzZWxmCiAgICAgc2V0TmVlZHNEaXNwbGF5KCk7
CkBAIC0zNDI2LDcgKzM0MTgsNyBAQCBQYXNzUmVmUHRyPFBsYXRmb3JtQ0FMYXllcj4gR3JhcGhp
Y3NMYXllckNBOjpjbG9uZUxheWVyKFBsYXRmb3JtQ0FMYXllciAqbGF5ZXIsCiAKICAgICBpZiAo
Y2xvbmVMZXZlbCA9PSBJbnRlcm1lZGlhdGVDbG9uZUxldmVsKSB7CiAgICAgICAgIG5ld0xheWVy
LT5zZXRPcGFjaXR5KGxheWVyLT5vcGFjaXR5KCkpOwotICAgICAgICBtb3ZlT3JDb3B5QW5pbWF0
aW9ucyhDb3B5LCBsYXllciwgbmV3TGF5ZXIuZ2V0KCkpOworICAgICAgICBjb3B5QW5pbWF0aW9u
cyhsYXllciwgbmV3TGF5ZXIuZ2V0KCkpOwogICAgIH0KIAogICAgIHNldExheWVyRGVidWdCb3Jk
ZXIoKm5ld0xheWVyLCBjbG9uZUxheWVyRGVidWdCb3JkZXJDb2xvcihpc1Nob3dpbmdEZWJ1Z0Jv
cmRlcigpKSwgY2xvbmVMYXllckJvcmRlcldpZHRoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmgKaW5kZXggYTdkZjY1N2I4
M2Q4OTM3Y2YyYmZjZTBiZDY2NGQzNWZiY2IyMTc2MS4uNDgwMTE0YzM2YjAyODBhNGZjNTU3Zjg5
YjE5OTMwMjVhZmMwNTRlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmgKQEAgLTU2LDEwICs1NiwxMCBAQCBwdWJsaWM6
CiAgICAgLy8gdG8ga2VlcCB0aGUgb3ZlcmFsbCB0aWxlIGNvc3QgbG93LgogICAgIHN0YXRpYyBj
b25zdCBpbnQga1RpbGVkTGF5ZXJUaWxlU2l6ZSA9IDUxMjsKIAotICAgIFdFQkNPUkVfRVhQT1JU
IGV4cGxpY2l0IEdyYXBoaWNzTGF5ZXJDQShHcmFwaGljc0xheWVyQ2xpZW50Jik7CisgICAgV0VC
Q09SRV9FWFBPUlQgZXhwbGljaXQgR3JhcGhpY3NMYXllckNBKFR5cGUsIEdyYXBoaWNzTGF5ZXJD
bGllbnQmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIH5HcmFwaGljc0xheWVyQ0EoKTsK
IAotICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBpbml0aWFsaXplKCkgb3ZlcnJpZGU7
CisgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIGluaXRpYWxpemUoVHlwZSkgb3ZlcnJp
ZGU7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgc2V0TmFtZShjb25zdCBTdHJp
bmcmKSBvdmVycmlkZTsKIApAQCAtMTQzLDcgKzE0Myw2IEBAIHB1YmxpYzoKICAgICBXRUJDT1JF
X0VYUE9SVCB2aXJ0dWFsIHZvaWQgc2V0RGVidWdCb3JkZXIoY29uc3QgQ29sb3ImLCBmbG9hdCBi
b3JkZXJXaWR0aCkgb3ZlcnJpZGU7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQg
c2V0Q3VzdG9tQXBwZWFyYW5jZShDdXN0b21BcHBlYXJhbmNlKSBvdmVycmlkZTsKLSAgICBXRUJD
T1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgc2V0Q3VzdG9tQmVoYXZpb3IoQ3VzdG9tQmVoYXZpb3Ip
IG92ZXJyaWRlOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIGRldmljZU9yUGFn
ZVNjYWxlRmFjdG9yQ2hhbmdlZCgpIG92ZXJyaWRlOwogCkBAIC0zODQsNyArMzgzLDYgQEAgcHJp
dmF0ZToKICAgICB2b2lkIHVwZGF0ZVRpbGVzKCk7CiAgICAgdm9pZCB1cGRhdGVDb250ZW50c1Nj
YWxlKGZsb2F0IHBhZ2VTY2FsZUZhY3Rvcik7CiAgICAgdm9pZCB1cGRhdGVDdXN0b21BcHBlYXJh
bmNlKCk7Ci0gICAgdm9pZCB1cGRhdGVDdXN0b21CZWhhdmlvcigpOwogCiAgICAgZW51bSBTdHJ1
Y3R1cmFsTGF5ZXJQdXJwb3NlIHsKICAgICAgICAgTm9TdHJ1Y3R1cmFsTGF5ZXIgPSAwLApAQCAt
NDAxLDggKzM5OSwxNyBAQCBwcml2YXRlOgogCiAgICAgZW51bSBNb3ZlT3JDb3B5IHsgTW92ZSwg
Q29weSB9OwogICAgIHN0YXRpYyB2b2lkIG1vdmVPckNvcHlMYXllckFuaW1hdGlvbihNb3ZlT3JD
b3B5LCBjb25zdCBTdHJpbmcmIGFuaW1hdGlvbklkZW50aWZpZXIsIFBsYXRmb3JtQ0FMYXllciAq
ZnJvbUxheWVyLCBQbGF0Zm9ybUNBTGF5ZXIgKnRvTGF5ZXIpOwotICAgIHZvaWQgbW92ZU9yQ29w
eUFuaW1hdGlvbnMoTW92ZU9yQ29weSwgUGxhdGZvcm1DQUxheWVyICogZnJvbUxheWVyLCBQbGF0
Zm9ybUNBTGF5ZXIgKiB0b0xheWVyKTsKLSAgICAKKyAgICB2b2lkIG1vdmVPckNvcHlBbmltYXRp
b25zKE1vdmVPckNvcHksIFBsYXRmb3JtQ0FMYXllciogZnJvbUxheWVyLCBQbGF0Zm9ybUNBTGF5
ZXIqIHRvTGF5ZXIpOworCisgICAgdm9pZCBtb3ZlQW5pbWF0aW9ucyhQbGF0Zm9ybUNBTGF5ZXIq
IGZyb21MYXllciwgUGxhdGZvcm1DQUxheWVyKiB0b0xheWVyKQorICAgIHsKKyAgICAgICAgbW92
ZU9yQ29weUFuaW1hdGlvbnMoTW92ZSwgZnJvbUxheWVyLCB0b0xheWVyKTsKKyAgICB9CisgICAg
dm9pZCBjb3B5QW5pbWF0aW9ucyhQbGF0Zm9ybUNBTGF5ZXIqIGZyb21MYXllciwgUGxhdGZvcm1D
QUxheWVyKiB0b0xheWVyKQorICAgIHsKKyAgICAgICAgbW92ZU9yQ29weUFuaW1hdGlvbnMoQ29w
eSwgZnJvbUxheWVyLCB0b0xheWVyKTsKKyAgICB9CisKICAgICBib29sIGFwcGVuZFRvVW5jb21t
aXR0ZWRBbmltYXRpb25zKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiwgY29uc3QgVHJhbnNmb3Jt
T3BlcmF0aW9ucyosIGNvbnN0IEFuaW1hdGlvbiosIGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uTmFt
ZSwgY29uc3QgRmxvYXRTaXplJiBib3hTaXplLCBpbnQgYW5pbWF0aW9uSW5kZXgsIGRvdWJsZSB0
aW1lT2Zmc2V0LCBib29sIGlzTWF0cml4QW5pbWF0aW9uKTsKICAgICBib29sIGFwcGVuZFRvVW5j
b21taXR0ZWRBbmltYXRpb25zKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiwgY29uc3QgRmlsdGVy
T3BlcmF0aW9uKiwgY29uc3QgQW5pbWF0aW9uKiwgY29uc3QgU3RyaW5nJiBhbmltYXRpb25OYW1l
LCBpbnQgYW5pbWF0aW9uSW5kZXgsIGRvdWJsZSB0aW1lT2Zmc2V0KTsKIApAQCAtNDQwLDggKzQ0
Nyw3IEBAIHByaXZhdGU6CiAgICAgICAgIFRpbGVzQWRkZWQgPSAgICAgICAgICAgICAgICAgICAg
MUxMVSA8PCAzMCwKICAgICAgICAgRGVidWdJbmRpY2F0b3JzQ2hhbmdlZCA9ICAgICAgICAxTExV
IDw8IDMxLAogICAgICAgICBDdXN0b21BcHBlYXJhbmNlQ2hhbmdlZCA9ICAgICAgIDFMTFUgPDwg
MzIsCi0gICAgICAgIEN1c3RvbUJlaGF2aW9yQ2hhbmdlZCA9ICAgICAgICAgMUxMVSA8PCAzMywK
LSAgICAgICAgQmxlbmRNb2RlQ2hhbmdlZCA9ICAgICAgICAgICAgICAxTExVIDw8IDM0LAorICAg
ICAgICBCbGVuZE1vZGVDaGFuZ2VkID0gICAgICAgICAgICAgIDFMTFUgPDwgMzMsCiAgICAgfTsK
ICAgICB0eXBlZGVmIHVpbnQ2NF90IExheWVyQ2hhbmdlRmxhZ3M7CiAgICAgZW51bSBTY2hlZHVs
ZUZsdXNoT3JOb3QgeyBTY2hlZHVsZUZsdXNoLCBEb250U2NoZWR1bGVGbHVzaCB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBTGF5ZXIu
aAppbmRleCA3MWU0YTViZmRjYjJiNDM5MDJhNTQ0MjgwODJjYjc3ZmEyNDhhNzA0Li44ODQ1Yjdj
MDYyNjA1NTEyMGQyNjE2NTE2NmM5NTI0OWIwNDQzNzcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBTGF5ZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBTGF5ZXIuaApAQCAtODAsNiAr
ODAsNyBAQCBwdWJsaWM6CiAgICAgICAgIExheWVyVHlwZVdlYkdMTGF5ZXIsCiAgICAgICAgIExh
eWVyVHlwZUJhY2tkcm9wTGF5ZXIsCiAgICAgICAgIExheWVyVHlwZVNoYXBlTGF5ZXIsCisgICAg
ICAgIExheWVyVHlwZVNjcm9sbGluZ0xheWVyLAogICAgICAgICBMYXllclR5cGVDdXN0b20KICAg
ICB9OwogICAgIGVudW0gRmlsdGVyVHlwZSB7IExpbmVhciwgTmVhcmVzdCwgVHJpbGluZWFyIH07
CkBAIC0yMTMsOSArMjE0LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgR3JhcGhpY3NMYXllcjo6
Q3VzdG9tQXBwZWFyYW5jZSBjdXN0b21BcHBlYXJhbmNlKCkgY29uc3QgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCB1cGRhdGVDdXN0b21BcHBlYXJhbmNlKEdyYXBoaWNzTGF5ZXI6OkN1c3RvbUFwcGVh
cmFuY2UpID0gMDsKIAotICAgIHZpcnR1YWwgR3JhcGhpY3NMYXllcjo6Q3VzdG9tQmVoYXZpb3Ig
Y3VzdG9tQmVoYXZpb3IoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZUN1c3Rv
bUJlaGF2aW9yKEdyYXBoaWNzTGF5ZXI6OkN1c3RvbUJlaGF2aW9yKSA9IDA7Ci0KICAgICB2aXJ0
dWFsIFRpbGVkQmFja2luZyogdGlsZWRCYWNraW5nKCkgPSAwOwogCiAjaWYgUExBVEZPUk0oV0lO
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1Bs
YXRmb3JtQ0FMYXllck1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Ev
bWFjL1BsYXRmb3JtQ0FMYXllck1hYy5oCmluZGV4IGNkMWQ1NmU0MTZiZGIxZjkzMjYyODRlN2Vl
NTY1MGNlOWViOWVjOTEuLjZmYTZkNTdhNjQzZTQ5ZjMzMDZkN2Y5MDU0ZmI2NDMxN2VjNjAzY2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0
Zm9ybUNBTGF5ZXJNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YS9tYWMvUGxhdGZvcm1DQUxheWVyTWFjLmgKQEAgLTE0NSw5ICsxNDUsNiBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCBHcmFwaGljc0xheWVyOjpDdXN0b21BcHBlYXJhbmNlIGN1c3RvbUFwcGVhcmFu
Y2UoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2N1c3RvbUFwcGVhcmFuY2U7IH0KICAgICB2
aXJ0dWFsIHZvaWQgdXBkYXRlQ3VzdG9tQXBwZWFyYW5jZShHcmFwaGljc0xheWVyOjpDdXN0b21B
cHBlYXJhbmNlKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgR3JhcGhpY3NMYXllcjo6Q3VzdG9t
QmVoYXZpb3IgY3VzdG9tQmVoYXZpb3IoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2N1c3Rv
bUJlaGF2aW9yOyB9Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZUN1c3RvbUJlaGF2aW9yKEdyYXBo
aWNzTGF5ZXI6OkN1c3RvbUJlaGF2aW9yKSBvdmVycmlkZTsKLQogICAgIHZpcnR1YWwgVGlsZWRC
YWNraW5nKiB0aWxlZEJhY2tpbmcoKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgUGFzc1JlZlB0
cjxQbGF0Zm9ybUNBTGF5ZXI+IGNsb25lKFBsYXRmb3JtQ0FMYXllckNsaWVudCogb3duZXIpIGNv
bnN0IG92ZXJyaWRlOwpAQCAtMTY5LDcgKzE2Niw2IEBAIHByaXZhdGU6CiAgICAgUmV0YWluUHRy
PE5TT2JqZWN0PiBtX2RlbGVnYXRlOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybUNBTGF5
ZXJMaXN0PiBtX2N1c3RvbVN1YmxheWVyczsKICAgICBHcmFwaGljc0xheWVyOjpDdXN0b21BcHBl
YXJhbmNlIG1fY3VzdG9tQXBwZWFyYW5jZTsKLSAgICBHcmFwaGljc0xheWVyOjpDdXN0b21CZWhh
dmlvciBtX2N1c3RvbUJlaGF2aW9yOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxGbG9hdFJvdW5kZWRS
ZWN0PiBtX3NoYXBlUm91bmRlZFJlY3Q7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUxheWVyTWFjLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5tbQpp
bmRleCBiNTE1YzA1YzQ1NTRhOTkyOTllYTFhOWJhYjI3MjJhYWZiNjU2MDc4Li43YmUxNjk0MmY3
ZjBmYjkxNzdiYWE0YmI0MmY4MmM5YzNkNzZiMjk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUxheWVyTWFjLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMu
bW0KQEAgLTIwNSw3ICsyMDUsNiBAQCBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZSBQbGF0Zm9y
bUNBTGF5ZXJNYWM6OmxheWVyVHlwZUZvclBsYXRmb3JtTGF5ZXIoUGxhdGZvcgogUGxhdGZvcm1D
QUxheWVyTWFjOjpQbGF0Zm9ybUNBTGF5ZXJNYWMoTGF5ZXJUeXBlIGxheWVyVHlwZSwgUGxhdGZv
cm1DQUxheWVyQ2xpZW50KiBvd25lcikKICAgICA6IFBsYXRmb3JtQ0FMYXllcihsYXllclR5cGUs
IG93bmVyKQogICAgICwgbV9jdXN0b21BcHBlYXJhbmNlKEdyYXBoaWNzTGF5ZXI6Ok5vQ3VzdG9t
QXBwZWFyYW5jZSkKLSAgICAsIG1fY3VzdG9tQmVoYXZpb3IoR3JhcGhpY3NMYXllcjo6Tm9DdXN0
b21CZWhhdmlvcikKIHsKICAgICBDbGFzcyBsYXllckNsYXNzID0gTmlsOwogICAgIHN3aXRjaCAo
bGF5ZXJUeXBlKSB7CkBAIC0yMTMsNiArMjEyLDkgQEAgUGxhdGZvcm1DQUxheWVyTWFjOjpQbGF0
Zm9ybUNBTGF5ZXJNYWMoTGF5ZXJUeXBlIGxheWVyVHlwZSwgUGxhdGZvcm1DQUxheWVyQ2xpZW4K
ICAgICBjYXNlIExheWVyVHlwZVJvb3RMYXllcjoKICAgICAgICAgbGF5ZXJDbGFzcyA9IFtDQUxh
eWVyIGNsYXNzXTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBMYXllclR5cGVTY3JvbGxpbmdM
YXllcjoKKyAgICAgICAgLy8gU2Nyb2xsaW5nIGxheWVycyBvbmx5IGhhdmUgc3BlY2lhbCBiZWhh
dmlvciB3aXRoIFBsYXRmb3JtQ0FMYXllclJlbW90ZS4KKyAgICAgICAgLy8gZmFsbHRocm91Z2gK
ICAgICBjYXNlIExheWVyVHlwZVdlYkxheWVyOgogICAgICAgICBsYXllckNsYXNzID0gW1dlYkxh
eWVyIGNsYXNzXTsKICAgICAgICAgYnJlYWs7CkBAIC0yNjIsNyArMjY0LDYgQEAgUGxhdGZvcm1D
QUxheWVyTWFjOjpQbGF0Zm9ybUNBTGF5ZXJNYWMoTGF5ZXJUeXBlIGxheWVyVHlwZSwgUGxhdGZv
cm1DQUxheWVyQ2xpZW4KIFBsYXRmb3JtQ0FMYXllck1hYzo6UGxhdGZvcm1DQUxheWVyTWFjKFBs
YXRmb3JtTGF5ZXIqIGxheWVyLCBQbGF0Zm9ybUNBTGF5ZXJDbGllbnQqIG93bmVyKQogICAgIDog
UGxhdGZvcm1DQUxheWVyKGxheWVyVHlwZUZvclBsYXRmb3JtTGF5ZXIobGF5ZXIpLCBvd25lcikK
ICAgICAsIG1fY3VzdG9tQXBwZWFyYW5jZShHcmFwaGljc0xheWVyOjpOb0N1c3RvbUFwcGVhcmFu
Y2UpCi0gICAgLCBtX2N1c3RvbUJlaGF2aW9yKEdyYXBoaWNzTGF5ZXI6Ok5vQ3VzdG9tQmVoYXZp
b3IpCiB7CiAgICAgbV9sYXllciA9IGxheWVyOwogICAgIGNvbW1vbkluaXQoKTsKQEAgLTI3NSw3
ICsyNzYsNyBAQCB2b2lkIFBsYXRmb3JtQ0FMYXllck1hYzo6Y29tbW9uSW5pdCgpCiAgICAgW21f
bGF5ZXIgc2V0VmFsdWU6W05TVmFsdWUgdmFsdWVXaXRoUG9pbnRlcjp0aGlzXSBmb3JLZXk6cGxh
dGZvcm1DQUxheWVyUG9pbnRlcl07CiAgICAgCiAgICAgLy8gQ2xlYXIgYWxsIHRoZSBpbXBsaWNp
dCBhbmltYXRpb25zIG9uIHRoZSBDQUxheWVyCi0gICAgaWYgKG1fbGF5ZXJUeXBlID09IExheWVy
VHlwZUFWUGxheWVyTGF5ZXIgfHwgbV9sYXllclR5cGUgPT0gTGF5ZXJUeXBlV2ViR0xMYXllciB8
fCBtX2xheWVyVHlwZSA9PSBMYXllclR5cGVDdXN0b20pCisgICAgaWYgKG1fbGF5ZXJUeXBlID09
IExheWVyVHlwZUFWUGxheWVyTGF5ZXIgfHwgbV9sYXllclR5cGUgPT0gTGF5ZXJUeXBlV2ViR0xM
YXllciB8fCBtX2xheWVyVHlwZSA9PSBMYXllclR5cGVTY3JvbGxpbmdMYXllciB8fCBtX2xheWVy
VHlwZSA9PSBMYXllclR5cGVDdXN0b20pCiAgICAgICAgIFttX2xheWVyIHdlYl9kaXNhYmxlQWxs
QWN0aW9uc107CiAgICAgZWxzZQogICAgICAgICBbbV9sYXllciBzZXREZWxlZ2F0ZTpbV2ViQWN0
aW9uRGlzYWJsaW5nQ0FMYXllckRlbGVnYXRlIHNoYXJlZF1dOwpAQCAtODc3LDE5ICs4NzgsNiBA
QCB2b2lkIFBsYXRmb3JtQ0FMYXllck1hYzo6dXBkYXRlQ3VzdG9tQXBwZWFyYW5jZShHcmFwaGlj
c0xheWVyOjpDdXN0b21BcHBlYXJhbmNlCiAjZW5kaWYKIH0KIAotdm9pZCBQbGF0Zm9ybUNBTGF5
ZXJNYWM6OnVwZGF0ZUN1c3RvbUJlaGF2aW9yKEdyYXBoaWNzTGF5ZXI6OkN1c3RvbUJlaGF2aW9y
IGN1c3RvbUJlaGF2aW9yKQotewotICAgIG1fY3VzdG9tQmVoYXZpb3IgPSBjdXN0b21CZWhhdmlv
cjsKLQotICAgIC8vIEN1c3RvbSBsYXllcnMgY2FuIGdldCB3cmFwcGVkIGluIFVJVmlld3MgKHdo
aWNoIGNsb2JiZXJzIHRoZSBsYXllciBkZWxlZ2F0ZSksCi0gICAgLy8gc28gZmFsbCBiYWNrIHRv
IHRoZSBzbG93ZXIgd2F5IG9mIGRpc2FibGluZyBpbXBsaWNpdCBhbmltYXRpb25zLgotICAgIGlm
IChtX2N1c3RvbUJlaGF2aW9yICE9IEdyYXBoaWNzTGF5ZXI6Ok5vQ3VzdG9tQmVoYXZpb3IpIHsK
LSAgICAgICAgaWYgKFtbbV9sYXllciBkZWxlZ2F0ZV0gaXNLaW5kT2ZDbGFzczpbV2ViQWN0aW9u
RGlzYWJsaW5nQ0FMYXllckRlbGVnYXRlIGNsYXNzXV0pCi0gICAgICAgICAgICBbbV9sYXllciBz
ZXREZWxlZ2F0ZTpuaWxdOwotICAgICAgICBbbV9sYXllciB3ZWJfZGlzYWJsZUFsbEFjdGlvbnNd
OwotICAgIH0KLX0KLQogVGlsZWRCYWNraW5nKiBQbGF0Zm9ybUNBTGF5ZXJNYWM6OnRpbGVkQmFj
a2luZygpCiB7CiAgICAgaWYgKCF1c2VzVGlsZWRCYWNraW5nTGF5ZXIoKSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4
dHVyZU1hcHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
R3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuY3BwCmluZGV4IDFlMDJkMWY3NWQwODRlMWJiNmRk
ZjhkNTMyZTYzZjkxMzUxOWEzYTguLmMyNGU3ODBmNjZiMTYzZGQ5NzIxN2M4N2Q0YjhkZTMzN2Ex
NjE3NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNwcApAQCAt
MzAsMTYgKzMwLDE2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RkOjp1bmlxdWVfcHRy
PEdyYXBoaWNzTGF5ZXI+IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShHcmFwaGljc0xheWVyRmFjdG9y
eSogZmFjdG9yeSwgR3JhcGhpY3NMYXllckNsaWVudCYgY2xpZW50KQorc3RkOjp1bmlxdWVfcHRy
PEdyYXBoaWNzTGF5ZXI+IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShHcmFwaGljc0xheWVyRmFjdG9y
eSogZmFjdG9yeSwgR3JhcGhpY3NMYXllckNsaWVudCYgY2xpZW50LCBUeXBlIGxheWVyVHlwZSkK
IHsKICAgICBpZiAoIWZhY3RvcnkpCi0gICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEdy
YXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyPihjbGllbnQpOworICAgICAgICByZXR1cm4gc3RkOjpt
YWtlX3VuaXF1ZTxHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcj4obGF5ZXJUeXBlLCBjbGllbnQp
OwogCi0gICAgcmV0dXJuIGZhY3RvcnktPmNyZWF0ZUdyYXBoaWNzTGF5ZXIoY2xpZW50KTsKKyAg
ICByZXR1cm4gZmFjdG9yeS0+Y3JlYXRlR3JhcGhpY3NMYXllcihsYXllclR5cGUsIGNsaWVudCk7
CiB9CiAKLUdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpHcmFwaGljc0xheWVyVGV4dHVyZU1h
cHBlcihHcmFwaGljc0xheWVyQ2xpZW50JiBjbGllbnQpCi0gICAgOiBHcmFwaGljc0xheWVyKGNs
aWVudCkKK0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpHcmFwaGljc0xheWVyVGV4dHVyZU1h
cHBlcihUeXBlIGxheWVyVHlwZSwgR3JhcGhpY3NMYXllckNsaWVudCYgY2xpZW50KQorICAgIDog
R3JhcGhpY3NMYXllcihsYXllclR5cGUsIGNsaWVudCkKICAgICAsIG1fY29tcG9zaXRlZE5hdGl2
ZUltYWdlUHRyKDApCiAgICAgLCBtX2NoYW5nZU1hc2soTm9DaGFuZ2VzKQogICAgICwgbV9uZWVk
c0Rpc3BsYXkoZmFsc2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5oCmlu
ZGV4IDc4M2MzMmYxODVkMDk3MzYyMjY1ZmMwODg0NTUwZTgwYTk5NzYzYTEuLmM5Yjc4YzI2Mzhk
MzA1MmMxOTVhZDkyMzQwMzYwNDU4M2Y3MDZjODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVy
VGV4dHVyZU1hcHBlci5oCkBAIC0zNCw3ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIgZmluYWwgOiBwdWJsaWMgR3JhcGhpY3NM
YXllciwgVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXI6OkNsaWVudCB7CiBwdWJsaWM6Ci0gICAg
ZXhwbGljaXQgR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIoR3JhcGhpY3NMYXllckNsaWVudCYp
OworICAgIGV4cGxpY2l0IEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyKFR5cGUsIEdyYXBoaWNz
TGF5ZXJDbGllbnQmKTsKICAgICB2aXJ0dWFsIH5HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcigp
OwogCiAgICAgdm9pZCBzZXRTY3JvbGxDbGllbnQoVGV4dHVyZU1hcHBlckxheWVyOjpTY3JvbGxp
bmdDbGllbnQqIGNsaWVudCkgeyBtX2xheWVyLnNldFNjcm9sbENsaWVudChjbGllbnQpOyB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRp
bmF0ZWQvQ29tcG9zaXRpbmdDb29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29tcG9zaXRpbmdDb29yZGluYXRvci5jcHAK
aW5kZXggYjM4NzY0NWY4NDUxMDRkODI4MDQ2ZDAyZjFlZTJjYTYyNDU1ODg3NS4uMWExYzI2N2Y0
YzcxOTM0YzYyNzBmNThlN2ExMDlkOTNlNjY2OWE3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0NvbXBvc2l0aW5nQ29vcmRp
bmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9j
b29yZGluYXRlZC9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmNwcApAQCAtMjU1LDkgKzI1NSw5IEBA
IHZvaWQgQ29tcG9zaXRpbmdDb29yZGluYXRvcjo6cGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGlj
c0xheWVyKiBncmFwaGljc0xheWVyLCBHCiAgICAgbV9jbGllbnQtPnBhaW50TGF5ZXJDb250ZW50
cyhncmFwaGljc0xheWVyLCBncmFwaGljc0NvbnRleHQsIGVuY2xvc2luZ0ludFJlY3QoY2xpcFJl
Y3QpKTsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IENvbXBvc2l0aW5nQ29v
cmRpbmF0b3I6OmNyZWF0ZUdyYXBoaWNzTGF5ZXIoR3JhcGhpY3NMYXllckNsaWVudCYgY2xpZW50
KQorc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IENvbXBvc2l0aW5nQ29vcmRpbmF0b3I6
OmNyZWF0ZUdyYXBoaWNzTGF5ZXIoR3JhcGhpY3NMYXllcjo6VHlwZSBsYXllclR5cGUsIEdyYXBo
aWNzTGF5ZXJDbGllbnQmIGNsaWVudCkKIHsKLSAgICBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIq
IGxheWVyID0gbmV3IENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihjbGllbnQpOworICAgIENvb3Jk
aW5hdGVkR3JhcGhpY3NMYXllciogbGF5ZXIgPSBuZXcgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
KGxheWVyVHlwZSwgY2xpZW50KTsKICAgICBsYXllci0+c2V0Q29vcmRpbmF0b3IodGhpcyk7CiAg
ICAgbV9yZWdpc3RlcmVkTGF5ZXJzLmFkZChsYXllci0+aWQoKSwgbGF5ZXIpOwogICAgIG1fc3Rh
dGUubGF5ZXJzVG9DcmVhdGUuYXBwZW5kKGxheWVyLT5pZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db21wb3NpdGlu
Z0Nvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
Y29vcmRpbmF0ZWQvQ29tcG9zaXRpbmdDb29yZGluYXRvci5oCmluZGV4IGRlYzY5MjY2ZDNlOTk2
ZTUxNGM2ZjYxNjMxZTVlMDIzNjlhOWRlMTcuLmZlMTBhM2VkZDg2OWY4ZTc0N2ZkMDU4MTMyNzlm
MjRiMmExMmM4MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9jb29yZGluYXRlZC9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0NvbXBvc2l0aW5n
Q29vcmRpbmF0b3IuaApAQCAtMTE0LDcgKzExNCw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2
b2lkIHJlbW92ZVVwZGF0ZUF0bGFzKHVpbnQzMl90IGF0bGFzSUQpIG92ZXJyaWRlOwogCiAgICAg
Ly8gR3JhcGhpY3NMYXllckZhY3RvcnkKLSAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxHcmFw
aGljc0xheWVyPiBjcmVhdGVHcmFwaGljc0xheWVyKEdyYXBoaWNzTGF5ZXJDbGllbnQmKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBjcmVhdGVH
cmFwaGljc0xheWVyKEdyYXBoaWNzTGF5ZXI6OlR5cGUsIEdyYXBoaWNzTGF5ZXJDbGllbnQmKSBv
dmVycmlkZTsKIAogICAgIHZvaWQgaW5pdGlhbGl6ZVJvb3RDb21wb3NpdGluZ0xheWVySWZOZWVk
ZWQoKTsKICAgICB2b2lkIGZsdXNoUGVuZGluZ0ltYWdlQmFja2luZ0NoYW5nZXMoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRl
ZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAK
aW5kZXggZTZlMjEzZjliMTQ0NjdkOGE2ZGEwYWFhNmRmNzE1NWFlYTY0YzVkNC4uNzIwZDI1ZTEx
OGQ3NDViN2E1YjhiZWQzOGFmMDZiN2JkYjEwMjVmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAKQEAgLTEwMyw4ICsxMDMs
OCBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6ZGlkQ2hhbmdlR2VvbWV0cnkoKQog
ICAgIHNldFNob3VsZFVwZGF0ZVZpc2libGVSZWN0KCk7CiB9CiAKLUNvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllcjo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKEdyYXBoaWNzTGF5ZXJDbGllbnQmIGNs
aWVudCkKLSAgICA6IEdyYXBoaWNzTGF5ZXIoY2xpZW50KQorQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIoVHlwZSBsYXllclR5cGUsIEdyYXBoaWNzTGF5
ZXJDbGllbnQmIGNsaWVudCkKKyAgICA6IEdyYXBoaWNzTGF5ZXIobGF5ZXJUeXBlLCBjbGllbnQp
CiAjaWZuZGVmIE5ERUJVRwogICAgICwgbV9pc1B1cmdpbmcoZmFsc2UpCiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRl
ZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaAppbmRl
eCBiZjc2YTdjNjlmZGFkNDg3M2I4ODAwYmViY2Q4ZDI0MjU5NTI2NWNkLi42NzgzMmU4Y2I4M2U2
ZTk3YzkzNjM2NGVlN2Y1OTdmNDllYmRhNzFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3Jk
aW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oCkBAIC02MSw3ICs2MSw3IEBAIGNsYXNz
IENvb3JkaW5hdGVkR3JhcGhpY3NMYXllciA6IHB1YmxpYyBHcmFwaGljc0xheWVyCiAgICAgLCBw
dWJsaWMgQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmc6Okhvc3QKICAgICAsIHB1YmxpYyBDb29yZGlu
YXRlZFRpbGVDbGllbnQgewogcHVibGljOgotICAgIGV4cGxpY2l0IENvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllcihHcmFwaGljc0xheWVyQ2xpZW50Jik7CisgICAgZXhwbGljaXQgQ29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyKFR5cGUsIEdyYXBoaWNzTGF5ZXJDbGllbnQmKTsKICAgICB2aXJ0dWFsIH5D
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXIoKTsKIAogICAgIC8vIFJlaW1wbGVtZW50YXRpb25zIGZy
b20gR3JhcGhpY3NMYXllci5oLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJCYWNraW5nLmNwcAppbmRleCBhYmMwMDdlMTBhODBmMDNmYjE4YWRlMGI5NjYyN2EzNDc0
MmQyZjAzLi41OTk0Y2MzMjFkMjhkOGIyNzViOGQ0ZmRlNWYzMjdmNzNlYzg0NDc5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcApAQCAtMTA1
LDggKzEwNSw2IEBAIHN0YXRpYyBTY3JvbGxpbmdDb29yZGluYXRvciogc2Nyb2xsaW5nQ29vcmRp
bmF0b3JGcm9tTGF5ZXIoUmVuZGVyTGF5ZXImIGxheWVyKQogICAgIHJldHVybiBwYWdlLT5zY3Jv
bGxpbmdDb29yZGluYXRvcigpOwogfQogCi1ib29sIFJlbmRlckxheWVyQmFja2luZzo6bV9jcmVh
dGluZ1ByaW1hcnlHcmFwaGljc0xheWVyID0gZmFsc2U7Ci0KIFJlbmRlckxheWVyQmFja2luZzo6
UmVuZGVyTGF5ZXJCYWNraW5nKFJlbmRlckxheWVyJiBsYXllcikKICAgICA6IG1fb3duaW5nTGF5
ZXIobGF5ZXIpCiAgICAgLCBtX3ZpZXdwb3J0Q29uc3RyYWluZWROb2RlSUQoMCkKQEAgLTE2Mywx
MyArMTYxLDEzIEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjp3aWxsRGVzdHJveUxheWVyKGNv
bnN0IEdyYXBoaWNzTGF5ZXIqIGxheWVyKQogICAgICAgICBjb21wb3NpdG9yKCkubGF5ZXJUaWxl
ZEJhY2tpbmdVc2FnZUNoYW5nZWQobGF5ZXIsIGZhbHNlKTsKIH0KIAotc3RkOjp1bmlxdWVfcHRy
PEdyYXBoaWNzTGF5ZXI+IFJlbmRlckxheWVyQmFja2luZzo6Y3JlYXRlR3JhcGhpY3NMYXllcihj
b25zdCBTdHJpbmcmIG5hbWUpCitzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gUmVuZGVy
TGF5ZXJCYWNraW5nOjpjcmVhdGVHcmFwaGljc0xheWVyKGNvbnN0IFN0cmluZyYgbmFtZSwgR3Jh
cGhpY3NMYXllcjo6VHlwZSBsYXllclR5cGUpCiB7CiAgICAgR3JhcGhpY3NMYXllckZhY3Rvcnkq
IGdyYXBoaWNzTGF5ZXJGYWN0b3J5ID0gMDsKICAgICBpZiAoUGFnZSogcGFnZSA9IHJlbmRlcmVy
KCkuZnJhbWUoKS5wYWdlKCkpCiAgICAgICAgIGdyYXBoaWNzTGF5ZXJGYWN0b3J5ID0gcGFnZS0+
Y2hyb21lKCkuY2xpZW50KCkuZ3JhcGhpY3NMYXllckZhY3RvcnkoKTsKIAotICAgIHN0ZDo6dW5p
cXVlX3B0cjxHcmFwaGljc0xheWVyPiBncmFwaGljc0xheWVyID0gR3JhcGhpY3NMYXllcjo6Y3Jl
YXRlKGdyYXBoaWNzTGF5ZXJGYWN0b3J5LCAqdGhpcyk7CisgICAgc3RkOjp1bmlxdWVfcHRyPEdy
YXBoaWNzTGF5ZXI+IGdyYXBoaWNzTGF5ZXIgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUoZ3JhcGhp
Y3NMYXllckZhY3RvcnksICp0aGlzLCBsYXllclR5cGUpOwogCiAjaWZuZGVmIE5ERUJVRwogICAg
IGdyYXBoaWNzTGF5ZXItPnNldE5hbWUobmFtZSk7CkBAIC0xODMsMTEgKzE4MSw2IEBAIHN0ZDo6
dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBSZW5kZXJMYXllckJhY2tpbmc6OmNyZWF0ZUdyYXBo
aWNzTGF5ZXIoY29uc3QgU3RyCiAgICAgcmV0dXJuIGdyYXBoaWNzTGF5ZXI7CiB9CiAKLWJvb2wg
UmVuZGVyTGF5ZXJCYWNraW5nOjpzaG91bGRVc2VUaWxlZEJhY2tpbmcoY29uc3QgR3JhcGhpY3NM
YXllciopIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fdXNpbmdUaWxlZENhY2hlTGF5ZXIgJiYgbV9j
cmVhdGluZ1ByaW1hcnlHcmFwaGljc0xheWVyOwotfQotCiB2b2lkIFJlbmRlckxheWVyQmFja2lu
Zzo6dGlsZWRCYWNraW5nVXNhZ2VDaGFuZ2VkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGxheWVyLCBi
b29sIHVzaW5nVGlsZWRCYWNraW5nKQogewogICAgIGNvbXBvc2l0b3IoKS5sYXllclRpbGVkQmFj
a2luZ1VzYWdlQ2hhbmdlZChsYXllciwgdXNpbmdUaWxlZEJhY2tpbmcpOwpAQCAtMjg2LDE0ICsy
NzksNyBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6Y3JlYXRlUHJpbWFyeUdyYXBoaWNzTGF5
ZXIoKQogICAgIGxheWVyTmFtZSA9IG1fb3duaW5nTGF5ZXIubmFtZSgpOwogI2VuZGlmCiAgICAg
Ci0gICAgLy8gVGhlIGNhbGwgdG8gY3JlYXRlR3JhcGhpY3NMYXllciBlbmRzIGNhbGxpbmcgYmFj
ayBpbnRvIGhlcmUgYXMKLSAgICAvLyBhIEdyYXBoaWNzTGF5ZXJDbGllbnQgdG8gYXNrIGlmIGl0
IHNob3VsZFVzZVRpbGVkQmFja2luZygpLiBXZSBvbmx5IHdhbnQKLSAgICAvLyB0aGUgdGlsZSBj
YWNoZSBvbiBvdXIgbWFpbiBsYXllci4gVGhpcyBpcyBwcmV0dHkgdWdseSwgYnV0IHNhdmVzIHVz
IGZyb20KLSAgICAvLyBleHBvc2luZyB0aGUgQVBJIHRvIGFsbCBjbGllbnRzLgotCi0gICAgbV9j
cmVhdGluZ1ByaW1hcnlHcmFwaGljc0xheWVyID0gdHJ1ZTsKLSAgICBtX2dyYXBoaWNzTGF5ZXIg
PSBjcmVhdGVHcmFwaGljc0xheWVyKGxheWVyTmFtZSk7Ci0gICAgbV9jcmVhdGluZ1ByaW1hcnlH
cmFwaGljc0xheWVyID0gZmFsc2U7CisgICAgbV9ncmFwaGljc0xheWVyID0gY3JlYXRlR3JhcGhp
Y3NMYXllcihsYXllck5hbWUsIG1fdXNpbmdUaWxlZENhY2hlTGF5ZXIgPyBHcmFwaGljc0xheWVy
OjpUeXBlOjpQYWdlVGlsZWRCYWNraW5nIDogR3JhcGhpY3NMYXllcjo6VHlwZTo6Tm9ybWFsKTsK
IAogICAgIGlmIChtX3VzaW5nVGlsZWRDYWNoZUxheWVyKSB7CiAgICAgICAgIG1fY2hpbGRDb250
YWlubWVudExheWVyID0gY3JlYXRlR3JhcGhpY3NMYXllcigiVGlsZWRCYWNraW5nIEZsYXR0ZW5p
bmcgTGF5ZXIiKTsKQEAgLTE0ODQsMTggKzE0NzAsMTQgQEAgYm9vbCBSZW5kZXJMYXllckJhY2tp
bmc6OnVwZGF0ZVNjcm9sbGluZ0xheWVycyhib29sIG5lZWRzU2Nyb2xsaW5nTGF5ZXJzKQogCiAg
ICAgaWYgKCFtX3Njcm9sbGluZ0xheWVyKSB7CiAgICAgICAgIC8vIE91dGVyIGxheWVyIHdoaWNo
IGNvcnJlc3BvbmRzIHdpdGggdGhlIHNjcm9sbCB2aWV3LgotICAgICAgICBtX3Njcm9sbGluZ0xh
eWVyID0gY3JlYXRlR3JhcGhpY3NMYXllcigiU2Nyb2xsaW5nIGNvbnRhaW5lciIpOworICAgICAg
ICBtX3Njcm9sbGluZ0xheWVyID0gY3JlYXRlR3JhcGhpY3NMYXllcigiU2Nyb2xsaW5nIGNvbnRh
aW5lciIsIEdyYXBoaWNzTGF5ZXI6OlR5cGU6OlNjcm9sbGluZyk7CiAgICAgICAgIG1fc2Nyb2xs
aW5nTGF5ZXItPnNldERyYXdzQ29udGVudChmYWxzZSk7CiAgICAgICAgIG1fc2Nyb2xsaW5nTGF5
ZXItPnNldE1hc2tzVG9Cb3VuZHModHJ1ZSk7Ci0jaWYgUExBVEZPUk0oSU9TKQotICAgICAgICBt
X3Njcm9sbGluZ0xheWVyLT5zZXRDdXN0b21CZWhhdmlvcihHcmFwaGljc0xheWVyOjpDdXN0b21T
Y3JvbGxpbmdCZWhhdmlvcik7Ci0jZW5kaWYKKwogICAgICAgICAvLyBJbm5lciBsYXllciB3aGlj
aCByZW5kZXJzIHRoZSBjb250ZW50IHRoYXQgc2Nyb2xscy4KICAgICAgICAgbV9zY3JvbGxpbmdD
b250ZW50c0xheWVyID0gY3JlYXRlR3JhcGhpY3NMYXllcigiU2Nyb2xsZWQgQ29udGVudHMiKTsK
ICAgICAgICAgbV9zY3JvbGxpbmdDb250ZW50c0xheWVyLT5zZXREcmF3c0NvbnRlbnQodHJ1ZSk7
Ci0jaWYgUExBVEZPUk0oSU9TKQotICAgICAgICBtX3Njcm9sbGluZ0NvbnRlbnRzTGF5ZXItPnNl
dEN1c3RvbUJlaGF2aW9yKEdyYXBoaWNzTGF5ZXI6OkN1c3RvbVNjcm9sbGVkQ29udGVudHNCZWhh
dmlvcik7Ci0jZW5kaWYKKwogICAgICAgICBHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSBwYWlu
dFBoYXNlID0gR3JhcGhpY3NMYXllclBhaW50T3ZlcmZsb3dDb250ZW50cyB8IEdyYXBoaWNzTGF5
ZXJQYWludENvbXBvc2l0ZWRTY3JvbGw7CiAgICAgICAgIGlmICghbV9mb3JlZ3JvdW5kTGF5ZXIp
CiAgICAgICAgICAgICBwYWludFBoYXNlIHw9IEdyYXBoaWNzTGF5ZXJQYWludEZvcmVncm91bmQ7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5n
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgKaW5kZXgg
MmMyZWRmNWMyMjk4MzVmMzY1YjZmMzhjODdkN2M3M2E1Mjc3MmU3Zi4uOGQ4M2NhZjc0Njc2YzQy
NGViYjc4MmRkMmI0MWYzMDFhN2ZiMGM1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllckJhY2tpbmcuaApAQCAtMTkzLDcgKzE5Myw2IEBAIHB1YmxpYzoKICAgICB2
b2lkIHVwZGF0ZURlYnVnSW5kaWNhdG9ycyhib29sIHNob3dCb3JkZXIsIGJvb2wgc2hvd1JlcGFp
bnRDb3VudGVyKTsKIAogICAgIC8vIEdyYXBoaWNzTGF5ZXJDbGllbnQgaW50ZXJmYWNlCi0gICAg
dmlydHVhbCBib29sIHNob3VsZFVzZVRpbGVkQmFja2luZyhjb25zdCBHcmFwaGljc0xheWVyKikg
Y29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHRpbGVkQmFja2luZ1VzYWdlQ2hhbmdl
ZChjb25zdCBHcmFwaGljc0xheWVyKiwgYm9vbCAvKnVzaW5nVGlsZWRCYWNraW5nKi8pIG92ZXJy
aWRlOwogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBbmltYXRpb25TdGFydGVkKGNvbnN0IEdyYXBo
aWNzTGF5ZXIqLCBjb25zdCBTdHJpbmcmIGFuaW1hdGlvbktleSwgZG91YmxlIHN0YXJ0VGltZSkg
b3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgR3Jh
cGhpY3NMYXllciopIG92ZXJyaWRlOwpAQCAtMjU2LDcgKzI1NSw3IEBAIHByaXZhdGU6CiAKICAg
ICBMYXlvdXRSZWN0IGNvbXBvc2l0ZWRCb3VuZHNJbmNsdWRpbmdNYXJnaW4oKSBjb25zdDsKICAg
ICAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gY3JlYXRlR3JhcGhpY3NMYXll
cihjb25zdCBTdHJpbmcmKTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gY3Jl
YXRlR3JhcGhpY3NMYXllcihjb25zdCBTdHJpbmcmLCBHcmFwaGljc0xheWVyOjpUeXBlID0gR3Jh
cGhpY3NMYXllcjo6VHlwZTo6Tm9ybWFsKTsKIAogICAgIFJlbmRlckxheWVyTW9kZWxPYmplY3Qm
IHJlbmRlcmVyKCkgY29uc3QgeyByZXR1cm4gbV9vd25pbmdMYXllci5yZW5kZXJlcigpOyB9CiAg
ICAgUmVuZGVyTGF5ZXJDb21wb3NpdG9yJiBjb21wb3NpdG9yKCkgY29uc3QgeyByZXR1cm4gbV9v
d25pbmdMYXllci5jb21wb3NpdG9yKCk7IH0KQEAgLTM2NSw4ICszNjQsNiBAQCBwcml2YXRlOgog
ICAgIGJvb2wgbV9jYW5Db21wb3NpdGVCYWNrZHJvcEZpbHRlcnM7CiAjZW5kaWYKICAgICBib29s
IG1fYmFja2dyb3VuZExheWVyUGFpbnRzRml4ZWRSb290QmFja2dyb3VuZDsKLQotICAgIHN0YXRp
YyBib29sIG1fY3JlYXRpbmdQcmltYXJ5R3JhcGhpY3NMYXllcjsKIH07CiAKIGVudW0gQ2FudmFz
Q29tcG9zaXRpbmdTdHJhdGVneSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
bWFjL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21h
Yy9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5tbQppbmRleCAwYzIzMmMyODNmN2JkYmE4MzMwZjIy
ZWMzZWYxM2UzMzcwOTRmMDZmLi5hZjZlYzU5ZDMwY2E4OWZiNDNhYTk1YmU2ZWIxNzRiNzg3YjFi
MDlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyQmFj
a2luZ1N0b3JlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJC
YWNraW5nU3RvcmUubW0KQEAgLTM0Miw2ICszNDIsNyBAQCB2b2lkIFJlbW90ZUxheWVyQmFja2lu
Z1N0b3JlOjpkcmF3SW5Db250ZXh0KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgQ0dJbWFnZVJl
ZgogICAgIGNhc2UgUGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGVXZWJHTExheWVyOgogICAgIGNh
c2UgUGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGVCYWNrZHJvcExheWVyOgogICAgIGNhc2UgUGxh
dGZvcm1DQUxheWVyOjpMYXllclR5cGVTaGFwZUxheWVyOgorICAgIGNhc2UgUGxhdGZvcm1DQUxh
eWVyOjpMYXllclR5cGVTY3JvbGxpbmdMYXllcjoKICAgICBjYXNlIFBsYXRmb3JtQ0FMYXllcjo6
TGF5ZXJUeXBlQ3VzdG9tOgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAg
YnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVy
VHJlZVRyYW5zYWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVy
VHJlZVRyYW5zYWN0aW9uLmgKaW5kZXggNGI1MTYwOWFhMDkwY2Q0MzhkNTQ5MTRmMmNhMzg2MTJh
NDNkMDZjMi4uYjA0NTk2M2ViYTA3ODg0MDUyZjcyNzEyOTM4NTljNWIzZjdlYzFlZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlVHJhbnNh
Y3Rpb24uaApAQCAtODIsOCArODIsNyBAQCBwdWJsaWM6CiAgICAgICAgIEZpbHRlcnNDaGFuZ2Vk
ICAgICAgICAgICAgICAgICAgPSAxTExVIDw8IDI5LAogICAgICAgICBBbmltYXRpb25zQ2hhbmdl
ZCAgICAgICAgICAgICAgID0gMUxMVSA8PCAzMCwKICAgICAgICAgRWRnZUFudGlhbGlhc2luZ01h
c2tDaGFuZ2VkICAgICA9IDFMTFUgPDwgMzEsCi0gICAgICAgIEN1c3RvbUFwcGVhcmFuY2VDaGFu
Z2VkICAgICAgICAgPSAxTExVIDw8IDMyLAotICAgICAgICBDdXN0b21CZWhhdmlvckNoYW5nZWQg
ICAgICAgICAgID0gMUxMVSA8PCAzMworICAgICAgICBDdXN0b21BcHBlYXJhbmNlQ2hhbmdlZCAg
ICAgICAgID0gMUxMVSA8PCAzMgogICAgIH07CiAgICAgdHlwZWRlZiB1aW50NjRfdCBMYXllckNo
YW5nZTsKIApAQCAtMTQ5LDcgKzE0OCw2IEBAIHB1YmxpYzoKICAgICAgICAgV2ViQ29yZTo6Q29s
b3IgYm9yZGVyQ29sb3I7CiAgICAgICAgIHVuc2lnbmVkIGVkZ2VBbnRpYWxpYXNpbmdNYXNrOwog
ICAgICAgICBXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpDdXN0b21BcHBlYXJhbmNlIGN1c3RvbUFw
cGVhcmFuY2U7Ci0gICAgICAgIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OkN1c3RvbUJlaGF2aW9y
IGN1c3RvbUJlaGF2aW9yOwogICAgICAgICBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXI6OkZpbHRl
clR5cGUgbWluaWZpY2F0aW9uRmlsdGVyOwogICAgICAgICBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5
ZXI6OkZpbHRlclR5cGUgbWFnbmlmaWNhdGlvbkZpbHRlcjsKICAgICAgICAgV2ViQ29yZTo6Qmxl
bmRNb2RlIGJsZW5kTW9kZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMv
UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFj
L1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLm1tCmluZGV4IDlkNTc1OTIzOTViNWQ4MTljNWI2
MGRhMGFmNDViYmRjNjUxMmYzNjAuLjg5NjhlOWNkNjQwN2FkOGE0YmE4YTc0NDk3MzhjZWEwMzRk
ODk4OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJU
cmVlVHJhbnNhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVM
YXllclRyZWVUcmFuc2FjdGlvbi5tbQpAQCAtOTMsNyArOTMsNiBAQCBSZW1vdGVMYXllclRyZWVU
cmFuc2FjdGlvbjo6TGF5ZXJQcm9wZXJ0aWVzOjpMYXllclByb3BlcnRpZXMoKQogICAgICwgYm9y
ZGVyQ29sb3IoQ29sb3I6OmJsYWNrKQogICAgICwgZWRnZUFudGlhbGlhc2luZ01hc2soa0NBTGF5
ZXJMZWZ0RWRnZSB8IGtDQUxheWVyUmlnaHRFZGdlIHwga0NBTGF5ZXJCb3R0b21FZGdlIHwga0NB
TGF5ZXJUb3BFZGdlKQogICAgICwgY3VzdG9tQXBwZWFyYW5jZShHcmFwaGljc0xheWVyOjpOb0N1
c3RvbUFwcGVhcmFuY2UpCi0gICAgLCBjdXN0b21CZWhhdmlvcihHcmFwaGljc0xheWVyOjpOb0N1
c3RvbUJlaGF2aW9yKQogICAgICwgbWluaWZpY2F0aW9uRmlsdGVyKFBsYXRmb3JtQ0FMYXllcjo6
RmlsdGVyVHlwZTo6TGluZWFyKQogICAgICwgbWFnbmlmaWNhdGlvbkZpbHRlcihQbGF0Zm9ybUNB
TGF5ZXI6OkZpbHRlclR5cGU6OkxpbmVhcikKICAgICAsIGJsZW5kTW9kZShCbGVuZE1vZGVOb3Jt
YWwpCkBAIC0xMjgsNyArMTI3LDYgQEAgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVy
UHJvcGVydGllczo6TGF5ZXJQcm9wZXJ0aWVzKGNvbnN0IExheWVyUHJvcGVydGkKICAgICAsIGJv
cmRlckNvbG9yKG90aGVyLmJvcmRlckNvbG9yKQogICAgICwgZWRnZUFudGlhbGlhc2luZ01hc2so
b3RoZXIuZWRnZUFudGlhbGlhc2luZ01hc2spCiAgICAgLCBjdXN0b21BcHBlYXJhbmNlKG90aGVy
LmN1c3RvbUFwcGVhcmFuY2UpCi0gICAgLCBjdXN0b21CZWhhdmlvcihvdGhlci5jdXN0b21CZWhh
dmlvcikKICAgICAsIG1pbmlmaWNhdGlvbkZpbHRlcihvdGhlci5taW5pZmljYXRpb25GaWx0ZXIp
CiAgICAgLCBtYWduaWZpY2F0aW9uRmlsdGVyKG90aGVyLm1hZ25pZmljYXRpb25GaWx0ZXIpCiAg
ICAgLCBibGVuZE1vZGUob3RoZXIuYmxlbmRNb2RlKQpAQCAtMjU2LDkgKzI1NCw2IEBAIHZvaWQg
UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyUHJvcGVydGllczo6ZW5jb2RlKElQQzo6
QXJndW1lbnRFbmNvZGVyJiBlCiAKICAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMgJiBDdXN0b21B
cHBlYXJhbmNlQ2hhbmdlZCkKICAgICAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKGN1c3RvbUFwcGVh
cmFuY2UpOwotCi0gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzICYgQ3VzdG9tQmVoYXZpb3JDaGFu
Z2VkKQotICAgICAgICBlbmNvZGVyLmVuY29kZUVudW0oY3VzdG9tQmVoYXZpb3IpOwogfQogCiBi
b29sIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllclByb3BlcnRpZXM6OmRlY29kZShJ
UEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgTGF5ZXJQcm9wZXJ0aWVzJiByZXN1bHQpCkBA
IC00NTQsMTEgKzQ0OSw2IEBAIGJvb2wgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVy
UHJvcGVydGllczo6ZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiBkCiAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgfQogCi0gICAgaWYgKHJlc3VsdC5jaGFuZ2VkUHJvcGVydGllcyAm
IEN1c3RvbUJlaGF2aW9yQ2hhbmdlZCkgewotICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51
bShyZXN1bHQuY3VzdG9tQmVoYXZpb3IpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
IH0KLQogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC0xMTg1LDkgKzExNzUsNiBAQCBzdGF0aWMg
dm9pZCBkdW1wQ2hhbmdlZExheWVycyhSZW1vdGVMYXllclRyZWVUZXh0U3RyZWFtJiB0cywgY29u
c3QgUmVtb3RlTGF5ZXJUcgogICAgICAgICBpZiAobGF5ZXJQcm9wZXJ0aWVzLmNoYW5nZWRQcm9w
ZXJ0aWVzICYgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkN1c3RvbUFwcGVhcmFuY2VDaGFu
Z2VkKQogICAgICAgICAgICAgZHVtcFByb3BlcnR5KHRzLCAiY3VzdG9tQXBwZWFyYW5jZSIsIGxh
eWVyUHJvcGVydGllcy5jdXN0b21BcHBlYXJhbmNlKTsKIAotICAgICAgICBpZiAobGF5ZXJQcm9w
ZXJ0aWVzLmNoYW5nZWRQcm9wZXJ0aWVzICYgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkN1
c3RvbUJlaGF2aW9yQ2hhbmdlZCkKLSAgICAgICAgICAgIGR1bXBQcm9wZXJ0eSh0cywgImN1c3Rv
bUJlaGF2aW9yIiwgbGF5ZXJQcm9wZXJ0aWVzLmN1c3RvbUJlaGF2aW9yKTsKLQogICAgICAgICB0
cyA8PCAiKSI7CiAKICAgICAgICAgdHMuZGVjcmVhc2VJbmRlbnQoKTsKQEAgLTEyNTUsNiArMTI0
Miw5IEBAIENTdHJpbmcgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OmRlc2NyaXB0aW9uKCkg
Y29uc3QKICAgICAgICAgICAgIGNhc2UgUGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGVTaGFwZUxh
eWVyOgogICAgICAgICAgICAgICAgIHRzIDw8ICJzaGFwZS1sYXllciI7CiAgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlU2Ny
b2xsaW5nTGF5ZXI6CisgICAgICAgICAgICAgICAgdHMgPDwgInNjcm9sbGluZy1sYXllciI7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIFBsYXRmb3JtQ0FMYXllcjo6
TGF5ZXJUeXBlQ3VzdG9tOgogICAgICAgICAgICAgICAgIHRzIDw8ICJjdXN0b20tbGF5ZXIgKGNv
bnRleHQtaWQgIiA8PCBjcmVhdGVkTGF5ZXIuaG9zdGluZ0NvbnRleHRJRCA8PCAiKSI7CiAgICAg
ICAgICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
aW9zL1JlbW90ZUxheWVyVHJlZUhvc3RJT1MubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
aW9zL1JlbW90ZUxheWVyVHJlZUhvc3RJT1MubW0KaW5kZXggOGUyMmY3YzNkZDM4YWExZmYyYmY0
ZjhjZTY3Y2QyNzk3ZGJiZDQ1OC4uMjdmMzdjYmU0ZGQ3MTBiNDlmN2I1OGY3NWZlYTc3ZjM3MjQz
MTIzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9SZW1vdGVMYXll
clRyZWVIb3N0SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUmVtb3Rl
TGF5ZXJUcmVlSG9zdElPUy5tbQpAQCAtMTczLDEzICsxNzMsNyBAQCBMYXllck9yVmlldyAqUmVt
b3RlTGF5ZXJUcmVlSG9zdDo6Y3JlYXRlTGF5ZXIoY29uc3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnNh
Y3Rpb246OgogICAgIGNhc2UgUGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGVUaWxlZEJhY2tpbmdM
YXllcjoKICAgICBjYXNlIFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlUGFnZVRpbGVkQmFja2lu
Z0xheWVyOgogICAgIGNhc2UgUGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGVUaWxlZEJhY2tpbmdU
aWxlTGF5ZXI6Ci0gICAgICAgIGlmIChsYXllclByb3BlcnRpZXMgJiYgbGF5ZXJQcm9wZXJ0aWVz
LT5jdXN0b21CZWhhdmlvciA9PSBHcmFwaGljc0xheWVyOjpDdXN0b21TY3JvbGxpbmdCZWhhdmlv
cikgewotICAgICAgICAgICAgaWYgKCFtX2lzRGVidWdMYXllclRyZWVIb3N0KQotICAgICAgICAg
ICAgICAgIHZpZXcgPSBhZG9wdE5TKFtbVUlTY3JvbGxWaWV3IGFsbG9jXSBpbml0XSk7Ci0gICAg
ICAgICAgICBlbHNlIC8vIFRoZSBkZWJ1ZyBpbmRpY2F0b3IgcGFyZW50cyB2aWV3cyB1bmRlciBs
YXllcnMsIHdoaWNoIGNhbiBjYXVzZSBjcmFzaGVzIHdpdGggVUlTY3JvbGxWaWV3LgotICAgICAg
ICAgICAgICAgIHZpZXcgPSBhZG9wdE5TKFtbVUlWaWV3IGFsbG9jXSBpbml0XSk7Ci0gICAgICAg
IH0gZWxzZQotICAgICAgICAgICAgdmlldyA9IGFkb3B0TlMoW1tXS0NvbXBvc2l0aW5nVmlldyBh
bGxvY10gaW5pdF0pOworICAgICAgICB2aWV3ID0gYWRvcHROUyhbW1dLQ29tcG9zaXRpbmdWaWV3
IGFsbG9jXSBpbml0XSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUGxhdGZvcm1DQUxheWVy
OjpMYXllclR5cGVCYWNrZHJvcExheWVyOgogICAgICAgICB2aWV3ID0gYWRvcHROUyhbW1dLQmFj
a2Ryb3BWaWV3IGFsbG9jXSBpbml0XSk7CkBAIC0xOTgsNiArMTkyLDEyIEBAIExheWVyT3JWaWV3
ICpSZW1vdGVMYXllclRyZWVIb3N0OjpjcmVhdGVMYXllcihjb25zdCBSZW1vdGVMYXllclRyZWVU
cmFuc2FjdGlvbjo6CiAgICAgY2FzZSBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZVNoYXBlTGF5
ZXI6CiAgICAgICAgIHZpZXcgPSBhZG9wdE5TKFtbV0tTaGFwZVZpZXcgYWxsb2NdIGluaXRdKTsK
ICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZVNjcm9s
bGluZ0xheWVyOgorICAgICAgICBpZiAoIW1faXNEZWJ1Z0xheWVyVHJlZUhvc3QpCisgICAgICAg
ICAgICB2aWV3ID0gYWRvcHROUyhbW1VJU2Nyb2xsVmlldyBhbGxvY10gaW5pdF0pOworICAgICAg
ICBlbHNlIC8vIFRoZSBkZWJ1ZyBpbmRpY2F0b3IgcGFyZW50cyB2aWV3cyB1bmRlciBsYXllcnMs
IHdoaWNoIGNhbiBjYXVzZSBjcmFzaGVzIHdpdGggVUlTY3JvbGxWaWV3LgorICAgICAgICAgICAg
dmlldyA9IGFkb3B0TlMoW1tVSVZpZXcgYWxsb2NdIGluaXRdKTsKKyAgICAgICAgYnJlYWs7CiAg
ICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVIb3N0Lm1t
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVIb3N0Lm1tCmlu
ZGV4IDI4NmE2NzU2MzlkNjMwMzAxNDI4MTBhNjM2NGVkMTE4MTUxMzFmYjEuLjE2Y2QyN2U4Yzc2
NDY5MDFhMTYxMjZjNTdlNWY3YmJmZjIyZjhkYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlSG9zdC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZUhvc3QubW0KQEAgLTIyMiw2ICsyMjIsNyBA
QCBMYXllck9yVmlldyAqUmVtb3RlTGF5ZXJUcmVlSG9zdDo6Y3JlYXRlTGF5ZXIoY29uc3QgUmVt
b3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OgogICAgIGNhc2UgUGxhdGZvcm1DQUxheWVyOjpMYXll
clR5cGVUaWxlZEJhY2tpbmdMYXllcjoKICAgICBjYXNlIFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJU
eXBlUGFnZVRpbGVkQmFja2luZ0xheWVyOgogICAgIGNhc2UgUGxhdGZvcm1DQUxheWVyOjpMYXll
clR5cGVUaWxlZEJhY2tpbmdUaWxlTGF5ZXI6CisgICAgY2FzZSBQbGF0Zm9ybUNBTGF5ZXI6Okxh
eWVyVHlwZVNjcm9sbGluZ0xheWVyOgogICAgICAgICBsYXllciA9IGFkb3B0TlMoW1tDQUxheWVy
IGFsbG9jXSBpbml0XSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUGxhdGZvcm1DQUxheWVy
OjpMYXllclR5cGVUcmFuc2Zvcm1MYXllcjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9tYWMvR3JhcGhpY3NMYXllckNBUmVtb3RlLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0dyYXBoaWNzTGF5ZXJDQVJlbW90ZS5oCmluZGV4
IDMyZTZiZDFmMDM0YmViYTI3Zjk1OWI5OWI1MGRhMzMwMmZlYzkwNGUuLjZmNGNmMGY0ZTdiYjQ4
Y2IyZGFmMzkyYTUxMjNkODdlZTE4YjE4ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9tYWMvR3JhcGhpY3NMYXllckNBUmVtb3RlLmgKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9HcmFwaGljc0xheWVyQ0FSZW1vdGUuaApA
QCAtMzUsOCArMzUsOCBAQCBjbGFzcyBSZW1vdGVMYXllclRyZWVDb250ZXh0OwogCiBjbGFzcyBH
cmFwaGljc0xheWVyQ0FSZW1vdGUgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6R3JhcGhpY3NMYXll
ckNBIHsKIHB1YmxpYzoKLSAgICBHcmFwaGljc0xheWVyQ0FSZW1vdGUoV2ViQ29yZTo6R3JhcGhp
Y3NMYXllckNsaWVudCYgY2xpZW50LCBSZW1vdGVMYXllclRyZWVDb250ZXh0JiBjb250ZXh0KQot
ICAgICAgICA6IEdyYXBoaWNzTGF5ZXJDQShjbGllbnQpCisgICAgR3JhcGhpY3NMYXllckNBUmVt
b3RlKFR5cGUgbGF5ZXJUeXBlLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyQ2xpZW50JiBjbGllbnQs
IFJlbW90ZUxheWVyVHJlZUNvbnRleHQmIGNvbnRleHQpCisgICAgICAgIDogR3JhcGhpY3NMYXll
ckNBKGxheWVyVHlwZSwgY2xpZW50KQogICAgICAgICAsIG1fY29udGV4dChjb250ZXh0KQogICAg
IHsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
bWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHAKaW5kZXggMThiMDRhYjk0ZDEx
NDM4YWMwYmY3MzMyYzVjMzdjODA3Y2JhOThjNy4uOGIwZGEzYTI2Y2U5YWJjZWMzZmUwM2Y2N2M3
NWYwZmIyMDYyNGIzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmNwcApAQCAtNzI0LDE3
ICs3MjQsNiBAQCB2b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6dXBkYXRlQ3VzdG9tQXBwZWFy
YW5jZShHcmFwaGljc0xheWVyOjpDdXN0b21BcHBlYXJhbgogICAgIG1fcHJvcGVydGllcy5ub3Rl
UHJvcGVydGllc0NoYW5nZWQoUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkN1c3RvbUFwcGVh
cmFuY2VDaGFuZ2VkKTsKIH0KIAotR3JhcGhpY3NMYXllcjo6Q3VzdG9tQmVoYXZpb3IgUGxhdGZv
cm1DQUxheWVyUmVtb3RlOjpjdXN0b21CZWhhdmlvcigpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1f
cHJvcGVydGllcy5jdXN0b21CZWhhdmlvcjsKLX0KLQotdm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1v
dGU6OnVwZGF0ZUN1c3RvbUJlaGF2aW9yKEdyYXBoaWNzTGF5ZXI6OkN1c3RvbUJlaGF2aW9yIGN1
c3RvbUJlaGF2aW9yKQotewotICAgIG1fcHJvcGVydGllcy5jdXN0b21CZWhhdmlvciA9IGN1c3Rv
bUJlaGF2aW9yOwotICAgIG1fcHJvcGVydGllcy5ub3RlUHJvcGVydGllc0NoYW5nZWQoUmVtb3Rl
TGF5ZXJUcmVlVHJhbnNhY3Rpb246OkN1c3RvbUJlaGF2aW9yQ2hhbmdlZCk7Ci19Ci0KIFBhc3NS
ZWZQdHI8UGxhdGZvcm1DQUxheWVyPiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OmNyZWF0ZUNvbXBh
dGlibGVMYXllcihQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZSBsYXllclR5cGUsIFBsYXRmb3Jt
Q0FMYXllckNsaWVudCogY2xpZW50KSBjb25zdAogewogICAgIHJldHVybiBQbGF0Zm9ybUNBTGF5
ZXJSZW1vdGU6OmNyZWF0ZShsYXllclR5cGUsIGNsaWVudCwgKm1fY29udGV4dCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXll
clJlbW90ZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9y
bUNBTGF5ZXJSZW1vdGUuaAppbmRleCBkNjBhYzM1NDRhYmMzOGVlYmFiYzIzMTkxNWMyNGY2ZWY5
MDZjOTMzLi40YTUxMmM2ZjRiNWU2YWU0NTYwOTY4MmI5MWY1MGE5Y2FmZTViNjNlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXll
clJlbW90ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxh
dGZvcm1DQUxheWVyUmVtb3RlLmgKQEAgLTE1MCw5ICsxNTAsNiBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpDdXN0b21BcHBlYXJhbmNlIGN1c3RvbUFwcGVh
cmFuY2UoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQ3VzdG9tQXBw
ZWFyYW5jZShXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpDdXN0b21BcHBlYXJhbmNlKSBvdmVycmlk
ZTsKIAotICAgIHZpcnR1YWwgV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6Q3VzdG9tQmVoYXZpb3Ig
Y3VzdG9tQmVoYXZpb3IoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRl
Q3VzdG9tQmVoYXZpb3IoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6Q3VzdG9tQmVoYXZpb3IpIG92
ZXJyaWRlOwotCiAgICAgdmlydHVhbCBXZWJDb3JlOjpUaWxlZEJhY2tpbmcqIHRpbGVkQmFja2lu
ZygpIG92ZXJyaWRlIHsgcmV0dXJuIG51bGxwdHI7IH0KIAogICAgIHZpcnR1YWwgUGFzc1JlZlB0
cjxXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXI+IGNsb25lKFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXll
ckNsaWVudCogb3duZXIpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVDb250ZXh0LmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQu
aAppbmRleCA3ZTlkNWNhYTM3ZTg5MDQ0MTkyMDc0OGRhOWYxYTAzMzE2ZGNjOGU0Li45NTM2NmU2
MzFlZWE5MGNiZGY3NzI3YTUyZDZmYWFjZWM0OTM3OGNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNv
bnRleHQuaApAQCAtNzMsNyArNzMsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgLy8gV2Vi
Q29yZTo6R3JhcGhpY3NMYXllckZhY3RvcnkKLSAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxX
ZWJDb3JlOjpHcmFwaGljc0xheWVyPiBjcmVhdGVHcmFwaGljc0xheWVyKFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXJDbGllbnQmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxX
ZWJDb3JlOjpHcmFwaGljc0xheWVyPiBjcmVhdGVHcmFwaGljc0xheWVyKFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXI6OlR5cGUsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDbGllbnQmKSBvdmVycmlkZTsK
IAogICAgIFdlYlBhZ2UmIG1fd2ViUGFnZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVDb250ZXh0Lm1tIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVDb250ZXh0Lm1t
CmluZGV4IDdkMjRlNzYyNmFkYWFmMGMxZWY3MDlkODg2NDdmZDEwOTI0NzljNjYuLmJhNDM2ZmVk
YjQxNzlhZDBkNGJhMzY1ZjlhMTFhNzE5YzA3MGE4YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNv
bnRleHQubW0KQEAgLTk4LDkgKzk4LDkgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVDb250ZXh0Ojpi
YWNraW5nU3RvcmVXaWxsQmVEaXNwbGF5ZWQoUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUKICAgICBt
X2JhY2tpbmdTdG9yZUNvbGxlY3Rpb24uYmFja2luZ1N0b3JlV2lsbEJlRGlzcGxheWVkKGJhY2tp
bmdTdG9yZSk7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBSZW1vdGVMYXll
clRyZWVDb250ZXh0OjpjcmVhdGVHcmFwaGljc0xheWVyKEdyYXBoaWNzTGF5ZXJDbGllbnQmIGNs
aWVudCkKK3N0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBSZW1vdGVMYXllclRyZWVDb250
ZXh0OjpjcmVhdGVHcmFwaGljc0xheWVyKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OlR5cGUgbGF5
ZXJUeXBlLCBHcmFwaGljc0xheWVyQ2xpZW50JiBjbGllbnQpCiB7Ci0gICAgcmV0dXJuIHN0ZDo6
bWFrZV91bmlxdWU8R3JhcGhpY3NMYXllckNBUmVtb3RlPihjbGllbnQsICp0aGlzKTsKKyAgICBy
ZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxHcmFwaGljc0xheWVyQ0FSZW1vdGU+KGxheWVyVHlwZSwg
Y2xpZW50LCAqdGhpcyk7CiB9CiAKIHZvaWQgUmVtb3RlTGF5ZXJUcmVlQ29udGV4dDo6YnVpbGRU
cmFuc2FjdGlvbihSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24sIFBsYXRm
b3JtQ0FMYXllciYgcm9vdExheWVyKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>246020</attachid>
            <date>2015-02-03 22:57:02 -0800</date>
            <delta_ts>2015-02-04 09:14:12 -0800</delta_ts>
            <desc>More EWSing</desc>
            <filename>bug-141223-20150203225701.patch</filename>
            <type>text/plain</type>
            <size>54106</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc5NTkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWMzZjI2NmNlZDFiZmFi
MDA0ZWUwYzU5MTYzNzkwNjBlNjA1MGRhZi4uOGUyNGFkYzhmZWUxY2IyODBkMjZhOGY1ZjcwOWVj
YzM0ZDdhNTg2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY0IEBACisyMDE1LTAyLTAzICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1MgV0syXSBB
c3NlcnQgaW4gU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUzo6dXBkYXRlQWZ0
ZXJDaGlsZHJlbigpIG9uIHRhYiBzd2l0Y2hpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MTIyMworICAgICAgICByZGFyOi8vcHJvYmxlbS8xODQ1
ODk5MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAg
ICAgICAgSXQncyBwb3NzaWJsZSB0byBzdWJtaXQgYSBSZW1vdGVMYXllclRyZWUgdHJhbnNhY3Rp
b24gdGhhdCBjb250YWlucyBkYXRhCisgICAgICAgIGFib3V0IGEgY3JlYXRlZCBsYXllciwgYnV0
IGRvZXNuJ3QgaGF2ZSBhbnkgcHJvcGVydGllcyBmb3IgdGhhdCBsYXllci4gVGhpcworICAgICAg
ICBoYXBwZW5zIHdoZW4gdGhlIG5ld2x5IGNyZWF0ZWQgbGF5ZXIgaXNuJ3QgcmVhY2hlZCBkdXJp
bmcgdGhlIHRyYXZlcnNhbCB0aGF0CisgICAgICAgIGdhdGhlcnMgbGF5ZXIgcHJvcGVydGllcyAo
aS5lLiBpdCdzIG5vdCByb290ZWQpLiBIb3dldmVyLCB3aGV0aGVyIHdlIGNyZWF0ZQorICAgICAg
ICBhIHNjcm9sbGluZyBsYXllciBvciBub3QgcmVxdWlyZXMgaGF2aW5nIHByb3BlcnRpZXM7IHRo
ZXkgYXJlIG1pc3NpbmcsIHNvIHdlCisgICAgICAgIGNyZWF0ZSBhIG5vcm1hbCBsYXllciwgYnV0
IHRoZW4gdGhlIHNjcm9sbGluZyB0cmVlIGNvbW1pdCBhc3NlcnRzIHRoYXQgd2UKKyAgICAgICAg
c2hvdWxkIGhhdmUgYSBzY3JvbGxpbmcgbGF5ZXIuCisgICAgICAgIAorICAgICAgICBGaXggYnkg
bWFraW5nIHNjcm9sbGluZyBsYXllcnMgaGF2ZSBhIGNvcnJlc3BvbmRpbmcgbGF5ZXIgdHlwZSwg
d2hpY2ggaXMKKyAgICAgICAgc3RvcmVkIGluIGxheWVyIGNyZWF0aW9uIHByb3BlcnRpZXMuIFRo
aXMgcmVxdWlyZWQgZXhwb3NpbmcgbGF5ZXIgdHlwZXMKKyAgICAgICAgdXAgdGhyb3VnaCBHcmFw
aGljc0xheWVyLCBidXQgdGhhdCBhbGxvd3MgZm9yIHNvbWUgbmljZSBjbGVhbnVwOgorICAgICAg
ICAKKyAgICAgICAgMS4gTm8gbmVlZCB0byBoYXZlIHRoZSBob2tleSBzaG91bGRVc2VUaWxlZEJh
Y2tpbmcoKSBHcmFwaGljc0xheWVyQ2xpZW50IGhhY2sKKyAgICAgICAgICAgZm9yIGNyZWF0aW5n
IHRoZSBwYWdlIHRpbGVkIGxheWVyLgorICAgICAgICAyLiBUaGUgbm90aW9uIG9mICJjdXN0b20g
YmVoYXZpb3JzIiBjYW4gYmUgcmVtb3ZlZCBmcm9tIEdyYXBoaWNzTGF5ZXIgZW50aXJlbHkuCisK
KyAgICAgICAgTm90IHRlc3RhYmxlIGJlY2F1c2UgaXQgcmVxdWlyZXMgdGFiIHN3aXRjaGluZy4K
KworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6R3Jh
cGhpY3NMYXllcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5o
OgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6aW5pdGlhbGl6ZSk6CisgICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpzZXRDdXN0b21CZWhhdmlvcik6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpjdXN0b21CZWhhdmlvcik6IERlbGV0ZWQu
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNsaWVudDo6c2hvdWxkVXNlVGlsZWRCYWNraW5n
KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyRmFj
dG9yeS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjpHcmFwaGljc0xheWVyQ0EpOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NMYXllckNBOjppbml0aWFsaXplKToKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXJDQTo6Y29tbWl0TGF5ZXJDaGFuZ2VzQmVmb3JlU3VibGF5ZXJzKToKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6ZW5zdXJlU3RydWN0dXJhbExheWVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6c3dhcEZyb21PclRvVGlsZWRMYXllcik6
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZUN1c3RvbUJlaGF2aW9y
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6c2V0Q3VzdG9t
QmVoYXZpb3IpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBo
aWNzTGF5ZXJDQS5oOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjptb3ZlQW5p
bWF0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OmNvcHlBbmltYXRp
b25zKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBTGF5ZXIuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUxheWVyTWFjLmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5t
bToKKyAgICAgICAgKFBsYXRmb3JtQ0FMYXllck1hYzo6UGxhdGZvcm1DQUxheWVyTWFjKToKKyAg
ICAgICAgKFBsYXRmb3JtQ0FMYXllck1hYzo6Y29tbW9uSW5pdCk6CisgICAgICAgIChQbGF0Zm9y
bUNBTGF5ZXJNYWM6OnVwZGF0ZUN1c3RvbUJlaGF2aW9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyQmFja2luZzo6Y3JlYXRlR3JhcGhpY3NMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMYXllckJhY2tpbmc6OmNyZWF0ZVByaW1hcnlHcmFwaGljc0xheWVyKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlU2Nyb2xsaW5nTGF5ZXJzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6c2hvdWxkVXNlVGlsZWRCYWNraW5n
KTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmg6CisK
IDIwMTUtMDItMDMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBE
cm9wIFJlc291cmNlTG9hZFByaW9yaXR5VW5yZXNvbHZlZCByZXNvdXJjZSBsb2FkIHByaW9yaXR5
IGFuZCB1c2UgT3B0aW9uYWw8PiBpbnN0ZWFkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNTlkMzUzNTFlZGYxZGFh
NWFlYmY2NjUyNDJjNDZjYjNmMDg1OTZlNi4uYTc2YmQ1YWU0N2NmOTMzNjRhY2UyODgxNmI1ZWNj
NTY4NWIwMjM1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE1LTAyLTAzICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1MgV0syXSBB
c3NlcnQgaW4gU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUzo6dXBkYXRlQWZ0
ZXJDaGlsZHJlbigpIG9uIHRhYiBzd2l0Y2hpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MTIyMworICAgICAgICByZGFyOi8vcHJvYmxlbS8xODQ1
ODk5MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEl0
J3MgcG9zc2libGUgdG8gc3VibWl0IGEgUmVtb3RlTGF5ZXJUcmVlIHRyYW5zYWN0aW9uIHRoYXQg
Y29udGFpbnMgZGF0YQorICAgICAgICBhYm91dCBhIGNyZWF0ZWQgbGF5ZXIsIGJ1dCBkb2Vzbid0
IGhhdmUgYW55IHByb3BlcnRpZXMgZm9yIHRoYXQgbGF5ZXIuIFRoaXMKKyAgICAgICAgaGFwcGVu
cyB3aGVuIHRoZSBuZXdseSBjcmVhdGVkIGxheWVyIGlzbid0IHJlYWNoZWQgZHVyaW5nIHRoZSB0
cmF2ZXJzYWwgdGhhdAorICAgICAgICBnYXRoZXJzIGxheWVyIHByb3BlcnRpZXMgKGkuZS4gaXQn
cyBub3Qgcm9vdGVkKS4gSG93ZXZlciwgd2hldGhlciB3ZSBjcmVhdGUKKyAgICAgICAgYSBzY3Jv
bGxpbmcgbGF5ZXIgb3Igbm90IHJlcXVpcmVzIGhhdmluZyBwcm9wZXJ0aWVzOyB0aGV5IGFyZSBt
aXNzaW5nLCBzbyB3ZQorICAgICAgICBjcmVhdGUgYSBub3JtYWwgbGF5ZXIsIGJ1dCB0aGVuIHRo
ZSBzY3JvbGxpbmcgdHJlZSBjb21taXQgYXNzZXJ0cyB0aGF0IHdlCisgICAgICAgIHNob3VsZCBo
YXZlIGEgc2Nyb2xsaW5nIGxheWVyLgorICAgICAgICAKKyAgICAgICAgRml4IGJ5IG1ha2luZyBz
Y3JvbGxpbmcgbGF5ZXJzIGhhdmUgYSBjb3JyZXNwb25kaW5nIGxheWVyIHR5cGUsIHdoaWNoIGlz
CisgICAgICAgIHN0b3JlZCBpbiBsYXllciBjcmVhdGlvbiBwcm9wZXJ0aWVzLiBUaGlzIHJlcXVp
cmVkIGV4cG9zaW5nIGxheWVyIHR5cGVzCisgICAgICAgIHVwIHRocm91Z2ggR3JhcGhpY3NMYXll
ciwgYnV0IHRoYXQgYWxsb3dzIGZvciBzb21lIG5pY2UgY2xlYW51cDoKKyAgICAgICAgCisgICAg
ICAgIDEuIE5vIG5lZWQgdG8gaGF2ZSB0aGUgaG9rZXkgc2hvdWxkVXNlVGlsZWRCYWNraW5nKCkg
R3JhcGhpY3NMYXllckNsaWVudCBoYWNrCisgICAgICAgICAgIGZvciBjcmVhdGluZyB0aGUgcGFn
ZSB0aWxlZCBsYXllci4KKyAgICAgICAgMi4gVGhlIG5vdGlvbiBvZiAiY3VzdG9tIGJlaGF2aW9y
cyIgY2FuIGJlIHJlbW92ZWQgZnJvbSBHcmFwaGljc0xheWVyIGVudGlyZWx5LgorCisgICAgICAg
ICogU2hhcmVkL21hYy9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5tbToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OmRyYXdJbkNvbnRleHQpOgorICAgICAgICAqIFNo
YXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24uaDoKKyAgICAgICAgKiBTaGFyZWQv
bWFjL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVMYXllclRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJQcm9wZXJ0aWVzOjpMYXllclByb3BlcnRpZXMp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJQcm9w
ZXJ0aWVzOjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVUcmFuc2Fj
dGlvbjo6TGF5ZXJQcm9wZXJ0aWVzOjpkZWNvZGUpOgorICAgICAgICAoV2ViS2l0OjpkdW1wQ2hh
bmdlZExheWVycyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9u
OjpkZXNjcmlwdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9SZW1vdGVMYXllclRyZWVI
b3N0SU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVIb3N0OjpjcmVhdGVM
YXllcik6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVIb3N0Lm1tOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVIb3N0OjpjcmVhdGVMYXllcik6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9HcmFwaGljc0xheWVyQ0FSZW1vdGUuaDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlBsYXRmb3JtQ0FMYXllclJlbW90ZTo6Y3VzdG9tQmVoYXZpb3Ip
OiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnVwZGF0
ZUN1c3RvbUJlaGF2aW9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
bWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9tYWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5tbToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlTGF5ZXJUcmVlQ29udGV4dDo6Y3JlYXRlR3JhcGhpY3NMYXllcik6CisKIDIwMTUtMDItMDMg
IFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIFdL
UGFnZU5hdmlnYXRpb25DbGllbnQgYXMgQyBTUEkgYXJvdW5kIEFQSTo6TmF2aWdhdGlvbkNsaWVu
dCwgYW5kIGFkb3B0IGluIFdLVFIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
ZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggMTViYjQ3ZWI2N2Q5
OWI1OTM2MmE5YmE0ODdkZTNmOWZkYWYzZDg1NC4uMmQ2ZTdiZGI0YzFhN2VlNzU2M2RmMTBiZjFl
MGM2MWQzMWFiOTVlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4K
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTMxMSwxMCArMzExLDkgQEAg
X19aTjdXZWJDb3JlMTNHcmFwaGljc0xheWVyMTdzdXNwZW5kQW5pbWF0aW9uc0VkCiBfX1pON1dl
YkNvcmUxM0dyYXBoaWNzTGF5ZXIxOHNldEJhY2tncm91bmRDb2xvckVSS05TXzVDb2xvckUKIF9f
Wk43V2ViQ29yZTEzR3JhcGhpY3NMYXllcjIwc2V0UmVwbGljYXRlZEJ5TGF5ZXJFUFMwXwogX19a
TjdXZWJDb3JlMTNHcmFwaGljc0xheWVyNTRub3RlRGV2aWNlT3JQYWdlU2NhbGVGYWN0b3JDaGFu
Z2VkSW5jbHVkaW5nRGVzY2VuZGFudHNFdgotX19aTjdXZWJDb3JlMTNHcmFwaGljc0xheWVyNmNy
ZWF0ZUVQTlNfMjBHcmFwaGljc0xheWVyRmFjdG9yeUVSTlNfMTlHcmFwaGljc0xheWVyQ2xpZW50
RQorX19aTjdXZWJDb3JlMTNHcmFwaGljc0xheWVyNmNyZWF0ZUVQTlNfMjBHcmFwaGljc0xheWVy
RmFjdG9yeUVSTlNfMTlHcmFwaGljc0xheWVyQ2xpZW50RU5TMF80VHlwZUUKIF9fWk43V2ViQ29y
ZTEzR3JhcGhpY3NMYXllcjdzZXRTaXplRVJLTlNfOUZsb2F0U2l6ZUUKIF9fWk43V2ViQ29yZTEz
R3JhcGhpY3NMYXllcjhhZGRDaGlsZEVQUzBfCi1fX1pON1dlYkNvcmUxM0dyYXBoaWNzTGF5ZXJD
MkVSTlNfMTlHcmFwaGljc0xheWVyQ2xpZW50RQogX19aTjdXZWJDb3JlMTNHcmFwaGljc0xheWVy
RDJFdgogX19aTjdXZWJDb3JlMTNIVFRQSGVhZGVyTWFwM3NldEVSS04zV1RGNlN0cmluZ0VTNF8K
IF9fWk43V2ViQ29yZTEzSFRUUEhlYWRlck1hcDZyZW1vdmVFTlNfMTRIVFRQSGVhZGVyTmFtZUUK
QEAgLTU2Miw3ICs1NjEsNyBAQCBfX1pON1dlYkNvcmUxNUdyYXBoaWNzQ29udGV4dDlzZXRTaGFk
b3dFUktOU185RmxvYXRTaXplRWZSS05TXzVDb2xvckVOU18xMENvbG9yUwogX19aTjdXZWJDb3Jl
MTVHcmFwaGljc0NvbnRleHQ5dHJhbnNsYXRlRWZmCiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzQ29u
dGV4dEMxRVA5Q0dDb250ZXh0CiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzQ29udGV4dEQxRXYKLV9f
Wk43V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBMTBpbml0aWFsaXplRXYKK19fWk43V2ViQ29yZTE1
R3JhcGhpY3NMYXllckNBMTBpbml0aWFsaXplRU5TXzEzR3JhcGhpY3NMYXllcjRUeXBlRQogX19a
TjdXZWJDb3JlMTVHcmFwaGljc0xheWVyQ0ExMHNldEZpbHRlcnNFUktOU18xNkZpbHRlck9wZXJh
dGlvbnNFCiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQTEwc2V0T3BhY2l0eUVmCiBfX1pO
N1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQTExc2V0Q2hpbGRyZW5FUktOM1dURjZWZWN0b3JJUE5T
XzEzR3JhcGhpY3NMYXllckVMbTBFTlMxXzE1Q3Jhc2hPbk92ZXJmbG93RUVFCkBAIC01OTAsNyAr
NTg5LDYgQEAgX19aTjdXZWJDb3JlMTVHcmFwaGljc0xheWVyQ0ExNnJlbW92ZUZyb21QYXJlbnRF
dgogX19aTjdXZWJDb3JlMTVHcmFwaGljc0xheWVyQ0ExNnJlc3VtZUFuaW1hdGlvbnNFdgogX19a
TjdXZWJDb3JlMTVHcmFwaGljc0xheWVyQ0ExNnNldE1hc2tzVG9Cb3VuZHNFYgogX19aTjdXZWJD
b3JlMTVHcmFwaGljc0xheWVyQ0ExN3NldENvbnRlbnRzT3BhcXVlRWIKLV9fWk43V2ViQ29yZTE1
R3JhcGhpY3NMYXllckNBMTdzZXRDdXN0b21CZWhhdmlvckVOU18xM0dyYXBoaWNzTGF5ZXIxNEN1
c3RvbUJlaGF2aW9yRQogX19aTjdXZWJDb3JlMTVHcmFwaGljc0xheWVyQ0ExN3N1c3BlbmRBbmlt
YXRpb25zRWQKIF9fWk43V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBMThzZXRCYWNrZHJvcEZpbHRl
cnNFUktOU18xNkZpbHRlck9wZXJhdGlvbnNFCiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJD
QTE4c2V0QmFja2dyb3VuZENvbG9yRVJLTlNfNUNvbG9yRQpAQCAtNjIyLDcgKzYyMCw3IEBAIF9f
Wk43V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBNDBwbGF0Zm9ybUNBTGF5ZXJTZXROZWVkc1RvUmV2
YWxpZGF0ZVRpbGVzRXYKIF9fWk43V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBN3NldE5hbWVFUktO
M1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQTdzZXRTaXplRVJLTlNf
OUZsb2F0U2l6ZUUKIF9fWk43V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBOGFkZENoaWxkRVBOU18x
M0dyYXBoaWNzTGF5ZXJFCi1fX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQUMyRVJOU18xOUdy
YXBoaWNzTGF5ZXJDbGllbnRFCitfX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQUMyRU5TXzEz
R3JhcGhpY3NMYXllcjRUeXBlRVJOU18xOUdyYXBoaWNzTGF5ZXJDbGllbnRFCiBfX1pON1dlYkNv
cmUxNUdyYXBoaWNzTGF5ZXJDQUQyRXYKIF9fWk43V2ViQ29yZTE1SGl0VGVzdExvY2F0aW9uMTJy
ZWN0Rm9yUG9pbnRFUktOU18xMUxheW91dFBvaW50RWpqamoKIF9fWk43V2ViQ29yZTE1SGl0VGVz
dExvY2F0aW9uQzFFUktOU18xMEZsb2F0UG9pbnRFCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCmluZGV4IDk3OTliODVlOTU5NTkxNTMx
MzJjZjRlY2UxZDI3ZmUyYzYxM2E0YjAuLjI5YWU1MjFlNjE4YzBiODk4NzNhNDM5NTcyZWNiZjAz
MGUzMzFhOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzTGF5ZXIuY3BwCkBAIC03MSw3ICs3MSw3IEBAIHZvaWQgS2V5ZnJhbWVWYWx1ZUxpc3Q6
Omluc2VydChzdGQ6OnVuaXF1ZV9wdHI8Y29uc3QgQW5pbWF0aW9uVmFsdWU+IHZhbHVlKQogICAg
IG1fdmFsdWVzLmFwcGVuZChXVEY6Om1vdmUodmFsdWUpKTsKIH0KIAotR3JhcGhpY3NMYXllcjo6
R3JhcGhpY3NMYXllcihHcmFwaGljc0xheWVyQ2xpZW50JiBjbGllbnQpCitHcmFwaGljc0xheWVy
OjpHcmFwaGljc0xheWVyKFR5cGUsIEdyYXBoaWNzTGF5ZXJDbGllbnQmIGNsaWVudCkKICAgICA6
IG1fY2xpZW50KGNsaWVudCkKICAgICAsIG1fYW5jaG9yUG9pbnQoMC41ZiwgMC41ZiwgMCkKICAg
ICAsIG1fb3BhY2l0eSgxKQpAQCAtOTksNyArOTksNiBAQCBHcmFwaGljc0xheWVyOjpHcmFwaGlj
c0xheWVyKEdyYXBoaWNzTGF5ZXJDbGllbnQmIGNsaWVudCkKICAgICAsIG1fcmVwbGljYXRlZExh
eWVyKG51bGxwdHIpCiAgICAgLCBtX3JlcGFpbnRDb3VudCgwKQogICAgICwgbV9jdXN0b21BcHBl
YXJhbmNlKE5vQ3VzdG9tQXBwZWFyYW5jZSkKLSAgICAsIG1fY3VzdG9tQmVoYXZpb3IoTm9DdXN0
b21CZWhhdmlvcikKIHsKICNpZm5kZWYgTkRFQlVHCiAgICAgbV9jbGllbnQudmVyaWZ5Tm90UGFp
bnRpbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
TGF5ZXIuaAppbmRleCA2NWFhMjM2MGI3OTliNDVkMzhiZTZjMGJhOWY2MjI0YTE2ZTQ4NzVjLi5l
NThiZjI0NWY3NjNhNmNiOTUyYmQ1YzE5ZDEwMGY1YTFmNmYxYmIxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCkBAIC0xOTQsMTEgKzE5
NCwxOCBAQCBwcm90ZWN0ZWQ6CiBjbGFzcyBHcmFwaGljc0xheWVyIHsKICAgICBXVEZfTUFLRV9O
T05DT1BZQUJMRShHcmFwaGljc0xheWVyKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJs
aWM6Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xh
eWVyPiBjcmVhdGUoR3JhcGhpY3NMYXllckZhY3RvcnkqLCBHcmFwaGljc0xheWVyQ2xpZW50Jik7
CisKKyAgICBlbnVtIGNsYXNzIFR5cGUgeworICAgICAgICBOb3JtYWwsCisgICAgICAgIFBhZ2VU
aWxlZEJhY2tpbmcsCisgICAgICAgIFNjcm9sbGluZworICAgIH07CisgICAgCisgICAgV0VCQ09S
RV9FWFBPUlQgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBjcmVhdGUoR3Jh
cGhpY3NMYXllckZhY3RvcnkqLCBHcmFwaGljc0xheWVyQ2xpZW50JiwgVHlwZSA9IFR5cGU6Ok5v
cm1hbCk7CiAgICAgCiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB+R3JhcGhpY3NMYXllcigp
OwogCi0gICAgdmlydHVhbCB2b2lkIGluaXRpYWxpemUoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
aW5pdGlhbGl6ZShUeXBlKSB7IH0KIAogICAgIHR5cGVkZWYgdWludDY0X3QgUGxhdGZvcm1MYXll
cklEOwogICAgIHZpcnR1YWwgUGxhdGZvcm1MYXllcklEIHByaW1hcnlMYXllcklEKCkgY29uc3Qg
eyByZXR1cm4gMDsgfQpAQCAtNDI5LDEwICs0MzYsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIHNldEN1c3RvbUFwcGVhcmFuY2UoQ3VzdG9tQXBwZWFyYW5jZSBjdXN0b21BcHBlYXJhbmNl
KSB7IG1fY3VzdG9tQXBwZWFyYW5jZSA9IGN1c3RvbUFwcGVhcmFuY2U7IH0KICAgICBDdXN0b21B
cHBlYXJhbmNlIGN1c3RvbUFwcGVhcmFuY2UoKSBjb25zdCB7IHJldHVybiBtX2N1c3RvbUFwcGVh
cmFuY2U7IH0KIAotICAgIGVudW0gQ3VzdG9tQmVoYXZpb3IgeyBOb0N1c3RvbUJlaGF2aW9yLCBD
dXN0b21TY3JvbGxpbmdCZWhhdmlvciwgQ3VzdG9tU2Nyb2xsZWRDb250ZW50c0JlaGF2aW9yIH07
Ci0gICAgdmlydHVhbCB2b2lkIHNldEN1c3RvbUJlaGF2aW9yKEN1c3RvbUJlaGF2aW9yIGN1c3Rv
bUJlaGF2aW9yKSB7IG1fY3VzdG9tQmVoYXZpb3IgPSBjdXN0b21CZWhhdmlvcjsgfQotICAgIEN1
c3RvbUJlaGF2aW9yIGN1c3RvbUJlaGF2aW9yKCkgY29uc3QgeyByZXR1cm4gbV9jdXN0b21CZWhh
dmlvcjsgfQotCiAgICAgLy8gei1wb3NpdGlvbiBpcyB0aGUgei1lcXVpdmFsZW50IG9mIHBvc2l0
aW9uKCkuIEl0J3Mgb25seSB1c2VkIGZvciBkZWJ1Z2dpbmcgcHVycG9zZXMuCiAgICAgdmlydHVh
bCBmbG9hdCB6UG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX3pQb3NpdGlvbjsgfQogICAgIFdF
QkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBzZXRaUG9zaXRpb24oZmxvYXQpOwpAQCAtNTA3LDYg
KzUxMCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgbmVlZHNDbGlwcGluZ01hc2tMYXll
cigpIHsgcmV0dXJuIHRydWU7IH07CiAKIHByb3RlY3RlZDoKKyAgICBXRUJDT1JFX0VYUE9SVCBl
eHBsaWNpdCBHcmFwaGljc0xheWVyKFR5cGUsIEdyYXBoaWNzTGF5ZXJDbGllbnQmKTsKKwogICAg
IC8vIFNob3VsZCBiZSBjYWxsZWQgZnJvbSBkZXJpdmVkIGNsYXNzIGRlc3RydWN0b3JzLiBTaG91
bGQgY2FsbCB3aWxsQmVEZXN0cm95ZWQoKSBvbiBzdXBlci4KICAgICBXRUJDT1JFX0VYUE9SVCB2
aXJ0dWFsIHZvaWQgd2lsbEJlRGVzdHJveWVkKCk7CiAKQEAgLTUzNCw4ICs1MzksNiBAQCBwcm90
ZWN0ZWQ6CiAgICAgR3JhcGhpY3NMYXllciogcmVwbGljYXRlZExheWVyKCkgY29uc3QgeyByZXR1
cm4gbV9yZXBsaWNhdGVkTGF5ZXI7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0UmVwbGljYXRlZExh
eWVyKEdyYXBoaWNzTGF5ZXIqIGxheWVyKSB7IG1fcmVwbGljYXRlZExheWVyID0gbGF5ZXI7IH0K
IAotICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IEdyYXBoaWNzTGF5ZXIoR3JhcGhpY3NMYXll
ckNsaWVudCYpOwotCiAgICAgdm9pZCBkdW1wUHJvcGVydGllcyhUZXh0U3RyZWFtJiwgaW50IGlu
ZGVudCwgTGF5ZXJUcmVlQXNUZXh0QmVoYXZpb3IpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBk
dW1wQWRkaXRpb25hbFByb3BlcnRpZXMoVGV4dFN0cmVhbSYsIGludCAvKmluZGVudCovLCBMYXll
clRyZWVBc1RleHRCZWhhdmlvcikgY29uc3QgeyB9CiAKQEAgLTYwMSw3ICs2MDQsNiBAQCBwcm90
ZWN0ZWQ6CiAKICAgICBpbnQgbV9yZXBhaW50Q291bnQ7CiAgICAgQ3VzdG9tQXBwZWFyYW5jZSBt
X2N1c3RvbUFwcGVhcmFuY2U7Ci0gICAgQ3VzdG9tQmVoYXZpb3IgbV9jdXN0b21CZWhhdmlvcjsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJDbGllbnQuaAppbmRleCA2ZWM1NDgwOTU1
NTNiNzQ3OTdiYTM5MzY4OGIzZjI5NDM1MGQ5OGNlLi4xZGNjYzU3MjQzNDQ1NTNkNmRiOTk1ZDI5
MDc2MjMwN2I1ZjlmNGNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0xheWVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oCkBAIC03Myw3ICs3Myw2IEBAIGNsYXNzIEdy
YXBoaWNzTGF5ZXJDbGllbnQgewogcHVibGljOgogICAgIHZpcnR1YWwgfkdyYXBoaWNzTGF5ZXJD
bGllbnQoKSB7fQogCi0gICAgdmlydHVhbCBib29sIHNob3VsZFVzZVRpbGVkQmFja2luZyhjb25z
dCBHcmFwaGljc0xheWVyKikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZv
aWQgdGlsZWRCYWNraW5nVXNhZ2VDaGFuZ2VkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBib29sIC8q
dXNpbmdUaWxlZEJhY2tpbmcqLykgeyB9CiAgICAgCiAgICAgLy8gQ2FsbGJhY2sgZm9yIHdoZW4g
aGFyZHdhcmUtYWNjZWxlcmF0ZWQgYW5pbWF0aW9uIHN0YXJ0ZWQuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyRmFjdG9yeS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckZhY3RvcnkuaAppbmRl
eCAzYzBmM2QxNzNhNTA0MWVlODQ3MjZhMTNhYjEyNzZjN2JhMDQ3ZmUzLi5iYzA5Y2FmMDZiNTZi
MzdkYTI1MjY3YThjNTIxMTlkZWMyYTU1NTM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyRmFjdG9yeS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJGYWN0b3J5LmgKQEAgLTI2LDE4ICsy
NiwxNiBAQAogI2lmbmRlZiBHcmFwaGljc0xheWVyRmFjdG9yeV9oCiAjZGVmaW5lIEdyYXBoaWNz
TGF5ZXJGYWN0b3J5X2gKIAorI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXIuaCIKICNpbmNsdWRlIDx3
dGYvRm9yd2FyZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEdyYXBoaWNzTGF5
ZXI7Ci1jbGFzcyBHcmFwaGljc0xheWVyQ2xpZW50OwotCiBjbGFzcyBHcmFwaGljc0xheWVyRmFj
dG9yeSB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+R3JhcGhpY3NMYXllckZhY3RvcnkoKSB7IH0K
IAotICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IGNyZWF0ZUdyYXBo
aWNzTGF5ZXIoR3JhcGhpY3NMYXllckNsaWVudCYpID0gMDsKKyAgICB2aXJ0dWFsIHN0ZDo6dW5p
cXVlX3B0cjxHcmFwaGljc0xheWVyPiBjcmVhdGVHcmFwaGljc0xheWVyKEdyYXBoaWNzTGF5ZXI6
OlR5cGUsIEdyYXBoaWNzTGF5ZXJDbGllbnQmKSA9IDA7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9H
cmFwaGljc0xheWVyQ0EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Ev
R3JhcGhpY3NMYXllckNBLmNwcAppbmRleCBhMjE0NDNiYTM1ZDZhYWE2NjAwMTY2ZDgxNDY2YTFj
ODc5MmM3MDJjLi5iNzA5N2NlMTIyOWMwOTU1NzY2ZWYxMjM1M2U3OGQxZDZmOTRjNDBmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVy
Q0EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNz
TGF5ZXJDQS5jcHAKQEAgLTI3NiwxNSArMjc2LDE1IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzdXBw
b3J0c0FjY2VsZXJhdGVkRmlsdGVyQW5pbWF0aW9ucygpCiAjZW5kaWYKIH0KIAotc3RkOjp1bmlx
dWVfcHRyPEdyYXBoaWNzTGF5ZXI+IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShHcmFwaGljc0xheWVy
RmFjdG9yeSogZmFjdG9yeSwgR3JhcGhpY3NMYXllckNsaWVudCYgY2xpZW50KQorc3RkOjp1bmlx
dWVfcHRyPEdyYXBoaWNzTGF5ZXI+IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShHcmFwaGljc0xheWVy
RmFjdG9yeSogZmFjdG9yeSwgR3JhcGhpY3NMYXllckNsaWVudCYgY2xpZW50LCBUeXBlIGxheWVy
VHlwZSkKIHsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gZ3JhcGhpY3NMYXll
cjsKICAgICBpZiAoIWZhY3RvcnkpCi0gICAgICAgIGdyYXBoaWNzTGF5ZXIgPSBzdGQ6Om1ha2Vf
dW5pcXVlPEdyYXBoaWNzTGF5ZXJDQT4oY2xpZW50KTsKKyAgICAgICAgZ3JhcGhpY3NMYXllciA9
IHN0ZDo6bWFrZV91bmlxdWU8R3JhcGhpY3NMYXllckNBPihsYXllclR5cGUsIGNsaWVudCk7CiAg
ICAgZWxzZQotICAgICAgICBncmFwaGljc0xheWVyID0gZmFjdG9yeS0+Y3JlYXRlR3JhcGhpY3NM
YXllcihjbGllbnQpOworICAgICAgICBncmFwaGljc0xheWVyID0gZmFjdG9yeS0+Y3JlYXRlR3Jh
cGhpY3NMYXllcihsYXllclR5cGUsIGNsaWVudCk7CiAKLSAgICBncmFwaGljc0xheWVyLT5pbml0
aWFsaXplKCk7CisgICAgZ3JhcGhpY3NMYXllci0+aW5pdGlhbGl6ZShsYXllclR5cGUpOwogCiAg
ICAgcmV0dXJuIGdyYXBoaWNzTGF5ZXI7CiB9CkBAIC0zMjUsOCArMzI1LDggQEAgUGFzc1JlZlB0
cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBHcmFwaGljc0xheWVyQ0E6OmNyZWF0ZVBsYXRmb3JtQ0FB
bmltYXRpb24oUGxhdGYKICNlbmRpZgogfQogCi1HcmFwaGljc0xheWVyQ0E6OkdyYXBoaWNzTGF5
ZXJDQShHcmFwaGljc0xheWVyQ2xpZW50JiBjbGllbnQpCi0gICAgOiBHcmFwaGljc0xheWVyKGNs
aWVudCkKK0dyYXBoaWNzTGF5ZXJDQTo6R3JhcGhpY3NMYXllckNBKFR5cGUgbGF5ZXJUeXBlLCBH
cmFwaGljc0xheWVyQ2xpZW50JiBjbGllbnQpCisgICAgOiBHcmFwaGljc0xheWVyKGxheWVyVHlw
ZSwgY2xpZW50KQogICAgICwgbV9jb250ZW50c0xheWVyUHVycG9zZShOb0NvbnRlbnRzTGF5ZXIp
CiAgICAgLCBtX2lzUGFnZVRpbGVkQmFja2luZ0xheWVyKGZhbHNlKQogICAgICwgbV9uZWVkc0Z1
bGxSZXBhaW50KGZhbHNlKQpAQCAtMzM1LDE1ICszMzUsMjQgQEAgR3JhcGhpY3NMYXllckNBOjpH
cmFwaGljc0xheWVyQ0EoR3JhcGhpY3NMYXllckNsaWVudCYgY2xpZW50KQogewogfQogCi12b2lk
IEdyYXBoaWNzTGF5ZXJDQTo6aW5pdGlhbGl6ZSgpCit2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6aW5p
dGlhbGl6ZShUeXBlIGxheWVyVHlwZSkKIHsKLSAgICBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlw
ZSBsYXllclR5cGUgPSBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZVdlYkxheWVyOwotICAgIGlm
IChjbGllbnQoKS5zaG91bGRVc2VUaWxlZEJhY2tpbmcodGhpcykpIHsKLSAgICAgICAgbGF5ZXJU
eXBlID0gUGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGVQYWdlVGlsZWRCYWNraW5nTGF5ZXI7Cisg
ICAgaWYgKGxheWVyVHlwZSA9PSBUeXBlOjpQYWdlVGlsZWRCYWNraW5nKQogICAgICAgICBtX2lz
UGFnZVRpbGVkQmFja2luZ0xheWVyID0gdHJ1ZTsKLSAgICB9CiAKLSAgICBtX2xheWVyID0gY3Jl
YXRlUGxhdGZvcm1DQUxheWVyKGxheWVyVHlwZSwgdGhpcyk7CisgICAgUGxhdGZvcm1DQUxheWVy
OjpMYXllclR5cGUgcGxhdGZvcm1MYXllclR5cGU7CisgICAgc3dpdGNoIChsYXllclR5cGUpIHsK
KyAgICBjYXNlIFR5cGU6Ok5vcm1hbDoKKyAgICAgICAgcGxhdGZvcm1MYXllclR5cGUgPSBQbGF0
Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZTo6TGF5ZXJUeXBlV2ViTGF5ZXI7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgVHlwZTo6UGFnZVRpbGVkQmFja2luZzoKKyAgICAgICAgcGxhdGZvcm1MYXll
clR5cGUgPSBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZTo6TGF5ZXJUeXBlUGFnZVRpbGVkQmFj
a2luZ0xheWVyOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFR5cGU6OlNjcm9sbGluZzoKKyAg
ICAgICAgcGxhdGZvcm1MYXllclR5cGUgPSBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZTo6TGF5
ZXJUeXBlU2Nyb2xsaW5nTGF5ZXI7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBtX2xheWVy
ID0gY3JlYXRlUGxhdGZvcm1DQUxheWVyKHBsYXRmb3JtTGF5ZXJUeXBlLCB0aGlzKTsKICAgICBu
b3RlTGF5ZXJQcm9wZXJ0eUNoYW5nZWQoQ29udGVudHNTY2FsZUNoYW5nZWQpOwogfQogCkBAIC0x
NDA0LDkgKzE0MTMsNiBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6Y29tbWl0TGF5ZXJDaGFuZ2Vz
QmVmb3JlU3VibGF5ZXJzKENvbW1pdFN0YXRlJiBjb21taXRTdGF0ZQogICAgIGlmIChtX3VuY29t
bWl0dGVkQ2hhbmdlcyAmIEN1c3RvbUFwcGVhcmFuY2VDaGFuZ2VkKQogICAgICAgICB1cGRhdGVD
dXN0b21BcHBlYXJhbmNlKCk7CiAKLSAgICBpZiAobV91bmNvbW1pdHRlZENoYW5nZXMgJiBDdXN0
b21CZWhhdmlvckNoYW5nZWQpCi0gICAgICAgIHVwZGF0ZUN1c3RvbUJlaGF2aW9yKCk7Ci0KICAg
ICBpZiAobV91bmNvbW1pdHRlZENoYW5nZXMgJiBDaGlsZHJlbkNoYW5nZWQpIHsKICAgICAgICAg
dXBkYXRlU3VibGF5ZXJMaXN0KCk7CiAgICAgICAgIC8vIFN1YmxheWVycyBtYXkgc2V0IHRoaXMg
ZmxhZyBhZ2Fpbiwgc28gY2xlYXIgaXQgdG8gYXZvaWQgYWx3YXlzIHVwZGF0aW5nIHN1YmxheWVy
cyBpbiBjb21taXRMYXllckNoYW5nZXNBZnRlclN1YmxheWVycygpLgpAQCAtMTc1MSw3ICsxNzU3
LDcgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OmVuc3VyZVN0cnVjdHVyYWxMYXllcihTdHJ1Y3R1
cmFsTGF5ZXJQdXJwb3NlIHB1cnBvc2UpCiAgICAgICAgICAgICBBU1NFUlQobV9zdHJ1Y3R1cmFs
TGF5ZXItPnN1cGVybGF5ZXIoKSk7CiAgICAgICAgICAgICBtX3N0cnVjdHVyYWxMYXllci0+c3Vw
ZXJsYXllcigpLT5yZXBsYWNlU3VibGF5ZXIoKm1fc3RydWN0dXJhbExheWVyLCAqbV9sYXllcik7
CiAKLSAgICAgICAgICAgIG1vdmVPckNvcHlBbmltYXRpb25zKE1vdmUsIG1fc3RydWN0dXJhbExh
eWVyLmdldCgpLCBtX2xheWVyLmdldCgpKTsKKyAgICAgICAgICAgIG1vdmVBbmltYXRpb25zKG1f
c3RydWN0dXJhbExheWVyLmdldCgpLCBtX2xheWVyLmdldCgpKTsKIAogICAgICAgICAgICAgLy8g
UmVsZWFzZSB0aGUgc3RydWN0dXJhbCBsYXllci4KICAgICAgICAgICAgIG1fc3RydWN0dXJhbExh
eWVyID0gbnVsbHB0cjsKQEAgLTE4MDgsNyArMTgxNCw3IEBAIHZvaWQgR3JhcGhpY3NMYXllckNB
OjplbnN1cmVTdHJ1Y3R1cmFsTGF5ZXIoU3RydWN0dXJhbExheWVyUHVycG9zZSBwdXJwb3NlKQog
ICAgICAgICB9CiAgICAgfQogCi0gICAgbW92ZU9yQ29weUFuaW1hdGlvbnMoTW92ZSwgbV9sYXll
ci5nZXQoKSwgbV9zdHJ1Y3R1cmFsTGF5ZXIuZ2V0KCkpOworICAgIG1vdmVBbmltYXRpb25zKG1f
bGF5ZXIuZ2V0KCksIG1fc3RydWN0dXJhbExheWVyLmdldCgpKTsKIH0KIAogR3JhcGhpY3NMYXll
ckNBOjpTdHJ1Y3R1cmFsTGF5ZXJQdXJwb3NlIEdyYXBoaWNzTGF5ZXJDQTo6c3RydWN0dXJhbExh
eWVyUHVycG9zZSgpIGNvbnN0CkBAIC0zMDAxLDExICszMDA3LDYgQEAgdm9pZCBHcmFwaGljc0xh
eWVyQ0E6OnVwZGF0ZUN1c3RvbUFwcGVhcmFuY2UoKQogICAgIG1fbGF5ZXItPnVwZGF0ZUN1c3Rv
bUFwcGVhcmFuY2UobV9jdXN0b21BcHBlYXJhbmNlKTsKIH0KIAotdm9pZCBHcmFwaGljc0xheWVy
Q0E6OnVwZGF0ZUN1c3RvbUJlaGF2aW9yKCkKLXsKLSAgICBtX2xheWVyLT51cGRhdGVDdXN0b21C
ZWhhdmlvcihtX2N1c3RvbUJlaGF2aW9yKTsKLX0KLQogdm9pZCBHcmFwaGljc0xheWVyQ0E6OnNl
dFNob3dEZWJ1Z0JvcmRlcihib29sIHNob3dCb3JkZXIpCiB7CiAgICAgaWYgKHNob3dCb3JkZXIg
PT0gbV9zaG93RGVidWdCb3JkZXIpCkBAIC0zMTEwLDE1ICszMTExLDYgQEAgdm9pZCBHcmFwaGlj
c0xheWVyQ0E6OnNldEN1c3RvbUFwcGVhcmFuY2UoQ3VzdG9tQXBwZWFyYW5jZSBjdXN0b21BcHBl
YXJhbmNlKQogICAgIG5vdGVMYXllclByb3BlcnR5Q2hhbmdlZChDdXN0b21BcHBlYXJhbmNlQ2hh
bmdlZCk7CiB9CiAKLXZvaWQgR3JhcGhpY3NMYXllckNBOjpzZXRDdXN0b21CZWhhdmlvcihDdXN0
b21CZWhhdmlvciBjdXN0b21CZWhhdmlvcikKLXsKLSAgICBpZiAoY3VzdG9tQmVoYXZpb3IgPT0g
bV9jdXN0b21CZWhhdmlvcikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgR3JhcGhpY3NMYXllcjo6
c2V0Q3VzdG9tQmVoYXZpb3IoY3VzdG9tQmVoYXZpb3IpOwotICAgIG5vdGVMYXllclByb3BlcnR5
Q2hhbmdlZChDdXN0b21CZWhhdmlvckNoYW5nZWQpOwotfQotCiBib29sIEdyYXBoaWNzTGF5ZXJD
QTo6cmVxdWlyZXNUaWxlZExheWVyKGZsb2F0IHBhZ2VTY2FsZUZhY3RvcikgY29uc3QKIHsKICAg
ICBpZiAoIW1fZHJhd3NDb250ZW50IHx8IG1faXNQYWdlVGlsZWRCYWNraW5nTGF5ZXIpCkBAIC0z
MTg5LDcgKzMxODEsNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6c3dhcEZyb21PclRvVGlsZWRM
YXllcihib29sIHVzZVRpbGVkTGF5ZXIpCiAjZW5kaWYKIAogICAgIC8vIG1vdmUgb3ZlciBhbmlt
YXRpb25zCi0gICAgbW92ZU9yQ29weUFuaW1hdGlvbnMoTW92ZSwgb2xkTGF5ZXIuZ2V0KCksIG1f
bGF5ZXIuZ2V0KCkpOworICAgIG1vdmVBbmltYXRpb25zKG9sZExheWVyLmdldCgpLCBtX2xheWVy
LmdldCgpKTsKICAgICAKICAgICAvLyBuZWVkIHRvIHRlbGwgbmV3IGxheWVyIHRvIGRyYXcgaXRz
ZWxmCiAgICAgc2V0TmVlZHNEaXNwbGF5KCk7CkBAIC0zNDI2LDcgKzM0MTgsNyBAQCBQYXNzUmVm
UHRyPFBsYXRmb3JtQ0FMYXllcj4gR3JhcGhpY3NMYXllckNBOjpjbG9uZUxheWVyKFBsYXRmb3Jt
Q0FMYXllciAqbGF5ZXIsCiAKICAgICBpZiAoY2xvbmVMZXZlbCA9PSBJbnRlcm1lZGlhdGVDbG9u
ZUxldmVsKSB7CiAgICAgICAgIG5ld0xheWVyLT5zZXRPcGFjaXR5KGxheWVyLT5vcGFjaXR5KCkp
OwotICAgICAgICBtb3ZlT3JDb3B5QW5pbWF0aW9ucyhDb3B5LCBsYXllciwgbmV3TGF5ZXIuZ2V0
KCkpOworICAgICAgICBjb3B5QW5pbWF0aW9ucyhsYXllciwgbmV3TGF5ZXIuZ2V0KCkpOwogICAg
IH0KIAogICAgIHNldExheWVyRGVidWdCb3JkZXIoKm5ld0xheWVyLCBjbG9uZUxheWVyRGVidWdC
b3JkZXJDb2xvcihpc1Nob3dpbmdEZWJ1Z0JvcmRlcigpKSwgY2xvbmVMYXllckJvcmRlcldpZHRo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBo
aWNzTGF5ZXJDQS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhp
Y3NMYXllckNBLmgKaW5kZXggYTdkZjY1N2I4M2Q4OTM3Y2YyYmZjZTBiZDY2NGQzNWZiY2IyMTc2
MS4uNDgwMTE0YzM2YjAyODBhNGZjNTU3Zjg5YjE5OTMwMjVhZmMwNTRlZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmgK
QEAgLTU2LDEwICs1NiwxMCBAQCBwdWJsaWM6CiAgICAgLy8gdG8ga2VlcCB0aGUgb3ZlcmFsbCB0
aWxlIGNvc3QgbG93LgogICAgIHN0YXRpYyBjb25zdCBpbnQga1RpbGVkTGF5ZXJUaWxlU2l6ZSA9
IDUxMjsKIAotICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IEdyYXBoaWNzTGF5ZXJDQShHcmFw
aGljc0xheWVyQ2xpZW50Jik7CisgICAgV0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgR3JhcGhpY3NM
YXllckNBKFR5cGUsIEdyYXBoaWNzTGF5ZXJDbGllbnQmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2
aXJ0dWFsIH5HcmFwaGljc0xheWVyQ0EoKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwg
dm9pZCBpbml0aWFsaXplKCkgb3ZlcnJpZGU7CisgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2
b2lkIGluaXRpYWxpemUoVHlwZSkgb3ZlcnJpZGU7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0
dWFsIHZvaWQgc2V0TmFtZShjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKIApAQCAtMTQzLDcgKzE0
Myw2IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgc2V0RGVidWdC
b3JkZXIoY29uc3QgQ29sb3ImLCBmbG9hdCBib3JkZXJXaWR0aCkgb3ZlcnJpZGU7CiAKICAgICBX
RUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgc2V0Q3VzdG9tQXBwZWFyYW5jZShDdXN0b21BcHBl
YXJhbmNlKSBvdmVycmlkZTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgc2V0Q3Vz
dG9tQmVoYXZpb3IoQ3VzdG9tQmVoYXZpb3IpIG92ZXJyaWRlOwogCiAgICAgV0VCQ09SRV9FWFBP
UlQgdmlydHVhbCB2b2lkIGRldmljZU9yUGFnZVNjYWxlRmFjdG9yQ2hhbmdlZCgpIG92ZXJyaWRl
OwogCkBAIC0zODQsNyArMzgzLDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZVRpbGVzKCk7
CiAgICAgdm9pZCB1cGRhdGVDb250ZW50c1NjYWxlKGZsb2F0IHBhZ2VTY2FsZUZhY3Rvcik7CiAg
ICAgdm9pZCB1cGRhdGVDdXN0b21BcHBlYXJhbmNlKCk7Ci0gICAgdm9pZCB1cGRhdGVDdXN0b21C
ZWhhdmlvcigpOwogCiAgICAgZW51bSBTdHJ1Y3R1cmFsTGF5ZXJQdXJwb3NlIHsKICAgICAgICAg
Tm9TdHJ1Y3R1cmFsTGF5ZXIgPSAwLApAQCAtNDAxLDggKzM5OSwxNyBAQCBwcml2YXRlOgogCiAg
ICAgZW51bSBNb3ZlT3JDb3B5IHsgTW92ZSwgQ29weSB9OwogICAgIHN0YXRpYyB2b2lkIG1vdmVP
ckNvcHlMYXllckFuaW1hdGlvbihNb3ZlT3JDb3B5LCBjb25zdCBTdHJpbmcmIGFuaW1hdGlvbklk
ZW50aWZpZXIsIFBsYXRmb3JtQ0FMYXllciAqZnJvbUxheWVyLCBQbGF0Zm9ybUNBTGF5ZXIgKnRv
TGF5ZXIpOwotICAgIHZvaWQgbW92ZU9yQ29weUFuaW1hdGlvbnMoTW92ZU9yQ29weSwgUGxhdGZv
cm1DQUxheWVyICogZnJvbUxheWVyLCBQbGF0Zm9ybUNBTGF5ZXIgKiB0b0xheWVyKTsKLSAgICAK
KyAgICB2b2lkIG1vdmVPckNvcHlBbmltYXRpb25zKE1vdmVPckNvcHksIFBsYXRmb3JtQ0FMYXll
ciogZnJvbUxheWVyLCBQbGF0Zm9ybUNBTGF5ZXIqIHRvTGF5ZXIpOworCisgICAgdm9pZCBtb3Zl
QW5pbWF0aW9ucyhQbGF0Zm9ybUNBTGF5ZXIqIGZyb21MYXllciwgUGxhdGZvcm1DQUxheWVyKiB0
b0xheWVyKQorICAgIHsKKyAgICAgICAgbW92ZU9yQ29weUFuaW1hdGlvbnMoTW92ZSwgZnJvbUxh
eWVyLCB0b0xheWVyKTsKKyAgICB9CisgICAgdm9pZCBjb3B5QW5pbWF0aW9ucyhQbGF0Zm9ybUNB
TGF5ZXIqIGZyb21MYXllciwgUGxhdGZvcm1DQUxheWVyKiB0b0xheWVyKQorICAgIHsKKyAgICAg
ICAgbW92ZU9yQ29weUFuaW1hdGlvbnMoQ29weSwgZnJvbUxheWVyLCB0b0xheWVyKTsKKyAgICB9
CisKICAgICBib29sIGFwcGVuZFRvVW5jb21taXR0ZWRBbmltYXRpb25zKGNvbnN0IEtleWZyYW1l
VmFsdWVMaXN0JiwgY29uc3QgVHJhbnNmb3JtT3BlcmF0aW9ucyosIGNvbnN0IEFuaW1hdGlvbios
IGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uTmFtZSwgY29uc3QgRmxvYXRTaXplJiBib3hTaXplLCBp
bnQgYW5pbWF0aW9uSW5kZXgsIGRvdWJsZSB0aW1lT2Zmc2V0LCBib29sIGlzTWF0cml4QW5pbWF0
aW9uKTsKICAgICBib29sIGFwcGVuZFRvVW5jb21taXR0ZWRBbmltYXRpb25zKGNvbnN0IEtleWZy
YW1lVmFsdWVMaXN0JiwgY29uc3QgRmlsdGVyT3BlcmF0aW9uKiwgY29uc3QgQW5pbWF0aW9uKiwg
Y29uc3QgU3RyaW5nJiBhbmltYXRpb25OYW1lLCBpbnQgYW5pbWF0aW9uSW5kZXgsIGRvdWJsZSB0
aW1lT2Zmc2V0KTsKIApAQCAtNDQwLDggKzQ0Nyw3IEBAIHByaXZhdGU6CiAgICAgICAgIFRpbGVz
QWRkZWQgPSAgICAgICAgICAgICAgICAgICAgMUxMVSA8PCAzMCwKICAgICAgICAgRGVidWdJbmRp
Y2F0b3JzQ2hhbmdlZCA9ICAgICAgICAxTExVIDw8IDMxLAogICAgICAgICBDdXN0b21BcHBlYXJh
bmNlQ2hhbmdlZCA9ICAgICAgIDFMTFUgPDwgMzIsCi0gICAgICAgIEN1c3RvbUJlaGF2aW9yQ2hh
bmdlZCA9ICAgICAgICAgMUxMVSA8PCAzMywKLSAgICAgICAgQmxlbmRNb2RlQ2hhbmdlZCA9ICAg
ICAgICAgICAgICAxTExVIDw8IDM0LAorICAgICAgICBCbGVuZE1vZGVDaGFuZ2VkID0gICAgICAg
ICAgICAgIDFMTFUgPDwgMzMsCiAgICAgfTsKICAgICB0eXBlZGVmIHVpbnQ2NF90IExheWVyQ2hh
bmdlRmxhZ3M7CiAgICAgZW51bSBTY2hlZHVsZUZsdXNoT3JOb3QgeyBTY2hlZHVsZUZsdXNoLCBE
b250U2NoZWR1bGVGbHVzaCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYS9QbGF0Zm9ybUNBTGF5ZXIuaAppbmRleCA3MWU0YTViZmRjYjJiNDM5MDJhNTQ0
MjgwODJjYjc3ZmEyNDhhNzA0Li44ODQ1YjdjMDYyNjA1NTEyMGQyNjE2NTE2NmM5NTI0OWIwNDQz
NzcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0
Zm9ybUNBTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9Q
bGF0Zm9ybUNBTGF5ZXIuaApAQCAtODAsNiArODAsNyBAQCBwdWJsaWM6CiAgICAgICAgIExheWVy
VHlwZVdlYkdMTGF5ZXIsCiAgICAgICAgIExheWVyVHlwZUJhY2tkcm9wTGF5ZXIsCiAgICAgICAg
IExheWVyVHlwZVNoYXBlTGF5ZXIsCisgICAgICAgIExheWVyVHlwZVNjcm9sbGluZ0xheWVyLAog
ICAgICAgICBMYXllclR5cGVDdXN0b20KICAgICB9OwogICAgIGVudW0gRmlsdGVyVHlwZSB7IExp
bmVhciwgTmVhcmVzdCwgVHJpbGluZWFyIH07CkBAIC0yMTMsOSArMjE0LDYgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgR3JhcGhpY3NMYXllcjo6Q3VzdG9tQXBwZWFyYW5jZSBjdXN0b21BcHBlYXJh
bmNlKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVDdXN0b21BcHBlYXJhbmNl
KEdyYXBoaWNzTGF5ZXI6OkN1c3RvbUFwcGVhcmFuY2UpID0gMDsKIAotICAgIHZpcnR1YWwgR3Jh
cGhpY3NMYXllcjo6Q3VzdG9tQmVoYXZpb3IgY3VzdG9tQmVoYXZpb3IoKSBjb25zdCA9IDA7Ci0g
ICAgdmlydHVhbCB2b2lkIHVwZGF0ZUN1c3RvbUJlaGF2aW9yKEdyYXBoaWNzTGF5ZXI6OkN1c3Rv
bUJlaGF2aW9yKSA9IDA7Ci0KICAgICB2aXJ0dWFsIFRpbGVkQmFja2luZyogdGlsZWRCYWNraW5n
KCkgPSAwOwogCiAjaWYgUExBVEZPUk0oV0lOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5oCmluZGV4
IGNkMWQ1NmU0MTZiZGIxZjkzMjYyODRlN2VlNTY1MGNlOWViOWVjOTEuLjZmYTZkNTdhNjQzZTQ5
ZjMzMDZkN2Y5MDU0ZmI2NDMxN2VjNjAzY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUxheWVyTWFjLmgKQEAg
LTE0NSw5ICsxNDUsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBHcmFwaGljc0xheWVyOjpDdXN0
b21BcHBlYXJhbmNlIGN1c3RvbUFwcGVhcmFuY2UoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBt
X2N1c3RvbUFwcGVhcmFuY2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQ3VzdG9tQXBwZWFy
YW5jZShHcmFwaGljc0xheWVyOjpDdXN0b21BcHBlYXJhbmNlKSBvdmVycmlkZTsKIAotICAgIHZp
cnR1YWwgR3JhcGhpY3NMYXllcjo6Q3VzdG9tQmVoYXZpb3IgY3VzdG9tQmVoYXZpb3IoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiBtX2N1c3RvbUJlaGF2aW9yOyB9Ci0gICAgdmlydHVhbCB2b2lk
IHVwZGF0ZUN1c3RvbUJlaGF2aW9yKEdyYXBoaWNzTGF5ZXI6OkN1c3RvbUJlaGF2aW9yKSBvdmVy
cmlkZTsKLQogICAgIHZpcnR1YWwgVGlsZWRCYWNraW5nKiB0aWxlZEJhY2tpbmcoKSBvdmVycmlk
ZTsKIAogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+IGNsb25lKFBsYXRm
b3JtQ0FMYXllckNsaWVudCogb3duZXIpIGNvbnN0IG92ZXJyaWRlOwpAQCAtMTY5LDcgKzE2Niw2
IEBAIHByaXZhdGU6CiAgICAgUmV0YWluUHRyPE5TT2JqZWN0PiBtX2RlbGVnYXRlOwogICAgIHN0
ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybUNBTGF5ZXJMaXN0PiBtX2N1c3RvbVN1YmxheWVyczsKICAg
ICBHcmFwaGljc0xheWVyOjpDdXN0b21BcHBlYXJhbmNlIG1fY3VzdG9tQXBwZWFyYW5jZTsKLSAg
ICBHcmFwaGljc0xheWVyOjpDdXN0b21CZWhhdmlvciBtX2N1c3RvbUJlaGF2aW9yOwogICAgIHN0
ZDo6dW5pcXVlX3B0cjxGbG9hdFJvdW5kZWRSZWN0PiBtX3NoYXBlUm91bmRlZFJlY3Q7CiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxh
dGZvcm1DQUxheWVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Ev
bWFjL1BsYXRmb3JtQ0FMYXllck1hYy5tbQppbmRleCBiNTE1YzA1YzQ1NTRhOTkyOTllYTFhOWJh
YjI3MjJhYWZiNjU2MDc4Li43YmUxNjk0MmY3ZjBmYjkxNzdiYWE0YmI0MmY4MmM5YzNkNzZiMjk4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxh
dGZvcm1DQUxheWVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMubW0KQEAgLTIwNSw3ICsyMDUsNiBAQCBQbGF0Zm9y
bUNBTGF5ZXI6OkxheWVyVHlwZSBQbGF0Zm9ybUNBTGF5ZXJNYWM6OmxheWVyVHlwZUZvclBsYXRm
b3JtTGF5ZXIoUGxhdGZvcgogUGxhdGZvcm1DQUxheWVyTWFjOjpQbGF0Zm9ybUNBTGF5ZXJNYWMo
TGF5ZXJUeXBlIGxheWVyVHlwZSwgUGxhdGZvcm1DQUxheWVyQ2xpZW50KiBvd25lcikKICAgICA6
IFBsYXRmb3JtQ0FMYXllcihsYXllclR5cGUsIG93bmVyKQogICAgICwgbV9jdXN0b21BcHBlYXJh
bmNlKEdyYXBoaWNzTGF5ZXI6Ok5vQ3VzdG9tQXBwZWFyYW5jZSkKLSAgICAsIG1fY3VzdG9tQmVo
YXZpb3IoR3JhcGhpY3NMYXllcjo6Tm9DdXN0b21CZWhhdmlvcikKIHsKICAgICBDbGFzcyBsYXll
ckNsYXNzID0gTmlsOwogICAgIHN3aXRjaCAobGF5ZXJUeXBlKSB7CkBAIC0yMTMsNiArMjEyLDkg
QEAgUGxhdGZvcm1DQUxheWVyTWFjOjpQbGF0Zm9ybUNBTGF5ZXJNYWMoTGF5ZXJUeXBlIGxheWVy
VHlwZSwgUGxhdGZvcm1DQUxheWVyQ2xpZW4KICAgICBjYXNlIExheWVyVHlwZVJvb3RMYXllcjoK
ICAgICAgICAgbGF5ZXJDbGFzcyA9IFtDQUxheWVyIGNsYXNzXTsKICAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBMYXllclR5cGVTY3JvbGxpbmdMYXllcjoKKyAgICAgICAgLy8gU2Nyb2xsaW5nIGxh
eWVycyBvbmx5IGhhdmUgc3BlY2lhbCBiZWhhdmlvciB3aXRoIFBsYXRmb3JtQ0FMYXllclJlbW90
ZS4KKyAgICAgICAgLy8gZmFsbHRocm91Z2gKICAgICBjYXNlIExheWVyVHlwZVdlYkxheWVyOgog
ICAgICAgICBsYXllckNsYXNzID0gW1dlYkxheWVyIGNsYXNzXTsKICAgICAgICAgYnJlYWs7CkBA
IC0yNjIsNyArMjY0LDYgQEAgUGxhdGZvcm1DQUxheWVyTWFjOjpQbGF0Zm9ybUNBTGF5ZXJNYWMo
TGF5ZXJUeXBlIGxheWVyVHlwZSwgUGxhdGZvcm1DQUxheWVyQ2xpZW4KIFBsYXRmb3JtQ0FMYXll
ck1hYzo6UGxhdGZvcm1DQUxheWVyTWFjKFBsYXRmb3JtTGF5ZXIqIGxheWVyLCBQbGF0Zm9ybUNB
TGF5ZXJDbGllbnQqIG93bmVyKQogICAgIDogUGxhdGZvcm1DQUxheWVyKGxheWVyVHlwZUZvclBs
YXRmb3JtTGF5ZXIobGF5ZXIpLCBvd25lcikKICAgICAsIG1fY3VzdG9tQXBwZWFyYW5jZShHcmFw
aGljc0xheWVyOjpOb0N1c3RvbUFwcGVhcmFuY2UpCi0gICAgLCBtX2N1c3RvbUJlaGF2aW9yKEdy
YXBoaWNzTGF5ZXI6Ok5vQ3VzdG9tQmVoYXZpb3IpCiB7CiAgICAgbV9sYXllciA9IGxheWVyOwog
ICAgIGNvbW1vbkluaXQoKTsKQEAgLTI3NSw3ICsyNzYsNyBAQCB2b2lkIFBsYXRmb3JtQ0FMYXll
ck1hYzo6Y29tbW9uSW5pdCgpCiAgICAgW21fbGF5ZXIgc2V0VmFsdWU6W05TVmFsdWUgdmFsdWVX
aXRoUG9pbnRlcjp0aGlzXSBmb3JLZXk6cGxhdGZvcm1DQUxheWVyUG9pbnRlcl07CiAgICAgCiAg
ICAgLy8gQ2xlYXIgYWxsIHRoZSBpbXBsaWNpdCBhbmltYXRpb25zIG9uIHRoZSBDQUxheWVyCi0g
ICAgaWYgKG1fbGF5ZXJUeXBlID09IExheWVyVHlwZUFWUGxheWVyTGF5ZXIgfHwgbV9sYXllclR5
cGUgPT0gTGF5ZXJUeXBlV2ViR0xMYXllciB8fCBtX2xheWVyVHlwZSA9PSBMYXllclR5cGVDdXN0
b20pCisgICAgaWYgKG1fbGF5ZXJUeXBlID09IExheWVyVHlwZUFWUGxheWVyTGF5ZXIgfHwgbV9s
YXllclR5cGUgPT0gTGF5ZXJUeXBlV2ViR0xMYXllciB8fCBtX2xheWVyVHlwZSA9PSBMYXllclR5
cGVTY3JvbGxpbmdMYXllciB8fCBtX2xheWVyVHlwZSA9PSBMYXllclR5cGVDdXN0b20pCiAgICAg
ICAgIFttX2xheWVyIHdlYl9kaXNhYmxlQWxsQWN0aW9uc107CiAgICAgZWxzZQogICAgICAgICBb
bV9sYXllciBzZXREZWxlZ2F0ZTpbV2ViQWN0aW9uRGlzYWJsaW5nQ0FMYXllckRlbGVnYXRlIHNo
YXJlZF1dOwpAQCAtODc3LDE5ICs4NzgsNiBAQCB2b2lkIFBsYXRmb3JtQ0FMYXllck1hYzo6dXBk
YXRlQ3VzdG9tQXBwZWFyYW5jZShHcmFwaGljc0xheWVyOjpDdXN0b21BcHBlYXJhbmNlCiAjZW5k
aWYKIH0KIAotdm9pZCBQbGF0Zm9ybUNBTGF5ZXJNYWM6OnVwZGF0ZUN1c3RvbUJlaGF2aW9yKEdy
YXBoaWNzTGF5ZXI6OkN1c3RvbUJlaGF2aW9yIGN1c3RvbUJlaGF2aW9yKQotewotICAgIG1fY3Vz
dG9tQmVoYXZpb3IgPSBjdXN0b21CZWhhdmlvcjsKLQotICAgIC8vIEN1c3RvbSBsYXllcnMgY2Fu
IGdldCB3cmFwcGVkIGluIFVJVmlld3MgKHdoaWNoIGNsb2JiZXJzIHRoZSBsYXllciBkZWxlZ2F0
ZSksCi0gICAgLy8gc28gZmFsbCBiYWNrIHRvIHRoZSBzbG93ZXIgd2F5IG9mIGRpc2FibGluZyBp
bXBsaWNpdCBhbmltYXRpb25zLgotICAgIGlmIChtX2N1c3RvbUJlaGF2aW9yICE9IEdyYXBoaWNz
TGF5ZXI6Ok5vQ3VzdG9tQmVoYXZpb3IpIHsKLSAgICAgICAgaWYgKFtbbV9sYXllciBkZWxlZ2F0
ZV0gaXNLaW5kT2ZDbGFzczpbV2ViQWN0aW9uRGlzYWJsaW5nQ0FMYXllckRlbGVnYXRlIGNsYXNz
XV0pCi0gICAgICAgICAgICBbbV9sYXllciBzZXREZWxlZ2F0ZTpuaWxdOwotICAgICAgICBbbV9s
YXllciB3ZWJfZGlzYWJsZUFsbEFjdGlvbnNdOwotICAgIH0KLX0KLQogVGlsZWRCYWNraW5nKiBQ
bGF0Zm9ybUNBTGF5ZXJNYWM6OnRpbGVkQmFja2luZygpCiB7CiAgICAgaWYgKCF1c2VzVGlsZWRC
YWNraW5nTGF5ZXIoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FMYXllcldpbi5jcHAKaW5kZXggNWRkN2UyZmQz
ZjI4MTc2ZWY1ZjdiZDUwODhjNzBmZDFhYmQ3NTlhNC4uNzVlYWExY2E4NjYzMmFmZTY5MTAyOTM3
NmJhOGNiYzgzNDlkMGJhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FMYXllcldpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FMYXllcldpbi5jcHAKQEAgLTEyOCw3
ICsxMjgsNiBAQCBzdGF0aWMgdm9pZCBsYXlvdXRTdWJsYXllcnNQcm9jKENBQ0ZMYXllclJlZiBj
YUxheWVyKQogUGxhdGZvcm1DQUxheWVyV2luOjpQbGF0Zm9ybUNBTGF5ZXJXaW4oTGF5ZXJUeXBl
IGxheWVyVHlwZSwgUGxhdGZvcm1MYXllciogbGF5ZXIsIFBsYXRmb3JtQ0FMYXllckNsaWVudCog
b3duZXIpCiAgICAgOiBQbGF0Zm9ybUNBTGF5ZXIobGF5ZXIgPyBMYXllclR5cGVDdXN0b20gOiBs
YXllclR5cGUsIG93bmVyKQogICAgICwgbV9jdXN0b21BcHBlYXJhbmNlKEdyYXBoaWNzTGF5ZXI6
Ok5vQ3VzdG9tQXBwZWFyYW5jZSkKLSAgICAsIG1fY3VzdG9tQmVoYXZpb3IoR3JhcGhpY3NMYXll
cjo6Tm9DdXN0b21CZWhhdmlvcikKIHsKICAgICBpZiAobGF5ZXIpIHsKICAgICAgICAgbV9sYXll
ciA9IGxheWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Evd2luL1BsYXRmb3JtQ0FMYXllcldpbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FMYXllcldpbi5oCmluZGV4IDdkYWNlOGZjMGQzZmMxN2Vm
NzBhOTZkNGE3NzQzZjYyOTg2ODEyOGEuLjI2MGI2NDlhNjIzNDU4M2RmMjVjOWI3MDZjNGFjZDI5
MGI4YzU2NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
L3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUxheWVyV2luLmgKQEAgLTEzMyw5ICsxMzMsNiBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCBHcmFwaGljc0xheWVyOjpDdXN0b21BcHBlYXJhbmNlIGN1c3Rv
bUFwcGVhcmFuY2UoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2N1c3RvbUFwcGVhcmFuY2U7
IH0KICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQ3VzdG9tQXBwZWFyYW5jZShHcmFwaGljc0xheWVy
OjpDdXN0b21BcHBlYXJhbmNlIGN1c3RvbUFwcGVhcmFuY2UpIG92ZXJyaWRlIHsgbV9jdXN0b21B
cHBlYXJhbmNlID0gY3VzdG9tQXBwZWFyYW5jZTsgfQogCi0gICAgdmlydHVhbCBHcmFwaGljc0xh
eWVyOjpDdXN0b21CZWhhdmlvciBjdXN0b21CZWhhdmlvcigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIG1fY3VzdG9tQmVoYXZpb3I7IH0KLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQ3VzdG9tQmVo
YXZpb3IoR3JhcGhpY3NMYXllcjo6Q3VzdG9tQmVoYXZpb3IgY3VzdG9tQmVoYXZpb3IpIG92ZXJy
aWRlIHsgbV9jdXN0b21CZWhhdmlvciA9IGN1c3RvbUJlaGF2aW9yOyB9Ci0KICAgICB2aXJ0dWFs
IFRpbGVkQmFja2luZyogdGlsZWRCYWNraW5nKCkgb3ZlcnJpZGU7CiAgICAgCiAgICAgdmlydHVh
bCBQbGF0Zm9ybUNBTGF5ZXIqIHJvb3RMYXllcigpIGNvbnN0IG92ZXJyaWRlOwpAQCAtMTU2LDcg
KzE1Myw2IEBAIHByaXZhdGU6CiAgICAgSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxQbGF0Zm9ybUNB
QW5pbWF0aW9uPj4gbV9hbmltYXRpb25zOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybUNB
TGF5ZXJMaXN0PiBtX2N1c3RvbVN1YmxheWVyczsKICAgICBHcmFwaGljc0xheWVyOjpDdXN0b21B
cHBlYXJhbmNlIG1fY3VzdG9tQXBwZWFyYW5jZTsKLSAgICBHcmFwaGljc0xheWVyOjpDdXN0b21C
ZWhhdmlvciBtX2N1c3RvbUJlaGF2aW9yOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xh
eWVyVGV4dHVyZU1hcHBlci5jcHAKaW5kZXggMWUwMmQxZjc1ZDA4NGUxYmI2ZGRmOGQ1MzJlNjNm
OTEzNTE5YTNhOC4uYzI0ZTc4MGY2NmIxNjNkZDk3MjE3Yzg3ZDRiOGRlMzM3YTE2MTc2YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNz
TGF5ZXJUZXh0dXJlTWFwcGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuY3BwCkBAIC0zMCwxNiArMzAs
MTYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NM
YXllcj4gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKEdyYXBoaWNzTGF5ZXJGYWN0b3J5KiBmYWN0b3J5
LCBHcmFwaGljc0xheWVyQ2xpZW50JiBjbGllbnQpCitzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NM
YXllcj4gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKEdyYXBoaWNzTGF5ZXJGYWN0b3J5KiBmYWN0b3J5
LCBHcmFwaGljc0xheWVyQ2xpZW50JiBjbGllbnQsIFR5cGUgbGF5ZXJUeXBlKQogewogICAgIGlm
ICghZmFjdG9yeSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8R3JhcGhpY3NMYXll
clRleHR1cmVNYXBwZXI+KGNsaWVudCk7CisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVl
PEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyPihsYXllclR5cGUsIGNsaWVudCk7CiAKLSAgICBy
ZXR1cm4gZmFjdG9yeS0+Y3JlYXRlR3JhcGhpY3NMYXllcihjbGllbnQpOworICAgIHJldHVybiBm
YWN0b3J5LT5jcmVhdGVHcmFwaGljc0xheWVyKGxheWVyVHlwZSwgY2xpZW50KTsKIH0KIAotR3Jh
cGhpY3NMYXllclRleHR1cmVNYXBwZXI6OkdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyKEdyYXBo
aWNzTGF5ZXJDbGllbnQmIGNsaWVudCkKLSAgICA6IEdyYXBoaWNzTGF5ZXIoY2xpZW50KQorR3Jh
cGhpY3NMYXllclRleHR1cmVNYXBwZXI6OkdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyKFR5cGUg
bGF5ZXJUeXBlLCBHcmFwaGljc0xheWVyQ2xpZW50JiBjbGllbnQpCisgICAgOiBHcmFwaGljc0xh
eWVyKGxheWVyVHlwZSwgY2xpZW50KQogICAgICwgbV9jb21wb3NpdGVkTmF0aXZlSW1hZ2VQdHIo
MCkKICAgICAsIG1fY2hhbmdlTWFzayhOb0NoYW5nZXMpCiAgICAgLCBtX25lZWRzRGlzcGxheShm
YWxzZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmgKaW5kZXggNzgzYzMy
ZjE4NWQwOTczNjIyNjVmYzA4ODQ1NTBlODBhOTk3NjNhMS4uYzliNzhjMjYzOGQzMDUyYzE5NWFk
OTIzNDAzNjA0NTgzZjcwNmM4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFw
cGVyLmgKQEAgLTM0LDcgKzM0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBHcmFw
aGljc0xheWVyVGV4dHVyZU1hcHBlciBmaW5hbCA6IHB1YmxpYyBHcmFwaGljc0xheWVyLCBUZXh0
dXJlTWFwcGVyUGxhdGZvcm1MYXllcjo6Q2xpZW50IHsKIHB1YmxpYzoKLSAgICBleHBsaWNpdCBH
cmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcihHcmFwaGljc0xheWVyQ2xpZW50Jik7CisgICAgZXhw
bGljaXQgR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIoVHlwZSwgR3JhcGhpY3NMYXllckNsaWVu
dCYpOwogICAgIHZpcnR1YWwgfkdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyKCk7CiAKICAgICB2
b2lkIHNldFNjcm9sbENsaWVudChUZXh0dXJlTWFwcGVyTGF5ZXI6OlNjcm9sbGluZ0NsaWVudCog
Y2xpZW50KSB7IG1fbGF5ZXIuc2V0U2Nyb2xsQ2xpZW50KGNsaWVudCk7IH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db21w
b3NpdGluZ0Nvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9jb29yZGluYXRlZC9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmNwcAppbmRleCBiMzg3
NjQ1Zjg0NTEwNGQ4MjgwNDZkMDJmMWVlMmNhNjI0NTU4ODc1Li4xYTFjMjY3ZjRjNzE5MzRjNjI3
MGY1OGU3YTEwOWQ5M2U2NjY5YTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29tcG9zaXRpbmdDb29yZGluYXRvci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVk
L0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuY3BwCkBAIC0yNTUsOSArMjU1LDkgQEAgdm9pZCBDb21w
b3NpdGluZ0Nvb3JkaW5hdG9yOjpwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGdy
YXBoaWNzTGF5ZXIsIEcKICAgICBtX2NsaWVudC0+cGFpbnRMYXllckNvbnRlbnRzKGdyYXBoaWNz
TGF5ZXIsIGdyYXBoaWNzQ29udGV4dCwgZW5jbG9zaW5nSW50UmVjdChjbGlwUmVjdCkpOwogfQog
Ci1zdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gQ29tcG9zaXRpbmdDb29yZGluYXRvcjo6
Y3JlYXRlR3JhcGhpY3NMYXllcihHcmFwaGljc0xheWVyQ2xpZW50JiBjbGllbnQpCitzdGQ6OnVu
aXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gQ29tcG9zaXRpbmdDb29yZGluYXRvcjo6Y3JlYXRlR3Jh
cGhpY3NMYXllcihHcmFwaGljc0xheWVyOjpUeXBlIGxheWVyVHlwZSwgR3JhcGhpY3NMYXllckNs
aWVudCYgY2xpZW50KQogewotICAgIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllciogbGF5ZXIgPSBu
ZXcgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKGNsaWVudCk7CisgICAgQ29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyKiBsYXllciA9IG5ldyBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIobGF5ZXJUeXBl
LCBjbGllbnQpOwogICAgIGxheWVyLT5zZXRDb29yZGluYXRvcih0aGlzKTsKICAgICBtX3JlZ2lz
dGVyZWRMYXllcnMuYWRkKGxheWVyLT5pZCgpLCBsYXllcik7CiAgICAgbV9zdGF0ZS5sYXllcnNU
b0NyZWF0ZS5hcHBlbmQobGF5ZXItPmlkKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0NvbXBvc2l0aW5nQ29vcmRpbmF0
b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRl
ZC9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmgKaW5kZXggZGVjNjkyNjZkM2U5OTZlNTE0YzZmNjE2
MzFlNWUwMjM2OWE5ZGUxNy4uZmUxMGEzZWRkODY5ZjhlNzQ3ZmQwNTgxMzI3OWYyNGIyYTEyYzgw
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nv
b3JkaW5hdGVkL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29tcG9zaXRpbmdDb29yZGluYXRv
ci5oCkBAIC0xMTQsNyArMTE0LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3Zl
VXBkYXRlQXRsYXModWludDMyX3QgYXRsYXNJRCkgb3ZlcnJpZGU7CiAKICAgICAvLyBHcmFwaGlj
c0xheWVyRmFjdG9yeQotICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+
IGNyZWF0ZUdyYXBoaWNzTGF5ZXIoR3JhcGhpY3NMYXllckNsaWVudCYpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IGNyZWF0ZUdyYXBoaWNzTGF5
ZXIoR3JhcGhpY3NMYXllcjo6VHlwZSwgR3JhcGhpY3NMYXllckNsaWVudCYpIG92ZXJyaWRlOwog
CiAgICAgdm9pZCBpbml0aWFsaXplUm9vdENvbXBvc2l0aW5nTGF5ZXJJZk5lZWRlZCgpOwogICAg
IHZvaWQgZmx1c2hQZW5kaW5nSW1hZ2VCYWNraW5nQ2hhbmdlcygpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5h
dGVkR3JhcGhpY3NMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcAppbmRleCBlNmUy
MTNmOWIxNDQ2N2Q4YTZkYTBhYWE2ZGY3MTU1YWVhNjRjNWQ0Li43MjBkMjVlMTE4ZDc0NWI3YTVi
OGJlZDM4YWYwNmI3YmRiMTAyNWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0
ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcApAQCAtMTAzLDggKzEwMyw4IEBAIHZvaWQg
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpkaWRDaGFuZ2VHZW9tZXRyeSgpCiAgICAgc2V0U2hv
dWxkVXBkYXRlVmlzaWJsZVJlY3QoKTsKIH0KIAotQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpD
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXIoR3JhcGhpY3NMYXllckNsaWVudCYgY2xpZW50KQotICAg
IDogR3JhcGhpY3NMYXllcihjbGllbnQpCitDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OkNvb3Jk
aW5hdGVkR3JhcGhpY3NMYXllcihUeXBlIGxheWVyVHlwZSwgR3JhcGhpY3NMYXllckNsaWVudCYg
Y2xpZW50KQorICAgIDogR3JhcGhpY3NMYXllcihsYXllclR5cGUsIGNsaWVudCkKICNpZm5kZWYg
TkRFQlVHCiAgICAgLCBtX2lzUHVyZ2luZyhmYWxzZSkKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5h
dGVkR3JhcGhpY3NMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oCmluZGV4IGJmNzZhN2M2
OWZkYWQ0ODczYjg4MDBiZWJjZDhkMjQyNTk1MjY1Y2QuLjY3ODMyZThjYjgzZTZlOTdjOTM2MzY0
ZWU3ZjU5N2Y0OWViZGE3MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyLmgKQEAgLTYxLDcgKzYxLDcgQEAgY2xhc3MgQ29vcmRpbmF0
ZWRHcmFwaGljc0xheWVyIDogcHVibGljIEdyYXBoaWNzTGF5ZXIKICAgICAsIHB1YmxpYyBDb29y
ZGluYXRlZEltYWdlQmFja2luZzo6SG9zdAogICAgICwgcHVibGljIENvb3JkaW5hdGVkVGlsZUNs
aWVudCB7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKEdy
YXBoaWNzTGF5ZXJDbGllbnQmKTsKKyAgICBleHBsaWNpdCBDb29yZGluYXRlZEdyYXBoaWNzTGF5
ZXIoVHlwZSwgR3JhcGhpY3NMYXllckNsaWVudCYpOwogICAgIHZpcnR1YWwgfkNvb3JkaW5hdGVk
R3JhcGhpY3NMYXllcigpOwogCiAgICAgLy8gUmVpbXBsZW1lbnRhdGlvbnMgZnJvbSBHcmFwaGlj
c0xheWVyLmguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJCYWNraW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tp
bmcuY3BwCmluZGV4IGFiYzAwN2UxMGE4MGYwM2ZiMThhZGUwYjk2NjI3YTM0NzQyZDJmMDMuLjU5
OTRjYzMyMWQyOGQ4YjI3NWI4ZDRmZGU1ZjMyN2Y3M2VjODQ0NzkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCkBAIC0xMDUsOCArMTA1LDYg
QEAgc3RhdGljIFNjcm9sbGluZ0Nvb3JkaW5hdG9yKiBzY3JvbGxpbmdDb29yZGluYXRvckZyb21M
YXllcihSZW5kZXJMYXllciYgbGF5ZXIpCiAgICAgcmV0dXJuIHBhZ2UtPnNjcm9sbGluZ0Nvb3Jk
aW5hdG9yKCk7CiB9CiAKLWJvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjptX2NyZWF0aW5nUHJpbWFy
eUdyYXBoaWNzTGF5ZXIgPSBmYWxzZTsKLQogUmVuZGVyTGF5ZXJCYWNraW5nOjpSZW5kZXJMYXll
ckJhY2tpbmcoUmVuZGVyTGF5ZXImIGxheWVyKQogICAgIDogbV9vd25pbmdMYXllcihsYXllcikK
ICAgICAsIG1fdmlld3BvcnRDb25zdHJhaW5lZE5vZGVJRCgwKQpAQCAtMTYzLDEzICsxNjEsMTMg
QEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OndpbGxEZXN0cm95TGF5ZXIoY29uc3QgR3JhcGhp
Y3NMYXllciogbGF5ZXIpCiAgICAgICAgIGNvbXBvc2l0b3IoKS5sYXllclRpbGVkQmFja2luZ1Vz
YWdlQ2hhbmdlZChsYXllciwgZmFsc2UpOwogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NM
YXllcj4gUmVuZGVyTGF5ZXJCYWNraW5nOjpjcmVhdGVHcmFwaGljc0xheWVyKGNvbnN0IFN0cmlu
ZyYgbmFtZSkKK3N0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBSZW5kZXJMYXllckJhY2tp
bmc6OmNyZWF0ZUdyYXBoaWNzTGF5ZXIoY29uc3QgU3RyaW5nJiBuYW1lLCBHcmFwaGljc0xheWVy
OjpUeXBlIGxheWVyVHlwZSkKIHsKICAgICBHcmFwaGljc0xheWVyRmFjdG9yeSogZ3JhcGhpY3NM
YXllckZhY3RvcnkgPSAwOwogICAgIGlmIChQYWdlKiBwYWdlID0gcmVuZGVyZXIoKS5mcmFtZSgp
LnBhZ2UoKSkKICAgICAgICAgZ3JhcGhpY3NMYXllckZhY3RvcnkgPSBwYWdlLT5jaHJvbWUoKS5j
bGllbnQoKS5ncmFwaGljc0xheWVyRmFjdG9yeSgpOwogCi0gICAgc3RkOjp1bmlxdWVfcHRyPEdy
YXBoaWNzTGF5ZXI+IGdyYXBoaWNzTGF5ZXIgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUoZ3JhcGhp
Y3NMYXllckZhY3RvcnksICp0aGlzKTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXll
cj4gZ3JhcGhpY3NMYXllciA9IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShncmFwaGljc0xheWVyRmFj
dG9yeSwgKnRoaXMsIGxheWVyVHlwZSk7CiAKICNpZm5kZWYgTkRFQlVHCiAgICAgZ3JhcGhpY3NM
YXllci0+c2V0TmFtZShuYW1lKTsKQEAgLTE4MywxMSArMTgxLDYgQEAgc3RkOjp1bmlxdWVfcHRy
PEdyYXBoaWNzTGF5ZXI+IFJlbmRlckxheWVyQmFja2luZzo6Y3JlYXRlR3JhcGhpY3NMYXllcihj
b25zdCBTdHIKICAgICByZXR1cm4gZ3JhcGhpY3NMYXllcjsKIH0KIAotYm9vbCBSZW5kZXJMYXll
ckJhY2tpbmc6OnNob3VsZFVzZVRpbGVkQmFja2luZyhjb25zdCBHcmFwaGljc0xheWVyKikgY29u
c3QKLXsKLSAgICByZXR1cm4gbV91c2luZ1RpbGVkQ2FjaGVMYXllciAmJiBtX2NyZWF0aW5nUHJp
bWFyeUdyYXBoaWNzTGF5ZXI7Ci19Ci0KIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjp0aWxlZEJh
Y2tpbmdVc2FnZUNoYW5nZWQoY29uc3QgR3JhcGhpY3NMYXllciogbGF5ZXIsIGJvb2wgdXNpbmdU
aWxlZEJhY2tpbmcpCiB7CiAgICAgY29tcG9zaXRvcigpLmxheWVyVGlsZWRCYWNraW5nVXNhZ2VD
aGFuZ2VkKGxheWVyLCB1c2luZ1RpbGVkQmFja2luZyk7CkBAIC0yODYsMTQgKzI3OSw3IEBAIHZv
aWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpjcmVhdGVQcmltYXJ5R3JhcGhpY3NMYXllcigpCiAgICAg
bGF5ZXJOYW1lID0gbV9vd25pbmdMYXllci5uYW1lKCk7CiAjZW5kaWYKICAgICAKLSAgICAvLyBU
aGUgY2FsbCB0byBjcmVhdGVHcmFwaGljc0xheWVyIGVuZHMgY2FsbGluZyBiYWNrIGludG8gaGVy
ZSBhcwotICAgIC8vIGEgR3JhcGhpY3NMYXllckNsaWVudCB0byBhc2sgaWYgaXQgc2hvdWxkVXNl
VGlsZWRCYWNraW5nKCkuIFdlIG9ubHkgd2FudAotICAgIC8vIHRoZSB0aWxlIGNhY2hlIG9uIG91
ciBtYWluIGxheWVyLiBUaGlzIGlzIHByZXR0eSB1Z2x5LCBidXQgc2F2ZXMgdXMgZnJvbQotICAg
IC8vIGV4cG9zaW5nIHRoZSBBUEkgdG8gYWxsIGNsaWVudHMuCi0KLSAgICBtX2NyZWF0aW5nUHJp
bWFyeUdyYXBoaWNzTGF5ZXIgPSB0cnVlOwotICAgIG1fZ3JhcGhpY3NMYXllciA9IGNyZWF0ZUdy
YXBoaWNzTGF5ZXIobGF5ZXJOYW1lKTsKLSAgICBtX2NyZWF0aW5nUHJpbWFyeUdyYXBoaWNzTGF5
ZXIgPSBmYWxzZTsKKyAgICBtX2dyYXBoaWNzTGF5ZXIgPSBjcmVhdGVHcmFwaGljc0xheWVyKGxh
eWVyTmFtZSwgbV91c2luZ1RpbGVkQ2FjaGVMYXllciA/IEdyYXBoaWNzTGF5ZXI6OlR5cGU6OlBh
Z2VUaWxlZEJhY2tpbmcgOiBHcmFwaGljc0xheWVyOjpUeXBlOjpOb3JtYWwpOwogCiAgICAgaWYg
KG1fdXNpbmdUaWxlZENhY2hlTGF5ZXIpIHsKICAgICAgICAgbV9jaGlsZENvbnRhaW5tZW50TGF5
ZXIgPSBjcmVhdGVHcmFwaGljc0xheWVyKCJUaWxlZEJhY2tpbmcgRmxhdHRlbmluZyBMYXllciIp
OwpAQCAtMTQ4NCwxOCArMTQ3MCwxNCBAQCBib29sIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRl
U2Nyb2xsaW5nTGF5ZXJzKGJvb2wgbmVlZHNTY3JvbGxpbmdMYXllcnMpCiAKICAgICBpZiAoIW1f
c2Nyb2xsaW5nTGF5ZXIpIHsKICAgICAgICAgLy8gT3V0ZXIgbGF5ZXIgd2hpY2ggY29ycmVzcG9u
ZHMgd2l0aCB0aGUgc2Nyb2xsIHZpZXcuCi0gICAgICAgIG1fc2Nyb2xsaW5nTGF5ZXIgPSBjcmVh
dGVHcmFwaGljc0xheWVyKCJTY3JvbGxpbmcgY29udGFpbmVyIik7CisgICAgICAgIG1fc2Nyb2xs
aW5nTGF5ZXIgPSBjcmVhdGVHcmFwaGljc0xheWVyKCJTY3JvbGxpbmcgY29udGFpbmVyIiwgR3Jh
cGhpY3NMYXllcjo6VHlwZTo6U2Nyb2xsaW5nKTsKICAgICAgICAgbV9zY3JvbGxpbmdMYXllci0+
c2V0RHJhd3NDb250ZW50KGZhbHNlKTsKICAgICAgICAgbV9zY3JvbGxpbmdMYXllci0+c2V0TWFz
a3NUb0JvdW5kcyh0cnVlKTsKLSNpZiBQTEFURk9STShJT1MpCi0gICAgICAgIG1fc2Nyb2xsaW5n
TGF5ZXItPnNldEN1c3RvbUJlaGF2aW9yKEdyYXBoaWNzTGF5ZXI6OkN1c3RvbVNjcm9sbGluZ0Jl
aGF2aW9yKTsKLSNlbmRpZgorCiAgICAgICAgIC8vIElubmVyIGxheWVyIHdoaWNoIHJlbmRlcnMg
dGhlIGNvbnRlbnQgdGhhdCBzY3JvbGxzLgogICAgICAgICBtX3Njcm9sbGluZ0NvbnRlbnRzTGF5
ZXIgPSBjcmVhdGVHcmFwaGljc0xheWVyKCJTY3JvbGxlZCBDb250ZW50cyIpOwogICAgICAgICBt
X3Njcm9sbGluZ0NvbnRlbnRzTGF5ZXItPnNldERyYXdzQ29udGVudCh0cnVlKTsKLSNpZiBQTEFU
Rk9STShJT1MpCi0gICAgICAgIG1fc2Nyb2xsaW5nQ29udGVudHNMYXllci0+c2V0Q3VzdG9tQmVo
YXZpb3IoR3JhcGhpY3NMYXllcjo6Q3VzdG9tU2Nyb2xsZWRDb250ZW50c0JlaGF2aW9yKTsKLSNl
bmRpZgorCiAgICAgICAgIEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlIHBhaW50UGhhc2UgPSBH
cmFwaGljc0xheWVyUGFpbnRPdmVyZmxvd0NvbnRlbnRzIHwgR3JhcGhpY3NMYXllclBhaW50Q29t
cG9zaXRlZFNjcm9sbDsKICAgICAgICAgaWYgKCFtX2ZvcmVncm91bmRMYXllcikKICAgICAgICAg
ICAgIHBhaW50UGhhc2UgfD0gR3JhcGhpY3NMYXllclBhaW50Rm9yZWdyb3VuZDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaAppbmRleCAyYzJlZGY1YzIy
OTgzNWYzNjViNmYzOGM4N2Q3YzczYTUyNzcyZTdmLi44ZDgzY2FmNzQ2NzZjNDI0ZWJiNzgyZGQy
YjQxZjMwMWE3ZmIwYzU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJCYWNraW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyQmFja2luZy5oCkBAIC0xOTMsNyArMTkzLDYgQEAgcHVibGljOgogICAgIHZvaWQgdXBkYXRl
RGVidWdJbmRpY2F0b3JzKGJvb2wgc2hvd0JvcmRlciwgYm9vbCBzaG93UmVwYWludENvdW50ZXIp
OwogCiAgICAgLy8gR3JhcGhpY3NMYXllckNsaWVudCBpbnRlcmZhY2UKLSAgICB2aXJ0dWFsIGJv
b2wgc2hvdWxkVXNlVGlsZWRCYWNraW5nKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdCBvdmVy
cmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgdGlsZWRCYWNraW5nVXNhZ2VDaGFuZ2VkKGNvbnN0IEdy
YXBoaWNzTGF5ZXIqLCBib29sIC8qdXNpbmdUaWxlZEJhY2tpbmcqLykgb3ZlcnJpZGU7CiAgICAg
dmlydHVhbCB2b2lkIG5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoY29uc3QgR3JhcGhpY3NMYXllcios
IGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uS2V5LCBkb3VibGUgc3RhcnRUaW1lKSBvdmVycmlkZTsK
ICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVy
Kikgb3ZlcnJpZGU7CkBAIC0yNTYsNyArMjU1LDcgQEAgcHJpdmF0ZToKIAogICAgIExheW91dFJl
Y3QgY29tcG9zaXRlZEJvdW5kc0luY2x1ZGluZ01hcmdpbigpIGNvbnN0OwogICAgIAotICAgIHN0
ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBjcmVhdGVHcmFwaGljc0xheWVyKGNvbnN0IFN0
cmluZyYpOworICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBjcmVhdGVHcmFwaGlj
c0xheWVyKGNvbnN0IFN0cmluZyYsIEdyYXBoaWNzTGF5ZXI6OlR5cGUgPSBHcmFwaGljc0xheWVy
OjpUeXBlOjpOb3JtYWwpOwogCiAgICAgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCYgcmVuZGVyZXIo
KSBjb25zdCB7IHJldHVybiBtX293bmluZ0xheWVyLnJlbmRlcmVyKCk7IH0KICAgICBSZW5kZXJM
YXllckNvbXBvc2l0b3ImIGNvbXBvc2l0b3IoKSBjb25zdCB7IHJldHVybiBtX293bmluZ0xheWVy
LmNvbXBvc2l0b3IoKTsgfQpAQCAtMzY1LDggKzM2NCw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBt
X2NhbkNvbXBvc2l0ZUJhY2tkcm9wRmlsdGVyczsKICNlbmRpZgogICAgIGJvb2wgbV9iYWNrZ3Jv
dW5kTGF5ZXJQYWludHNGaXhlZFJvb3RCYWNrZ3JvdW5kOwotCi0gICAgc3RhdGljIGJvb2wgbV9j
cmVhdGluZ1ByaW1hcnlHcmFwaGljc0xheWVyOwogfTsKIAogZW51bSBDYW52YXNDb21wb3NpdGlu
Z1N0cmF0ZWd5IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3Rl
TGF5ZXJCYWNraW5nU3RvcmUubW0gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxh
eWVyQmFja2luZ1N0b3JlLm1tCmluZGV4IDBjMjMyYzI4M2Y3YmRiYTgzMzBmMjJlYzNlZjEzZTMz
NzA5NGYwNmYuLmFmNmVjNTlkMzBjYTg5ZmI0M2FhOTViZTZlYjE3NGI3ODdiMWIwOWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUu
bW0KKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllckJhY2tpbmdTdG9y
ZS5tbQpAQCAtMzQyLDYgKzM0Miw3IEBAIHZvaWQgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OmRy
YXdJbkNvbnRleHQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBDR0ltYWdlUmVmCiAgICAgY2Fz
ZSBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZVdlYkdMTGF5ZXI6CiAgICAgY2FzZSBQbGF0Zm9y
bUNBTGF5ZXI6OkxheWVyVHlwZUJhY2tkcm9wTGF5ZXI6CiAgICAgY2FzZSBQbGF0Zm9ybUNBTGF5
ZXI6OkxheWVyVHlwZVNoYXBlTGF5ZXI6CisgICAgY2FzZSBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVy
VHlwZVNjcm9sbGluZ0xheWVyOgogICAgIGNhc2UgUGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGVD
dXN0b206CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICBicmVhazsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlVHJhbnNh
Y3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlVHJhbnNh
Y3Rpb24uaAppbmRleCA0YjUxNjA5YWEwOTBjZDQzOGQ1NDkxNGYyY2EzODYxMmE0M2QwNmMyLi5i
MDQ1OTYzZWJhMDc4ODQwNTJmNzI3MTI5Mzg1OWM1YjNmN2VjMWVlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmgKKysrIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5oCkBA
IC04Miw4ICs4Miw3IEBAIHB1YmxpYzoKICAgICAgICAgRmlsdGVyc0NoYW5nZWQgICAgICAgICAg
ICAgICAgICA9IDFMTFUgPDwgMjksCiAgICAgICAgIEFuaW1hdGlvbnNDaGFuZ2VkICAgICAgICAg
ICAgICAgPSAxTExVIDw8IDMwLAogICAgICAgICBFZGdlQW50aWFsaWFzaW5nTWFza0NoYW5nZWQg
ICAgID0gMUxMVSA8PCAzMSwKLSAgICAgICAgQ3VzdG9tQXBwZWFyYW5jZUNoYW5nZWQgICAgICAg
ICA9IDFMTFUgPDwgMzIsCi0gICAgICAgIEN1c3RvbUJlaGF2aW9yQ2hhbmdlZCAgICAgICAgICAg
PSAxTExVIDw8IDMzCisgICAgICAgIEN1c3RvbUFwcGVhcmFuY2VDaGFuZ2VkICAgICAgICAgPSAx
TExVIDw8IDMyCiAgICAgfTsKICAgICB0eXBlZGVmIHVpbnQ2NF90IExheWVyQ2hhbmdlOwogCkBA
IC0xNDksNyArMTQ4LDYgQEAgcHVibGljOgogICAgICAgICBXZWJDb3JlOjpDb2xvciBib3JkZXJD
b2xvcjsKICAgICAgICAgdW5zaWduZWQgZWRnZUFudGlhbGlhc2luZ01hc2s7CiAgICAgICAgIFdl
YkNvcmU6OkdyYXBoaWNzTGF5ZXI6OkN1c3RvbUFwcGVhcmFuY2UgY3VzdG9tQXBwZWFyYW5jZTsK
LSAgICAgICAgV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6Q3VzdG9tQmVoYXZpb3IgY3VzdG9tQmVo
YXZpb3I7CiAgICAgICAgIFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllcjo6RmlsdGVyVHlwZSBtaW5p
ZmljYXRpb25GaWx0ZXI7CiAgICAgICAgIFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllcjo6RmlsdGVy
VHlwZSBtYWduaWZpY2F0aW9uRmlsdGVyOwogICAgICAgICBXZWJDb3JlOjpCbGVuZE1vZGUgYmxl
bmRNb2RlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXll
clRyZWVUcmFuc2FjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5
ZXJUcmVlVHJhbnNhY3Rpb24ubW0KaW5kZXggOWQ1NzU5MjM5NWI1ZDgxOWM1YjYwZGEwYWY0NWJi
ZGM2NTEyZjM2MC4uODk2OGU5Y2Q2NDA3YWQ4YTRiYThhNzQ0OTczOGNlYTAzNGQ4OTg4ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2Fj
dGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRy
YW5zYWN0aW9uLm1tCkBAIC05Myw3ICs5Myw2IEBAIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9u
OjpMYXllclByb3BlcnRpZXM6OkxheWVyUHJvcGVydGllcygpCiAgICAgLCBib3JkZXJDb2xvcihD
b2xvcjo6YmxhY2spCiAgICAgLCBlZGdlQW50aWFsaWFzaW5nTWFzayhrQ0FMYXllckxlZnRFZGdl
IHwga0NBTGF5ZXJSaWdodEVkZ2UgfCBrQ0FMYXllckJvdHRvbUVkZ2UgfCBrQ0FMYXllclRvcEVk
Z2UpCiAgICAgLCBjdXN0b21BcHBlYXJhbmNlKEdyYXBoaWNzTGF5ZXI6Ok5vQ3VzdG9tQXBwZWFy
YW5jZSkKLSAgICAsIGN1c3RvbUJlaGF2aW9yKEdyYXBoaWNzTGF5ZXI6Ok5vQ3VzdG9tQmVoYXZp
b3IpCiAgICAgLCBtaW5pZmljYXRpb25GaWx0ZXIoUGxhdGZvcm1DQUxheWVyOjpGaWx0ZXJUeXBl
OjpMaW5lYXIpCiAgICAgLCBtYWduaWZpY2F0aW9uRmlsdGVyKFBsYXRmb3JtQ0FMYXllcjo6Rmls
dGVyVHlwZTo6TGluZWFyKQogICAgICwgYmxlbmRNb2RlKEJsZW5kTW9kZU5vcm1hbCkKQEAgLTEy
OCw3ICsxMjcsNiBAQCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJQcm9wZXJ0aWVz
OjpMYXllclByb3BlcnRpZXMoY29uc3QgTGF5ZXJQcm9wZXJ0aQogICAgICwgYm9yZGVyQ29sb3Io
b3RoZXIuYm9yZGVyQ29sb3IpCiAgICAgLCBlZGdlQW50aWFsaWFzaW5nTWFzayhvdGhlci5lZGdl
QW50aWFsaWFzaW5nTWFzaykKICAgICAsIGN1c3RvbUFwcGVhcmFuY2Uob3RoZXIuY3VzdG9tQXBw
ZWFyYW5jZSkKLSAgICAsIGN1c3RvbUJlaGF2aW9yKG90aGVyLmN1c3RvbUJlaGF2aW9yKQogICAg
ICwgbWluaWZpY2F0aW9uRmlsdGVyKG90aGVyLm1pbmlmaWNhdGlvbkZpbHRlcikKICAgICAsIG1h
Z25pZmljYXRpb25GaWx0ZXIob3RoZXIubWFnbmlmaWNhdGlvbkZpbHRlcikKICAgICAsIGJsZW5k
TW9kZShvdGhlci5ibGVuZE1vZGUpCkBAIC0yNTYsOSArMjU0LDYgQEAgdm9pZCBSZW1vdGVMYXll
clRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJQcm9wZXJ0aWVzOjplbmNvZGUoSVBDOjpBcmd1bWVudEVu
Y29kZXImIGUKIAogICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcyAmIEN1c3RvbUFwcGVhcmFuY2VD
aGFuZ2VkKQogICAgICAgICBlbmNvZGVyLmVuY29kZUVudW0oY3VzdG9tQXBwZWFyYW5jZSk7Ci0K
LSAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMgJiBDdXN0b21CZWhhdmlvckNoYW5nZWQpCi0gICAg
ICAgIGVuY29kZXIuZW5jb2RlRW51bShjdXN0b21CZWhhdmlvcik7CiB9CiAKIGJvb2wgUmVtb3Rl
TGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyUHJvcGVydGllczo6ZGVjb2RlKElQQzo6QXJndW1l
bnREZWNvZGVyJiBkZWNvZGVyLCBMYXllclByb3BlcnRpZXMmIHJlc3VsdCkKQEAgLTQ1NCwxMSAr
NDQ5LDYgQEAgYm9vbCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJQcm9wZXJ0aWVz
OjpkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImIGQKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICB9CiAKLSAgICBpZiAocmVzdWx0LmNoYW5nZWRQcm9wZXJ0aWVzICYgQ3VzdG9tQmVo
YXZpb3JDaGFuZ2VkKSB7Ci0gICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVtKHJlc3VsdC5j
dXN0b21CZWhhdmlvcikpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKQEAgLTExODUsOSArMTE3NSw2IEBAIHN0YXRpYyB2b2lkIGR1bXBD
aGFuZ2VkTGF5ZXJzKFJlbW90ZUxheWVyVHJlZVRleHRTdHJlYW0mIHRzLCBjb25zdCBSZW1vdGVM
YXllclRyCiAgICAgICAgIGlmIChsYXllclByb3BlcnRpZXMuY2hhbmdlZFByb3BlcnRpZXMgJiBS
ZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6Q3VzdG9tQXBwZWFyYW5jZUNoYW5nZWQpCiAgICAg
ICAgICAgICBkdW1wUHJvcGVydHkodHMsICJjdXN0b21BcHBlYXJhbmNlIiwgbGF5ZXJQcm9wZXJ0
aWVzLmN1c3RvbUFwcGVhcmFuY2UpOwogCi0gICAgICAgIGlmIChsYXllclByb3BlcnRpZXMuY2hh
bmdlZFByb3BlcnRpZXMgJiBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6Q3VzdG9tQmVoYXZp
b3JDaGFuZ2VkKQotICAgICAgICAgICAgZHVtcFByb3BlcnR5KHRzLCAiY3VzdG9tQmVoYXZpb3Ii
LCBsYXllclByb3BlcnRpZXMuY3VzdG9tQmVoYXZpb3IpOwotCiAgICAgICAgIHRzIDw8ICIpIjsK
IAogICAgICAgICB0cy5kZWNyZWFzZUluZGVudCgpOwpAQCAtMTI1NSw2ICsxMjQyLDkgQEAgQ1N0
cmluZyBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6ZGVzY3JpcHRpb24oKSBjb25zdAogICAg
ICAgICAgICAgY2FzZSBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZVNoYXBlTGF5ZXI6CiAgICAg
ICAgICAgICAgICAgdHMgPDwgInNoYXBlLWxheWVyIjsKICAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIGNhc2UgUGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGVTY3JvbGxpbmdMYXll
cjoKKyAgICAgICAgICAgICAgICB0cyA8PCAic2Nyb2xsaW5nLWxheWVyIjsKKyAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgUGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGVD
dXN0b206CiAgICAgICAgICAgICAgICAgdHMgPDwgImN1c3RvbS1sYXllciAoY29udGV4dC1pZCAi
IDw8IGNyZWF0ZWRMYXllci5ob3N0aW5nQ29udGV4dElEIDw8ICIpIjsKICAgICAgICAgICAgICAg
ICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUmVtb3Rl
TGF5ZXJUcmVlSG9zdElPUy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUmVtb3Rl
TGF5ZXJUcmVlSG9zdElPUy5tbQppbmRleCA4ZTIyZjdjM2RkMzhhYTFmZjJiZjRmOGNlNjdjZDI3
OTdkYmJkNDU4Li4yN2YzN2NiZTRkZDcxMGI0OWY3YjU4Zjc1ZmVhNzdmMzcyNDMxMjM2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1JlbW90ZUxheWVyVHJlZUhvc3RJ
T1MubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9SZW1vdGVMYXllclRyZWVI
b3N0SU9TLm1tCkBAIC0xNzMsMTMgKzE3Myw3IEBAIExheWVyT3JWaWV3ICpSZW1vdGVMYXllclRy
ZWVIb3N0OjpjcmVhdGVMYXllcihjb25zdCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6CiAg
ICAgY2FzZSBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZVRpbGVkQmFja2luZ0xheWVyOgogICAg
IGNhc2UgUGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGVQYWdlVGlsZWRCYWNraW5nTGF5ZXI6CiAg
ICAgY2FzZSBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZVRpbGVkQmFja2luZ1RpbGVMYXllcjoK
LSAgICAgICAgaWYgKGxheWVyUHJvcGVydGllcyAmJiBsYXllclByb3BlcnRpZXMtPmN1c3RvbUJl
aGF2aW9yID09IEdyYXBoaWNzTGF5ZXI6OkN1c3RvbVNjcm9sbGluZ0JlaGF2aW9yKSB7Ci0gICAg
ICAgICAgICBpZiAoIW1faXNEZWJ1Z0xheWVyVHJlZUhvc3QpCi0gICAgICAgICAgICAgICAgdmll
dyA9IGFkb3B0TlMoW1tVSVNjcm9sbFZpZXcgYWxsb2NdIGluaXRdKTsKLSAgICAgICAgICAgIGVs
c2UgLy8gVGhlIGRlYnVnIGluZGljYXRvciBwYXJlbnRzIHZpZXdzIHVuZGVyIGxheWVycywgd2hp
Y2ggY2FuIGNhdXNlIGNyYXNoZXMgd2l0aCBVSVNjcm9sbFZpZXcuCi0gICAgICAgICAgICAgICAg
dmlldyA9IGFkb3B0TlMoW1tVSVZpZXcgYWxsb2NdIGluaXRdKTsKLSAgICAgICAgfSBlbHNlCi0g
ICAgICAgICAgICB2aWV3ID0gYWRvcHROUyhbW1dLQ29tcG9zaXRpbmdWaWV3IGFsbG9jXSBpbml0
XSk7CisgICAgICAgIHZpZXcgPSBhZG9wdE5TKFtbV0tDb21wb3NpdGluZ1ZpZXcgYWxsb2NdIGlu
aXRdKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlw
ZUJhY2tkcm9wTGF5ZXI6CiAgICAgICAgIHZpZXcgPSBhZG9wdE5TKFtbV0tCYWNrZHJvcFZpZXcg
YWxsb2NdIGluaXRdKTsKQEAgLTE5OCw2ICsxOTIsMTIgQEAgTGF5ZXJPclZpZXcgKlJlbW90ZUxh
eWVyVHJlZUhvc3Q6OmNyZWF0ZUxheWVyKGNvbnN0IFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9u
OjoKICAgICBjYXNlIFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlU2hhcGVMYXllcjoKICAgICAg
ICAgdmlldyA9IGFkb3B0TlMoW1tXS1NoYXBlVmlldyBhbGxvY10gaW5pdF0pOwogICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlU2Nyb2xsaW5nTGF5ZXI6
CisgICAgICAgIGlmICghbV9pc0RlYnVnTGF5ZXJUcmVlSG9zdCkKKyAgICAgICAgICAgIHZpZXcg
PSBhZG9wdE5TKFtbVUlTY3JvbGxWaWV3IGFsbG9jXSBpbml0XSk7CisgICAgICAgIGVsc2UgLy8g
VGhlIGRlYnVnIGluZGljYXRvciBwYXJlbnRzIHZpZXdzIHVuZGVyIGxheWVycywgd2hpY2ggY2Fu
IGNhdXNlIGNyYXNoZXMgd2l0aCBVSVNjcm9sbFZpZXcuCisgICAgICAgICAgICB2aWV3ID0gYWRv
cHROUyhbW1VJVmlldyBhbGxvY10gaW5pdF0pOworICAgICAgICBicmVhazsKICAgICBkZWZhdWx0
OgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZUhvc3QubW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZUhvc3QubW0KaW5kZXggMjg2YTY3
NTYzOWQ2MzAzMDE0MjgxMGE2MzY0ZWQxMTgxNTEzMWZiMS4uMTZjZDI3ZThjNzY0NjkwMWExNjEy
NmM1N2U1ZjdiYmZmMjJmOGRhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L21hYy9SZW1vdGVMYXllclRyZWVIb3N0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9tYWMvUmVtb3RlTGF5ZXJUcmVlSG9zdC5tbQpAQCAtMjIyLDYgKzIyMiw3IEBAIExheWVyT3JW
aWV3ICpSZW1vdGVMYXllclRyZWVIb3N0OjpjcmVhdGVMYXllcihjb25zdCBSZW1vdGVMYXllclRy
ZWVUcmFuc2FjdGlvbjo6CiAgICAgY2FzZSBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZVRpbGVk
QmFja2luZ0xheWVyOgogICAgIGNhc2UgUGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGVQYWdlVGls
ZWRCYWNraW5nTGF5ZXI6CiAgICAgY2FzZSBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZVRpbGVk
QmFja2luZ1RpbGVMYXllcjoKKyAgICBjYXNlIFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlU2Ny
b2xsaW5nTGF5ZXI6CiAgICAgICAgIGxheWVyID0gYWRvcHROUyhbW0NBTGF5ZXIgYWxsb2NdIGlu
aXRdKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlw
ZVRyYW5zZm9ybUxheWVyOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL21hYy9HcmFwaGljc0xheWVyQ0FSZW1vdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9tYWMvR3JhcGhpY3NMYXllckNBUmVtb3RlLmgKaW5kZXggMzJlNmJkMWYw
MzRiZWJhMjdmOTU5Yjk5YjUwZGEzMzAyZmVjOTA0ZS4uNmY0Y2YwZjRlN2JiNDhjYjJkYWYzOTJh
NTEyM2Q4N2VlMThiMThkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL21hYy9HcmFwaGljc0xheWVyQ0FSZW1vdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0dyYXBoaWNzTGF5ZXJDQVJlbW90ZS5oCkBAIC0zNSw4ICsz
NSw4IEBAIGNsYXNzIFJlbW90ZUxheWVyVHJlZUNvbnRleHQ7CiAKIGNsYXNzIEdyYXBoaWNzTGF5
ZXJDQVJlbW90ZSBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0EgewogcHVi
bGljOgotICAgIEdyYXBoaWNzTGF5ZXJDQVJlbW90ZShXZWJDb3JlOjpHcmFwaGljc0xheWVyQ2xp
ZW50JiBjbGllbnQsIFJlbW90ZUxheWVyVHJlZUNvbnRleHQmIGNvbnRleHQpCi0gICAgICAgIDog
R3JhcGhpY3NMYXllckNBKGNsaWVudCkKKyAgICBHcmFwaGljc0xheWVyQ0FSZW1vdGUoVHlwZSBs
YXllclR5cGUsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDbGllbnQmIGNsaWVudCwgUmVtb3RlTGF5
ZXJUcmVlQ29udGV4dCYgY29udGV4dCkKKyAgICAgICAgOiBHcmFwaGljc0xheWVyQ0EobGF5ZXJU
eXBlLCBjbGllbnQpCiAgICAgICAgICwgbV9jb250ZXh0KGNvbnRleHQpCiAgICAgewogICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZv
cm1DQUxheWVyUmVtb3RlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9t
YWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmNwcAppbmRleCAxOGIwNGFiOTRkMTE0MzhhYzBiZjcz
MzJjNWMzN2M4MDdjYmE5OGM3Li44YjBkYTNhMjZjZTlhYmNlYzNmZTAzZjY3Yzc1ZjBmYjIwNjI0
YjMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1Bs
YXRmb3JtQ0FMYXllclJlbW90ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuY3BwCkBAIC03MjQsMTcgKzcyNCw2IEBA
IHZvaWQgUGxhdGZvcm1DQUxheWVyUmVtb3RlOjp1cGRhdGVDdXN0b21BcHBlYXJhbmNlKEdyYXBo
aWNzTGF5ZXI6OkN1c3RvbUFwcGVhcmFuCiAgICAgbV9wcm9wZXJ0aWVzLm5vdGVQcm9wZXJ0aWVz
Q2hhbmdlZChSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6Q3VzdG9tQXBwZWFyYW5jZUNoYW5n
ZWQpOwogfQogCi1HcmFwaGljc0xheWVyOjpDdXN0b21CZWhhdmlvciBQbGF0Zm9ybUNBTGF5ZXJS
ZW1vdGU6OmN1c3RvbUJlaGF2aW9yKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9wcm9wZXJ0aWVz
LmN1c3RvbUJlaGF2aW9yOwotfQotCi12b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6dXBkYXRl
Q3VzdG9tQmVoYXZpb3IoR3JhcGhpY3NMYXllcjo6Q3VzdG9tQmVoYXZpb3IgY3VzdG9tQmVoYXZp
b3IpCi17Ci0gICAgbV9wcm9wZXJ0aWVzLmN1c3RvbUJlaGF2aW9yID0gY3VzdG9tQmVoYXZpb3I7
Ci0gICAgbV9wcm9wZXJ0aWVzLm5vdGVQcm9wZXJ0aWVzQ2hhbmdlZChSZW1vdGVMYXllclRyZWVU
cmFuc2FjdGlvbjo6Q3VzdG9tQmVoYXZpb3JDaGFuZ2VkKTsKLX0KLQogUGFzc1JlZlB0cjxQbGF0
Zm9ybUNBTGF5ZXI+IFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6Y3JlYXRlQ29tcGF0aWJsZUxheWVy
KFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlIGxheWVyVHlwZSwgUGxhdGZvcm1DQUxheWVyQ2xp
ZW50KiBjbGllbnQpIGNvbnN0CiB7CiAgICAgcmV0dXJuIFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6
Y3JlYXRlKGxheWVyVHlwZSwgY2xpZW50LCAqbV9jb250ZXh0KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJl
bW90ZS5oCmluZGV4IGQ2MGFjMzU0NGFiYzM4ZWViYWJjMjMxOTE1YzI0ZjZlZjkwNmM5MzMuLjRh
NTEyYzZmNGI1ZTZhZTQ1NjA5NjgyYjkxZjUwYTljYWZlNWI2M2UgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmgK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5
ZXJSZW1vdGUuaApAQCAtMTUwLDkgKzE1MCw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFdlYkNv
cmU6OkdyYXBoaWNzTGF5ZXI6OkN1c3RvbUFwcGVhcmFuY2UgY3VzdG9tQXBwZWFyYW5jZSgpIGNv
bnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVDdXN0b21BcHBlYXJhbmNlKFdl
YkNvcmU6OkdyYXBoaWNzTGF5ZXI6OkN1c3RvbUFwcGVhcmFuY2UpIG92ZXJyaWRlOwogCi0gICAg
dmlydHVhbCBXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpDdXN0b21CZWhhdmlvciBjdXN0b21CZWhh
dmlvcigpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVDdXN0b21CZWhh
dmlvcihXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpDdXN0b21CZWhhdmlvcikgb3ZlcnJpZGU7Ci0K
ICAgICB2aXJ0dWFsIFdlYkNvcmU6OlRpbGVkQmFja2luZyogdGlsZWRCYWNraW5nKCkgb3ZlcnJp
ZGUgeyByZXR1cm4gbnVsbHB0cjsgfQogCiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6
OlBsYXRmb3JtQ0FMYXllcj4gY2xvbmUoV2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyQ2xpZW50KiBv
d25lcikgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5oCmluZGV4IDdl
OWQ1Y2FhMzdlODkwNDQxOTIwNzQ4ZGE5ZjFhMDMzMTZkY2M4ZTQuLjk1MzY2ZTYzMWVlYTkwY2Jk
Zjc3MjdhNTJkNmZhYWNlYzQ5Mzc4Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5oCkBA
IC03Myw3ICs3Myw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICAvLyBXZWJDb3JlOjpHcmFw
aGljc0xheWVyRmFjdG9yeQotICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXI+IGNyZWF0ZUdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNs
aWVudCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXI+IGNyZWF0ZUdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6
VHlwZSwgV2ViQ29yZTo6R3JhcGhpY3NMYXllckNsaWVudCYpIG92ZXJyaWRlOwogCiAgICAgV2Vi
UGFnZSYgbV93ZWJQYWdlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQubW0gYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQubW0KaW5kZXggN2Qy
NGU3NjI2YWRhYWYwYzFlZjcwOWQ4ODY0N2ZkMTA5MjQ3OWM2Ni4uYmE0MzZmZWRiNDE3OWFkMGQ0
YmEzNjVmOWExMWE3MTljMDcwYThjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVDb250ZXh0Lm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5tbQpA
QCAtOTgsOSArOTgsOSBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZUNvbnRleHQ6OmJhY2tpbmdTdG9y
ZVdpbGxCZURpc3BsYXllZChSZW1vdGVMYXllckJhY2tpbmdTdG9yZQogICAgIG1fYmFja2luZ1N0
b3JlQ29sbGVjdGlvbi5iYWNraW5nU3RvcmVXaWxsQmVEaXNwbGF5ZWQoYmFja2luZ1N0b3JlKTsK
IH0KIAotc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IFJlbW90ZUxheWVyVHJlZUNvbnRl
eHQ6OmNyZWF0ZUdyYXBoaWNzTGF5ZXIoR3JhcGhpY3NMYXllckNsaWVudCYgY2xpZW50KQorc3Rk
Ojp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IFJlbW90ZUxheWVyVHJlZUNvbnRleHQ6OmNyZWF0
ZUdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6VHlwZSBsYXllclR5cGUsIEdy
YXBoaWNzTGF5ZXJDbGllbnQmIGNsaWVudCkKIHsKLSAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1
ZTxHcmFwaGljc0xheWVyQ0FSZW1vdGU+KGNsaWVudCwgKnRoaXMpOworICAgIHJldHVybiBzdGQ6
Om1ha2VfdW5pcXVlPEdyYXBoaWNzTGF5ZXJDQVJlbW90ZT4obGF5ZXJUeXBlLCBjbGllbnQsICp0
aGlzKTsKIH0KIAogdm9pZCBSZW1vdGVMYXllclRyZWVDb250ZXh0OjpidWlsZFRyYW5zYWN0aW9u
KFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbiwgUGxhdGZvcm1DQUxheWVy
JiByb290TGF5ZXIpCg==
</data>
<flag name="review"
          id="270957"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>