<?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>233146</bug_id>
          
          <creation_ts>2021-11-15 13:57:06 -0800</creation_ts>
          <short_desc>HTMLMediaElement: Adopt reportExtraMemoryVisited/Allocated</short_desc>
          <delta_ts>2021-11-18 12:59:27 -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>Media</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></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="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jean-yves.avenard</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>peng.liu6</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1815209</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-11-15 13:57:06 -0800</bug_when>
    <thetext>HTMLMediaElement: adopt Adopt reportExtraMemoryVisited/Allocated</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816294</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-11-17 20:44:06 -0800</bug_when>
    <thetext>&lt;rdar://problem/85533233&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816303</commentid>
    <comment_count>2</comment_count>
      <attachid>444637</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-11-17 21:22:25 -0800</bug_when>
    <thetext>Created attachment 444637
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816307</commentid>
    <comment_count>3</comment_count>
      <attachid>444638</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-11-17 21:40:12 -0800</bug_when>
    <thetext>Created attachment 444638
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816308</commentid>
    <comment_count>4</comment_count>
      <attachid>444638</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-11-17 21:56:34 -0800</bug_when>
    <thetext>Comment on attachment 444638
Patch

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

&gt; Source/WebCore/platform/graphics/MediaPlayer.cpp:1001
&gt; +    if (m_private &amp;&amp; !m_private-&gt;supportsMemoryCostChanged())

When m_private does not support MemoryCostChanged?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816368</commentid>
    <comment_count>5</comment_count>
      <attachid>444638</attachid>
    <who name="Jean-Yves Avenard [:jya]">jean-yves.avenard</who>
    <bug_when>2021-11-18 02:51:41 -0800</bug_when>
    <thetext>Comment on attachment 444638
Patch

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

&gt; Source/WebCore/html/HTMLMediaElement.cpp:866
&gt; +    if (newMemoryCost == m_reportedExtraMemoryCost)

on which thread could this be running that makes a requirement that m_reportedExtraMemoruCost be atomic?

Could a note be added on the member declaration explaining on why this requirement?

