<?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>204664</bug_id>
          
          <creation_ts>2019-11-27 22:35:23 -0800</creation_ts>
          <short_desc>[iOS] WKWebView touch event gesture recognition should not block the application process main thread when possible</short_desc>
          <delta_ts>2020-05-07 03:39:54 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>UI Events</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=211179</see_also>
          <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="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>graouts</cc>
    
    <cc>graouts</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1593958</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-11-27 22:35:23 -0800</bug_when>
    <thetext>&lt;rdar://problem/38670692&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1593959</commentid>
    <comment_count>1</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-11-27 22:36:59 -0800</bug_when>
    <thetext>...the hope is to eliminate all hangs under -[WKContentView(WKInteraction) _webTouchEventsRecognized:].</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596002</commentid>
    <comment_count>2</comment_count>
      <attachid>384949</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-12-05 14:23:17 -0800</bug_when>
    <thetext>Created attachment 384949
First pass</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596298</commentid>
    <comment_count>3</comment_count>
      <attachid>385027</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-12-06 11:21:36 -0800</bug_when>
    <thetext>Created attachment 385027
Fix iOS tests on non-internal builds</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596444</commentid>
    <comment_count>4</comment_count>
      <attachid>385027</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-12-06 17:08:38 -0800</bug_when>
    <thetext>Comment on attachment 385027
Fix iOS tests on non-internal builds

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

&gt; Source/WebKit/UIProcess/WebPageProxy.cpp:2818
&gt; +            --m_handlingPreventableTouchStartCount;

This needs some sort of care in the underflow case. Also, it&apos;s possible we don&apos;t want to do all this work in the error case (at least on crash?)? I&apos;m not really sure.

&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.h:168
&gt; +#define USE_DEFERRING_GESTURE_RECOGNIZERS ENABLE(IOS_TOUCH_EVENTS)

This is fairly surprising to me. I don&apos;t usually like it when a USE() or ENABLE() is in a header that you can possibly not have (so prefix header or Platform.h/FeatureDefines.h and friends are OK, but here would not be), but 🤷‍♂️

&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:4211
&gt; +    [_twoFingerDoubleTapGestureRecognizer setEnabled:NO];
&gt; +    [_twoFingerDoubleTapGestureRecognizer setEnabled:YES];

Wonder if we should just add a _wk_cancel category method on UIGR :) this comes up enough</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596445</commentid>
    <comment_count>5</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-12-06 17:08:55 -0800</bug_when>
    <thetext>Prediction: this will not be the last patch in this series :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596450</commentid>
    <comment_count>6</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-12-06 17:12:57 -0800</bug_when>
    <thetext>(In reply to Tim Horton from comment #5)
&gt; Prediction: this will not be the last patch in this series :)

Quite likely :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596500</commentid>
    <comment_count>7</comment_count>
      <attachid>385027</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-12-06 21:31:59 -0800</bug_when>
    <thetext>Comment on attachment 385027
Fix iOS tests on non-internal builds

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

&gt;&gt; Source/WebKit/UIProcess/WebPageProxy.cpp:2818
&gt;&gt; +            --m_handlingPreventableTouchStartCount;
&gt; 
&gt; This needs some sort of care in the underflow case. Also, it&apos;s possible we don&apos;t want to do all this work in the error case (at least on crash?)? I&apos;m not really sure.

I’ll assert that it should never be zero here, and also avoid incrementing past 0 for the underflow case.

It also looks like the work here is not necessary in the case where the web process terminates, since the gestures should be reset anyways by -cleanupInteraction in WKContentView. I’ll double check by forcing the web process to crash while handling a touchstart.

&gt;&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.h:168
&gt;&gt; +#define USE_DEFERRING_GESTURE_RECOGNIZERS ENABLE(IOS_TOUCH_EVENTS)
&gt; 
&gt; This is fairly surprising to me. I don&apos;t usually like it when a USE() or ENABLE() is in a header that you can possibly not have (so prefix header or Platform.h/FeatureDefines.h and friends are OK, but here would not be), but 🤷‍♂️

Good point! I’ll change these to just be ENABLE(IOS_TOUCH_EVENTS) instead.

&gt;&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:4211
&gt;&gt; +    [_twoFingerDoubleTapGestureRecognizer setEnabled:YES];
&gt; 
&gt; Wonder if we should just add a _wk_cancel category method on UIGR :) this comes up enough

Sounds good — I’ll add a -_wk_cancel category method on UIGestureRecognizer in this file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596645</commentid>
    <comment_count>8</comment_count>
      <attachid>385109</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-12-07 17:18:32 -0800</bug_when>
    <thetext>Created attachment 385109
For EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596654</commentid>
    <comment_count>9</comment_count>
      <attachid>385109</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-07 19:57:31 -0800</bug_when>
    <thetext>Comment on attachment 385109
For EWS

Clearing flags on attachment: 385109

Committed r253267: &lt;https://trac.webkit.org/changeset/253267&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646982</commentid>
    <comment_count>10</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-04-29 07:37:48 -0700</bug_when>
    <thetext>This caused bug 211179.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1650033</commentid>
    <comment_count>11</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-05-07 03:39:54 -0700</bug_when>
    <thetext>This also caused bug 211521.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384949</attachid>
            <date>2019-12-05 14:23:17 -0800</date>
            <delta_ts>2019-12-06 11:21:35 -0800</delta_ts>
            <desc>First pass</desc>
            <filename>bug-204664-20191205142316.patch</filename>
            <type>text/plain</type>
            <size>60540</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzMTcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDIzNDg3OTAxNWM2M2NlMmE4
NTFjYTk4NDI4OWY1ODExNTlmNjYxYTEuLmE1ODZlZGNmOGJjY2ZiMWIyODY4MTM1ODlkNDJiMTI3
NTRhMWI1MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQ4IEBACisyMDE5LTEyLTA1ICBXZW5zb24g
SHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIFdLV2ViVmll
dyB0b3VjaCBldmVudCBnZXN0dXJlIHJlY29nbml0aW9uIHNob3VsZCBub3QgYmxvY2sgdGhlIGFw
cGxpY2F0aW9uIHByb2Nlc3MgbWFpbiB0aHJlYWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDY2NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzg2
NzA2OTI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
UmVwbGFjZXMgc3luY2hyb25vdXMgdG91Y2ggZXZlbnQgZGlzcGF0Y2ggb24gaU9TIHdpdGggYSBt
ZWNoYW5pc20gdGhhdCBhbGxvd3MgYWxsIHRvdWNoIGV2ZW50cyBvbiBpT1MgdG8gYmUgc2VudAor
ICAgICAgICBhc3luY2hyb25vdXNseS4gVG8gZG8gdGhpcywgd2UgdXNlIHRoZSBkZWZlcnJpbmcg
Z2VzdHVyZSBtZWNoYW5pc20gaW50cm9kdWNlZCBpbiB0cmFjLndlYmtpdC5vcmcvcjI1MzAwNSB0
bworICAgICAgICBkZWZlciBhbGwgZ2VzdHVyZXMgdW5kZXIgV0tDb250ZW50VmlldyAoYW5kIFdl
YktpdC1vd25lZCBzY3JvbGwgdmlld3MpIHdoZW4gYSB0b3VjaCBzdGFydHMsIHN1Y2ggdGhhdCB0
aGV5IHdpbGwKKyAgICAgICAgbm90IHJlY29nbml6ZSB1bnRpbCB3ZSBrbm93IHRoYXQgdGhlIHBh
Z2UgaGFzIGVpdGhlciBwcmV2ZW50ZWQgZGVmYXVsdCBvciBub3QgKGFzc3VtaW5nIHRoYXQgdGhl
IHRvdWNoIHdhcyBvdmVyCisgICAgICAgIGFuIGFjdGl2ZSBsaXN0ZW5lcikuIFNlZSBiZWxvdyBm
b3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAgIFRlc3RzOiBmYXN0L2V2ZW50cy90b3VjaC9pb3Mv
cHJldmVudC1kZWZhdWx0LW9uLXRvdWNoLXN0YXJ0LXdpdGgtc2xvdy1ldmVudC1saXN0ZW5lci5o
dG1sCisgICAgICAgICAgICAgICBmYXN0L2V2ZW50cy90b3VjaC9pb3Mvc2Nyb2xsLW9uLXRvdWNo
LXN0YXJ0LXdpdGgtc2xvdy1ldmVudC1saXN0ZW5lci5odG1sCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvR2VuZXJpY0NhbGxiYWNrLmg6CisKKyAgICAgICAgQWRkIGEgQm9vbENhbGxiYWNrIHR5cGUu
CisKKyAgICAgICAgKiBVSVByb2Nlc3MvUGFnZUNsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvaW9zL1JlbW90ZUxheWVyVHJlZVZpZXdzLm1tOgorICAgICAgICAo
LVtXS0NoaWxkU2Nyb2xsVmlldyBnZXN0dXJlUmVjb2duaXplcjpzaG91bGRSZXF1aXJlRmFpbHVy
ZU9mR2VzdHVyZVJlY29nbml6ZXI6XSk6CisgICAgICAgICgtW1dLQ2hpbGRTY3JvbGxWaWV3IGdl
c3R1cmVSZWNvZ25pemVyOnNob3VsZEJlUmVxdWlyZWRUb0ZhaWxCeUdlc3R1cmVSZWNvZ25pemVy
Ol0pOgorCisgICAgICAgIEltcGxlbWVudCBnZXN0dXJlIHJlY29nbml6ZXIgZGVsZWdhdGUgaG9v
a3MgdG8gYWRkIGR5bmFtaWMgZmFpbHVyZSByZXF1aXJlbWVudHMgYmV0d2VlbiBhIGNoaWxkIHNj
cm9sbCB2aWV3J3MKKyAgICAgICAgZ2VzdHVyZXMgYW5kIHRoZSBuZXcgZGVmZXJyaW5nIGdlc3R1
cmUgcmVjb2duaXplcnMgb24gV0tDb250ZW50Vmlldy4gVGhpcyBhbGxvd3MgcGFuIGdlc3R1cmVz
IG92ZXIgYSBzY3JvbGxhYmxlCisgICAgICAgIGNvbnRhaW5lciB0byBob2xkIG9mZiBvbiByZWNv
Z25pemluZyB3aGlsZSB0aGUgZGVmZXJyaW5nIGdlc3R1cmUgcmVjb2duaXplciBoYXMgbm90IGZh
aWxlZCB5ZXQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpoYW5kbGVQcmV2ZW50YWJsZVRvdWNoRXZlbnQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmhhbmRsZVVucHJldmVudGFibGVUb3VjaEV2
ZW50KToKKworICAgICAgICBSZW5hbWUgaGFuZGxlVG91Y2hFdmVudFN5bmNocm9ub3VzbHkgYW5k
IGhhbmRsZVRvdWNoRXZlbnRBc3luY2hyb25vdXNseSB0byBoYW5kbGVQcmV2ZW50YWJsZVRvdWNo
RXZlbnQgYW5kCisgICAgICAgIGhhbmRsZVVucHJldmVudGFibGVUb3VjaEV2ZW50LCByZXNwZWN0
aXZlbHkuIEluc3RlYWQgb2Ygc2VuZGluZyB0b3VjaCBldmVudHMgdGhhdCBtYXkgcHJldmVudCBu
YXRpdmUgZ2VzdHVyZXMKKyAgICAgICAgc3luY2hyb25vdXNseSwgd2Ugbm93IGdvIHRocm91Z2gg
dGhlIHNhbWUgYEV2ZW50RGlzcGF0Y2hlcjo6VG91Y2hFdmVudGAgY29kZXBhdGggdXNlZCB3aGVu
IGRpc3BhdGNoaW5nIHBhc3NpdmUKKyAgICAgICAgdG91Y2ggZXZlbnRzLiBIb3dldmVyLCBpbiB0
aGUgY2FzZSBvZiBwcmV2ZW50YWJsZSB0b3VjaGVzLCB3ZSBhZGRpdGlvbmFsbHkgc3RvcmUgYSBj
b21wbGV0aW9uIGNhbGxiYWNrIHRoYXQgaXMKKyAgICAgICAgaW52b2tlZCBhZnRlciB0aGUgdG91
Y2ggZXZlbnQgaGFzIGJlZW4gaGFuZGxlZCBieSB0aGUgcGFnZTsgd2UgdGhlbiBlaXRoZXIgdW4t
ZGVmZXIgb3IgcHJldmVudCBuYXRpdmUgZ2VzdHVyZXMKKyAgICAgICAgaGVyZSAoZGVwZW5kaW5n
IG9uIHdoZXRoZXIgdGhlIHBhZ2UgcHJldmVudGVkIGRlZmF1bHQpIGJ5IGNhbGxpbmcgUGFnZUNs
aWVudDo6ZG9uZURlZmVycmluZ05hdGl2ZUdlc3R1cmVzLgorCisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6Ym9vbENhbGxiYWNrKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpoYW5kbGVUb3VjaEV2ZW50U3luY2hyb25vdXNseSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6aGFuZGxlVG91Y2hFdmVudEFzeW5jaHJvbm91c2x5KTogRGVsZXRl
ZC4KKworICAgICAgICBTZWUgYWJvdmUuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6aXNIYW5kbGluZ0RlZmVycmVk
VG91Y2hTdGFydCBjb25zdCk6CisKKyAgICAgICAgVGhpcyBpcyB1c2VkIGluIFdLQ29udGVudFZp
ZXcgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgZGVmZXJyaW5nIGdlc3R1cmVzIG5lZWQgdG8gcmVtYWlu
IGFjdGl2ZSBhZnRlciB0aGUgdG91Y2gKKyAgICAgICAgZW5kcy4gU2VlIGJlbG93IGZvciBtb3Jl
IGRldGFpbC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46
CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW06CisgICAgICAgIChXZWJLaXQ6OlBh
Z2VDbGllbnRJbXBsOjpkb25lRGVmZXJyaW5nTmF0aXZlR2VzdHVyZXMpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dLQ29udGVu
dFZpZXcgc2V0dXBJbnRlcmFjdGlvbl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGNsZWFu
dXBJbnRlcmFjdGlvbl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9yZW1vdmVEZWZhdWx0
R2VzdHVyZVJlY29nbml6ZXJzXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX2FkZERlZmF1
bHRHZXN0dXJlUmVjb2duaXplcnNdKToKKworICAgICAgICBBZGQgYW5kIHJlbW92ZSB0aGUgbmV3
IGRlZmVycmluZyBnZXN0dXJlIHJlY29nbml6ZXJzIGhlcmUuCisKKyAgICAgICAgKC1bV0tDb250
ZW50VmlldyBfd2ViVG91Y2hFdmVudHNSZWNvZ25pemVkOl0pOgorICAgICAgICAoLVtXS0NvbnRl
bnRWaWV3IF93ZWJUb3VjaEV2ZW50OnByZXZlbnRzTmF0aXZlR2VzdHVyZXM6XSk6CisgICAgICAg
ICgtW1dLQ29udGVudFZpZXcgX2RvbmVEZWZlcnJpbmdOYXRpdmVHZXN0dXJlczpdKToKKyAgICAg
ICAgKC1bV0tDb250ZW50VmlldyBnZXN0dXJlUmVjb2duaXplcjpzaG91bGRSZWNvZ25pemVTaW11
bHRhbmVvdXNseVdpdGhHZXN0dXJlUmVjb2duaXplcjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50
VmlldyBnZXN0dXJlUmVjb2duaXplcjpzaG91bGRSZXF1aXJlRmFpbHVyZU9mR2VzdHVyZVJlY29n
bml6ZXI6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgZ2VzdHVyZVJlY29nbml6ZXI6c2hv
dWxkQmVSZXF1aXJlZFRvRmFpbEJ5R2VzdHVyZVJlY29nbml6ZXI6XSk6CisKKyAgICAgICAgQWRk
IGR5bmFtaWMgZmFpbHVyZSByZXF1aXJlbWVudHMgYmV0d2VlbiBXS0NvbnRlbnRWaWV3J3MgZ2Vz
dHVyZXMgKGluY2x1ZGluZyBhbGwgdGV4dCBpbnRlcmFjdGlvbiwgY29udGV4dCBtZW51LAorICAg
ICAgICBhbmQgZHJhZyBhbmQgZHJvcCBnZXN0dXJlcykgYW5kIHRoZSBuZXcgZGVmZXJyaW5nIGdl
c3R1cmUgcmVjb2duaXplcnMuCisKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfZGlkU3RhcnRQ
cm92aXNpb25hbExvYWRGb3JNYWluRnJhbWVdKToKKworICAgICAgICBGb3JjZSB0aGUgdHdvLWZp
bmdlciBkb3VibGUgdGFwIGdlc3R1cmUgcmVjb2duaXplciB0byByZXNldCB3aGVuIGxvYWRpbmcg
YSBuZXcgcGFnZS4gV2l0aG91dCB0aGlzLCB0aGUgbGF5b3V0CisgICAgICAgIHRlc3QgZmFzdC9l
dmVudHMvaW9zL2NsaWNrLWV2ZW50LXdoaWxlLWVkaXRpbmctbm9kZS5odG1sIHdpbGwgcmFyZWx5
IGZhaWwgd2hlbiBydW4gYWZ0ZXIgYSB0ZXN0IHRoYXQgZGlzcGF0Y2hlcworICAgICAgICBhIHR3
by1maW5nZXIgdGFwLCBzdWNoIGFzIGZhc3QvZXZlbnRzL2lvcy9jbGljay1ldmVudC10d28tZmlu
Z2VyLXNpbmdsZS10YXAtbWV0YS1rZXkuaHRtbC4gVGhpcyBpcyBiZWNhdXNlIHRoZQorICAgICAg
ICBuZXcgZGVmZXJyaW5nIGdlc3R1cmVzIHdpbGwgdGVtcG9yYXJpbHkgdW5pdGUgbXVsdGktZmlu
Z2VyIHRhcCBnZXN0dXJlcyB3aXRoIG9uZS1maW5nZXIgZG91YmxlIHRhcCBnZXN0dXJlcyBpbgor
ICAgICAgICB0aGUgc2FtZSBzdWJncmFwaCB3aGVuIHBlcmZvcm1pbmcgYSB0YXAgZ2VzdHVyZSB3
aXRoIG1vcmUgdGhhbiBvbmUgZmluZ2VyLiBUaGlzIG1lYW5zIHRoYXQgdGhlcmUncyBhIDMwMCBt
cworICAgICAgICBkZWxheSBiZWZvcmUgYSBub3JtYWwgc2luZ2xlIHRhcCBjYW4gYmUgcmVjb2du
aXplZCBhZ2Fpbiwgd2hpY2ggKHdpdGhvdXQgZm9yY2luZyB0aGUgdHdvLWZpbmdlciBkb3VibGUg
dGFwIHRvCisgICAgICAgIHJlc2V0KSB3b3VsZCBjYXVzZSBhIHN1YnNlcXVlbnQgdGVzdCB0aGF0
IGxvYWRzIGluIHVuZGVyIDMwMCBtcyBhbmQgYXR0ZW1wdHMgdG8gc2VuZCBhIHRhcCB0byBmYWls
LgorCisgICAgICAgICgtW1dLQ29udGVudFZpZXcgZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXI6
c2hvdWxkRGVmZXJHZXN0dXJlc0FmdGVyQmVnaW5uaW5nVG91Y2hlc1dpdGhFdmVudDpdKToKKwor
ICAgICAgICBBdm9pZCBkZWZlcnJpbmcgbmF0aXZlIGdlc3R1cmVzIGlmIHRoZSBzY3JvbGwgdmll
dyBpcyBkZWNlbGVyYXRpbmc7IHRoaXMgbWF0Y2hlcyBiZWhhdmlvciBvZiB0aGUgd2ViIHRvdWNo
IGV2ZW50CisgICAgICAgIGdlc3R1cmUgcmVjb2duaXplci4KKworICAgICAgICAoLVtXS0NvbnRl
bnRWaWV3IGRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyOnNob3VsZERlZmVyR2VzdHVyZXNBZnRl
ckVuZGluZ1RvdWNoZXNXaXRoRXZlbnQ6XSk6CisKKyAgICAgICAgTm9ybWFsbHksIGFmdGVyIC10
b3VjaGVzRW5kZWQ6d2l0aEV2ZW50Oiwgd2Ugc3RvcCBkZWZlcnJpbmcgbmF0aXZlIGdlc3R1cmUg
cmVjb2duaXplcnMgYnkgZmFpbGluZyB0aGUgZGVmZXJyaW5nCisgICAgICAgIGdlc3R1cmVzLiBI
b3dldmVyLCBpZiB3ZSdyZSBzdGlsbCB3YWl0aW5nIGZvciBhIHJlc3BvbnNlIGZyb20gdGhlIHdl
YiBwcm9jZXNzLCB0aGVuIGxldAorICAgICAgICAtX2RvbmVEZWZlcnJpbmdOYXRpdmVHZXN0dXJl
czogaGFuZGxlIHRoaXMgaW5zdGVhZC4KKworICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGRlZmVy
cmluZ0dlc3R1cmVSZWNvZ25pemVyOnNob3VsZERlZmVyT3RoZXJHZXN0dXJlUmVjb2duaXplcjpd
KToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBkZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplcjpz
aG91bGREZWZlckdlc3R1cmVzV2l0aEV2ZW50Ol0pOiBEZWxldGVkLgorCisgICAgICAgIFJlbmFt
ZWQgdG8gLXNob3VsZERlZmVyR2VzdHVyZXNBZnRlckJlZ2lubmluZ1RvdWNoZXNXaXRoRXZlbnQ6
LgorCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVy
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVy
Lm1tOgorICAgICAgICAoLVtXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyIHRvdWNoZXNCZWdh
bjp3aXRoRXZlbnQ6XSk6CisgICAgICAgICgtW1dLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIg
dG91Y2hlc0VuZGVkOndpdGhFdmVudDpdKToKKworICAgICAgICBPdmVycmlkZSB0aGlzIGFuZCBh
ZGQgYSBuZXcgZGVsZWdhdGUgaG9vayB0byBkZXRlcm1pbmUgd2hldGhlciB3ZSB3YW50IHRoZSBk
ZWZlcnJpbmcgZ2VzdHVyZSByZWNvZ25pemVyIHRvCisgICAgICAgIGltbWVkaWF0ZWx5IGZhaWwg
d2hlbiB0b3VjaGVzIGVuZC4gSXQncyBpbXBvcnRhbnQgdG8gb3ZlcnJpZGUgdGhpcyBhbmQgdHJh
bnNpdGlvbiB0byBmYWlsdXJlIHN0YXRlIGluIHRoaXMgY2FzZSwKKyAgICAgICAgc2luY2Ugbm90
IGRvaW5nIHNvIGNvdWxkIG1lYW4gdGhhdCB0aGUgZGVmZXJyaW5nIGdlc3R1cmVzIHN0YXkgaW4g
UG9zc2libGUgc3RhdGUgZm9yZXZlcjsgdGhpcyBtYXkgbGVhZCB0byB0aGUKKyAgICAgICAgZ2Vz
dHVyZSBzdWJncmFwaCBjb250YWluaW5nIHRoZXNlIGRlZmVycmluZyBnZXN0dXJlcyBiZWluZyB1
bmFibGUgdG8gcmVzZXQsIHNpbmNlIGl0J3Mgd2FpdGluZyBmb3IgdGhlIGRlZmVycmluZworICAg
ICAgICBnZXN0dXJlIHRvIGVpdGhlciBmYWlsIG9yIGVuZC4KKworICAgICAgICAqIFVJUHJvY2Vz
cy9pb3MvV0tTY3JvbGxWaWV3Lm1tOgorICAgICAgICAoLVtXS1Njcm9sbFZpZXcgZ2VzdHVyZVJl
Y29nbml6ZXI6c2hvdWxkUmVxdWlyZUZhaWx1cmVPZkdlc3R1cmVSZWNvZ25pemVyOl0pOgorICAg
ICAgICAoLVtXS1Njcm9sbFZpZXcgZ2VzdHVyZVJlY29nbml6ZXI6c2hvdWxkQmVSZXF1aXJlZFRv
RmFpbEJ5R2VzdHVyZVJlY29nbml6ZXI6XSk6CisKKyAgICAgICAgRGVmZXIgbW9yZSBzY3JvbGwg
dmlldyBnZXN0dXJlcy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3Bh
dGNoZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpFdmVudERpc3BhdGNoZXI6OnRvdWNoRXZlbnQp
OgorCisgICAgICAgIEFkZCBhbiBvcHRpb25hbCBDYWxsYmFja0lEIHBhcmFtZXRlciB0byB0aGlz
IElQQyBtZXNzYWdlLiBJZiBhIGNhbGxiYWNrIElEIGlzIGdpdmVuLCB0aGVuIHdlIGF2b2lkIGNv
YWxlc2NpbmcKKyAgICAgICAgdGhlIHRvdWNoIGV2ZW50LiBUbyBpbXBsZW1lbnQgdGhpcywgd2Ug
YWRkaXRpb25hbGx5IHJlZmFjdG9yIHRoZSBxdWV1ZWQgdG91Y2ggZXZlbnRzIG1hcCB0byBjb250
YWluIGxpc3RzIG9mCisgICAgICAgIDxXZWJUb3VjaEV2ZW50LCBPcHRpb25hbDxDYWxsYmFja0lE
Pj4gcGFpcnM7IGlmIGEgcXVldWVkIHRvdWNoIGV2ZW50IGhhcyBhIGNvcnJlc3BvbmRpbmcgQ2Fs
bGJhY2tJRCwgdGhlbiB3ZQorICAgICAgICBmaXJlIHRoZSBjYWxsYmFjayBjb3JyZXNwb25kaW5n
IHRvIHRoZSBJRCwgaW5kaWNhdGluZyB3aGV0aGVyIHRoZSB0b3VjaCBldmVudCB3YXMgaGFuZGxl
ZCBieSB0aGUgcGFnZS4KKworICAgICAgICAoV2ViS2l0OjpFdmVudERpc3BhdGNoZXI6OmdldFF1
ZXVlZFRvdWNoRXZlbnRzRm9yUGFnZSk6IERlbGV0ZWQuCisKKyAgICAgICAgUmVtb3ZlIHRoaXMg
bm93LXVudXNlZCBtZXRob2QuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnRE
aXNwYXRjaGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hl
ci5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmNhbmNlbEdlc3R1cmVzQmxvY2tlZE9uU3luY2hy
b25vdXNSZXBsaWVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dG91Y2hFdmVudFN5bmMp
OiBEZWxldGVkLgorCisgICAgICAgIFJlbW92ZSBtX3BlbmRpbmdTeW5jaHJvbm91c1RvdWNoRXZl
bnRSZXBseSwgbm93IHRoYXQgaXQncyBubyBsb25nZXIgbmVlZGVkLiBBbHNvLCByZW1vdmUgdG91
Y2hFdmVudFN5bmMsIHNpbmNlCisgICAgICAgIHRoZXJlIGFyZSBubyBtb3JlIHN5bmNocm9ub3Vz
IGNvZGVwYXRocyBmb3IgaGFuZGxpbmcgdG91Y2ggZXZlbnRzLgorCisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBh
Z2VJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRpc3BhdGNoQXN5bmNocm9ub3Vz
VG91Y2hFdmVudHMpOgorCiAyMDE5LTEyLTA1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CiAKICAgICAgICAgTUVTU0FHRV9DSEVDSyBCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyIG9u
IGluY29taW5nIElQQyBmcm9tIHRoZSBXZWJQcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9HZW5lcmljQ2FsbGJhY2suaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0dlbmVyaWNDYWxsYmFjay5oCmluZGV4IDM4MzIwMmZlZDNiNjIzNjA2MzMwMTNkMTliNjMwOTdl
ZDM2NGYwNDQuLmMzMTEwNmE3OTEzY2FmYzMyNThlNjg3NzQyOWM1YWMyMjgzYTM0ZjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dlbmVyaWNDYWxsYmFjay5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dlbmVyaWNDYWxsYmFjay5oCkBAIC0xNTcsNiArMTU3LDcg
QEAgc3RhdGljIHR5cGVuYW1lIEdlbmVyaWNDYWxsYmFjazxJbnRlcm5hbFJldHVyblZhbHVlVHlw
ZT46OkNhbGxiYWNrRnVuY3Rpb24gdG9HZW4KIHR5cGVkZWYgR2VuZXJpY0NhbGxiYWNrPD4gVm9p
ZENhbGxiYWNrOwogdHlwZWRlZiBHZW5lcmljQ2FsbGJhY2s8Y29uc3QgVmVjdG9yPFdlYkNvcmU6
OkludFJlY3Q+JiwgZG91YmxlLCBXZWJDb3JlOjpGbG9hdEJveEV4dGVudD4gQ29tcHV0ZWRQYWdl
c0NhbGxiYWNrOwogdHlwZWRlZiBHZW5lcmljQ2FsbGJhY2s8Y29uc3QgU2hhcmVhYmxlQml0bWFw
OjpIYW5kbGUmPiBJbWFnZUNhbGxiYWNrOwordHlwZWRlZiBHZW5lcmljQ2FsbGJhY2s8Ym9vbD4g
Qm9vbENhbGxiYWNrOwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogdm9pZCBpbnZhbGlkYXRlQ2Fs
bGJhY2tNYXAoSGFzaE1hcDx1aW50NjRfdCwgVD4mIGNhbGxiYWNrTWFwLCBDYWxsYmFja0Jhc2U6
OkVycm9yIGVycm9yKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNs
aWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCmluZGV4IDJhMjk4
OTkzNDg1YmRhMWI4MDAwNzdjYWJjZmFlZWQxMzRlMGQ0N2UuLmU4NDgyNGZkODU1ZDZjZDkzMDBm
YmZkMWFiM2ViYmQ5OWNiYzk0MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1BhZ2VDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgK
QEAgLTMwMSw2ICszMDEsOSBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKICAg
ICB2aXJ0dWFsIHZvaWQgZG9uZVdpdGhUb3VjaEV2ZW50KGNvbnN0IE5hdGl2ZVdlYlRvdWNoRXZl
bnQmLCBib29sIHdhc0V2ZW50SGFuZGxlZCkgPSAwOwogI2VuZGlmCisjaWYgRU5BQkxFKElPU19U
T1VDSF9FVkVOVFMpCisgICAgdmlydHVhbCB2b2lkIGRvbmVEZWZlcnJpbmdOYXRpdmVHZXN0dXJl
cyhib29sIHByZXZlbnROYXRpdmVHZXN0dXJlcykgPSAwOworI2VuZGlmCiAKICAgICB2aXJ0dWFs
IFJlZlB0cjxXZWJQb3B1cE1lbnVQcm94eT4gY3JlYXRlUG9wdXBNZW51UHJveHkoV2ViUGFnZVBy
b3h5JikgPSAwOwogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9SZW1vdGVMYXllclRyZWVWaWV3
cy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvUmVtb3Rl
TGF5ZXJUcmVlVmlld3MubW0KaW5kZXggZjYxM2UxYzBjZjhmYTBlNWM3NDQ5MTllYWMwYjllYjcx
MTNlZGNiZC4uNzY3ZTBjZmU5MWEzOWI5NGUyYzQ3ZDM0OWFjOGFhNGJkNzg0MmY4NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9SZW1vdGVM
YXllclRyZWVWaWV3cy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXll
clRyZWUvaW9zL1JlbW90ZUxheWVyVHJlZVZpZXdzLm1tCkBAIC0zMiw2ICszMiw3IEBACiAjaW1w
b3J0ICJSZW1vdGVMYXllclRyZWVIb3N0LmgiCiAjaW1wb3J0ICJSZW1vdGVMYXllclRyZWVOb2Rl
LmgiCiAjaW1wb3J0ICJVSUtpdFNQSS5oIgorI2ltcG9ydCAiV0tEZWZlcnJpbmdHZXN0dXJlUmVj
b2duaXplci5oIgogI2ltcG9ydCAiV0tEcmF3aW5nVmlldy5oIgogI2ltcG9ydCA8V2ViQ29yZS9S
ZWdpb24uaD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvUXVhcnR6Q29yZVNQSS5oPgpAQCAtMzE2
LDYgKzMxNywyMiBAQCAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhGcmFtZTooQ0dSZWN0KWZyYW1l
CiAgICAgcmV0dXJuIHNlbGY7CiB9CiAKKy0gKEJPT0wpZ2VzdHVyZVJlY29nbml6ZXI6KFVJR2Vz
dHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmVjb2duaXplciBzaG91bGRSZXF1aXJlRmFpbHVyZU9m
R2VzdHVyZVJlY29nbml6ZXI6KFVJR2VzdHVyZVJlY29nbml6ZXIgKilvdGhlckdlc3R1cmVSZWNv
Z25pemVyCit7CisgICAgaWYgKFtvdGhlckdlc3R1cmVSZWNvZ25pemVyIGlzS2luZE9mQ2xhc3M6
V0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplci5jbGFzc10pCisgICAgICAgIHJldHVybiBbKFdL
RGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgKilvdGhlckdlc3R1cmVSZWNvZ25pemVyIHNob3Vs
ZERlZmVyR2VzdHVyZVJlY29nbml6ZXI6Z2VzdHVyZVJlY29nbml6ZXJdOworCisgICAgcmV0dXJu
IE5POworfQorCistIChCT09MKWdlc3R1cmVSZWNvZ25pemVyOihVSUdlc3R1cmVSZWNvZ25pemVy
ICopZ2VzdHVyZVJlY29nbml6ZXIgc2hvdWxkQmVSZXF1aXJlZFRvRmFpbEJ5R2VzdHVyZVJlY29n
bml6ZXI6KFVJR2VzdHVyZVJlY29nbml6ZXIgKilvdGhlckdlc3R1cmVSZWNvZ25pemVyCit7Cisg
ICAgaWYgKFtnZXN0dXJlUmVjb2duaXplciBpc0tpbmRPZkNsYXNzOldLRGVmZXJyaW5nR2VzdHVy
ZVJlY29nbml6ZXIuY2xhc3NdKQorICAgICAgICByZXR1cm4gWyhXS0RlZmVycmluZ0dlc3R1cmVS
ZWNvZ25pemVyICopZ2VzdHVyZVJlY29nbml6ZXIgc2hvdWxkRGVmZXJHZXN0dXJlUmVjb2duaXpl
cjpvdGhlckdlc3R1cmVSZWNvZ25pemVyXTsKKworICAgIHJldHVybiBOTzsKK30KKwogQGVuZAog
CiBAaW1wbGVtZW50YXRpb24gV0tFbWJlZGRlZFZpZXcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCmluZGV4IDM1Y2QzYWMzM2ZjNTllZjg2ZDBiYjc5MjE0NTU1ZGU5Nzlm
YjM1ZmEuLjc4ZWUxOGUxOTRiMTU5NDBlMWZlZDBlZmZlZDBjODA3OWQ5ZjFlNjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMTcxLDYgKzE3MSw3IEBACiAj
aW5jbHVkZSA8V2ViQ29yZS9Xcml0aW5nRGlyZWN0aW9uLmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4K
ICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYvU2NvcGUuaD4K
ICNpbmNsdWRlIDx3dGYvU3lzdGVtVHJhY2luZy5oPgogI2luY2x1ZGUgPHd0Zi9VUkwuaD4KICNp
bmNsdWRlIDx3dGYvVVJMUGFyc2VyLmg+CkBAIC0yNzcyLDcgKzI3NzMsNyBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6aGFuZGxlR2VzdHVyZUV2ZW50KGNvbnN0IE5hdGl2ZVdlYkdlc3R1cmVFdmVudCYg
ZXZlbnQpCiAjZW5kaWYKIAogI2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQotdm9pZCBXZWJQ
YWdlUHJveHk6OmhhbmRsZVRvdWNoRXZlbnRTeW5jaHJvbm91c2x5KE5hdGl2ZVdlYlRvdWNoRXZl
bnQmIGV2ZW50KQordm9pZCBXZWJQYWdlUHJveHk6OmhhbmRsZVByZXZlbnRhYmxlVG91Y2hFdmVu
dChOYXRpdmVXZWJUb3VjaEV2ZW50JiBldmVudCkKIHsKICAgICBpZiAoIWhhc1J1bm5pbmdQcm9j
ZXNzKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTI3ODEsOSArMjc4MiwyMCBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6aGFuZGxlVG91Y2hFdmVudFN5bmNocm9ub3VzbHkoTmF0aXZlV2ViVG91Y2hFdmVu
dCYgZXZlbnQpCiAKICAgICB1cGRhdGVUb3VjaEV2ZW50VHJhY2tpbmcoZXZlbnQpOwogCisgICAg
YXV0byBoYW5kbGVBbGxUb3VjaFBvaW50c1JlbGVhc2VkID0gV1RGOjptYWtlU2NvcGVFeGl0KFsm
XSB7CisgICAgICAgIGlmICghZXZlbnQuYWxsVG91Y2hQb2ludHNBcmVSZWxlYXNlZCgpKQorICAg
ICAgICAgICAgcmV0dXJuOworCisgICAgICAgIG1fdG91Y2hBbmRQb2ludGVyRXZlbnRUcmFja2lu
Zy5yZXNldCgpOworICAgICAgICBkaWRSZWxlYXNlQWxsVG91Y2hQb2ludHMoKTsKKyAgICB9KTsK
KwogICAgIFRyYWNraW5nVHlwZSB0b3VjaEV2ZW50c1RyYWNraW5nVHlwZSA9IHRvdWNoRXZlbnRU
cmFja2luZ1R5cGUoZXZlbnQpOwotICAgIGlmICh0b3VjaEV2ZW50c1RyYWNraW5nVHlwZSA9PSBU
cmFja2luZ1R5cGU6Ok5vdFRyYWNraW5nKQorICAgIGlmICh0b3VjaEV2ZW50c1RyYWNraW5nVHlw
ZSA9PSBUcmFja2luZ1R5cGU6Ok5vdFRyYWNraW5nKSB7CisgICAgICAgIGlmICghbV9pc0hhbmRs
aW5nRGVmZXJyZWRUb3VjaFN0YXJ0KQorICAgICAgICAgICAgcGFnZUNsaWVudCgpLmRvbmVEZWZl
cnJpbmdOYXRpdmVHZXN0dXJlcyhmYWxzZSk7CiAgICAgICAgIHJldHVybjsKKyAgICB9CiAKICAg
ICBpZiAodG91Y2hFdmVudHNUcmFja2luZ1R5cGUgPT0gVHJhY2tpbmdUeXBlOjpBc3luY2hyb25v
dXMpIHsKICAgICAgICAgLy8gV2UgY2FuIGVuZCB1cCBoZXJlIGlmIGEgbmF0aXZlIGdlc3R1cmUg
aGFzIG5vdCBzdGFydGVkIGJ1dCB0aGUgZXZlbnQgaGFuZGxlcnMgYXJlIHBhc3NpdmUuCkBAIC0y
NzkzLDI1ICsyODA1LDI4IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpoYW5kbGVUb3VjaEV2ZW50U3lu
Y2hyb25vdXNseShOYXRpdmVXZWJUb3VjaEV2ZW50JiBldmVudCkKICAgICAgICAgLy8gQnV0LCBo
ZXJlIHdlIGtub3cgdGhhdCBhbGwgZXZlbnRzIGhhbmRsZXJzIHRoYXQgY2FuIGhhbmRsZSB0aGlz
IGV2ZW50cyBhcmUgcGFzc2l2ZS4KICAgICAgICAgLy8gV2UgY2FuIHVzZSBhc3luY2hyb25vdXMg
ZGlzcGF0Y2ggYW5kIHByZXRlbmQgdG8gdGhlIGNsaWVudCB0aGF0IHRoZSBwYWdlIGRvZXMgbm90
aGluZyB3aXRoIHRoZSBldmVudHMuCiAgICAgICAgIGV2ZW50LnNldENhblByZXZlbnROYXRpdmVH
ZXN0dXJlcyhmYWxzZSk7Ci0gICAgICAgIGhhbmRsZVRvdWNoRXZlbnRBc3luY2hyb25vdXNseShl
dmVudCk7CisgICAgICAgIGhhbmRsZVVucHJldmVudGFibGVUb3VjaEV2ZW50KGV2ZW50KTsKICAg
ICAgICAgZGlkUmVjZWl2ZUV2ZW50KGV2ZW50LnR5cGUoKSwgZmFsc2UpOworICAgICAgICBpZiAo
IW1faXNIYW5kbGluZ0RlZmVycmVkVG91Y2hTdGFydCkKKyAgICAgICAgICAgIHBhZ2VDbGllbnQo
KS5kb25lRGVmZXJyaW5nTmF0aXZlR2VzdHVyZXMoZmFsc2UpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCi0gICAgbV9wcm9jZXNzLT5yZXNwb25zaXZlbmVzc1RpbWVyKCkuc3RhcnQoKTsKLSAg
ICBib29sIGhhbmRsZWQgPSBmYWxzZTsKLSAgICBib29sIHJlcGx5UmVjZWl2ZWQgPSBtX3Byb2Nl
c3MtPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlOjpUb3VjaEV2ZW50U3luYyhldmVudCksIE1l
c3NhZ2VzOjpXZWJQYWdlOjpUb3VjaEV2ZW50U3luYzo6UmVwbHkoaGFuZGxlZCksIG1fd2ViUGFn
ZUlELCAxX3MsIElQQzo6U2VuZFN5bmNPcHRpb246OkZvcmNlRGlzcGF0Y2hXaGVuRGVzdGluYXRp
b25Jc1dhaXRpbmdGb3JVbmJvdW5kZWRTeW5jUmVwbHkpOwotICAgIC8vIElmIHRoZSBzeW5jIHJl
cXVlc3QgaGFzIHRpbWVkIG91dCwgd2Ugc2hvdWxkIGNvbnNpZGVyIHRoZSBldmVudCBoYW5kbGVk
LiBUaGUgV2ViIFByb2Nlc3MgaXMgdG9vIGJ1c3kgdG8gYW5zd2VyIGFueSBxdWVzdGlvbnMsIHNv
IHRoZSBkZWZhdWx0IGFjdGlvbiBpcyBhbHNvIGxpa2VseSB0byBoYXZlIGlzc3Vlcy4KLSAgICBp
ZiAoIXJlcGx5UmVjZWl2ZWQpCi0gICAgICAgIGhhbmRsZWQgPSB0cnVlOwotICAgIGRpZFJlY2Vp
dmVFdmVudChldmVudC50eXBlKCksIGhhbmRsZWQpOwotICAgIHBhZ2VDbGllbnQoKS5kb25lV2l0
aFRvdWNoRXZlbnQoZXZlbnQsIGhhbmRsZWQpOwotICAgIG1fcHJvY2Vzcy0+cmVzcG9uc2l2ZW5l
c3NUaW1lcigpLnN0b3AoKTsKKyAgICBpZiAoZXZlbnQudHlwZSgpID09IFdlYkV2ZW50OjpUb3Vj
aFN0YXJ0KQorICAgICAgICBtX2lzSGFuZGxpbmdEZWZlcnJlZFRvdWNoU3RhcnQgPSB0cnVlOwog
Ci0gICAgaWYgKGV2ZW50LmFsbFRvdWNoUG9pbnRzQXJlUmVsZWFzZWQoKSkgewotICAgICAgICBt
X3RvdWNoQW5kUG9pbnRlckV2ZW50VHJhY2tpbmcucmVzZXQoKTsKLSAgICAgICAgZGlkUmVsZWFz
ZUFsbFRvdWNoUG9pbnRzKCk7Ci0gICAgfQorICAgIEZ1bmN0aW9uPHZvaWQoYm9vbCwgQ2FsbGJh
Y2tCYXNlOjpFcnJvcik+IGNvbXBsZXRpb25IYW5kbGVyID0gW3RoaXMsIHByb3RlY3RlZFRoaXMg
PSBtYWtlUmVmKCp0aGlzKSwgZXZlbnRdKGJvb2wgaGFuZGxlZCwgQ2FsbGJhY2tCYXNlOjpFcnJv
ciBlcnJvcikgeworICAgICAgICBib29sIGhhbmRsZWRPckZhaWxlZFdpdGhFcnJvciA9IGhhbmRs
ZWQgfHwgZXJyb3IgIT0gQ2FsbGJhY2tCYXNlOjpFcnJvcjo6Tm9uZTsKKyAgICAgICAgaWYgKGV2
ZW50LnR5cGUoKSA9PSBXZWJFdmVudDo6VG91Y2hTdGFydCkKKyAgICAgICAgICAgIG1faXNIYW5k
bGluZ0RlZmVycmVkVG91Y2hTdGFydCA9IGZhbHNlOworICAgICAgICBkaWRSZWNlaXZlRXZlbnQo
ZXZlbnQudHlwZSgpLCBoYW5kbGVkT3JGYWlsZWRXaXRoRXJyb3IpOworICAgICAgICBwYWdlQ2xp
ZW50KCkuZG9uZVdpdGhUb3VjaEV2ZW50KGV2ZW50LCBoYW5kbGVkT3JGYWlsZWRXaXRoRXJyb3Ip
OworICAgICAgICBpZiAoIW1faXNIYW5kbGluZ0RlZmVycmVkVG91Y2hTdGFydCkKKyAgICAgICAg
ICAgIHBhZ2VDbGllbnQoKS5kb25lRGVmZXJyaW5nTmF0aXZlR2VzdHVyZXMoaGFuZGxlZE9yRmFp
bGVkV2l0aEVycm9yKTsKKyAgICB9OworCisgICAgYXV0byBjYWxsYmFja0lEID0gbV9jYWxsYmFj
a3MucHV0KFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBtX3Byb2Nlc3MtPnRocm90dGxlcigp
LmJhY2tncm91bmRBY3Rpdml0eSgiV2ViUGFnZVByb3h5OjpoYW5kbGVQcmV2ZW50YWJsZVRvdWNo
RXZlbnQiX3MpKTsKKyAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OkV2ZW50RGlzcGF0Y2hl
cjo6VG91Y2hFdmVudChtX3dlYlBhZ2VJRCwgZXZlbnQsIGNhbGxiYWNrSUQpLCAwKTsKIH0KIAog
dm9pZCBXZWJQYWdlUHJveHk6OnJlc2V0UG90ZW50aWFsVGFwU2VjdXJpdHlPcmlnaW4oKQpAQCAt
MjgyMiw3ICsyODM3LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJlc2V0UG90ZW50aWFsVGFwU2Vj
dXJpdHlPcmlnaW4oKQogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6UmVz
ZXRQb3RlbnRpYWxUYXBTZWN1cml0eU9yaWdpbigpLCBtX3dlYlBhZ2VJRCk7CiB9CiAKLXZvaWQg
V2ViUGFnZVByb3h5OjpoYW5kbGVUb3VjaEV2ZW50QXN5bmNocm9ub3VzbHkoY29uc3QgTmF0aXZl
V2ViVG91Y2hFdmVudCYgZXZlbnQpCit2b2lkIFdlYlBhZ2VQcm94eTo6aGFuZGxlVW5wcmV2ZW50
YWJsZVRvdWNoRXZlbnQoY29uc3QgTmF0aXZlV2ViVG91Y2hFdmVudCYgZXZlbnQpCiB7CiAgICAg
aWYgKCFoYXNSdW5uaW5nUHJvY2VzcygpKQogICAgICAgICByZXR1cm47CkBAIC0yODMxLDcgKzI4
NDYsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6aGFuZGxlVG91Y2hFdmVudEFzeW5jaHJvbm91c2x5
KGNvbnN0IE5hdGl2ZVdlYlRvdWNoRXZlbnQmIGV2ZQogICAgIGlmICh0b3VjaEV2ZW50c1RyYWNr
aW5nVHlwZSA9PSBUcmFja2luZ1R5cGU6Ok5vdFRyYWNraW5nKQogICAgICAgICByZXR1cm47CiAK
LSAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OkV2ZW50RGlzcGF0Y2hlcjo6VG91Y2hFdmVu
dChtX3dlYlBhZ2VJRCwgZXZlbnQpLCAwKTsKKyAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6
OkV2ZW50RGlzcGF0Y2hlcjo6VG91Y2hFdmVudChtX3dlYlBhZ2VJRCwgZXZlbnQsIFdURjo6bnVs
bG9wdCksIDApOwogCiAgICAgaWYgKGV2ZW50LmFsbFRvdWNoUG9pbnRzQXJlUmVsZWFzZWQoKSkg
ewogICAgICAgICBtX3RvdWNoQW5kUG9pbnRlckV2ZW50VHJhY2tpbmcucmVzZXQoKTsKQEAgLTY2
NzgsNiArNjY5MywxNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGF0YUNhbGxiYWNrKGNvbnN0IElQ
Qzo6RGF0YVJlZmVyZW5jZSYgZGF0YVJlZmVyZW5jZSwgQ2FsbGJhYwogICAgIGNhbGxiYWNrLT5w
ZXJmb3JtQ2FsbGJhY2tXaXRoUmV0dXJuVmFsdWUoQVBJOjpEYXRhOjpjcmVhdGUoZGF0YVJlZmVy
ZW5jZS5kYXRhKCksIGRhdGFSZWZlcmVuY2Uuc2l6ZSgpKS5wdHIoKSk7CiB9CiAKK3ZvaWQgV2Vi
UGFnZVByb3h5Ojpib29sQ2FsbGJhY2soYm9vbCByZXN1bHQsIENhbGxiYWNrSUQgY2FsbGJhY2tJ
RCkKK3sKKyAgICBhdXRvIGNhbGxiYWNrID0gbV9jYWxsYmFja3MudGFrZTxCb29sQ2FsbGJhY2s+
KGNhbGxiYWNrSUQpOworICAgIGlmICghY2FsbGJhY2spIHsKKyAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBjYWxsYmFjay0+cGVyZm9y
bUNhbGxiYWNrV2l0aFJldHVyblZhbHVlKHJlc3VsdCk7Cit9CisKIHZvaWQgV2ViUGFnZVByb3h5
OjppbWFnZUNhbGxiYWNrKGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiBiaXRtYXBIYW5k
bGUsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKIHsKICAgICBhdXRvIGNhbGxiYWNrID0gbV9jYWxs
YmFja3MudGFrZTxJbWFnZUNhbGxiYWNrPihjYWxsYmFja0lEKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKaW5kZXggMTA5NDdmZjBkYmI3YmU5NDQ0YTAyZjFlMzIxM2I4Y2Jl
MWUxMDk4Ni4uZGZhODNlY2IyMmMzNmIwYjhmZDBiNDliYzY4M2JhM2Q2MWNkZGVkOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTg3NSw4ICs4NzUsOCBAQCBwdWJs
aWM6CiAKICNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKICAgICB2b2lkIHJlc2V0UG90ZW50
aWFsVGFwU2VjdXJpdHlPcmlnaW4oKTsKLSAgICB2b2lkIGhhbmRsZVRvdWNoRXZlbnRTeW5jaHJv
bm91c2x5KE5hdGl2ZVdlYlRvdWNoRXZlbnQmKTsKLSAgICB2b2lkIGhhbmRsZVRvdWNoRXZlbnRB
c3luY2hyb25vdXNseShjb25zdCBOYXRpdmVXZWJUb3VjaEV2ZW50Jik7CisgICAgdm9pZCBoYW5k
bGVQcmV2ZW50YWJsZVRvdWNoRXZlbnQoTmF0aXZlV2ViVG91Y2hFdmVudCYpOworICAgIHZvaWQg
aGFuZGxlVW5wcmV2ZW50YWJsZVRvdWNoRXZlbnQoY29uc3QgTmF0aXZlV2ViVG91Y2hFdmVudCYp
OwogCiAjZWxpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgIHZvaWQgaGFuZGxlVG91Y2hFdmVu
dChjb25zdCBOYXRpdmVXZWJUb3VjaEV2ZW50Jik7CkBAIC0xNjI5LDYgKzE2MjksOCBAQCBwdWJs
aWM6CiAKICAgICB2b2lkIHNldE9yaWVudGF0aW9uRm9yTWVkaWFDYXB0dXJlKHVpbnQ2NF90KTsK
IAorICAgIGJvb2wgaXNIYW5kbGluZ0RlZmVycmVkVG91Y2hTdGFydCgpIGNvbnN0IHsgcmV0dXJu
IG1faXNIYW5kbGluZ0RlZmVycmVkVG91Y2hTdGFydDsgfQorCiBwcml2YXRlOgogICAgIFdlYlBh
Z2VQcm94eShQYWdlQ2xpZW50JiwgV2ViUHJvY2Vzc1Byb3h5JiwgUmVmPEFQSTo6UGFnZUNvbmZp
Z3VyYXRpb24+JiYpOwogICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplKCk7CkBAIC0xOTMzLDYg
KzE5MzUsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgdm9pZENhbGxiYWNrKENhbGxiYWNrSUQpOwog
ICAgIHZvaWQgZGF0YUNhbGxiYWNrKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYsIENhbGxiYWNr
SUQpOwogICAgIHZvaWQgaW1hZ2VDYWxsYmFjayhjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRs
ZSYsIENhbGxiYWNrSUQpOworICAgIHZvaWQgYm9vbENhbGxiYWNrKGJvb2wgcmVzdWx0LCBDYWxs
YmFja0lEKTsKICAgICB2b2lkIHN0cmluZ0NhbGxiYWNrKGNvbnN0IFN0cmluZyYsIENhbGxiYWNr
SUQpOwogICAgIHZvaWQgaW52YWxpZGF0ZVN0cmluZ0NhbGxiYWNrKENhbGxiYWNrSUQpOwogICAg
IHZvaWQgc2NyaXB0VmFsdWVDYWxsYmFjayhjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmLCBib29s
IGhhZEV4Y2VwdGlvbiwgY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGV0YWlscyYsIENhbGxiYWNr
SUQpOwpAQCAtMjQxNCw2ICsyNDE3LDggQEAgcHJpdmF0ZToKICAgICBEZXF1ZTxRdWV1ZWRUb3Vj
aEV2ZW50cz4gbV90b3VjaEV2ZW50UXVldWU7CiAjZW5kaWYKIAorICAgIGJvb2wgbV9pc0hhbmRs
aW5nRGVmZXJyZWRUb3VjaFN0YXJ0IHsgZmFsc2UgfTsKKwogI2lmIEVOQUJMRShJTlBVVF9UWVBF
X0NPTE9SKQogICAgIFJlZlB0cjxXZWJDb2xvclBpY2tlcj4gbV9jb2xvclBpY2tlcjsKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmlu
CmluZGV4IDdkOTAwNWVkZDg2YmZlYWE4YjAyMDdmN2Y3MmY0NmE5OWIzOTc2ODcuLmVhMTI4ZGNm
MmIwZTI2MDc0YjcyM2RmOGE2ZWVjMTZmMzI1NTM0YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTE2Nyw2ICsxNjcsNyBAQCBt
ZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIERhdGFDYWxsYmFjayhJUEM6OlNoYXJlZEJ1
ZmZlckRhdGFSZWZlcmVuY2UgcmVzdWx0RGF0YSwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNr
SUQpCiAgICAgSW1hZ2VDYWxsYmFjayhXZWJLaXQ6OlNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlIGJp
dG1hcEhhbmRsZSwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiAgICAgU3RyaW5nQ2Fs
bGJhY2soU3RyaW5nIHJlc3VsdFN0cmluZywgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQp
CisgICAgQm9vbENhbGxiYWNrKGJvb2wgcmVzdWx0LCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJh
Y2tJRCkKICAgICBJbnZhbGlkYXRlU3RyaW5nQ2FsbGJhY2soV2ViS2l0OjpDYWxsYmFja0lEIGNh
bGxiYWNrSUQpCiAgICAgU2NyaXB0VmFsdWVDYWxsYmFjayhJUEM6OkRhdGFSZWZlcmVuY2UgcmVz
dWx0RGF0YSwgYm9vbCBoYWRFeGNlcHRpb24sIHN0cnVjdCBXZWJDb3JlOjpFeGNlcHRpb25EZXRh
aWxzIGRldGFpbHMsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQogICAgIENvbXB1dGVk
UGFnZXNDYWxsYmFjayhWZWN0b3I8V2ViQ29yZTo6SW50UmVjdD4gcGFnZVJlY3RzLCBkb3VibGUg
dG90YWxTY2FsZUZhY3RvckZvclByaW50aW5nLCBXZWJDb3JlOjpSZWN0RWRnZXM8ZmxvYXQ+IGNv
bXB1dGVkUGFnZU1hcmdpbiwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCmluZGV4IGVhNTM1
MjU3ZGZjZGM2MDEwMDljY2I1NGNiMGIyYmJkODA0OTJmY2MuLmQ2YzhjMzhkNGE2NTExOTI2MjUw
YTZjZjRiMDNhMjRhOTliMDNiYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9QYWdlQ2xpZW50SW1wbElPUy5oCkBAIC0xMDMsNiArMTAzLDkgQEAgcHJpdmF0ZToKICAgICB2
b2lkIGRvbmVXaXRoS2V5RXZlbnQoY29uc3QgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudCYsIGJvb2wg
d2FzRXZlbnRIYW5kbGVkKSBvdmVycmlkZTsKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAg
IHZvaWQgZG9uZVdpdGhUb3VjaEV2ZW50KGNvbnN0IE5hdGl2ZVdlYlRvdWNoRXZlbnQmLCBib29s
IHdhc0V2ZW50SGFuZGxlZCkgb3ZlcnJpZGU7CisjZW5kaWYKKyNpZiBFTkFCTEUoSU9TX1RPVUNI
X0VWRU5UUykKKyAgICB2b2lkIGRvbmVEZWZlcnJpbmdOYXRpdmVHZXN0dXJlcyhib29sIHByZXZl
bnROYXRpdmVHZXN0dXJlcykgb3ZlcnJpZGU7CiAjZW5kaWYKICAgICBSZWZQdHI8V2ViUG9wdXBN
ZW51UHJveHk+IGNyZWF0ZVBvcHVwTWVudVByb3h5KFdlYlBhZ2VQcm94eSYpIG92ZXJyaWRlOwog
ICAgIFJlZjxXZWJDb3JlOjpWYWxpZGF0aW9uQnViYmxlPiBjcmVhdGVWYWxpZGF0aW9uQnViYmxl
KGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgV2ViQ29yZTo6VmFsaWRhdGlvbkJ1YmJsZTo6
U2V0dGluZ3MmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9QYWdlQ2xpZW50SW1wbElPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdl
Q2xpZW50SW1wbElPUy5tbQppbmRleCBlMTM5OTY4ZDRmMGVlMzMyM2RkMjg5ZjQ3N2RkOGQ2NDFk
NzdlYzNhLi5kYzlmNzRjNDlhNmJlYTllZGMxNTA2YzVhYjk1N2UwMDZhMjA3YTVlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCkBAIC00
MTgsNiArNDE4LDE1IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OmRvbmVXaXRoVG91Y2hFdmVudChj
b25zdCBOYXRpdmVXZWJUb3VjaEV2ZW50JiBuYXRpdmVXZWJ0b3VjCiB9CiAjZW5kaWYKIAorI2lm
IEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkb25lRGVm
ZXJyaW5nTmF0aXZlR2VzdHVyZXMoYm9vbCBwcmV2ZW50TmF0aXZlR2VzdHVyZXMpCit7CisgICAg
W21fY29udGVudFZpZXcgX2RvbmVEZWZlcnJpbmdOYXRpdmVHZXN0dXJlczpwcmV2ZW50TmF0aXZl
R2VzdHVyZXNdOworfQorCisjZW5kaWYgLy8gRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCisKIFJl
ZlB0cjxXZWJQb3B1cE1lbnVQcm94eT4gUGFnZUNsaWVudEltcGw6OmNyZWF0ZVBvcHVwTWVudVBy
b3h5KFdlYlBhZ2VQcm94eSYpCiB7CiAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKaW5k
ZXggNjM4ZDM4ZjVjZjFmZGM2MzFiNTg4YTlmMGExMWNiYTc4NmI2Y2RkYi4uMWJiMTE2ZjZjZDc2
OWZiNTY2NTI5OGI2YjgwMzExNDliYjgwY2FhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaApAQCAtNDYyLDYgKzQ2
Miw3IEBAIEZPUl9FQUNIX1BSSVZBVEVfV0tDT05URU5UVklFV19BQ1RJT04oREVDTEFSRV9XS0NP
TlRFTlRWSUVXX0FDVElPTl9GT1JfV0VCX1ZJRVcpCiAKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRT
KQogLSAodm9pZClfd2ViVG91Y2hFdmVudDooY29uc3QgV2ViS2l0OjpOYXRpdmVXZWJUb3VjaEV2
ZW50Jil0b3VjaEV2ZW50IHByZXZlbnRzTmF0aXZlR2VzdHVyZXM6KEJPT0wpcHJldmVudHNEZWZh
dWx0OworLSAodm9pZClfZG9uZURlZmVycmluZ05hdGl2ZUdlc3R1cmVzOihCT09MKXByZXZlbnRO
YXRpdmVHZXN0dXJlczsKICNlbmRpZgogLSAodm9pZClfY29tbWl0UG90ZW50aWFsVGFwRmFpbGVk
OwogLSAodm9pZClfZGlkTm90SGFuZGxlVGFwQXNDbGljazooY29uc3QgV2ViQ29yZTo6SW50UG9p
bnQmKXBvaW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29u
dGVudFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0Nv
bnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggZDI3ZmEzOTY4ZjJlYTdlNjBkNmFmZTU2ODhi
OGNkNTkwZmFiODkyMC4uNzVlZmIxOTNkNGM4ZDFlYjdhMTJhMGJlNjcyMmMxY2U0YzFkMzNiYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRl
cmFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmll
d0ludGVyYWN0aW9uLm1tCkBAIC03NDIsNiArNzQyLDE2IEBAIC0gKHZvaWQpc2V0dXBJbnRlcmFj
dGlvbgogICAgIFtzZWxmIGFkZEdlc3R1cmVSZWNvZ25pemVyOl90b3VjaEFjdGlvbkRvd25Td2lw
ZUdlc3R1cmVSZWNvZ25pemVyLmdldCgpXTsKICNlbmRpZgogCisgICAgX2RlZmVycmluZ0dlc3R1
cmVSZWNvZ25pemVyRm9ySW1tZWRpYXRlbHlSZXNldHRhYmxlR2VzdHVyZXMgPSBhZG9wdE5TKFtb
V0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciBhbGxvY10gaW5pdFdpdGhEZWZlcnJpbmdHZXN0
dXJlRGVsZWdhdGU6c2VsZl0pOworICAgIFtfZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXJGb3JJ
bW1lZGlhdGVseVJlc2V0dGFibGVHZXN0dXJlcyBzZXROYW1lOkAiVG91Y2ggZXZlbnQgZGVmZXJy
ZXIgKGltbWVkaWF0ZSByZXNldCkiXTsKKyAgICBbX2RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVy
Rm9ySW1tZWRpYXRlbHlSZXNldHRhYmxlR2VzdHVyZXMgc2V0RGVsZWdhdGU6c2VsZl07CisgICAg
W3NlbGYgYWRkR2VzdHVyZVJlY29nbml6ZXI6X2RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyRm9y
SW1tZWRpYXRlbHlSZXNldHRhYmxlR2VzdHVyZXMuZ2V0KCldOworCisgICAgX2RlZmVycmluZ0dl
c3R1cmVSZWNvZ25pemVyRm9yRGVsYXllZFJlc2V0dGFibGVHZXN0dXJlcyA9IGFkb3B0TlMoW1tX
S0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyIGFsbG9jXSBpbml0V2l0aERlZmVycmluZ0dlc3R1
cmVEZWxlZ2F0ZTpzZWxmXSk7CisgICAgW19kZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplckZvckRl
bGF5ZWRSZXNldHRhYmxlR2VzdHVyZXMgc2V0TmFtZTpAIlRvdWNoIGV2ZW50IGRlZmVycmVyIChk
ZWxheWVkIHJlc2V0KSJdOworICAgIFtfZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXJGb3JEZWxh
eWVkUmVzZXR0YWJsZUdlc3R1cmVzIHNldERlbGVnYXRlOnNlbGZdOworICAgIFtzZWxmIGFkZEdl
c3R1cmVSZWNvZ25pemVyOl9kZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplckZvckRlbGF5ZWRSZXNl
dHRhYmxlR2VzdHVyZXMuZ2V0KCldOworCiAgICAgX3RvdWNoRXZlbnRHZXN0dXJlUmVjb2duaXpl
ciA9IGFkb3B0TlMoW1tVSVdlYlRvdWNoRXZlbnRzR2VzdHVyZVJlY29nbml6ZXIgYWxsb2NdIGlu
aXRXaXRoVGFyZ2V0OnNlbGYgYWN0aW9uOkBzZWxlY3Rvcihfd2ViVG91Y2hFdmVudHNSZWNvZ25p
emVkOikgdG91Y2hEZWxlZ2F0ZTpzZWxmXSk7CiAgICAgW190b3VjaEV2ZW50R2VzdHVyZVJlY29n
bml6ZXIgc2V0RGVsZWdhdGU6c2VsZl07CiAgICAgW3NlbGYgYWRkR2VzdHVyZVJlY29nbml6ZXI6
X3RvdWNoRXZlbnRHZXN0dXJlUmVjb2duaXplci5nZXQoKV07CkBAIC05MDUsNiArOTE1LDEyIEBA
IC0gKHZvaWQpY2xlYW51cEludGVyYWN0aW9uCiAgICAgW190b3VjaEV2ZW50R2VzdHVyZVJlY29n
bml6ZXIgc2V0RGVsZWdhdGU6bmlsXTsKICAgICBbc2VsZiByZW1vdmVHZXN0dXJlUmVjb2duaXpl
cjpfdG91Y2hFdmVudEdlc3R1cmVSZWNvZ25pemVyLmdldCgpXTsKIAorICAgIFtfZGVmZXJyaW5n
R2VzdHVyZVJlY29nbml6ZXJGb3JJbW1lZGlhdGVseVJlc2V0dGFibGVHZXN0dXJlcyBzZXREZWxl
Z2F0ZTpuaWxdOworICAgIFtzZWxmIHJlbW92ZUdlc3R1cmVSZWNvZ25pemVyOl9kZWZlcnJpbmdH
ZXN0dXJlUmVjb2duaXplckZvckltbWVkaWF0ZWx5UmVzZXR0YWJsZUdlc3R1cmVzLmdldCgpXTsK
KworICAgIFtfZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXJGb3JEZWxheWVkUmVzZXR0YWJsZUdl
c3R1cmVzIHNldERlbGVnYXRlOm5pbF07CisgICAgW3NlbGYgcmVtb3ZlR2VzdHVyZVJlY29nbml6
ZXI6X2RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyRm9yRGVsYXllZFJlc2V0dGFibGVHZXN0dXJl
cy5nZXQoKV07CisKICNpZiBIQVZFKEhPVkVSX0dFU1RVUkVfUkVDT0dOSVpFUikKICAgICBbX21v
dXNlR2VzdHVyZVJlY29nbml6ZXIgc2V0RGVsZWdhdGU6bmlsXTsKICAgICBbc2VsZiByZW1vdmVH
ZXN0dXJlUmVjb2duaXplcjpfbW91c2VHZXN0dXJlUmVjb2duaXplci5nZXQoKV07CkBAIC0xMDE3
LDYgKzEwMzMsOCBAQCAtICh2b2lkKWNsZWFudXBJbnRlcmFjdGlvbgogCiAtICh2b2lkKV9yZW1v
dmVEZWZhdWx0R2VzdHVyZVJlY29nbml6ZXJzCiB7CisgICAgW3NlbGYgcmVtb3ZlR2VzdHVyZVJl
Y29nbml6ZXI6X2RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyRm9ySW1tZWRpYXRlbHlSZXNldHRh
YmxlR2VzdHVyZXMuZ2V0KCldOworICAgIFtzZWxmIHJlbW92ZUdlc3R1cmVSZWNvZ25pemVyOl9k
ZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplckZvckRlbGF5ZWRSZXNldHRhYmxlR2VzdHVyZXMuZ2V0
KCldOwogICAgIFtzZWxmIHJlbW92ZUdlc3R1cmVSZWNvZ25pemVyOl90b3VjaEV2ZW50R2VzdHVy
ZVJlY29nbml6ZXIuZ2V0KCldOwogICAgIFtzZWxmIHJlbW92ZUdlc3R1cmVSZWNvZ25pemVyOl9z
aW5nbGVUYXBHZXN0dXJlUmVjb2duaXplci5nZXQoKV07CiAgICAgW3NlbGYgcmVtb3ZlR2VzdHVy
ZVJlY29nbml6ZXI6X2hpZ2hsaWdodExvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyLmdldCgpXTsK
QEAgLTEwNDMsNiArMTA2MSw4IEBAIC0gKHZvaWQpX3JlbW92ZURlZmF1bHRHZXN0dXJlUmVjb2du
aXplcnMKIAogLSAodm9pZClfYWRkRGVmYXVsdEdlc3R1cmVSZWNvZ25pemVycwogeworICAgIFtz
ZWxmIGFkZEdlc3R1cmVSZWNvZ25pemVyOl9kZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplckZvcklt
bWVkaWF0ZWx5UmVzZXR0YWJsZUdlc3R1cmVzLmdldCgpXTsKKyAgICBbc2VsZiBhZGRHZXN0dXJl
UmVjb2duaXplcjpfZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXJGb3JEZWxheWVkUmVzZXR0YWJs
ZUdlc3R1cmVzLmdldCgpXTsKICAgICBbc2VsZiBhZGRHZXN0dXJlUmVjb2duaXplcjpfdG91Y2hF
dmVudEdlc3R1cmVSZWNvZ25pemVyLmdldCgpXTsKICAgICBbc2VsZiBhZGRHZXN0dXJlUmVjb2du
aXplcjpfc2luZ2xlVGFwR2VzdHVyZVJlY29nbml6ZXIuZ2V0KCldOwogICAgIFtzZWxmIGFkZEdl
c3R1cmVSZWNvZ25pemVyOl9oaWdobGlnaHRMb25nUHJlc3NHZXN0dXJlUmVjb2duaXplci5nZXQo
KV07CkBAIC0xNDE4LDkgKzE0MzgsOSBAQCAtICh2b2lkKV93ZWJUb3VjaEV2ZW50c1JlY29nbml6
ZWQ6KFVJV2ViVG91Y2hFdmVudHNHZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmVSZQogI2VuZGlm
CiAKICAgICBpZiAoX3RvdWNoRXZlbnRzQ2FuUHJldmVudE5hdGl2ZUdlc3R1cmVzKQotICAgICAg
ICBfcGFnZS0+aGFuZGxlVG91Y2hFdmVudFN5bmNocm9ub3VzbHkobmF0aXZlV2ViVG91Y2hFdmVu
dCk7CisgICAgICAgIF9wYWdlLT5oYW5kbGVQcmV2ZW50YWJsZVRvdWNoRXZlbnQobmF0aXZlV2Vi
VG91Y2hFdmVudCk7CiAgICAgZWxzZQotICAgICAgICBfcGFnZS0+aGFuZGxlVG91Y2hFdmVudEFz
eW5jaHJvbm91c2x5KG5hdGl2ZVdlYlRvdWNoRXZlbnQpOworICAgICAgICBfcGFnZS0+aGFuZGxl
VW5wcmV2ZW50YWJsZVRvdWNoRXZlbnQobmF0aXZlV2ViVG91Y2hFdmVudCk7CiAKICAgICBpZiAo
bmF0aXZlV2ViVG91Y2hFdmVudC5hbGxUb3VjaFBvaW50c0FyZVJlbGVhc2VkKCkpIHsKICAgICAg
ICAgX3RvdWNoRXZlbnRzQ2FuUHJldmVudE5hdGl2ZUdlc3R1cmVzID0gWUVTOwpAQCAtMTU5MCwx
MiArMTYxMCwxOCBAQCBzdGF0aWMgV2ViQ29yZTo6RmxvYXRRdWFkIGluZmxhdGVRdWFkKGNvbnN0
IFdlYkNvcmU6OkZsb2F0UXVhZCYgcXVhZCwgZmxvYXQgaW5mbAogI2lmIEVOQUJMRShUT1VDSF9F
VkVOVFMpCiAtICh2b2lkKV93ZWJUb3VjaEV2ZW50Oihjb25zdCBXZWJLaXQ6Ok5hdGl2ZVdlYlRv
dWNoRXZlbnQmKXRvdWNoRXZlbnQgcHJldmVudHNOYXRpdmVHZXN0dXJlczooQk9PTClwcmV2ZW50
c05hdGl2ZUdlc3R1cmUKIHsKLSAgICBpZiAocHJldmVudHNOYXRpdmVHZXN0dXJlKSB7Ci0gICAg
ICAgIF9sb25nUHJlc3NDYW5DbGljayA9IE5POworICAgIGlmICghcHJldmVudHNOYXRpdmVHZXN0
dXJlIHx8ICFbX3RvdWNoRXZlbnRHZXN0dXJlUmVjb2duaXplciBpc0Rpc3BhdGNoaW5nVG91Y2hF
dmVudHNdKQorICAgICAgICByZXR1cm47CiAKLSAgICAgICAgX3RvdWNoRXZlbnRzQ2FuUHJldmVu
dE5hdGl2ZUdlc3R1cmVzID0gTk87Ci0gICAgICAgIFtfdG91Y2hFdmVudEdlc3R1cmVSZWNvZ25p
emVyIHNldERlZmF1bHRQcmV2ZW50ZWQ6WUVTXTsKLSAgICB9CisgICAgX2xvbmdQcmVzc0NhbkNs
aWNrID0gTk87CisgICAgX3RvdWNoRXZlbnRzQ2FuUHJldmVudE5hdGl2ZUdlc3R1cmVzID0gTk87
CisgICAgW190b3VjaEV2ZW50R2VzdHVyZVJlY29nbml6ZXIgc2V0RGVmYXVsdFByZXZlbnRlZDpZ
RVNdOworfQorCistICh2b2lkKV9kb25lRGVmZXJyaW5nTmF0aXZlR2VzdHVyZXM6KEJPT0wpcHJl
dmVudE5hdGl2ZUdlc3R1cmVzCit7CisgICAgW19kZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplckZv
ckltbWVkaWF0ZWx5UmVzZXR0YWJsZUdlc3R1cmVzIHNldERlZmF1bHRQcmV2ZW50ZWQ6cHJldmVu
dE5hdGl2ZUdlc3R1cmVzXTsKKyAgICBbX2RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyRm9yRGVs
YXllZFJlc2V0dGFibGVHZXN0dXJlcyBzZXREZWZhdWx0UHJldmVudGVkOnByZXZlbnROYXRpdmVH
ZXN0dXJlc107CiB9CiAjZW5kaWYKIApAQCAtMTk3Miw2ICsxOTk4LDE1IEBAIHN0YXRpYyBpbmxp
bmUgYm9vbCBpc1NhbWVQYWlyKFVJR2VzdHVyZVJlY29nbml6ZXIgKmEsIFVJR2VzdHVyZVJlY29n
bml6ZXIgKmIsIFVJCiAKIC0gKEJPT0wpZ2VzdHVyZVJlY29nbml6ZXI6KFVJR2VzdHVyZVJlY29n
bml6ZXIgKilnZXN0dXJlUmVjb2duaXplciBzaG91bGRSZWNvZ25pemVTaW11bHRhbmVvdXNseVdp
dGhHZXN0dXJlUmVjb2duaXplcjooVUlHZXN0dXJlUmVjb2duaXplciopb3RoZXJHZXN0dXJlUmVj
b2duaXplcgogeworICAgIGlmIChpc1NhbWVQYWlyKGdlc3R1cmVSZWNvZ25pemVyLCBvdGhlckdl
c3R1cmVSZWNvZ25pemVyLCBfdG91Y2hFdmVudEdlc3R1cmVSZWNvZ25pemVyLmdldCgpLCBfZGVm
ZXJyaW5nR2VzdHVyZVJlY29nbml6ZXJGb3JJbW1lZGlhdGVseVJlc2V0dGFibGVHZXN0dXJlcy5n
ZXQoKSkpCisgICAgICAgIHJldHVybiBZRVM7CisKKyAgICBpZiAoaXNTYW1lUGFpcihnZXN0dXJl
UmVjb2duaXplciwgb3RoZXJHZXN0dXJlUmVjb2duaXplciwgX3RvdWNoRXZlbnRHZXN0dXJlUmVj
b2duaXplci5nZXQoKSwgX2RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyRm9yRGVsYXllZFJlc2V0
dGFibGVHZXN0dXJlcy5nZXQoKSkpCisgICAgICAgIHJldHVybiBZRVM7CisKKyAgICBpZiAoW2dl
c3R1cmVSZWNvZ25pemVyIGlzS2luZE9mQ2xhc3M6V0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXpl
ci5jbGFzc10gJiYgW290aGVyR2VzdHVyZVJlY29nbml6ZXIgaXNLaW5kT2ZDbGFzczpXS0RlZmVy
cmluZ0dlc3R1cmVSZWNvZ25pemVyLmNsYXNzXSkKKyAgICAgICAgcmV0dXJuIFlFUzsKKwogICAg
IGlmIChpc1NhbWVQYWlyKGdlc3R1cmVSZWNvZ25pemVyLCBvdGhlckdlc3R1cmVSZWNvZ25pemVy
LCBfaGlnaGxpZ2h0TG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXIuZ2V0KCksIF9sb25nUHJlc3NH
ZXN0dXJlUmVjb2duaXplci5nZXQoKSkpCiAgICAgICAgIHJldHVybiBZRVM7CiAKQEAgLTIwMjMs
NiArMjA1OCwxNyBAQCAtIChCT09MKWdlc3R1cmVSZWNvZ25pemVyOihVSUdlc3R1cmVSZWNvZ25p
emVyICopZ2VzdHVyZVJlY29nbml6ZXIgc2hvdWxkUmVxdWlyZQogICAgIGlmIChnZXN0dXJlUmVj
b2duaXplciA9PSBfdG91Y2hFdmVudEdlc3R1cmVSZWNvZ25pemVyICYmIFtfd2ViVmlldyBfaXNO
YXZpZ2F0aW9uU3dpcGVHZXN0dXJlUmVjb2duaXplcjpvdGhlckdlc3R1cmVSZWNvZ25pemVyXSkK
ICAgICAgICAgcmV0dXJuIFlFUzsKIAorICAgIGlmIChbb3RoZXJHZXN0dXJlUmVjb2duaXplciBp
c0tpbmRPZkNsYXNzOldLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIuY2xhc3NdKQorICAgICAg
ICByZXR1cm4gWyhXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyICopb3RoZXJHZXN0dXJlUmVj
b2duaXplciBzaG91bGREZWZlckdlc3R1cmVSZWNvZ25pemVyOmdlc3R1cmVSZWNvZ25pemVyXTsK
KworICAgIHJldHVybiBOTzsKK30KKworLSAoQk9PTClnZXN0dXJlUmVjb2duaXplcjooVUlHZXN0
dXJlUmVjb2duaXplciAqKWdlc3R1cmVSZWNvZ25pemVyIHNob3VsZEJlUmVxdWlyZWRUb0ZhaWxC
eUdlc3R1cmVSZWNvZ25pemVyOihVSUdlc3R1cmVSZWNvZ25pemVyICopb3RoZXJHZXN0dXJlUmVj
b2duaXplcgoreworICAgIGlmIChbZ2VzdHVyZVJlY29nbml6ZXIgaXNLaW5kT2ZDbGFzczpXS0Rl
ZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyLmNsYXNzXSkKKyAgICAgICAgcmV0dXJuIFsoV0tEZWZl
cnJpbmdHZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmVSZWNvZ25pemVyIHNob3VsZERlZmVyR2Vz
dHVyZVJlY29nbml6ZXI6b3RoZXJHZXN0dXJlUmVjb2duaXplcl07CisKICAgICByZXR1cm4gTk87
CiB9CiAKQEAgLTQxNDMsNiArNDE4OSw5IEBAIC0gKHZvaWQpX2RpZFN0YXJ0UHJvdmlzaW9uYWxM
b2FkRm9yTWFpbkZyYW1lCiAgICAgLy8gYXJlIGVuYWJsZWQgd2hlbiBhIHNpbmdsZSB0YXAgaXMg
Zmlyc3QgcmVjb2duaXplZC4gVGhpcyBhdm9pZHMgdGVzdHMgcnVubmluZyBpbiBzZXF1ZW5jZSBh
bmQgc2ltdWxhdGluZyB0YXBzCiAgICAgLy8gaW4gdGhlIHNhbWUgbG9jYXRpb24gdG8gdHJpZ2dl
ciBkb3VibGUtdGFwIHJlY29nbml0aW9uLgogICAgIFtzZWxmIF9zZXREb3VibGVUYXBHZXN0dXJl
c0VuYWJsZWQ6Tk9dOworCisgICAgW190d29GaW5nZXJEb3VibGVUYXBHZXN0dXJlUmVjb2duaXpl
ciBzZXRFbmFibGVkOk5PXTsKKyAgICBbX3R3b0ZpbmdlckRvdWJsZVRhcEdlc3R1cmVSZWNvZ25p
emVyIHNldEVuYWJsZWQ6WUVTXTsKIH0KIAogLSAodm9pZClfZGlkQ29tbWl0TG9hZEZvck1haW5G
cmFtZQpAQCAtNjY4NSwyMiArNjczNCw0NSBAQCAtICh2b2lkKV9oaWRlQ29udGV4dE1lbnVIaW50
Q29udGFpbmVyCiAKICNwcmFnbWEgbWFyayAtIFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXJE
ZWxlZ2F0ZQogCi0tIChCT09MKWRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyOihXS0RlZmVycmlu
Z0dlc3R1cmVSZWNvZ25pemVyICopZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgc2hvdWxkRGVm
ZXJHZXN0dXJlc1dpdGhFdmVudDooVUlFdmVudCAqKWV2ZW50CistIChCT09MKWRlZmVycmluZ0dl
c3R1cmVSZWNvZ25pemVyOihXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyICopZGVmZXJyaW5n
R2VzdHVyZVJlY29nbml6ZXIgc2hvdWxkRGVmZXJHZXN0dXJlc0FmdGVyQmVnaW5uaW5nVG91Y2hl
c1dpdGhFdmVudDooVUlFdmVudCAqKWV2ZW50CiB7CiAgICAgcmV0dXJuICFbc2VsZiBnZXN0dXJl
UmVjb2duaXplcjpkZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciBpc0ludGVycnVwdGluZ01vbWVu
dHVtU2Nyb2xsaW5nV2l0aEV2ZW50OmV2ZW50XTsKIH0KIAorLSAoQk9PTClkZWZlcnJpbmdHZXN0
dXJlUmVjb2duaXplcjooV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciAqKWRlZmVycmluZ0dl
c3R1cmVSZWNvZ25pemVyIHNob3VsZERlZmVyR2VzdHVyZXNBZnRlckVuZGluZ1RvdWNoZXNXaXRo
RXZlbnQ6KFVJRXZlbnQgKilldmVudAoreworICAgIHJldHVybiBfcGFnZS0+aXNIYW5kbGluZ0Rl
ZmVycmVkVG91Y2hTdGFydCgpOworfQorCiAtIChCT09MKWRlZmVycmluZ0dlc3R1cmVSZWNvZ25p
emVyOihXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyICopZGVmZXJyaW5nR2VzdHVyZVJlY29n
bml6ZXIgc2hvdWxkRGVmZXJPdGhlckdlc3R1cmVSZWNvZ25pemVyOihVSUdlc3R1cmVSZWNvZ25p
emVyICopZ2VzdHVyZVJlY29nbml6ZXIKIHsKLSAgICBhdXRvIGlzTXVsdGlwbGVUYXBHZXN0dXJl
ID0gW10oVUlHZXN0dXJlUmVjb2duaXplciAqZ2VzdHVyZSkgewotICAgICAgICByZXR1cm4gW2dl
c3R1cmUgaXNLaW5kT2ZDbGFzczpVSVRhcEdlc3R1cmVSZWNvZ25pemVyLmNsYXNzXSAmJiBbKFVJ
VGFwR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlIG51bWJlck9mVGFwc1JlcXVpcmVkXSA+IDE7
CisgICAgYXV0byBpc09uZUZpbmdlck11bHRpcGxlVGFwR2VzdHVyZSA9IFtdKFVJR2VzdHVyZVJl
Y29nbml6ZXIgKmdlc3R1cmUpIHsKKyAgICAgICAgaWYgKCFbZ2VzdHVyZSBpc0tpbmRPZkNsYXNz
OlVJVGFwR2VzdHVyZVJlY29nbml6ZXIuY2xhc3NdKQorICAgICAgICAgICAgcmV0dXJuIE5POwor
CisgICAgICAgIFVJVGFwR2VzdHVyZVJlY29nbml6ZXIgKnRhcEdlc3R1cmUgPSAoVUlUYXBHZXN0
dXJlUmVjb2duaXplciAqKWdlc3R1cmU7CisgICAgICAgIHJldHVybiB0YXBHZXN0dXJlLm51bWJl
ck9mVGFwc1JlcXVpcmVkID4gMSAmJiB0YXBHZXN0dXJlLm51bWJlck9mVG91Y2hlc1JlcXVpcmVk
IDwgMjsKICAgICB9OwogCi0gICAgaWYgKGRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyID09IF9k
ZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplckZvckRlbGF5ZWRSZXNldHRhYmxlR2VzdHVyZXMpCi0g
ICAgICAgIHJldHVybiBnZXN0dXJlUmVjb2duaXplciAhPSBfdG91Y2hFdmVudEdlc3R1cmVSZWNv
Z25pemVyICYmIGlzTXVsdGlwbGVUYXBHZXN0dXJlKGdlc3R1cmVSZWNvZ25pemVyKTsKKyAgICBp
ZiAoZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgPT0gX2RlZmVycmluZ0dlc3R1cmVSZWNvZ25p
emVyRm9yRGVsYXllZFJlc2V0dGFibGVHZXN0dXJlcykgeworICAgICAgICBpZiAoW2dlc3R1cmVS
ZWNvZ25pemVyIGlzS2luZE9mQ2xhc3M6V0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplci5jbGFz
c10pCisgICAgICAgICAgICByZXR1cm4gTk87CisKKyAgICAgICAgaWYgKGdlc3R1cmVSZWNvZ25p
emVyID09IF90b3VjaEV2ZW50R2VzdHVyZVJlY29nbml6ZXIpCisgICAgICAgICAgICByZXR1cm4g
Tk87CisKKyAgICAgICAgcmV0dXJuIGlzT25lRmluZ2VyTXVsdGlwbGVUYXBHZXN0dXJlKGdlc3R1
cmVSZWNvZ25pemVyKTsKKyAgICB9CiAKLSAgICBpZiAoZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6
ZXIgPT0gX2RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyRm9ySW1tZWRpYXRlbHlSZXNldHRhYmxl
R2VzdHVyZXMpCi0gICAgICAgIHJldHVybiBnZXN0dXJlUmVjb2duaXplciAhPSBfdG91Y2hFdmVu
dEdlc3R1cmVSZWNvZ25pemVyICYmICFpc011bHRpcGxlVGFwR2VzdHVyZShnZXN0dXJlUmVjb2du
aXplcik7CisgICAgaWYgKGRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyID09IF9kZWZlcnJpbmdH
ZXN0dXJlUmVjb2duaXplckZvckltbWVkaWF0ZWx5UmVzZXR0YWJsZUdlc3R1cmVzKSB7CisgICAg
ICAgIGlmIChbZ2VzdHVyZVJlY29nbml6ZXIgaXNLaW5kT2ZDbGFzczpXS0RlZmVycmluZ0dlc3R1
cmVSZWNvZ25pemVyLmNsYXNzXSkKKyAgICAgICAgICAgIHJldHVybiBOTzsKKworICAgICAgICBp
ZiAoZ2VzdHVyZVJlY29nbml6ZXIgPT0gX3RvdWNoRXZlbnRHZXN0dXJlUmVjb2duaXplcikKKyAg
ICAgICAgICAgIHJldHVybiBOTzsKKworICAgICAgICByZXR1cm4gIWlzT25lRmluZ2VyTXVsdGlw
bGVUYXBHZXN0dXJlKGdlc3R1cmVSZWNvZ25pemVyKTsKKyAgICB9CiAKICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKICAgICByZXR1cm4gTk87CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplci5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIuaAppbmRleCBlNjg2
MmI2MzBjYjlhZTlmZWMwNWU0NDNmY2RhNDZiYWViNTQ3NzUzLi5hZjQ4MjM5MjZlMTlhOTMyMjJl
ODE2OWE5MTc1NjdmZjNiMTczMzM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplci5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyLmgKQEAgLTMyLDcgKzMy
LDggQEAKIEBjbGFzcyBXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyOwogCiBAcHJvdG9jb2wg
V0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplckRlbGVnYXRlCi0tIChCT09MKWRlZmVycmluZ0dl
c3R1cmVSZWNvZ25pemVyOihXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyICopZGVmZXJyaW5n
R2VzdHVyZVJlY29nbml6ZXIgc2hvdWxkRGVmZXJHZXN0dXJlc1dpdGhFdmVudDooVUlFdmVudCAq
KWV2ZW50OworLSAoQk9PTClkZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplcjooV0tEZWZlcnJpbmdH
ZXN0dXJlUmVjb2duaXplciAqKWRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyIHNob3VsZERlZmVy
R2VzdHVyZXNBZnRlckVuZGluZ1RvdWNoZXNXaXRoRXZlbnQ6KFVJRXZlbnQgKilldmVudDsKKy0g
KEJPT0wpZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXI6KFdLRGVmZXJyaW5nR2VzdHVyZVJlY29n
bml6ZXIgKilkZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciBzaG91bGREZWZlckdlc3R1cmVzQWZ0
ZXJCZWdpbm5pbmdUb3VjaGVzV2l0aEV2ZW50OihVSUV2ZW50ICopZXZlbnQ7CiAtIChCT09MKWRl
ZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyOihXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyICop
ZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgc2hvdWxkRGVmZXJPdGhlckdlc3R1cmVSZWNvZ25p
emVyOihVSUdlc3R1cmVSZWNvZ25pemVyICopZ2VzdHVyZVJlY29nbml6ZXI7CiBAZW5kCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0RlZmVycmluZ0dlc3R1cmVS
ZWNvZ25pemVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLRGVmZXJyaW5nR2Vz
dHVyZVJlY29nbml6ZXIubW0KaW5kZXggOWIzNzYwOTdhM2EwNDEyZWExZDk4M2Q5NGM2NzU4ZDYy
YmI0NjY3OS4uMTBhYzVhNzk3OTg4Njk0OGM5MjY1OWNjODI1NDViNmNkNzNjZjMzOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLRGVmZXJyaW5nR2VzdHVyZVJlY29n
bml6ZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLRGVmZXJyaW5nR2Vz
dHVyZVJlY29nbml6ZXIubW0KQEAgLTQ5LDEwICs0OSwyMyBAQCAtIChpZCA8V0tEZWZlcnJpbmdH
ZXN0dXJlUmVjb2duaXplckRlbGVnYXRlPilkZWZlcnJpbmdHZXN0dXJlRGVsZWdhdGUKIC0gKHZv
aWQpdG91Y2hlc0JlZ2FuOihOU1NldDxVSVRvdWNoICo+ICopdG91Y2hlcyB3aXRoRXZlbnQ6KFVJ
RXZlbnQgKilldmVudAogewogICAgIFtzdXBlciB0b3VjaGVzQmVnYW46dG91Y2hlcyB3aXRoRXZl
bnQ6ZXZlbnRdOwotICAgIGlmIChbX2RlZmVycmluZ0dlc3R1cmVEZWxlZ2F0ZSBkZWZlcnJpbmdH
ZXN0dXJlUmVjb2duaXplcjpzZWxmIHNob3VsZERlZmVyR2VzdHVyZXNXaXRoRXZlbnQ6ZXZlbnRd
KQotICAgICAgICBzZWxmLnN0YXRlID0gVUlHZXN0dXJlUmVjb2duaXplclN0YXRlUG9zc2libGU7
Ci0gICAgZWxzZQotICAgICAgICBzZWxmLnN0YXRlID0gVUlHZXN0dXJlUmVjb2duaXplclN0YXRl
RmFpbGVkOworICAgIGlmIChbX2RlZmVycmluZ0dlc3R1cmVEZWxlZ2F0ZSBkZWZlcnJpbmdHZXN0
dXJlUmVjb2duaXplcjpzZWxmIHNob3VsZERlZmVyR2VzdHVyZXNBZnRlckJlZ2lubmluZ1RvdWNo
ZXNXaXRoRXZlbnQ6ZXZlbnRdKQorICAgICAgICByZXR1cm47CisKKyAgICBzZWxmLnN0YXRlID0g
VUlHZXN0dXJlUmVjb2duaXplclN0YXRlRmFpbGVkOworfQorCistICh2b2lkKXRvdWNoZXNFbmRl
ZDooTlNTZXQ8VUlUb3VjaCAqPiAqKXRvdWNoZXMgd2l0aEV2ZW50OihVSUV2ZW50ICopZXZlbnQK
K3sKKyAgICBbc3VwZXIgdG91Y2hlc0VuZGVkOnRvdWNoZXMgd2l0aEV2ZW50OmV2ZW50XTsKKwor
ICAgIGlmIChzZWxmLnN0YXRlICE9IFVJR2VzdHVyZVJlY29nbml6ZXJTdGF0ZVBvc3NpYmxlKQor
ICAgICAgICByZXR1cm47CisKKyAgICBpZiAoW19kZWZlcnJpbmdHZXN0dXJlRGVsZWdhdGUgZGVm
ZXJyaW5nR2VzdHVyZVJlY29nbml6ZXI6c2VsZiBzaG91bGREZWZlckdlc3R1cmVzQWZ0ZXJFbmRp
bmdUb3VjaGVzV2l0aEV2ZW50OmV2ZW50XSkKKyAgICAgICAgcmV0dXJuOworCisgICAgc2VsZi5z
dGF0ZSA9IFVJR2VzdHVyZVJlY29nbml6ZXJTdGF0ZUZhaWxlZDsKIH0KIAogLSAodm9pZCl0b3Vj
aGVzQ2FuY2VsbGVkOihOU1NldDxVSVRvdWNoICo+ICopdG91Y2hlcyB3aXRoRXZlbnQ6KFVJRXZl
bnQgKilldmVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLU2Ny
b2xsVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS1Njcm9sbFZpZXcubW0K
aW5kZXggZDg0Y2RmYzljYzA3NjA2YzUwMWY2NDMwOTg3MjUyMzM5NTQ5YzEyNi4uOTAzNTdkZDk2
OWNjYWQ2YzZmNGZmYzZjY2UyYWMwNjJhMTgzZjcxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dLU2Nyb2xsVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV0tTY3JvbGxWaWV3Lm1tCkBAIC0zMCw2ICszMCw3IEBACiAKICNpbXBvcnQgIlVJ
S2l0U1BJLmgiCiAjaW1wb3J0ICJWZXJzaW9uQ2hlY2tzLmgiCisjaW1wb3J0ICJXS0RlZmVycmlu
Z0dlc3R1cmVSZWNvZ25pemVyLmgiCiAjaW1wb3J0ICJXS1dlYlZpZXdJbnRlcm5hbC5oIgogI2lt
cG9ydCA8cGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaD4KICNpbXBvcnQgPHd0Zi9XZWFrT2Jq
Q1B0ci5oPgpAQCAtMTg0LDYgKzE4NSwyMiBAQCAtIChpZCA8VUlTY3JvbGxWaWV3RGVsZWdhdGU+
KWRlbGVnYXRlCiAgICAgcmV0dXJuIF9leHRlcm5hbERlbGVnYXRlLmdldEF1dG9yZWxlYXNlZCgp
OwogfQogCistIChCT09MKWdlc3R1cmVSZWNvZ25pemVyOihVSUdlc3R1cmVSZWNvZ25pemVyICop
Z2VzdHVyZVJlY29nbml6ZXIgc2hvdWxkUmVxdWlyZUZhaWx1cmVPZkdlc3R1cmVSZWNvZ25pemVy
OihVSUdlc3R1cmVSZWNvZ25pemVyICopb3RoZXJHZXN0dXJlUmVjb2duaXplcgoreworICAgIGlm
IChbb3RoZXJHZXN0dXJlUmVjb2duaXplciBpc0tpbmRPZkNsYXNzOldLRGVmZXJyaW5nR2VzdHVy
ZVJlY29nbml6ZXIuY2xhc3NdKQorICAgICAgICByZXR1cm4gWyhXS0RlZmVycmluZ0dlc3R1cmVS
ZWNvZ25pemVyICopb3RoZXJHZXN0dXJlUmVjb2duaXplciBzaG91bGREZWZlckdlc3R1cmVSZWNv
Z25pemVyOmdlc3R1cmVSZWNvZ25pemVyXTsKKworICAgIHJldHVybiBOTzsKK30KKworLSAoQk9P
TClnZXN0dXJlUmVjb2duaXplcjooVUlHZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmVSZWNvZ25p
emVyIHNob3VsZEJlUmVxdWlyZWRUb0ZhaWxCeUdlc3R1cmVSZWNvZ25pemVyOihVSUdlc3R1cmVS
ZWNvZ25pemVyICopb3RoZXJHZXN0dXJlUmVjb2duaXplcgoreworICAgIGlmIChbZ2VzdHVyZVJl
Y29nbml6ZXIgaXNLaW5kT2ZDbGFzczpXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyLmNsYXNz
XSkKKyAgICAgICAgcmV0dXJuIFsoV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciAqKWdlc3R1
cmVSZWNvZ25pemVyIHNob3VsZERlZmVyR2VzdHVyZVJlY29nbml6ZXI6b3RoZXJHZXN0dXJlUmVj
b2duaXplcl07CisKKyAgICByZXR1cm4gTk87Cit9CisKIC0gKHZvaWQpX3VwZGF0ZURlbGVnYXRl
CiB7CiAgICAgV0tTY3JvbGxWaWV3RGVsZWdhdGVGb3J3YXJkZXIgKm9sZEZvcndhcmRlciA9IF9k
ZWxlZ2F0ZUZvcndhcmRlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9FdmVudERpc3BhdGNoZXIuY3BwCmluZGV4IDY4MDdlZDUyOTI1MTc4ZDZmOWMyM2U0MDg1
MWU0YWY0MTg2YjFiM2YuLjM4MWE2MzJiZDY2MDk3ODYxMDQ1NDlmMDAzNDY0ZmFmNTg3MTBmMzQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0
Y2hlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNw
YXRjaGVyLmNwcApAQCAtMTU4LDEzICsxNTgsNyBAQCB2b2lkIEV2ZW50RGlzcGF0Y2hlcjo6Y2xl
YXJRdWV1ZWRUb3VjaEV2ZW50c0ZvclBhZ2UoY29uc3QgV2ViUGFnZSYgd2ViUGFnZSkKICAgICBt
X3RvdWNoRXZlbnRzLnJlbW92ZSh3ZWJQYWdlLmlkZW50aWZpZXIoKSk7CiB9CiAKLXZvaWQgRXZl
bnREaXNwYXRjaGVyOjpnZXRRdWV1ZWRUb3VjaEV2ZW50c0ZvclBhZ2UoY29uc3QgV2ViUGFnZSYg
d2ViUGFnZSwgVG91Y2hFdmVudFF1ZXVlJiBkZXN0aW5hdGlvblF1ZXVlKQotewotICAgIExvY2tI
b2xkZXIgbG9ja2VyKCZtX3RvdWNoRXZlbnRzTG9jayk7Ci0gICAgZGVzdGluYXRpb25RdWV1ZSA9
IG1fdG91Y2hFdmVudHMudGFrZSh3ZWJQYWdlLmlkZW50aWZpZXIoKSk7Ci19Ci0KLXZvaWQgRXZl
bnREaXNwYXRjaGVyOjp0b3VjaEV2ZW50KFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgY29uc3QgV2Vi
S2l0OjpXZWJUb3VjaEV2ZW50JiB0b3VjaEV2ZW50KQordm9pZCBFdmVudERpc3BhdGNoZXI6OnRv
dWNoRXZlbnQoUGFnZUlkZW50aWZpZXIgcGFnZUlELCBjb25zdCBXZWJLaXQ6OldlYlRvdWNoRXZl
bnQmIHRvdWNoRXZlbnQsIE9wdGlvbmFsPENhbGxiYWNrSUQ+IGNhbGxiYWNrSUQpCiB7CiAgICAg
Ym9vbCB1cGRhdGVMaXN0V2FzRW1wdHk7CiAgICAgewpAQCAtMTcyLDE3ICsxNjYsMTYgQEAgdm9p
ZCBFdmVudERpc3BhdGNoZXI6OnRvdWNoRXZlbnQoUGFnZUlkZW50aWZpZXIgcGFnZUlELCBjb25z
dCBXZWJLaXQ6OldlYlRvdWNoRXYKICAgICAgICAgdXBkYXRlTGlzdFdhc0VtcHR5ID0gbV90b3Vj
aEV2ZW50cy5pc0VtcHR5KCk7CiAgICAgICAgIGF1dG8gYWRkUmVzdWx0ID0gbV90b3VjaEV2ZW50
cy5hZGQocGFnZUlELCBUb3VjaEV2ZW50UXVldWUoKSk7CiAgICAgICAgIGlmIChhZGRSZXN1bHQu
aXNOZXdFbnRyeSkKLSAgICAgICAgICAgIGFkZFJlc3VsdC5pdGVyYXRvci0+dmFsdWUuYXBwZW5k
KHRvdWNoRXZlbnQpOworICAgICAgICAgICAgYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZS5hcHBl
bmQoeyB0b3VjaEV2ZW50LCBjYWxsYmFja0lEIH0pOwogICAgICAgICBlbHNlIHsKLSAgICAgICAg
ICAgIFRvdWNoRXZlbnRRdWV1ZSYgcXVldWVkRXZlbnRzID0gYWRkUmVzdWx0Lml0ZXJhdG9yLT52
YWx1ZTsKKyAgICAgICAgICAgIGF1dG8mIHF1ZXVlZEV2ZW50cyA9IGFkZFJlc3VsdC5pdGVyYXRv
ci0+dmFsdWU7CiAgICAgICAgICAgICBBU1NFUlQoIXF1ZXVlZEV2ZW50cy5pc0VtcHR5KCkpOwot
ICAgICAgICAgICAgY29uc3QgV2ViVG91Y2hFdmVudCYgbGFzdFRvdWNoRXZlbnQgPSBxdWV1ZWRF
dmVudHMubGFzdCgpOwotCisgICAgICAgICAgICBhdXRvJiBsYXN0RXZlbnRBbmRDYWxsYmFjayA9
IHF1ZXVlZEV2ZW50cy5sYXN0KCk7CiAgICAgICAgICAgICAvLyBDb2FsZXNjZSB0b3VjaCBtb3Zl
IGV2ZW50cy4KLSAgICAgICAgICAgIGlmICh0b3VjaEV2ZW50LnR5cGUoKSA9PSBXZWJFdmVudDo6
VG91Y2hNb3ZlICYmIGxhc3RUb3VjaEV2ZW50LnR5cGUoKSA9PSBXZWJFdmVudDo6VG91Y2hNb3Zl
KQotICAgICAgICAgICAgICAgIHF1ZXVlZEV2ZW50cy5sYXN0KCkgPSB0b3VjaEV2ZW50OworICAg
ICAgICAgICAgaWYgKHRvdWNoRXZlbnQudHlwZSgpID09IFdlYkV2ZW50OjpUb3VjaE1vdmUgJiYg
bGFzdEV2ZW50QW5kQ2FsbGJhY2suZmlyc3QudHlwZSgpID09IFdlYkV2ZW50OjpUb3VjaE1vdmUg
JiYgIWNhbGxiYWNrSUQgJiYgIWxhc3RFdmVudEFuZENhbGxiYWNrLnNlY29uZCkKKyAgICAgICAg
ICAgICAgICBxdWV1ZWRFdmVudHMubGFzdCgpID0geyB0b3VjaEV2ZW50LCBXVEY6Om51bGxvcHQg
fTsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBxdWV1ZWRFdmVudHMuYXBwZW5k
KHRvdWNoRXZlbnQpOworICAgICAgICAgICAgICAgIHF1ZXVlZEV2ZW50cy5hcHBlbmQoeyB0b3Vj
aEV2ZW50LCBjYWxsYmFja0lEIH0pOwogICAgICAgICB9CiAgICAgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5oCmluZGV4IGUxYmJi
ZDQ3OTY5YmZiYjc1MmM2MWQyMWM2MWEyOWVlZmFkOTYyZjIuLmM4NWM4NjA4ODQ3YWNjZDgzMGU2
MzQyZDQwZjUzZmY5NzEzMTAwYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5oCkBAIC0yNiw4ICsyNiw4IEBACiAjaWZuZGVmIEV2
ZW50RGlzcGF0Y2hlcl9oCiAjZGVmaW5lIEV2ZW50RGlzcGF0Y2hlcl9oCiAKKyNpbmNsdWRlICJD
YWxsYmFja0lELmgiCiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgotCiAjaW5jbHVkZSAiV2ViRXZl
bnQuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9XaGVlbEV2ZW50RGVsdGFGaWx0ZXIuaD4KQEAgLTQ4LDcgKzQ4LDYgQEAgY2xhc3MgVGhy
ZWFkZWRTY3JvbGxpbmdUcmVlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgV2ViRXZl
bnQ7CiBjbGFzcyBXZWJQYWdlOwogY2xhc3MgV2ViV2hlZWxFdmVudDsKIApAQCAtNjMsMTAgKzYy
LDkgQEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKLSAg
ICB0eXBlZGVmIFZlY3RvcjxXZWJUb3VjaEV2ZW50LCAxPiBUb3VjaEV2ZW50UXVldWU7CisgICAg
dXNpbmcgVG91Y2hFdmVudFF1ZXVlID0gVmVjdG9yPHN0ZDo6cGFpcjxXZWJUb3VjaEV2ZW50LCBP
cHRpb25hbDxDYWxsYmFja0lEPj4sIDE+OwogCiAgICAgdm9pZCBjbGVhclF1ZXVlZFRvdWNoRXZl
bnRzRm9yUGFnZShjb25zdCBXZWJQYWdlJik7Ci0gICAgdm9pZCBnZXRRdWV1ZWRUb3VjaEV2ZW50
c0ZvclBhZ2UoY29uc3QgV2ViUGFnZSYsIFRvdWNoRXZlbnRRdWV1ZSYpOwogI2VuZGlmCiAKICAg
ICB2b2lkIGluaXRpYWxpemVDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbiopOwpAQCAtODAsNyAr
NzgsNyBAQCBwcml2YXRlOgogICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMKICAgICB2b2lkIHdoZWVs
RXZlbnQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIGNvbnN0IFdlYldoZWVsRXZlbnQmLCBib29s
IGNhblJ1YmJlckJhbmRBdExlZnQsIGJvb2wgY2FuUnViYmVyQmFuZEF0UmlnaHQsIGJvb2wgY2Fu
UnViYmVyQmFuZEF0VG9wLCBib29sIGNhblJ1YmJlckJhbmRBdEJvdHRvbSk7CiAjaWYgRU5BQkxF
KElPU19UT1VDSF9FVkVOVFMpCi0gICAgdm9pZCB0b3VjaEV2ZW50KFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyLCBjb25zdCBXZWJUb3VjaEV2ZW50Jik7CisgICAgdm9pZCB0b3VjaEV2ZW50KFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyLCBjb25zdCBXZWJUb3VjaEV2ZW50JiwgT3B0aW9uYWw8Q2FsbGJh
Y2tJRD4pOwogI2VuZGlmCiAjaWYgRU5BQkxFKE1BQ19HRVNUVVJFX0VWRU5UUykKICAgICB2b2lk
IGdlc3R1cmVFdmVudChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgY29uc3QgV2ViR2VzdHVyZUV2
ZW50Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVu
dERpc3BhdGNoZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9FdmVudERpc3BhdGNoZXIubWVzc2FnZXMuaW4KaW5kZXggYWY5MDRiNDUxNmExMDk4MDg1NGMx
YTM0NGU2MTIyY2ZkNzE2NGI4NC4uNjkzN2QwZGMyOWM0YzMyMmI5YmU1ODQyYWYyNzYyMGM4MzA0
MDdlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnRE
aXNwYXRjaGVyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0V2ZW50RGlzcGF0Y2hlci5tZXNzYWdlcy5pbgpAQCAtMjMsNyArMjMsNyBAQAogbWVzc2Fn
ZXMgLT4gRXZlbnREaXNwYXRjaGVyIHsKICAgICBXaGVlbEV2ZW50KFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyIHBhZ2VJRCwgV2ViS2l0OjpXZWJXaGVlbEV2ZW50IGV2ZW50LCBib29sIGNhblJ1YmJl
ckJhbmRBdExlZnQsIGJvb2wgY2FuUnViYmVyQmFuZEF0UmlnaHQsIGJvb2wgY2FuUnViYmVyQmFu
ZEF0VG9wLCBib29sIGNhblJ1YmJlckJhbmRBdEJvdHRvbSkKICNpZiBFTkFCTEUoSU9TX1RPVUNI
X0VWRU5UUykKLSAgICBUb3VjaEV2ZW50KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwg
V2ViS2l0OjpXZWJUb3VjaEV2ZW50IGV2ZW50KQorICAgIFRvdWNoRXZlbnQoV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIgcGFnZUlELCBXZWJLaXQ6OldlYlRvdWNoRXZlbnQgZXZlbnQsIE9wdGlvbmFs
PFdlYktpdDo6Q2FsbGJhY2tJRD4gY2FsbGJhY2tJRCkKICNlbmRpZgogI2lmIEVOQUJMRShNQUNf
R0VTVFVSRV9FVkVOVFMpCiAgICAgR2VzdHVyZUV2ZW50KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
IHBhZ2VJRCwgV2ViS2l0OjpXZWJHZXN0dXJlRXZlbnQgZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDM1Y2RmNDkzNzJhNDFkMzk4NDRh
MTljNGRlNzJmMGM5MDYzZmUxZGYuLjQxZDdkNTVlYTljMjU0M2FiNjE3YmM3YzBlMjRlNzQyZGQ4
OWQxNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CkBAIC0yODYwLDExICsyODYwLDYgQEAgdm9pZCBXZWJQYWdlOjpyZXF1ZXN0Rm9udEF0dHJpYnV0
ZXNBdFNlbGVjdGlvblN0YXJ0KENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKIAogdm9pZCBXZWJQYWdl
OjpjYW5jZWxHZXN0dXJlc0Jsb2NrZWRPblN5bmNocm9ub3VzUmVwbGllcygpCiB7Ci0jaWYgRU5B
QkxFKElPU19UT1VDSF9FVkVOVFMpCi0gICAgaWYgKGF1dG8gcmVwbHkgPSBXVEZNb3ZlKG1fcGVu
ZGluZ1N5bmNocm9ub3VzVG91Y2hFdmVudFJlcGx5KSkKLSAgICAgICAgcmVwbHkodHJ1ZSk7Ci0j
ZW5kaWYKLQogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgaWYgKGF1dG8gcmVwbHkgPSBX
VEZNb3ZlKG1fcGVuZGluZ1N5bmNocm9ub3VzUG9zaXRpb25JbmZvcm1hdGlvblJlcGx5KSkKICAg
ICAgICAgcmVwbHkoSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb246OmludmFsaWRJbmZv
cm1hdGlvbigpKTsKQEAgLTI4OTEsMjcgKzI4ODYsNiBAQCB2b2lkIFdlYlBhZ2U6OmRpc3BhdGNo
VG91Y2hFdmVudChjb25zdCBXZWJUb3VjaEV2ZW50JiB0b3VjaEV2ZW50LCBib29sJiBoYW5kbGVk
KQogICAgIHVwZGF0ZVBvdGVudGlhbFRhcFNlY3VyaXR5T3JpZ2luKHRvdWNoRXZlbnQsIGhhbmRs
ZWQpOwogfQogCi12b2lkIFdlYlBhZ2U6OnRvdWNoRXZlbnRTeW5jKGNvbnN0IFdlYlRvdWNoRXZl
bnQmIHRvdWNoRXZlbnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgcmVwbHkpCi17
Ci0gICAgLy8gQXZvaWQgVUlQcm9jZXNzIGhhbmdzIHdoZW4gdGhlIFdlYkNvbnRlbnQgcHJvY2Vz
cyBpcyBzdHVjayBvbiBhIHN5bmMgSVBDLgotICAgIGlmIChJUEM6OlVuYm91bmRlZFN5bmNocm9u
b3VzSVBDU2NvcGU6Omhhc09uZ29pbmdVbmJvdW5kZWRTeW5jSVBDKCkpIHsKLSAgICAgICAgUkVM
RUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChQcm9jZXNzLCAidG91Y2hFdmVudFN5bmMgLSBOb3Qg
cHJvY2Vzc2luZyBiZWNhdXNlIHRoZSBwcm9jZXNzIGlzIHN0dWNrIG9uIHVuYm91bmRlZCBzeW5j
IElQQyIpOwotICAgICAgICByZXR1cm4gcmVwbHkodHJ1ZSk7Ci0gICAgfQotCi0gICAgbV9wZW5k
aW5nU3luY2hyb25vdXNUb3VjaEV2ZW50UmVwbHkgPSBXVEZNb3ZlKHJlcGx5KTsKLQotICAgIEV2
ZW50RGlzcGF0Y2hlcjo6VG91Y2hFdmVudFF1ZXVlIHF1ZXVlZEV2ZW50czsKLSAgICBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5ldmVudERpc3BhdGNoZXIoKS5nZXRRdWV1ZWRUb3VjaEV2ZW50c0Zv
clBhZ2UoKnRoaXMsIHF1ZXVlZEV2ZW50cyk7Ci0gICAgZGlzcGF0Y2hBc3luY2hyb25vdXNUb3Vj
aEV2ZW50cyhxdWV1ZWRFdmVudHMpOwotCi0gICAgYm9vbCBoYW5kbGVkID0gdHJ1ZTsKLSAgICBk
aXNwYXRjaFRvdWNoRXZlbnQodG91Y2hFdmVudCwgaGFuZGxlZCk7Ci0KLSAgICBpZiAoYXV0byBy
ZXBseSA9IFdURk1vdmUobV9wZW5kaW5nU3luY2hyb25vdXNUb3VjaEV2ZW50UmVwbHkpKQotICAg
ICAgICByZXBseShoYW5kbGVkKTsKLX0KLQogdm9pZCBXZWJQYWdlOjpyZXNldFBvdGVudGlhbFRh
cFNlY3VyaXR5T3JpZ2luKCkKIHsKICAgICBtX3BvdGVudGlhbFRhcFNlY3VyaXR5T3JpZ2luID0g
bnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRl
eCA2OTgzOGIwMjJhZjY5ODBkMWMzM2I5N2UzNzI5YWNmNWI3NmM5ZWQzLi4xZmY4ZWNmOWVjYzQ1
NGM5ZjY2ZWYwZmMwZTY3NmI2MGM1YTQ4N2RlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC03MTcsNyArNzE3LDcgQEAgcHVibGljOgogI2VuZGlmCiAK
ICNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKLSAg
ICB2b2lkIGRpc3BhdGNoQXN5bmNocm9ub3VzVG91Y2hFdmVudHMoY29uc3QgVmVjdG9yPFdlYlRv
dWNoRXZlbnQsIDE+JiBxdWV1ZSk7CisgICAgdm9pZCBkaXNwYXRjaEFzeW5jaHJvbm91c1RvdWNo
RXZlbnRzKGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8V2ViVG91Y2hFdmVudCwgT3B0aW9uYWw8Q2Fs
bGJhY2tJRD4+LCAxPiYgcXVldWUpOwogI2VuZGlmCiAKICAgICBib29sIGhhc1JpY2hseUVkaXRh
YmxlU2VsZWN0aW9uKCkgY29uc3Q7CkBAIC0xMzY4LDcgKzEzNjgsNiBAQCBwcml2YXRlOgogICAg
IHZvaWQga2V5RXZlbnQoY29uc3QgV2ViS2V5Ym9hcmRFdmVudCYpOwogCiAjaWYgRU5BQkxFKElP
U19UT1VDSF9FVkVOVFMpCi0gICAgdm9pZCB0b3VjaEV2ZW50U3luYyhjb25zdCBXZWJUb3VjaEV2
ZW50JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAgICAgdm9pZCByZXNldFBv
dGVudGlhbFRhcFNlY3VyaXR5T3JpZ2luKCk7CiAgICAgdm9pZCB1cGRhdGVQb3RlbnRpYWxUYXBT
ZWN1cml0eU9yaWdpbihjb25zdCBXZWJUb3VjaEV2ZW50JiwgYm9vbCB3YXNIYW5kbGVkKTsKICNl
bGlmIEVOQUJMRShUT1VDSF9FVkVOVFMpCkBAIC0xODY3LDEwICsxODY2LDYgQEAgcHJpdmF0ZToK
ICAgICBib29sIG1faGFzUGVuZGluZ0lucHV0Q29udGV4dFVwZGF0ZUFmdGVyQmx1cnJpbmdBbmRS
ZWZvY3VzaW5nRWxlbWVudCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2hhc1BlbmRpbmdFZGl0b3JT
dGF0ZVVwZGF0ZSB7IGZhbHNlIH07CiAKLSNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKLSAg
ICBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiBtX3BlbmRpbmdTeW5jaHJvbm91c1RvdWNo
RXZlbnRSZXBseTsKLSNlbmRpZgotICAgIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAg
UmVmUHRyPFdlYkNvcmU6OlJhbmdlPiBtX2N1cnJlbnRXb3JkUmFuZ2U7CiAgICAgUmVmUHRyPFdl
YkNvcmU6Ok5vZGU+IG1faW50ZXJhY3Rpb25Ob2RlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggM2U4OTFmODE1MTBm
YzM0OGU0ZTljMjMwMDBjMjRhNjg1Yzg3OGQ5NS4uNzBhMGFlZmY0YjljMmI5YmYyMjNiZmE1ODhi
MjA5YmNmYWVjYzU3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC0xMzAsNyArMTMwLDYgQEAgR2VuZXJhdGVTeW50
aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0aW5n
Q29tbWFuZFR5cGUKIAogI2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQogICAgIFJlc2V0UG90
ZW50aWFsVGFwU2VjdXJpdHlPcmlnaW4oKQotICAgIFRvdWNoRXZlbnRTeW5jKFdlYktpdDo6V2Vi
VG91Y2hFdmVudCBldmVudCkgLT4gKGJvb2wgaGFuZGxlZCkgU3luY2hyb25vdXMKICNlbmRpZgog
I2lmICFFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykgJiYgRU5BQkxFKFRPVUNIX0VWRU5UUykKICAg
ICBUb3VjaEV2ZW50KFdlYktpdDo6V2ViVG91Y2hFdmVudCBldmVudCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggMzQ2ODU2
YmI1MWEzMDQyYmY5ZWQ2MzNmZTRjOWRhOTQxZGM2MGRiNC4uNzU3NmI2MGIwYjI2MWI3YjAwMzVi
YTVjY2U3YTVkNTVjODMyY2E0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAgLTM3NDIsMTEgKzM3NDIsMTQgQEAgdm9pZCBX
ZWJQYWdlOjp3aWxsU3RhcnRVc2VyVHJpZ2dlcmVkWm9vbWluZygpCiB9CiAKICNpZiBFTkFCTEUo
SU9TX1RPVUNIX0VWRU5UUykKLXZvaWQgV2ViUGFnZTo6ZGlzcGF0Y2hBc3luY2hyb25vdXNUb3Vj
aEV2ZW50cyhjb25zdCBWZWN0b3I8V2ViVG91Y2hFdmVudCwgMT4mIHF1ZXVlKQordm9pZCBXZWJQ
YWdlOjpkaXNwYXRjaEFzeW5jaHJvbm91c1RvdWNoRXZlbnRzKGNvbnN0IFZlY3RvcjxzdGQ6OnBh
aXI8V2ViVG91Y2hFdmVudCwgT3B0aW9uYWw8Q2FsbGJhY2tJRD4+LCAxPiYgcXVldWUpCiB7Ci0g
ICAgYm9vbCBpZ25vcmVkOwotICAgIGZvciAoY29uc3QgV2ViVG91Y2hFdmVudCYgZXZlbnQgOiBx
dWV1ZSkKLSAgICAgICAgZGlzcGF0Y2hUb3VjaEV2ZW50KGV2ZW50LCBpZ25vcmVkKTsKKyAgICBm
b3IgKGF1dG8mIGV2ZW50QW5kQ2FsbGJhY2tJRCA6IHF1ZXVlKSB7CisgICAgICAgIGJvb2wgaGFu
ZGxlZDsKKyAgICAgICAgZGlzcGF0Y2hUb3VjaEV2ZW50KGV2ZW50QW5kQ2FsbGJhY2tJRC5maXJz
dCwgaGFuZGxlZCk7CisgICAgICAgIGlmIChldmVudEFuZENhbGxiYWNrSUQuc2Vjb25kKQorICAg
ICAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpCb29sQ2FsbGJhY2soaGFuZGxl
ZCwgKmV2ZW50QW5kQ2FsbGJhY2tJRC5zZWNvbmQpKTsKKyAgICB9CiB9CiAjZW5kaWYKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IGQzYTRmNzExNThiOGU5ZjRmMjI0NjViMjQ3ZmY3YzMyZGViNzgzMTcuLjA0ZjZhNDgzZmI5
MDU3ZWNkYjZlY2IyN2ZjMzg2OTM2OGIxMTNjOTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNiBAQAorMjAx
OS0xMi0wNSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAg
ICBbaU9TXSBXS1dlYlZpZXcgdG91Y2ggZXZlbnQgZ2VzdHVyZSByZWNvZ25pdGlvbiBzaG91bGQg
bm90IGJsb2NrIHRoZSBhcHBsaWNhdGlvbiBwcm9jZXNzIG1haW4gdGhyZWFkCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ2NjQKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzM4NjcwNjkyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvaW9zL3ByZXZlbnQtZGVmYXVsdC1v
bi10b3VjaC1zdGFydC13aXRoLXNsb3ctZXZlbnQtbGlzdGVuZXItZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9pb3MvcHJldmVudC1kZWZhdWx0LW9uLXRv
dWNoLXN0YXJ0LXdpdGgtc2xvdy1ldmVudC1saXN0ZW5lci5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2V2ZW50cy90b3VjaC9pb3Mvc2Nyb2xsLW9uLXRvdWNoLXN0YXJ0LXdpdGgtc2xvdy1l
dmVudC1saXN0ZW5lci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRz
L3RvdWNoL2lvcy9zY3JvbGwtb24tdG91Y2gtc3RhcnQtd2l0aC1zbG93LWV2ZW50LWxpc3RlbmVy
Lmh0bWw6IEFkZGVkLgorCisgICAgICAgIEFkZCBuZXcgbGF5b3V0IHRlc3RzIHRvIGNvdmVyIGJl
aGF2aW9ycyB3aGVuIHBhbm5pbmcgb3ZlciBhY3RpdmUgdG91Y2hzdGFydCBoYW5kbGVycyB0aGF0
IHNwaW4gZm9yIGFuIGV4dGVuZGVkCisgICAgICAgIGxlbmd0aCBvZiB0aW1lIChpbiB0aGlzIGNh
c2UsIDQwMCBtaWxsaXNlY29uZHMpIGluIG92ZXJmbG93IHNjcm9sbGluZyBjb250YWluZXJzLiBB
IHRvdWNoc3RhcnQgaGFuZGxlciB0aGF0CisgICAgICAgIHByZXZlbnRzIGRlZmF1bHQgc2hvdWxk
IHN0aWxsIGJsb2NrIHNjcm9sbGluZywgYW5kIGEgdG91Y2hzdGFydCBoYW5kbGVyIHRoYXQgZG9l
cyBub3Qgc2hvdWxkIHN0aWxsIGFsbG93IHRoZQorICAgICAgICB1c2VyIHRvIHNjcm9sbC4KKwor
ICAgICAgICAqIHJlc291cmNlcy91aS1oZWxwZXIuanM6CisgICAgICAgICh3aW5kb3cuVUlIZWxw
ZXIuc2VuZEV2ZW50U3RyZWFtLnJldHVybi5uZXcuUHJvbWlzZSk6CisgICAgICAgICh3aW5kb3cu
VUlIZWxwZXIuc2VuZEV2ZW50U3RyZWFtKToKKworICAgICAgICBBZGQgYSBuZXcgVUlIZWxwZXIg
bWV0aG9kIHRvIHNlbmQgYSBKU09OIG9iamVjdCBhcyBhbiBldmVudCBzdHJlYW0uCisKKyAgICAg
ICAgKFVJSGVscGVyLkV2ZW50U3RyZWFtQnVpbGRlci5wcm90b3R5cGUuX3Jlc2V0KToKKyAgICAg
ICAgKFVJSGVscGVyLkV2ZW50U3RyZWFtQnVpbGRlci5wcm90b3R5cGUuYmVnaW4pOgorICAgICAg
ICAoVUlIZWxwZXIuRXZlbnRTdHJlYW1CdWlsZGVyLnByb3RvdHlwZS5tb3ZlKToKKyAgICAgICAg
KFVJSGVscGVyLkV2ZW50U3RyZWFtQnVpbGRlci5wcm90b3R5cGUuZW5kKToKKyAgICAgICAgKFVJ
SGVscGVyLkV2ZW50U3RyZWFtQnVpbGRlci5wcm90b3R5cGUudGFrZVJlc3VsdCk6CisKKyAgICAg
ICAgQWRkIGEgbmV3IGhlbHBlciBjbGFzcyB0byBtYWtlIGl0IGVhc2llciB0byBjb25zdHJ1Y3Qg
ZXZlbnQgc3RyZWFtcywgZm9yIHRoZSBwdXJwb3NlcyBvZiBzZW5kaW5nIHRvCisgICAgICAgIFVJ
U2NyaXB0Q29udHJvbGxlcjo6c2VuZEV2ZW50U3RyZWFtLgorCiAyMDE5LTEyLTA1ICBZdXJ5IFNl
bWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6
IEF2b2lkIHVzaW5nIFJ1bnRpbWUuZXhlY3V0aW9uQ29udGV4dENyZWF0ZWQgdG8gZmlndXJlIG91
dCB0aGUgaWZyYW1lJ3MgY29udGVudERvY3VtZW50IG5vZGUuCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvcHJldmVudC1kZWZhdWx0LW9uLXRvdWNoLXN0YXJ0
LXdpdGgtc2xvdy1ldmVudC1saXN0ZW5lci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy90b3VjaC9pb3MvcHJldmVudC1kZWZhdWx0LW9uLXRvdWNoLXN0YXJ0LXdpdGgtc2xv
dy1ldmVudC1saXN0ZW5lci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmQ2Zjg3ZGY5YTU2OTg1
OTJlZTgwN2M3ZGQ1YjM2NzZhNWRmMzdiNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9wcmV2ZW50LWRlZmF1bHQtb24tdG91Y2gtc3RhcnQtd2l0
aC1zbG93LWV2ZW50LWxpc3RlbmVyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitWZXJp
ZmllcyB0aGF0IGNhbGxpbmcgcHJldmVudERlZmF1bHQoKSBvbiB0b3VjaHN0YXJ0IHByZXZlbnRz
IHNjcm9sbGluZyB3aGVuIHRoZSB0b3VjaCBldmVudCBoYW5kbGVyIGlzIHVucmVzcG9uc2l2ZSBm
b3IgYW4gZXh0ZW5kZWQgZHVyYXRpb24uIFRvIG1hbnVhbGx5IHRlc3QsIGF0dGVtcHQgdG8gc2Ny
b2xsIHRoZSBib3g7IGNoZWNrIHRoYXQgdG91Y2hzdGFydCBhbmQgdG91Y2hlbmQgZXZlbnRzIHdl
cmUgaGFuZGxlZCwgYW5kIHRoYXQgdGhlIGJveCBkaWQgbm90IHNjcm9sbC4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCitQQVNTIE9ic2VydmVkIHRvdWNoc3RhcnQgZXZlbnQKK1BBU1Mg
T2JzZXJ2ZWQgdG91Y2hlbmQgZXZlbnQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90
b3VjaC9pb3MvcHJldmVudC1kZWZhdWx0LW9uLXRvdWNoLXN0YXJ0LXdpdGgtc2xvdy1ldmVudC1s
aXN0ZW5lci5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3ByZXZlbnQt
ZGVmYXVsdC1vbi10b3VjaC1zdGFydC13aXRoLXNsb3ctZXZlbnQtbGlzdGVuZXIuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5jY2I5ZWY4MGY5MjFlMzZmY2JjMzk2NDNmMWZkZDRiMWZlYWRhMGVkCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3ByZXZlbnQtZGVm
YXVsdC1vbi10b3VjaC1zdGFydC13aXRoLXNsb3ctZXZlbnQtbGlzdGVuZXIuaHRtbApAQCAtMCww
ICsxLDc0IEBACis8IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VG
bGV4aWJsZVZpZXdwb3J0PXRydWUgaW50ZXJuYWw6QXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJs
ZWQ9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lk
dGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHVzZXItc2NhbGFibGU9bm8iPgorPGhl
YWQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBl
ci5qcyI+PC9zY3JpcHQ+CisgICAgPHN0eWxlPgorICAgIGh0bWwsIGJvZHkgeworICAgICAgICB3
aWR0aDogMTAwJTsKKyAgICAgICAgaGVpZ2h0OiAxMDAlOworICAgICAgICBtYXJnaW46IDA7Cisg
ICAgfQorCisgICAgI3Njcm9sbGVyIHsKKyAgICAgICAgb3ZlcmZsb3c6IHNjcm9sbDsKKyAgICAg
ICAgd2lkdGg6IDIwMHB4OworICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAgICAgICBib3JkZXI6
IDJweCBzb2xpZCBibGFjazsKKyAgICB9CisKKyAgICAjY29udGVudCB7CisgICAgICAgIHdpZHRo
OiAxMDAlOworICAgICAgICBoZWlnaHQ6IDEwMDBweDsKKyAgICB9CisgICAgPC9zdHlsZT4KKyAg
ICA8c2NyaXB0PgorICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgICAgICBhc3lu
YyBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICAgICAgZGVzY3JpcHRpb24oIlZlcmlmaWVz
IHRoYXQgY2FsbGluZyBwcmV2ZW50RGVmYXVsdCgpIG9uIHRvdWNoc3RhcnQgcHJldmVudHMgc2Ny
b2xsaW5nIHdoZW4gdGhlIHRvdWNoIGV2ZW50IGhhbmRsZXIgaXMgdW5yZXNwb25zaXZlIGZvciBh
biBleHRlbmRlZCBkdXJhdGlvbi4gVG8gbWFudWFsbHkgdGVzdCwgYXR0ZW1wdCB0byBzY3JvbGwg
dGhlIGJveDsgY2hlY2sgdGhhdCB0b3VjaHN0YXJ0IGFuZCB0b3VjaGVuZCBldmVudHMgd2VyZSBo
YW5kbGVkLCBhbmQgdGhhdCB0aGUgYm94IGRpZCBub3Qgc2Nyb2xsLiIpOworCisgICAgICAgICAg
ICBjb25zdCBzY3JvbGxlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzY3JvbGxlciIpOwor
CisgICAgICAgICAgICBzY3JvbGxlci5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IiwgZXZl
bnQgPT4geworICAgICAgICAgICAgICAgIGNvbnN0IHN0YXJ0VGltZSA9IERhdGUubm93KCk7Cisg
ICAgICAgICAgICAgICAgd2hpbGUgKDEpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKERhdGUu
bm93KCkgLSBzdGFydFRpbWUgPiA0MDApCisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiT2JzZXJ2ZWQg
dG91Y2hzdGFydCBldmVudCIpOworICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0
KCk7CisgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgc2Nyb2xsZXIuYWRkRXZlbnRMaXN0
ZW5lcigidG91Y2hlbmQiLCAoKSA9PiB7CisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiT2Jz
ZXJ2ZWQgdG91Y2hlbmQgZXZlbnQiKTsKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsK
KyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgc2Nyb2xsZXIuYWRkRXZlbnRMaXN0ZW5lcigi
c2Nyb2xsIiwgKCkgPT4gdGVzdEZhaWxlZCgiT2JzZXJ2ZWQgc2Nyb2xsIGV2ZW50IiksIHsgb25j
ZSA6IHRydWUgfSk7CisKKyAgICAgICAgICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIpCisgICAg
ICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBjb25zdCBldmVudFN0cmVhbURhdGEg
PSBuZXcgVUlIZWxwZXIuRXZlbnRTdHJlYW1CdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAuYmVn
aW4oMTAwLCAxOTApCisgICAgICAgICAgICAgICAgLm1vdmUoMTAwLCAxMCwgMSkKKyAgICAgICAg
ICAgICAgICAubW92ZSgxMDAsIDE5MCwgMSkKKyAgICAgICAgICAgICAgICAubW92ZSgxMDAsIDEw
MCwgMC41KQorICAgICAgICAgICAgICAgIC5lbmQoKQorICAgICAgICAgICAgICAgIC50YWtlUmVz
dWx0KCk7CisKKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLnNlbmRFdmVudFN0cmVhbShldmVu
dFN0cmVhbURhdGEpOworICAgICAgICB9CisKKyAgICAgICAgYWRkRXZlbnRMaXN0ZW5lcigibG9h
ZCIsIHJ1blRlc3QpOworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPGRpdiBp
ZD0ic2Nyb2xsZXIiPgorICAgICAgICA8ZGl2IGlkPSJjb250ZW50Ij48L2Rpdj4KKyAgICA8L2Rp
dj4KKyAgICA8cHJlIGlkPSJkZXNjcmlwdGlvbiI+PC9wcmU+CisgICAgPHByZSBpZD0iY29uc29s
ZSI+PC9wcmU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy90b3VjaC9pb3Mvc2Nyb2xsLW9uLXRvdWNoLXN0YXJ0LXdpdGgtc2xvdy1ldmVudC1s
aXN0ZW5lci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3Mv
c2Nyb2xsLW9uLXRvdWNoLXN0YXJ0LXdpdGgtc2xvdy1ldmVudC1saXN0ZW5lci1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYTcwNjBmYjAwZmIxZmUzMzczMGNhOWIxYzEzNWJmMTk5NzgzNDFkZQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9zY3Jv
bGwtb24tdG91Y2gtc3RhcnQtd2l0aC1zbG93LWV2ZW50LWxpc3RlbmVyLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDExIEBACitWZXJpZmllcyB0aGF0IHRoZSB1c2VyIGNhbiBzY3JvbGwgZXZlbiB3
aGVuIHRoZSB0b3VjaCBldmVudCBoYW5kbGVyIGlzIHVucmVzcG9uc2l2ZSBmb3IgYW4gZXh0ZW5k
ZWQgZHVyYXRpb24uIFRvIG1hbnVhbGx5IHRlc3QsIGF0dGVtcHQgdG8gc2Nyb2xsIHRoZSBib3g7
IGNoZWNrIHRoYXQgdG91Y2hzdGFydCBhbmQgdG91Y2hlbmQgZXZlbnRzIHdlcmUgaGFuZGxlZCwg
YW5kIHRoYXQgdGhlIGJveCB3YXMgc2Nyb2xsZWQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworUEFTUyBPYnNlcnZlZCB0b3VjaHN0YXJ0IGV2ZW50CitQQVNTIE9ic2VydmVkIHNjcm9s
bCBldmVudAorUEFTUyBPYnNlcnZlZCB0b3VjaGVuZCBldmVudAorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9zY3JvbGwtb24tdG91Y2gtc3RhcnQtd2l0aC1zbG93LWV2
ZW50LWxpc3RlbmVyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3Mvc2Ny
b2xsLW9uLXRvdWNoLXN0YXJ0LXdpdGgtc2xvdy1ldmVudC1saXN0ZW5lci5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmViNTQxYjI0Yjc3Nzk5YmQ4ZDAxOTM3N2FjMmQzNmJhMTVmYTY3MmIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3Mvc2Nyb2xsLW9uLXRvdWNo
LXN0YXJ0LXdpdGgtc2xvdy1ldmVudC1saXN0ZW5lci5odG1sCkBAIC0wLDAgKzEsNzMgQEAKKzwh
RE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUZsZXhpYmxlVmlld3Bv
cnQ9dHJ1ZSBpbnRlcm5hbDpBc3luY092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+
Cis8aHRtbD4KKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lk
dGgsIGluaXRpYWwtc2NhbGU9MSwgdXNlci1zY2FsYWJsZT1ubyI+Cis8aGVhZD4KKyAgICA8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAg
IDxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3Njcmlw
dD4KKyAgICA8c3R5bGU+CisgICAgaHRtbCwgYm9keSB7CisgICAgICAgIHdpZHRoOiAxMDAlOwor
ICAgICAgICBoZWlnaHQ6IDEwMCU7CisgICAgICAgIG1hcmdpbjogMDsKKyAgICB9CisKKyAgICAj
c2Nyb2xsZXIgeworICAgICAgICBvdmVyZmxvdzogc2Nyb2xsOworICAgICAgICB3aWR0aDogMjAw
cHg7CisgICAgICAgIGhlaWdodDogMjAwcHg7CisgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIGJs
YWNrOworICAgIH0KKworICAgICNjb250ZW50IHsKKyAgICAgICAgd2lkdGg6IDEwMCU7CisgICAg
ICAgIGhlaWdodDogMTAwMHB4OworICAgIH0KKyAgICA8L3N0eWxlPgorICAgIDxzY3JpcHQ+Cisg
ICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgICAgIGFzeW5jIGZ1bmN0aW9uIHJ1
blRlc3QoKSB7CisgICAgICAgICAgICBkZXNjcmlwdGlvbigiVmVyaWZpZXMgdGhhdCB0aGUgdXNl
ciBjYW4gc2Nyb2xsIGV2ZW4gd2hlbiB0aGUgdG91Y2ggZXZlbnQgaGFuZGxlciBpcyB1bnJlc3Bv
bnNpdmUgZm9yIGFuIGV4dGVuZGVkIGR1cmF0aW9uLiBUbyBtYW51YWxseSB0ZXN0LCBhdHRlbXB0
IHRvIHNjcm9sbCB0aGUgYm94OyBjaGVjayB0aGF0IHRvdWNoc3RhcnQgYW5kIHRvdWNoZW5kIGV2
ZW50cyB3ZXJlIGhhbmRsZWQsIGFuZCB0aGF0IHRoZSBib3ggd2FzIHNjcm9sbGVkLiIpOworCisg
ICAgICAgICAgICBjb25zdCBzY3JvbGxlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzY3Jv
bGxlciIpOworCisgICAgICAgICAgICBzY3JvbGxlci5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0
YXJ0IiwgZXZlbnQgPT4geworICAgICAgICAgICAgICAgIGNvbnN0IHN0YXJ0VGltZSA9IERhdGUu
bm93KCk7CisgICAgICAgICAgICAgICAgd2hpbGUgKDEpIHsKKyAgICAgICAgICAgICAgICAgICAg
aWYgKERhdGUubm93KCkgLSBzdGFydFRpbWUgPiA0MDApCisgICAgICAgICAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgi
T2JzZXJ2ZWQgdG91Y2hzdGFydCBldmVudCIpOworICAgICAgICAgICAgfSk7CisKKyAgICAgICAg
ICAgIHNjcm9sbGVyLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIiwgKCkgPT4geworICAgICAg
ICAgICAgICAgIHRlc3RQYXNzZWQoIk9ic2VydmVkIHRvdWNoZW5kIGV2ZW50Iik7CisgICAgICAg
ICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHNj
cm9sbGVyLmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsICgpID0+IHRlc3RQYXNzZWQoIk9ic2Vy
dmVkIHNjcm9sbCBldmVudCIpLCB7IG9uY2UgOiB0cnVlIH0pOworCisgICAgICAgICAgICBpZiAo
IXdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAg
ICAgY29uc3QgZXZlbnRTdHJlYW1EYXRhID0gbmV3IFVJSGVscGVyLkV2ZW50U3RyZWFtQnVpbGRl
cigpCisgICAgICAgICAgICAgICAgLmJlZ2luKDEwMCwgMTkwKQorICAgICAgICAgICAgICAgIC5t
b3ZlKDEwMCwgMTAsIDEpCisgICAgICAgICAgICAgICAgLm1vdmUoMTAwLCAxOTAsIDEpCisgICAg
ICAgICAgICAgICAgLm1vdmUoMTAwLCAxMDAsIDAuNSkKKyAgICAgICAgICAgICAgICAuZW5kKCkK
KyAgICAgICAgICAgICAgICAudGFrZVJlc3VsdCgpOworCisgICAgICAgICAgICBhd2FpdCBVSUhl
bHBlci5zZW5kRXZlbnRTdHJlYW0oZXZlbnRTdHJlYW1EYXRhKTsKKyAgICAgICAgfQorCisgICAg
ICAgIGFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBydW5UZXN0KTsKKyAgICA8L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorICAgIDxkaXYgaWQ9InNjcm9sbGVyIj4KKyAgICAgICAgPGRpdiBpZD0i
Y29udGVudCI+PC9kaXY+CisgICAgPC9kaXY+CisgICAgPHByZSBpZD0iZGVzY3JpcHRpb24iPjwv
cHJlPgorICAgIDxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3VpLWhlbHBlci5qcyBiL0xheW91dFRlc3Rz
L3Jlc291cmNlcy91aS1oZWxwZXIuanMKaW5kZXggMzY5ZTY5ZGMwNmMyZjQ5Y2UzMzQ3MTIxZmQ0
NWZkNTMxNDZiMTY0MC4uOTAyZjM0NWZmMjU4OGFkNTBjYzBlMTVkNDRhMWEyOWU5MDBhNDhhNSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3VpLWhlbHBlci5qcworKysgYi9MYXlv
dXRUZXN0cy9yZXNvdXJjZXMvdWktaGVscGVyLmpzCkBAIC0yOSw2ICsyOSwyMCBAQCB3aW5kb3cu
VUlIZWxwZXIgPSBjbGFzcyBVSUhlbHBlciB7CiAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAo
KTsKICAgICB9CiAKKyAgICBzdGF0aWMgc2VuZEV2ZW50U3RyZWFtKGV2ZW50U3RyZWFtKQorICAg
IHsKKyAgICAgICAgY29uc3QgZXZlbnRTdHJlYW1Bc1N0cmluZyA9IEpTT04uc3RyaW5naWZ5KGV2
ZW50U3RyZWFtKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4geworICAg
ICAgICAgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChgCisgICAgICAgICAgICAgICAgKGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIuc2VuZEV2ZW50U3RyZWFt
KFxgJHtldmVudFN0cmVhbUFzU3RyaW5nfVxgLCAoKSA9PiB7CisgICAgICAgICAgICAgICAgICAg
ICAgICB1aUNvbnRyb2xsZXIudWlTY3JpcHRDb21wbGV0ZSgpOworICAgICAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgICAgICB9KSgpOworICAgICAgICAgICAgYCwgcmVzb2x2ZSk7Cisg
ICAgICAgIH0pOworICAgIH0KKwogICAgIHN0YXRpYyB0YXBBdCh4LCB5LCBtb2RpZmllcnM9W10p
CiAgICAgewogICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLmlzSU9TRmFtaWx5KCkpOwpAQCAt
MTEwNSwzICsxMTE5LDg5IEBAIHdpbmRvdy5VSUhlbHBlciA9IGNsYXNzIFVJSGVscGVyIHsKICAg
ICAgICAgfSk7CiAgICAgfQogfQorCitVSUhlbHBlci5FdmVudFN0cmVhbUJ1aWxkZXIgPSBjbGFz
cyB7CisgICAgY29uc3RydWN0b3IoKQorICAgIHsKKyAgICAgICAgLy8gRklYTUU6IFRoaXMgY291
bGQgc3VwcG9ydCBhZGRpdGlvbmFsIGN1c3RvbWl6YXRpb24gb3B0aW9ucywgc3VjaCBhcyBpbnRl
cnBvbGF0aW9uLCB0aW1lc3RlcCwgYW5kIGRpZmZlcmVudAorICAgICAgICAvLyBkaWdpdGl6ZXIg
aW5kaWNlcyBpbiB0aGUgZnV0dXJlLiBGb3Igbm93LCBqdXN0IG1ha2UgaXQgc2ltcGxlciB0byBz
dHJpbmcgdG9nZXRoZXIgc2VxdWVuY2VzIG9mIHBhbiBnZXN0dXJlcy4KKyAgICAgICAgdGhpcy5f
cmVzZXQoKTsKKyAgICB9CisKKyAgICBfcmVzZXQoKSB7CisgICAgICAgIHRoaXMuZXZlbnRzID0g
W107CisgICAgICAgIHRoaXMuY3VycmVudFRpbWVPZmZzZXQgPSAwOworICAgICAgICB0aGlzLmN1
cnJlbnRYID0gMDsKKyAgICAgICAgdGhpcy5jdXJyZW50WSA9IDA7CisgICAgfQorCisgICAgYmVn
aW4oeCwgeSkgeworICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLmN1cnJlbnRUaW1lT2Zmc2V0
ID09PSAwKTsKKyAgICAgICAgdGhpcy5ldmVudHMucHVzaCh7CisgICAgICAgICAgICBpbnRlcnBv
bGF0ZSA6ICJsaW5lYXIiLAorICAgICAgICAgICAgdGltZXN0ZXAgOiAwLjAxNiwKKyAgICAgICAg
ICAgIGNvb3JkaW5hdGVTcGFjZSA6ICJjb250ZW50IiwKKyAgICAgICAgICAgIHN0YXJ0RXZlbnQg
OiB7CisgICAgICAgICAgICAgICAgaW5wdXRUeXBlIDogImhhbmQiLAorICAgICAgICAgICAgICAg
IHRpbWVPZmZzZXQgOiB0aGlzLmN1cnJlbnRUaW1lT2Zmc2V0LAorICAgICAgICAgICAgICAgIHRv
dWNoZXMgOiBbeyBpbnB1dFR5cGUgOiAiZmluZ2VyIiwgcGhhc2UgOiAiYmVnYW4iLCBpZCA6IDEs
IHggOiB4LCB5IDogeSwgcHJlc3N1cmUgOiAwIH1dCisgICAgICAgICAgICB9LAorICAgICAgICAg
ICAgZW5kRXZlbnQgOiB7CisgICAgICAgICAgICAgICAgaW5wdXRUeXBlIDogImhhbmQiLAorICAg
ICAgICAgICAgICAgIHRpbWVPZmZzZXQgOiB0aGlzLmN1cnJlbnRUaW1lT2Zmc2V0LAorICAgICAg
ICAgICAgICAgIHRvdWNoZXMgOiBbeyBpbnB1dFR5cGUgOiAiZmluZ2VyIiwgcGhhc2UgOiAiYmVn
YW4iLCBpZCA6IDEsIHggOiB4LCB5IDogeSwgcHJlc3N1cmUgOiAwIH1dCisgICAgICAgICAgICB9
CisgICAgICAgIH0pOworICAgICAgICB0aGlzLmN1cnJlbnRYID0geDsKKyAgICAgICAgdGhpcy5j
dXJyZW50WSA9IHk7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIG1vdmUoeCwg
eSwgZHVyYXRpb24gPSAwKSB7CisgICAgICAgIGNvbnN0IHByZXZpb3VzVGltZU9mZnNldCA9IHRo
aXMuY3VycmVudFRpbWVPZmZzZXQ7CisgICAgICAgIHRoaXMuY3VycmVudFRpbWVPZmZzZXQgKz0g
ZHVyYXRpb247CisgICAgICAgIHRoaXMuZXZlbnRzLnB1c2goeworICAgICAgICAgICAgaW50ZXJw
b2xhdGUgOiAibGluZWFyIiwKKyAgICAgICAgICAgIHRpbWVzdGVwIDogMC4wMTYsCisgICAgICAg
ICAgICBjb29yZGluYXRlU3BhY2UgOiAiY29udGVudCIsCisgICAgICAgICAgICBzdGFydEV2ZW50
IDogeworICAgICAgICAgICAgICAgIGlucHV0VHlwZSA6ICJoYW5kIiwKKyAgICAgICAgICAgICAg
ICB0aW1lT2Zmc2V0IDogcHJldmlvdXNUaW1lT2Zmc2V0LAorICAgICAgICAgICAgICAgIHRvdWNo
ZXMgOiBbeyBpbnB1dFR5cGUgOiAiZmluZ2VyIiwgcGhhc2UgOiAibW92ZWQiLCBpZCA6IDEsIHgg
OiB0aGlzLmN1cnJlbnRYLCB5IDogdGhpcy5jdXJyZW50WSwgcHJlc3N1cmUgOiAwIH1dCisgICAg
ICAgICAgICB9LAorICAgICAgICAgICAgZW5kRXZlbnQgOiB7CisgICAgICAgICAgICAgICAgaW5w
dXRUeXBlIDogImhhbmQiLAorICAgICAgICAgICAgICAgIHRpbWVPZmZzZXQgOiB0aGlzLmN1cnJl
bnRUaW1lT2Zmc2V0LAorICAgICAgICAgICAgICAgIHRvdWNoZXMgOiBbeyBpbnB1dFR5cGUgOiAi
ZmluZ2VyIiwgcGhhc2UgOiAibW92ZWQiLCBpZCA6IDEsIHggOiB4LCB5IDogeSwgcHJlc3N1cmUg
OiAwIH1dCisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICB0aGlzLmN1cnJlbnRY
ID0geDsKKyAgICAgICAgdGhpcy5jdXJyZW50WSA9IHk7CisgICAgICAgIHJldHVybiB0aGlzOwor
ICAgIH0KKworICAgIGVuZCgpIHsKKyAgICAgICAgdGhpcy5ldmVudHMucHVzaCh7CisgICAgICAg
ICAgICBpbnRlcnBvbGF0ZSA6ICJsaW5lYXIiLAorICAgICAgICAgICAgdGltZXN0ZXAgOiAwLjAx
NiwKKyAgICAgICAgICAgIGNvb3JkaW5hdGVTcGFjZSA6ICJjb250ZW50IiwKKyAgICAgICAgICAg
IHN0YXJ0RXZlbnQgOiB7CisgICAgICAgICAgICAgICAgaW5wdXRUeXBlIDogImhhbmQiLAorICAg
ICAgICAgICAgICAgIHRpbWVPZmZzZXQgOiB0aGlzLmN1cnJlbnRUaW1lT2Zmc2V0LAorICAgICAg
ICAgICAgICAgIHRvdWNoZXMgOiBbeyBpbnB1dFR5cGUgOiAiZmluZ2VyIiwgcGhhc2UgOiAiZW5k
ZWQiLCBpZCA6IDEsIHggOiB0aGlzLmN1cnJlbnRYLCB5IDogdGhpcy5jdXJyZW50WSwgcHJlc3N1
cmUgOiAwIH1dCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgZW5kRXZlbnQgOiB7CisgICAg
ICAgICAgICAgICAgaW5wdXRUeXBlIDogImhhbmQiLAorICAgICAgICAgICAgICAgIHRpbWVPZmZz
ZXQgOiB0aGlzLmN1cnJlbnRUaW1lT2Zmc2V0LAorICAgICAgICAgICAgICAgIHRvdWNoZXMgOiBb
eyBpbnB1dFR5cGUgOiAiZmluZ2VyIiwgcGhhc2UgOiAiZW5kZWQiLCBpZCA6IDEsIHggOiB0aGlz
LmN1cnJlbnRYLCB5IDogdGhpcy5jdXJyZW50WSwgcHJlc3N1cmUgOiAwIH1dCisgICAgICAgICAg
ICB9CisgICAgICAgIH0pOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICB0YWtl
UmVzdWx0KCkgeworICAgICAgICBjb25zdCBldmVudHMgPSB0aGlzLmV2ZW50czsKKyAgICAgICAg
dGhpcy5fcmVzZXQoKTsKKyAgICAgICAgcmV0dXJuIHsgImV2ZW50cyI6IGV2ZW50cyB9OworICAg
IH0KK30K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385027</attachid>
            <date>2019-12-06 11:21:36 -0800</date>
            <delta_ts>2019-12-06 17:08:38 -0800</delta_ts>
            <desc>Fix iOS tests on non-internal builds</desc>
            <filename>bug-204664-20191206112136.patch</filename>
            <type>text/plain</type>
            <size>63444</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzMTcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDIzNDg3OTAxNWM2M2NlMmE4
NTFjYTk4NDI4OWY1ODExNTlmNjYxYTEuLjRiOWFkMDRkYWFhMWYzMTJmN2M1NDE0YjdjYjc5MWNm
MDc5ZjUzZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQyIEBACisyMDE5LTEyLTA2ICBXZW5zb24g
SHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIFdLV2ViVmll
dyB0b3VjaCBldmVudCBnZXN0dXJlIHJlY29nbml0aW9uIHNob3VsZCBub3QgYmxvY2sgdGhlIGFw
cGxpY2F0aW9uIHByb2Nlc3MgbWFpbiB0aHJlYWQgd2hlbiBwb3NzaWJsZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0NjY0CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS8zODY3MDY5Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGRzIGEgbWVjaGFuaXNtIHRoYXQgYWxsb3dzIHNvbWUgc3luYyB0b3Vj
aCBldmVudHMgb24gaU9TIHRvIGJlIHNlbnQgYXN5bmNocm9ub3VzbHkuIFRvIGRvIHRoaXMsIHdl
IHVzZSB0aGUKKyAgICAgICAgZGVmZXJyaW5nIGdlc3R1cmUgbWVjaGFuaXNtIGludHJvZHVjZWQg
aW4gdHJhYy53ZWJraXQub3JnL3IyNTMwMDUgdG8gZGVmZXIgYWxsIGdlc3R1cmVzIHVuZGVyIFdL
Q29udGVudFZpZXcgKGFuZAorICAgICAgICBXZWJLaXQtb3duZWQgc2Nyb2xsIHZpZXdzKSB3aGVu
IGEgdG91Y2ggc3RhcnRzLCBzdWNoIHRoYXQgdGhleSB3aWxsIG5vdCByZWNvZ25pemUgdW50aWwg
d2Uga25vdyB0aGF0IHRoZSBwYWdlCisgICAgICAgIGhhcyBlaXRoZXIgcHJldmVudGVkIGRlZmF1
bHQgb3Igbm90IChhc3N1bWluZyB0aGF0IHRoZSB0b3VjaCB3YXMgb3ZlciBhbiBhY3RpdmUgbGlz
dGVuZXIpLiBTZWUgYmVsb3cgZm9yIG1vcmUKKyAgICAgICAgZGV0YWlscy4KKworICAgICAgICBU
ZXN0czogZmFzdC9ldmVudHMvdG91Y2gvaW9zL3ByZXZlbnQtZGVmYXVsdC1vbi10b3VjaC1zdGFy
dC13aXRoLXNsb3ctZXZlbnQtbGlzdGVuZXIuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVu
dHMvdG91Y2gvaW9zL3Njcm9sbC1vbi10b3VjaC1zdGFydC13aXRoLXNsb3ctZXZlbnQtbGlzdGVu
ZXIuaHRtbAorCisgICAgICAgICogVUlQcm9jZXNzL0dlbmVyaWNDYWxsYmFjay5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9QYWdlQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxh
eWVyVHJlZS9pb3MvUmVtb3RlTGF5ZXJUcmVlVmlld3MubW06CisgICAgICAgICgtW1dLQ2hpbGRT
Y3JvbGxWaWV3IGdlc3R1cmVSZWNvZ25pemVyOnNob3VsZFJlcXVpcmVGYWlsdXJlT2ZHZXN0dXJl
UmVjb2duaXplcjpdKToKKyAgICAgICAgKC1bV0tDaGlsZFNjcm9sbFZpZXcgZ2VzdHVyZVJlY29n
bml6ZXI6c2hvdWxkQmVSZXF1aXJlZFRvRmFpbEJ5R2VzdHVyZVJlY29nbml6ZXI6XSk6CisKKyAg
ICAgICAgSW1wbGVtZW50IGdlc3R1cmUgcmVjb2duaXplciBkZWxlZ2F0ZSBob29rcyB0byBhZGQg
ZHluYW1pYyBmYWlsdXJlIHJlcXVpcmVtZW50cyBiZXR3ZWVuIGEgY2hpbGQgc2Nyb2xsIHZpZXcn
cworICAgICAgICBnZXN0dXJlcyBhbmQgdGhlIG5ldyBkZWZlcnJpbmcgZ2VzdHVyZSByZWNvZ25p
emVycyBvbiBXS0NvbnRlbnRWaWV3LiBUaGlzIGFsbG93cyBwYW4gZ2VzdHVyZXMgb3ZlciBhIHNj
cm9sbGFibGUKKyAgICAgICAgY29udGFpbmVyIHRvIGhvbGQgb2ZmIG9uIHJlY29nbml6aW5nIHdo
aWxlIHRoZSBkZWZlcnJpbmcgZ2VzdHVyZSByZWNvZ25pemVyIGhhcyBub3QgZmFpbGVkIHlldC4K
KworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OmhhbmRsZVByZXZlbnRhYmxlVG91Y2hFdmVudCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6aGFuZGxlVW5wcmV2ZW50YWJsZVRvdWNoRXZlbnQpOgorCisg
ICAgICAgIFJlbmFtZSBoYW5kbGVUb3VjaEV2ZW50U3luY2hyb25vdXNseSBhbmQgaGFuZGxlVG91
Y2hFdmVudEFzeW5jaHJvbm91c2x5IHRvIGhhbmRsZVByZXZlbnRhYmxlVG91Y2hFdmVudCBhbmQK
KyAgICAgICAgaGFuZGxlVW5wcmV2ZW50YWJsZVRvdWNoRXZlbnQsIHJlc3BlY3RpdmVseS4gSW5z
dGVhZCBvZiBhbHdheXMgc2VuZGluZyB0b3VjaHN0YXJ0IGV2ZW50cyB0aGF0IG1heSBwcmV2ZW50
IG5hdGl2ZQorICAgICAgICBnZXN0dXJlcyBzeW5jaHJvbm91c2x5LCB3ZSBtYXkgbm93IGdvIHRo
cm91Z2ggdGhlIHNhbWUgYEV2ZW50RGlzcGF0Y2hlcjo6VG91Y2hFdmVudGAgY29kZXBhdGggdXNl
ZCB3aGVuCisgICAgICAgIGRpc3BhdGNoaW5nIHRvdWNoIGV2ZW50cyBpbiBwYXNzaXZlIHRyYWNr
aW5nIHJlZ2lvbnMuIEhvd2V2ZXIsIGluIHRoZSBjYXNlIG9mIHByZXZlbnRhYmxlIHRvdWNoc3Rh
cnRzLCB3ZQorICAgICAgICBhZGRpdGlvbmFsbHkgc3RvcmUgYSBjb21wbGV0aW9uIGNhbGxiYWNr
IHRoYXQgaXMgaW52b2tlZCBhZnRlciB0aGUgdG91Y2ggZXZlbnQgaGFzIGJlZW4gaGFuZGxlZCBi
eSB0aGUgcGFnZTsgd2UKKyAgICAgICAgdGhlbiBlaXRoZXIgdW4tZGVmZXIgb3IgcHJldmVudCBu
YXRpdmUgZ2VzdHVyZXMgaGVyZSAoZGVwZW5kaW5nIG9uIHdoZXRoZXIgdGhlIHBhZ2UgcHJldmVu
dGVkIGRlZmF1bHQpIGJ5CisgICAgICAgIGNhbGxpbmcgUGFnZUNsaWVudDo6ZG9uZURlZmVycmlu
Z05hdGl2ZUdlc3R1cmVzLgorCisgICAgICAgIE5vbi10b3VjaHN0YXJ0IGV2ZW50cyBhcmUgc3Rp
bGwgZGlzcGF0Y2hlZCBzeW5jaHJvbm91c2x5LCB0byBlbnN1cmUgdGhhdCBjYWxsaW5nIHByZXZl
bnREZWZhdWx0KCkgb24gdG91Y2htb3ZlCisgICAgICAgIGFuZCB0b3VjaGVuZCBjb250aW51ZSB0
byBwcmV2ZW50IGRlZmF1bHQgZ2VzdHVyZXMgZnJvbSByZWNvZ25pemluZy4KKworICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OmJvb2xDYWxsYmFjayk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6aGFuZGxlVG91Y2hFdmVudFN5bmNocm9ub3VzbHkpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmhhbmRsZVRvdWNoRXZlbnRBc3luY2hyb25vdXNs
eSk6IERlbGV0ZWQuCisKKyAgICAgICAgU2VlIGFib3ZlLgorCisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmlzSGFuZGxp
bmdQcmV2ZW50YWJsZVRvdWNoU3RhcnQgY29uc3QpOgorCisgICAgICAgIFRoaXMgaXMgdXNlZCBp
biBXS0NvbnRlbnRWaWV3IHRvIGRldGVybWluZSB3aGV0aGVyIGRlZmVycmluZyBnZXN0dXJlcyBu
ZWVkIHRvIHJlbWFpbiBhY3RpdmUgYWZ0ZXIgdGhlIHRvdWNoCisgICAgICAgIGVuZHMuIFNlZSBi
ZWxvdyBmb3IgbW9yZSBkZXRhaWwuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1Mu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tOgorICAgICAg
ICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZG9uZURlZmVycmluZ05hdGl2ZUdlc3R1cmVzKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAg
ICAoLVtXS0NvbnRlbnRWaWV3IHNldHVwSW50ZXJhY3Rpb25dKToKKyAgICAgICAgKC1bV0tDb250
ZW50VmlldyBjbGVhbnVwSW50ZXJhY3Rpb25dKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBf
cmVtb3ZlRGVmYXVsdEdlc3R1cmVSZWNvZ25pemVyc10pOgorICAgICAgICAoLVtXS0NvbnRlbnRW
aWV3IF9hZGREZWZhdWx0R2VzdHVyZVJlY29nbml6ZXJzXSk6CisKKyAgICAgICAgQWRkIGFuZCBy
ZW1vdmUgdGhlIG5ldyBkZWZlcnJpbmcgZ2VzdHVyZSByZWNvZ25pemVycyBoZXJlLgorCisgICAg
ICAgICgtW1dLQ29udGVudFZpZXcgX3dlYlRvdWNoRXZlbnRzUmVjb2duaXplZDpdKToKKyAgICAg
ICAgKC1bV0tDb250ZW50VmlldyBfd2ViVG91Y2hFdmVudDpwcmV2ZW50c05hdGl2ZUdlc3R1cmVz
Ol0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9kb25lRGVmZXJyaW5nTmF0aXZlR2VzdHVy
ZXM6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgZ2VzdHVyZVJlY29nbml6ZXI6c2hvdWxk
UmVjb2duaXplU2ltdWx0YW5lb3VzbHlXaXRoR2VzdHVyZVJlY29nbml6ZXI6XSk6CisgICAgICAg
ICgtW1dLQ29udGVudFZpZXcgZW5zdXJlUG9zaXRpb25JbmZvcm1hdGlvbklzVXBUb0RhdGU6XSk6
CisKKyAgICAgICAgRHJpdmUtYnkgZml4OiBhZGQgYSBtaXNzaW5nIGhhc1J1bm5pbmdQcm9jZXNz
IGNoZWNrIHRoYXQgY2F1c2VzIGEgZmxha3kgYXNzZXJ0aW9uIHVuZGVyCisgICAgICAgIGBBdXhp
bGlhcnlQcm9jZXNzUHJveHk6OmNvbm5lY3Rpb24oKWAgaW4gbGF5b3V0IHRlc3RzLgorCisgICAg
ICAgICgtW1dLQ29udGVudFZpZXcgZ2VzdHVyZVJlY29nbml6ZXI6c2hvdWxkUmVxdWlyZUZhaWx1
cmVPZkdlc3R1cmVSZWNvZ25pemVyOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGdlc3R1
cmVSZWNvZ25pemVyOnNob3VsZEJlUmVxdWlyZWRUb0ZhaWxCeUdlc3R1cmVSZWNvZ25pemVyOl0p
OgorCisgICAgICAgIEFkZCBkeW5hbWljIGZhaWx1cmUgcmVxdWlyZW1lbnRzIGJldHdlZW4gV0tD
b250ZW50VmlldydzIGdlc3R1cmVzIChpbmNsdWRpbmcgYWxsIHRleHQgaW50ZXJhY3Rpb24sIGNv
bnRleHQgbWVudSwKKyAgICAgICAgYW5kIGRyYWcgYW5kIGRyb3AgZ2VzdHVyZXMpIGFuZCB0aGUg
bmV3IGRlZmVycmluZyBnZXN0dXJlIHJlY29nbml6ZXJzLgorCisgICAgICAgICgtW1dLQ29udGVu
dFZpZXcgX2RpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yTWFpbkZyYW1lXSk6CisKKyAgICAgICAg
Rm9yY2UgdGhlIHR3by1maW5nZXIgZG91YmxlIHRhcCBnZXN0dXJlIHJlY29nbml6ZXIgdG8gcmVz
ZXQgd2hlbiBsb2FkaW5nIGEgbmV3IHBhZ2UuIFdpdGhvdXQgdGhpcywgdGhlIGxheW91dAorICAg
ICAgICB0ZXN0IGZhc3QvZXZlbnRzL2lvcy9jbGljay1ldmVudC13aGlsZS1lZGl0aW5nLW5vZGUu
aHRtbCB3aWxsIHJhcmVseSBmYWlsIHdoZW4gcnVuIGFmdGVyIGEgdGVzdCB0aGF0IGRpc3BhdGNo
ZXMKKyAgICAgICAgYSB0d28tZmluZ2VyIHRhcCwgc3VjaCBhcyBmYXN0L2V2ZW50cy9pb3MvY2xp
Y2stZXZlbnQtdHdvLWZpbmdlci1zaW5nbGUtdGFwLW1ldGEta2V5Lmh0bWwuIFRoaXMgaXMgYmVj
YXVzZSB0aGUKKyAgICAgICAgbmV3IGRlZmVycmluZyBnZXN0dXJlcyB3aWxsIHRlbXBvcmFyaWx5
IHVuaXRlIG11bHRpLWZpbmdlciB0YXAgZ2VzdHVyZXMgd2l0aCBvbmUtZmluZ2VyIGRvdWJsZSB0
YXAgZ2VzdHVyZXMgaW4KKyAgICAgICAgdGhlIHNhbWUgc3ViZ3JhcGggd2hlbiBwZXJmb3JtaW5n
IGEgdGFwIGdlc3R1cmUgd2l0aCBtb3JlIHRoYW4gb25lIGZpbmdlci4gVGhpcyBtZWFucyB0aGF0
IHRoZXJlJ3MgYSAzMDAgbXMKKyAgICAgICAgZGVsYXkgYmVmb3JlIGEgbm9ybWFsIHNpbmdsZSB0
YXAgY2FuIGJlIHJlY29nbml6ZWQgYWdhaW4sIHdoaWNoICh3aXRob3V0IGZvcmNpbmcgdGhlIHR3
by1maW5nZXIgZG91YmxlIHRhcCB0bworICAgICAgICByZXNldCkgd291bGQgY2F1c2UgYSBzdWJz
ZXF1ZW50IHRlc3QgdGhhdCBsb2FkcyBpbiB1bmRlciAzMDAgbXMgYW5kIGF0dGVtcHRzIHRvIHNl
bmQgYSB0YXAgdG8gZmFpbC4KKworICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGRlZmVycmluZ0dl
c3R1cmVSZWNvZ25pemVyOnNob3VsZERlZmVyR2VzdHVyZXNBZnRlckJlZ2lubmluZ1RvdWNoZXNX
aXRoRXZlbnQ6XSk6CisKKyAgICAgICAgQXZvaWQgZGVmZXJyaW5nIG5hdGl2ZSBnZXN0dXJlcyBp
ZiB0aGUgc2Nyb2xsIHZpZXcgaXMgZGVjZWxlcmF0aW5nOyB0aGlzIG1hdGNoZXMgYmVoYXZpb3Ig
b2YgdGhlIHdlYiB0b3VjaCBldmVudAorICAgICAgICBnZXN0dXJlIHJlY29nbml6ZXIuCisKKyAg
ICAgICAgKC1bV0tDb250ZW50VmlldyBkZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplcjpzaG91bGRE
ZWZlckdlc3R1cmVzQWZ0ZXJFbmRpbmdUb3VjaGVzV2l0aEV2ZW50Ol0pOgorCisgICAgICAgIE5v
cm1hbGx5LCBhZnRlciAtdG91Y2hlc0VuZGVkOndpdGhFdmVudDosIHdlIHN0b3AgZGVmZXJyaW5n
IG5hdGl2ZSBnZXN0dXJlIHJlY29nbml6ZXJzIGJ5IGZhaWxpbmcgdGhlIGRlZmVycmluZworICAg
ICAgICBnZXN0dXJlcy4gSG93ZXZlciwgaWYgd2UncmUgc3RpbGwgd2FpdGluZyBmb3IgYSByZXNw
b25zZSBmcm9tIHRoZSB3ZWIgcHJvY2VzcywgdGhlbiBsZXQKKyAgICAgICAgLV9kb25lRGVmZXJy
aW5nTmF0aXZlR2VzdHVyZXM6IGhhbmRsZSB0aGlzIGluc3RlYWQuCisKKyAgICAgICAgKC1bV0tD
b250ZW50VmlldyBkZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplcjpzaG91bGREZWZlck90aGVyR2Vz
dHVyZVJlY29nbml6ZXI6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgZGVmZXJyaW5nR2Vz
dHVyZVJlY29nbml6ZXI6c2hvdWxkRGVmZXJHZXN0dXJlc1dpdGhFdmVudDpdKTogRGVsZXRlZC4K
KworICAgICAgICBSZW5hbWVkIHRvIC1zaG91bGREZWZlckdlc3R1cmVzQWZ0ZXJCZWdpbm5pbmdU
b3VjaGVzV2l0aEV2ZW50Oi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tEZWZlcnJpbmdH
ZXN0dXJlUmVjb2duaXplci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tEZWZlcnJpbmdH
ZXN0dXJlUmVjb2duaXplci5tbToKKyAgICAgICAgKC1bV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2du
aXplciB0b3VjaGVzQmVnYW46d2l0aEV2ZW50Ol0pOgorICAgICAgICAoLVtXS0RlZmVycmluZ0dl
c3R1cmVSZWNvZ25pemVyIHRvdWNoZXNFbmRlZDp3aXRoRXZlbnQ6XSk6CisKKyAgICAgICAgT3Zl
cnJpZGUgdGhpcyBhbmQgYWRkIGEgbmV3IGRlbGVnYXRlIGhvb2sgdG8gZGV0ZXJtaW5lIHdoZXRo
ZXIgd2Ugd2FudCB0aGUgZGVmZXJyaW5nIGdlc3R1cmUgcmVjb2duaXplciB0bworICAgICAgICBp
bW1lZGlhdGVseSBmYWlsIHdoZW4gdG91Y2hlcyBlbmQuIEl0J3MgaW1wb3J0YW50IHRvIG92ZXJy
aWRlIHRoaXMgYW5kIHRyYW5zaXRpb24gdG8gZmFpbHVyZSBzdGF0ZSBpbiB0aGlzIGNhc2UsCisg
ICAgICAgIHNpbmNlIG5vdCBkb2luZyBzbyBjb3VsZCBtZWFuIHRoYXQgdGhlIGRlZmVycmluZyBn
ZXN0dXJlcyBzdGF5IGluIFBvc3NpYmxlIHN0YXRlIGZvcmV2ZXI7IHRoaXMgbWF5IGxlYWQgdG8g
dGhlCisgICAgICAgIGdlc3R1cmUgc3ViZ3JhcGggY29udGFpbmluZyB0aGVzZSBkZWZlcnJpbmcg
Z2VzdHVyZXMgYmVpbmcgdW5hYmxlIHRvIHJlc2V0LCBzaW5jZSBpdCdzIHdhaXRpbmcgZm9yIHRo
ZSBkZWZlcnJpbmcKKyAgICAgICAgZ2VzdHVyZSB0byBlaXRoZXIgZmFpbCBvciBlbmQuCisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLU2Nyb2xsVmlldy5tbToKKyAgICAgICAgKC1bV0tTY3Jv
bGxWaWV3IGdlc3R1cmVSZWNvZ25pemVyOnNob3VsZFJlcXVpcmVGYWlsdXJlT2ZHZXN0dXJlUmVj
b2duaXplcjpdKToKKyAgICAgICAgKC1bV0tTY3JvbGxWaWV3IGdlc3R1cmVSZWNvZ25pemVyOnNo
b3VsZEJlUmVxdWlyZWRUb0ZhaWxCeUdlc3R1cmVSZWNvZ25pemVyOl0pOgorCisgICAgICAgIERl
ZmVyIG1vcmUgc2Nyb2xsIHZpZXcgZ2VzdHVyZXMuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RXZlbnREaXNwYXRj
aGVyOjp0b3VjaEV2ZW50KToKKworICAgICAgICBBZGQgYW4gb3B0aW9uYWwgQ2FsbGJhY2tJRCBw
YXJhbWV0ZXIgdG8gdGhpcyBJUEMgbWVzc2FnZS4gSWYgYSBjYWxsYmFjayBJRCBpcyBnaXZlbiwg
dGhlbiB3ZSBhdm9pZCBjb2FsZXNjaW5nCisgICAgICAgIHRoZSB0b3VjaCBldmVudC4gVG8gaW1w
bGVtZW50IHRoaXMsIHdlIGFkZGl0aW9uYWxseSByZWZhY3RvciB0aGUgcXVldWVkIHRvdWNoIGV2
ZW50cyBtYXAgdG8gY29udGFpbiBsaXN0cyBvZgorICAgICAgICA8V2ViVG91Y2hFdmVudCwgT3B0
aW9uYWw8Q2FsbGJhY2tJRD4+IHBhaXJzOyBpZiBhIHF1ZXVlZCB0b3VjaCBldmVudCBoYXMgYSBj
b3JyZXNwb25kaW5nIENhbGxiYWNrSUQsIHRoZW4gd2UKKyAgICAgICAgZmlyZSB0aGUgY2FsbGJh
Y2sgY29ycmVzcG9uZGluZyB0byB0aGUgSUQsIGluZGljYXRpbmcgd2hldGhlciB0aGUgdG91Y2gg
ZXZlbnQgd2FzIGhhbmRsZWQgYnkgdGhlIHBhZ2UuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvRXZlbnREaXNwYXRjaGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0V2
ZW50RGlzcGF0Y2hlci5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5t
bToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlzcGF0Y2hBc3luY2hyb25vdXNUb3VjaEV2
ZW50cyk6CisKIDIwMTktMTItMDUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAog
ICAgICAgICBNRVNTQUdFX0NIRUNLIEJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXIgb24gaW5jb21p
bmcgSVBDIGZyb20gdGhlIFdlYlByb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0dlbmVyaWNDYWxsYmFjay5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR2VuZXJp
Y0NhbGxiYWNrLmgKaW5kZXggMzgzMjAyZmVkM2I2MjM2MDYzMzAxM2QxOWI2MzA5N2VkMzY0ZjA0
NC4uYzMxMTA2YTc5MTNjYWZjMzI1OGU2ODc3NDI5YzVhYzIyODNhMzRmNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvR2VuZXJpY0NhbGxiYWNrLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvR2VuZXJpY0NhbGxiYWNrLmgKQEAgLTE1Nyw2ICsxNTcsNyBAQCBzdGF0
aWMgdHlwZW5hbWUgR2VuZXJpY0NhbGxiYWNrPEludGVybmFsUmV0dXJuVmFsdWVUeXBlPjo6Q2Fs
bGJhY2tGdW5jdGlvbiB0b0dlbgogdHlwZWRlZiBHZW5lcmljQ2FsbGJhY2s8PiBWb2lkQ2FsbGJh
Y2s7CiB0eXBlZGVmIEdlbmVyaWNDYWxsYmFjazxjb25zdCBWZWN0b3I8V2ViQ29yZTo6SW50UmVj
dD4mLCBkb3VibGUsIFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50PiBDb21wdXRlZFBhZ2VzQ2FsbGJh
Y2s7CiB0eXBlZGVmIEdlbmVyaWNDYWxsYmFjazxjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRs
ZSY+IEltYWdlQ2FsbGJhY2s7Cit0eXBlZGVmIEdlbmVyaWNDYWxsYmFjazxib29sPiBCb29sQ2Fs
bGJhY2s7CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiB2b2lkIGludmFsaWRhdGVDYWxsYmFja01h
cChIYXNoTWFwPHVpbnQ2NF90LCBUPiYgY2FsbGJhY2tNYXAsIENhbGxiYWNrQmFzZTo6RXJyb3Ig
ZXJyb3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKaW5kZXggMmEyOTg5OTM0ODVi
ZGExYjgwMDA3N2NhYmNmYWVlZDEzNGUwZDQ3ZS4uZTg0ODI0ZmQ4NTVkNmNkOTMwMGZiZmQxYWIz
ZWJiZDk5Y2JjOTQzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaApAQCAtMzAx
LDYgKzMwMSw5IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgIHZpcnR1
YWwgdm9pZCBkb25lV2l0aFRvdWNoRXZlbnQoY29uc3QgTmF0aXZlV2ViVG91Y2hFdmVudCYsIGJv
b2wgd2FzRXZlbnRIYW5kbGVkKSA9IDA7CiAjZW5kaWYKKyNpZiBFTkFCTEUoSU9TX1RPVUNIX0VW
RU5UUykKKyAgICB2aXJ0dWFsIHZvaWQgZG9uZURlZmVycmluZ05hdGl2ZUdlc3R1cmVzKGJvb2wg
cHJldmVudE5hdGl2ZUdlc3R1cmVzKSA9IDA7CisjZW5kaWYKIAogICAgIHZpcnR1YWwgUmVmUHRy
PFdlYlBvcHVwTWVudVByb3h5PiBjcmVhdGVQb3B1cE1lbnVQcm94eShXZWJQYWdlUHJveHkmKSA9
IDA7CiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1JlbW90ZUxheWVyVHJlZVZpZXdzLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9SZW1vdGVMYXllclRy
ZWVWaWV3cy5tbQppbmRleCBmNjEzZTFjMGNmOGZhMGU1Yzc0NDkxOWVhYzBiOWViNzExM2VkY2Jk
Li43NjdlMGNmZTkxYTM5Yjk0ZTJjNDdkMzQ5YWM4YWE0YmQ3ODQyZjg1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1JlbW90ZUxheWVyVHJl
ZVZpZXdzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9p
b3MvUmVtb3RlTGF5ZXJUcmVlVmlld3MubW0KQEAgLTMyLDYgKzMyLDcgQEAKICNpbXBvcnQgIlJl
bW90ZUxheWVyVHJlZUhvc3QuaCIKICNpbXBvcnQgIlJlbW90ZUxheWVyVHJlZU5vZGUuaCIKICNp
bXBvcnQgIlVJS2l0U1BJLmgiCisjaW1wb3J0ICJXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVy
LmgiCiAjaW1wb3J0ICJXS0RyYXdpbmdWaWV3LmgiCiAjaW1wb3J0IDxXZWJDb3JlL1JlZ2lvbi5o
PgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmg+CkBAIC0zMTYsNiArMzE3
LDIyIEBAIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aEZyYW1lOihDR1JlY3QpZnJhbWUKICAgICBy
ZXR1cm4gc2VsZjsKIH0KIAorLSAoQk9PTClnZXN0dXJlUmVjb2duaXplcjooVUlHZXN0dXJlUmVj
b2duaXplciAqKWdlc3R1cmVSZWNvZ25pemVyIHNob3VsZFJlcXVpcmVGYWlsdXJlT2ZHZXN0dXJl
UmVjb2duaXplcjooVUlHZXN0dXJlUmVjb2duaXplciAqKW90aGVyR2VzdHVyZVJlY29nbml6ZXIK
K3sKKyAgICBpZiAoW290aGVyR2VzdHVyZVJlY29nbml6ZXIgaXNLaW5kT2ZDbGFzczpXS0RlZmVy
cmluZ0dlc3R1cmVSZWNvZ25pemVyLmNsYXNzXSkKKyAgICAgICAgcmV0dXJuIFsoV0tEZWZlcnJp
bmdHZXN0dXJlUmVjb2duaXplciAqKW90aGVyR2VzdHVyZVJlY29nbml6ZXIgc2hvdWxkRGVmZXJH
ZXN0dXJlUmVjb2duaXplcjpnZXN0dXJlUmVjb2duaXplcl07CisKKyAgICByZXR1cm4gTk87Cit9
CisKKy0gKEJPT0wpZ2VzdHVyZVJlY29nbml6ZXI6KFVJR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0
dXJlUmVjb2duaXplciBzaG91bGRCZVJlcXVpcmVkVG9GYWlsQnlHZXN0dXJlUmVjb2duaXplcjoo
VUlHZXN0dXJlUmVjb2duaXplciAqKW90aGVyR2VzdHVyZVJlY29nbml6ZXIKK3sKKyAgICBpZiAo
W2dlc3R1cmVSZWNvZ25pemVyIGlzS2luZE9mQ2xhc3M6V0tEZWZlcnJpbmdHZXN0dXJlUmVjb2du
aXplci5jbGFzc10pCisgICAgICAgIHJldHVybiBbKFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6
ZXIgKilnZXN0dXJlUmVjb2duaXplciBzaG91bGREZWZlckdlc3R1cmVSZWNvZ25pemVyOm90aGVy
R2VzdHVyZVJlY29nbml6ZXJdOworCisgICAgcmV0dXJuIE5POworfQorCiBAZW5kCiAKIEBpbXBs
ZW1lbnRhdGlvbiBXS0VtYmVkZGVkVmlldwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAKaW5kZXggMzVjZDNhYzMzZmM1OWVmODZkMGJiNzkyMTQ1NTVkZTk3OWZiMzVmYS4u
ODM1OGVkNTI4YjJiZGFmMDc4YjU2MmM1ZTU3OTYwNTUxZmZlNTljMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xNzEsNiArMTcxLDcgQEAKICNpbmNsdWRl
IDxXZWJDb3JlL1dyaXRpbmdEaXJlY3Rpb24uaD4KICNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1
ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi9TY29wZS5oPgogI2luY2x1
ZGUgPHd0Zi9TeXN0ZW1UcmFjaW5nLmg+CiAjaW5jbHVkZSA8d3RmL1VSTC5oPgogI2luY2x1ZGUg
PHd0Zi9VUkxQYXJzZXIuaD4KQEAgLTI3NzIsNyArMjc3Myw3IEBAIHZvaWQgV2ViUGFnZVByb3h5
OjpoYW5kbGVHZXN0dXJlRXZlbnQoY29uc3QgTmF0aXZlV2ViR2VzdHVyZUV2ZW50JiBldmVudCkK
ICNlbmRpZgogCiAjaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCi12b2lkIFdlYlBhZ2VQcm94
eTo6aGFuZGxlVG91Y2hFdmVudFN5bmNocm9ub3VzbHkoTmF0aXZlV2ViVG91Y2hFdmVudCYgZXZl
bnQpCit2b2lkIFdlYlBhZ2VQcm94eTo6aGFuZGxlUHJldmVudGFibGVUb3VjaEV2ZW50KE5hdGl2
ZVdlYlRvdWNoRXZlbnQmIGV2ZW50KQogewogICAgIGlmICghaGFzUnVubmluZ1Byb2Nlc3MoKSkK
ICAgICAgICAgcmV0dXJuOwpAQCAtMjc4MSw5ICsyNzgyLDIwIEBAIHZvaWQgV2ViUGFnZVByb3h5
OjpoYW5kbGVUb3VjaEV2ZW50U3luY2hyb25vdXNseShOYXRpdmVXZWJUb3VjaEV2ZW50JiBldmVu
dCkKIAogICAgIHVwZGF0ZVRvdWNoRXZlbnRUcmFja2luZyhldmVudCk7CiAKKyAgICBhdXRvIGhh
bmRsZUFsbFRvdWNoUG9pbnRzUmVsZWFzZWQgPSBXVEY6Om1ha2VTY29wZUV4aXQoWyZdIHsKKyAg
ICAgICAgaWYgKCFldmVudC5hbGxUb3VjaFBvaW50c0FyZVJlbGVhc2VkKCkpCisgICAgICAgICAg
ICByZXR1cm47CisKKyAgICAgICAgbV90b3VjaEFuZFBvaW50ZXJFdmVudFRyYWNraW5nLnJlc2V0
KCk7CisgICAgICAgIGRpZFJlbGVhc2VBbGxUb3VjaFBvaW50cygpOworICAgIH0pOworCiAgICAg
VHJhY2tpbmdUeXBlIHRvdWNoRXZlbnRzVHJhY2tpbmdUeXBlID0gdG91Y2hFdmVudFRyYWNraW5n
VHlwZShldmVudCk7Ci0gICAgaWYgKHRvdWNoRXZlbnRzVHJhY2tpbmdUeXBlID09IFRyYWNraW5n
VHlwZTo6Tm90VHJhY2tpbmcpCisgICAgaWYgKHRvdWNoRXZlbnRzVHJhY2tpbmdUeXBlID09IFRy
YWNraW5nVHlwZTo6Tm90VHJhY2tpbmcpIHsKKyAgICAgICAgaWYgKCFpc0hhbmRsaW5nUHJldmVu
dGFibGVUb3VjaFN0YXJ0KCkpCisgICAgICAgICAgICBwYWdlQ2xpZW50KCkuZG9uZURlZmVycmlu
Z05hdGl2ZUdlc3R1cmVzKGZhbHNlKTsKICAgICAgICAgcmV0dXJuOworICAgIH0KIAogICAgIGlm
ICh0b3VjaEV2ZW50c1RyYWNraW5nVHlwZSA9PSBUcmFja2luZ1R5cGU6OkFzeW5jaHJvbm91cykg
ewogICAgICAgICAvLyBXZSBjYW4gZW5kIHVwIGhlcmUgaWYgYSBuYXRpdmUgZ2VzdHVyZSBoYXMg
bm90IHN0YXJ0ZWQgYnV0IHRoZSBldmVudCBoYW5kbGVycyBhcmUgcGFzc2l2ZS4KQEAgLTI3OTMs
OCArMjgwNSwyNiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6aGFuZGxlVG91Y2hFdmVudFN5bmNocm9u
b3VzbHkoTmF0aXZlV2ViVG91Y2hFdmVudCYgZXZlbnQpCiAgICAgICAgIC8vIEJ1dCwgaGVyZSB3
ZSBrbm93IHRoYXQgYWxsIGV2ZW50cyBoYW5kbGVycyB0aGF0IGNhbiBoYW5kbGUgdGhpcyBldmVu
dHMgYXJlIHBhc3NpdmUuCiAgICAgICAgIC8vIFdlIGNhbiB1c2UgYXN5bmNocm9ub3VzIGRpc3Bh
dGNoIGFuZCBwcmV0ZW5kIHRvIHRoZSBjbGllbnQgdGhhdCB0aGUgcGFnZSBkb2VzIG5vdGhpbmcg
d2l0aCB0aGUgZXZlbnRzLgogICAgICAgICBldmVudC5zZXRDYW5QcmV2ZW50TmF0aXZlR2VzdHVy
ZXMoZmFsc2UpOwotICAgICAgICBoYW5kbGVUb3VjaEV2ZW50QXN5bmNocm9ub3VzbHkoZXZlbnQp
OworICAgICAgICBoYW5kbGVVbnByZXZlbnRhYmxlVG91Y2hFdmVudChldmVudCk7CiAgICAgICAg
IGRpZFJlY2VpdmVFdmVudChldmVudC50eXBlKCksIGZhbHNlKTsKKyAgICAgICAgaWYgKCFpc0hh
bmRsaW5nUHJldmVudGFibGVUb3VjaFN0YXJ0KCkpCisgICAgICAgICAgICBwYWdlQ2xpZW50KCku
ZG9uZURlZmVycmluZ05hdGl2ZUdlc3R1cmVzKGZhbHNlKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIGlmIChldmVudC50eXBlKCkgPT0gV2ViRXZlbnQ6OlRvdWNoU3RhcnQpIHsKKyAg
ICAgICAgKyttX2hhbmRsaW5nUHJldmVudGFibGVUb3VjaFN0YXJ0Q291bnQ7CisgICAgICAgIEZ1
bmN0aW9uPHZvaWQoYm9vbCwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+IGNvbXBsZXRpb25IYW5kbGVy
ID0gW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgZXZlbnRdKGJvb2wgaGFu
ZGxlZCwgQ2FsbGJhY2tCYXNlOjpFcnJvciBlcnJvcikgeworICAgICAgICAgICAgLS1tX2hhbmRs
aW5nUHJldmVudGFibGVUb3VjaFN0YXJ0Q291bnQ7CisgICAgICAgICAgICBib29sIGhhbmRsZWRP
ckZhaWxlZFdpdGhFcnJvciA9IGhhbmRsZWQgfHwgZXJyb3IgIT0gQ2FsbGJhY2tCYXNlOjpFcnJv
cjo6Tm9uZTsKKyAgICAgICAgICAgIGRpZFJlY2VpdmVFdmVudChldmVudC50eXBlKCksIGhhbmRs
ZWRPckZhaWxlZFdpdGhFcnJvcik7CisgICAgICAgICAgICBwYWdlQ2xpZW50KCkuZG9uZVdpdGhU
b3VjaEV2ZW50KGV2ZW50LCBoYW5kbGVkT3JGYWlsZWRXaXRoRXJyb3IpOworICAgICAgICAgICAg
aWYgKCFpc0hhbmRsaW5nUHJldmVudGFibGVUb3VjaFN0YXJ0KCkpCisgICAgICAgICAgICAgICAg
cGFnZUNsaWVudCgpLmRvbmVEZWZlcnJpbmdOYXRpdmVHZXN0dXJlcyhoYW5kbGVkT3JGYWlsZWRX
aXRoRXJyb3IpOworICAgICAgICB9OworCisgICAgICAgIGF1dG8gY2FsbGJhY2tJRCA9IG1fY2Fs
bGJhY2tzLnB1dChXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgbV9wcm9jZXNzLT50aHJvdHRs
ZXIoKS5iYWNrZ3JvdW5kQWN0aXZpdHkoIldlYlBhZ2VQcm94eTo6aGFuZGxlUHJldmVudGFibGVU
b3VjaEV2ZW50Il9zKSk7CisgICAgICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6RXZlbnRE
aXNwYXRjaGVyOjpUb3VjaEV2ZW50KG1fd2ViUGFnZUlELCBldmVudCwgY2FsbGJhY2tJRCksIDAp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0yODA2LDEyICsyODM2LDggQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OmhhbmRsZVRvdWNoRXZlbnRTeW5jaHJvbm91c2x5KE5hdGl2ZVdlYlRvdWNo
RXZlbnQmIGV2ZW50KQogICAgICAgICBoYW5kbGVkID0gdHJ1ZTsKICAgICBkaWRSZWNlaXZlRXZl
bnQoZXZlbnQudHlwZSgpLCBoYW5kbGVkKTsKICAgICBwYWdlQ2xpZW50KCkuZG9uZVdpdGhUb3Vj
aEV2ZW50KGV2ZW50LCBoYW5kbGVkKTsKKyAgICBwYWdlQ2xpZW50KCkuZG9uZURlZmVycmluZ05h
dGl2ZUdlc3R1cmVzKGhhbmRsZWQpOwogICAgIG1fcHJvY2Vzcy0+cmVzcG9uc2l2ZW5lc3NUaW1l
cigpLnN0b3AoKTsKLQotICAgIGlmIChldmVudC5hbGxUb3VjaFBvaW50c0FyZVJlbGVhc2VkKCkp
IHsKLSAgICAgICAgbV90b3VjaEFuZFBvaW50ZXJFdmVudFRyYWNraW5nLnJlc2V0KCk7Ci0gICAg
ICAgIGRpZFJlbGVhc2VBbGxUb3VjaFBvaW50cygpOwotICAgIH0KIH0KIAogdm9pZCBXZWJQYWdl
UHJveHk6OnJlc2V0UG90ZW50aWFsVGFwU2VjdXJpdHlPcmlnaW4oKQpAQCAtMjgyMiw3ICsyODQ4
LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJlc2V0UG90ZW50aWFsVGFwU2VjdXJpdHlPcmlnaW4o
KQogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6UmVzZXRQb3RlbnRpYWxU
YXBTZWN1cml0eU9yaWdpbigpLCBtX3dlYlBhZ2VJRCk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5
OjpoYW5kbGVUb3VjaEV2ZW50QXN5bmNocm9ub3VzbHkoY29uc3QgTmF0aXZlV2ViVG91Y2hFdmVu
dCYgZXZlbnQpCit2b2lkIFdlYlBhZ2VQcm94eTo6aGFuZGxlVW5wcmV2ZW50YWJsZVRvdWNoRXZl
bnQoY29uc3QgTmF0aXZlV2ViVG91Y2hFdmVudCYgZXZlbnQpCiB7CiAgICAgaWYgKCFoYXNSdW5u
aW5nUHJvY2VzcygpKQogICAgICAgICByZXR1cm47CkBAIC0yODMxLDcgKzI4NTcsNyBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6aGFuZGxlVG91Y2hFdmVudEFzeW5jaHJvbm91c2x5KGNvbnN0IE5hdGl2
ZVdlYlRvdWNoRXZlbnQmIGV2ZQogICAgIGlmICh0b3VjaEV2ZW50c1RyYWNraW5nVHlwZSA9PSBU
cmFja2luZ1R5cGU6Ok5vdFRyYWNraW5nKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3Byb2Nl
c3MtPnNlbmQoTWVzc2FnZXM6OkV2ZW50RGlzcGF0Y2hlcjo6VG91Y2hFdmVudChtX3dlYlBhZ2VJ
RCwgZXZlbnQpLCAwKTsKKyAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OkV2ZW50RGlzcGF0
Y2hlcjo6VG91Y2hFdmVudChtX3dlYlBhZ2VJRCwgZXZlbnQsIFdURjo6bnVsbG9wdCksIDApOwog
CiAgICAgaWYgKGV2ZW50LmFsbFRvdWNoUG9pbnRzQXJlUmVsZWFzZWQoKSkgewogICAgICAgICBt
X3RvdWNoQW5kUG9pbnRlckV2ZW50VHJhY2tpbmcucmVzZXQoKTsKQEAgLTY2NzgsNiArNjcwNCwx
NyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGF0YUNhbGxiYWNrKGNvbnN0IElQQzo6RGF0YVJlZmVy
ZW5jZSYgZGF0YVJlZmVyZW5jZSwgQ2FsbGJhYwogICAgIGNhbGxiYWNrLT5wZXJmb3JtQ2FsbGJh
Y2tXaXRoUmV0dXJuVmFsdWUoQVBJOjpEYXRhOjpjcmVhdGUoZGF0YVJlZmVyZW5jZS5kYXRhKCks
IGRhdGFSZWZlcmVuY2Uuc2l6ZSgpKS5wdHIoKSk7CiB9CiAKK3ZvaWQgV2ViUGFnZVByb3h5Ojpi
b29sQ2FsbGJhY2soYm9vbCByZXN1bHQsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKK3sKKyAgICBh
dXRvIGNhbGxiYWNrID0gbV9jYWxsYmFja3MudGFrZTxCb29sQ2FsbGJhY2s+KGNhbGxiYWNrSUQp
OworICAgIGlmICghY2FsbGJhY2spIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBjYWxsYmFjay0+cGVyZm9ybUNhbGxiYWNrV2l0
aFJldHVyblZhbHVlKHJlc3VsdCk7Cit9CisKIHZvaWQgV2ViUGFnZVByb3h5OjppbWFnZUNhbGxi
YWNrKGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiBiaXRtYXBIYW5kbGUsIENhbGxiYWNr
SUQgY2FsbGJhY2tJRCkKIHsKICAgICBhdXRvIGNhbGxiYWNrID0gbV9jYWxsYmFja3MudGFrZTxJ
bWFnZUNhbGxiYWNrPihjYWxsYmFja0lEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKaW5kZXggMTA5NDdmZjBkYmI3YmU5NDQ0YTAyZjFlMzIxM2I4Y2JlMWUxMDk4Ni4uM2M4
OTgwMDQzNWFjZjZmYTkzODhmMDNlMTdlYTAzMGY3MzE1N2UzMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTg3NSw4ICs4NzUsOCBAQCBwdWJsaWM6CiAKICNpZiBF
TkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKICAgICB2b2lkIHJlc2V0UG90ZW50aWFsVGFwU2VjdXJp
dHlPcmlnaW4oKTsKLSAgICB2b2lkIGhhbmRsZVRvdWNoRXZlbnRTeW5jaHJvbm91c2x5KE5hdGl2
ZVdlYlRvdWNoRXZlbnQmKTsKLSAgICB2b2lkIGhhbmRsZVRvdWNoRXZlbnRBc3luY2hyb25vdXNs
eShjb25zdCBOYXRpdmVXZWJUb3VjaEV2ZW50Jik7CisgICAgdm9pZCBoYW5kbGVQcmV2ZW50YWJs
ZVRvdWNoRXZlbnQoTmF0aXZlV2ViVG91Y2hFdmVudCYpOworICAgIHZvaWQgaGFuZGxlVW5wcmV2
ZW50YWJsZVRvdWNoRXZlbnQoY29uc3QgTmF0aXZlV2ViVG91Y2hFdmVudCYpOwogCiAjZWxpZiBF
TkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgIHZvaWQgaGFuZGxlVG91Y2hFdmVudChjb25zdCBOYXRp
dmVXZWJUb3VjaEV2ZW50Jik7CkBAIC0xNjI5LDYgKzE2MjksOCBAQCBwdWJsaWM6CiAKICAgICB2
b2lkIHNldE9yaWVudGF0aW9uRm9yTWVkaWFDYXB0dXJlKHVpbnQ2NF90KTsKIAorICAgIGJvb2wg
aXNIYW5kbGluZ1ByZXZlbnRhYmxlVG91Y2hTdGFydCgpIGNvbnN0IHsgcmV0dXJuIG1faGFuZGxp
bmdQcmV2ZW50YWJsZVRvdWNoU3RhcnRDb3VudDsgfQorCiBwcml2YXRlOgogICAgIFdlYlBhZ2VQ
cm94eShQYWdlQ2xpZW50JiwgV2ViUHJvY2Vzc1Byb3h5JiwgUmVmPEFQSTo6UGFnZUNvbmZpZ3Vy
YXRpb24+JiYpOwogICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplKCk7CkBAIC0xOTMzLDYgKzE5
MzUsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgdm9pZENhbGxiYWNrKENhbGxiYWNrSUQpOwogICAg
IHZvaWQgZGF0YUNhbGxiYWNrKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYsIENhbGxiYWNrSUQp
OwogICAgIHZvaWQgaW1hZ2VDYWxsYmFjayhjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYs
IENhbGxiYWNrSUQpOworICAgIHZvaWQgYm9vbENhbGxiYWNrKGJvb2wgcmVzdWx0LCBDYWxsYmFj
a0lEKTsKICAgICB2b2lkIHN0cmluZ0NhbGxiYWNrKGNvbnN0IFN0cmluZyYsIENhbGxiYWNrSUQp
OwogICAgIHZvaWQgaW52YWxpZGF0ZVN0cmluZ0NhbGxiYWNrKENhbGxiYWNrSUQpOwogICAgIHZv
aWQgc2NyaXB0VmFsdWVDYWxsYmFjayhjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmLCBib29sIGhh
ZEV4Y2VwdGlvbiwgY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGV0YWlscyYsIENhbGxiYWNrSUQp
OwpAQCAtMjQxNCw2ICsyNDE3LDggQEAgcHJpdmF0ZToKICAgICBEZXF1ZTxRdWV1ZWRUb3VjaEV2
ZW50cz4gbV90b3VjaEV2ZW50UXVldWU7CiAjZW5kaWYKIAorICAgIHVpbnQ2NF90IG1faGFuZGxp
bmdQcmV2ZW50YWJsZVRvdWNoU3RhcnRDb3VudCB7IDAgfTsKKwogI2lmIEVOQUJMRShJTlBVVF9U
WVBFX0NPTE9SKQogICAgIFJlZlB0cjxXZWJDb2xvclBpY2tlcj4gbV9jb2xvclBpY2tlcjsKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1l
c3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2Vz
LmluCmluZGV4IDdkOTAwNWVkZDg2YmZlYWE4YjAyMDdmN2Y3MmY0NmE5OWIzOTc2ODcuLmVhMTI4
ZGNmMmIwZTI2MDc0YjcyM2RmOGE2ZWVjMTZmMzI1NTM0YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTE2Nyw2ICsxNjcsNyBA
QCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIERhdGFDYWxsYmFjayhJUEM6OlNoYXJl
ZEJ1ZmZlckRhdGFSZWZlcmVuY2UgcmVzdWx0RGF0YSwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxi
YWNrSUQpCiAgICAgSW1hZ2VDYWxsYmFjayhXZWJLaXQ6OlNoYXJlYWJsZUJpdG1hcDo6SGFuZGxl
IGJpdG1hcEhhbmRsZSwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiAgICAgU3RyaW5n
Q2FsbGJhY2soU3RyaW5nIHJlc3VsdFN0cmluZywgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNr
SUQpCisgICAgQm9vbENhbGxiYWNrKGJvb2wgcmVzdWx0LCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2Fs
bGJhY2tJRCkKICAgICBJbnZhbGlkYXRlU3RyaW5nQ2FsbGJhY2soV2ViS2l0OjpDYWxsYmFja0lE
IGNhbGxiYWNrSUQpCiAgICAgU2NyaXB0VmFsdWVDYWxsYmFjayhJUEM6OkRhdGFSZWZlcmVuY2Ug
cmVzdWx0RGF0YSwgYm9vbCBoYWRFeGNlcHRpb24sIHN0cnVjdCBXZWJDb3JlOjpFeGNlcHRpb25E
ZXRhaWxzIGRldGFpbHMsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQogICAgIENvbXB1
dGVkUGFnZXNDYWxsYmFjayhWZWN0b3I8V2ViQ29yZTo6SW50UmVjdD4gcGFnZVJlY3RzLCBkb3Vi
bGUgdG90YWxTY2FsZUZhY3RvckZvclByaW50aW5nLCBXZWJDb3JlOjpSZWN0RWRnZXM8ZmxvYXQ+
IGNvbXB1dGVkUGFnZU1hcmdpbiwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCmluZGV4IGVh
NTM1MjU3ZGZjZGM2MDEwMDljY2I1NGNiMGIyYmJkODA0OTJmY2MuLmQ2YzhjMzhkNGE2NTExOTI2
MjUwYTZjZjRiMDNhMjRhOTliMDNiYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCkBAIC0xMDMsNiArMTAzLDkgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIGRvbmVXaXRoS2V5RXZlbnQoY29uc3QgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudCYsIGJv
b2wgd2FzRXZlbnRIYW5kbGVkKSBvdmVycmlkZTsKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQog
ICAgIHZvaWQgZG9uZVdpdGhUb3VjaEV2ZW50KGNvbnN0IE5hdGl2ZVdlYlRvdWNoRXZlbnQmLCBi
b29sIHdhc0V2ZW50SGFuZGxlZCkgb3ZlcnJpZGU7CisjZW5kaWYKKyNpZiBFTkFCTEUoSU9TX1RP
VUNIX0VWRU5UUykKKyAgICB2b2lkIGRvbmVEZWZlcnJpbmdOYXRpdmVHZXN0dXJlcyhib29sIHBy
ZXZlbnROYXRpdmVHZXN0dXJlcykgb3ZlcnJpZGU7CiAjZW5kaWYKICAgICBSZWZQdHI8V2ViUG9w
dXBNZW51UHJveHk+IGNyZWF0ZVBvcHVwTWVudVByb3h5KFdlYlBhZ2VQcm94eSYpIG92ZXJyaWRl
OwogICAgIFJlZjxXZWJDb3JlOjpWYWxpZGF0aW9uQnViYmxlPiBjcmVhdGVWYWxpZGF0aW9uQnVi
YmxlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgV2ViQ29yZTo6VmFsaWRhdGlvbkJ1YmJs
ZTo6U2V0dGluZ3MmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Q
YWdlQ2xpZW50SW1wbElPUy5tbQppbmRleCBlMTM5OTY4ZDRmMGVlMzMyM2RkMjg5ZjQ3N2RkOGQ2
NDFkNzdlYzNhLi5kYzlmNzRjNDlhNmJlYTllZGMxNTA2YzVhYjk1N2UwMDZhMjA3YTVlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCkBA
IC00MTgsNiArNDE4LDE1IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OmRvbmVXaXRoVG91Y2hFdmVu
dChjb25zdCBOYXRpdmVXZWJUb3VjaEV2ZW50JiBuYXRpdmVXZWJ0b3VjCiB9CiAjZW5kaWYKIAor
I2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkb25l
RGVmZXJyaW5nTmF0aXZlR2VzdHVyZXMoYm9vbCBwcmV2ZW50TmF0aXZlR2VzdHVyZXMpCit7Cisg
ICAgW21fY29udGVudFZpZXcgX2RvbmVEZWZlcnJpbmdOYXRpdmVHZXN0dXJlczpwcmV2ZW50TmF0
aXZlR2VzdHVyZXNdOworfQorCisjZW5kaWYgLy8gRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCisK
IFJlZlB0cjxXZWJQb3B1cE1lbnVQcm94eT4gUGFnZUNsaWVudEltcGw6OmNyZWF0ZVBvcHVwTWVu
dVByb3h5KFdlYlBhZ2VQcm94eSYpCiB7CiAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgK
aW5kZXggNjM4ZDM4ZjVjZjFmZGM2MzFiNTg4YTlmMGExMWNiYTc4NmI2Y2RkYi4uMzA0NTk4NWFi
OTkwNTcyOWFlZWMyY2E3MTIwNzYzZjgyOWE2OTg3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaApAQCAtMTY1LDYg
KzE2NSw4IEBAIHR5cGVkZWYgc3RkOjpwYWlyPFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlv
blJlcXVlc3QsIEludGVyYWN0aW9uSW5mb3JtYXRpb25DCiAgICAgTShfcGFzdGVBc1F1b3RhdGlv
bikgXAogICAgIE0oX3Bhc3RlQW5kTWF0Y2hTdHlsZSkKIAorI2RlZmluZSBVU0VfREVGRVJSSU5H
X0dFU1RVUkVfUkVDT0dOSVpFUlMgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCisKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCiBlbnVtIFN1cHByZXNzU2VsZWN0aW9uQXNzaXN0YW50UmVhc29uIDogdWlu
dDhfdCB7CkBAIC0yMDUsOCArMjA3LDEwIEBAIHN0cnVjdCBXS0F1dG9Db3JyZWN0aW9uRGF0YSB7
CiBAZW5kCiAKIEBpbnRlcmZhY2UgV0tDb250ZW50VmlldyAoKSB7CisjaWYgVVNFKERFRkVSUklO
R19HRVNUVVJFX1JFQ09HTklaRVJTKQogICAgIFJldGFpblB0cjxXS0RlZmVycmluZ0dlc3R1cmVS
ZWNvZ25pemVyPiBfZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXJGb3JJbW1lZGlhdGVseVJlc2V0
dGFibGVHZXN0dXJlczsKICAgICBSZXRhaW5QdHI8V0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXpl
cj4gX2RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyRm9yRGVsYXllZFJlc2V0dGFibGVHZXN0dXJl
czsKKyNlbmRpZgogICAgIFJldGFpblB0cjxVSVdlYlRvdWNoRXZlbnRzR2VzdHVyZVJlY29nbml6
ZXI+IF90b3VjaEV2ZW50R2VzdHVyZVJlY29nbml6ZXI7CiAKICAgICBCT09MIF90b3VjaEV2ZW50
c0NhblByZXZlbnROYXRpdmVHZXN0dXJlczsKQEAgLTQ2Myw2ICs0NjcsOSBAQCBGT1JfRUFDSF9Q
UklWQVRFX1dLQ09OVEVOVFZJRVdfQUNUSU9OKERFQ0xBUkVfV0tDT05URU5UVklFV19BQ1RJT05f
Rk9SX1dFQl9WSUVXKQogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAtICh2b2lkKV93ZWJUb3Vj
aEV2ZW50Oihjb25zdCBXZWJLaXQ6Ok5hdGl2ZVdlYlRvdWNoRXZlbnQmKXRvdWNoRXZlbnQgcHJl
dmVudHNOYXRpdmVHZXN0dXJlczooQk9PTClwcmV2ZW50c0RlZmF1bHQ7CiAjZW5kaWYKKyNpZiBV
U0UoREVGRVJSSU5HX0dFU1RVUkVfUkVDT0dOSVpFUlMpCistICh2b2lkKV9kb25lRGVmZXJyaW5n
TmF0aXZlR2VzdHVyZXM6KEJPT0wpcHJldmVudE5hdGl2ZUdlc3R1cmVzOworI2VuZGlmCiAtICh2
b2lkKV9jb21taXRQb3RlbnRpYWxUYXBGYWlsZWQ7CiAtICh2b2lkKV9kaWROb3RIYW5kbGVUYXBB
c0NsaWNrOihjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpcG9pbnQ7CiAtICh2b2lkKV9kaWRDb21w
bGV0ZVN5bnRoZXRpY0NsaWNrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggZDI3ZmEzOTY4ZjJlYTdlNjBk
NmFmZTU2ODhiOGNkNTkwZmFiODkyMC4uMzVkNTNjZmVkNTE5ZDY1MTA5YzFmNjlmYTZiZTc4ZWNh
MmQ1ZTE4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC03NDIsNiArNzQyLDE4IEBAIC0gKHZvaWQpc2V0
dXBJbnRlcmFjdGlvbgogICAgIFtzZWxmIGFkZEdlc3R1cmVSZWNvZ25pemVyOl90b3VjaEFjdGlv
bkRvd25Td2lwZUdlc3R1cmVSZWNvZ25pemVyLmdldCgpXTsKICNlbmRpZgogCisjaWYgVVNFKERF
RkVSUklOR19HRVNUVVJFX1JFQ09HTklaRVJTKQorICAgIF9kZWZlcnJpbmdHZXN0dXJlUmVjb2du
aXplckZvckltbWVkaWF0ZWx5UmVzZXR0YWJsZUdlc3R1cmVzID0gYWRvcHROUyhbW1dLRGVmZXJy
aW5nR2VzdHVyZVJlY29nbml6ZXIgYWxsb2NdIGluaXRXaXRoRGVmZXJyaW5nR2VzdHVyZURlbGVn
YXRlOnNlbGZdKTsKKyAgICBbX2RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyRm9ySW1tZWRpYXRl
bHlSZXNldHRhYmxlR2VzdHVyZXMgc2V0TmFtZTpAIlRvdWNoIGV2ZW50IGRlZmVycmVyIChpbW1l
ZGlhdGUgcmVzZXQpIl07CisgICAgW19kZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplckZvckltbWVk
aWF0ZWx5UmVzZXR0YWJsZUdlc3R1cmVzIHNldERlbGVnYXRlOnNlbGZdOworICAgIFtzZWxmIGFk
ZEdlc3R1cmVSZWNvZ25pemVyOl9kZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplckZvckltbWVkaWF0
ZWx5UmVzZXR0YWJsZUdlc3R1cmVzLmdldCgpXTsKKworICAgIF9kZWZlcnJpbmdHZXN0dXJlUmVj
b2duaXplckZvckRlbGF5ZWRSZXNldHRhYmxlR2VzdHVyZXMgPSBhZG9wdE5TKFtbV0tEZWZlcnJp
bmdHZXN0dXJlUmVjb2duaXplciBhbGxvY10gaW5pdFdpdGhEZWZlcnJpbmdHZXN0dXJlRGVsZWdh
dGU6c2VsZl0pOworICAgIFtfZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXJGb3JEZWxheWVkUmVz
ZXR0YWJsZUdlc3R1cmVzIHNldE5hbWU6QCJUb3VjaCBldmVudCBkZWZlcnJlciAoZGVsYXllZCBy
ZXNldCkiXTsKKyAgICBbX2RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyRm9yRGVsYXllZFJlc2V0
dGFibGVHZXN0dXJlcyBzZXREZWxlZ2F0ZTpzZWxmXTsKKyAgICBbc2VsZiBhZGRHZXN0dXJlUmVj
b2duaXplcjpfZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXJGb3JEZWxheWVkUmVzZXR0YWJsZUdl
c3R1cmVzLmdldCgpXTsKKyNlbmRpZgorCiAgICAgX3RvdWNoRXZlbnRHZXN0dXJlUmVjb2duaXpl
ciA9IGFkb3B0TlMoW1tVSVdlYlRvdWNoRXZlbnRzR2VzdHVyZVJlY29nbml6ZXIgYWxsb2NdIGlu
aXRXaXRoVGFyZ2V0OnNlbGYgYWN0aW9uOkBzZWxlY3Rvcihfd2ViVG91Y2hFdmVudHNSZWNvZ25p
emVkOikgdG91Y2hEZWxlZ2F0ZTpzZWxmXSk7CiAgICAgW190b3VjaEV2ZW50R2VzdHVyZVJlY29n
bml6ZXIgc2V0RGVsZWdhdGU6c2VsZl07CiAgICAgW3NlbGYgYWRkR2VzdHVyZVJlY29nbml6ZXI6
X3RvdWNoRXZlbnRHZXN0dXJlUmVjb2duaXplci5nZXQoKV07CkBAIC05MDUsNiArOTE3LDE0IEBA
IC0gKHZvaWQpY2xlYW51cEludGVyYWN0aW9uCiAgICAgW190b3VjaEV2ZW50R2VzdHVyZVJlY29n
bml6ZXIgc2V0RGVsZWdhdGU6bmlsXTsKICAgICBbc2VsZiByZW1vdmVHZXN0dXJlUmVjb2duaXpl
cjpfdG91Y2hFdmVudEdlc3R1cmVSZWNvZ25pemVyLmdldCgpXTsKIAorI2lmIFVTRShERUZFUlJJ
TkdfR0VTVFVSRV9SRUNPR05JWkVSUykKKyAgICBbX2RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVy
Rm9ySW1tZWRpYXRlbHlSZXNldHRhYmxlR2VzdHVyZXMgc2V0RGVsZWdhdGU6bmlsXTsKKyAgICBb
c2VsZiByZW1vdmVHZXN0dXJlUmVjb2duaXplcjpfZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXJG
b3JJbW1lZGlhdGVseVJlc2V0dGFibGVHZXN0dXJlcy5nZXQoKV07CisKKyAgICBbX2RlZmVycmlu
Z0dlc3R1cmVSZWNvZ25pemVyRm9yRGVsYXllZFJlc2V0dGFibGVHZXN0dXJlcyBzZXREZWxlZ2F0
ZTpuaWxdOworICAgIFtzZWxmIHJlbW92ZUdlc3R1cmVSZWNvZ25pemVyOl9kZWZlcnJpbmdHZXN0
dXJlUmVjb2duaXplckZvckRlbGF5ZWRSZXNldHRhYmxlR2VzdHVyZXMuZ2V0KCldOworI2VuZGlm
CisKICNpZiBIQVZFKEhPVkVSX0dFU1RVUkVfUkVDT0dOSVpFUikKICAgICBbX21vdXNlR2VzdHVy
ZVJlY29nbml6ZXIgc2V0RGVsZWdhdGU6bmlsXTsKICAgICBbc2VsZiByZW1vdmVHZXN0dXJlUmVj
b2duaXplcjpfbW91c2VHZXN0dXJlUmVjb2duaXplci5nZXQoKV07CkBAIC0xMDE3LDYgKzEwMzcs
MTAgQEAgLSAodm9pZCljbGVhbnVwSW50ZXJhY3Rpb24KIAogLSAodm9pZClfcmVtb3ZlRGVmYXVs
dEdlc3R1cmVSZWNvZ25pemVycwogeworI2lmIFVTRShERUZFUlJJTkdfR0VTVFVSRV9SRUNPR05J
WkVSUykKKyAgICBbc2VsZiByZW1vdmVHZXN0dXJlUmVjb2duaXplcjpfZGVmZXJyaW5nR2VzdHVy
ZVJlY29nbml6ZXJGb3JJbW1lZGlhdGVseVJlc2V0dGFibGVHZXN0dXJlcy5nZXQoKV07CisgICAg
W3NlbGYgcmVtb3ZlR2VzdHVyZVJlY29nbml6ZXI6X2RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVy
Rm9yRGVsYXllZFJlc2V0dGFibGVHZXN0dXJlcy5nZXQoKV07CisjZW5kaWYKICAgICBbc2VsZiBy
ZW1vdmVHZXN0dXJlUmVjb2duaXplcjpfdG91Y2hFdmVudEdlc3R1cmVSZWNvZ25pemVyLmdldCgp
XTsKICAgICBbc2VsZiByZW1vdmVHZXN0dXJlUmVjb2duaXplcjpfc2luZ2xlVGFwR2VzdHVyZVJl
Y29nbml6ZXIuZ2V0KCldOwogICAgIFtzZWxmIHJlbW92ZUdlc3R1cmVSZWNvZ25pemVyOl9oaWdo
bGlnaHRMb25nUHJlc3NHZXN0dXJlUmVjb2duaXplci5nZXQoKV07CkBAIC0xMDQzLDYgKzEwNjcs
MTAgQEAgLSAodm9pZClfcmVtb3ZlRGVmYXVsdEdlc3R1cmVSZWNvZ25pemVycwogCiAtICh2b2lk
KV9hZGREZWZhdWx0R2VzdHVyZVJlY29nbml6ZXJzCiB7CisjaWYgVVNFKERFRkVSUklOR19HRVNU
VVJFX1JFQ09HTklaRVJTKQorICAgIFtzZWxmIGFkZEdlc3R1cmVSZWNvZ25pemVyOl9kZWZlcnJp
bmdHZXN0dXJlUmVjb2duaXplckZvckltbWVkaWF0ZWx5UmVzZXR0YWJsZUdlc3R1cmVzLmdldCgp
XTsKKyAgICBbc2VsZiBhZGRHZXN0dXJlUmVjb2duaXplcjpfZGVmZXJyaW5nR2VzdHVyZVJlY29n
bml6ZXJGb3JEZWxheWVkUmVzZXR0YWJsZUdlc3R1cmVzLmdldCgpXTsKKyNlbmRpZgogICAgIFtz
ZWxmIGFkZEdlc3R1cmVSZWNvZ25pemVyOl90b3VjaEV2ZW50R2VzdHVyZVJlY29nbml6ZXIuZ2V0
KCldOwogICAgIFtzZWxmIGFkZEdlc3R1cmVSZWNvZ25pemVyOl9zaW5nbGVUYXBHZXN0dXJlUmVj
b2duaXplci5nZXQoKV07CiAgICAgW3NlbGYgYWRkR2VzdHVyZVJlY29nbml6ZXI6X2hpZ2hsaWdo
dExvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyLmdldCgpXTsKQEAgLTE0MTgsOSArMTQ0Niw5IEBA
IC0gKHZvaWQpX3dlYlRvdWNoRXZlbnRzUmVjb2duaXplZDooVUlXZWJUb3VjaEV2ZW50c0dlc3R1
cmVSZWNvZ25pemVyICopZ2VzdHVyZVJlCiAjZW5kaWYKIAogICAgIGlmIChfdG91Y2hFdmVudHND
YW5QcmV2ZW50TmF0aXZlR2VzdHVyZXMpCi0gICAgICAgIF9wYWdlLT5oYW5kbGVUb3VjaEV2ZW50
U3luY2hyb25vdXNseShuYXRpdmVXZWJUb3VjaEV2ZW50KTsKKyAgICAgICAgX3BhZ2UtPmhhbmRs
ZVByZXZlbnRhYmxlVG91Y2hFdmVudChuYXRpdmVXZWJUb3VjaEV2ZW50KTsKICAgICBlbHNlCi0g
ICAgICAgIF9wYWdlLT5oYW5kbGVUb3VjaEV2ZW50QXN5bmNocm9ub3VzbHkobmF0aXZlV2ViVG91
Y2hFdmVudCk7CisgICAgICAgIF9wYWdlLT5oYW5kbGVVbnByZXZlbnRhYmxlVG91Y2hFdmVudChu
YXRpdmVXZWJUb3VjaEV2ZW50KTsKIAogICAgIGlmIChuYXRpdmVXZWJUb3VjaEV2ZW50LmFsbFRv
dWNoUG9pbnRzQXJlUmVsZWFzZWQoKSkgewogICAgICAgICBfdG91Y2hFdmVudHNDYW5QcmV2ZW50
TmF0aXZlR2VzdHVyZXMgPSBZRVM7CkBAIC0xNTkwLDE1ICsxNjE4LDI1IEBAIHN0YXRpYyBXZWJD
b3JlOjpGbG9hdFF1YWQgaW5mbGF0ZVF1YWQoY29uc3QgV2ViQ29yZTo6RmxvYXRRdWFkJiBxdWFk
LCBmbG9hdCBpbmZsCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKIC0gKHZvaWQpX3dlYlRvdWNo
RXZlbnQ6KGNvbnN0IFdlYktpdDo6TmF0aXZlV2ViVG91Y2hFdmVudCYpdG91Y2hFdmVudCBwcmV2
ZW50c05hdGl2ZUdlc3R1cmVzOihCT09MKXByZXZlbnRzTmF0aXZlR2VzdHVyZQogewotICAgIGlm
IChwcmV2ZW50c05hdGl2ZUdlc3R1cmUpIHsKLSAgICAgICAgX2xvbmdQcmVzc0NhbkNsaWNrID0g
Tk87CisgICAgaWYgKCFwcmV2ZW50c05hdGl2ZUdlc3R1cmUgfHwgIVtfdG91Y2hFdmVudEdlc3R1
cmVSZWNvZ25pemVyIGlzRGlzcGF0Y2hpbmdUb3VjaEV2ZW50c10pCisgICAgICAgIHJldHVybjsK
IAotICAgICAgICBfdG91Y2hFdmVudHNDYW5QcmV2ZW50TmF0aXZlR2VzdHVyZXMgPSBOTzsKLSAg
ICAgICAgW190b3VjaEV2ZW50R2VzdHVyZVJlY29nbml6ZXIgc2V0RGVmYXVsdFByZXZlbnRlZDpZ
RVNdOwotICAgIH0KKyAgICBfbG9uZ1ByZXNzQ2FuQ2xpY2sgPSBOTzsKKyAgICBfdG91Y2hFdmVu
dHNDYW5QcmV2ZW50TmF0aXZlR2VzdHVyZXMgPSBOTzsKKyAgICBbX3RvdWNoRXZlbnRHZXN0dXJl
UmVjb2duaXplciBzZXREZWZhdWx0UHJldmVudGVkOllFU107CiB9CiAjZW5kaWYKIAorI2lmIFVT
RShERUZFUlJJTkdfR0VTVFVSRV9SRUNPR05JWkVSUykKKworLSAodm9pZClfZG9uZURlZmVycmlu
Z05hdGl2ZUdlc3R1cmVzOihCT09MKXByZXZlbnROYXRpdmVHZXN0dXJlcworeworICAgIFtfZGVm
ZXJyaW5nR2VzdHVyZVJlY29nbml6ZXJGb3JJbW1lZGlhdGVseVJlc2V0dGFibGVHZXN0dXJlcyBz
ZXREZWZhdWx0UHJldmVudGVkOnByZXZlbnROYXRpdmVHZXN0dXJlc107CisgICAgW19kZWZlcnJp
bmdHZXN0dXJlUmVjb2duaXplckZvckRlbGF5ZWRSZXNldHRhYmxlR2VzdHVyZXMgc2V0RGVmYXVs
dFByZXZlbnRlZDpwcmV2ZW50TmF0aXZlR2VzdHVyZXNdOworfQorCisjZW5kaWYKKwogc3RhdGlj
IE5TVmFsdWUgKm5zU2l6ZUZvclRhcEhpZ2hsaWdodEJvcmRlclJhZGl1cyhXZWJDb3JlOjpJbnRT
aXplIGJvcmRlclJhZGl1cywgQ0dGbG9hdCBib3JkZXJSYWRpdXNTY2FsZSkKIHsKICAgICByZXR1
cm4gW05TVmFsdWUgdmFsdWVXaXRoQ0dTaXplOkNHU2l6ZU1ha2UoKGJvcmRlclJhZGl1cy53aWR0
aCgpICogYm9yZGVyUmFkaXVzU2NhbGUpICsgbWluaW11bVRhcEhpZ2hsaWdodFJhZGl1cywgKGJv
cmRlclJhZGl1cy5oZWlnaHQoKSAqIGJvcmRlclJhZGl1c1NjYWxlKSArIG1pbmltdW1UYXBIaWdo
bGlnaHRSYWRpdXMpXTsKQEAgLTE5NzIsNiArMjAxMCwxNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wg
aXNTYW1lUGFpcihVSUdlc3R1cmVSZWNvZ25pemVyICphLCBVSUdlc3R1cmVSZWNvZ25pemVyICpi
LCBVSQogCiAtIChCT09MKWdlc3R1cmVSZWNvZ25pemVyOihVSUdlc3R1cmVSZWNvZ25pemVyICop
Z2VzdHVyZVJlY29nbml6ZXIgc2hvdWxkUmVjb2duaXplU2ltdWx0YW5lb3VzbHlXaXRoR2VzdHVy
ZVJlY29nbml6ZXI6KFVJR2VzdHVyZVJlY29nbml6ZXIqKW90aGVyR2VzdHVyZVJlY29nbml6ZXIK
IHsKKyNpZiBVU0UoREVGRVJSSU5HX0dFU1RVUkVfUkVDT0dOSVpFUlMpCisgICAgaWYgKGlzU2Ft
ZVBhaXIoZ2VzdHVyZVJlY29nbml6ZXIsIG90aGVyR2VzdHVyZVJlY29nbml6ZXIsIF90b3VjaEV2
ZW50R2VzdHVyZVJlY29nbml6ZXIuZ2V0KCksIF9kZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplckZv
ckltbWVkaWF0ZWx5UmVzZXR0YWJsZUdlc3R1cmVzLmdldCgpKSkKKyAgICAgICAgcmV0dXJuIFlF
UzsKKworICAgIGlmIChpc1NhbWVQYWlyKGdlc3R1cmVSZWNvZ25pemVyLCBvdGhlckdlc3R1cmVS
ZWNvZ25pemVyLCBfdG91Y2hFdmVudEdlc3R1cmVSZWNvZ25pemVyLmdldCgpLCBfZGVmZXJyaW5n
R2VzdHVyZVJlY29nbml6ZXJGb3JEZWxheWVkUmVzZXR0YWJsZUdlc3R1cmVzLmdldCgpKSkKKyAg
ICAgICAgcmV0dXJuIFlFUzsKKyNlbmRpZgorCisgICAgaWYgKFtnZXN0dXJlUmVjb2duaXplciBp
c0tpbmRPZkNsYXNzOldLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIuY2xhc3NdICYmIFtvdGhl
ckdlc3R1cmVSZWNvZ25pemVyIGlzS2luZE9mQ2xhc3M6V0tEZWZlcnJpbmdHZXN0dXJlUmVjb2du
aXplci5jbGFzc10pCisgICAgICAgIHJldHVybiBZRVM7CisKICAgICBpZiAoaXNTYW1lUGFpcihn
ZXN0dXJlUmVjb2duaXplciwgb3RoZXJHZXN0dXJlUmVjb2duaXplciwgX2hpZ2hsaWdodExvbmdQ
cmVzc0dlc3R1cmVSZWNvZ25pemVyLmdldCgpLCBfbG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXIu
Z2V0KCkpKQogICAgICAgICByZXR1cm4gWUVTOwogCkBAIC0yMDIzLDYgKzIwNzIsMTcgQEAgLSAo
Qk9PTClnZXN0dXJlUmVjb2duaXplcjooVUlHZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmVSZWNv
Z25pemVyIHNob3VsZFJlcXVpcmUKICAgICBpZiAoZ2VzdHVyZVJlY29nbml6ZXIgPT0gX3RvdWNo
RXZlbnRHZXN0dXJlUmVjb2duaXplciAmJiBbX3dlYlZpZXcgX2lzTmF2aWdhdGlvblN3aXBlR2Vz
dHVyZVJlY29nbml6ZXI6b3RoZXJHZXN0dXJlUmVjb2duaXplcl0pCiAgICAgICAgIHJldHVybiBZ
RVM7CiAKKyAgICBpZiAoW290aGVyR2VzdHVyZVJlY29nbml6ZXIgaXNLaW5kT2ZDbGFzczpXS0Rl
ZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyLmNsYXNzXSkKKyAgICAgICAgcmV0dXJuIFsoV0tEZWZl
cnJpbmdHZXN0dXJlUmVjb2duaXplciAqKW90aGVyR2VzdHVyZVJlY29nbml6ZXIgc2hvdWxkRGVm
ZXJHZXN0dXJlUmVjb2duaXplcjpnZXN0dXJlUmVjb2duaXplcl07CisKKyAgICByZXR1cm4gTk87
Cit9CisKKy0gKEJPT0wpZ2VzdHVyZVJlY29nbml6ZXI6KFVJR2VzdHVyZVJlY29nbml6ZXIgKiln
ZXN0dXJlUmVjb2duaXplciBzaG91bGRCZVJlcXVpcmVkVG9GYWlsQnlHZXN0dXJlUmVjb2duaXpl
cjooVUlHZXN0dXJlUmVjb2duaXplciAqKW90aGVyR2VzdHVyZVJlY29nbml6ZXIKK3sKKyAgICBp
ZiAoW2dlc3R1cmVSZWNvZ25pemVyIGlzS2luZE9mQ2xhc3M6V0tEZWZlcnJpbmdHZXN0dXJlUmVj
b2duaXplci5jbGFzc10pCisgICAgICAgIHJldHVybiBbKFdLRGVmZXJyaW5nR2VzdHVyZVJlY29n
bml6ZXIgKilnZXN0dXJlUmVjb2duaXplciBzaG91bGREZWZlckdlc3R1cmVSZWNvZ25pemVyOm90
aGVyR2VzdHVyZVJlY29nbml6ZXJdOworCiAgICAgcmV0dXJuIE5POwogfQogCkBAIC0yMTA2LDYg
KzIxNjYsOSBAQCAtIChCT09MKWVuc3VyZVBvc2l0aW9uSW5mb3JtYXRpb25Jc1VwVG9EYXRlOihX
ZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZQogICAgIGlmIChbc2VsZiBfY3VycmVu
dFBvc2l0aW9uSW5mb3JtYXRpb25Jc1ZhbGlkRm9yUmVxdWVzdDpyZXF1ZXN0XSkKICAgICAgICAg
cmV0dXJuIFlFUzsKIAorICAgIGlmICghX3BhZ2UtPmhhc1J1bm5pbmdQcm9jZXNzKCkpCisgICAg
ICAgIHJldHVybiBOTzsKKwogICAgIGF1dG8qIGNvbm5lY3Rpb24gPSBfcGFnZS0+cHJvY2Vzcygp
LmNvbm5lY3Rpb24oKTsKICAgICBpZiAoIWNvbm5lY3Rpb24pCiAgICAgICAgIHJldHVybiBOTzsK
QEAgLTQxNDMsNiArNDIwNiw5IEBAIC0gKHZvaWQpX2RpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9y
TWFpbkZyYW1lCiAgICAgLy8gYXJlIGVuYWJsZWQgd2hlbiBhIHNpbmdsZSB0YXAgaXMgZmlyc3Qg
cmVjb2duaXplZC4gVGhpcyBhdm9pZHMgdGVzdHMgcnVubmluZyBpbiBzZXF1ZW5jZSBhbmQgc2lt
dWxhdGluZyB0YXBzCiAgICAgLy8gaW4gdGhlIHNhbWUgbG9jYXRpb24gdG8gdHJpZ2dlciBkb3Vi
bGUtdGFwIHJlY29nbml0aW9uLgogICAgIFtzZWxmIF9zZXREb3VibGVUYXBHZXN0dXJlc0VuYWJs
ZWQ6Tk9dOworCisgICAgW190d29GaW5nZXJEb3VibGVUYXBHZXN0dXJlUmVjb2duaXplciBzZXRF
bmFibGVkOk5PXTsKKyAgICBbX3R3b0ZpbmdlckRvdWJsZVRhcEdlc3R1cmVSZWNvZ25pemVyIHNl
dEVuYWJsZWQ6WUVTXTsKIH0KIAogLSAodm9pZClfZGlkQ29tbWl0TG9hZEZvck1haW5GcmFtZQpA
QCAtNjY4NSwyNCArNjc1MSw1MCBAQCAtICh2b2lkKV9oaWRlQ29udGV4dE1lbnVIaW50Q29udGFp
bmVyCiAKICNwcmFnbWEgbWFyayAtIFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXJEZWxlZ2F0
ZQogCi0tIChCT09MKWRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyOihXS0RlZmVycmluZ0dlc3R1
cmVSZWNvZ25pemVyICopZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgc2hvdWxkRGVmZXJHZXN0
dXJlc1dpdGhFdmVudDooVUlFdmVudCAqKWV2ZW50CistIChCT09MKWRlZmVycmluZ0dlc3R1cmVS
ZWNvZ25pemVyOihXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyICopZGVmZXJyaW5nR2VzdHVy
ZVJlY29nbml6ZXIgc2hvdWxkRGVmZXJHZXN0dXJlc0FmdGVyQmVnaW5uaW5nVG91Y2hlc1dpdGhF
dmVudDooVUlFdmVudCAqKWV2ZW50CiB7CiAgICAgcmV0dXJuICFbc2VsZiBnZXN0dXJlUmVjb2du
aXplcjpkZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciBpc0ludGVycnVwdGluZ01vbWVudHVtU2Ny
b2xsaW5nV2l0aEV2ZW50OmV2ZW50XTsKIH0KIAorLSAoQk9PTClkZWZlcnJpbmdHZXN0dXJlUmVj
b2duaXplcjooV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciAqKWRlZmVycmluZ0dlc3R1cmVS
ZWNvZ25pemVyIHNob3VsZERlZmVyR2VzdHVyZXNBZnRlckVuZGluZ1RvdWNoZXNXaXRoRXZlbnQ6
KFVJRXZlbnQgKilldmVudAoreworICAgIHJldHVybiBfcGFnZS0+aXNIYW5kbGluZ1ByZXZlbnRh
YmxlVG91Y2hTdGFydCgpOworfQorCiAtIChCT09MKWRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVy
OihXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyICopZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6
ZXIgc2hvdWxkRGVmZXJPdGhlckdlc3R1cmVSZWNvZ25pemVyOihVSUdlc3R1cmVSZWNvZ25pemVy
ICopZ2VzdHVyZVJlY29nbml6ZXIKIHsKLSAgICBhdXRvIGlzTXVsdGlwbGVUYXBHZXN0dXJlID0g
W10oVUlHZXN0dXJlUmVjb2duaXplciAqZ2VzdHVyZSkgewotICAgICAgICByZXR1cm4gW2dlc3R1
cmUgaXNLaW5kT2ZDbGFzczpVSVRhcEdlc3R1cmVSZWNvZ25pemVyLmNsYXNzXSAmJiBbKFVJVGFw
R2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlIG51bWJlck9mVGFwc1JlcXVpcmVkXSA+IDE7Cisj
aWYgVVNFKERFRkVSUklOR19HRVNUVVJFX1JFQ09HTklaRVJTKQorICAgIGF1dG8gaXNPbmVGaW5n
ZXJNdWx0aXBsZVRhcEdlc3R1cmUgPSBbXShVSUdlc3R1cmVSZWNvZ25pemVyICpnZXN0dXJlKSB7
CisgICAgICAgIGlmICghW2dlc3R1cmUgaXNLaW5kT2ZDbGFzczpVSVRhcEdlc3R1cmVSZWNvZ25p
emVyLmNsYXNzXSkKKyAgICAgICAgICAgIHJldHVybiBOTzsKKworICAgICAgICBVSVRhcEdlc3R1
cmVSZWNvZ25pemVyICp0YXBHZXN0dXJlID0gKFVJVGFwR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0
dXJlOworICAgICAgICByZXR1cm4gdGFwR2VzdHVyZS5udW1iZXJPZlRhcHNSZXF1aXJlZCA+IDEg
JiYgdGFwR2VzdHVyZS5udW1iZXJPZlRvdWNoZXNSZXF1aXJlZCA8IDI7CiAgICAgfTsKIAotICAg
IGlmIChkZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciA9PSBfZGVmZXJyaW5nR2VzdHVyZVJlY29n
bml6ZXJGb3JEZWxheWVkUmVzZXR0YWJsZUdlc3R1cmVzKQotICAgICAgICByZXR1cm4gZ2VzdHVy
ZVJlY29nbml6ZXIgIT0gX3RvdWNoRXZlbnRHZXN0dXJlUmVjb2duaXplciAmJiBpc011bHRpcGxl
VGFwR2VzdHVyZShnZXN0dXJlUmVjb2duaXplcik7CisgICAgaWYgKGRlZmVycmluZ0dlc3R1cmVS
ZWNvZ25pemVyID09IF9kZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplckZvckRlbGF5ZWRSZXNldHRh
YmxlR2VzdHVyZXMpIHsKKyAgICAgICAgaWYgKFtnZXN0dXJlUmVjb2duaXplciBpc0tpbmRPZkNs
YXNzOldLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIuY2xhc3NdKQorICAgICAgICAgICAgcmV0
dXJuIE5POworCisgICAgICAgIGlmIChnZXN0dXJlUmVjb2duaXplciA9PSBfdG91Y2hFdmVudEdl
c3R1cmVSZWNvZ25pemVyKQorICAgICAgICAgICAgcmV0dXJuIE5POwogCi0gICAgaWYgKGRlZmVy
cmluZ0dlc3R1cmVSZWNvZ25pemVyID09IF9kZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplckZvcklt
bWVkaWF0ZWx5UmVzZXR0YWJsZUdlc3R1cmVzKQotICAgICAgICByZXR1cm4gZ2VzdHVyZVJlY29n
bml6ZXIgIT0gX3RvdWNoRXZlbnRHZXN0dXJlUmVjb2duaXplciAmJiAhaXNNdWx0aXBsZVRhcEdl
c3R1cmUoZ2VzdHVyZVJlY29nbml6ZXIpOworICAgICAgICByZXR1cm4gaXNPbmVGaW5nZXJNdWx0
aXBsZVRhcEdlc3R1cmUoZ2VzdHVyZVJlY29nbml6ZXIpOworICAgIH0KKworICAgIGlmIChkZWZl
cnJpbmdHZXN0dXJlUmVjb2duaXplciA9PSBfZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXJGb3JJ
bW1lZGlhdGVseVJlc2V0dGFibGVHZXN0dXJlcykgeworICAgICAgICBpZiAoW2dlc3R1cmVSZWNv
Z25pemVyIGlzS2luZE9mQ2xhc3M6V0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplci5jbGFzc10p
CisgICAgICAgICAgICByZXR1cm4gTk87CisKKyAgICAgICAgaWYgKGdlc3R1cmVSZWNvZ25pemVy
ID09IF90b3VjaEV2ZW50R2VzdHVyZVJlY29nbml6ZXIpCisgICAgICAgICAgICByZXR1cm4gTk87
CisKKyAgICAgICAgcmV0dXJuICFpc09uZUZpbmdlck11bHRpcGxlVGFwR2VzdHVyZShnZXN0dXJl
UmVjb2duaXplcik7CisgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisjZW5kaWYK
KwogICAgIHJldHVybiBOTzsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyLmgKaW5kZXggZTY4NjJiNjMw
Y2I5YWU5ZmVjMDVlNDQzZmNkYTQ2YmFlYjU0Nzc1My4uYWY0ODIzOTI2ZTE5YTkzMjIyZTgxNjlh
OTE3NTY3ZmYzYjE3MzMzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplci5oCkBAIC0zMiw3ICszMiw4IEBA
CiBAY2xhc3MgV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplcjsKIAogQHByb3RvY29sIFdLRGVm
ZXJyaW5nR2VzdHVyZVJlY29nbml6ZXJEZWxlZ2F0ZQotLSAoQk9PTClkZWZlcnJpbmdHZXN0dXJl
UmVjb2duaXplcjooV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciAqKWRlZmVycmluZ0dlc3R1
cmVSZWNvZ25pemVyIHNob3VsZERlZmVyR2VzdHVyZXNXaXRoRXZlbnQ6KFVJRXZlbnQgKilldmVu
dDsKKy0gKEJPT0wpZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXI6KFdLRGVmZXJyaW5nR2VzdHVy
ZVJlY29nbml6ZXIgKilkZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciBzaG91bGREZWZlckdlc3R1
cmVzQWZ0ZXJFbmRpbmdUb3VjaGVzV2l0aEV2ZW50OihVSUV2ZW50ICopZXZlbnQ7CistIChCT09M
KWRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyOihXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVy
ICopZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgc2hvdWxkRGVmZXJHZXN0dXJlc0FmdGVyQmVn
aW5uaW5nVG91Y2hlc1dpdGhFdmVudDooVUlFdmVudCAqKWV2ZW50OwogLSAoQk9PTClkZWZlcnJp
bmdHZXN0dXJlUmVjb2duaXplcjooV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciAqKWRlZmVy
cmluZ0dlc3R1cmVSZWNvZ25pemVyIHNob3VsZERlZmVyT3RoZXJHZXN0dXJlUmVjb2duaXplcjoo
VUlHZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmVSZWNvZ25pemVyOwogQGVuZAogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2du
aXplci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0RlZmVycmluZ0dlc3R1cmVS
ZWNvZ25pemVyLm1tCmluZGV4IDliMzc2MDk3YTNhMDQxMmVhMWQ5ODNkOTRjNjc1OGQ2MmJiNDY2
NzkuLjEwYWM1YTc5Nzk4ODY5NDhjOTI2NTljYzgyNTQ1YjZjZDczY2YzMzggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVy
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0RlZmVycmluZ0dlc3R1cmVS
ZWNvZ25pemVyLm1tCkBAIC00OSwxMCArNDksMjMgQEAgLSAoaWQgPFdLRGVmZXJyaW5nR2VzdHVy
ZVJlY29nbml6ZXJEZWxlZ2F0ZT4pZGVmZXJyaW5nR2VzdHVyZURlbGVnYXRlCiAtICh2b2lkKXRv
dWNoZXNCZWdhbjooTlNTZXQ8VUlUb3VjaCAqPiAqKXRvdWNoZXMgd2l0aEV2ZW50OihVSUV2ZW50
ICopZXZlbnQKIHsKICAgICBbc3VwZXIgdG91Y2hlc0JlZ2FuOnRvdWNoZXMgd2l0aEV2ZW50OmV2
ZW50XTsKLSAgICBpZiAoW19kZWZlcnJpbmdHZXN0dXJlRGVsZWdhdGUgZGVmZXJyaW5nR2VzdHVy
ZVJlY29nbml6ZXI6c2VsZiBzaG91bGREZWZlckdlc3R1cmVzV2l0aEV2ZW50OmV2ZW50XSkKLSAg
ICAgICAgc2VsZi5zdGF0ZSA9IFVJR2VzdHVyZVJlY29nbml6ZXJTdGF0ZVBvc3NpYmxlOwotICAg
IGVsc2UKLSAgICAgICAgc2VsZi5zdGF0ZSA9IFVJR2VzdHVyZVJlY29nbml6ZXJTdGF0ZUZhaWxl
ZDsKKyAgICBpZiAoW19kZWZlcnJpbmdHZXN0dXJlRGVsZWdhdGUgZGVmZXJyaW5nR2VzdHVyZVJl
Y29nbml6ZXI6c2VsZiBzaG91bGREZWZlckdlc3R1cmVzQWZ0ZXJCZWdpbm5pbmdUb3VjaGVzV2l0
aEV2ZW50OmV2ZW50XSkKKyAgICAgICAgcmV0dXJuOworCisgICAgc2VsZi5zdGF0ZSA9IFVJR2Vz
dHVyZVJlY29nbml6ZXJTdGF0ZUZhaWxlZDsKK30KKworLSAodm9pZCl0b3VjaGVzRW5kZWQ6KE5T
U2V0PFVJVG91Y2ggKj4gKil0b3VjaGVzIHdpdGhFdmVudDooVUlFdmVudCAqKWV2ZW50Cit7Cisg
ICAgW3N1cGVyIHRvdWNoZXNFbmRlZDp0b3VjaGVzIHdpdGhFdmVudDpldmVudF07CisKKyAgICBp
ZiAoc2VsZi5zdGF0ZSAhPSBVSUdlc3R1cmVSZWNvZ25pemVyU3RhdGVQb3NzaWJsZSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgaWYgKFtfZGVmZXJyaW5nR2VzdHVyZURlbGVnYXRlIGRlZmVycmlu
Z0dlc3R1cmVSZWNvZ25pemVyOnNlbGYgc2hvdWxkRGVmZXJHZXN0dXJlc0FmdGVyRW5kaW5nVG91
Y2hlc1dpdGhFdmVudDpldmVudF0pCisgICAgICAgIHJldHVybjsKKworICAgIHNlbGYuc3RhdGUg
PSBVSUdlc3R1cmVSZWNvZ25pemVyU3RhdGVGYWlsZWQ7CiB9CiAKIC0gKHZvaWQpdG91Y2hlc0Nh
bmNlbGxlZDooTlNTZXQ8VUlUb3VjaCAqPiAqKXRvdWNoZXMgd2l0aEV2ZW50OihVSUV2ZW50ICop
ZXZlbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS1Njcm9sbFZp
ZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tTY3JvbGxWaWV3Lm1tCmluZGV4
IGQ4NGNkZmM5Y2MwNzYwNmM1MDFmNjQzMDk4NzI1MjMzOTU0OWMxMjYuLjkwMzU3ZGQ5NjljY2Fk
NmM2ZjRmZmM2Y2NlMmFjMDYyYTE4M2Y3MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS1Njcm9sbFZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dLU2Nyb2xsVmlldy5tbQpAQCAtMzAsNiArMzAsNyBAQAogCiAjaW1wb3J0ICJVSUtpdFNQ
SS5oIgogI2ltcG9ydCAiVmVyc2lvbkNoZWNrcy5oIgorI2ltcG9ydCAiV0tEZWZlcnJpbmdHZXN0
dXJlUmVjb2duaXplci5oIgogI2ltcG9ydCAiV0tXZWJWaWV3SW50ZXJuYWwuaCIKICNpbXBvcnQg
PHBhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmg+CiAjaW1wb3J0IDx3dGYvV2Vha09iakNQdHIu
aD4KQEAgLTE4NCw2ICsxODUsMjIgQEAgLSAoaWQgPFVJU2Nyb2xsVmlld0RlbGVnYXRlPilkZWxl
Z2F0ZQogICAgIHJldHVybiBfZXh0ZXJuYWxEZWxlZ2F0ZS5nZXRBdXRvcmVsZWFzZWQoKTsKIH0K
IAorLSAoQk9PTClnZXN0dXJlUmVjb2duaXplcjooVUlHZXN0dXJlUmVjb2duaXplciAqKWdlc3R1
cmVSZWNvZ25pemVyIHNob3VsZFJlcXVpcmVGYWlsdXJlT2ZHZXN0dXJlUmVjb2duaXplcjooVUlH
ZXN0dXJlUmVjb2duaXplciAqKW90aGVyR2VzdHVyZVJlY29nbml6ZXIKK3sKKyAgICBpZiAoW290
aGVyR2VzdHVyZVJlY29nbml6ZXIgaXNLaW5kT2ZDbGFzczpXS0RlZmVycmluZ0dlc3R1cmVSZWNv
Z25pemVyLmNsYXNzXSkKKyAgICAgICAgcmV0dXJuIFsoV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2du
aXplciAqKW90aGVyR2VzdHVyZVJlY29nbml6ZXIgc2hvdWxkRGVmZXJHZXN0dXJlUmVjb2duaXpl
cjpnZXN0dXJlUmVjb2duaXplcl07CisKKyAgICByZXR1cm4gTk87Cit9CisKKy0gKEJPT0wpZ2Vz
dHVyZVJlY29nbml6ZXI6KFVJR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmVjb2duaXplciBz
aG91bGRCZVJlcXVpcmVkVG9GYWlsQnlHZXN0dXJlUmVjb2duaXplcjooVUlHZXN0dXJlUmVjb2du
aXplciAqKW90aGVyR2VzdHVyZVJlY29nbml6ZXIKK3sKKyAgICBpZiAoW2dlc3R1cmVSZWNvZ25p
emVyIGlzS2luZE9mQ2xhc3M6V0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplci5jbGFzc10pCisg
ICAgICAgIHJldHVybiBbKFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmVj
b2duaXplciBzaG91bGREZWZlckdlc3R1cmVSZWNvZ25pemVyOm90aGVyR2VzdHVyZVJlY29nbml6
ZXJdOworCisgICAgcmV0dXJuIE5POworfQorCiAtICh2b2lkKV91cGRhdGVEZWxlZ2F0ZQogewog
ICAgIFdLU2Nyb2xsVmlld0RlbGVnYXRlRm9yd2FyZGVyICpvbGRGb3J3YXJkZXIgPSBfZGVsZWdh
dGVGb3J3YXJkZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9FdmVudERpc3BhdGNoZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
RXZlbnREaXNwYXRjaGVyLmNwcAppbmRleCA2ODA3ZWQ1MjkyNTE3OGQ2ZjljMjNlNDA4NTFlNGFm
NDE4NmIxYjNmLi5iOTRmOTMxNDZiZWZmZjhmMzQzYWVkMGU4MWQ3YTY0NTczNmE1Y2JhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hl
ci5jcHAKQEAgLTE2NCw3ICsxNjQsNyBAQCB2b2lkIEV2ZW50RGlzcGF0Y2hlcjo6Z2V0UXVldWVk
VG91Y2hFdmVudHNGb3JQYWdlKGNvbnN0IFdlYlBhZ2UmIHdlYlBhZ2UsIFRvdWNoRQogICAgIGRl
c3RpbmF0aW9uUXVldWUgPSBtX3RvdWNoRXZlbnRzLnRha2Uod2ViUGFnZS5pZGVudGlmaWVyKCkp
OwogfQogCi12b2lkIEV2ZW50RGlzcGF0Y2hlcjo6dG91Y2hFdmVudChQYWdlSWRlbnRpZmllciBw
YWdlSUQsIGNvbnN0IFdlYktpdDo6V2ViVG91Y2hFdmVudCYgdG91Y2hFdmVudCkKK3ZvaWQgRXZl
bnREaXNwYXRjaGVyOjp0b3VjaEV2ZW50KFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgY29uc3QgV2Vi
S2l0OjpXZWJUb3VjaEV2ZW50JiB0b3VjaEV2ZW50LCBPcHRpb25hbDxDYWxsYmFja0lEPiBjYWxs
YmFja0lEKQogewogICAgIGJvb2wgdXBkYXRlTGlzdFdhc0VtcHR5OwogICAgIHsKQEAgLTE3Miwx
NyArMTcyLDE2IEBAIHZvaWQgRXZlbnREaXNwYXRjaGVyOjp0b3VjaEV2ZW50KFBhZ2VJZGVudGlm
aWVyIHBhZ2VJRCwgY29uc3QgV2ViS2l0OjpXZWJUb3VjaEV2CiAgICAgICAgIHVwZGF0ZUxpc3RX
YXNFbXB0eSA9IG1fdG91Y2hFdmVudHMuaXNFbXB0eSgpOwogICAgICAgICBhdXRvIGFkZFJlc3Vs
dCA9IG1fdG91Y2hFdmVudHMuYWRkKHBhZ2VJRCwgVG91Y2hFdmVudFF1ZXVlKCkpOwogICAgICAg
ICBpZiAoYWRkUmVzdWx0LmlzTmV3RW50cnkpCi0gICAgICAgICAgICBhZGRSZXN1bHQuaXRlcmF0
b3ItPnZhbHVlLmFwcGVuZCh0b3VjaEV2ZW50KTsKKyAgICAgICAgICAgIGFkZFJlc3VsdC5pdGVy
YXRvci0+dmFsdWUuYXBwZW5kKHsgdG91Y2hFdmVudCwgY2FsbGJhY2tJRCB9KTsKICAgICAgICAg
ZWxzZSB7Ci0gICAgICAgICAgICBUb3VjaEV2ZW50UXVldWUmIHF1ZXVlZEV2ZW50cyA9IGFkZFJl
c3VsdC5pdGVyYXRvci0+dmFsdWU7CisgICAgICAgICAgICBhdXRvJiBxdWV1ZWRFdmVudHMgPSBh
ZGRSZXN1bHQuaXRlcmF0b3ItPnZhbHVlOwogICAgICAgICAgICAgQVNTRVJUKCFxdWV1ZWRFdmVu
dHMuaXNFbXB0eSgpKTsKLSAgICAgICAgICAgIGNvbnN0IFdlYlRvdWNoRXZlbnQmIGxhc3RUb3Vj
aEV2ZW50ID0gcXVldWVkRXZlbnRzLmxhc3QoKTsKLQorICAgICAgICAgICAgYXV0byYgbGFzdEV2
ZW50QW5kQ2FsbGJhY2sgPSBxdWV1ZWRFdmVudHMubGFzdCgpOwogICAgICAgICAgICAgLy8gQ29h
bGVzY2UgdG91Y2ggbW92ZSBldmVudHMuCi0gICAgICAgICAgICBpZiAodG91Y2hFdmVudC50eXBl
KCkgPT0gV2ViRXZlbnQ6OlRvdWNoTW92ZSAmJiBsYXN0VG91Y2hFdmVudC50eXBlKCkgPT0gV2Vi
RXZlbnQ6OlRvdWNoTW92ZSkKLSAgICAgICAgICAgICAgICBxdWV1ZWRFdmVudHMubGFzdCgpID0g
dG91Y2hFdmVudDsKKyAgICAgICAgICAgIGlmICh0b3VjaEV2ZW50LnR5cGUoKSA9PSBXZWJFdmVu
dDo6VG91Y2hNb3ZlICYmIGxhc3RFdmVudEFuZENhbGxiYWNrLmZpcnN0LnR5cGUoKSA9PSBXZWJF
dmVudDo6VG91Y2hNb3ZlICYmICFjYWxsYmFja0lEICYmICFsYXN0RXZlbnRBbmRDYWxsYmFjay5z
ZWNvbmQpCisgICAgICAgICAgICAgICAgcXVldWVkRXZlbnRzLmxhc3QoKSA9IHsgdG91Y2hFdmVu
dCwgV1RGOjpudWxsb3B0IH07CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgcXVl
dWVkRXZlbnRzLmFwcGVuZCh0b3VjaEV2ZW50KTsKKyAgICAgICAgICAgICAgICBxdWV1ZWRFdmVu
dHMuYXBwZW5kKHsgdG91Y2hFdmVudCwgY2FsbGJhY2tJRCB9KTsKICAgICAgICAgfQogICAgIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNw
YXRjaGVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNo
ZXIuaAppbmRleCBlMWJiYmQ0Nzk2OWJmYmI3NTJjNjFkMjFjNjFhMjllZWZhZDk2MmYyLi5lZjg1
YzM5OWY0YjNkODBmNjVkZmI4OTBhMDFiYzhhYzc5ZDRiNzUxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuaApAQCAtMjYsOCArMjYs
OCBAQAogI2lmbmRlZiBFdmVudERpc3BhdGNoZXJfaAogI2RlZmluZSBFdmVudERpc3BhdGNoZXJf
aAogCisjaW5jbHVkZSAiQ2FsbGJhY2tJRC5oIgogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKLQog
I2luY2x1ZGUgIldlYkV2ZW50LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlSWRlbnRpZmllci5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvV2hlZWxFdmVudERlbHRhRmlsdGVyLmg+CkBAIC00OCw3ICs0
OCw2IEBAIGNsYXNzIFRocmVhZGVkU2Nyb2xsaW5nVHJlZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7
CiAKLWNsYXNzIFdlYkV2ZW50OwogY2xhc3MgV2ViUGFnZTsKIGNsYXNzIFdlYldoZWVsRXZlbnQ7
CiAKQEAgLTYzLDcgKzYyLDcgQEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoSU9TX1RP
VUNIX0VWRU5UUykKLSAgICB0eXBlZGVmIFZlY3RvcjxXZWJUb3VjaEV2ZW50LCAxPiBUb3VjaEV2
ZW50UXVldWU7CisgICAgdXNpbmcgVG91Y2hFdmVudFF1ZXVlID0gVmVjdG9yPHN0ZDo6cGFpcjxX
ZWJUb3VjaEV2ZW50LCBPcHRpb25hbDxDYWxsYmFja0lEPj4sIDE+OwogCiAgICAgdm9pZCBjbGVh
clF1ZXVlZFRvdWNoRXZlbnRzRm9yUGFnZShjb25zdCBXZWJQYWdlJik7CiAgICAgdm9pZCBnZXRR
dWV1ZWRUb3VjaEV2ZW50c0ZvclBhZ2UoY29uc3QgV2ViUGFnZSYsIFRvdWNoRXZlbnRRdWV1ZSYp
OwpAQCAtODAsNyArNzksNyBAQCBwcml2YXRlOgogICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMKICAg
ICB2b2lkIHdoZWVsRXZlbnQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIGNvbnN0IFdlYldoZWVs
RXZlbnQmLCBib29sIGNhblJ1YmJlckJhbmRBdExlZnQsIGJvb2wgY2FuUnViYmVyQmFuZEF0Umln
aHQsIGJvb2wgY2FuUnViYmVyQmFuZEF0VG9wLCBib29sIGNhblJ1YmJlckJhbmRBdEJvdHRvbSk7
CiAjaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCi0gICAgdm9pZCB0b3VjaEV2ZW50KFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyLCBjb25zdCBXZWJUb3VjaEV2ZW50Jik7CisgICAgdm9pZCB0b3Vj
aEV2ZW50KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBjb25zdCBXZWJUb3VjaEV2ZW50JiwgT3B0
aW9uYWw8Q2FsbGJhY2tJRD4pOwogI2VuZGlmCiAjaWYgRU5BQkxFKE1BQ19HRVNUVVJFX0VWRU5U
UykKICAgICB2b2lkIGdlc3R1cmVFdmVudChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgY29uc3Qg
V2ViR2VzdHVyZUV2ZW50Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9FdmVudERpc3BhdGNoZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIubWVzc2FnZXMuaW4KaW5kZXggYWY5MDRiNDUx
NmExMDk4MDg1NGMxYTM0NGU2MTIyY2ZkNzE2NGI4NC4uNjkzN2QwZGMyOWM0YzMyMmI5YmU1ODQy
YWYyNzYyMGM4MzA0MDdlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvRXZlbnREaXNwYXRjaGVyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5tZXNzYWdlcy5pbgpAQCAtMjMsNyArMjMs
NyBAQAogbWVzc2FnZXMgLT4gRXZlbnREaXNwYXRjaGVyIHsKICAgICBXaGVlbEV2ZW50KFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViS2l0OjpXZWJXaGVlbEV2ZW50IGV2ZW50LCBi
b29sIGNhblJ1YmJlckJhbmRBdExlZnQsIGJvb2wgY2FuUnViYmVyQmFuZEF0UmlnaHQsIGJvb2wg
Y2FuUnViYmVyQmFuZEF0VG9wLCBib29sIGNhblJ1YmJlckJhbmRBdEJvdHRvbSkKICNpZiBFTkFC
TEUoSU9TX1RPVUNIX0VWRU5UUykKLSAgICBUb3VjaEV2ZW50KFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyIHBhZ2VJRCwgV2ViS2l0OjpXZWJUb3VjaEV2ZW50IGV2ZW50KQorICAgIFRvdWNoRXZlbnQo
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJLaXQ6OldlYlRvdWNoRXZlbnQgZXZl
bnQsIE9wdGlvbmFsPFdlYktpdDo6Q2FsbGJhY2tJRD4gY2FsbGJhY2tJRCkKICNlbmRpZgogI2lm
IEVOQUJMRShNQUNfR0VTVFVSRV9FVkVOVFMpCiAgICAgR2VzdHVyZUV2ZW50KFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViS2l0OjpXZWJHZXN0dXJlRXZlbnQgZXZlbnQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggNjk4MzhiMDIyYWY2
OTgwZDFjMzNiOTdlMzcyOWFjZjViNzZjOWVkMy4uM2JmOWRhNTJlYzAwZjNjZTNmYzI5Y2VmY2U1
NDIxODhhYmQ3OWQ5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaApAQCAtNzE3LDcgKzcxNyw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkgJiYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCi0gICAgdm9pZCBkaXNwYXRj
aEFzeW5jaHJvbm91c1RvdWNoRXZlbnRzKGNvbnN0IFZlY3RvcjxXZWJUb3VjaEV2ZW50LCAxPiYg
cXVldWUpOworICAgIHZvaWQgZGlzcGF0Y2hBc3luY2hyb25vdXNUb3VjaEV2ZW50cyhjb25zdCBW
ZWN0b3I8c3RkOjpwYWlyPFdlYlRvdWNoRXZlbnQsIE9wdGlvbmFsPENhbGxiYWNrSUQ+PiwgMT4m
IHF1ZXVlKTsKICNlbmRpZgogCiAgICAgYm9vbCBoYXNSaWNobHlFZGl0YWJsZVNlbGVjdGlvbigp
IGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9z
L1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2Vi
UGFnZUlPUy5tbQppbmRleCAzNDY4NTZiYjUxYTMwNDJiZjllZDYzM2ZlNGM5ZGE5NDFkYzYwZGI0
Li43NTc2YjYwYjBiMjYxYjdiMDAzNWJhNWNjZTdhNWQ1NWM4MzJjYTRlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtMzc0
MiwxMSArMzc0MiwxNCBAQCB2b2lkIFdlYlBhZ2U6OndpbGxTdGFydFVzZXJUcmlnZ2VyZWRab29t
aW5nKCkKIH0KIAogI2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQotdm9pZCBXZWJQYWdlOjpk
aXNwYXRjaEFzeW5jaHJvbm91c1RvdWNoRXZlbnRzKGNvbnN0IFZlY3RvcjxXZWJUb3VjaEV2ZW50
LCAxPiYgcXVldWUpCit2b2lkIFdlYlBhZ2U6OmRpc3BhdGNoQXN5bmNocm9ub3VzVG91Y2hFdmVu
dHMoY29uc3QgVmVjdG9yPHN0ZDo6cGFpcjxXZWJUb3VjaEV2ZW50LCBPcHRpb25hbDxDYWxsYmFj
a0lEPj4sIDE+JiBxdWV1ZSkKIHsKLSAgICBib29sIGlnbm9yZWQ7Ci0gICAgZm9yIChjb25zdCBX
ZWJUb3VjaEV2ZW50JiBldmVudCA6IHF1ZXVlKQotICAgICAgICBkaXNwYXRjaFRvdWNoRXZlbnQo
ZXZlbnQsIGlnbm9yZWQpOworICAgIGZvciAoYXV0byYgZXZlbnRBbmRDYWxsYmFja0lEIDogcXVl
dWUpIHsKKyAgICAgICAgYm9vbCBoYW5kbGVkOworICAgICAgICBkaXNwYXRjaFRvdWNoRXZlbnQo
ZXZlbnRBbmRDYWxsYmFja0lELmZpcnN0LCBoYW5kbGVkKTsKKyAgICAgICAgaWYgKGV2ZW50QW5k
Q2FsbGJhY2tJRC5zZWNvbmQpCisgICAgICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OkJvb2xDYWxsYmFjayhoYW5kbGVkLCAqZXZlbnRBbmRDYWxsYmFja0lELnNlY29uZCkpOwor
ICAgIH0KIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZDNhNGY3MTE1OGI4ZTlmNGYyMjQ2NWIyNDdmZjdj
MzJkZWI3ODMxNy4uYTc1ZmQ1N2ZhMmVmNTE4NzQ1MzVlN2QyNjVhMDQ5Y2JjOTYxYmY0YSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDQyIEBACisyMDE5LTEyLTA2ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNp
ZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIFdLV2ViVmlldyB0b3VjaCBldmVudCBnZXN0
dXJlIHJlY29nbml0aW9uIHNob3VsZCBub3QgYmxvY2sgdGhlIGFwcGxpY2F0aW9uIHByb2Nlc3Mg
bWFpbiB0aHJlYWQgd2hlbiBwb3NzaWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjA0NjY0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zODY3MDY5
Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZh
c3QvZXZlbnRzL3RvdWNoL2lvcy9wcmV2ZW50LWRlZmF1bHQtb24tdG91Y2gtc3RhcnQtd2l0aC1z
bG93LWV2ZW50LWxpc3RlbmVyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9l
dmVudHMvdG91Y2gvaW9zL3ByZXZlbnQtZGVmYXVsdC1vbi10b3VjaC1zdGFydC13aXRoLXNsb3ct
ZXZlbnQtbGlzdGVuZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gv
aW9zL3Njcm9sbC1vbi10b3VjaC1zdGFydC13aXRoLXNsb3ctZXZlbnQtbGlzdGVuZXItZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9pb3Mvc2Nyb2xsLW9u
LXRvdWNoLXN0YXJ0LXdpdGgtc2xvdy1ldmVudC1saXN0ZW5lci5odG1sOiBBZGRlZC4KKworICAg
ICAgICBBZGQgbmV3IGxheW91dCB0ZXN0cyB0byBjb3ZlciBiZWhhdmlvcnMgd2hlbiBwYW5uaW5n
IG92ZXIgYWN0aXZlIHRvdWNoc3RhcnQgaGFuZGxlcnMgdGhhdCBzcGluIGZvciBhbiBleHRlbmRl
ZAorICAgICAgICBsZW5ndGggb2YgdGltZSAoaW4gdGhpcyBjYXNlLCA0MDAgbWlsbGlzZWNvbmRz
KSBpbiBvdmVyZmxvdyBzY3JvbGxpbmcgY29udGFpbmVycy4gQSB0b3VjaHN0YXJ0IGhhbmRsZXIg
dGhhdAorICAgICAgICBwcmV2ZW50cyBkZWZhdWx0IHNob3VsZCBzdGlsbCBibG9jayBzY3JvbGxp
bmcsIGFuZCBhIHRvdWNoc3RhcnQgaGFuZGxlciB0aGF0IGRvZXMgbm90IHNob3VsZCBzdGlsbCBh
bGxvdyB0aGUKKyAgICAgICAgdXNlciB0byBzY3JvbGwuCisKKyAgICAgICAgKiBmYXN0L2V2ZW50
cy90b3VjaC9pb3Mvc2hvdy1tb2RhbC1hbGVydC1kdXJpbmctdG91Y2gtc3RhcnQuaHRtbDoKKyAg
ICAgICAgKiBodHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9hbmNob3ItdGFnLWF0dHJpYnV0
ZXMtdmFsaWRhdGlvbi1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0
eS9hbmNob3ItZG93bmxvYWQtYmxvY2stY3Jvc3NvcmlnaW4tZXhwZWN0ZWQudHh0OgorCisgICAg
ICAgIFJlYmFzZWxpbmUgdGhlc2UgdGVzdHMgYnkgY2hhbmdpbmcgc29tZSBsaW5lIG51bWJlcnMu
CisKKyAgICAgICAgKiByZXNvdXJjZXMvdWktaGVscGVyLmpzOgorICAgICAgICAod2luZG93LlVJ
SGVscGVyLnNlbmRFdmVudFN0cmVhbS5yZXR1cm4ubmV3LlByb21pc2UpOgorICAgICAgICAod2lu
ZG93LlVJSGVscGVyLnNlbmRFdmVudFN0cmVhbSk6CisKKyAgICAgICAgQWRkIGEgbmV3IFVJSGVs
cGVyIG1ldGhvZCB0byBzZW5kIGEgSlNPTiBvYmplY3QgYXMgYW4gZXZlbnQgc3RyZWFtLgorCisg
ICAgICAgIChVSUhlbHBlci5FdmVudFN0cmVhbUJ1aWxkZXIucHJvdG90eXBlLl9yZXNldCk6Cisg
ICAgICAgIChVSUhlbHBlci5FdmVudFN0cmVhbUJ1aWxkZXIucHJvdG90eXBlLmJlZ2luKToKKyAg
ICAgICAgKFVJSGVscGVyLkV2ZW50U3RyZWFtQnVpbGRlci5wcm90b3R5cGUubW92ZSk6CisgICAg
ICAgIChVSUhlbHBlci5FdmVudFN0cmVhbUJ1aWxkZXIucHJvdG90eXBlLmVuZCk6CisgICAgICAg
IChVSUhlbHBlci5FdmVudFN0cmVhbUJ1aWxkZXIucHJvdG90eXBlLnRha2VSZXN1bHQpOgorCisg
ICAgICAgIEFkZCBhIG5ldyBoZWxwZXIgY2xhc3MgdG8gbWFrZSBpdCBlYXNpZXIgdG8gY29uc3Ry
dWN0IGV2ZW50IHN0cmVhbXMsIGZvciB0aGUgcHVycG9zZXMgb2Ygc2VuZGluZyB0bworICAgICAg
ICBVSVNjcmlwdENvbnRyb2xsZXI6OnNlbmRFdmVudFN0cmVhbS4KKwogMjAxOS0xMi0wNSAgWXVy
eSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVj
dG9yOiBBdm9pZCB1c2luZyBSdW50aW1lLmV4ZWN1dGlvbkNvbnRleHRDcmVhdGVkIHRvIGZpZ3Vy
ZSBvdXQgdGhlIGlmcmFtZSdzIGNvbnRlbnREb2N1bWVudCBub2RlLgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3ByZXZlbnQtZGVmYXVsdC1vbi10b3VjaC1z
dGFydC13aXRoLXNsb3ctZXZlbnQtbGlzdGVuZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvdG91Y2gvaW9zL3ByZXZlbnQtZGVmYXVsdC1vbi10b3VjaC1zdGFydC13aXRo
LXNsb3ctZXZlbnQtbGlzdGVuZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZkNmY4N2RmOWE1
Njk4NTkyZWU4MDdjN2RkNWIzNjc2YTVkZjM3YjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvcHJldmVudC1kZWZhdWx0LW9uLXRvdWNoLXN0YXJ0
LXdpdGgtc2xvdy1ldmVudC1saXN0ZW5lci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAor
VmVyaWZpZXMgdGhhdCBjYWxsaW5nIHByZXZlbnREZWZhdWx0KCkgb24gdG91Y2hzdGFydCBwcmV2
ZW50cyBzY3JvbGxpbmcgd2hlbiB0aGUgdG91Y2ggZXZlbnQgaGFuZGxlciBpcyB1bnJlc3BvbnNp
dmUgZm9yIGFuIGV4dGVuZGVkIGR1cmF0aW9uLiBUbyBtYW51YWxseSB0ZXN0LCBhdHRlbXB0IHRv
IHNjcm9sbCB0aGUgYm94OyBjaGVjayB0aGF0IHRvdWNoc3RhcnQgYW5kIHRvdWNoZW5kIGV2ZW50
cyB3ZXJlIGhhbmRsZWQsIGFuZCB0aGF0IHRoZSBib3ggZGlkIG5vdCBzY3JvbGwuCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworUEFTUyBPYnNlcnZlZCB0b3VjaHN0YXJ0IGV2ZW50CitQ
QVNTIE9ic2VydmVkIHRvdWNoZW5kIGV2ZW50CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvdG91Y2gvaW9zL3ByZXZlbnQtZGVmYXVsdC1vbi10b3VjaC1zdGFydC13aXRoLXNsb3ctZXZl
bnQtbGlzdGVuZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9wcmV2
ZW50LWRlZmF1bHQtb24tdG91Y2gtc3RhcnQtd2l0aC1zbG93LWV2ZW50LWxpc3RlbmVyLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uY2NiOWVmODBmOTIxZTM2ZmNiYzM5NjQzZjFmZGQ0YjFmZWFkYTBlZAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9wcmV2ZW50
LWRlZmF1bHQtb24tdG91Y2gtc3RhcnQtd2l0aC1zbG93LWV2ZW50LWxpc3RlbmVyLmh0bWwKQEAg
LTAsMCArMSw3NCBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsg
dXNlRmxleGlibGVWaWV3cG9ydD10cnVlIGludGVybmFsOkFzeW5jT3ZlcmZsb3dTY3JvbGxpbmdF
bmFibGVkPXRydWUgXSAtLT4KKzxodG1sPgorPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9
IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLCB1c2VyLXNjYWxhYmxlPW5vIj4K
KzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5q
cyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy91aS1o
ZWxwZXIuanMiPjwvc2NyaXB0PgorICAgIDxzdHlsZT4KKyAgICBodG1sLCBib2R5IHsKKyAgICAg
ICAgd2lkdGg6IDEwMCU7CisgICAgICAgIGhlaWdodDogMTAwJTsKKyAgICAgICAgbWFyZ2luOiAw
OworICAgIH0KKworICAgICNzY3JvbGxlciB7CisgICAgICAgIG92ZXJmbG93OiBzY3JvbGw7Cisg
ICAgICAgIHdpZHRoOiAyMDBweDsKKyAgICAgICAgaGVpZ2h0OiAyMDBweDsKKyAgICAgICAgYm9y
ZGVyOiAycHggc29saWQgYmxhY2s7CisgICAgfQorCisgICAgI2NvbnRlbnQgeworICAgICAgICB3
aWR0aDogMTAwJTsKKyAgICAgICAgaGVpZ2h0OiAxMDAwcHg7CisgICAgfQorICAgIDwvc3R5bGU+
CisgICAgPHNjcmlwdD4KKyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICAgICAg
YXN5bmMgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uKCJWZXJp
ZmllcyB0aGF0IGNhbGxpbmcgcHJldmVudERlZmF1bHQoKSBvbiB0b3VjaHN0YXJ0IHByZXZlbnRz
IHNjcm9sbGluZyB3aGVuIHRoZSB0b3VjaCBldmVudCBoYW5kbGVyIGlzIHVucmVzcG9uc2l2ZSBm
b3IgYW4gZXh0ZW5kZWQgZHVyYXRpb24uIFRvIG1hbnVhbGx5IHRlc3QsIGF0dGVtcHQgdG8gc2Ny
b2xsIHRoZSBib3g7IGNoZWNrIHRoYXQgdG91Y2hzdGFydCBhbmQgdG91Y2hlbmQgZXZlbnRzIHdl
cmUgaGFuZGxlZCwgYW5kIHRoYXQgdGhlIGJveCBkaWQgbm90IHNjcm9sbC4iKTsKKworICAgICAg
ICAgICAgY29uc3Qgc2Nyb2xsZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Nyb2xsZXIi
KTsKKworICAgICAgICAgICAgc2Nyb2xsZXIuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIs
IGV2ZW50ID0+IHsKKyAgICAgICAgICAgICAgICBjb25zdCBzdGFydFRpbWUgPSBEYXRlLm5vdygp
OworICAgICAgICAgICAgICAgIHdoaWxlICgxKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChE
YXRlLm5vdygpIC0gc3RhcnRUaW1lID4gNDAwKQorICAgICAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIk9ic2Vy
dmVkIHRvdWNoc3RhcnQgZXZlbnQiKTsKKyAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVm
YXVsdCgpOworICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIHNjcm9sbGVyLmFkZEV2ZW50
TGlzdGVuZXIoInRvdWNoZW5kIiwgKCkgPT4geworICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQo
Ik9ic2VydmVkIHRvdWNoZW5kIGV2ZW50Iik7CisgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0
KCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHNjcm9sbGVyLmFkZEV2ZW50TGlzdGVu
ZXIoInNjcm9sbCIsICgpID0+IHRlc3RGYWlsZWQoIk9ic2VydmVkIHNjcm9sbCBldmVudCIpLCB7
IG9uY2UgOiB0cnVlIH0pOworCisgICAgICAgICAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyKQor
ICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgY29uc3QgZXZlbnRTdHJlYW1E
YXRhID0gbmV3IFVJSGVscGVyLkV2ZW50U3RyZWFtQnVpbGRlcigpCisgICAgICAgICAgICAgICAg
LmJlZ2luKDEwMCwgMTkwKQorICAgICAgICAgICAgICAgIC5tb3ZlKDEwMCwgMTAsIDEpCisgICAg
ICAgICAgICAgICAgLm1vdmUoMTAwLCAxOTAsIDEpCisgICAgICAgICAgICAgICAgLm1vdmUoMTAw
LCAxMDAsIDAuNSkKKyAgICAgICAgICAgICAgICAuZW5kKCkKKyAgICAgICAgICAgICAgICAudGFr
ZVJlc3VsdCgpOworCisgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci5zZW5kRXZlbnRTdHJlYW0o
ZXZlbnRTdHJlYW1EYXRhKTsKKyAgICAgICAgfQorCisgICAgICAgIGFkZEV2ZW50TGlzdGVuZXIo
ImxvYWQiLCBydW5UZXN0KTsKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxk
aXYgaWQ9InNjcm9sbGVyIj4KKyAgICAgICAgPGRpdiBpZD0iY29udGVudCI+PC9kaXY+CisgICAg
PC9kaXY+CisgICAgPHByZSBpZD0iZGVzY3JpcHRpb24iPjwvcHJlPgorICAgIDxwcmUgaWQ9ImNv
bnNvbGUiPjwvcHJlPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvdG91Y2gvaW9zL3Njcm9sbC1vbi10b3VjaC1zdGFydC13aXRoLXNsb3ctZXZl
bnQtbGlzdGVuZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gv
aW9zL3Njcm9sbC1vbi10b3VjaC1zdGFydC13aXRoLXNsb3ctZXZlbnQtbGlzdGVuZXItZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmE3MDYwZmIwMGZiMWZlMzM3MzBjYTliMWMxMzViZjE5OTc4MzQx
ZGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3Mv
c2Nyb2xsLW9uLXRvdWNoLXN0YXJ0LXdpdGgtc2xvdy1ldmVudC1saXN0ZW5lci1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxMSBAQAorVmVyaWZpZXMgdGhhdCB0aGUgdXNlciBjYW4gc2Nyb2xsIGV2
ZW4gd2hlbiB0aGUgdG91Y2ggZXZlbnQgaGFuZGxlciBpcyB1bnJlc3BvbnNpdmUgZm9yIGFuIGV4
dGVuZGVkIGR1cmF0aW9uLiBUbyBtYW51YWxseSB0ZXN0LCBhdHRlbXB0IHRvIHNjcm9sbCB0aGUg
Ym94OyBjaGVjayB0aGF0IHRvdWNoc3RhcnQgYW5kIHRvdWNoZW5kIGV2ZW50cyB3ZXJlIGhhbmRs
ZWQsIGFuZCB0aGF0IHRoZSBib3ggd2FzIHNjcm9sbGVkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKK1BBU1MgT2JzZXJ2ZWQgdG91Y2hzdGFydCBldmVudAorUEFTUyBPYnNlcnZlZCBz
Y3JvbGwgZXZlbnQKK1BBU1MgT2JzZXJ2ZWQgdG91Y2hlbmQgZXZlbnQKK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3Mvc2Nyb2xsLW9uLXRvdWNoLXN0YXJ0LXdpdGgtc2xv
dy1ldmVudC1saXN0ZW5lci5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9z
L3Njcm9sbC1vbi10b3VjaC1zdGFydC13aXRoLXNsb3ctZXZlbnQtbGlzdGVuZXIuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5lYjU0MWIyNGI3Nzc5OWJkOGQwMTkzNzdhYzJkMzZiYTE1ZmE2NzJiCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3Njcm9sbC1vbi10
b3VjaC1zdGFydC13aXRoLXNsb3ctZXZlbnQtbGlzdGVuZXIuaHRtbApAQCAtMCwwICsxLDczIEBA
Cis8IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZp
ZXdwb3J0PXRydWUgaW50ZXJuYWw6QXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBd
IC0tPgorPGh0bWw+Cis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNl
LXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHVzZXItc2NhbGFibGU9bm8iPgorPGhlYWQ+CisgICAg
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4K
KyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9z
Y3JpcHQ+CisgICAgPHN0eWxlPgorICAgIGh0bWwsIGJvZHkgeworICAgICAgICB3aWR0aDogMTAw
JTsKKyAgICAgICAgaGVpZ2h0OiAxMDAlOworICAgICAgICBtYXJnaW46IDA7CisgICAgfQorCisg
ICAgI3Njcm9sbGVyIHsKKyAgICAgICAgb3ZlcmZsb3c6IHNjcm9sbDsKKyAgICAgICAgd2lkdGg6
IDIwMHB4OworICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAgICAgICBib3JkZXI6IDJweCBzb2xp
ZCBibGFjazsKKyAgICB9CisKKyAgICAjY29udGVudCB7CisgICAgICAgIHdpZHRoOiAxMDAlOwor
ICAgICAgICBoZWlnaHQ6IDEwMDBweDsKKyAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8c2NyaXB0
PgorICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgICAgICBhc3luYyBmdW5jdGlv
biBydW5UZXN0KCkgeworICAgICAgICAgICAgZGVzY3JpcHRpb24oIlZlcmlmaWVzIHRoYXQgdGhl
IHVzZXIgY2FuIHNjcm9sbCBldmVuIHdoZW4gdGhlIHRvdWNoIGV2ZW50IGhhbmRsZXIgaXMgdW5y
ZXNwb25zaXZlIGZvciBhbiBleHRlbmRlZCBkdXJhdGlvbi4gVG8gbWFudWFsbHkgdGVzdCwgYXR0
ZW1wdCB0byBzY3JvbGwgdGhlIGJveDsgY2hlY2sgdGhhdCB0b3VjaHN0YXJ0IGFuZCB0b3VjaGVu
ZCBldmVudHMgd2VyZSBoYW5kbGVkLCBhbmQgdGhhdCB0aGUgYm94IHdhcyBzY3JvbGxlZC4iKTsK
KworICAgICAgICAgICAgY29uc3Qgc2Nyb2xsZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
c2Nyb2xsZXIiKTsKKworICAgICAgICAgICAgc2Nyb2xsZXIuYWRkRXZlbnRMaXN0ZW5lcigidG91
Y2hzdGFydCIsIGV2ZW50ID0+IHsKKyAgICAgICAgICAgICAgICBjb25zdCBzdGFydFRpbWUgPSBE
YXRlLm5vdygpOworICAgICAgICAgICAgICAgIHdoaWxlICgxKSB7CisgICAgICAgICAgICAgICAg
ICAgIGlmIChEYXRlLm5vdygpIC0gc3RhcnRUaW1lID4gNDAwKQorICAgICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHRlc3RQYXNz
ZWQoIk9ic2VydmVkIHRvdWNoc3RhcnQgZXZlbnQiKTsKKyAgICAgICAgICAgIH0pOworCisgICAg
ICAgICAgICBzY3JvbGxlci5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsICgpID0+IHsKKyAg
ICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJPYnNlcnZlZCB0b3VjaGVuZCBldmVudCIpOworICAg
ICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICBzY3JvbGxlci5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLCAoKSA9PiB0ZXN0UGFzc2VkKCJP
YnNlcnZlZCBzY3JvbGwgZXZlbnQiKSwgeyBvbmNlIDogdHJ1ZSB9KTsKKworICAgICAgICAgICAg
aWYgKCF3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAg
ICAgICAgIGNvbnN0IGV2ZW50U3RyZWFtRGF0YSA9IG5ldyBVSUhlbHBlci5FdmVudFN0cmVhbUJ1
aWxkZXIoKQorICAgICAgICAgICAgICAgIC5iZWdpbigxMDAsIDE5MCkKKyAgICAgICAgICAgICAg
ICAubW92ZSgxMDAsIDEwLCAxKQorICAgICAgICAgICAgICAgIC5tb3ZlKDEwMCwgMTkwLCAxKQor
ICAgICAgICAgICAgICAgIC5tb3ZlKDEwMCwgMTAwLCAwLjUpCisgICAgICAgICAgICAgICAgLmVu
ZCgpCisgICAgICAgICAgICAgICAgLnRha2VSZXN1bHQoKTsKKworICAgICAgICAgICAgYXdhaXQg
VUlIZWxwZXIuc2VuZEV2ZW50U3RyZWFtKGV2ZW50U3RyZWFtRGF0YSk7CisgICAgICAgIH0KKwor
ICAgICAgICBhZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgcnVuVGVzdCk7CisgICAgPC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IGlkPSJzY3JvbGxlciI+CisgICAgICAgIDxkaXYg
aWQ9ImNvbnRlbnQiPjwvZGl2PgorICAgIDwvZGl2PgorICAgIDxwcmUgaWQ9ImRlc2NyaXB0aW9u
Ij48L3ByZT4KKyAgICA8cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9zaG93LW1vZGFs
LWFsZXJ0LWR1cmluZy10b3VjaC1zdGFydC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
dG91Y2gvaW9zL3Nob3ctbW9kYWwtYWxlcnQtZHVyaW5nLXRvdWNoLXN0YXJ0Lmh0bWwKaW5kZXgg
MDAzMjgxNzRkZTJmODVmM2VmZDY0MTE0MTVkYjhmMmE4ZjhmYmFhYi4uYTBhYzI3ODVmMWQxYjJm
MmM2Zjg2NTlkNTYxMDY2ZjNhMmRhNjBjNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvdG91Y2gvaW9zL3Nob3ctbW9kYWwtYWxlcnQtZHVyaW5nLXRvdWNoLXN0YXJ0Lmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3Nob3ctbW9kYWwtYWxlcnQt
ZHVyaW5nLXRvdWNoLXN0YXJ0Lmh0bWwKQEAgLTMxLDcgKzMxLDcgQEAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKSB7CiB9CiAKIHRhcmdldC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IiwgKCkg
PT4gYWxlcnQoIlRoaXMgaXMgYSBtb2RhbCBhbGVydC4iKSk7Ci10YXJnZXQuYWRkRXZlbnRMaXN0
ZW5lcigidG91Y2hlbmQiLCAoKSA9PiB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKSk7Cit0YXJnZXQu
YWRkRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLCAoKSA9PiB0ZXN0UnVubmVyLm5vdGlmeURvbmUo
KSwgeyBwYXNzaXZlIDogdHJ1ZSB9KTsKIGFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBhc3luYyAo
KSA9PiBhd2FpdCBVSUhlbHBlci5hY3RpdmF0ZUF0KDEwMCwgMTAwKSk7CiA8L3NjcmlwdD4KIDwv
Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0
aW9uL2FuY2hvci10YWctYXR0cmlidXRlcy12YWxpZGF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2FuY2hvci10YWctYXR0cmlidXRl
cy12YWxpZGF0aW9uLWV4cGVjdGVkLnR4dAppbmRleCBjMmIxZDcxN2IyM2M3ODQ0OTBiYjNmY2E0
MWM3MjNlYTNkZTJmMGY1Li5hZjU0ZDhkNmUyNGEwZTI3ZGU3YjA2NGFhZjY1OTVlYmYwYmYyZmU1
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9h
bmNob3ItdGFnLWF0dHJpYnV0ZXMtdmFsaWRhdGlvbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vYW5jaG9yLXRhZy1hdHRyaWJ1dGVz
LXZhbGlkYXRpb24tZXhwZWN0ZWQudHh0CkBAIC0xLDE0ICsxLDE0IEBACi1DT05TT0xFIE1FU1NB
R0U6IGxpbmUgMTU1OiBhZGNhbXBhaWduaWQgbXVzdCBoYXZlIGEgbm9uLW5lZ2F0aXZlIHZhbHVl
IGxlc3MgdGhhbiBvciBlcXVhbCB0byA2MyBmb3IgQWQgQ2xpY2sgQXR0cmlidXRpb24uCi1DT05T
T0xFIE1FU1NBR0U6IGxpbmUgMTU1OiBhZGNhbXBhaWduaWQgbXVzdCBoYXZlIGEgbm9uLW5lZ2F0
aXZlIHZhbHVlIGxlc3MgdGhhbiBvciBlcXVhbCB0byA2MyBmb3IgQWQgQ2xpY2sgQXR0cmlidXRp
b24uCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTU1OiBhZGNhbXBhaWduaWQgY2FuIG5vdCBiZSBj
b252ZXJ0ZWQgdG8gYSBub24tbmVnYXRpdmUgaW50ZWdlciB3aGljaCBpcyByZXF1aXJlZCBmb3Ig
QWQgQ2xpY2sgQXR0cmlidXRpb24uCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTU1OiBhZGNhbXBh
aWduaWQgY2FuIG5vdCBiZSBjb252ZXJ0ZWQgdG8gYSBub24tbmVnYXRpdmUgaW50ZWdlciB3aGlj
aCBpcyByZXF1aXJlZCBmb3IgQWQgQ2xpY2sgQXR0cmlidXRpb24uCi1DT05TT0xFIE1FU1NBR0U6
IGxpbmUgMTU1OiBhZGNhbXBhaWduaWQgY2FuIG5vdCBiZSBjb252ZXJ0ZWQgdG8gYSBub24tbmVn
YXRpdmUgaW50ZWdlciB3aGljaCBpcyByZXF1aXJlZCBmb3IgQWQgQ2xpY2sgQXR0cmlidXRpb24u
Ci1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTU1OiBhZGRlc3RpbmF0aW9uIGNvdWxkIG5vdCBiZSBj
b252ZXJ0ZWQgdG8gYSB2YWxpZCBIVFRQLWZhbWlseSBVUkwuCi1DT05TT0xFIE1FU1NBR0U6IGxp
bmUgMTU1OiBhZGRlc3RpbmF0aW9uIGNvdWxkIG5vdCBiZSBjb252ZXJ0ZWQgdG8gYSB2YWxpZCBI
VFRQLWZhbWlseSBVUkwuCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTU1OiBhZGRlc3RpbmF0aW9u
IGNvdWxkIG5vdCBiZSBjb252ZXJ0ZWQgdG8gYSB2YWxpZCBIVFRQLWZhbWlseSBVUkwuCi1DT05T
T0xFIE1FU1NBR0U6IGxpbmUgMTU1OiBCb3RoIGFkY2FtcGFpZ25pZCBhbmQgYWRkZXN0aW5hdGlv
biBuZWVkIHRvIGJlIHNldCBmb3IgQWQgQ2xpY2sgQXR0cmlidXRpb24gdG8gd29yay4KLUNPTlNP
TEUgTUVTU0FHRTogbGluZSAxNTU6IEJvdGggYWRjYW1wYWlnbmlkIGFuZCBhZGRlc3RpbmF0aW9u
IG5lZWQgdG8gYmUgc2V0IGZvciBBZCBDbGljayBBdHRyaWJ1dGlvbiB0byB3b3JrLgotQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDE1NTogYWRkZXN0aW5hdGlvbiBjYW4gbm90IGJlIHRoZSBzYW1lIHNp
dGUgYXMgdGhlIGN1cnJlbnQgd2Vic2l0ZS4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxNjk6IGFk
Y2FtcGFpZ25pZCBtdXN0IGhhdmUgYSBub24tbmVnYXRpdmUgdmFsdWUgbGVzcyB0aGFuIG9yIGVx
dWFsIHRvIDYzIGZvciBBZCBDbGljayBBdHRyaWJ1dGlvbi4KK0NPTlNPTEUgTUVTU0FHRTogbGlu
ZSAxNjk6IGFkY2FtcGFpZ25pZCBtdXN0IGhhdmUgYSBub24tbmVnYXRpdmUgdmFsdWUgbGVzcyB0
aGFuIG9yIGVxdWFsIHRvIDYzIGZvciBBZCBDbGljayBBdHRyaWJ1dGlvbi4KK0NPTlNPTEUgTUVT
U0FHRTogbGluZSAxNjk6IGFkY2FtcGFpZ25pZCBjYW4gbm90IGJlIGNvbnZlcnRlZCB0byBhIG5v
bi1uZWdhdGl2ZSBpbnRlZ2VyIHdoaWNoIGlzIHJlcXVpcmVkIGZvciBBZCBDbGljayBBdHRyaWJ1
dGlvbi4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxNjk6IGFkY2FtcGFpZ25pZCBjYW4gbm90IGJl
IGNvbnZlcnRlZCB0byBhIG5vbi1uZWdhdGl2ZSBpbnRlZ2VyIHdoaWNoIGlzIHJlcXVpcmVkIGZv
ciBBZCBDbGljayBBdHRyaWJ1dGlvbi4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxNjk6IGFkY2Ft
cGFpZ25pZCBjYW4gbm90IGJlIGNvbnZlcnRlZCB0byBhIG5vbi1uZWdhdGl2ZSBpbnRlZ2VyIHdo
aWNoIGlzIHJlcXVpcmVkIGZvciBBZCBDbGljayBBdHRyaWJ1dGlvbi4KK0NPTlNPTEUgTUVTU0FH
RTogbGluZSAxNjk6IGFkZGVzdGluYXRpb24gY291bGQgbm90IGJlIGNvbnZlcnRlZCB0byBhIHZh
bGlkIEhUVFAtZmFtaWx5IFVSTC4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxNjk6IGFkZGVzdGlu
YXRpb24gY291bGQgbm90IGJlIGNvbnZlcnRlZCB0byBhIHZhbGlkIEhUVFAtZmFtaWx5IFVSTC4K
K0NPTlNPTEUgTUVTU0FHRTogbGluZSAxNjk6IGFkZGVzdGluYXRpb24gY291bGQgbm90IGJlIGNv
bnZlcnRlZCB0byBhIHZhbGlkIEhUVFAtZmFtaWx5IFVSTC4KK0NPTlNPTEUgTUVTU0FHRTogbGlu
ZSAxNjk6IEJvdGggYWRjYW1wYWlnbmlkIGFuZCBhZGRlc3RpbmF0aW9uIG5lZWQgdG8gYmUgc2V0
IGZvciBBZCBDbGljayBBdHRyaWJ1dGlvbiB0byB3b3JrLgorQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDE2OTogQm90aCBhZGNhbXBhaWduaWQgYW5kIGFkZGVzdGluYXRpb24gbmVlZCB0byBiZSBzZXQg
Zm9yIEFkIENsaWNrIEF0dHJpYnV0aW9uIHRvIHdvcmsuCitDT05TT0xFIE1FU1NBR0U6IGxpbmUg
MTY5OiBhZGRlc3RpbmF0aW9uIGNhbiBub3QgYmUgdGhlIHNhbWUgc2l0ZSBhcyB0aGUgY3VycmVu
dCB3ZWJzaXRlLgogVGVzdCBmb3IgdmFsaWRpdHkgb2YgYWQgY2xpY2sgYXR0cmlidXRpb24gYXR0
cmlidXRlcyBvbiBhbmNob3IgdGFncy4KIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9hbmNob3ItZG93bmxvYWQt
YmxvY2stY3Jvc3NvcmlnaW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS9hbmNob3ItZG93bmxvYWQtYmxvY2stY3Jvc3NvcmlnaW4tZXhwZWN0ZWQudHh0Cmlu
ZGV4IDM0NWUwN2U0MGQwN2MzOTQ5NmNhZDQwMDdjMzlkMWE3MThjZGU3OTQuLjQwYTAzNWRmN2M0
OTQ1NzYzNzQzMzNiOWI0M2U3YzE1N2RhNTdlNjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvYW5jaG9yLWRvd25sb2FkLWJsb2NrLWNyb3Nzb3JpZ2luLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2FuY2hvci1kb3du
bG9hZC1ibG9jay1jcm9zc29yaWdpbi1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACi1DT05T
T0xFIE1FU1NBR0U6IGxpbmUgMTU1OiBUaGUgZG93bmxvYWQgYXR0cmlidXRlIG9uIGFuY2hvciB3
YXMgaWdub3JlZCBiZWNhdXNlIGl0cyBocmVmIFVSTCBoYXMgYSBkaWZmZXJlbnQgc2VjdXJpdHkg
b3JpZ2luLgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE2OTogVGhlIGRvd25sb2FkIGF0dHJpYnV0
ZSBvbiBhbmNob3Igd2FzIGlnbm9yZWQgYmVjYXVzZSBpdHMgaHJlZiBVUkwgaGFzIGEgZGlmZmVy
ZW50IHNlY3VyaXR5IG9yaWdpbi4KIFRlc3RzIHRoYXQgdGhlIGRvd25sb2FkIGF0dHJpYnV0ZSBp
cyBpZ25vcmVkIGlmIHRoZSBsaW5rIGlzIGNyb3NzIG9yaWdpbi4KIAogSXQgc2hvdWxkIG5hdmln
YXRlIHRoZSBzdWJmcmFtZSBpbnN0ZWFkIG9mIGRvd25sb2FkaW5nIHRoZSBmaWxlLgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3VpLWhlbHBlci5qcyBiL0xheW91dFRlc3RzL3Jl
c291cmNlcy91aS1oZWxwZXIuanMKaW5kZXggMzY5ZTY5ZGMwNmMyZjQ5Y2UzMzQ3MTIxZmQ0NWZk
NTMxNDZiMTY0MC4uOTAyZjM0NWZmMjU4OGFkNTBjYzBlMTVkNDRhMWEyOWU5MDBhNDhhNSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3VpLWhlbHBlci5qcworKysgYi9MYXlvdXRU
ZXN0cy9yZXNvdXJjZXMvdWktaGVscGVyLmpzCkBAIC0yOSw2ICsyOSwyMCBAQCB3aW5kb3cuVUlI
ZWxwZXIgPSBjbGFzcyBVSUhlbHBlciB7CiAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsK
ICAgICB9CiAKKyAgICBzdGF0aWMgc2VuZEV2ZW50U3RyZWFtKGV2ZW50U3RyZWFtKQorICAgIHsK
KyAgICAgICAgY29uc3QgZXZlbnRTdHJlYW1Bc1N0cmluZyA9IEpTT04uc3RyaW5naWZ5KGV2ZW50
U3RyZWFtKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4geworICAgICAg
ICAgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChgCisgICAgICAgICAgICAgICAgKGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIuc2VuZEV2ZW50U3RyZWFtKFxg
JHtldmVudFN0cmVhbUFzU3RyaW5nfVxgLCAoKSA9PiB7CisgICAgICAgICAgICAgICAgICAgICAg
ICB1aUNvbnRyb2xsZXIudWlTY3JpcHRDb21wbGV0ZSgpOworICAgICAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgICAgICB9KSgpOworICAgICAgICAgICAgYCwgcmVzb2x2ZSk7CisgICAg
ICAgIH0pOworICAgIH0KKwogICAgIHN0YXRpYyB0YXBBdCh4LCB5LCBtb2RpZmllcnM9W10pCiAg
ICAgewogICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLmlzSU9TRmFtaWx5KCkpOwpAQCAtMTEw
NSwzICsxMTE5LDg5IEBAIHdpbmRvdy5VSUhlbHBlciA9IGNsYXNzIFVJSGVscGVyIHsKICAgICAg
ICAgfSk7CiAgICAgfQogfQorCitVSUhlbHBlci5FdmVudFN0cmVhbUJ1aWxkZXIgPSBjbGFzcyB7
CisgICAgY29uc3RydWN0b3IoKQorICAgIHsKKyAgICAgICAgLy8gRklYTUU6IFRoaXMgY291bGQg
c3VwcG9ydCBhZGRpdGlvbmFsIGN1c3RvbWl6YXRpb24gb3B0aW9ucywgc3VjaCBhcyBpbnRlcnBv
bGF0aW9uLCB0aW1lc3RlcCwgYW5kIGRpZmZlcmVudAorICAgICAgICAvLyBkaWdpdGl6ZXIgaW5k
aWNlcyBpbiB0aGUgZnV0dXJlLiBGb3Igbm93LCBqdXN0IG1ha2UgaXQgc2ltcGxlciB0byBzdHJp
bmcgdG9nZXRoZXIgc2VxdWVuY2VzIG9mIHBhbiBnZXN0dXJlcy4KKyAgICAgICAgdGhpcy5fcmVz
ZXQoKTsKKyAgICB9CisKKyAgICBfcmVzZXQoKSB7CisgICAgICAgIHRoaXMuZXZlbnRzID0gW107
CisgICAgICAgIHRoaXMuY3VycmVudFRpbWVPZmZzZXQgPSAwOworICAgICAgICB0aGlzLmN1cnJl
bnRYID0gMDsKKyAgICAgICAgdGhpcy5jdXJyZW50WSA9IDA7CisgICAgfQorCisgICAgYmVnaW4o
eCwgeSkgeworICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLmN1cnJlbnRUaW1lT2Zmc2V0ID09
PSAwKTsKKyAgICAgICAgdGhpcy5ldmVudHMucHVzaCh7CisgICAgICAgICAgICBpbnRlcnBvbGF0
ZSA6ICJsaW5lYXIiLAorICAgICAgICAgICAgdGltZXN0ZXAgOiAwLjAxNiwKKyAgICAgICAgICAg
IGNvb3JkaW5hdGVTcGFjZSA6ICJjb250ZW50IiwKKyAgICAgICAgICAgIHN0YXJ0RXZlbnQgOiB7
CisgICAgICAgICAgICAgICAgaW5wdXRUeXBlIDogImhhbmQiLAorICAgICAgICAgICAgICAgIHRp
bWVPZmZzZXQgOiB0aGlzLmN1cnJlbnRUaW1lT2Zmc2V0LAorICAgICAgICAgICAgICAgIHRvdWNo
ZXMgOiBbeyBpbnB1dFR5cGUgOiAiZmluZ2VyIiwgcGhhc2UgOiAiYmVnYW4iLCBpZCA6IDEsIHgg
OiB4LCB5IDogeSwgcHJlc3N1cmUgOiAwIH1dCisgICAgICAgICAgICB9LAorICAgICAgICAgICAg
ZW5kRXZlbnQgOiB7CisgICAgICAgICAgICAgICAgaW5wdXRUeXBlIDogImhhbmQiLAorICAgICAg
ICAgICAgICAgIHRpbWVPZmZzZXQgOiB0aGlzLmN1cnJlbnRUaW1lT2Zmc2V0LAorICAgICAgICAg
ICAgICAgIHRvdWNoZXMgOiBbeyBpbnB1dFR5cGUgOiAiZmluZ2VyIiwgcGhhc2UgOiAiYmVnYW4i
LCBpZCA6IDEsIHggOiB4LCB5IDogeSwgcHJlc3N1cmUgOiAwIH1dCisgICAgICAgICAgICB9Cisg
ICAgICAgIH0pOworICAgICAgICB0aGlzLmN1cnJlbnRYID0geDsKKyAgICAgICAgdGhpcy5jdXJy
ZW50WSA9IHk7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIG1vdmUoeCwgeSwg
ZHVyYXRpb24gPSAwKSB7CisgICAgICAgIGNvbnN0IHByZXZpb3VzVGltZU9mZnNldCA9IHRoaXMu
Y3VycmVudFRpbWVPZmZzZXQ7CisgICAgICAgIHRoaXMuY3VycmVudFRpbWVPZmZzZXQgKz0gZHVy
YXRpb247CisgICAgICAgIHRoaXMuZXZlbnRzLnB1c2goeworICAgICAgICAgICAgaW50ZXJwb2xh
dGUgOiAibGluZWFyIiwKKyAgICAgICAgICAgIHRpbWVzdGVwIDogMC4wMTYsCisgICAgICAgICAg
ICBjb29yZGluYXRlU3BhY2UgOiAiY29udGVudCIsCisgICAgICAgICAgICBzdGFydEV2ZW50IDog
eworICAgICAgICAgICAgICAgIGlucHV0VHlwZSA6ICJoYW5kIiwKKyAgICAgICAgICAgICAgICB0
aW1lT2Zmc2V0IDogcHJldmlvdXNUaW1lT2Zmc2V0LAorICAgICAgICAgICAgICAgIHRvdWNoZXMg
OiBbeyBpbnB1dFR5cGUgOiAiZmluZ2VyIiwgcGhhc2UgOiAibW92ZWQiLCBpZCA6IDEsIHggOiB0
aGlzLmN1cnJlbnRYLCB5IDogdGhpcy5jdXJyZW50WSwgcHJlc3N1cmUgOiAwIH1dCisgICAgICAg
ICAgICB9LAorICAgICAgICAgICAgZW5kRXZlbnQgOiB7CisgICAgICAgICAgICAgICAgaW5wdXRU
eXBlIDogImhhbmQiLAorICAgICAgICAgICAgICAgIHRpbWVPZmZzZXQgOiB0aGlzLmN1cnJlbnRU
aW1lT2Zmc2V0LAorICAgICAgICAgICAgICAgIHRvdWNoZXMgOiBbeyBpbnB1dFR5cGUgOiAiZmlu
Z2VyIiwgcGhhc2UgOiAibW92ZWQiLCBpZCA6IDEsIHggOiB4LCB5IDogeSwgcHJlc3N1cmUgOiAw
IH1dCisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICB0aGlzLmN1cnJlbnRYID0g
eDsKKyAgICAgICAgdGhpcy5jdXJyZW50WSA9IHk7CisgICAgICAgIHJldHVybiB0aGlzOworICAg
IH0KKworICAgIGVuZCgpIHsKKyAgICAgICAgdGhpcy5ldmVudHMucHVzaCh7CisgICAgICAgICAg
ICBpbnRlcnBvbGF0ZSA6ICJsaW5lYXIiLAorICAgICAgICAgICAgdGltZXN0ZXAgOiAwLjAxNiwK
KyAgICAgICAgICAgIGNvb3JkaW5hdGVTcGFjZSA6ICJjb250ZW50IiwKKyAgICAgICAgICAgIHN0
YXJ0RXZlbnQgOiB7CisgICAgICAgICAgICAgICAgaW5wdXRUeXBlIDogImhhbmQiLAorICAgICAg
ICAgICAgICAgIHRpbWVPZmZzZXQgOiB0aGlzLmN1cnJlbnRUaW1lT2Zmc2V0LAorICAgICAgICAg
ICAgICAgIHRvdWNoZXMgOiBbeyBpbnB1dFR5cGUgOiAiZmluZ2VyIiwgcGhhc2UgOiAiZW5kZWQi
LCBpZCA6IDEsIHggOiB0aGlzLmN1cnJlbnRYLCB5IDogdGhpcy5jdXJyZW50WSwgcHJlc3N1cmUg
OiAwIH1dCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgZW5kRXZlbnQgOiB7CisgICAgICAg
ICAgICAgICAgaW5wdXRUeXBlIDogImhhbmQiLAorICAgICAgICAgICAgICAgIHRpbWVPZmZzZXQg
OiB0aGlzLmN1cnJlbnRUaW1lT2Zmc2V0LAorICAgICAgICAgICAgICAgIHRvdWNoZXMgOiBbeyBp
bnB1dFR5cGUgOiAiZmluZ2VyIiwgcGhhc2UgOiAiZW5kZWQiLCBpZCA6IDEsIHggOiB0aGlzLmN1
cnJlbnRYLCB5IDogdGhpcy5jdXJyZW50WSwgcHJlc3N1cmUgOiAwIH1dCisgICAgICAgICAgICB9
CisgICAgICAgIH0pOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICB0YWtlUmVz
dWx0KCkgeworICAgICAgICBjb25zdCBldmVudHMgPSB0aGlzLmV2ZW50czsKKyAgICAgICAgdGhp
cy5fcmVzZXQoKTsKKyAgICAgICAgcmV0dXJuIHsgImV2ZW50cyI6IGV2ZW50cyB9OworICAgIH0K
K30K
</data>
<flag name="review"
          id="400874"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385109</attachid>
            <date>2019-12-07 17:18:32 -0800</date>
            <delta_ts>2019-12-07 19:57:31 -0800</delta_ts>
            <desc>For EWS</desc>
            <filename>bug-204664-20191207171831.patch</filename>
            <type>text/plain</type>
            <size>64026</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzMjY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDhkMWEyOTVjYTZkOThhYTM1
ZWU1MzdjOWU3NDU3MzU4ZDIyNGU2NjcuLjZlZGUwOTcyZmYxZmNlZTQ3ODMyOTI2M2ZmNGNhNGY1
ZmFhYzg5MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQzIEBACisyMDE5LTEyLTA2ICBXZW5zb24g
SHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIFdLV2ViVmll
dyB0b3VjaCBldmVudCBnZXN0dXJlIHJlY29nbml0aW9uIHNob3VsZCBub3QgYmxvY2sgdGhlIGFw
cGxpY2F0aW9uIHByb2Nlc3MgbWFpbiB0aHJlYWQgd2hlbiBwb3NzaWJsZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0NjY0CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS8zODY3MDY5Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgor
CisgICAgICAgIEFkZHMgYSBtZWNoYW5pc20gdGhhdCBhbGxvd3Mgc29tZSBzeW5jIHRvdWNoIGV2
ZW50cyBvbiBpT1MgdG8gYmUgc2VudCBhc3luY2hyb25vdXNseS4gVG8gZG8gdGhpcywgd2UgdXNl
IHRoZQorICAgICAgICBkZWZlcnJpbmcgZ2VzdHVyZSBtZWNoYW5pc20gaW50cm9kdWNlZCBpbiB0
cmFjLndlYmtpdC5vcmcvcjI1MzAwNSB0byBkZWZlciBhbGwgZ2VzdHVyZXMgdW5kZXIgV0tDb250
ZW50VmlldyAoYW5kCisgICAgICAgIFdlYktpdC1vd25lZCBzY3JvbGwgdmlld3MpIHdoZW4gYSB0
b3VjaCBzdGFydHMsIHN1Y2ggdGhhdCB0aGV5IHdpbGwgbm90IHJlY29nbml6ZSB1bnRpbCB3ZSBr
bm93IHRoYXQgdGhlIHBhZ2UKKyAgICAgICAgaGFzIGVpdGhlciBwcmV2ZW50ZWQgZGVmYXVsdCBv
ciBub3QgKGFzc3VtaW5nIHRoYXQgdGhlIHRvdWNoIHdhcyBvdmVyIGFuIGFjdGl2ZSBsaXN0ZW5l
cikuIFNlZSBiZWxvdyBmb3IgbW9yZQorICAgICAgICBkZXRhaWxzLgorCisgICAgICAgIFRlc3Rz
OiBmYXN0L2V2ZW50cy90b3VjaC9pb3MvcHJldmVudC1kZWZhdWx0LW9uLXRvdWNoLXN0YXJ0LXdp
dGgtc2xvdy1ldmVudC1saXN0ZW5lci5odG1sCisgICAgICAgICAgICAgICBmYXN0L2V2ZW50cy90
b3VjaC9pb3Mvc2Nyb2xsLW9uLXRvdWNoLXN0YXJ0LXdpdGgtc2xvdy1ldmVudC1saXN0ZW5lci5o
dG1sCisKKyAgICAgICAgKiBVSVByb2Nlc3MvR2VuZXJpY0NhbGxiYWNrLmg6CisgICAgICAgICog
VUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJU
cmVlL2lvcy9SZW1vdGVMYXllclRyZWVWaWV3cy5tbToKKyAgICAgICAgKC1bV0tDaGlsZFNjcm9s
bFZpZXcgZ2VzdHVyZVJlY29nbml6ZXI6c2hvdWxkUmVxdWlyZUZhaWx1cmVPZkdlc3R1cmVSZWNv
Z25pemVyOl0pOgorICAgICAgICAoLVtXS0NoaWxkU2Nyb2xsVmlldyBnZXN0dXJlUmVjb2duaXpl
cjpzaG91bGRCZVJlcXVpcmVkVG9GYWlsQnlHZXN0dXJlUmVjb2duaXplcjpdKToKKworICAgICAg
ICBJbXBsZW1lbnQgZ2VzdHVyZSByZWNvZ25pemVyIGRlbGVnYXRlIGhvb2tzIHRvIGFkZCBkeW5h
bWljIGZhaWx1cmUgcmVxdWlyZW1lbnRzIGJldHdlZW4gYSBjaGlsZCBzY3JvbGwgdmlldydzCisg
ICAgICAgIGdlc3R1cmVzIGFuZCB0aGUgbmV3IGRlZmVycmluZyBnZXN0dXJlIHJlY29nbml6ZXJz
IG9uIFdLQ29udGVudFZpZXcuIFRoaXMgYWxsb3dzIHBhbiBnZXN0dXJlcyBvdmVyIGEgc2Nyb2xs
YWJsZQorICAgICAgICBjb250YWluZXIgdG8gaG9sZCBvZmYgb24gcmVjb2duaXppbmcgd2hpbGUg
dGhlIGRlZmVycmluZyBnZXN0dXJlIHJlY29nbml6ZXIgaGFzIG5vdCBmYWlsZWQgeWV0LgorCisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6aGFuZGxlUHJldmVudGFibGVUb3VjaEV2ZW50KToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5OjpoYW5kbGVVbnByZXZlbnRhYmxlVG91Y2hFdmVudCk6CisKKyAgICAg
ICAgUmVuYW1lIGhhbmRsZVRvdWNoRXZlbnRTeW5jaHJvbm91c2x5IGFuZCBoYW5kbGVUb3VjaEV2
ZW50QXN5bmNocm9ub3VzbHkgdG8gaGFuZGxlUHJldmVudGFibGVUb3VjaEV2ZW50IGFuZAorICAg
ICAgICBoYW5kbGVVbnByZXZlbnRhYmxlVG91Y2hFdmVudCwgcmVzcGVjdGl2ZWx5LiBJbnN0ZWFk
IG9mIGFsd2F5cyBzZW5kaW5nIHRvdWNoc3RhcnQgZXZlbnRzIHRoYXQgbWF5IHByZXZlbnQgbmF0
aXZlCisgICAgICAgIGdlc3R1cmVzIHN5bmNocm9ub3VzbHksIHdlIG1heSBub3cgZ28gdGhyb3Vn
aCB0aGUgc2FtZSBgRXZlbnREaXNwYXRjaGVyOjpUb3VjaEV2ZW50YCBjb2RlcGF0aCB1c2VkIHdo
ZW4KKyAgICAgICAgZGlzcGF0Y2hpbmcgdG91Y2ggZXZlbnRzIGluIHBhc3NpdmUgdHJhY2tpbmcg
cmVnaW9ucy4gSG93ZXZlciwgaW4gdGhlIGNhc2Ugb2YgcHJldmVudGFibGUgdG91Y2hzdGFydHMs
IHdlCisgICAgICAgIGFkZGl0aW9uYWxseSBzdG9yZSBhIGNvbXBsZXRpb24gY2FsbGJhY2sgdGhh
dCBpcyBpbnZva2VkIGFmdGVyIHRoZSB0b3VjaCBldmVudCBoYXMgYmVlbiBoYW5kbGVkIGJ5IHRo
ZSBwYWdlOyB3ZQorICAgICAgICB0aGVuIGVpdGhlciB1bi1kZWZlciBvciBwcmV2ZW50IG5hdGl2
ZSBnZXN0dXJlcyBoZXJlIChkZXBlbmRpbmcgb24gd2hldGhlciB0aGUgcGFnZSBwcmV2ZW50ZWQg
ZGVmYXVsdCkgYnkKKyAgICAgICAgY2FsbGluZyBQYWdlQ2xpZW50Ojpkb25lRGVmZXJyaW5nTmF0
aXZlR2VzdHVyZXMuCisKKyAgICAgICAgTm9uLXRvdWNoc3RhcnQgZXZlbnRzIGFyZSBzdGlsbCBk
aXNwYXRjaGVkIHN5bmNocm9ub3VzbHksIHRvIGVuc3VyZSB0aGF0IGNhbGxpbmcgcHJldmVudERl
ZmF1bHQoKSBvbiB0b3VjaG1vdmUKKyAgICAgICAgYW5kIHRvdWNoZW5kIGNvbnRpbnVlIHRvIHBy
ZXZlbnQgZGVmYXVsdCBnZXN0dXJlcyBmcm9tIHJlY29nbml6aW5nLgorCisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6Ym9vbENhbGxiYWNrKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5OjpoYW5kbGVUb3VjaEV2ZW50U3luY2hyb25vdXNseSk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6aGFuZGxlVG91Y2hFdmVudEFzeW5jaHJvbm91c2x5KTog
RGVsZXRlZC4KKworICAgICAgICBTZWUgYWJvdmUuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6aXNIYW5kbGluZ1By
ZXZlbnRhYmxlVG91Y2hTdGFydCBjb25zdCk6CisKKyAgICAgICAgVGhpcyBpcyB1c2VkIGluIFdL
Q29udGVudFZpZXcgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgZGVmZXJyaW5nIGdlc3R1cmVzIG5lZWQg
dG8gcmVtYWluIGFjdGl2ZSBhZnRlciB0aGUgdG91Y2gKKyAgICAgICAgZW5kcy4gU2VlIGJlbG93
IGZvciBtb3JlIGRldGFpbC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVz
c2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW06CisgICAgICAgIChX
ZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpkb25lRGVmZXJyaW5nTmF0aXZlR2VzdHVyZXMpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgt
W1VJR2VzdHVyZVJlY29nbml6ZXIgX3drX2NhbmNlbF0pOgorICAgICAgICAoLVtXS0NvbnRlbnRW
aWV3IHNldHVwSW50ZXJhY3Rpb25dKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBjbGVhbnVw
SW50ZXJhY3Rpb25dKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfcmVtb3ZlRGVmYXVsdEdl
c3R1cmVSZWNvZ25pemVyc10pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9hZGREZWZhdWx0
R2VzdHVyZVJlY29nbml6ZXJzXSk6CisKKyAgICAgICAgQWRkIGFuZCByZW1vdmUgdGhlIG5ldyBk
ZWZlcnJpbmcgZ2VzdHVyZSByZWNvZ25pemVycyBoZXJlLgorCisgICAgICAgICgtW1dLQ29udGVu
dFZpZXcgX3dlYlRvdWNoRXZlbnRzUmVjb2duaXplZDpdKToKKyAgICAgICAgKC1bV0tDb250ZW50
VmlldyBfd2ViVG91Y2hFdmVudDpwcmV2ZW50c05hdGl2ZUdlc3R1cmVzOl0pOgorICAgICAgICAo
LVtXS0NvbnRlbnRWaWV3IF9kb25lRGVmZXJyaW5nTmF0aXZlR2VzdHVyZXM6XSk6CisgICAgICAg
ICgtW1dLQ29udGVudFZpZXcgZ2VzdHVyZVJlY29nbml6ZXI6c2hvdWxkUmVjb2duaXplU2ltdWx0
YW5lb3VzbHlXaXRoR2VzdHVyZVJlY29nbml6ZXI6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZp
ZXcgZW5zdXJlUG9zaXRpb25JbmZvcm1hdGlvbklzVXBUb0RhdGU6XSk6CisKKyAgICAgICAgRHJp
dmUtYnkgZml4OiBhZGQgYSBtaXNzaW5nIGhhc1J1bm5pbmdQcm9jZXNzIGNoZWNrIHRoYXQgY2F1
c2VzIGEgZmxha3kgYXNzZXJ0aW9uIHVuZGVyCisgICAgICAgIGBBdXhpbGlhcnlQcm9jZXNzUHJv
eHk6OmNvbm5lY3Rpb24oKWAgaW4gbGF5b3V0IHRlc3RzLgorCisgICAgICAgICgtW1dLQ29udGVu
dFZpZXcgZ2VzdHVyZVJlY29nbml6ZXI6c2hvdWxkUmVxdWlyZUZhaWx1cmVPZkdlc3R1cmVSZWNv
Z25pemVyOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGdlc3R1cmVSZWNvZ25pemVyOnNo
b3VsZEJlUmVxdWlyZWRUb0ZhaWxCeUdlc3R1cmVSZWNvZ25pemVyOl0pOgorCisgICAgICAgIEFk
ZCBkeW5hbWljIGZhaWx1cmUgcmVxdWlyZW1lbnRzIGJldHdlZW4gV0tDb250ZW50VmlldydzIGdl
c3R1cmVzIChpbmNsdWRpbmcgYWxsIHRleHQgaW50ZXJhY3Rpb24sIGNvbnRleHQgbWVudSwKKyAg
ICAgICAgYW5kIGRyYWcgYW5kIGRyb3AgZ2VzdHVyZXMpIGFuZCB0aGUgbmV3IGRlZmVycmluZyBn
ZXN0dXJlIHJlY29nbml6ZXJzLgorCisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX2RpZFN0YXJ0
UHJvdmlzaW9uYWxMb2FkRm9yTWFpbkZyYW1lXSk6CisKKyAgICAgICAgRm9yY2UgdGhlIHR3by1m
aW5nZXIgZG91YmxlIHRhcCBnZXN0dXJlIHJlY29nbml6ZXIgdG8gcmVzZXQgd2hlbiBsb2FkaW5n
IGEgbmV3IHBhZ2UuIFdpdGhvdXQgdGhpcywgdGhlIGxheW91dAorICAgICAgICB0ZXN0IGZhc3Qv
ZXZlbnRzL2lvcy9jbGljay1ldmVudC13aGlsZS1lZGl0aW5nLW5vZGUuaHRtbCB3aWxsIHJhcmVs
eSBmYWlsIHdoZW4gcnVuIGFmdGVyIGEgdGVzdCB0aGF0IGRpc3BhdGNoZXMKKyAgICAgICAgYSB0
d28tZmluZ2VyIHRhcCwgc3VjaCBhcyBmYXN0L2V2ZW50cy9pb3MvY2xpY2stZXZlbnQtdHdvLWZp
bmdlci1zaW5nbGUtdGFwLW1ldGEta2V5Lmh0bWwuIFRoaXMgaXMgYmVjYXVzZSB0aGUKKyAgICAg
ICAgbmV3IGRlZmVycmluZyBnZXN0dXJlcyB3aWxsIHRlbXBvcmFyaWx5IHVuaXRlIG11bHRpLWZp
bmdlciB0YXAgZ2VzdHVyZXMgd2l0aCBvbmUtZmluZ2VyIGRvdWJsZSB0YXAgZ2VzdHVyZXMgaW4K
KyAgICAgICAgdGhlIHNhbWUgc3ViZ3JhcGggd2hlbiBwZXJmb3JtaW5nIGEgdGFwIGdlc3R1cmUg
d2l0aCBtb3JlIHRoYW4gb25lIGZpbmdlci4gVGhpcyBtZWFucyB0aGF0IHRoZXJlJ3MgYSAzMDAg
bXMKKyAgICAgICAgZGVsYXkgYmVmb3JlIGEgbm9ybWFsIHNpbmdsZSB0YXAgY2FuIGJlIHJlY29n
bml6ZWQgYWdhaW4sIHdoaWNoICh3aXRob3V0IGZvcmNpbmcgdGhlIHR3by1maW5nZXIgZG91Ymxl
IHRhcCB0bworICAgICAgICByZXNldCkgd291bGQgY2F1c2UgYSBzdWJzZXF1ZW50IHRlc3QgdGhh
dCBsb2FkcyBpbiB1bmRlciAzMDAgbXMgYW5kIGF0dGVtcHRzIHRvIHNlbmQgYSB0YXAgdG8gZmFp
bC4KKworICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVy
OnNob3VsZERlZmVyR2VzdHVyZXNBZnRlckJlZ2lubmluZ1RvdWNoZXNXaXRoRXZlbnQ6XSk6CisK
KyAgICAgICAgQXZvaWQgZGVmZXJyaW5nIG5hdGl2ZSBnZXN0dXJlcyBpZiB0aGUgc2Nyb2xsIHZp
ZXcgaXMgZGVjZWxlcmF0aW5nOyB0aGlzIG1hdGNoZXMgYmVoYXZpb3Igb2YgdGhlIHdlYiB0b3Vj
aCBldmVudAorICAgICAgICBnZXN0dXJlIHJlY29nbml6ZXIuCisKKyAgICAgICAgKC1bV0tDb250
ZW50VmlldyBkZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplcjpzaG91bGREZWZlckdlc3R1cmVzQWZ0
ZXJFbmRpbmdUb3VjaGVzV2l0aEV2ZW50Ol0pOgorCisgICAgICAgIE5vcm1hbGx5LCBhZnRlciAt
dG91Y2hlc0VuZGVkOndpdGhFdmVudDosIHdlIHN0b3AgZGVmZXJyaW5nIG5hdGl2ZSBnZXN0dXJl
IHJlY29nbml6ZXJzIGJ5IGZhaWxpbmcgdGhlIGRlZmVycmluZworICAgICAgICBnZXN0dXJlcy4g
SG93ZXZlciwgaWYgd2UncmUgc3RpbGwgd2FpdGluZyBmb3IgYSByZXNwb25zZSBmcm9tIHRoZSB3
ZWIgcHJvY2VzcywgdGhlbiBsZXQKKyAgICAgICAgLV9kb25lRGVmZXJyaW5nTmF0aXZlR2VzdHVy
ZXM6IGhhbmRsZSB0aGlzIGluc3RlYWQuCisKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBkZWZl
cnJpbmdHZXN0dXJlUmVjb2duaXplcjpzaG91bGREZWZlck90aGVyR2VzdHVyZVJlY29nbml6ZXI6
XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXI6
c2hvdWxkRGVmZXJHZXN0dXJlc1dpdGhFdmVudDpdKTogRGVsZXRlZC4KKworICAgICAgICBSZW5h
bWVkIHRvIC1zaG91bGREZWZlckdlc3R1cmVzQWZ0ZXJCZWdpbm5pbmdUb3VjaGVzV2l0aEV2ZW50
Oi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXpl
ci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXpl
ci5tbToKKyAgICAgICAgKC1bV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciB0b3VjaGVzQmVn
YW46d2l0aEV2ZW50Ol0pOgorICAgICAgICAoLVtXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVy
IHRvdWNoZXNFbmRlZDp3aXRoRXZlbnQ6XSk6CisKKyAgICAgICAgT3ZlcnJpZGUgdGhpcyBhbmQg
YWRkIGEgbmV3IGRlbGVnYXRlIGhvb2sgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgd2Ugd2FudCB0aGUg
ZGVmZXJyaW5nIGdlc3R1cmUgcmVjb2duaXplciB0bworICAgICAgICBpbW1lZGlhdGVseSBmYWls
IHdoZW4gdG91Y2hlcyBlbmQuIEl0J3MgaW1wb3J0YW50IHRvIG92ZXJyaWRlIHRoaXMgYW5kIHRy
YW5zaXRpb24gdG8gZmFpbHVyZSBzdGF0ZSBpbiB0aGlzIGNhc2UsCisgICAgICAgIHNpbmNlIG5v
dCBkb2luZyBzbyBjb3VsZCBtZWFuIHRoYXQgdGhlIGRlZmVycmluZyBnZXN0dXJlcyBzdGF5IGlu
IFBvc3NpYmxlIHN0YXRlIGZvcmV2ZXI7IHRoaXMgbWF5IGxlYWQgdG8gdGhlCisgICAgICAgIGdl
c3R1cmUgc3ViZ3JhcGggY29udGFpbmluZyB0aGVzZSBkZWZlcnJpbmcgZ2VzdHVyZXMgYmVpbmcg
dW5hYmxlIHRvIHJlc2V0LCBzaW5jZSBpdCdzIHdhaXRpbmcgZm9yIHRoZSBkZWZlcnJpbmcKKyAg
ICAgICAgZ2VzdHVyZSB0byBlaXRoZXIgZmFpbCBvciBlbmQuCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvaW9zL1dLU2Nyb2xsVmlldy5tbToKKyAgICAgICAgKC1bV0tTY3JvbGxWaWV3IGdlc3R1cmVS
ZWNvZ25pemVyOnNob3VsZFJlcXVpcmVGYWlsdXJlT2ZHZXN0dXJlUmVjb2duaXplcjpdKToKKyAg
ICAgICAgKC1bV0tTY3JvbGxWaWV3IGdlc3R1cmVSZWNvZ25pemVyOnNob3VsZEJlUmVxdWlyZWRU
b0ZhaWxCeUdlc3R1cmVSZWNvZ25pemVyOl0pOgorCisgICAgICAgIERlZmVyIG1vcmUgc2Nyb2xs
IHZpZXcgZ2VzdHVyZXMuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNw
YXRjaGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RXZlbnREaXNwYXRjaGVyOjp0b3VjaEV2ZW50
KToKKworICAgICAgICBBZGQgYW4gb3B0aW9uYWwgQ2FsbGJhY2tJRCBwYXJhbWV0ZXIgdG8gdGhp
cyBJUEMgbWVzc2FnZS4gSWYgYSBjYWxsYmFjayBJRCBpcyBnaXZlbiwgdGhlbiB3ZSBhdm9pZCBj
b2FsZXNjaW5nCisgICAgICAgIHRoZSB0b3VjaCBldmVudC4gVG8gaW1wbGVtZW50IHRoaXMsIHdl
IGFkZGl0aW9uYWxseSByZWZhY3RvciB0aGUgcXVldWVkIHRvdWNoIGV2ZW50cyBtYXAgdG8gY29u
dGFpbiBsaXN0cyBvZgorICAgICAgICA8V2ViVG91Y2hFdmVudCwgT3B0aW9uYWw8Q2FsbGJhY2tJ
RD4+IHBhaXJzOyBpZiBhIHF1ZXVlZCB0b3VjaCBldmVudCBoYXMgYSBjb3JyZXNwb25kaW5nIENh
bGxiYWNrSUQsIHRoZW4gd2UKKyAgICAgICAgZmlyZSB0aGUgY2FsbGJhY2sgY29ycmVzcG9uZGlu
ZyB0byB0aGUgSUQsIGluZGljYXRpbmcgd2hldGhlciB0aGUgdG91Y2ggZXZlbnQgd2FzIGhhbmRs
ZWQgYnkgdGhlIHBhZ2UuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNw
YXRjaGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5t
ZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6ZGlzcGF0Y2hBc3luY2hyb25vdXNUb3VjaEV2ZW50cyk6CisKIDIwMTkt
MTItMDcgIERhdmlkIFF1ZXNhZGEgIDxkYXZpZF9xdWVzYWRhQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSRUdSRVNTSU9OKHIyNTMyMzEpOiBEZWJ1ZyBhc3NlcnRpb24gZmFpbHVyZXMgdW5kZXIgfldl
YkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIoUHJveHkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9HZW5lcmljQ2FsbGJhY2suaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0dlbmVyaWNDYWxsYmFjay5oCmluZGV4IDM4MzIwMmZlZDNiNjIzNjA2MzMwMTNkMTli
NjMwOTdlZDM2NGYwNDQuLmMzMTEwNmE3OTEzY2FmYzMyNThlNjg3NzQyOWM1YWMyMjgzYTM0Zjcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dlbmVyaWNDYWxsYmFjay5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dlbmVyaWNDYWxsYmFjay5oCkBAIC0xNTcsNiAr
MTU3LDcgQEAgc3RhdGljIHR5cGVuYW1lIEdlbmVyaWNDYWxsYmFjazxJbnRlcm5hbFJldHVyblZh
bHVlVHlwZT46OkNhbGxiYWNrRnVuY3Rpb24gdG9HZW4KIHR5cGVkZWYgR2VuZXJpY0NhbGxiYWNr
PD4gVm9pZENhbGxiYWNrOwogdHlwZWRlZiBHZW5lcmljQ2FsbGJhY2s8Y29uc3QgVmVjdG9yPFdl
YkNvcmU6OkludFJlY3Q+JiwgZG91YmxlLCBXZWJDb3JlOjpGbG9hdEJveEV4dGVudD4gQ29tcHV0
ZWRQYWdlc0NhbGxiYWNrOwogdHlwZWRlZiBHZW5lcmljQ2FsbGJhY2s8Y29uc3QgU2hhcmVhYmxl
Qml0bWFwOjpIYW5kbGUmPiBJbWFnZUNhbGxiYWNrOwordHlwZWRlZiBHZW5lcmljQ2FsbGJhY2s8
Ym9vbD4gQm9vbENhbGxiYWNrOwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogdm9pZCBpbnZhbGlk
YXRlQ2FsbGJhY2tNYXAoSGFzaE1hcDx1aW50NjRfdCwgVD4mIGNhbGxiYWNrTWFwLCBDYWxsYmFj
a0Jhc2U6OkVycm9yIGVycm9yKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UGFnZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCmluZGV4
IDJhMjk4OTkzNDg1YmRhMWI4MDAwNzdjYWJjZmFlZWQxMzRlMGQ0N2UuLmU4NDgyNGZkODU1ZDZj
ZDkzMDBmYmZkMWFiM2ViYmQ5OWNiYzk0MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1BhZ2VDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xp
ZW50LmgKQEAgLTMwMSw2ICszMDEsOSBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5U
UykKICAgICB2aXJ0dWFsIHZvaWQgZG9uZVdpdGhUb3VjaEV2ZW50KGNvbnN0IE5hdGl2ZVdlYlRv
dWNoRXZlbnQmLCBib29sIHdhc0V2ZW50SGFuZGxlZCkgPSAwOwogI2VuZGlmCisjaWYgRU5BQkxF
KElPU19UT1VDSF9FVkVOVFMpCisgICAgdmlydHVhbCB2b2lkIGRvbmVEZWZlcnJpbmdOYXRpdmVH
ZXN0dXJlcyhib29sIHByZXZlbnROYXRpdmVHZXN0dXJlcykgPSAwOworI2VuZGlmCiAKICAgICB2
aXJ0dWFsIFJlZlB0cjxXZWJQb3B1cE1lbnVQcm94eT4gY3JlYXRlUG9wdXBNZW51UHJveHkoV2Vi
UGFnZVByb3h5JikgPSAwOwogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9SZW1vdGVMYXllclRy
ZWVWaWV3cy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3Mv
UmVtb3RlTGF5ZXJUcmVlVmlld3MubW0KaW5kZXggZjYxM2UxYzBjZjhmYTBlNWM3NDQ5MTllYWMw
YjllYjcxMTNlZGNiZC4uNzY3ZTBjZmU5MWEzOWI5NGUyYzQ3ZDM0OWFjOGFhNGJkNzg0MmY4NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9S
ZW1vdGVMYXllclRyZWVWaWV3cy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1v
dGVMYXllclRyZWUvaW9zL1JlbW90ZUxheWVyVHJlZVZpZXdzLm1tCkBAIC0zMiw2ICszMiw3IEBA
CiAjaW1wb3J0ICJSZW1vdGVMYXllclRyZWVIb3N0LmgiCiAjaW1wb3J0ICJSZW1vdGVMYXllclRy
ZWVOb2RlLmgiCiAjaW1wb3J0ICJVSUtpdFNQSS5oIgorI2ltcG9ydCAiV0tEZWZlcnJpbmdHZXN0
dXJlUmVjb2duaXplci5oIgogI2ltcG9ydCAiV0tEcmF3aW5nVmlldy5oIgogI2ltcG9ydCA8V2Vi
Q29yZS9SZWdpb24uaD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvUXVhcnR6Q29yZVNQSS5oPgpA
QCAtMzE2LDYgKzMxNywyMiBAQCAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhGcmFtZTooQ0dSZWN0
KWZyYW1lCiAgICAgcmV0dXJuIHNlbGY7CiB9CiAKKy0gKEJPT0wpZ2VzdHVyZVJlY29nbml6ZXI6
KFVJR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmVjb2duaXplciBzaG91bGRSZXF1aXJlRmFp
bHVyZU9mR2VzdHVyZVJlY29nbml6ZXI6KFVJR2VzdHVyZVJlY29nbml6ZXIgKilvdGhlckdlc3R1
cmVSZWNvZ25pemVyCit7CisgICAgaWYgKFtvdGhlckdlc3R1cmVSZWNvZ25pemVyIGlzS2luZE9m
Q2xhc3M6V0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplci5jbGFzc10pCisgICAgICAgIHJldHVy
biBbKFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgKilvdGhlckdlc3R1cmVSZWNvZ25pemVy
IHNob3VsZERlZmVyR2VzdHVyZVJlY29nbml6ZXI6Z2VzdHVyZVJlY29nbml6ZXJdOworCisgICAg
cmV0dXJuIE5POworfQorCistIChCT09MKWdlc3R1cmVSZWNvZ25pemVyOihVSUdlc3R1cmVSZWNv
Z25pemVyICopZ2VzdHVyZVJlY29nbml6ZXIgc2hvdWxkQmVSZXF1aXJlZFRvRmFpbEJ5R2VzdHVy
ZVJlY29nbml6ZXI6KFVJR2VzdHVyZVJlY29nbml6ZXIgKilvdGhlckdlc3R1cmVSZWNvZ25pemVy
Cit7CisgICAgaWYgKFtnZXN0dXJlUmVjb2duaXplciBpc0tpbmRPZkNsYXNzOldLRGVmZXJyaW5n
R2VzdHVyZVJlY29nbml6ZXIuY2xhc3NdKQorICAgICAgICByZXR1cm4gWyhXS0RlZmVycmluZ0dl
c3R1cmVSZWNvZ25pemVyICopZ2VzdHVyZVJlY29nbml6ZXIgc2hvdWxkRGVmZXJHZXN0dXJlUmVj
b2duaXplcjpvdGhlckdlc3R1cmVSZWNvZ25pemVyXTsKKworICAgIHJldHVybiBOTzsKK30KKwog
QGVuZAogCiBAaW1wbGVtZW50YXRpb24gV0tFbWJlZGRlZFZpZXcKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDhkYTUwNzMwMWViZjU2ZGQ1Mjk0OGZlNWVhNDEx
ZDNlYTUzN2UxYTkuLmM1MTczNjQzM2Y3YzBiNjkxY2I0NjhkNzhhOGFlMjNkY2I1ZWQzYzYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMTcxLDYgKzE3MSw3
IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Xcml0aW5nRGlyZWN0aW9uLmg+CiAjaW5jbHVkZSA8c3Rk
aW8uaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYvU2Nv
cGUuaD4KICNpbmNsdWRlIDx3dGYvU3lzdGVtVHJhY2luZy5oPgogI2luY2x1ZGUgPHd0Zi9VUkwu
aD4KICNpbmNsdWRlIDx3dGYvVVJMUGFyc2VyLmg+CkBAIC0yNzk0LDcgKzI3OTUsNyBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6aGFuZGxlR2VzdHVyZUV2ZW50KGNvbnN0IE5hdGl2ZVdlYkdlc3R1cmVF
dmVudCYgZXZlbnQpCiAjZW5kaWYKIAogI2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQotdm9p
ZCBXZWJQYWdlUHJveHk6OmhhbmRsZVRvdWNoRXZlbnRTeW5jaHJvbm91c2x5KE5hdGl2ZVdlYlRv
dWNoRXZlbnQmIGV2ZW50KQordm9pZCBXZWJQYWdlUHJveHk6OmhhbmRsZVByZXZlbnRhYmxlVG91
Y2hFdmVudChOYXRpdmVXZWJUb3VjaEV2ZW50JiBldmVudCkKIHsKICAgICBpZiAoIWhhc1J1bm5p
bmdQcm9jZXNzKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTI4MDMsOSArMjgwNCwyMCBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6aGFuZGxlVG91Y2hFdmVudFN5bmNocm9ub3VzbHkoTmF0aXZlV2ViVG91
Y2hFdmVudCYgZXZlbnQpCiAKICAgICB1cGRhdGVUb3VjaEV2ZW50VHJhY2tpbmcoZXZlbnQpOwog
CisgICAgYXV0byBoYW5kbGVBbGxUb3VjaFBvaW50c1JlbGVhc2VkID0gV1RGOjptYWtlU2NvcGVF
eGl0KFsmXSB7CisgICAgICAgIGlmICghZXZlbnQuYWxsVG91Y2hQb2ludHNBcmVSZWxlYXNlZCgp
KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIG1fdG91Y2hBbmRQb2ludGVyRXZlbnRU
cmFja2luZy5yZXNldCgpOworICAgICAgICBkaWRSZWxlYXNlQWxsVG91Y2hQb2ludHMoKTsKKyAg
ICB9KTsKKwogICAgIFRyYWNraW5nVHlwZSB0b3VjaEV2ZW50c1RyYWNraW5nVHlwZSA9IHRvdWNo
RXZlbnRUcmFja2luZ1R5cGUoZXZlbnQpOwotICAgIGlmICh0b3VjaEV2ZW50c1RyYWNraW5nVHlw
ZSA9PSBUcmFja2luZ1R5cGU6Ok5vdFRyYWNraW5nKQorICAgIGlmICh0b3VjaEV2ZW50c1RyYWNr
aW5nVHlwZSA9PSBUcmFja2luZ1R5cGU6Ok5vdFRyYWNraW5nKSB7CisgICAgICAgIGlmICghaXNI
YW5kbGluZ1ByZXZlbnRhYmxlVG91Y2hTdGFydCgpKQorICAgICAgICAgICAgcGFnZUNsaWVudCgp
LmRvbmVEZWZlcnJpbmdOYXRpdmVHZXN0dXJlcyhmYWxzZSk7CiAgICAgICAgIHJldHVybjsKKyAg
ICB9CiAKICAgICBpZiAodG91Y2hFdmVudHNUcmFja2luZ1R5cGUgPT0gVHJhY2tpbmdUeXBlOjpB
c3luY2hyb25vdXMpIHsKICAgICAgICAgLy8gV2UgY2FuIGVuZCB1cCBoZXJlIGlmIGEgbmF0aXZl
IGdlc3R1cmUgaGFzIG5vdCBzdGFydGVkIGJ1dCB0aGUgZXZlbnQgaGFuZGxlcnMgYXJlIHBhc3Np
dmUuCkBAIC0yODE1LDggKzI4MjcsMzIgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmhhbmRsZVRvdWNo
RXZlbnRTeW5jaHJvbm91c2x5KE5hdGl2ZVdlYlRvdWNoRXZlbnQmIGV2ZW50KQogICAgICAgICAv
LyBCdXQsIGhlcmUgd2Uga25vdyB0aGF0IGFsbCBldmVudHMgaGFuZGxlcnMgdGhhdCBjYW4gaGFu
ZGxlIHRoaXMgZXZlbnRzIGFyZSBwYXNzaXZlLgogICAgICAgICAvLyBXZSBjYW4gdXNlIGFzeW5j
aHJvbm91cyBkaXNwYXRjaCBhbmQgcHJldGVuZCB0byB0aGUgY2xpZW50IHRoYXQgdGhlIHBhZ2Ug
ZG9lcyBub3RoaW5nIHdpdGggdGhlIGV2ZW50cy4KICAgICAgICAgZXZlbnQuc2V0Q2FuUHJldmVu
dE5hdGl2ZUdlc3R1cmVzKGZhbHNlKTsKLSAgICAgICAgaGFuZGxlVG91Y2hFdmVudEFzeW5jaHJv
bm91c2x5KGV2ZW50KTsKKyAgICAgICAgaGFuZGxlVW5wcmV2ZW50YWJsZVRvdWNoRXZlbnQoZXZl
bnQpOwogICAgICAgICBkaWRSZWNlaXZlRXZlbnQoZXZlbnQudHlwZSgpLCBmYWxzZSk7CisgICAg
ICAgIGlmICghaXNIYW5kbGluZ1ByZXZlbnRhYmxlVG91Y2hTdGFydCgpKQorICAgICAgICAgICAg
cGFnZUNsaWVudCgpLmRvbmVEZWZlcnJpbmdOYXRpdmVHZXN0dXJlcyhmYWxzZSk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoZXZlbnQudHlwZSgpID09IFdlYkV2ZW50OjpUb3Vj
aFN0YXJ0KSB7CisgICAgICAgICsrbV9oYW5kbGluZ1ByZXZlbnRhYmxlVG91Y2hTdGFydENvdW50
OworICAgICAgICBGdW5jdGlvbjx2b2lkKGJvb2wsIENhbGxiYWNrQmFzZTo6RXJyb3IpPiBjb21w
bGV0aW9uSGFuZGxlciA9IFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGV2
ZW50XShib29sIGhhbmRsZWQsIENhbGxiYWNrQmFzZTo6RXJyb3IgZXJyb3IpIHsKKyAgICAgICAg
ICAgIEFTU0VSVChtX2hhbmRsaW5nUHJldmVudGFibGVUb3VjaFN0YXJ0Q291bnQpOworICAgICAg
ICAgICAgaWYgKG1faGFuZGxpbmdQcmV2ZW50YWJsZVRvdWNoU3RhcnRDb3VudCkKKyAgICAgICAg
ICAgICAgICAtLW1faGFuZGxpbmdQcmV2ZW50YWJsZVRvdWNoU3RhcnRDb3VudDsKKworICAgICAg
ICAgICAgaWYgKGVycm9yID09IENhbGxiYWNrQmFzZTo6RXJyb3I6OlByb2Nlc3NFeGl0ZWQpCisg
ICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBib29sIGhhbmRsZWRPckZhaWxl
ZFdpdGhFcnJvciA9IGhhbmRsZWQgfHwgZXJyb3IgIT0gQ2FsbGJhY2tCYXNlOjpFcnJvcjo6Tm9u
ZTsKKyAgICAgICAgICAgIGRpZFJlY2VpdmVFdmVudChldmVudC50eXBlKCksIGhhbmRsZWRPckZh
aWxlZFdpdGhFcnJvcik7CisgICAgICAgICAgICBwYWdlQ2xpZW50KCkuZG9uZVdpdGhUb3VjaEV2
ZW50KGV2ZW50LCBoYW5kbGVkT3JGYWlsZWRXaXRoRXJyb3IpOworICAgICAgICAgICAgaWYgKCFp
c0hhbmRsaW5nUHJldmVudGFibGVUb3VjaFN0YXJ0KCkpCisgICAgICAgICAgICAgICAgcGFnZUNs
aWVudCgpLmRvbmVEZWZlcnJpbmdOYXRpdmVHZXN0dXJlcyhoYW5kbGVkT3JGYWlsZWRXaXRoRXJy
b3IpOworICAgICAgICB9OworCisgICAgICAgIGF1dG8gY2FsbGJhY2tJRCA9IG1fY2FsbGJhY2tz
LnB1dChXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgbV9wcm9jZXNzLT50aHJvdHRsZXIoKS5i
YWNrZ3JvdW5kQWN0aXZpdHkoIldlYlBhZ2VQcm94eTo6aGFuZGxlUHJldmVudGFibGVUb3VjaEV2
ZW50Il9zKSk7CisgICAgICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6RXZlbnREaXNwYXRj
aGVyOjpUb3VjaEV2ZW50KG1fd2ViUGFnZUlELCBldmVudCwgY2FsbGJhY2tJRCksIDApOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCkBAIC0yODI4LDEyICsyODY0LDggQEAgdm9pZCBXZWJQYWdl
UHJveHk6OmhhbmRsZVRvdWNoRXZlbnRTeW5jaHJvbm91c2x5KE5hdGl2ZVdlYlRvdWNoRXZlbnQm
IGV2ZW50KQogICAgICAgICBoYW5kbGVkID0gdHJ1ZTsKICAgICBkaWRSZWNlaXZlRXZlbnQoZXZl
bnQudHlwZSgpLCBoYW5kbGVkKTsKICAgICBwYWdlQ2xpZW50KCkuZG9uZVdpdGhUb3VjaEV2ZW50
KGV2ZW50LCBoYW5kbGVkKTsKKyAgICBwYWdlQ2xpZW50KCkuZG9uZURlZmVycmluZ05hdGl2ZUdl
c3R1cmVzKGhhbmRsZWQpOwogICAgIG1fcHJvY2Vzcy0+cmVzcG9uc2l2ZW5lc3NUaW1lcigpLnN0
b3AoKTsKLQotICAgIGlmIChldmVudC5hbGxUb3VjaFBvaW50c0FyZVJlbGVhc2VkKCkpIHsKLSAg
ICAgICAgbV90b3VjaEFuZFBvaW50ZXJFdmVudFRyYWNraW5nLnJlc2V0KCk7Ci0gICAgICAgIGRp
ZFJlbGVhc2VBbGxUb3VjaFBvaW50cygpOwotICAgIH0KIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6
OnJlc2V0UG90ZW50aWFsVGFwU2VjdXJpdHlPcmlnaW4oKQpAQCAtMjg0NCw3ICsyODc2LDcgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OnJlc2V0UG90ZW50aWFsVGFwU2VjdXJpdHlPcmlnaW4oKQogICAg
IG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6UmVzZXRQb3RlbnRpYWxUYXBTZWN1
cml0eU9yaWdpbigpLCBtX3dlYlBhZ2VJRCk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpoYW5k
bGVUb3VjaEV2ZW50QXN5bmNocm9ub3VzbHkoY29uc3QgTmF0aXZlV2ViVG91Y2hFdmVudCYgZXZl
bnQpCit2b2lkIFdlYlBhZ2VQcm94eTo6aGFuZGxlVW5wcmV2ZW50YWJsZVRvdWNoRXZlbnQoY29u
c3QgTmF0aXZlV2ViVG91Y2hFdmVudCYgZXZlbnQpCiB7CiAgICAgaWYgKCFoYXNSdW5uaW5nUHJv
Y2VzcygpKQogICAgICAgICByZXR1cm47CkBAIC0yODUzLDcgKzI4ODUsNyBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6aGFuZGxlVG91Y2hFdmVudEFzeW5jaHJvbm91c2x5KGNvbnN0IE5hdGl2ZVdlYlRv
dWNoRXZlbnQmIGV2ZQogICAgIGlmICh0b3VjaEV2ZW50c1RyYWNraW5nVHlwZSA9PSBUcmFja2lu
Z1R5cGU6Ok5vdFRyYWNraW5nKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3Byb2Nlc3MtPnNl
bmQoTWVzc2FnZXM6OkV2ZW50RGlzcGF0Y2hlcjo6VG91Y2hFdmVudChtX3dlYlBhZ2VJRCwgZXZl
bnQpLCAwKTsKKyAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OkV2ZW50RGlzcGF0Y2hlcjo6
VG91Y2hFdmVudChtX3dlYlBhZ2VJRCwgZXZlbnQsIFdURjo6bnVsbG9wdCksIDApOwogCiAgICAg
aWYgKGV2ZW50LmFsbFRvdWNoUG9pbnRzQXJlUmVsZWFzZWQoKSkgewogICAgICAgICBtX3RvdWNo
QW5kUG9pbnRlckV2ZW50VHJhY2tpbmcucmVzZXQoKTsKQEAgLTY2OTksNiArNjczMSwxNyBAQCB2
b2lkIFdlYlBhZ2VQcm94eTo6ZGF0YUNhbGxiYWNrKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYg
ZGF0YVJlZmVyZW5jZSwgQ2FsbGJhYwogICAgIGNhbGxiYWNrLT5wZXJmb3JtQ2FsbGJhY2tXaXRo
UmV0dXJuVmFsdWUoQVBJOjpEYXRhOjpjcmVhdGUoZGF0YVJlZmVyZW5jZS5kYXRhKCksIGRhdGFS
ZWZlcmVuY2Uuc2l6ZSgpKS5wdHIoKSk7CiB9CiAKK3ZvaWQgV2ViUGFnZVByb3h5Ojpib29sQ2Fs
bGJhY2soYm9vbCByZXN1bHQsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKK3sKKyAgICBhdXRvIGNh
bGxiYWNrID0gbV9jYWxsYmFja3MudGFrZTxCb29sQ2FsbGJhY2s+KGNhbGxiYWNrSUQpOworICAg
IGlmICghY2FsbGJhY2spIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBjYWxsYmFjay0+cGVyZm9ybUNhbGxiYWNrV2l0aFJldHVy
blZhbHVlKHJlc3VsdCk7Cit9CisKIHZvaWQgV2ViUGFnZVByb3h5OjppbWFnZUNhbGxiYWNrKGNv
bnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiBiaXRtYXBIYW5kbGUsIENhbGxiYWNrSUQgY2Fs
bGJhY2tJRCkKIHsKICAgICBhdXRvIGNhbGxiYWNrID0gbV9jYWxsYmFja3MudGFrZTxJbWFnZUNh
bGxiYWNrPihjYWxsYmFja0lEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
aW5kZXggYmJlZmJjMDY0MzQ1Zjk2MTk3ZWQ2NTA0NDNlN2Q1MTZkYzkwMjIxYi4uNWQ1ZmRlODk0
NmRkZGJiNWU3MGZlMGZlODI3NTg3YWYzZmYyZjMwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmgKQEAgLTg3Niw4ICs4NzYsOCBAQCBwdWJsaWM6CiAKICNpZiBFTkFCTEUo
SU9TX1RPVUNIX0VWRU5UUykKICAgICB2b2lkIHJlc2V0UG90ZW50aWFsVGFwU2VjdXJpdHlPcmln
aW4oKTsKLSAgICB2b2lkIGhhbmRsZVRvdWNoRXZlbnRTeW5jaHJvbm91c2x5KE5hdGl2ZVdlYlRv
dWNoRXZlbnQmKTsKLSAgICB2b2lkIGhhbmRsZVRvdWNoRXZlbnRBc3luY2hyb25vdXNseShjb25z
dCBOYXRpdmVXZWJUb3VjaEV2ZW50Jik7CisgICAgdm9pZCBoYW5kbGVQcmV2ZW50YWJsZVRvdWNo
RXZlbnQoTmF0aXZlV2ViVG91Y2hFdmVudCYpOworICAgIHZvaWQgaGFuZGxlVW5wcmV2ZW50YWJs
ZVRvdWNoRXZlbnQoY29uc3QgTmF0aXZlV2ViVG91Y2hFdmVudCYpOwogCiAjZWxpZiBFTkFCTEUo
VE9VQ0hfRVZFTlRTKQogICAgIHZvaWQgaGFuZGxlVG91Y2hFdmVudChjb25zdCBOYXRpdmVXZWJU
b3VjaEV2ZW50Jik7CkBAIC0xNjMwLDYgKzE2MzAsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNl
dE9yaWVudGF0aW9uRm9yTWVkaWFDYXB0dXJlKHVpbnQ2NF90KTsKIAorICAgIGJvb2wgaXNIYW5k
bGluZ1ByZXZlbnRhYmxlVG91Y2hTdGFydCgpIGNvbnN0IHsgcmV0dXJuIG1faGFuZGxpbmdQcmV2
ZW50YWJsZVRvdWNoU3RhcnRDb3VudDsgfQorCiBwcml2YXRlOgogICAgIFdlYlBhZ2VQcm94eShQ
YWdlQ2xpZW50JiwgV2ViUHJvY2Vzc1Byb3h5JiwgUmVmPEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24+
JiYpOwogICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplKCk7CkBAIC0xOTM0LDYgKzE5MzYsNyBA
QCBwcml2YXRlOgogICAgIHZvaWQgdm9pZENhbGxiYWNrKENhbGxiYWNrSUQpOwogICAgIHZvaWQg
ZGF0YUNhbGxiYWNrKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYsIENhbGxiYWNrSUQpOwogICAg
IHZvaWQgaW1hZ2VDYWxsYmFjayhjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYsIENhbGxi
YWNrSUQpOworICAgIHZvaWQgYm9vbENhbGxiYWNrKGJvb2wgcmVzdWx0LCBDYWxsYmFja0lEKTsK
ICAgICB2b2lkIHN0cmluZ0NhbGxiYWNrKGNvbnN0IFN0cmluZyYsIENhbGxiYWNrSUQpOwogICAg
IHZvaWQgaW52YWxpZGF0ZVN0cmluZ0NhbGxiYWNrKENhbGxiYWNrSUQpOwogICAgIHZvaWQgc2Ny
aXB0VmFsdWVDYWxsYmFjayhjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmLCBib29sIGhhZEV4Y2Vw
dGlvbiwgY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGV0YWlscyYsIENhbGxiYWNrSUQpOwpAQCAt
MjQxNiw2ICsyNDE5LDggQEAgcHJpdmF0ZToKICAgICBEZXF1ZTxRdWV1ZWRUb3VjaEV2ZW50cz4g
bV90b3VjaEV2ZW50UXVldWU7CiAjZW5kaWYKIAorICAgIHVpbnQ2NF90IG1faGFuZGxpbmdQcmV2
ZW50YWJsZVRvdWNoU3RhcnRDb3VudCB7IDAgfTsKKwogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NP
TE9SKQogICAgIFJlZlB0cjxXZWJDb2xvclBpY2tlcj4gbV9jb2xvclBpY2tlcjsKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmlu
ZGV4IDVhZWQxM2UyOTVlNzcyMjJlZGFkNjIwYzhmZTBmMTIzZmI0MmE2YjMuLjBjNjUxZTY4NWIy
OTc5ZjRlMzZlOWM4YTU4NjQxNmQ2NzFiZGZmZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTE2Nyw2ICsxNjcsNyBAQCBtZXNz
YWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIERhdGFDYWxsYmFjayhJUEM6OlNoYXJlZEJ1ZmZl
ckRhdGFSZWZlcmVuY2UgcmVzdWx0RGF0YSwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQp
CiAgICAgSW1hZ2VDYWxsYmFjayhXZWJLaXQ6OlNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlIGJpdG1h
cEhhbmRsZSwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiAgICAgU3RyaW5nQ2FsbGJh
Y2soU3RyaW5nIHJlc3VsdFN0cmluZywgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCisg
ICAgQm9vbENhbGxiYWNrKGJvb2wgcmVzdWx0LCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJ
RCkKICAgICBJbnZhbGlkYXRlU3RyaW5nQ2FsbGJhY2soV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxi
YWNrSUQpCiAgICAgU2NyaXB0VmFsdWVDYWxsYmFjayhJUEM6OkRhdGFSZWZlcmVuY2UgcmVzdWx0
RGF0YSwgYm9vbCBoYWRFeGNlcHRpb24sIHN0cnVjdCBXZWJDb3JlOjpFeGNlcHRpb25EZXRhaWxz
IGRldGFpbHMsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQogICAgIENvbXB1dGVkUGFn
ZXNDYWxsYmFjayhWZWN0b3I8V2ViQ29yZTo6SW50UmVjdD4gcGFnZVJlY3RzLCBkb3VibGUgdG90
YWxTY2FsZUZhY3RvckZvclByaW50aW5nLCBXZWJDb3JlOjpSZWN0RWRnZXM8ZmxvYXQ+IGNvbXB1
dGVkUGFnZU1hcmdpbiwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCmluZGV4IGVhNTM1MjU3
ZGZjZGM2MDEwMDljY2I1NGNiMGIyYmJkODA0OTJmY2MuLmQ2YzhjMzhkNGE2NTExOTI2MjUwYTZj
ZjRiMDNhMjRhOTliMDNiYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9QYWdlQ2xpZW50SW1wbElPUy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Q
YWdlQ2xpZW50SW1wbElPUy5oCkBAIC0xMDMsNiArMTAzLDkgQEAgcHJpdmF0ZToKICAgICB2b2lk
IGRvbmVXaXRoS2V5RXZlbnQoY29uc3QgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudCYsIGJvb2wgd2Fz
RXZlbnRIYW5kbGVkKSBvdmVycmlkZTsKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgIHZv
aWQgZG9uZVdpdGhUb3VjaEV2ZW50KGNvbnN0IE5hdGl2ZVdlYlRvdWNoRXZlbnQmLCBib29sIHdh
c0V2ZW50SGFuZGxlZCkgb3ZlcnJpZGU7CisjZW5kaWYKKyNpZiBFTkFCTEUoSU9TX1RPVUNIX0VW
RU5UUykKKyAgICB2b2lkIGRvbmVEZWZlcnJpbmdOYXRpdmVHZXN0dXJlcyhib29sIHByZXZlbnRO
YXRpdmVHZXN0dXJlcykgb3ZlcnJpZGU7CiAjZW5kaWYKICAgICBSZWZQdHI8V2ViUG9wdXBNZW51
UHJveHk+IGNyZWF0ZVBvcHVwTWVudVByb3h5KFdlYlBhZ2VQcm94eSYpIG92ZXJyaWRlOwogICAg
IFJlZjxXZWJDb3JlOjpWYWxpZGF0aW9uQnViYmxlPiBjcmVhdGVWYWxpZGF0aW9uQnViYmxlKGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgV2ViQ29yZTo6VmFsaWRhdGlvbkJ1YmJsZTo6U2V0
dGluZ3MmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Q
YWdlQ2xpZW50SW1wbElPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xp
ZW50SW1wbElPUy5tbQppbmRleCBlMTM5OTY4ZDRmMGVlMzMyM2RkMjg5ZjQ3N2RkOGQ2NDFkNzdl
YzNhLi5kYzlmNzRjNDlhNmJlYTllZGMxNTA2YzVhYjk1N2UwMDZhMjA3YTVlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCkBAIC00MTgs
NiArNDE4LDE1IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OmRvbmVXaXRoVG91Y2hFdmVudChjb25z
dCBOYXRpdmVXZWJUb3VjaEV2ZW50JiBuYXRpdmVXZWJ0b3VjCiB9CiAjZW5kaWYKIAorI2lmIEVO
QUJMRShJT1NfVE9VQ0hfRVZFTlRTKQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkb25lRGVmZXJy
aW5nTmF0aXZlR2VzdHVyZXMoYm9vbCBwcmV2ZW50TmF0aXZlR2VzdHVyZXMpCit7CisgICAgW21f
Y29udGVudFZpZXcgX2RvbmVEZWZlcnJpbmdOYXRpdmVHZXN0dXJlczpwcmV2ZW50TmF0aXZlR2Vz
dHVyZXNdOworfQorCisjZW5kaWYgLy8gRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCisKIFJlZlB0
cjxXZWJQb3B1cE1lbnVQcm94eT4gUGFnZUNsaWVudEltcGw6OmNyZWF0ZVBvcHVwTWVudVByb3h5
KFdlYlBhZ2VQcm94eSYpCiB7CiAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKaW5kZXgg
NjM4ZDM4ZjVjZjFmZGM2MzFiNTg4YTlmMGExMWNiYTc4NmI2Y2RkYi4uN2YxOTcwZTY0YjhjNmQ1
YzZhZDE5NjI3NTUyZjIwNzNiYzkxMDk4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaApAQCAtMjA1LDggKzIwNSwx
MCBAQCBzdHJ1Y3QgV0tBdXRvQ29ycmVjdGlvbkRhdGEgewogQGVuZAogCiBAaW50ZXJmYWNlIFdL
Q29udGVudFZpZXcgKCkgeworI2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQogICAgIFJldGFp
blB0cjxXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyPiBfZGVmZXJyaW5nR2VzdHVyZVJlY29n
bml6ZXJGb3JJbW1lZGlhdGVseVJlc2V0dGFibGVHZXN0dXJlczsKICAgICBSZXRhaW5QdHI8V0tE
ZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplcj4gX2RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyRm9y
RGVsYXllZFJlc2V0dGFibGVHZXN0dXJlczsKKyNlbmRpZgogICAgIFJldGFpblB0cjxVSVdlYlRv
dWNoRXZlbnRzR2VzdHVyZVJlY29nbml6ZXI+IF90b3VjaEV2ZW50R2VzdHVyZVJlY29nbml6ZXI7
CiAKICAgICBCT09MIF90b3VjaEV2ZW50c0NhblByZXZlbnROYXRpdmVHZXN0dXJlczsKQEAgLTQ2
Myw2ICs0NjUsOSBAQCBGT1JfRUFDSF9QUklWQVRFX1dLQ09OVEVOVFZJRVdfQUNUSU9OKERFQ0xB
UkVfV0tDT05URU5UVklFV19BQ1RJT05fRk9SX1dFQl9WSUVXKQogI2lmIEVOQUJMRShUT1VDSF9F
VkVOVFMpCiAtICh2b2lkKV93ZWJUb3VjaEV2ZW50Oihjb25zdCBXZWJLaXQ6Ok5hdGl2ZVdlYlRv
dWNoRXZlbnQmKXRvdWNoRXZlbnQgcHJldmVudHNOYXRpdmVHZXN0dXJlczooQk9PTClwcmV2ZW50
c0RlZmF1bHQ7CiAjZW5kaWYKKyNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKKy0gKHZvaWQp
X2RvbmVEZWZlcnJpbmdOYXRpdmVHZXN0dXJlczooQk9PTClwcmV2ZW50TmF0aXZlR2VzdHVyZXM7
CisjZW5kaWYKIC0gKHZvaWQpX2NvbW1pdFBvdGVudGlhbFRhcEZhaWxlZDsKIC0gKHZvaWQpX2Rp
ZE5vdEhhbmRsZVRhcEFzQ2xpY2s6KGNvbnN0IFdlYkNvcmU6OkludFBvaW50Jilwb2ludDsKIC0g
KHZvaWQpX2RpZENvbXBsZXRlU3ludGhldGljQ2xpY2s7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCBkMjdm
YTM5NjhmMmVhN2U2MGQ2YWZlNTY4OGI4Y2Q1OTBmYWI4OTIwLi4wMWY2ODc4ZTg1YTQyZDY4ZjBi
OWNlYjAwZTViZDE5M2Q4YThjZjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTY0Myw2ICs2NDMsMTYg
QEAgc3RhdGljIFdLRHJhZ1Nlc3Npb25Db250ZXh0ICplbnN1cmVMb2NhbERyYWdTZXNzaW9uQ29u
dGV4dChpZCA8VUlEcmFnU2Vzc2lvbj4gc2UKIAogI2VuZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBP
UlQpCiAKK0BpbXBsZW1lbnRhdGlvbiBVSUdlc3R1cmVSZWNvZ25pemVyIChXS0NvbnRlbnRWaWV3
SGVscGVycykKKworLSAodm9pZClfd2tfY2FuY2VsCit7CisgICAgW3NlbGYgc2V0RW5hYmxlZDpO
T107CisgICAgW3NlbGYgc2V0RW5hYmxlZDpZRVNdOworfQorCitAZW5kCisKIEBpbnRlcmZhY2Ug
V0tDb250ZW50VmlldyAoV0tJbnRlcmFjdGlvblByaXZhdGUpCiAtICh2b2lkKWFjY2Vzc2liaWxp
dHlTcGVha1NlbGVjdGlvblNldENvbnRlbnQ6KE5TU3RyaW5nICopc3RyaW5nOwogLSAoTlNBcnJh
eSAqKXdlYlNlbGVjdGlvblJlY3RzRm9yU2VsZWN0aW9uUmVjdHM6KGNvbnN0IFZlY3RvcjxXZWJD
b3JlOjpTZWxlY3Rpb25SZWN0PiYpc2VsZWN0aW9uUmVjdHM7CkBAIC03NDIsNiArNzUyLDE4IEBA
IC0gKHZvaWQpc2V0dXBJbnRlcmFjdGlvbgogICAgIFtzZWxmIGFkZEdlc3R1cmVSZWNvZ25pemVy
Ol90b3VjaEFjdGlvbkRvd25Td2lwZUdlc3R1cmVSZWNvZ25pemVyLmdldCgpXTsKICNlbmRpZgog
CisjaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCisgICAgX2RlZmVycmluZ0dlc3R1cmVSZWNv
Z25pemVyRm9ySW1tZWRpYXRlbHlSZXNldHRhYmxlR2VzdHVyZXMgPSBhZG9wdE5TKFtbV0tEZWZl
cnJpbmdHZXN0dXJlUmVjb2duaXplciBhbGxvY10gaW5pdFdpdGhEZWZlcnJpbmdHZXN0dXJlRGVs
ZWdhdGU6c2VsZl0pOworICAgIFtfZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXJGb3JJbW1lZGlh
dGVseVJlc2V0dGFibGVHZXN0dXJlcyBzZXROYW1lOkAiVG91Y2ggZXZlbnQgZGVmZXJyZXIgKGlt
bWVkaWF0ZSByZXNldCkiXTsKKyAgICBbX2RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyRm9ySW1t
ZWRpYXRlbHlSZXNldHRhYmxlR2VzdHVyZXMgc2V0RGVsZWdhdGU6c2VsZl07CisgICAgW3NlbGYg
YWRkR2VzdHVyZVJlY29nbml6ZXI6X2RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyRm9ySW1tZWRp
YXRlbHlSZXNldHRhYmxlR2VzdHVyZXMuZ2V0KCldOworCisgICAgX2RlZmVycmluZ0dlc3R1cmVS
ZWNvZ25pemVyRm9yRGVsYXllZFJlc2V0dGFibGVHZXN0dXJlcyA9IGFkb3B0TlMoW1tXS0RlZmVy
cmluZ0dlc3R1cmVSZWNvZ25pemVyIGFsbG9jXSBpbml0V2l0aERlZmVycmluZ0dlc3R1cmVEZWxl
Z2F0ZTpzZWxmXSk7CisgICAgW19kZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplckZvckRlbGF5ZWRS
ZXNldHRhYmxlR2VzdHVyZXMgc2V0TmFtZTpAIlRvdWNoIGV2ZW50IGRlZmVycmVyIChkZWxheWVk
IHJlc2V0KSJdOworICAgIFtfZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXJGb3JEZWxheWVkUmVz
ZXR0YWJsZUdlc3R1cmVzIHNldERlbGVnYXRlOnNlbGZdOworICAgIFtzZWxmIGFkZEdlc3R1cmVS
ZWNvZ25pemVyOl9kZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplckZvckRlbGF5ZWRSZXNldHRhYmxl
R2VzdHVyZXMuZ2V0KCldOworI2VuZGlmCisKICAgICBfdG91Y2hFdmVudEdlc3R1cmVSZWNvZ25p
emVyID0gYWRvcHROUyhbW1VJV2ViVG91Y2hFdmVudHNHZXN0dXJlUmVjb2duaXplciBhbGxvY10g
aW5pdFdpdGhUYXJnZXQ6c2VsZiBhY3Rpb246QHNlbGVjdG9yKF93ZWJUb3VjaEV2ZW50c1JlY29n
bml6ZWQ6KSB0b3VjaERlbGVnYXRlOnNlbGZdKTsKICAgICBbX3RvdWNoRXZlbnRHZXN0dXJlUmVj
b2duaXplciBzZXREZWxlZ2F0ZTpzZWxmXTsKICAgICBbc2VsZiBhZGRHZXN0dXJlUmVjb2duaXpl
cjpfdG91Y2hFdmVudEdlc3R1cmVSZWNvZ25pemVyLmdldCgpXTsKQEAgLTkwNSw2ICs5MjcsMTQg
QEAgLSAodm9pZCljbGVhbnVwSW50ZXJhY3Rpb24KICAgICBbX3RvdWNoRXZlbnRHZXN0dXJlUmVj
b2duaXplciBzZXREZWxlZ2F0ZTpuaWxdOwogICAgIFtzZWxmIHJlbW92ZUdlc3R1cmVSZWNvZ25p
emVyOl90b3VjaEV2ZW50R2VzdHVyZVJlY29nbml6ZXIuZ2V0KCldOwogCisjaWYgRU5BQkxFKElP
U19UT1VDSF9FVkVOVFMpCisgICAgW19kZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplckZvckltbWVk
aWF0ZWx5UmVzZXR0YWJsZUdlc3R1cmVzIHNldERlbGVnYXRlOm5pbF07CisgICAgW3NlbGYgcmVt
b3ZlR2VzdHVyZVJlY29nbml6ZXI6X2RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyRm9ySW1tZWRp
YXRlbHlSZXNldHRhYmxlR2VzdHVyZXMuZ2V0KCldOworCisgICAgW19kZWZlcnJpbmdHZXN0dXJl
UmVjb2duaXplckZvckRlbGF5ZWRSZXNldHRhYmxlR2VzdHVyZXMgc2V0RGVsZWdhdGU6bmlsXTsK
KyAgICBbc2VsZiByZW1vdmVHZXN0dXJlUmVjb2duaXplcjpfZGVmZXJyaW5nR2VzdHVyZVJlY29n
bml6ZXJGb3JEZWxheWVkUmVzZXR0YWJsZUdlc3R1cmVzLmdldCgpXTsKKyNlbmRpZgorCiAjaWYg
SEFWRShIT1ZFUl9HRVNUVVJFX1JFQ09HTklaRVIpCiAgICAgW19tb3VzZUdlc3R1cmVSZWNvZ25p
emVyIHNldERlbGVnYXRlOm5pbF07CiAgICAgW3NlbGYgcmVtb3ZlR2VzdHVyZVJlY29nbml6ZXI6
X21vdXNlR2VzdHVyZVJlY29nbml6ZXIuZ2V0KCldOwpAQCAtMTAxNyw2ICsxMDQ3LDEwIEBAIC0g
KHZvaWQpY2xlYW51cEludGVyYWN0aW9uCiAKIC0gKHZvaWQpX3JlbW92ZURlZmF1bHRHZXN0dXJl
UmVjb2duaXplcnMKIHsKKyNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKKyAgICBbc2VsZiBy
ZW1vdmVHZXN0dXJlUmVjb2duaXplcjpfZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXJGb3JJbW1l
ZGlhdGVseVJlc2V0dGFibGVHZXN0dXJlcy5nZXQoKV07CisgICAgW3NlbGYgcmVtb3ZlR2VzdHVy
ZVJlY29nbml6ZXI6X2RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyRm9yRGVsYXllZFJlc2V0dGFi
bGVHZXN0dXJlcy5nZXQoKV07CisjZW5kaWYKICAgICBbc2VsZiByZW1vdmVHZXN0dXJlUmVjb2du
aXplcjpfdG91Y2hFdmVudEdlc3R1cmVSZWNvZ25pemVyLmdldCgpXTsKICAgICBbc2VsZiByZW1v
dmVHZXN0dXJlUmVjb2duaXplcjpfc2luZ2xlVGFwR2VzdHVyZVJlY29nbml6ZXIuZ2V0KCldOwog
ICAgIFtzZWxmIHJlbW92ZUdlc3R1cmVSZWNvZ25pemVyOl9oaWdobGlnaHRMb25nUHJlc3NHZXN0
dXJlUmVjb2duaXplci5nZXQoKV07CkBAIC0xMDQzLDYgKzEwNzcsMTAgQEAgLSAodm9pZClfcmVt
b3ZlRGVmYXVsdEdlc3R1cmVSZWNvZ25pemVycwogCiAtICh2b2lkKV9hZGREZWZhdWx0R2VzdHVy
ZVJlY29nbml6ZXJzCiB7CisjaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCisgICAgW3NlbGYg
YWRkR2VzdHVyZVJlY29nbml6ZXI6X2RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyRm9ySW1tZWRp
YXRlbHlSZXNldHRhYmxlR2VzdHVyZXMuZ2V0KCldOworICAgIFtzZWxmIGFkZEdlc3R1cmVSZWNv
Z25pemVyOl9kZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplckZvckRlbGF5ZWRSZXNldHRhYmxlR2Vz
dHVyZXMuZ2V0KCldOworI2VuZGlmCiAgICAgW3NlbGYgYWRkR2VzdHVyZVJlY29nbml6ZXI6X3Rv
dWNoRXZlbnRHZXN0dXJlUmVjb2duaXplci5nZXQoKV07CiAgICAgW3NlbGYgYWRkR2VzdHVyZVJl
Y29nbml6ZXI6X3NpbmdsZVRhcEdlc3R1cmVSZWNvZ25pemVyLmdldCgpXTsKICAgICBbc2VsZiBh
ZGRHZXN0dXJlUmVjb2duaXplcjpfaGlnaGxpZ2h0TG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXIu
Z2V0KCldOwpAQCAtMTQxOCw5ICsxNDU2LDkgQEAgLSAodm9pZClfd2ViVG91Y2hFdmVudHNSZWNv
Z25pemVkOihVSVdlYlRvdWNoRXZlbnRzR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmUKICNl
bmRpZgogCiAgICAgaWYgKF90b3VjaEV2ZW50c0NhblByZXZlbnROYXRpdmVHZXN0dXJlcykKLSAg
ICAgICAgX3BhZ2UtPmhhbmRsZVRvdWNoRXZlbnRTeW5jaHJvbm91c2x5KG5hdGl2ZVdlYlRvdWNo
RXZlbnQpOworICAgICAgICBfcGFnZS0+aGFuZGxlUHJldmVudGFibGVUb3VjaEV2ZW50KG5hdGl2
ZVdlYlRvdWNoRXZlbnQpOwogICAgIGVsc2UKLSAgICAgICAgX3BhZ2UtPmhhbmRsZVRvdWNoRXZl
bnRBc3luY2hyb25vdXNseShuYXRpdmVXZWJUb3VjaEV2ZW50KTsKKyAgICAgICAgX3BhZ2UtPmhh
bmRsZVVucHJldmVudGFibGVUb3VjaEV2ZW50KG5hdGl2ZVdlYlRvdWNoRXZlbnQpOwogCiAgICAg
aWYgKG5hdGl2ZVdlYlRvdWNoRXZlbnQuYWxsVG91Y2hQb2ludHNBcmVSZWxlYXNlZCgpKSB7CiAg
ICAgICAgIF90b3VjaEV2ZW50c0NhblByZXZlbnROYXRpdmVHZXN0dXJlcyA9IFlFUzsKQEAgLTE1
OTAsMTMgKzE2MjgsMjMgQEAgc3RhdGljIFdlYkNvcmU6OkZsb2F0UXVhZCBpbmZsYXRlUXVhZChj
b25zdCBXZWJDb3JlOjpGbG9hdFF1YWQmIHF1YWQsIGZsb2F0IGluZmwKICNpZiBFTkFCTEUoVE9V
Q0hfRVZFTlRTKQogLSAodm9pZClfd2ViVG91Y2hFdmVudDooY29uc3QgV2ViS2l0OjpOYXRpdmVX
ZWJUb3VjaEV2ZW50Jil0b3VjaEV2ZW50IHByZXZlbnRzTmF0aXZlR2VzdHVyZXM6KEJPT0wpcHJl
dmVudHNOYXRpdmVHZXN0dXJlCiB7Ci0gICAgaWYgKHByZXZlbnRzTmF0aXZlR2VzdHVyZSkgewot
ICAgICAgICBfbG9uZ1ByZXNzQ2FuQ2xpY2sgPSBOTzsKKyAgICBpZiAoIXByZXZlbnRzTmF0aXZl
R2VzdHVyZSB8fCAhW190b3VjaEV2ZW50R2VzdHVyZVJlY29nbml6ZXIgaXNEaXNwYXRjaGluZ1Rv
dWNoRXZlbnRzXSkKKyAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIF90b3VjaEV2ZW50c0NhblBy
ZXZlbnROYXRpdmVHZXN0dXJlcyA9IE5POwotICAgICAgICBbX3RvdWNoRXZlbnRHZXN0dXJlUmVj
b2duaXplciBzZXREZWZhdWx0UHJldmVudGVkOllFU107Ci0gICAgfQorICAgIF9sb25nUHJlc3ND
YW5DbGljayA9IE5POworICAgIF90b3VjaEV2ZW50c0NhblByZXZlbnROYXRpdmVHZXN0dXJlcyA9
IE5POworICAgIFtfdG91Y2hFdmVudEdlc3R1cmVSZWNvZ25pemVyIHNldERlZmF1bHRQcmV2ZW50
ZWQ6WUVTXTsKK30KKyNlbmRpZgorCisjaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCisKKy0g
KHZvaWQpX2RvbmVEZWZlcnJpbmdOYXRpdmVHZXN0dXJlczooQk9PTClwcmV2ZW50TmF0aXZlR2Vz
dHVyZXMKK3sKKyAgICBbX2RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyRm9ySW1tZWRpYXRlbHlS
ZXNldHRhYmxlR2VzdHVyZXMgc2V0RGVmYXVsdFByZXZlbnRlZDpwcmV2ZW50TmF0aXZlR2VzdHVy
ZXNdOworICAgIFtfZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXJGb3JEZWxheWVkUmVzZXR0YWJs
ZUdlc3R1cmVzIHNldERlZmF1bHRQcmV2ZW50ZWQ6cHJldmVudE5hdGl2ZUdlc3R1cmVzXTsKIH0K
KwogI2VuZGlmCiAKIHN0YXRpYyBOU1ZhbHVlICpuc1NpemVGb3JUYXBIaWdobGlnaHRCb3JkZXJS
YWRpdXMoV2ViQ29yZTo6SW50U2l6ZSBib3JkZXJSYWRpdXMsIENHRmxvYXQgYm9yZGVyUmFkaXVz
U2NhbGUpCkBAIC0xOTcyLDYgKzIwMjAsMTcgQEAgc3RhdGljIGlubGluZSBib29sIGlzU2FtZVBh
aXIoVUlHZXN0dXJlUmVjb2duaXplciAqYSwgVUlHZXN0dXJlUmVjb2duaXplciAqYiwgVUkKIAog
LSAoQk9PTClnZXN0dXJlUmVjb2duaXplcjooVUlHZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmVS
ZWNvZ25pemVyIHNob3VsZFJlY29nbml6ZVNpbXVsdGFuZW91c2x5V2l0aEdlc3R1cmVSZWNvZ25p
emVyOihVSUdlc3R1cmVSZWNvZ25pemVyKilvdGhlckdlc3R1cmVSZWNvZ25pemVyCiB7CisjaWYg
RU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCisgICAgaWYgKGlzU2FtZVBhaXIoZ2VzdHVyZVJlY29n
bml6ZXIsIG90aGVyR2VzdHVyZVJlY29nbml6ZXIsIF90b3VjaEV2ZW50R2VzdHVyZVJlY29nbml6
ZXIuZ2V0KCksIF9kZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplckZvckltbWVkaWF0ZWx5UmVzZXR0
YWJsZUdlc3R1cmVzLmdldCgpKSkKKyAgICAgICAgcmV0dXJuIFlFUzsKKworICAgIGlmIChpc1Nh
bWVQYWlyKGdlc3R1cmVSZWNvZ25pemVyLCBvdGhlckdlc3R1cmVSZWNvZ25pemVyLCBfdG91Y2hF
dmVudEdlc3R1cmVSZWNvZ25pemVyLmdldCgpLCBfZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXJG
b3JEZWxheWVkUmVzZXR0YWJsZUdlc3R1cmVzLmdldCgpKSkKKyAgICAgICAgcmV0dXJuIFlFUzsK
KyNlbmRpZgorCisgICAgaWYgKFtnZXN0dXJlUmVjb2duaXplciBpc0tpbmRPZkNsYXNzOldLRGVm
ZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIuY2xhc3NdICYmIFtvdGhlckdlc3R1cmVSZWNvZ25pemVy
IGlzS2luZE9mQ2xhc3M6V0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplci5jbGFzc10pCisgICAg
ICAgIHJldHVybiBZRVM7CisKICAgICBpZiAoaXNTYW1lUGFpcihnZXN0dXJlUmVjb2duaXplciwg
b3RoZXJHZXN0dXJlUmVjb2duaXplciwgX2hpZ2hsaWdodExvbmdQcmVzc0dlc3R1cmVSZWNvZ25p
emVyLmdldCgpLCBfbG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXIuZ2V0KCkpKQogICAgICAgICBy
ZXR1cm4gWUVTOwogCkBAIC0yMDIzLDYgKzIwODIsMTcgQEAgLSAoQk9PTClnZXN0dXJlUmVjb2du
aXplcjooVUlHZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmVSZWNvZ25pemVyIHNob3VsZFJlcXVp
cmUKICAgICBpZiAoZ2VzdHVyZVJlY29nbml6ZXIgPT0gX3RvdWNoRXZlbnRHZXN0dXJlUmVjb2du
aXplciAmJiBbX3dlYlZpZXcgX2lzTmF2aWdhdGlvblN3aXBlR2VzdHVyZVJlY29nbml6ZXI6b3Ro
ZXJHZXN0dXJlUmVjb2duaXplcl0pCiAgICAgICAgIHJldHVybiBZRVM7CiAKKyAgICBpZiAoW290
aGVyR2VzdHVyZVJlY29nbml6ZXIgaXNLaW5kT2ZDbGFzczpXS0RlZmVycmluZ0dlc3R1cmVSZWNv
Z25pemVyLmNsYXNzXSkKKyAgICAgICAgcmV0dXJuIFsoV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2du
aXplciAqKW90aGVyR2VzdHVyZVJlY29nbml6ZXIgc2hvdWxkRGVmZXJHZXN0dXJlUmVjb2duaXpl
cjpnZXN0dXJlUmVjb2duaXplcl07CisKKyAgICByZXR1cm4gTk87Cit9CisKKy0gKEJPT0wpZ2Vz
dHVyZVJlY29nbml6ZXI6KFVJR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmVjb2duaXplciBz
aG91bGRCZVJlcXVpcmVkVG9GYWlsQnlHZXN0dXJlUmVjb2duaXplcjooVUlHZXN0dXJlUmVjb2du
aXplciAqKW90aGVyR2VzdHVyZVJlY29nbml6ZXIKK3sKKyAgICBpZiAoW2dlc3R1cmVSZWNvZ25p
emVyIGlzS2luZE9mQ2xhc3M6V0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplci5jbGFzc10pCisg
ICAgICAgIHJldHVybiBbKFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmVj
b2duaXplciBzaG91bGREZWZlckdlc3R1cmVSZWNvZ25pemVyOm90aGVyR2VzdHVyZVJlY29nbml6
ZXJdOworCiAgICAgcmV0dXJuIE5POwogfQogCkBAIC0yMTA2LDYgKzIxNzYsOSBAQCAtIChCT09M
KWVuc3VyZVBvc2l0aW9uSW5mb3JtYXRpb25Jc1VwVG9EYXRlOihXZWJLaXQ6OkludGVyYWN0aW9u
SW5mb3JtYXRpb25SZXF1ZQogICAgIGlmIChbc2VsZiBfY3VycmVudFBvc2l0aW9uSW5mb3JtYXRp
b25Jc1ZhbGlkRm9yUmVxdWVzdDpyZXF1ZXN0XSkKICAgICAgICAgcmV0dXJuIFlFUzsKIAorICAg
IGlmICghX3BhZ2UtPmhhc1J1bm5pbmdQcm9jZXNzKCkpCisgICAgICAgIHJldHVybiBOTzsKKwog
ICAgIGF1dG8qIGNvbm5lY3Rpb24gPSBfcGFnZS0+cHJvY2VzcygpLmNvbm5lY3Rpb24oKTsKICAg
ICBpZiAoIWNvbm5lY3Rpb24pCiAgICAgICAgIHJldHVybiBOTzsKQEAgLTQxMzcsMTIgKzQyMTAs
MTIgQEAgLSAodm9pZClfaGFuZGxlQXV0b2NvcnJlY3Rpb25Db250ZXh0Oihjb25zdCBXZWJLaXQ6
OldlYkF1dG9jb3JyZWN0aW9uQ29udGV4dCYpY28KIC0gKHZvaWQpX2RpZFN0YXJ0UHJvdmlzaW9u
YWxMb2FkRm9yTWFpbkZyYW1lCiB7CiAgICAgLy8gUmVzZXQgdGhlIGRvdWJsZSB0YXAgZ2VzdHVy
ZSByZWNvZ25pemVyIHRvIHByZXZlbnQgYW55IGRvdWJsZSBjbGljayB0aGF0IGlzIGluIHRoZSBw
cm9jZXNzIG9mIGJlaW5nIHJlY29nbml6ZWQuCi0gICAgW19kb3VibGVUYXBHZXN0dXJlUmVjb2du
aXplckZvckRvdWJsZUNsaWNrIHNldEVuYWJsZWQ6Tk9dOwotICAgIFtfZG91YmxlVGFwR2VzdHVy
ZVJlY29nbml6ZXJGb3JEb3VibGVDbGljayBzZXRFbmFibGVkOllFU107CisgICAgW19kb3VibGVU
YXBHZXN0dXJlUmVjb2duaXplckZvckRvdWJsZUNsaWNrIF93a19jYW5jZWxdOwogICAgIC8vIFdl
IGFsc28gbmVlZCB0byBkaXNhYmxlIHRoZSBkb3VibGUtdGFwIGdlc3R1cmUgcmVjb2duaXplcnMg
dGhhdCBhcmUgZW5hYmxlZCBmb3IgZG91YmxlLXRhcC10by16b29tIGFuZCB3aGljaAogICAgIC8v
IGFyZSBlbmFibGVkIHdoZW4gYSBzaW5nbGUgdGFwIGlzIGZpcnN0IHJlY29nbml6ZWQuIFRoaXMg
YXZvaWRzIHRlc3RzIHJ1bm5pbmcgaW4gc2VxdWVuY2UgYW5kIHNpbXVsYXRpbmcgdGFwcwogICAg
IC8vIGluIHRoZSBzYW1lIGxvY2F0aW9uIHRvIHRyaWdnZXIgZG91YmxlLXRhcCByZWNvZ25pdGlv
bi4KICAgICBbc2VsZiBfc2V0RG91YmxlVGFwR2VzdHVyZXNFbmFibGVkOk5PXTsKKyAgICBbX3R3
b0ZpbmdlckRvdWJsZVRhcEdlc3R1cmVSZWNvZ25pemVyIF93a19jYW5jZWxdOwogfQogCiAtICh2
b2lkKV9kaWRDb21taXRMb2FkRm9yTWFpbkZyYW1lCkBAIC02Njg1LDI0ICs2NzU4LDUwIEBAIC0g
KHZvaWQpX2hpZGVDb250ZXh0TWVudUhpbnRDb250YWluZXIKIAogI3ByYWdtYSBtYXJrIC0gV0tE
ZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplckRlbGVnYXRlCiAKLS0gKEJPT0wpZGVmZXJyaW5nR2Vz
dHVyZVJlY29nbml6ZXI6KFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgKilkZWZlcnJpbmdH
ZXN0dXJlUmVjb2duaXplciBzaG91bGREZWZlckdlc3R1cmVzV2l0aEV2ZW50OihVSUV2ZW50ICop
ZXZlbnQKKy0gKEJPT0wpZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXI6KFdLRGVmZXJyaW5nR2Vz
dHVyZVJlY29nbml6ZXIgKilkZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciBzaG91bGREZWZlckdl
c3R1cmVzQWZ0ZXJCZWdpbm5pbmdUb3VjaGVzV2l0aEV2ZW50OihVSUV2ZW50ICopZXZlbnQKIHsK
ICAgICByZXR1cm4gIVtzZWxmIGdlc3R1cmVSZWNvZ25pemVyOmRlZmVycmluZ0dlc3R1cmVSZWNv
Z25pemVyIGlzSW50ZXJydXB0aW5nTW9tZW50dW1TY3JvbGxpbmdXaXRoRXZlbnQ6ZXZlbnRdOwog
fQogCistIChCT09MKWRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyOihXS0RlZmVycmluZ0dlc3R1
cmVSZWNvZ25pemVyICopZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgc2hvdWxkRGVmZXJHZXN0
dXJlc0FmdGVyRW5kaW5nVG91Y2hlc1dpdGhFdmVudDooVUlFdmVudCAqKWV2ZW50Cit7CisgICAg
cmV0dXJuIF9wYWdlLT5pc0hhbmRsaW5nUHJldmVudGFibGVUb3VjaFN0YXJ0KCk7Cit9CisKIC0g
KEJPT0wpZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXI6KFdLRGVmZXJyaW5nR2VzdHVyZVJlY29n
bml6ZXIgKilkZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciBzaG91bGREZWZlck90aGVyR2VzdHVy
ZVJlY29nbml6ZXI6KFVJR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmVjb2duaXplcgogewot
ICAgIGF1dG8gaXNNdWx0aXBsZVRhcEdlc3R1cmUgPSBbXShVSUdlc3R1cmVSZWNvZ25pemVyICpn
ZXN0dXJlKSB7Ci0gICAgICAgIHJldHVybiBbZ2VzdHVyZSBpc0tpbmRPZkNsYXNzOlVJVGFwR2Vz
dHVyZVJlY29nbml6ZXIuY2xhc3NdICYmIFsoVUlUYXBHZXN0dXJlUmVjb2duaXplciAqKWdlc3R1
cmUgbnVtYmVyT2ZUYXBzUmVxdWlyZWRdID4gMTsKKyNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5U
UykKKyAgICBhdXRvIGlzT25lRmluZ2VyTXVsdGlwbGVUYXBHZXN0dXJlID0gW10oVUlHZXN0dXJl
UmVjb2duaXplciAqZ2VzdHVyZSkgeworICAgICAgICBpZiAoIVtnZXN0dXJlIGlzS2luZE9mQ2xh
c3M6VUlUYXBHZXN0dXJlUmVjb2duaXplci5jbGFzc10pCisgICAgICAgICAgICByZXR1cm4gTk87
CisKKyAgICAgICAgVUlUYXBHZXN0dXJlUmVjb2duaXplciAqdGFwR2VzdHVyZSA9IChVSVRhcEdl
c3R1cmVSZWNvZ25pemVyICopZ2VzdHVyZTsKKyAgICAgICAgcmV0dXJuIHRhcEdlc3R1cmUubnVt
YmVyT2ZUYXBzUmVxdWlyZWQgPiAxICYmIHRhcEdlc3R1cmUubnVtYmVyT2ZUb3VjaGVzUmVxdWly
ZWQgPCAyOwogICAgIH07CiAKLSAgICBpZiAoZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgPT0g
X2RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyRm9yRGVsYXllZFJlc2V0dGFibGVHZXN0dXJlcykK
LSAgICAgICAgcmV0dXJuIGdlc3R1cmVSZWNvZ25pemVyICE9IF90b3VjaEV2ZW50R2VzdHVyZVJl
Y29nbml6ZXIgJiYgaXNNdWx0aXBsZVRhcEdlc3R1cmUoZ2VzdHVyZVJlY29nbml6ZXIpOworICAg
IGlmIChkZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciA9PSBfZGVmZXJyaW5nR2VzdHVyZVJlY29n
bml6ZXJGb3JEZWxheWVkUmVzZXR0YWJsZUdlc3R1cmVzKSB7CisgICAgICAgIGlmIChbZ2VzdHVy
ZVJlY29nbml6ZXIgaXNLaW5kT2ZDbGFzczpXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyLmNs
YXNzXSkKKyAgICAgICAgICAgIHJldHVybiBOTzsKKworICAgICAgICBpZiAoZ2VzdHVyZVJlY29n
bml6ZXIgPT0gX3RvdWNoRXZlbnRHZXN0dXJlUmVjb2duaXplcikKKyAgICAgICAgICAgIHJldHVy
biBOTzsKKworICAgICAgICByZXR1cm4gaXNPbmVGaW5nZXJNdWx0aXBsZVRhcEdlc3R1cmUoZ2Vz
dHVyZVJlY29nbml6ZXIpOworICAgIH0KKworICAgIGlmIChkZWZlcnJpbmdHZXN0dXJlUmVjb2du
aXplciA9PSBfZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXJGb3JJbW1lZGlhdGVseVJlc2V0dGFi
bGVHZXN0dXJlcykgeworICAgICAgICBpZiAoW2dlc3R1cmVSZWNvZ25pemVyIGlzS2luZE9mQ2xh
c3M6V0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplci5jbGFzc10pCisgICAgICAgICAgICByZXR1
cm4gTk87CiAKLSAgICBpZiAoZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgPT0gX2RlZmVycmlu
Z0dlc3R1cmVSZWNvZ25pemVyRm9ySW1tZWRpYXRlbHlSZXNldHRhYmxlR2VzdHVyZXMpCi0gICAg
ICAgIHJldHVybiBnZXN0dXJlUmVjb2duaXplciAhPSBfdG91Y2hFdmVudEdlc3R1cmVSZWNvZ25p
emVyICYmICFpc011bHRpcGxlVGFwR2VzdHVyZShnZXN0dXJlUmVjb2duaXplcik7CisgICAgICAg
IGlmIChnZXN0dXJlUmVjb2duaXplciA9PSBfdG91Y2hFdmVudEdlc3R1cmVSZWNvZ25pemVyKQor
ICAgICAgICAgICAgcmV0dXJuIE5POworCisgICAgICAgIHJldHVybiAhaXNPbmVGaW5nZXJNdWx0
aXBsZVRhcEdlc3R1cmUoZ2VzdHVyZVJlY29nbml6ZXIpOworICAgIH0KIAogICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOworI2VuZGlmCisKICAgICByZXR1cm4gTk87CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVy
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2du
aXplci5oCmluZGV4IGU2ODYyYjYzMGNiOWFlOWZlYzA1ZTQ0M2ZjZGE0NmJhZWI1NDc3NTMuLmFm
NDgyMzkyNmUxOWE5MzIyMmU4MTY5YTkxNzU2N2ZmM2IxNzMzMzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6
ZXIuaApAQCAtMzIsNyArMzIsOCBAQAogQGNsYXNzIFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6
ZXI7CiAKIEBwcm90b2NvbCBXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyRGVsZWdhdGUKLS0g
KEJPT0wpZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXI6KFdLRGVmZXJyaW5nR2VzdHVyZVJlY29n
bml6ZXIgKilkZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciBzaG91bGREZWZlckdlc3R1cmVzV2l0
aEV2ZW50OihVSUV2ZW50ICopZXZlbnQ7CistIChCT09MKWRlZmVycmluZ0dlc3R1cmVSZWNvZ25p
emVyOihXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyICopZGVmZXJyaW5nR2VzdHVyZVJlY29n
bml6ZXIgc2hvdWxkRGVmZXJHZXN0dXJlc0FmdGVyRW5kaW5nVG91Y2hlc1dpdGhFdmVudDooVUlF
dmVudCAqKWV2ZW50OworLSAoQk9PTClkZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplcjooV0tEZWZl
cnJpbmdHZXN0dXJlUmVjb2duaXplciAqKWRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyIHNob3Vs
ZERlZmVyR2VzdHVyZXNBZnRlckJlZ2lubmluZ1RvdWNoZXNXaXRoRXZlbnQ6KFVJRXZlbnQgKill
dmVudDsKIC0gKEJPT0wpZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXI6KFdLRGVmZXJyaW5nR2Vz
dHVyZVJlY29nbml6ZXIgKilkZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciBzaG91bGREZWZlck90
aGVyR2VzdHVyZVJlY29nbml6ZXI6KFVJR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmVjb2du
aXplcjsKIEBlbmQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dL
RGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplci5tbQppbmRleCA5YjM3NjA5N2EzYTA0MTJl
YTFkOTgzZDk0YzY3NThkNjJiYjQ2Njc5Li4xMGFjNWE3OTc5ODg2OTQ4YzkyNjU5Y2M4MjU0NWI2
Y2Q3M2NmMzM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tEZWZl
cnJpbmdHZXN0dXJlUmVjb2duaXplci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplci5tbQpAQCAtNDksMTAgKzQ5LDIzIEBAIC0g
KGlkIDxXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyRGVsZWdhdGU+KWRlZmVycmluZ0dlc3R1
cmVEZWxlZ2F0ZQogLSAodm9pZCl0b3VjaGVzQmVnYW46KE5TU2V0PFVJVG91Y2ggKj4gKil0b3Vj
aGVzIHdpdGhFdmVudDooVUlFdmVudCAqKWV2ZW50CiB7CiAgICAgW3N1cGVyIHRvdWNoZXNCZWdh
bjp0b3VjaGVzIHdpdGhFdmVudDpldmVudF07Ci0gICAgaWYgKFtfZGVmZXJyaW5nR2VzdHVyZURl
bGVnYXRlIGRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyOnNlbGYgc2hvdWxkRGVmZXJHZXN0dXJl
c1dpdGhFdmVudDpldmVudF0pCi0gICAgICAgIHNlbGYuc3RhdGUgPSBVSUdlc3R1cmVSZWNvZ25p
emVyU3RhdGVQb3NzaWJsZTsKLSAgICBlbHNlCi0gICAgICAgIHNlbGYuc3RhdGUgPSBVSUdlc3R1
cmVSZWNvZ25pemVyU3RhdGVGYWlsZWQ7CisgICAgaWYgKFtfZGVmZXJyaW5nR2VzdHVyZURlbGVn
YXRlIGRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyOnNlbGYgc2hvdWxkRGVmZXJHZXN0dXJlc0Fm
dGVyQmVnaW5uaW5nVG91Y2hlc1dpdGhFdmVudDpldmVudF0pCisgICAgICAgIHJldHVybjsKKwor
ICAgIHNlbGYuc3RhdGUgPSBVSUdlc3R1cmVSZWNvZ25pemVyU3RhdGVGYWlsZWQ7Cit9CisKKy0g
KHZvaWQpdG91Y2hlc0VuZGVkOihOU1NldDxVSVRvdWNoICo+ICopdG91Y2hlcyB3aXRoRXZlbnQ6
KFVJRXZlbnQgKilldmVudAoreworICAgIFtzdXBlciB0b3VjaGVzRW5kZWQ6dG91Y2hlcyB3aXRo
RXZlbnQ6ZXZlbnRdOworCisgICAgaWYgKHNlbGYuc3RhdGUgIT0gVUlHZXN0dXJlUmVjb2duaXpl
clN0YXRlUG9zc2libGUpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChbX2RlZmVycmluZ0dl
c3R1cmVEZWxlZ2F0ZSBkZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplcjpzZWxmIHNob3VsZERlZmVy
R2VzdHVyZXNBZnRlckVuZGluZ1RvdWNoZXNXaXRoRXZlbnQ6ZXZlbnRdKQorICAgICAgICByZXR1
cm47CisKKyAgICBzZWxmLnN0YXRlID0gVUlHZXN0dXJlUmVjb2duaXplclN0YXRlRmFpbGVkOwog
fQogCiAtICh2b2lkKXRvdWNoZXNDYW5jZWxsZWQ6KE5TU2V0PFVJVG91Y2ggKj4gKil0b3VjaGVz
IHdpdGhFdmVudDooVUlFdmVudCAqKWV2ZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV0tTY3JvbGxWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dLU2Nyb2xsVmlldy5tbQppbmRleCBkODRjZGZjOWNjMDc2MDZjNTAxZjY0MzA5ODcyNTIzMzk1
NDljMTI2Li45MDM1N2RkOTY5Y2NhZDZjNmY0ZmZjNmNjZTJhYzA2MmExODNmNzEwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tTY3JvbGxWaWV3Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS1Njcm9sbFZpZXcubW0KQEAgLTMwLDYgKzMwLDcg
QEAKIAogI2ltcG9ydCAiVUlLaXRTUEkuaCIKICNpbXBvcnQgIlZlcnNpb25DaGVja3MuaCIKKyNp
bXBvcnQgIldLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIuaCIKICNpbXBvcnQgIldLV2ViVmll
d0ludGVybmFsLmgiCiAjaW1wb3J0IDxwYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oPgogI2lt
cG9ydCA8d3RmL1dlYWtPYmpDUHRyLmg+CkBAIC0xODQsNiArMTg1LDIyIEBAIC0gKGlkIDxVSVNj
cm9sbFZpZXdEZWxlZ2F0ZT4pZGVsZWdhdGUKICAgICByZXR1cm4gX2V4dGVybmFsRGVsZWdhdGUu
Z2V0QXV0b3JlbGVhc2VkKCk7CiB9CiAKKy0gKEJPT0wpZ2VzdHVyZVJlY29nbml6ZXI6KFVJR2Vz
dHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmVjb2duaXplciBzaG91bGRSZXF1aXJlRmFpbHVyZU9m
R2VzdHVyZVJlY29nbml6ZXI6KFVJR2VzdHVyZVJlY29nbml6ZXIgKilvdGhlckdlc3R1cmVSZWNv
Z25pemVyCit7CisgICAgaWYgKFtvdGhlckdlc3R1cmVSZWNvZ25pemVyIGlzS2luZE9mQ2xhc3M6
V0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplci5jbGFzc10pCisgICAgICAgIHJldHVybiBbKFdL
RGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgKilvdGhlckdlc3R1cmVSZWNvZ25pemVyIHNob3Vs
ZERlZmVyR2VzdHVyZVJlY29nbml6ZXI6Z2VzdHVyZVJlY29nbml6ZXJdOworCisgICAgcmV0dXJu
IE5POworfQorCistIChCT09MKWdlc3R1cmVSZWNvZ25pemVyOihVSUdlc3R1cmVSZWNvZ25pemVy
ICopZ2VzdHVyZVJlY29nbml6ZXIgc2hvdWxkQmVSZXF1aXJlZFRvRmFpbEJ5R2VzdHVyZVJlY29n
bml6ZXI6KFVJR2VzdHVyZVJlY29nbml6ZXIgKilvdGhlckdlc3R1cmVSZWNvZ25pemVyCit7Cisg
ICAgaWYgKFtnZXN0dXJlUmVjb2duaXplciBpc0tpbmRPZkNsYXNzOldLRGVmZXJyaW5nR2VzdHVy
ZVJlY29nbml6ZXIuY2xhc3NdKQorICAgICAgICByZXR1cm4gWyhXS0RlZmVycmluZ0dlc3R1cmVS
ZWNvZ25pemVyICopZ2VzdHVyZVJlY29nbml6ZXIgc2hvdWxkRGVmZXJHZXN0dXJlUmVjb2duaXpl
cjpvdGhlckdlc3R1cmVSZWNvZ25pemVyXTsKKworICAgIHJldHVybiBOTzsKK30KKwogLSAodm9p
ZClfdXBkYXRlRGVsZWdhdGUKIHsKICAgICBXS1Njcm9sbFZpZXdEZWxlZ2F0ZUZvcndhcmRlciAq
b2xkRm9yd2FyZGVyID0gX2RlbGVnYXRlRm9yd2FyZGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAKaW5kZXggNjgwN2VkNTI5
MjUxNzhkNmY5YzIzZTQwODUxZTRhZjQxODZiMWIzZi4uYjk0ZjkzMTQ2YmVmZmY4ZjM0M2FlZDBl
ODFkN2E2NDU3MzZhNWNiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwCkBAIC0xNjQsNyArMTY0LDcgQEAgdm9pZCBFdmVu
dERpc3BhdGNoZXI6OmdldFF1ZXVlZFRvdWNoRXZlbnRzRm9yUGFnZShjb25zdCBXZWJQYWdlJiB3
ZWJQYWdlLCBUb3VjaEUKICAgICBkZXN0aW5hdGlvblF1ZXVlID0gbV90b3VjaEV2ZW50cy50YWtl
KHdlYlBhZ2UuaWRlbnRpZmllcigpKTsKIH0KIAotdm9pZCBFdmVudERpc3BhdGNoZXI6OnRvdWNo
RXZlbnQoUGFnZUlkZW50aWZpZXIgcGFnZUlELCBjb25zdCBXZWJLaXQ6OldlYlRvdWNoRXZlbnQm
IHRvdWNoRXZlbnQpCit2b2lkIEV2ZW50RGlzcGF0Y2hlcjo6dG91Y2hFdmVudChQYWdlSWRlbnRp
ZmllciBwYWdlSUQsIGNvbnN0IFdlYktpdDo6V2ViVG91Y2hFdmVudCYgdG91Y2hFdmVudCwgT3B0
aW9uYWw8Q2FsbGJhY2tJRD4gY2FsbGJhY2tJRCkKIHsKICAgICBib29sIHVwZGF0ZUxpc3RXYXNF
bXB0eTsKICAgICB7CkBAIC0xNzIsMTcgKzE3MiwxNiBAQCB2b2lkIEV2ZW50RGlzcGF0Y2hlcjo6
dG91Y2hFdmVudChQYWdlSWRlbnRpZmllciBwYWdlSUQsIGNvbnN0IFdlYktpdDo6V2ViVG91Y2hF
dgogICAgICAgICB1cGRhdGVMaXN0V2FzRW1wdHkgPSBtX3RvdWNoRXZlbnRzLmlzRW1wdHkoKTsK
ICAgICAgICAgYXV0byBhZGRSZXN1bHQgPSBtX3RvdWNoRXZlbnRzLmFkZChwYWdlSUQsIFRvdWNo
RXZlbnRRdWV1ZSgpKTsKICAgICAgICAgaWYgKGFkZFJlc3VsdC5pc05ld0VudHJ5KQotICAgICAg
ICAgICAgYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZS5hcHBlbmQodG91Y2hFdmVudCk7CisgICAg
ICAgICAgICBhZGRSZXN1bHQuaXRlcmF0b3ItPnZhbHVlLmFwcGVuZCh7IHRvdWNoRXZlbnQsIGNh
bGxiYWNrSUQgfSk7CiAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgVG91Y2hFdmVudFF1ZXVl
JiBxdWV1ZWRFdmVudHMgPSBhZGRSZXN1bHQuaXRlcmF0b3ItPnZhbHVlOworICAgICAgICAgICAg
YXV0byYgcXVldWVkRXZlbnRzID0gYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZTsKICAgICAgICAg
ICAgIEFTU0VSVCghcXVldWVkRXZlbnRzLmlzRW1wdHkoKSk7Ci0gICAgICAgICAgICBjb25zdCBX
ZWJUb3VjaEV2ZW50JiBsYXN0VG91Y2hFdmVudCA9IHF1ZXVlZEV2ZW50cy5sYXN0KCk7Ci0KKyAg
ICAgICAgICAgIGF1dG8mIGxhc3RFdmVudEFuZENhbGxiYWNrID0gcXVldWVkRXZlbnRzLmxhc3Qo
KTsKICAgICAgICAgICAgIC8vIENvYWxlc2NlIHRvdWNoIG1vdmUgZXZlbnRzLgotICAgICAgICAg
ICAgaWYgKHRvdWNoRXZlbnQudHlwZSgpID09IFdlYkV2ZW50OjpUb3VjaE1vdmUgJiYgbGFzdFRv
dWNoRXZlbnQudHlwZSgpID09IFdlYkV2ZW50OjpUb3VjaE1vdmUpCi0gICAgICAgICAgICAgICAg
cXVldWVkRXZlbnRzLmxhc3QoKSA9IHRvdWNoRXZlbnQ7CisgICAgICAgICAgICBpZiAodG91Y2hF
dmVudC50eXBlKCkgPT0gV2ViRXZlbnQ6OlRvdWNoTW92ZSAmJiBsYXN0RXZlbnRBbmRDYWxsYmFj
ay5maXJzdC50eXBlKCkgPT0gV2ViRXZlbnQ6OlRvdWNoTW92ZSAmJiAhY2FsbGJhY2tJRCAmJiAh
bGFzdEV2ZW50QW5kQ2FsbGJhY2suc2Vjb25kKQorICAgICAgICAgICAgICAgIHF1ZXVlZEV2ZW50
cy5sYXN0KCkgPSB7IHRvdWNoRXZlbnQsIFdURjo6bnVsbG9wdCB9OwogICAgICAgICAgICAgZWxz
ZQotICAgICAgICAgICAgICAgIHF1ZXVlZEV2ZW50cy5hcHBlbmQodG91Y2hFdmVudCk7CisgICAg
ICAgICAgICAgICAgcXVldWVkRXZlbnRzLmFwcGVuZCh7IHRvdWNoRXZlbnQsIGNhbGxiYWNrSUQg
fSk7CiAgICAgICAgIH0KICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmgKaW5kZXggZTFiYmJkNDc5NjliZmJiNzUyYzYxZDIx
YzYxYTI5ZWVmYWQ5NjJmMi4uZWY4NWMzOTlmNGIzZDgwZjY1ZGZiODkwYTAxYmM4YWM3OWQ0Yjc1
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNw
YXRjaGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNw
YXRjaGVyLmgKQEAgLTI2LDggKzI2LDggQEAKICNpZm5kZWYgRXZlbnREaXNwYXRjaGVyX2gKICNk
ZWZpbmUgRXZlbnREaXNwYXRjaGVyX2gKIAorI2luY2x1ZGUgIkNhbGxiYWNrSUQuaCIKICNpbmNs
dWRlICJDb25uZWN0aW9uLmgiCi0KICNpbmNsdWRlICJXZWJFdmVudC5oIgogI2luY2x1ZGUgPFdl
YkNvcmUvUGFnZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1doZWVsRXZlbnREZWx0
YUZpbHRlci5oPgpAQCAtNDgsNyArNDgsNiBAQCBjbGFzcyBUaHJlYWRlZFNjcm9sbGluZ1RyZWU7
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1jbGFzcyBXZWJFdmVudDsKIGNsYXNzIFdlYlBhZ2U7
CiBjbGFzcyBXZWJXaGVlbEV2ZW50OwogCkBAIC02Myw3ICs2Miw3IEBAIHB1YmxpYzoKICNlbmRp
ZgogCiAjaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCi0gICAgdHlwZWRlZiBWZWN0b3I8V2Vi
VG91Y2hFdmVudCwgMT4gVG91Y2hFdmVudFF1ZXVlOworICAgIHVzaW5nIFRvdWNoRXZlbnRRdWV1
ZSA9IFZlY3RvcjxzdGQ6OnBhaXI8V2ViVG91Y2hFdmVudCwgT3B0aW9uYWw8Q2FsbGJhY2tJRD4+
LCAxPjsKIAogICAgIHZvaWQgY2xlYXJRdWV1ZWRUb3VjaEV2ZW50c0ZvclBhZ2UoY29uc3QgV2Vi
UGFnZSYpOwogICAgIHZvaWQgZ2V0UXVldWVkVG91Y2hFdmVudHNGb3JQYWdlKGNvbnN0IFdlYlBh
Z2UmLCBUb3VjaEV2ZW50UXVldWUmKTsKQEAgLTgwLDcgKzc5LDcgQEAgcHJpdmF0ZToKICAgICAv
LyBNZXNzYWdlIGhhbmRsZXJzCiAgICAgdm9pZCB3aGVlbEV2ZW50KFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyLCBjb25zdCBXZWJXaGVlbEV2ZW50JiwgYm9vbCBjYW5SdWJiZXJCYW5kQXRMZWZ0LCBi
b29sIGNhblJ1YmJlckJhbmRBdFJpZ2h0LCBib29sIGNhblJ1YmJlckJhbmRBdFRvcCwgYm9vbCBj
YW5SdWJiZXJCYW5kQXRCb3R0b20pOwogI2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQotICAg
IHZvaWQgdG91Y2hFdmVudChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgY29uc3QgV2ViVG91Y2hF
dmVudCYpOworICAgIHZvaWQgdG91Y2hFdmVudChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgY29u
c3QgV2ViVG91Y2hFdmVudCYsIE9wdGlvbmFsPENhbGxiYWNrSUQ+KTsKICNlbmRpZgogI2lmIEVO
QUJMRShNQUNfR0VTVFVSRV9FVkVOVFMpCiAgICAgdm9pZCBnZXN0dXJlRXZlbnQoV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIsIGNvbnN0IFdlYkdlc3R1cmVFdmVudCYpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLm1lc3NhZ2VzLmlu
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLm1lc3Nh
Z2VzLmluCmluZGV4IGFmOTA0YjQ1MTZhMTA5ODA4NTRjMWEzNDRlNjEyMmNmZDcxNjRiODQuLjY5
MzdkMGRjMjljNGMzMjJiOWJlNTg0MmFmMjc2MjBjODMwNDA3ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5tZXNzYWdlcy5pbgor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIubWVz
c2FnZXMuaW4KQEAgLTIzLDcgKzIzLDcgQEAKIG1lc3NhZ2VzIC0+IEV2ZW50RGlzcGF0Y2hlciB7
CiAgICAgV2hlZWxFdmVudChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYktpdDo6
V2ViV2hlZWxFdmVudCBldmVudCwgYm9vbCBjYW5SdWJiZXJCYW5kQXRMZWZ0LCBib29sIGNhblJ1
YmJlckJhbmRBdFJpZ2h0LCBib29sIGNhblJ1YmJlckJhbmRBdFRvcCwgYm9vbCBjYW5SdWJiZXJC
YW5kQXRCb3R0b20pCiAjaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCi0gICAgVG91Y2hFdmVu
dChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYktpdDo6V2ViVG91Y2hFdmVudCBl
dmVudCkKKyAgICBUb3VjaEV2ZW50KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2Vi
S2l0OjpXZWJUb3VjaEV2ZW50IGV2ZW50LCBPcHRpb25hbDxXZWJLaXQ6OkNhbGxiYWNrSUQ+IGNh
bGxiYWNrSUQpCiAjZW5kaWYKICNpZiBFTkFCTEUoTUFDX0dFU1RVUkVfRVZFTlRTKQogICAgIEdl
c3R1cmVFdmVudChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYktpdDo6V2ViR2Vz
dHVyZUV2ZW50IGV2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oCmluZGV4IDM0MGI2ZDhiMDkxMjZlOTM1MGY5ZDlhOWZhYTQyMThhZTZhODYyNTguLmYzNTll
NDExZjNhNmQ2MzkzMDczNGI1ZmMyNWZlMzNjYjU2YjUwMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTcxNyw3ICs3MTcsNyBAQCBwdWJsaWM6CiAj
ZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShJT1NfVE9VQ0hfRVZF
TlRTKQotICAgIHZvaWQgZGlzcGF0Y2hBc3luY2hyb25vdXNUb3VjaEV2ZW50cyhjb25zdCBWZWN0
b3I8V2ViVG91Y2hFdmVudCwgMT4mIHF1ZXVlKTsKKyAgICB2b2lkIGRpc3BhdGNoQXN5bmNocm9u
b3VzVG91Y2hFdmVudHMoY29uc3QgVmVjdG9yPHN0ZDo6cGFpcjxXZWJUb3VjaEV2ZW50LCBPcHRp
b25hbDxDYWxsYmFja0lEPj4sIDE+JiBxdWV1ZSk7CiAjZW5kaWYKIAogICAgIGJvb2wgaGFzUmlj
aGx5RWRpdGFibGVTZWxlY3Rpb24oKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggMzQ2ODU2YmI1MWEzMDQyYmY5
ZWQ2MzNmZTRjOWRhOTQxZGM2MGRiNC4uNzU3NmI2MGIwYjI2MWI3YjAwMzViYTVjY2U3YTVkNTVj
ODMyY2E0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9z
L1dlYlBhZ2VJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9z
L1dlYlBhZ2VJT1MubW0KQEAgLTM3NDIsMTEgKzM3NDIsMTQgQEAgdm9pZCBXZWJQYWdlOjp3aWxs
U3RhcnRVc2VyVHJpZ2dlcmVkWm9vbWluZygpCiB9CiAKICNpZiBFTkFCTEUoSU9TX1RPVUNIX0VW
RU5UUykKLXZvaWQgV2ViUGFnZTo6ZGlzcGF0Y2hBc3luY2hyb25vdXNUb3VjaEV2ZW50cyhjb25z
dCBWZWN0b3I8V2ViVG91Y2hFdmVudCwgMT4mIHF1ZXVlKQordm9pZCBXZWJQYWdlOjpkaXNwYXRj
aEFzeW5jaHJvbm91c1RvdWNoRXZlbnRzKGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8V2ViVG91Y2hF
dmVudCwgT3B0aW9uYWw8Q2FsbGJhY2tJRD4+LCAxPiYgcXVldWUpCiB7Ci0gICAgYm9vbCBpZ25v
cmVkOwotICAgIGZvciAoY29uc3QgV2ViVG91Y2hFdmVudCYgZXZlbnQgOiBxdWV1ZSkKLSAgICAg
ICAgZGlzcGF0Y2hUb3VjaEV2ZW50KGV2ZW50LCBpZ25vcmVkKTsKKyAgICBmb3IgKGF1dG8mIGV2
ZW50QW5kQ2FsbGJhY2tJRCA6IHF1ZXVlKSB7CisgICAgICAgIGJvb2wgaGFuZGxlZDsKKyAgICAg
ICAgZGlzcGF0Y2hUb3VjaEV2ZW50KGV2ZW50QW5kQ2FsbGJhY2tJRC5maXJzdCwgaGFuZGxlZCk7
CisgICAgICAgIGlmIChldmVudEFuZENhbGxiYWNrSUQuc2Vjb25kKQorICAgICAgICAgICAgc2Vu
ZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpCb29sQ2FsbGJhY2soaGFuZGxlZCwgKmV2ZW50QW5k
Q2FsbGJhY2tJRC5zZWNvbmQpKTsKKyAgICB9CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGY1MjY2YTk2
MWIzNjM0NDFjMDM1MjMyZTVjY2ZlNDYwMzRmNTFlZjMuLjAzMjExYTAyYzQ0NDRiOWRkNTA4ZmQ3
NDk3NWYyMzM2MmJlOGMxMDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MiBAQAorMjAxOS0xMi0wNiAgV2Vu
c29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBXS1dl
YlZpZXcgdG91Y2ggZXZlbnQgZ2VzdHVyZSByZWNvZ25pdGlvbiBzaG91bGQgbm90IGJsb2NrIHRo
ZSBhcHBsaWNhdGlvbiBwcm9jZXNzIG1haW4gdGhyZWFkIHdoZW4gcG9zc2libGUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDY2NAorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMzg2NzA2OTI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRv
bi4KKworICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL2lvcy9wcmV2ZW50LWRlZmF1bHQtb24t
dG91Y2gtc3RhcnQtd2l0aC1zbG93LWV2ZW50LWxpc3RlbmVyLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvaW9zL3ByZXZlbnQtZGVmYXVsdC1vbi10b3Vj
aC1zdGFydC13aXRoLXNsb3ctZXZlbnQtbGlzdGVuZXIuaHRtbDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9ldmVudHMvdG91Y2gvaW9zL3Njcm9sbC1vbi10b3VjaC1zdGFydC13aXRoLXNsb3ctZXZl
bnQtbGlzdGVuZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy90
b3VjaC9pb3Mvc2Nyb2xsLW9uLXRvdWNoLXN0YXJ0LXdpdGgtc2xvdy1ldmVudC1saXN0ZW5lci5o
dG1sOiBBZGRlZC4KKworICAgICAgICBBZGQgbmV3IGxheW91dCB0ZXN0cyB0byBjb3ZlciBiZWhh
dmlvcnMgd2hlbiBwYW5uaW5nIG92ZXIgYWN0aXZlIHRvdWNoc3RhcnQgaGFuZGxlcnMgdGhhdCBz
cGluIGZvciBhbiBleHRlbmRlZAorICAgICAgICBsZW5ndGggb2YgdGltZSAoaW4gdGhpcyBjYXNl
LCA0MDAgbWlsbGlzZWNvbmRzKSBpbiBvdmVyZmxvdyBzY3JvbGxpbmcgY29udGFpbmVycy4gQSB0
b3VjaHN0YXJ0IGhhbmRsZXIgdGhhdAorICAgICAgICBwcmV2ZW50cyBkZWZhdWx0IHNob3VsZCBz
dGlsbCBibG9jayBzY3JvbGxpbmcsIGFuZCBhIHRvdWNoc3RhcnQgaGFuZGxlciB0aGF0IGRvZXMg
bm90IHNob3VsZCBzdGlsbCBhbGxvdyB0aGUKKyAgICAgICAgdXNlciB0byBzY3JvbGwuCisKKyAg
ICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9pb3Mvc2hvdy1tb2RhbC1hbGVydC1kdXJpbmctdG91
Y2gtc3RhcnQuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9h
bmNob3ItdGFnLWF0dHJpYnV0ZXMtdmFsaWRhdGlvbi1leHBlY3RlZC50eHQ6CisgICAgICAgICog
aHR0cC90ZXN0cy9zZWN1cml0eS9hbmNob3ItZG93bmxvYWQtYmxvY2stY3Jvc3NvcmlnaW4tZXhw
ZWN0ZWQudHh0OgorCisgICAgICAgIFJlYmFzZWxpbmUgdGhlc2UgdGVzdHMgYnkgY2hhbmdpbmcg
c29tZSBsaW5lIG51bWJlcnMuCisKKyAgICAgICAgKiByZXNvdXJjZXMvdWktaGVscGVyLmpzOgor
ICAgICAgICAod2luZG93LlVJSGVscGVyLnNlbmRFdmVudFN0cmVhbS5yZXR1cm4ubmV3LlByb21p
c2UpOgorICAgICAgICAod2luZG93LlVJSGVscGVyLnNlbmRFdmVudFN0cmVhbSk6CisKKyAgICAg
ICAgQWRkIGEgbmV3IFVJSGVscGVyIG1ldGhvZCB0byBzZW5kIGEgSlNPTiBvYmplY3QgYXMgYW4g
ZXZlbnQgc3RyZWFtLgorCisgICAgICAgIChVSUhlbHBlci5FdmVudFN0cmVhbUJ1aWxkZXIucHJv
dG90eXBlLl9yZXNldCk6CisgICAgICAgIChVSUhlbHBlci5FdmVudFN0cmVhbUJ1aWxkZXIucHJv
dG90eXBlLmJlZ2luKToKKyAgICAgICAgKFVJSGVscGVyLkV2ZW50U3RyZWFtQnVpbGRlci5wcm90
b3R5cGUubW92ZSk6CisgICAgICAgIChVSUhlbHBlci5FdmVudFN0cmVhbUJ1aWxkZXIucHJvdG90
eXBlLmVuZCk6CisgICAgICAgIChVSUhlbHBlci5FdmVudFN0cmVhbUJ1aWxkZXIucHJvdG90eXBl
LnRha2VSZXN1bHQpOgorCisgICAgICAgIEFkZCBhIG5ldyBoZWxwZXIgY2xhc3MgdG8gbWFrZSBp
dCBlYXNpZXIgdG8gY29uc3RydWN0IGV2ZW50IHN0cmVhbXMsIGZvciB0aGUgcHVycG9zZXMgb2Yg
c2VuZGluZyB0bworICAgICAgICBVSVNjcmlwdENvbnRyb2xsZXI6OnNlbmRFdmVudFN0cmVhbS4K
KwogMjAxOS0xMi0wNyAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAg
ICBVbmlxdWUgb3JpZ2luJ3Mgd2luZG93IG11c3QgZ2V0IGl0cyBvd24gZXZlbnQgbG9vcApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3ByZXZlbnQtZGVmYXVs
dC1vbi10b3VjaC1zdGFydC13aXRoLXNsb3ctZXZlbnQtbGlzdGVuZXItZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3ByZXZlbnQtZGVmYXVsdC1vbi10b3Vj
aC1zdGFydC13aXRoLXNsb3ctZXZlbnQtbGlzdGVuZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjZkNmY4N2RmOWE1Njk4NTkyZWU4MDdjN2RkNWIzNjc2YTVkZjM3YjQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvcHJldmVudC1kZWZhdWx0LW9u
LXRvdWNoLXN0YXJ0LXdpdGgtc2xvdy1ldmVudC1saXN0ZW5lci1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxMCBAQAorVmVyaWZpZXMgdGhhdCBjYWxsaW5nIHByZXZlbnREZWZhdWx0KCkgb24gdG91
Y2hzdGFydCBwcmV2ZW50cyBzY3JvbGxpbmcgd2hlbiB0aGUgdG91Y2ggZXZlbnQgaGFuZGxlciBp
cyB1bnJlc3BvbnNpdmUgZm9yIGFuIGV4dGVuZGVkIGR1cmF0aW9uLiBUbyBtYW51YWxseSB0ZXN0
LCBhdHRlbXB0IHRvIHNjcm9sbCB0aGUgYm94OyBjaGVjayB0aGF0IHRvdWNoc3RhcnQgYW5kIHRv
dWNoZW5kIGV2ZW50cyB3ZXJlIGhhbmRsZWQsIGFuZCB0aGF0IHRoZSBib3ggZGlkIG5vdCBzY3Jv
bGwuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworUEFTUyBPYnNlcnZlZCB0b3VjaHN0
YXJ0IGV2ZW50CitQQVNTIE9ic2VydmVkIHRvdWNoZW5kIGV2ZW50CitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3ByZXZlbnQtZGVmYXVsdC1vbi10b3VjaC1zdGFydC13
aXRoLXNsb3ctZXZlbnQtbGlzdGVuZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Rv
dWNoL2lvcy9wcmV2ZW50LWRlZmF1bHQtb24tdG91Y2gtc3RhcnQtd2l0aC1zbG93LWV2ZW50LWxp
c3RlbmVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2NiOWVmODBmOTIxZTM2ZmNiYzM5NjQzZjFmZGQ0YjFm
ZWFkYTBlZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNo
L2lvcy9wcmV2ZW50LWRlZmF1bHQtb24tdG91Y2gtc3RhcnQtd2l0aC1zbG93LWV2ZW50LWxpc3Rl
bmVyLmh0bWwKQEAgLTAsMCArMSw3NCBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRl
c3QtcnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVlIGludGVybmFsOkFzeW5jT3ZlcmZs
b3dTY3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4KKzxodG1sPgorPG1ldGEgbmFtZT0idmlld3Bv
cnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLCB1c2VyLXNj
YWxhYmxlPW5vIj4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jl
c291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgIDxzdHlsZT4KKyAgICBodG1sLCBi
b2R5IHsKKyAgICAgICAgd2lkdGg6IDEwMCU7CisgICAgICAgIGhlaWdodDogMTAwJTsKKyAgICAg
ICAgbWFyZ2luOiAwOworICAgIH0KKworICAgICNzY3JvbGxlciB7CisgICAgICAgIG92ZXJmbG93
OiBzY3JvbGw7CisgICAgICAgIHdpZHRoOiAyMDBweDsKKyAgICAgICAgaGVpZ2h0OiAyMDBweDsK
KyAgICAgICAgYm9yZGVyOiAycHggc29saWQgYmxhY2s7CisgICAgfQorCisgICAgI2NvbnRlbnQg
eworICAgICAgICB3aWR0aDogMTAwJTsKKyAgICAgICAgaGVpZ2h0OiAxMDAwcHg7CisgICAgfQor
ICAgIDwvc3R5bGU+CisgICAgPHNjcmlwdD4KKyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7
CisKKyAgICAgICAgYXN5bmMgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgICAgIGRlc2Ny
aXB0aW9uKCJWZXJpZmllcyB0aGF0IGNhbGxpbmcgcHJldmVudERlZmF1bHQoKSBvbiB0b3VjaHN0
YXJ0IHByZXZlbnRzIHNjcm9sbGluZyB3aGVuIHRoZSB0b3VjaCBldmVudCBoYW5kbGVyIGlzIHVu
cmVzcG9uc2l2ZSBmb3IgYW4gZXh0ZW5kZWQgZHVyYXRpb24uIFRvIG1hbnVhbGx5IHRlc3QsIGF0
dGVtcHQgdG8gc2Nyb2xsIHRoZSBib3g7IGNoZWNrIHRoYXQgdG91Y2hzdGFydCBhbmQgdG91Y2hl
bmQgZXZlbnRzIHdlcmUgaGFuZGxlZCwgYW5kIHRoYXQgdGhlIGJveCBkaWQgbm90IHNjcm9sbC4i
KTsKKworICAgICAgICAgICAgY29uc3Qgc2Nyb2xsZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgic2Nyb2xsZXIiKTsKKworICAgICAgICAgICAgc2Nyb2xsZXIuYWRkRXZlbnRMaXN0ZW5lcigi
dG91Y2hzdGFydCIsIGV2ZW50ID0+IHsKKyAgICAgICAgICAgICAgICBjb25zdCBzdGFydFRpbWUg
PSBEYXRlLm5vdygpOworICAgICAgICAgICAgICAgIHdoaWxlICgxKSB7CisgICAgICAgICAgICAg
ICAgICAgIGlmIChEYXRlLm5vdygpIC0gc3RhcnRUaW1lID4gNDAwKQorICAgICAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHRlc3RQ
YXNzZWQoIk9ic2VydmVkIHRvdWNoc3RhcnQgZXZlbnQiKTsKKyAgICAgICAgICAgICAgICBldmVu
dC5wcmV2ZW50RGVmYXVsdCgpOworICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIHNjcm9s
bGVyLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIiwgKCkgPT4geworICAgICAgICAgICAgICAg
IHRlc3RQYXNzZWQoIk9ic2VydmVkIHRvdWNoZW5kIGV2ZW50Iik7CisgICAgICAgICAgICAgICAg
ZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHNjcm9sbGVyLmFk
ZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsICgpID0+IHRlc3RGYWlsZWQoIk9ic2VydmVkIHNjcm9s
bCBldmVudCIpLCB7IG9uY2UgOiB0cnVlIH0pOworCisgICAgICAgICAgICBpZiAoIXdpbmRvdy50
ZXN0UnVubmVyKQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgY29uc3Qg
ZXZlbnRTdHJlYW1EYXRhID0gbmV3IFVJSGVscGVyLkV2ZW50U3RyZWFtQnVpbGRlcigpCisgICAg
ICAgICAgICAgICAgLmJlZ2luKDEwMCwgMTkwKQorICAgICAgICAgICAgICAgIC5tb3ZlKDEwMCwg
MTAsIDEpCisgICAgICAgICAgICAgICAgLm1vdmUoMTAwLCAxOTAsIDEpCisgICAgICAgICAgICAg
ICAgLm1vdmUoMTAwLCAxMDAsIDAuNSkKKyAgICAgICAgICAgICAgICAuZW5kKCkKKyAgICAgICAg
ICAgICAgICAudGFrZVJlc3VsdCgpOworCisgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci5zZW5k
RXZlbnRTdHJlYW0oZXZlbnRTdHJlYW1EYXRhKTsKKyAgICAgICAgfQorCisgICAgICAgIGFkZEV2
ZW50TGlzdGVuZXIoImxvYWQiLCBydW5UZXN0KTsKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorICAgIDxkaXYgaWQ9InNjcm9sbGVyIj4KKyAgICAgICAgPGRpdiBpZD0iY29udGVudCI+
PC9kaXY+CisgICAgPC9kaXY+CisgICAgPHByZSBpZD0iZGVzY3JpcHRpb24iPjwvcHJlPgorICAg
IDxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3Njcm9sbC1vbi10b3VjaC1zdGFydC13
aXRoLXNsb3ctZXZlbnQtbGlzdGVuZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvdG91Y2gvaW9zL3Njcm9sbC1vbi10b3VjaC1zdGFydC13aXRoLXNsb3ctZXZlbnQtbGlz
dGVuZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE3MDYwZmIwMGZiMWZlMzM3MzBjYTliMWMx
MzViZjE5OTc4MzQxZGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy90b3VjaC9pb3Mvc2Nyb2xsLW9uLXRvdWNoLXN0YXJ0LXdpdGgtc2xvdy1ldmVudC1saXN0ZW5l
ci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorVmVyaWZpZXMgdGhhdCB0aGUgdXNlciBj
YW4gc2Nyb2xsIGV2ZW4gd2hlbiB0aGUgdG91Y2ggZXZlbnQgaGFuZGxlciBpcyB1bnJlc3BvbnNp
dmUgZm9yIGFuIGV4dGVuZGVkIGR1cmF0aW9uLiBUbyBtYW51YWxseSB0ZXN0LCBhdHRlbXB0IHRv
IHNjcm9sbCB0aGUgYm94OyBjaGVjayB0aGF0IHRvdWNoc3RhcnQgYW5kIHRvdWNoZW5kIGV2ZW50
cyB3ZXJlIGhhbmRsZWQsIGFuZCB0aGF0IHRoZSBib3ggd2FzIHNjcm9sbGVkLgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKK1BBU1MgT2JzZXJ2ZWQgdG91Y2hzdGFydCBldmVudAorUEFT
UyBPYnNlcnZlZCBzY3JvbGwgZXZlbnQKK1BBU1MgT2JzZXJ2ZWQgdG91Y2hlbmQgZXZlbnQKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3Mvc2Nyb2xsLW9uLXRvdWNoLXN0
YXJ0LXdpdGgtc2xvdy1ldmVudC1saXN0ZW5lci5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvdG91Y2gvaW9zL3Njcm9sbC1vbi10b3VjaC1zdGFydC13aXRoLXNsb3ctZXZlbnQtbGlzdGVu
ZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5lYjU0MWIyNGI3Nzc5OWJkOGQwMTkzNzdhYzJkMzZiYTE1ZmE2
NzJiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9z
L3Njcm9sbC1vbi10b3VjaC1zdGFydC13aXRoLXNsb3ctZXZlbnQtbGlzdGVuZXIuaHRtbApAQCAt
MCwwICsxLDczIEBACis8IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1
c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUgaW50ZXJuYWw6QXN5bmNPdmVyZmxvd1Njcm9sbGluZ0Vu
YWJsZWQ9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0i
d2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHVzZXItc2NhbGFibGU9bm8iPgor
PGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0Lmpz
Ij48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhl
bHBlci5qcyI+PC9zY3JpcHQ+CisgICAgPHN0eWxlPgorICAgIGh0bWwsIGJvZHkgeworICAgICAg
ICB3aWR0aDogMTAwJTsKKyAgICAgICAgaGVpZ2h0OiAxMDAlOworICAgICAgICBtYXJnaW46IDA7
CisgICAgfQorCisgICAgI3Njcm9sbGVyIHsKKyAgICAgICAgb3ZlcmZsb3c6IHNjcm9sbDsKKyAg
ICAgICAgd2lkdGg6IDIwMHB4OworICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAgICAgICBib3Jk
ZXI6IDJweCBzb2xpZCBibGFjazsKKyAgICB9CisKKyAgICAjY29udGVudCB7CisgICAgICAgIHdp
ZHRoOiAxMDAlOworICAgICAgICBoZWlnaHQ6IDEwMDBweDsKKyAgICB9CisgICAgPC9zdHlsZT4K
KyAgICA8c2NyaXB0PgorICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgICAgICBh
c3luYyBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICAgICAgZGVzY3JpcHRpb24oIlZlcmlm
aWVzIHRoYXQgdGhlIHVzZXIgY2FuIHNjcm9sbCBldmVuIHdoZW4gdGhlIHRvdWNoIGV2ZW50IGhh
bmRsZXIgaXMgdW5yZXNwb25zaXZlIGZvciBhbiBleHRlbmRlZCBkdXJhdGlvbi4gVG8gbWFudWFs
bHkgdGVzdCwgYXR0ZW1wdCB0byBzY3JvbGwgdGhlIGJveDsgY2hlY2sgdGhhdCB0b3VjaHN0YXJ0
IGFuZCB0b3VjaGVuZCBldmVudHMgd2VyZSBoYW5kbGVkLCBhbmQgdGhhdCB0aGUgYm94IHdhcyBz
Y3JvbGxlZC4iKTsKKworICAgICAgICAgICAgY29uc3Qgc2Nyb2xsZXIgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgic2Nyb2xsZXIiKTsKKworICAgICAgICAgICAgc2Nyb2xsZXIuYWRkRXZlbnRM
aXN0ZW5lcigidG91Y2hzdGFydCIsIGV2ZW50ID0+IHsKKyAgICAgICAgICAgICAgICBjb25zdCBz
dGFydFRpbWUgPSBEYXRlLm5vdygpOworICAgICAgICAgICAgICAgIHdoaWxlICgxKSB7CisgICAg
ICAgICAgICAgICAgICAgIGlmIChEYXRlLm5vdygpIC0gc3RhcnRUaW1lID4gNDAwKQorICAgICAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIHRlc3RQYXNzZWQoIk9ic2VydmVkIHRvdWNoc3RhcnQgZXZlbnQiKTsKKyAgICAgICAgICAg
IH0pOworCisgICAgICAgICAgICBzY3JvbGxlci5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIs
ICgpID0+IHsKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJPYnNlcnZlZCB0b3VjaGVuZCBl
dmVudCIpOworICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICBzY3JvbGxlci5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLCAoKSA9PiB0
ZXN0UGFzc2VkKCJPYnNlcnZlZCBzY3JvbGwgZXZlbnQiKSwgeyBvbmNlIDogdHJ1ZSB9KTsKKwor
ICAgICAgICAgICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICByZXR1
cm47CisKKyAgICAgICAgICAgIGNvbnN0IGV2ZW50U3RyZWFtRGF0YSA9IG5ldyBVSUhlbHBlci5F
dmVudFN0cmVhbUJ1aWxkZXIoKQorICAgICAgICAgICAgICAgIC5iZWdpbigxMDAsIDE5MCkKKyAg
ICAgICAgICAgICAgICAubW92ZSgxMDAsIDEwLCAxKQorICAgICAgICAgICAgICAgIC5tb3ZlKDEw
MCwgMTkwLCAxKQorICAgICAgICAgICAgICAgIC5tb3ZlKDEwMCwgMTAwLCAwLjUpCisgICAgICAg
ICAgICAgICAgLmVuZCgpCisgICAgICAgICAgICAgICAgLnRha2VSZXN1bHQoKTsKKworICAgICAg
ICAgICAgYXdhaXQgVUlIZWxwZXIuc2VuZEV2ZW50U3RyZWFtKGV2ZW50U3RyZWFtRGF0YSk7Cisg
ICAgICAgIH0KKworICAgICAgICBhZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgcnVuVGVzdCk7Cisg
ICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IGlkPSJzY3JvbGxlciI+Cisg
ICAgICAgIDxkaXYgaWQ9ImNvbnRlbnQiPjwvZGl2PgorICAgIDwvZGl2PgorICAgIDxwcmUgaWQ9
ImRlc2NyaXB0aW9uIj48L3ByZT4KKyAgICA8cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lv
cy9zaG93LW1vZGFsLWFsZXJ0LWR1cmluZy10b3VjaC1zdGFydC5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvdG91Y2gvaW9zL3Nob3ctbW9kYWwtYWxlcnQtZHVyaW5nLXRvdWNoLXN0YXJ0
Lmh0bWwKaW5kZXggMDAzMjgxNzRkZTJmODVmM2VmZDY0MTE0MTVkYjhmMmE4ZjhmYmFhYi4uYTBh
YzI3ODVmMWQxYjJmMmM2Zjg2NTlkNTYxMDY2ZjNhMmRhNjBjNiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3Nob3ctbW9kYWwtYWxlcnQtZHVyaW5nLXRvdWNo
LXN0YXJ0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3Nob3ct
bW9kYWwtYWxlcnQtZHVyaW5nLXRvdWNoLXN0YXJ0Lmh0bWwKQEAgLTMxLDcgKzMxLDcgQEAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKSB7CiB9CiAKIHRhcmdldC5hZGRFdmVudExpc3RlbmVyKCJ0b3Vj
aHN0YXJ0IiwgKCkgPT4gYWxlcnQoIlRoaXMgaXMgYSBtb2RhbCBhbGVydC4iKSk7Ci10YXJnZXQu
YWRkRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLCAoKSA9PiB0ZXN0UnVubmVyLm5vdGlmeURvbmUo
KSk7Cit0YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLCAoKSA9PiB0ZXN0UnVubmVy
Lm5vdGlmeURvbmUoKSwgeyBwYXNzaXZlIDogdHJ1ZSB9KTsKIGFkZEV2ZW50TGlzdGVuZXIoImxv
YWQiLCBhc3luYyAoKSA9PiBhd2FpdCBVSUhlbHBlci5hY3RpdmF0ZUF0KDEwMCwgMTAwKSk7CiA8
L3NjcmlwdD4KIDwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRD
bGlja0F0dHJpYnV0aW9uL2FuY2hvci10YWctYXR0cmlidXRlcy12YWxpZGF0aW9uLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2FuY2hvci10
YWctYXR0cmlidXRlcy12YWxpZGF0aW9uLWV4cGVjdGVkLnR4dAppbmRleCBjMmIxZDcxN2IyM2M3
ODQ0OTBiYjNmY2E0MWM3MjNlYTNkZTJmMGY1Li5hZjU0ZDhkNmUyNGEwZTI3ZGU3YjA2NGFhZjY1
OTVlYmYwYmYyZmU1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tB
dHRyaWJ1dGlvbi9hbmNob3ItdGFnLWF0dHJpYnV0ZXMtdmFsaWRhdGlvbi1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vYW5jaG9yLXRh
Zy1hdHRyaWJ1dGVzLXZhbGlkYXRpb24tZXhwZWN0ZWQudHh0CkBAIC0xLDE0ICsxLDE0IEBACi1D
T05TT0xFIE1FU1NBR0U6IGxpbmUgMTU1OiBhZGNhbXBhaWduaWQgbXVzdCBoYXZlIGEgbm9uLW5l
Z2F0aXZlIHZhbHVlIGxlc3MgdGhhbiBvciBlcXVhbCB0byA2MyBmb3IgQWQgQ2xpY2sgQXR0cmli
dXRpb24uCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTU1OiBhZGNhbXBhaWduaWQgbXVzdCBoYXZl
IGEgbm9uLW5lZ2F0aXZlIHZhbHVlIGxlc3MgdGhhbiBvciBlcXVhbCB0byA2MyBmb3IgQWQgQ2xp
Y2sgQXR0cmlidXRpb24uCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTU1OiBhZGNhbXBhaWduaWQg
Y2FuIG5vdCBiZSBjb252ZXJ0ZWQgdG8gYSBub24tbmVnYXRpdmUgaW50ZWdlciB3aGljaCBpcyBy
ZXF1aXJlZCBmb3IgQWQgQ2xpY2sgQXR0cmlidXRpb24uCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUg
MTU1OiBhZGNhbXBhaWduaWQgY2FuIG5vdCBiZSBjb252ZXJ0ZWQgdG8gYSBub24tbmVnYXRpdmUg
aW50ZWdlciB3aGljaCBpcyByZXF1aXJlZCBmb3IgQWQgQ2xpY2sgQXR0cmlidXRpb24uCi1DT05T
T0xFIE1FU1NBR0U6IGxpbmUgMTU1OiBhZGNhbXBhaWduaWQgY2FuIG5vdCBiZSBjb252ZXJ0ZWQg
dG8gYSBub24tbmVnYXRpdmUgaW50ZWdlciB3aGljaCBpcyByZXF1aXJlZCBmb3IgQWQgQ2xpY2sg
QXR0cmlidXRpb24uCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTU1OiBhZGRlc3RpbmF0aW9uIGNv
dWxkIG5vdCBiZSBjb252ZXJ0ZWQgdG8gYSB2YWxpZCBIVFRQLWZhbWlseSBVUkwuCi1DT05TT0xF
IE1FU1NBR0U6IGxpbmUgMTU1OiBhZGRlc3RpbmF0aW9uIGNvdWxkIG5vdCBiZSBjb252ZXJ0ZWQg
dG8gYSB2YWxpZCBIVFRQLWZhbWlseSBVUkwuCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTU1OiBh
ZGRlc3RpbmF0aW9uIGNvdWxkIG5vdCBiZSBjb252ZXJ0ZWQgdG8gYSB2YWxpZCBIVFRQLWZhbWls
eSBVUkwuCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTU1OiBCb3RoIGFkY2FtcGFpZ25pZCBhbmQg
YWRkZXN0aW5hdGlvbiBuZWVkIHRvIGJlIHNldCBmb3IgQWQgQ2xpY2sgQXR0cmlidXRpb24gdG8g
d29yay4KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxNTU6IEJvdGggYWRjYW1wYWlnbmlkIGFuZCBh
ZGRlc3RpbmF0aW9uIG5lZWQgdG8gYmUgc2V0IGZvciBBZCBDbGljayBBdHRyaWJ1dGlvbiB0byB3
b3JrLgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE1NTogYWRkZXN0aW5hdGlvbiBjYW4gbm90IGJl
IHRoZSBzYW1lIHNpdGUgYXMgdGhlIGN1cnJlbnQgd2Vic2l0ZS4KK0NPTlNPTEUgTUVTU0FHRTog
bGluZSAxNjk6IGFkY2FtcGFpZ25pZCBtdXN0IGhhdmUgYSBub24tbmVnYXRpdmUgdmFsdWUgbGVz
cyB0aGFuIG9yIGVxdWFsIHRvIDYzIGZvciBBZCBDbGljayBBdHRyaWJ1dGlvbi4KK0NPTlNPTEUg
TUVTU0FHRTogbGluZSAxNjk6IGFkY2FtcGFpZ25pZCBtdXN0IGhhdmUgYSBub24tbmVnYXRpdmUg
dmFsdWUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDYzIGZvciBBZCBDbGljayBBdHRyaWJ1dGlvbi4K
K0NPTlNPTEUgTUVTU0FHRTogbGluZSAxNjk6IGFkY2FtcGFpZ25pZCBjYW4gbm90IGJlIGNvbnZl
cnRlZCB0byBhIG5vbi1uZWdhdGl2ZSBpbnRlZ2VyIHdoaWNoIGlzIHJlcXVpcmVkIGZvciBBZCBD
bGljayBBdHRyaWJ1dGlvbi4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxNjk6IGFkY2FtcGFpZ25p
ZCBjYW4gbm90IGJlIGNvbnZlcnRlZCB0byBhIG5vbi1uZWdhdGl2ZSBpbnRlZ2VyIHdoaWNoIGlz
IHJlcXVpcmVkIGZvciBBZCBDbGljayBBdHRyaWJ1dGlvbi4KK0NPTlNPTEUgTUVTU0FHRTogbGlu
ZSAxNjk6IGFkY2FtcGFpZ25pZCBjYW4gbm90IGJlIGNvbnZlcnRlZCB0byBhIG5vbi1uZWdhdGl2
ZSBpbnRlZ2VyIHdoaWNoIGlzIHJlcXVpcmVkIGZvciBBZCBDbGljayBBdHRyaWJ1dGlvbi4KK0NP
TlNPTEUgTUVTU0FHRTogbGluZSAxNjk6IGFkZGVzdGluYXRpb24gY291bGQgbm90IGJlIGNvbnZl
cnRlZCB0byBhIHZhbGlkIEhUVFAtZmFtaWx5IFVSTC4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAx
Njk6IGFkZGVzdGluYXRpb24gY291bGQgbm90IGJlIGNvbnZlcnRlZCB0byBhIHZhbGlkIEhUVFAt
ZmFtaWx5IFVSTC4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxNjk6IGFkZGVzdGluYXRpb24gY291
bGQgbm90IGJlIGNvbnZlcnRlZCB0byBhIHZhbGlkIEhUVFAtZmFtaWx5IFVSTC4KK0NPTlNPTEUg
TUVTU0FHRTogbGluZSAxNjk6IEJvdGggYWRjYW1wYWlnbmlkIGFuZCBhZGRlc3RpbmF0aW9uIG5l
ZWQgdG8gYmUgc2V0IGZvciBBZCBDbGljayBBdHRyaWJ1dGlvbiB0byB3b3JrLgorQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDE2OTogQm90aCBhZGNhbXBhaWduaWQgYW5kIGFkZGVzdGluYXRpb24gbmVl
ZCB0byBiZSBzZXQgZm9yIEFkIENsaWNrIEF0dHJpYnV0aW9uIHRvIHdvcmsuCitDT05TT0xFIE1F
U1NBR0U6IGxpbmUgMTY5OiBhZGRlc3RpbmF0aW9uIGNhbiBub3QgYmUgdGhlIHNhbWUgc2l0ZSBh
cyB0aGUgY3VycmVudCB3ZWJzaXRlLgogVGVzdCBmb3IgdmFsaWRpdHkgb2YgYWQgY2xpY2sgYXR0
cmlidXRpb24gYXR0cmlidXRlcyBvbiBhbmNob3IgdGFncy4KIAogT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9hbmNo
b3ItZG93bmxvYWQtYmxvY2stY3Jvc3NvcmlnaW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9hbmNob3ItZG93bmxvYWQtYmxvY2stY3Jvc3NvcmlnaW4tZXhw
ZWN0ZWQudHh0CmluZGV4IDM0NWUwN2U0MGQwN2MzOTQ5NmNhZDQwMDdjMzlkMWE3MThjZGU3OTQu
LjQwYTAzNWRmN2M0OTQ1NzYzNzQzMzNiOWI0M2U3YzE1N2RhNTdlNjAgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvYW5jaG9yLWRvd25sb2FkLWJsb2NrLWNyb3Nz
b3JpZ2luLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L2FuY2hvci1kb3dubG9hZC1ibG9jay1jcm9zc29yaWdpbi1leHBlY3RlZC50eHQKQEAgLTEsNCAr
MSw0IEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTU1OiBUaGUgZG93bmxvYWQgYXR0cmlidXRl
IG9uIGFuY2hvciB3YXMgaWdub3JlZCBiZWNhdXNlIGl0cyBocmVmIFVSTCBoYXMgYSBkaWZmZXJl
bnQgc2VjdXJpdHkgb3JpZ2luLgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE2OTogVGhlIGRvd25s
b2FkIGF0dHJpYnV0ZSBvbiBhbmNob3Igd2FzIGlnbm9yZWQgYmVjYXVzZSBpdHMgaHJlZiBVUkwg
aGFzIGEgZGlmZmVyZW50IHNlY3VyaXR5IG9yaWdpbi4KIFRlc3RzIHRoYXQgdGhlIGRvd25sb2Fk
IGF0dHJpYnV0ZSBpcyBpZ25vcmVkIGlmIHRoZSBsaW5rIGlzIGNyb3NzIG9yaWdpbi4KIAogSXQg
c2hvdWxkIG5hdmlnYXRlIHRoZSBzdWJmcmFtZSBpbnN0ZWFkIG9mIGRvd25sb2FkaW5nIHRoZSBm
aWxlLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3VpLWhlbHBlci5qcyBiL0xh
eW91dFRlc3RzL3Jlc291cmNlcy91aS1oZWxwZXIuanMKaW5kZXggMzY5ZTY5ZGMwNmMyZjQ5Y2Uz
MzQ3MTIxZmQ0NWZkNTMxNDZiMTY0MC4uOTAyZjM0NWZmMjU4OGFkNTBjYzBlMTVkNDRhMWEyOWU5
MDBhNDhhNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3VpLWhlbHBlci5qcwor
KysgYi9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvdWktaGVscGVyLmpzCkBAIC0yOSw2ICsyOSwyMCBA
QCB3aW5kb3cuVUlIZWxwZXIgPSBjbGFzcyBVSUhlbHBlciB7CiAgICAgICAgIGV2ZW50U2VuZGVy
Lm1vdXNlVXAoKTsKICAgICB9CiAKKyAgICBzdGF0aWMgc2VuZEV2ZW50U3RyZWFtKGV2ZW50U3Ry
ZWFtKQorICAgIHsKKyAgICAgICAgY29uc3QgZXZlbnRTdHJlYW1Bc1N0cmluZyA9IEpTT04uc3Ry
aW5naWZ5KGV2ZW50U3RyZWFtKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUg
PT4geworICAgICAgICAgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChgCisgICAgICAgICAgICAg
ICAgKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIuc2VuZEV2
ZW50U3RyZWFtKFxgJHtldmVudFN0cmVhbUFzU3RyaW5nfVxgLCAoKSA9PiB7CisgICAgICAgICAg
ICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIudWlTY3JpcHRDb21wbGV0ZSgpOworICAgICAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB9KSgpOworICAgICAgICAgICAgYCwgcmVz
b2x2ZSk7CisgICAgICAgIH0pOworICAgIH0KKwogICAgIHN0YXRpYyB0YXBBdCh4LCB5LCBtb2Rp
ZmllcnM9W10pCiAgICAgewogICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLmlzSU9TRmFtaWx5
KCkpOwpAQCAtMTEwNSwzICsxMTE5LDg5IEBAIHdpbmRvdy5VSUhlbHBlciA9IGNsYXNzIFVJSGVs
cGVyIHsKICAgICAgICAgfSk7CiAgICAgfQogfQorCitVSUhlbHBlci5FdmVudFN0cmVhbUJ1aWxk
ZXIgPSBjbGFzcyB7CisgICAgY29uc3RydWN0b3IoKQorICAgIHsKKyAgICAgICAgLy8gRklYTUU6
IFRoaXMgY291bGQgc3VwcG9ydCBhZGRpdGlvbmFsIGN1c3RvbWl6YXRpb24gb3B0aW9ucywgc3Vj
aCBhcyBpbnRlcnBvbGF0aW9uLCB0aW1lc3RlcCwgYW5kIGRpZmZlcmVudAorICAgICAgICAvLyBk
aWdpdGl6ZXIgaW5kaWNlcyBpbiB0aGUgZnV0dXJlLiBGb3Igbm93LCBqdXN0IG1ha2UgaXQgc2lt
cGxlciB0byBzdHJpbmcgdG9nZXRoZXIgc2VxdWVuY2VzIG9mIHBhbiBnZXN0dXJlcy4KKyAgICAg
ICAgdGhpcy5fcmVzZXQoKTsKKyAgICB9CisKKyAgICBfcmVzZXQoKSB7CisgICAgICAgIHRoaXMu
ZXZlbnRzID0gW107CisgICAgICAgIHRoaXMuY3VycmVudFRpbWVPZmZzZXQgPSAwOworICAgICAg
ICB0aGlzLmN1cnJlbnRYID0gMDsKKyAgICAgICAgdGhpcy5jdXJyZW50WSA9IDA7CisgICAgfQor
CisgICAgYmVnaW4oeCwgeSkgeworICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLmN1cnJlbnRU
aW1lT2Zmc2V0ID09PSAwKTsKKyAgICAgICAgdGhpcy5ldmVudHMucHVzaCh7CisgICAgICAgICAg
ICBpbnRlcnBvbGF0ZSA6ICJsaW5lYXIiLAorICAgICAgICAgICAgdGltZXN0ZXAgOiAwLjAxNiwK
KyAgICAgICAgICAgIGNvb3JkaW5hdGVTcGFjZSA6ICJjb250ZW50IiwKKyAgICAgICAgICAgIHN0
YXJ0RXZlbnQgOiB7CisgICAgICAgICAgICAgICAgaW5wdXRUeXBlIDogImhhbmQiLAorICAgICAg
ICAgICAgICAgIHRpbWVPZmZzZXQgOiB0aGlzLmN1cnJlbnRUaW1lT2Zmc2V0LAorICAgICAgICAg
ICAgICAgIHRvdWNoZXMgOiBbeyBpbnB1dFR5cGUgOiAiZmluZ2VyIiwgcGhhc2UgOiAiYmVnYW4i
LCBpZCA6IDEsIHggOiB4LCB5IDogeSwgcHJlc3N1cmUgOiAwIH1dCisgICAgICAgICAgICB9LAor
ICAgICAgICAgICAgZW5kRXZlbnQgOiB7CisgICAgICAgICAgICAgICAgaW5wdXRUeXBlIDogImhh
bmQiLAorICAgICAgICAgICAgICAgIHRpbWVPZmZzZXQgOiB0aGlzLmN1cnJlbnRUaW1lT2Zmc2V0
LAorICAgICAgICAgICAgICAgIHRvdWNoZXMgOiBbeyBpbnB1dFR5cGUgOiAiZmluZ2VyIiwgcGhh
c2UgOiAiYmVnYW4iLCBpZCA6IDEsIHggOiB4LCB5IDogeSwgcHJlc3N1cmUgOiAwIH1dCisgICAg
ICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICB0aGlzLmN1cnJlbnRYID0geDsKKyAgICAg
ICAgdGhpcy5jdXJyZW50WSA9IHk7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAg
IG1vdmUoeCwgeSwgZHVyYXRpb24gPSAwKSB7CisgICAgICAgIGNvbnN0IHByZXZpb3VzVGltZU9m
ZnNldCA9IHRoaXMuY3VycmVudFRpbWVPZmZzZXQ7CisgICAgICAgIHRoaXMuY3VycmVudFRpbWVP
ZmZzZXQgKz0gZHVyYXRpb247CisgICAgICAgIHRoaXMuZXZlbnRzLnB1c2goeworICAgICAgICAg
ICAgaW50ZXJwb2xhdGUgOiAibGluZWFyIiwKKyAgICAgICAgICAgIHRpbWVzdGVwIDogMC4wMTYs
CisgICAgICAgICAgICBjb29yZGluYXRlU3BhY2UgOiAiY29udGVudCIsCisgICAgICAgICAgICBz
dGFydEV2ZW50IDogeworICAgICAgICAgICAgICAgIGlucHV0VHlwZSA6ICJoYW5kIiwKKyAgICAg
ICAgICAgICAgICB0aW1lT2Zmc2V0IDogcHJldmlvdXNUaW1lT2Zmc2V0LAorICAgICAgICAgICAg
ICAgIHRvdWNoZXMgOiBbeyBpbnB1dFR5cGUgOiAiZmluZ2VyIiwgcGhhc2UgOiAibW92ZWQiLCBp
ZCA6IDEsIHggOiB0aGlzLmN1cnJlbnRYLCB5IDogdGhpcy5jdXJyZW50WSwgcHJlc3N1cmUgOiAw
IH1dCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgZW5kRXZlbnQgOiB7CisgICAgICAgICAg
ICAgICAgaW5wdXRUeXBlIDogImhhbmQiLAorICAgICAgICAgICAgICAgIHRpbWVPZmZzZXQgOiB0
aGlzLmN1cnJlbnRUaW1lT2Zmc2V0LAorICAgICAgICAgICAgICAgIHRvdWNoZXMgOiBbeyBpbnB1
dFR5cGUgOiAiZmluZ2VyIiwgcGhhc2UgOiAibW92ZWQiLCBpZCA6IDEsIHggOiB4LCB5IDogeSwg
cHJlc3N1cmUgOiAwIH1dCisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICB0aGlz
LmN1cnJlbnRYID0geDsKKyAgICAgICAgdGhpcy5jdXJyZW50WSA9IHk7CisgICAgICAgIHJldHVy
biB0aGlzOworICAgIH0KKworICAgIGVuZCgpIHsKKyAgICAgICAgdGhpcy5ldmVudHMucHVzaCh7
CisgICAgICAgICAgICBpbnRlcnBvbGF0ZSA6ICJsaW5lYXIiLAorICAgICAgICAgICAgdGltZXN0
ZXAgOiAwLjAxNiwKKyAgICAgICAgICAgIGNvb3JkaW5hdGVTcGFjZSA6ICJjb250ZW50IiwKKyAg
ICAgICAgICAgIHN0YXJ0RXZlbnQgOiB7CisgICAgICAgICAgICAgICAgaW5wdXRUeXBlIDogImhh
bmQiLAorICAgICAgICAgICAgICAgIHRpbWVPZmZzZXQgOiB0aGlzLmN1cnJlbnRUaW1lT2Zmc2V0
LAorICAgICAgICAgICAgICAgIHRvdWNoZXMgOiBbeyBpbnB1dFR5cGUgOiAiZmluZ2VyIiwgcGhh
c2UgOiAiZW5kZWQiLCBpZCA6IDEsIHggOiB0aGlzLmN1cnJlbnRYLCB5IDogdGhpcy5jdXJyZW50
WSwgcHJlc3N1cmUgOiAwIH1dCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgZW5kRXZlbnQg
OiB7CisgICAgICAgICAgICAgICAgaW5wdXRUeXBlIDogImhhbmQiLAorICAgICAgICAgICAgICAg
IHRpbWVPZmZzZXQgOiB0aGlzLmN1cnJlbnRUaW1lT2Zmc2V0LAorICAgICAgICAgICAgICAgIHRv
dWNoZXMgOiBbeyBpbnB1dFR5cGUgOiAiZmluZ2VyIiwgcGhhc2UgOiAiZW5kZWQiLCBpZCA6IDEs
IHggOiB0aGlzLmN1cnJlbnRYLCB5IDogdGhpcy5jdXJyZW50WSwgcHJlc3N1cmUgOiAwIH1dCisg
ICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisK
KyAgICB0YWtlUmVzdWx0KCkgeworICAgICAgICBjb25zdCBldmVudHMgPSB0aGlzLmV2ZW50czsK
KyAgICAgICAgdGhpcy5fcmVzZXQoKTsKKyAgICAgICAgcmV0dXJuIHsgImV2ZW50cyI6IGV2ZW50
cyB9OworICAgIH0KK30K
</data>

          </attachment>
      

    </bug>

</bugzilla>