<?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>178617</bug_id>
          
          <creation_ts>2017-10-20 23:31:34 -0700</creation_ts>
          <short_desc>Web Inspector: Remove unused Console.setMonitoringXHREnabled</short_desc>
          <delta_ts>2017-11-15 12:58:13 -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>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Joseph Pecoraro">joepeck</assigned_to>
          <cc>bburg</cc>
    
    <cc>buildbot</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>fpizlo</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>jlewis3</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1363003</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-10-20 23:31:34 -0700</bug_when>
    <thetext>Remove unused Console.setMonitoringXHREnabled

* This hasn&apos;t ever been used by our frontend.
* It shouldn&apos;t exist on Console. It is a Web concept.
* It can be done in other ways and isn&apos;t needed here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1363006</commentid>
    <comment_count>1</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-10-20 23:41:42 -0700</bug_when>
    <thetext>*** Bug 155688 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1363007</commentid>
    <comment_count>2</comment_count>
      <attachid>324491</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-10-20 23:42:39 -0700</bug_when>
    <thetext>Created attachment 324491
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1363010</commentid>
    <comment_count>3</comment_count>
      <attachid>324493</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-10-20 23:57:30 -0700</bug_when>
    <thetext>Created attachment 324493
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1363011</commentid>
    <comment_count>4</comment_count>
      <attachid>324493</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-10-21 00:02:07 -0700</bug_when>
    <thetext>Comment on attachment 324493
[PATCH] Proposed Fix

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

&gt; Source/JavaScriptCore/inspector/agents/JSGlobalObjectConsoleAgent.h:37
&gt;      JSGlobalObjectConsoleAgent(AgentContext&amp;, InspectorHeapAgent*);
&gt;      virtual ~JSGlobalObjectConsoleAgent() { }

Actually I don&apos;t think this needs to be virtual anymore! Let me do a  little more cleanup.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1363014</commentid>
    <comment_count>5</comment_count>
      <attachid>324494</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-10-21 00:07:39 -0700</bug_when>
    <thetext>Created attachment 324494
[PATCH] Proposed Fix

Get to remove more and more and more!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1363015</commentid>
    <comment_count>6</comment_count>
      <attachid>324495</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-10-21 00:10:24 -0700</bug_when>
    <thetext>Created attachment 324495
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1363081</commentid>
    <comment_count>7</comment_count>
      <attachid>324495</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-10-21 15:23:05 -0700</bug_when>
    <thetext>Comment on attachment 324495
[PATCH] Proposed Fix

Clearing flags on attachment: 324495

Committed r223820: &lt;https://trac.webkit.org/changeset/223820&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1363082</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-10-21 15:23:06 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1363298</commentid>
    <comment_count>9</comment_count>
    <who name="Matt Lewis">jlewis3</who>
    <bug_when>2017-10-23 09:30:35 -0700</bug_when>
    <thetext>This caused a build break on Windows:

https://build.webkit.org/builders/Apple%20Win%20Release%20%28Build%29/builds/5427
https://build.webkit.org/builders/Apple%20Win%20Release%20%28Build%29/builds/5427/steps/compile-webkit/logs/stdio</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1363302</commentid>
    <comment_count>10</comment_count>
    <who name="Matt Lewis">jlewis3</who>
    <bug_when>2017-10-23 09:45:03 -0700</bug_when>
    <thetext>Reverted r223820 for reason:

This caused a build break on Windows.

Committed r223836: &lt;https://trac.webkit.org/changeset/223836&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1363307</commentid>
    <comment_count>11</comment_count>
      <attachid>324562</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2017-10-23 09:54:40 -0700</bug_when>
    <thetext>Created attachment 324562
Fix Windows</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1363500</commentid>
    <comment_count>12</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2017-10-23 17:55:57 -0700</bug_when>
    <thetext>Committed r223868: &lt;https://trac.webkit.org/changeset/223868&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1372286</commentid>
    <comment_count>13</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-11-15 12:58:13 -0800</bug_when>
    <thetext>&lt;rdar://problem/35568507&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>324491</attachid>
            <date>2017-10-20 23:42:39 -0700</date>
            <delta_ts>2017-10-20 23:50:37 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>setMonitoringXHREnabled-1.patch</filename>
            <type>text/plain</type>
            <size>15745</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGE5MWQ0N2NkODQ3Li43N2JlNjgzMGQ3OSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTctMTAtMjAgIEpvc2Vw
aCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9y
OiBSZW1vdmUgdW51c2VkIENvbnNvbGUuc2V0TW9uaXRvcmluZ1hIUkVuYWJsZWQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODYxNworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL2FnZW50
cy9JbnNwZWN0b3JDb25zb2xlQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0pT
R2xvYmFsT2JqZWN0Q29uc29sZUFnZW50LmNwcDoKKyAgICAgICAgKEluc3BlY3Rvcjo6SlNHbG9i
YWxPYmplY3RDb25zb2xlQWdlbnQ6OnNldE1vbml0b3JpbmdYSFJFbmFibGVkKTogRGVsZXRlZC4K
KyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0Q29uc29sZUFnZW50Lmg6
CisgICAgICAgICogaW5zcGVjdG9yL3Byb3RvY29sL0NvbnNvbGUuanNvbjoKKwogMjAxNy0xMC0y
MCAgQW50b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWIgQW5p
bWF0aW9uc10gUHJvdmlkZSBiYXNpYyB0aW1lbGluZSBhbmQgYW5pbWF0aW9uIGludGVyZmFjZXMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvckNvbnNvbGVBZ2VudC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yQ29uc29sZUFnZW50LmgKaW5kZXggZTIxYTBjZjMyOWUuLjE5NGFhNzA0ODNm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JDb25zb2xlQWdlbnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L2FnZW50cy9JbnNwZWN0b3JDb25zb2xlQWdlbnQuaApAQCAtNjEsNyArNjEsNiBAQCBwdWJsaWM6
CiAgICAgdm9pZCBlbmFibGUoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKICAgICB2b2lkIGRpc2Fi
bGUoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKICAgICB2b2lkIGNsZWFyTWVzc2FnZXMoRXJyb3JT
dHJpbmcmKSBvdmVycmlkZTsKLSAgICB2b2lkIHNldE1vbml0b3JpbmdYSFJFbmFibGVkKEVycm9y
U3RyaW5nJiwgYm9vbCBlbmFibGVkKSBvdmVycmlkZSA9IDA7CiAKICAgICBib29sIGVuYWJsZWQo
KSBjb25zdCB7IHJldHVybiBtX2VuYWJsZWQ7IH0KICAgICB2b2lkIHJlc2V0KCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVj
dENvbnNvbGVBZ2VudC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50
cy9KU0dsb2JhbE9iamVjdENvbnNvbGVBZ2VudC5jcHAKaW5kZXggZGI4OGZjY2UyYzMuLmZmOGFk
NjFlMDk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50
cy9KU0dsb2JhbE9iamVjdENvbnNvbGVBZ2VudC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RDb25zb2xlQWdlbnQuY3BwCkBAIC0z
Myw5ICszMyw0IEBAIEpTR2xvYmFsT2JqZWN0Q29uc29sZUFnZW50OjpKU0dsb2JhbE9iamVjdENv
bnNvbGVBZ2VudChBZ2VudENvbnRleHQmIGNvbnRleHQsIEluCiB7CiB9CiAKLXZvaWQgSlNHbG9i
YWxPYmplY3RDb25zb2xlQWdlbnQ6OnNldE1vbml0b3JpbmdYSFJFbmFibGVkKEVycm9yU3RyaW5n
JiBlcnJvclN0cmluZywgYm9vbCkKLXsKLSAgICBlcnJvclN0cmluZyA9IEFTQ0lJTGl0ZXJhbCgi
Tm90IHN1cHBvcnRlZCBmb3IgSmF2YVNjcmlwdCBjb250ZXh0Iik7Ci19Ci0KIH0gLy8gbmFtZXNw
YWNlIEluc3BlY3RvcgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvSlNHbG9iYWxPYmplY3RDb25zb2xlQWdlbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0Q29uc29sZUFnZW50LmgKaW5kZXgg
MTI5MTgyYTFiM2UuLmEwNTM1MzZjOWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVjdENvbnNvbGVBZ2VudC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0Q29uc29s
ZUFnZW50LmgKQEAgLTM1LDkgKzM1LDYgQEAgY2xhc3MgSlNHbG9iYWxPYmplY3RDb25zb2xlQWdl
bnQgZmluYWwgOiBwdWJsaWMgSW5zcGVjdG9yQ29uc29sZUFnZW50IHsKIHB1YmxpYzoKICAgICBK
U0dsb2JhbE9iamVjdENvbnNvbGVBZ2VudChBZ2VudENvbnRleHQmLCBJbnNwZWN0b3JIZWFwQWdl
bnQqKTsKICAgICB2aXJ0dWFsIH5KU0dsb2JhbE9iamVjdENvbnNvbGVBZ2VudCgpIHsgfQotCi0g
ICAgLy8gRklYTUU6IFhIUnMgYW5kIE5vZGVzIG9ubHkgbWFrZXMgc2Vuc2UgZGVidWdnaW5nIGEg
V2ViIGNvbnRleHQuIENhbiB0aGlzIGJlIG1vdmVkIHRvIGEgZGlmZmVyZW50IGFnZW50PwotICAg
IHZvaWQgc2V0TW9uaXRvcmluZ1hIUkVuYWJsZWQoRXJyb3JTdHJpbmcmLCBib29sIGVuYWJsZWQp
IG92ZXJyaWRlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSW5zcGVjdG9yCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL0NvbnNvbGUuanNvbiBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvQ29uc29sZS5qc29uCmluZGV4
IGI0ZDEwY2VmOTk1Li4zMmFhNzk4OWY3ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9wcm90b2NvbC9Db25zb2xlLmpzb24KKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9Db25zb2xlLmpzb24KQEAgLTU3LDEzICs1Nyw2IEBA
CiAgICAgICAgIHsKICAgICAgICAgICAgICJuYW1lIjogImNsZWFyTWVzc2FnZXMiLAogICAgICAg
ICAgICAgImRlc2NyaXB0aW9uIjogIkNsZWFycyBjb25zb2xlIG1lc3NhZ2VzIGNvbGxlY3RlZCBp
biB0aGUgYnJvd3Nlci4iCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgICJuYW1l
IjogInNldE1vbml0b3JpbmdYSFJFbmFibGVkIiwKLSAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6
ICJUb2dnbGVzIG1vbml0b3Jpbmcgb2YgWE1MSHR0cFJlcXVlc3QuIElmIDxjb2RlPnRydWU8L2Nv
ZGU+LCBjb25zb2xlIHdpbGwgcmVjZWl2ZSBtZXNzYWdlcyB1cG9uIGVhY2ggWEhSIGlzc3VlZC4i
LAotICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJlbmFibGVkIiwgInR5cGUiOiAiYm9vbGVhbiIsICJkZXNjcmlwdGlvbiI6ICJNb25pdG9yaW5n
IGVuYWJsZWQgc3RhdGUuIiB9Ci0gICAgICAgICAgICBdCiAgICAgICAgIH0KICAgICBdLAogICAg
ICJldmVudHMiOiBbCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGUzMTlmODRmNDUuLjg5MzAyODEwNGQ2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTctMTAtMjAgIEpvc2VwaCBQZWNvcmFybyAgPHBl
Y29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBOZXR3b3JrIFRhYiAt
IFR1cm4gb24gdGhlIG5ldyB0YWIgYnkgZGVmYXVsdCwgcmVtb3ZlIHRoZSBsZWdhY3kgbmV0d29y
ayB0YWIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3
ODU1OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzQ5ODU1MDM+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6ZGlkRmluaXNoWEhSTG9hZGluZ0ltcGwpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6ZGlkRmluaXNoWEhSTG9hZGluZyk6CisgICAgICAgICogaW5zcGVjdG9yL1dl
YkNvbnNvbGVBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb25zb2xlQWdlbnQ6OnNl
dE1vbml0b3JpbmdYSFJFbmFibGVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkNv
bnNvbGVBZ2VudDo6ZGlkRmluaXNoWEhSTG9hZGluZyk6IERlbGV0ZWQuCisgICAgICAgICogaW5z
cGVjdG9yL1dlYkNvbnNvbGVBZ2VudC5oOgorICAgICAgICBSZW1vdmUgWEhSIG1vbml0b3Jpbmcg
Y29kZS4KKworICAgICAgICAqIHhtbC9YTUxIdHRwUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpYTUxIdHRwUmVxdWVzdDo6c2VuZCk6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVx
dWVzdDo6ZGlkRmluaXNoTG9hZGluZyk6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVz
dDo6c2V0TGFzdFNlbmRMaW5lQW5kQ29sdW1uTnVtYmVyKTogRGVsZXRlZC4KKyAgICAgICAgKiB4
bWwvWE1MSHR0cFJlcXVlc3QuaDoKKyAgICAgICAgUmVtb3ZlIG5vdyB1bnVzZWQgc3RhdGUgb24g
WEhSLgorCiAyMDE3LTEwLTIwICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBs
ZS5jb20+CiAKICAgICAgICAgU1ZHUGF0aEVsZW1lbnQgc2hvdWxkIGNhY2hlIHRoZSBidWlsdC11
cCBQYXRoIG9mIGl0cyBub24gYW5pbWF0aW5nIHBhdGhCeXRlU3RyZWFtKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKaW5k
ZXggM2FkYjFlOTMyNDEuLjlmNDQyMzI1ZDc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcApAQCAtNjI1LDEwICs2MjUs
OCBAQCB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkRmFpbExvYWRpbmdJbXBsKElu
c3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbgogICAgICAgICBjb25zb2xlQWdlbnQtPmRpZEZh
aWxMb2FkaW5nKGlkZW50aWZpZXIsIGVycm9yKTsgLy8gVGhpcyBzaG91bGQgY29tZSBBRlRFUiBy
ZXNvdXJjZSBub3RpZmljYXRpb24sIGZyb250LWVuZCByZWxpZXMgb24gdGhpcy4KIH0KIAotdm9p
ZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZEZpbmlzaFhIUkxvYWRpbmdJbXBsKEluc3Ry
dW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIHVuc2lnbmVkIGxvbmcgaWRlbnRp
Zmllciwgc3RkOjpvcHRpb25hbDxTdHJpbmc+IGRlY29kZWRUZXh0LCBjb25zdCBTdHJpbmcmIHVy
bCwgY29uc3QgU3RyaW5nJiBzZW5kVVJMLCB1bnNpZ25lZCBzZW5kTGluZU51bWJlciwgdW5zaWdu
ZWQgc2VuZENvbHVtbk51bWJlcikKK3ZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRG
aW5pc2hYSFJMb2FkaW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdl
bnRzLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBkZWNv
ZGVkVGV4dCkKIHsKLSAgICBpZiAoV2ViQ29uc29sZUFnZW50KiBjb25zb2xlQWdlbnQgPSBpbnN0
cnVtZW50aW5nQWdlbnRzLndlYkNvbnNvbGVBZ2VudCgpKQotICAgICAgICBjb25zb2xlQWdlbnQt
PmRpZEZpbmlzaFhIUkxvYWRpbmcoaWRlbnRpZmllciwgdXJsLCBzZW5kVVJMLCBzZW5kTGluZU51
bWJlciwgc2VuZENvbHVtbk51bWJlcik7CiAgICAgaWYgKEluc3BlY3Rvck5ldHdvcmtBZ2VudCog
bmV0d29ya0FnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5pbnNwZWN0b3JOZXR3b3JrQWdlbnQo
KSkgewogICAgICAgICBpZiAoZGVjb2RlZFRleHQpCiAgICAgICAgICAgICBuZXR3b3JrQWdlbnQt
PmRpZEZpbmlzaFhIUkxvYWRpbmcoaWRlbnRpZmllciwgKmRlY29kZWRUZXh0KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAppbmRl
eCA2MzNiNWQwMDk3ZC4uZGE0MGU2YWFiNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKQEAgLTE4Niw3ICsxODYsNyBAQCBw
dWJsaWM6CiAgICAgZW51bSBjbGFzcyBMb2FkVHlwZSB7IFBpbmcsIEJlYWNvbiB9OwogICAgIHN0
YXRpYyB2b2lkIHdpbGxTZW5kUmVxdWVzdE9mVHlwZShGcmFtZSosIHVuc2lnbmVkIGxvbmcgaWRl
bnRpZmllciwgRG9jdW1lbnRMb2FkZXIqLCBSZXNvdXJjZVJlcXVlc3QmLCBMb2FkVHlwZSk7CiAK
LSAgICBzdGF0aWMgdm9pZCBkaWRGaW5pc2hYSFJMb2FkaW5nKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBkZWNv
ZGVkVGV4dCwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgc2VuZFVSTCwgdW5zaWdu
ZWQgc2VuZExpbmVOdW1iZXIsIHVuc2lnbmVkIHNlbmRDb2x1bW5OdW1iZXIpOworICAgIHN0YXRp
YyB2b2lkIGRpZEZpbmlzaFhIUkxvYWRpbmcoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIHVuc2ln
bmVkIGxvbmcgaWRlbnRpZmllciwgc3RkOjpvcHRpb25hbDxTdHJpbmc+IGRlY29kZWRUZXh0KTsK
ICAgICBzdGF0aWMgdm9pZCB3aWxsTG9hZFhIUlN5bmNocm9ub3VzbHkoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCopOwogICAgIHN0YXRpYyB2b2lkIGRpZExvYWRYSFJTeW5jaHJvbm91c2x5KFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqKTsKICAgICBzdGF0aWMgdm9pZCBzY3JpcHRJbXBvcnRlZChTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmIHNvdXJjZVN0cmluZyk7CkBAIC0zNTUsNyArMzU1LDcgQEAgcHJpdmF0ZToKICAgICBzdGF0
aWMgdm9pZCBkaWRSZWNlaXZlRGF0YUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIHVuc2lnbmVk
IGxvbmcgaWRlbnRpZmllciwgY29uc3QgY2hhciogZGF0YSwgaW50IGRhdGFMZW5ndGgsIGludCBl
bmNvZGVkRGF0YUxlbmd0aCk7CiAgICAgc3RhdGljIHZvaWQgZGlkRmluaXNoTG9hZGluZ0ltcGwo
SW5zdHJ1bWVudGluZ0FnZW50cyYsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRM
b2FkZXIqLCBjb25zdCBOZXR3b3JrTG9hZE1ldHJpY3MmLCBSZXNvdXJjZUxvYWRlciopOwogICAg
IHN0YXRpYyB2b2lkIGRpZEZhaWxMb2FkaW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgdW5z
aWduZWQgbG9uZyBpZGVudGlmaWVyLCBEb2N1bWVudExvYWRlciosIGNvbnN0IFJlc291cmNlRXJy
b3ImKTsKLSAgICBzdGF0aWMgdm9pZCBkaWRGaW5pc2hYSFJMb2FkaW5nSW1wbChJbnN0cnVtZW50
aW5nQWdlbnRzJiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBzdGQ6Om9wdGlvbmFsPFN0cmlu
Zz4gZGVjb2RlZFRleHQsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHNlbmRVUkws
IHVuc2lnbmVkIHNlbmRMaW5lTnVtYmVyLCB1bnNpZ25lZCBzZW5kQ29sdW1uTnVtYmVyKTsKKyAg
ICBzdGF0aWMgdm9pZCBkaWRGaW5pc2hYSFJMb2FkaW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRz
JiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gZGVjb2Rl
ZFRleHQpOwogICAgIHN0YXRpYyB2b2lkIHdpbGxMb2FkWEhSU3luY2hyb25vdXNseUltcGwoSW5z
dHJ1bWVudGluZ0FnZW50cyYpOwogICAgIHN0YXRpYyB2b2lkIGRpZExvYWRYSFJTeW5jaHJvbm91
c2x5SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJik7CiAgICAgc3RhdGljIHZvaWQgc2NyaXB0SW1w
b3J0ZWRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIs
IGNvbnN0IFN0cmluZyYgc291cmNlU3RyaW5nKTsKQEAgLTk1NywxMCArOTU3LDEwIEBAIGlubGlu
ZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6Y29udGludWVXaXRoUG9saWN5SWdub3Jl
KEZyYW1lJiBmcmFtZSwgdW5zCiAgICAgICAgIGRpZFJlY2VpdmVSZXNvdXJjZVJlc3BvbnNlSW1w
bCgqaW5zdHJ1bWVudGluZ0FnZW50cywgaWRlbnRpZmllciwgJmxvYWRlciwgcmVzcG9uc2UsIG51
bGxwdHIpOwogfQogCi1pbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZEZp
bmlzaFhIUkxvYWRpbmcoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgdW5zaWduZWQg
bG9uZyBpZGVudGlmaWVyLCBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gZGVjb2RlZFRleHQsIGNvbnN0
IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHNlbmRVUkwsIHVuc2lnbmVkIHNlbmRMaW5lTnVt
YmVyLCB1bnNpZ25lZCBzZW5kQ29sdW1uTnVtYmVyKQoraW5saW5lIHZvaWQgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjpkaWRGaW5pc2hYSFJMb2FkaW5nKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IGNvbnRleHQsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgc3RkOjpvcHRpb25hbDxTdHJpbmc+
IGRlY29kZWRUZXh0KQogewogICAgIGlmIChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50
aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckNvbnRleHQoY29udGV4dCkpCi0gICAg
ICAgIGRpZEZpbmlzaFhIUkxvYWRpbmdJbXBsKCppbnN0cnVtZW50aW5nQWdlbnRzLCBpZGVudGlm
aWVyLCBkZWNvZGVkVGV4dCwgdXJsLCBzZW5kVVJMLCBzZW5kTGluZU51bWJlciwgc2VuZENvbHVt
bk51bWJlcik7CisgICAgICAgIGRpZEZpbmlzaFhIUkxvYWRpbmdJbXBsKCppbnN0cnVtZW50aW5n
QWdlbnRzLCBpZGVudGlmaWVyLCBkZWNvZGVkVGV4dCk7CiB9CiAKIGlubGluZSB2b2lkIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbExvYWRYSFJTeW5jaHJvbm91c2x5KFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIGNvbnRleHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvV2ViQ29uc29sZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9XZWJDb25z
b2xlQWdlbnQuY3BwCmluZGV4IGEzYmFkYWU2MWYyLi4wODUxMmQ0NjkyZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dlYkNvbnNvbGVBZ2VudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL1dlYkNvbnNvbGVBZ2VudC5jcHAKQEAgLTQ2LDExICs0Niw2IEBA
IFdlYkNvbnNvbGVBZ2VudDo6V2ViQ29uc29sZUFnZW50KEFnZW50Q29udGV4dCYgY29udGV4dCwg
SW5zcGVjdG9ySGVhcEFnZW50KiBoZWFwCiB7CiB9CiAKLXZvaWQgV2ViQ29uc29sZUFnZW50Ojpz
ZXRNb25pdG9yaW5nWEhSRW5hYmxlZChFcnJvclN0cmluZyYsIGJvb2wgZW5hYmxlZCkKLXsKLSAg
ICBtX21vbml0b3JpbmdYSFJFbmFibGVkID0gZW5hYmxlZDsKLX0KLQogdm9pZCBXZWJDb25zb2xl
QWdlbnQ6OmZyYW1lV2luZG93RGlzY2FyZGVkKERPTVdpbmRvdyogd2luZG93KQogewogICAgIGZv
ciAoYXV0byYgbWVzc2FnZSA6IG1fY29uc29sZU1lc3NhZ2VzKSB7CkBAIC02NSwxNyArNjAsNiBA
QCB2b2lkIFdlYkNvbnNvbGVBZ2VudDo6ZnJhbWVXaW5kb3dEaXNjYXJkZWQoRE9NV2luZG93KiB3
aW5kb3cpCiAgICAgc3RhdGljX2Nhc3Q8V2ViSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyJj4obV9pbmpl
Y3RlZFNjcmlwdE1hbmFnZXIpLmRpc2NhcmRJbmplY3RlZFNjcmlwdHNGb3Iod2luZG93KTsKIH0K
IAotdm9pZCBXZWJDb25zb2xlQWdlbnQ6OmRpZEZpbmlzaFhIUkxvYWRpbmcodW5zaWduZWQgbG9u
ZyByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgc2Vu
ZFVSTCwgdW5zaWduZWQgc2VuZExpbmVOdW1iZXIsIHVuc2lnbmVkIHNlbmRDb2x1bW5OdW1iZXIp
Ci17Ci0gICAgaWYgKCFtX2luamVjdGVkU2NyaXB0TWFuYWdlci5pbnNwZWN0b3JFbnZpcm9ubWVu
dCgpLmRldmVsb3BlckV4dHJhc0VuYWJsZWQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYg
KG1fbW9uaXRvcmluZ1hIUkVuYWJsZWQpIHsKLSAgICAgICAgU3RyaW5nIG1lc3NhZ2UgPSAiWEhS
IGZpbmlzaGVkIGxvYWRpbmc6IFwiIiArIHVybCArICJcIi4iOwotICAgICAgICBhZGRNZXNzYWdl
VG9Db25zb2xlKHN0ZDo6bWFrZV91bmlxdWU8Q29uc29sZU1lc3NhZ2U+KE1lc3NhZ2VTb3VyY2U6
Ok5ldHdvcmssIE1lc3NhZ2VUeXBlOjpMb2csIE1lc3NhZ2VMZXZlbDo6RGVidWcsIG1lc3NhZ2Us
IHNlbmRVUkwsIHNlbmRMaW5lTnVtYmVyLCBzZW5kQ29sdW1uTnVtYmVyLCBudWxscHRyLCByZXF1
ZXN0SWRlbnRpZmllcikpOwotICAgIH0KLX0KLQogdm9pZCBXZWJDb25zb2xlQWdlbnQ6OmRpZFJl
Y2VpdmVSZXNwb25zZSh1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsKICAgICBpZiAoIW1faW5qZWN0ZWRTY3JpcHRNYW5h
Z2VyLmluc3BlY3RvckVudmlyb25tZW50KCkuZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCgpKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dlYkNvbnNvbGVBZ2VudC5oIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dlYkNvbnNvbGVBZ2VudC5oCmluZGV4IDVhM2U2ZGQ4YWZh
Li4wNDdjYTI0Y2JkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dlYkNv
bnNvbGVBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9XZWJDb25zb2xlQWdl
bnQuaApAQCAtNDEsMTEgKzQxLDggQEAgcHVibGljOgogICAgIFdlYkNvbnNvbGVBZ2VudChJbnNw
ZWN0b3I6OkFnZW50Q29udGV4dCYsIEluc3BlY3Rvcjo6SW5zcGVjdG9ySGVhcEFnZW50Kik7CiAg
ICAgdmlydHVhbCB+V2ViQ29uc29sZUFnZW50KCkgPSBkZWZhdWx0OwogCi0gICAgdm9pZCBzZXRN
b25pdG9yaW5nWEhSRW5hYmxlZChFcnJvclN0cmluZyYsIGJvb2wgZW5hYmxlZCkgZmluYWw7Ci0K
ICAgICB2b2lkIGZyYW1lV2luZG93RGlzY2FyZGVkKERPTVdpbmRvdyopOwogCi0gICAgdm9pZCBk
aWRGaW5pc2hYSFJMb2FkaW5nKHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHNlbmRVUkwsIHVuc2lnbmVkIHNlbmRMaW5lTnVt
YmVyLCB1bnNpZ25lZCBzZW5kQ29sdW1uTnVtYmVyKTsKICAgICB2b2lkIGRpZFJlY2VpdmVSZXNw
b25zZSh1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJik7CiAgICAgdm9pZCBkaWRGYWlsTG9hZGluZyh1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVu
dGlmaWVyLCBjb25zdCBSZXNvdXJjZUVycm9yJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJl
cXVlc3QuY3BwCmluZGV4IDQ2NmY3MzA2MzE4Li42ODBhMmQ0Nzg4MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94
bWwvWE1MSHR0cFJlcXVlc3QuY3BwCkBAIC0yODAsMTIgKzI4MCw2IEBAIFN0cmluZyBYTUxIdHRw
UmVxdWVzdDo6cmVzcG9uc2VVUkwoKSBjb25zdAogICAgIHJldHVybiByZXNwb25zZVVSTC5zdHJp
bmcoKTsKIH0KIAotdm9pZCBYTUxIdHRwUmVxdWVzdDo6c2V0TGFzdFNlbmRMaW5lQW5kQ29sdW1u
TnVtYmVyKHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlcikKLXsKLSAg
ICBtX2xhc3RTZW5kTGluZU51bWJlciA9IGxpbmVOdW1iZXI7Ci0gICAgbV9sYXN0U2VuZENvbHVt
bk51bWJlciA9IGNvbHVtbk51bWJlcjsKLX0KLQogWE1MSHR0cFJlcXVlc3RVcGxvYWQqIFhNTEh0
dHBSZXF1ZXN0Ojp1cGxvYWQoKQogewogICAgIGlmICghbV91cGxvYWQpCkBAIC00MzMsNDYgKzQy
Nyw2IEBAIHN0ZDo6b3B0aW9uYWw8RXhjZXB0aW9uT3I8dm9pZD4+IFhNTEh0dHBSZXF1ZXN0Ojpw
cmVwYXJlVG9TZW5kKCkKICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogfQogCi1uYW1lc3BhY2Ug
ewotCi0vLyBGSVhNRTogVGhpcyBzaG91bGQgYmUgYWJzdHJhY3RlZCBvdXQsIHNvIHRoYXQgYW55
IElETCBmdW5jdGlvbiBjYW4gYmUgcGFzc2VkIHRoZSBsaW5lL2NvbHVtbi91cmwgdHVwbGUuCi0K
LS8vIEZJWE1FOiBUaGlzIHNob3VsZCBwcm9iYWJseSB1c2UgU2hhZG93Q2hpY2tlbiBzbyB0aGF0
IHdlIGdldCB0aGUgcmlnaHQgZnJhbWUgZXZlbiB3aGVuIGl0IGRpZCBhIHRhaWwgY2FsbC4KLS8v
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTU2ODgKLQotY2xhc3Mg
U2VuZEZ1bmN0b3IgewotcHVibGljOgotICAgIFNlbmRGdW5jdG9yKCkgPSBkZWZhdWx0OwotCi0g
ICAgdW5zaWduZWQgbGluZSgpIGNvbnN0IHsgcmV0dXJuIG1fbGluZTsgfQotICAgIHVuc2lnbmVk
IGNvbHVtbigpIGNvbnN0IHsgcmV0dXJuIG1fY29sdW1uOyB9Ci0gICAgU3RyaW5nIHVybCgpIGNv
bnN0IHsgcmV0dXJuIG1fdXJsOyB9Ci0KLSAgICBKU0M6OlN0YWNrVmlzaXRvcjo6U3RhdHVzIG9w
ZXJhdG9yKCkoSlNDOjpTdGFja1Zpc2l0b3ImIHZpc2l0b3IpIGNvbnN0Ci0gICAgewotICAgICAg
ICBpZiAoIW1faGFzU2tpcHBlZEZpcnN0RnJhbWUpIHsKLSAgICAgICAgICAgIG1faGFzU2tpcHBl
ZEZpcnN0RnJhbWUgPSB0cnVlOwotICAgICAgICAgICAgcmV0dXJuIEpTQzo6U3RhY2tWaXNpdG9y
OjpDb250aW51ZTsKLSAgICAgICAgfQotCi0gICAgICAgIHVuc2lnbmVkIGxpbmUgPSAwOwotICAg
ICAgICB1bnNpZ25lZCBjb2x1bW4gPSAwOwotICAgICAgICB2aXNpdG9yLT5jb21wdXRlTGluZUFu
ZENvbHVtbihsaW5lLCBjb2x1bW4pOwotICAgICAgICBtX2xpbmUgPSBsaW5lOwotICAgICAgICBt
X2NvbHVtbiA9IGNvbHVtbjsKLSAgICAgICAgbV91cmwgPSB2aXNpdG9yLT5zb3VyY2VVUkwoKTsK
LSAgICAgICAgcmV0dXJuIEpTQzo6U3RhY2tWaXNpdG9yOjpEb25lOwotICAgIH0KLQotcHJpdmF0
ZToKLSAgICBtdXRhYmxlIGJvb2wgbV9oYXNTa2lwcGVkRmlyc3RGcmFtZSB7IGZhbHNlIH07Ci0g
ICAgbXV0YWJsZSB1bnNpZ25lZCBtX2xpbmUgeyAwIH07Ci0gICAgbXV0YWJsZSB1bnNpZ25lZCBt
X2NvbHVtbiB7IDAgfTsKLSAgICBtdXRhYmxlIFN0cmluZyBtX3VybDsKLX07Ci0KLX0KLQogRXhj
ZXB0aW9uT3I8dm9pZD4gWE1MSHR0cFJlcXVlc3Q6OnNlbmQoSlNDOjpFeGVjU3RhdGUmIHN0YXRl
LCBzdGQ6Om9wdGlvbmFsPFNlbmRUeXBlcz4mJiBzZW5kVHlwZSkKIHsKICAgICBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OndpbGxTZW5kWE1MSHR0cFJlcXVlc3Qoc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpLCB1cmwoKSk7CkBAIC00OTEsMTEgKzQ0NSw2IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFhN
TEh0dHBSZXF1ZXN0OjpzZW5kKEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgc3RkOjpvcHRpb25hbDxT
ZW5kCiAgICAgICAgICk7CiAgICAgfQogCi0gICAgU2VuZEZ1bmN0b3IgZnVuY3RvcjsKLSAgICBz
dGF0ZS5pdGVyYXRlKGZ1bmN0b3IpOwotICAgIHNldExhc3RTZW5kTGluZUFuZENvbHVtbk51bWJl
cihmdW5jdG9yLmxpbmUoKSwgZnVuY3Rvci5jb2x1bW4oKSk7Ci0gICAgc2V0TGFzdFNlbmRVUkwo
ZnVuY3Rvci51cmwoKSk7Ci0KICAgICByZXR1cm4gcmVzdWx0OwogfQogCkBAIC05OTIsNyArOTQx
LDcgQEAgdm9pZCBYTUxIdHRwUmVxdWVzdDo6ZGlkRmluaXNoTG9hZGluZyh1bnNpZ25lZCBsb25n
IGlkZW50aWZpZXIpCiAgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IGRlY29kZWRUZXh0OwogICAg
IGlmICghbV9iaW5hcnlSZXNwb25zZUJ1aWxkZXIpCiAgICAgICAgIGRlY29kZWRUZXh0ID0gbV9y
ZXNwb25zZUJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCk7Ci0gICAgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjpkaWRGaW5pc2hYSFJMb2FkaW5nKHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSwgaWRlbnRpZmllciwgZGVjb2RlZFRleHQsIG1fdXJsLCBtX2xhc3RTZW5kVVJMLCBtX2xh
c3RTZW5kTGluZU51bWJlciwgbV9sYXN0U2VuZENvbHVtbk51bWJlcik7CisgICAgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjpkaWRGaW5pc2hYSFJMb2FkaW5nKHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSwgaWRlbnRpZmllciwgZGVjb2RlZFRleHQpOwogCiAgICAgYm9vbCBoYWRMb2FkZXIgPSBt
X2xvYWRlcjsKICAgICBtX2xvYWRlciA9IG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVx
dWVzdC5oCmluZGV4IDI2YzZhYTA3ODcyLi5mZmFhN2MyMjdlMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hN
TEh0dHBSZXF1ZXN0LmgKQEAgLTEwOSw5ICsxMDksNiBAQCBwdWJsaWM6CiAKICAgICBTdHJpbmcg
cmVzcG9uc2VVUkwoKSBjb25zdDsKIAotICAgIHZvaWQgc2V0TGFzdFNlbmRMaW5lQW5kQ29sdW1u
TnVtYmVyKHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlcik7Ci0gICAg
dm9pZCBzZXRMYXN0U2VuZFVSTChjb25zdCBTdHJpbmcmIHVybCkgeyBtX2xhc3RTZW5kVVJMID0g
dXJsOyB9Ci0KICAgICBYTUxIdHRwUmVxdWVzdFVwbG9hZCogdXBsb2FkKCk7CiAgICAgWE1MSHR0
cFJlcXVlc3RVcGxvYWQqIG9wdGlvbmFsVXBsb2FkKCkgY29uc3QgeyByZXR1cm4gbV91cGxvYWQu
Z2V0KCk7IH0KIApAQCAtMjE4LDkgKzIxNSw2IEBAIHByaXZhdGU6CiAgICAgLy8gVXNlZCBmb3Ig
cHJvZ3Jlc3MgZXZlbnQgdHJhY2tpbmcuCiAgICAgbG9uZyBsb25nIG1fcmVjZWl2ZWRMZW5ndGgg
eyAwIH07CiAKLSAgICB1bnNpZ25lZCBtX2xhc3RTZW5kTGluZU51bWJlciB7IDAgfTsKLSAgICB1
bnNpZ25lZCBtX2xhc3RTZW5kQ29sdW1uTnVtYmVyIHsgMCB9OwotICAgIFN0cmluZyBtX2xhc3RT
ZW5kVVJMOwogICAgIHN0ZDo6b3B0aW9uYWw8RXhjZXB0aW9uQ29kZT4gbV9leGNlcHRpb25Db2Rl
OwogCiAgICAgWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGUgbV9wcm9ncmVzc0V2
ZW50VGhyb3R0bGU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>324493</attachid>
            <date>2017-10-20 23:57:30 -0700</date>
            <delta_ts>2017-10-21 00:07:39 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>xhr-2.patch</filename>
            <type>text/plain</type>
            <size>17702</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGE5MWQ0N2NkODQ3Li43N2JlNjgzMGQ3OSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTctMTAtMjAgIEpvc2Vw
aCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9y
OiBSZW1vdmUgdW51c2VkIENvbnNvbGUuc2V0TW9uaXRvcmluZ1hIUkVuYWJsZWQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODYxNworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL2FnZW50
cy9JbnNwZWN0b3JDb25zb2xlQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0pT
R2xvYmFsT2JqZWN0Q29uc29sZUFnZW50LmNwcDoKKyAgICAgICAgKEluc3BlY3Rvcjo6SlNHbG9i
YWxPYmplY3RDb25zb2xlQWdlbnQ6OnNldE1vbml0b3JpbmdYSFJFbmFibGVkKTogRGVsZXRlZC4K
KyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0Q29uc29sZUFnZW50Lmg6
CisgICAgICAgICogaW5zcGVjdG9yL3Byb3RvY29sL0NvbnNvbGUuanNvbjoKKwogMjAxNy0xMC0y
MCAgQW50b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWIgQW5p
bWF0aW9uc10gUHJvdmlkZSBiYXNpYyB0aW1lbGluZSBhbmQgYW5pbWF0aW9uIGludGVyZmFjZXMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvckNvbnNvbGVBZ2VudC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yQ29uc29sZUFnZW50LmgKaW5kZXggZTIxYTBjZjMyOWUuLjE5NGFhNzA0ODNm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JDb25zb2xlQWdlbnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L2FnZW50cy9JbnNwZWN0b3JDb25zb2xlQWdlbnQuaApAQCAtNjEsNyArNjEsNiBAQCBwdWJsaWM6
CiAgICAgdm9pZCBlbmFibGUoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKICAgICB2b2lkIGRpc2Fi
bGUoRXJyb3JTdHJpbmcmKSBvdmVycmlkZTsKICAgICB2b2lkIGNsZWFyTWVzc2FnZXMoRXJyb3JT
dHJpbmcmKSBvdmVycmlkZTsKLSAgICB2b2lkIHNldE1vbml0b3JpbmdYSFJFbmFibGVkKEVycm9y
U3RyaW5nJiwgYm9vbCBlbmFibGVkKSBvdmVycmlkZSA9IDA7CiAKICAgICBib29sIGVuYWJsZWQo
KSBjb25zdCB7IHJldHVybiBtX2VuYWJsZWQ7IH0KICAgICB2b2lkIHJlc2V0KCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVj
dENvbnNvbGVBZ2VudC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50
cy9KU0dsb2JhbE9iamVjdENvbnNvbGVBZ2VudC5jcHAKaW5kZXggZGI4OGZjY2UyYzMuLmZmOGFk
NjFlMDk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50
cy9KU0dsb2JhbE9iamVjdENvbnNvbGVBZ2VudC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RDb25zb2xlQWdlbnQuY3BwCkBAIC0z
Myw5ICszMyw0IEBAIEpTR2xvYmFsT2JqZWN0Q29uc29sZUFnZW50OjpKU0dsb2JhbE9iamVjdENv
bnNvbGVBZ2VudChBZ2VudENvbnRleHQmIGNvbnRleHQsIEluCiB7CiB9CiAKLXZvaWQgSlNHbG9i
YWxPYmplY3RDb25zb2xlQWdlbnQ6OnNldE1vbml0b3JpbmdYSFJFbmFibGVkKEVycm9yU3RyaW5n
JiBlcnJvclN0cmluZywgYm9vbCkKLXsKLSAgICBlcnJvclN0cmluZyA9IEFTQ0lJTGl0ZXJhbCgi
Tm90IHN1cHBvcnRlZCBmb3IgSmF2YVNjcmlwdCBjb250ZXh0Iik7Ci19Ci0KIH0gLy8gbmFtZXNw
YWNlIEluc3BlY3RvcgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvSlNHbG9iYWxPYmplY3RDb25zb2xlQWdlbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0Q29uc29sZUFnZW50LmgKaW5kZXgg
MTI5MTgyYTFiM2UuLmEwNTM1MzZjOWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVjdENvbnNvbGVBZ2VudC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0Q29uc29s
ZUFnZW50LmgKQEAgLTM1LDkgKzM1LDYgQEAgY2xhc3MgSlNHbG9iYWxPYmplY3RDb25zb2xlQWdl
bnQgZmluYWwgOiBwdWJsaWMgSW5zcGVjdG9yQ29uc29sZUFnZW50IHsKIHB1YmxpYzoKICAgICBK
U0dsb2JhbE9iamVjdENvbnNvbGVBZ2VudChBZ2VudENvbnRleHQmLCBJbnNwZWN0b3JIZWFwQWdl
bnQqKTsKICAgICB2aXJ0dWFsIH5KU0dsb2JhbE9iamVjdENvbnNvbGVBZ2VudCgpIHsgfQotCi0g
ICAgLy8gRklYTUU6IFhIUnMgYW5kIE5vZGVzIG9ubHkgbWFrZXMgc2Vuc2UgZGVidWdnaW5nIGEg
V2ViIGNvbnRleHQuIENhbiB0aGlzIGJlIG1vdmVkIHRvIGEgZGlmZmVyZW50IGFnZW50PwotICAg
IHZvaWQgc2V0TW9uaXRvcmluZ1hIUkVuYWJsZWQoRXJyb3JTdHJpbmcmLCBib29sIGVuYWJsZWQp
IG92ZXJyaWRlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSW5zcGVjdG9yCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL0NvbnNvbGUuanNvbiBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvQ29uc29sZS5qc29uCmluZGV4
IGI0ZDEwY2VmOTk1Li4zMmFhNzk4OWY3ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9wcm90b2NvbC9Db25zb2xlLmpzb24KKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9Db25zb2xlLmpzb24KQEAgLTU3LDEzICs1Nyw2IEBA
CiAgICAgICAgIHsKICAgICAgICAgICAgICJuYW1lIjogImNsZWFyTWVzc2FnZXMiLAogICAgICAg
ICAgICAgImRlc2NyaXB0aW9uIjogIkNsZWFycyBjb25zb2xlIG1lc3NhZ2VzIGNvbGxlY3RlZCBp
biB0aGUgYnJvd3Nlci4iCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgICJuYW1l
IjogInNldE1vbml0b3JpbmdYSFJFbmFibGVkIiwKLSAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6
ICJUb2dnbGVzIG1vbml0b3Jpbmcgb2YgWE1MSHR0cFJlcXVlc3QuIElmIDxjb2RlPnRydWU8L2Nv
ZGU+LCBjb25zb2xlIHdpbGwgcmVjZWl2ZSBtZXNzYWdlcyB1cG9uIGVhY2ggWEhSIGlzc3VlZC4i
LAotICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJlbmFibGVkIiwgInR5cGUiOiAiYm9vbGVhbiIsICJkZXNjcmlwdGlvbiI6ICJNb25pdG9yaW5n
IGVuYWJsZWQgc3RhdGUuIiB9Ci0gICAgICAgICAgICBdCiAgICAgICAgIH0KICAgICBdLAogICAg
ICJldmVudHMiOiBbCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGUzMTlmODRmNDUuLmZlZTBjNzMwNDkxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTctMTAtMjAgIEpvc2VwaCBQZWNvcmFybyAgPHBl
Y29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBOZXR3b3JrIFRhYiAt
IFR1cm4gb24gdGhlIG5ldyB0YWIgYnkgZGVmYXVsdCwgcmVtb3ZlIHRoZSBsZWdhY3kgbmV0d29y
ayB0YWIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3
ODU1OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzQ5ODU1MDM+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6ZGlkRmluaXNoWEhSTG9hZGluZ0ltcGwpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6ZGlkRmluaXNoWEhSTG9hZGluZyk6CisgICAgICAgICogaW5zcGVjdG9yL1dl
YkNvbnNvbGVBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb25zb2xlQWdlbnQ6OnNl
dE1vbml0b3JpbmdYSFJFbmFibGVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkNv
bnNvbGVBZ2VudDo6ZGlkRmluaXNoWEhSTG9hZGluZyk6IERlbGV0ZWQuCisgICAgICAgICogaW5z
cGVjdG9yL1dlYkNvbnNvbGVBZ2VudC5oOgorICAgICAgICBSZW1vdmUgWEhSIG1vbml0b3Jpbmcg
Y29kZS4KKworICAgICAgICAqIHhtbC9YTUxIdHRwUmVxdWVzdC5oOgorICAgICAgICAqIHhtbC9Y
TUxIdHRwUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6c2Vu
ZCk6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6ZGlkRmluaXNoTG9hZGluZyk6
CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6c2V0TGFzdFNlbmRMaW5lQW5kQ29s
dW1uTnVtYmVyKTogRGVsZXRlZC4KKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3QuaWRsOgor
ICAgICAgICBSZW1vdmUgbm93IHVudXNlZCBzdGF0ZSBvbiBYSFIgYW5kIEV4ZWNTdGF0ZSByZXF1
aXJlbWVudCBmb3Igc2VuZCgpLgorCiAyMDE3LTEwLTIwICBTYWlkIEFib3UtSGFsbGF3YSAgPHNh
Ym91aGFsbGF3YUBhcHBsZS5jb20+CiAKICAgICAgICAgU1ZHUGF0aEVsZW1lbnQgc2hvdWxkIGNh
Y2hlIHRoZSBidWlsdC11cCBQYXRoIG9mIGl0cyBub24gYW5pbWF0aW5nIHBhdGhCeXRlU3RyZWFt
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5jcHAKaW5kZXggM2FkYjFlOTMyNDEuLjlmNDQyMzI1ZDc0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcApA
QCAtNjI1LDEwICs2MjUsOCBAQCB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkRmFp
bExvYWRpbmdJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbgogICAgICAgICBjb25z
b2xlQWdlbnQtPmRpZEZhaWxMb2FkaW5nKGlkZW50aWZpZXIsIGVycm9yKTsgLy8gVGhpcyBzaG91
bGQgY29tZSBBRlRFUiByZXNvdXJjZSBub3RpZmljYXRpb24sIGZyb250LWVuZCByZWxpZXMgb24g
dGhpcy4KIH0KIAotdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZEZpbmlzaFhIUkxv
YWRpbmdJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIHVuc2ln
bmVkIGxvbmcgaWRlbnRpZmllciwgc3RkOjpvcHRpb25hbDxTdHJpbmc+IGRlY29kZWRUZXh0LCBj
b25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiBzZW5kVVJMLCB1bnNpZ25lZCBzZW5kTGlu
ZU51bWJlciwgdW5zaWduZWQgc2VuZENvbHVtbk51bWJlcikKK3ZvaWQgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpkaWRGaW5pc2hYSFJMb2FkaW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBp
bnN0cnVtZW50aW5nQWdlbnRzLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIHN0ZDo6b3B0aW9u
YWw8U3RyaW5nPiBkZWNvZGVkVGV4dCkKIHsKLSAgICBpZiAoV2ViQ29uc29sZUFnZW50KiBjb25z
b2xlQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLndlYkNvbnNvbGVBZ2VudCgpKQotICAgICAg
ICBjb25zb2xlQWdlbnQtPmRpZEZpbmlzaFhIUkxvYWRpbmcoaWRlbnRpZmllciwgdXJsLCBzZW5k
VVJMLCBzZW5kTGluZU51bWJlciwgc2VuZENvbHVtbk51bWJlcik7CiAgICAgaWYgKEluc3BlY3Rv
ck5ldHdvcmtBZ2VudCogbmV0d29ya0FnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5pbnNwZWN0
b3JOZXR3b3JrQWdlbnQoKSkgewogICAgICAgICBpZiAoZGVjb2RlZFRleHQpCiAgICAgICAgICAg
ICBuZXR3b3JrQWdlbnQtPmRpZEZpbmlzaFhIUkxvYWRpbmcoaWRlbnRpZmllciwgKmRlY29kZWRU
ZXh0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0
cnVtZW50YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb24uaAppbmRleCA2MzNiNWQwMDk3ZC4uZGE0MGU2YWFiNDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKQEAgLTE4
Niw3ICsxODYsNyBAQCBwdWJsaWM6CiAgICAgZW51bSBjbGFzcyBMb2FkVHlwZSB7IFBpbmcsIEJl
YWNvbiB9OwogICAgIHN0YXRpYyB2b2lkIHdpbGxTZW5kUmVxdWVzdE9mVHlwZShGcmFtZSosIHVu
c2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMb2FkZXIqLCBSZXNvdXJjZVJlcXVlc3Qm
LCBMb2FkVHlwZSk7CiAKLSAgICBzdGF0aWMgdm9pZCBkaWRGaW5pc2hYSFJMb2FkaW5nKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIHN0ZDo6b3B0aW9u
YWw8U3RyaW5nPiBkZWNvZGVkVGV4dCwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYg
c2VuZFVSTCwgdW5zaWduZWQgc2VuZExpbmVOdW1iZXIsIHVuc2lnbmVkIHNlbmRDb2x1bW5OdW1i
ZXIpOworICAgIHN0YXRpYyB2b2lkIGRpZEZpbmlzaFhIUkxvYWRpbmcoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgc3RkOjpvcHRpb25hbDxTdHJpbmc+
IGRlY29kZWRUZXh0KTsKICAgICBzdGF0aWMgdm9pZCB3aWxsTG9hZFhIUlN5bmNocm9ub3VzbHko
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwogICAgIHN0YXRpYyB2b2lkIGRpZExvYWRYSFJTeW5j
aHJvbm91c2x5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKICAgICBzdGF0aWMgdm9pZCBzY3Jp
cHRJbXBvcnRlZChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgdW5zaWduZWQgbG9uZyBpZGVudGlm
aWVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVN0cmluZyk7CkBAIC0zNTUsNyArMzU1LDcgQEAgcHJp
dmF0ZToKICAgICBzdGF0aWMgdm9pZCBkaWRSZWNlaXZlRGF0YUltcGwoSW5zdHJ1bWVudGluZ0Fn
ZW50cyYsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgY2hhciogZGF0YSwgaW50IGRh
dGFMZW5ndGgsIGludCBlbmNvZGVkRGF0YUxlbmd0aCk7CiAgICAgc3RhdGljIHZvaWQgZGlkRmlu
aXNoTG9hZGluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIHVuc2lnbmVkIGxvbmcgaWRlbnRp
ZmllciwgRG9jdW1lbnRMb2FkZXIqLCBjb25zdCBOZXR3b3JrTG9hZE1ldHJpY3MmLCBSZXNvdXJj
ZUxvYWRlciopOwogICAgIHN0YXRpYyB2b2lkIGRpZEZhaWxMb2FkaW5nSW1wbChJbnN0cnVtZW50
aW5nQWdlbnRzJiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBEb2N1bWVudExvYWRlciosIGNv
bnN0IFJlc291cmNlRXJyb3ImKTsKLSAgICBzdGF0aWMgdm9pZCBkaWRGaW5pc2hYSFJMb2FkaW5n
SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBzdGQ6
Om9wdGlvbmFsPFN0cmluZz4gZGVjb2RlZFRleHQsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBT
dHJpbmcmIHNlbmRVUkwsIHVuc2lnbmVkIHNlbmRMaW5lTnVtYmVyLCB1bnNpZ25lZCBzZW5kQ29s
dW1uTnVtYmVyKTsKKyAgICBzdGF0aWMgdm9pZCBkaWRGaW5pc2hYSFJMb2FkaW5nSW1wbChJbnN0
cnVtZW50aW5nQWdlbnRzJiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBzdGQ6Om9wdGlvbmFs
PFN0cmluZz4gZGVjb2RlZFRleHQpOwogICAgIHN0YXRpYyB2b2lkIHdpbGxMb2FkWEhSU3luY2hy
b25vdXNseUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYpOwogICAgIHN0YXRpYyB2b2lkIGRpZExv
YWRYSFJTeW5jaHJvbm91c2x5SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJik7CiAgICAgc3RhdGlj
IHZvaWQgc2NyaXB0SW1wb3J0ZWRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCB1bnNpZ25lZCBs
b25nIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgc291cmNlU3RyaW5nKTsKQEAgLTk1NywxMCAr
OTU3LDEwIEBAIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6Y29udGludWVX
aXRoUG9saWN5SWdub3JlKEZyYW1lJiBmcmFtZSwgdW5zCiAgICAgICAgIGRpZFJlY2VpdmVSZXNv
dXJjZVJlc3BvbnNlSW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50cywgaWRlbnRpZmllciwgJmxvYWRl
ciwgcmVzcG9uc2UsIG51bGxwdHIpOwogfQogCi1pbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmRpZEZpbmlzaFhIUkxvYWRpbmcoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4dCwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gZGVj
b2RlZFRleHQsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHNlbmRVUkwsIHVuc2ln
bmVkIHNlbmRMaW5lTnVtYmVyLCB1bnNpZ25lZCBzZW5kQ29sdW1uTnVtYmVyKQoraW5saW5lIHZv
aWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRGaW5pc2hYSFJMb2FkaW5nKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgc3RkOjpv
cHRpb25hbDxTdHJpbmc+IGRlY29kZWRUZXh0KQogewogICAgIGlmIChJbnN0cnVtZW50aW5nQWdl
bnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckNvbnRleHQo
Y29udGV4dCkpCi0gICAgICAgIGRpZEZpbmlzaFhIUkxvYWRpbmdJbXBsKCppbnN0cnVtZW50aW5n
QWdlbnRzLCBpZGVudGlmaWVyLCBkZWNvZGVkVGV4dCwgdXJsLCBzZW5kVVJMLCBzZW5kTGluZU51
bWJlciwgc2VuZENvbHVtbk51bWJlcik7CisgICAgICAgIGRpZEZpbmlzaFhIUkxvYWRpbmdJbXBs
KCppbnN0cnVtZW50aW5nQWdlbnRzLCBpZGVudGlmaWVyLCBkZWNvZGVkVGV4dCk7CiB9CiAKIGlu
bGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbExvYWRYSFJTeW5jaHJvbm91
c2x5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvV2ViQ29uc29sZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9XZWJDb25zb2xlQWdlbnQuY3BwCmluZGV4IGEzYmFkYWU2MWYyLi4wODUxMmQ0Njky
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dlYkNvbnNvbGVBZ2VudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dlYkNvbnNvbGVBZ2VudC5jcHAKQEAg
LTQ2LDExICs0Niw2IEBAIFdlYkNvbnNvbGVBZ2VudDo6V2ViQ29uc29sZUFnZW50KEFnZW50Q29u
dGV4dCYgY29udGV4dCwgSW5zcGVjdG9ySGVhcEFnZW50KiBoZWFwCiB7CiB9CiAKLXZvaWQgV2Vi
Q29uc29sZUFnZW50OjpzZXRNb25pdG9yaW5nWEhSRW5hYmxlZChFcnJvclN0cmluZyYsIGJvb2wg
ZW5hYmxlZCkKLXsKLSAgICBtX21vbml0b3JpbmdYSFJFbmFibGVkID0gZW5hYmxlZDsKLX0KLQog
dm9pZCBXZWJDb25zb2xlQWdlbnQ6OmZyYW1lV2luZG93RGlzY2FyZGVkKERPTVdpbmRvdyogd2lu
ZG93KQogewogICAgIGZvciAoYXV0byYgbWVzc2FnZSA6IG1fY29uc29sZU1lc3NhZ2VzKSB7CkBA
IC02NSwxNyArNjAsNiBAQCB2b2lkIFdlYkNvbnNvbGVBZ2VudDo6ZnJhbWVXaW5kb3dEaXNjYXJk
ZWQoRE9NV2luZG93KiB3aW5kb3cpCiAgICAgc3RhdGljX2Nhc3Q8V2ViSW5qZWN0ZWRTY3JpcHRN
YW5hZ2VyJj4obV9pbmplY3RlZFNjcmlwdE1hbmFnZXIpLmRpc2NhcmRJbmplY3RlZFNjcmlwdHNG
b3Iod2luZG93KTsKIH0KIAotdm9pZCBXZWJDb25zb2xlQWdlbnQ6OmRpZEZpbmlzaFhIUkxvYWRp
bmcodW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB1cmwsIGNv
bnN0IFN0cmluZyYgc2VuZFVSTCwgdW5zaWduZWQgc2VuZExpbmVOdW1iZXIsIHVuc2lnbmVkIHNl
bmRDb2x1bW5OdW1iZXIpCi17Ci0gICAgaWYgKCFtX2luamVjdGVkU2NyaXB0TWFuYWdlci5pbnNw
ZWN0b3JFbnZpcm9ubWVudCgpLmRldmVsb3BlckV4dHJhc0VuYWJsZWQoKSkKLSAgICAgICAgcmV0
dXJuOwotCi0gICAgaWYgKG1fbW9uaXRvcmluZ1hIUkVuYWJsZWQpIHsKLSAgICAgICAgU3RyaW5n
IG1lc3NhZ2UgPSAiWEhSIGZpbmlzaGVkIGxvYWRpbmc6IFwiIiArIHVybCArICJcIi4iOwotICAg
ICAgICBhZGRNZXNzYWdlVG9Db25zb2xlKHN0ZDo6bWFrZV91bmlxdWU8Q29uc29sZU1lc3NhZ2U+
KE1lc3NhZ2VTb3VyY2U6Ok5ldHdvcmssIE1lc3NhZ2VUeXBlOjpMb2csIE1lc3NhZ2VMZXZlbDo6
RGVidWcsIG1lc3NhZ2UsIHNlbmRVUkwsIHNlbmRMaW5lTnVtYmVyLCBzZW5kQ29sdW1uTnVtYmVy
LCBudWxscHRyLCByZXF1ZXN0SWRlbnRpZmllcikpOwotICAgIH0KLX0KLQogdm9pZCBXZWJDb25z
b2xlQWdlbnQ6OmRpZFJlY2VpdmVSZXNwb25zZSh1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlm
aWVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsKICAgICBpZiAoIW1faW5q
ZWN0ZWRTY3JpcHRNYW5hZ2VyLmluc3BlY3RvckVudmlyb25tZW50KCkuZGV2ZWxvcGVyRXh0cmFz
RW5hYmxlZCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dlYkNvbnNv
bGVBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dlYkNvbnNvbGVBZ2VudC5oCmlu
ZGV4IDVhM2U2ZGQ4YWZhLi4wNDdjYTI0Y2JkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL1dlYkNvbnNvbGVBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9XZWJDb25zb2xlQWdlbnQuaApAQCAtNDEsMTEgKzQxLDggQEAgcHVibGljOgogICAgIFdlYkNv
bnNvbGVBZ2VudChJbnNwZWN0b3I6OkFnZW50Q29udGV4dCYsIEluc3BlY3Rvcjo6SW5zcGVjdG9y
SGVhcEFnZW50Kik7CiAgICAgdmlydHVhbCB+V2ViQ29uc29sZUFnZW50KCkgPSBkZWZhdWx0Owog
Ci0gICAgdm9pZCBzZXRNb25pdG9yaW5nWEhSRW5hYmxlZChFcnJvclN0cmluZyYsIGJvb2wgZW5h
YmxlZCkgZmluYWw7Ci0KICAgICB2b2lkIGZyYW1lV2luZG93RGlzY2FyZGVkKERPTVdpbmRvdyop
OwogCi0gICAgdm9pZCBkaWRGaW5pc2hYSFJMb2FkaW5nKHVuc2lnbmVkIGxvbmcgcmVxdWVzdElk
ZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHNlbmRVUkwsIHVuc2ln
bmVkIHNlbmRMaW5lTnVtYmVyLCB1bnNpZ25lZCBzZW5kQ29sdW1uTnVtYmVyKTsKICAgICB2b2lk
IGRpZFJlY2VpdmVSZXNwb25zZSh1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyLCBjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJik7CiAgICAgdm9pZCBkaWRGYWlsTG9hZGluZyh1bnNpZ25lZCBs
b25nIHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZUVycm9yJik7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCmluZGV4IDQ2NmY3MzA2MzE4Li5iMGY4M2YxMjMwYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCkBAIC00Myw3ICs0Myw2IEBACiAj
aW5jbHVkZSAiUGFyc2VkQ29udGVudFR5cGUuaCIKICNpbmNsdWRlICJSZXNvdXJjZUVycm9yLmgi
CiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCi0jaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxl
ci5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luUG9saWN5LmgiCiAjaW5jbHVkZSAiU2V0dGlu
Z3MuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKQEAgLTU0LDcgKzUzLDYgQEAKICNpbmNs
dWRlICJYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaCIKICNpbmNsdWRlICJYTUxIdHRwUmVx
dWVzdFVwbG9hZC5oIgogI2luY2x1ZGUgIm1hcmt1cC5oIgotI2luY2x1ZGUgPGludGVycHJldGVy
L1N0YWNrVmlzaXRvci5oPgogI2luY2x1ZGUgPG11dGV4PgogI2luY2x1ZGUgPHJ1bnRpbWUvQXJy
YXlCdWZmZXIuaD4KICNpbmNsdWRlIDxydW50aW1lL0FycmF5QnVmZmVyVmlldy5oPgpAQCAtMjgw
LDEyICsyNzgsNiBAQCBTdHJpbmcgWE1MSHR0cFJlcXVlc3Q6OnJlc3BvbnNlVVJMKCkgY29uc3QK
ICAgICByZXR1cm4gcmVzcG9uc2VVUkwuc3RyaW5nKCk7CiB9CiAKLXZvaWQgWE1MSHR0cFJlcXVl
c3Q6OnNldExhc3RTZW5kTGluZUFuZENvbHVtbk51bWJlcih1bnNpZ25lZCBsaW5lTnVtYmVyLCB1
bnNpZ25lZCBjb2x1bW5OdW1iZXIpCi17Ci0gICAgbV9sYXN0U2VuZExpbmVOdW1iZXIgPSBsaW5l
TnVtYmVyOwotICAgIG1fbGFzdFNlbmRDb2x1bW5OdW1iZXIgPSBjb2x1bW5OdW1iZXI7Ci19Ci0K
IFhNTEh0dHBSZXF1ZXN0VXBsb2FkKiBYTUxIdHRwUmVxdWVzdDo6dXBsb2FkKCkKIHsKICAgICBp
ZiAoIW1fdXBsb2FkKQpAQCAtNDMzLDQ3ICs0MjUsNyBAQCBzdGQ6Om9wdGlvbmFsPEV4Y2VwdGlv
bk9yPHZvaWQ+PiBYTUxIdHRwUmVxdWVzdDo6cHJlcGFyZVRvU2VuZCgpCiAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKIH0KIAotbmFtZXNwYWNlIHsKLQotLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJl
IGFic3RyYWN0ZWQgb3V0LCBzbyB0aGF0IGFueSBJREwgZnVuY3Rpb24gY2FuIGJlIHBhc3NlZCB0
aGUgbGluZS9jb2x1bW4vdXJsIHR1cGxlLgotCi0vLyBGSVhNRTogVGhpcyBzaG91bGQgcHJvYmFi
bHkgdXNlIFNoYWRvd0NoaWNrZW4gc28gdGhhdCB3ZSBnZXQgdGhlIHJpZ2h0IGZyYW1lIGV2ZW4g
d2hlbiBpdCBkaWQgYSB0YWlsIGNhbGwuCi0vLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTU1Njg4Ci0KLWNsYXNzIFNlbmRGdW5jdG9yIHsKLXB1YmxpYzoKLSAgICBT
ZW5kRnVuY3RvcigpID0gZGVmYXVsdDsKLQotICAgIHVuc2lnbmVkIGxpbmUoKSBjb25zdCB7IHJl
dHVybiBtX2xpbmU7IH0KLSAgICB1bnNpZ25lZCBjb2x1bW4oKSBjb25zdCB7IHJldHVybiBtX2Nv
bHVtbjsgfQotICAgIFN0cmluZyB1cmwoKSBjb25zdCB7IHJldHVybiBtX3VybDsgfQotCi0gICAg
SlNDOjpTdGFja1Zpc2l0b3I6OlN0YXR1cyBvcGVyYXRvcigpKEpTQzo6U3RhY2tWaXNpdG9yJiB2
aXNpdG9yKSBjb25zdAotICAgIHsKLSAgICAgICAgaWYgKCFtX2hhc1NraXBwZWRGaXJzdEZyYW1l
KSB7Ci0gICAgICAgICAgICBtX2hhc1NraXBwZWRGaXJzdEZyYW1lID0gdHJ1ZTsKLSAgICAgICAg
ICAgIHJldHVybiBKU0M6OlN0YWNrVmlzaXRvcjo6Q29udGludWU7Ci0gICAgICAgIH0KLQotICAg
ICAgICB1bnNpZ25lZCBsaW5lID0gMDsKLSAgICAgICAgdW5zaWduZWQgY29sdW1uID0gMDsKLSAg
ICAgICAgdmlzaXRvci0+Y29tcHV0ZUxpbmVBbmRDb2x1bW4obGluZSwgY29sdW1uKTsKLSAgICAg
ICAgbV9saW5lID0gbGluZTsKLSAgICAgICAgbV9jb2x1bW4gPSBjb2x1bW47Ci0gICAgICAgIG1f
dXJsID0gdmlzaXRvci0+c291cmNlVVJMKCk7Ci0gICAgICAgIHJldHVybiBKU0M6OlN0YWNrVmlz
aXRvcjo6RG9uZTsKLSAgICB9Ci0KLXByaXZhdGU6Ci0gICAgbXV0YWJsZSBib29sIG1faGFzU2tp
cHBlZEZpcnN0RnJhbWUgeyBmYWxzZSB9OwotICAgIG11dGFibGUgdW5zaWduZWQgbV9saW5lIHsg
MCB9OwotICAgIG11dGFibGUgdW5zaWduZWQgbV9jb2x1bW4geyAwIH07Ci0gICAgbXV0YWJsZSBT
dHJpbmcgbV91cmw7Ci19OwotCi19Ci0KLUV4Y2VwdGlvbk9yPHZvaWQ+IFhNTEh0dHBSZXF1ZXN0
OjpzZW5kKEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgc3RkOjpvcHRpb25hbDxTZW5kVHlwZXM+JiYg
c2VuZFR5cGUpCitFeGNlcHRpb25Pcjx2b2lkPiBYTUxIdHRwUmVxdWVzdDo6c2VuZChzdGQ6Om9w
dGlvbmFsPFNlbmRUeXBlcz4mJiBzZW5kVHlwZSkKIHsKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OndpbGxTZW5kWE1MSHR0cFJlcXVlc3Qoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCB1
cmwoKSk7CiAKQEAgLTQ5MSwxMSArNDQzLDYgQEAgRXhjZXB0aW9uT3I8dm9pZD4gWE1MSHR0cFJl
cXVlc3Q6OnNlbmQoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBzdGQ6Om9wdGlvbmFsPFNlbmQKICAg
ICAgICAgKTsKICAgICB9CiAKLSAgICBTZW5kRnVuY3RvciBmdW5jdG9yOwotICAgIHN0YXRlLml0
ZXJhdGUoZnVuY3Rvcik7Ci0gICAgc2V0TGFzdFNlbmRMaW5lQW5kQ29sdW1uTnVtYmVyKGZ1bmN0
b3IubGluZSgpLCBmdW5jdG9yLmNvbHVtbigpKTsKLSAgICBzZXRMYXN0U2VuZFVSTChmdW5jdG9y
LnVybCgpKTsKLQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKQEAgLTk5Miw3ICs5MzksNyBAQCB2
b2lkIFhNTEh0dHBSZXF1ZXN0OjpkaWRGaW5pc2hMb2FkaW5nKHVuc2lnbmVkIGxvbmcgaWRlbnRp
ZmllcikKICAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gZGVjb2RlZFRleHQ7CiAgICAgaWYgKCFt
X2JpbmFyeVJlc3BvbnNlQnVpbGRlcikKICAgICAgICAgZGVjb2RlZFRleHQgPSBtX3Jlc3BvbnNl
QnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKTsKLSAgICBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmRpZEZpbmlzaFhIUkxvYWRpbmcoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBp
ZGVudGlmaWVyLCBkZWNvZGVkVGV4dCwgbV91cmwsIG1fbGFzdFNlbmRVUkwsIG1fbGFzdFNlbmRM
aW5lTnVtYmVyLCBtX2xhc3RTZW5kQ29sdW1uTnVtYmVyKTsKKyAgICBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmRpZEZpbmlzaFhIUkxvYWRpbmcoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBp
ZGVudGlmaWVyLCBkZWNvZGVkVGV4dCk7CiAKICAgICBib29sIGhhZExvYWRlciA9IG1fbG9hZGVy
OwogICAgIG1fbG9hZGVyID0gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3ht
bC9YTUxIdHRwUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmgK
aW5kZXggMjZjNmFhMDc4NzIuLmNiOTI1NDQ1YzE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS94bWwvWE1MSHR0cFJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJl
cXVlc3QuaApAQCAtMzUsNyArMzUsNiBAQAogbmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBBcnJheUJ1
ZmZlcjsKIGNsYXNzIEFycmF5QnVmZmVyVmlldzsKLWNsYXNzIEV4ZWNTdGF0ZTsKIH0KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewpAQCAtODAsNyArNzksNyBAQCBwdWJsaWM6CiAgICAgRXhjZXB0aW9u
T3I8dm9pZD4gb3Blbihjb25zdCBTdHJpbmcmIG1ldGhvZCwgY29uc3QgU3RyaW5nJiB1cmwpOwog
ICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IG9wZW4oY29uc3QgU3RyaW5nJiBtZXRob2QsIGNvbnN0IFVS
TCYsIGJvb2wgYXN5bmMpOwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IG9wZW4oY29uc3QgU3RyaW5n
JiBtZXRob2QsIGNvbnN0IFN0cmluZyYsIGJvb2wgYXN5bmMsIGNvbnN0IFN0cmluZyYgdXNlciwg
Y29uc3QgU3RyaW5nJiBwYXNzd29yZCk7Ci0gICAgRXhjZXB0aW9uT3I8dm9pZD4gc2VuZChKU0M6
OkV4ZWNTdGF0ZSYsIHN0ZDo6b3B0aW9uYWw8U2VuZFR5cGVzPiYmKTsKKyAgICBFeGNlcHRpb25P
cjx2b2lkPiBzZW5kKHN0ZDo6b3B0aW9uYWw8U2VuZFR5cGVzPiYmKTsKICAgICB2b2lkIGFib3J0
KCk7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0UmVxdWVzdEhlYWRlcihjb25zdCBTdHJpbmcm
IG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUpOwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IG92ZXJy
aWRlTWltZVR5cGUoY29uc3QgU3RyaW5nJiBvdmVycmlkZSk7CkBAIC0xMDksOSArMTA4LDYgQEAg
cHVibGljOgogCiAgICAgU3RyaW5nIHJlc3BvbnNlVVJMKCkgY29uc3Q7CiAKLSAgICB2b2lkIHNl
dExhc3RTZW5kTGluZUFuZENvbHVtbk51bWJlcih1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25l
ZCBjb2x1bW5OdW1iZXIpOwotICAgIHZvaWQgc2V0TGFzdFNlbmRVUkwoY29uc3QgU3RyaW5nJiB1
cmwpIHsgbV9sYXN0U2VuZFVSTCA9IHVybDsgfQotCiAgICAgWE1MSHR0cFJlcXVlc3RVcGxvYWQq
IHVwbG9hZCgpOwogICAgIFhNTEh0dHBSZXF1ZXN0VXBsb2FkKiBvcHRpb25hbFVwbG9hZCgpIGNv
bnN0IHsgcmV0dXJuIG1fdXBsb2FkLmdldCgpOyB9CiAKQEAgLTIxOCw5ICsyMTQsNiBAQCBwcml2
YXRlOgogICAgIC8vIFVzZWQgZm9yIHByb2dyZXNzIGV2ZW50IHRyYWNraW5nLgogICAgIGxvbmcg
bG9uZyBtX3JlY2VpdmVkTGVuZ3RoIHsgMCB9OwogCi0gICAgdW5zaWduZWQgbV9sYXN0U2VuZExp
bmVOdW1iZXIgeyAwIH07Ci0gICAgdW5zaWduZWQgbV9sYXN0U2VuZENvbHVtbk51bWJlciB7IDAg
fTsKLSAgICBTdHJpbmcgbV9sYXN0U2VuZFVSTDsKICAgICBzdGQ6Om9wdGlvbmFsPEV4Y2VwdGlv
bkNvZGU+IG1fZXhjZXB0aW9uQ29kZTsKIAogICAgIFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVu
dFRocm90dGxlIG1fcHJvZ3Jlc3NFdmVudFRocm90dGxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRw
UmVxdWVzdC5pZGwKaW5kZXggMDZiZDdkMzRmYzkuLjhjODYwYjllYmM2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3htbC9YTUxIdHRwUmVxdWVzdC5pZGwKQEAgLTY2LDcgKzY2LDcgQEAgZW51bSBYTUxIdHRwUmVx
dWVzdFJlc3BvbnNlVHlwZSB7CiAgICAgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgdGltZW91dDsK
ICAgICBhdHRyaWJ1dGUgYm9vbGVhbiB3aXRoQ3JlZGVudGlhbHM7CiAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIFhNTEh0dHBSZXF1ZXN0VXBsb2FkIHVwbG9hZDsKLSAgICBbQ2FsbFdpdGg9U2NyaXB0
U3RhdGUsIE1heVRocm93RXhjZXB0aW9uXSB2b2lkIHNlbmQob3B0aW9uYWwgKERvY3VtZW50IG9y
IEJvZHlJbml0KT8gYm9keSA9IG51bGwpOworICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gdm9pZCBz
ZW5kKG9wdGlvbmFsIChEb2N1bWVudCBvciBCb2R5SW5pdCk/IGJvZHkgPSBudWxsKTsKICAgICB2
b2lkIGFib3J0KCk7CiAKICAgICAvLyByZXNwb25zZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>324494</attachid>
            <date>2017-10-21 00:07:39 -0700</date>
            <delta_ts>2017-10-21 00:10:24 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>xhr-3.patch</filename>
            <type>text/plain</type>
            <size>27343</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGE5MWQ0N2NkODQ3Li5jMGRmMjg2M2VlNyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTctMTAtMjAgIEpvc2Vw
aCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9y
OiBSZW1vdmUgdW51c2VkIENvbnNvbGUuc2V0TW9uaXRvcmluZ1hIUkVuYWJsZWQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODYxNworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogSmF2YVNjcmlwdENvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNvbnNvbGVBZ2VudC5oOgorICAgICAgICAq
IGluc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RDb25zb2xlQWdlbnQuY3BwOiBSZW1vdmVk
LgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RDb25zb2xlQWdlbnQu
aDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvdG9jb2wvQ29uc29sZS5qc29uOgor
ICAgICAgICBSZW1vdmVkIGZpbGVzIGFuZCBtZXRob2QuCisKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKEluc3BlY3Rv
cjo6SlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyOjpKU0dsb2JhbE9iamVjdEluc3Bl
Y3RvckNvbnRyb2xsZXIpOgorICAgICAgICBUaGlzIGNhbiB1c2UgdGhlIGJhc2UgQ29uc29sZUFn
ZW50IG5vdy4KKwogMjAxNy0xMC0yMCAgQW50b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29t
PgogCiAgICAgICAgIFtXZWIgQW5pbWF0aW9uc10gUHJvdmlkZSBiYXNpYyB0aW1lbGluZSBhbmQg
YW5pbWF0aW9uIGludGVyZmFjZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNWY0
Y2QzMDA3YmMuLjIyMzNjMTVkY2U4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
MTMzNSw3ICsxMzM1LDYgQEAKIAkJQTVGRDAwN0ExODlCMDUxMDAwNjMzMjMxIC8qIENvbnNvbGVN
ZXNzYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
NUZEMDA3ODE4OUIwNTEwMDA2MzMyMzEgLyogQ29uc29sZU1lc3NhZ2UuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNUZEMDA3RTE4OUIwQjRDMDA2
MzMyMzEgLyogU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTVGRDAwN0MxODlCMEI0QzAwNjMzMjMxIC8qIFNjcmlw
dENhbGxTdGFja0ZhY3RvcnkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQlBNUZEMDA4MjE4OUIxOTFBMDA2MzMyMzEgLyogSW5zcGVjdG9yQ29uc29s
ZUFnZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
NUZEMDA4MDE4OUIxOTFBMDA2MzMyMzEgLyogSW5zcGVjdG9yQ29uc29sZUFnZW50LmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQTVGRDAwODYxODlC
MUI3RTAwNjMzMjMxIC8qIEpTR2xvYmFsT2JqZWN0Q29uc29sZUFnZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNUZEMDA4NDE4OUIxQjdFMDA2MzMy
MzEgLyogSlNHbG9iYWxPYmplY3RDb25zb2xlQWdlbnQuaCAqLzsgfTsKIAkJQTcwMDg3M0ExN0NC
RTg1MzAwQzNFNjQzIC8qIE1hcENvbnN0cnVjdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzAwODczODE3Q0JFODUzMDBDM0U2NDMgLyogTWFwQ29u
c3RydWN0b3IuaCAqLzsgfTsKIAkJQTcwMDg3M0UxN0NCRThEMzAwQzNFNjQzIC8qIE1hcFByb3Rv
dHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTcw
MDg3M0MxN0NCRThEMzAwQzNFNjQzIC8qIE1hcFByb3RvdHlwZS5oICovOyB9OwogCQlBNzAwODc0
MjE3Q0JFOEVCMDBDM0U2NDMgLyogSlNNYXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE3MDA4NzQwMTdDQkU4RUIwMEMzRTY0MyAvKiBKU01hcC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0zOTU3LDgg
KzM5NTYsNiBAQAogCQlBNUZEMDA3QzE4OUIwQjRDMDA2MzMyMzEgLyogU2NyaXB0Q2FsbFN0YWNr
RmFjdG9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JpcHRDYWxsU3Rh
Y2tGYWN0b3J5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE1RkQwMDdGMTg5QjE5
MUEwMDYzMzIzMSAvKiBJbnNwZWN0b3JDb25zb2xlQWdlbnQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9yQ29uc29sZUFnZW50LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTVGRDAwODAxODlCMTkxQTAwNjMzMjMxIC8qIEluc3BlY3Rv
ckNvbnNvbGVBZ2VudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0
b3JDb25zb2xlQWdlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTVGRDAwODMx
ODlCMUI3RTAwNjMzMjMxIC8qIEpTR2xvYmFsT2JqZWN0Q29uc29sZUFnZW50LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTR2xvYmFsT2JqZWN0Q29uc29sZUFnZW50
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTVGRDAwODQxODlCMUI3RTAwNjMz
MjMxIC8qIEpTR2xvYmFsT2JqZWN0Q29uc29sZUFnZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTR2xvYmFsT2JqZWN0Q29uc29sZUFnZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUE3MDA4NzM3MTdDQkU4NTMwMEMzRTY0MyAvKiBNYXBDb25zdHJ1Y3Rv
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNYXBDb25zdHJ1Y3Rv
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3MDA4NzM4MTdDQkU4NTMwMEMz
RTY0MyAvKiBNYXBDb25zdHJ1Y3Rvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBNYXBDb25zdHJ1Y3Rvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzAwODcz
QjE3Q0JFOEQzMDBDM0U2NDMgLyogTWFwUHJvdG90eXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IE1hcFByb3RvdHlwZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC03NTYwLDggKzc1NTcsNiBAQAogCQkJCUE1MEU0QjVFMTg4MDlERDUwMDY4QTQ2
RCAvKiBJbnNwZWN0b3JSdW50aW1lQWdlbnQuaCAqLywKIAkJCQlBNTUxNjVEMDFCREVGREJEMDAz
Qjc1QzEgLyogSW5zcGVjdG9yU2NyaXB0UHJvZmlsZXJBZ2VudC5jcHAgKi8sCiAJCQkJQTU1MTY1
RDExQkRFRkRCRDAwM0I3NUMxIC8qIEluc3BlY3RvclNjcmlwdFByb2ZpbGVyQWdlbnQuaCAqLywK
LQkJCQlBNUZEMDA4MzE4OUIxQjdFMDA2MzMyMzEgLyogSlNHbG9iYWxPYmplY3RDb25zb2xlQWdl
bnQuY3BwICovLAotCQkJCUE1RkQwMDg0MTg5QjFCN0UwMDYzMzIzMSAvKiBKU0dsb2JhbE9iamVj
dENvbnNvbGVBZ2VudC5oICovLAogCQkJCUE1N0QyM0U3MTg5MUIwNzcwMDMxQzdGQSAvKiBKU0ds
b2JhbE9iamVjdERlYnVnZ2VyQWdlbnQuY3BwICovLAogCQkJCUE1N0QyM0U4MTg5MUIwNzcwMDMx
QzdGQSAvKiBKU0dsb2JhbE9iamVjdERlYnVnZ2VyQWdlbnQuaCAqLywKIAkJCQlBNTBFNEI1RjE4
ODA5REQ1MDA2OEE0NkQgLyogSlNHbG9iYWxPYmplY3RSdW50aW1lQWdlbnQuY3BwICovLApAQCAt
ODc2NCw3ICs4NzU5LDYgQEAKIAkJCQk3OTdFMDdBQTFCOEZDRkI5MDA4NDAwQkEgLyogSlNHbG9i
YWxMZXhpY2FsRW52aXJvbm1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDIxMEUxNkY1
Q0QwMEIzNDQ2MCAvKiBKU0dsb2JhbE9iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTk2Qjcz
MUQxQkRBMDhFRjAwMzMxQjg0IC8qIEpTR2xvYmFsT2JqZWN0Lmx1dC5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJQTVGRDAwODYxODlCMUI3RTAwNjMzMjMxIC8qIEpTR2xvYmFsT2JqZWN0Q29uc29sZUFn
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUMzQTFBNjE4QzA0OTAyMDBDOTU5M0EgLyogSlNH
bG9iYWxPYmplY3RDb25zb2xlQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTk0NTU5MzE4
MjQ3NDQ3MDBDQzM4NDMgLyogSlNHbG9iYWxPYmplY3REZWJ1Z2dhYmxlLmggaW4gSGVhZGVycyAq
LywKIAkJCQlBNTdEMjNFQTE4OTFCMDc3MDAzMUM3RkEgLyogSlNHbG9iYWxPYmplY3REZWJ1Z2dl
ckFnZW50LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Tb3VyY2VzLnR4dAppbmRleCAx
M2E4NzVkZmRkMS4uNWZlYzg0MmE0MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU291cmNlcy50eHQKQEAg
LTU1Nyw3ICs1NTcsNiBAQCBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQu
Y3BwCiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckhlYXBBZ2VudC5jcHAKIGluc3BlY3Rvci9h
Z2VudHMvSW5zcGVjdG9yUnVudGltZUFnZW50LmNwcAogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JTY3JpcHRQcm9maWxlckFnZW50LmNwcAotaW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVj
dENvbnNvbGVBZ2VudC5jcHAKIGluc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3REZWJ1Z2dl
ckFnZW50LmNwcAogaW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudC5j
cHAKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2Jh
bE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIuY3BwCmluZGV4IDYyZDk0
NjIzOTdjLi41MDMyZDNhNTgzMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9s
bGVyLmNwcApAQCAtNDEsNyArNDEsNiBAQAogI2luY2x1ZGUgIkluc3BlY3RvclNjcmlwdFByb2Zp
bGVyQWdlbnQuaCIKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxP
YmplY3QuaCIKLSNpbmNsdWRlICJKU0dsb2JhbE9iamVjdENvbnNvbGVBZ2VudC5oIgogI2luY2x1
ZGUgIkpTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudC5oIgogI2luY2x1ZGUgIkpTR2xvYmFsT2Jq
ZWN0RGVidWdnZXJBZ2VudC5oIgogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50
LmgiCkBAIC04Myw3ICs4Miw3IEBAIEpTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlcjo6
SlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyKEpTR2xvYmFsT2JqCiAgICAgYXV0byBp
bnNwZWN0b3JBZ2VudCA9IHN0ZDo6bWFrZV91bmlxdWU8SW5zcGVjdG9yQWdlbnQ+KGNvbnRleHQp
OwogICAgIGF1dG8gcnVudGltZUFnZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxKU0dsb2JhbE9iamVj
dFJ1bnRpbWVBZ2VudD4oY29udGV4dCk7CiAgICAgYXV0byBoZWFwQWdlbnQgPSBzdGQ6Om1ha2Vf
dW5pcXVlPEluc3BlY3RvckhlYXBBZ2VudD4oY29udGV4dCk7Ci0gICAgYXV0byBjb25zb2xlQWdl
bnQgPSBzdGQ6Om1ha2VfdW5pcXVlPEpTR2xvYmFsT2JqZWN0Q29uc29sZUFnZW50Pihjb250ZXh0
LCBoZWFwQWdlbnQuZ2V0KCkpOworICAgIGF1dG8gY29uc29sZUFnZW50ID0gc3RkOjptYWtlX3Vu
aXF1ZTxJbnNwZWN0b3JDb25zb2xlQWdlbnQ+KGNvbnRleHQsIGhlYXBBZ2VudC5nZXQoKSk7CiAg
ICAgYXV0byBkZWJ1Z2dlckFnZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxKU0dsb2JhbE9iamVjdERl
YnVnZ2VyQWdlbnQ+KGNvbnRleHQsIGNvbnNvbGVBZ2VudC5nZXQoKSk7CiAgICAgYXV0byBzY3Jp
cHRQcm9maWxlckFnZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxJbnNwZWN0b3JTY3JpcHRQcm9maWxl
ckFnZW50Pihjb250ZXh0KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ29uc29sZUFnZW50LmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDb25zb2xlQWdlbnQuaAppbmRleCBlMjFh
MGNmMzI5ZS4uMTk0YWE3MDQ4M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNvbnNvbGVBZ2VudC5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNvbnNvbGVBZ2VudC5oCkBAIC02
MSw3ICs2MSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGVuYWJsZShFcnJvclN0cmluZyYpIG92ZXJy
aWRlOwogICAgIHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyYpIG92ZXJyaWRlOwogICAgIHZvaWQg
Y2xlYXJNZXNzYWdlcyhFcnJvclN0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgc2V0TW9uaXRv
cmluZ1hIUkVuYWJsZWQoRXJyb3JTdHJpbmcmLCBib29sIGVuYWJsZWQpIG92ZXJyaWRlID0gMDsK
IAogICAgIGJvb2wgZW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZW5hYmxlZDsgfQogICAgIHZv
aWQgcmVzZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0pTR2xvYmFsT2JqZWN0Q29uc29sZUFnZW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0Q29uc29sZUFnZW50LmNwcApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGI4OGZjY2UyYzMuLjAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0Q29u
c29sZUFnZW50LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDQxICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTQsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
LSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmln
LmgiCi0jaW5jbHVkZSAiSlNHbG9iYWxPYmplY3RDb25zb2xlQWdlbnQuaCIKLQotbmFtZXNwYWNl
IEluc3BlY3RvciB7Ci0KLUpTR2xvYmFsT2JqZWN0Q29uc29sZUFnZW50OjpKU0dsb2JhbE9iamVj
dENvbnNvbGVBZ2VudChBZ2VudENvbnRleHQmIGNvbnRleHQsIEluc3BlY3RvckhlYXBBZ2VudCog
aGVhcEFnZW50KQotICAgIDogSW5zcGVjdG9yQ29uc29sZUFnZW50KGNvbnRleHQsIGhlYXBBZ2Vu
dCkKLXsKLX0KLQotdm9pZCBKU0dsb2JhbE9iamVjdENvbnNvbGVBZ2VudDo6c2V0TW9uaXRvcmlu
Z1hIUkVuYWJsZWQoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBib29sKQotewotICAgIGVycm9y
U3RyaW5nID0gQVNDSUlMaXRlcmFsKCJOb3Qgc3VwcG9ydGVkIGZvciBKYXZhU2NyaXB0IGNvbnRl
eHQiKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgSW5zcGVjdG9yCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVjdENvbnNvbGVBZ2Vu
dC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmpl
Y3RDb25zb2xlQWdlbnQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTI5MTgyYTFi
M2UuLjAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdl
bnRzL0pTR2xvYmFsT2JqZWN0Q29uc29sZUFnZW50LmgKKysrIC9kZXYvbnVsbApAQCAtMSw0MyAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE0LCAyMDE1IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJJbnNwZWN0b3JDb25zb2xlQWdlbnQuaCIKLQot
bmFtZXNwYWNlIEluc3BlY3RvciB7Ci0KLWNsYXNzIEpTR2xvYmFsT2JqZWN0Q29uc29sZUFnZW50
IGZpbmFsIDogcHVibGljIEluc3BlY3RvckNvbnNvbGVBZ2VudCB7Ci0gICAgV1RGX01BS0VfTk9O
Q09QWUFCTEUoSlNHbG9iYWxPYmplY3RDb25zb2xlQWdlbnQpOwotICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOwotcHVibGljOgotICAgIEpTR2xvYmFsT2JqZWN0Q29uc29sZUFnZW50KEFnZW50
Q29udGV4dCYsIEluc3BlY3RvckhlYXBBZ2VudCopOwotICAgIHZpcnR1YWwgfkpTR2xvYmFsT2Jq
ZWN0Q29uc29sZUFnZW50KCkgeyB9Ci0KLSAgICAvLyBGSVhNRTogWEhScyBhbmQgTm9kZXMgb25s
eSBtYWtlcyBzZW5zZSBkZWJ1Z2dpbmcgYSBXZWIgY29udGV4dC4gQ2FuIHRoaXMgYmUgbW92ZWQg
dG8gYSBkaWZmZXJlbnQgYWdlbnQ/Ci0gICAgdm9pZCBzZXRNb25pdG9yaW5nWEhSRW5hYmxlZChF
cnJvclN0cmluZyYsIGJvb2wgZW5hYmxlZCkgb3ZlcnJpZGU7Ci19OwotCi19IC8vIG5hbWVzcGFj
ZSBJbnNwZWN0b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
cHJvdG9jb2wvQ29uc29sZS5qc29uIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9w
cm90b2NvbC9Db25zb2xlLmpzb24KaW5kZXggYjRkMTBjZWY5OTUuLjMyYWE3OTg5ZjdlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL0NvbnNvbGUu
anNvbgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL0NvbnNv
bGUuanNvbgpAQCAtNTcsMTMgKzU3LDYgQEAKICAgICAgICAgewogICAgICAgICAgICAgIm5hbWUi
OiAiY2xlYXJNZXNzYWdlcyIsCiAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQ2xlYXJzIGNv
bnNvbGUgbWVzc2FnZXMgY29sbGVjdGVkIGluIHRoZSBicm93c2VyLiIKLSAgICAgICAgfSwKLSAg
ICAgICAgewotICAgICAgICAgICAgIm5hbWUiOiAic2V0TW9uaXRvcmluZ1hIUkVuYWJsZWQiLAot
ICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZXMgbW9uaXRvcmluZyBvZiBYTUxIdHRw
UmVxdWVzdC4gSWYgPGNvZGU+dHJ1ZTwvY29kZT4sIGNvbnNvbGUgd2lsbCByZWNlaXZlIG1lc3Nh
Z2VzIHVwb24gZWFjaCBYSFIgaXNzdWVkLiIsCi0gICAgICAgICAgICAicGFyYW1ldGVycyI6IFsK
LSAgICAgICAgICAgICAgICB7ICJuYW1lIjogImVuYWJsZWQiLCAidHlwZSI6ICJib29sZWFuIiwg
ImRlc2NyaXB0aW9uIjogIk1vbml0b3JpbmcgZW5hYmxlZCBzdGF0ZS4iIH0KLSAgICAgICAgICAg
IF0KICAgICAgICAgfQogICAgIF0sCiAgICAgImV2ZW50cyI6IFsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwZTMx
OWY4NGY0NS4uZWZkZDg5NjQzYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxNy0x
MC0yMCAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCisgICAgICAgIFdl
YiBJbnNwZWN0b3I6IFJlbW92ZSB1bnVzZWQgQ29uc29sZS5zZXRNb25pdG9yaW5nWEhSRW5hYmxl
ZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4NjE3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkRmluaXNoWEhSTG9hZGluZ0ltcGwpOgorICAgICAg
ICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaDoKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkRmluaXNoWEhSTG9hZGluZyk6CisgICAg
ICAgICogaW5zcGVjdG9yL1dlYkNvbnNvbGVBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJDb25zb2xlQWdlbnQ6OnNldE1vbml0b3JpbmdYSFJFbmFibGVkKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OldlYkNvbnNvbGVBZ2VudDo6ZGlkRmluaXNoWEhSTG9hZGluZyk6IERlbGV0
ZWQuCisgICAgICAgICogaW5zcGVjdG9yL1dlYkNvbnNvbGVBZ2VudC5oOgorICAgICAgICBSZW1v
dmUgWEhSIG1vbml0b3JpbmcgY29kZS4KKworICAgICAgICAqIHhtbC9YTUxIdHRwUmVxdWVzdC5o
OgorICAgICAgICAqIHhtbC9YTUxIdHRwUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpY
TUxIdHRwUmVxdWVzdDo6c2VuZCk6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6
ZGlkRmluaXNoTG9hZGluZyk6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6c2V0
TGFzdFNlbmRMaW5lQW5kQ29sdW1uTnVtYmVyKTogRGVsZXRlZC4KKyAgICAgICAgKiB4bWwvWE1M
SHR0cFJlcXVlc3QuaWRsOgorICAgICAgICBSZW1vdmUgbm93IHVudXNlZCBzdGF0ZSBvbiBYSFIg
YW5kIEV4ZWNTdGF0ZSByZXF1aXJlbWVudCBmb3Igc2VuZCgpLgorCiAyMDE3LTEwLTIwICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CiAKICAgICAgICAgU1ZHUGF0
aEVsZW1lbnQgc2hvdWxkIGNhY2hlIHRoZSBidWlsdC11cCBQYXRoIG9mIGl0cyBub24gYW5pbWF0
aW5nIHBhdGhCeXRlU3RyZWFtKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKaW5kZXggM2FkYjFlOTMyNDEuLjlmNDQyMzI1
ZDc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uLmNwcApAQCAtNjI1LDEwICs2MjUsOCBAQCB2b2lkIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6ZGlkRmFpbExvYWRpbmdJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3Ry
dW1lbgogICAgICAgICBjb25zb2xlQWdlbnQtPmRpZEZhaWxMb2FkaW5nKGlkZW50aWZpZXIsIGVy
cm9yKTsgLy8gVGhpcyBzaG91bGQgY29tZSBBRlRFUiByZXNvdXJjZSBub3RpZmljYXRpb24sIGZy
b250LWVuZCByZWxpZXMgb24gdGhpcy4KIH0KIAotdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OmRpZEZpbmlzaFhIUkxvYWRpbmdJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1l
bnRpbmdBZ2VudHMsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgc3RkOjpvcHRpb25hbDxTdHJp
bmc+IGRlY29kZWRUZXh0LCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiBzZW5kVVJM
LCB1bnNpZ25lZCBzZW5kTGluZU51bWJlciwgdW5zaWduZWQgc2VuZENvbHVtbk51bWJlcikKK3Zv
aWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRGaW5pc2hYSFJMb2FkaW5nSW1wbChJbnN0
cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCB1bnNpZ25lZCBsb25nIGlkZW50
aWZpZXIsIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBkZWNvZGVkVGV4dCkKIHsKLSAgICBpZiAoV2Vi
Q29uc29sZUFnZW50KiBjb25zb2xlQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLndlYkNvbnNv
bGVBZ2VudCgpKQotICAgICAgICBjb25zb2xlQWdlbnQtPmRpZEZpbmlzaFhIUkxvYWRpbmcoaWRl
bnRpZmllciwgdXJsLCBzZW5kVVJMLCBzZW5kTGluZU51bWJlciwgc2VuZENvbHVtbk51bWJlcik7
CiAgICAgaWYgKEluc3BlY3Rvck5ldHdvcmtBZ2VudCogbmV0d29ya0FnZW50ID0gaW5zdHJ1bWVu
dGluZ0FnZW50cy5pbnNwZWN0b3JOZXR3b3JrQWdlbnQoKSkgewogICAgICAgICBpZiAoZGVjb2Rl
ZFRleHQpCiAgICAgICAgICAgICBuZXR3b3JrQWdlbnQtPmRpZEZpbmlzaFhIUkxvYWRpbmcoaWRl
bnRpZmllciwgKmRlY29kZWRUZXh0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAppbmRleCA2MzNiNWQwMDk3ZC4uZGE0MGU2YWFi
NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uLmgKQEAgLTE4Niw3ICsxODYsNyBAQCBwdWJsaWM6CiAgICAgZW51bSBjbGFzcyBM
b2FkVHlwZSB7IFBpbmcsIEJlYWNvbiB9OwogICAgIHN0YXRpYyB2b2lkIHdpbGxTZW5kUmVxdWVz
dE9mVHlwZShGcmFtZSosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMb2FkZXIq
LCBSZXNvdXJjZVJlcXVlc3QmLCBMb2FkVHlwZSk7CiAKLSAgICBzdGF0aWMgdm9pZCBkaWRGaW5p
c2hYSFJMb2FkaW5nKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCB1bnNpZ25lZCBsb25nIGlkZW50
aWZpZXIsIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBkZWNvZGVkVGV4dCwgY29uc3QgU3RyaW5nJiB1
cmwsIGNvbnN0IFN0cmluZyYgc2VuZFVSTCwgdW5zaWduZWQgc2VuZExpbmVOdW1iZXIsIHVuc2ln
bmVkIHNlbmRDb2x1bW5OdW1iZXIpOworICAgIHN0YXRpYyB2b2lkIGRpZEZpbmlzaFhIUkxvYWRp
bmcoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgc3Rk
OjpvcHRpb25hbDxTdHJpbmc+IGRlY29kZWRUZXh0KTsKICAgICBzdGF0aWMgdm9pZCB3aWxsTG9h
ZFhIUlN5bmNocm9ub3VzbHkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwogICAgIHN0YXRpYyB2
b2lkIGRpZExvYWRYSFJTeW5jaHJvbm91c2x5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKICAg
ICBzdGF0aWMgdm9pZCBzY3JpcHRJbXBvcnRlZChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgdW5z
aWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVN0cmluZyk7CkBAIC0z
NTUsNyArMzU1LDcgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgdm9pZCBkaWRSZWNlaXZlRGF0YUlt
cGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3Qg
Y2hhciogZGF0YSwgaW50IGRhdGFMZW5ndGgsIGludCBlbmNvZGVkRGF0YUxlbmd0aCk7CiAgICAg
c3RhdGljIHZvaWQgZGlkRmluaXNoTG9hZGluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIHVu
c2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMb2FkZXIqLCBjb25zdCBOZXR3b3JrTG9h
ZE1ldHJpY3MmLCBSZXNvdXJjZUxvYWRlciopOwogICAgIHN0YXRpYyB2b2lkIGRpZEZhaWxMb2Fk
aW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBE
b2N1bWVudExvYWRlciosIGNvbnN0IFJlc291cmNlRXJyb3ImKTsKLSAgICBzdGF0aWMgdm9pZCBk
aWRGaW5pc2hYSFJMb2FkaW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgdW5zaWduZWQgbG9u
ZyBpZGVudGlmaWVyLCBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gZGVjb2RlZFRleHQsIGNvbnN0IFN0
cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHNlbmRVUkwsIHVuc2lnbmVkIHNlbmRMaW5lTnVtYmVy
LCB1bnNpZ25lZCBzZW5kQ29sdW1uTnVtYmVyKTsKKyAgICBzdGF0aWMgdm9pZCBkaWRGaW5pc2hY
SFJMb2FkaW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgdW5zaWduZWQgbG9uZyBpZGVudGlm
aWVyLCBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gZGVjb2RlZFRleHQpOwogICAgIHN0YXRpYyB2b2lk
IHdpbGxMb2FkWEhSU3luY2hyb25vdXNseUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYpOwogICAg
IHN0YXRpYyB2b2lkIGRpZExvYWRYSFJTeW5jaHJvbm91c2x5SW1wbChJbnN0cnVtZW50aW5nQWdl
bnRzJik7CiAgICAgc3RhdGljIHZvaWQgc2NyaXB0SW1wb3J0ZWRJbXBsKEluc3RydW1lbnRpbmdB
Z2VudHMmLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgc291cmNlU3Ry
aW5nKTsKQEAgLTk1NywxMCArOTU3LDEwIEBAIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6Y29udGludWVXaXRoUG9saWN5SWdub3JlKEZyYW1lJiBmcmFtZSwgdW5zCiAgICAg
ICAgIGRpZFJlY2VpdmVSZXNvdXJjZVJlc3BvbnNlSW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50cywg
aWRlbnRpZmllciwgJmxvYWRlciwgcmVzcG9uc2UsIG51bGxwdHIpOwogfQogCi1pbmxpbmUgdm9p
ZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZEZpbmlzaFhIUkxvYWRpbmcoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogY29udGV4dCwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBzdGQ6Om9w
dGlvbmFsPFN0cmluZz4gZGVjb2RlZFRleHQsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJp
bmcmIHNlbmRVUkwsIHVuc2lnbmVkIHNlbmRMaW5lTnVtYmVyLCB1bnNpZ25lZCBzZW5kQ29sdW1u
TnVtYmVyKQoraW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRGaW5pc2hY
SFJMb2FkaW5nKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIHVuc2lnbmVkIGxvbmcg
aWRlbnRpZmllciwgc3RkOjpvcHRpb25hbDxTdHJpbmc+IGRlY29kZWRUZXh0KQogewogICAgIGlm
IChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGlu
Z0FnZW50c0ZvckNvbnRleHQoY29udGV4dCkpCi0gICAgICAgIGRpZEZpbmlzaFhIUkxvYWRpbmdJ
bXBsKCppbnN0cnVtZW50aW5nQWdlbnRzLCBpZGVudGlmaWVyLCBkZWNvZGVkVGV4dCwgdXJsLCBz
ZW5kVVJMLCBzZW5kTGluZU51bWJlciwgc2VuZENvbHVtbk51bWJlcik7CisgICAgICAgIGRpZEZp
bmlzaFhIUkxvYWRpbmdJbXBsKCppbnN0cnVtZW50aW5nQWdlbnRzLCBpZGVudGlmaWVyLCBkZWNv
ZGVkVGV4dCk7CiB9CiAKIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2ls
bExvYWRYSFJTeW5jaHJvbm91c2x5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV2ViQ29uc29sZUFnZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9XZWJDb25zb2xlQWdlbnQuY3BwCmluZGV4IGEzYmFk
YWU2MWYyLi4wODUxMmQ0NjkyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L1dlYkNvbnNvbGVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dlYkNv
bnNvbGVBZ2VudC5jcHAKQEAgLTQ2LDExICs0Niw2IEBAIFdlYkNvbnNvbGVBZ2VudDo6V2ViQ29u
c29sZUFnZW50KEFnZW50Q29udGV4dCYgY29udGV4dCwgSW5zcGVjdG9ySGVhcEFnZW50KiBoZWFw
CiB7CiB9CiAKLXZvaWQgV2ViQ29uc29sZUFnZW50OjpzZXRNb25pdG9yaW5nWEhSRW5hYmxlZChF
cnJvclN0cmluZyYsIGJvb2wgZW5hYmxlZCkKLXsKLSAgICBtX21vbml0b3JpbmdYSFJFbmFibGVk
ID0gZW5hYmxlZDsKLX0KLQogdm9pZCBXZWJDb25zb2xlQWdlbnQ6OmZyYW1lV2luZG93RGlzY2Fy
ZGVkKERPTVdpbmRvdyogd2luZG93KQogewogICAgIGZvciAoYXV0byYgbWVzc2FnZSA6IG1fY29u
c29sZU1lc3NhZ2VzKSB7CkBAIC02NSwxNyArNjAsNiBAQCB2b2lkIFdlYkNvbnNvbGVBZ2VudDo6
ZnJhbWVXaW5kb3dEaXNjYXJkZWQoRE9NV2luZG93KiB3aW5kb3cpCiAgICAgc3RhdGljX2Nhc3Q8
V2ViSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyJj4obV9pbmplY3RlZFNjcmlwdE1hbmFnZXIpLmRpc2Nh
cmRJbmplY3RlZFNjcmlwdHNGb3Iod2luZG93KTsKIH0KIAotdm9pZCBXZWJDb25zb2xlQWdlbnQ6
OmRpZEZpbmlzaFhIUkxvYWRpbmcodW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgc2VuZFVSTCwgdW5zaWduZWQgc2VuZExpbmVO
dW1iZXIsIHVuc2lnbmVkIHNlbmRDb2x1bW5OdW1iZXIpCi17Ci0gICAgaWYgKCFtX2luamVjdGVk
U2NyaXB0TWFuYWdlci5pbnNwZWN0b3JFbnZpcm9ubWVudCgpLmRldmVsb3BlckV4dHJhc0VuYWJs
ZWQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKG1fbW9uaXRvcmluZ1hIUkVuYWJsZWQp
IHsKLSAgICAgICAgU3RyaW5nIG1lc3NhZ2UgPSAiWEhSIGZpbmlzaGVkIGxvYWRpbmc6IFwiIiAr
IHVybCArICJcIi4iOwotICAgICAgICBhZGRNZXNzYWdlVG9Db25zb2xlKHN0ZDo6bWFrZV91bmlx
dWU8Q29uc29sZU1lc3NhZ2U+KE1lc3NhZ2VTb3VyY2U6Ok5ldHdvcmssIE1lc3NhZ2VUeXBlOjpM
b2csIE1lc3NhZ2VMZXZlbDo6RGVidWcsIG1lc3NhZ2UsIHNlbmRVUkwsIHNlbmRMaW5lTnVtYmVy
LCBzZW5kQ29sdW1uTnVtYmVyLCBudWxscHRyLCByZXF1ZXN0SWRlbnRpZmllcikpOwotICAgIH0K
LX0KLQogdm9pZCBXZWJDb25zb2xlQWdlbnQ6OmRpZFJlY2VpdmVSZXNwb25zZSh1bnNpZ25lZCBs
b25nIHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkK
IHsKICAgICBpZiAoIW1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmluc3BlY3RvckVudmlyb25tZW50
KCkuZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL1dlYkNvbnNvbGVBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dl
YkNvbnNvbGVBZ2VudC5oCmluZGV4IDVhM2U2ZGQ4YWZhLi4wNDAxNjQxN2UwMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dlYkNvbnNvbGVBZ2VudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9XZWJDb25zb2xlQWdlbnQuaApAQCAtMzIsNyArMzIsNiBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBET01XaW5kb3c7CiBjbGFzcyBSZXNvdXJjZUVycm9y
OwogY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKLXR5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOwog
CiBjbGFzcyBXZWJDb25zb2xlQWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yOjpJbnNwZWN0b3JDb25z
b2xlQWdlbnQgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdlYkNvbnNvbGVBZ2VudCk7CkBA
IC00MSwxNiArNDAsMTAgQEAgcHVibGljOgogICAgIFdlYkNvbnNvbGVBZ2VudChJbnNwZWN0b3I6
OkFnZW50Q29udGV4dCYsIEluc3BlY3Rvcjo6SW5zcGVjdG9ySGVhcEFnZW50Kik7CiAgICAgdmly
dHVhbCB+V2ViQ29uc29sZUFnZW50KCkgPSBkZWZhdWx0OwogCi0gICAgdm9pZCBzZXRNb25pdG9y
aW5nWEhSRW5hYmxlZChFcnJvclN0cmluZyYsIGJvb2wgZW5hYmxlZCkgZmluYWw7Ci0KICAgICB2
b2lkIGZyYW1lV2luZG93RGlzY2FyZGVkKERPTVdpbmRvdyopOwogCi0gICAgdm9pZCBkaWRGaW5p
c2hYSFJMb2FkaW5nKHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IFN0cmlu
ZyYgdXJsLCBjb25zdCBTdHJpbmcmIHNlbmRVUkwsIHVuc2lnbmVkIHNlbmRMaW5lTnVtYmVyLCB1
bnNpZ25lZCBzZW5kQ29sdW1uTnVtYmVyKTsKICAgICB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZSh1
bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7
CiAgICAgdm9pZCBkaWRGYWlsTG9hZGluZyh1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVy
LCBjb25zdCBSZXNvdXJjZUVycm9yJik7Ci0KLXByb3RlY3RlZDoKLSAgICBib29sIG1fbW9uaXRv
cmluZ1hIUkVuYWJsZWQgeyBmYWxzZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKaW5kZXggNDY2ZjczMDYzMTguLmIwZjgz
ZjEyMzBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKQEAgLTQzLDcgKzQz
LDYgQEAKICNpbmNsdWRlICJQYXJzZWRDb250ZW50VHlwZS5oIgogI2luY2x1ZGUgIlJlc291cmNl
RXJyb3IuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKLSNpbmNsdWRlICJTY3JpcHRD
b250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW5Qb2xpY3kuaCIKICNpbmNsdWRl
ICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgpAQCAtNTQsNyArNTMsNiBA
QAogI2luY2x1ZGUgIlhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5oIgogI2luY2x1ZGUgIlhN
TEh0dHBSZXF1ZXN0VXBsb2FkLmgiCiAjaW5jbHVkZSAibWFya3VwLmgiCi0jaW5jbHVkZSA8aW50
ZXJwcmV0ZXIvU3RhY2tWaXNpdG9yLmg+CiAjaW5jbHVkZSA8bXV0ZXg+CiAjaW5jbHVkZSA8cnVu
dGltZS9BcnJheUJ1ZmZlci5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvQXJyYXlCdWZmZXJWaWV3Lmg+
CkBAIC0yODAsMTIgKzI3OCw2IEBAIFN0cmluZyBYTUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VVUkwo
KSBjb25zdAogICAgIHJldHVybiByZXNwb25zZVVSTC5zdHJpbmcoKTsKIH0KIAotdm9pZCBYTUxI
dHRwUmVxdWVzdDo6c2V0TGFzdFNlbmRMaW5lQW5kQ29sdW1uTnVtYmVyKHVuc2lnbmVkIGxpbmVO
dW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlcikKLXsKLSAgICBtX2xhc3RTZW5kTGluZU51bWJl
ciA9IGxpbmVOdW1iZXI7Ci0gICAgbV9sYXN0U2VuZENvbHVtbk51bWJlciA9IGNvbHVtbk51bWJl
cjsKLX0KLQogWE1MSHR0cFJlcXVlc3RVcGxvYWQqIFhNTEh0dHBSZXF1ZXN0Ojp1cGxvYWQoKQog
ewogICAgIGlmICghbV91cGxvYWQpCkBAIC00MzMsNDcgKzQyNSw3IEBAIHN0ZDo6b3B0aW9uYWw8
RXhjZXB0aW9uT3I8dm9pZD4+IFhNTEh0dHBSZXF1ZXN0OjpwcmVwYXJlVG9TZW5kKCkKICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OwogfQogCi1uYW1lc3BhY2UgewotCi0vLyBGSVhNRTogVGhpcyBz
aG91bGQgYmUgYWJzdHJhY3RlZCBvdXQsIHNvIHRoYXQgYW55IElETCBmdW5jdGlvbiBjYW4gYmUg
cGFzc2VkIHRoZSBsaW5lL2NvbHVtbi91cmwgdHVwbGUuCi0KLS8vIEZJWE1FOiBUaGlzIHNob3Vs
ZCBwcm9iYWJseSB1c2UgU2hhZG93Q2hpY2tlbiBzbyB0aGF0IHdlIGdldCB0aGUgcmlnaHQgZnJh
bWUgZXZlbiB3aGVuIGl0IGRpZCBhIHRhaWwgY2FsbC4KLS8vIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNTU2ODgKLQotY2xhc3MgU2VuZEZ1bmN0b3IgewotcHVibGlj
OgotICAgIFNlbmRGdW5jdG9yKCkgPSBkZWZhdWx0OwotCi0gICAgdW5zaWduZWQgbGluZSgpIGNv
bnN0IHsgcmV0dXJuIG1fbGluZTsgfQotICAgIHVuc2lnbmVkIGNvbHVtbigpIGNvbnN0IHsgcmV0
dXJuIG1fY29sdW1uOyB9Ci0gICAgU3RyaW5nIHVybCgpIGNvbnN0IHsgcmV0dXJuIG1fdXJsOyB9
Ci0KLSAgICBKU0M6OlN0YWNrVmlzaXRvcjo6U3RhdHVzIG9wZXJhdG9yKCkoSlNDOjpTdGFja1Zp
c2l0b3ImIHZpc2l0b3IpIGNvbnN0Ci0gICAgewotICAgICAgICBpZiAoIW1faGFzU2tpcHBlZEZp
cnN0RnJhbWUpIHsKLSAgICAgICAgICAgIG1faGFzU2tpcHBlZEZpcnN0RnJhbWUgPSB0cnVlOwot
ICAgICAgICAgICAgcmV0dXJuIEpTQzo6U3RhY2tWaXNpdG9yOjpDb250aW51ZTsKLSAgICAgICAg
fQotCi0gICAgICAgIHVuc2lnbmVkIGxpbmUgPSAwOwotICAgICAgICB1bnNpZ25lZCBjb2x1bW4g
PSAwOwotICAgICAgICB2aXNpdG9yLT5jb21wdXRlTGluZUFuZENvbHVtbihsaW5lLCBjb2x1bW4p
OwotICAgICAgICBtX2xpbmUgPSBsaW5lOwotICAgICAgICBtX2NvbHVtbiA9IGNvbHVtbjsKLSAg
ICAgICAgbV91cmwgPSB2aXNpdG9yLT5zb3VyY2VVUkwoKTsKLSAgICAgICAgcmV0dXJuIEpTQzo6
U3RhY2tWaXNpdG9yOjpEb25lOwotICAgIH0KLQotcHJpdmF0ZToKLSAgICBtdXRhYmxlIGJvb2wg
bV9oYXNTa2lwcGVkRmlyc3RGcmFtZSB7IGZhbHNlIH07Ci0gICAgbXV0YWJsZSB1bnNpZ25lZCBt
X2xpbmUgeyAwIH07Ci0gICAgbXV0YWJsZSB1bnNpZ25lZCBtX2NvbHVtbiB7IDAgfTsKLSAgICBt
dXRhYmxlIFN0cmluZyBtX3VybDsKLX07Ci0KLX0KLQotRXhjZXB0aW9uT3I8dm9pZD4gWE1MSHR0
cFJlcXVlc3Q6OnNlbmQoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBzdGQ6Om9wdGlvbmFsPFNlbmRU
eXBlcz4mJiBzZW5kVHlwZSkKK0V4Y2VwdGlvbk9yPHZvaWQ+IFhNTEh0dHBSZXF1ZXN0OjpzZW5k
KHN0ZDo6b3B0aW9uYWw8U2VuZFR5cGVzPiYmIHNlbmRUeXBlKQogewogICAgIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6d2lsbFNlbmRYTUxIdHRwUmVxdWVzdChzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCksIHVybCgpKTsKIApAQCAtNDkxLDExICs0NDMsNiBAQCBFeGNlcHRpb25Pcjx2b2lkPiBY
TUxIdHRwUmVxdWVzdDo6c2VuZChKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIHN0ZDo6b3B0aW9uYWw8
U2VuZAogICAgICAgICApOwogICAgIH0KIAotICAgIFNlbmRGdW5jdG9yIGZ1bmN0b3I7Ci0gICAg
c3RhdGUuaXRlcmF0ZShmdW5jdG9yKTsKLSAgICBzZXRMYXN0U2VuZExpbmVBbmRDb2x1bW5OdW1i
ZXIoZnVuY3Rvci5saW5lKCksIGZ1bmN0b3IuY29sdW1uKCkpOwotICAgIHNldExhc3RTZW5kVVJM
KGZ1bmN0b3IudXJsKCkpOwotCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApAQCAtOTkyLDcgKzkz
OSw3IEBAIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OmRpZEZpbmlzaExvYWRpbmcodW5zaWduZWQgbG9u
ZyBpZGVudGlmaWVyKQogICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBkZWNvZGVkVGV4dDsKICAg
ICBpZiAoIW1fYmluYXJ5UmVzcG9uc2VCdWlsZGVyKQogICAgICAgICBkZWNvZGVkVGV4dCA9IG1f
cmVzcG9uc2VCdWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpOwotICAgIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZGlkRmluaXNoWEhSTG9hZGluZyhzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCksIGlkZW50aWZpZXIsIGRlY29kZWRUZXh0LCBtX3VybCwgbV9sYXN0U2VuZFVSTCwgbV9s
YXN0U2VuZExpbmVOdW1iZXIsIG1fbGFzdFNlbmRDb2x1bW5OdW1iZXIpOworICAgIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZGlkRmluaXNoWEhSTG9hZGluZyhzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCksIGlkZW50aWZpZXIsIGRlY29kZWRUZXh0KTsKIAogICAgIGJvb2wgaGFkTG9hZGVyID0g
bV9sb2FkZXI7CiAgICAgbV9sb2FkZXIgPSBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJl
cXVlc3QuaAppbmRleCAyNmM2YWEwNzg3Mi4uY2I5MjU0NDVjMTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9Y
TUxIdHRwUmVxdWVzdC5oCkBAIC0zNSw3ICszNSw2IEBACiBuYW1lc3BhY2UgSlNDIHsKIGNsYXNz
IEFycmF5QnVmZmVyOwogY2xhc3MgQXJyYXlCdWZmZXJWaWV3OwotY2xhc3MgRXhlY1N0YXRlOwog
fQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC04MCw3ICs3OSw3IEBAIHB1YmxpYzoKICAgICBF
eGNlcHRpb25Pcjx2b2lkPiBvcGVuKGNvbnN0IFN0cmluZyYgbWV0aG9kLCBjb25zdCBTdHJpbmcm
IHVybCk7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gb3Blbihjb25zdCBTdHJpbmcmIG1ldGhvZCwg
Y29uc3QgVVJMJiwgYm9vbCBhc3luYyk7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gb3Blbihjb25z
dCBTdHJpbmcmIG1ldGhvZCwgY29uc3QgU3RyaW5nJiwgYm9vbCBhc3luYywgY29uc3QgU3RyaW5n
JiB1c2VyLCBjb25zdCBTdHJpbmcmIHBhc3N3b3JkKTsKLSAgICBFeGNlcHRpb25Pcjx2b2lkPiBz
ZW5kKEpTQzo6RXhlY1N0YXRlJiwgc3RkOjpvcHRpb25hbDxTZW5kVHlwZXM+JiYpOworICAgIEV4
Y2VwdGlvbk9yPHZvaWQ+IHNlbmQoc3RkOjpvcHRpb25hbDxTZW5kVHlwZXM+JiYpOwogICAgIHZv
aWQgYWJvcnQoKTsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRSZXF1ZXN0SGVhZGVyKGNvbnN0
IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSk7CiAgICAgRXhjZXB0aW9uT3I8dm9p
ZD4gb3ZlcnJpZGVNaW1lVHlwZShjb25zdCBTdHJpbmcmIG92ZXJyaWRlKTsKQEAgLTEwOSw5ICsx
MDgsNiBAQCBwdWJsaWM6CiAKICAgICBTdHJpbmcgcmVzcG9uc2VVUkwoKSBjb25zdDsKIAotICAg
IHZvaWQgc2V0TGFzdFNlbmRMaW5lQW5kQ29sdW1uTnVtYmVyKHVuc2lnbmVkIGxpbmVOdW1iZXIs
IHVuc2lnbmVkIGNvbHVtbk51bWJlcik7Ci0gICAgdm9pZCBzZXRMYXN0U2VuZFVSTChjb25zdCBT
dHJpbmcmIHVybCkgeyBtX2xhc3RTZW5kVVJMID0gdXJsOyB9Ci0KICAgICBYTUxIdHRwUmVxdWVz
dFVwbG9hZCogdXBsb2FkKCk7CiAgICAgWE1MSHR0cFJlcXVlc3RVcGxvYWQqIG9wdGlvbmFsVXBs
b2FkKCkgY29uc3QgeyByZXR1cm4gbV91cGxvYWQuZ2V0KCk7IH0KIApAQCAtMjE4LDkgKzIxNCw2
IEBAIHByaXZhdGU6CiAgICAgLy8gVXNlZCBmb3IgcHJvZ3Jlc3MgZXZlbnQgdHJhY2tpbmcuCiAg
ICAgbG9uZyBsb25nIG1fcmVjZWl2ZWRMZW5ndGggeyAwIH07CiAKLSAgICB1bnNpZ25lZCBtX2xh
c3RTZW5kTGluZU51bWJlciB7IDAgfTsKLSAgICB1bnNpZ25lZCBtX2xhc3RTZW5kQ29sdW1uTnVt
YmVyIHsgMCB9OwotICAgIFN0cmluZyBtX2xhc3RTZW5kVVJMOwogICAgIHN0ZDo6b3B0aW9uYWw8
RXhjZXB0aW9uQ29kZT4gbV9leGNlcHRpb25Db2RlOwogCiAgICAgWE1MSHR0cFJlcXVlc3RQcm9n
cmVzc0V2ZW50VGhyb3R0bGUgbV9wcm9ncmVzc0V2ZW50VGhyb3R0bGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaWRsIGIvU291cmNlL1dlYkNvcmUveG1s
L1hNTEh0dHBSZXF1ZXN0LmlkbAppbmRleCAwNmJkN2QzNGZjOS4uOGM4NjBiOWViYzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmlkbApAQCAtNjYsNyArNjYsNyBAQCBlbnVtIFhN
TEh0dHBSZXF1ZXN0UmVzcG9uc2VUeXBlIHsKICAgICBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyB0
aW1lb3V0OwogICAgIGF0dHJpYnV0ZSBib29sZWFuIHdpdGhDcmVkZW50aWFsczsKICAgICByZWFk
b25seSBhdHRyaWJ1dGUgWE1MSHR0cFJlcXVlc3RVcGxvYWQgdXBsb2FkOwotICAgIFtDYWxsV2l0
aD1TY3JpcHRTdGF0ZSwgTWF5VGhyb3dFeGNlcHRpb25dIHZvaWQgc2VuZChvcHRpb25hbCAoRG9j
dW1lbnQgb3IgQm9keUluaXQpPyBib2R5ID0gbnVsbCk7CisgICAgW01heVRocm93RXhjZXB0aW9u
XSB2b2lkIHNlbmQob3B0aW9uYWwgKERvY3VtZW50IG9yIEJvZHlJbml0KT8gYm9keSA9IG51bGwp
OwogICAgIHZvaWQgYWJvcnQoKTsKIAogICAgIC8vIHJlc3BvbnNlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>324495</attachid>
            <date>2017-10-21 00:10:24 -0700</date>
            <delta_ts>2017-10-23 09:54:38 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>xhr-4.patch</filename>
            <type>text/plain</type>
            <size>27352</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGE5MWQ0N2NkODQ3Li5jMGRmMjg2M2VlNyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTctMTAtMjAgIEpvc2Vw
aCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9y
OiBSZW1vdmUgdW51c2VkIENvbnNvbGUuc2V0TW9uaXRvcmluZ1hIUkVuYWJsZWQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODYxNworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogSmF2YVNjcmlwdENvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNvbnNvbGVBZ2VudC5oOgorICAgICAgICAq
IGluc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RDb25zb2xlQWdlbnQuY3BwOiBSZW1vdmVk
LgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RDb25zb2xlQWdlbnQu
aDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvdG9jb2wvQ29uc29sZS5qc29uOgor
ICAgICAgICBSZW1vdmVkIGZpbGVzIGFuZCBtZXRob2QuCisKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKEluc3BlY3Rv
cjo6SlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyOjpKU0dsb2JhbE9iamVjdEluc3Bl
Y3RvckNvbnRyb2xsZXIpOgorICAgICAgICBUaGlzIGNhbiB1c2UgdGhlIGJhc2UgQ29uc29sZUFn
ZW50IG5vdy4KKwogMjAxNy0xMC0yMCAgQW50b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29t
PgogCiAgICAgICAgIFtXZWIgQW5pbWF0aW9uc10gUHJvdmlkZSBiYXNpYyB0aW1lbGluZSBhbmQg
YW5pbWF0aW9uIGludGVyZmFjZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNWY0
Y2QzMDA3YmMuLjIyMzNjMTVkY2U4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
MTMzNSw3ICsxMzM1LDYgQEAKIAkJQTVGRDAwN0ExODlCMDUxMDAwNjMzMjMxIC8qIENvbnNvbGVN
ZXNzYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
NUZEMDA3ODE4OUIwNTEwMDA2MzMyMzEgLyogQ29uc29sZU1lc3NhZ2UuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNUZEMDA3RTE4OUIwQjRDMDA2
MzMyMzEgLyogU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTVGRDAwN0MxODlCMEI0QzAwNjMzMjMxIC8qIFNjcmlw
dENhbGxTdGFja0ZhY3RvcnkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQlBNUZEMDA4MjE4OUIxOTFBMDA2MzMyMzEgLyogSW5zcGVjdG9yQ29uc29s
ZUFnZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
NUZEMDA4MDE4OUIxOTFBMDA2MzMyMzEgLyogSW5zcGVjdG9yQ29uc29sZUFnZW50LmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQTVGRDAwODYxODlC
MUI3RTAwNjMzMjMxIC8qIEpTR2xvYmFsT2JqZWN0Q29uc29sZUFnZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNUZEMDA4NDE4OUIxQjdFMDA2MzMy
MzEgLyogSlNHbG9iYWxPYmplY3RDb25zb2xlQWdlbnQuaCAqLzsgfTsKIAkJQTcwMDg3M0ExN0NC
RTg1MzAwQzNFNjQzIC8qIE1hcENvbnN0cnVjdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzAwODczODE3Q0JFODUzMDBDM0U2NDMgLyogTWFwQ29u
c3RydWN0b3IuaCAqLzsgfTsKIAkJQTcwMDg3M0UxN0NCRThEMzAwQzNFNjQzIC8qIE1hcFByb3Rv
dHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTcw
MDg3M0MxN0NCRThEMzAwQzNFNjQzIC8qIE1hcFByb3RvdHlwZS5oICovOyB9OwogCQlBNzAwODc0
MjE3Q0JFOEVCMDBDM0U2NDMgLyogSlNNYXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE3MDA4NzQwMTdDQkU4RUIwMEMzRTY0MyAvKiBKU01hcC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0zOTU3LDgg
KzM5NTYsNiBAQAogCQlBNUZEMDA3QzE4OUIwQjRDMDA2MzMyMzEgLyogU2NyaXB0Q2FsbFN0YWNr
RmFjdG9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JpcHRDYWxsU3Rh
Y2tGYWN0b3J5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE1RkQwMDdGMTg5QjE5
MUEwMDYzMzIzMSAvKiBJbnNwZWN0b3JDb25zb2xlQWdlbnQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9yQ29uc29sZUFnZW50LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTVGRDAwODAxODlCMTkxQTAwNjMzMjMxIC8qIEluc3BlY3Rv
ckNvbnNvbGVBZ2VudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0
b3JDb25zb2xlQWdlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTVGRDAwODMx
ODlCMUI3RTAwNjMzMjMxIC8qIEpTR2xvYmFsT2JqZWN0Q29uc29sZUFnZW50LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTR2xvYmFsT2JqZWN0Q29uc29sZUFnZW50
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTVGRDAwODQxODlCMUI3RTAwNjMz
MjMxIC8qIEpTR2xvYmFsT2JqZWN0Q29uc29sZUFnZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTR2xvYmFsT2JqZWN0Q29uc29sZUFnZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUE3MDA4NzM3MTdDQkU4NTMwMEMzRTY0MyAvKiBNYXBDb25zdHJ1Y3Rv
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNYXBDb25zdHJ1Y3Rv
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3MDA4NzM4MTdDQkU4NTMwMEMz
RTY0MyAvKiBNYXBDb25zdHJ1Y3Rvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBNYXBDb25zdHJ1Y3Rvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzAwODcz
QjE3Q0JFOEQzMDBDM0U2NDMgLyogTWFwUHJvdG90eXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IE1hcFByb3RvdHlwZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC03NTYwLDggKzc1NTcsNiBAQAogCQkJCUE1MEU0QjVFMTg4MDlERDUwMDY4QTQ2
RCAvKiBJbnNwZWN0b3JSdW50aW1lQWdlbnQuaCAqLywKIAkJCQlBNTUxNjVEMDFCREVGREJEMDAz
Qjc1QzEgLyogSW5zcGVjdG9yU2NyaXB0UHJvZmlsZXJBZ2VudC5jcHAgKi8sCiAJCQkJQTU1MTY1
RDExQkRFRkRCRDAwM0I3NUMxIC8qIEluc3BlY3RvclNjcmlwdFByb2ZpbGVyQWdlbnQuaCAqLywK
LQkJCQlBNUZEMDA4MzE4OUIxQjdFMDA2MzMyMzEgLyogSlNHbG9iYWxPYmplY3RDb25zb2xlQWdl
bnQuY3BwICovLAotCQkJCUE1RkQwMDg0MTg5QjFCN0UwMDYzMzIzMSAvKiBKU0dsb2JhbE9iamVj
dENvbnNvbGVBZ2VudC5oICovLAogCQkJCUE1N0QyM0U3MTg5MUIwNzcwMDMxQzdGQSAvKiBKU0ds
b2JhbE9iamVjdERlYnVnZ2VyQWdlbnQuY3BwICovLAogCQkJCUE1N0QyM0U4MTg5MUIwNzcwMDMx
QzdGQSAvKiBKU0dsb2JhbE9iamVjdERlYnVnZ2VyQWdlbnQuaCAqLywKIAkJCQlBNTBFNEI1RjE4
ODA5REQ1MDA2OEE0NkQgLyogSlNHbG9iYWxPYmplY3RSdW50aW1lQWdlbnQuY3BwICovLApAQCAt
ODc2NCw3ICs4NzU5LDYgQEAKIAkJCQk3OTdFMDdBQTFCOEZDRkI5MDA4NDAwQkEgLyogSlNHbG9i
YWxMZXhpY2FsRW52aXJvbm1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDIxMEUxNkY1
Q0QwMEIzNDQ2MCAvKiBKU0dsb2JhbE9iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTk2Qjcz
MUQxQkRBMDhFRjAwMzMxQjg0IC8qIEpTR2xvYmFsT2JqZWN0Lmx1dC5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJQTVGRDAwODYxODlCMUI3RTAwNjMzMjMxIC8qIEpTR2xvYmFsT2JqZWN0Q29uc29sZUFn
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUMzQTFBNjE4QzA0OTAyMDBDOTU5M0EgLyogSlNH
bG9iYWxPYmplY3RDb25zb2xlQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTk0NTU5MzE4
MjQ3NDQ3MDBDQzM4NDMgLyogSlNHbG9iYWxPYmplY3REZWJ1Z2dhYmxlLmggaW4gSGVhZGVycyAq
LywKIAkJCQlBNTdEMjNFQTE4OTFCMDc3MDAzMUM3RkEgLyogSlNHbG9iYWxPYmplY3REZWJ1Z2dl
ckFnZW50LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Tb3VyY2VzLnR4dAppbmRleCAx
M2E4NzVkZmRkMS4uNWZlYzg0MmE0MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU291cmNlcy50eHQKQEAg
LTU1Nyw3ICs1NTcsNiBAQCBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQu
Y3BwCiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckhlYXBBZ2VudC5jcHAKIGluc3BlY3Rvci9h
Z2VudHMvSW5zcGVjdG9yUnVudGltZUFnZW50LmNwcAogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JTY3JpcHRQcm9maWxlckFnZW50LmNwcAotaW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVj
dENvbnNvbGVBZ2VudC5jcHAKIGluc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3REZWJ1Z2dl
ckFnZW50LmNwcAogaW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudC5j
cHAKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2Jh
bE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIuY3BwCmluZGV4IDYyZDk0
NjIzOTdjLi5kM2RjYjMyODg0YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9s
bGVyLmNwcApAQCAtMzUsMTMgKzM1LDEzIEBACiAjaW5jbHVkZSAiSW5qZWN0ZWRTY3JpcHRNYW5h
Z2VyLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yQWdlbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JC
YWNrZW5kRGlzcGF0Y2hlci5oIgorI2luY2x1ZGUgIkluc3BlY3RvckNvbnNvbGVBZ2VudC5oIgog
I2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kQ2hhbm5lbC5oIgogI2luY2x1ZGUgIkluc3BlY3Rv
ckZyb250ZW5kUm91dGVyLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9ySGVhcEFnZW50LmgiCiAjaW5j
bHVkZSAiSW5zcGVjdG9yU2NyaXB0UHJvZmlsZXJBZ2VudC5oIgogI2luY2x1ZGUgIkpTQ0lubGlu
ZXMuaCIKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgotI2luY2x1ZGUgIkpTR2xvYmFsT2Jq
ZWN0Q29uc29sZUFnZW50LmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50
LmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3REZWJ1Z2dlckFnZW50LmgiCiAjaW5jbHVkZSAi
SlNHbG9iYWxPYmplY3RSdW50aW1lQWdlbnQuaCIKQEAgLTgzLDcgKzgzLDcgQEAgSlNHbG9iYWxP
YmplY3RJbnNwZWN0b3JDb250cm9sbGVyOjpKU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xs
ZXIoSlNHbG9iYWxPYmoKICAgICBhdXRvIGluc3BlY3RvckFnZW50ID0gc3RkOjptYWtlX3VuaXF1
ZTxJbnNwZWN0b3JBZ2VudD4oY29udGV4dCk7CiAgICAgYXV0byBydW50aW1lQWdlbnQgPSBzdGQ6
Om1ha2VfdW5pcXVlPEpTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50Pihjb250ZXh0KTsKICAgICBh
dXRvIGhlYXBBZ2VudCA9IHN0ZDo6bWFrZV91bmlxdWU8SW5zcGVjdG9ySGVhcEFnZW50Pihjb250
ZXh0KTsKLSAgICBhdXRvIGNvbnNvbGVBZ2VudCA9IHN0ZDo6bWFrZV91bmlxdWU8SlNHbG9iYWxP
YmplY3RDb25zb2xlQWdlbnQ+KGNvbnRleHQsIGhlYXBBZ2VudC5nZXQoKSk7CisgICAgYXV0byBj
b25zb2xlQWdlbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPEluc3BlY3RvckNvbnNvbGVBZ2VudD4oY29u
dGV4dCwgaGVhcEFnZW50LmdldCgpKTsKICAgICBhdXRvIGRlYnVnZ2VyQWdlbnQgPSBzdGQ6Om1h
a2VfdW5pcXVlPEpTR2xvYmFsT2JqZWN0RGVidWdnZXJBZ2VudD4oY29udGV4dCwgY29uc29sZUFn
ZW50LmdldCgpKTsKICAgICBhdXRvIHNjcmlwdFByb2ZpbGVyQWdlbnQgPSBzdGQ6Om1ha2VfdW5p
cXVlPEluc3BlY3RvclNjcmlwdFByb2ZpbGVyQWdlbnQ+KGNvbnRleHQpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDb25zb2xl
QWdlbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rv
ckNvbnNvbGVBZ2VudC5oCmluZGV4IGUyMWEwY2YzMjllLi4xOTRhYTcwNDgzZiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ29uc29s
ZUFnZW50LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yQ29uc29sZUFnZW50LmgKQEAgLTYxLDcgKzYxLDYgQEAgcHVibGljOgogICAgIHZvaWQg
ZW5hYmxlKEVycm9yU3RyaW5nJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaXNhYmxlKEVycm9yU3Ry
aW5nJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBjbGVhck1lc3NhZ2VzKEVycm9yU3RyaW5nJikgb3Zl
cnJpZGU7Ci0gICAgdm9pZCBzZXRNb25pdG9yaW5nWEhSRW5hYmxlZChFcnJvclN0cmluZyYsIGJv
b2wgZW5hYmxlZCkgb3ZlcnJpZGUgPSAwOwogCiAgICAgYm9vbCBlbmFibGVkKCkgY29uc3QgeyBy
ZXR1cm4gbV9lbmFibGVkOyB9CiAgICAgdm9pZCByZXNldCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RDb25zb2xlQWdl
bnQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxP
YmplY3RDb25zb2xlQWdlbnQuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYjg4
ZmNjZTJjMy4uMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvSlNHbG9iYWxPYmplY3RDb25zb2xlQWdlbnQuY3BwCisrKyAvZGV2L251bGwKQEAg
LTEsNDEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNCwgMjAxNSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJKU0dsb2JhbE9iamVjdENv
bnNvbGVBZ2VudC5oIgotCi1uYW1lc3BhY2UgSW5zcGVjdG9yIHsKLQotSlNHbG9iYWxPYmplY3RD
b25zb2xlQWdlbnQ6OkpTR2xvYmFsT2JqZWN0Q29uc29sZUFnZW50KEFnZW50Q29udGV4dCYgY29u
dGV4dCwgSW5zcGVjdG9ySGVhcEFnZW50KiBoZWFwQWdlbnQpCi0gICAgOiBJbnNwZWN0b3JDb25z
b2xlQWdlbnQoY29udGV4dCwgaGVhcEFnZW50KQotewotfQotCi12b2lkIEpTR2xvYmFsT2JqZWN0
Q29uc29sZUFnZW50OjpzZXRNb25pdG9yaW5nWEhSRW5hYmxlZChFcnJvclN0cmluZyYgZXJyb3JT
dHJpbmcsIGJvb2wpCi17Ci0gICAgZXJyb3JTdHJpbmcgPSBBU0NJSUxpdGVyYWwoIk5vdCBzdXBw
b3J0ZWQgZm9yIEphdmFTY3JpcHQgY29udGV4dCIpOwotfQotCi19IC8vIG5hbWVzcGFjZSBJbnNw
ZWN0b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRz
L0pTR2xvYmFsT2JqZWN0Q29uc29sZUFnZW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVjdENvbnNvbGVBZ2VudC5oCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAxMjkxODJhMWIzZS4uMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RDb25zb2xlQWdlbnQu
aAorKysgL2Rldi9udWxsCkBAIC0xLDQzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTQsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIklu
c3BlY3RvckNvbnNvbGVBZ2VudC5oIgotCi1uYW1lc3BhY2UgSW5zcGVjdG9yIHsKLQotY2xhc3Mg
SlNHbG9iYWxPYmplY3RDb25zb2xlQWdlbnQgZmluYWwgOiBwdWJsaWMgSW5zcGVjdG9yQ29uc29s
ZUFnZW50IHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShKU0dsb2JhbE9iamVjdENvbnNvbGVB
Z2VudCk7Ci0gICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Ci1wdWJsaWM6Ci0gICAgSlNHbG9i
YWxPYmplY3RDb25zb2xlQWdlbnQoQWdlbnRDb250ZXh0JiwgSW5zcGVjdG9ySGVhcEFnZW50Kik7
Ci0gICAgdmlydHVhbCB+SlNHbG9iYWxPYmplY3RDb25zb2xlQWdlbnQoKSB7IH0KLQotICAgIC8v
IEZJWE1FOiBYSFJzIGFuZCBOb2RlcyBvbmx5IG1ha2VzIHNlbnNlIGRlYnVnZ2luZyBhIFdlYiBj
b250ZXh0LiBDYW4gdGhpcyBiZSBtb3ZlZCB0byBhIGRpZmZlcmVudCBhZ2VudD8KLSAgICB2b2lk
IHNldE1vbml0b3JpbmdYSFJFbmFibGVkKEVycm9yU3RyaW5nJiwgYm9vbCBlbmFibGVkKSBvdmVy
cmlkZTsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIEluc3BlY3RvcgpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9Db25zb2xlLmpzb24gYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL0NvbnNvbGUuanNvbgppbmRleCBiNGQx
MGNlZjk5NS4uMzJhYTc5ODlmN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvcHJvdG9jb2wvQ29uc29sZS5qc29uCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvcHJvdG9jb2wvQ29uc29sZS5qc29uCkBAIC01NywxMyArNTcsNiBAQAogICAg
ICAgICB7CiAgICAgICAgICAgICAibmFtZSI6ICJjbGVhck1lc3NhZ2VzIiwKICAgICAgICAgICAg
ICJkZXNjcmlwdGlvbiI6ICJDbGVhcnMgY29uc29sZSBtZXNzYWdlcyBjb2xsZWN0ZWQgaW4gdGhl
IGJyb3dzZXIuIgotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICAibmFtZSI6ICJz
ZXRNb25pdG9yaW5nWEhSRW5hYmxlZCIsCi0gICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVG9n
Z2xlcyBtb25pdG9yaW5nIG9mIFhNTEh0dHBSZXF1ZXN0LiBJZiA8Y29kZT50cnVlPC9jb2RlPiwg
Y29uc29sZSB3aWxsIHJlY2VpdmUgbWVzc2FnZXMgdXBvbiBlYWNoIFhIUiBpc3N1ZWQuIiwKLSAg
ICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZW5h
YmxlZCIsICJ0eXBlIjogImJvb2xlYW4iLCAiZGVzY3JpcHRpb24iOiAiTW9uaXRvcmluZyBlbmFi
bGVkIHN0YXRlLiIgfQotICAgICAgICAgICAgXQogICAgICAgICB9CiAgICAgXSwKICAgICAiZXZl
bnRzIjogWwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCmluZGV4IDBlMzE5Zjg0ZjQ1Li5lZmRkODk2NDNhMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI4IEBACisyMDE3LTEwLTIwICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFy
b0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogUmVtb3ZlIHVudXNlZCBDb25z
b2xlLnNldE1vbml0b3JpbmdYSFJFbmFibGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNzg2MTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRGaW5p
c2hYSFJMb2FkaW5nSW1wbCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpk
aWRGaW5pc2hYSFJMb2FkaW5nKToKKyAgICAgICAgKiBpbnNwZWN0b3IvV2ViQ29uc29sZUFnZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkNvbnNvbGVBZ2VudDo6c2V0TW9uaXRvcmluZ1hI
UkVuYWJsZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29uc29sZUFnZW50Ojpk
aWRGaW5pc2hYSFJMb2FkaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvV2ViQ29u
c29sZUFnZW50Lmg6CisgICAgICAgIFJlbW92ZSBYSFIgbW9uaXRvcmluZyBjb2RlLgorCisgICAg
ICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0Lmg6CisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpzZW5kKToKKyAgICAgICAg
KFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpkaWRGaW5pc2hMb2FkaW5nKToKKyAgICAgICAgKFdl
YkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpzZXRMYXN0U2VuZExpbmVBbmRDb2x1bW5OdW1iZXIpOiBE
ZWxldGVkLgorICAgICAgICAqIHhtbC9YTUxIdHRwUmVxdWVzdC5pZGw6CisgICAgICAgIFJlbW92
ZSBub3cgdW51c2VkIHN0YXRlIG9uIFhIUiBhbmQgRXhlY1N0YXRlIHJlcXVpcmVtZW50IGZvciBz
ZW5kKCkuCisKIDIwMTctMTAtMjAgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFw
cGxlLmNvbT4KIAogICAgICAgICBTVkdQYXRoRWxlbWVudCBzaG91bGQgY2FjaGUgdGhlIGJ1aWx0
LXVwIFBhdGggb2YgaXRzIG5vbiBhbmltYXRpbmcgcGF0aEJ5dGVTdHJlYW0oKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcApp
bmRleCAzYWRiMWU5MzI0MS4uOWY0NDIzMjVkNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCkBAIC02MjUsMTAgKzYy
NSw4IEBAIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRGYWlsTG9hZGluZ0ltcGwo
SW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVuCiAgICAgICAgIGNvbnNvbGVBZ2VudC0+ZGlk
RmFpbExvYWRpbmcoaWRlbnRpZmllciwgZXJyb3IpOyAvLyBUaGlzIHNob3VsZCBjb21lIEFGVEVS
IHJlc291cmNlIG5vdGlmaWNhdGlvbiwgZnJvbnQtZW5kIHJlbGllcyBvbiB0aGlzLgogfQogCi12
b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkRmluaXNoWEhSTG9hZGluZ0ltcGwoSW5z
dHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgdW5zaWduZWQgbG9uZyBpZGVu
dGlmaWVyLCBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gZGVjb2RlZFRleHQsIGNvbnN0IFN0cmluZyYg
dXJsLCBjb25zdCBTdHJpbmcmIHNlbmRVUkwsIHVuc2lnbmVkIHNlbmRMaW5lTnVtYmVyLCB1bnNp
Z25lZCBzZW5kQ29sdW1uTnVtYmVyKQordm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRp
ZEZpbmlzaFhIUkxvYWRpbmdJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdB
Z2VudHMsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgc3RkOjpvcHRpb25hbDxTdHJpbmc+IGRl
Y29kZWRUZXh0KQogewotICAgIGlmIChXZWJDb25zb2xlQWdlbnQqIGNvbnNvbGVBZ2VudCA9IGlu
c3RydW1lbnRpbmdBZ2VudHMud2ViQ29uc29sZUFnZW50KCkpCi0gICAgICAgIGNvbnNvbGVBZ2Vu
dC0+ZGlkRmluaXNoWEhSTG9hZGluZyhpZGVudGlmaWVyLCB1cmwsIHNlbmRVUkwsIHNlbmRMaW5l
TnVtYmVyLCBzZW5kQ29sdW1uTnVtYmVyKTsKICAgICBpZiAoSW5zcGVjdG9yTmV0d29ya0FnZW50
KiBuZXR3b3JrQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLmluc3BlY3Rvck5ldHdvcmtBZ2Vu
dCgpKSB7CiAgICAgICAgIGlmIChkZWNvZGVkVGV4dCkKICAgICAgICAgICAgIG5ldHdvcmtBZ2Vu
dC0+ZGlkRmluaXNoWEhSTG9hZGluZyhpZGVudGlmaWVyLCAqZGVjb2RlZFRleHQpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5o
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCmlu
ZGV4IDYzM2I1ZDAwOTdkLi5kYTQwZTZhYWI0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaApAQCAtMTg2LDcgKzE4Niw3IEBA
IHB1YmxpYzoKICAgICBlbnVtIGNsYXNzIExvYWRUeXBlIHsgUGluZywgQmVhY29uIH07CiAgICAg
c3RhdGljIHZvaWQgd2lsbFNlbmRSZXF1ZXN0T2ZUeXBlKEZyYW1lKiwgdW5zaWduZWQgbG9uZyBp
ZGVudGlmaWVyLCBEb2N1bWVudExvYWRlciosIFJlc291cmNlUmVxdWVzdCYsIExvYWRUeXBlKTsK
IAotICAgIHN0YXRpYyB2b2lkIGRpZEZpbmlzaFhIUkxvYWRpbmcoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgc3RkOjpvcHRpb25hbDxTdHJpbmc+IGRl
Y29kZWRUZXh0LCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiBzZW5kVVJMLCB1bnNp
Z25lZCBzZW5kTGluZU51bWJlciwgdW5zaWduZWQgc2VuZENvbHVtbk51bWJlcik7CisgICAgc3Rh
dGljIHZvaWQgZGlkRmluaXNoWEhSTG9hZGluZyhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgdW5z
aWduZWQgbG9uZyBpZGVudGlmaWVyLCBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gZGVjb2RlZFRleHQp
OwogICAgIHN0YXRpYyB2b2lkIHdpbGxMb2FkWEhSU3luY2hyb25vdXNseShTY3JpcHRFeGVjdXRp
b25Db250ZXh0Kik7CiAgICAgc3RhdGljIHZvaWQgZGlkTG9hZFhIUlN5bmNocm9ub3VzbHkoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCopOwogICAgIHN0YXRpYyB2b2lkIHNjcmlwdEltcG9ydGVkKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFN0
cmluZyYgc291cmNlU3RyaW5nKTsKQEAgLTM1NSw3ICszNTUsNyBAQCBwcml2YXRlOgogICAgIHN0
YXRpYyB2b2lkIGRpZFJlY2VpdmVEYXRhSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgdW5zaWdu
ZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBjaGFyKiBkYXRhLCBpbnQgZGF0YUxlbmd0aCwgaW50
IGVuY29kZWREYXRhTGVuZ3RoKTsKICAgICBzdGF0aWMgdm9pZCBkaWRGaW5pc2hMb2FkaW5nSW1w
bChJbnN0cnVtZW50aW5nQWdlbnRzJiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBEb2N1bWVu
dExvYWRlciosIGNvbnN0IE5ldHdvcmtMb2FkTWV0cmljcyYsIFJlc291cmNlTG9hZGVyKik7CiAg
ICAgc3RhdGljIHZvaWQgZGlkRmFpbExvYWRpbmdJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCB1
bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIERvY3VtZW50TG9hZGVyKiwgY29uc3QgUmVzb3VyY2VF
cnJvciYpOwotICAgIHN0YXRpYyB2b2lkIGRpZEZpbmlzaFhIUkxvYWRpbmdJbXBsKEluc3RydW1l
bnRpbmdBZ2VudHMmLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIHN0ZDo6b3B0aW9uYWw8U3Ry
aW5nPiBkZWNvZGVkVGV4dCwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgc2VuZFVS
TCwgdW5zaWduZWQgc2VuZExpbmVOdW1iZXIsIHVuc2lnbmVkIHNlbmRDb2x1bW5OdW1iZXIpOwor
ICAgIHN0YXRpYyB2b2lkIGRpZEZpbmlzaFhIUkxvYWRpbmdJbXBsKEluc3RydW1lbnRpbmdBZ2Vu
dHMmLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBkZWNv
ZGVkVGV4dCk7CiAgICAgc3RhdGljIHZvaWQgd2lsbExvYWRYSFJTeW5jaHJvbm91c2x5SW1wbChJ
bnN0cnVtZW50aW5nQWdlbnRzJik7CiAgICAgc3RhdGljIHZvaWQgZGlkTG9hZFhIUlN5bmNocm9u
b3VzbHlJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmKTsKICAgICBzdGF0aWMgdm9pZCBzY3JpcHRJ
bXBvcnRlZEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiBzb3VyY2VTdHJpbmcpOwpAQCAtOTU3LDEwICs5NTcsMTAgQEAgaW5s
aW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpjb250aW51ZVdpdGhQb2xpY3lJZ25v
cmUoRnJhbWUmIGZyYW1lLCB1bnMKICAgICAgICAgZGlkUmVjZWl2ZVJlc291cmNlUmVzcG9uc2VJ
bXBsKCppbnN0cnVtZW50aW5nQWdlbnRzLCBpZGVudGlmaWVyLCAmbG9hZGVyLCByZXNwb25zZSwg
bnVsbHB0cik7CiB9CiAKLWlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlk
RmluaXNoWEhSTG9hZGluZyhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCB1bnNpZ25l
ZCBsb25nIGlkZW50aWZpZXIsIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBkZWNvZGVkVGV4dCwgY29u
c3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgc2VuZFVSTCwgdW5zaWduZWQgc2VuZExpbmVO
dW1iZXIsIHVuc2lnbmVkIHNlbmRDb2x1bW5OdW1iZXIpCitpbmxpbmUgdm9pZCBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OmRpZEZpbmlzaFhIUkxvYWRpbmcoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogY29udGV4dCwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBzdGQ6Om9wdGlvbmFsPFN0cmlu
Zz4gZGVjb2RlZFRleHQpCiB7CiAgICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1l
bnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yQ29udGV4dChjb250ZXh0KSkKLSAg
ICAgICAgZGlkRmluaXNoWEhSTG9hZGluZ0ltcGwoKmluc3RydW1lbnRpbmdBZ2VudHMsIGlkZW50
aWZpZXIsIGRlY29kZWRUZXh0LCB1cmwsIHNlbmRVUkwsIHNlbmRMaW5lTnVtYmVyLCBzZW5kQ29s
dW1uTnVtYmVyKTsKKyAgICAgICAgZGlkRmluaXNoWEhSTG9hZGluZ0ltcGwoKmluc3RydW1lbnRp
bmdBZ2VudHMsIGlkZW50aWZpZXIsIGRlY29kZWRUZXh0KTsKIH0KIAogaW5saW5lIHZvaWQgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsTG9hZFhIUlN5bmNocm9ub3VzbHkoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogY29udGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9XZWJDb25zb2xlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dlYkNv
bnNvbGVBZ2VudC5jcHAKaW5kZXggYTNiYWRhZTYxZjIuLjA4NTEyZDQ2OTJmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV2ViQ29uc29sZUFnZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvV2ViQ29uc29sZUFnZW50LmNwcApAQCAtNDYsMTEgKzQ2LDYg
QEAgV2ViQ29uc29sZUFnZW50OjpXZWJDb25zb2xlQWdlbnQoQWdlbnRDb250ZXh0JiBjb250ZXh0
LCBJbnNwZWN0b3JIZWFwQWdlbnQqIGhlYXAKIHsKIH0KIAotdm9pZCBXZWJDb25zb2xlQWdlbnQ6
OnNldE1vbml0b3JpbmdYSFJFbmFibGVkKEVycm9yU3RyaW5nJiwgYm9vbCBlbmFibGVkKQotewot
ICAgIG1fbW9uaXRvcmluZ1hIUkVuYWJsZWQgPSBlbmFibGVkOwotfQotCiB2b2lkIFdlYkNvbnNv
bGVBZ2VudDo6ZnJhbWVXaW5kb3dEaXNjYXJkZWQoRE9NV2luZG93KiB3aW5kb3cpCiB7CiAgICAg
Zm9yIChhdXRvJiBtZXNzYWdlIDogbV9jb25zb2xlTWVzc2FnZXMpIHsKQEAgLTY1LDE3ICs2MCw2
IEBAIHZvaWQgV2ViQ29uc29sZUFnZW50OjpmcmFtZVdpbmRvd0Rpc2NhcmRlZChET01XaW5kb3cq
IHdpbmRvdykKICAgICBzdGF0aWNfY2FzdDxXZWJJbmplY3RlZFNjcmlwdE1hbmFnZXImPihtX2lu
amVjdGVkU2NyaXB0TWFuYWdlcikuZGlzY2FyZEluamVjdGVkU2NyaXB0c0Zvcih3aW5kb3cpOwog
fQogCi12b2lkIFdlYkNvbnNvbGVBZ2VudDo6ZGlkRmluaXNoWEhSTG9hZGluZyh1bnNpZ25lZCBs
b25nIHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiBz
ZW5kVVJMLCB1bnNpZ25lZCBzZW5kTGluZU51bWJlciwgdW5zaWduZWQgc2VuZENvbHVtbk51bWJl
cikKLXsKLSAgICBpZiAoIW1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmluc3BlY3RvckVudmlyb25t
ZW50KCkuZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBp
ZiAobV9tb25pdG9yaW5nWEhSRW5hYmxlZCkgewotICAgICAgICBTdHJpbmcgbWVzc2FnZSA9ICJY
SFIgZmluaXNoZWQgbG9hZGluZzogXCIiICsgdXJsICsgIlwiLiI7Ci0gICAgICAgIGFkZE1lc3Nh
Z2VUb0NvbnNvbGUoc3RkOjptYWtlX3VuaXF1ZTxDb25zb2xlTWVzc2FnZT4oTWVzc2FnZVNvdXJj
ZTo6TmV0d29yaywgTWVzc2FnZVR5cGU6OkxvZywgTWVzc2FnZUxldmVsOjpEZWJ1ZywgbWVzc2Fn
ZSwgc2VuZFVSTCwgc2VuZExpbmVOdW1iZXIsIHNlbmRDb2x1bW5OdW1iZXIsIG51bGxwdHIsIHJl
cXVlc3RJZGVudGlmaWVyKSk7Ci0gICAgfQotfQotCiB2b2lkIFdlYkNvbnNvbGVBZ2VudDo6ZGlk
UmVjZWl2ZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogewogICAgIGlmICghbV9pbmplY3RlZFNjcmlwdE1h
bmFnZXIuaW5zcGVjdG9yRW52aXJvbm1lbnQoKS5kZXZlbG9wZXJFeHRyYXNFbmFibGVkKCkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV2ViQ29uc29sZUFnZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV2ViQ29uc29sZUFnZW50LmgKaW5kZXggNWEzZTZkZDhh
ZmEuLjNhNTU3NTU1ODU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV2Vi
Q29uc29sZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dlYkNvbnNvbGVB
Z2VudC5oCkBAIC00MSwxNiArNDEsMTAgQEAgcHVibGljOgogICAgIFdlYkNvbnNvbGVBZ2VudChJ
bnNwZWN0b3I6OkFnZW50Q29udGV4dCYsIEluc3BlY3Rvcjo6SW5zcGVjdG9ySGVhcEFnZW50Kik7
CiAgICAgdmlydHVhbCB+V2ViQ29uc29sZUFnZW50KCkgPSBkZWZhdWx0OwogCi0gICAgdm9pZCBz
ZXRNb25pdG9yaW5nWEhSRW5hYmxlZChFcnJvclN0cmluZyYsIGJvb2wgZW5hYmxlZCkgZmluYWw7
Ci0KICAgICB2b2lkIGZyYW1lV2luZG93RGlzY2FyZGVkKERPTVdpbmRvdyopOwogCi0gICAgdm9p
ZCBkaWRGaW5pc2hYSFJMb2FkaW5nKHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIsIGNv
bnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHNlbmRVUkwsIHVuc2lnbmVkIHNlbmRMaW5l
TnVtYmVyLCB1bnNpZ25lZCBzZW5kQ29sdW1uTnVtYmVyKTsKICAgICB2b2lkIGRpZFJlY2VpdmVS
ZXNwb25zZSh1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJik7CiAgICAgdm9pZCBkaWRGYWlsTG9hZGluZyh1bnNpZ25lZCBsb25nIHJlcXVlc3RJ
ZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZUVycm9yJik7Ci0KLXByb3RlY3RlZDoKLSAgICBib29s
IG1fbW9uaXRvcmluZ1hIUkVuYWJsZWQgeyBmYWxzZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKaW5kZXggNDY2ZjczMDYz
MTguLmIwZjgzZjEyMzBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJl
cXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKQEAg
LTQzLDcgKzQzLDYgQEAKICNpbmNsdWRlICJQYXJzZWRDb250ZW50VHlwZS5oIgogI2luY2x1ZGUg
IlJlc291cmNlRXJyb3IuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKLSNpbmNsdWRl
ICJTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW5Qb2xpY3kuaCIK
ICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgpAQCAtNTQs
NyArNTMsNiBAQAogI2luY2x1ZGUgIlhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5oIgogI2lu
Y2x1ZGUgIlhNTEh0dHBSZXF1ZXN0VXBsb2FkLmgiCiAjaW5jbHVkZSAibWFya3VwLmgiCi0jaW5j
bHVkZSA8aW50ZXJwcmV0ZXIvU3RhY2tWaXNpdG9yLmg+CiAjaW5jbHVkZSA8bXV0ZXg+CiAjaW5j
bHVkZSA8cnVudGltZS9BcnJheUJ1ZmZlci5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvQXJyYXlCdWZm
ZXJWaWV3Lmg+CkBAIC0yODAsMTIgKzI3OCw2IEBAIFN0cmluZyBYTUxIdHRwUmVxdWVzdDo6cmVz
cG9uc2VVUkwoKSBjb25zdAogICAgIHJldHVybiByZXNwb25zZVVSTC5zdHJpbmcoKTsKIH0KIAot
dm9pZCBYTUxIdHRwUmVxdWVzdDo6c2V0TGFzdFNlbmRMaW5lQW5kQ29sdW1uTnVtYmVyKHVuc2ln
bmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlcikKLXsKLSAgICBtX2xhc3RTZW5k
TGluZU51bWJlciA9IGxpbmVOdW1iZXI7Ci0gICAgbV9sYXN0U2VuZENvbHVtbk51bWJlciA9IGNv
bHVtbk51bWJlcjsKLX0KLQogWE1MSHR0cFJlcXVlc3RVcGxvYWQqIFhNTEh0dHBSZXF1ZXN0Ojp1
cGxvYWQoKQogewogICAgIGlmICghbV91cGxvYWQpCkBAIC00MzMsNDcgKzQyNSw3IEBAIHN0ZDo6
b3B0aW9uYWw8RXhjZXB0aW9uT3I8dm9pZD4+IFhNTEh0dHBSZXF1ZXN0OjpwcmVwYXJlVG9TZW5k
KCkKICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogfQogCi1uYW1lc3BhY2UgewotCi0vLyBGSVhN
RTogVGhpcyBzaG91bGQgYmUgYWJzdHJhY3RlZCBvdXQsIHNvIHRoYXQgYW55IElETCBmdW5jdGlv
biBjYW4gYmUgcGFzc2VkIHRoZSBsaW5lL2NvbHVtbi91cmwgdHVwbGUuCi0KLS8vIEZJWE1FOiBU
aGlzIHNob3VsZCBwcm9iYWJseSB1c2UgU2hhZG93Q2hpY2tlbiBzbyB0aGF0IHdlIGdldCB0aGUg
cmlnaHQgZnJhbWUgZXZlbiB3aGVuIGl0IGRpZCBhIHRhaWwgY2FsbC4KLS8vIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTU2ODgKLQotY2xhc3MgU2VuZEZ1bmN0b3Ig
ewotcHVibGljOgotICAgIFNlbmRGdW5jdG9yKCkgPSBkZWZhdWx0OwotCi0gICAgdW5zaWduZWQg
bGluZSgpIGNvbnN0IHsgcmV0dXJuIG1fbGluZTsgfQotICAgIHVuc2lnbmVkIGNvbHVtbigpIGNv
bnN0IHsgcmV0dXJuIG1fY29sdW1uOyB9Ci0gICAgU3RyaW5nIHVybCgpIGNvbnN0IHsgcmV0dXJu
IG1fdXJsOyB9Ci0KLSAgICBKU0M6OlN0YWNrVmlzaXRvcjo6U3RhdHVzIG9wZXJhdG9yKCkoSlND
OjpTdGFja1Zpc2l0b3ImIHZpc2l0b3IpIGNvbnN0Ci0gICAgewotICAgICAgICBpZiAoIW1faGFz
U2tpcHBlZEZpcnN0RnJhbWUpIHsKLSAgICAgICAgICAgIG1faGFzU2tpcHBlZEZpcnN0RnJhbWUg
PSB0cnVlOwotICAgICAgICAgICAgcmV0dXJuIEpTQzo6U3RhY2tWaXNpdG9yOjpDb250aW51ZTsK
LSAgICAgICAgfQotCi0gICAgICAgIHVuc2lnbmVkIGxpbmUgPSAwOwotICAgICAgICB1bnNpZ25l
ZCBjb2x1bW4gPSAwOwotICAgICAgICB2aXNpdG9yLT5jb21wdXRlTGluZUFuZENvbHVtbihsaW5l
LCBjb2x1bW4pOwotICAgICAgICBtX2xpbmUgPSBsaW5lOwotICAgICAgICBtX2NvbHVtbiA9IGNv
bHVtbjsKLSAgICAgICAgbV91cmwgPSB2aXNpdG9yLT5zb3VyY2VVUkwoKTsKLSAgICAgICAgcmV0
dXJuIEpTQzo6U3RhY2tWaXNpdG9yOjpEb25lOwotICAgIH0KLQotcHJpdmF0ZToKLSAgICBtdXRh
YmxlIGJvb2wgbV9oYXNTa2lwcGVkRmlyc3RGcmFtZSB7IGZhbHNlIH07Ci0gICAgbXV0YWJsZSB1
bnNpZ25lZCBtX2xpbmUgeyAwIH07Ci0gICAgbXV0YWJsZSB1bnNpZ25lZCBtX2NvbHVtbiB7IDAg
fTsKLSAgICBtdXRhYmxlIFN0cmluZyBtX3VybDsKLX07Ci0KLX0KLQotRXhjZXB0aW9uT3I8dm9p
ZD4gWE1MSHR0cFJlcXVlc3Q6OnNlbmQoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBzdGQ6Om9wdGlv
bmFsPFNlbmRUeXBlcz4mJiBzZW5kVHlwZSkKK0V4Y2VwdGlvbk9yPHZvaWQ+IFhNTEh0dHBSZXF1
ZXN0OjpzZW5kKHN0ZDo6b3B0aW9uYWw8U2VuZFR5cGVzPiYmIHNlbmRUeXBlKQogewogICAgIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFNlbmRYTUxIdHRwUmVxdWVzdChzY3JpcHRFeGVj
dXRpb25Db250ZXh0KCksIHVybCgpKTsKIApAQCAtNDkxLDExICs0NDMsNiBAQCBFeGNlcHRpb25P
cjx2b2lkPiBYTUxIdHRwUmVxdWVzdDo6c2VuZChKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIHN0ZDo6
b3B0aW9uYWw8U2VuZAogICAgICAgICApOwogICAgIH0KIAotICAgIFNlbmRGdW5jdG9yIGZ1bmN0
b3I7Ci0gICAgc3RhdGUuaXRlcmF0ZShmdW5jdG9yKTsKLSAgICBzZXRMYXN0U2VuZExpbmVBbmRD
b2x1bW5OdW1iZXIoZnVuY3Rvci5saW5lKCksIGZ1bmN0b3IuY29sdW1uKCkpOwotICAgIHNldExh
c3RTZW5kVVJMKGZ1bmN0b3IudXJsKCkpOwotCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApAQCAt
OTkyLDcgKzkzOSw3IEBAIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OmRpZEZpbmlzaExvYWRpbmcodW5z
aWduZWQgbG9uZyBpZGVudGlmaWVyKQogICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBkZWNvZGVk
VGV4dDsKICAgICBpZiAoIW1fYmluYXJ5UmVzcG9uc2VCdWlsZGVyKQogICAgICAgICBkZWNvZGVk
VGV4dCA9IG1fcmVzcG9uc2VCdWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpOwotICAg
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkRmluaXNoWEhSTG9hZGluZyhzY3JpcHRFeGVj
dXRpb25Db250ZXh0KCksIGlkZW50aWZpZXIsIGRlY29kZWRUZXh0LCBtX3VybCwgbV9sYXN0U2Vu
ZFVSTCwgbV9sYXN0U2VuZExpbmVOdW1iZXIsIG1fbGFzdFNlbmRDb2x1bW5OdW1iZXIpOworICAg
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkRmluaXNoWEhSTG9hZGluZyhzY3JpcHRFeGVj
dXRpb25Db250ZXh0KCksIGlkZW50aWZpZXIsIGRlY29kZWRUZXh0KTsKIAogICAgIGJvb2wgaGFk
TG9hZGVyID0gbV9sb2FkZXI7CiAgICAgbV9sb2FkZXIgPSBudWxscHRyOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS94bWwv
WE1MSHR0cFJlcXVlc3QuaAppbmRleCAyNmM2YWEwNzg3Mi4uY2I5MjU0NDVjMTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCkBAIC0zNSw3ICszNSw2IEBACiBuYW1lc3BhY2UgSlND
IHsKIGNsYXNzIEFycmF5QnVmZmVyOwogY2xhc3MgQXJyYXlCdWZmZXJWaWV3OwotY2xhc3MgRXhl
Y1N0YXRlOwogfQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC04MCw3ICs3OSw3IEBAIHB1Ymxp
YzoKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBvcGVuKGNvbnN0IFN0cmluZyYgbWV0aG9kLCBjb25z
dCBTdHJpbmcmIHVybCk7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gb3Blbihjb25zdCBTdHJpbmcm
IG1ldGhvZCwgY29uc3QgVVJMJiwgYm9vbCBhc3luYyk7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4g
b3Blbihjb25zdCBTdHJpbmcmIG1ldGhvZCwgY29uc3QgU3RyaW5nJiwgYm9vbCBhc3luYywgY29u
c3QgU3RyaW5nJiB1c2VyLCBjb25zdCBTdHJpbmcmIHBhc3N3b3JkKTsKLSAgICBFeGNlcHRpb25P
cjx2b2lkPiBzZW5kKEpTQzo6RXhlY1N0YXRlJiwgc3RkOjpvcHRpb25hbDxTZW5kVHlwZXM+JiYp
OworICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNlbmQoc3RkOjpvcHRpb25hbDxTZW5kVHlwZXM+JiYp
OwogICAgIHZvaWQgYWJvcnQoKTsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRSZXF1ZXN0SGVh
ZGVyKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSk7CiAgICAgRXhjZXB0
aW9uT3I8dm9pZD4gb3ZlcnJpZGVNaW1lVHlwZShjb25zdCBTdHJpbmcmIG92ZXJyaWRlKTsKQEAg
LTEwOSw5ICsxMDgsNiBAQCBwdWJsaWM6CiAKICAgICBTdHJpbmcgcmVzcG9uc2VVUkwoKSBjb25z
dDsKIAotICAgIHZvaWQgc2V0TGFzdFNlbmRMaW5lQW5kQ29sdW1uTnVtYmVyKHVuc2lnbmVkIGxp
bmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlcik7Ci0gICAgdm9pZCBzZXRMYXN0U2VuZFVS
TChjb25zdCBTdHJpbmcmIHVybCkgeyBtX2xhc3RTZW5kVVJMID0gdXJsOyB9Ci0KICAgICBYTUxI
dHRwUmVxdWVzdFVwbG9hZCogdXBsb2FkKCk7CiAgICAgWE1MSHR0cFJlcXVlc3RVcGxvYWQqIG9w
dGlvbmFsVXBsb2FkKCkgY29uc3QgeyByZXR1cm4gbV91cGxvYWQuZ2V0KCk7IH0KIApAQCAtMjE4
LDkgKzIxNCw2IEBAIHByaXZhdGU6CiAgICAgLy8gVXNlZCBmb3IgcHJvZ3Jlc3MgZXZlbnQgdHJh
Y2tpbmcuCiAgICAgbG9uZyBsb25nIG1fcmVjZWl2ZWRMZW5ndGggeyAwIH07CiAKLSAgICB1bnNp
Z25lZCBtX2xhc3RTZW5kTGluZU51bWJlciB7IDAgfTsKLSAgICB1bnNpZ25lZCBtX2xhc3RTZW5k
Q29sdW1uTnVtYmVyIHsgMCB9OwotICAgIFN0cmluZyBtX2xhc3RTZW5kVVJMOwogICAgIHN0ZDo6
b3B0aW9uYWw8RXhjZXB0aW9uQ29kZT4gbV9leGNlcHRpb25Db2RlOwogCiAgICAgWE1MSHR0cFJl
cXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGUgbV9wcm9ncmVzc0V2ZW50VGhyb3R0bGU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaWRsIGIvU291cmNlL1dl
YkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmlkbAppbmRleCAwNmJkN2QzNGZjOS4uOGM4NjBiOWVi
YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmlkbApAQCAtNjYsNyArNjYsNyBA
QCBlbnVtIFhNTEh0dHBSZXF1ZXN0UmVzcG9uc2VUeXBlIHsKICAgICBhdHRyaWJ1dGUgdW5zaWdu
ZWQgbG9uZyB0aW1lb3V0OwogICAgIGF0dHJpYnV0ZSBib29sZWFuIHdpdGhDcmVkZW50aWFsczsK
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgWE1MSHR0cFJlcXVlc3RVcGxvYWQgdXBsb2FkOwotICAg
IFtDYWxsV2l0aD1TY3JpcHRTdGF0ZSwgTWF5VGhyb3dFeGNlcHRpb25dIHZvaWQgc2VuZChvcHRp
b25hbCAoRG9jdW1lbnQgb3IgQm9keUluaXQpPyBib2R5ID0gbnVsbCk7CisgICAgW01heVRocm93
RXhjZXB0aW9uXSB2b2lkIHNlbmQob3B0aW9uYWwgKERvY3VtZW50IG9yIEJvZHlJbml0KT8gYm9k
eSA9IG51bGwpOwogICAgIHZvaWQgYWJvcnQoKTsKIAogICAgIC8vIHJlc3BvbnNlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>324562</attachid>
            <date>2017-10-23 09:54:40 -0700</date>
            <delta_ts>2017-10-23 09:54:40 -0700</delta_ts>
            <desc>Fix Windows</desc>
            <filename>bug-178617-20171023095440.patch</filename>
            <type>text/plain</type>
            <size>36060</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIzODM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