It would be ideal if this method had an assert like Assert(isOnMainthread() || isOnTheThreadWeExpect())
unfortunately, there&apos;s very little infrastructure for that</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816473</commentid>
    <comment_count>6</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-11-18 09:03:13 -0800</bug_when>
    <thetext>(In reply to Peng Liu from comment #4)
&gt; Comment on attachment 444638 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=444638&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/MediaPlayer.cpp:1001
&gt; &gt; +    if (m_private &amp;&amp; !m_private-&gt;supportsMemoryCostChanged())
&gt; 
&gt; When m_private does not support MemoryCostChanged?

Every MediaPlayerPrivate that isn&apos;t MediaPlayerPrivateAVFoundation just uses the default implementation of memoryCost(), and never explicitly pushes memory cost information upwards.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816476</commentid>
    <comment_count>7</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-11-18 09:07:28 -0800</bug_when>
    <thetext>(In reply to Jean-Yves Avenard [:jya] from comment #5)
&gt; Comment on attachment 444638 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=444638&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/HTMLMediaElement.cpp:866
&gt; &gt; +    if (newMemoryCost == m_reportedExtraMemoryCost)
&gt; 
&gt; on which thread could this be running that makes a requirement that
&gt; m_reportedExtraMemoruCost be atomic?

memoryCost() can be called from a GC thread, through the JSHTMLMediaElement wrapper object, by JSC.

&gt; Could a note be added on the member declaration explaining on why this
&gt; requirement?

I&apos;ll add a note in ::memoryCost().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816489</commentid>
    <comment_count>8</comment_count>
      <attachid>444693</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-11-18 09:32:11 -0800</bug_when>
    <thetext>Created attachment 444693
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816580</commentid>
    <comment_count>9</comment_count>
      <attachid>444722</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-11-18 12:59:27 -0800</bug_when>
    <thetext>Created attachment 444722
Patch</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444637</attachid>
            <date>2021-11-17 21:22:25 -0800</date>
            <delta_ts>2021-11-17 21:44:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233146-20211117212224.patch</filename>
            <type>text/plain</type>
            <size>37503</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1NjM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmUwMDg0ZmFkOGZiODEw
YTFiMjUxMDE3NmE1Nzc2NDRkYjI1NzE5Yy4uY2Y2YWIxNjdhYTlhMDVlNTU1N2VlYjRmZjU2ZjA2
ZTYzY2JlYjg1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDIxLTExLTE2ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEhUTUxNZWRpYUVsZW1lbnQ6
IEFkb3B0IHJlcG9ydEV4dHJhTWVtb3J5VmlzaXRlZC9BbGxvY2F0ZWQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzE0NgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzOiBodHRwL3Rlc3RzL21lZGlh
L2hscy9obHMtbWVkaWEtZ2MuaHRtbAorICAgICAgICAgICAgICAgbWVkaWEvbWVkaWEtZ2MuaHRt
bAorCisgICAgICAgIENhbGwgcmVwb3J0RXh0cmFNZW1vcnlBbGxvY2F0ZWQoKSB3aGVuZXZlciB0
aGUgKGVzdGltYXRlZCkgbnVtYmVyIG9mIGJ5dGVzIGFsbG9jYXRlZCBpbmNyZWFzZXMsCisgICAg
ICAgIGFuZCBhZG9wdCBgUmVwb3J0RXh0cmFNZW1vcnlDb3N0YCBpbiBIVE1MTWVkaWFFbGVtZW50
LmlkbCwgd2hpY2ggd2lsbCBjYWxsIHJlcG9ydEV4dHJhTWVtb3J5VmlzaXRlZCgpCisgICAgICAg
IG9uIHRoZSBtZWRpYSBlbGVtZW50J3MgYmVoYWxmIGR1cmluZyBHQy4KKworICAgICAgICBUaGUg
ZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBvZiBNZWRpYVBsYXllclByaXZhdGU6Om1lbW9yeUNvc3Qo
KSBkZXJpdmVzIHRoZSBwZXJjZW50YWdlIG9mIGxvYWRlZCBtZWRpYQorICAgICAgICBkYXRhIHRo
cm91Z2ggbG9hZGVkVGltZVJhbmdlcygpIGFuZCBkdXJhdGlvbigpLCBhbmQgZGl2aWRlcyB0b3Rh
bEJ5dGVzKCkgYnkgdGhhdCBhbW91bnQuIEhvd2V2ZXIsIGZvcgorICAgICAgICBITFMgc3RyZWFt
cywgZHVyYXRpb24oKSBhbmQgdG90YWxCeXRlcygpIG1heSBiZSBlbXB0eSBvciBvdGhlcndpc2Ug
bm9uLWZpbml0ZS4gSW4gdGhhdCBjYXNlLCB1c2UgdGhlCisgICAgICAgIEFWUGxheWVySXRlbUFj
Y2Vzc0xvZyB0byBleHRyYWN0IGluZm9ybWF0aW9uIGFib3V0IHRoZSBzdHJlYW0ncyByZXBvcnRl
ZCBiaXRyYXRlLCBhbmQgbXVsdGlwbHkgdGhhdAorICAgICAgICBiaXRyYXRlIGJ5IHRoZSBkdXJh
dGlvbiBvZiBsb2FkZWRUaW1lUmFuZ2VzKCkgYXMgYW4gZXN0aW1hdGUgb2YgdGhlIE1lZGlhUGxh
eWVyUHJpdmF0ZSdzIG1lbW9yeUNvc3QoKS4KKworICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpwYXVzZUFmdGVy
RGV0YWNoZWRUYXNrKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6Om1lbW9y
eUNvc3QgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQ
bGF5ZXJNZW1vcnlDb3N0Q2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVt
ZW50OjpjbGVhck1lZGlhUGxheWVyKToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQu
aDoKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaWRsOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyOjptZW1vcnlDb3N0Q2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6
bWVtb3J5Q29zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6ZXh0cmFNZW1vcnlD
b3N0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBs
YXllci5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJDbGllbnQ6Om1lZGlhUGxheWVy
TWVtb3J5Q29zdENoYW5nZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyUHJpdmF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJm
YWNlOjptZW1vcnlDb3N0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUlu
dGVyZmFjZTo6ZXh0cmFNZW1vcnlDb3N0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6
bWVtb3J5Q29zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb246OmxvYWRlZFRpbWVSYW5nZXNDaGFuZ2VkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmg6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnBsYXRmb3JtSW5k
aWNhdGVkQml0cmF0ZSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVBVlBsYXllckl0ZW0pOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGxhdGZvcm1JbmRpY2F0ZWRC
aXRyYXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakM6Om5ld0FjY2Vzc0xvZ0VudHJ5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmN1cnJlbnRBY2Nlc3NMb2dFdmVudCBjb25z
dCk6CisgICAgICAgICgtW1dlYkNvcmVBVkZNb3ZpZU9ic2VydmVyIG5ld0FjY2Vzc0xvZ0VudHJ5
Ol0pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZG
T2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQzo6bWVtb3J5Q29zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakM6OmV4dHJhTWVtb3J5Q29zdCBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmg6CisKIDIwMjEtMTEtMTEgIEplciBOb2JsZSAgPGpl
ci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gQWRvcHQgLVtBVkF1ZGlvU2Vzc2lv
biBzZXRBdWRpdFRva2Vuc0ZvclByb2Nlc3NBc3NlcnRpb246XQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5k
ZXggMGJhYjlhZTA4ZjNlZGE3NDlmYzkwYTEwOTY3OWQ4MjM4ZWY0MjFhNC4uM2EzMjAyZjE2NTM0
NWVhY2RkMTc3YmFmYjQ3MDhjYjM3YmE0M2Y2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
UEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTMgQEAKKzIwMjEtMTEtMTYgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisK
KyAgICAgICAgSFRNTE1lZGlhRWxlbWVudDogQWRvcHQgcmVwb3J0RXh0cmFNZW1vcnlWaXNpdGVk
L0FsbG9jYXRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjMzMTQ2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBwYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaDoKKyAgICAgICAgKiBwYWwvY29j
b2EvQVZGb3VuZGF0aW9uU29mdExpbmsubW06CisKIDIwMjEtMTEtMTUgIEplciBOb2JsZSAgPGpl
ci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gQWRvcHQgLVtBVkF1ZGlvU2Vzc2lv
biBzZXRBdWRpdFRva2Vuc0ZvclByb2Nlc3NBc3NlcnRpb246XQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA2NWEwY2Yw
MzYwMzg2YThhYzU2ZGExOTNmNDg3ZTM1Y2NiMDA4MmY2Li5iMDI0NjNiN2U0YzI5OTI5ZTk3MmNj
ZmVmNjMyMmM4NzA5OTE3YWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTExLTE2
ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEhUTUxNZWRpYUVs
ZW1lbnQ6IEFkb3B0IHJlcG9ydEV4dHJhTWVtb3J5VmlzaXRlZC9BbGxvY2F0ZWQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzE0NgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBhc3MgbWVtb3J5Q29zdCBp
bmZvcm1hdGlvbiBhY3Jvc3MgdGhlIEdQVS9XZWJDb250ZW50IHByb2Nlc3MgYm91bmRhcnkuCisK
KyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllck1lbW9y
eUNvc3RDaGFuZ2VkKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxh
eWVyUHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclBy
aXZhdGVSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6Om1lbW9yeUNvc3RDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlOjpleHRyYU1lbW9yeUNvc3QgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIFdl
YlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oOgorICAgICAgICAq
IFdlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5p
bjoKKwogMjAyMS0xMS0xMSAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CiAKICAgICAg
ICAgV0tTeXN0ZW1QcmV2aWV3VmlldyBzaG91bGQgYmUgY2FsbGVkIFdLVVNEUHJldmlld1ZpZXcK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29m
dExpbmsuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExp
bmsuaAppbmRleCA5ZGI5YWY4ZjdlYzFhZmI0ZjE4MDFlODY2ZWY0MDY3OTZmZjhjNWQzLi4wZjAw
M2UwZWNiOTkxYjhjODE3NjM3OTg3OGI5NzhlYzJmMjZhZDNlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oCkBAIC0xNDIsNiAr
MTQyLDggQEAgU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBBVkZvdW5kYXRpb24s
IEFWQ2FwdHVyZURldmljZVdhc0Rpc2Nvbm5lY3RlZE4KICNkZWZpbmUgQVZDYXB0dXJlRGV2aWNl
V2FzRGlzY29ubmVjdGVkTm90aWZpY2F0aW9uIFBBTDo6Z2V0X0FWRm91bmRhdGlvbl9BVkNhcHR1
cmVEZXZpY2VXYXNEaXNjb25uZWN0ZWROb3RpZmljYXRpb24oKQogU09GVF9MSU5LX0NPTlNUQU5U
X0ZPUl9IRUFERVIoUEFMLCBBVkZvdW5kYXRpb24sIEFWUGxheWVySXRlbURpZFBsYXlUb0VuZFRp
bWVOb3RpZmljYXRpb24sIE5TU3RyaW5nICopCiAjZGVmaW5lIEFWUGxheWVySXRlbURpZFBsYXlU
b0VuZFRpbWVOb3RpZmljYXRpb24gUEFMOjpnZXRfQVZGb3VuZGF0aW9uX0FWUGxheWVySXRlbURp
ZFBsYXlUb0VuZFRpbWVOb3RpZmljYXRpb24oKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFE
RVIoUEFMLCBBVkZvdW5kYXRpb24sIEFWUGxheWVySXRlbU5ld0FjY2Vzc0xvZ0VudHJ5Tm90aWZp
Y2F0aW9uLCBOU1N0cmluZyAqKQorI2RlZmluZSBBVlBsYXllckl0ZW1OZXdBY2Nlc3NMb2dFbnRy
eU5vdGlmaWNhdGlvbiBQQUw6OmdldF9BVkZvdW5kYXRpb25fQVZQbGF5ZXJJdGVtTmV3QWNjZXNz
TG9nRW50cnlOb3RpZmljYXRpb24oKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFM
LCBBVkZvdW5kYXRpb24sIEFWU3RyZWFtU2Vzc2lvbkNvbnRlbnRQcm90ZWN0aW9uU2Vzc2lvbklk
ZW50aWZpZXJDaGFuZ2VkTm90aWZpY2F0aW9uLCBOU1N0cmluZyAqKQogI2RlZmluZSBBVlN0cmVh
bVNlc3Npb25Db250ZW50UHJvdGVjdGlvblNlc3Npb25JZGVudGlmaWVyQ2hhbmdlZE5vdGlmaWNh
dGlvbiBQQUw6OmdldF9BVkZvdW5kYXRpb25fQVZTdHJlYW1TZXNzaW9uQ29udGVudFByb3RlY3Rp
b25TZXNzaW9uSWRlbnRpZmllckNoYW5nZWROb3RpZmljYXRpb24oKQogU09GVF9MSU5LX0NPTlNU
QU5UX0ZPUl9IRUFERVIoUEFMLCBBVkZvdW5kYXRpb24sIEFWU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyRmFpbGVkVG9EZWNvZGVOb3RpZmljYXRpb24sIE5TU3RyaW5nKikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLm1tCmluZGV4IGQy
MWQ0OWNkNzcwMjQzNDI3NjY4ZTg3MDg2MTUzNDFjZDZjNjQ1MWEuLjliMjRmY2EwZDhiZGZkMTk3
YzQwM2Q5ZjNkZTYyYzkwMzE1ZTAzM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsubW0KKysrIGIvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5tbQpAQCAtMTcxLDYgKzE3MSw3IEBAIFNP
RlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9u
LCBBVk91dE9mQmFuZEFsdGVybmF0CiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRI
X0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZPdXRPZkJhbmRBbHRlcm5hdGVUcmFja01lZGlh
Q2hhcmFjdGVyc3RpY3NLZXksIE5TU3RyaW5nICosIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfQ09O
U1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZPdXRPZkJh
bmRBbHRlcm5hdGVUcmFja1NvdXJjZUtleSwgTlNTdHJpbmcgKiwgUEFMX0VYUE9SVCkKIFNPRlRf
TElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBB
VlBsYXllckl0ZW1EaWRQbGF5VG9FbmRUaW1lTm90aWZpY2F0aW9uLCBOU1N0cmluZyAqLCBQQUxf
RVhQT1JUKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBB
VkZvdW5kYXRpb24sIEFWUGxheWVySXRlbU5ld0FjY2Vzc0xvZ0VudHJ5Tm90aWZpY2F0aW9uLCBO
U1N0cmluZyAqLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lU
SF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWUGxheWVySXRlbUxlZ2libGVPdXRwdXRUZXh0
U3R5bGluZ1Jlc29sdXRpb25Tb3VyY2VBbmRSdWxlc09ubHksIE5TU3RyaW5nICosIFBBTF9FWFBP
UlQpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIEFWRm91
bmRhdGlvbiwgQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJGYWlsZWRUb0RlY29kZU5vdGlmaWNh
dGlvbiwgTlNTdHJpbmcqLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VS
Q0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyRmFpbGVkVG9EZWNvZGVOb3RpZmljYXRpb25FcnJvcktleSwgTlNTdHJpbmcqLCBQQUxfRVhQ
T1JUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggMzIzZmM0
ODEyZTM4N2Y2YzU5M2Y0NmMyY2M0ZmIwZTA2MmQ5N2QwZi4uNDE0Y2I5ZDcyY2Y4MWNmZWVmZmJh
NGQyMzAzOWMzMmY4ZTY5ZDU2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwCkBAIC04NTQsMTggKzg1NCwyNSBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnBhdXNl
QWZ0ZXJEZXRhY2hlZFRhc2soKQogCiAgICAgaWYgKCFtX3BsYXllcikKICAgICAgICAgcmV0dXJu
OworfQogCi0gICAgc2l6ZV90IGV4dHJhTWVtb3J5Q29zdCA9IG1fcGxheWVyLT5leHRyYU1lbW9y
eUNvc3QoKTsKLSAgICBpZiAoZXh0cmFNZW1vcnlDb3N0ID4gbV9yZXBvcnRlZEV4dHJhTWVtb3J5
Q29zdCkgewotICAgICAgICBKU0M6OlZNJiB2bSA9IGNvbW1vblZNKCk7Ci0gICAgICAgIEpTQzo6
SlNMb2NrSG9sZGVyIGxvY2sodm0pOworc2l6ZV90IEhUTUxNZWRpYUVsZW1lbnQ6Om1lbW9yeUNv
c3QoKSBjb25zdAoreworICAgIHJldHVybiBtX3JlcG9ydGVkRXh0cmFNZW1vcnlDb3N0OworfQog
Ci0gICAgICAgIHNpemVfdCBleHRyYU1lbW9yeUNvc3REZWx0YSA9IGV4dHJhTWVtb3J5Q29zdCAt
IG1fcmVwb3J0ZWRFeHRyYU1lbW9yeUNvc3Q7Ci0gICAgICAgIG1fcmVwb3J0ZWRFeHRyYU1lbW9y
eUNvc3QgPSBleHRyYU1lbW9yeUNvc3Q7Ci0gICAgICAgIC8vIEZJWE1FOiBBZG9wdCByZXBvcnRF
eHRyYU1lbW9yeVZpc2l0ZWQsIGFuZCBzd2l0Y2ggdG8gcmVwb3J0RXh0cmFNZW1vcnlBbGxvY2F0
ZWQuCi0gICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NDI1OTUKLSAgICAgICAgdm0uaGVhcC5kZXByZWNhdGVkUmVwb3J0RXh0cmFNZW1vcnkoZXh0cmFN
ZW1vcnlDb3N0RGVsdGEpOwotICAgIH0KK3ZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5
ZXJNZW1vcnlDb3N0Q2hhbmdlZChzaXplX3QgbmV3TWVtb3J5Q29zdCkKK3sKKyAgICBpZiAobmV3
TWVtb3J5Q29zdCA9PSBtX3JlcG9ydGVkRXh0cmFNZW1vcnlDb3N0KQorICAgICAgICByZXR1cm47
CisKKyAgICBhdXRvIG9sZE1lbW9yeUNvc3QgPSBtX3JlcG9ydGVkRXh0cmFNZW1vcnlDb3N0LmV4
Y2hhbmdlKG5ld01lbW9yeUNvc3QpOworICAgIGlmIChuZXdNZW1vcnlDb3N0IDwgb2xkTWVtb3J5
Q29zdCkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byYgdm0gPSBzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCktPnZtKCk7CisgICAgSlNDOjpKU0xvY2tIb2xkZXIgbG9jayh2bSk7CisgICAgdm0u
aGVhcC5yZXBvcnRFeHRyYU1lbW9yeUFsbG9jYXRlZChuZXdNZW1vcnlDb3N0IC0gb2xkTWVtb3J5
Q29zdCk7CiB9CiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cmVtb3ZlZEZyb21BbmNlc3RvcihS
ZW1vdmFsVHlwZSByZW1vdmFsVHlwZSwgQ29udGFpbmVyTm9kZSYgb2xkUGFyZW50T2ZSZW1vdmVk
VHJlZSkKQEAgLTU4NTMsNiArNTg2MCw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6Y2xlYXJN
ZWRpYVBsYXllcigpCiAgICAgICAgIG1fcGxheWVyLT5pbnZhbGlkYXRlKCk7CiAgICAgICAgIG1f
cGxheWVyID0gbnVsbHB0cjsKICAgICAgICAgbV9jYWNoZWRTdXBwb3J0c0FjY2VsZXJhdGVkUmVu
ZGVyaW5nID0gZmFsc2U7CisgICAgICAgIG1lZGlhUGxheWVyTWVtb3J5Q29zdENoYW5nZWQoMCk7
CiAgICAgfQogICAgIHNjaGVkdWxlUGxheWJhY2tDb250cm9sc01hbmFnZXJVcGRhdGUoKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAppbmRleCAyZWNiZjVkYmFhZGVkNDJl
Nzc5MDQ0MDVhYzAxMzFlMzhmYzI5YmU3Li45Yzc0YTU5N2M1NzMwNmJhOWMwZTBiNzYyZTViZGUz
ZWZjMTkzNGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtNjA1
LDYgKzYwNSw4IEBAIHB1YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgbWVkaWFQbGF5
ZXJSZW5kZXJpbmdDYW5CZUFjY2VsZXJhdGVkKCkgZmluYWw7CiAKKyAgICBzaXplX3QgbWVtb3J5
Q29zdCgpIGNvbnN0OworCiBwcm90ZWN0ZWQ6CiAgICAgSFRNTE1lZGlhRWxlbWVudChjb25zdCBR
dWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBib29sIGNyZWF0ZWRCeVBhcnNlcik7CiAgICAgdmly
dHVhbCB+SFRNTE1lZGlhRWxlbWVudCgpOwpAQCAtNzcwLDYgKzc3Miw3IEBAIHByaXZhdGU6CiAg
ICAgYm9vbCBtZWRpYVBsYXllclNob3VsZENoZWNrSGFyZHdhcmVTdXBwb3J0KCkgY29uc3QgZmlu
YWw7CiAgICAgY29uc3QgVmVjdG9yPENvbnRlbnRUeXBlPiYgbWVkaWFDb250ZW50VHlwZXNSZXF1
aXJpbmdIYXJkd2FyZVN1cHBvcnQoKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIG1lZGlhUGxheWVy
QnVmZmVyZWRUaW1lUmFuZ2VzQ2hhbmdlZCgpIGZpbmFsOworICAgIHZvaWQgbWVkaWFQbGF5ZXJN
ZW1vcnlDb3N0Q2hhbmdlZChzaXplX3QgdG90YWxNZW1vcnlDb3N0KSBmaW5hbDsKIAogI2lmIFVT
RShHU1RSRUFNRVIpCiAgICAgdm9pZCByZXF1ZXN0SW5zdGFsbE1pc3NpbmdQbHVnaW5zKGNvbnN0
IFN0cmluZyYgZGV0YWlscywgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgTWVkaWFQbGF5ZXJS
ZXF1ZXN0SW5zdGFsbE1pc3NpbmdQbHVnaW5zQ2FsbGJhY2smKSBmaW5hbDsKQEAgLTExOTgsNyAr
MTIwMSw3IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYUVs
ZW1lbnRTZXNzaW9uPiBtX21lZGlhU2Vzc2lvbjsKLSAgICBzaXplX3QgbV9yZXBvcnRlZEV4dHJh
TWVtb3J5Q29zdCB7IDAgfTsKKyAgICBzdGQ6OmF0b21pYzxzaXplX3Q+IG1fcmVwb3J0ZWRFeHRy
YU1lbW9yeUNvc3QgeyAwIH07CiAKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBSZWZQ
dHI8TG9nZ2VyPiBtX2xvZ2dlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
aWRsCmluZGV4IGY0MGNlZGYyMjkzMDYwNTA3MWY2NzY1ZTNkZDA4Yjg0YmJkM2U4OGMuLjM5ODE4
YWI1NWQ2MDZlOTAxMjYxMzYwNTgxOTkzMmI5ZDBkNmY5ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmlkbApAQCAtMzcsNiArMzcsNyBAQCB0eXBlZGVmICgKICAgICBD
b25kaXRpb25hbD1WSURFTywKICAgICBFeHBvcnRNYWNybz1XRUJDT1JFX0VYUE9SVCwKICAgICBK
U0dlbmVyYXRlVG9OYXRpdmVPYmplY3QsCisgICAgUmVwb3J0RXh0cmFNZW1vcnlDb3N0LAogICAg
IEV4cG9zZWQ9V2luZG93CiBdIGludGVyZmFjZSBIVE1MTWVkaWFFbGVtZW50IDogSFRNTEVsZW1l
bnQgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRp
YVBsYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
ci5jcHAKaW5kZXggYTQzNmE1NThhNzk5YTY2NmE2ZWY2YTRmNWYzODA5NTRkMTcwNjU5Ni4uNWRk
ODhhOTZmMDc2Nzg5OTk1YzA3NDI3M2EwNjI4NGM3YTZjNjEwOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcApAQCAtOTk3LDYgKzk5Nyw5
IEBAIGRvdWJsZSBNZWRpYVBsYXllcjo6c2Vla2FibGVUaW1lUmFuZ2VzTGFzdE1vZGlmaWVkVGlt
ZSgpCiB2b2lkIE1lZGlhUGxheWVyOjpidWZmZXJlZFRpbWVSYW5nZXNDaGFuZ2VkKCkKIHsKICAg
ICBjbGllbnQoKS5tZWRpYVBsYXllckJ1ZmZlcmVkVGltZVJhbmdlc0NoYW5nZWQoKTsKKworICAg
IGlmIChtX3ByaXZhdGUgJiYgIW1fcHJpdmF0ZS0+c3VwcG9ydHNNZW1vcnlDb3N0Q2hhbmdlZCgp
KQorICAgICAgICBjbGllbnQoKS5tZWRpYVBsYXllck1lbW9yeUNvc3RDaGFuZ2VkKG1lbW9yeUNv
c3QoKSk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXI6OnNlZWthYmxlVGltZVJhbmdlc0NoYW5nZWQo
KQpAQCAtMTM2Myw2ICsxMzY2LDkgQEAgdm9pZCBNZWRpYVBsYXllcjo6cmVwYWludCgpCiB2b2lk
IE1lZGlhUGxheWVyOjpkdXJhdGlvbkNoYW5nZWQoKQogewogICAgIGNsaWVudCgpLm1lZGlhUGxh
eWVyRHVyYXRpb25DaGFuZ2VkKCk7CisKKyAgICBpZiAobV9wcml2YXRlICYmICFtX3ByaXZhdGUt
PnN1cHBvcnRzTWVtb3J5Q29zdENoYW5nZWQoKSkKKyAgICAgICAgY2xpZW50KCkubWVkaWFQbGF5
ZXJNZW1vcnlDb3N0Q2hhbmdlZChtZW1vcnlDb3N0KCkpOwogfQogCiB2b2lkIE1lZGlhUGxheWVy
OjpyYXRlQ2hhbmdlZCgpCkBAIC0xNTc5LDEyICsxNTg1LDE3IEBAIFN0cmluZyBNZWRpYVBsYXll
cjo6bGFuZ3VhZ2VPZlByaW1hcnlBdWRpb1RyYWNrKCkgY29uc3QKICAgICByZXR1cm4gbV9wcml2
YXRlLT5sYW5ndWFnZU9mUHJpbWFyeUF1ZGlvVHJhY2soKTsKIH0KIAotc2l6ZV90IE1lZGlhUGxh
eWVyOjpleHRyYU1lbW9yeUNvc3QoKSBjb25zdAordm9pZCBNZWRpYVBsYXllcjo6bWVtb3J5Q29z
dENoYW5nZWQoc2l6ZV90IHRvdGFsTWVtb3J5Q29zdCkKK3sKKyAgICBjbGllbnQoKS5tZWRpYVBs
YXllck1lbW9yeUNvc3RDaGFuZ2VkKHRvdGFsTWVtb3J5Q29zdCk7Cit9CisKK3NpemVfdCBNZWRp
YVBsYXllcjo6bWVtb3J5Q29zdCgpCiB7CiAgICAgaWYgKCFtX3ByaXZhdGUpCiAgICAgICAgIHJl
dHVybiAwOwogCi0gICAgcmV0dXJuIG1fcHJpdmF0ZS0+ZXh0cmFNZW1vcnlDb3N0KCk7CisgICAg
cmV0dXJuIG1fcHJpdmF0ZS0+bWVtb3J5Q29zdCgpOwogfQogCiB1bnNpZ25lZCBsb25nIGxvbmcg
TWVkaWFQbGF5ZXI6OmZpbGVTaXplKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllci5oCmluZGV4IDViMWUxNzQ1MTNlMDZmYTAxZDUxOTBiNTVl
NTA1MzU1NWVmZDc2MzcuLmM1NmU0NmMzYTg4ODExYmVlMzI1ZDYzOTMwMjk3MmI3NTdlNTJkZjgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaApA
QCAtMjg2LDYgKzI4Niw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBtZWRpYVBsYXll
clF1ZXVlVGFza09uRXZlbnRMb29wKEZ1bmN0aW9uPHZvaWQoKT4mJiB0YXNrKSB7IGNhbGxPbk1h
aW5UaHJlYWQoV1RGTW92ZSh0YXNrKSk7IH0KIAorICAgIHZpcnR1YWwgdm9pZCBtZWRpYVBsYXll
ck1lbW9yeUNvc3RDaGFuZ2VkKHNpemVfdCkgeyB9CisKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJM
RUQKICAgICB2aXJ0dWFsIGNvbnN0IHZvaWQqIG1lZGlhUGxheWVyTG9nSWRlbnRpZmllcigpIHsg
cmV0dXJuIG51bGxwdHI7IH0KICAgICB2aXJ0dWFsIGNvbnN0IExvZ2dlciYgbWVkaWFQbGF5ZXJM
b2dnZXIoKSA9IDA7CkBAIC02MTAsNyArNjEyLDggQEAgcHVibGljOgogCiAgICAgU3RyaW5nIGxh
bmd1YWdlT2ZQcmltYXJ5QXVkaW9UcmFjaygpIGNvbnN0OwogCi0gICAgc2l6ZV90IGV4dHJhTWVt
b3J5Q29zdCgpIGNvbnN0OworICAgIHZvaWQgbWVtb3J5Q29zdENoYW5nZWQoc2l6ZV90KTsKKyAg
ICBzaXplX3QgbWVtb3J5Q29zdCgpOwogCiAgICAgdW5zaWduZWQgbG9uZyBsb25nIGZpbGVTaXpl
KCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L01lZGlhUGxheWVyUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXJQcml2YXRlLmgKaW5kZXggZjVhNDBhYmM4YTc5YTZjZTA2NGI3MDJjZGQwYzlh
OWFhNjYzZGQzOS4uM2Y5MTljYTRhNDUyMDY3YTE3OTRlMDU3MzcyZjliYmRiZTFjNmNhNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2
YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQ
cml2YXRlLmgKQEAgLTI3Niw3ICsyNzYsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIFN0cmlu
ZyBsYW5ndWFnZU9mUHJpbWFyeUF1ZGlvVHJhY2soKSBjb25zdCB7IHJldHVybiBlbXB0eVN0cmlu
ZygpOyB9CiAKLSAgICB2aXJ0dWFsIHNpemVfdCBleHRyYU1lbW9yeUNvc3QoKSBjb25zdAorICAg
IHZpcnR1YWwgYm9vbCBzdXBwb3J0c01lbW9yeUNvc3RDaGFuZ2VkKCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHNpemVfdCBtZW1vcnlDb3N0KCkKICAgICB7CiAgICAgICAg
IE1lZGlhVGltZSBkdXJhdGlvbiA9IHRoaXMtPmR1cmF0aW9uTWVkaWFUaW1lKCk7CiAgICAgICAg
IGlmICghZHVyYXRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb24uY3BwCmluZGV4IGM5OThkOWY2NDcwZTgwZjhkNGNkZDVlMTI2NmYw
NWIxMmJkNjEwOWUuLjE5YWEyNTc5ZjgzNzNjOGFhOThjZDY5YmVjN2QyNzNjYTJiOTI0ODQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b24uY3BwCkBAIC02MjksMTEgKzYyOSwyOCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbjo6cmF0ZUNoYW5nZWQoKQogICAgIG1fcGxheWVyLT5yYXRlQ2hhbmdlZCgpOwogfQog
CitzaXplX3QgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjptZW1vcnlDb3N0KCkKK3sK
KyAgICAvLyBUaGUgZGVmYXVsdCBNZWRpYVBsYXllclByaXZhdGUgaW1wbGVtZW50YXRpb24gZGVw
ZW5kcyB1cG9uIHRvdGFsQnl0ZXMoKSBhbmQgZHVyYXRpb24oKSwKKyAgICAvLyB3aGljaCBtYXkg
bm90IGJlIGF2YWlsYWJsZSBmb3IgSExTIHN0cmVhbXMuIEluIHRoYXQgY2FzZSwgcHJvdmlkZSBh
IGN1c3RvbSBpbXBsZW1lbnRhdGlvbgorICAgIC8vIHdoaWNoIHVzZXMgdGhlIG9ic2VydmVkQml0
cmF0ZSB0byBjYWxjdWxhdGUgbWVtb3J5Q29zdC4KKyAgICBpZiAodG90YWxCeXRlcygpICYmIG1f
Y2FjaGVkRHVyYXRpb24pCisgICAgICAgIHJldHVybiBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZh
Y2U6Om1lbW9yeUNvc3QoKTsKKworICAgIGlmIChtX2NhY2hlZExvYWRlZFRpbWVSYW5nZXMpCisg
ICAgICAgIHJldHVybiBwbGF0Zm9ybUluZGljYXRlZEJpdHJhdGUoKSAqIG1fY2FjaGVkTG9hZGVk
VGltZVJhbmdlcy0+dG90YWxEdXJhdGlvbigpLnRvRG91YmxlKCkgLyA4OworCisgICAgcmV0dXJu
IDA7Cit9CisKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpsb2FkZWRUaW1l
UmFuZ2VzQ2hhbmdlZCgpCiB7Ci0gICAgbV9jYWNoZWRMb2FkZWRUaW1lUmFuZ2VzID0gbnVsbHB0
cjsKLSAgICBtX2NhY2hlZE1heFRpbWVMb2FkZWQgPSBNZWRpYVRpbWU6Onplcm9UaW1lKCk7Cisg
ICAgYXV0byBvbGRMb2FkZWRUaW1lUmFuZ2VzID0gc3RkOjpleGNoYW5nZShtX2NhY2hlZExvYWRl
ZFRpbWVSYW5nZXMsIHBsYXRmb3JtQnVmZmVyZWRUaW1lUmFuZ2VzKCkpOworICAgIG1fY2FjaGVk
TWF4VGltZUxvYWRlZCA9IG1fY2FjaGVkTG9hZGVkVGltZVJhbmdlcyA/IG1fY2FjaGVkTG9hZGVk
VGltZVJhbmdlcy0+bWF4aW11bUJ1ZmZlcmVkVGltZSgpIDogTWVkaWFUaW1lOjp6ZXJvVGltZSgp
OworCiAgICAgaW52YWxpZGF0ZUNhY2hlZER1cmF0aW9uKCk7CisKKyAgICBtX3BsYXllci0+bWVt
b3J5Q29zdENoYW5nZWQobWVtb3J5Q29zdCgpKTsKICAgICBtX3BsYXllci0+YnVmZmVyZWRUaW1l
UmFuZ2VzQ2hhbmdlZCgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKaW5kZXggNjI2N2I4MzMyMTI5OWIxM2VhN2VkMmE0MDVl
NGNiYjg1ZTQ0ODgzYi4uYThkMjMxMDgyMzAzZTNlYTVjNmY3NGQ5ZmNiYzgxN2ZkMmM4NDZlYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b24uaApAQCAtMjE0LDYgKzIxNCw4IEBAIHByb3RlY3RlZDoKICAgICBib29sIHN1cHBvcnRzRnVs
bHNjcmVlbigpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgc3VwcG9ydHNTY2FubmluZygpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KICAgICB1bnNpZ25lZCBsb25nIGxvbmcgZmls
ZVNpemUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0b3RhbEJ5dGVzKCk7IH0KKyAgICBib29s
IHN1cHBvcnRzTWVtb3J5Q29zdENoYW5nZWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVl
OyB9CisgICAgc2l6ZV90IG1lbW9yeUNvc3QoKSBvdmVycmlkZTsKIAogICAgIGJvb2wgaGFzU2lu
Z2xlU2VjdXJpdHlPcmlnaW4oKSBjb25zdCBvdmVycmlkZTsKIApAQCAtMjU2LDYgKzI1OCw3IEBA
IHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIE1lZGlhVGltZSBwbGF0Zm9ybU1pblRpbWVTZWVrYWJs
ZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIE1lZGlhVGltZSBwbGF0Zm9ybU1heFRpbWVMb2Fk
ZWQoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBNZWRpYVRpbWUgcGxhdGZvcm1EdXJhdGlvbigp
IGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGRvdWJsZSBwbGF0Zm9ybUluZGljYXRlZEJpdHJhdGUo
KSBjb25zdCB7IHJldHVybiAwOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgYmVnaW5Mb2FkaW5nTWV0
YWRhdGEoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNpemVDaGFuZ2VkKCkgPSAwOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQy5oCmluZGV4IDU5ZWNhNDUxMzRmZTZmNDA1OTkwMmUyMWNlN2U3ZTVhZGU4MGJm
YTIuLmNhYTUxNWQ5Y2NkNDBkZTI2Mzc1YzQzODlmNzM1NDhhM2QxZmNkYjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDLmgKQEAgLTM3LDYgKzM3LDcgQEAgT0JKQ19DTEFTUyBBVkFzc2V0UmVzb3VyY2VM
b2FkaW5nUmVxdWVzdDsKIE9CSkNfQ0xBU1MgQVZNZWRpYVNlbGVjdGlvbkdyb3VwOwogT0JKQ19D
TEFTUyBBVk91dHB1dENvbnRleHQ7CiBPQkpDX0NMQVNTIEFWUGxheWVySXRlbTsKK09CSkNfQ0xB
U1MgQVZQbGF5ZXJJdGVtQWNjZXNzTG9nRXZlbnQ7CiBPQkpDX0NMQVNTIEFWUGxheWVySXRlbUxl
Z2libGVPdXRwdXQ7CiBPQkpDX0NMQVNTIEFWUGxheWVySXRlbU1ldGFkYXRhQ29sbGVjdG9yOwog
T0JKQ19DTEFTUyBBVlBsYXllckl0ZW1NZXRhZGF0YU91dHB1dDsKQEAgLTEyNCw2ICsxMjUsOSBA
QCBwdWJsaWM6CiAgICAgdm9pZCBvdXRwdXRNZWRpYURhdGFXaWxsQ2hhbmdlKCk7CiAgICAgdm9p
ZCBwcm9jZXNzQ2hhcHRlclRyYWNrcygpOwogCisgICAgdm9pZCBuZXdBY2Nlc3NMb2dFbnRyeSgp
OworICAgIEFWUGxheWVySXRlbUFjY2Vzc0xvZ0V2ZW50ICpjdXJyZW50QWNjZXNzTG9nRXZlbnQo
KSBjb25zdDsKKwogcHJpdmF0ZToKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQogICAgIHZv
aWQgY2RtSW5zdGFuY2VBdHRhY2hlZChDRE1JbnN0YW5jZSYpIGZpbmFsOwpAQCAtMjEzLDYgKzIx
Nyw3IEBAIHByaXZhdGU6CiAgICAgTWVkaWFUaW1lIHBsYXRmb3JtTWF4VGltZVNlZWthYmxlKCkg
Y29uc3QgZmluYWw7CiAgICAgTWVkaWFUaW1lIHBsYXRmb3JtRHVyYXRpb24oKSBjb25zdCBmaW5h
bDsKICAgICBNZWRpYVRpbWUgcGxhdGZvcm1NYXhUaW1lTG9hZGVkKCkgY29uc3QgZmluYWw7Cisg
ICAgZG91YmxlIHBsYXRmb3JtSW5kaWNhdGVkQml0cmF0ZSgpIGNvbnN0IGZpbmFsOwogICAgIHZv
aWQgYmVnaW5Mb2FkaW5nTWV0YWRhdGEoKSBmaW5hbDsKICAgICB2b2lkIHNpemVDaGFuZ2VkKCkg
ZmluYWw7CiAgICAgdm9pZCByZXNvbHZlZFVSTENoYW5nZWQoKSBmaW5hbDsKQEAgLTM0Niw2ICsz
NTEsNyBAQCBwcml2YXRlOgogICAgIFJldGFpblB0cjxBVlBsYXllcj4gbV9hdlBsYXllcjsKICAg
ICBSZXRhaW5QdHI8QVZQbGF5ZXJJdGVtPiBtX2F2UGxheWVySXRlbTsKICAgICBSZXRhaW5QdHI8
QVZQbGF5ZXJMYXllcj4gbV92aWRlb0xheWVyOworICAgIG11dGFibGUgUmV0YWluUHRyPEFWUGxh
eWVySXRlbUFjY2Vzc0xvZ0V2ZW50PiBtX2N1cnJlbnRBY2Nlc3NMb2dFdmVudDsKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8VmlkZW9MYXllck1hbmFnZXJPYmpDPiBtX3ZpZGVvTGF5ZXJNYW5hZ2VyOwog
ICAgIE1lZGlhUGxheWVyOjpWaWRlb0dyYXZpdHkgbV92aWRlb0Z1bGxzY3JlZW5HcmF2aXR5IHsg
TWVkaWFQbGF5ZXI6OlZpZGVvR3Jhdml0eTo6UmVzaXplQXNwZWN0IH07CiAgICAgUmV0YWluUHRy
PFdlYkNvcmVBVkZNb3ZpZU9ic2VydmVyPiBtX29iamNPYnNlcnZlcjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDLm1tCmluZGV4IDRkODYxMTNiY2JlNDY5ZWM2ZTAyNTc5MTAyZDExMGVhOTMwMTAwOTYuLmU2
MTgzMTZlMWQyNjNmZjE0ZWYwODFhZmNkOWIwNjIwNGEwYWQyMzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQy5tbQpAQCAtMTk0LDYgKzE5NCw3IEBAIC0gKHZvaWQpbGVnaWJsZU91dHB1dDooaWQpb3V0
cHV0IGRpZE91dHB1dEF0dHJpYnV0ZWRTdHJpbmdzOihOU0FycmF5ICopc3RyaW5ncyBuCiAtICh2
b2lkKW91dHB1dFNlcXVlbmNlV2FzRmx1c2hlZDooaWQpb3V0cHV0OwogLSAodm9pZCltZXRhZGF0
YUNvbGxlY3RvcjooQVZQbGF5ZXJJdGVtTWV0YWRhdGFDb2xsZWN0b3IgKiltZXRhZGF0YUNvbGxl
Y3RvciBkaWRDb2xsZWN0RGF0ZVJhbmdlTWV0YWRhdGFHcm91cHM6KE5TQXJyYXk8QVZEYXRlUmFu
Z2VNZXRhZGF0YUdyb3VwICo+ICopbWV0YWRhdGFHcm91cHMgaW5kZXhlc09mTmV3R3JvdXBzOihO
U0luZGV4U2V0ICopaW5kZXhlc09mTmV3R3JvdXBzIGluZGV4ZXNPZk1vZGlmaWVkR3JvdXBzOihO
U0luZGV4U2V0ICopaW5kZXhlc09mTW9kaWZpZWRHcm91cHM7CiAtICh2b2lkKW1ldGFkYXRhT3V0
cHV0OihBVlBsYXllckl0ZW1NZXRhZGF0YU91dHB1dCAqKW91dHB1dCBkaWRPdXRwdXRUaW1lZE1l
dGFkYXRhR3JvdXBzOihOU0FycmF5PEFWVGltZWRNZXRhZGF0YUdyb3VwICo+ICopZ3JvdXBzIGZy
b21QbGF5ZXJJdGVtVHJhY2s6KEFWUGxheWVySXRlbVRyYWNrICopdHJhY2s7CistICh2b2lkKW5l
d0FjY2Vzc0xvZ0VudHJ5OihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbjsKIEBlbmQKIAog
QGludGVyZmFjZSBXZWJDb3JlQVZGTG9hZGVyRGVsZWdhdGUgOiBOU09iamVjdDxBVkFzc2V0UmVz
b3VyY2VMb2FkZXJEZWxlZ2F0ZT4gewpAQCAtMTE4Miw2ICsxMTgzLDggQEAgQUxMT1dfTkVXX0FQ
SV9XSVRIT1VUX0dVQVJEU19FTkQKICAgICBbbV9tZXRhZGF0YU91dHB1dCBzZXRBZHZhbmNlSW50
ZXJ2YWxGb3JEZWxlZ2F0ZUludm9jYXRpb246YXZQbGF5ZXJPdXRwdXRBZHZhbmNlSW50ZXJ2YWxd
OwogICAgIFttX2F2UGxheWVySXRlbSBhZGRPdXRwdXQ6bV9tZXRhZGF0YU91dHB1dC5nZXQoKV07
CiAKKyAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVy
Om1fb2JqY09ic2VydmVyLmdldCgpIHNlbGVjdG9yOkBzZWxlY3RvcihuZXdBY2Nlc3NMb2dFbnRy
eTopIG5hbWU6QVZQbGF5ZXJJdGVtTmV3QWNjZXNzTG9nRW50cnlOb3RpZmljYXRpb24gb2JqZWN0
Om1fYXZQbGF5ZXJJdGVtLmdldCgpXTsKKwogICAgIHNldERlbGF5Q2FsbGJhY2tzKGZhbHNlKTsK
IH0KIApAQCAtMTczNyw2ICsxNzQwLDEzIEBAIE1lZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDOjpwbGF0Zm9ybU1heFRpbWVMb2FkZWQoKSBjb25zdAogICAgIHJldHVy
biBtYXhUaW1lTG9hZGVkOyAgIAogfQogCitkb3VibGUgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQzo6cGxhdGZvcm1JbmRpY2F0ZWRCaXRyYXRlKCkgY29uc3QKK3sKKyAgICBpZiAo
YXV0byBpbmRpY2F0ZWRBdmVyYWdlQml0cmF0ZSA9IGN1cnJlbnRBY2Nlc3NMb2dFdmVudCgpLmlu
ZGljYXRlZEF2ZXJhZ2VCaXRyYXRlID4gMCkKKyAgICAgICAgcmV0dXJuIGluZGljYXRlZEF2ZXJh
Z2VCaXRyYXRlOworICAgIHJldHVybiBjdXJyZW50QWNjZXNzTG9nRXZlbnQoKS5pbmRpY2F0ZWRC
aXRyYXRlOworfQorCiB1bnNpZ25lZCBsb25nIGxvbmcgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQzo6dG90YWxCeXRlcygpIGNvbnN0CiB7CiAgICAgaWYgKCFtZXRhRGF0YUF2YWls
YWJsZSgpKQpAQCAtMzY2Myw2ICszNjczLDIyIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQzo6YXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCkKICNlbmRpZgogfQogCit2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Om5ld0FjY2Vzc0xvZ0VudHJ5
KCkKK3sKKyAgICBtX2N1cnJlbnRBY2Nlc3NMb2dFdmVudCA9IG5pbDsKK30KKworQVZQbGF5ZXJJ
dGVtQWNjZXNzTG9nRXZlbnQgKk1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmN1
cnJlbnRBY2Nlc3NMb2dFdmVudCgpIGNvbnN0Cit7CisgICAgaWYgKCFtX2F2UGxheWVySXRlbSkK
KyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIGlmICghbV9jdXJyZW50QWNjZXNzTG9nRXZlbnQp
CisgICAgICAgIG1fY3VycmVudEFjY2Vzc0xvZ0V2ZW50ID0gW21fYXZQbGF5ZXJJdGVtIGFjY2Vz
c0xvZ10uZXZlbnRzLmxhc3RPYmplY3Q7CisKKyAgICByZXR1cm4gbV9jdXJyZW50QWNjZXNzTG9n
RXZlbnQuZ2V0KCk7Cit9CisKIE5TQXJyYXkqIGFzc2V0TWV0YWRhdGFLZXlOYW1lcygpCiB7CiAg
ICAgc3RhdGljIE5TQXJyYXkqIGtleXMgPSBbW05TQXJyYXkgYWxsb2NdIGluaXRXaXRoT2JqZWN0
czoKQEAgLTM5NTEsNiArMzk3NywxNyBAQCAtICh2b2lkKW1ldGFkYXRhQ29sbGVjdG9yOihBVlBs
YXllckl0ZW1NZXRhZGF0YUNvbGxlY3RvciAqKW1ldGFkYXRhQ29sbGVjdG9yIGRpZAogICAgICAg
ICBwbGF5ZXItPm1ldGFkYXRhR3JvdXBEaWRBcnJpdmUobWV0YWRhdGFHcm91cHMsIGN1cnJlbnRU
aW1lKTsKICAgICB9KTsKIH0KKworLSAodm9pZCluZXdBY2Nlc3NMb2dFbnRyeTooTlNOb3RpZmlj
YXRpb24gKilub3RpZmljYXRpb24KK3sKKyAgICBVTlVTRURfUEFSQU0obm90aWZpY2F0aW9uKTsK
KyAgICBpZiAoIW1fcGxheWVyKQorICAgICAgICByZXR1cm47CisgICAgbV9wbGF5ZXItPnF1ZXVl
VGFza09uRXZlbnRMb29wKFtwbGF5ZXIgPSBtX3BsYXllcl0geworICAgICAgICBpZiAocGxheWVy
KQorICAgICAgICAgICAgcGxheWVyLT5uZXdBY2Nlc3NMb2dFbnRyeSgpOworICAgIH0pOworfQog
QGVuZAogCiBAaW1wbGVtZW50YXRpb24gV2ViQ29yZUFWRkxvYWRlckRlbGVnYXRlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U291cmNlQVZGT2JqQy5oCmluZGV4IGQ3MGM1MmY0YmMxYzQwMDgyYjdhMDI0MDJmZTdlOGMyZTI0
MTBjNWUuLjFhNjNiMjZmYzU2MjdiZDA0OTgyNmYzMGY0NjA1ZWFlM2YxYjRiMWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQy5oCkBAIC0yNDMsNyArMjQzLDcgQEAgcHJpdmF0ZToKIAogICAgIFN0
cmluZyBsYW5ndWFnZU9mUHJpbWFyeUF1ZGlvVHJhY2soKSBjb25zdCBvdmVycmlkZTsKIAotICAg
IHNpemVfdCBleHRyYU1lbW9yeUNvc3QoKSBjb25zdCBvdmVycmlkZTsKKyAgICBzaXplX3QgbWVt
b3J5Q29zdCgpIG92ZXJyaWRlOwogCiAgICAgc3RkOjpvcHRpb25hbDxWaWRlb1BsYXliYWNrUXVh
bGl0eU1ldHJpY3M+IHZpZGVvUGxheWJhY2tRdWFsaXR5TWV0cmljcygpIG92ZXJyaWRlOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakMubW0KaW5kZXggZWUwMTQzNTZmMDVmOTRkNDEyMmRlYTE1YjI2
MmMyNTc4YmFmYjRlNi4uYzkxOGVlNTMwN2Q1MDk2MGIzNmRmMjkzMDE4YTAwMTNlNTM3NzRjMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQpAQCAtNzg1LDcgKzc4NSw3IEBAIFN0cmluZyBN
ZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6Omxhbmd1YWdlT2ZQcmltYXJ5QXVk
aW9UcmFjaygpIGNvbnN0CiAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiB9CiAKLXNpemVfdCBN
ZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmV4dHJhTWVtb3J5Q29zdCgpIGNv
bnN0CitzaXplX3QgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjptZW1vcnlD
b3N0KCkKIHsKICAgICByZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmgKaW5kZXgg
YWZlZWM3NzU5OGE1ZTFmNzQxNWNmNTJjYzNmNmMxOWU2ODViMGIzMi4uZjliYmYzNTI4Zjc3ZDk5
YTQyYTA2YTRkZWYzNGIzNmY2N2YyZGJmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
dHJlYW1BVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmgKQEAg
LTE1NCw3ICsxNTQsNyBAQCBwcml2YXRlOgogCiAgICAgU3RyaW5nIGVuZ2luZURlc2NyaXB0aW9u
KCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICBzaXplX3QgZXh0cmFNZW1vcnlDb3N0KCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gMDsgfQorICAgIHNpemVfdCBtZW1vcnlDb3N0KCkgb3ZlcnJpZGUg
eyByZXR1cm4gMDsgfQogCiAgICAgYm9vbCBlbmRlZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IG1fZW5kZWQ7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwCmluZGV4IDU2NWI4YjI5M2FlY2RmNWU1MWZl
NWUxMDE2YzViN2E3ZTczM2Q4YTkuLjEyOWNlNDhlOTMxYzZjYmE0MGI2MDQ4YmE4YmZmMWI2NDBl
YTYzYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVN
ZWRpYVBsYXllclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKQEAgLTEyMiw2ICsxMjIsNyBAQCB2b2lkIFJlbW90
ZU1lZGlhUGxheWVyUHJveHk6OmdldENvbmZpZ3VyYXRpb24oUmVtb3RlTWVkaWFQbGF5ZXJDb25m
aWd1cmF0aW9uJiBjbwogICAgIGNvbmZpZ3VyYXRpb24uc3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRl
cmluZyA9IG1fcGxheWVyLT5zdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCk7CiAgICAgY29u
ZmlndXJhdGlvbi5zdXBwb3J0c1BsYXlBdEhvc3RUaW1lID0gbV9wbGF5ZXItPnN1cHBvcnRzUGxh
eUF0SG9zdFRpbWUoKTsKICAgICBjb25maWd1cmF0aW9uLnN1cHBvcnRzUGF1c2VBdEhvc3RUaW1l
ID0gbV9wbGF5ZXItPnN1cHBvcnRzUGF1c2VBdEhvc3RUaW1lKCk7CisgICAgY29uZmlndXJhdGlv
bi5zdXBwb3J0c01lbW9yeUNvc3RDaGFuZ2VkID0gbV9wbGF5ZXItPnN1cHBvcnRzTWVtb3J5Q29z
dENoYW5nZWQoKTsKIAogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCiAgICAg
Y29uZmlndXJhdGlvbi5jYW5QbGF5VG9XaXJlbGVzc1BsYXliYWNrVGFyZ2V0ID0gbV9wbGF5ZXIt
PmNhblBsYXlUb1dpcmVsZXNzUGxheWJhY2tUYXJnZXQoKTsKQEAgLTY2Miw2ICs2NjMsMTEgQEAg
dm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllckRpZFJlbW92ZVRleHRUcmFj
ayhXZWJDb3JlOjpJbmJhbmRUZXh0VHIKICAgICBtX3RleHRUcmFja3MucmVtb3ZlKCZ0cmFjayk7
CiB9CiAKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJNZW1vcnlDb3N0
Q2hhbmdlZChzaXplX3QgdG90YWxNZW1vcnlDb3N0KQoreworICAgIG1fd2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6TWVtb3J5Q29z
dENoYW5nZWQodG90YWxNZW1vcnlDb3N0KSwgbV9pZCk7Cit9CisKIHZvaWQgUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eTo6dGV4dFRyYWNrUmVwcmVzZW50YXRpb25Cb3VuZHNDaGFuZ2VkKGNvbnN0IElu
dFJlY3QmKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaAppbmRleCAwZTlm
M2Q3YTIxNDVkNzViOTQzZTJiNTZhMmQ4MGJiODA3M2RmOWUxLi45YWE3MTZmNjE5ZmE4OGJmYTY4
OWVjZDNkNTNlODNiYzRjODZmYzVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmgKQEAgLTI0MSw2ICsyNDEsNyBA
QCBwcml2YXRlOgogICAgIHZvaWQgbWVkaWFQbGF5ZXJEaWRSZW1vdmVWaWRlb1RyYWNrKFdlYkNv
cmU6OlZpZGVvVHJhY2tQcml2YXRlJikgZmluYWw7CiAgICAgdm9pZCBtZWRpYVBsYXllckRpZEFk
ZFRleHRUcmFjayhXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2tQcml2YXRlJikgZmluYWw7CiAgICAg
dm9pZCBtZWRpYVBsYXllckRpZFJlbW92ZVRleHRUcmFjayhXZWJDb3JlOjpJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlJikgZmluYWw7CisgICAgdm9pZCBtZWRpYVBsYXllck1lbW9yeUNvc3RDaGFuZ2Vk
KHNpemVfdCB0b3RhbE1lbW9yeUNvc3QpIGZpbmFsOwogCiAgICAgLy8gTm90IGltcGxlbWVudGVk
CiAgICAgdm9pZCBtZWRpYVBsYXllckZpcnN0VmlkZW9GcmFtZUF2YWlsYWJsZSgpIGZpbmFsOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXll
clByaXZhdGVSZW1vdGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9N
ZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCmluZGV4IDYyYjExZGY1ZWFmYTYzNWRiZDM2Yzcx
MGQ5ZDZkNWY2NWQ4YzM3YzYuLmY4N2YzNDU1OWE5ZTkwZTQ3MTFhOTZjY2E0NzQwNjNjNzUwODE3
YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKQEAgLTEyNzgsMTAgKzEyNzgsMTEg
QEAgU3RyaW5nIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6bGFuZ3VhZ2VPZlByaW1hcnlBdWRp
b1RyYWNrKCkgY29uc3QKICAgICByZXR1cm4gbV9jYWNoZWRTdGF0ZS5sYW5ndWFnZU9mUHJpbWFy
eUF1ZGlvVHJhY2s7CiB9CiAKLXNpemVfdCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmV4dHJh
TWVtb3J5Q29zdCgpIGNvbnN0Cit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6bWVtb3J5
Q29zdENoYW5nZWQoc2l6ZV90IG1lbW9yeUNvc3QpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsK
LSAgICByZXR1cm4gMDsKKyAgICBtX21lbW9yeUNvc3QgPSBtZW1vcnlDb3N0OworICAgIGlmIChS
ZWZQdHIgcGxheWVyID0gbV9wbGF5ZXIuZ2V0KCkpCisgICAgICAgIHBsYXllci0+bWVtb3J5Q29z
dENoYW5nZWQobWVtb3J5Q29zdCk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
Ojp1cGRhdGVWaWRlb1BsYXliYWNrTWV0cmljc1VwZGF0ZUludGVydmFsKGNvbnN0IFNlY29uZHMm
IGludGVydmFsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKaW5kZXggYjVmNWI1YmMxYzUyYTM5
OWM5MWJjNTBjYmFkZjVmZWM5ZjU1NWM0MC4uYTIxMzkxYjVhYWE1OGVhZGU1YmQ4ZGMxMTE2ZGY2
YjM2YWI3ZjY2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oCkBAIC0zNzEsNyArMzcxLDkg
QEAgcHJpdmF0ZToKIAogICAgIFN0cmluZyBsYW5ndWFnZU9mUHJpbWFyeUF1ZGlvVHJhY2soKSBj
b25zdCBmaW5hbDsKIAotICAgIHNpemVfdCBleHRyYU1lbW9yeUNvc3QoKSBjb25zdCBmaW5hbDsK
KyAgICBib29sIHN1cHBvcnRzTWVtb3J5Q29zdENoYW5nZWQoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBtX2NvbmZpZ3VyYXRpb24uc3VwcG9ydHNNZW1vcnlDb3N0Q2hhbmdlZDsgfQorICAgIHZvaWQg
bWVtb3J5Q29zdENoYW5nZWQoc2l6ZV90KTsKKyAgICBzaXplX3QgbWVtb3J5Q29zdCgpIGZpbmFs
IHsgcmV0dXJuIG1fbWVtb3J5Q29zdDsgfQogCiAgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpW
aWRlb1BsYXliYWNrUXVhbGl0eU1ldHJpY3M+IHZpZGVvUGxheWJhY2tRdWFsaXR5TWV0cmljcygp
IGZpbmFsOwogICAgIHZvaWQgdXBkYXRlVmlkZW9QbGF5YmFja01ldHJpY3NVcGRhdGVJbnRlcnZh
bChjb25zdCBTZWNvbmRzJik7CkBAIC00MzcsNiArNDM5LDcgQEAgcHJpdmF0ZToKICAgICBXZWJD
b3JlOjpNZWRpYVBsYXllcjo6VmlkZW9HcmF2aXR5IG1fdmlkZW9GdWxsc2NyZWVuR3Jhdml0eSB7
IFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpWaWRlb0dyYXZpdHk6OlJlc2l6ZUFzcGVjdCB9OwogICAg
IE1vbm90b25pY1RpbWUgbV9sYXN0UGxheWJhY2tRdWFsaXR5TWV0cmljc1F1ZXJ5VGltZTsKICAg
ICBTZWNvbmRzIG1fdmlkZW9QbGF5YmFja01ldHJpY3NVcGRhdGVJbnRlcnZhbDsKKyAgICBzaXpl
X3QgbV9tZW1vcnlDb3N0IHsgMCB9OwogICAgIGRvdWJsZSBtX3ZvbHVtZSB7IDEgfTsKICAgICBk
b3VibGUgbV9yYXRlIHsgMSB9OwogICAgIGxvbmcgbV9wbGF0Zm9ybUVycm9yQ29kZSB7IDAgfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW4KaW5kZXggMTE4ZTAy
NWE2OWIzZmE0MWY1NTllNWFhMGJmOThkMzc5MWJlNWRlNC4uY2U2NGRhYjM5NTNhZjAzMWE0NjEz
NzljN2QyNDVhMmU5MDE2MmMzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW4KKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUu
bWVzc2FnZXMuaW4KQEAgLTc0LDYgKzc0LDcgQEAgbWVzc2FnZXMgLT4gTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlIE5vdFJlZkNvdW50ZWQgewogICAgIFJlc291cmNlTm90U3VwcG9ydGVkKCkKIAog
ICAgIEFjdGl2ZVNvdXJjZUJ1ZmZlcnNDaGFuZ2VkKCkKKyAgICBNZW1vcnlDb3N0Q2hhbmdlZChz
aXplX3QgdG90YWxNZW1vcnlDb3N0KQogCiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKICAg
ICBXYWl0aW5nRm9yS2V5Q2hhbmdlZChib29sIHdhaXRpbmdGb3JLZXkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyQ29uZmln
dXJhdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRp
YVBsYXllckNvbmZpZ3VyYXRpb24uaAppbmRleCA1N2E2MzNhZGRiN2JlNzRkZjc5N2QzNzczZjVi
Y2VjY2IxYTVhNGI3Li4wZTI1MDBmYzMzMjgxYmU2OTQ5YzYxZGVlNmI3ZTYzM2VhYWNkYjM5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyQ29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uLmgKQEAgLTQyLDYgKzQyLDcgQEAg
c3RydWN0IFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbiB7CiAgICAgYm9vbCBzdXBwb3J0
c0FjY2VsZXJhdGVkUmVuZGVyaW5nIHsgZmFsc2UgfTsKICAgICBib29sIHN1cHBvcnRzUGxheUF0
SG9zdFRpbWUgeyBmYWxzZSB9OwogICAgIGJvb2wgc3VwcG9ydHNQYXVzZUF0SG9zdFRpbWUgeyBm
YWxzZSB9OworICAgIGJvb2wgc3VwcG9ydHNNZW1vcnlDb3N0Q2hhbmdlZCB7IGZhbHNlIH07CiAg
ICAgYm9vbCBjYW5QbGF5VG9XaXJlbGVzc1BsYXliYWNrVGFyZ2V0IHsgZmFsc2UgfTsKICAgICBi
b29sIHNob3VsZElnbm9yZUludHJpbnNpY1NpemUgeyBmYWxzZSB9OwogCkBAIC01Niw2ICs1Nyw3
IEBAIHN0cnVjdCBSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24gewogICAgICAgICBlbmNv
ZGVyIDw8IHN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmc7CiAgICAgICAgIGVuY29kZXIgPDwg
c3VwcG9ydHNQbGF5QXRIb3N0VGltZTsKICAgICAgICAgZW5jb2RlciA8PCBzdXBwb3J0c1BhdXNl
QXRIb3N0VGltZTsKKyAgICAgICAgZW5jb2RlIDw8IHN1cHBvcnRzTWVtb3J5Q29zdENoYW5nZWQ7
CiAgICAgICAgIGVuY29kZXIgPDwgY2FuUGxheVRvV2lyZWxlc3NQbGF5YmFja1RhcmdldDsKICAg
ICAgICAgZW5jb2RlciA8PCBzaG91bGRJZ25vcmVJbnRyaW5zaWNTaXplOwogICAgIH0KQEAgLTEw
Myw2ICsxMDUsMTEgQEAgc3RydWN0IFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbiB7CiAg
ICAgICAgIGlmICghc3VwcG9ydHNQYXVzZUF0SG9zdFRpbWUpCiAgICAgICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OwogCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gc3VwcG9ydHNNZW1v
cnlDb3N0Q2hhbmdlZDsKKyAgICAgICAgZGVjb2RlciA+PiBzdXBwb3J0c01lbW9yeUNvc3RDaGFu
Z2VkOworICAgICAgICBpZiAoIXN1cHBvcnRzTWVtb3J5Q29zdENoYW5nZWQpCisgICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworCiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gY2Fu
UGxheVRvV2lyZWxlc3NQbGF5YmFja1RhcmdldDsKICAgICAgICAgZGVjb2RlciA+PiBjYW5QbGF5
VG9XaXJlbGVzc1BsYXliYWNrVGFyZ2V0OwogICAgICAgICBpZiAoIWNhblBsYXlUb1dpcmVsZXNz
UGxheWJhY2tUYXJnZXQpCkBAIC0xMjIsNiArMTI5LDcgQEAgc3RydWN0IFJlbW90ZU1lZGlhUGxh
eWVyQ29uZmlndXJhdGlvbiB7CiAgICAgICAgICAgICAqc3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRl
cmluZywKICAgICAgICAgICAgICpzdXBwb3J0c1BsYXlBdEhvc3RUaW1lLAogICAgICAgICAgICAg
KnN1cHBvcnRzUGF1c2VBdEhvc3RUaW1lLAorICAgICAgICAgICAgKnN1cHBvcnRzTWVtb3J5Q29z
dENoYW5nZWQsCiAgICAgICAgICAgICAqY2FuUGxheVRvV2lyZWxlc3NQbGF5YmFja1RhcmdldCwK
ICAgICAgICAgICAgICpzaG91bGRJZ25vcmVJbnRyaW5zaWNTaXplLAogICAgICAgICB9fTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCBiMWFkMjM2NWQ1NTllYzY2MGNkNjliOTc4ODgwOWQ1ZmE3NDU3Zjg0Li5mZWQ3OTcwZjgx
OGU3OTEwYjQ4MTQ4NWYxM2NiMTljYzc2ZDIxNjcyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIw
MjEtMTEtMTcgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgSFRN
TE1lZGlhRWxlbWVudDogQWRvcHQgcmVwb3J0RXh0cmFNZW1vcnlWaXNpdGVkL0FsbG9jYXRlZAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzMTQ2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodHRwL3Rl
c3RzL21lZGlhL2hscy9obHMtbWVkaWEtZ2MtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL21lZGlhL2hscy9obHMtbWVkaWEtZ2MuaHRtbDogQWRkZWQuCisgICAgICAg
ICogbWVkaWEvbWVkaWEtZ2MtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS9t
ZWRpYS1nYy5odG1sOiBBZGRlZC4KKwogMjAyMS0xMS0xMSAgQW50dGkgS29pdmlzdG8gIDxhbnR0
aUBhcHBsZS5jb20+CiAKICAgICAgICAgW0NTUyBDYXNjYWRlIExheWVyc10gU3VwcG9ydCAncmV2
ZXJ0LWxheWVyJyB2YWx1ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRp
YS9obHMvaGxzLW1lZGlhLWdjLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
bWVkaWEvaGxzL2hscy1tZWRpYS1nYy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2RhN2FjOTNj
ZGFhYWVlYTNmZWE3OTNkNmVmMTU0NTc1ZDAzYmI1YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvaGxzL2hscy1tZWRpYS1nYy1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw0IEBACitUZXN0IHRoYXQgY3JlYXRpbmcgbWVkaWEgZWxlbWVudHMgd2l0aCBITFMg
c291cmNlcyB3aWxsIHRyaWdnZXIgR0MuCitFWFBFQ1RFRCAoYW55Q29sbGVjdGVkKCkgPT0gJ3Ry
dWUnKSBPSworRU5EIE9GIFRFU1QKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9tZWRpYS9obHMvaGxzLW1lZGlhLWdjLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21l
ZGlhL2hscy9obHMtbWVkaWEtZ2MuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMjAxZjJlNmRlODQ1NDI1Mjhm
YmY5ZjU0ZjNkNDI5NGFkMTc4MmYxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9tZWRpYS9obHMvaGxzLW1lZGlhLWdjLmh0bWwKQEAgLTAsMCArMSw1MSBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRsZT5tZWRpYS1nYzwvdGl0bGU+
CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL21lZGlhLXJlc291cmNlcy92aWRlby10ZXN0LmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2Fk
JywgYXN5bmMgZXZlbnQgPT4geworICAgICAgICBjb25zb2xlV3JpdGUoJ1Rlc3QgdGhhdCBjcmVh
dGluZyBtZWRpYSBlbGVtZW50cyB3aXRoIEhMUyBzb3VyY2VzIHdpbGwgdHJpZ2dlciBHQy4nKQor
CisgICAgICAgIGlmICghd2luZG93LmludGVybmFscykgeworICAgICAgICAgICAgZmFpbFRlc3Qo
J1RoaXMgdGVzdCByZXF1aXJlcyB3aW5kb3cuaW50ZXJuYWxzJyk7CisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIH0KKworICAgICAgICBsZXQgb2JzZXJ2ZXJzID0gW107CisgICAgICAgIGZv
ciAobGV0IGkgPSAwOyBpIDwgMTAwMDsgKytpKSB7CisgICAgICAgICAgICBsZXQgdGVzdE9iamVj
dCA9IHsgdGVzdFByb3BlcnR5IDogJ3Rlc3RWYWx1ZScgfTsKKyAgICAgICAgICAgIGxldCBvYnNl
cnZlciA9IGludGVybmFscy5vYnNlcnZlR0ModGVzdE9iamVjdCk7CisgICAgICAgICAgICBvYnNl
cnZlcnMucHVzaChvYnNlcnZlcik7CisgICAgICAgICAgICB0ZXN0T2JqZWN0ID0gbnVsbDsKKyAg
ICAgICAgfQorCisgICAgICAgIHdpbmRvdy5hbnlDb2xsZWN0ZWQgPSAoKSA9PiB7CisgICAgICAg
ICAgICBmb3IgKGxldCBvYnNlcnZlciBvZiBvYnNlcnZlcnMpIHsKKyAgICAgICAgICAgICAgICBp
ZiAob2JzZXJ2ZXIud2FzQ29sbGVjdGVkKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfTsK
KworICAgICAgICB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCdhbnlDb2xsZWN0ZWQoKScsIHRydWUp
LnRoZW4oKCkgPT4geworICAgICAgICAgICAgY29tcGxldGVkID0gdHJ1ZTsKKyAgICAgICAgICAg
IGVuZFRlc3QoKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgbGV0IGNvbXBsZXRlZCA9IGZhbHNl
OworICAgICAgICBsZXQgdmlkZW9FbGVtZW50cyA9IFtdOworICAgICAgICB3aGlsZSAoIWNvbXBs
ZXRlZCkgeworICAgICAgICAgICAgbGV0IHZpZGVvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
dmlkZW8nKTsKKyAgICAgICAgICAgIHZpZGVvLm11dGVkOworICAgICAgICAgICAgdmlkZW8uc3Jj
ID0gIi4uL3Jlc291cmNlcy9obHMvYmlwYm9wL3Byb2dfaW5kZXgubTN1OCI7CisgICAgICAgICAg
ICB2aWRlby5sb2FkKCk7CisgICAgICAgICAgICBhd2FpdCB3YWl0Rm9yKHZpZGVvLCAnY2FucGxh
eXRocm91Z2gnLCB0cnVlKTsKKyAgICAgICAgICAgIHZpZGVvRWxlbWVudHMucHVzaCh2aWRlbyk7
CisgICAgICAgIH0KKyAgICB9KTsKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPC9i
b2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL21lZGlhL21lZGlhLWdjLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlh
L21lZGlhLWdjLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZWM2NDQ1OTdlMTAxYWNjNzg4OWUz
YTMwZmJiYjkwN2U5NDgyZmJiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEv
bWVkaWEtZ2MtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGVzdCB0aGF0IGNyZWF0aW5n
IG1lZGlhIGVsZW1lbnRzIHdpbGwgdHJpZ2dlciBHQy4KK0VYUEVDVEVEIChhbnlDb2xsZWN0ZWQo
KSA9PSAndHJ1ZScpIE9LCitFTkQgT0YgVEVTVAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9t
ZWRpYS9tZWRpYS1nYy5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtZ2MuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi44NGRjNmQ1YjkwYzU3MzBkMWUwYjdhMTJiOWFmYTE1OGExNzEzODAzCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtZ2MuaHRtbApAQCAtMCwwICsxLDUy
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxlPm1lZGlhLWdj
PC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0idmlkZW8tdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAg
PHNjcmlwdCBzcmM9Im1lZGlhLWZpbGUuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAg
d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBhc3luYyBldmVudCA9PiB7CisgICAgICAg
IGNvbnNvbGVXcml0ZSgnVGVzdCB0aGF0IGNyZWF0aW5nIG1lZGlhIGVsZW1lbnRzIHdpbGwgdHJp
Z2dlciBHQy4nKQorCisgICAgICAgIGlmICghd2luZG93LmludGVybmFscykgeworICAgICAgICAg
ICAgZmFpbFRlc3QoJ1RoaXMgdGVzdCByZXF1aXJlcyB3aW5kb3cuaW50ZXJuYWxzJyk7CisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBsZXQgb2JzZXJ2ZXJzID0gW107
CisgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMTAwMDsgKytpKSB7CisgICAgICAgICAgICBs
ZXQgdGVzdE9iamVjdCA9IHsgdGVzdFByb3BlcnR5IDogJ3Rlc3RWYWx1ZScgfTsKKyAgICAgICAg
ICAgIGxldCBvYnNlcnZlciA9IGludGVybmFscy5vYnNlcnZlR0ModGVzdE9iamVjdCk7CisgICAg
ICAgICAgICBvYnNlcnZlcnMucHVzaChvYnNlcnZlcik7CisgICAgICAgICAgICB0ZXN0T2JqZWN0
ID0gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIHdpbmRvdy5hbnlDb2xsZWN0ZWQgPSAoKSA9
PiB7CisgICAgICAgICAgICBmb3IgKGxldCBvYnNlcnZlciBvZiBvYnNlcnZlcnMpIHsKKyAgICAg
ICAgICAgICAgICBpZiAob2JzZXJ2ZXIud2FzQ29sbGVjdGVkKQorICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICAgICAgfTsKKworICAgICAgICB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCdhbnlDb2xsZWN0
ZWQoKScsIHRydWUpLnRoZW4oKCkgPT4geworICAgICAgICAgICAgY29tcGxldGVkID0gdHJ1ZTsK
KyAgICAgICAgICAgIGVuZFRlc3QoKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgbGV0IGNvbXBs
ZXRlZCA9IGZhbHNlOworICAgICAgICB3aW5kb3cudmlkZW9FbGVtZW50cyA9IFtdOworICAgICAg
ICB3aGlsZSAoIWNvbXBsZXRlZCkgeworICAgICAgICAgICAgbGV0IHZpZGVvID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgndmlkZW8nKTsKKyAgICAgICAgICAgIHZpZGVvLm11dGVkOworICAgICAg
ICAgICAgdmlkZW8uc3JjID0gZmluZE1lZGlhRmlsZSgndmlkZW8nLCAnY29udGVudC90ZXN0Jyk7
CisgICAgICAgICAgICB2aWRlby5sb2FkKCk7CisgICAgICAgICAgICBhd2FpdCB3YWl0Rm9yKHZp
ZGVvLCAnY2FucGxheXRocm91Z2gnLCB0cnVlKTsKKyAgICAgICAgICAgIHZpZGVvRWxlbWVudHMu
cHVzaCh2aWRlbyk7CisgICAgICAgIH0KKyAgICB9KTsKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>
<flag name="commit-queue"
          id="469713"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444638</attachid>
            <date>2021-11-17 21:40:12 -0800</date>
            <delta_ts>2021-11-18 09:32:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233146-20211117214012.patch</filename>
            <type>text/plain</type>
            <size>37504</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1NjM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmUwMDg0ZmFkOGZiODEw
YTFiMjUxMDE3NmE1Nzc2NDRkYjI1NzE5Yy4uY2Y2YWIxNjdhYTlhMDVlNTU1N2VlYjRmZjU2ZjA2
ZTYzY2JlYjg1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDIxLTExLTE2ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEhUTUxNZWRpYUVsZW1lbnQ6
IEFkb3B0IHJlcG9ydEV4dHJhTWVtb3J5VmlzaXRlZC9BbGxvY2F0ZWQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzE0NgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzOiBodHRwL3Rlc3RzL21lZGlh
L2hscy9obHMtbWVkaWEtZ2MuaHRtbAorICAgICAgICAgICAgICAgbWVkaWEvbWVkaWEtZ2MuaHRt
bAorCisgICAgICAgIENhbGwgcmVwb3J0RXh0cmFNZW1vcnlBbGxvY2F0ZWQoKSB3aGVuZXZlciB0
aGUgKGVzdGltYXRlZCkgbnVtYmVyIG9mIGJ5dGVzIGFsbG9jYXRlZCBpbmNyZWFzZXMsCisgICAg
ICAgIGFuZCBhZG9wdCBgUmVwb3J0RXh0cmFNZW1vcnlDb3N0YCBpbiBIVE1MTWVkaWFFbGVtZW50
LmlkbCwgd2hpY2ggd2lsbCBjYWxsIHJlcG9ydEV4dHJhTWVtb3J5VmlzaXRlZCgpCisgICAgICAg
IG9uIHRoZSBtZWRpYSBlbGVtZW50J3MgYmVoYWxmIGR1cmluZyBHQy4KKworICAgICAgICBUaGUg
ZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBvZiBNZWRpYVBsYXllclByaXZhdGU6Om1lbW9yeUNvc3Qo
KSBkZXJpdmVzIHRoZSBwZXJjZW50YWdlIG9mIGxvYWRlZCBtZWRpYQorICAgICAgICBkYXRhIHRo
cm91Z2ggbG9hZGVkVGltZVJhbmdlcygpIGFuZCBkdXJhdGlvbigpLCBhbmQgZGl2aWRlcyB0b3Rh
bEJ5dGVzKCkgYnkgdGhhdCBhbW91bnQuIEhvd2V2ZXIsIGZvcgorICAgICAgICBITFMgc3RyZWFt
cywgZHVyYXRpb24oKSBhbmQgdG90YWxCeXRlcygpIG1heSBiZSBlbXB0eSBvciBvdGhlcndpc2Ug
bm9uLWZpbml0ZS4gSW4gdGhhdCBjYXNlLCB1c2UgdGhlCisgICAgICAgIEFWUGxheWVySXRlbUFj
Y2Vzc0xvZyB0byBleHRyYWN0IGluZm9ybWF0aW9uIGFib3V0IHRoZSBzdHJlYW0ncyByZXBvcnRl
ZCBiaXRyYXRlLCBhbmQgbXVsdGlwbHkgdGhhdAorICAgICAgICBiaXRyYXRlIGJ5IHRoZSBkdXJh
dGlvbiBvZiBsb2FkZWRUaW1lUmFuZ2VzKCkgYXMgYW4gZXN0aW1hdGUgb2YgdGhlIE1lZGlhUGxh
eWVyUHJpdmF0ZSdzIG1lbW9yeUNvc3QoKS4KKworICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpwYXVzZUFmdGVy
RGV0YWNoZWRUYXNrKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6Om1lbW9y
eUNvc3QgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQ
bGF5ZXJNZW1vcnlDb3N0Q2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVt
ZW50OjpjbGVhck1lZGlhUGxheWVyKToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQu
aDoKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaWRsOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyOjptZW1vcnlDb3N0Q2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6
bWVtb3J5Q29zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6ZXh0cmFNZW1vcnlD
b3N0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBs
YXllci5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJDbGllbnQ6Om1lZGlhUGxheWVy
TWVtb3J5Q29zdENoYW5nZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyUHJpdmF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJm
YWNlOjptZW1vcnlDb3N0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUlu
dGVyZmFjZTo6ZXh0cmFNZW1vcnlDb3N0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6
bWVtb3J5Q29zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb246OmxvYWRlZFRpbWVSYW5nZXNDaGFuZ2VkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmg6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnBsYXRmb3JtSW5k
aWNhdGVkQml0cmF0ZSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVBVlBsYXllckl0ZW0pOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGxhdGZvcm1JbmRpY2F0ZWRC
aXRyYXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakM6Om5ld0FjY2Vzc0xvZ0VudHJ5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmN1cnJlbnRBY2Nlc3NMb2dFdmVudCBjb25z
dCk6CisgICAgICAgICgtW1dlYkNvcmVBVkZNb3ZpZU9ic2VydmVyIG5ld0FjY2Vzc0xvZ0VudHJ5
Ol0pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZG
T2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQzo6bWVtb3J5Q29zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakM6OmV4dHJhTWVtb3J5Q29zdCBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmg6CisKIDIwMjEtMTEtMTEgIEplciBOb2JsZSAgPGpl
ci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gQWRvcHQgLVtBVkF1ZGlvU2Vzc2lv
biBzZXRBdWRpdFRva2Vuc0ZvclByb2Nlc3NBc3NlcnRpb246XQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5k
ZXggMGJhYjlhZTA4ZjNlZGE3NDlmYzkwYTEwOTY3OWQ4MjM4ZWY0MjFhNC4uM2EzMjAyZjE2NTM0
NWVhY2RkMTc3YmFmYjQ3MDhjYjM3YmE0M2Y2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
UEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTMgQEAKKzIwMjEtMTEtMTYgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisK
KyAgICAgICAgSFRNTE1lZGlhRWxlbWVudDogQWRvcHQgcmVwb3J0RXh0cmFNZW1vcnlWaXNpdGVk
L0FsbG9jYXRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjMzMTQ2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBwYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaDoKKyAgICAgICAgKiBwYWwvY29j
b2EvQVZGb3VuZGF0aW9uU29mdExpbmsubW06CisKIDIwMjEtMTEtMTUgIEplciBOb2JsZSAgPGpl
ci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gQWRvcHQgLVtBVkF1ZGlvU2Vzc2lv
biBzZXRBdWRpdFRva2Vuc0ZvclByb2Nlc3NBc3NlcnRpb246XQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA2NWEwY2Yw
MzYwMzg2YThhYzU2ZGExOTNmNDg3ZTM1Y2NiMDA4MmY2Li5iMDI0NjNiN2U0YzI5OTI5ZTk3MmNj
ZmVmNjMyMmM4NzA5OTE3YWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTExLTE2
ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEhUTUxNZWRpYUVs
ZW1lbnQ6IEFkb3B0IHJlcG9ydEV4dHJhTWVtb3J5VmlzaXRlZC9BbGxvY2F0ZWQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzE0NgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBhc3MgbWVtb3J5Q29zdCBp
bmZvcm1hdGlvbiBhY3Jvc3MgdGhlIEdQVS9XZWJDb250ZW50IHByb2Nlc3MgYm91bmRhcnkuCisK
KyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllck1lbW9y
eUNvc3RDaGFuZ2VkKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxh
eWVyUHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclBy
aXZhdGVSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6Om1lbW9yeUNvc3RDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlOjpleHRyYU1lbW9yeUNvc3QgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIFdl
YlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oOgorICAgICAgICAq
IFdlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5p
bjoKKwogMjAyMS0xMS0xMSAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CiAKICAgICAg
ICAgV0tTeXN0ZW1QcmV2aWV3VmlldyBzaG91bGQgYmUgY2FsbGVkIFdLVVNEUHJldmlld1ZpZXcK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29m
dExpbmsuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExp
bmsuaAppbmRleCA5ZGI5YWY4ZjdlYzFhZmI0ZjE4MDFlODY2ZWY0MDY3OTZmZjhjNWQzLi4wZjAw
M2UwZWNiOTkxYjhjODE3NjM3OTg3OGI5NzhlYzJmMjZhZDNlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oCkBAIC0xNDIsNiAr
MTQyLDggQEAgU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBBVkZvdW5kYXRpb24s
IEFWQ2FwdHVyZURldmljZVdhc0Rpc2Nvbm5lY3RlZE4KICNkZWZpbmUgQVZDYXB0dXJlRGV2aWNl
V2FzRGlzY29ubmVjdGVkTm90aWZpY2F0aW9uIFBBTDo6Z2V0X0FWRm91bmRhdGlvbl9BVkNhcHR1
cmVEZXZpY2VXYXNEaXNjb25uZWN0ZWROb3RpZmljYXRpb24oKQogU09GVF9MSU5LX0NPTlNUQU5U
X0ZPUl9IRUFERVIoUEFMLCBBVkZvdW5kYXRpb24sIEFWUGxheWVySXRlbURpZFBsYXlUb0VuZFRp
bWVOb3RpZmljYXRpb24sIE5TU3RyaW5nICopCiAjZGVmaW5lIEFWUGxheWVySXRlbURpZFBsYXlU
b0VuZFRpbWVOb3RpZmljYXRpb24gUEFMOjpnZXRfQVZGb3VuZGF0aW9uX0FWUGxheWVySXRlbURp
ZFBsYXlUb0VuZFRpbWVOb3RpZmljYXRpb24oKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFE
RVIoUEFMLCBBVkZvdW5kYXRpb24sIEFWUGxheWVySXRlbU5ld0FjY2Vzc0xvZ0VudHJ5Tm90aWZp
Y2F0aW9uLCBOU1N0cmluZyAqKQorI2RlZmluZSBBVlBsYXllckl0ZW1OZXdBY2Nlc3NMb2dFbnRy
eU5vdGlmaWNhdGlvbiBQQUw6OmdldF9BVkZvdW5kYXRpb25fQVZQbGF5ZXJJdGVtTmV3QWNjZXNz
TG9nRW50cnlOb3RpZmljYXRpb24oKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFM
LCBBVkZvdW5kYXRpb24sIEFWU3RyZWFtU2Vzc2lvbkNvbnRlbnRQcm90ZWN0aW9uU2Vzc2lvbklk
ZW50aWZpZXJDaGFuZ2VkTm90aWZpY2F0aW9uLCBOU1N0cmluZyAqKQogI2RlZmluZSBBVlN0cmVh
bVNlc3Npb25Db250ZW50UHJvdGVjdGlvblNlc3Npb25JZGVudGlmaWVyQ2hhbmdlZE5vdGlmaWNh
dGlvbiBQQUw6OmdldF9BVkZvdW5kYXRpb25fQVZTdHJlYW1TZXNzaW9uQ29udGVudFByb3RlY3Rp
b25TZXNzaW9uSWRlbnRpZmllckNoYW5nZWROb3RpZmljYXRpb24oKQogU09GVF9MSU5LX0NPTlNU
QU5UX0ZPUl9IRUFERVIoUEFMLCBBVkZvdW5kYXRpb24sIEFWU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyRmFpbGVkVG9EZWNvZGVOb3RpZmljYXRpb24sIE5TU3RyaW5nKikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLm1tCmluZGV4IGQy
MWQ0OWNkNzcwMjQzNDI3NjY4ZTg3MDg2MTUzNDFjZDZjNjQ1MWEuLjliMjRmY2EwZDhiZGZkMTk3
YzQwM2Q5ZjNkZTYyYzkwMzE1ZTAzM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsubW0KKysrIGIvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5tbQpAQCAtMTcxLDYgKzE3MSw3IEBAIFNP
RlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9u
LCBBVk91dE9mQmFuZEFsdGVybmF0CiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRI
X0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZPdXRPZkJhbmRBbHRlcm5hdGVUcmFja01lZGlh
Q2hhcmFjdGVyc3RpY3NLZXksIE5TU3RyaW5nICosIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfQ09O
U1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZPdXRPZkJh
bmRBbHRlcm5hdGVUcmFja1NvdXJjZUtleSwgTlNTdHJpbmcgKiwgUEFMX0VYUE9SVCkKIFNPRlRf
TElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBB
VlBsYXllckl0ZW1EaWRQbGF5VG9FbmRUaW1lTm90aWZpY2F0aW9uLCBOU1N0cmluZyAqLCBQQUxf
RVhQT1JUKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBB
VkZvdW5kYXRpb24sIEFWUGxheWVySXRlbU5ld0FjY2Vzc0xvZ0VudHJ5Tm90aWZpY2F0aW9uLCBO
U1N0cmluZyAqLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lU
SF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWUGxheWVySXRlbUxlZ2libGVPdXRwdXRUZXh0
U3R5bGluZ1Jlc29sdXRpb25Tb3VyY2VBbmRSdWxlc09ubHksIE5TU3RyaW5nICosIFBBTF9FWFBP
UlQpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIEFWRm91
bmRhdGlvbiwgQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJGYWlsZWRUb0RlY29kZU5vdGlmaWNh
dGlvbiwgTlNTdHJpbmcqLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VS
Q0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyRmFpbGVkVG9EZWNvZGVOb3RpZmljYXRpb25FcnJvcktleSwgTlNTdHJpbmcqLCBQQUxfRVhQ
T1JUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggMzIzZmM0
ODEyZTM4N2Y2YzU5M2Y0NmMyY2M0ZmIwZTA2MmQ5N2QwZi4uNDE0Y2I5ZDcyY2Y4MWNmZWVmZmJh
NGQyMzAzOWMzMmY4ZTY5ZDU2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwCkBAIC04NTQsMTggKzg1NCwyNSBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnBhdXNl
QWZ0ZXJEZXRhY2hlZFRhc2soKQogCiAgICAgaWYgKCFtX3BsYXllcikKICAgICAgICAgcmV0dXJu
OworfQogCi0gICAgc2l6ZV90IGV4dHJhTWVtb3J5Q29zdCA9IG1fcGxheWVyLT5leHRyYU1lbW9y
eUNvc3QoKTsKLSAgICBpZiAoZXh0cmFNZW1vcnlDb3N0ID4gbV9yZXBvcnRlZEV4dHJhTWVtb3J5
Q29zdCkgewotICAgICAgICBKU0M6OlZNJiB2bSA9IGNvbW1vblZNKCk7Ci0gICAgICAgIEpTQzo6
SlNMb2NrSG9sZGVyIGxvY2sodm0pOworc2l6ZV90IEhUTUxNZWRpYUVsZW1lbnQ6Om1lbW9yeUNv
c3QoKSBjb25zdAoreworICAgIHJldHVybiBtX3JlcG9ydGVkRXh0cmFNZW1vcnlDb3N0OworfQog
Ci0gICAgICAgIHNpemVfdCBleHRyYU1lbW9yeUNvc3REZWx0YSA9IGV4dHJhTWVtb3J5Q29zdCAt
IG1fcmVwb3J0ZWRFeHRyYU1lbW9yeUNvc3Q7Ci0gICAgICAgIG1fcmVwb3J0ZWRFeHRyYU1lbW9y
eUNvc3QgPSBleHRyYU1lbW9yeUNvc3Q7Ci0gICAgICAgIC8vIEZJWE1FOiBBZG9wdCByZXBvcnRF
eHRyYU1lbW9yeVZpc2l0ZWQsIGFuZCBzd2l0Y2ggdG8gcmVwb3J0RXh0cmFNZW1vcnlBbGxvY2F0
ZWQuCi0gICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NDI1OTUKLSAgICAgICAgdm0uaGVhcC5kZXByZWNhdGVkUmVwb3J0RXh0cmFNZW1vcnkoZXh0cmFN
ZW1vcnlDb3N0RGVsdGEpOwotICAgIH0KK3ZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5
ZXJNZW1vcnlDb3N0Q2hhbmdlZChzaXplX3QgbmV3TWVtb3J5Q29zdCkKK3sKKyAgICBpZiAobmV3
TWVtb3J5Q29zdCA9PSBtX3JlcG9ydGVkRXh0cmFNZW1vcnlDb3N0KQorICAgICAgICByZXR1cm47
CisKKyAgICBhdXRvIG9sZE1lbW9yeUNvc3QgPSBtX3JlcG9ydGVkRXh0cmFNZW1vcnlDb3N0LmV4
Y2hhbmdlKG5ld01lbW9yeUNvc3QpOworICAgIGlmIChuZXdNZW1vcnlDb3N0IDwgb2xkTWVtb3J5
Q29zdCkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byYgdm0gPSBzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCktPnZtKCk7CisgICAgSlNDOjpKU0xvY2tIb2xkZXIgbG9jayh2bSk7CisgICAgdm0u
aGVhcC5yZXBvcnRFeHRyYU1lbW9yeUFsbG9jYXRlZChuZXdNZW1vcnlDb3N0IC0gb2xkTWVtb3J5
Q29zdCk7CiB9CiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cmVtb3ZlZEZyb21BbmNlc3RvcihS
ZW1vdmFsVHlwZSByZW1vdmFsVHlwZSwgQ29udGFpbmVyTm9kZSYgb2xkUGFyZW50T2ZSZW1vdmVk
VHJlZSkKQEAgLTU4NTMsNiArNTg2MCw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6Y2xlYXJN
ZWRpYVBsYXllcigpCiAgICAgICAgIG1fcGxheWVyLT5pbnZhbGlkYXRlKCk7CiAgICAgICAgIG1f
cGxheWVyID0gbnVsbHB0cjsKICAgICAgICAgbV9jYWNoZWRTdXBwb3J0c0FjY2VsZXJhdGVkUmVu
ZGVyaW5nID0gZmFsc2U7CisgICAgICAgIG1lZGlhUGxheWVyTWVtb3J5Q29zdENoYW5nZWQoMCk7
CiAgICAgfQogICAgIHNjaGVkdWxlUGxheWJhY2tDb250cm9sc01hbmFnZXJVcGRhdGUoKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAppbmRleCAyZWNiZjVkYmFhZGVkNDJl
Nzc5MDQ0MDVhYzAxMzFlMzhmYzI5YmU3Li45Yzc0YTU5N2M1NzMwNmJhOWMwZTBiNzYyZTViZGUz
ZWZjMTkzNGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtNjA1
LDYgKzYwNSw4IEBAIHB1YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgbWVkaWFQbGF5
ZXJSZW5kZXJpbmdDYW5CZUFjY2VsZXJhdGVkKCkgZmluYWw7CiAKKyAgICBzaXplX3QgbWVtb3J5
Q29zdCgpIGNvbnN0OworCiBwcm90ZWN0ZWQ6CiAgICAgSFRNTE1lZGlhRWxlbWVudChjb25zdCBR
dWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBib29sIGNyZWF0ZWRCeVBhcnNlcik7CiAgICAgdmly
dHVhbCB+SFRNTE1lZGlhRWxlbWVudCgpOwpAQCAtNzcwLDYgKzc3Miw3IEBAIHByaXZhdGU6CiAg
ICAgYm9vbCBtZWRpYVBsYXllclNob3VsZENoZWNrSGFyZHdhcmVTdXBwb3J0KCkgY29uc3QgZmlu
YWw7CiAgICAgY29uc3QgVmVjdG9yPENvbnRlbnRUeXBlPiYgbWVkaWFDb250ZW50VHlwZXNSZXF1
aXJpbmdIYXJkd2FyZVN1cHBvcnQoKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIG1lZGlhUGxheWVy
QnVmZmVyZWRUaW1lUmFuZ2VzQ2hhbmdlZCgpIGZpbmFsOworICAgIHZvaWQgbWVkaWFQbGF5ZXJN
ZW1vcnlDb3N0Q2hhbmdlZChzaXplX3QgdG90YWxNZW1vcnlDb3N0KSBmaW5hbDsKIAogI2lmIFVT
RShHU1RSRUFNRVIpCiAgICAgdm9pZCByZXF1ZXN0SW5zdGFsbE1pc3NpbmdQbHVnaW5zKGNvbnN0
IFN0cmluZyYgZGV0YWlscywgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgTWVkaWFQbGF5ZXJS
ZXF1ZXN0SW5zdGFsbE1pc3NpbmdQbHVnaW5zQ2FsbGJhY2smKSBmaW5hbDsKQEAgLTExOTgsNyAr
MTIwMSw3IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYUVs
ZW1lbnRTZXNzaW9uPiBtX21lZGlhU2Vzc2lvbjsKLSAgICBzaXplX3QgbV9yZXBvcnRlZEV4dHJh
TWVtb3J5Q29zdCB7IDAgfTsKKyAgICBzdGQ6OmF0b21pYzxzaXplX3Q+IG1fcmVwb3J0ZWRFeHRy
YU1lbW9yeUNvc3QgeyAwIH07CiAKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBSZWZQ
dHI8TG9nZ2VyPiBtX2xvZ2dlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
aWRsCmluZGV4IGY0MGNlZGYyMjkzMDYwNTA3MWY2NzY1ZTNkZDA4Yjg0YmJkM2U4OGMuLjM5ODE4
YWI1NWQ2MDZlOTAxMjYxMzYwNTgxOTkzMmI5ZDBkNmY5ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmlkbApAQCAtMzcsNiArMzcsNyBAQCB0eXBlZGVmICgKICAgICBD
b25kaXRpb25hbD1WSURFTywKICAgICBFeHBvcnRNYWNybz1XRUJDT1JFX0VYUE9SVCwKICAgICBK
U0dlbmVyYXRlVG9OYXRpdmVPYmplY3QsCisgICAgUmVwb3J0RXh0cmFNZW1vcnlDb3N0LAogICAg
IEV4cG9zZWQ9V2luZG93CiBdIGludGVyZmFjZSBIVE1MTWVkaWFFbGVtZW50IDogSFRNTEVsZW1l
bnQgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRp
YVBsYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
ci5jcHAKaW5kZXggYTQzNmE1NThhNzk5YTY2NmE2ZWY2YTRmNWYzODA5NTRkMTcwNjU5Ni4uNWRk
ODhhOTZmMDc2Nzg5OTk1YzA3NDI3M2EwNjI4NGM3YTZjNjEwOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcApAQCAtOTk3LDYgKzk5Nyw5
IEBAIGRvdWJsZSBNZWRpYVBsYXllcjo6c2Vla2FibGVUaW1lUmFuZ2VzTGFzdE1vZGlmaWVkVGlt
ZSgpCiB2b2lkIE1lZGlhUGxheWVyOjpidWZmZXJlZFRpbWVSYW5nZXNDaGFuZ2VkKCkKIHsKICAg
ICBjbGllbnQoKS5tZWRpYVBsYXllckJ1ZmZlcmVkVGltZVJhbmdlc0NoYW5nZWQoKTsKKworICAg
IGlmIChtX3ByaXZhdGUgJiYgIW1fcHJpdmF0ZS0+c3VwcG9ydHNNZW1vcnlDb3N0Q2hhbmdlZCgp
KQorICAgICAgICBjbGllbnQoKS5tZWRpYVBsYXllck1lbW9yeUNvc3RDaGFuZ2VkKG1lbW9yeUNv
c3QoKSk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXI6OnNlZWthYmxlVGltZVJhbmdlc0NoYW5nZWQo
KQpAQCAtMTM2Myw2ICsxMzY2LDkgQEAgdm9pZCBNZWRpYVBsYXllcjo6cmVwYWludCgpCiB2b2lk
IE1lZGlhUGxheWVyOjpkdXJhdGlvbkNoYW5nZWQoKQogewogICAgIGNsaWVudCgpLm1lZGlhUGxh
eWVyRHVyYXRpb25DaGFuZ2VkKCk7CisKKyAgICBpZiAobV9wcml2YXRlICYmICFtX3ByaXZhdGUt
PnN1cHBvcnRzTWVtb3J5Q29zdENoYW5nZWQoKSkKKyAgICAgICAgY2xpZW50KCkubWVkaWFQbGF5
ZXJNZW1vcnlDb3N0Q2hhbmdlZChtZW1vcnlDb3N0KCkpOwogfQogCiB2b2lkIE1lZGlhUGxheWVy
OjpyYXRlQ2hhbmdlZCgpCkBAIC0xNTc5LDEyICsxNTg1LDE3IEBAIFN0cmluZyBNZWRpYVBsYXll
cjo6bGFuZ3VhZ2VPZlByaW1hcnlBdWRpb1RyYWNrKCkgY29uc3QKICAgICByZXR1cm4gbV9wcml2
YXRlLT5sYW5ndWFnZU9mUHJpbWFyeUF1ZGlvVHJhY2soKTsKIH0KIAotc2l6ZV90IE1lZGlhUGxh
eWVyOjpleHRyYU1lbW9yeUNvc3QoKSBjb25zdAordm9pZCBNZWRpYVBsYXllcjo6bWVtb3J5Q29z
dENoYW5nZWQoc2l6ZV90IHRvdGFsTWVtb3J5Q29zdCkKK3sKKyAgICBjbGllbnQoKS5tZWRpYVBs
YXllck1lbW9yeUNvc3RDaGFuZ2VkKHRvdGFsTWVtb3J5Q29zdCk7Cit9CisKK3NpemVfdCBNZWRp
YVBsYXllcjo6bWVtb3J5Q29zdCgpCiB7CiAgICAgaWYgKCFtX3ByaXZhdGUpCiAgICAgICAgIHJl
dHVybiAwOwogCi0gICAgcmV0dXJuIG1fcHJpdmF0ZS0+ZXh0cmFNZW1vcnlDb3N0KCk7CisgICAg
cmV0dXJuIG1fcHJpdmF0ZS0+bWVtb3J5Q29zdCgpOwogfQogCiB1bnNpZ25lZCBsb25nIGxvbmcg
TWVkaWFQbGF5ZXI6OmZpbGVTaXplKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllci5oCmluZGV4IDViMWUxNzQ1MTNlMDZmYTAxZDUxOTBiNTVl
NTA1MzU1NWVmZDc2MzcuLmM1NmU0NmMzYTg4ODExYmVlMzI1ZDYzOTMwMjk3MmI3NTdlNTJkZjgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaApA
QCAtMjg2LDYgKzI4Niw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBtZWRpYVBsYXll
clF1ZXVlVGFza09uRXZlbnRMb29wKEZ1bmN0aW9uPHZvaWQoKT4mJiB0YXNrKSB7IGNhbGxPbk1h
aW5UaHJlYWQoV1RGTW92ZSh0YXNrKSk7IH0KIAorICAgIHZpcnR1YWwgdm9pZCBtZWRpYVBsYXll
ck1lbW9yeUNvc3RDaGFuZ2VkKHNpemVfdCkgeyB9CisKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJM
RUQKICAgICB2aXJ0dWFsIGNvbnN0IHZvaWQqIG1lZGlhUGxheWVyTG9nSWRlbnRpZmllcigpIHsg
cmV0dXJuIG51bGxwdHI7IH0KICAgICB2aXJ0dWFsIGNvbnN0IExvZ2dlciYgbWVkaWFQbGF5ZXJM
b2dnZXIoKSA9IDA7CkBAIC02MTAsNyArNjEyLDggQEAgcHVibGljOgogCiAgICAgU3RyaW5nIGxh
bmd1YWdlT2ZQcmltYXJ5QXVkaW9UcmFjaygpIGNvbnN0OwogCi0gICAgc2l6ZV90IGV4dHJhTWVt
b3J5Q29zdCgpIGNvbnN0OworICAgIHZvaWQgbWVtb3J5Q29zdENoYW5nZWQoc2l6ZV90KTsKKyAg
ICBzaXplX3QgbWVtb3J5Q29zdCgpOwogCiAgICAgdW5zaWduZWQgbG9uZyBsb25nIGZpbGVTaXpl
KCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L01lZGlhUGxheWVyUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXJQcml2YXRlLmgKaW5kZXggZjVhNDBhYmM4YTc5YTZjZTA2NGI3MDJjZGQwYzlh
OWFhNjYzZGQzOS4uM2Y5MTljYTRhNDUyMDY3YTE3OTRlMDU3MzcyZjliYmRiZTFjNmNhNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2
YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQ
cml2YXRlLmgKQEAgLTI3Niw3ICsyNzYsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIFN0cmlu
ZyBsYW5ndWFnZU9mUHJpbWFyeUF1ZGlvVHJhY2soKSBjb25zdCB7IHJldHVybiBlbXB0eVN0cmlu
ZygpOyB9CiAKLSAgICB2aXJ0dWFsIHNpemVfdCBleHRyYU1lbW9yeUNvc3QoKSBjb25zdAorICAg
IHZpcnR1YWwgYm9vbCBzdXBwb3J0c01lbW9yeUNvc3RDaGFuZ2VkKCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHNpemVfdCBtZW1vcnlDb3N0KCkKICAgICB7CiAgICAgICAg
IE1lZGlhVGltZSBkdXJhdGlvbiA9IHRoaXMtPmR1cmF0aW9uTWVkaWFUaW1lKCk7CiAgICAgICAg
IGlmICghZHVyYXRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb24uY3BwCmluZGV4IGM5OThkOWY2NDcwZTgwZjhkNGNkZDVlMTI2NmYw
NWIxMmJkNjEwOWUuLjE5YWEyNTc5ZjgzNzNjOGFhOThjZDY5YmVjN2QyNzNjYTJiOTI0ODQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b24uY3BwCkBAIC02MjksMTEgKzYyOSwyOCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbjo6cmF0ZUNoYW5nZWQoKQogICAgIG1fcGxheWVyLT5yYXRlQ2hhbmdlZCgpOwogfQog
CitzaXplX3QgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjptZW1vcnlDb3N0KCkKK3sK
KyAgICAvLyBUaGUgZGVmYXVsdCBNZWRpYVBsYXllclByaXZhdGUgaW1wbGVtZW50YXRpb24gZGVw
ZW5kcyB1cG9uIHRvdGFsQnl0ZXMoKSBhbmQgZHVyYXRpb24oKSwKKyAgICAvLyB3aGljaCBtYXkg
bm90IGJlIGF2YWlsYWJsZSBmb3IgSExTIHN0cmVhbXMuIEluIHRoYXQgY2FzZSwgcHJvdmlkZSBh
IGN1c3RvbSBpbXBsZW1lbnRhdGlvbgorICAgIC8vIHdoaWNoIHVzZXMgdGhlIG9ic2VydmVkQml0
cmF0ZSB0byBjYWxjdWxhdGUgbWVtb3J5Q29zdC4KKyAgICBpZiAodG90YWxCeXRlcygpICYmIG1f
Y2FjaGVkRHVyYXRpb24pCisgICAgICAgIHJldHVybiBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZh
Y2U6Om1lbW9yeUNvc3QoKTsKKworICAgIGlmIChtX2NhY2hlZExvYWRlZFRpbWVSYW5nZXMpCisg
ICAgICAgIHJldHVybiBwbGF0Zm9ybUluZGljYXRlZEJpdHJhdGUoKSAqIG1fY2FjaGVkTG9hZGVk
VGltZVJhbmdlcy0+dG90YWxEdXJhdGlvbigpLnRvRG91YmxlKCkgLyA4OworCisgICAgcmV0dXJu
IDA7Cit9CisKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpsb2FkZWRUaW1l
UmFuZ2VzQ2hhbmdlZCgpCiB7Ci0gICAgbV9jYWNoZWRMb2FkZWRUaW1lUmFuZ2VzID0gbnVsbHB0
cjsKLSAgICBtX2NhY2hlZE1heFRpbWVMb2FkZWQgPSBNZWRpYVRpbWU6Onplcm9UaW1lKCk7Cisg
ICAgYXV0byBvbGRMb2FkZWRUaW1lUmFuZ2VzID0gc3RkOjpleGNoYW5nZShtX2NhY2hlZExvYWRl
ZFRpbWVSYW5nZXMsIHBsYXRmb3JtQnVmZmVyZWRUaW1lUmFuZ2VzKCkpOworICAgIG1fY2FjaGVk
TWF4VGltZUxvYWRlZCA9IG1fY2FjaGVkTG9hZGVkVGltZVJhbmdlcyA/IG1fY2FjaGVkTG9hZGVk
VGltZVJhbmdlcy0+bWF4aW11bUJ1ZmZlcmVkVGltZSgpIDogTWVkaWFUaW1lOjp6ZXJvVGltZSgp
OworCiAgICAgaW52YWxpZGF0ZUNhY2hlZER1cmF0aW9uKCk7CisKKyAgICBtX3BsYXllci0+bWVt
b3J5Q29zdENoYW5nZWQobWVtb3J5Q29zdCgpKTsKICAgICBtX3BsYXllci0+YnVmZmVyZWRUaW1l
UmFuZ2VzQ2hhbmdlZCgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKaW5kZXggNjI2N2I4MzMyMTI5OWIxM2VhN2VkMmE0MDVl
NGNiYjg1ZTQ0ODgzYi4uYThkMjMxMDgyMzAzZTNlYTVjNmY3NGQ5ZmNiYzgxN2ZkMmM4NDZlYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b24uaApAQCAtMjE0LDYgKzIxNCw4IEBAIHByb3RlY3RlZDoKICAgICBib29sIHN1cHBvcnRzRnVs
bHNjcmVlbigpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgc3VwcG9ydHNTY2FubmluZygpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KICAgICB1bnNpZ25lZCBsb25nIGxvbmcgZmls
ZVNpemUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0b3RhbEJ5dGVzKCk7IH0KKyAgICBib29s
IHN1cHBvcnRzTWVtb3J5Q29zdENoYW5nZWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVl
OyB9CisgICAgc2l6ZV90IG1lbW9yeUNvc3QoKSBvdmVycmlkZTsKIAogICAgIGJvb2wgaGFzU2lu
Z2xlU2VjdXJpdHlPcmlnaW4oKSBjb25zdCBvdmVycmlkZTsKIApAQCAtMjU2LDYgKzI1OCw3IEBA
IHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIE1lZGlhVGltZSBwbGF0Zm9ybU1pblRpbWVTZWVrYWJs
ZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIE1lZGlhVGltZSBwbGF0Zm9ybU1heFRpbWVMb2Fk
ZWQoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBNZWRpYVRpbWUgcGxhdGZvcm1EdXJhdGlvbigp
IGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGRvdWJsZSBwbGF0Zm9ybUluZGljYXRlZEJpdHJhdGUo
KSBjb25zdCB7IHJldHVybiAwOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgYmVnaW5Mb2FkaW5nTWV0
YWRhdGEoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNpemVDaGFuZ2VkKCkgPSAwOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQy5oCmluZGV4IDU5ZWNhNDUxMzRmZTZmNDA1OTkwMmUyMWNlN2U3ZTVhZGU4MGJm
YTIuLmNhYTUxNWQ5Y2NkNDBkZTI2Mzc1YzQzODlmNzM1NDhhM2QxZmNkYjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDLmgKQEAgLTM3LDYgKzM3LDcgQEAgT0JKQ19DTEFTUyBBVkFzc2V0UmVzb3VyY2VM
b2FkaW5nUmVxdWVzdDsKIE9CSkNfQ0xBU1MgQVZNZWRpYVNlbGVjdGlvbkdyb3VwOwogT0JKQ19D
TEFTUyBBVk91dHB1dENvbnRleHQ7CiBPQkpDX0NMQVNTIEFWUGxheWVySXRlbTsKK09CSkNfQ0xB
U1MgQVZQbGF5ZXJJdGVtQWNjZXNzTG9nRXZlbnQ7CiBPQkpDX0NMQVNTIEFWUGxheWVySXRlbUxl
Z2libGVPdXRwdXQ7CiBPQkpDX0NMQVNTIEFWUGxheWVySXRlbU1ldGFkYXRhQ29sbGVjdG9yOwog
T0JKQ19DTEFTUyBBVlBsYXllckl0ZW1NZXRhZGF0YU91dHB1dDsKQEAgLTEyNCw2ICsxMjUsOSBA
QCBwdWJsaWM6CiAgICAgdm9pZCBvdXRwdXRNZWRpYURhdGFXaWxsQ2hhbmdlKCk7CiAgICAgdm9p
ZCBwcm9jZXNzQ2hhcHRlclRyYWNrcygpOwogCisgICAgdm9pZCBuZXdBY2Nlc3NMb2dFbnRyeSgp
OworICAgIEFWUGxheWVySXRlbUFjY2Vzc0xvZ0V2ZW50ICpjdXJyZW50QWNjZXNzTG9nRXZlbnQo
KSBjb25zdDsKKwogcHJpdmF0ZToKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQogICAgIHZv
aWQgY2RtSW5zdGFuY2VBdHRhY2hlZChDRE1JbnN0YW5jZSYpIGZpbmFsOwpAQCAtMjEzLDYgKzIx
Nyw3IEBAIHByaXZhdGU6CiAgICAgTWVkaWFUaW1lIHBsYXRmb3JtTWF4VGltZVNlZWthYmxlKCkg
Y29uc3QgZmluYWw7CiAgICAgTWVkaWFUaW1lIHBsYXRmb3JtRHVyYXRpb24oKSBjb25zdCBmaW5h
bDsKICAgICBNZWRpYVRpbWUgcGxhdGZvcm1NYXhUaW1lTG9hZGVkKCkgY29uc3QgZmluYWw7Cisg
ICAgZG91YmxlIHBsYXRmb3JtSW5kaWNhdGVkQml0cmF0ZSgpIGNvbnN0IGZpbmFsOwogICAgIHZv
aWQgYmVnaW5Mb2FkaW5nTWV0YWRhdGEoKSBmaW5hbDsKICAgICB2b2lkIHNpemVDaGFuZ2VkKCkg
ZmluYWw7CiAgICAgdm9pZCByZXNvbHZlZFVSTENoYW5nZWQoKSBmaW5hbDsKQEAgLTM0Niw2ICsz
NTEsNyBAQCBwcml2YXRlOgogICAgIFJldGFpblB0cjxBVlBsYXllcj4gbV9hdlBsYXllcjsKICAg
ICBSZXRhaW5QdHI8QVZQbGF5ZXJJdGVtPiBtX2F2UGxheWVySXRlbTsKICAgICBSZXRhaW5QdHI8
QVZQbGF5ZXJMYXllcj4gbV92aWRlb0xheWVyOworICAgIG11dGFibGUgUmV0YWluUHRyPEFWUGxh
eWVySXRlbUFjY2Vzc0xvZ0V2ZW50PiBtX2N1cnJlbnRBY2Nlc3NMb2dFdmVudDsKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8VmlkZW9MYXllck1hbmFnZXJPYmpDPiBtX3ZpZGVvTGF5ZXJNYW5hZ2VyOwog
ICAgIE1lZGlhUGxheWVyOjpWaWRlb0dyYXZpdHkgbV92aWRlb0Z1bGxzY3JlZW5HcmF2aXR5IHsg
TWVkaWFQbGF5ZXI6OlZpZGVvR3Jhdml0eTo6UmVzaXplQXNwZWN0IH07CiAgICAgUmV0YWluUHRy
PFdlYkNvcmVBVkZNb3ZpZU9ic2VydmVyPiBtX29iamNPYnNlcnZlcjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDLm1tCmluZGV4IDRkODYxMTNiY2JlNDY5ZWM2ZTAyNTc5MTAyZDExMGVhOTMwMTAwOTYuLmU2
MTgzMTZlMWQyNjNmZjE0ZWYwODFhZmNkOWIwNjIwNGEwYWQyMzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQy5tbQpAQCAtMTk0LDYgKzE5NCw3IEBAIC0gKHZvaWQpbGVnaWJsZU91dHB1dDooaWQpb3V0
cHV0IGRpZE91dHB1dEF0dHJpYnV0ZWRTdHJpbmdzOihOU0FycmF5ICopc3RyaW5ncyBuCiAtICh2
b2lkKW91dHB1dFNlcXVlbmNlV2FzRmx1c2hlZDooaWQpb3V0cHV0OwogLSAodm9pZCltZXRhZGF0
YUNvbGxlY3RvcjooQVZQbGF5ZXJJdGVtTWV0YWRhdGFDb2xsZWN0b3IgKiltZXRhZGF0YUNvbGxl
Y3RvciBkaWRDb2xsZWN0RGF0ZVJhbmdlTWV0YWRhdGFHcm91cHM6KE5TQXJyYXk8QVZEYXRlUmFu
Z2VNZXRhZGF0YUdyb3VwICo+ICopbWV0YWRhdGFHcm91cHMgaW5kZXhlc09mTmV3R3JvdXBzOihO
U0luZGV4U2V0ICopaW5kZXhlc09mTmV3R3JvdXBzIGluZGV4ZXNPZk1vZGlmaWVkR3JvdXBzOihO
U0luZGV4U2V0ICopaW5kZXhlc09mTW9kaWZpZWRHcm91cHM7CiAtICh2b2lkKW1ldGFkYXRhT3V0
cHV0OihBVlBsYXllckl0ZW1NZXRhZGF0YU91dHB1dCAqKW91dHB1dCBkaWRPdXRwdXRUaW1lZE1l
dGFkYXRhR3JvdXBzOihOU0FycmF5PEFWVGltZWRNZXRhZGF0YUdyb3VwICo+ICopZ3JvdXBzIGZy
b21QbGF5ZXJJdGVtVHJhY2s6KEFWUGxheWVySXRlbVRyYWNrICopdHJhY2s7CistICh2b2lkKW5l
d0FjY2Vzc0xvZ0VudHJ5OihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbjsKIEBlbmQKIAog
QGludGVyZmFjZSBXZWJDb3JlQVZGTG9hZGVyRGVsZWdhdGUgOiBOU09iamVjdDxBVkFzc2V0UmVz
b3VyY2VMb2FkZXJEZWxlZ2F0ZT4gewpAQCAtMTE4Miw2ICsxMTgzLDggQEAgQUxMT1dfTkVXX0FQ
SV9XSVRIT1VUX0dVQVJEU19FTkQKICAgICBbbV9tZXRhZGF0YU91dHB1dCBzZXRBZHZhbmNlSW50
ZXJ2YWxGb3JEZWxlZ2F0ZUludm9jYXRpb246YXZQbGF5ZXJPdXRwdXRBZHZhbmNlSW50ZXJ2YWxd
OwogICAgIFttX2F2UGxheWVySXRlbSBhZGRPdXRwdXQ6bV9tZXRhZGF0YU91dHB1dC5nZXQoKV07
CiAKKyAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVy
Om1fb2JqY09ic2VydmVyLmdldCgpIHNlbGVjdG9yOkBzZWxlY3RvcihuZXdBY2Nlc3NMb2dFbnRy
eTopIG5hbWU6QVZQbGF5ZXJJdGVtTmV3QWNjZXNzTG9nRW50cnlOb3RpZmljYXRpb24gb2JqZWN0
Om1fYXZQbGF5ZXJJdGVtLmdldCgpXTsKKwogICAgIHNldERlbGF5Q2FsbGJhY2tzKGZhbHNlKTsK
IH0KIApAQCAtMTczNyw2ICsxNzQwLDEzIEBAIE1lZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDOjpwbGF0Zm9ybU1heFRpbWVMb2FkZWQoKSBjb25zdAogICAgIHJldHVy
biBtYXhUaW1lTG9hZGVkOyAgIAogfQogCitkb3VibGUgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQzo6cGxhdGZvcm1JbmRpY2F0ZWRCaXRyYXRlKCkgY29uc3QKK3sKKyAgICBpZiAo
YXV0byBpbmRpY2F0ZWRBdmVyYWdlQml0cmF0ZSA9IGN1cnJlbnRBY2Nlc3NMb2dFdmVudCgpLmlu
ZGljYXRlZEF2ZXJhZ2VCaXRyYXRlID4gMCkKKyAgICAgICAgcmV0dXJuIGluZGljYXRlZEF2ZXJh
Z2VCaXRyYXRlOworICAgIHJldHVybiBjdXJyZW50QWNjZXNzTG9nRXZlbnQoKS5pbmRpY2F0ZWRC
aXRyYXRlOworfQorCiB1bnNpZ25lZCBsb25nIGxvbmcgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQzo6dG90YWxCeXRlcygpIGNvbnN0CiB7CiAgICAgaWYgKCFtZXRhRGF0YUF2YWls
YWJsZSgpKQpAQCAtMzY2Myw2ICszNjczLDIyIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQzo6YXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCkKICNlbmRpZgogfQogCit2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Om5ld0FjY2Vzc0xvZ0VudHJ5
KCkKK3sKKyAgICBtX2N1cnJlbnRBY2Nlc3NMb2dFdmVudCA9IG5pbDsKK30KKworQVZQbGF5ZXJJ
dGVtQWNjZXNzTG9nRXZlbnQgKk1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmN1
cnJlbnRBY2Nlc3NMb2dFdmVudCgpIGNvbnN0Cit7CisgICAgaWYgKCFtX2F2UGxheWVySXRlbSkK
KyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIGlmICghbV9jdXJyZW50QWNjZXNzTG9nRXZlbnQp
CisgICAgICAgIG1fY3VycmVudEFjY2Vzc0xvZ0V2ZW50ID0gW21fYXZQbGF5ZXJJdGVtIGFjY2Vz
c0xvZ10uZXZlbnRzLmxhc3RPYmplY3Q7CisKKyAgICByZXR1cm4gbV9jdXJyZW50QWNjZXNzTG9n
RXZlbnQuZ2V0KCk7Cit9CisKIE5TQXJyYXkqIGFzc2V0TWV0YWRhdGFLZXlOYW1lcygpCiB7CiAg
ICAgc3RhdGljIE5TQXJyYXkqIGtleXMgPSBbW05TQXJyYXkgYWxsb2NdIGluaXRXaXRoT2JqZWN0
czoKQEAgLTM5NTEsNiArMzk3NywxNyBAQCAtICh2b2lkKW1ldGFkYXRhQ29sbGVjdG9yOihBVlBs
YXllckl0ZW1NZXRhZGF0YUNvbGxlY3RvciAqKW1ldGFkYXRhQ29sbGVjdG9yIGRpZAogICAgICAg
ICBwbGF5ZXItPm1ldGFkYXRhR3JvdXBEaWRBcnJpdmUobWV0YWRhdGFHcm91cHMsIGN1cnJlbnRU
aW1lKTsKICAgICB9KTsKIH0KKworLSAodm9pZCluZXdBY2Nlc3NMb2dFbnRyeTooTlNOb3RpZmlj
YXRpb24gKilub3RpZmljYXRpb24KK3sKKyAgICBVTlVTRURfUEFSQU0obm90aWZpY2F0aW9uKTsK
KyAgICBpZiAoIW1fcGxheWVyKQorICAgICAgICByZXR1cm47CisgICAgbV9wbGF5ZXItPnF1ZXVl
VGFza09uRXZlbnRMb29wKFtwbGF5ZXIgPSBtX3BsYXllcl0geworICAgICAgICBpZiAocGxheWVy
KQorICAgICAgICAgICAgcGxheWVyLT5uZXdBY2Nlc3NMb2dFbnRyeSgpOworICAgIH0pOworfQog
QGVuZAogCiBAaW1wbGVtZW50YXRpb24gV2ViQ29yZUFWRkxvYWRlckRlbGVnYXRlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U291cmNlQVZGT2JqQy5oCmluZGV4IGQ3MGM1MmY0YmMxYzQwMDgyYjdhMDI0MDJmZTdlOGMyZTI0
MTBjNWUuLjFhNjNiMjZmYzU2MjdiZDA0OTgyNmYzMGY0NjA1ZWFlM2YxYjRiMWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQy5oCkBAIC0yNDMsNyArMjQzLDcgQEAgcHJpdmF0ZToKIAogICAgIFN0
cmluZyBsYW5ndWFnZU9mUHJpbWFyeUF1ZGlvVHJhY2soKSBjb25zdCBvdmVycmlkZTsKIAotICAg
IHNpemVfdCBleHRyYU1lbW9yeUNvc3QoKSBjb25zdCBvdmVycmlkZTsKKyAgICBzaXplX3QgbWVt
b3J5Q29zdCgpIG92ZXJyaWRlOwogCiAgICAgc3RkOjpvcHRpb25hbDxWaWRlb1BsYXliYWNrUXVh
bGl0eU1ldHJpY3M+IHZpZGVvUGxheWJhY2tRdWFsaXR5TWV0cmljcygpIG92ZXJyaWRlOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakMubW0KaW5kZXggZWUwMTQzNTZmMDVmOTRkNDEyMmRlYTE1YjI2
MmMyNTc4YmFmYjRlNi4uYzkxOGVlNTMwN2Q1MDk2MGIzNmRmMjkzMDE4YTAwMTNlNTM3NzRjMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQpAQCAtNzg1LDcgKzc4NSw3IEBAIFN0cmluZyBN
ZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6Omxhbmd1YWdlT2ZQcmltYXJ5QXVk
aW9UcmFjaygpIGNvbnN0CiAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiB9CiAKLXNpemVfdCBN
ZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmV4dHJhTWVtb3J5Q29zdCgpIGNv
bnN0CitzaXplX3QgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjptZW1vcnlD
b3N0KCkKIHsKICAgICByZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmgKaW5kZXgg
YWZlZWM3NzU5OGE1ZTFmNzQxNWNmNTJjYzNmNmMxOWU2ODViMGIzMi4uZjliYmYzNTI4Zjc3ZDk5
YTQyYTA2YTRkZWYzNGIzNmY2N2YyZGJmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
dHJlYW1BVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmgKQEAg
LTE1NCw3ICsxNTQsNyBAQCBwcml2YXRlOgogCiAgICAgU3RyaW5nIGVuZ2luZURlc2NyaXB0aW9u
KCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICBzaXplX3QgZXh0cmFNZW1vcnlDb3N0KCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gMDsgfQorICAgIHNpemVfdCBtZW1vcnlDb3N0KCkgb3ZlcnJpZGUg
eyByZXR1cm4gMDsgfQogCiAgICAgYm9vbCBlbmRlZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IG1fZW5kZWQ7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwCmluZGV4IDU2NWI4YjI5M2FlY2RmNWU1MWZl
NWUxMDE2YzViN2E3ZTczM2Q4YTkuLjEyOWNlNDhlOTMxYzZjYmE0MGI2MDQ4YmE4YmZmMWI2NDBl
YTYzYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVN
ZWRpYVBsYXllclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKQEAgLTEyMiw2ICsxMjIsNyBAQCB2b2lkIFJlbW90
ZU1lZGlhUGxheWVyUHJveHk6OmdldENvbmZpZ3VyYXRpb24oUmVtb3RlTWVkaWFQbGF5ZXJDb25m
aWd1cmF0aW9uJiBjbwogICAgIGNvbmZpZ3VyYXRpb24uc3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRl
cmluZyA9IG1fcGxheWVyLT5zdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCk7CiAgICAgY29u
ZmlndXJhdGlvbi5zdXBwb3J0c1BsYXlBdEhvc3RUaW1lID0gbV9wbGF5ZXItPnN1cHBvcnRzUGxh
eUF0SG9zdFRpbWUoKTsKICAgICBjb25maWd1cmF0aW9uLnN1cHBvcnRzUGF1c2VBdEhvc3RUaW1l
ID0gbV9wbGF5ZXItPnN1cHBvcnRzUGF1c2VBdEhvc3RUaW1lKCk7CisgICAgY29uZmlndXJhdGlv
bi5zdXBwb3J0c01lbW9yeUNvc3RDaGFuZ2VkID0gbV9wbGF5ZXItPnN1cHBvcnRzTWVtb3J5Q29z
dENoYW5nZWQoKTsKIAogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCiAgICAg
Y29uZmlndXJhdGlvbi5jYW5QbGF5VG9XaXJlbGVzc1BsYXliYWNrVGFyZ2V0ID0gbV9wbGF5ZXIt
PmNhblBsYXlUb1dpcmVsZXNzUGxheWJhY2tUYXJnZXQoKTsKQEAgLTY2Miw2ICs2NjMsMTEgQEAg
dm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllckRpZFJlbW92ZVRleHRUcmFj
ayhXZWJDb3JlOjpJbmJhbmRUZXh0VHIKICAgICBtX3RleHRUcmFja3MucmVtb3ZlKCZ0cmFjayk7
CiB9CiAKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJNZW1vcnlDb3N0
Q2hhbmdlZChzaXplX3QgdG90YWxNZW1vcnlDb3N0KQoreworICAgIG1fd2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6TWVtb3J5Q29z
dENoYW5nZWQodG90YWxNZW1vcnlDb3N0KSwgbV9pZCk7Cit9CisKIHZvaWQgUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eTo6dGV4dFRyYWNrUmVwcmVzZW50YXRpb25Cb3VuZHNDaGFuZ2VkKGNvbnN0IElu
dFJlY3QmKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaAppbmRleCAwZTlm
M2Q3YTIxNDVkNzViOTQzZTJiNTZhMmQ4MGJiODA3M2RmOWUxLi45YWE3MTZmNjE5ZmE4OGJmYTY4
OWVjZDNkNTNlODNiYzRjODZmYzVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmgKQEAgLTI0MSw2ICsyNDEsNyBA
QCBwcml2YXRlOgogICAgIHZvaWQgbWVkaWFQbGF5ZXJEaWRSZW1vdmVWaWRlb1RyYWNrKFdlYkNv
cmU6OlZpZGVvVHJhY2tQcml2YXRlJikgZmluYWw7CiAgICAgdm9pZCBtZWRpYVBsYXllckRpZEFk
ZFRleHRUcmFjayhXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2tQcml2YXRlJikgZmluYWw7CiAgICAg
dm9pZCBtZWRpYVBsYXllckRpZFJlbW92ZVRleHRUcmFjayhXZWJDb3JlOjpJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlJikgZmluYWw7CisgICAgdm9pZCBtZWRpYVBsYXllck1lbW9yeUNvc3RDaGFuZ2Vk
KHNpemVfdCB0b3RhbE1lbW9yeUNvc3QpIGZpbmFsOwogCiAgICAgLy8gTm90IGltcGxlbWVudGVk
CiAgICAgdm9pZCBtZWRpYVBsYXllckZpcnN0VmlkZW9GcmFtZUF2YWlsYWJsZSgpIGZpbmFsOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXll
clByaXZhdGVSZW1vdGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9N
ZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCmluZGV4IDYyYjExZGY1ZWFmYTYzNWRiZDM2Yzcx
MGQ5ZDZkNWY2NWQ4YzM3YzYuLmY4N2YzNDU1OWE5ZTkwZTQ3MTFhOTZjY2E0NzQwNjNjNzUwODE3
YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKQEAgLTEyNzgsMTAgKzEyNzgsMTEg
QEAgU3RyaW5nIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6bGFuZ3VhZ2VPZlByaW1hcnlBdWRp
b1RyYWNrKCkgY29uc3QKICAgICByZXR1cm4gbV9jYWNoZWRTdGF0ZS5sYW5ndWFnZU9mUHJpbWFy
eUF1ZGlvVHJhY2s7CiB9CiAKLXNpemVfdCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmV4dHJh
TWVtb3J5Q29zdCgpIGNvbnN0Cit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6bWVtb3J5
Q29zdENoYW5nZWQoc2l6ZV90IG1lbW9yeUNvc3QpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsK
LSAgICByZXR1cm4gMDsKKyAgICBtX21lbW9yeUNvc3QgPSBtZW1vcnlDb3N0OworICAgIGlmIChS
ZWZQdHIgcGxheWVyID0gbV9wbGF5ZXIuZ2V0KCkpCisgICAgICAgIHBsYXllci0+bWVtb3J5Q29z
dENoYW5nZWQobWVtb3J5Q29zdCk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
Ojp1cGRhdGVWaWRlb1BsYXliYWNrTWV0cmljc1VwZGF0ZUludGVydmFsKGNvbnN0IFNlY29uZHMm
IGludGVydmFsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKaW5kZXggYjVmNWI1YmMxYzUyYTM5
OWM5MWJjNTBjYmFkZjVmZWM5ZjU1NWM0MC4uYTIxMzkxYjVhYWE1OGVhZGU1YmQ4ZGMxMTE2ZGY2
YjM2YWI3ZjY2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oCkBAIC0zNzEsNyArMzcxLDkg
QEAgcHJpdmF0ZToKIAogICAgIFN0cmluZyBsYW5ndWFnZU9mUHJpbWFyeUF1ZGlvVHJhY2soKSBj
b25zdCBmaW5hbDsKIAotICAgIHNpemVfdCBleHRyYU1lbW9yeUNvc3QoKSBjb25zdCBmaW5hbDsK
KyAgICBib29sIHN1cHBvcnRzTWVtb3J5Q29zdENoYW5nZWQoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBtX2NvbmZpZ3VyYXRpb24uc3VwcG9ydHNNZW1vcnlDb3N0Q2hhbmdlZDsgfQorICAgIHZvaWQg
bWVtb3J5Q29zdENoYW5nZWQoc2l6ZV90KTsKKyAgICBzaXplX3QgbWVtb3J5Q29zdCgpIGZpbmFs
IHsgcmV0dXJuIG1fbWVtb3J5Q29zdDsgfQogCiAgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpW
aWRlb1BsYXliYWNrUXVhbGl0eU1ldHJpY3M+IHZpZGVvUGxheWJhY2tRdWFsaXR5TWV0cmljcygp
IGZpbmFsOwogICAgIHZvaWQgdXBkYXRlVmlkZW9QbGF5YmFja01ldHJpY3NVcGRhdGVJbnRlcnZh
bChjb25zdCBTZWNvbmRzJik7CkBAIC00MzcsNiArNDM5LDcgQEAgcHJpdmF0ZToKICAgICBXZWJD
b3JlOjpNZWRpYVBsYXllcjo6VmlkZW9HcmF2aXR5IG1fdmlkZW9GdWxsc2NyZWVuR3Jhdml0eSB7
IFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpWaWRlb0dyYXZpdHk6OlJlc2l6ZUFzcGVjdCB9OwogICAg
IE1vbm90b25pY1RpbWUgbV9sYXN0UGxheWJhY2tRdWFsaXR5TWV0cmljc1F1ZXJ5VGltZTsKICAg
ICBTZWNvbmRzIG1fdmlkZW9QbGF5YmFja01ldHJpY3NVcGRhdGVJbnRlcnZhbDsKKyAgICBzaXpl
X3QgbV9tZW1vcnlDb3N0IHsgMCB9OwogICAgIGRvdWJsZSBtX3ZvbHVtZSB7IDEgfTsKICAgICBk
b3VibGUgbV9yYXRlIHsgMSB9OwogICAgIGxvbmcgbV9wbGF0Zm9ybUVycm9yQ29kZSB7IDAgfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW4KaW5kZXggMTE4ZTAy
NWE2OWIzZmE0MWY1NTllNWFhMGJmOThkMzc5MWJlNWRlNC4uY2U2NGRhYjM5NTNhZjAzMWE0NjEz
NzljN2QyNDVhMmU5MDE2MmMzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW4KKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUu
bWVzc2FnZXMuaW4KQEAgLTc0LDYgKzc0LDcgQEAgbWVzc2FnZXMgLT4gTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlIE5vdFJlZkNvdW50ZWQgewogICAgIFJlc291cmNlTm90U3VwcG9ydGVkKCkKIAog
ICAgIEFjdGl2ZVNvdXJjZUJ1ZmZlcnNDaGFuZ2VkKCkKKyAgICBNZW1vcnlDb3N0Q2hhbmdlZChz
aXplX3QgdG90YWxNZW1vcnlDb3N0KQogCiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKICAg
ICBXYWl0aW5nRm9yS2V5Q2hhbmdlZChib29sIHdhaXRpbmdGb3JLZXkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyQ29uZmln
dXJhdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRp
YVBsYXllckNvbmZpZ3VyYXRpb24uaAppbmRleCA1N2E2MzNhZGRiN2JlNzRkZjc5N2QzNzczZjVi
Y2VjY2IxYTVhNGI3Li5lZDhlYmFlMDVlYTQwMjFkZDUwOGI4ZTdhYjhmODdhOTJmYTU0YmJhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyQ29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uLmgKQEAgLTQyLDYgKzQyLDcgQEAg
c3RydWN0IFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbiB7CiAgICAgYm9vbCBzdXBwb3J0
c0FjY2VsZXJhdGVkUmVuZGVyaW5nIHsgZmFsc2UgfTsKICAgICBib29sIHN1cHBvcnRzUGxheUF0
SG9zdFRpbWUgeyBmYWxzZSB9OwogICAgIGJvb2wgc3VwcG9ydHNQYXVzZUF0SG9zdFRpbWUgeyBm
YWxzZSB9OworICAgIGJvb2wgc3VwcG9ydHNNZW1vcnlDb3N0Q2hhbmdlZCB7IGZhbHNlIH07CiAg
ICAgYm9vbCBjYW5QbGF5VG9XaXJlbGVzc1BsYXliYWNrVGFyZ2V0IHsgZmFsc2UgfTsKICAgICBi
b29sIHNob3VsZElnbm9yZUludHJpbnNpY1NpemUgeyBmYWxzZSB9OwogCkBAIC01Niw2ICs1Nyw3
IEBAIHN0cnVjdCBSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24gewogICAgICAgICBlbmNv
ZGVyIDw8IHN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmc7CiAgICAgICAgIGVuY29kZXIgPDwg
c3VwcG9ydHNQbGF5QXRIb3N0VGltZTsKICAgICAgICAgZW5jb2RlciA8PCBzdXBwb3J0c1BhdXNl
QXRIb3N0VGltZTsKKyAgICAgICAgZW5jb2RlciA8PCBzdXBwb3J0c01lbW9yeUNvc3RDaGFuZ2Vk
OwogICAgICAgICBlbmNvZGVyIDw8IGNhblBsYXlUb1dpcmVsZXNzUGxheWJhY2tUYXJnZXQ7CiAg
ICAgICAgIGVuY29kZXIgPDwgc2hvdWxkSWdub3JlSW50cmluc2ljU2l6ZTsKICAgICB9CkBAIC0x
MDMsNiArMTA1LDExIEBAIHN0cnVjdCBSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24gewog
ICAgICAgICBpZiAoIXN1cHBvcnRzUGF1c2VBdEhvc3RUaW1lKQogICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKIAorICAgICAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IHN1cHBvcnRzTWVt
b3J5Q29zdENoYW5nZWQ7CisgICAgICAgIGRlY29kZXIgPj4gc3VwcG9ydHNNZW1vcnlDb3N0Q2hh
bmdlZDsKKyAgICAgICAgaWYgKCFzdXBwb3J0c01lbW9yeUNvc3RDaGFuZ2VkKQorICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwogICAgICAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IGNh
blBsYXlUb1dpcmVsZXNzUGxheWJhY2tUYXJnZXQ7CiAgICAgICAgIGRlY29kZXIgPj4gY2FuUGxh
eVRvV2lyZWxlc3NQbGF5YmFja1RhcmdldDsKICAgICAgICAgaWYgKCFjYW5QbGF5VG9XaXJlbGVz
c1BsYXliYWNrVGFyZ2V0KQpAQCAtMTIyLDYgKzEyOSw3IEBAIHN0cnVjdCBSZW1vdGVNZWRpYVBs
YXllckNvbmZpZ3VyYXRpb24gewogICAgICAgICAgICAgKnN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5k
ZXJpbmcsCiAgICAgICAgICAgICAqc3VwcG9ydHNQbGF5QXRIb3N0VGltZSwKICAgICAgICAgICAg
ICpzdXBwb3J0c1BhdXNlQXRIb3N0VGltZSwKKyAgICAgICAgICAgICpzdXBwb3J0c01lbW9yeUNv
c3RDaGFuZ2VkLAogICAgICAgICAgICAgKmNhblBsYXlUb1dpcmVsZXNzUGxheWJhY2tUYXJnZXQs
CiAgICAgICAgICAgICAqc2hvdWxkSWdub3JlSW50cmluc2ljU2l6ZSwKICAgICAgICAgfX07CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggYjFhZDIzNjVkNTU5ZWM2NjBjZDY5Yjk3ODg4MDlkNWZhNzQ1N2Y4NC4uZmVkNzk3MGY4
MThlNzkxMGI0ODE0ODVmMTNjYjE5Y2M3NmQyMTY3MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisy
MDIxLTExLTE3ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEhU
TUxNZWRpYUVsZW1lbnQ6IEFkb3B0IHJlcG9ydEV4dHJhTWVtb3J5VmlzaXRlZC9BbGxvY2F0ZWQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzE0Ngor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC90
ZXN0cy9tZWRpYS9obHMvaGxzLW1lZGlhLWdjLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9tZWRpYS9obHMvaGxzLW1lZGlhLWdjLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIG1lZGlhL21lZGlhLWdjLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogbWVkaWEv
bWVkaWEtZ2MuaHRtbDogQWRkZWQuCisKIDIwMjEtMTEtMTEgIEFudHRpIEtvaXZpc3RvICA8YW50
dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFtDU1MgQ2FzY2FkZSBMYXllcnNdIFN1cHBvcnQgJ3Jl
dmVydC1sYXllcicgdmFsdWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVk
aWEvaGxzL2hscy1tZWRpYS1nYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L21lZGlhL2hscy9obHMtbWVkaWEtZ2MtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdkYTdhYzkz
Y2RhYWFlZWEzZmVhNzkzZDZlZjE1NDU3NWQwM2JiNWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL2hscy9obHMtbWVkaWEtZ2MtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsNCBAQAorVGVzdCB0aGF0IGNyZWF0aW5nIG1lZGlhIGVsZW1lbnRzIHdpdGggSExT
IHNvdXJjZXMgd2lsbCB0cmlnZ2VyIEdDLgorRVhQRUNURUQgKGFueUNvbGxlY3RlZCgpID09ICd0
cnVlJykgT0sKK0VORCBPRiBURVNUCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbWVkaWEvaGxzL2hscy1tZWRpYS1nYy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9t
ZWRpYS9obHMvaGxzLW1lZGlhLWdjLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTIwMWYyZTZkZTg0NTQyNTI4
ZmJmOWY1NGYzZDQyOTRhZDE3ODJmMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbWVkaWEvaGxzL2hscy1tZWRpYS1nYy5odG1sCkBAIC0wLDAgKzEsNTEgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+bWVkaWEtZ2M8L3RpdGxl
PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9tZWRpYS1yZXNvdXJjZXMvdmlkZW8tdGVzdC5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9h
ZCcsIGFzeW5jIGV2ZW50ID0+IHsKKyAgICAgICAgY29uc29sZVdyaXRlKCdUZXN0IHRoYXQgY3Jl
YXRpbmcgbWVkaWEgZWxlbWVudHMgd2l0aCBITFMgc291cmNlcyB3aWxsIHRyaWdnZXIgR0MuJykK
KworICAgICAgICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAgIGZhaWxUZXN0
KCdUaGlzIHRlc3QgcmVxdWlyZXMgd2luZG93LmludGVybmFscycpOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisKKyAgICAgICAgbGV0IG9ic2VydmVycyA9IFtdOworICAgICAgICBm
b3IgKGxldCBpID0gMDsgaSA8IDEwMDA7ICsraSkgeworICAgICAgICAgICAgbGV0IHRlc3RPYmpl
Y3QgPSB7IHRlc3RQcm9wZXJ0eSA6ICd0ZXN0VmFsdWUnIH07CisgICAgICAgICAgICBsZXQgb2Jz
ZXJ2ZXIgPSBpbnRlcm5hbHMub2JzZXJ2ZUdDKHRlc3RPYmplY3QpOworICAgICAgICAgICAgb2Jz
ZXJ2ZXJzLnB1c2gob2JzZXJ2ZXIpOworICAgICAgICAgICAgdGVzdE9iamVjdCA9IG51bGw7Cisg
ICAgICAgIH0KKworICAgICAgICB3aW5kb3cuYW55Q29sbGVjdGVkID0gKCkgPT4geworICAgICAg
ICAgICAgZm9yIChsZXQgb2JzZXJ2ZXIgb2Ygb2JzZXJ2ZXJzKSB7CisgICAgICAgICAgICAgICAg
aWYgKG9ic2VydmVyLndhc0NvbGxlY3RlZCkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH07
CisKKyAgICAgICAgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgnYW55Q29sbGVjdGVkKCknLCB0cnVl
KS50aGVuKCgpID0+IHsKKyAgICAgICAgICAgIGNvbXBsZXRlZCA9IHRydWU7CisgICAgICAgICAg
ICBlbmRUZXN0KCk7CisgICAgICAgIH0pOworCisgICAgICAgIGxldCBjb21wbGV0ZWQgPSBmYWxz
ZTsKKyAgICAgICAgbGV0IHZpZGVvRWxlbWVudHMgPSBbXTsKKyAgICAgICAgd2hpbGUgKCFjb21w
bGV0ZWQpIHsKKyAgICAgICAgICAgIGxldCB2aWRlbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J3ZpZGVvJyk7CisgICAgICAgICAgICB2aWRlby5tdXRlZDsKKyAgICAgICAgICAgIHZpZGVvLnNy
YyA9ICIuLi9yZXNvdXJjZXMvaGxzL2JpcGJvcC9wcm9nX2luZGV4Lm0zdTgiOworICAgICAgICAg
ICAgdmlkZW8ubG9hZCgpOworICAgICAgICAgICAgYXdhaXQgd2FpdEZvcih2aWRlbywgJ2NhbnBs
YXl0aHJvdWdoJywgdHJ1ZSk7CisgICAgICAgICAgICB2aWRlb0VsZW1lbnRzLnB1c2godmlkZW8p
OworICAgICAgICB9CisgICAgfSk7CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzwv
Ym9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1nYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRp
YS9tZWRpYS1nYy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWVjNjQ0NTk3ZTEwMWFjYzc4ODll
M2EzMGZiYmI5MDdlOTQ4MmZiYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlh
L21lZGlhLWdjLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1Rlc3QgdGhhdCBjcmVhdGlu
ZyBtZWRpYSBlbGVtZW50cyB3aWxsIHRyaWdnZXIgR0MuCitFWFBFQ1RFRCAoYW55Q29sbGVjdGVk
KCkgPT0gJ3RydWUnKSBPSworRU5EIE9GIFRFU1QKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
bWVkaWEvbWVkaWEtZ2MuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLWdjLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uODRkYzZkNWI5MGM1NzMwZDFlMGI3YTEyYjlhZmExNThhMTcxMzgwMwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLWdjLmh0bWwKQEAgLTAsMCArMSw1
MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRsZT5tZWRpYS1n
YzwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9InZpZGVvLXRlc3QuanMiPjwvc2NyaXB0PgorICAg
IDxzY3JpcHQgc3JjPSJtZWRpYS1maWxlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAg
IHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgYXN5bmMgZXZlbnQgPT4geworICAgICAg
ICBjb25zb2xlV3JpdGUoJ1Rlc3QgdGhhdCBjcmVhdGluZyBtZWRpYSBlbGVtZW50cyB3aWxsIHRy
aWdnZXIgR0MuJykKKworICAgICAgICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAg
ICAgIGZhaWxUZXN0KCdUaGlzIHRlc3QgcmVxdWlyZXMgd2luZG93LmludGVybmFscycpOworICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgbGV0IG9ic2VydmVycyA9IFtd
OworICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDEwMDA7ICsraSkgeworICAgICAgICAgICAg
bGV0IHRlc3RPYmplY3QgPSB7IHRlc3RQcm9wZXJ0eSA6ICd0ZXN0VmFsdWUnIH07CisgICAgICAg
ICAgICBsZXQgb2JzZXJ2ZXIgPSBpbnRlcm5hbHMub2JzZXJ2ZUdDKHRlc3RPYmplY3QpOworICAg
ICAgICAgICAgb2JzZXJ2ZXJzLnB1c2gob2JzZXJ2ZXIpOworICAgICAgICAgICAgdGVzdE9iamVj
dCA9IG51bGw7CisgICAgICAgIH0KKworICAgICAgICB3aW5kb3cuYW55Q29sbGVjdGVkID0gKCkg
PT4geworICAgICAgICAgICAgZm9yIChsZXQgb2JzZXJ2ZXIgb2Ygb2JzZXJ2ZXJzKSB7CisgICAg
ICAgICAgICAgICAgaWYgKG9ic2VydmVyLndhc0NvbGxlY3RlZCkKKyAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgIH07CisKKyAgICAgICAgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgnYW55Q29sbGVj
dGVkKCknLCB0cnVlKS50aGVuKCgpID0+IHsKKyAgICAgICAgICAgIGNvbXBsZXRlZCA9IHRydWU7
CisgICAgICAgICAgICBlbmRUZXN0KCk7CisgICAgICAgIH0pOworCisgICAgICAgIGxldCBjb21w
bGV0ZWQgPSBmYWxzZTsKKyAgICAgICAgd2luZG93LnZpZGVvRWxlbWVudHMgPSBbXTsKKyAgICAg
ICAgd2hpbGUgKCFjb21wbGV0ZWQpIHsKKyAgICAgICAgICAgIGxldCB2aWRlbyA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7CisgICAgICAgICAgICB2aWRlby5tdXRlZDsKKyAgICAg
ICAgICAgIHZpZGVvLnNyYyA9IGZpbmRNZWRpYUZpbGUoJ3ZpZGVvJywgJ2NvbnRlbnQvdGVzdCcp
OworICAgICAgICAgICAgdmlkZW8ubG9hZCgpOworICAgICAgICAgICAgYXdhaXQgd2FpdEZvcih2
aWRlbywgJ2NhbnBsYXl0aHJvdWdoJywgdHJ1ZSk7CisgICAgICAgICAgICB2aWRlb0VsZW1lbnRz
LnB1c2godmlkZW8pOworICAgICAgICB9CisgICAgfSk7CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444693</attachid>
            <date>2021-11-18 09:32:11 -0800</date>
            <delta_ts>2021-11-18 12:59:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233146-20211118093211.patch</filename>
            <type>text/plain</type>
            <size>37612</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1NjM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmUwMDg0ZmFkOGZiODEw
YTFiMjUxMDE3NmE1Nzc2NDRkYjI1NzE5Yy4uY2Y2YWIxNjdhYTlhMDVlNTU1N2VlYjRmZjU2ZjA2
ZTYzY2JlYjg1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDIxLTExLTE2ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEhUTUxNZWRpYUVsZW1lbnQ6
IEFkb3B0IHJlcG9ydEV4dHJhTWVtb3J5VmlzaXRlZC9BbGxvY2F0ZWQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzE0NgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzOiBodHRwL3Rlc3RzL21lZGlh
L2hscy9obHMtbWVkaWEtZ2MuaHRtbAorICAgICAgICAgICAgICAgbWVkaWEvbWVkaWEtZ2MuaHRt
bAorCisgICAgICAgIENhbGwgcmVwb3J0RXh0cmFNZW1vcnlBbGxvY2F0ZWQoKSB3aGVuZXZlciB0
aGUgKGVzdGltYXRlZCkgbnVtYmVyIG9mIGJ5dGVzIGFsbG9jYXRlZCBpbmNyZWFzZXMsCisgICAg
ICAgIGFuZCBhZG9wdCBgUmVwb3J0RXh0cmFNZW1vcnlDb3N0YCBpbiBIVE1MTWVkaWFFbGVtZW50
LmlkbCwgd2hpY2ggd2lsbCBjYWxsIHJlcG9ydEV4dHJhTWVtb3J5VmlzaXRlZCgpCisgICAgICAg
IG9uIHRoZSBtZWRpYSBlbGVtZW50J3MgYmVoYWxmIGR1cmluZyBHQy4KKworICAgICAgICBUaGUg
ZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBvZiBNZWRpYVBsYXllclByaXZhdGU6Om1lbW9yeUNvc3Qo
KSBkZXJpdmVzIHRoZSBwZXJjZW50YWdlIG9mIGxvYWRlZCBtZWRpYQorICAgICAgICBkYXRhIHRo
cm91Z2ggbG9hZGVkVGltZVJhbmdlcygpIGFuZCBkdXJhdGlvbigpLCBhbmQgZGl2aWRlcyB0b3Rh
bEJ5dGVzKCkgYnkgdGhhdCBhbW91bnQuIEhvd2V2ZXIsIGZvcgorICAgICAgICBITFMgc3RyZWFt
cywgZHVyYXRpb24oKSBhbmQgdG90YWxCeXRlcygpIG1heSBiZSBlbXB0eSBvciBvdGhlcndpc2Ug
bm9uLWZpbml0ZS4gSW4gdGhhdCBjYXNlLCB1c2UgdGhlCisgICAgICAgIEFWUGxheWVySXRlbUFj
Y2Vzc0xvZyB0byBleHRyYWN0IGluZm9ybWF0aW9uIGFib3V0IHRoZSBzdHJlYW0ncyByZXBvcnRl
ZCBiaXRyYXRlLCBhbmQgbXVsdGlwbHkgdGhhdAorICAgICAgICBiaXRyYXRlIGJ5IHRoZSBkdXJh
dGlvbiBvZiBsb2FkZWRUaW1lUmFuZ2VzKCkgYXMgYW4gZXN0aW1hdGUgb2YgdGhlIE1lZGlhUGxh
eWVyUHJpdmF0ZSdzIG1lbW9yeUNvc3QoKS4KKworICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpwYXVzZUFmdGVy
RGV0YWNoZWRUYXNrKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6Om1lbW9y
eUNvc3QgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQ
bGF5ZXJNZW1vcnlDb3N0Q2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVt
ZW50OjpjbGVhck1lZGlhUGxheWVyKToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQu
aDoKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaWRsOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyOjptZW1vcnlDb3N0Q2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6
bWVtb3J5Q29zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6ZXh0cmFNZW1vcnlD
b3N0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBs
YXllci5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJDbGllbnQ6Om1lZGlhUGxheWVy
TWVtb3J5Q29zdENoYW5nZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyUHJpdmF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJm
YWNlOjptZW1vcnlDb3N0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUlu
dGVyZmFjZTo6ZXh0cmFNZW1vcnlDb3N0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6
bWVtb3J5Q29zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb246OmxvYWRlZFRpbWVSYW5nZXNDaGFuZ2VkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmg6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnBsYXRmb3JtSW5k
aWNhdGVkQml0cmF0ZSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVBVlBsYXllckl0ZW0pOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGxhdGZvcm1JbmRpY2F0ZWRC
aXRyYXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakM6Om5ld0FjY2Vzc0xvZ0VudHJ5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmN1cnJlbnRBY2Nlc3NMb2dFdmVudCBjb25z
dCk6CisgICAgICAgICgtW1dlYkNvcmVBVkZNb3ZpZU9ic2VydmVyIG5ld0FjY2Vzc0xvZ0VudHJ5
Ol0pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZG
T2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQzo6bWVtb3J5Q29zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakM6OmV4dHJhTWVtb3J5Q29zdCBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmg6CisKIDIwMjEtMTEtMTEgIEplciBOb2JsZSAgPGpl
ci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gQWRvcHQgLVtBVkF1ZGlvU2Vzc2lv
biBzZXRBdWRpdFRva2Vuc0ZvclByb2Nlc3NBc3NlcnRpb246XQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5k
ZXggMGJhYjlhZTA4ZjNlZGE3NDlmYzkwYTEwOTY3OWQ4MjM4ZWY0MjFhNC4uM2EzMjAyZjE2NTM0
NWVhY2RkMTc3YmFmYjQ3MDhjYjM3YmE0M2Y2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
UEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTMgQEAKKzIwMjEtMTEtMTYgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisK
KyAgICAgICAgSFRNTE1lZGlhRWxlbWVudDogQWRvcHQgcmVwb3J0RXh0cmFNZW1vcnlWaXNpdGVk
L0FsbG9jYXRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjMzMTQ2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBwYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaDoKKyAgICAgICAgKiBwYWwvY29j
b2EvQVZGb3VuZGF0aW9uU29mdExpbmsubW06CisKIDIwMjEtMTEtMTUgIEplciBOb2JsZSAgPGpl
ci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gQWRvcHQgLVtBVkF1ZGlvU2Vzc2lv
biBzZXRBdWRpdFRva2Vuc0ZvclByb2Nlc3NBc3NlcnRpb246XQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA2NWEwY2Yw
MzYwMzg2YThhYzU2ZGExOTNmNDg3ZTM1Y2NiMDA4MmY2Li5iMDI0NjNiN2U0YzI5OTI5ZTk3MmNj
ZmVmNjMyMmM4NzA5OTE3YWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTExLTE2
ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEhUTUxNZWRpYUVs
ZW1lbnQ6IEFkb3B0IHJlcG9ydEV4dHJhTWVtb3J5VmlzaXRlZC9BbGxvY2F0ZWQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzE0NgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBhc3MgbWVtb3J5Q29zdCBp
bmZvcm1hdGlvbiBhY3Jvc3MgdGhlIEdQVS9XZWJDb250ZW50IHByb2Nlc3MgYm91bmRhcnkuCisK
KyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllck1lbW9y
eUNvc3RDaGFuZ2VkKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxh
eWVyUHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclBy
aXZhdGVSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6Om1lbW9yeUNvc3RDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlOjpleHRyYU1lbW9yeUNvc3QgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIFdl
YlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oOgorICAgICAgICAq
IFdlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5p
bjoKKwogMjAyMS0xMS0xMSAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CiAKICAgICAg
ICAgV0tTeXN0ZW1QcmV2aWV3VmlldyBzaG91bGQgYmUgY2FsbGVkIFdLVVNEUHJldmlld1ZpZXcK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29m
dExpbmsuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExp
bmsuaAppbmRleCA5ZGI5YWY4ZjdlYzFhZmI0ZjE4MDFlODY2ZWY0MDY3OTZmZjhjNWQzLi4wZjAw
M2UwZWNiOTkxYjhjODE3NjM3OTg3OGI5NzhlYzJmMjZhZDNlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oCkBAIC0xNDIsNiAr
MTQyLDggQEAgU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBBVkZvdW5kYXRpb24s
IEFWQ2FwdHVyZURldmljZVdhc0Rpc2Nvbm5lY3RlZE4KICNkZWZpbmUgQVZDYXB0dXJlRGV2aWNl
V2FzRGlzY29ubmVjdGVkTm90aWZpY2F0aW9uIFBBTDo6Z2V0X0FWRm91bmRhdGlvbl9BVkNhcHR1
cmVEZXZpY2VXYXNEaXNjb25uZWN0ZWROb3RpZmljYXRpb24oKQogU09GVF9MSU5LX0NPTlNUQU5U
X0ZPUl9IRUFERVIoUEFMLCBBVkZvdW5kYXRpb24sIEFWUGxheWVySXRlbURpZFBsYXlUb0VuZFRp
bWVOb3RpZmljYXRpb24sIE5TU3RyaW5nICopCiAjZGVmaW5lIEFWUGxheWVySXRlbURpZFBsYXlU
b0VuZFRpbWVOb3RpZmljYXRpb24gUEFMOjpnZXRfQVZGb3VuZGF0aW9uX0FWUGxheWVySXRlbURp
ZFBsYXlUb0VuZFRpbWVOb3RpZmljYXRpb24oKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFE
RVIoUEFMLCBBVkZvdW5kYXRpb24sIEFWUGxheWVySXRlbU5ld0FjY2Vzc0xvZ0VudHJ5Tm90aWZp
Y2F0aW9uLCBOU1N0cmluZyAqKQorI2RlZmluZSBBVlBsYXllckl0ZW1OZXdBY2Nlc3NMb2dFbnRy
eU5vdGlmaWNhdGlvbiBQQUw6OmdldF9BVkZvdW5kYXRpb25fQVZQbGF5ZXJJdGVtTmV3QWNjZXNz
TG9nRW50cnlOb3RpZmljYXRpb24oKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFM
LCBBVkZvdW5kYXRpb24sIEFWU3RyZWFtU2Vzc2lvbkNvbnRlbnRQcm90ZWN0aW9uU2Vzc2lvbklk
ZW50aWZpZXJDaGFuZ2VkTm90aWZpY2F0aW9uLCBOU1N0cmluZyAqKQogI2RlZmluZSBBVlN0cmVh
bVNlc3Npb25Db250ZW50UHJvdGVjdGlvblNlc3Npb25JZGVudGlmaWVyQ2hhbmdlZE5vdGlmaWNh
dGlvbiBQQUw6OmdldF9BVkZvdW5kYXRpb25fQVZTdHJlYW1TZXNzaW9uQ29udGVudFByb3RlY3Rp
b25TZXNzaW9uSWRlbnRpZmllckNoYW5nZWROb3RpZmljYXRpb24oKQogU09GVF9MSU5LX0NPTlNU
QU5UX0ZPUl9IRUFERVIoUEFMLCBBVkZvdW5kYXRpb24sIEFWU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyRmFpbGVkVG9EZWNvZGVOb3RpZmljYXRpb24sIE5TU3RyaW5nKikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLm1tCmluZGV4IGQy
MWQ0OWNkNzcwMjQzNDI3NjY4ZTg3MDg2MTUzNDFjZDZjNjQ1MWEuLjliMjRmY2EwZDhiZGZkMTk3
YzQwM2Q5ZjNkZTYyYzkwMzE1ZTAzM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsubW0KKysrIGIvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5tbQpAQCAtMTcxLDYgKzE3MSw3IEBAIFNP
RlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9u
LCBBVk91dE9mQmFuZEFsdGVybmF0CiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRI
X0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZPdXRPZkJhbmRBbHRlcm5hdGVUcmFja01lZGlh
Q2hhcmFjdGVyc3RpY3NLZXksIE5TU3RyaW5nICosIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfQ09O
U1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZPdXRPZkJh
bmRBbHRlcm5hdGVUcmFja1NvdXJjZUtleSwgTlNTdHJpbmcgKiwgUEFMX0VYUE9SVCkKIFNPRlRf
TElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBB
VlBsYXllckl0ZW1EaWRQbGF5VG9FbmRUaW1lTm90aWZpY2F0aW9uLCBOU1N0cmluZyAqLCBQQUxf
RVhQT1JUKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBB
VkZvdW5kYXRpb24sIEFWUGxheWVySXRlbU5ld0FjY2Vzc0xvZ0VudHJ5Tm90aWZpY2F0aW9uLCBO
U1N0cmluZyAqLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lU
SF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWUGxheWVySXRlbUxlZ2libGVPdXRwdXRUZXh0
U3R5bGluZ1Jlc29sdXRpb25Tb3VyY2VBbmRSdWxlc09ubHksIE5TU3RyaW5nICosIFBBTF9FWFBP
UlQpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIEFWRm91
bmRhdGlvbiwgQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJGYWlsZWRUb0RlY29kZU5vdGlmaWNh
dGlvbiwgTlNTdHJpbmcqLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VS
Q0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyRmFpbGVkVG9EZWNvZGVOb3RpZmljYXRpb25FcnJvcktleSwgTlNTdHJpbmcqLCBQQUxfRVhQ
T1JUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggMzIzZmM0
ODEyZTM4N2Y2YzU5M2Y0NmMyY2M0ZmIwZTA2MmQ5N2QwZi4uZDAyMDdiYTM2NzU2NDYwZjYwNDM1
YTUwNGE2NWU4MWE4OThmOGY1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwCkBAIC04NTQsMTggKzg1NCwyNiBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnBhdXNl
QWZ0ZXJEZXRhY2hlZFRhc2soKQogCiAgICAgaWYgKCFtX3BsYXllcikKICAgICAgICAgcmV0dXJu
OworfQogCi0gICAgc2l6ZV90IGV4dHJhTWVtb3J5Q29zdCA9IG1fcGxheWVyLT5leHRyYU1lbW9y
eUNvc3QoKTsKLSAgICBpZiAoZXh0cmFNZW1vcnlDb3N0ID4gbV9yZXBvcnRlZEV4dHJhTWVtb3J5
Q29zdCkgewotICAgICAgICBKU0M6OlZNJiB2bSA9IGNvbW1vblZNKCk7Ci0gICAgICAgIEpTQzo6
SlNMb2NrSG9sZGVyIGxvY2sodm0pOworc2l6ZV90IEhUTUxNZWRpYUVsZW1lbnQ6Om1lbW9yeUNv
c3QoKSBjb25zdAoreworICAgIC8vIE1heSBiZSBjYWxsZWQgZnJvbSBhIEdDIG1hcmtpbmcgb3Ig
Y29sbGVjdGluZyB0aHJlYWQuCisgICAgcmV0dXJuIG1fcmVwb3J0ZWRFeHRyYU1lbW9yeUNvc3Q7
Cit9CiAKLSAgICAgICAgc2l6ZV90IGV4dHJhTWVtb3J5Q29zdERlbHRhID0gZXh0cmFNZW1vcnlD
b3N0IC0gbV9yZXBvcnRlZEV4dHJhTWVtb3J5Q29zdDsKLSAgICAgICAgbV9yZXBvcnRlZEV4dHJh
TWVtb3J5Q29zdCA9IGV4dHJhTWVtb3J5Q29zdDsKLSAgICAgICAgLy8gRklYTUU6IEFkb3B0IHJl
cG9ydEV4dHJhTWVtb3J5VmlzaXRlZCwgYW5kIHN3aXRjaCB0byByZXBvcnRFeHRyYU1lbW9yeUFs
bG9jYXRlZC4KLSAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE0MjU5NQotICAgICAgICB2bS5oZWFwLmRlcHJlY2F0ZWRSZXBvcnRFeHRyYU1lbW9yeShl
eHRyYU1lbW9yeUNvc3REZWx0YSk7Ci0gICAgfQordm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRp
YVBsYXllck1lbW9yeUNvc3RDaGFuZ2VkKHNpemVfdCBuZXdNZW1vcnlDb3N0KQoreworICAgIGlm
IChuZXdNZW1vcnlDb3N0ID09IG1fcmVwb3J0ZWRFeHRyYU1lbW9yeUNvc3QpCisgICAgICAgIHJl
dHVybjsKKworICAgIGF1dG8gb2xkTWVtb3J5Q29zdCA9IG1fcmVwb3J0ZWRFeHRyYU1lbW9yeUNv
c3QuZXhjaGFuZ2UobmV3TWVtb3J5Q29zdCk7CisgICAgaWYgKG5ld01lbW9yeUNvc3QgPCBvbGRN
ZW1vcnlDb3N0KQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvJiB2bSA9IHNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKS0+dm0oKTsKKyAgICBKU0M6OkpTTG9ja0hvbGRlciBsb2NrKHZtKTsKKyAg
ICB2bS5oZWFwLnJlcG9ydEV4dHJhTWVtb3J5QWxsb2NhdGVkKG5ld01lbW9yeUNvc3QgLSBvbGRN
ZW1vcnlDb3N0KTsKIH0KIAogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpyZW1vdmVkRnJvbUFuY2Vz
dG9yKFJlbW92YWxUeXBlIHJlbW92YWxUeXBlLCBDb250YWluZXJOb2RlJiBvbGRQYXJlbnRPZlJl
bW92ZWRUcmVlKQpAQCAtNTg1Myw2ICs1ODYxLDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpj
bGVhck1lZGlhUGxheWVyKCkKICAgICAgICAgbV9wbGF5ZXItPmludmFsaWRhdGUoKTsKICAgICAg
ICAgbV9wbGF5ZXIgPSBudWxscHRyOwogICAgICAgICBtX2NhY2hlZFN1cHBvcnRzQWNjZWxlcmF0
ZWRSZW5kZXJpbmcgPSBmYWxzZTsKKyAgICAgICAgbWVkaWFQbGF5ZXJNZW1vcnlDb3N0Q2hhbmdl
ZCgwKTsKICAgICB9CiAgICAgc2NoZWR1bGVQbGF5YmFja0NvbnRyb2xzTWFuYWdlclVwZGF0ZSgp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IDJlY2JmNWRiYWFk
ZWQ0MmU3NzkwNDQwNWFjMDEzMWUzOGZjMjliZTcuLjljNzRhNTk3YzU3MzA2YmE5YzBlMGI3NjJl
NWJkZTNlZmMxOTM0ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBA
IC02MDUsNiArNjA1LDggQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBtZWRp
YVBsYXllclJlbmRlcmluZ0NhbkJlQWNjZWxlcmF0ZWQoKSBmaW5hbDsKIAorICAgIHNpemVfdCBt
ZW1vcnlDb3N0KCkgY29uc3Q7CisKIHByb3RlY3RlZDoKICAgICBIVE1MTWVkaWFFbGVtZW50KGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKTsKICAg
ICB2aXJ0dWFsIH5IVE1MTWVkaWFFbGVtZW50KCk7CkBAIC03NzAsNiArNzcyLDcgQEAgcHJpdmF0
ZToKICAgICBib29sIG1lZGlhUGxheWVyU2hvdWxkQ2hlY2tIYXJkd2FyZVN1cHBvcnQoKSBjb25z
dCBmaW5hbDsKICAgICBjb25zdCBWZWN0b3I8Q29udGVudFR5cGU+JiBtZWRpYUNvbnRlbnRUeXBl
c1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCgpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgbWVkaWFQ
bGF5ZXJCdWZmZXJlZFRpbWVSYW5nZXNDaGFuZ2VkKCkgZmluYWw7CisgICAgdm9pZCBtZWRpYVBs
YXllck1lbW9yeUNvc3RDaGFuZ2VkKHNpemVfdCB0b3RhbE1lbW9yeUNvc3QpIGZpbmFsOwogCiAj
aWYgVVNFKEdTVFJFQU1FUikKICAgICB2b2lkIHJlcXVlc3RJbnN0YWxsTWlzc2luZ1BsdWdpbnMo
Y29uc3QgU3RyaW5nJiBkZXRhaWxzLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBNZWRpYVBs
YXllclJlcXVlc3RJbnN0YWxsTWlzc2luZ1BsdWdpbnNDYWxsYmFjayYpIGZpbmFsOwpAQCAtMTE5
OCw3ICsxMjAxLDcgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAgICAgc3RkOjp1bmlxdWVfcHRyPE1l
ZGlhRWxlbWVudFNlc3Npb24+IG1fbWVkaWFTZXNzaW9uOwotICAgIHNpemVfdCBtX3JlcG9ydGVk
RXh0cmFNZW1vcnlDb3N0IHsgMCB9OworICAgIHN0ZDo6YXRvbWljPHNpemVfdD4gbV9yZXBvcnRl
ZEV4dHJhTWVtb3J5Q29zdCB7IDAgfTsKIAogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAg
IFJlZlB0cjxMb2dnZXI+IG1fbG9nZ2VyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5pZGwKaW5kZXggZjQwY2VkZjIyOTMwNjA1MDcxZjY3NjVlM2RkMDhiODRiYmQzZTg4Yy4u
Mzk4MThhYjU1ZDYwNmU5MDEyNjEzNjA1ODE5OTMyYjlkMGQ2ZjllOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaWRsCkBAIC0zNyw2ICszNyw3IEBAIHR5cGVkZWYgKAog
ICAgIENvbmRpdGlvbmFsPVZJREVPLAogICAgIEV4cG9ydE1hY3JvPVdFQkNPUkVfRVhQT1JULAog
ICAgIEpTR2VuZXJhdGVUb05hdGl2ZU9iamVjdCwKKyAgICBSZXBvcnRFeHRyYU1lbW9yeUNvc3Qs
CiAgICAgRXhwb3NlZD1XaW5kb3cKIF0gaW50ZXJmYWNlIEhUTUxNZWRpYUVsZW1lbnQgOiBIVE1M
RWxlbWVudCB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L01lZGlhUGxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlh
UGxheWVyLmNwcAppbmRleCBhNDM2YTU1OGE3OTlhNjY2YTZlZjZhNGY1ZjM4MDk1NGQxNzA2NTk2
Li41ZGQ4OGE5NmYwNzY3ODk5OTVjMDc0MjczYTA2Mjg0YzdhNmM2MTA4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCkBAIC05OTcsNiAr
OTk3LDkgQEAgZG91YmxlIE1lZGlhUGxheWVyOjpzZWVrYWJsZVRpbWVSYW5nZXNMYXN0TW9kaWZp
ZWRUaW1lKCkKIHZvaWQgTWVkaWFQbGF5ZXI6OmJ1ZmZlcmVkVGltZVJhbmdlc0NoYW5nZWQoKQog
ewogICAgIGNsaWVudCgpLm1lZGlhUGxheWVyQnVmZmVyZWRUaW1lUmFuZ2VzQ2hhbmdlZCgpOwor
CisgICAgaWYgKG1fcHJpdmF0ZSAmJiAhbV9wcml2YXRlLT5zdXBwb3J0c01lbW9yeUNvc3RDaGFu
Z2VkKCkpCisgICAgICAgIGNsaWVudCgpLm1lZGlhUGxheWVyTWVtb3J5Q29zdENoYW5nZWQobWVt
b3J5Q29zdCgpKTsKIH0KIAogdm9pZCBNZWRpYVBsYXllcjo6c2Vla2FibGVUaW1lUmFuZ2VzQ2hh
bmdlZCgpCkBAIC0xMzYzLDYgKzEzNjYsOSBAQCB2b2lkIE1lZGlhUGxheWVyOjpyZXBhaW50KCkK
IHZvaWQgTWVkaWFQbGF5ZXI6OmR1cmF0aW9uQ2hhbmdlZCgpCiB7CiAgICAgY2xpZW50KCkubWVk
aWFQbGF5ZXJEdXJhdGlvbkNoYW5nZWQoKTsKKworICAgIGlmIChtX3ByaXZhdGUgJiYgIW1fcHJp
dmF0ZS0+c3VwcG9ydHNNZW1vcnlDb3N0Q2hhbmdlZCgpKQorICAgICAgICBjbGllbnQoKS5tZWRp
YVBsYXllck1lbW9yeUNvc3RDaGFuZ2VkKG1lbW9yeUNvc3QoKSk7CiB9CiAKIHZvaWQgTWVkaWFQ
bGF5ZXI6OnJhdGVDaGFuZ2VkKCkKQEAgLTE1NzksMTIgKzE1ODUsMTcgQEAgU3RyaW5nIE1lZGlh
UGxheWVyOjpsYW5ndWFnZU9mUHJpbWFyeUF1ZGlvVHJhY2soKSBjb25zdAogICAgIHJldHVybiBt
X3ByaXZhdGUtPmxhbmd1YWdlT2ZQcmltYXJ5QXVkaW9UcmFjaygpOwogfQogCi1zaXplX3QgTWVk
aWFQbGF5ZXI6OmV4dHJhTWVtb3J5Q29zdCgpIGNvbnN0Cit2b2lkIE1lZGlhUGxheWVyOjptZW1v
cnlDb3N0Q2hhbmdlZChzaXplX3QgdG90YWxNZW1vcnlDb3N0KQoreworICAgIGNsaWVudCgpLm1l
ZGlhUGxheWVyTWVtb3J5Q29zdENoYW5nZWQodG90YWxNZW1vcnlDb3N0KTsKK30KKworc2l6ZV90
IE1lZGlhUGxheWVyOjptZW1vcnlDb3N0KCkKIHsKICAgICBpZiAoIW1fcHJpdmF0ZSkKICAgICAg
ICAgcmV0dXJuIDA7CiAKLSAgICByZXR1cm4gbV9wcml2YXRlLT5leHRyYU1lbW9yeUNvc3QoKTsK
KyAgICByZXR1cm4gbV9wcml2YXRlLT5tZW1vcnlDb3N0KCk7CiB9CiAKIHVuc2lnbmVkIGxvbmcg
bG9uZyBNZWRpYVBsYXllcjo6ZmlsZVNpemUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKaW5kZXggNWIxZTE3NDUxM2UwNmZhMDFkNTE5
MGI1NWU1MDUzNTU1ZWZkNzYzNy4uYzU2ZTQ2YzNhODg4MTFiZWUzMjVkNjM5MzAyOTcyYjc1N2U1
MmRmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
ci5oCkBAIC0yODYsNiArMjg2LDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIG1lZGlh
UGxheWVyUXVldWVUYXNrT25FdmVudExvb3AoRnVuY3Rpb248dm9pZCgpPiYmIHRhc2spIHsgY2Fs
bE9uTWFpblRocmVhZChXVEZNb3ZlKHRhc2spKTsgfQogCisgICAgdmlydHVhbCB2b2lkIG1lZGlh
UGxheWVyTWVtb3J5Q29zdENoYW5nZWQoc2l6ZV90KSB7IH0KKwogI2lmICFSRUxFQVNFX0xPR19E
SVNBQkxFRAogICAgIHZpcnR1YWwgY29uc3Qgdm9pZCogbWVkaWFQbGF5ZXJMb2dJZGVudGlmaWVy
KCkgeyByZXR1cm4gbnVsbHB0cjsgfQogICAgIHZpcnR1YWwgY29uc3QgTG9nZ2VyJiBtZWRpYVBs
YXllckxvZ2dlcigpID0gMDsKQEAgLTYxMCw3ICs2MTIsOCBAQCBwdWJsaWM6CiAKICAgICBTdHJp
bmcgbGFuZ3VhZ2VPZlByaW1hcnlBdWRpb1RyYWNrKCkgY29uc3Q7CiAKLSAgICBzaXplX3QgZXh0
cmFNZW1vcnlDb3N0KCkgY29uc3Q7CisgICAgdm9pZCBtZW1vcnlDb3N0Q2hhbmdlZChzaXplX3Qp
OworICAgIHNpemVfdCBtZW1vcnlDb3N0KCk7CiAKICAgICB1bnNpZ25lZCBsb25nIGxvbmcgZmls
ZVNpemUoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXllclByaXZhdGUuaAppbmRleCBmNWE0MGFiYzhhNzlhNmNlMDY0YjcwMmNk
ZDBjOWE5YWE2NjNkZDM5Li4zZjkxOWNhNGE0NTIwNjdhMTc5NGUwNTczNzJmOWJiZGJlMWM2Y2E3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
clByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBs
YXllclByaXZhdGUuaApAQCAtMjc2LDcgKzI3Niw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwg
U3RyaW5nIGxhbmd1YWdlT2ZQcmltYXJ5QXVkaW9UcmFjaygpIGNvbnN0IHsgcmV0dXJuIGVtcHR5
U3RyaW5nKCk7IH0KIAotICAgIHZpcnR1YWwgc2l6ZV90IGV4dHJhTWVtb3J5Q29zdCgpIGNvbnN0
CisgICAgdmlydHVhbCBib29sIHN1cHBvcnRzTWVtb3J5Q29zdENoYW5nZWQoKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgc2l6ZV90IG1lbW9yeUNvc3QoKQogICAgIHsKICAg
ICAgICAgTWVkaWFUaW1lIGR1cmF0aW9uID0gdGhpcy0+ZHVyYXRpb25NZWRpYVRpbWUoKTsKICAg
ICAgICAgaWYgKCFkdXJhdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAKaW5kZXggYzk5OGQ5ZjY0NzBlODBmOGQ0Y2RkNWUx
MjY2ZjA1YjEyYmQ2MTA5ZS4uMTlhYTI1NzlmODM3M2M4YWE5OGNkNjliZWM3ZDI3M2NhMmI5MjQ4
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbi5jcHAKQEAgLTYyOSwxMSArNjI5LDI4IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uOjpyYXRlQ2hhbmdlZCgpCiAgICAgbV9wbGF5ZXItPnJhdGVDaGFuZ2VkKCk7
CiB9CiAKK3NpemVfdCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246Om1lbW9yeUNvc3Qo
KQoreworICAgIC8vIFRoZSBkZWZhdWx0IE1lZGlhUGxheWVyUHJpdmF0ZSBpbXBsZW1lbnRhdGlv
biBkZXBlbmRzIHVwb24gdG90YWxCeXRlcygpIGFuZCBkdXJhdGlvbigpLAorICAgIC8vIHdoaWNo
IG1heSBub3QgYmUgYXZhaWxhYmxlIGZvciBITFMgc3RyZWFtcy4gSW4gdGhhdCBjYXNlLCBwcm92
aWRlIGEgY3VzdG9tIGltcGxlbWVudGF0aW9uCisgICAgLy8gd2hpY2ggdXNlcyB0aGUgb2JzZXJ2
ZWRCaXRyYXRlIHRvIGNhbGN1bGF0ZSBtZW1vcnlDb3N0LgorICAgIGlmICh0b3RhbEJ5dGVzKCkg
JiYgbV9jYWNoZWREdXJhdGlvbikKKyAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyUHJpdmF0ZUlu
dGVyZmFjZTo6bWVtb3J5Q29zdCgpOworCisgICAgaWYgKG1fY2FjaGVkTG9hZGVkVGltZVJhbmdl
cykKKyAgICAgICAgcmV0dXJuIHBsYXRmb3JtSW5kaWNhdGVkQml0cmF0ZSgpICogbV9jYWNoZWRM
b2FkZWRUaW1lUmFuZ2VzLT50b3RhbER1cmF0aW9uKCkudG9Eb3VibGUoKSAvIDg7CisKKyAgICBy
ZXR1cm4gMDsKK30KKwogdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OmxvYWRl
ZFRpbWVSYW5nZXNDaGFuZ2VkKCkKIHsKLSAgICBtX2NhY2hlZExvYWRlZFRpbWVSYW5nZXMgPSBu
dWxscHRyOwotICAgIG1fY2FjaGVkTWF4VGltZUxvYWRlZCA9IE1lZGlhVGltZTo6emVyb1RpbWUo
KTsKKyAgICBhdXRvIG9sZExvYWRlZFRpbWVSYW5nZXMgPSBzdGQ6OmV4Y2hhbmdlKG1fY2FjaGVk
TG9hZGVkVGltZVJhbmdlcywgcGxhdGZvcm1CdWZmZXJlZFRpbWVSYW5nZXMoKSk7CisgICAgbV9j
YWNoZWRNYXhUaW1lTG9hZGVkID0gbV9jYWNoZWRMb2FkZWRUaW1lUmFuZ2VzID8gbV9jYWNoZWRM
b2FkZWRUaW1lUmFuZ2VzLT5tYXhpbXVtQnVmZmVyZWRUaW1lKCkgOiBNZWRpYVRpbWU6Onplcm9U
aW1lKCk7CisKICAgICBpbnZhbGlkYXRlQ2FjaGVkRHVyYXRpb24oKTsKKworICAgIG1fcGxheWVy
LT5tZW1vcnlDb3N0Q2hhbmdlZChtZW1vcnlDb3N0KCkpOwogICAgIG1fcGxheWVyLT5idWZmZXJl
ZFRpbWVSYW5nZXNDaGFuZ2VkKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaAppbmRleCA2MjY3YjgzMzIxMjk5YjEzZWE3ZWQy
YTQwNWU0Y2JiODVlNDQ4ODNiLi5hOGQyMzEwODIzMDNlM2VhNWM2Zjc0ZDlmY2JjODE3ZmQyYzg0
NmViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbi5oCkBAIC0yMTQsNiArMjE0LDggQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgc3VwcG9y
dHNGdWxsc2NyZWVuKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBzdXBwb3J0c1NjYW5uaW5n
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHVuc2lnbmVkIGxvbmcgbG9u
ZyBmaWxlU2l6ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRvdGFsQnl0ZXMoKTsgfQorICAg
IGJvb2wgc3VwcG9ydHNNZW1vcnlDb3N0Q2hhbmdlZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IHRydWU7IH0KKyAgICBzaXplX3QgbWVtb3J5Q29zdCgpIG92ZXJyaWRlOwogCiAgICAgYm9vbCBo
YXNTaW5nbGVTZWN1cml0eU9yaWdpbigpIGNvbnN0IG92ZXJyaWRlOwogCkBAIC0yNTYsNiArMjU4
LDcgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgTWVkaWFUaW1lIHBsYXRmb3JtTWluVGltZVNl
ZWthYmxlKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgTWVkaWFUaW1lIHBsYXRmb3JtTWF4VGlt
ZUxvYWRlZCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIE1lZGlhVGltZSBwbGF0Zm9ybUR1cmF0
aW9uKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgZG91YmxlIHBsYXRmb3JtSW5kaWNhdGVkQml0
cmF0ZSgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBiZWdpbkxvYWRp
bmdNZXRhZGF0YSgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2l6ZUNoYW5nZWQoKSA9IDA7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDLmgKaW5kZXggNTllY2E0NTEzNGZlNmY0MDU5OTAyZTIxY2U3ZTdlNWFk
ZTgwYmZhMi4uY2FhNTE1ZDljY2Q0MGRlMjYzNzVjNDM4OWY3MzU0OGEzZDFmY2RiMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMuaApAQCAtMzcsNiArMzcsNyBAQCBPQkpDX0NMQVNTIEFWQXNzZXRSZXNv
dXJjZUxvYWRpbmdSZXF1ZXN0OwogT0JKQ19DTEFTUyBBVk1lZGlhU2VsZWN0aW9uR3JvdXA7CiBP
QkpDX0NMQVNTIEFWT3V0cHV0Q29udGV4dDsKIE9CSkNfQ0xBU1MgQVZQbGF5ZXJJdGVtOworT0JK
Q19DTEFTUyBBVlBsYXllckl0ZW1BY2Nlc3NMb2dFdmVudDsKIE9CSkNfQ0xBU1MgQVZQbGF5ZXJJ
dGVtTGVnaWJsZU91dHB1dDsKIE9CSkNfQ0xBU1MgQVZQbGF5ZXJJdGVtTWV0YWRhdGFDb2xsZWN0
b3I7CiBPQkpDX0NMQVNTIEFWUGxheWVySXRlbU1ldGFkYXRhT3V0cHV0OwpAQCAtMTI0LDYgKzEy
NSw5IEBAIHB1YmxpYzoKICAgICB2b2lkIG91dHB1dE1lZGlhRGF0YVdpbGxDaGFuZ2UoKTsKICAg
ICB2b2lkIHByb2Nlc3NDaGFwdGVyVHJhY2tzKCk7CiAKKyAgICB2b2lkIG5ld0FjY2Vzc0xvZ0Vu
dHJ5KCk7CisgICAgQVZQbGF5ZXJJdGVtQWNjZXNzTG9nRXZlbnQgKmN1cnJlbnRBY2Nlc3NMb2dF
dmVudCgpIGNvbnN0OworCiBwcml2YXRlOgogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCiAg
ICAgdm9pZCBjZG1JbnN0YW5jZUF0dGFjaGVkKENETUluc3RhbmNlJikgZmluYWw7CkBAIC0yMTMs
NiArMjE3LDcgQEAgcHJpdmF0ZToKICAgICBNZWRpYVRpbWUgcGxhdGZvcm1NYXhUaW1lU2Vla2Fi
bGUoKSBjb25zdCBmaW5hbDsKICAgICBNZWRpYVRpbWUgcGxhdGZvcm1EdXJhdGlvbigpIGNvbnN0
IGZpbmFsOwogICAgIE1lZGlhVGltZSBwbGF0Zm9ybU1heFRpbWVMb2FkZWQoKSBjb25zdCBmaW5h
bDsKKyAgICBkb3VibGUgcGxhdGZvcm1JbmRpY2F0ZWRCaXRyYXRlKCkgY29uc3QgZmluYWw7CiAg
ICAgdm9pZCBiZWdpbkxvYWRpbmdNZXRhZGF0YSgpIGZpbmFsOwogICAgIHZvaWQgc2l6ZUNoYW5n
ZWQoKSBmaW5hbDsKICAgICB2b2lkIHJlc29sdmVkVVJMQ2hhbmdlZCgpIGZpbmFsOwpAQCAtMzQ2
LDYgKzM1MSw3IEBAIHByaXZhdGU6CiAgICAgUmV0YWluUHRyPEFWUGxheWVyPiBtX2F2UGxheWVy
OwogICAgIFJldGFpblB0cjxBVlBsYXllckl0ZW0+IG1fYXZQbGF5ZXJJdGVtOwogICAgIFJldGFp
blB0cjxBVlBsYXllckxheWVyPiBtX3ZpZGVvTGF5ZXI7CisgICAgbXV0YWJsZSBSZXRhaW5QdHI8
QVZQbGF5ZXJJdGVtQWNjZXNzTG9nRXZlbnQ+IG1fY3VycmVudEFjY2Vzc0xvZ0V2ZW50OwogICAg
IHN0ZDo6dW5pcXVlX3B0cjxWaWRlb0xheWVyTWFuYWdlck9iakM+IG1fdmlkZW9MYXllck1hbmFn
ZXI7CiAgICAgTWVkaWFQbGF5ZXI6OlZpZGVvR3Jhdml0eSBtX3ZpZGVvRnVsbHNjcmVlbkdyYXZp
dHkgeyBNZWRpYVBsYXllcjo6VmlkZW9HcmF2aXR5OjpSZXNpemVBc3BlY3QgfTsKICAgICBSZXRh
aW5QdHI8V2ViQ29yZUFWRk1vdmllT2JzZXJ2ZXI+IG1fb2JqY09ic2VydmVyOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakMubW0KaW5kZXggNGQ4NjExM2JjYmU0NjllYzZlMDI1NzkxMDJkMTEwZWE5MzAxMDA5
Ni4uZTYxODMxNmUxZDI2M2ZmMTRlZjA4MWFmY2Q5YjA2MjA0YTBhZDIzNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDLm1tCkBAIC0xOTQsNiArMTk0LDcgQEAgLSAodm9pZClsZWdpYmxlT3V0cHV0Oihp
ZClvdXRwdXQgZGlkT3V0cHV0QXR0cmlidXRlZFN0cmluZ3M6KE5TQXJyYXkgKilzdHJpbmdzIG4K
IC0gKHZvaWQpb3V0cHV0U2VxdWVuY2VXYXNGbHVzaGVkOihpZClvdXRwdXQ7CiAtICh2b2lkKW1l
dGFkYXRhQ29sbGVjdG9yOihBVlBsYXllckl0ZW1NZXRhZGF0YUNvbGxlY3RvciAqKW1ldGFkYXRh
Q29sbGVjdG9yIGRpZENvbGxlY3REYXRlUmFuZ2VNZXRhZGF0YUdyb3VwczooTlNBcnJheTxBVkRh
dGVSYW5nZU1ldGFkYXRhR3JvdXAgKj4gKiltZXRhZGF0YUdyb3VwcyBpbmRleGVzT2ZOZXdHcm91
cHM6KE5TSW5kZXhTZXQgKilpbmRleGVzT2ZOZXdHcm91cHMgaW5kZXhlc09mTW9kaWZpZWRHcm91
cHM6KE5TSW5kZXhTZXQgKilpbmRleGVzT2ZNb2RpZmllZEdyb3VwczsKIC0gKHZvaWQpbWV0YWRh
dGFPdXRwdXQ6KEFWUGxheWVySXRlbU1ldGFkYXRhT3V0cHV0ICopb3V0cHV0IGRpZE91dHB1dFRp
bWVkTWV0YWRhdGFHcm91cHM6KE5TQXJyYXk8QVZUaW1lZE1ldGFkYXRhR3JvdXAgKj4gKilncm91
cHMgZnJvbVBsYXllckl0ZW1UcmFjazooQVZQbGF5ZXJJdGVtVHJhY2sgKil0cmFjazsKKy0gKHZv
aWQpbmV3QWNjZXNzTG9nRW50cnk6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uOwogQGVu
ZAogCiBAaW50ZXJmYWNlIFdlYkNvcmVBVkZMb2FkZXJEZWxlZ2F0ZSA6IE5TT2JqZWN0PEFWQXNz
ZXRSZXNvdXJjZUxvYWRlckRlbGVnYXRlPiB7CkBAIC0xMTgyLDYgKzExODMsOCBAQCBBTExPV19O
RVdfQVBJX1dJVEhPVVRfR1VBUkRTX0VORAogICAgIFttX21ldGFkYXRhT3V0cHV0IHNldEFkdmFu
Y2VJbnRlcnZhbEZvckRlbGVnYXRlSW52b2NhdGlvbjphdlBsYXllck91dHB1dEFkdmFuY2VJbnRl
cnZhbF07CiAgICAgW21fYXZQbGF5ZXJJdGVtIGFkZE91dHB1dDptX21ldGFkYXRhT3V0cHV0Lmdl
dCgpXTsKIAorICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2Jz
ZXJ2ZXI6bV9vYmpjT2JzZXJ2ZXIuZ2V0KCkgc2VsZWN0b3I6QHNlbGVjdG9yKG5ld0FjY2Vzc0xv
Z0VudHJ5OikgbmFtZTpBVlBsYXllckl0ZW1OZXdBY2Nlc3NMb2dFbnRyeU5vdGlmaWNhdGlvbiBv
YmplY3Q6bV9hdlBsYXllckl0ZW0uZ2V0KCldOworCiAgICAgc2V0RGVsYXlDYWxsYmFja3MoZmFs
c2UpOwogfQogCkBAIC0xNzM3LDYgKzE3NDAsMTMgQEAgTWVkaWFUaW1lIE1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakM6OnBsYXRmb3JtTWF4VGltZUxvYWRlZCgpIGNvbnN0CiAgICAg
cmV0dXJuIG1heFRpbWVMb2FkZWQ7ICAgCiB9CiAKK2RvdWJsZSBNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDOjpwbGF0Zm9ybUluZGljYXRlZEJpdHJhdGUoKSBjb25zdAoreworICAg
IGlmIChhdXRvIGluZGljYXRlZEF2ZXJhZ2VCaXRyYXRlID0gY3VycmVudEFjY2Vzc0xvZ0V2ZW50
KCkuaW5kaWNhdGVkQXZlcmFnZUJpdHJhdGUgPiAwKQorICAgICAgICByZXR1cm4gaW5kaWNhdGVk
QXZlcmFnZUJpdHJhdGU7CisgICAgcmV0dXJuIGN1cnJlbnRBY2Nlc3NMb2dFdmVudCgpLmluZGlj
YXRlZEJpdHJhdGU7Cit9CisKIHVuc2lnbmVkIGxvbmcgbG9uZyBNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDOjp0b3RhbEJ5dGVzKCkgY29uc3QKIHsKICAgICBpZiAoIW1ldGFEYXRh
QXZhaWxhYmxlKCkpCkBAIC0zNjYzLDYgKzM2NzMsMjIgQEAgdm9pZCBNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDOjphdWRpb091dHB1dERldmljZUNoYW5nZWQoKQogI2VuZGlmCiB9
CiAKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6bmV3QWNjZXNzTG9n
RW50cnkoKQoreworICAgIG1fY3VycmVudEFjY2Vzc0xvZ0V2ZW50ID0gbmlsOworfQorCitBVlBs
YXllckl0ZW1BY2Nlc3NMb2dFdmVudCAqTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qzo6Y3VycmVudEFjY2Vzc0xvZ0V2ZW50KCkgY29uc3QKK3sKKyAgICBpZiAoIW1fYXZQbGF5ZXJJ
dGVtKQorICAgICAgICByZXR1cm4gbmlsOworCisgICAgaWYgKCFtX2N1cnJlbnRBY2Nlc3NMb2dF
dmVudCkKKyAgICAgICAgbV9jdXJyZW50QWNjZXNzTG9nRXZlbnQgPSBbbV9hdlBsYXllckl0ZW0g
YWNjZXNzTG9nXS5ldmVudHMubGFzdE9iamVjdDsKKworICAgIHJldHVybiBtX2N1cnJlbnRBY2Nl
c3NMb2dFdmVudC5nZXQoKTsKK30KKwogTlNBcnJheSogYXNzZXRNZXRhZGF0YUtleU5hbWVzKCkK
IHsKICAgICBzdGF0aWMgTlNBcnJheSoga2V5cyA9IFtbTlNBcnJheSBhbGxvY10gaW5pdFdpdGhP
YmplY3RzOgpAQCAtMzk1MSw2ICszOTc3LDE3IEBAIC0gKHZvaWQpbWV0YWRhdGFDb2xsZWN0b3I6
KEFWUGxheWVySXRlbU1ldGFkYXRhQ29sbGVjdG9yICopbWV0YWRhdGFDb2xsZWN0b3IgZGlkCiAg
ICAgICAgIHBsYXllci0+bWV0YWRhdGFHcm91cERpZEFycml2ZShtZXRhZGF0YUdyb3VwcywgY3Vy
cmVudFRpbWUpOwogICAgIH0pOwogfQorCistICh2b2lkKW5ld0FjY2Vzc0xvZ0VudHJ5OihOU05v
dGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgoreworICAgIFVOVVNFRF9QQVJBTShub3RpZmljYXRp
b24pOworICAgIGlmICghbV9wbGF5ZXIpCisgICAgICAgIHJldHVybjsKKyAgICBtX3BsYXllci0+
cXVldWVUYXNrT25FdmVudExvb3AoW3BsYXllciA9IG1fcGxheWVyXSB7CisgICAgICAgIGlmIChw
bGF5ZXIpCisgICAgICAgICAgICBwbGF5ZXItPm5ld0FjY2Vzc0xvZ0VudHJ5KCk7CisgICAgfSk7
Cit9CiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJDb3JlQVZGTG9hZGVyRGVsZWdhdGUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDLmgKaW5kZXggZDcwYzUyZjRiYzFjNDAwODJiN2EwMjQwMmZlN2U4
YzJlMjQxMGM1ZS4uMWE2M2IyNmZjNTYyN2JkMDQ5ODI2ZjMwZjQ2MDVlYWUzZjFiNGIxZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKQEAgLTI0Myw3ICsyNDMsNyBAQCBwcml2YXRlOgogCiAg
ICAgU3RyaW5nIGxhbmd1YWdlT2ZQcmltYXJ5QXVkaW9UcmFjaygpIGNvbnN0IG92ZXJyaWRlOwog
Ci0gICAgc2l6ZV90IGV4dHJhTWVtb3J5Q29zdCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHNpemVf
dCBtZW1vcnlDb3N0KCkgb3ZlcnJpZGU7CiAKICAgICBzdGQ6Om9wdGlvbmFsPFZpZGVvUGxheWJh
Y2tRdWFsaXR5TWV0cmljcz4gdmlkZW9QbGF5YmFja1F1YWxpdHlNZXRyaWNzKCkgb3ZlcnJpZGU7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQppbmRleCBlZTAxNDM1NmYwNWY5NGQ0MTIyZGVh
MTViMjYyYzI1NzhiYWZiNGU2Li5jOTE4ZWU1MzA3ZDUwOTYwYjM2ZGYyOTMwMThhMDAxM2U1Mzc3
NGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCkBAIC03ODUsNyArNzg1LDcgQEAgU3Ry
aW5nIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6bGFuZ3VhZ2VPZlByaW1h
cnlBdWRpb1RyYWNrKCkgY29uc3QKICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKIH0KIAotc2l6
ZV90IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6ZXh0cmFNZW1vcnlDb3N0
KCkgY29uc3QKK3NpemVfdCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6Om1l
bW9yeUNvc3QoKQogewogICAgIHJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTdHJlYW1BVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaApp
bmRleCBhZmVlYzc3NTk4YTVlMWY3NDE1Y2Y1MmNjM2Y2YzE5ZTY4NWIwYjMyLi5mOWJiZjM1Mjhm
NzdkOTlhNDJhMDZhNGRlZjM0YjM2ZjY3ZjJkYmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVN
ZWRpYVN0cmVhbUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMu
aApAQCAtMTU0LDcgKzE1NCw3IEBAIHByaXZhdGU6CiAKICAgICBTdHJpbmcgZW5naW5lRGVzY3Jp
cHRpb24oKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHNpemVfdCBleHRyYU1lbW9yeUNvc3QoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiAwOyB9CisgICAgc2l6ZV90IG1lbW9yeUNvc3QoKSBvdmVy
cmlkZSB7IHJldHVybiAwOyB9CiAKICAgICBib29sIGVuZGVkKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gbV9lbmRlZDsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKaW5kZXggNTY1YjhiMjkzYWVjZGY1
ZTUxZmU1ZTEwMTZjNWI3YTdlNzMzZDhhOS4uMDM0M2ZjNjQxNDI5NzE4MTM3MzlkNjkwYTJkM2E0
NzljNGRiZTcyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUGxheWVyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcApAQCAtMTIyLDYgKzEyMiw3IEBAIHZvaWQg
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6Z2V0Q29uZmlndXJhdGlvbihSZW1vdGVNZWRpYVBsYXll
ckNvbmZpZ3VyYXRpb24mIGNvCiAgICAgY29uZmlndXJhdGlvbi5zdXBwb3J0c0FjY2VsZXJhdGVk
UmVuZGVyaW5nID0gbV9wbGF5ZXItPnN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKTsKICAg
ICBjb25maWd1cmF0aW9uLnN1cHBvcnRzUGxheUF0SG9zdFRpbWUgPSBtX3BsYXllci0+c3VwcG9y
dHNQbGF5QXRIb3N0VGltZSgpOwogICAgIGNvbmZpZ3VyYXRpb24uc3VwcG9ydHNQYXVzZUF0SG9z
dFRpbWUgPSBtX3BsYXllci0+c3VwcG9ydHNQYXVzZUF0SG9zdFRpbWUoKTsKKyAgICBjb25maWd1
cmF0aW9uLnN1cHBvcnRzTWVtb3J5Q29zdENoYW5nZWQgPSBtX3BsYXllci0+cGxheWVyUHJpdmF0
ZSgpICYmIG1fcGxheWVyLT5wbGF5ZXJQcml2YXRlKCktPnN1cHBvcnRzTWVtb3J5Q29zdENoYW5n
ZWQoKTsKIAogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCiAgICAgY29uZmln
dXJhdGlvbi5jYW5QbGF5VG9XaXJlbGVzc1BsYXliYWNrVGFyZ2V0ID0gbV9wbGF5ZXItPmNhblBs
YXlUb1dpcmVsZXNzUGxheWJhY2tUYXJnZXQoKTsKQEAgLTY2Miw2ICs2NjMsMTEgQEAgdm9pZCBS
ZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllckRpZFJlbW92ZVRleHRUcmFjayhXZWJD
b3JlOjpJbmJhbmRUZXh0VHIKICAgICBtX3RleHRUcmFja3MucmVtb3ZlKCZ0cmFjayk7CiB9CiAK
K3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJNZW1vcnlDb3N0Q2hhbmdl
ZChzaXplX3QgdG90YWxNZW1vcnlDb3N0KQoreworICAgIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb24t
PnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6TWVtb3J5Q29zdENoYW5n
ZWQodG90YWxNZW1vcnlDb3N0KSwgbV9pZCk7Cit9CisKIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eTo6dGV4dFRyYWNrUmVwcmVzZW50YXRpb25Cb3VuZHNDaGFuZ2VkKGNvbnN0IEludFJlY3Qm
KQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaAppbmRleCAwZTlmM2Q3YTIx
NDVkNzViOTQzZTJiNTZhMmQ4MGJiODA3M2RmOWUxLi45YWE3MTZmNjE5ZmE4OGJmYTY4OWVjZDNk
NTNlODNiYzRjODZmYzVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmgKQEAgLTI0MSw2ICsyNDEsNyBAQCBwcml2
YXRlOgogICAgIHZvaWQgbWVkaWFQbGF5ZXJEaWRSZW1vdmVWaWRlb1RyYWNrKFdlYkNvcmU6OlZp
ZGVvVHJhY2tQcml2YXRlJikgZmluYWw7CiAgICAgdm9pZCBtZWRpYVBsYXllckRpZEFkZFRleHRU
cmFjayhXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2tQcml2YXRlJikgZmluYWw7CiAgICAgdm9pZCBt
ZWRpYVBsYXllckRpZFJlbW92ZVRleHRUcmFjayhXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2tQcml2
YXRlJikgZmluYWw7CisgICAgdm9pZCBtZWRpYVBsYXllck1lbW9yeUNvc3RDaGFuZ2VkKHNpemVf
dCB0b3RhbE1lbW9yeUNvc3QpIGZpbmFsOwogCiAgICAgLy8gTm90IGltcGxlbWVudGVkCiAgICAg
dm9pZCBtZWRpYVBsYXllckZpcnN0VmlkZW9GcmFtZUF2YWlsYWJsZSgpIGZpbmFsOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZh
dGVSZW1vdGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBs
YXllclByaXZhdGVSZW1vdGUuY3BwCmluZGV4IDYyYjExZGY1ZWFmYTYzNWRiZDM2YzcxMGQ5ZDZk
NWY2NWQ4YzM3YzYuLmY4N2YzNDU1OWE5ZTkwZTQ3MTFhOTZjY2E0NzQwNjNjNzUwODE3YTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKQEAgLTEyNzgsMTAgKzEyNzgsMTEgQEAgU3Ry
aW5nIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6bGFuZ3VhZ2VPZlByaW1hcnlBdWRpb1RyYWNr
KCkgY29uc3QKICAgICByZXR1cm4gbV9jYWNoZWRTdGF0ZS5sYW5ndWFnZU9mUHJpbWFyeUF1ZGlv
VHJhY2s7CiB9CiAKLXNpemVfdCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmV4dHJhTWVtb3J5
Q29zdCgpIGNvbnN0Cit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6bWVtb3J5Q29zdENo
YW5nZWQoc2l6ZV90IG1lbW9yeUNvc3QpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICBy
ZXR1cm4gMDsKKyAgICBtX21lbW9yeUNvc3QgPSBtZW1vcnlDb3N0OworICAgIGlmIChSZWZQdHIg
cGxheWVyID0gbV9wbGF5ZXIuZ2V0KCkpCisgICAgICAgIHBsYXllci0+bWVtb3J5Q29zdENoYW5n
ZWQobWVtb3J5Q29zdCk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjp1cGRh
dGVWaWRlb1BsYXliYWNrTWV0cmljc1VwZGF0ZUludGVydmFsKGNvbnN0IFNlY29uZHMmIGludGVy
dmFsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRp
YVBsYXllclByaXZhdGVSZW1vdGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKaW5kZXggYjVmNWI1YmMxYzUyYTM5OWM5MWJj
NTBjYmFkZjVmZWM5ZjU1NWM0MC4uYTIxMzkxYjVhYWE1OGVhZGU1YmQ4ZGMxMTE2ZGY2YjM2YWI3
ZjY2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRp
YVBsYXllclByaXZhdGVSZW1vdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oCkBAIC0zNzEsNyArMzcxLDkgQEAgcHJp
dmF0ZToKIAogICAgIFN0cmluZyBsYW5ndWFnZU9mUHJpbWFyeUF1ZGlvVHJhY2soKSBjb25zdCBm
aW5hbDsKIAotICAgIHNpemVfdCBleHRyYU1lbW9yeUNvc3QoKSBjb25zdCBmaW5hbDsKKyAgICBi
b29sIHN1cHBvcnRzTWVtb3J5Q29zdENoYW5nZWQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2Nv
bmZpZ3VyYXRpb24uc3VwcG9ydHNNZW1vcnlDb3N0Q2hhbmdlZDsgfQorICAgIHZvaWQgbWVtb3J5
Q29zdENoYW5nZWQoc2l6ZV90KTsKKyAgICBzaXplX3QgbWVtb3J5Q29zdCgpIGZpbmFsIHsgcmV0
dXJuIG1fbWVtb3J5Q29zdDsgfQogCiAgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpWaWRlb1Bs
YXliYWNrUXVhbGl0eU1ldHJpY3M+IHZpZGVvUGxheWJhY2tRdWFsaXR5TWV0cmljcygpIGZpbmFs
OwogICAgIHZvaWQgdXBkYXRlVmlkZW9QbGF5YmFja01ldHJpY3NVcGRhdGVJbnRlcnZhbChjb25z
dCBTZWNvbmRzJik7CkBAIC00MzcsNiArNDM5LDcgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpN
ZWRpYVBsYXllcjo6VmlkZW9HcmF2aXR5IG1fdmlkZW9GdWxsc2NyZWVuR3Jhdml0eSB7IFdlYkNv
cmU6Ok1lZGlhUGxheWVyOjpWaWRlb0dyYXZpdHk6OlJlc2l6ZUFzcGVjdCB9OwogICAgIE1vbm90
b25pY1RpbWUgbV9sYXN0UGxheWJhY2tRdWFsaXR5TWV0cmljc1F1ZXJ5VGltZTsKICAgICBTZWNv
bmRzIG1fdmlkZW9QbGF5YmFja01ldHJpY3NVcGRhdGVJbnRlcnZhbDsKKyAgICBzaXplX3QgbV9t
ZW1vcnlDb3N0IHsgMCB9OwogICAgIGRvdWJsZSBtX3ZvbHVtZSB7IDEgfTsKICAgICBkb3VibGUg
bV9yYXRlIHsgMSB9OwogICAgIGxvbmcgbV9wbGF0Zm9ybUVycm9yQ29kZSB7IDAgfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW4KaW5kZXggMTE4ZTAyNWE2OWIz
ZmE0MWY1NTllNWFhMGJmOThkMzc5MWJlNWRlNC4uY2U2NGRhYjM5NTNhZjAzMWE0NjEzNzljN2Qy
NDVhMmU5MDE2MmMzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9t
ZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUubWVzc2Fn
ZXMuaW4KQEAgLTc0LDYgKzc0LDcgQEAgbWVzc2FnZXMgLT4gTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlIE5vdFJlZkNvdW50ZWQgewogICAgIFJlc291cmNlTm90U3VwcG9ydGVkKCkKIAogICAgIEFj
dGl2ZVNvdXJjZUJ1ZmZlcnNDaGFuZ2VkKCkKKyAgICBNZW1vcnlDb3N0Q2hhbmdlZChzaXplX3Qg
dG90YWxNZW1vcnlDb3N0KQogCiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKICAgICBXYWl0
aW5nRm9yS2V5Q2hhbmdlZChib29sIHdhaXRpbmdGb3JLZXkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlv
bi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXll
ckNvbmZpZ3VyYXRpb24uaAppbmRleCA1N2E2MzNhZGRiN2JlNzRkZjc5N2QzNzczZjViY2VjY2Ix
YTVhNGI3Li5lZDhlYmFlMDVlYTQwMjFkZDUwOGI4ZTdhYjhmODdhOTJmYTU0YmJhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVy
Q29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
UmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uLmgKQEAgLTQyLDYgKzQyLDcgQEAgc3RydWN0
IFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbiB7CiAgICAgYm9vbCBzdXBwb3J0c0FjY2Vs
ZXJhdGVkUmVuZGVyaW5nIHsgZmFsc2UgfTsKICAgICBib29sIHN1cHBvcnRzUGxheUF0SG9zdFRp
bWUgeyBmYWxzZSB9OwogICAgIGJvb2wgc3VwcG9ydHNQYXVzZUF0SG9zdFRpbWUgeyBmYWxzZSB9
OworICAgIGJvb2wgc3VwcG9ydHNNZW1vcnlDb3N0Q2hhbmdlZCB7IGZhbHNlIH07CiAgICAgYm9v
bCBjYW5QbGF5VG9XaXJlbGVzc1BsYXliYWNrVGFyZ2V0IHsgZmFsc2UgfTsKICAgICBib29sIHNo
b3VsZElnbm9yZUludHJpbnNpY1NpemUgeyBmYWxzZSB9OwogCkBAIC01Niw2ICs1Nyw3IEBAIHN0
cnVjdCBSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24gewogICAgICAgICBlbmNvZGVyIDw8
IHN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmc7CiAgICAgICAgIGVuY29kZXIgPDwgc3VwcG9y
dHNQbGF5QXRIb3N0VGltZTsKICAgICAgICAgZW5jb2RlciA8PCBzdXBwb3J0c1BhdXNlQXRIb3N0
VGltZTsKKyAgICAgICAgZW5jb2RlciA8PCBzdXBwb3J0c01lbW9yeUNvc3RDaGFuZ2VkOwogICAg
ICAgICBlbmNvZGVyIDw8IGNhblBsYXlUb1dpcmVsZXNzUGxheWJhY2tUYXJnZXQ7CiAgICAgICAg
IGVuY29kZXIgPDwgc2hvdWxkSWdub3JlSW50cmluc2ljU2l6ZTsKICAgICB9CkBAIC0xMDMsNiAr
MTA1LDExIEBAIHN0cnVjdCBSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24gewogICAgICAg
ICBpZiAoIXN1cHBvcnRzUGF1c2VBdEhvc3RUaW1lKQogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKIAorICAgICAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IHN1cHBvcnRzTWVtb3J5Q29z
dENoYW5nZWQ7CisgICAgICAgIGRlY29kZXIgPj4gc3VwcG9ydHNNZW1vcnlDb3N0Q2hhbmdlZDsK
KyAgICAgICAgaWYgKCFzdXBwb3J0c01lbW9yeUNvc3RDaGFuZ2VkKQorICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKwogICAgICAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IGNhblBsYXlU
b1dpcmVsZXNzUGxheWJhY2tUYXJnZXQ7CiAgICAgICAgIGRlY29kZXIgPj4gY2FuUGxheVRvV2ly
ZWxlc3NQbGF5YmFja1RhcmdldDsKICAgICAgICAgaWYgKCFjYW5QbGF5VG9XaXJlbGVzc1BsYXli
YWNrVGFyZ2V0KQpAQCAtMTIyLDYgKzEyOSw3IEBAIHN0cnVjdCBSZW1vdGVNZWRpYVBsYXllckNv
bmZpZ3VyYXRpb24gewogICAgICAgICAgICAgKnN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcs
CiAgICAgICAgICAgICAqc3VwcG9ydHNQbGF5QXRIb3N0VGltZSwKICAgICAgICAgICAgICpzdXBw
b3J0c1BhdXNlQXRIb3N0VGltZSwKKyAgICAgICAgICAgICpzdXBwb3J0c01lbW9yeUNvc3RDaGFu
Z2VkLAogICAgICAgICAgICAgKmNhblBsYXlUb1dpcmVsZXNzUGxheWJhY2tUYXJnZXQsCiAgICAg
ICAgICAgICAqc2hvdWxkSWdub3JlSW50cmluc2ljU2l6ZSwKICAgICAgICAgfX07CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
YjFhZDIzNjVkNTU5ZWM2NjBjZDY5Yjk3ODg4MDlkNWZhNzQ1N2Y4NC4uZmVkNzk3MGY4MThlNzkx
MGI0ODE0ODVmMTNjYjE5Y2M3NmQyMTY3MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIxLTEx
LTE3ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEhUTUxNZWRp
YUVsZW1lbnQ6IEFkb3B0IHJlcG9ydEV4dHJhTWVtb3J5VmlzaXRlZC9BbGxvY2F0ZWQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzE0NgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC90ZXN0cy9t
ZWRpYS9obHMvaGxzLW1lZGlhLWdjLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9tZWRpYS9obHMvaGxzLW1lZGlhLWdjLmh0bWw6IEFkZGVkLgorICAgICAgICAqIG1l
ZGlhL21lZGlhLWdjLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogbWVkaWEvbWVkaWEt
Z2MuaHRtbDogQWRkZWQuCisKIDIwMjEtMTEtMTEgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBw
bGUuY29tPgogCiAgICAgICAgIFtDU1MgQ2FzY2FkZSBMYXllcnNdIFN1cHBvcnQgJ3JldmVydC1s
YXllcicgdmFsdWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvaGxz
L2hscy1tZWRpYS1nYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlh
L2hscy9obHMtbWVkaWEtZ2MtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdkYTdhYzkzY2RhYWFl
ZWEzZmVhNzkzZDZlZjE1NDU3NWQwM2JiNWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL21lZGlhL2hscy9obHMtbWVkaWEtZ2MtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsNCBAQAorVGVzdCB0aGF0IGNyZWF0aW5nIG1lZGlhIGVsZW1lbnRzIHdpdGggSExTIHNvdXJj
ZXMgd2lsbCB0cmlnZ2VyIEdDLgorRVhQRUNURUQgKGFueUNvbGxlY3RlZCgpID09ICd0cnVlJykg
T0sKK0VORCBPRiBURVNUCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVk
aWEvaGxzL2hscy1tZWRpYS1nYy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9o
bHMvaGxzLW1lZGlhLWdjLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTIwMWYyZTZkZTg0NTQyNTI4ZmJmOWY1
NGYzZDQyOTRhZDE3ODJmMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbWVkaWEvaGxzL2hscy1tZWRpYS1nYy5odG1sCkBAIC0wLDAgKzEsNTEgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+bWVkaWEtZ2M8L3RpdGxlPgorICAg
IDxzY3JpcHQgc3JjPSIuLi8uLi9tZWRpYS1yZXNvdXJjZXMvdmlkZW8tdGVzdC5qcyI+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdD4KKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGFz
eW5jIGV2ZW50ID0+IHsKKyAgICAgICAgY29uc29sZVdyaXRlKCdUZXN0IHRoYXQgY3JlYXRpbmcg
bWVkaWEgZWxlbWVudHMgd2l0aCBITFMgc291cmNlcyB3aWxsIHRyaWdnZXIgR0MuJykKKworICAg
ICAgICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAgIGZhaWxUZXN0KCdUaGlz
IHRlc3QgcmVxdWlyZXMgd2luZG93LmludGVybmFscycpOworICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CisKKyAgICAgICAgbGV0IG9ic2VydmVycyA9IFtdOworICAgICAgICBmb3IgKGxl
dCBpID0gMDsgaSA8IDEwMDA7ICsraSkgeworICAgICAgICAgICAgbGV0IHRlc3RPYmplY3QgPSB7
IHRlc3RQcm9wZXJ0eSA6ICd0ZXN0VmFsdWUnIH07CisgICAgICAgICAgICBsZXQgb2JzZXJ2ZXIg
PSBpbnRlcm5hbHMub2JzZXJ2ZUdDKHRlc3RPYmplY3QpOworICAgICAgICAgICAgb2JzZXJ2ZXJz
LnB1c2gob2JzZXJ2ZXIpOworICAgICAgICAgICAgdGVzdE9iamVjdCA9IG51bGw7CisgICAgICAg
IH0KKworICAgICAgICB3aW5kb3cuYW55Q29sbGVjdGVkID0gKCkgPT4geworICAgICAgICAgICAg
Zm9yIChsZXQgb2JzZXJ2ZXIgb2Ygb2JzZXJ2ZXJzKSB7CisgICAgICAgICAgICAgICAgaWYgKG9i
c2VydmVyLndhc0NvbGxlY3RlZCkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH07CisKKyAg
ICAgICAgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgnYW55Q29sbGVjdGVkKCknLCB0cnVlKS50aGVu
KCgpID0+IHsKKyAgICAgICAgICAgIGNvbXBsZXRlZCA9IHRydWU7CisgICAgICAgICAgICBlbmRU
ZXN0KCk7CisgICAgICAgIH0pOworCisgICAgICAgIGxldCBjb21wbGV0ZWQgPSBmYWxzZTsKKyAg
ICAgICAgbGV0IHZpZGVvRWxlbWVudHMgPSBbXTsKKyAgICAgICAgd2hpbGUgKCFjb21wbGV0ZWQp
IHsKKyAgICAgICAgICAgIGxldCB2aWRlbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVv
Jyk7CisgICAgICAgICAgICB2aWRlby5tdXRlZDsKKyAgICAgICAgICAgIHZpZGVvLnNyYyA9ICIu
Li9yZXNvdXJjZXMvaGxzL2JpcGJvcC9wcm9nX2luZGV4Lm0zdTgiOworICAgICAgICAgICAgdmlk
ZW8ubG9hZCgpOworICAgICAgICAgICAgYXdhaXQgd2FpdEZvcih2aWRlbywgJ2NhbnBsYXl0aHJv
dWdoJywgdHJ1ZSk7CisgICAgICAgICAgICB2aWRlb0VsZW1lbnRzLnB1c2godmlkZW8pOworICAg
ICAgICB9CisgICAgfSk7CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzwvYm9keT4K
KzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9tZWRpYS9tZWRpYS1nYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRp
YS1nYy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWVjNjQ0NTk3ZTEwMWFjYzc4ODllM2EzMGZi
YmI5MDdlOTQ4MmZiYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21lZGlh
LWdjLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1Rlc3QgdGhhdCBjcmVhdGluZyBtZWRp
YSBlbGVtZW50cyB3aWxsIHRyaWdnZXIgR0MuCitFWFBFQ1RFRCAoYW55Q29sbGVjdGVkKCkgPT0g
J3RydWUnKSBPSworRU5EIE9GIFRFU1QKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEv
bWVkaWEtZ2MuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLWdjLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uODRkYzZkNWI5MGM1NzMwZDFlMGI3YTEyYjlhZmExNThhMTcxMzgwMwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLWdjLmh0bWwKQEAgLTAsMCArMSw1MiBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRsZT5tZWRpYS1nYzwvdGl0
bGU+CisgICAgPHNjcmlwdCBzcmM9InZpZGVvLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQgc3JjPSJtZWRpYS1maWxlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgIHdpbmRv
dy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgYXN5bmMgZXZlbnQgPT4geworICAgICAgICBjb25z
b2xlV3JpdGUoJ1Rlc3QgdGhhdCBjcmVhdGluZyBtZWRpYSBlbGVtZW50cyB3aWxsIHRyaWdnZXIg
R0MuJykKKworICAgICAgICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAgIGZh
aWxUZXN0KCdUaGlzIHRlc3QgcmVxdWlyZXMgd2luZG93LmludGVybmFscycpOworICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgbGV0IG9ic2VydmVycyA9IFtdOworICAg
ICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDEwMDA7ICsraSkgeworICAgICAgICAgICAgbGV0IHRl
c3RPYmplY3QgPSB7IHRlc3RQcm9wZXJ0eSA6ICd0ZXN0VmFsdWUnIH07CisgICAgICAgICAgICBs
ZXQgb2JzZXJ2ZXIgPSBpbnRlcm5hbHMub2JzZXJ2ZUdDKHRlc3RPYmplY3QpOworICAgICAgICAg
ICAgb2JzZXJ2ZXJzLnB1c2gob2JzZXJ2ZXIpOworICAgICAgICAgICAgdGVzdE9iamVjdCA9IG51
bGw7CisgICAgICAgIH0KKworICAgICAgICB3aW5kb3cuYW55Q29sbGVjdGVkID0gKCkgPT4gewor
ICAgICAgICAgICAgZm9yIChsZXQgb2JzZXJ2ZXIgb2Ygb2JzZXJ2ZXJzKSB7CisgICAgICAgICAg
ICAgICAgaWYgKG9ic2VydmVyLndhc0NvbGxlY3RlZCkKKyAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgIH07CisKKyAgICAgICAgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgnYW55Q29sbGVjdGVkKCkn
LCB0cnVlKS50aGVuKCgpID0+IHsKKyAgICAgICAgICAgIGNvbXBsZXRlZCA9IHRydWU7CisgICAg
ICAgICAgICBlbmRUZXN0KCk7CisgICAgICAgIH0pOworCisgICAgICAgIGxldCBjb21wbGV0ZWQg
PSBmYWxzZTsKKyAgICAgICAgd2luZG93LnZpZGVvRWxlbWVudHMgPSBbXTsKKyAgICAgICAgd2hp
bGUgKCFjb21wbGV0ZWQpIHsKKyAgICAgICAgICAgIGxldCB2aWRlbyA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ3ZpZGVvJyk7CisgICAgICAgICAgICB2aWRlby5tdXRlZDsKKyAgICAgICAgICAg
IHZpZGVvLnNyYyA9IGZpbmRNZWRpYUZpbGUoJ3ZpZGVvJywgJ2NvbnRlbnQvdGVzdCcpOworICAg
ICAgICAgICAgdmlkZW8ubG9hZCgpOworICAgICAgICAgICAgYXdhaXQgd2FpdEZvcih2aWRlbywg
J2NhbnBsYXl0aHJvdWdoJywgdHJ1ZSk7CisgICAgICAgICAgICB2aWRlb0VsZW1lbnRzLnB1c2go
dmlkZW8pOworICAgICAgICB9CisgICAgfSk7CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444722</attachid>
            <date>2021-11-18 12:59:27 -0800</date>
            <delta_ts>2021-11-18 12:59:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233146-20211118125926.patch</filename>
            <type>text/plain</type>
            <size>37616</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1NjM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmUwMDg0ZmFkOGZiODEw
YTFiMjUxMDE3NmE1Nzc2NDRkYjI1NzE5Yy4uY2Y2YWIxNjdhYTlhMDVlNTU1N2VlYjRmZjU2ZjA2
ZTYzY2JlYjg1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDIxLTExLTE2ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEhUTUxNZWRpYUVsZW1lbnQ6
IEFkb3B0IHJlcG9ydEV4dHJhTWVtb3J5VmlzaXRlZC9BbGxvY2F0ZWQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzE0NgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzOiBodHRwL3Rlc3RzL21lZGlh
L2hscy9obHMtbWVkaWEtZ2MuaHRtbAorICAgICAgICAgICAgICAgbWVkaWEvbWVkaWEtZ2MuaHRt
bAorCisgICAgICAgIENhbGwgcmVwb3J0RXh0cmFNZW1vcnlBbGxvY2F0ZWQoKSB3aGVuZXZlciB0
aGUgKGVzdGltYXRlZCkgbnVtYmVyIG9mIGJ5dGVzIGFsbG9jYXRlZCBpbmNyZWFzZXMsCisgICAg
ICAgIGFuZCBhZG9wdCBgUmVwb3J0RXh0cmFNZW1vcnlDb3N0YCBpbiBIVE1MTWVkaWFFbGVtZW50
LmlkbCwgd2hpY2ggd2lsbCBjYWxsIHJlcG9ydEV4dHJhTWVtb3J5VmlzaXRlZCgpCisgICAgICAg
IG9uIHRoZSBtZWRpYSBlbGVtZW50J3MgYmVoYWxmIGR1cmluZyBHQy4KKworICAgICAgICBUaGUg
ZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBvZiBNZWRpYVBsYXllclByaXZhdGU6Om1lbW9yeUNvc3Qo
KSBkZXJpdmVzIHRoZSBwZXJjZW50YWdlIG9mIGxvYWRlZCBtZWRpYQorICAgICAgICBkYXRhIHRo
cm91Z2ggbG9hZGVkVGltZVJhbmdlcygpIGFuZCBkdXJhdGlvbigpLCBhbmQgZGl2aWRlcyB0b3Rh
bEJ5dGVzKCkgYnkgdGhhdCBhbW91bnQuIEhvd2V2ZXIsIGZvcgorICAgICAgICBITFMgc3RyZWFt
cywgZHVyYXRpb24oKSBhbmQgdG90YWxCeXRlcygpIG1heSBiZSBlbXB0eSBvciBvdGhlcndpc2Ug
bm9uLWZpbml0ZS4gSW4gdGhhdCBjYXNlLCB1c2UgdGhlCisgICAgICAgIEFWUGxheWVySXRlbUFj
Y2Vzc0xvZyB0byBleHRyYWN0IGluZm9ybWF0aW9uIGFib3V0IHRoZSBzdHJlYW0ncyByZXBvcnRl
ZCBiaXRyYXRlLCBhbmQgbXVsdGlwbHkgdGhhdAorICAgICAgICBiaXRyYXRlIGJ5IHRoZSBkdXJh
dGlvbiBvZiBsb2FkZWRUaW1lUmFuZ2VzKCkgYXMgYW4gZXN0aW1hdGUgb2YgdGhlIE1lZGlhUGxh
eWVyUHJpdmF0ZSdzIG1lbW9yeUNvc3QoKS4KKworICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpwYXVzZUFmdGVy
RGV0YWNoZWRUYXNrKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6Om1lbW9y
eUNvc3QgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQ
bGF5ZXJNZW1vcnlDb3N0Q2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVt
ZW50OjpjbGVhck1lZGlhUGxheWVyKToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQu
aDoKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaWRsOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyOjptZW1vcnlDb3N0Q2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6
bWVtb3J5Q29zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6ZXh0cmFNZW1vcnlD
b3N0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBs
YXllci5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJDbGllbnQ6Om1lZGlhUGxheWVy
TWVtb3J5Q29zdENoYW5nZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyUHJpdmF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJm
YWNlOjptZW1vcnlDb3N0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUlu
dGVyZmFjZTo6ZXh0cmFNZW1vcnlDb3N0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6
bWVtb3J5Q29zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb246OmxvYWRlZFRpbWVSYW5nZXNDaGFuZ2VkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmg6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnBsYXRmb3JtSW5k
aWNhdGVkQml0cmF0ZSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVBVlBsYXllckl0ZW0pOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGxhdGZvcm1JbmRpY2F0ZWRC
aXRyYXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakM6Om5ld0FjY2Vzc0xvZ0VudHJ5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmN1cnJlbnRBY2Nlc3NMb2dFdmVudCBjb25z
dCk6CisgICAgICAgICgtW1dlYkNvcmVBVkZNb3ZpZU9ic2VydmVyIG5ld0FjY2Vzc0xvZ0VudHJ5
Ol0pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZG
T2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQzo6bWVtb3J5Q29zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakM6OmV4dHJhTWVtb3J5Q29zdCBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmg6CisKIDIwMjEtMTEtMTEgIEplciBOb2JsZSAgPGpl
ci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gQWRvcHQgLVtBVkF1ZGlvU2Vzc2lv
biBzZXRBdWRpdFRva2Vuc0ZvclByb2Nlc3NBc3NlcnRpb246XQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5k
ZXggMGJhYjlhZTA4ZjNlZGE3NDlmYzkwYTEwOTY3OWQ4MjM4ZWY0MjFhNC4uM2EzMjAyZjE2NTM0
NWVhY2RkMTc3YmFmYjQ3MDhjYjM3YmE0M2Y2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
UEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTMgQEAKKzIwMjEtMTEtMTYgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisK
KyAgICAgICAgSFRNTE1lZGlhRWxlbWVudDogQWRvcHQgcmVwb3J0RXh0cmFNZW1vcnlWaXNpdGVk
L0FsbG9jYXRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjMzMTQ2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBwYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaDoKKyAgICAgICAgKiBwYWwvY29j
b2EvQVZGb3VuZGF0aW9uU29mdExpbmsubW06CisKIDIwMjEtMTEtMTUgIEplciBOb2JsZSAgPGpl
ci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gQWRvcHQgLVtBVkF1ZGlvU2Vzc2lv
biBzZXRBdWRpdFRva2Vuc0ZvclByb2Nlc3NBc3NlcnRpb246XQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA2NWEwY2Yw
MzYwMzg2YThhYzU2ZGExOTNmNDg3ZTM1Y2NiMDA4MmY2Li5iMDI0NjNiN2U0YzI5OTI5ZTk3MmNj
ZmVmNjMyMmM4NzA5OTE3YWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTExLTE2
ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEhUTUxNZWRpYUVs
ZW1lbnQ6IEFkb3B0IHJlcG9ydEV4dHJhTWVtb3J5VmlzaXRlZC9BbGxvY2F0ZWQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzE0NgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBhc3MgbWVtb3J5Q29zdCBp
bmZvcm1hdGlvbiBhY3Jvc3MgdGhlIEdQVS9XZWJDb250ZW50IHByb2Nlc3MgYm91bmRhcnkuCisK
KyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllck1lbW9y
eUNvc3RDaGFuZ2VkKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxh
eWVyUHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclBy
aXZhdGVSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6Om1lbW9yeUNvc3RDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlOjpleHRyYU1lbW9yeUNvc3QgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIFdl
YlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oOgorICAgICAgICAq
IFdlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5p
bjoKKwogMjAyMS0xMS0xMSAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CiAKICAgICAg
ICAgV0tTeXN0ZW1QcmV2aWV3VmlldyBzaG91bGQgYmUgY2FsbGVkIFdLVVNEUHJldmlld1ZpZXcK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29m
dExpbmsuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExp
bmsuaAppbmRleCA5ZGI5YWY4ZjdlYzFhZmI0ZjE4MDFlODY2ZWY0MDY3OTZmZjhjNWQzLi4wZjAw
M2UwZWNiOTkxYjhjODE3NjM3OTg3OGI5NzhlYzJmMjZhZDNlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oCkBAIC0xNDIsNiAr
MTQyLDggQEAgU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBBVkZvdW5kYXRpb24s
IEFWQ2FwdHVyZURldmljZVdhc0Rpc2Nvbm5lY3RlZE4KICNkZWZpbmUgQVZDYXB0dXJlRGV2aWNl
V2FzRGlzY29ubmVjdGVkTm90aWZpY2F0aW9uIFBBTDo6Z2V0X0FWRm91bmRhdGlvbl9BVkNhcHR1
cmVEZXZpY2VXYXNEaXNjb25uZWN0ZWROb3RpZmljYXRpb24oKQogU09GVF9MSU5LX0NPTlNUQU5U
X0ZPUl9IRUFERVIoUEFMLCBBVkZvdW5kYXRpb24sIEFWUGxheWVySXRlbURpZFBsYXlUb0VuZFRp
bWVOb3RpZmljYXRpb24sIE5TU3RyaW5nICopCiAjZGVmaW5lIEFWUGxheWVySXRlbURpZFBsYXlU
b0VuZFRpbWVOb3RpZmljYXRpb24gUEFMOjpnZXRfQVZGb3VuZGF0aW9uX0FWUGxheWVySXRlbURp
ZFBsYXlUb0VuZFRpbWVOb3RpZmljYXRpb24oKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFE
RVIoUEFMLCBBVkZvdW5kYXRpb24sIEFWUGxheWVySXRlbU5ld0FjY2Vzc0xvZ0VudHJ5Tm90aWZp
Y2F0aW9uLCBOU1N0cmluZyAqKQorI2RlZmluZSBBVlBsYXllckl0ZW1OZXdBY2Nlc3NMb2dFbnRy
eU5vdGlmaWNhdGlvbiBQQUw6OmdldF9BVkZvdW5kYXRpb25fQVZQbGF5ZXJJdGVtTmV3QWNjZXNz
TG9nRW50cnlOb3RpZmljYXRpb24oKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFM
LCBBVkZvdW5kYXRpb24sIEFWU3RyZWFtU2Vzc2lvbkNvbnRlbnRQcm90ZWN0aW9uU2Vzc2lvbklk
ZW50aWZpZXJDaGFuZ2VkTm90aWZpY2F0aW9uLCBOU1N0cmluZyAqKQogI2RlZmluZSBBVlN0cmVh
bVNlc3Npb25Db250ZW50UHJvdGVjdGlvblNlc3Npb25JZGVudGlmaWVyQ2hhbmdlZE5vdGlmaWNh
dGlvbiBQQUw6OmdldF9BVkZvdW5kYXRpb25fQVZTdHJlYW1TZXNzaW9uQ29udGVudFByb3RlY3Rp
b25TZXNzaW9uSWRlbnRpZmllckNoYW5nZWROb3RpZmljYXRpb24oKQogU09GVF9MSU5LX0NPTlNU
QU5UX0ZPUl9IRUFERVIoUEFMLCBBVkZvdW5kYXRpb24sIEFWU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyRmFpbGVkVG9EZWNvZGVOb3RpZmljYXRpb24sIE5TU3RyaW5nKikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLm1tCmluZGV4IGQy
MWQ0OWNkNzcwMjQzNDI3NjY4ZTg3MDg2MTUzNDFjZDZjNjQ1MWEuLjliMjRmY2EwZDhiZGZkMTk3
YzQwM2Q5ZjNkZTYyYzkwMzE1ZTAzM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsubW0KKysrIGIvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5tbQpAQCAtMTcxLDYgKzE3MSw3IEBAIFNP
RlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9u
LCBBVk91dE9mQmFuZEFsdGVybmF0CiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRI
X0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZPdXRPZkJhbmRBbHRlcm5hdGVUcmFja01lZGlh
Q2hhcmFjdGVyc3RpY3NLZXksIE5TU3RyaW5nICosIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfQ09O
U1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZPdXRPZkJh
bmRBbHRlcm5hdGVUcmFja1NvdXJjZUtleSwgTlNTdHJpbmcgKiwgUEFMX0VYUE9SVCkKIFNPRlRf
TElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBB
VlBsYXllckl0ZW1EaWRQbGF5VG9FbmRUaW1lTm90aWZpY2F0aW9uLCBOU1N0cmluZyAqLCBQQUxf
RVhQT1JUKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBB
VkZvdW5kYXRpb24sIEFWUGxheWVySXRlbU5ld0FjY2Vzc0xvZ0VudHJ5Tm90aWZpY2F0aW9uLCBO
U1N0cmluZyAqLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lU
SF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWUGxheWVySXRlbUxlZ2libGVPdXRwdXRUZXh0
U3R5bGluZ1Jlc29sdXRpb25Tb3VyY2VBbmRSdWxlc09ubHksIE5TU3RyaW5nICosIFBBTF9FWFBP
UlQpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIEFWRm91
bmRhdGlvbiwgQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJGYWlsZWRUb0RlY29kZU5vdGlmaWNh
dGlvbiwgTlNTdHJpbmcqLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VS
Q0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyRmFpbGVkVG9EZWNvZGVOb3RpZmljYXRpb25FcnJvcktleSwgTlNTdHJpbmcqLCBQQUxfRVhQ
T1JUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggMzIzZmM0
ODEyZTM4N2Y2YzU5M2Y0NmMyY2M0ZmIwZTA2MmQ5N2QwZi4uZDAyMDdiYTM2NzU2NDYwZjYwNDM1
YTUwNGE2NWU4MWE4OThmOGY1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwCkBAIC04NTQsMTggKzg1NCwyNiBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnBhdXNl
QWZ0ZXJEZXRhY2hlZFRhc2soKQogCiAgICAgaWYgKCFtX3BsYXllcikKICAgICAgICAgcmV0dXJu
OworfQogCi0gICAgc2l6ZV90IGV4dHJhTWVtb3J5Q29zdCA9IG1fcGxheWVyLT5leHRyYU1lbW9y
eUNvc3QoKTsKLSAgICBpZiAoZXh0cmFNZW1vcnlDb3N0ID4gbV9yZXBvcnRlZEV4dHJhTWVtb3J5
Q29zdCkgewotICAgICAgICBKU0M6OlZNJiB2bSA9IGNvbW1vblZNKCk7Ci0gICAgICAgIEpTQzo6
SlNMb2NrSG9sZGVyIGxvY2sodm0pOworc2l6ZV90IEhUTUxNZWRpYUVsZW1lbnQ6Om1lbW9yeUNv
c3QoKSBjb25zdAoreworICAgIC8vIE1heSBiZSBjYWxsZWQgZnJvbSBhIEdDIG1hcmtpbmcgb3Ig
Y29sbGVjdGluZyB0aHJlYWQuCisgICAgcmV0dXJuIG1fcmVwb3J0ZWRFeHRyYU1lbW9yeUNvc3Q7
Cit9CiAKLSAgICAgICAgc2l6ZV90IGV4dHJhTWVtb3J5Q29zdERlbHRhID0gZXh0cmFNZW1vcnlD
b3N0IC0gbV9yZXBvcnRlZEV4dHJhTWVtb3J5Q29zdDsKLSAgICAgICAgbV9yZXBvcnRlZEV4dHJh
TWVtb3J5Q29zdCA9IGV4dHJhTWVtb3J5Q29zdDsKLSAgICAgICAgLy8gRklYTUU6IEFkb3B0IHJl
cG9ydEV4dHJhTWVtb3J5VmlzaXRlZCwgYW5kIHN3aXRjaCB0byByZXBvcnRFeHRyYU1lbW9yeUFs
bG9jYXRlZC4KLSAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE0MjU5NQotICAgICAgICB2bS5oZWFwLmRlcHJlY2F0ZWRSZXBvcnRFeHRyYU1lbW9yeShl
eHRyYU1lbW9yeUNvc3REZWx0YSk7Ci0gICAgfQordm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRp
YVBsYXllck1lbW9yeUNvc3RDaGFuZ2VkKHNpemVfdCBuZXdNZW1vcnlDb3N0KQoreworICAgIGlm
IChuZXdNZW1vcnlDb3N0ID09IG1fcmVwb3J0ZWRFeHRyYU1lbW9yeUNvc3QpCisgICAgICAgIHJl
dHVybjsKKworICAgIGF1dG8gb2xkTWVtb3J5Q29zdCA9IG1fcmVwb3J0ZWRFeHRyYU1lbW9yeUNv
c3QuZXhjaGFuZ2UobmV3TWVtb3J5Q29zdCk7CisgICAgaWYgKG5ld01lbW9yeUNvc3QgPCBvbGRN
ZW1vcnlDb3N0KQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvJiB2bSA9IHNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKS0+dm0oKTsKKyAgICBKU0M6OkpTTG9ja0hvbGRlciBsb2NrKHZtKTsKKyAg
ICB2bS5oZWFwLnJlcG9ydEV4dHJhTWVtb3J5QWxsb2NhdGVkKG5ld01lbW9yeUNvc3QgLSBvbGRN
ZW1vcnlDb3N0KTsKIH0KIAogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpyZW1vdmVkRnJvbUFuY2Vz
dG9yKFJlbW92YWxUeXBlIHJlbW92YWxUeXBlLCBDb250YWluZXJOb2RlJiBvbGRQYXJlbnRPZlJl
bW92ZWRUcmVlKQpAQCAtNTg1Myw2ICs1ODYxLDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpj
bGVhck1lZGlhUGxheWVyKCkKICAgICAgICAgbV9wbGF5ZXItPmludmFsaWRhdGUoKTsKICAgICAg
ICAgbV9wbGF5ZXIgPSBudWxscHRyOwogICAgICAgICBtX2NhY2hlZFN1cHBvcnRzQWNjZWxlcmF0
ZWRSZW5kZXJpbmcgPSBmYWxzZTsKKyAgICAgICAgbWVkaWFQbGF5ZXJNZW1vcnlDb3N0Q2hhbmdl
ZCgwKTsKICAgICB9CiAgICAgc2NoZWR1bGVQbGF5YmFja0NvbnRyb2xzTWFuYWdlclVwZGF0ZSgp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IDJlY2JmNWRiYWFk
ZWQ0MmU3NzkwNDQwNWFjMDEzMWUzOGZjMjliZTcuLjljNzRhNTk3YzU3MzA2YmE5YzBlMGI3NjJl
NWJkZTNlZmMxOTM0ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBA
IC02MDUsNiArNjA1LDggQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBtZWRp
YVBsYXllclJlbmRlcmluZ0NhbkJlQWNjZWxlcmF0ZWQoKSBmaW5hbDsKIAorICAgIHNpemVfdCBt
ZW1vcnlDb3N0KCkgY29uc3Q7CisKIHByb3RlY3RlZDoKICAgICBIVE1MTWVkaWFFbGVtZW50KGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKTsKICAg
ICB2aXJ0dWFsIH5IVE1MTWVkaWFFbGVtZW50KCk7CkBAIC03NzAsNiArNzcyLDcgQEAgcHJpdmF0
ZToKICAgICBib29sIG1lZGlhUGxheWVyU2hvdWxkQ2hlY2tIYXJkd2FyZVN1cHBvcnQoKSBjb25z
dCBmaW5hbDsKICAgICBjb25zdCBWZWN0b3I8Q29udGVudFR5cGU+JiBtZWRpYUNvbnRlbnRUeXBl
c1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCgpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgbWVkaWFQ
bGF5ZXJCdWZmZXJlZFRpbWVSYW5nZXNDaGFuZ2VkKCkgZmluYWw7CisgICAgdm9pZCBtZWRpYVBs
YXllck1lbW9yeUNvc3RDaGFuZ2VkKHNpemVfdCB0b3RhbE1lbW9yeUNvc3QpIGZpbmFsOwogCiAj
aWYgVVNFKEdTVFJFQU1FUikKICAgICB2b2lkIHJlcXVlc3RJbnN0YWxsTWlzc2luZ1BsdWdpbnMo
Y29uc3QgU3RyaW5nJiBkZXRhaWxzLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBNZWRpYVBs
YXllclJlcXVlc3RJbnN0YWxsTWlzc2luZ1BsdWdpbnNDYWxsYmFjayYpIGZpbmFsOwpAQCAtMTE5
OCw3ICsxMjAxLDcgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAgICAgc3RkOjp1bmlxdWVfcHRyPE1l
ZGlhRWxlbWVudFNlc3Npb24+IG1fbWVkaWFTZXNzaW9uOwotICAgIHNpemVfdCBtX3JlcG9ydGVk
RXh0cmFNZW1vcnlDb3N0IHsgMCB9OworICAgIHN0ZDo6YXRvbWljPHNpemVfdD4gbV9yZXBvcnRl
ZEV4dHJhTWVtb3J5Q29zdCB7IDAgfTsKIAogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAg
IFJlZlB0cjxMb2dnZXI+IG1fbG9nZ2VyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5pZGwKaW5kZXggZjQwY2VkZjIyOTMwNjA1MDcxZjY3NjVlM2RkMDhiODRiYmQzZTg4Yy4u
Mzk4MThhYjU1ZDYwNmU5MDEyNjEzNjA1ODE5OTMyYjlkMGQ2ZjllOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaWRsCkBAIC0zNyw2ICszNyw3IEBAIHR5cGVkZWYgKAog
ICAgIENvbmRpdGlvbmFsPVZJREVPLAogICAgIEV4cG9ydE1hY3JvPVdFQkNPUkVfRVhQT1JULAog
ICAgIEpTR2VuZXJhdGVUb05hdGl2ZU9iamVjdCwKKyAgICBSZXBvcnRFeHRyYU1lbW9yeUNvc3Qs
CiAgICAgRXhwb3NlZD1XaW5kb3cKIF0gaW50ZXJmYWNlIEhUTUxNZWRpYUVsZW1lbnQgOiBIVE1M
RWxlbWVudCB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L01lZGlhUGxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlh
UGxheWVyLmNwcAppbmRleCBhNDM2YTU1OGE3OTlhNjY2YTZlZjZhNGY1ZjM4MDk1NGQxNzA2NTk2
Li41ZGQ4OGE5NmYwNzY3ODk5OTVjMDc0MjczYTA2Mjg0YzdhNmM2MTA4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCkBAIC05OTcsNiAr
OTk3LDkgQEAgZG91YmxlIE1lZGlhUGxheWVyOjpzZWVrYWJsZVRpbWVSYW5nZXNMYXN0TW9kaWZp
ZWRUaW1lKCkKIHZvaWQgTWVkaWFQbGF5ZXI6OmJ1ZmZlcmVkVGltZVJhbmdlc0NoYW5nZWQoKQog
ewogICAgIGNsaWVudCgpLm1lZGlhUGxheWVyQnVmZmVyZWRUaW1lUmFuZ2VzQ2hhbmdlZCgpOwor
CisgICAgaWYgKG1fcHJpdmF0ZSAmJiAhbV9wcml2YXRlLT5zdXBwb3J0c01lbW9yeUNvc3RDaGFu
Z2VkKCkpCisgICAgICAgIGNsaWVudCgpLm1lZGlhUGxheWVyTWVtb3J5Q29zdENoYW5nZWQobWVt
b3J5Q29zdCgpKTsKIH0KIAogdm9pZCBNZWRpYVBsYXllcjo6c2Vla2FibGVUaW1lUmFuZ2VzQ2hh
bmdlZCgpCkBAIC0xMzYzLDYgKzEzNjYsOSBAQCB2b2lkIE1lZGlhUGxheWVyOjpyZXBhaW50KCkK
IHZvaWQgTWVkaWFQbGF5ZXI6OmR1cmF0aW9uQ2hhbmdlZCgpCiB7CiAgICAgY2xpZW50KCkubWVk
aWFQbGF5ZXJEdXJhdGlvbkNoYW5nZWQoKTsKKworICAgIGlmIChtX3ByaXZhdGUgJiYgIW1fcHJp
dmF0ZS0+c3VwcG9ydHNNZW1vcnlDb3N0Q2hhbmdlZCgpKQorICAgICAgICBjbGllbnQoKS5tZWRp
YVBsYXllck1lbW9yeUNvc3RDaGFuZ2VkKG1lbW9yeUNvc3QoKSk7CiB9CiAKIHZvaWQgTWVkaWFQ
bGF5ZXI6OnJhdGVDaGFuZ2VkKCkKQEAgLTE1NzksMTIgKzE1ODUsMTcgQEAgU3RyaW5nIE1lZGlh
UGxheWVyOjpsYW5ndWFnZU9mUHJpbWFyeUF1ZGlvVHJhY2soKSBjb25zdAogICAgIHJldHVybiBt
X3ByaXZhdGUtPmxhbmd1YWdlT2ZQcmltYXJ5QXVkaW9UcmFjaygpOwogfQogCi1zaXplX3QgTWVk
aWFQbGF5ZXI6OmV4dHJhTWVtb3J5Q29zdCgpIGNvbnN0Cit2b2lkIE1lZGlhUGxheWVyOjptZW1v
cnlDb3N0Q2hhbmdlZChzaXplX3QgdG90YWxNZW1vcnlDb3N0KQoreworICAgIGNsaWVudCgpLm1l
ZGlhUGxheWVyTWVtb3J5Q29zdENoYW5nZWQodG90YWxNZW1vcnlDb3N0KTsKK30KKworc2l6ZV90
IE1lZGlhUGxheWVyOjptZW1vcnlDb3N0KCkKIHsKICAgICBpZiAoIW1fcHJpdmF0ZSkKICAgICAg
ICAgcmV0dXJuIDA7CiAKLSAgICByZXR1cm4gbV9wcml2YXRlLT5leHRyYU1lbW9yeUNvc3QoKTsK
KyAgICByZXR1cm4gbV9wcml2YXRlLT5tZW1vcnlDb3N0KCk7CiB9CiAKIHVuc2lnbmVkIGxvbmcg
bG9uZyBNZWRpYVBsYXllcjo6ZmlsZVNpemUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKaW5kZXggNWIxZTE3NDUxM2UwNmZhMDFkNTE5
MGI1NWU1MDUzNTU1ZWZkNzYzNy4uYzU2ZTQ2YzNhODg4MTFiZWUzMjVkNjM5MzAyOTcyYjc1N2U1
MmRmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
ci5oCkBAIC0yODYsNiArMjg2LDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIG1lZGlh
UGxheWVyUXVldWVUYXNrT25FdmVudExvb3AoRnVuY3Rpb248dm9pZCgpPiYmIHRhc2spIHsgY2Fs
bE9uTWFpblRocmVhZChXVEZNb3ZlKHRhc2spKTsgfQogCisgICAgdmlydHVhbCB2b2lkIG1lZGlh
UGxheWVyTWVtb3J5Q29zdENoYW5nZWQoc2l6ZV90KSB7IH0KKwogI2lmICFSRUxFQVNFX0xPR19E
SVNBQkxFRAogICAgIHZpcnR1YWwgY29uc3Qgdm9pZCogbWVkaWFQbGF5ZXJMb2dJZGVudGlmaWVy
KCkgeyByZXR1cm4gbnVsbHB0cjsgfQogICAgIHZpcnR1YWwgY29uc3QgTG9nZ2VyJiBtZWRpYVBs
YXllckxvZ2dlcigpID0gMDsKQEAgLTYxMCw3ICs2MTIsOCBAQCBwdWJsaWM6CiAKICAgICBTdHJp
bmcgbGFuZ3VhZ2VPZlByaW1hcnlBdWRpb1RyYWNrKCkgY29uc3Q7CiAKLSAgICBzaXplX3QgZXh0
cmFNZW1vcnlDb3N0KCkgY29uc3Q7CisgICAgdm9pZCBtZW1vcnlDb3N0Q2hhbmdlZChzaXplX3Qp
OworICAgIHNpemVfdCBtZW1vcnlDb3N0KCk7CiAKICAgICB1bnNpZ25lZCBsb25nIGxvbmcgZmls
ZVNpemUoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXllclByaXZhdGUuaAppbmRleCBmNWE0MGFiYzhhNzlhNmNlMDY0YjcwMmNk
ZDBjOWE5YWE2NjNkZDM5Li4zZjkxOWNhNGE0NTIwNjdhMTc5NGUwNTczNzJmOWJiZGJlMWM2Y2E3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
clByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBs
YXllclByaXZhdGUuaApAQCAtMjc2LDcgKzI3Niw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwg
U3RyaW5nIGxhbmd1YWdlT2ZQcmltYXJ5QXVkaW9UcmFjaygpIGNvbnN0IHsgcmV0dXJuIGVtcHR5
U3RyaW5nKCk7IH0KIAotICAgIHZpcnR1YWwgc2l6ZV90IGV4dHJhTWVtb3J5Q29zdCgpIGNvbnN0
CisgICAgdmlydHVhbCBib29sIHN1cHBvcnRzTWVtb3J5Q29zdENoYW5nZWQoKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgc2l6ZV90IG1lbW9yeUNvc3QoKQogICAgIHsKICAg
ICAgICAgTWVkaWFUaW1lIGR1cmF0aW9uID0gdGhpcy0+ZHVyYXRpb25NZWRpYVRpbWUoKTsKICAg
ICAgICAgaWYgKCFkdXJhdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAKaW5kZXggYzk5OGQ5ZjY0NzBlODBmOGQ0Y2RkNWUx
MjY2ZjA1YjEyYmQ2MTA5ZS4uMTlhYTI1NzlmODM3M2M4YWE5OGNkNjliZWM3ZDI3M2NhMmI5MjQ4
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbi5jcHAKQEAgLTYyOSwxMSArNjI5LDI4IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uOjpyYXRlQ2hhbmdlZCgpCiAgICAgbV9wbGF5ZXItPnJhdGVDaGFuZ2VkKCk7
CiB9CiAKK3NpemVfdCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246Om1lbW9yeUNvc3Qo
KQoreworICAgIC8vIFRoZSBkZWZhdWx0IE1lZGlhUGxheWVyUHJpdmF0ZSBpbXBsZW1lbnRhdGlv
biBkZXBlbmRzIHVwb24gdG90YWxCeXRlcygpIGFuZCBkdXJhdGlvbigpLAorICAgIC8vIHdoaWNo
IG1heSBub3QgYmUgYXZhaWxhYmxlIGZvciBITFMgc3RyZWFtcy4gSW4gdGhhdCBjYXNlLCBwcm92
aWRlIGEgY3VzdG9tIGltcGxlbWVudGF0aW9uCisgICAgLy8gd2hpY2ggdXNlcyB0aGUgb2JzZXJ2
ZWRCaXRyYXRlIHRvIGNhbGN1bGF0ZSBtZW1vcnlDb3N0LgorICAgIGlmICh0b3RhbEJ5dGVzKCkg
JiYgbV9jYWNoZWREdXJhdGlvbikKKyAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyUHJpdmF0ZUlu
dGVyZmFjZTo6bWVtb3J5Q29zdCgpOworCisgICAgaWYgKG1fY2FjaGVkTG9hZGVkVGltZVJhbmdl
cykKKyAgICAgICAgcmV0dXJuIHBsYXRmb3JtSW5kaWNhdGVkQml0cmF0ZSgpICogbV9jYWNoZWRM
b2FkZWRUaW1lUmFuZ2VzLT50b3RhbER1cmF0aW9uKCkudG9Eb3VibGUoKSAvIDg7CisKKyAgICBy
ZXR1cm4gMDsKK30KKwogdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OmxvYWRl
ZFRpbWVSYW5nZXNDaGFuZ2VkKCkKIHsKLSAgICBtX2NhY2hlZExvYWRlZFRpbWVSYW5nZXMgPSBu
dWxscHRyOwotICAgIG1fY2FjaGVkTWF4VGltZUxvYWRlZCA9IE1lZGlhVGltZTo6emVyb1RpbWUo
KTsKKyAgICBhdXRvIG9sZExvYWRlZFRpbWVSYW5nZXMgPSBzdGQ6OmV4Y2hhbmdlKG1fY2FjaGVk
TG9hZGVkVGltZVJhbmdlcywgcGxhdGZvcm1CdWZmZXJlZFRpbWVSYW5nZXMoKSk7CisgICAgbV9j
YWNoZWRNYXhUaW1lTG9hZGVkID0gbV9jYWNoZWRMb2FkZWRUaW1lUmFuZ2VzID8gbV9jYWNoZWRM
b2FkZWRUaW1lUmFuZ2VzLT5tYXhpbXVtQnVmZmVyZWRUaW1lKCkgOiBNZWRpYVRpbWU6Onplcm9U
aW1lKCk7CisKICAgICBpbnZhbGlkYXRlQ2FjaGVkRHVyYXRpb24oKTsKKworICAgIG1fcGxheWVy
LT5tZW1vcnlDb3N0Q2hhbmdlZChtZW1vcnlDb3N0KCkpOwogICAgIG1fcGxheWVyLT5idWZmZXJl
ZFRpbWVSYW5nZXNDaGFuZ2VkKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaAppbmRleCA2MjY3YjgzMzIxMjk5YjEzZWE3ZWQy
YTQwNWU0Y2JiODVlNDQ4ODNiLi5hOGQyMzEwODIzMDNlM2VhNWM2Zjc0ZDlmY2JjODE3ZmQyYzg0
NmViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbi5oCkBAIC0yMTQsNiArMjE0LDggQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgc3VwcG9y
dHNGdWxsc2NyZWVuKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBzdXBwb3J0c1NjYW5uaW5n
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHVuc2lnbmVkIGxvbmcgbG9u
ZyBmaWxlU2l6ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRvdGFsQnl0ZXMoKTsgfQorICAg
IGJvb2wgc3VwcG9ydHNNZW1vcnlDb3N0Q2hhbmdlZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IHRydWU7IH0KKyAgICBzaXplX3QgbWVtb3J5Q29zdCgpIG92ZXJyaWRlOwogCiAgICAgYm9vbCBo
YXNTaW5nbGVTZWN1cml0eU9yaWdpbigpIGNvbnN0IG92ZXJyaWRlOwogCkBAIC0yNTYsNiArMjU4
LDcgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgTWVkaWFUaW1lIHBsYXRmb3JtTWluVGltZVNl
ZWthYmxlKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgTWVkaWFUaW1lIHBsYXRmb3JtTWF4VGlt
ZUxvYWRlZCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIE1lZGlhVGltZSBwbGF0Zm9ybUR1cmF0
aW9uKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgZG91YmxlIHBsYXRmb3JtSW5kaWNhdGVkQml0
cmF0ZSgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBiZWdpbkxvYWRp
bmdNZXRhZGF0YSgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2l6ZUNoYW5nZWQoKSA9IDA7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDLmgKaW5kZXggNTllY2E0NTEzNGZlNmY0MDU5OTAyZTIxY2U3ZTdlNWFk
ZTgwYmZhMi4uY2FhNTE1ZDljY2Q0MGRlMjYzNzVjNDM4OWY3MzU0OGEzZDFmY2RiMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMuaApAQCAtMzcsNiArMzcsNyBAQCBPQkpDX0NMQVNTIEFWQXNzZXRSZXNv
dXJjZUxvYWRpbmdSZXF1ZXN0OwogT0JKQ19DTEFTUyBBVk1lZGlhU2VsZWN0aW9uR3JvdXA7CiBP
QkpDX0NMQVNTIEFWT3V0cHV0Q29udGV4dDsKIE9CSkNfQ0xBU1MgQVZQbGF5ZXJJdGVtOworT0JK
Q19DTEFTUyBBVlBsYXllckl0ZW1BY2Nlc3NMb2dFdmVudDsKIE9CSkNfQ0xBU1MgQVZQbGF5ZXJJ
dGVtTGVnaWJsZU91dHB1dDsKIE9CSkNfQ0xBU1MgQVZQbGF5ZXJJdGVtTWV0YWRhdGFDb2xsZWN0
b3I7CiBPQkpDX0NMQVNTIEFWUGxheWVySXRlbU1ldGFkYXRhT3V0cHV0OwpAQCAtMTI0LDYgKzEy
NSw5IEBAIHB1YmxpYzoKICAgICB2b2lkIG91dHB1dE1lZGlhRGF0YVdpbGxDaGFuZ2UoKTsKICAg
ICB2b2lkIHByb2Nlc3NDaGFwdGVyVHJhY2tzKCk7CiAKKyAgICB2b2lkIG5ld0FjY2Vzc0xvZ0Vu
dHJ5KCk7CisgICAgQVZQbGF5ZXJJdGVtQWNjZXNzTG9nRXZlbnQgKmN1cnJlbnRBY2Nlc3NMb2dF
dmVudCgpIGNvbnN0OworCiBwcml2YXRlOgogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCiAg
ICAgdm9pZCBjZG1JbnN0YW5jZUF0dGFjaGVkKENETUluc3RhbmNlJikgZmluYWw7CkBAIC0yMTMs
NiArMjE3LDcgQEAgcHJpdmF0ZToKICAgICBNZWRpYVRpbWUgcGxhdGZvcm1NYXhUaW1lU2Vla2Fi
bGUoKSBjb25zdCBmaW5hbDsKICAgICBNZWRpYVRpbWUgcGxhdGZvcm1EdXJhdGlvbigpIGNvbnN0
IGZpbmFsOwogICAgIE1lZGlhVGltZSBwbGF0Zm9ybU1heFRpbWVMb2FkZWQoKSBjb25zdCBmaW5h
bDsKKyAgICBkb3VibGUgcGxhdGZvcm1JbmRpY2F0ZWRCaXRyYXRlKCkgY29uc3QgZmluYWw7CiAg
ICAgdm9pZCBiZWdpbkxvYWRpbmdNZXRhZGF0YSgpIGZpbmFsOwogICAgIHZvaWQgc2l6ZUNoYW5n
ZWQoKSBmaW5hbDsKICAgICB2b2lkIHJlc29sdmVkVVJMQ2hhbmdlZCgpIGZpbmFsOwpAQCAtMzQ2
LDYgKzM1MSw3IEBAIHByaXZhdGU6CiAgICAgUmV0YWluUHRyPEFWUGxheWVyPiBtX2F2UGxheWVy
OwogICAgIFJldGFpblB0cjxBVlBsYXllckl0ZW0+IG1fYXZQbGF5ZXJJdGVtOwogICAgIFJldGFp
blB0cjxBVlBsYXllckxheWVyPiBtX3ZpZGVvTGF5ZXI7CisgICAgbXV0YWJsZSBSZXRhaW5QdHI8
QVZQbGF5ZXJJdGVtQWNjZXNzTG9nRXZlbnQ+IG1fY3VycmVudEFjY2Vzc0xvZ0V2ZW50OwogICAg
IHN0ZDo6dW5pcXVlX3B0cjxWaWRlb0xheWVyTWFuYWdlck9iakM+IG1fdmlkZW9MYXllck1hbmFn
ZXI7CiAgICAgTWVkaWFQbGF5ZXI6OlZpZGVvR3Jhdml0eSBtX3ZpZGVvRnVsbHNjcmVlbkdyYXZp
dHkgeyBNZWRpYVBsYXllcjo6VmlkZW9HcmF2aXR5OjpSZXNpemVBc3BlY3QgfTsKICAgICBSZXRh
aW5QdHI8V2ViQ29yZUFWRk1vdmllT2JzZXJ2ZXI+IG1fb2JqY09ic2VydmVyOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakMubW0KaW5kZXggNGQ4NjExM2JjYmU0NjllYzZlMDI1NzkxMDJkMTEwZWE5MzAxMDA5
Ni4uZTYxODMxNmUxZDI2M2ZmMTRlZjA4MWFmY2Q5YjA2MjA0YTBhZDIzNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDLm1tCkBAIC0xOTQsNiArMTk0LDcgQEAgLSAodm9pZClsZWdpYmxlT3V0cHV0Oihp
ZClvdXRwdXQgZGlkT3V0cHV0QXR0cmlidXRlZFN0cmluZ3M6KE5TQXJyYXkgKilzdHJpbmdzIG4K
IC0gKHZvaWQpb3V0cHV0U2VxdWVuY2VXYXNGbHVzaGVkOihpZClvdXRwdXQ7CiAtICh2b2lkKW1l
dGFkYXRhQ29sbGVjdG9yOihBVlBsYXllckl0ZW1NZXRhZGF0YUNvbGxlY3RvciAqKW1ldGFkYXRh
Q29sbGVjdG9yIGRpZENvbGxlY3REYXRlUmFuZ2VNZXRhZGF0YUdyb3VwczooTlNBcnJheTxBVkRh
dGVSYW5nZU1ldGFkYXRhR3JvdXAgKj4gKiltZXRhZGF0YUdyb3VwcyBpbmRleGVzT2ZOZXdHcm91
cHM6KE5TSW5kZXhTZXQgKilpbmRleGVzT2ZOZXdHcm91cHMgaW5kZXhlc09mTW9kaWZpZWRHcm91
cHM6KE5TSW5kZXhTZXQgKilpbmRleGVzT2ZNb2RpZmllZEdyb3VwczsKIC0gKHZvaWQpbWV0YWRh
dGFPdXRwdXQ6KEFWUGxheWVySXRlbU1ldGFkYXRhT3V0cHV0ICopb3V0cHV0IGRpZE91dHB1dFRp
bWVkTWV0YWRhdGFHcm91cHM6KE5TQXJyYXk8QVZUaW1lZE1ldGFkYXRhR3JvdXAgKj4gKilncm91
cHMgZnJvbVBsYXllckl0ZW1UcmFjazooQVZQbGF5ZXJJdGVtVHJhY2sgKil0cmFjazsKKy0gKHZv
aWQpbmV3QWNjZXNzTG9nRW50cnk6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uOwogQGVu
ZAogCiBAaW50ZXJmYWNlIFdlYkNvcmVBVkZMb2FkZXJEZWxlZ2F0ZSA6IE5TT2JqZWN0PEFWQXNz
ZXRSZXNvdXJjZUxvYWRlckRlbGVnYXRlPiB7CkBAIC0xMTgyLDYgKzExODMsOCBAQCBBTExPV19O
RVdfQVBJX1dJVEhPVVRfR1VBUkRTX0VORAogICAgIFttX21ldGFkYXRhT3V0cHV0IHNldEFkdmFu
Y2VJbnRlcnZhbEZvckRlbGVnYXRlSW52b2NhdGlvbjphdlBsYXllck91dHB1dEFkdmFuY2VJbnRl
cnZhbF07CiAgICAgW21fYXZQbGF5ZXJJdGVtIGFkZE91dHB1dDptX21ldGFkYXRhT3V0cHV0Lmdl
dCgpXTsKIAorICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2Jz
ZXJ2ZXI6bV9vYmpjT2JzZXJ2ZXIuZ2V0KCkgc2VsZWN0b3I6QHNlbGVjdG9yKG5ld0FjY2Vzc0xv
Z0VudHJ5OikgbmFtZTpBVlBsYXllckl0ZW1OZXdBY2Nlc3NMb2dFbnRyeU5vdGlmaWNhdGlvbiBv
YmplY3Q6bV9hdlBsYXllckl0ZW0uZ2V0KCldOworCiAgICAgc2V0RGVsYXlDYWxsYmFja3MoZmFs
c2UpOwogfQogCkBAIC0xNzM3LDYgKzE3NDAsMTMgQEAgTWVkaWFUaW1lIE1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakM6OnBsYXRmb3JtTWF4VGltZUxvYWRlZCgpIGNvbnN0CiAgICAg
cmV0dXJuIG1heFRpbWVMb2FkZWQ7ICAgCiB9CiAKK2RvdWJsZSBNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDOjpwbGF0Zm9ybUluZGljYXRlZEJpdHJhdGUoKSBjb25zdAoreworICAg
IGlmIChhdXRvIGluZGljYXRlZEF2ZXJhZ2VCaXRyYXRlID0gY3VycmVudEFjY2Vzc0xvZ0V2ZW50
KCkuaW5kaWNhdGVkQXZlcmFnZUJpdHJhdGUgPiAwKQorICAgICAgICByZXR1cm4gaW5kaWNhdGVk
QXZlcmFnZUJpdHJhdGU7CisgICAgcmV0dXJuIGN1cnJlbnRBY2Nlc3NMb2dFdmVudCgpLmluZGlj
YXRlZEJpdHJhdGU7Cit9CisKIHVuc2lnbmVkIGxvbmcgbG9uZyBNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDOjp0b3RhbEJ5dGVzKCkgY29uc3QKIHsKICAgICBpZiAoIW1ldGFEYXRh
QXZhaWxhYmxlKCkpCkBAIC0zNjYzLDYgKzM2NzMsMjIgQEAgdm9pZCBNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDOjphdWRpb091dHB1dERldmljZUNoYW5nZWQoKQogI2VuZGlmCiB9
CiAKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6bmV3QWNjZXNzTG9n
RW50cnkoKQoreworICAgIG1fY3VycmVudEFjY2Vzc0xvZ0V2ZW50ID0gbmlsOworfQorCitBVlBs
YXllckl0ZW1BY2Nlc3NMb2dFdmVudCAqTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qzo6Y3VycmVudEFjY2Vzc0xvZ0V2ZW50KCkgY29uc3QKK3sKKyAgICBpZiAoIW1fYXZQbGF5ZXJJ
dGVtKQorICAgICAgICByZXR1cm4gbmlsOworCisgICAgaWYgKCFtX2N1cnJlbnRBY2Nlc3NMb2dF
dmVudCkKKyAgICAgICAgbV9jdXJyZW50QWNjZXNzTG9nRXZlbnQgPSBbbV9hdlBsYXllckl0ZW0g
YWNjZXNzTG9nXS5ldmVudHMubGFzdE9iamVjdDsKKworICAgIHJldHVybiBtX2N1cnJlbnRBY2Nl
c3NMb2dFdmVudC5nZXQoKTsKK30KKwogTlNBcnJheSogYXNzZXRNZXRhZGF0YUtleU5hbWVzKCkK
IHsKICAgICBzdGF0aWMgTlNBcnJheSoga2V5cyA9IFtbTlNBcnJheSBhbGxvY10gaW5pdFdpdGhP
YmplY3RzOgpAQCAtMzk1MSw2ICszOTc3LDE3IEBAIC0gKHZvaWQpbWV0YWRhdGFDb2xsZWN0b3I6
KEFWUGxheWVySXRlbU1ldGFkYXRhQ29sbGVjdG9yICopbWV0YWRhdGFDb2xsZWN0b3IgZGlkCiAg
ICAgICAgIHBsYXllci0+bWV0YWRhdGFHcm91cERpZEFycml2ZShtZXRhZGF0YUdyb3VwcywgY3Vy
cmVudFRpbWUpOwogICAgIH0pOwogfQorCistICh2b2lkKW5ld0FjY2Vzc0xvZ0VudHJ5OihOU05v
dGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgoreworICAgIFVOVVNFRF9QQVJBTShub3RpZmljYXRp
b24pOworICAgIGlmICghbV9wbGF5ZXIpCisgICAgICAgIHJldHVybjsKKyAgICBtX3BsYXllci0+
cXVldWVUYXNrT25FdmVudExvb3AoW3BsYXllciA9IG1fcGxheWVyXSB7CisgICAgICAgIGlmIChw
bGF5ZXIpCisgICAgICAgICAgICBwbGF5ZXItPm5ld0FjY2Vzc0xvZ0VudHJ5KCk7CisgICAgfSk7
Cit9CiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJDb3JlQVZGTG9hZGVyRGVsZWdhdGUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDLmgKaW5kZXggZDcwYzUyZjRiYzFjNDAwODJiN2EwMjQwMmZlN2U4
YzJlMjQxMGM1ZS4uMWE2M2IyNmZjNTYyN2JkMDQ5ODI2ZjMwZjQ2MDVlYWUzZjFiNGIxZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKQEAgLTI0Myw3ICsyNDMsNyBAQCBwcml2YXRlOgogCiAg
ICAgU3RyaW5nIGxhbmd1YWdlT2ZQcmltYXJ5QXVkaW9UcmFjaygpIGNvbnN0IG92ZXJyaWRlOwog
Ci0gICAgc2l6ZV90IGV4dHJhTWVtb3J5Q29zdCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHNpemVf
dCBtZW1vcnlDb3N0KCkgb3ZlcnJpZGU7CiAKICAgICBzdGQ6Om9wdGlvbmFsPFZpZGVvUGxheWJh
Y2tRdWFsaXR5TWV0cmljcz4gdmlkZW9QbGF5YmFja1F1YWxpdHlNZXRyaWNzKCkgb3ZlcnJpZGU7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQppbmRleCBlZTAxNDM1NmYwNWY5NGQ0MTIyZGVh
MTViMjYyYzI1NzhiYWZiNGU2Li5jOTE4ZWU1MzA3ZDUwOTYwYjM2ZGYyOTMwMThhMDAxM2U1Mzc3
NGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCkBAIC03ODUsNyArNzg1LDcgQEAgU3Ry
aW5nIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6bGFuZ3VhZ2VPZlByaW1h
cnlBdWRpb1RyYWNrKCkgY29uc3QKICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKIH0KIAotc2l6
ZV90IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6ZXh0cmFNZW1vcnlDb3N0
KCkgY29uc3QKK3NpemVfdCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6Om1l
bW9yeUNvc3QoKQogewogICAgIHJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTdHJlYW1BVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaApp
bmRleCBhZmVlYzc3NTk4YTVlMWY3NDE1Y2Y1MmNjM2Y2YzE5ZTY4NWIwYjMyLi5mOWJiZjM1Mjhm
NzdkOTlhNDJhMDZhNGRlZjM0YjM2ZjY3ZjJkYmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVN
ZWRpYVN0cmVhbUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMu
aApAQCAtMTU0LDcgKzE1NCw3IEBAIHByaXZhdGU6CiAKICAgICBTdHJpbmcgZW5naW5lRGVzY3Jp
cHRpb24oKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHNpemVfdCBleHRyYU1lbW9yeUNvc3QoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiAwOyB9CisgICAgc2l6ZV90IG1lbW9yeUNvc3QoKSBvdmVy
cmlkZSB7IHJldHVybiAwOyB9CiAKICAgICBib29sIGVuZGVkKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gbV9lbmRlZDsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKaW5kZXggNTY1YjhiMjkzYWVjZGY1
ZTUxZmU1ZTEwMTZjNWI3YTdlNzMzZDhhOS4uMDM0M2ZjNjQxNDI5NzE4MTM3MzlkNjkwYTJkM2E0
NzljNGRiZTcyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUGxheWVyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcApAQCAtMTIyLDYgKzEyMiw3IEBAIHZvaWQg
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6Z2V0Q29uZmlndXJhdGlvbihSZW1vdGVNZWRpYVBsYXll
ckNvbmZpZ3VyYXRpb24mIGNvCiAgICAgY29uZmlndXJhdGlvbi5zdXBwb3J0c0FjY2VsZXJhdGVk
UmVuZGVyaW5nID0gbV9wbGF5ZXItPnN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKTsKICAg
ICBjb25maWd1cmF0aW9uLnN1cHBvcnRzUGxheUF0SG9zdFRpbWUgPSBtX3BsYXllci0+c3VwcG9y
dHNQbGF5QXRIb3N0VGltZSgpOwogICAgIGNvbmZpZ3VyYXRpb24uc3VwcG9ydHNQYXVzZUF0SG9z
dFRpbWUgPSBtX3BsYXllci0+c3VwcG9ydHNQYXVzZUF0SG9zdFRpbWUoKTsKKyAgICBjb25maWd1
cmF0aW9uLnN1cHBvcnRzTWVtb3J5Q29zdENoYW5nZWQgPSBtX3BsYXllci0+cGxheWVyUHJpdmF0
ZSgpICYmIG1fcGxheWVyLT5wbGF5ZXJQcml2YXRlKCktPnN1cHBvcnRzTWVtb3J5Q29zdENoYW5n
ZWQoKTsKIAogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCiAgICAgY29uZmln
dXJhdGlvbi5jYW5QbGF5VG9XaXJlbGVzc1BsYXliYWNrVGFyZ2V0ID0gbV9wbGF5ZXItPmNhblBs
YXlUb1dpcmVsZXNzUGxheWJhY2tUYXJnZXQoKTsKQEAgLTY2Miw2ICs2NjMsMTEgQEAgdm9pZCBS
ZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllckRpZFJlbW92ZVRleHRUcmFjayhXZWJD
b3JlOjpJbmJhbmRUZXh0VHIKICAgICBtX3RleHRUcmFja3MucmVtb3ZlKCZ0cmFjayk7CiB9CiAK
K3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJNZW1vcnlDb3N0Q2hhbmdl
ZChzaXplX3QgdG90YWxNZW1vcnlDb3N0KQoreworICAgIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb24t
PnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6TWVtb3J5Q29zdENoYW5n
ZWQodG90YWxNZW1vcnlDb3N0KSwgbV9pZCk7Cit9CisKIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eTo6dGV4dFRyYWNrUmVwcmVzZW50YXRpb25Cb3VuZHNDaGFuZ2VkKGNvbnN0IEludFJlY3Qm
KQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaAppbmRleCAwZTlmM2Q3YTIx
NDVkNzViOTQzZTJiNTZhMmQ4MGJiODA3M2RmOWUxLi45YWE3MTZmNjE5ZmE4OGJmYTY4OWVjZDNk
NTNlODNiYzRjODZmYzVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmgKQEAgLTI0MSw2ICsyNDEsNyBAQCBwcml2
YXRlOgogICAgIHZvaWQgbWVkaWFQbGF5ZXJEaWRSZW1vdmVWaWRlb1RyYWNrKFdlYkNvcmU6OlZp
ZGVvVHJhY2tQcml2YXRlJikgZmluYWw7CiAgICAgdm9pZCBtZWRpYVBsYXllckRpZEFkZFRleHRU
cmFjayhXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2tQcml2YXRlJikgZmluYWw7CiAgICAgdm9pZCBt
ZWRpYVBsYXllckRpZFJlbW92ZVRleHRUcmFjayhXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2tQcml2
YXRlJikgZmluYWw7CisgICAgdm9pZCBtZWRpYVBsYXllck1lbW9yeUNvc3RDaGFuZ2VkKHNpemVf
dCB0b3RhbE1lbW9yeUNvc3QpIGZpbmFsOwogCiAgICAgLy8gTm90IGltcGxlbWVudGVkCiAgICAg
dm9pZCBtZWRpYVBsYXllckZpcnN0VmlkZW9GcmFtZUF2YWlsYWJsZSgpIGZpbmFsOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZh
dGVSZW1vdGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBs
YXllclByaXZhdGVSZW1vdGUuY3BwCmluZGV4IDYyYjExZGY1ZWFmYTYzNWRiZDM2YzcxMGQ5ZDZk
NWY2NWQ4YzM3YzYuLmY4N2YzNDU1OWE5ZTkwZTQ3MTFhOTZjY2E0NzQwNjNjNzUwODE3YTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKQEAgLTEyNzgsMTAgKzEyNzgsMTEgQEAgU3Ry
aW5nIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6bGFuZ3VhZ2VPZlByaW1hcnlBdWRpb1RyYWNr
KCkgY29uc3QKICAgICByZXR1cm4gbV9jYWNoZWRTdGF0ZS5sYW5ndWFnZU9mUHJpbWFyeUF1ZGlv
VHJhY2s7CiB9CiAKLXNpemVfdCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmV4dHJhTWVtb3J5
Q29zdCgpIGNvbnN0Cit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6bWVtb3J5Q29zdENo
YW5nZWQoc2l6ZV90IG1lbW9yeUNvc3QpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICBy
ZXR1cm4gMDsKKyAgICBtX21lbW9yeUNvc3QgPSBtZW1vcnlDb3N0OworICAgIGlmIChSZWZQdHIg
cGxheWVyID0gbV9wbGF5ZXIuZ2V0KCkpCisgICAgICAgIHBsYXllci0+bWVtb3J5Q29zdENoYW5n
ZWQobWVtb3J5Q29zdCk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjp1cGRh
dGVWaWRlb1BsYXliYWNrTWV0cmljc1VwZGF0ZUludGVydmFsKGNvbnN0IFNlY29uZHMmIGludGVy
dmFsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRp
YVBsYXllclByaXZhdGVSZW1vdGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKaW5kZXggYjVmNWI1YmMxYzUyYTM5OWM5MWJj
NTBjYmFkZjVmZWM5ZjU1NWM0MC4uYTIxMzkxYjVhYWE1OGVhZGU1YmQ4ZGMxMTE2ZGY2YjM2YWI3
ZjY2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRp
YVBsYXllclByaXZhdGVSZW1vdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oCkBAIC0zNzEsNyArMzcxLDkgQEAgcHJp
dmF0ZToKIAogICAgIFN0cmluZyBsYW5ndWFnZU9mUHJpbWFyeUF1ZGlvVHJhY2soKSBjb25zdCBm
aW5hbDsKIAotICAgIHNpemVfdCBleHRyYU1lbW9yeUNvc3QoKSBjb25zdCBmaW5hbDsKKyAgICBi
b29sIHN1cHBvcnRzTWVtb3J5Q29zdENoYW5nZWQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2Nv
bmZpZ3VyYXRpb24uc3VwcG9ydHNNZW1vcnlDb3N0Q2hhbmdlZDsgfQorICAgIHZvaWQgbWVtb3J5
Q29zdENoYW5nZWQoc2l6ZV90KTsKKyAgICBzaXplX3QgbWVtb3J5Q29zdCgpIGZpbmFsIHsgcmV0
dXJuIG1fbWVtb3J5Q29zdDsgfQogCiAgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpWaWRlb1Bs
YXliYWNrUXVhbGl0eU1ldHJpY3M+IHZpZGVvUGxheWJhY2tRdWFsaXR5TWV0cmljcygpIGZpbmFs
OwogICAgIHZvaWQgdXBkYXRlVmlkZW9QbGF5YmFja01ldHJpY3NVcGRhdGVJbnRlcnZhbChjb25z
dCBTZWNvbmRzJik7CkBAIC00MzcsNiArNDM5LDcgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpN
ZWRpYVBsYXllcjo6VmlkZW9HcmF2aXR5IG1fdmlkZW9GdWxsc2NyZWVuR3Jhdml0eSB7IFdlYkNv
cmU6Ok1lZGlhUGxheWVyOjpWaWRlb0dyYXZpdHk6OlJlc2l6ZUFzcGVjdCB9OwogICAgIE1vbm90
b25pY1RpbWUgbV9sYXN0UGxheWJhY2tRdWFsaXR5TWV0cmljc1F1ZXJ5VGltZTsKICAgICBTZWNv
bmRzIG1fdmlkZW9QbGF5YmFja01ldHJpY3NVcGRhdGVJbnRlcnZhbDsKKyAgICBzaXplX3QgbV9t
ZW1vcnlDb3N0IHsgMCB9OwogICAgIGRvdWJsZSBtX3ZvbHVtZSB7IDEgfTsKICAgICBkb3VibGUg
bV9yYXRlIHsgMSB9OwogICAgIGxvbmcgbV9wbGF0Zm9ybUVycm9yQ29kZSB7IDAgfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW4KaW5kZXggMTE4ZTAyNWE2OWIz
ZmE0MWY1NTllNWFhMGJmOThkMzc5MWJlNWRlNC4uY2U2NGRhYjM5NTNhZjAzMWE0NjEzNzljN2Qy
NDVhMmU5MDE2MmMzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9t
ZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUubWVzc2Fn
ZXMuaW4KQEAgLTc0LDYgKzc0LDcgQEAgbWVzc2FnZXMgLT4gTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlIE5vdFJlZkNvdW50ZWQgewogICAgIFJlc291cmNlTm90U3VwcG9ydGVkKCkKIAogICAgIEFj
dGl2ZVNvdXJjZUJ1ZmZlcnNDaGFuZ2VkKCkKKyAgICBNZW1vcnlDb3N0Q2hhbmdlZChzaXplX3Qg
dG90YWxNZW1vcnlDb3N0KQogCiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKICAgICBXYWl0
aW5nRm9yS2V5Q2hhbmdlZChib29sIHdhaXRpbmdGb3JLZXkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlv
bi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXll
ckNvbmZpZ3VyYXRpb24uaAppbmRleCA1N2E2MzNhZGRiN2JlNzRkZjc5N2QzNzczZjViY2VjY2Ix
YTVhNGI3Li5lZDhlYmFlMDVlYTQwMjFkZDUwOGI4ZTdhYjhmODdhOTJmYTU0YmJhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVy
Q29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
UmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uLmgKQEAgLTQyLDYgKzQyLDcgQEAgc3RydWN0
IFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbiB7CiAgICAgYm9vbCBzdXBwb3J0c0FjY2Vs
ZXJhdGVkUmVuZGVyaW5nIHsgZmFsc2UgfTsKICAgICBib29sIHN1cHBvcnRzUGxheUF0SG9zdFRp
bWUgeyBmYWxzZSB9OwogICAgIGJvb2wgc3VwcG9ydHNQYXVzZUF0SG9zdFRpbWUgeyBmYWxzZSB9
OworICAgIGJvb2wgc3VwcG9ydHNNZW1vcnlDb3N0Q2hhbmdlZCB7IGZhbHNlIH07CiAgICAgYm9v
bCBjYW5QbGF5VG9XaXJlbGVzc1BsYXliYWNrVGFyZ2V0IHsgZmFsc2UgfTsKICAgICBib29sIHNo
b3VsZElnbm9yZUludHJpbnNpY1NpemUgeyBmYWxzZSB9OwogCkBAIC01Niw2ICs1Nyw3IEBAIHN0
cnVjdCBSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24gewogICAgICAgICBlbmNvZGVyIDw8
IHN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmc7CiAgICAgICAgIGVuY29kZXIgPDwgc3VwcG9y
dHNQbGF5QXRIb3N0VGltZTsKICAgICAgICAgZW5jb2RlciA8PCBzdXBwb3J0c1BhdXNlQXRIb3N0
VGltZTsKKyAgICAgICAgZW5jb2RlciA8PCBzdXBwb3J0c01lbW9yeUNvc3RDaGFuZ2VkOwogICAg
ICAgICBlbmNvZGVyIDw8IGNhblBsYXlUb1dpcmVsZXNzUGxheWJhY2tUYXJnZXQ7CiAgICAgICAg
IGVuY29kZXIgPDwgc2hvdWxkSWdub3JlSW50cmluc2ljU2l6ZTsKICAgICB9CkBAIC0xMDMsNiAr
MTA1LDExIEBAIHN0cnVjdCBSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24gewogICAgICAg
ICBpZiAoIXN1cHBvcnRzUGF1c2VBdEhvc3RUaW1lKQogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKIAorICAgICAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IHN1cHBvcnRzTWVtb3J5Q29z
dENoYW5nZWQ7CisgICAgICAgIGRlY29kZXIgPj4gc3VwcG9ydHNNZW1vcnlDb3N0Q2hhbmdlZDsK
KyAgICAgICAgaWYgKCFzdXBwb3J0c01lbW9yeUNvc3RDaGFuZ2VkKQorICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKwogICAgICAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IGNhblBsYXlU
b1dpcmVsZXNzUGxheWJhY2tUYXJnZXQ7CiAgICAgICAgIGRlY29kZXIgPj4gY2FuUGxheVRvV2ly
ZWxlc3NQbGF5YmFja1RhcmdldDsKICAgICAgICAgaWYgKCFjYW5QbGF5VG9XaXJlbGVzc1BsYXli
YWNrVGFyZ2V0KQpAQCAtMTIyLDYgKzEyOSw3IEBAIHN0cnVjdCBSZW1vdGVNZWRpYVBsYXllckNv
bmZpZ3VyYXRpb24gewogICAgICAgICAgICAgKnN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcs
CiAgICAgICAgICAgICAqc3VwcG9ydHNQbGF5QXRIb3N0VGltZSwKICAgICAgICAgICAgICpzdXBw
b3J0c1BhdXNlQXRIb3N0VGltZSwKKyAgICAgICAgICAgICpzdXBwb3J0c01lbW9yeUNvc3RDaGFu
Z2VkLAogICAgICAgICAgICAgKmNhblBsYXlUb1dpcmVsZXNzUGxheWJhY2tUYXJnZXQsCiAgICAg
ICAgICAgICAqc2hvdWxkSWdub3JlSW50cmluc2ljU2l6ZSwKICAgICAgICAgfX07CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
YjFhZDIzNjVkNTU5ZWM2NjBjZDY5Yjk3ODg4MDlkNWZhNzQ1N2Y4NC4uZmVkNzk3MGY4MThlNzkx
MGI0ODE0ODVmMTNjYjE5Y2M3NmQyMTY3MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIxLTEx
LTE3ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEhUTUxNZWRp
YUVsZW1lbnQ6IEFkb3B0IHJlcG9ydEV4dHJhTWVtb3J5VmlzaXRlZC9BbGxvY2F0ZWQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzE0NgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC90ZXN0cy9t
ZWRpYS9obHMvaGxzLW1lZGlhLWdjLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9tZWRpYS9obHMvaGxzLW1lZGlhLWdjLmh0bWw6IEFkZGVkLgorICAgICAgICAqIG1l
ZGlhL21lZGlhLWdjLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogbWVkaWEvbWVkaWEt
Z2MuaHRtbDogQWRkZWQuCisKIDIwMjEtMTEtMTEgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBw
bGUuY29tPgogCiAgICAgICAgIFtDU1MgQ2FzY2FkZSBMYXllcnNdIFN1cHBvcnQgJ3JldmVydC1s
YXllcicgdmFsdWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvaGxz
L2hscy1tZWRpYS1nYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlh
L2hscy9obHMtbWVkaWEtZ2MtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdkYTdhYzkzY2RhYWFl
ZWEzZmVhNzkzZDZlZjE1NDU3NWQwM2JiNWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL21lZGlhL2hscy9obHMtbWVkaWEtZ2MtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsNCBAQAorVGVzdCB0aGF0IGNyZWF0aW5nIG1lZGlhIGVsZW1lbnRzIHdpdGggSExTIHNvdXJj
ZXMgd2lsbCB0cmlnZ2VyIEdDLgorRVhQRUNURUQgKGFueUNvbGxlY3RlZCgpID09ICd0cnVlJykg
T0sKK0VORCBPRiBURVNUCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVk
aWEvaGxzL2hscy1tZWRpYS1nYy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9o
bHMvaGxzLW1lZGlhLWdjLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjY4ZDZlYjViYmUyYWNmM2VmNWU4YzZi
MmE2NDZlZjNmYjRkNjY4ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbWVkaWEvaGxzL2hscy1tZWRpYS1nYy5odG1sCkBAIC0wLDAgKzEsNTEgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+bWVkaWEtZ2M8L3RpdGxlPgorICAg
IDxzY3JpcHQgc3JjPSIuLi8uLi9tZWRpYS1yZXNvdXJjZXMvdmlkZW8tdGVzdC5qcyI+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdD4KKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGFz
eW5jIGV2ZW50ID0+IHsKKyAgICAgICAgY29uc29sZVdyaXRlKCdUZXN0IHRoYXQgY3JlYXRpbmcg
bWVkaWEgZWxlbWVudHMgd2l0aCBITFMgc291cmNlcyB3aWxsIHRyaWdnZXIgR0MuJykKKworICAg
ICAgICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAgIGZhaWxUZXN0KCdUaGlz
IHRlc3QgcmVxdWlyZXMgd2luZG93LmludGVybmFscycpOworICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CisKKyAgICAgICAgbGV0IG9ic2VydmVycyA9IFtdOworICAgICAgICBmb3IgKGxl
dCBpID0gMDsgaSA8IDEwMDA7ICsraSkgeworICAgICAgICAgICAgbGV0IHRlc3RPYmplY3QgPSB7
IHRlc3RQcm9wZXJ0eSA6ICd0ZXN0VmFsdWUnIH07CisgICAgICAgICAgICBsZXQgb2JzZXJ2ZXIg
PSBpbnRlcm5hbHMub2JzZXJ2ZUdDKHRlc3RPYmplY3QpOworICAgICAgICAgICAgb2JzZXJ2ZXJz
LnB1c2gob2JzZXJ2ZXIpOworICAgICAgICAgICAgdGVzdE9iamVjdCA9IG51bGw7CisgICAgICAg
IH0KKworICAgICAgICB3aW5kb3cuYW55Q29sbGVjdGVkID0gKCkgPT4geworICAgICAgICAgICAg
Zm9yIChsZXQgb2JzZXJ2ZXIgb2Ygb2JzZXJ2ZXJzKSB7CisgICAgICAgICAgICAgICAgaWYgKG9i
c2VydmVyLndhc0NvbGxlY3RlZCkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH07CisKKyAg
ICAgICAgdGVzdEV4cGVjdGVkRXZlbnR1YWxseSgnYW55Q29sbGVjdGVkKCknLCB0cnVlKS50aGVu
KCgpID0+IHsKKyAgICAgICAgICAgIGNvbXBsZXRlZCA9IHRydWU7CisgICAgICAgICAgICBlbmRU
ZXN0KCk7CisgICAgICAgIH0pOworCisgICAgICAgIGxldCBjb21wbGV0ZWQgPSBmYWxzZTsKKyAg
ICAgICAgbGV0IHZpZGVvRWxlbWVudHMgPSBbXTsKKyAgICAgICAgd2hpbGUgKCFjb21wbGV0ZWQp
IHsKKyAgICAgICAgICAgIGxldCB2aWRlbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVv
Jyk7CisgICAgICAgICAgICB2aWRlby5tdXRlZDsKKyAgICAgICAgICAgIHZpZGVvLnNyYyA9ICIu
Li9yZXNvdXJjZXMvaGxzL2F1ZGlvLWRlc2NyaWJlcy12aWRlby5tM3U4IjsKKyAgICAgICAgICAg
IHZpZGVvLmxvYWQoKTsKKyAgICAgICAgICAgIGF3YWl0IHdhaXRGb3IodmlkZW8sICdjYW5wbGF5
dGhyb3VnaCcsIHRydWUpOworICAgICAgICAgICAgdmlkZW9FbGVtZW50cy5wdXNoKHZpZGVvKTsK
KyAgICAgICAgfQorICAgIH0pOworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8L2Jv
ZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvbWVkaWEvbWVkaWEtZ2MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEv
bWVkaWEtZ2MtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFlYzY0NDU5N2UxMDFhY2M3ODg5ZTNh
MzBmYmJiOTA3ZTk0ODJmYmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9t
ZWRpYS1nYy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUZXN0IHRoYXQgY3JlYXRpbmcg
bWVkaWEgZWxlbWVudHMgd2lsbCB0cmlnZ2VyIEdDLgorRVhQRUNURUQgKGFueUNvbGxlY3RlZCgp
ID09ICd0cnVlJykgT0sKK0VORCBPRiBURVNUCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21l
ZGlhL21lZGlhLWdjLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1nYy5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjg0ZGM2ZDViOTBjNTczMGQxZTBiN2ExMmI5YWZhMTU4YTE3MTM4MDMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1nYy5odG1sCkBAIC0wLDAgKzEsNTIg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+bWVkaWEtZ2M8
L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSJ2aWRlby10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8
c2NyaXB0IHNyYz0ibWVkaWEtZmlsZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICB3
aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGFzeW5jIGV2ZW50ID0+IHsKKyAgICAgICAg
Y29uc29sZVdyaXRlKCdUZXN0IHRoYXQgY3JlYXRpbmcgbWVkaWEgZWxlbWVudHMgd2lsbCB0cmln
Z2VyIEdDLicpCisKKyAgICAgICAgaWYgKCF3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAg
ICBmYWlsVGVzdCgnVGhpcyB0ZXN0IHJlcXVpcmVzIHdpbmRvdy5pbnRlcm5hbHMnKTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGxldCBvYnNlcnZlcnMgPSBbXTsK
KyAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAxMDAwOyArK2kpIHsKKyAgICAgICAgICAgIGxl
dCB0ZXN0T2JqZWN0ID0geyB0ZXN0UHJvcGVydHkgOiAndGVzdFZhbHVlJyB9OworICAgICAgICAg
ICAgbGV0IG9ic2VydmVyID0gaW50ZXJuYWxzLm9ic2VydmVHQyh0ZXN0T2JqZWN0KTsKKyAgICAg
ICAgICAgIG9ic2VydmVycy5wdXNoKG9ic2VydmVyKTsKKyAgICAgICAgICAgIHRlc3RPYmplY3Qg
PSBudWxsOworICAgICAgICB9CisKKyAgICAgICAgd2luZG93LmFueUNvbGxlY3RlZCA9ICgpID0+
IHsKKyAgICAgICAgICAgIGZvciAobGV0IG9ic2VydmVyIG9mIG9ic2VydmVycykgeworICAgICAg
ICAgICAgICAgIGlmIChvYnNlcnZlci53YXNDb2xsZWN0ZWQpCisgICAgICAgICAgICAgICAgICAg
IHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICB9OworCisgICAgICAgIHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ2FueUNvbGxlY3Rl
ZCgpJywgdHJ1ZSkudGhlbigoKSA9PiB7CisgICAgICAgICAgICBjb21wbGV0ZWQgPSB0cnVlOwor
ICAgICAgICAgICAgZW5kVGVzdCgpOworICAgICAgICB9KTsKKworICAgICAgICBsZXQgY29tcGxl
dGVkID0gZmFsc2U7CisgICAgICAgIHdpbmRvdy52aWRlb0VsZW1lbnRzID0gW107CisgICAgICAg
IHdoaWxlICghY29tcGxldGVkKSB7CisgICAgICAgICAgICBsZXQgdmlkZW8gPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCd2aWRlbycpOworICAgICAgICAgICAgdmlkZW8ubXV0ZWQ7CisgICAgICAg
ICAgICB2aWRlby5zcmMgPSBmaW5kTWVkaWFGaWxlKCd2aWRlbycsICdjb250ZW50L3Rlc3QnKTsK
KyAgICAgICAgICAgIHZpZGVvLmxvYWQoKTsKKyAgICAgICAgICAgIGF3YWl0IHdhaXRGb3Iodmlk
ZW8sICdjYW5wbGF5dGhyb3VnaCcsIHRydWUpOworICAgICAgICAgICAgdmlkZW9FbGVtZW50cy5w
dXNoKHZpZGVvKTsKKyAgICAgICAgfQorICAgIH0pOworICAgIDwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>
<flag name="review"
          id="469811"
          type_id="1"
          status="?"
          setter="jer.noble"
    />
          </attachment>
      

    </bug>

</bugzilla>