NDM4MTVhOGM1ZWU3ZjYwZDRiZGYxMTlmYTMzOTAwNWE5M2M4ZGUyLi5mZmQ3NjY5N2NjY2Y0ODBj
ODBkZThlZTAxZDRiNDJkODkwZjBlNzc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAxNy0xMC0yMyAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUu
Y29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFJlbW92ZSB1bnVzZWQgQ29uc29sZS5zZXRN
b25pdG9yaW5nWEhSRW5hYmxlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTc4NjE3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KKwor
ICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JD
b25zb2xlQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0
Q29uc29sZUFnZW50LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0pT
R2xvYmFsT2JqZWN0Q29uc29sZUFnZW50Lmg6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9y
L3Byb3RvY29sL0NvbnNvbGUuanNvbjoKKyAgICAgICAgUmVtb3ZlZCBmaWxlcyBhbmQgbWV0aG9k
LgorCisgICAgICAgICogaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxl
ci5jcHA6CisgICAgICAgIChJbnNwZWN0b3I6OkpTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJv
bGxlcjo6SlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyKToKKyAgICAgICAgVGhpcyBj
YW4gdXNlIHRoZSBiYXNlIENvbnNvbGVBZ2VudCBub3cuCisKIDIwMTctMTAtMjMgIE1hdHQgTGV3
aXMgIDxqbGV3aXMzQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91
dCByMjIzODIwLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDQzNmY4NGYyYWMyOTlkYzI0NmZlZjk0NmVmYTg4MGJh
YTA5MWI4ODYuLmY1OWE0ZWFjZTc5YzM5Nzk3MDViMTU2ZTQ3NWI4NzkxYTE5MzU4MmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxNy0xMC0yMyAgSm9zZXBoIFBlY29yYXJvICA8cGVj
b3Jhcm9AYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFJlbW92ZSB1bnVzZWQg
Q29uc29sZS5zZXRNb25pdG9yaW5nWEhSRW5hYmxlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4NjE3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2Ft
IFdlaW5pZy4KKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRGaW5p
c2hYSFJMb2FkaW5nSW1wbCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpk
aWRGaW5pc2hYSFJMb2FkaW5nKToKKyAgICAgICAgKiBpbnNwZWN0b3IvV2ViQ29uc29sZUFnZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkNvbnNvbGVBZ2VudDo6c2V0TW9uaXRvcmluZ1hI
UkVuYWJsZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29uc29sZUFnZW50Ojpk
aWRGaW5pc2hYSFJMb2FkaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvV2ViQ29u
c29sZUFnZW50Lmg6CisgICAgICAgIFJlbW92ZSBYSFIgbW9uaXRvcmluZyBjb2RlLgorCisgICAg
ICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0Lmg6CisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpzZW5kKToKKyAgICAgICAg
KFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpkaWRGaW5pc2hMb2FkaW5nKToKKyAgICAgICAgKFdl
YkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpzZXRMYXN0U2VuZExpbmVBbmRDb2x1bW5OdW1iZXIpOiBE
ZWxldGVkLgorICAgICAgICAqIHhtbC9YTUxIdHRwUmVxdWVzdC5pZGw6CisgICAgICAgIFJlbW92
ZSBub3cgdW51c2VkIHN0YXRlIG9uIFhIUiBhbmQgRXhlY1N0YXRlIHJlcXVpcmVtZW50IGZvciBz
ZW5kKCkuCisKIDIwMTctMTAtMjMgIE1hdHQgTGV3aXMgIDxqbGV3aXMzQGFwcGxlLmNvbT4KIAog
ICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjIzODIwLgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCA1ZjRjZDMwMDdiYzYyNWUxZmQyYjcyMGE0MWFmNTQ5YmZlMmQ3Mzdm
Li5hOTFmMTY1YTk5MDFmYzBiZDNhOTViODllMTU5MTE0MDhhNjYzYzIyIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtMTMzNSw3ICsxMzM1LDYgQEAKIAkJQTVGRDAwN0ExODlCMDUx
MDAwNjMzMjMxIC8qIENvbnNvbGVNZXNzYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBNUZEMDA3ODE4OUIwNTEwMDA2MzMyMzEgLyogQ29uc29sZU1l
c3NhZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlBNUZEMDA3RTE4OUIwQjRDMDA2MzMyMzEgLyogU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTVGRDAwN0MxODlC
MEI0QzAwNjMzMjMxIC8qIFNjcmlwdENhbGxTdGFja0ZhY3RvcnkuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNUZEMDA4MjE4OUIxOTFBMDA2MzMy
MzEgLyogSW5zcGVjdG9yQ29uc29sZUFnZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBNUZEMDA4MDE4OUIxOTFBMDA2MzMyMzEgLyogSW5zcGVjdG9y
Q29uc29sZUFnZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKLQkJQTVGRDAwODYxODlCMUI3RTAwNjMzMjMxIC8qIEpTR2xvYmFsT2JqZWN0Q29uc29s
ZUFnZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
NUZEMDA4NDE4OUIxQjdFMDA2MzMyMzEgLyogSlNHbG9iYWxPYmplY3RDb25zb2xlQWdlbnQuaCAq
LzsgfTsKIAkJQTcwMDg3M0ExN0NCRTg1MzAwQzNFNjQzIC8qIE1hcENvbnN0cnVjdG9yLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzAwODczODE3Q0JF
ODUzMDBDM0U2NDMgLyogTWFwQ29uc3RydWN0b3IuaCAqLzsgfTsKIAkJQTcwMDg3M0UxN0NCRThE
MzAwQzNFNjQzIC8qIE1hcFByb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTcwMDg3M0MxN0NCRThEMzAwQzNFNjQzIC8qIE1hcFByb3RvdHlw
ZS5oICovOyB9OwogCQlBNzAwODc0MjE3Q0JFOEVCMDBDM0U2NDMgLyogSlNNYXAuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3MDA4NzQwMTdDQkU4RUIw
MEMzRTY0MyAvKiBKU01hcC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CkBAIC0zOTU3LDggKzM5NTYsNiBAQAogCQlBNUZEMDA3QzE4OUIwQjRDMDA2MzMy
MzEgLyogU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTY3JpcHRDYWxsU3RhY2tGYWN0b3J5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUE1RkQwMDdGMTg5QjE5MUEwMDYzMzIzMSAvKiBJbnNwZWN0b3JDb25zb2xlQWdlbnQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9yQ29uc29s
ZUFnZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTVGRDAwODAxODlCMTkx
QTAwNjMzMjMxIC8qIEluc3BlY3RvckNvbnNvbGVBZ2VudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JDb25zb2xlQWdlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJQTVGRDAwODMxODlCMUI3RTAwNjMzMjMxIC8qIEpTR2xvYmFsT2JqZWN0Q29u
c29sZUFnZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTR2xv
YmFsT2JqZWN0Q29uc29sZUFnZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
QTVGRDAwODQxODlCMUI3RTAwNjMzMjMxIC8qIEpTR2xvYmFsT2JqZWN0Q29uc29sZUFnZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTR2xvYmFsT2JqZWN0Q29uc29sZUFn
ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3MDA4NzM3MTdDQkU4NTMwMEMz
RTY0MyAvKiBNYXBDb25zdHJ1Y3Rvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBNYXBDb25zdHJ1Y3Rvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUE3MDA4NzM4MTdDQkU4NTMwMEMzRTY0MyAvKiBNYXBDb25zdHJ1Y3Rvci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBNYXBDb25zdHJ1Y3Rvci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlBNzAwODczQjE3Q0JFOEQzMDBDM0U2NDMgLyogTWFwUHJvdG90eXBlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1hcFByb3RvdHlwZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03NTYwLDggKzc1NTcsNiBAQAogCQkJCUE1
MEU0QjVFMTg4MDlERDUwMDY4QTQ2RCAvKiBJbnNwZWN0b3JSdW50aW1lQWdlbnQuaCAqLywKIAkJ
CQlBNTUxNjVEMDFCREVGREJEMDAzQjc1QzEgLyogSW5zcGVjdG9yU2NyaXB0UHJvZmlsZXJBZ2Vu
dC5jcHAgKi8sCiAJCQkJQTU1MTY1RDExQkRFRkRCRDAwM0I3NUMxIC8qIEluc3BlY3RvclNjcmlw
dFByb2ZpbGVyQWdlbnQuaCAqLywKLQkJCQlBNUZEMDA4MzE4OUIxQjdFMDA2MzMyMzEgLyogSlNH
bG9iYWxPYmplY3RDb25zb2xlQWdlbnQuY3BwICovLAotCQkJCUE1RkQwMDg0MTg5QjFCN0UwMDYz
MzIzMSAvKiBKU0dsb2JhbE9iamVjdENvbnNvbGVBZ2VudC5oICovLAogCQkJCUE1N0QyM0U3MTg5
MUIwNzcwMDMxQzdGQSAvKiBKU0dsb2JhbE9iamVjdERlYnVnZ2VyQWdlbnQuY3BwICovLAogCQkJ
CUE1N0QyM0U4MTg5MUIwNzcwMDMxQzdGQSAvKiBKU0dsb2JhbE9iamVjdERlYnVnZ2VyQWdlbnQu
aCAqLywKIAkJCQlBNTBFNEI1RjE4ODA5REQ1MDA2OEE0NkQgLyogSlNHbG9iYWxPYmplY3RSdW50
aW1lQWdlbnQuY3BwICovLApAQCAtODA0NCw3ICs4MDM5LDYgQEAKIAkJCQkwRkVDODVCQjFCRTE0
NjJGMDA4MEZGNzQgLyogQjNJbnNlcnRpb25TZXRJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRkRGNjdEMjFEOUM2RDI3MDAxQjk4MjUgLyogQjNLaW5kLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk0MzZFNTQ1MzFDNDY4RTc0MDBCNUFGNzMgLyogQjNMZWdhbGl6ZU1lbW9yeU9mZnNldHMuaCBp
biBIZWFkZXJzICovLAotCQkJCUFENUMzNkVDMUY3NUFEN0MwMDBCQ0FBRiAvKiBXYXNtVG9KUy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEYzMzhFMUUxQkYyODZFQTAwMTNDODhGIC8qIEIzTG93ZXJN
YWNyb3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTQzMTlEQTA0MUMxQkU0MEQwMDFEMjYwQiAvKiBC
M0xvd2VyTWFjcm9zQWZ0ZXJPcHRpbWl6YXRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVD
ODUxRTFCREFDREFDMDA4MEZGNzQgLyogQjNMb3dlclRvQWlyLmggaW4gSGVhZGVycyAqLywKQEAg
LTgxMDEsOSArODA5NSw5IEBACiAJCQkJODY2NzM5RDIxM0JGREU3MTAwMjNEODdDIC8qIEJpZ0lu
dGVnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNjRCMjcyMUE3ODRCQUYwMDZFNEU2NiAvKiBC
aW5hcnlTd2l0Y2guaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDM0VDMEUxNkY1Q0QwMEIzNDQ2
MCAvKiBCb29sZWFuT2JqZWN0LmggaW4gSGVhZGVycyAqLywKKwkJCQk5QjQ2OTQzOTFGOTc0MzlF
MDBDQ0IzRjkgLyogQm9vbGVhblByb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTk2Qjcz
MTkxQkRBMDY4MDAwMzMxQjg0IC8qIEJvb2xlYW5Qcm90b3R5cGUubHV0LmggaW4gSGVhZGVycyAq
LywKIAkJCQlGRUEwODYyMDE4MkI3QTA0MDBGNkQ4NTEgLyogQnJlYWtwb2ludC5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJOUI0Njk0MzkxRjk3NDM5RTAwQ0NCM0Y5IC8qIEJvb2xlYW5Qcm90b3R5cGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCURFMjZFOTAzMUNCNUREMDUwMEQyQkU4MiAvKiBCdWlsdGlu
RXhlY3V0YWJsZUNyZWF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3RDgwMUE1MTg4MEQ2NkUw
MDI2QzM5QiAvKiBCdWlsdGluRXhlY3V0YWJsZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3NUVF
OUIyMThBQUI3RTIwMEFBRDA0MyAvKiBCdWlsdGluTmFtZXMuaCBpbiBIZWFkZXJzICovLApAQCAt
ODEzNiw3ICs4MTMwLDYgQEAKIAkJCQlFMzI4REFFQjFEMzhEMDA1MDAxQTI1MjkgLyogQnl0ZWNv
ZGVSZXdyaXRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjUxNEYyMTkxOEIzRTE2NzAwOThGRjhC
IC8qIEJ5dGVjb2Rlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY4ODVFMTExODQ5QTNCRTAwRjFF
M0ZBIC8qIEJ5dGVjb2RlVXNlRGVmLmggaW4gSGVhZGVycyAqLywKLQkJCQlBRDVDMzZFQjFGNzVB
RDczMDAwQkNBQUYgLyogSlNXZWJBc3NlbWJseS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY4MDIz
RUExNjEzODMyQjAwQTBCQTQ1IC8qIEJ5VmFsSW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjVC
ODM5MkUxQkFDQUQzNjAwNDRFODI0IC8qIENhY2hlZFJlY292ZXJ5LmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRkVDM0M2MDFGMzc5RjUzMDBGNTlCNkMgLyogQ2FnZWRCYXJyaWVyUHRyLmggaW4gSGVh
ZGVycyAqLywKQEAgLTgzNDEsNyArODMzNCw2IEBACiAJCQkJMEZBNTgxQkMxNTBFOTUzMDAwQjlB
MkQ5IC8qIERGR05vZGVUeXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQlEQ0VFMjIwRDFDRUJBRjc1
MDAwQzIzOTYgLyogREZHTnVsbEFic3RyYWN0U3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
MkI5Q0U3MTlEMEJBN0QwMEIxRDFCNSAvKiBERkdPYmplY3RBbGxvY2F0aW9uU2lua2luZ1BoYXNl
LmggaW4gSGVhZGVycyAqLywKLQkJCQlBRDVDMzZERDFGNjg4QjY1MDAwQkNBQUYgLyogV2FzbUVt
YmVkZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJCOUNFOTE5RDBCQTdEMDBCMUQxQjUgLyog
REZHT2JqZWN0TWF0ZXJpYWxpemF0aW9uRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODZFQzlE
RDAxMzI4REY4MjAwMkIyQUQ3IC8qIERGR09wZXJhdGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGN0MzOUZGMUM5MEM1NUIwMDQ4MDE1MSAvKiBERkdPcEluZm8uaCBpbiBIZWFkZXJzICovLApA
QCAtODQ1MiwxMCArODQ0NCw4IEBACiAJCQkJMEYzQUM3NTQxODhFNUVDODAwMzIwMjlGIC8qIEV4
aXRpbmdKSVRUeXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkIxMDU4NjE2NzU0ODEyMDBGOEFC
NkUgLyogRXhpdEtpbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMEI4M0FCMTRCQ0Y1QkIwMDg4
NUI0RiAvKiBFeHByZXNzaW9uUmFuZ2VJbmZvLmggaW4gSGVhZGVycyAqLywKLQkJCQlBRDVDMzZF
QTFGNzVBRDZBMDAwQkNBQUYgLyogSlNUb1dhc20uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUMz
QzU3MUYzM0E0NTMwMEY1OUI2QyAvKiBGYXN0TWFsbG9jQWxpZ25lZE1lbW9yeUFsbG9jYXRvci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTdBOEFGMzgxN0FEQjVGMzAwNUFCMTc0IC8qIEZsb2F0MzJB
cnJheS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQUQ1QzM2RTIxRjY5OUVDMDAwMEJDQUFGIC8qIFdh
c21JbnN0YW5jZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTdBOEFGMzkxN0FEQjVGMzAwNUFCMTc0
IC8qIEZsb2F0NjRBcnJheS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyNEU1NDMxN0VBOUY1OTAw
QUJCMjE3IC8qIEZQUkluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCUUzNEVEQkY3MURCNUZGQzkw
MERDODdBNSAvKiBGcmFtZVRyYWNlcnMuaCBpbiBIZWFkZXJzICovLApAQCAtODY2NSw3ICs4NjU1
LDYgQEAKIAkJCQlBMTI1ODQ2RjFCNDVBMzYwMDBDQzdGNkMgLyogSW50bE51bWJlckZvcm1hdFBy
b3RvdHlwZS5sdXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUExMkJCRkYyMUIwNDRBOEIwMDY2NEI2
OSAvKiBJbnRsT2JqZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk3MDhFQkUyNDFDRThGMzU4MDA0
NTMxNDYgLyogSW50bE9iamVjdElubGluZXMuaCBpbiBIZWFkZXJzICovLAotCQkJCTc5QUMzMEZG
MUY5OTUzNjQwMDQ4NEZENyAvKiBPYmplY3RBbGxvY2F0aW9uUHJvZmlsZUlubGluZXMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTg2MEJEODAxMTQ4RUE2RjIwMDExMkIyRiAvKiBJbnRyaW5zaWMuaCBp
biBIZWFkZXJzICovLAogCQkJCTUzNEUwMzU0MUU1M0JEMjkwMDIxM0Y2NCAvKiBJbnRyaW5zaWNH
ZXR0ZXJBY2Nlc3NDYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk4QjlGNkQ1NjFENTkxMkZBMDAx
QzczOUYgLyogSXRlcmF0aW9uS2luZC5oIGluIEhlYWRlcnMgKi8sCkBAIC04NzY0LDcgKzg3NTMs
NiBAQAogCQkJCTc5N0UwN0FBMUI4RkNGQjkwMDg0MDBCQSAvKiBKU0dsb2JhbExleGljYWxFbnZp
cm9ubWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0MjEwRTE2RjVDRDAwQjM0NDYwIC8q
IEpTR2xvYmFsT2JqZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5OTZCNzMxRDFCREEwOEVGMDAz
MzFCODQgLyogSlNHbG9iYWxPYmplY3QubHV0LmggaW4gSGVhZGVycyAqLywKLQkJCQlBNUZEMDA4
NjE4OUIxQjdFMDA2MzMyMzEgLyogSlNHbG9iYWxPYmplY3RDb25zb2xlQWdlbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUE1QzNBMUE2MThDMDQ5MDIwMEM5NTkzQSAvKiBKU0dsb2JhbE9iamVjdENv
bnNvbGVDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1OTQ1NTkzMTgyNDc0NDcwMENDMzg0
MyAvKiBKU0dsb2JhbE9iamVjdERlYnVnZ2FibGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1N0Qy
M0VBMTg5MUIwNzcwMDMxQzdGQSAvKiBKU0dsb2JhbE9iamVjdERlYnVnZ2VyQWdlbnQuaCBpbiBI
ZWFkZXJzICovLApAQCAtODgzNyw2ICs4ODI1LDcgQEAKIAkJCQkwRjdERjEzRjFFMkFGQzREMDA5
NTk1MUIgLyogSlNTdHJpbmdTdWJzcGFjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY5MTlEMEQx
NTdFRTBBMjAwNEE0RTdEIC8qIEpTU3ltYm9sVGFibGVPYmplY3QuaCBpbiBIZWFkZXJzICovLAog
CQkJCTcwRUNBNjA2MUFGREJFQTIwMDQ0OTczOSAvKiBKU1RlbXBsYXRlUmVnaXN0cnlLZXkuaCBp
biBIZWFkZXJzICovLAorCQkJCUFENUMzNkVBMUY3NUFENkEwMDBCQ0FBRiAvKiBKU1RvV2FzbS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0MkEwRTE2RjVDRDAwQjM0NDYwIC8qIEpTVHlwZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNTM0ODZCQjcxQzE3OTVDMzAwRjZGM0FGIC8qIEpTVHlwZWRB
cnJheS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyQjY2RkIxN0I2QjVBQjAwQTdBRTNGIC8qIEpT
VHlwZWRBcnJheUNvbnN0cnVjdG9ycy5oIGluIEhlYWRlcnMgKi8sCkBAIC04ODU5LDYgKzg4NDgs
NyBAQAogCQkJCUE3NDgyQjkzMTE2NzExNDcwMDNCMDcxMiAvKiBKU1dlYWtPYmplY3RNYXBSZWZQ
cml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjBCMjg2QjFFQjhFNkNGMDAwRUI1RDIgLyog
SlNXZWFrUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzA5RkI4NjgxQUUzMzVDNjAwMzlE
MDY5IC8qIEpTV2Vha1NldC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQUQ1QzM2RUIxRjc1QUQ3MzAw
MEJDQUFGIC8qIEpTV2ViQXNzZW1ibHkuaCBpbiBIZWFkZXJzICovLAogCQkJCUFEOUU4NTJGMUU4
QTBDN0MwMDhERTM5RSAvKiBKU1dlYkFzc2VtYmx5Q29kZUJsb2NrLmggaW4gSGVhZGVycyAqLywK
IAkJCQk3OUVGRDQ4NDFFQkMwNDVDMDBGM0RGRUEgLyogSlNXZWJBc3NlbWJseUNvZGVCbG9ja1N1
YnNwYWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBRDJGQ0JFMzFEQjU4REFEMDBCM0U3MzYgLyog
SlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvci5oIGluIEhlYWRlcnMgKi8sCkBAIC04OTY5LDYgKzg5
NTksNyBAQAogCQkJCTg2RjNFRUJEMTY4Q0RFOTMwMDc3QjkyQSAvKiBPYmpDQ2FsbGJhY2tGdW5j
dGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODZGM0VFQkYxNjhDREU5MzAwNzdCOTJBIC8qIE9i
amNSdW50aW1lRXh0cmFzLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNENBOTU4RDE2QUI1MEZBMDA5
MzhBMDYgLyogT2JqZWN0QWxsb2NhdGlvblByb2ZpbGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTc5
QUMzMEZGMUY5OTUzNjQwMDQ4NEZENyAvKiBPYmplY3RBbGxvY2F0aW9uUHJvZmlsZUlubGluZXMu
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDQ1MEUxNkY1Q0QwMEIzNDQ2MCAvKiBPYmplY3RD
b25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTk2QjczMjIxQkRBMDhFRjAwMzMxQjg0
IC8qIE9iamVjdENvbnN0cnVjdG9yLmx1dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkU0OEU2Mzgx
RUIxMThEMjAwNUQ3QTk2IC8qIE9iamVjdEluaXRpYWxpemF0aW9uU2NvcGUuaCBpbiBIZWFkZXJz
ICovLApAQCAtOTA1MSw3ICs5MDQyLDYgQEAKIAkJCQlCQ0QyMDJENjBFMTcwNzA4MDAyQzdFODIg
LyogUmVnRXhwQ29uc3RydWN0b3IubHV0LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjdDMzlGQjFD
OEY2MjkzMDA0ODAxNTEgLyogUmVnRXhwSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTE3
MTJCNDExMUM3QjIzNTAwN0E1MzE1IC8qIFJlZ0V4cEtleS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
QUQ1QzM2RTYxRjY5RUM5MTAwMEJDQUFGIC8qIFdhc21UYWJsZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkMxOEM0NUIwRTE2RjVDRDAwQjM0NDYwIC8qIFJlZ0V4cE9iamVjdC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEY3QzM5RkQxQzhGNjU5NTAwNDgwMTUxIC8qIFJlZ0V4cE9iamVjdElubGluZXMu
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDRDIwMkM0MEUxNzA2QTcwMDJDN0U4MiAvKiBSZWdFeHBQ
cm90b3R5cGUuaCBpbiBIZWFkZXJzICovLApAQCAtOTIyMyw3ICs5MjEzLDYgQEAKIAkJCQkwRkUw
NTAyRDFBQTkwOTU2MDBEMzNCMzMgLyogVmFyT2Zmc2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RjQyNkE0OTE0NjBDQkI3MDAxMzFGOEYgLyogVmlydHVhbFJlZ2lzdGVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRjFGQjM5MzFFMTc3QTcyMDBBOUJFNTAgLyogVmlzaXRpbmdUaW1lb3V0LmggaW4g
SGVhZGVycyAqLywKLQkJCQlBRDVDMzZFRjFGN0EyNjNBMDAwQkNBQUYgLyogV2FzbU1lbW9yeU1v
ZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGOTUyQUExMURGNzg2MDkwMEUwNkZCRCAvKiBWaXNp
dFJhY2VLZXkuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDIwMEUxNkY1Q0QwMEIzNDQ2MCAv
KiBWTS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjU4RDNBNTYxOTYzODI2ODAwM0M0NUQ2IC8qIFZN
RW50cnlSZWNvcmQuaCBpbiBIZWFkZXJzICovLApAQCAtOTIzOSwxNSArOTIyOCwxOCBAQAogCQkJ
CTUzRkQwNEQ0MUQ3QUIyOTEwMDMyODdEMyAvKiBXYXNtQ2FsbGluZ0NvbnZlbnRpb24uaCBpbiBI
ZWFkZXJzICovLAogCQkJCTUyNkFDNEI3MUU5NzdDNUQwMDM1MDBFMSAvKiBXYXNtQ29kZUJsb2Nr
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBRDQxMkIzNDFFN0IyRTlFMDA4QUYxNTcgLyogV2FzbUNv
bnRleHQuaCBpbiBIZWFkZXJzICovLAorCQkJCUFENUMzNkREMUY2ODhCNjUwMDBCQ0FBRiAvKiBX
YXNtRW1iZWRkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTc5REFFMjdBMUUwM0M4MjIwMEI1MjZB
QSAvKiBXYXNtRXhjZXB0aW9uVHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTM4MUI5MzkxRTYw
RTk3RDAwOTBGNzk0IC8qIFdhc21GYXVsdFNpZ25hbEhhbmRsZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTdCQzU0N0QzMUI2OTU5QTEwMDk1OUI1OCAvKiBXYXNtRm9ybWF0LmggaW4gSGVhZGVycyAq
LywKIAkJCQk1M0Y0MEU4QjFENTkwMUJCMDA5OUExQjYgLyogV2FzbUZ1bmN0aW9uUGFyc2VyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBRDhGRjM5ODFFQjVCREIyMDA4N0ZGODIgLyogV2FzbUluZGV4
T3JOYW1lLmggaW4gSGVhZGVycyAqLywKKwkJCQlBRDVDMzZFMjFGNjk5RUMwMDAwQkNBQUYgLyog
V2FzbUluc3RhbmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBRDAwNjU5RTFFQ0FDODEyMDAwQ0E5
MjYgLyogV2FzbUxpbWl0cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTNFOUUwQUMxRUFFODNERjAw
RkVFMjUxIC8qIFdhc21NYWNoaW5lVGhyZWFkcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTM1NTU3
MTQxRDlEOUVBNTAwNkQ1ODNCIC8qIFdhc21NZW1vcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTc5
Qjc1OTc1MURGQTRDNjAwMDUyMTc0QyAvKiBXYXNtTWVtb3J5SW5mb3JtYXRpb24uaCBpbiBIZWFk
ZXJzICovLAorCQkJCUFENUMzNkVGMUY3QTI2M0EwMDBCQ0FBRiAvKiBXYXNtTWVtb3J5TW9kZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNzkwMDgxMzkxRTk1QThFQzAwNTJEN0NEIC8qIFdhc21Nb2R1
bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTUzRTc3N0U0MUU5MkUyNjUwMDdDQkVDNCAvKiBXYXNt
TW9kdWxlSW5mb3JtYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTUzRjQwRTk1MUQ1QTdBRUYw
MDk5QTFCNiAvKiBXYXNtTW9kdWxlUGFyc2VyLmggaW4gSGVhZGVycyAqLywKQEAgLTkyNjEsOCAr
OTI1MywxMCBAQAogCQkJCTUzMTM3NEJEMUQ1Q0U2NzYwMEFGN0EwQiAvKiBXYXNtUGxhbi5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNTNGNDBFODUxRDU4Rjk3NzAwOTlBMUI2IC8qIFdhc21TZWN0aW9u
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQUQ3NDM4QzAxRTA0NTdBNDAwRkQwQzJBIC8qIFdhc21T
aWduYXR1cmUuaCBpbiBIZWFkZXJzICovLAorCQkJCUFENUMzNkU2MUY2OUVDOTEwMDBCQ0FBRiAv
KiBXYXNtVGFibGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTUyNTBEMkQyMUU4REEwNUEwMDI5QTkz
MiAvKiBXYXNtVGh1bmtzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1M0U5RTBBRjFFQUVDNDU3MDBG
RUUyNTEgLyogV2FzbVRpZXJVcENvdW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlBRDVDMzZFQzFG
NzVBRDdDMDAwQkNBQUYgLyogV2FzbVRvSlMuaCBpbiBIZWFkZXJzICovLAogCQkJCTUzRkY3Rjk5
MURCRkNEOTAwMEEyNkNDQyAvKiBXYXNtVmFsaWRhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTUz
MEZCMzAyMUU3QTBCNkUwMDNDMTlERCAvKiBXYXNtV29ya2xpc3QuaCBpbiBIZWFkZXJzICovLAog
CQkJCUZFRDk0RjJGMTcxRTNFMjMwMEJFNzdBNCAvKiBXYXRjaGRvZy5oIGluIEhlYWRlcnMgKi8s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU291cmNlcy50eHQgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvU291cmNlcy50eHQKaW5kZXggMTNhODc1ZGZkZDE3ZDRjNzFlNDhjNTc3
NDQ4OGNlNzllNmU2M2Q0NC4uNWZlYzg0MmE0MzAzMThlYzU3MmVmMzIxYzdjYjdhMmRjODQxMzBj
NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NvdXJjZXMudHh0CisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9Tb3VyY2VzLnR4dApAQCAtNTU3LDcgKzU1Nyw2IEBAIGluc3Bl
Y3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAKIGluc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9ySGVhcEFnZW50LmNwcAogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JSdW50aW1l
QWdlbnQuY3BwCiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclNjcmlwdFByb2ZpbGVyQWdlbnQu
Y3BwCi1pbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0Q29uc29sZUFnZW50LmNwcAogaW5z
cGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVjdERlYnVnZ2VyQWdlbnQuY3BwCiBpbnNwZWN0b3Iv
YWdlbnRzL0pTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50LmNwcAogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJv
bGxlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0
SW5zcGVjdG9yQ29udHJvbGxlci5jcHAKaW5kZXggNjJkOTQ2MjM5N2NmNjc5YzNlMDNjNDkzZDdi
YTM3NjM0M2I5ZDljYi4uZDNkY2IzMjg4NGIzM2M1MTM5MTMzYzNkMjgxY2NhMjk3MGNmZDU4YSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVj
dEluc3BlY3RvckNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmNwcApAQCAtMzUsMTMgKzM1
LDEzIEBACiAjaW5jbHVkZSAiSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiSW5z
cGVjdG9yQWdlbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci5oIgor
I2luY2x1ZGUgIkluc3BlY3RvckNvbnNvbGVBZ2VudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvckZy
b250ZW5kQ2hhbm5lbC5oIgogI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kUm91dGVyLmgiCiAj
aW5jbHVkZSAiSW5zcGVjdG9ySGVhcEFnZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yU2NyaXB0
UHJvZmlsZXJBZ2VudC5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKICNpbmNsdWRlICJKU0ds
b2JhbE9iamVjdC5oIgotI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0Q29uc29sZUFnZW50LmgiCiAj
aW5jbHVkZSAiSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50LmgiCiAjaW5jbHVkZSAiSlNHbG9i
YWxPYmplY3REZWJ1Z2dlckFnZW50LmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3RSdW50aW1l
QWdlbnQuaCIKQEAgLTgzLDcgKzgzLDcgQEAgSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9s
bGVyOjpKU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIoSlNHbG9iYWxPYmoKICAgICBh
dXRvIGluc3BlY3RvckFnZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxJbnNwZWN0b3JBZ2VudD4oY29u
dGV4dCk7CiAgICAgYXV0byBydW50aW1lQWdlbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPEpTR2xvYmFs
T2JqZWN0UnVudGltZUFnZW50Pihjb250ZXh0KTsKICAgICBhdXRvIGhlYXBBZ2VudCA9IHN0ZDo6
bWFrZV91bmlxdWU8SW5zcGVjdG9ySGVhcEFnZW50Pihjb250ZXh0KTsKLSAgICBhdXRvIGNvbnNv
bGVBZ2VudCA9IHN0ZDo6bWFrZV91bmlxdWU8SlNHbG9iYWxPYmplY3RDb25zb2xlQWdlbnQ+KGNv
bnRleHQsIGhlYXBBZ2VudC5nZXQoKSk7CisgICAgYXV0byBjb25zb2xlQWdlbnQgPSBzdGQ6Om1h
a2VfdW5pcXVlPEluc3BlY3RvckNvbnNvbGVBZ2VudD4oY29udGV4dCwgaGVhcEFnZW50LmdldCgp
KTsKICAgICBhdXRvIGRlYnVnZ2VyQWdlbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPEpTR2xvYmFsT2Jq
ZWN0RGVidWdnZXJBZ2VudD4oY29udGV4dCwgY29uc29sZUFnZW50LmdldCgpKTsKICAgICBhdXRv
IHNjcmlwdFByb2ZpbGVyQWdlbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPEluc3BlY3RvclNjcmlwdFBy
b2ZpbGVyQWdlbnQ+KGNvbnRleHQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDb25zb2xlQWdlbnQuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNvbnNvbGVBZ2VudC5oCmluZGV4
IGUyMWEwY2YzMjllOGJmOWVkODAzMDFjYWMzZThmY2JhOGQyODZjMzguLjE5NGFhNzA0ODNmNDFj
N2E2NWZjZTRhNzViNTk1ZTNkY2YyOTM1Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNvbnNvbGVBZ2VudC5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNvbnNvbGVBZ2VudC5o
CkBAIC02MSw3ICs2MSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGVuYWJsZShFcnJvclN0cmluZyYp
IG92ZXJyaWRlOwogICAgIHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyYpIG92ZXJyaWRlOwogICAg
IHZvaWQgY2xlYXJNZXNzYWdlcyhFcnJvclN0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgc2V0
TW9uaXRvcmluZ1hIUkVuYWJsZWQoRXJyb3JTdHJpbmcmLCBib29sIGVuYWJsZWQpIG92ZXJyaWRl
ID0gMDsKIAogICAgIGJvb2wgZW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZW5hYmxlZDsgfQog
ICAgIHZvaWQgcmVzZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0Q29uc29sZUFnZW50LmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0Q29uc29sZUFnZW50LmNw
cApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGI4OGZjY2UyYzM5OTNhOWYzZjJkN2U2
YjJkMTk4OGVmZTY5Y2IyZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9i
amVjdENvbnNvbGVBZ2VudC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw0MSArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDE0LCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQot
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUg
ImNvbmZpZy5oIgotI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0Q29uc29sZUFnZW50LmgiCi0KLW5h
bWVzcGFjZSBJbnNwZWN0b3IgewotCi1KU0dsb2JhbE9iamVjdENvbnNvbGVBZ2VudDo6SlNHbG9i
YWxPYmplY3RDb25zb2xlQWdlbnQoQWdlbnRDb250ZXh0JiBjb250ZXh0LCBJbnNwZWN0b3JIZWFw
QWdlbnQqIGhlYXBBZ2VudCkKLSAgICA6IEluc3BlY3RvckNvbnNvbGVBZ2VudChjb250ZXh0LCBo
ZWFwQWdlbnQpCi17Ci19Ci0KLXZvaWQgSlNHbG9iYWxPYmplY3RDb25zb2xlQWdlbnQ6OnNldE1v
bml0b3JpbmdYSFJFbmFibGVkKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgYm9vbCkKLXsKLSAg
ICBlcnJvclN0cmluZyA9IEFTQ0lJTGl0ZXJhbCgiTm90IHN1cHBvcnRlZCBmb3IgSmF2YVNjcmlw
dCBjb250ZXh0Iik7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIEluc3BlY3RvcgpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RDb25z
b2xlQWdlbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0pTR2xv
YmFsT2JqZWN0Q29uc29sZUFnZW50LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEy
OTE4MmExYjNlMGYyNGRmNmQyOWIzMDYxNjlkZWE2Y2Y0MDE4YTEuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RDb25zb2xlQWdlbnQuaAorKysgL2Rldi9udWxsCkBA
IC0xLDQzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQsIDIwMTUgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIkluc3BlY3RvckNvbnNvbGVBZ2Vu
dC5oIgotCi1uYW1lc3BhY2UgSW5zcGVjdG9yIHsKLQotY2xhc3MgSlNHbG9iYWxPYmplY3RDb25z
b2xlQWdlbnQgZmluYWwgOiBwdWJsaWMgSW5zcGVjdG9yQ29uc29sZUFnZW50IHsKLSAgICBXVEZf
TUFLRV9OT05DT1BZQUJMRShKU0dsb2JhbE9iamVjdENvbnNvbGVBZ2VudCk7Ci0gICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7Ci1wdWJsaWM6Ci0gICAgSlNHbG9iYWxPYmplY3RDb25zb2xlQWdl
bnQoQWdlbnRDb250ZXh0JiwgSW5zcGVjdG9ySGVhcEFnZW50Kik7Ci0gICAgdmlydHVhbCB+SlNH
bG9iYWxPYmplY3RDb25zb2xlQWdlbnQoKSB7IH0KLQotICAgIC8vIEZJWE1FOiBYSFJzIGFuZCBO
b2RlcyBvbmx5IG1ha2VzIHNlbnNlIGRlYnVnZ2luZyBhIFdlYiBjb250ZXh0LiBDYW4gdGhpcyBi
ZSBtb3ZlZCB0byBhIGRpZmZlcmVudCBhZ2VudD8KLSAgICB2b2lkIHNldE1vbml0b3JpbmdYSFJF
bmFibGVkKEVycm9yU3RyaW5nJiwgYm9vbCBlbmFibGVkKSBvdmVycmlkZTsKLX07Ci0KLX0gLy8g
bmFtZXNwYWNlIEluc3BlY3RvcgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9wcm90b2NvbC9Db25zb2xlLmpzb24gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL3Byb3RvY29sL0NvbnNvbGUuanNvbgppbmRleCBiNGQxMGNlZjk5NTc2ZTFhZTNhZTE0
OTE0YjkyZWY5ZjAxZmEwYWJmLi4zMmFhNzk4OWY3ZWYxMGY4MTM0ODVkOGEwOTE5YzIyMTM3YmEz
OTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29s
L0NvbnNvbGUuanNvbgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3Rv
Y29sL0NvbnNvbGUuanNvbgpAQCAtNTcsMTMgKzU3LDYgQEAKICAgICAgICAgewogICAgICAgICAg
ICAgIm5hbWUiOiAiY2xlYXJNZXNzYWdlcyIsCiAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAi
Q2xlYXJzIGNvbnNvbGUgbWVzc2FnZXMgY29sbGVjdGVkIGluIHRoZSBicm93c2VyLiIKLSAgICAg
ICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgIm5hbWUiOiAic2V0TW9uaXRvcmluZ1hIUkVu
YWJsZWQiLAotICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZXMgbW9uaXRvcmluZyBv
ZiBYTUxIdHRwUmVxdWVzdC4gSWYgPGNvZGU+dHJ1ZTwvY29kZT4sIGNvbnNvbGUgd2lsbCByZWNl
aXZlIG1lc3NhZ2VzIHVwb24gZWFjaCBYSFIgaXNzdWVkLiIsCi0gICAgICAgICAgICAicGFyYW1l
dGVycyI6IFsKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogImVuYWJsZWQiLCAidHlwZSI6ICJi
b29sZWFuIiwgImRlc2NyaXB0aW9uIjogIk1vbml0b3JpbmcgZW5hYmxlZCBzdGF0ZS4iIH0KLSAg
ICAgICAgICAgIF0KICAgICAgICAgfQogICAgIF0sCiAgICAgImV2ZW50cyI6IFsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAK
aW5kZXggM2FkYjFlOTMyNDE2ZmRiOGNmYzE5ZDIwZTdmYWU2OGE1NTAxODgzMS4uOWY0NDIzMjVk
NzQ2ODIwYmExMWMzNzI2Y2YxZTU2ZjJlMzQ4OWJkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKQEAgLTYyNSwxMCAr
NjI1LDggQEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZEZhaWxMb2FkaW5nSW1w
bChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW4KICAgICAgICAgY29uc29sZUFnZW50LT5k
aWRGYWlsTG9hZGluZyhpZGVudGlmaWVyLCBlcnJvcik7IC8vIFRoaXMgc2hvdWxkIGNvbWUgQUZU
RVIgcmVzb3VyY2Ugbm90aWZpY2F0aW9uLCBmcm9udC1lbmQgcmVsaWVzIG9uIHRoaXMuCiB9CiAK
LXZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRGaW5pc2hYSFJMb2FkaW5nSW1wbChJ
bnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCB1bnNpZ25lZCBsb25nIGlk
ZW50aWZpZXIsIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBkZWNvZGVkVGV4dCwgY29uc3QgU3RyaW5n
JiB1cmwsIGNvbnN0IFN0cmluZyYgc2VuZFVSTCwgdW5zaWduZWQgc2VuZExpbmVOdW1iZXIsIHVu
c2lnbmVkIHNlbmRDb2x1bW5OdW1iZXIpCit2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
ZGlkRmluaXNoWEhSTG9hZGluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGlu
Z0FnZW50cywgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBzdGQ6Om9wdGlvbmFsPFN0cmluZz4g
ZGVjb2RlZFRleHQpCiB7Ci0gICAgaWYgKFdlYkNvbnNvbGVBZ2VudCogY29uc29sZUFnZW50ID0g
aW5zdHJ1bWVudGluZ0FnZW50cy53ZWJDb25zb2xlQWdlbnQoKSkKLSAgICAgICAgY29uc29sZUFn
ZW50LT5kaWRGaW5pc2hYSFJMb2FkaW5nKGlkZW50aWZpZXIsIHVybCwgc2VuZFVSTCwgc2VuZExp
bmVOdW1iZXIsIHNlbmRDb2x1bW5OdW1iZXIpOwogICAgIGlmIChJbnNwZWN0b3JOZXR3b3JrQWdl
bnQqIG5ldHdvcmtBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMuaW5zcGVjdG9yTmV0d29ya0Fn
ZW50KCkpIHsKICAgICAgICAgaWYgKGRlY29kZWRUZXh0KQogICAgICAgICAgICAgbmV0d29ya0Fn
ZW50LT5kaWRGaW5pc2hYSFJMb2FkaW5nKGlkZW50aWZpZXIsICpkZWNvZGVkVGV4dCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgK
aW5kZXggNjMzYjVkMDA5N2Q0MjFlMjgxZjlmM2RiM2MwNGM2ZDdlZTBjMDliYS4uZGE0MGU2YWFi
NDdkYjBiOTVlNjU4NDJkZmVhZTFlNTQ3ZTU0MzlkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaApAQCAtMTg2LDcgKzE4Niw3
IEBAIHB1YmxpYzoKICAgICBlbnVtIGNsYXNzIExvYWRUeXBlIHsgUGluZywgQmVhY29uIH07CiAg
ICAgc3RhdGljIHZvaWQgd2lsbFNlbmRSZXF1ZXN0T2ZUeXBlKEZyYW1lKiwgdW5zaWduZWQgbG9u
ZyBpZGVudGlmaWVyLCBEb2N1bWVudExvYWRlciosIFJlc291cmNlUmVxdWVzdCYsIExvYWRUeXBl
KTsKIAotICAgIHN0YXRpYyB2b2lkIGRpZEZpbmlzaFhIUkxvYWRpbmcoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgc3RkOjpvcHRpb25hbDxTdHJpbmc+
IGRlY29kZWRUZXh0LCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiBzZW5kVVJMLCB1
bnNpZ25lZCBzZW5kTGluZU51bWJlciwgdW5zaWduZWQgc2VuZENvbHVtbk51bWJlcik7CisgICAg
c3RhdGljIHZvaWQgZGlkRmluaXNoWEhSTG9hZGluZyhTY3JpcHRFeGVjdXRpb25Db250ZXh0Kiwg
dW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gZGVjb2RlZFRl
eHQpOwogICAgIHN0YXRpYyB2b2lkIHdpbGxMb2FkWEhSU3luY2hyb25vdXNseShTY3JpcHRFeGVj
dXRpb25Db250ZXh0Kik7CiAgICAgc3RhdGljIHZvaWQgZGlkTG9hZFhIUlN5bmNocm9ub3VzbHko
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwogICAgIHN0YXRpYyB2b2lkIHNjcmlwdEltcG9ydGVk
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgc291cmNlU3RyaW5nKTsKQEAgLTM1NSw3ICszNTUsNyBAQCBwcml2YXRlOgogICAg
IHN0YXRpYyB2b2lkIGRpZFJlY2VpdmVEYXRhSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgdW5z
aWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBjaGFyKiBkYXRhLCBpbnQgZGF0YUxlbmd0aCwg
aW50IGVuY29kZWREYXRhTGVuZ3RoKTsKICAgICBzdGF0aWMgdm9pZCBkaWRGaW5pc2hMb2FkaW5n
SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBEb2N1
bWVudExvYWRlciosIGNvbnN0IE5ldHdvcmtMb2FkTWV0cmljcyYsIFJlc291cmNlTG9hZGVyKik7
CiAgICAgc3RhdGljIHZvaWQgZGlkRmFpbExvYWRpbmdJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMm
LCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIERvY3VtZW50TG9hZGVyKiwgY29uc3QgUmVzb3Vy
Y2VFcnJvciYpOwotICAgIHN0YXRpYyB2b2lkIGRpZEZpbmlzaFhIUkxvYWRpbmdJbXBsKEluc3Ry
dW1lbnRpbmdBZ2VudHMmLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIHN0ZDo6b3B0aW9uYWw8
U3RyaW5nPiBkZWNvZGVkVGV4dCwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgc2Vu
ZFVSTCwgdW5zaWduZWQgc2VuZExpbmVOdW1iZXIsIHVuc2lnbmVkIHNlbmRDb2x1bW5OdW1iZXIp
OworICAgIHN0YXRpYyB2b2lkIGRpZEZpbmlzaFhIUkxvYWRpbmdJbXBsKEluc3RydW1lbnRpbmdB
Z2VudHMmLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBk
ZWNvZGVkVGV4dCk7CiAgICAgc3RhdGljIHZvaWQgd2lsbExvYWRYSFJTeW5jaHJvbm91c2x5SW1w
bChJbnN0cnVtZW50aW5nQWdlbnRzJik7CiAgICAgc3RhdGljIHZvaWQgZGlkTG9hZFhIUlN5bmNo
cm9ub3VzbHlJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmKTsKICAgICBzdGF0aWMgdm9pZCBzY3Jp
cHRJbXBvcnRlZEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIHVuc2lnbmVkIGxvbmcgaWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiBzb3VyY2VTdHJpbmcpOwpAQCAtOTU3LDEwICs5NTcsMTAgQEAg
aW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpjb250aW51ZVdpdGhQb2xpY3lJ
Z25vcmUoRnJhbWUmIGZyYW1lLCB1bnMKICAgICAgICAgZGlkUmVjZWl2ZVJlc291cmNlUmVzcG9u
c2VJbXBsKCppbnN0cnVtZW50aW5nQWdlbnRzLCBpZGVudGlmaWVyLCAmbG9hZGVyLCByZXNwb25z
ZSwgbnVsbHB0cik7CiB9CiAKLWlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
ZGlkRmluaXNoWEhSTG9hZGluZyhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCB1bnNp
Z25lZCBsb25nIGlkZW50aWZpZXIsIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBkZWNvZGVkVGV4dCwg
Y29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgc2VuZFVSTCwgdW5zaWduZWQgc2VuZExp
bmVOdW1iZXIsIHVuc2lnbmVkIHNlbmRDb2x1bW5OdW1iZXIpCitpbmxpbmUgdm9pZCBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmRpZEZpbmlzaFhIUkxvYWRpbmcoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBzdGQ6Om9wdGlvbmFsPFN0
cmluZz4gZGVjb2RlZFRleHQpCiB7CiAgICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3Ry
dW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yQ29udGV4dChjb250ZXh0KSkK
LSAgICAgICAgZGlkRmluaXNoWEhSTG9hZGluZ0ltcGwoKmluc3RydW1lbnRpbmdBZ2VudHMsIGlk
ZW50aWZpZXIsIGRlY29kZWRUZXh0LCB1cmwsIHNlbmRVUkwsIHNlbmRMaW5lTnVtYmVyLCBzZW5k
Q29sdW1uTnVtYmVyKTsKKyAgICAgICAgZGlkRmluaXNoWEhSTG9hZGluZ0ltcGwoKmluc3RydW1l
bnRpbmdBZ2VudHMsIGlkZW50aWZpZXIsIGRlY29kZWRUZXh0KTsKIH0KIAogaW5saW5lIHZvaWQg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsTG9hZFhIUlN5bmNocm9ub3VzbHkoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9XZWJDb25zb2xlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dl
YkNvbnNvbGVBZ2VudC5jcHAKaW5kZXggYTNiYWRhZTYxZjIyMmQ0MmI2OTljMzk0OGMzY2EwNmI3
MWNhZDlkZS4uMDg1MTJkNDY5MmYwNTExNWUwMGRkMDJlNmQwYmEwM2EyY2FlMzUwYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dlYkNvbnNvbGVBZ2VudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dlYkNvbnNvbGVBZ2VudC5jcHAKQEAgLTQ2LDExICs0
Niw2IEBAIFdlYkNvbnNvbGVBZ2VudDo6V2ViQ29uc29sZUFnZW50KEFnZW50Q29udGV4dCYgY29u
dGV4dCwgSW5zcGVjdG9ySGVhcEFnZW50KiBoZWFwCiB7CiB9CiAKLXZvaWQgV2ViQ29uc29sZUFn
ZW50OjpzZXRNb25pdG9yaW5nWEhSRW5hYmxlZChFcnJvclN0cmluZyYsIGJvb2wgZW5hYmxlZCkK
LXsKLSAgICBtX21vbml0b3JpbmdYSFJFbmFibGVkID0gZW5hYmxlZDsKLX0KLQogdm9pZCBXZWJD
b25zb2xlQWdlbnQ6OmZyYW1lV2luZG93RGlzY2FyZGVkKERPTVdpbmRvdyogd2luZG93KQogewog
ICAgIGZvciAoYXV0byYgbWVzc2FnZSA6IG1fY29uc29sZU1lc3NhZ2VzKSB7CkBAIC02NSwxNyAr
NjAsNiBAQCB2b2lkIFdlYkNvbnNvbGVBZ2VudDo6ZnJhbWVXaW5kb3dEaXNjYXJkZWQoRE9NV2lu
ZG93KiB3aW5kb3cpCiAgICAgc3RhdGljX2Nhc3Q8V2ViSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyJj4o
bV9pbmplY3RlZFNjcmlwdE1hbmFnZXIpLmRpc2NhcmRJbmplY3RlZFNjcmlwdHNGb3Iod2luZG93
KTsKIH0KIAotdm9pZCBXZWJDb25zb2xlQWdlbnQ6OmRpZEZpbmlzaFhIUkxvYWRpbmcodW5zaWdu
ZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmlu
ZyYgc2VuZFVSTCwgdW5zaWduZWQgc2VuZExpbmVOdW1iZXIsIHVuc2lnbmVkIHNlbmRDb2x1bW5O
dW1iZXIpCi17Ci0gICAgaWYgKCFtX2luamVjdGVkU2NyaXB0TWFuYWdlci5pbnNwZWN0b3JFbnZp
cm9ubWVudCgpLmRldmVsb3BlckV4dHJhc0VuYWJsZWQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0g
ICAgaWYgKG1fbW9uaXRvcmluZ1hIUkVuYWJsZWQpIHsKLSAgICAgICAgU3RyaW5nIG1lc3NhZ2Ug
PSAiWEhSIGZpbmlzaGVkIGxvYWRpbmc6IFwiIiArIHVybCArICJcIi4iOwotICAgICAgICBhZGRN
ZXNzYWdlVG9Db25zb2xlKHN0ZDo6bWFrZV91bmlxdWU8Q29uc29sZU1lc3NhZ2U+KE1lc3NhZ2VT
b3VyY2U6Ok5ldHdvcmssIE1lc3NhZ2VUeXBlOjpMb2csIE1lc3NhZ2VMZXZlbDo6RGVidWcsIG1l
c3NhZ2UsIHNlbmRVUkwsIHNlbmRMaW5lTnVtYmVyLCBzZW5kQ29sdW1uTnVtYmVyLCBudWxscHRy
LCByZXF1ZXN0SWRlbnRpZmllcikpOwotICAgIH0KLX0KLQogdm9pZCBXZWJDb25zb2xlQWdlbnQ6
OmRpZFJlY2VpdmVSZXNwb25zZSh1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyLCBjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsKICAgICBpZiAoIW1faW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyLmluc3BlY3RvckVudmlyb25tZW50KCkuZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCgp
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dlYkNvbnNvbGVBZ2VudC5o
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dlYkNvbnNvbGVBZ2VudC5oCmluZGV4IDVhM2U2
ZGQ4YWZhNDVjZDE0MTFjNjUxNjhkNmZjNGYyYzkwYjY3NGQuLjNhNTU3NTU1ODU1OWFkYmY5NjZk
YmY1NzcxZDAwNzA2NDgwNWQxNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9XZWJDb25zb2xlQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV2ViQ29u
c29sZUFnZW50LmgKQEAgLTQxLDE2ICs0MSwxMCBAQCBwdWJsaWM6CiAgICAgV2ViQ29uc29sZUFn
ZW50KEluc3BlY3Rvcjo6QWdlbnRDb250ZXh0JiwgSW5zcGVjdG9yOjpJbnNwZWN0b3JIZWFwQWdl
bnQqKTsKICAgICB2aXJ0dWFsIH5XZWJDb25zb2xlQWdlbnQoKSA9IGRlZmF1bHQ7CiAKLSAgICB2
b2lkIHNldE1vbml0b3JpbmdYSFJFbmFibGVkKEVycm9yU3RyaW5nJiwgYm9vbCBlbmFibGVkKSBm
aW5hbDsKLQogICAgIHZvaWQgZnJhbWVXaW5kb3dEaXNjYXJkZWQoRE9NV2luZG93Kik7CiAKLSAg
ICB2b2lkIGRpZEZpbmlzaFhIUkxvYWRpbmcodW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgc2VuZFVSTCwgdW5zaWduZWQgc2Vu
ZExpbmVOdW1iZXIsIHVuc2lnbmVkIHNlbmRDb2x1bW5OdW1iZXIpOwogICAgIHZvaWQgZGlkUmVj
ZWl2ZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmKTsKICAgICB2b2lkIGRpZEZhaWxMb2FkaW5nKHVuc2lnbmVkIGxvbmcgcmVx
dWVzdElkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlRXJyb3ImKTsKLQotcHJvdGVjdGVkOgotICAg
IGJvb2wgbV9tb25pdG9yaW5nWEhSRW5hYmxlZCB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVl
c3QuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAppbmRleCA0NjZm
NzMwNjMxODE3YTYyMzg3MDU4ZTAxNGMwMzU1ZjhhMmQ2ZTVmLi43OWQ4YzM4YmM3ODE4OWEyM2E3
YjBlOGY1MmJiNzgwOWNjZDM1YWIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1M
SHR0cFJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5j
cHAKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3kuaCIK
ICNpbmNsdWRlICJDcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaCIKICNpbmNsdWRlICJET01Gb3Jt
RGF0YS5oIgorI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5j
bHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkZpbGUuaCIKQEAgLTQzLDcgKzQ0LDYgQEAK
ICNpbmNsdWRlICJQYXJzZWRDb250ZW50VHlwZS5oIgogI2luY2x1ZGUgIlJlc291cmNlRXJyb3Iu
aCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKLSNpbmNsdWRlICJTY3JpcHRDb250cm9s
bGVyLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW5Qb2xpY3kuaCIKICNpbmNsdWRlICJTZXR0
aW5ncy5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgpAQCAtNTQsNyArNTQsNiBAQAogI2lu
Y2x1ZGUgIlhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5oIgogI2luY2x1ZGUgIlhNTEh0dHBS
ZXF1ZXN0VXBsb2FkLmgiCiAjaW5jbHVkZSAibWFya3VwLmgiCi0jaW5jbHVkZSA8aW50ZXJwcmV0
ZXIvU3RhY2tWaXNpdG9yLmg+CiAjaW5jbHVkZSA8bXV0ZXg+CiAjaW5jbHVkZSA8cnVudGltZS9B
cnJheUJ1ZmZlci5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvQXJyYXlCdWZmZXJWaWV3Lmg+CkBAIC0y
ODAsMTIgKzI3OSw2IEBAIFN0cmluZyBYTUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VVUkwoKSBjb25z
dAogICAgIHJldHVybiByZXNwb25zZVVSTC5zdHJpbmcoKTsKIH0KIAotdm9pZCBYTUxIdHRwUmVx
dWVzdDo6c2V0TGFzdFNlbmRMaW5lQW5kQ29sdW1uTnVtYmVyKHVuc2lnbmVkIGxpbmVOdW1iZXIs
IHVuc2lnbmVkIGNvbHVtbk51bWJlcikKLXsKLSAgICBtX2xhc3RTZW5kTGluZU51bWJlciA9IGxp
bmVOdW1iZXI7Ci0gICAgbV9sYXN0U2VuZENvbHVtbk51bWJlciA9IGNvbHVtbk51bWJlcjsKLX0K
LQogWE1MSHR0cFJlcXVlc3RVcGxvYWQqIFhNTEh0dHBSZXF1ZXN0Ojp1cGxvYWQoKQogewogICAg
IGlmICghbV91cGxvYWQpCkBAIC00MzMsNDcgKzQyNiw3IEBAIHN0ZDo6b3B0aW9uYWw8RXhjZXB0
aW9uT3I8dm9pZD4+IFhNTEh0dHBSZXF1ZXN0OjpwcmVwYXJlVG9TZW5kKCkKICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OwogfQogCi1uYW1lc3BhY2UgewotCi0vLyBGSVhNRTogVGhpcyBzaG91bGQg
YmUgYWJzdHJhY3RlZCBvdXQsIHNvIHRoYXQgYW55IElETCBmdW5jdGlvbiBjYW4gYmUgcGFzc2Vk
IHRoZSBsaW5lL2NvbHVtbi91cmwgdHVwbGUuCi0KLS8vIEZJWE1FOiBUaGlzIHNob3VsZCBwcm9i
YWJseSB1c2UgU2hhZG93Q2hpY2tlbiBzbyB0aGF0IHdlIGdldCB0aGUgcmlnaHQgZnJhbWUgZXZl
biB3aGVuIGl0IGRpZCBhIHRhaWwgY2FsbC4KLS8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNTU2ODgKLQotY2xhc3MgU2VuZEZ1bmN0b3IgewotcHVibGljOgotICAg
IFNlbmRGdW5jdG9yKCkgPSBkZWZhdWx0OwotCi0gICAgdW5zaWduZWQgbGluZSgpIGNvbnN0IHsg
cmV0dXJuIG1fbGluZTsgfQotICAgIHVuc2lnbmVkIGNvbHVtbigpIGNvbnN0IHsgcmV0dXJuIG1f
Y29sdW1uOyB9Ci0gICAgU3RyaW5nIHVybCgpIGNvbnN0IHsgcmV0dXJuIG1fdXJsOyB9Ci0KLSAg
ICBKU0M6OlN0YWNrVmlzaXRvcjo6U3RhdHVzIG9wZXJhdG9yKCkoSlNDOjpTdGFja1Zpc2l0b3Im
IHZpc2l0b3IpIGNvbnN0Ci0gICAgewotICAgICAgICBpZiAoIW1faGFzU2tpcHBlZEZpcnN0RnJh
bWUpIHsKLSAgICAgICAgICAgIG1faGFzU2tpcHBlZEZpcnN0RnJhbWUgPSB0cnVlOwotICAgICAg
ICAgICAgcmV0dXJuIEpTQzo6U3RhY2tWaXNpdG9yOjpDb250aW51ZTsKLSAgICAgICAgfQotCi0g
ICAgICAgIHVuc2lnbmVkIGxpbmUgPSAwOwotICAgICAgICB1bnNpZ25lZCBjb2x1bW4gPSAwOwot
ICAgICAgICB2aXNpdG9yLT5jb21wdXRlTGluZUFuZENvbHVtbihsaW5lLCBjb2x1bW4pOwotICAg
ICAgICBtX2xpbmUgPSBsaW5lOwotICAgICAgICBtX2NvbHVtbiA9IGNvbHVtbjsKLSAgICAgICAg
bV91cmwgPSB2aXNpdG9yLT5zb3VyY2VVUkwoKTsKLSAgICAgICAgcmV0dXJuIEpTQzo6U3RhY2tW
aXNpdG9yOjpEb25lOwotICAgIH0KLQotcHJpdmF0ZToKLSAgICBtdXRhYmxlIGJvb2wgbV9oYXNT
a2lwcGVkRmlyc3RGcmFtZSB7IGZhbHNlIH07Ci0gICAgbXV0YWJsZSB1bnNpZ25lZCBtX2xpbmUg
eyAwIH07Ci0gICAgbXV0YWJsZSB1bnNpZ25lZCBtX2NvbHVtbiB7IDAgfTsKLSAgICBtdXRhYmxl
IFN0cmluZyBtX3VybDsKLX07Ci0KLX0KLQotRXhjZXB0aW9uT3I8dm9pZD4gWE1MSHR0cFJlcXVl
c3Q6OnNlbmQoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBzdGQ6Om9wdGlvbmFsPFNlbmRUeXBlcz4m
JiBzZW5kVHlwZSkKK0V4Y2VwdGlvbk9yPHZvaWQ+IFhNTEh0dHBSZXF1ZXN0OjpzZW5kKHN0ZDo6
b3B0aW9uYWw8U2VuZFR5cGVzPiYmIHNlbmRUeXBlKQogewogICAgIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6d2lsbFNlbmRYTUxIdHRwUmVxdWVzdChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCks
IHVybCgpKTsKIApAQCAtNDkxLDExICs0NDQsNiBAQCBFeGNlcHRpb25Pcjx2b2lkPiBYTUxIdHRw
UmVxdWVzdDo6c2VuZChKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIHN0ZDo6b3B0aW9uYWw8U2VuZAog
ICAgICAgICApOwogICAgIH0KIAotICAgIFNlbmRGdW5jdG9yIGZ1bmN0b3I7Ci0gICAgc3RhdGUu
aXRlcmF0ZShmdW5jdG9yKTsKLSAgICBzZXRMYXN0U2VuZExpbmVBbmRDb2x1bW5OdW1iZXIoZnVu
Y3Rvci5saW5lKCksIGZ1bmN0b3IuY29sdW1uKCkpOwotICAgIHNldExhc3RTZW5kVVJMKGZ1bmN0
b3IudXJsKCkpOwotCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApAQCAtOTkyLDcgKzk0MCw3IEBA
IHZvaWQgWE1MSHR0cFJlcXVlc3Q6OmRpZEZpbmlzaExvYWRpbmcodW5zaWduZWQgbG9uZyBpZGVu
dGlmaWVyKQogICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBkZWNvZGVkVGV4dDsKICAgICBpZiAo
IW1fYmluYXJ5UmVzcG9uc2VCdWlsZGVyKQogICAgICAgICBkZWNvZGVkVGV4dCA9IG1fcmVzcG9u
c2VCdWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpOwotICAgIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6ZGlkRmluaXNoWEhSTG9hZGluZyhzY3JpcHRFeGVjdXRpb25Db250ZXh0KCks
IGlkZW50aWZpZXIsIGRlY29kZWRUZXh0LCBtX3VybCwgbV9sYXN0U2VuZFVSTCwgbV9sYXN0U2Vu
ZExpbmVOdW1iZXIsIG1fbGFzdFNlbmRDb2x1bW5OdW1iZXIpOworICAgIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6ZGlkRmluaXNoWEhSTG9hZGluZyhzY3JpcHRFeGVjdXRpb25Db250ZXh0KCks
IGlkZW50aWZpZXIsIGRlY29kZWRUZXh0KTsKIAogICAgIGJvb2wgaGFkTG9hZGVyID0gbV9sb2Fk
ZXI7CiAgICAgbV9sb2FkZXIgPSBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
eG1sL1hNTEh0dHBSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3Qu
aAppbmRleCAyNmM2YWEwNzg3MmEyNzA1ZThiNTJmMTljMDJhMDU4OGNlMTMyZjM3Li5jYjkyNTQ0
NWMxOGEwZTRmNDNkMGU5NDdlNDhlMWQ2NmI4NmEyOTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0
cFJlcXVlc3QuaApAQCAtMzUsNyArMzUsNiBAQAogbmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBBcnJh
eUJ1ZmZlcjsKIGNsYXNzIEFycmF5QnVmZmVyVmlldzsKLWNsYXNzIEV4ZWNTdGF0ZTsKIH0KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtODAsNyArNzksNyBAQCBwdWJsaWM6CiAgICAgRXhjZXB0
aW9uT3I8dm9pZD4gb3Blbihjb25zdCBTdHJpbmcmIG1ldGhvZCwgY29uc3QgU3RyaW5nJiB1cmwp
OwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IG9wZW4oY29uc3QgU3RyaW5nJiBtZXRob2QsIGNvbnN0
IFVSTCYsIGJvb2wgYXN5bmMpOwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IG9wZW4oY29uc3QgU3Ry
aW5nJiBtZXRob2QsIGNvbnN0IFN0cmluZyYsIGJvb2wgYXN5bmMsIGNvbnN0IFN0cmluZyYgdXNl
ciwgY29uc3QgU3RyaW5nJiBwYXNzd29yZCk7Ci0gICAgRXhjZXB0aW9uT3I8dm9pZD4gc2VuZChK
U0M6OkV4ZWNTdGF0ZSYsIHN0ZDo6b3B0aW9uYWw8U2VuZFR5cGVzPiYmKTsKKyAgICBFeGNlcHRp
b25Pcjx2b2lkPiBzZW5kKHN0ZDo6b3B0aW9uYWw8U2VuZFR5cGVzPiYmKTsKICAgICB2b2lkIGFi
b3J0KCk7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0UmVxdWVzdEhlYWRlcihjb25zdCBTdHJp
bmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUpOwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IG92
ZXJyaWRlTWltZVR5cGUoY29uc3QgU3RyaW5nJiBvdmVycmlkZSk7CkBAIC0xMDksOSArMTA4LDYg
QEAgcHVibGljOgogCiAgICAgU3RyaW5nIHJlc3BvbnNlVVJMKCkgY29uc3Q7CiAKLSAgICB2b2lk
IHNldExhc3RTZW5kTGluZUFuZENvbHVtbk51bWJlcih1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNp
Z25lZCBjb2x1bW5OdW1iZXIpOwotICAgIHZvaWQgc2V0TGFzdFNlbmRVUkwoY29uc3QgU3RyaW5n
JiB1cmwpIHsgbV9sYXN0U2VuZFVSTCA9IHVybDsgfQotCiAgICAgWE1MSHR0cFJlcXVlc3RVcGxv
YWQqIHVwbG9hZCgpOwogICAgIFhNTEh0dHBSZXF1ZXN0VXBsb2FkKiBvcHRpb25hbFVwbG9hZCgp
IGNvbnN0IHsgcmV0dXJuIG1fdXBsb2FkLmdldCgpOyB9CiAKQEAgLTIxOCw5ICsyMTQsNiBAQCBw
cml2YXRlOgogICAgIC8vIFVzZWQgZm9yIHByb2dyZXNzIGV2ZW50IHRyYWNraW5nLgogICAgIGxv
bmcgbG9uZyBtX3JlY2VpdmVkTGVuZ3RoIHsgMCB9OwogCi0gICAgdW5zaWduZWQgbV9sYXN0U2Vu
ZExpbmVOdW1iZXIgeyAwIH07Ci0gICAgdW5zaWduZWQgbV9sYXN0U2VuZENvbHVtbk51bWJlciB7
IDAgfTsKLSAgICBTdHJpbmcgbV9sYXN0U2VuZFVSTDsKICAgICBzdGQ6Om9wdGlvbmFsPEV4Y2Vw
dGlvbkNvZGU+IG1fZXhjZXB0aW9uQ29kZTsKIAogICAgIFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NF
dmVudFRocm90dGxlIG1fcHJvZ3Jlc3NFdmVudFRocm90dGxlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxI
dHRwUmVxdWVzdC5pZGwKaW5kZXggMDZiZDdkMzRmYzk4YjgxNjIzZGI3YjIwNWExY2ZmMzBhNzBk
N2FjMS4uOGM4NjBiOWViYzYwNDIwM2RjODNjM2U0MGZlMGYyYzRmNGQ4OTgyOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaWRsCkBAIC02Niw3ICs2Niw3IEBAIGVudW0gWE1MSHR0
cFJlcXVlc3RSZXNwb25zZVR5cGUgewogICAgIGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIHRpbWVv
dXQ7CiAgICAgYXR0cmlidXRlIGJvb2xlYW4gd2l0aENyZWRlbnRpYWxzOwogICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBYTUxIdHRwUmVxdWVzdFVwbG9hZCB1cGxvYWQ7Ci0gICAgW0NhbGxXaXRoPVNj
cmlwdFN0YXRlLCBNYXlUaHJvd0V4Y2VwdGlvbl0gdm9pZCBzZW5kKG9wdGlvbmFsIChEb2N1bWVu
dCBvciBCb2R5SW5pdCk/IGJvZHkgPSBudWxsKTsKKyAgICBbTWF5VGhyb3dFeGNlcHRpb25dIHZv
aWQgc2VuZChvcHRpb25hbCAoRG9jdW1lbnQgb3IgQm9keUluaXQpPyBib2R5ID0gbnVsbCk7CiAg
ICAgdm9pZCBhYm9ydCgpOwogCiAgICAgLy8gcmVzcG9uc2UK
</data>

          </attachment>
      

    </bug>

</bugzilla>