<?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>193706</bug_id>
          
          <creation_ts>2019-01-22 20:16:32 -0800</creation_ts>
          <short_desc>Introduce UndoStep::label() and adopt it in WebKitLegacy and WebKit</short_desc>
          <delta_ts>2019-01-24 19:03:18 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>HTML Editing</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>aestes</cc>
    
    <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1497185</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-01-22 20:16:32 -0800</bug_when>
    <thetext>More work towards &lt;rdar://problem/44807048&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1497245</commentid>
    <comment_count>1</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-01-22 22:30:42 -0800</bug_when>
    <thetext>I think we can just call it label() since the class is called UndoStep.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1497246</commentid>
    <comment_count>2</comment_count>
      <attachid>359856</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-01-22 22:34:42 -0800</bug_when>
    <thetext>Created attachment 359856
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1497247</commentid>
    <comment_count>3</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-01-22 22:35:28 -0800</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #1)
&gt; I think we can just call it label() since the class is called UndoStep.

Oops, I just saw this now :/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1497248</commentid>
    <comment_count>4</comment_count>
      <attachid>359857</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-01-22 22:49:56 -0800</bug_when>
    <thetext>Created attachment 359857
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1497252</commentid>
    <comment_count>5</comment_count>
      <attachid>359857</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-01-23 00:31:43 -0800</bug_when>
    <thetext>Comment on attachment 359857
Patch

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

&gt; Source/WebKit/ChangeLog:45
&gt; +        Adjust this to take Ref&lt;UndoStep&gt;&amp;&amp;.

Why are we making this change?

&gt; Source/WebKit/UIProcess/WebEditCommandProxy.h:42
&gt; -    static Ref&lt;WebEditCommandProxy&gt; create(WebUndoStepID commandID, WebCore::EditAction editAction, WebPageProxy* page)
&gt; +    static Ref&lt;WebEditCommandProxy&gt; create(WebUndoStepID commandID, const String&amp; label, WebPageProxy&amp; page)

Hm... I would have kept WebCore::EditAction for this one but okay.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1497314</commentid>
    <comment_count>6</comment_count>
      <attachid>359857</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-01-23 07:21:35 -0800</bug_when>
    <thetext>Comment on attachment 359857
Patch

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

&gt;&gt; Source/WebKit/ChangeLog:45
&gt;&gt; +        Adjust this to take Ref&lt;UndoStep&gt;&amp;&amp;.
&gt; 
&gt; Why are we making this change?

I thought it would be preferable to UndoStep&amp;, but I can revert this part.

&gt;&gt; Source/WebKit/UIProcess/WebEditCommandProxy.h:42
&gt;&gt; +    static Ref&lt;WebEditCommandProxy&gt; create(WebUndoStepID commandID, const String&amp; label, WebPageProxy&amp; page)
&gt; 
&gt; Hm... I would have kept WebCore::EditAction for this one but okay.

I think it should be okay to remove editAction from WebEditCommandProxy, since the only thing we used it for was the undo/redo label.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1497326</commentid>
    <comment_count>7</comment_count>
      <attachid>359882</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-01-23 07:48:35 -0800</bug_when>
    <thetext>Created attachment 359882
Review feedback &amp; fix GTK build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1497370</commentid>
    <comment_count>8</comment_count>
      <attachid>359882</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-01-23 09:30:11 -0800</bug_when>
    <thetext>Comment on attachment 359882
Review feedback &amp; fix GTK build

Clearing flags on attachment: 359882

Committed r240342: &lt;https://trac.webkit.org/changeset/240342&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1497718</commentid>
    <comment_count>9</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-01-23 20:44:07 -0800</bug_when>
    <thetext>Is the undo label controllable by the web content?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1497719</commentid>
    <comment_count>10</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-01-23 20:48:39 -0800</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #9)
&gt; Is the undo label controllable by the web content?

Yes. That being said, the UndoManager API isn&apos;t web-exposed (at least, not currently).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1498089</commentid>
    <comment_count>11</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-01-24 19:03:18 -0800</bug_when>
    <thetext>(In reply to Wenson Hsieh from comment #10)
&gt; (In reply to Simon Fraser (smfr) from comment #9)
&gt; &gt; Is the undo label controllable by the web content?
&gt; 
&gt; Yes. That being said, the UndoManager API isn&apos;t web-exposed (at least, not
&gt; currently).

We probably need to do some sanitization if we decide to expose this API to the Web.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359856</attachid>
            <date>2019-01-22 22:34:42 -0800</date>
            <delta_ts>2019-01-22 22:35:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193706-20190122223440.patch</filename>
            <type>text/plain</type>
            <size>28886</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwMzI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTdlMGQ2NDlhNTkwMzUw
NTBmY2ZkYzcxMGE3YzNiOGZkMWFhNjc4NC4uNjliODU0NjYwZTIwZGNjZjVjMjI5NzFmYzZmNTc1
YmQwZmJjN2M0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDE5LTAxLTIyICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEludHJvZHVjZSBV
bmRvU3RlcDo6dW5kb1JlZG9MYWJlbCgpIGFuZCBhZG9wdCBpdCBpbiBXZWJLaXRMZWdhY3kgYW5k
IFdlYktpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTkzNzA2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NDgwNzA0OD4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWZhY3RvcnMgc29tZSBleGlzdGlu
ZyBsb2dpYyB3aGVuIHJlZ2lzdGVyaW5nIHVuZG9hYmxlIGFjdGlvbnMsIHN1Y2ggdGhhdCB3ZSBw
cm9wYWdhdGUgdGhlIHVuZG9hYmxlIGFjdGlvbidzCisgICAgICAgIGxhYmVsIHN0cmluZyBpbnN0
ZWFkIG9mIHRoZSBFZGl0QWN0aW9uIHRvIHRoZSBjbGllbnQgbGF5ZXIuIFRoaXMgd2lsbCBoZWxw
IG1ha2UgaGFuZGxpbmcgb2YgQ3VzdG9tVW5kb1N0ZXAncworICAgICAgICB1bmRvL3JlZG8gbGFi
ZWwgc2ltcGxlciwgYXMgdGhlIGNsaWVudCBsYXllciB3b24ndCBuZWVkIHRvIHdvcnJ5IGFib3V0
IG1hbmFnaW5nIGFuIEVkaXRBY3Rpb24gYW5kIHVuZG8vcmVkbworICAgICAgICBsYWJlbCBzaW11
bHRhbmVvdXNseS4gVGhlcmUgc2hvdWxkIGJlIG5vIGNoYW5nZSBpbiBiZWhhdmlvci4KKworICAg
ICAgICAqIGVkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RWRpdENvbW1hbmRDb21wb3NpdGlvbjo6dW5kb1JlZG9MYWJlbCBjb25zdCk6CisgICAgICAg
ICogZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvQ3Vz
dG9tVW5kb1N0ZXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3VzdG9tVW5kb1N0ZXA6OnVuZG9S
ZWRvTGFiZWwgY29uc3QpOgorICAgICAgICAqIGVkaXRpbmcvQ3VzdG9tVW5kb1N0ZXAuaDoKKyAg
ICAgICAgKiBlZGl0aW5nL0VkaXRBY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dW5kb1Jl
ZG9MYWJlbCk6CisgICAgICAgIChXZWJDb3JlOjpuYW1lRm9yVW5kb1JlZG8pOiBEZWxldGVkLgor
ICAgICAgICAqIGVkaXRpbmcvRWRpdEFjdGlvbi5oOgorCisgICAgICAgIFJlbmFtZSBuYW1lRm9y
VW5kb1JlZG8gdG8gdW5kb1JlZG9MYWJlbCwgYW5kIHJlbW92ZSB0aGUgV0VCQ09SRV9FWFBPUlQg
c2luY2UgaXQncyBubyBsb25nZXIgbmVlZGVkIGluIFdlYktpdCBvcgorICAgICAgICBXZWJLaXRM
ZWdhY3kuCisKKyAgICAgICAgKiBlZGl0aW5nL1VuZG9TdGVwLmg6CisKKyAgICAgICAgQWRkIFVu
ZG9TdGVwOjp1bmRvUmVkb0xhYmVsKCkuIFdoaWxlIEVkaXRDb21tYW5kQ29tcG9zaXRpb24gaW1w
bGVtZW50cyB0aGlzIGJ5IG1hcHBpbmcgaXRzIEVkaXRBY3Rpb24gdG8gYQorICAgICAgICBsb2Nh
bGl6ZWQgc3RyaW5nLCBDdXN0b21VbmRvU3RlcCBpbXBsZW1lbnRzIHRoaXMgYnkgcmV0dXJuaW5n
IHRoZSB1bmRvYWJsZSBhY3Rpb24gbGFiZWwgcHJvdmlkZWQgYnkgc2NyaXB0LgorCisgICAgICAg
ICogbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eUVkaXRv
ckNsaWVudDo6cmVnaXN0ZXJVbmRvU3RlcCk6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eUVkaXRv
ckNsaWVudDo6cmVnaXN0ZXJSZWRvU3RlcCk6CisKKyAgICAgICAgQWxzbyB0d2VhayB0aGVzZSBj
bGllbnQgZnVuY3Rpb25zIHRvIHRha2UgYSBgUmVmPFVuZG9TdGVwPiYmYC4KKworICAgICAgICAq
IHBhZ2UvRWRpdG9yQ2xpZW50Lmg6CisKIDIwMTktMDEtMjIgIFdlbnNvbiBIc2llaCAgPHdlbnNv
bl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgSW50cm9kdWNlIEN1c3RvbVVuZG9TdGVwLmgg
YW5kIEN1c3RvbVVuZG9TdGVwLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA2MzA0NDE1M2Y5MjExMGUwNzJhMjE3
ZWNkYmYxYzE2MjBiYjcyMDVlLi43NTM1NTUxYjU2NDhiMzQ5ZTA4ODM0ODg5NzllZjhjNGU0ZmI1
YmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDE5LTAxLTIyICBXZW5zb24gSHNpZWgg
IDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEludHJvZHVjZSBVbmRvU3RlcDo6
dW5kb1JlZG9MYWJlbCgpIGFuZCBhZG9wdCBpdCBpbiBXZWJLaXRMZWdhY3kgYW5kIFdlYktpdAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzNzA2Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NDgwNzA0OD4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5t
bToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnJlZ2lzdGVyRWRpdENvbW1hbmQpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJFZGl0Q29tbWFuZFByb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViRWRpdENvbW1hbmRQcm94eTo6V2ViRWRpdENvbW1hbmRQcm94eSk6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYkVkaXRDb21tYW5kUHJveHkuaDoKKworICAgICAgICBEcml2ZS1ieSB0
d2VhazogbWFrZSBXZWJFZGl0Q29tbWFuZFByb3h5J3MgYmFja3BvaW50ZXIgdG8gaXRzIFdlYlBh
Z2VQcm94eSBhIFdlYWtQdHIgaW5zdGVhZCBvZiBhIHJhdyBwb2ludGVyLgorICAgICAgICBBZGRp
dGlvbmFsbHksIGNhbGwgY2xlYXIoKSBpbnN0ZWFkIG9mIHNldHRpbmcgbV9wYWdlIHRvIDAgdXBv
biBpbnZhbGlkYXRpb24uIEFsc28sIHR1cm4gdGhlIFdlYlBhZ2VQcm94eSoKKyAgICAgICAgYXJn
dW1lbnQgaW50byBhIFdlYlBhZ2VQcm94eSYsIHNpbmNlIHRoZSBXZWJQYWdlUHJveHkgaXMgYXNz
dW1lZCB0byBleGlzdCB3aGVuIGl0IGNyZWF0ZXMgYSBuZXcKKyAgICAgICAgV2ViRWRpdENvbW1h
bmRQcm94eS4KKworICAgICAgICAoV2ViS2l0OjpXZWJFZGl0Q29tbWFuZFByb3h5OjpjcmVhdGUp
OgorICAgICAgICAoV2ViS2l0OjpXZWJFZGl0Q29tbWFuZFByb3h5Ojp1bmRvUmVkb0xhYmVsIGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViRWRpdENvbW1hbmRQcm94eTo6aW52YWxpZGF0ZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYkVkaXRDb21tYW5kUHJveHk6OmVkaXRBY3Rpb24gY29uc3Qp
OiBEZWxldGVkLgorCisgICAgICAgIEFkanVzdCBVSS1zaWRlIGxvZ2ljIHRvIGp1c3QgaGFuZGxl
IHRoZSBgdW5kb1JlZG9MYWJlbGAsIHJhdGhlciB0aGFuIG1hcCB0aGUgZWRpdCBhY3Rpb24gdG8g
YSBsb2NhbGl6ZWQgc3RyaW5nLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVnaXN0ZXJFZGl0Q29tbWFuZEZv
clVuZG8pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlc2V0U3RhdGUpOgorCisg
ICAgICAgIFR3ZWFrIHRoaXMgdG8gdXNlIHN0ZDo6ZXhjaGFuZ2UgaW5zdGVhZCBvZiBjb3B5aW5n
IGFsbCB0aGUgV2ViRWRpdENvbW1hbmRQcm94eSBSZWZQdHJzIGludG8gYSBzZXBhcmF0ZSBWZWN0
b3IKKyAgICAgICAgYW5kIHRoZW4gaXRlcmF0aW5nIG92ZXIgdGhlIFZlY3Rvci4KKworICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lm1lc3NhZ2VzLmluOgorCisgICAgICAgIEFkanVzdCB0aGlzIHNvIHRoYXQgd2Ugb25s
eSBzZW5kIHRoZSB1bmRvL3JlZG8gbGFiZWwgb3ZlciBJUEMsIHJhdGhlciB0aGFuIHRoZSBlZGl0
IGFjdGlvbiB0eXBlLgorCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElP
Uy5tbToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnJlZ2lzdGVyRWRpdENvbW1h
bmQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRWRpdG9yQ2xpZW50OjpyZWdpc3RlclVuZG9TdGVw
KToKKyAgICAgICAgKFdlYktpdDo6V2ViRWRpdG9yQ2xpZW50OjpyZWdpc3RlclJlZG9TdGVwKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oOgor
CisgICAgICAgIEFkanVzdCB0aGlzIHRvIHRha2UgUmVmPFVuZG9TdGVwPiYmLgorCiAyMDE5LTAx
LTIyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgUmVncmVzc2lv
bihyMjQwMTc4KSBTb21lIEFQSSB0ZXN0cyBhcmUgY3Jhc2hpbmcKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0No
YW5nZUxvZwppbmRleCBjMDdmNDBmMmJhYjVkODkxZmZmMzg3NjgyYTU0YWE3MTk5NTdkMjI1Li5l
OWY4MWRiMDIzOTdjNjFjZTZmNmMyNWVkNzBjYjUwN2YxMzM5OWE5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTktMDEtMjIgIFdlbnNvbiBIc2llaCAg
PHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgSW50cm9kdWNlIFVuZG9TdGVwOjp1
bmRvUmVkb0xhYmVsKCkgYW5kIGFkb3B0IGl0IGluIFdlYktpdExlZ2FjeSBhbmQgV2ViS2l0Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTM3MDYKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ0ODA3MDQ4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkanVzdCBmb3Igc29tZSBjaGFuZ2VkIGludGVyZmFj
ZXMuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaDoKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW06CisgICAgICAgICgtW1dlYlVu
ZG9TdGVwIGluaXRXaXRoVW5kb1N0ZXA6XSk6CisgICAgICAgICgrW1dlYlVuZG9TdGVwIHN0ZXBX
aXRoVW5kb1N0ZXA6XSk6CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OnJlZ2lzdGVyVW5kb09y
UmVkb1N0ZXApOgorICAgICAgICAoV2ViRWRpdG9yQ2xpZW50OjpyZWdpc3RlclVuZG9TdGVwKToK
KyAgICAgICAgKFdlYkVkaXRvckNsaWVudDo6cmVnaXN0ZXJSZWRvU3RlcCk6CisKIDIwMTktMDEt
MjIgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAg
ICBNb3ZlIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiBvd25lcnNoaXAgdG8gTmV0d29ya1Byb2Nlc3MK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwppbmRleCA0YTZjOTAzYmFmMGVlMjFmNmQ4NDE1MzYy
OGNmY2FlNTg2ZWNkMTVkLi40MDIxNWE3NWFjOGVjNTAyZjNiMWQ1YjkzZDM3NGNiOWIxMmI1ZWY4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTktMDEt
MjIgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgSW50
cm9kdWNlIFVuZG9TdGVwOjp1bmRvUmVkb0xhYmVsKCkgYW5kIGFkb3B0IGl0IGluIFdlYktpdExl
Z2FjeSBhbmQgV2ViS2l0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xOTM3MDYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ0ODA3MDQ4PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkanVzdCBmb3Igc29t
ZSBjaGFuZ2VkIGludGVyZmFjZXMuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0
b3JDbGllbnQuY3BwOgorICAgICAgICAoV2ViRWRpdG9yQ2xpZW50OjpyZWdpc3RlclVuZG9TdGVw
KToKKyAgICAgICAgKFdlYkVkaXRvckNsaWVudDo6cmVnaXN0ZXJSZWRvU3RlcCk6CisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lmg6CisKIDIwMTktMDEtMjIgIEFsZXgg
Q2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBNb3ZlIE5l
dHdvcmtTdG9yYWdlU2Vzc2lvbiBvd25lcnNoaXAgdG8gTmV0d29ya1Byb2Nlc3MKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKaW5kZXggMjQyYmQ5
ODVjZjYyMGU0MzI2ZjU3MmNmYjk0NTk0NTY0ZGQ1ZjljNS4uNmFhYmJhOTBkZDIxNTE5ZTM0ZjQ4
YmVhZmNjYTdjODNjYzdhODU5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9D
b21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21w
b3NpdGVFZGl0Q29tbWFuZC5jcHAKQEAgLTMwMiw2ICszMDIsMTEgQEAgdm9pZCBFZGl0Q29tbWFu
ZENvbXBvc2l0aW9uOjpnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYgbm9kZXMpCiB9
CiAjZW5kaWYKIAorU3RyaW5nIEVkaXRDb21tYW5kQ29tcG9zaXRpb246OnVuZG9SZWRvTGFiZWwo
KSBjb25zdAoreworICAgIHJldHVybiBXZWJDb3JlOjp1bmRvUmVkb0xhYmVsKG1fZWRpdEFjdGlv
bik7Cit9CisKIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpDb21wb3NpdGVFZGl0Q29tbWFuZChEb2N1
bWVudCYgZG9jdW1lbnQsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKICAgICA6IEVkaXRDb21t
YW5kKGRvY3VtZW50LCBlZGl0aW5nQWN0aW9uKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oCmluZGV4IDJkYTUyMGZkYzQ2NDkyOTJkYzdiZmNhMjBi
N2QxMWIxMThjNWRhMWMuLjFjZmE5MzYzZjFkZDBjMTA1ODVlYmNiM2Y1ZDA5Y2JkMDk3YWU1NWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmgKQEAg
LTg4LDYgKzg4LDggQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBFZGl0Q29tbWFuZENvbXBvc2l0
aW9uKERvY3VtZW50JiwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc3RhcnRpbmdTZWxlY3Rpb24s
IGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIGVuZGluZ1NlbGVjdGlvbiwgRWRpdEFjdGlvbik7CiAK
KyAgICBTdHJpbmcgdW5kb1JlZG9MYWJlbCgpIGNvbnN0IGZpbmFsOworCiAgICAgUmVmUHRyPERv
Y3VtZW50PiBtX2RvY3VtZW50OwogICAgIFZpc2libGVTZWxlY3Rpb24gbV9zdGFydGluZ1NlbGVj
dGlvbjsKICAgICBWaXNpYmxlU2VsZWN0aW9uIG1fZW5kaW5nU2VsZWN0aW9uOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXN0b21VbmRvU3RlcC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0N1c3RvbVVuZG9TdGVwLmNwcAppbmRleCA5MTdmMmFhYjc1YTY4ZjE5YzI0
ZGQ4Y2M2MjVhNjllY2YzYjNmYjZiLi42MDM4MmExODg4OTA0NjQ2NmFhNzE1YTU1MDY2MjE2NmY5
MGY3ZTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1c3RvbVVuZG9TdGVw
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1c3RvbVVuZG9TdGVwLmNwcApAQCAt
NjUsNCArNjUsMTMgQEAgYm9vbCBDdXN0b21VbmRvU3RlcDo6aXNWYWxpZCgpIGNvbnN0CiAgICAg
cmV0dXJuIG1fdW5kb0l0ZW0gJiYgbV91bmRvSXRlbS0+aXNWYWxpZCgpOwogfQogCitTdHJpbmcg
Q3VzdG9tVW5kb1N0ZXA6OnVuZG9SZWRvTGFiZWwoKSBjb25zdAoreworICAgIGlmICghaXNWYWxp
ZCgpKSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gZW1w
dHlTdHJpbmcoKTsKKyAgICB9CisgICAgcmV0dXJuIG1fdW5kb0l0ZW0tPmxhYmVsKCk7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQ3VzdG9tVW5kb1N0ZXAuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3VzdG9tVW5kb1N0
ZXAuaAppbmRleCBmYmNlNDU0MzYyMzEyNWFjYzVmOGQ3OTY2MGM5ZWQ3MWM2N2Y4Mjk0Li4xZGEy
NDBjYmNhNWM2MjJjYTY4YzU1Mjc1NzQ4NDAxN2M5Yzk3ZTRjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0N1c3RvbVVuZG9TdGVwLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9DdXN0b21VbmRvU3RlcC5oCkBAIC00Nyw2ICs0Nyw3IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCB1bmFwcGx5KCkgZmluYWw7CiAgICAgdm9pZCByZWFwcGx5KCkgZmluYWw7CiAgICAgRWRpdEFj
dGlvbiBlZGl0aW5nQWN0aW9uKCkgY29uc3QgZmluYWwgeyByZXR1cm4gRWRpdEFjdGlvbjo6VW5z
cGVjaWZpZWQ7IH0KKyAgICBTdHJpbmcgdW5kb1JlZG9MYWJlbCgpIGNvbnN0IGZpbmFsOwogCiAg
ICAgYm9vbCBpc1ZhbGlkKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdEFjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRBY3Rpb24u
Y3BwCmluZGV4IDQxMjVlMzUwNzhmMjVhNmVkY2Y4ZTFkNjg5OTQ3NTQ3NGU5NjJlM2EuLjMxZDIx
NmYxZDA0MWZlZjNjZTNkNGY0ZjYxYjFkODIzMjA2ZGU3ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdEFjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9FZGl0QWN0aW9uLmNwcApAQCAtMzAsNyArMzAsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLVN0cmluZyBuYW1lRm9yVW5kb1JlZG8oRWRpdEFjdGlvbiBlZGl0QWN0aW9uKQorU3RyaW5n
IHVuZG9SZWRvTGFiZWwoRWRpdEFjdGlvbiBlZGl0QWN0aW9uKQogewogICAgIHN3aXRjaCAoZWRp
dEFjdGlvbikgewogICAgIGNhc2UgRWRpdEFjdGlvbjo6VW5zcGVjaWZpZWQ6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRBY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdEFjdGlvbi5oCmluZGV4IGI2YzQ1ZGFmODQ2YTY0OWUwMmUyOTQ1YzEyYzhiY2Zl
YWQ2MGI3NmQuLjE3ZThiZTk3NmM1YzljZDM4M2JmMWY1MDBmY2Q1NjkxZjM2ZTgxYjkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdEFjdGlvbi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdEFjdGlvbi5oCkBAIC05NSw2ICs5NSw2IEBAIGVudW0gY2xhc3Mg
RWRpdEFjdGlvbiA6IHVpbnQ4X3QgewogICAgIEluc2VydEVkaXRhYmxlSW1hZ2UKIH07CiAKLVdF
QkNPUkVfRVhQT1JUIFdURjo6U3RyaW5nIG5hbWVGb3JVbmRvUmVkbyhFZGl0QWN0aW9uKTsKK1dU
Rjo6U3RyaW5nIHVuZG9SZWRvTGFiZWwoRWRpdEFjdGlvbik7CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVW5kb1N0ZXAuaCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvVW5kb1N0ZXAuaAppbmRleCAwMGMxNzAwMTA3YjJjYzc5Y2Mx
MzI2NzlkODk4ZDcwNWJhNzg3ZTc4Li40MzVkNmUyY2M3MTQwNzE5MjIwMWU4MTgxNjNmYmJjYjg2
MjM4NDdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1VuZG9TdGVwLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9VbmRvU3RlcC5oCkBAIC0zMiw2ICszMiw3IEBACiAK
ICNpbmNsdWRlICJFZGl0QWN0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBA
IC00Miw2ICs0Myw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgdW5hcHBseSgpID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgcmVhcHBseSgpID0gMDsKICAgICB2aXJ0dWFsIEVkaXRBY3Rpb24g
ZWRpdGluZ0FjdGlvbigpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFN0cmluZyB1bmRvUmVkb0xh
YmVsKCkgY29uc3QgPSAwOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAppbmRleCBhNWU1ZWY3NTgzNTRmZWM3NDM2MDhhMDMz
ZWI2OWNkNzAxODA1YjQ3Li5hZTkyMGYwMWFiZjg3MjFjMzYyYTU1MzYxMzZhYWIzOGQwODExNDRj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcApAQCAtMTg2LDggKzE4Niw4
IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZXF1ZXN0Q2FuZGlkYXRlc0ZvclNlbGVjdGlvbihjb25z
dCBWaXNpYmxlU2VsZWN0aW9uJikgZmluYWwgeyB9CiAgICAgdm9pZCBoYW5kbGVBY2NlcHRlZENh
bmRpZGF0ZVdpdGhTb2Z0U3BhY2VzKFRleHRDaGVja2luZ1Jlc3VsdCkgZmluYWwgeyB9CiAKLSAg
ICB2b2lkIHJlZ2lzdGVyVW5kb1N0ZXAoVW5kb1N0ZXAmKSBmaW5hbDsKLSAgICB2b2lkIHJlZ2lz
dGVyUmVkb1N0ZXAoVW5kb1N0ZXAmKSBmaW5hbDsKKyAgICB2b2lkIHJlZ2lzdGVyVW5kb1N0ZXAo
UmVmPFVuZG9TdGVwPiYmKSBmaW5hbDsKKyAgICB2b2lkIHJlZ2lzdGVyUmVkb1N0ZXAoUmVmPFVu
ZG9TdGVwPiYmKSBmaW5hbDsKICAgICB2b2lkIGNsZWFyVW5kb1JlZG9PcGVyYXRpb25zKCkgZmlu
YWwgeyB9CiAKICAgICBib29sIGNhbkNvcHlDdXQoRnJhbWUqLCBib29sIGRlZmF1bHRWYWx1ZSkg
Y29uc3QgZmluYWwgeyByZXR1cm4gZGVmYXVsdFZhbHVlOyB9CkBAIC01MDcsMTEgKzUwNywxMSBA
QCB2b2lkIEVtcHR5RWRpdG9yQ2xpZW50OjpFbXB0eVRleHRDaGVja2VyQ2xpZW50OjpyZXF1ZXN0
Q2hlY2tpbmdPZlN0cmluZyhUZXh0Q2hlYwogewogfQogCi12b2lkIEVtcHR5RWRpdG9yQ2xpZW50
OjpyZWdpc3RlclVuZG9TdGVwKFVuZG9TdGVwJikKK3ZvaWQgRW1wdHlFZGl0b3JDbGllbnQ6OnJl
Z2lzdGVyVW5kb1N0ZXAoUmVmPFVuZG9TdGVwPiYmKQogewogfQogCi12b2lkIEVtcHR5RWRpdG9y
Q2xpZW50OjpyZWdpc3RlclJlZG9TdGVwKFVuZG9TdGVwJikKK3ZvaWQgRW1wdHlFZGl0b3JDbGll
bnQ6OnJlZ2lzdGVyUmVkb1N0ZXAoUmVmPFVuZG9TdGVwPiYmKQogewogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0VkaXRvckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9FZGl0b3JDbGllbnQuaAppbmRleCAzN2JmMTgyM2E5OGMyZDllNTJmM2QwMmNiZjViY2ZmYWVl
MzU4YzQ0Li5hYmJmNTgyOWMxN2RjYWU5N2QwNGIyY2NmYjRlMGRkMzM0NGQ0MmFjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0VkaXRvckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmgKQEAgLTEwNCw4ICsxMDQsOCBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIGNhbmNlbGVkQ29tcG9zaXRpb24oKSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IGRpZFVwZGF0ZUNvbXBvc2l0aW9uKCkgPSAwOwogCi0gICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVy
VW5kb1N0ZXAoVW5kb1N0ZXAmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyUmVkb1N0
ZXAoVW5kb1N0ZXAmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyVW5kb1N0ZXAoUmVm
PFVuZG9TdGVwPiYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyUmVkb1N0ZXAoUmVm
PFVuZG9TdGVwPiYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNsZWFyVW5kb1JlZG9PcGVyYXRp
b25zKCkgPSAwOwogCiAgICAgdmlydHVhbCBib29sIGNhbkNvcHlDdXQoRnJhbWUqLCBib29sIGRl
ZmF1bHRWYWx1ZSkgY29uc3QgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvV2ViVmlld0ltcGwubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9X
ZWJWaWV3SW1wbC5tbQppbmRleCAwNjRlMGRmZDkwZmY2YmI5ZGRjM2FiNDQyZWM4Y2RhNjlhYTJk
OTZkLi44ZDFhOTdmZjQ1NTY5NjhlMTIwMzg4NDRmNWU2MWZlOGJiZjU0ZmIzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQpAQCAtMjY5Miw3ICsyNjky
LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6ZXhlY3V0ZUVkaXRDb21tYW5kRm9yU2VsZWN0b3IoU0VM
IHNlbGVjdG9yLCBjb25zdCBTdHJpbmcmIGFyZ3UKIAogdm9pZCBXZWJWaWV3SW1wbDo6cmVnaXN0
ZXJFZGl0Q29tbWFuZChSZWY8V2ViRWRpdENvbW1hbmRQcm94eT4mJiBjb21tYW5kLCBVbmRvT3JS
ZWRvIHVuZG9PclJlZG8pCiB7Ci0gICAgYXV0byBhY3Rpb25OYW1lID0gV2ViQ29yZTo6bmFtZUZv
clVuZG9SZWRvKGNvbW1hbmQtPmVkaXRBY3Rpb24oKSk7CisgICAgYXV0byBhY3Rpb25OYW1lID0g
Y29tbWFuZC0+dW5kb1JlZG9MYWJlbCgpOwogICAgIGF1dG8gY29tbWFuZE9iakMgPSBhZG9wdE5T
KFtbV0tFZGl0Q29tbWFuZCBhbGxvY10gaW5pdFdpdGhXZWJFZGl0Q29tbWFuZFByb3h5OldURk1v
dmUoY29tbWFuZCldKTsKIAogICAgIE5TVW5kb01hbmFnZXIgKnVuZG9NYW5hZ2VyID0gW21fdmll
dyB1bmRvTWFuYWdlcl07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJF
ZGl0Q29tbWFuZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkVkaXRDb21t
YW5kUHJveHkuY3BwCmluZGV4IDlmODNlM2MxOWQ4NmM5ZjIzNTNhN2U5NTc2MTBhMWVhNWQ4NTg0
YjIuLjk2MTllZWMzY2FlZmM4MDAwNzAzZjVmZTNiZDk5Nzc0YzAxNTk2ZjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkVkaXRDb21tYW5kUHJveHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkVkaXRDb21tYW5kUHJveHkuY3BwCkBAIC0zNiwxMCAr
MzYsMTAgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAK
LVdlYkVkaXRDb21tYW5kUHJveHk6OldlYkVkaXRDb21tYW5kUHJveHkoV2ViVW5kb1N0ZXBJRCBj
b21tYW5kSUQsIFdlYkNvcmU6OkVkaXRBY3Rpb24gZWRpdEFjdGlvbiwgV2ViUGFnZVByb3h5KiBw
YWdlKQorV2ViRWRpdENvbW1hbmRQcm94eTo6V2ViRWRpdENvbW1hbmRQcm94eShXZWJVbmRvU3Rl
cElEIGNvbW1hbmRJRCwgY29uc3QgU3RyaW5nJiB1bmRvUmVkb0xhYmVsLCBXZWJQYWdlUHJveHkm
IHBhZ2UpCiAgICAgOiBtX2NvbW1hbmRJRChjb21tYW5kSUQpCi0gICAgLCBtX2VkaXRBY3Rpb24o
ZWRpdEFjdGlvbikKLSAgICAsIG1fcGFnZShwYWdlKQorICAgICwgbV91bmRvUmVkb0xhYmVsKHVu
ZG9SZWRvTGFiZWwpCisgICAgLCBtX3BhZ2UobWFrZVdlYWtQdHIocGFnZSkpCiB7CiAgICAgbV9w
YWdlLT5hZGRFZGl0Q29tbWFuZCgqdGhpcyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJFZGl0Q29tbWFuZFByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJFZGl0Q29tbWFuZFByb3h5LmgKaW5kZXggNzE2Y2I1OGY0MDNkZDgyMzE5NmY4NjQyZjc1
ZjRkZjNkNzFhYThjYS4uMjBlZDY5NGMwZDQzNjFhMTA5YTBkOGQwMWQxYWY3NmE0ZGY4ZTg4MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRWRpdENvbW1hbmRQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkVkaXRDb21tYW5kUHJveHkuaApAQCAt
MzEsNiArMzEsNyBAQAogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQ
dHIuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTM4LDI2ICszOSwyNiBAQCBjbGFzcyBX
ZWJQYWdlUHJveHk7CiAKIGNsYXNzIFdlYkVkaXRDb21tYW5kUHJveHkgOiBwdWJsaWMgQVBJOjpP
YmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpFZGl0Q29tbWFuZFByb3h5PiB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFJlZjxXZWJFZGl0Q29tbWFuZFByb3h5PiBjcmVhdGUoV2ViVW5kb1N0ZXBJ
RCBjb21tYW5kSUQsIFdlYkNvcmU6OkVkaXRBY3Rpb24gZWRpdEFjdGlvbiwgV2ViUGFnZVByb3h5
KiBwYWdlKQorICAgIHN0YXRpYyBSZWY8V2ViRWRpdENvbW1hbmRQcm94eT4gY3JlYXRlKFdlYlVu
ZG9TdGVwSUQgY29tbWFuZElELCBjb25zdCBTdHJpbmcmIHVuZG9SZWRvTGFiZWwsIFdlYlBhZ2VQ
cm94eSYgcGFnZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkVkaXRD
b21tYW5kUHJveHkoY29tbWFuZElELCBlZGl0QWN0aW9uLCBwYWdlKSk7CisgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFdlYkVkaXRDb21tYW5kUHJveHkoY29tbWFuZElELCB1bmRvUmVkb0xh
YmVsLCBwYWdlKSk7CiAgICAgfQogICAgIH5XZWJFZGl0Q29tbWFuZFByb3h5KCk7CiAKICAgICBX
ZWJVbmRvU3RlcElEIGNvbW1hbmRJRCgpIGNvbnN0IHsgcmV0dXJuIG1fY29tbWFuZElEOyB9Ci0g
ICAgV2ViQ29yZTo6RWRpdEFjdGlvbiBlZGl0QWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9lZGl0
QWN0aW9uOyB9CisgICAgY29uc3QgU3RyaW5nJiB1bmRvUmVkb0xhYmVsKCkgY29uc3QgeyByZXR1
cm4gbV91bmRvUmVkb0xhYmVsOyB9CiAKLSAgICB2b2lkIGludmFsaWRhdGUoKSB7IG1fcGFnZSA9
IDA7IH0KKyAgICB2b2lkIGludmFsaWRhdGUoKSB7IG1fcGFnZS5jbGVhcigpOyB9CiAKICAgICB2
b2lkIHVuYXBwbHkoKTsKICAgICB2b2lkIHJlYXBwbHkoKTsKIAogcHJpdmF0ZToKLSAgICBXZWJF
ZGl0Q29tbWFuZFByb3h5KFdlYlVuZG9TdGVwSUQgY29tbWFuZElELCBXZWJDb3JlOjpFZGl0QWN0
aW9uLCBXZWJQYWdlUHJveHkqKTsKKyAgICBXZWJFZGl0Q29tbWFuZFByb3h5KFdlYlVuZG9TdGVw
SUQgY29tbWFuZElELCBjb25zdCBTdHJpbmcmIHVuZG9SZWRvTGFiZWwsIFdlYlBhZ2VQcm94eSYp
OwogCiAgICAgV2ViVW5kb1N0ZXBJRCBtX2NvbW1hbmRJRDsKLSAgICBXZWJDb3JlOjpFZGl0QWN0
aW9uIG1fZWRpdEFjdGlvbjsKLSAgICBXZWJQYWdlUHJveHkqIG1fcGFnZTsKKyAgICBTdHJpbmcg
bV91bmRvUmVkb0xhYmVsOworICAgIFdlYWtQdHI8V2ViUGFnZVByb3h5PiBtX3BhZ2U7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCmluZGV4IGU3NGYzOGRjNTliNDAwZDQwMjZlMmNhZDNjNjU5ZTA1MjViNDNjOWEuLmMy
ZjgwNjNiNjQxMmNmODRmMGNhM2JmOTNkNDZjZjY5NDUxYzBmYjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNTQzOSw5ICs1NDM5LDkgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OmNvbXBvc2l0aW9uV2FzQ2FuY2VsZWQoKQogCiAvLyBVbmRvIG1hbmFnZW1lbnQK
IAotdm9pZCBXZWJQYWdlUHJveHk6OnJlZ2lzdGVyRWRpdENvbW1hbmRGb3JVbmRvKFdlYlVuZG9T
dGVwSUQgY29tbWFuZElELCB1aW50MzJfdCBlZGl0QWN0aW9uKQordm9pZCBXZWJQYWdlUHJveHk6
OnJlZ2lzdGVyRWRpdENvbW1hbmRGb3JVbmRvKFdlYlVuZG9TdGVwSUQgY29tbWFuZElELCBjb25z
dCBTdHJpbmcmIHVuZG9SZWRvTGFiZWwpCiB7Ci0gICAgcmVnaXN0ZXJFZGl0Q29tbWFuZChXZWJF
ZGl0Q29tbWFuZFByb3h5OjpjcmVhdGUoY29tbWFuZElELCBzdGF0aWNfY2FzdDxFZGl0QWN0aW9u
PihlZGl0QWN0aW9uKSwgdGhpcyksIFVuZG9PclJlZG86OlVuZG8pOworICAgIHJlZ2lzdGVyRWRp
dENvbW1hbmQoV2ViRWRpdENvbW1hbmRQcm94eTo6Y3JlYXRlKGNvbW1hbmRJRCwgdW5kb1JlZG9M
YWJlbCwgKnRoaXMpLCBVbmRvT3JSZWRvOjpVbmRvKTsKIH0KICAgICAKIHZvaWQgV2ViUGFnZVBy
b3h5OjpyZWdpc3Rlckluc2VydGlvblVuZG9Hcm91cGluZygpCkBAIC02NjUyLDEwICs2NjUyLDcg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OnJlc2V0U3RhdGUoUmVzZXRTdGF0ZVJlYXNvbiByZXNldFN0
YXRlUmVhc29uKQogICAgIG1fY2FsbGJhY2tzLmludmFsaWRhdGUoZXJyb3IpOwogICAgIG1fbG9h
ZERlcGVuZGVudFN0cmluZ0NhbGxiYWNrSURzLmNsZWFyKCk7CiAKLSAgICBhdXRvIGVkaXRDb21t
YW5kVmVjdG9yID0gY29weVRvVmVjdG9yKG1fZWRpdENvbW1hbmRTZXQpOwotICAgIG1fZWRpdENv
bW1hbmRTZXQuY2xlYXIoKTsKLQotICAgIGZvciAoYXV0byYgZWRpdENvbW1hbmQgOiBlZGl0Q29t
bWFuZFZlY3RvcikKKyAgICBmb3IgKGF1dG8mIGVkaXRDb21tYW5kIDogc3RkOjpleGNoYW5nZSht
X2VkaXRDb21tYW5kU2V0LCB7IH0pKQogICAgICAgICBlZGl0Q29tbWFuZC0+aW52YWxpZGF0ZSgp
OwogCiAgICAgbV9hY3RpdmVQb3B1cE1lbnUgPSBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaAppbmRleCBhYzU2MDBmNjJhY2M2YTM2ZWQzMGUwMmE5ZmQ3MjQzMDFi
ZTBiZjRjLi5lZTg5ZjRiZGViYzE2M2JkYzdmZWM1NjYxOTRhMjQ3ZDkzYzFjMWQwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTY0NCw3ICsxNjQ0LDcgQEAgcHJp
dmF0ZToKICAgICB2b2lkIGJhY2tGb3J3YXJkQ2xlYXIoKTsKIAogICAgIC8vIFVuZG8gbWFuYWdl
bWVudAotICAgIHZvaWQgcmVnaXN0ZXJFZGl0Q29tbWFuZEZvclVuZG8oV2ViVW5kb1N0ZXBJRCBj
b21tYW5kSUQsIHVpbnQzMl90IGVkaXRBY3Rpb24pOworICAgIHZvaWQgcmVnaXN0ZXJFZGl0Q29t
bWFuZEZvclVuZG8oV2ViVW5kb1N0ZXBJRCBjb21tYW5kSUQsIGNvbnN0IFN0cmluZyYgdW5kb1Jl
ZG9MYWJlbCk7CiAgICAgdm9pZCByZWdpc3Rlckluc2VydGlvblVuZG9Hcm91cGluZygpOwogICAg
IHZvaWQgY2xlYXJBbGxFZGl0Q29tbWFuZHMoKTsKICAgICB2b2lkIGNhblVuZG9SZWRvKFVuZG9P
clJlZG8sIGJvb2wmIHJlc3VsdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggMzg5YTMyYmRhMTRjZDAxZGI0YzRiOTljYzI0YzY5
NGQxYzFhNWQ5Zi4uMGNjM2Y4NWM5ZTZkZmM0MWIxNzc3NTc2MDRlYTBkMGU3MDU5ZTc3MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmlu
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpA
QCAtMjMzLDcgKzIzMyw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgV2lsbEdv
VG9CYWNrRm9yd2FyZExpc3RJdGVtKHN0cnVjdCBXZWJDb3JlOjpCYWNrRm9yd2FyZEl0ZW1JZGVu
dGlmaWVyIGl0ZW1JRCwgYm9vbCBpblBhZ2VDYWNoZSkKIAogICAgICMgVW5kby9SZWRvIG1lc3Nh
Z2VzCi0gICAgUmVnaXN0ZXJFZGl0Q29tbWFuZEZvclVuZG8odWludDY0X3QgY29tbWFuZElELCB1
aW50MzJfdCBlZGl0QWN0aW9uKQorICAgIFJlZ2lzdGVyRWRpdENvbW1hbmRGb3JVbmRvKHVpbnQ2
NF90IGNvbW1hbmRJRCwgU3RyaW5nIHVuZG9SZWRvTGFiZWwpCiAgICAgQ2xlYXJBbGxFZGl0Q29t
bWFuZHMoKQogICAgIFJlZ2lzdGVySW5zZXJ0aW9uVW5kb0dyb3VwaW5nKCkKICAgICBDYW5VbmRv
UmVkbyhlbnVtOmJvb2wgV2ViS2l0OjpVbmRvT3JSZWRvIHVuZG9PclJlZG8pIC0+IChib29sIHJl
c3VsdCkgTGVnYWN5U3luYwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1BhZ2VDbGllbnRJbXBsSU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VD
bGllbnRJbXBsSU9TLm1tCmluZGV4IDcxZWE2YjhmZmU3YmJhZDkyOWQ2ODBhNGU4NTNmMDFkMGM4
YzNkZTEuLmRhZWQyYTgxNjk4MGI5NTkzZjY5MjY2MTY3ZDE0YTIwMjQ2MTA4MTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KQEAgLTI2
Nyw3ICsyNjcsNyBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRDaGFuZ2VWaWV3cG9ydFByb3Bl
cnRpZXMoY29uc3QgVmlld3BvcnRBdHRyaWJ1dGVzJikKIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6
cmVnaXN0ZXJFZGl0Q29tbWFuZChSZWY8V2ViRWRpdENvbW1hbmRQcm94eT4mJiBjb21tYW5kLCBV
bmRvT3JSZWRvIHVuZG9PclJlZG8pCiB7Ci0gICAgYXV0byBhY3Rpb25OYW1lID0gV2ViQ29yZTo6
bmFtZUZvclVuZG9SZWRvKGNvbW1hbmQtPmVkaXRBY3Rpb24oKSk7CisgICAgYXV0byBhY3Rpb25O
YW1lID0gY29tbWFuZC0+dW5kb1JlZG9MYWJlbCgpOwogICAgIGF1dG8gY29tbWFuZE9iakMgPSBh
ZG9wdE5TKFtbV0tFZGl0Q29tbWFuZCBhbGxvY10gaW5pdFdpdGhXZWJFZGl0Q29tbWFuZFByb3h5
OldURk1vdmUoY29tbWFuZCldKTsKICAgICAKICAgICBOU1VuZG9NYW5hZ2VyICp1bmRvTWFuYWdl
ciA9IFttX2NvbnRlbnRWaWV3IHVuZG9NYW5hZ2VyXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKaW5k
ZXggMDA5NGUzNTZkNTE0Yjg3N2RiMWYzMGI2YTY4ZWQyZDczYzlmMTM1Ny4uY2Y4ZjA2MjdiMzNh
MTRhNjRlNzlmYTE5MWM3MTZhNmI1ZTI1MDMyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKQEAg
LTMwMiwyMiArMzAyLDIyIEBAIFN0cmluZyBXZWJFZGl0b3JDbGllbnQ6OnJlcGxhY2VtZW50VVJM
Rm9yUmVzb3VyY2UoUmVmPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4mJiByCiAgICAgcmV0dXJuIG1f
cGFnZS0+aW5qZWN0ZWRCdW5kbGVFZGl0b3JDbGllbnQoKS5yZXBsYWNlbWVudFVSTEZvclJlc291
cmNlKCptX3BhZ2UsIFdURk1vdmUocmVzb3VyY2VEYXRhKSwgbWltZVR5cGUpOwogfQogCi12b2lk
IFdlYkVkaXRvckNsaWVudDo6cmVnaXN0ZXJVbmRvU3RlcChVbmRvU3RlcCYgc3RlcCkKK3ZvaWQg
V2ViRWRpdG9yQ2xpZW50OjpyZWdpc3RlclVuZG9TdGVwKFJlZjxVbmRvU3RlcD4mJiBzdGVwKQog
ewogICAgIC8vIEZJWE1FOiBBZGQgYXNzZXJ0aW9uIHRoYXQgdGhlIGNvbW1hbmQgYmVpbmcgcmVh
cHBsaWVkIGlzIHRoZSBzYW1lIGNvbW1hbmQgdGhhdCBpcwogICAgIC8vIGJlaW5nIHBhc3NlZCB0
byB1cy4KICAgICBpZiAobV9wYWdlLT5pc0luUmVkbygpKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBhdXRvIHdlYlN0ZXAgPSBXZWJVbmRvU3RlcDo6Y3JlYXRlKHN0ZXApOworICAgIGF1dG8gbGFi
ZWwgPSBzdGVwLT51bmRvUmVkb0xhYmVsKCk7CisgICAgYXV0byB3ZWJTdGVwID0gV2ViVW5kb1N0
ZXA6OmNyZWF0ZShXVEZNb3ZlKHN0ZXApKTsKICAgICBhdXRvIHN0ZXBJRCA9IHdlYlN0ZXAtPnN0
ZXBJRCgpOwotICAgIGF1dG8gZWRpdEFjdGlvbiA9IHN0YXRpY19jYXN0PHVpbnQzMl90Pih3ZWJT
dGVwLT5zdGVwKCkuZWRpdGluZ0FjdGlvbigpKTsKIAogICAgIG1fcGFnZS0+YWRkV2ViVW5kb1N0
ZXAoc3RlcElELCBXVEZNb3ZlKHdlYlN0ZXApKTsKLSAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6
OldlYlBhZ2VQcm94eTo6UmVnaXN0ZXJFZGl0Q29tbWFuZEZvclVuZG8oc3RlcElELCBlZGl0QWN0
aW9uKSwgbV9wYWdlLT5wYWdlSUQoKSwgSVBDOjpTZW5kT3B0aW9uOjpEaXNwYXRjaE1lc3NhZ2VF
dmVuV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkpOworICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpSZWdpc3RlckVkaXRDb21tYW5kRm9yVW5kbyhzdGVwSUQsIFdURk1vdmUo
bGFiZWwpKSwgbV9wYWdlLT5wYWdlSUQoKSwgSVBDOjpTZW5kT3B0aW9uOjpEaXNwYXRjaE1lc3Nh
Z2VFdmVuV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkpOwogfQogCi12b2lkIFdlYkVkaXRvckNsaWVu
dDo6cmVnaXN0ZXJSZWRvU3RlcChVbmRvU3RlcCYpCit2b2lkIFdlYkVkaXRvckNsaWVudDo6cmVn
aXN0ZXJSZWRvU3RlcChSZWY8VW5kb1N0ZXA+JiYpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaApp
bmRleCA0NzIwYjcxMTc1NDEyYTU5YTIyOWJjNDcxMDZkYWIyZGEzYzg3NTZlLi5mNDFiMDg2MzIx
YzFmNDI4MjVjNWFkOWFlMmQ5NmE5ZTJkNzA1YjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCkBAIC04
NSw4ICs4NSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBnZXRDbGllbnRQYXN0ZWJvYXJkRGF0YUZv
clJhbmdlKFdlYkNvcmU6OlJhbmdlKiwgVmVjdG9yPFN0cmluZz4mIHBhc3RlYm9hcmRUeXBlcywg
VmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+PiYgcGFzdGVib2FyZERhdGEpIGZp
bmFsOwogICAgIFN0cmluZyByZXBsYWNlbWVudFVSTEZvclJlc291cmNlKFJlZjxXZWJDb3JlOjpT
aGFyZWRCdWZmZXI+JiYgcmVzb3VyY2VEYXRhLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKSBmaW5h
bDsKICAgICAKLSAgICB2b2lkIHJlZ2lzdGVyVW5kb1N0ZXAoV2ViQ29yZTo6VW5kb1N0ZXAmKSBm
aW5hbDsKLSAgICB2b2lkIHJlZ2lzdGVyUmVkb1N0ZXAoV2ViQ29yZTo6VW5kb1N0ZXAmKSBmaW5h
bDsKKyAgICB2b2lkIHJlZ2lzdGVyVW5kb1N0ZXAoUmVmPFdlYkNvcmU6OlVuZG9TdGVwPiYmKSBm
aW5hbDsKKyAgICB2b2lkIHJlZ2lzdGVyUmVkb1N0ZXAoUmVmPFdlYkNvcmU6OlVuZG9TdGVwPiYm
KSBmaW5hbDsKICAgICB2b2lkIGNsZWFyVW5kb1JlZG9PcGVyYXRpb25zKCkgZmluYWw7CiAKICAg
ICBib29sIGNhbkNvcHlDdXQoV2ViQ29yZTo6RnJhbWUqLCBib29sIGRlZmF1bHRWYWx1ZSkgY29u
c3QgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJFZGl0b3JDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCmluZGV4IGYwZjk2OGI3ZTJiNjZjODkxZGMxNGI2YzFm
YWFmMGI4YmJlMWQxOWUuLmFmMzVkYjI1YWNiYmQ0YWYzMjgyN2ZjMmRhOWNlMTI4N2UwNWI4MDIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVk
aXRvckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkVkaXRvckNsaWVudC5oCkBAIC0xMTQsOCArMTE0LDggQEAgcHJpdmF0ZToKICAgICB2b2lk
IGNhbmNlbGVkQ29tcG9zaXRpb24oKSBmaW5hbDsKICAgICB2b2lkIGRpZFVwZGF0ZUNvbXBvc2l0
aW9uKCkgZmluYWwgeyB9CiAKLSAgICB2b2lkIHJlZ2lzdGVyVW5kb1N0ZXAoV2ViQ29yZTo6VW5k
b1N0ZXAmKSBmaW5hbDsKLSAgICB2b2lkIHJlZ2lzdGVyUmVkb1N0ZXAoV2ViQ29yZTo6VW5kb1N0
ZXAmKSBmaW5hbDsKKyAgICB2b2lkIHJlZ2lzdGVyVW5kb1N0ZXAoUmVmPFdlYkNvcmU6OlVuZG9T
dGVwPiYmKSBmaW5hbDsKKyAgICB2b2lkIHJlZ2lzdGVyUmVkb1N0ZXAoUmVmPFdlYkNvcmU6OlVu
ZG9TdGVwPiYmKSBmaW5hbDsKICAgICB2b2lkIGNsZWFyVW5kb1JlZG9PcGVyYXRpb25zKCkgZmlu
YWw7CiAKICAgICBib29sIGNhbkNvcHlDdXQoV2ViQ29yZTo6RnJhbWUqLCBib29sIGRlZmF1bHRW
YWx1ZSkgY29uc3QgZmluYWw7CkBAIC0xNzIsNyArMTcyLDcgQEAgcHJpdmF0ZToKICAgICB2b2lk
IGhhbmRsZUFjY2VwdGVkQ2FuZGlkYXRlV2l0aFNvZnRTcGFjZXMoV2ViQ29yZTo6VGV4dENoZWNr
aW5nUmVzdWx0KSBmaW5hbDsKICNlbmRpZgogCi0gICAgdm9pZCByZWdpc3RlclVuZG9PclJlZG9T
dGVwKFdlYkNvcmU6OlVuZG9TdGVwJiwgYm9vbCBpc1JlZG8pOworICAgIHZvaWQgcmVnaXN0ZXJV
bmRvT3JSZWRvU3RlcChSZWY8V2ViQ29yZTo6VW5kb1N0ZXA+JiYsIGJvb2wgaXNSZWRvKTsKIAog
ICAgIFdlYlZpZXcgKm1fd2ViVmlldzsKICAgICBSZXRhaW5QdHI8V2ViRWRpdG9yVW5kb1Rhcmdl
dD4gbV91bmRvVGFyZ2V0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCmluZGV4IGNjYzMzZjk0MGZiYzllNjMx
ZmRkOThkMmVhMTZiOTdlMTU2YmQwYjMuLmQ3MDRjZTZhNDNiYjNjMGMwZDRmN2MyNTdmMmFlYWVm
MTc1Zjc3ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkVkaXRvckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KQEAgLTEyNSw3ICsxMjUsNyBAQCBAaW50ZXJm
YWNlIFdlYlVuZG9TdGVwIDogTlNPYmplY3QKICAgICBSZWZQdHI8VW5kb1N0ZXA+IG1fc3RlcDsg
ICAKIH0KIAotKyAoV2ViVW5kb1N0ZXAgKilzdGVwV2l0aFVuZG9TdGVwOihVbmRvU3RlcCYpc3Rl
cDsKKysgKFdlYlVuZG9TdGVwICopc3RlcFdpdGhVbmRvU3RlcDooUmVmPFVuZG9TdGVwPiYmKXN0
ZXA7CiAtIChVbmRvU3RlcCYpc3RlcDsKIAogQGVuZApAQCAtMTQxLDEyICsxNDEsMTIgQEAgKyAo
dm9pZClpbml0aWFsaXplCiAjZW5kaWYKIH0KIAotLSAoaWQpaW5pdFdpdGhVbmRvU3RlcDooVW5k
b1N0ZXAmKXN0ZXAKKy0gKGlkKWluaXRXaXRoVW5kb1N0ZXA6KFJlZjxVbmRvU3RlcD4mJilzdGVw
CiB7CiAgICAgc2VsZiA9IFtzdXBlciBpbml0XTsKICAgICBpZiAoIXNlbGYpCiAgICAgICAgIHJl
dHVybiBuaWw7Ci0gICAgbV9zdGVwID0gJnN0ZXA7CisgICAgbV9zdGVwID0gV1RGTW92ZShzdGVw
KTsKICAgICByZXR1cm4gc2VsZjsKIH0KIApAQCAtMTU4LDkgKzE1OCw5IEBAIC0gKHZvaWQpZGVh
bGxvYwogICAgIFtzdXBlciBkZWFsbG9jXTsKIH0KIAotKyAoV2ViVW5kb1N0ZXAgKilzdGVwV2l0
aFVuZG9TdGVwOihVbmRvU3RlcCYpc3RlcAorKyAoV2ViVW5kb1N0ZXAgKilzdGVwV2l0aFVuZG9T
dGVwOihSZWY8VW5kb1N0ZXA+JiYpc3RlcAogewotICAgIHJldHVybiBbW1tXZWJVbmRvU3RlcCBh
bGxvY10gaW5pdFdpdGhVbmRvU3RlcDpzdGVwXSBhdXRvcmVsZWFzZV07CisgICAgcmV0dXJuIFtb
W1dlYlVuZG9TdGVwIGFsbG9jXSBpbml0V2l0aFVuZG9TdGVwOldURk1vdmUoc3RlcCldIGF1dG9y
ZWxlYXNlXTsKIH0KIAogLSAoVW5kb1N0ZXAmKXN0ZXAKQEAgLTU4OSw3ICs1ODksNyBAQCBib29s
IFdlYkVkaXRvckNsaWVudDo6c2hvdWxkSW5zZXJ0Tm9kZShOb2RlICpub2RlLCBSYW5nZSogcmVw
bGFjaW5nUmFuZ2UsIEVkaXRvcgogICAgIHJldHVybiBbW21fd2ViVmlldyBfZWRpdGluZ0RlbGVn
YXRlRm9yd2FyZGVyXSB3ZWJWaWV3Om1fd2ViVmlldyBzaG91bGRJbnNlcnROb2RlOmtpdChub2Rl
KSByZXBsYWNpbmdET01SYW5nZTpraXQocmVwbGFjaW5nUmFuZ2UpIGdpdmVuQWN0aW9uOihXZWJW
aWV3SW5zZXJ0QWN0aW9uKWdpdmVuQWN0aW9uXTsKIH0KIAotdm9pZCBXZWJFZGl0b3JDbGllbnQ6
OnJlZ2lzdGVyVW5kb09yUmVkb1N0ZXAoVW5kb1N0ZXAmIHN0ZXAsIGJvb2wgaXNSZWRvKQordm9p
ZCBXZWJFZGl0b3JDbGllbnQ6OnJlZ2lzdGVyVW5kb09yUmVkb1N0ZXAoUmVmPFVuZG9TdGVwPiYm
IHN0ZXAsIGJvb2wgaXNSZWRvKQogewogICAgIE5TVW5kb01hbmFnZXIgKnVuZG9NYW5hZ2VyID0g
W21fd2ViVmlldyB1bmRvTWFuYWdlcl07CiAKQEAgLTYwMSw5ICs2MDEsOCBAQCB2b2lkIFdlYkVk
aXRvckNsaWVudDo6cmVnaXN0ZXJVbmRvT3JSZWRvU3RlcChVbmRvU3RlcCYgc3RlcCwgYm9vbCBp
c1JlZG8pCiAgICAgICAgIHJldHVybjsKICNlbmRpZgogCi0gICAgTlNTdHJpbmcgKmFjdGlvbk5h
bWUgPSBXZWJDb3JlOjpuYW1lRm9yVW5kb1JlZG8oc3RlcC5lZGl0aW5nQWN0aW9uKCkpOwotICAg
IFdlYlVuZG9TdGVwICp3ZWJFbnRyeSA9IFtXZWJVbmRvU3RlcCBzdGVwV2l0aFVuZG9TdGVwOnN0
ZXBdOwotICAgIFt1bmRvTWFuYWdlciByZWdpc3RlclVuZG9XaXRoVGFyZ2V0Om1fdW5kb1Rhcmdl
dC5nZXQoKSBzZWxlY3RvcjooaXNSZWRvID8gQHNlbGVjdG9yKHJlZG9FZGl0aW5nOikgOiBAc2Vs
ZWN0b3IodW5kb0VkaXRpbmc6KSkgb2JqZWN0OndlYkVudHJ5XTsKKyAgICBOU1N0cmluZyAqYWN0
aW9uTmFtZSA9IHN0ZXAtPnVuZG9SZWRvTGFiZWwoKTsKKyAgICBbdW5kb01hbmFnZXIgcmVnaXN0
ZXJVbmRvV2l0aFRhcmdldDptX3VuZG9UYXJnZXQuZ2V0KCkgc2VsZWN0b3I6KGlzUmVkbyA/IEBz
ZWxlY3RvcihyZWRvRWRpdGluZzopIDogQHNlbGVjdG9yKHVuZG9FZGl0aW5nOikpIG9iamVjdDpb
V2ViVW5kb1N0ZXAgc3RlcFdpdGhVbmRvU3RlcDpXVEZNb3ZlKHN0ZXApXV07CiAgICAgaWYgKGFj
dGlvbk5hbWUpCiAgICAgICAgIFt1bmRvTWFuYWdlciBzZXRBY3Rpb25OYW1lOmFjdGlvbk5hbWVd
OwogICAgIG1faGF2ZVVuZG9SZWRvT3BlcmF0aW9ucyA9IFlFUzsKQEAgLTYyOSwxNCArNjI4LDE0
IEBAIHZvaWQgV2ViRWRpdG9yQ2xpZW50Ojp1cGRhdGVFZGl0b3JTdGF0ZUFmdGVyTGF5b3V0SWZF
ZGl0YWJpbGl0eUNoYW5nZWQoKQogICAgICAgICBbbV93ZWJWaWV3IHVwZGF0ZVRvdWNoQmFyXTsK
IH0KIAotdm9pZCBXZWJFZGl0b3JDbGllbnQ6OnJlZ2lzdGVyVW5kb1N0ZXAoVW5kb1N0ZXAmIGNt
ZCkKK3ZvaWQgV2ViRWRpdG9yQ2xpZW50OjpyZWdpc3RlclVuZG9TdGVwKFJlZjxVbmRvU3RlcD4m
JiBjb21tYW5kKQogewotICAgIHJlZ2lzdGVyVW5kb09yUmVkb1N0ZXAoY21kLCBmYWxzZSk7Cisg
ICAgcmVnaXN0ZXJVbmRvT3JSZWRvU3RlcChXVEZNb3ZlKGNvbW1hbmQpLCBmYWxzZSk7CiB9CiAK
LXZvaWQgV2ViRWRpdG9yQ2xpZW50OjpyZWdpc3RlclJlZG9TdGVwKFVuZG9TdGVwJiBjbWQpCit2
b2lkIFdlYkVkaXRvckNsaWVudDo6cmVnaXN0ZXJSZWRvU3RlcChSZWY8VW5kb1N0ZXA+JiYgY29t
bWFuZCkKIHsKLSAgICByZWdpc3RlclVuZG9PclJlZG9TdGVwKGNtZCwgdHJ1ZSk7CisgICAgcmVn
aXN0ZXJVbmRvT3JSZWRvU3RlcChXVEZNb3ZlKGNvbW1hbmQpLCB0cnVlKTsKIH0KIAogdm9pZCBX
ZWJFZGl0b3JDbGllbnQ6OmNsZWFyVW5kb1JlZG9PcGVyYXRpb25zKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQu
Y3BwCmluZGV4IDJlN2VhNTgxOTQzMmFkNTU3Y2FmNzg4ZmQxMzk2NzRiMWI2NzQxN2YuLmFhYTcw
ZTlmYWQ2NGZmOTRiZjMxYWNkM2E4NGUzZmZjNjc4YjA1NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNw
cApAQCAtNjMwLDEyICs2MzAsMTIgQEAgc3RhdGljIFN0cmluZyB1bmRvTmFtZUZvckVkaXRBY3Rp
b24oRWRpdEFjdGlvbiBlZGl0QWN0aW9uKQogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAotdm9p
ZCBXZWJFZGl0b3JDbGllbnQ6OnJlZ2lzdGVyVW5kb1N0ZXAoVW5kb1N0ZXAmIHN0ZXApCit2b2lk
IFdlYkVkaXRvckNsaWVudDo6cmVnaXN0ZXJVbmRvU3RlcChSZWY8V2ViQ29yZTo6VW5kb1N0ZXA+
JiYgc3RlcCkKIHsKICAgICBJV2ViVUlEZWxlZ2F0ZSogdWlEZWxlZ2F0ZSA9IDA7CiAgICAgaWYg
KFNVQ0NFRURFRChtX3dlYlZpZXctPnVpRGVsZWdhdGUoJnVpRGVsZWdhdGUpKSkgewotICAgICAg
ICBTdHJpbmcgYWN0aW9uTmFtZSA9IHVuZG9OYW1lRm9yRWRpdEFjdGlvbihzdGVwLmVkaXRpbmdB
Y3Rpb24oKSk7Ci0gICAgICAgIFdlYkVkaXRvclVuZG9Db21tYW5kKiB1bmRvQ29tbWFuZCA9IG5l
dyBXZWJFZGl0b3JVbmRvQ29tbWFuZChzdGVwLCB0cnVlKTsKKyAgICAgICAgU3RyaW5nIGFjdGlv
bk5hbWUgPSB1bmRvTmFtZUZvckVkaXRBY3Rpb24oc3RlcC0+ZWRpdGluZ0FjdGlvbigpKTsKKyAg
ICAgICAgV2ViRWRpdG9yVW5kb0NvbW1hbmQqIHVuZG9Db21tYW5kID0gbmV3IFdlYkVkaXRvclVu
ZG9Db21tYW5kKHN0ZXAuZ2V0KCksIHRydWUpOwogICAgICAgICBpZiAoIXVuZG9Db21tYW5kKQog
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB1aURlbGVnYXRlLT5yZWdpc3RlclVuZG9XaXRo
VGFyZ2V0KG1fdW5kb1RhcmdldCwgMCwgdW5kb0NvbW1hbmQpOwpAQCAtNjQ2LDExICs2NDYsMTEg
QEAgdm9pZCBXZWJFZGl0b3JDbGllbnQ6OnJlZ2lzdGVyVW5kb1N0ZXAoVW5kb1N0ZXAmIHN0ZXAp
CiAgICAgfQogfQogCi12b2lkIFdlYkVkaXRvckNsaWVudDo6cmVnaXN0ZXJSZWRvU3RlcChVbmRv
U3RlcCYgc3RlcCkKK3ZvaWQgV2ViRWRpdG9yQ2xpZW50OjpyZWdpc3RlclJlZG9TdGVwKFJlZjxX
ZWJDb3JlOjpVbmRvU3RlcD4mJiBzdGVwKQogewogICAgIElXZWJVSURlbGVnYXRlKiB1aURlbGVn
YXRlID0gMDsKICAgICBpZiAoU1VDQ0VFREVEKG1fd2ViVmlldy0+dWlEZWxlZ2F0ZSgmdWlEZWxl
Z2F0ZSkpKSB7Ci0gICAgICAgIFdlYkVkaXRvclVuZG9Db21tYW5kKiB1bmRvQ29tbWFuZCA9IG5l
dyBXZWJFZGl0b3JVbmRvQ29tbWFuZChzdGVwLCBmYWxzZSk7CisgICAgICAgIFdlYkVkaXRvclVu
ZG9Db21tYW5kKiB1bmRvQ29tbWFuZCA9IG5ldyBXZWJFZGl0b3JVbmRvQ29tbWFuZChzdGVwLmdl
dCgpLCBmYWxzZSk7CiAgICAgICAgIGlmICghdW5kb0NvbW1hbmQpCiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIHVpRGVsZWdhdGUtPnJlZ2lzdGVyVW5kb1dpdGhUYXJnZXQobV91bmRvVGFy
Z2V0LCAwLCB1bmRvQ29tbWFuZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCmluZGV4IDdhNmVkZGU4MTkzNjEz
ODU5YTMxZDJmMGQyZWJiMzVmODIyYzVkMmIuLjJhMGQwMzBmNmFlMDc2MDk5YzI0MDI3ZmU5N2Zk
MDRjZjg1MTdjOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVT
dXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dl
YkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCkBAIC03NCw4ICs3NCw4IEBAIHByaXZhdGU6
CiAgICAgYm9vbCBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKSBmaW5hbDsKICAgICBib29sIGlz
U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpIGNvbnN0IGZpbmFsOwogCi0gICAgdm9p
ZCByZWdpc3RlclVuZG9TdGVwKFdlYkNvcmU6OlVuZG9TdGVwJikgZmluYWw7Ci0gICAgdm9pZCBy
ZWdpc3RlclJlZG9TdGVwKFdlYkNvcmU6OlVuZG9TdGVwJikgZmluYWw7CisgICAgdm9pZCByZWdp
c3RlclVuZG9TdGVwKFJlZjxXZWJDb3JlOjpVbmRvU3RlcD4mJikgZmluYWw7CisgICAgdm9pZCBy
ZWdpc3RlclJlZG9TdGVwKFJlZjxXZWJDb3JlOjpVbmRvU3RlcD4mJikgZmluYWw7CiAgICAgdm9p
ZCBjbGVhclVuZG9SZWRvT3BlcmF0aW9ucygpOwogCiAgICAgYm9vbCBjYW5Db3B5Q3V0KFdlYkNv
cmU6OkZyYW1lKiwgYm9vbCBkZWZhdWx0VmFsdWUpIGNvbnN0IGZpbmFsOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359857</attachid>
            <date>2019-01-22 22:49:56 -0800</date>
            <delta_ts>2019-01-23 00:31:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193706-20190122224954.patch</filename>
            <type>text/plain</type>
            <size>28612</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwMzI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTdlMGQ2NDlhNTkwMzUw
NTBmY2ZkYzcxMGE3YzNiOGZkMWFhNjc4NC4uMmQxYWEwYTEwMDM0MzFkMzZjM2FjMGZlMDc4OThi
OTk5ZWM3NzYyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDE5LTAxLTIyICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEludHJvZHVjZSBV
bmRvU3RlcDo6bGFiZWwoKSBhbmQgYWRvcHQgaXQgaW4gV2ViS2l0TGVnYWN5IGFuZCBXZWJLaXQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MzcwNgor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDQ4MDcwNDg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVmYWN0b3JzIHNvbWUgZXhpc3RpbmcgbG9naWMg
d2hlbiByZWdpc3RlcmluZyB1bmRvYWJsZSBhY3Rpb25zLCBzdWNoIHRoYXQgd2UgcHJvcGFnYXRl
IHRoZSB1bmRvYWJsZSBhY3Rpb24ncworICAgICAgICBsYWJlbCBzdHJpbmcgaW5zdGVhZCBvZiB0
aGUgRWRpdEFjdGlvbiB0byB0aGUgY2xpZW50IGxheWVyLiBUaGlzIHdpbGwgaGVscCBtYWtlIGhh
bmRsaW5nIG9mIEN1c3RvbVVuZG9TdGVwJ3MKKyAgICAgICAgdW5kby9yZWRvIGxhYmVsIHNpbXBs
ZXIsIGFzIHRoZSBjbGllbnQgbGF5ZXIgd29uJ3QgbmVlZCB0byB3b3JyeSBhYm91dCBtYW5hZ2lu
ZyBhbiBFZGl0QWN0aW9uIGFuZCB1bmRvL3JlZG8KKyAgICAgICAgbGFiZWwgc2ltdWx0YW5lb3Vz
bHkuIFRoZXJlIHNob3VsZCBiZSBubyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAgICAgICAgKiBl
ZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRD
b21tYW5kQ29tcG9zaXRpb246OmxhYmVsIGNvbnN0KToKKyAgICAgICAgKiBlZGl0aW5nL0NvbXBv
c2l0ZUVkaXRDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9DdXN0b21VbmRvU3RlcC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDdXN0b21VbmRvU3RlcDo6bGFiZWwgY29uc3QpOgorICAgICAg
ICAqIGVkaXRpbmcvQ3VzdG9tVW5kb1N0ZXAuaDoKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRBY3Rp
b24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dW5kb1JlZG9MYWJlbCk6CisgICAgICAgIChXZWJD
b3JlOjpuYW1lRm9yVW5kb1JlZG8pOiBEZWxldGVkLgorICAgICAgICAqIGVkaXRpbmcvRWRpdEFj
dGlvbi5oOgorCisgICAgICAgIFJlbmFtZSBuYW1lRm9yVW5kb1JlZG8gdG8gdW5kb1JlZG9MYWJl
bCwgYW5kIHJlbW92ZSB0aGUgV0VCQ09SRV9FWFBPUlQgc2luY2UgaXQncyBubyBsb25nZXIgbmVl
ZGVkIGluIFdlYktpdCBvcgorICAgICAgICBXZWJLaXRMZWdhY3kuCisKKyAgICAgICAgKiBlZGl0
aW5nL1VuZG9TdGVwLmg6CisKKyAgICAgICAgQWRkIFVuZG9TdGVwOjpsYWJlbCgpLiBXaGlsZSBF
ZGl0Q29tbWFuZENvbXBvc2l0aW9uIGltcGxlbWVudHMgdGhpcyBieSBtYXBwaW5nIGl0cyBFZGl0
QWN0aW9uIHRvIGEKKyAgICAgICAgbG9jYWxpemVkIHN0cmluZywgQ3VzdG9tVW5kb1N0ZXAgaW1w
bGVtZW50cyB0aGlzIGJ5IHJldHVybmluZyB0aGUgdW5kb2FibGUgYWN0aW9uIGxhYmVsIHByb3Zp
ZGVkIGJ5IHNjcmlwdC4KKworICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RW1wdHlFZGl0b3JDbGllbnQ6OnJlZ2lzdGVyVW5kb1N0ZXApOgorICAg
ICAgICAoV2ViQ29yZTo6RW1wdHlFZGl0b3JDbGllbnQ6OnJlZ2lzdGVyUmVkb1N0ZXApOgorCisg
ICAgICAgIEFsc28gdHdlYWsgdGhlc2UgY2xpZW50IGZ1bmN0aW9ucyB0byB0YWtlIGEgYFJlZjxV
bmRvU3RlcD4mJmAuCisKKyAgICAgICAgKiBwYWdlL0VkaXRvckNsaWVudC5oOgorCiAyMDE5LTAx
LTIyICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIElu
dHJvZHVjZSBDdXN0b21VbmRvU3RlcC5oIGFuZCBDdXN0b21VbmRvU3RlcC5jcHAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5k
ZXggNjMwNDQxNTNmOTIxMTBlMDcyYTIxN2VjZGJmMWMxNjIwYmI3MjA1ZS4uOWM4NzdlNDNmNmI1
ZmNmZTc1Y2FlYTk2ZjZjNzJmM2M2Y2FiYjMxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0OSBAQAor
MjAxOS0wMS0yMiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAg
ICAgICBJbnRyb2R1Y2UgVW5kb1N0ZXA6OmxhYmVsKCkgYW5kIGFkb3B0IGl0IGluIFdlYktpdExl
Z2FjeSBhbmQgV2ViS2l0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xOTM3MDYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ0ODA3MDQ4PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL0Nv
Y29hL1dlYlZpZXdJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6cmVnaXN0
ZXJFZGl0Q29tbWFuZCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkVkaXRDb21tYW5kUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJFZGl0Q29tbWFuZFByb3h5OjpXZWJFZGl0Q29tbWFu
ZFByb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViRWRpdENvbW1hbmRQcm94eS5oOgorCisg
ICAgICAgIERyaXZlLWJ5IHR3ZWFrOiBtYWtlIFdlYkVkaXRDb21tYW5kUHJveHkncyBiYWNrcG9p
bnRlciB0byBpdHMgV2ViUGFnZVByb3h5IGEgV2Vha1B0ciBpbnN0ZWFkIG9mIGEgcmF3IHBvaW50
ZXIuCisgICAgICAgIEFkZGl0aW9uYWxseSwgY2FsbCBjbGVhcigpIGluc3RlYWQgb2Ygc2V0dGlu
ZyBtX3BhZ2UgdG8gMCB1cG9uIGludmFsaWRhdGlvbi4gQWxzbywgdHVybiB0aGUgV2ViUGFnZVBy
b3h5KgorICAgICAgICBhcmd1bWVudCBpbnRvIGEgV2ViUGFnZVByb3h5Jiwgc2luY2UgdGhlIFdl
YlBhZ2VQcm94eSBtdXN0IGV4aXN0IHdoZW4gaXQgY3JlYXRlcyBhIG5ldyBXZWJFZGl0Q29tbWFu
ZFByb3h5LgorCisgICAgICAgIChXZWJLaXQ6OldlYkVkaXRDb21tYW5kUHJveHk6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYkVkaXRDb21tYW5kUHJveHk6OmxhYmVsIGNvbnN0KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViRWRpdENvbW1hbmRQcm94eTo6aW52YWxpZGF0ZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYkVkaXRDb21tYW5kUHJveHk6OmVkaXRBY3Rpb24gY29uc3QpOiBEZWxldGVk
LgorCisgICAgICAgIEFkanVzdCBVSS1zaWRlIGxvZ2ljIHRvIGp1c3QgaGFuZGxlIHRoZSB1bmRv
L3JlZG8gbGFiZWwsIHJhdGhlciB0aGFuIG1hcCB0aGUgZWRpdCBhY3Rpb24gdG8gYSBsb2NhbGl6
ZWQgc3RyaW5nLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVnaXN0ZXJFZGl0Q29tbWFuZEZvclVuZG8pOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlc2V0U3RhdGUpOgorCisgICAgICAgIFR3
ZWFrIHRoaXMgdG8gdXNlIHN0ZDo6ZXhjaGFuZ2UgaW5zdGVhZCBvZiBjb3B5aW5nIGFsbCB0aGUg
V2ViRWRpdENvbW1hbmRQcm94eSBSZWZQdHJzIGludG8gYSBzZXBhcmF0ZSBWZWN0b3IKKyAgICAg
ICAgYW5kIHRoZW4gaXRlcmF0aW5nIG92ZXIgdGhlIFZlY3Rvci4KKworICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1l
c3NhZ2VzLmluOgorCisgICAgICAgIEFkanVzdCB0aGlzIHNvIHRoYXQgd2Ugb25seSBzZW5kIHRo
ZSB1bmRvL3JlZG8gbGFiZWwgb3ZlciBJUEMsIHJhdGhlciB0aGFuIHRoZSBlZGl0IGFjdGlvbiB0
eXBlLgorCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbToKKyAg
ICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnJlZ2lzdGVyRWRpdENvbW1hbmQpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViRWRpdG9yQ2xpZW50OjpyZWdpc3RlclVuZG9TdGVwKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViRWRpdG9yQ2xpZW50OjpyZWdpc3RlclJlZG9TdGVwKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oOgorCisgICAgICAg
IEFkanVzdCB0aGlzIHRvIHRha2UgUmVmPFVuZG9TdGVwPiYmLgorCiAyMDE5LTAxLTIyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgUmVncmVzc2lvbihyMjQwMTc4
KSBTb21lIEFQSSB0ZXN0cyBhcmUgY3Jhc2hpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpp
bmRleCBjMDdmNDBmMmJhYjVkODkxZmZmMzg3NjgyYTU0YWE3MTk5NTdkMjI1Li42ZWFiMDFjZDlh
NTRlYTgwYzQ4ZjUwYmMyMmJkZjFkOTc3YjU0NWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTktMDEtMjIgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9o
c2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgSW50cm9kdWNlIFVuZG9TdGVwOjpsYWJlbCgpIGFu
ZCBhZG9wdCBpdCBpbiBXZWJLaXRMZWdhY3kgYW5kIFdlYktpdAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzNzA2CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS80NDgwNzA0OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGp1c3QgZm9yIHNvbWUgY2hhbmdlZCBpbnRlcmZhY2VzLgorCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViRWRpdG9yQ2xpZW50Lm1tOgorICAgICAgICAoLVtXZWJVbmRvU3RlcCBpbml0V2l0aFVu
ZG9TdGVwOl0pOgorICAgICAgICAoK1tXZWJVbmRvU3RlcCBzdGVwV2l0aFVuZG9TdGVwOl0pOgor
ICAgICAgICAoV2ViRWRpdG9yQ2xpZW50OjpyZWdpc3RlclVuZG9PclJlZG9TdGVwKToKKyAgICAg
ICAgKFdlYkVkaXRvckNsaWVudDo6cmVnaXN0ZXJVbmRvU3RlcCk6CisgICAgICAgIChXZWJFZGl0
b3JDbGllbnQ6OnJlZ2lzdGVyUmVkb1N0ZXApOgorCiAyMDE5LTAxLTIyICBBbGV4IENocmlzdGVu
c2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTW92ZSBOZXR3b3JrU3Rv
cmFnZVNlc3Npb24gb3duZXJzaGlwIHRvIE5ldHdvcmtQcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9D
aGFuZ2VMb2cKaW5kZXggNGE2YzkwM2JhZjBlZTIxZjZkODQxNTM2MjhjZmNhZTU4NmVjZDE1ZC4u
YzMyMjFjMzcyYmNhMzQ2ZTlhMzQxNmVmNjAyMDE0NTY4MmIxM2M3NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE5LTAxLTIyICBXZW5zb24gSHNpZWgg
IDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEludHJvZHVjZSBVbmRvU3RlcDo6
bGFiZWwoKSBhbmQgYWRvcHQgaXQgaW4gV2ViS2l0TGVnYWN5IGFuZCBXZWJLaXQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MzcwNgorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNDQ4MDcwNDg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQWRqdXN0IGZvciBzb21lIGNoYW5nZWQgaW50ZXJmYWNlcy4KKwor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHA6CisgICAgICAgIChX
ZWJFZGl0b3JDbGllbnQ6OnJlZ2lzdGVyVW5kb1N0ZXApOgorICAgICAgICAoV2ViRWRpdG9yQ2xp
ZW50OjpyZWdpc3RlclJlZG9TdGVwKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0
b3JDbGllbnQuaDoKKwogMjAxOS0wMS0yMiAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNl
bkB3ZWJraXQub3JnPgogCiAgICAgICAgIE1vdmUgTmV0d29ya1N0b3JhZ2VTZXNzaW9uIG93bmVy
c2hpcCB0byBOZXR3b3JrUHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBv
c2l0ZUVkaXRDb21tYW5kLmNwcAppbmRleCAyNDJiZDk4NWNmNjIwZTQzMjZmNTcyY2ZiOTQ1OTQ1
NjRkZDVmOWM1Li45MWQ4YWYxODBhNGUzMTFhYzM2MWIzM2JhZWI5MWMyNDAwYjExNDEzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcApAQCAt
MzAyLDYgKzMwMiwxMSBAQCB2b2lkIEVkaXRDb21tYW5kQ29tcG9zaXRpb246OmdldE5vZGVzSW5D
b21tYW5kKEhhc2hTZXQ8Tm9kZSo+JiBub2RlcykKIH0KICNlbmRpZgogCitTdHJpbmcgRWRpdENv
bW1hbmRDb21wb3NpdGlvbjo6bGFiZWwoKSBjb25zdAoreworICAgIHJldHVybiB1bmRvUmVkb0xh
YmVsKG1fZWRpdEFjdGlvbik7Cit9CisKIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpDb21wb3NpdGVF
ZGl0Q29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikK
ICAgICA6IEVkaXRDb21tYW5kKGRvY3VtZW50LCBlZGl0aW5nQWN0aW9uKQogewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oCmluZGV4IDJkYTUyMGZkYzQ2
NDkyOTJkYzdiZmNhMjBiN2QxMWIxMThjNWRhMWMuLmZmMWU2MWM2ZWU0NTk3ZjBhZDVlYmEyOWI5
YmQ0OGFjNjBjOTRmYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9z
aXRlRWRpdENvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVk
aXRDb21tYW5kLmgKQEAgLTg4LDYgKzg4LDggQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBFZGl0
Q29tbWFuZENvbXBvc2l0aW9uKERvY3VtZW50JiwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc3Rh
cnRpbmdTZWxlY3Rpb24sIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIGVuZGluZ1NlbGVjdGlvbiwg
RWRpdEFjdGlvbik7CiAKKyAgICBTdHJpbmcgbGFiZWwoKSBjb25zdCBmaW5hbDsKKwogICAgIFJl
ZlB0cjxEb2N1bWVudD4gbV9kb2N1bWVudDsKICAgICBWaXNpYmxlU2VsZWN0aW9uIG1fc3RhcnRp
bmdTZWxlY3Rpb247CiAgICAgVmlzaWJsZVNlbGVjdGlvbiBtX2VuZGluZ1NlbGVjdGlvbjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3VzdG9tVW5kb1N0ZXAuY3BwIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9DdXN0b21VbmRvU3RlcC5jcHAKaW5kZXggOTE3ZjJhYWI3NWE2
OGYxOWMyNGRkOGNjNjI1YTY5ZWNmM2IzZmI2Yi4uMDY4MDc1MjI2NDIyMjg3Mjc2ODZjYmNkZGRl
N2UyNzJmZDAwZDIwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXN0b21V
bmRvU3RlcC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXN0b21VbmRvU3RlcC5j
cHAKQEAgLTY1LDQgKzY1LDEzIEBAIGJvb2wgQ3VzdG9tVW5kb1N0ZXA6OmlzVmFsaWQoKSBjb25z
dAogICAgIHJldHVybiBtX3VuZG9JdGVtICYmIG1fdW5kb0l0ZW0tPmlzVmFsaWQoKTsKIH0KIAor
U3RyaW5nIEN1c3RvbVVuZG9TdGVwOjpsYWJlbCgpIGNvbnN0Cit7CisgICAgaWYgKCFpc1ZhbGlk
KCkpIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBlbXB0
eVN0cmluZygpOworICAgIH0KKyAgICByZXR1cm4gbV91bmRvSXRlbS0+bGFiZWwoKTsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9DdXN0b21VbmRvU3RlcC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXN0b21VbmRvU3Rl
cC5oCmluZGV4IGZiY2U0NTQzNjIzMTI1YWNjNWY4ZDc5NjYwYzllZDcxYzY3ZjgyOTQuLmQ5ZWFk
MTNhNGE3MjdjYmZiYmI4MGI3MzFmYjQ0Y2QwMTBiZjRjZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvQ3VzdG9tVW5kb1N0ZXAuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0N1c3RvbVVuZG9TdGVwLmgKQEAgLTQ3LDYgKzQ3LDcgQEAgcHJpdmF0ZToKICAgICB2b2lk
IHVuYXBwbHkoKSBmaW5hbDsKICAgICB2b2lkIHJlYXBwbHkoKSBmaW5hbDsKICAgICBFZGl0QWN0
aW9uIGVkaXRpbmdBY3Rpb24oKSBjb25zdCBmaW5hbCB7IHJldHVybiBFZGl0QWN0aW9uOjpVbnNw
ZWNpZmllZDsgfQorICAgIFN0cmluZyBsYWJlbCgpIGNvbnN0IGZpbmFsOwogCiAgICAgYm9vbCBp
c1ZhbGlkKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRp
dEFjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRBY3Rpb24uY3BwCmluZGV4
IDQxMjVlMzUwNzhmMjVhNmVkY2Y4ZTFkNjg5OTQ3NTQ3NGU5NjJlM2EuLjMxZDIxNmYxZDA0MWZl
ZjNjZTNkNGY0ZjYxYjFkODIzMjA2ZGU3ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdEFjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0QWN0
aW9uLmNwcApAQCAtMzAsNyArMzAsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVN0cmlu
ZyBuYW1lRm9yVW5kb1JlZG8oRWRpdEFjdGlvbiBlZGl0QWN0aW9uKQorU3RyaW5nIHVuZG9SZWRv
TGFiZWwoRWRpdEFjdGlvbiBlZGl0QWN0aW9uKQogewogICAgIHN3aXRjaCAoZWRpdEFjdGlvbikg
ewogICAgIGNhc2UgRWRpdEFjdGlvbjo6VW5zcGVjaWZpZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0VkaXRBY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRp
dEFjdGlvbi5oCmluZGV4IGI2YzQ1ZGFmODQ2YTY0OWUwMmUyOTQ1YzEyYzhiY2ZlYWQ2MGI3NmQu
LjE3ZThiZTk3NmM1YzljZDM4M2JmMWY1MDBmY2Q1NjkxZjM2ZTgxYjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdEFjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdEFjdGlvbi5oCkBAIC05NSw2ICs5NSw2IEBAIGVudW0gY2xhc3MgRWRpdEFjdGlv
biA6IHVpbnQ4X3QgewogICAgIEluc2VydEVkaXRhYmxlSW1hZ2UKIH07CiAKLVdFQkNPUkVfRVhQ
T1JUIFdURjo6U3RyaW5nIG5hbWVGb3JVbmRvUmVkbyhFZGl0QWN0aW9uKTsKK1dURjo6U3RyaW5n
IHVuZG9SZWRvTGFiZWwoRWRpdEFjdGlvbik7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVW5kb1N0ZXAuaCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvVW5kb1N0ZXAuaAppbmRleCAwMGMxNzAwMTA3YjJjYzc5Y2MxMzI2NzlkODk4
ZDcwNWJhNzg3ZTc4Li4wNTAwOWNiNTc1NTAxYjVlYzJkNWU4MjY0NWY4MWViODM2NmE4NDQyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1VuZG9TdGVwLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9VbmRvU3RlcC5oCkBAIC0zMiw2ICszMiw3IEBACiAKICNpbmNsdWRl
ICJFZGl0QWN0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00Miw2ICs0
Myw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgdW5hcHBseSgpID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgcmVhcHBseSgpID0gMDsKICAgICB2aXJ0dWFsIEVkaXRBY3Rpb24gZWRpdGluZ0Fj
dGlvbigpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFN0cmluZyBsYWJlbCgpIGNvbnN0ID0gMDsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9FbXB0eUNsaWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xp
ZW50cy5jcHAKaW5kZXggYTVlNWVmNzU4MzU0ZmVjNzQzNjA4YTAzM2ViNjljZDcwMTgwNWI0Ny4u
YWU5MjBmMDFhYmY4NzIxYzM2MmE1NTM2MTM2YWFiMzhkMDgxMTQ0YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKQEAgLTE4Niw4ICsxODYsOCBAQCBwcml2YXRlOgogICAg
IHZvaWQgcmVxdWVzdENhbmRpZGF0ZXNGb3JTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlv
biYpIGZpbmFsIHsgfQogICAgIHZvaWQgaGFuZGxlQWNjZXB0ZWRDYW5kaWRhdGVXaXRoU29mdFNw
YWNlcyhUZXh0Q2hlY2tpbmdSZXN1bHQpIGZpbmFsIHsgfQogCi0gICAgdm9pZCByZWdpc3RlclVu
ZG9TdGVwKFVuZG9TdGVwJikgZmluYWw7Ci0gICAgdm9pZCByZWdpc3RlclJlZG9TdGVwKFVuZG9T
dGVwJikgZmluYWw7CisgICAgdm9pZCByZWdpc3RlclVuZG9TdGVwKFJlZjxVbmRvU3RlcD4mJikg
ZmluYWw7CisgICAgdm9pZCByZWdpc3RlclJlZG9TdGVwKFJlZjxVbmRvU3RlcD4mJikgZmluYWw7
CiAgICAgdm9pZCBjbGVhclVuZG9SZWRvT3BlcmF0aW9ucygpIGZpbmFsIHsgfQogCiAgICAgYm9v
bCBjYW5Db3B5Q3V0KEZyYW1lKiwgYm9vbCBkZWZhdWx0VmFsdWUpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIGRlZmF1bHRWYWx1ZTsgfQpAQCAtNTA3LDExICs1MDcsMTEgQEAgdm9pZCBFbXB0eUVkaXRv
ckNsaWVudDo6RW1wdHlUZXh0Q2hlY2tlckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmco
VGV4dENoZWMKIHsKIH0KIAotdm9pZCBFbXB0eUVkaXRvckNsaWVudDo6cmVnaXN0ZXJVbmRvU3Rl
cChVbmRvU3RlcCYpCit2b2lkIEVtcHR5RWRpdG9yQ2xpZW50OjpyZWdpc3RlclVuZG9TdGVwKFJl
ZjxVbmRvU3RlcD4mJikKIHsKIH0KIAotdm9pZCBFbXB0eUVkaXRvckNsaWVudDo6cmVnaXN0ZXJS
ZWRvU3RlcChVbmRvU3RlcCYpCit2b2lkIEVtcHR5RWRpdG9yQ2xpZW50OjpyZWdpc3RlclJlZG9T
dGVwKFJlZjxVbmRvU3RlcD4mJikKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9FZGl0b3JDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmgK
aW5kZXggMzdiZjE4MjNhOThjMmQ5ZTUyZjNkMDJjYmY1YmNmZmFlZTM1OGM0NC4uYWJiZjU4Mjlj
MTdkY2FlOTdkMDRiMmNjZmI0ZTBkZDMzNDRkNDJhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9FZGl0b3JDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0VkaXRvckNs
aWVudC5oCkBAIC0xMDQsOCArMTA0LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBjYW5j
ZWxlZENvbXBvc2l0aW9uKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRVcGRhdGVDb21wb3Np
dGlvbigpID0gMDsKIAotICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlclVuZG9TdGVwKFVuZG9TdGVw
JikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlclJlZG9TdGVwKFVuZG9TdGVwJikgPSAw
OworICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlclVuZG9TdGVwKFJlZjxVbmRvU3RlcD4mJikgPSAw
OworICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlclJlZG9TdGVwKFJlZjxVbmRvU3RlcD4mJikgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBjbGVhclVuZG9SZWRvT3BlcmF0aW9ucygpID0gMDsKIAogICAg
IHZpcnR1YWwgYm9vbCBjYW5Db3B5Q3V0KEZyYW1lKiwgYm9vbCBkZWZhdWx0VmFsdWUpIGNvbnN0
ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJ
bXBsLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KaW5k
ZXggMDY0ZTBkZmQ5MGZmNmJiOWRkYzNhYjQ0MmVjOGNkYTY5YWEyZDk2ZC4uZDhmY2M4YzdiOTcw
N2M0MWY2ZTcxYTU5ZWVmMWI0OTg4YzBkZjBlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvV2ViVmlld0ltcGwubW0KQEAgLTI2OTIsNyArMjY5Miw3IEBAIHZvaWQgV2ViVmll
d0ltcGw6OmV4ZWN1dGVFZGl0Q29tbWFuZEZvclNlbGVjdG9yKFNFTCBzZWxlY3RvciwgY29uc3Qg
U3RyaW5nJiBhcmd1CiAKIHZvaWQgV2ViVmlld0ltcGw6OnJlZ2lzdGVyRWRpdENvbW1hbmQoUmVm
PFdlYkVkaXRDb21tYW5kUHJveHk+JiYgY29tbWFuZCwgVW5kb09yUmVkbyB1bmRvT3JSZWRvKQog
ewotICAgIGF1dG8gYWN0aW9uTmFtZSA9IFdlYkNvcmU6Om5hbWVGb3JVbmRvUmVkbyhjb21tYW5k
LT5lZGl0QWN0aW9uKCkpOworICAgIGF1dG8gYWN0aW9uTmFtZSA9IGNvbW1hbmQtPmxhYmVsKCk7
CiAgICAgYXV0byBjb21tYW5kT2JqQyA9IGFkb3B0TlMoW1tXS0VkaXRDb21tYW5kIGFsbG9jXSBp
bml0V2l0aFdlYkVkaXRDb21tYW5kUHJveHk6V1RGTW92ZShjb21tYW5kKV0pOwogCiAgICAgTlNV
bmRvTWFuYWdlciAqdW5kb01hbmFnZXIgPSBbbV92aWV3IHVuZG9NYW5hZ2VyXTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkVkaXRDb21tYW5kUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRWRpdENvbW1hbmRQcm94eS5jcHAKaW5kZXggOWY4M2Uz
YzE5ZDg2YzlmMjM1M2E3ZTk1NzYxMGExZWE1ZDg1ODRiMi4uMGU2NGJkNzA4ODZjYmE5Yzk0YmM5
OTlkMmFiNWI2NmViZGY4NDlhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViRWRpdENvbW1hbmRQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
RWRpdENvbW1hbmRQcm94eS5jcHAKQEAgLTM2LDEwICszNiwxMCBAQAogbmFtZXNwYWNlIFdlYktp
dCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotV2ViRWRpdENvbW1hbmRQcm94eTo6V2Vi
RWRpdENvbW1hbmRQcm94eShXZWJVbmRvU3RlcElEIGNvbW1hbmRJRCwgV2ViQ29yZTo6RWRpdEFj
dGlvbiBlZGl0QWN0aW9uLCBXZWJQYWdlUHJveHkqIHBhZ2UpCitXZWJFZGl0Q29tbWFuZFByb3h5
OjpXZWJFZGl0Q29tbWFuZFByb3h5KFdlYlVuZG9TdGVwSUQgY29tbWFuZElELCBjb25zdCBTdHJp
bmcmIGxhYmVsLCBXZWJQYWdlUHJveHkmIHBhZ2UpCiAgICAgOiBtX2NvbW1hbmRJRChjb21tYW5k
SUQpCi0gICAgLCBtX2VkaXRBY3Rpb24oZWRpdEFjdGlvbikKLSAgICAsIG1fcGFnZShwYWdlKQor
ICAgICwgbV9sYWJlbChsYWJlbCkKKyAgICAsIG1fcGFnZShtYWtlV2Vha1B0cihwYWdlKSkKIHsK
ICAgICBtX3BhZ2UtPmFkZEVkaXRDb21tYW5kKCp0aGlzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkVkaXRDb21tYW5kUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYkVkaXRDb21tYW5kUHJveHkuaAppbmRleCA3MTZjYjU4ZjQwM2RkODIzMTk2
Zjg2NDJmNzVmNGRmM2Q3MWFhOGNhLi44OTE5MTlhMTU2ZjBiMWFjN2EzYjI4YTFiMzUwNzUxOTBh
NTNlOGM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJFZGl0Q29tbWFu
ZFByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRWRpdENvbW1hbmRQcm94
eS5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRl
IDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3
dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtMzgsMjYgKzM5LDI2IEBA
IGNsYXNzIFdlYlBhZ2VQcm94eTsKIAogY2xhc3MgV2ViRWRpdENvbW1hbmRQcm94eSA6IHB1Ymxp
YyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6OkVkaXRDb21tYW5kUHJveHk+IHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFdlYkVkaXRDb21tYW5kUHJveHk+IGNyZWF0ZShXZWJV
bmRvU3RlcElEIGNvbW1hbmRJRCwgV2ViQ29yZTo6RWRpdEFjdGlvbiBlZGl0QWN0aW9uLCBXZWJQ
YWdlUHJveHkqIHBhZ2UpCisgICAgc3RhdGljIFJlZjxXZWJFZGl0Q29tbWFuZFByb3h5PiBjcmVh
dGUoV2ViVW5kb1N0ZXBJRCBjb21tYW5kSUQsIGNvbnN0IFN0cmluZyYgbGFiZWwsIFdlYlBhZ2VQ
cm94eSYgcGFnZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkVkaXRD
b21tYW5kUHJveHkoY29tbWFuZElELCBlZGl0QWN0aW9uLCBwYWdlKSk7CisgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFdlYkVkaXRDb21tYW5kUHJveHkoY29tbWFuZElELCBsYWJlbCwgcGFn
ZSkpOwogICAgIH0KICAgICB+V2ViRWRpdENvbW1hbmRQcm94eSgpOwogCiAgICAgV2ViVW5kb1N0
ZXBJRCBjb21tYW5kSUQoKSBjb25zdCB7IHJldHVybiBtX2NvbW1hbmRJRDsgfQotICAgIFdlYkNv
cmU6OkVkaXRBY3Rpb24gZWRpdEFjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZWRpdEFjdGlvbjsg
fQorICAgIFN0cmluZyBsYWJlbCgpIGNvbnN0IHsgcmV0dXJuIG1fbGFiZWw7IH0KIAotICAgIHZv
aWQgaW52YWxpZGF0ZSgpIHsgbV9wYWdlID0gMDsgfQorICAgIHZvaWQgaW52YWxpZGF0ZSgpIHsg
bV9wYWdlLmNsZWFyKCk7IH0KIAogICAgIHZvaWQgdW5hcHBseSgpOwogICAgIHZvaWQgcmVhcHBs
eSgpOwogCiBwcml2YXRlOgotICAgIFdlYkVkaXRDb21tYW5kUHJveHkoV2ViVW5kb1N0ZXBJRCBj
b21tYW5kSUQsIFdlYkNvcmU6OkVkaXRBY3Rpb24sIFdlYlBhZ2VQcm94eSopOworICAgIFdlYkVk
aXRDb21tYW5kUHJveHkoV2ViVW5kb1N0ZXBJRCBjb21tYW5kSUQsIGNvbnN0IFN0cmluZyYgbGFi
ZWwsIFdlYlBhZ2VQcm94eSYpOwogCiAgICAgV2ViVW5kb1N0ZXBJRCBtX2NvbW1hbmRJRDsKLSAg
ICBXZWJDb3JlOjpFZGl0QWN0aW9uIG1fZWRpdEFjdGlvbjsKLSAgICBXZWJQYWdlUHJveHkqIG1f
cGFnZTsKKyAgICBTdHJpbmcgbV9sYWJlbDsKKyAgICBXZWFrUHRyPFdlYlBhZ2VQcm94eT4gbV9w
YWdlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcAppbmRleCBlNzRmMzhkYzU5YjQwMGQ0MDI2ZTJjYWQzYzY1OWUwNTI1
YjQzYzlhLi5lNDQ0OWY4NjZjZGUzYzE3MjgxNTY2Yzk0ZWY1YzJhOGUzNDkxODg2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTU0MzksOSArNTQzOSw5IEBA
IHZvaWQgV2ViUGFnZVByb3h5Ojpjb21wb3NpdGlvbldhc0NhbmNlbGVkKCkKIAogLy8gVW5kbyBt
YW5hZ2VtZW50CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpyZWdpc3RlckVkaXRDb21tYW5kRm9yVW5k
byhXZWJVbmRvU3RlcElEIGNvbW1hbmRJRCwgdWludDMyX3QgZWRpdEFjdGlvbikKK3ZvaWQgV2Vi
UGFnZVByb3h5OjpyZWdpc3RlckVkaXRDb21tYW5kRm9yVW5kbyhXZWJVbmRvU3RlcElEIGNvbW1h
bmRJRCwgY29uc3QgU3RyaW5nJiBsYWJlbCkKIHsKLSAgICByZWdpc3RlckVkaXRDb21tYW5kKFdl
YkVkaXRDb21tYW5kUHJveHk6OmNyZWF0ZShjb21tYW5kSUQsIHN0YXRpY19jYXN0PEVkaXRBY3Rp
b24+KGVkaXRBY3Rpb24pLCB0aGlzKSwgVW5kb09yUmVkbzo6VW5kbyk7CisgICAgcmVnaXN0ZXJF
ZGl0Q29tbWFuZChXZWJFZGl0Q29tbWFuZFByb3h5OjpjcmVhdGUoY29tbWFuZElELCBsYWJlbCwg
KnRoaXMpLCBVbmRvT3JSZWRvOjpVbmRvKTsKIH0KICAgICAKIHZvaWQgV2ViUGFnZVByb3h5Ojpy
ZWdpc3Rlckluc2VydGlvblVuZG9Hcm91cGluZygpCkBAIC02NjUyLDEwICs2NjUyLDcgQEAgdm9p
ZCBXZWJQYWdlUHJveHk6OnJlc2V0U3RhdGUoUmVzZXRTdGF0ZVJlYXNvbiByZXNldFN0YXRlUmVh
c29uKQogICAgIG1fY2FsbGJhY2tzLmludmFsaWRhdGUoZXJyb3IpOwogICAgIG1fbG9hZERlcGVu
ZGVudFN0cmluZ0NhbGxiYWNrSURzLmNsZWFyKCk7CiAKLSAgICBhdXRvIGVkaXRDb21tYW5kVmVj
dG9yID0gY29weVRvVmVjdG9yKG1fZWRpdENvbW1hbmRTZXQpOwotICAgIG1fZWRpdENvbW1hbmRT
ZXQuY2xlYXIoKTsKLQotICAgIGZvciAoYXV0byYgZWRpdENvbW1hbmQgOiBlZGl0Q29tbWFuZFZl
Y3RvcikKKyAgICBmb3IgKGF1dG8mIGVkaXRDb21tYW5kIDogc3RkOjpleGNoYW5nZShtX2VkaXRD
b21tYW5kU2V0LCB7IH0pKQogICAgICAgICBlZGl0Q29tbWFuZC0+aW52YWxpZGF0ZSgpOwogCiAg
ICAgbV9hY3RpdmVQb3B1cE1lbnUgPSBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaAppbmRleCBhYzU2MDBmNjJhY2M2YTM2ZWQzMGUwMmE5ZmQ3MjQzMDFiZTBiZjRj
Li5hZDdkN2RjOTI4MmUzNTdmMzBlZjI0ZTI4OWExMTNkYTYzMjAxZDkyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTY0NCw3ICsxNjQ0LDcgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIGJhY2tGb3J3YXJkQ2xlYXIoKTsKIAogICAgIC8vIFVuZG8gbWFuYWdlbWVudAot
ICAgIHZvaWQgcmVnaXN0ZXJFZGl0Q29tbWFuZEZvclVuZG8oV2ViVW5kb1N0ZXBJRCBjb21tYW5k
SUQsIHVpbnQzMl90IGVkaXRBY3Rpb24pOworICAgIHZvaWQgcmVnaXN0ZXJFZGl0Q29tbWFuZEZv
clVuZG8oV2ViVW5kb1N0ZXBJRCBjb21tYW5kSUQsIGNvbnN0IFN0cmluZyYgbGFiZWwpOwogICAg
IHZvaWQgcmVnaXN0ZXJJbnNlcnRpb25VbmRvR3JvdXBpbmcoKTsKICAgICB2b2lkIGNsZWFyQWxs
RWRpdENvbW1hbmRzKCk7CiAgICAgdm9pZCBjYW5VbmRvUmVkbyhVbmRvT3JSZWRvLCBib29sJiBy
ZXN1bHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3Nh
Z2VzLmluCmluZGV4IDM4OWEzMmJkYTE0Y2QwMWRiNGM0Yjk5Y2MyNGM2OTRkMWMxYTVkOWYuLjZj
MzVjYjQxMTIzNmExMzhhNWM2MDcxNzA3ZjNjNDAxNjUwNTBiNWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTIzMyw3ICsyMzMs
NyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIFdpbGxHb1RvQmFja0ZvcndhcmRM
aXN0SXRlbShzdHJ1Y3QgV2ViQ29yZTo6QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciBpdGVtSUQs
IGJvb2wgaW5QYWdlQ2FjaGUpCiAKICAgICAjIFVuZG8vUmVkbyBtZXNzYWdlcwotICAgIFJlZ2lz
dGVyRWRpdENvbW1hbmRGb3JVbmRvKHVpbnQ2NF90IGNvbW1hbmRJRCwgdWludDMyX3QgZWRpdEFj
dGlvbikKKyAgICBSZWdpc3RlckVkaXRDb21tYW5kRm9yVW5kbyh1aW50NjRfdCBjb21tYW5kSUQs
IFN0cmluZyBsYWJlbCkKICAgICBDbGVhckFsbEVkaXRDb21tYW5kcygpCiAgICAgUmVnaXN0ZXJJ
bnNlcnRpb25VbmRvR3JvdXBpbmcoKQogICAgIENhblVuZG9SZWRvKGVudW06Ym9vbCBXZWJLaXQ6
OlVuZG9PclJlZG8gdW5kb09yUmVkbykgLT4gKGJvb2wgcmVzdWx0KSBMZWdhY3lTeW5jCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KaW5kZXgg
NzFlYTZiOGZmZTdiYmFkOTI5ZDY4MGE0ZTg1M2YwMWQwYzhjM2RlMS4uZjIzMDRhYzcyOTNmMGQ4
MjVkNTU4MzQyOWFkZTFjMDVmYTM3MDNlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQpAQCAtMjY3LDcgKzI2Nyw3IEBAIHZvaWQgUGFn
ZUNsaWVudEltcGw6OmRpZENoYW5nZVZpZXdwb3J0UHJvcGVydGllcyhjb25zdCBWaWV3cG9ydEF0
dHJpYnV0ZXMmKQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpyZWdpc3RlckVkaXRDb21tYW5kKFJl
ZjxXZWJFZGl0Q29tbWFuZFByb3h5PiYmIGNvbW1hbmQsIFVuZG9PclJlZG8gdW5kb09yUmVkbykK
IHsKLSAgICBhdXRvIGFjdGlvbk5hbWUgPSBXZWJDb3JlOjpuYW1lRm9yVW5kb1JlZG8oY29tbWFu
ZC0+ZWRpdEFjdGlvbigpKTsKKyAgICBhdXRvIGFjdGlvbk5hbWUgPSBjb21tYW5kLT5sYWJlbCgp
OwogICAgIGF1dG8gY29tbWFuZE9iakMgPSBhZG9wdE5TKFtbV0tFZGl0Q29tbWFuZCBhbGxvY10g
aW5pdFdpdGhXZWJFZGl0Q29tbWFuZFByb3h5OldURk1vdmUoY29tbWFuZCldKTsKICAgICAKICAg
ICBOU1VuZG9NYW5hZ2VyICp1bmRvTWFuYWdlciA9IFttX2NvbnRlbnRWaWV3IHVuZG9NYW5hZ2Vy
XTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJFZGl0b3JDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkVkaXRvckNsaWVudC5jcHAKaW5kZXggMDA5NGUzNTZkNTE0Yjg3N2RiMWYzMGI2YTY4
ZWQyZDczYzlmMTM1Ny4uZWYzYmNmM2ZmNWJjNGM3MTgxNmZlYzFjZTA3YTk0ZTExMjgwMTgzYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVk
aXRvckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkVkaXRvckNsaWVudC5jcHAKQEAgLTMwMiwyMiArMzAyLDIyIEBAIFN0cmluZyBXZWJF
ZGl0b3JDbGllbnQ6OnJlcGxhY2VtZW50VVJMRm9yUmVzb3VyY2UoUmVmPFdlYkNvcmU6OlNoYXJl
ZEJ1ZmZlcj4mJiByCiAgICAgcmV0dXJuIG1fcGFnZS0+aW5qZWN0ZWRCdW5kbGVFZGl0b3JDbGll
bnQoKS5yZXBsYWNlbWVudFVSTEZvclJlc291cmNlKCptX3BhZ2UsIFdURk1vdmUocmVzb3VyY2VE
YXRhKSwgbWltZVR5cGUpOwogfQogCi12b2lkIFdlYkVkaXRvckNsaWVudDo6cmVnaXN0ZXJVbmRv
U3RlcChVbmRvU3RlcCYgc3RlcCkKK3ZvaWQgV2ViRWRpdG9yQ2xpZW50OjpyZWdpc3RlclVuZG9T
dGVwKFJlZjxVbmRvU3RlcD4mJiBzdGVwKQogewogICAgIC8vIEZJWE1FOiBBZGQgYXNzZXJ0aW9u
IHRoYXQgdGhlIGNvbW1hbmQgYmVpbmcgcmVhcHBsaWVkIGlzIHRoZSBzYW1lIGNvbW1hbmQgdGhh
dCBpcwogICAgIC8vIGJlaW5nIHBhc3NlZCB0byB1cy4KICAgICBpZiAobV9wYWdlLT5pc0luUmVk
bygpKQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvIHdlYlN0ZXAgPSBXZWJVbmRvU3RlcDo6
Y3JlYXRlKHN0ZXApOworICAgIGF1dG8gbGFiZWwgPSBzdGVwLT5sYWJlbCgpOworICAgIGF1dG8g
d2ViU3RlcCA9IFdlYlVuZG9TdGVwOjpjcmVhdGUoV1RGTW92ZShzdGVwKSk7CiAgICAgYXV0byBz
dGVwSUQgPSB3ZWJTdGVwLT5zdGVwSUQoKTsKLSAgICBhdXRvIGVkaXRBY3Rpb24gPSBzdGF0aWNf
Y2FzdDx1aW50MzJfdD4od2ViU3RlcC0+c3RlcCgpLmVkaXRpbmdBY3Rpb24oKSk7CiAKICAgICBt
X3BhZ2UtPmFkZFdlYlVuZG9TdGVwKHN0ZXBJRCwgV1RGTW92ZSh3ZWJTdGVwKSk7Ci0gICAgbV9w
YWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJlZ2lzdGVyRWRpdENvbW1hbmRGb3JV
bmRvKHN0ZXBJRCwgZWRpdEFjdGlvbiksIG1fcGFnZS0+cGFnZUlEKCksIElQQzo6U2VuZE9wdGlv
bjo6RGlzcGF0Y2hNZXNzYWdlRXZlbldoZW5XYWl0aW5nRm9yU3luY1JlcGx5KTsKKyAgICBtX3Bh
Z2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UmVnaXN0ZXJFZGl0Q29tbWFuZEZvclVu
ZG8oc3RlcElELCBXVEZNb3ZlKGxhYmVsKSksIG1fcGFnZS0+cGFnZUlEKCksIElQQzo6U2VuZE9w
dGlvbjo6RGlzcGF0Y2hNZXNzYWdlRXZlbldoZW5XYWl0aW5nRm9yU3luY1JlcGx5KTsKIH0KIAot
dm9pZCBXZWJFZGl0b3JDbGllbnQ6OnJlZ2lzdGVyUmVkb1N0ZXAoVW5kb1N0ZXAmKQordm9pZCBX
ZWJFZGl0b3JDbGllbnQ6OnJlZ2lzdGVyUmVkb1N0ZXAoUmVmPFVuZG9TdGVwPiYmKQogewogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RWRpdG9yQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRWRpdG9yQ2xpZW50LmgKaW5kZXggNDcyMGI3MTE3NTQxMmE1OWEyMjliYzQ3MTA2ZGFiMmRh
M2M4NzU2ZS4uZjQxYjA4NjMyMWMxZjQyODI1YzVhZDlhZTJkOTZhOWUyZDcwNWI2ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJF
ZGl0b3JDbGllbnQuaApAQCAtODUsOCArODUsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgZ2V0Q2xp
ZW50UGFzdGVib2FyZERhdGFGb3JSYW5nZShXZWJDb3JlOjpSYW5nZSosIFZlY3RvcjxTdHJpbmc+
JiBwYXN0ZWJvYXJkVHlwZXMsIFZlY3RvcjxSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPj4m
IHBhc3RlYm9hcmREYXRhKSBmaW5hbDsKICAgICBTdHJpbmcgcmVwbGFjZW1lbnRVUkxGb3JSZXNv
dXJjZShSZWY8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiYmIHJlc291cmNlRGF0YSwgY29uc3QgU3Ry
aW5nJiBtaW1lVHlwZSkgZmluYWw7CiAgICAgCi0gICAgdm9pZCByZWdpc3RlclVuZG9TdGVwKFdl
YkNvcmU6OlVuZG9TdGVwJikgZmluYWw7Ci0gICAgdm9pZCByZWdpc3RlclJlZG9TdGVwKFdlYkNv
cmU6OlVuZG9TdGVwJikgZmluYWw7CisgICAgdm9pZCByZWdpc3RlclVuZG9TdGVwKFJlZjxXZWJD
b3JlOjpVbmRvU3RlcD4mJikgZmluYWw7CisgICAgdm9pZCByZWdpc3RlclJlZG9TdGVwKFJlZjxX
ZWJDb3JlOjpVbmRvU3RlcD4mJikgZmluYWw7CiAgICAgdm9pZCBjbGVhclVuZG9SZWRvT3BlcmF0
aW9ucygpIGZpbmFsOwogCiAgICAgYm9vbCBjYW5Db3B5Q3V0KFdlYkNvcmU6OkZyYW1lKiwgYm9v
bCBkZWZhdWx0VmFsdWUpIGNvbnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAppbmRleCBmMGY5Njhi
N2UyYjY2Yzg5MWRjMTRiNmMxZmFhZjBiOGJiZTFkMTllLi5hZjM1ZGIyNWFjYmJkNGFmMzI4Mjdm
YzJkYTljZTEyODdlMDViODAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaApAQCAtMTE0LDggKzExNCw4IEBA
IHByaXZhdGU6CiAgICAgdm9pZCBjYW5jZWxlZENvbXBvc2l0aW9uKCkgZmluYWw7CiAgICAgdm9p
ZCBkaWRVcGRhdGVDb21wb3NpdGlvbigpIGZpbmFsIHsgfQogCi0gICAgdm9pZCByZWdpc3RlclVu
ZG9TdGVwKFdlYkNvcmU6OlVuZG9TdGVwJikgZmluYWw7Ci0gICAgdm9pZCByZWdpc3RlclJlZG9T
dGVwKFdlYkNvcmU6OlVuZG9TdGVwJikgZmluYWw7CisgICAgdm9pZCByZWdpc3RlclVuZG9TdGVw
KFJlZjxXZWJDb3JlOjpVbmRvU3RlcD4mJikgZmluYWw7CisgICAgdm9pZCByZWdpc3RlclJlZG9T
dGVwKFJlZjxXZWJDb3JlOjpVbmRvU3RlcD4mJikgZmluYWw7CiAgICAgdm9pZCBjbGVhclVuZG9S
ZWRvT3BlcmF0aW9ucygpIGZpbmFsOwogCiAgICAgYm9vbCBjYW5Db3B5Q3V0KFdlYkNvcmU6OkZy
YW1lKiwgYm9vbCBkZWZhdWx0VmFsdWUpIGNvbnN0IGZpbmFsOwpAQCAtMTcyLDcgKzE3Miw3IEBA
IHByaXZhdGU6CiAgICAgdm9pZCBoYW5kbGVBY2NlcHRlZENhbmRpZGF0ZVdpdGhTb2Z0U3BhY2Vz
KFdlYkNvcmU6OlRleHRDaGVja2luZ1Jlc3VsdCkgZmluYWw7CiAjZW5kaWYKIAotICAgIHZvaWQg
cmVnaXN0ZXJVbmRvT3JSZWRvU3RlcChXZWJDb3JlOjpVbmRvU3RlcCYsIGJvb2wgaXNSZWRvKTsK
KyAgICB2b2lkIHJlZ2lzdGVyVW5kb09yUmVkb1N0ZXAoUmVmPFdlYkNvcmU6OlVuZG9TdGVwPiYm
LCBib29sIGlzUmVkbyk7CiAKICAgICBXZWJWaWV3ICptX3dlYlZpZXc7CiAgICAgUmV0YWluUHRy
PFdlYkVkaXRvclVuZG9UYXJnZXQ+IG1fdW5kb1RhcmdldDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbSBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQppbmRl
eCBjY2MzM2Y5NDBmYmM5ZTYzMWZkZDk4ZDJlYTE2Yjk3ZTE1NmJkMGIzLi5lODYxZTRiYTIxM2M3
OWYyYmJjMTlmMWNhMGY1ZDM1ZDQ1NWEwMmZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCkBAIC0xMjUs
NyArMTI1LDcgQEAgQGludGVyZmFjZSBXZWJVbmRvU3RlcCA6IE5TT2JqZWN0CiAgICAgUmVmUHRy
PFVuZG9TdGVwPiBtX3N0ZXA7ICAgCiB9CiAKLSsgKFdlYlVuZG9TdGVwICopc3RlcFdpdGhVbmRv
U3RlcDooVW5kb1N0ZXAmKXN0ZXA7CisrIChXZWJVbmRvU3RlcCAqKXN0ZXBXaXRoVW5kb1N0ZXA6
KFJlZjxVbmRvU3RlcD4mJilzdGVwOwogLSAoVW5kb1N0ZXAmKXN0ZXA7CiAKIEBlbmQKQEAgLTE0
MSwxMiArMTQxLDEyIEBAICsgKHZvaWQpaW5pdGlhbGl6ZQogI2VuZGlmCiB9CiAKLS0gKGlkKWlu
aXRXaXRoVW5kb1N0ZXA6KFVuZG9TdGVwJilzdGVwCistIChpZClpbml0V2l0aFVuZG9TdGVwOihS
ZWY8VW5kb1N0ZXA+JiYpc3RlcAogewogICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07CiAgICAgaWYg
KCFzZWxmKQogICAgICAgICByZXR1cm4gbmlsOwotICAgIG1fc3RlcCA9ICZzdGVwOworICAgIG1f
c3RlcCA9IFdURk1vdmUoc3RlcCk7CiAgICAgcmV0dXJuIHNlbGY7CiB9CiAKQEAgLTE1OCw5ICsx
NTgsOSBAQCAtICh2b2lkKWRlYWxsb2MKICAgICBbc3VwZXIgZGVhbGxvY107CiB9CiAKLSsgKFdl
YlVuZG9TdGVwICopc3RlcFdpdGhVbmRvU3RlcDooVW5kb1N0ZXAmKXN0ZXAKKysgKFdlYlVuZG9T
dGVwICopc3RlcFdpdGhVbmRvU3RlcDooUmVmPFVuZG9TdGVwPiYmKXN0ZXAKIHsKLSAgICByZXR1
cm4gW1tbV2ViVW5kb1N0ZXAgYWxsb2NdIGluaXRXaXRoVW5kb1N0ZXA6c3RlcF0gYXV0b3JlbGVh
c2VdOworICAgIHJldHVybiBbW1tXZWJVbmRvU3RlcCBhbGxvY10gaW5pdFdpdGhVbmRvU3RlcDpX
VEZNb3ZlKHN0ZXApXSBhdXRvcmVsZWFzZV07CiB9CiAKIC0gKFVuZG9TdGVwJilzdGVwCkBAIC01
ODksNyArNTg5LDcgQEAgYm9vbCBXZWJFZGl0b3JDbGllbnQ6OnNob3VsZEluc2VydE5vZGUoTm9k
ZSAqbm9kZSwgUmFuZ2UqIHJlcGxhY2luZ1JhbmdlLCBFZGl0b3IKICAgICByZXR1cm4gW1ttX3dl
YlZpZXcgX2VkaXRpbmdEZWxlZ2F0ZUZvcndhcmRlcl0gd2ViVmlldzptX3dlYlZpZXcgc2hvdWxk
SW5zZXJ0Tm9kZTpraXQobm9kZSkgcmVwbGFjaW5nRE9NUmFuZ2U6a2l0KHJlcGxhY2luZ1Jhbmdl
KSBnaXZlbkFjdGlvbjooV2ViVmlld0luc2VydEFjdGlvbilnaXZlbkFjdGlvbl07CiB9CiAKLXZv
aWQgV2ViRWRpdG9yQ2xpZW50OjpyZWdpc3RlclVuZG9PclJlZG9TdGVwKFVuZG9TdGVwJiBzdGVw
LCBib29sIGlzUmVkbykKK3ZvaWQgV2ViRWRpdG9yQ2xpZW50OjpyZWdpc3RlclVuZG9PclJlZG9T
dGVwKFJlZjxVbmRvU3RlcD4mJiBzdGVwLCBib29sIGlzUmVkbykKIHsKICAgICBOU1VuZG9NYW5h
Z2VyICp1bmRvTWFuYWdlciA9IFttX3dlYlZpZXcgdW5kb01hbmFnZXJdOwogCkBAIC02MDEsOSAr
NjAxLDggQEAgdm9pZCBXZWJFZGl0b3JDbGllbnQ6OnJlZ2lzdGVyVW5kb09yUmVkb1N0ZXAoVW5k
b1N0ZXAmIHN0ZXAsIGJvb2wgaXNSZWRvKQogICAgICAgICByZXR1cm47CiAjZW5kaWYKIAotICAg
IE5TU3RyaW5nICphY3Rpb25OYW1lID0gV2ViQ29yZTo6bmFtZUZvclVuZG9SZWRvKHN0ZXAuZWRp
dGluZ0FjdGlvbigpKTsKLSAgICBXZWJVbmRvU3RlcCAqd2ViRW50cnkgPSBbV2ViVW5kb1N0ZXAg
c3RlcFdpdGhVbmRvU3RlcDpzdGVwXTsKLSAgICBbdW5kb01hbmFnZXIgcmVnaXN0ZXJVbmRvV2l0
aFRhcmdldDptX3VuZG9UYXJnZXQuZ2V0KCkgc2VsZWN0b3I6KGlzUmVkbyA/IEBzZWxlY3Rvcihy
ZWRvRWRpdGluZzopIDogQHNlbGVjdG9yKHVuZG9FZGl0aW5nOikpIG9iamVjdDp3ZWJFbnRyeV07
CisgICAgTlNTdHJpbmcgKmFjdGlvbk5hbWUgPSBzdGVwLT5sYWJlbCgpOworICAgIFt1bmRvTWFu
YWdlciByZWdpc3RlclVuZG9XaXRoVGFyZ2V0Om1fdW5kb1RhcmdldC5nZXQoKSBzZWxlY3Rvcjoo
aXNSZWRvID8gQHNlbGVjdG9yKHJlZG9FZGl0aW5nOikgOiBAc2VsZWN0b3IodW5kb0VkaXRpbmc6
KSkgb2JqZWN0OltXZWJVbmRvU3RlcCBzdGVwV2l0aFVuZG9TdGVwOldURk1vdmUoc3RlcCldXTsK
ICAgICBpZiAoYWN0aW9uTmFtZSkKICAgICAgICAgW3VuZG9NYW5hZ2VyIHNldEFjdGlvbk5hbWU6
YWN0aW9uTmFtZV07CiAgICAgbV9oYXZlVW5kb1JlZG9PcGVyYXRpb25zID0gWUVTOwpAQCAtNjI5
LDE0ICs2MjgsMTQgQEAgdm9pZCBXZWJFZGl0b3JDbGllbnQ6OnVwZGF0ZUVkaXRvclN0YXRlQWZ0
ZXJMYXlvdXRJZkVkaXRhYmlsaXR5Q2hhbmdlZCgpCiAgICAgICAgIFttX3dlYlZpZXcgdXBkYXRl
VG91Y2hCYXJdOwogfQogCi12b2lkIFdlYkVkaXRvckNsaWVudDo6cmVnaXN0ZXJVbmRvU3RlcChV
bmRvU3RlcCYgY21kKQordm9pZCBXZWJFZGl0b3JDbGllbnQ6OnJlZ2lzdGVyVW5kb1N0ZXAoUmVm
PFVuZG9TdGVwPiYmIGNvbW1hbmQpCiB7Ci0gICAgcmVnaXN0ZXJVbmRvT3JSZWRvU3RlcChjbWQs
IGZhbHNlKTsKKyAgICByZWdpc3RlclVuZG9PclJlZG9TdGVwKFdURk1vdmUoY29tbWFuZCksIGZh
bHNlKTsKIH0KIAotdm9pZCBXZWJFZGl0b3JDbGllbnQ6OnJlZ2lzdGVyUmVkb1N0ZXAoVW5kb1N0
ZXAmIGNtZCkKK3ZvaWQgV2ViRWRpdG9yQ2xpZW50OjpyZWdpc3RlclJlZG9TdGVwKFJlZjxVbmRv
U3RlcD4mJiBjb21tYW5kKQogewotICAgIHJlZ2lzdGVyVW5kb09yUmVkb1N0ZXAoY21kLCB0cnVl
KTsKKyAgICByZWdpc3RlclVuZG9PclJlZG9TdGVwKFdURk1vdmUoY29tbWFuZCksIHRydWUpOwog
fQogCiB2b2lkIFdlYkVkaXRvckNsaWVudDo6Y2xlYXJVbmRvUmVkb09wZXJhdGlvbnMoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9y
Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVk
aXRvckNsaWVudC5jcHAKaW5kZXggMmU3ZWE1ODE5NDMyYWQ1NTdjYWY3ODhmZDEzOTY3NGIxYjY3
NDE3Zi4uYWFhNzBlOWZhZDY0ZmY5NGJmMzFhY2QzYTg0ZTNmZmM2NzhiMDU1NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0
b3JDbGllbnQuY3BwCkBAIC02MzAsMTIgKzYzMCwxMiBAQCBzdGF0aWMgU3RyaW5nIHVuZG9OYW1l
Rm9yRWRpdEFjdGlvbihFZGl0QWN0aW9uIGVkaXRBY3Rpb24pCiAgICAgcmV0dXJuIFN0cmluZygp
OwogfQogCi12b2lkIFdlYkVkaXRvckNsaWVudDo6cmVnaXN0ZXJVbmRvU3RlcChVbmRvU3RlcCYg
c3RlcCkKK3ZvaWQgV2ViRWRpdG9yQ2xpZW50OjpyZWdpc3RlclVuZG9TdGVwKFJlZjxXZWJDb3Jl
OjpVbmRvU3RlcD4mJiBzdGVwKQogewogICAgIElXZWJVSURlbGVnYXRlKiB1aURlbGVnYXRlID0g
MDsKICAgICBpZiAoU1VDQ0VFREVEKG1fd2ViVmlldy0+dWlEZWxlZ2F0ZSgmdWlEZWxlZ2F0ZSkp
KSB7Ci0gICAgICAgIFN0cmluZyBhY3Rpb25OYW1lID0gdW5kb05hbWVGb3JFZGl0QWN0aW9uKHN0
ZXAuZWRpdGluZ0FjdGlvbigpKTsKLSAgICAgICAgV2ViRWRpdG9yVW5kb0NvbW1hbmQqIHVuZG9D
b21tYW5kID0gbmV3IFdlYkVkaXRvclVuZG9Db21tYW5kKHN0ZXAsIHRydWUpOworICAgICAgICBT
dHJpbmcgYWN0aW9uTmFtZSA9IHVuZG9OYW1lRm9yRWRpdEFjdGlvbihzdGVwLT5lZGl0aW5nQWN0
aW9uKCkpOworICAgICAgICBXZWJFZGl0b3JVbmRvQ29tbWFuZCogdW5kb0NvbW1hbmQgPSBuZXcg
V2ViRWRpdG9yVW5kb0NvbW1hbmQoc3RlcC5nZXQoKSwgdHJ1ZSk7CiAgICAgICAgIGlmICghdW5k
b0NvbW1hbmQpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIHVpRGVsZWdhdGUtPnJlZ2lz
dGVyVW5kb1dpdGhUYXJnZXQobV91bmRvVGFyZ2V0LCAwLCB1bmRvQ29tbWFuZCk7CkBAIC02NDYs
MTEgKzY0NiwxMSBAQCB2b2lkIFdlYkVkaXRvckNsaWVudDo6cmVnaXN0ZXJVbmRvU3RlcChVbmRv
U3RlcCYgc3RlcCkKICAgICB9CiB9CiAKLXZvaWQgV2ViRWRpdG9yQ2xpZW50OjpyZWdpc3RlclJl
ZG9TdGVwKFVuZG9TdGVwJiBzdGVwKQordm9pZCBXZWJFZGl0b3JDbGllbnQ6OnJlZ2lzdGVyUmVk
b1N0ZXAoUmVmPFdlYkNvcmU6OlVuZG9TdGVwPiYmIHN0ZXApCiB7CiAgICAgSVdlYlVJRGVsZWdh
dGUqIHVpRGVsZWdhdGUgPSAwOwogICAgIGlmIChTVUNDRUVERUQobV93ZWJWaWV3LT51aURlbGVn
YXRlKCZ1aURlbGVnYXRlKSkpIHsKLSAgICAgICAgV2ViRWRpdG9yVW5kb0NvbW1hbmQqIHVuZG9D
b21tYW5kID0gbmV3IFdlYkVkaXRvclVuZG9Db21tYW5kKHN0ZXAsIGZhbHNlKTsKKyAgICAgICAg
V2ViRWRpdG9yVW5kb0NvbW1hbmQqIHVuZG9Db21tYW5kID0gbmV3IFdlYkVkaXRvclVuZG9Db21t
YW5kKHN0ZXAuZ2V0KCksIGZhbHNlKTsKICAgICAgICAgaWYgKCF1bmRvQ29tbWFuZCkKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgdWlEZWxlZ2F0ZS0+cmVnaXN0ZXJVbmRvV2l0aFRhcmdl
dChtX3VuZG9UYXJnZXQsIDAsIHVuZG9Db21tYW5kKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oIGIvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKaW5kZXggN2E2
ZWRkZTgxOTM2MTM4NTlhMzFkMmYwZDJlYmIzNWY4MjJjNWQyYi4uMmEwZDAzMGY2YWUwNzYwOTlj
MjQwMjdmZTk3ZmQwNGNmODUxN2M4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93
aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKQEAgLTc0LDggKzc0LDgg
QEAgcHJpdmF0ZToKICAgICBib29sIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpIGZpbmFsOwog
ICAgIGJvb2wgaXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCkgY29uc3QgZmluYWw7
CiAKLSAgICB2b2lkIHJlZ2lzdGVyVW5kb1N0ZXAoV2ViQ29yZTo6VW5kb1N0ZXAmKSBmaW5hbDsK
LSAgICB2b2lkIHJlZ2lzdGVyUmVkb1N0ZXAoV2ViQ29yZTo6VW5kb1N0ZXAmKSBmaW5hbDsKKyAg
ICB2b2lkIHJlZ2lzdGVyVW5kb1N0ZXAoUmVmPFdlYkNvcmU6OlVuZG9TdGVwPiYmKSBmaW5hbDsK
KyAgICB2b2lkIHJlZ2lzdGVyUmVkb1N0ZXAoUmVmPFdlYkNvcmU6OlVuZG9TdGVwPiYmKSBmaW5h
bDsKICAgICB2b2lkIGNsZWFyVW5kb1JlZG9PcGVyYXRpb25zKCk7CiAKICAgICBib29sIGNhbkNv
cHlDdXQoV2ViQ29yZTo6RnJhbWUqLCBib29sIGRlZmF1bHRWYWx1ZSkgY29uc3QgZmluYWw7Cg==
</data>
<flag name="review"
          id="376592"
          type_id="1"
          status="+"
          setter="rniwa"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359882</attachid>
            <date>2019-01-23 07:48:35 -0800</date>
            <delta_ts>2019-01-23 09:30:11 -0800</delta_ts>
            <desc>Review feedback &amp; fix GTK build</desc>
            <filename>bug-193706-20190123074832.patch</filename>
            <type>text/plain</type>
            <size>19607</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwMzI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTdlMGQ2NDlhNTkwMzUw
NTBmY2ZkYzcxMGE3YzNiOGZkMWFhNjc4NC4uNGNlZTEwMDZlZjRiMTlmNDM0YTkxYjk1MzdkZWUw
Yzg1ZjMzNjRhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDE5LTAxLTIzICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEludHJvZHVjZSBV
bmRvU3RlcDo6bGFiZWwoKSBhbmQgYWRvcHQgaXQgaW4gV2ViS2l0TGVnYWN5IGFuZCBXZWJLaXQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MzcwNgor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDQ4MDcwNDg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Unlvc3VrZSBOaXdhLgorCisgICAgICAgIFJlZmFjdG9ycyBzb21lIGV4aXN0aW5nIGxvZ2ljIHdo
ZW4gcmVnaXN0ZXJpbmcgdW5kb2FibGUgYWN0aW9ucywgc3VjaCB0aGF0IHdlIHByb3BhZ2F0ZSB0
aGUgdW5kb2FibGUgYWN0aW9uJ3MKKyAgICAgICAgbGFiZWwgc3RyaW5nIGluc3RlYWQgb2YgdGhl
IEVkaXRBY3Rpb24gdG8gdGhlIGNsaWVudCBsYXllci4gVGhpcyB3aWxsIGhlbHAgbWFrZSBoYW5k
bGluZyBvZiBDdXN0b21VbmRvU3RlcCdzCisgICAgICAgIHVuZG8vcmVkbyBsYWJlbCBzaW1wbGVy
LCBhcyB0aGUgY2xpZW50IGxheWVyIHdvbid0IG5lZWQgdG8gd29ycnkgYWJvdXQgbWFuYWdpbmcg
YW4gRWRpdEFjdGlvbiBhbmQgdW5kby9yZWRvCisgICAgICAgIGxhYmVsIHNpbXVsdGFuZW91c2x5
LiBUaGVyZSBzaG91bGQgYmUgbm8gY2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAgICAgICogZWRp
dGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0Q29t
bWFuZENvbXBvc2l0aW9uOjpsYWJlbCBjb25zdCk6CisgICAgICAgICogZWRpdGluZy9Db21wb3Np
dGVFZGl0Q29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvQ3VzdG9tVW5kb1N0ZXAuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q3VzdG9tVW5kb1N0ZXA6OmxhYmVsIGNvbnN0KToKKyAgICAgICAg
KiBlZGl0aW5nL0N1c3RvbVVuZG9TdGVwLmg6CisgICAgICAgICogZWRpdGluZy9FZGl0QWN0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnVuZG9SZWRvTGFiZWwpOgorICAgICAgICAoV2ViQ29y
ZTo6bmFtZUZvclVuZG9SZWRvKTogRGVsZXRlZC4KKyAgICAgICAgKiBlZGl0aW5nL0VkaXRBY3Rp
b24uaDoKKworICAgICAgICBSZW5hbWUgbmFtZUZvclVuZG9SZWRvIHRvIHVuZG9SZWRvTGFiZWws
IGFuZCByZW1vdmUgdGhlIFdFQkNPUkVfRVhQT1JUIHNpbmNlIGl0J3Mgbm8gbG9uZ2VyIG5lZWRl
ZCBpbiBXZWJLaXQgb3IKKyAgICAgICAgV2ViS2l0TGVnYWN5LgorCisgICAgICAgICogZWRpdGlu
Zy9VbmRvU3RlcC5oOgorCisgICAgICAgIEFkZCBVbmRvU3RlcDo6bGFiZWwoKS4gV2hpbGUgRWRp
dENvbW1hbmRDb21wb3NpdGlvbiBpbXBsZW1lbnRzIHRoaXMgYnkgbWFwcGluZyBpdHMgRWRpdEFj
dGlvbiB0byBhCisgICAgICAgIGxvY2FsaXplZCBzdHJpbmcsIEN1c3RvbVVuZG9TdGVwIGltcGxl
bWVudHMgdGhpcyBieSByZXR1cm5pbmcgdGhlIHVuZG9hYmxlIGFjdGlvbiBsYWJlbCBwcm92aWRl
ZCBieSBzY3JpcHQuCisKIDIwMTktMDEtMjIgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBh
cHBsZS5jb20+CiAKICAgICAgICAgSW50cm9kdWNlIEN1c3RvbVVuZG9TdGVwLmggYW5kIEN1c3Rv
bVVuZG9TdGVwLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA2MzA0NDE1M2Y5MjExMGUwNzJhMjE3ZWNkYmYxYzE2
MjBiYjcyMDVlLi5jMzVmZDE1ZjAwNmFmMWJlOTQ5MWE2ZGRmYmNmM2QwZmU0NGVmNTlhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDE5LTAxLTIzICBXZW5zb24gSHNpZWggIDx3ZW5zb25f
aHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEludHJvZHVjZSBVbmRvU3RlcDo6bGFiZWwoKSBh
bmQgYWRvcHQgaXQgaW4gV2ViS2l0TGVnYWN5IGFuZCBXZWJLaXQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MzcwNgorICAgICAgICA8cmRhcjovL3By
b2JsZW0vNDQ4MDcwNDg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdhLgorCisg
ICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWV3SW1wbDo6cmVnaXN0ZXJFZGl0Q29tbWFuZCk6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYkVkaXRDb21tYW5kUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJFZGl0Q29tbWFu
ZFByb3h5OjpXZWJFZGl0Q29tbWFuZFByb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViRWRp
dENvbW1hbmRQcm94eS5oOgorCisgICAgICAgIERyaXZlLWJ5IHR3ZWFrOiBtYWtlIFdlYkVkaXRD
b21tYW5kUHJveHkncyBiYWNrcG9pbnRlciB0byBpdHMgV2ViUGFnZVByb3h5IGEgV2Vha1B0ciBp
bnN0ZWFkIG9mIGEgcmF3IHBvaW50ZXIuCisgICAgICAgIEFkZGl0aW9uYWxseSwgY2FsbCBjbGVh
cigpIGluc3RlYWQgb2Ygc2V0dGluZyBtX3BhZ2UgdG8gMCB1cG9uIGludmFsaWRhdGlvbi4gQWxz
bywgdHVybiB0aGUgV2ViUGFnZVByb3h5KgorICAgICAgICBhcmd1bWVudCBpbnRvIGEgV2ViUGFn
ZVByb3h5Jiwgc2luY2UgdGhlIFdlYlBhZ2VQcm94eSBtdXN0IGV4aXN0IHdoZW4gaXQgY3JlYXRl
cyBhIG5ldyBXZWJFZGl0Q29tbWFuZFByb3h5LgorCisgICAgICAgIChXZWJLaXQ6OldlYkVkaXRD
b21tYW5kUHJveHk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkVkaXRDb21tYW5kUHJv
eHk6OmxhYmVsIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViRWRpdENvbW1hbmRQcm94eTo6
aW52YWxpZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkVkaXRDb21tYW5kUHJveHk6OmVkaXRB
Y3Rpb24gY29uc3QpOiBEZWxldGVkLgorCisgICAgICAgIEFkanVzdCBVSS1zaWRlIGxvZ2ljIHRv
IGp1c3QgaGFuZGxlIHRoZSB1bmRvL3JlZG8gbGFiZWwsIHJhdGhlciB0aGFuIG1hcCB0aGUgZWRp
dCBhY3Rpb24gdG8gYSBsb2NhbGl6ZWQgc3RyaW5nLgorCisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVnaXN0ZXJF
ZGl0Q29tbWFuZEZvclVuZG8pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlc2V0
U3RhdGUpOgorCisgICAgICAgIFR3ZWFrIHRoaXMgdG8gdXNlIHN0ZDo6ZXhjaGFuZ2UgaW5zdGVh
ZCBvZiBjb3B5aW5nIGFsbCB0aGUgV2ViRWRpdENvbW1hbmRQcm94eSBSZWZQdHJzIGludG8gYSBz
ZXBhcmF0ZSBWZWN0b3IKKyAgICAgICAgYW5kIHRoZW4gaXRlcmF0aW5nIG92ZXIgdGhlIFZlY3Rv
ci4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorCisgICAgICAgIEFkanVzdCB0aGlzIHNv
IHRoYXQgd2Ugb25seSBzZW5kIHRoZSB1bmRvL3JlZG8gbGFiZWwgb3ZlciBJUEMsIHJhdGhlciB0
aGFuIHRoZSBlZGl0IGFjdGlvbiB0eXBlLgorCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9QYWdl
Q2xpZW50SW1wbElPUy5tbToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnJlZ2lz
dGVyRWRpdENvbW1hbmQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RWRpdG9yQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRWRpdG9yQ2xpZW50OjpyZWdp
c3RlclVuZG9TdGVwKToKKwogMjAxOS0wMS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgogCiAgICAgICAgIFJlZ3Jlc3Npb24ocjI0MDE3OCkgU29tZSBBUEkgdGVzdHMgYXJlIGNy
YXNoaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggYzA3ZjQwZjJiYWI1ZDg5MWZm
ZjM4NzY4MmE1NGFhNzE5OTU3ZDIyNS4uMDA3MTdlMDc0NDk3MDI0YTFmMzc2ZWYyYzhjNTc3YzQx
ODg0YWE1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisy
MDE5LTAxLTIzICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAg
ICAgIEludHJvZHVjZSBVbmRvU3RlcDo6bGFiZWwoKSBhbmQgYWRvcHQgaXQgaW4gV2ViS2l0TGVn
YWN5IGFuZCBXZWJLaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE5MzcwNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDQ4MDcwNDg+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdhLgorCisgICAgICAgIFVzZSBVbmRvU3RlcDo6bGFi
ZWwoKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oOgorICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbToKKyAgICAgICAgKC1bV2Vi
VW5kb1N0ZXAgaW5pdFdpdGhVbmRvU3RlcDpdKToKKyAgICAgICAgKCtbV2ViVW5kb1N0ZXAgc3Rl
cFdpdGhVbmRvU3RlcDpdKToKKyAgICAgICAgKFdlYkVkaXRvckNsaWVudDo6cmVnaXN0ZXJVbmRv
T3JSZWRvU3RlcCk6CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OnJlZ2lzdGVyVW5kb1N0ZXAp
OgorICAgICAgICAoV2ViRWRpdG9yQ2xpZW50OjpyZWdpc3RlclJlZG9TdGVwKToKKwogMjAxOS0w
MS0yMiAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAg
ICAgIE1vdmUgTmV0d29ya1N0b3JhZ2VTZXNzaW9uIG93bmVyc2hpcCB0byBOZXR3b3JrUHJvY2Vz
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFu
ZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcApp
bmRleCAyNDJiZDk4NWNmNjIwZTQzMjZmNTcyY2ZiOTQ1OTQ1NjRkZDVmOWM1Li45MWQ4YWYxODBh
NGUzMTFhYzM2MWIzM2JhZWI5MWMyNDAwYjExNDEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcApAQCAtMzAyLDYgKzMwMiwxMSBAQCB2b2lk
IEVkaXRDb21tYW5kQ29tcG9zaXRpb246OmdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+
JiBub2RlcykKIH0KICNlbmRpZgogCitTdHJpbmcgRWRpdENvbW1hbmRDb21wb3NpdGlvbjo6bGFi
ZWwoKSBjb25zdAoreworICAgIHJldHVybiB1bmRvUmVkb0xhYmVsKG1fZWRpdEFjdGlvbik7Cit9
CisKIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpDb21wb3NpdGVFZGl0Q29tbWFuZChEb2N1bWVudCYg
ZG9jdW1lbnQsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKICAgICA6IEVkaXRDb21tYW5kKGRv
Y3VtZW50LCBlZGl0aW5nQWN0aW9uKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21w
b3NpdGVFZGl0Q29tbWFuZC5oCmluZGV4IDJkYTUyMGZkYzQ2NDkyOTJkYzdiZmNhMjBiN2QxMWIx
MThjNWRhMWMuLmZmMWU2MWM2ZWU0NTk3ZjBhZDVlYmEyOWI5YmQ0OGFjNjBjOTRmYmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmgKQEAgLTg4LDYg
Kzg4LDggQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBFZGl0Q29tbWFuZENvbXBvc2l0aW9uKERv
Y3VtZW50JiwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc3RhcnRpbmdTZWxlY3Rpb24sIGNvbnN0
IFZpc2libGVTZWxlY3Rpb24mIGVuZGluZ1NlbGVjdGlvbiwgRWRpdEFjdGlvbik7CiAKKyAgICBT
dHJpbmcgbGFiZWwoKSBjb25zdCBmaW5hbDsKKwogICAgIFJlZlB0cjxEb2N1bWVudD4gbV9kb2N1
bWVudDsKICAgICBWaXNpYmxlU2VsZWN0aW9uIG1fc3RhcnRpbmdTZWxlY3Rpb247CiAgICAgVmlz
aWJsZVNlbGVjdGlvbiBtX2VuZGluZ1NlbGVjdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQ3VzdG9tVW5kb1N0ZXAuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9D
dXN0b21VbmRvU3RlcC5jcHAKaW5kZXggOTE3ZjJhYWI3NWE2OGYxOWMyNGRkOGNjNjI1YTY5ZWNm
M2IzZmI2Yi4uMDY4MDc1MjI2NDIyMjg3Mjc2ODZjYmNkZGRlN2UyNzJmZDAwZDIwYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXN0b21VbmRvU3RlcC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9DdXN0b21VbmRvU3RlcC5jcHAKQEAgLTY1LDQgKzY1LDEzIEBA
IGJvb2wgQ3VzdG9tVW5kb1N0ZXA6OmlzVmFsaWQoKSBjb25zdAogICAgIHJldHVybiBtX3VuZG9J
dGVtICYmIG1fdW5kb0l0ZW0tPmlzVmFsaWQoKTsKIH0KIAorU3RyaW5nIEN1c3RvbVVuZG9TdGVw
OjpsYWJlbCgpIGNvbnN0Cit7CisgICAgaWYgKCFpc1ZhbGlkKCkpIHsKKyAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOworICAgIH0KKyAg
ICByZXR1cm4gbV91bmRvSXRlbS0+bGFiZWwoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXN0b21VbmRvU3RlcC5oIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXN0b21VbmRvU3RlcC5oCmluZGV4IGZiY2U0NTQzNjIz
MTI1YWNjNWY4ZDc5NjYwYzllZDcxYzY3ZjgyOTQuLmQ5ZWFkMTNhNGE3MjdjYmZiYmI4MGI3MzFm
YjQ0Y2QwMTBiZjRjZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3VzdG9t
VW5kb1N0ZXAuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1c3RvbVVuZG9TdGVwLmgK
QEAgLTQ3LDYgKzQ3LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVuYXBwbHkoKSBmaW5hbDsKICAg
ICB2b2lkIHJlYXBwbHkoKSBmaW5hbDsKICAgICBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24oKSBj
b25zdCBmaW5hbCB7IHJldHVybiBFZGl0QWN0aW9uOjpVbnNwZWNpZmllZDsgfQorICAgIFN0cmlu
ZyBsYWJlbCgpIGNvbnN0IGZpbmFsOwogCiAgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3Q7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdEFjdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0VkaXRBY3Rpb24uY3BwCmluZGV4IDQxMjVlMzUwNzhmMjVhNmVkY2Y4
ZTFkNjg5OTQ3NTQ3NGU5NjJlM2EuLjMxZDIxNmYxZDA0MWZlZjNjZTNkNGY0ZjYxYjFkODIzMjA2
ZGU3ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdEFjdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0QWN0aW9uLmNwcApAQCAtMzAsNyArMzAs
NyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVN0cmluZyBuYW1lRm9yVW5kb1JlZG8oRWRp
dEFjdGlvbiBlZGl0QWN0aW9uKQorU3RyaW5nIHVuZG9SZWRvTGFiZWwoRWRpdEFjdGlvbiBlZGl0
QWN0aW9uKQogewogICAgIHN3aXRjaCAoZWRpdEFjdGlvbikgewogICAgIGNhc2UgRWRpdEFjdGlv
bjo6VW5zcGVjaWZpZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRB
Y3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdEFjdGlvbi5oCmluZGV4IGI2YzQ1
ZGFmODQ2YTY0OWUwMmUyOTQ1YzEyYzhiY2ZlYWQ2MGI3NmQuLjE3ZThiZTk3NmM1YzljZDM4M2Jm
MWY1MDBmY2Q1NjkxZjM2ZTgxYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdEFjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdEFjdGlvbi5oCkBA
IC05NSw2ICs5NSw2IEBAIGVudW0gY2xhc3MgRWRpdEFjdGlvbiA6IHVpbnQ4X3QgewogICAgIElu
c2VydEVkaXRhYmxlSW1hZ2UKIH07CiAKLVdFQkNPUkVfRVhQT1JUIFdURjo6U3RyaW5nIG5hbWVG
b3JVbmRvUmVkbyhFZGl0QWN0aW9uKTsKK1dURjo6U3RyaW5nIHVuZG9SZWRvTGFiZWwoRWRpdEFj
dGlvbik7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvVW5kb1N0ZXAuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVW5kb1N0ZXAu
aAppbmRleCAwMGMxNzAwMTA3YjJjYzc5Y2MxMzI2NzlkODk4ZDcwNWJhNzg3ZTc4Li4wNTAwOWNi
NTc1NTAxYjVlYzJkNWU4MjY0NWY4MWViODM2NmE4NDQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1VuZG9TdGVwLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9VbmRv
U3RlcC5oCkBAIC0zMiw2ICszMiw3IEBACiAKICNpbmNsdWRlICJFZGl0QWN0aW9uLmgiCiAjaW5j
bHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00Miw2ICs0Myw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgdW5hcHBseSgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcmVhcHBseSgpID0g
MDsKICAgICB2aXJ0dWFsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbigpIGNvbnN0ID0gMDsKKyAg
ICB2aXJ0dWFsIFN0cmluZyBsYWJlbCgpIGNvbnN0ID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZp
ZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0K
aW5kZXggMDY0ZTBkZmQ5MGZmNmJiOWRkYzNhYjQ0MmVjOGNkYTY5YWEyZDk2ZC4uZDhmY2M4Yzdi
OTcwN2M0MWY2ZTcxYTU5ZWVmMWI0OTg4YzBkZjBlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KQEAgLTI2OTIsNyArMjY5Miw3IEBAIHZvaWQgV2Vi
Vmlld0ltcGw6OmV4ZWN1dGVFZGl0Q29tbWFuZEZvclNlbGVjdG9yKFNFTCBzZWxlY3RvciwgY29u
c3QgU3RyaW5nJiBhcmd1CiAKIHZvaWQgV2ViVmlld0ltcGw6OnJlZ2lzdGVyRWRpdENvbW1hbmQo
UmVmPFdlYkVkaXRDb21tYW5kUHJveHk+JiYgY29tbWFuZCwgVW5kb09yUmVkbyB1bmRvT3JSZWRv
KQogewotICAgIGF1dG8gYWN0aW9uTmFtZSA9IFdlYkNvcmU6Om5hbWVGb3JVbmRvUmVkbyhjb21t
YW5kLT5lZGl0QWN0aW9uKCkpOworICAgIGF1dG8gYWN0aW9uTmFtZSA9IGNvbW1hbmQtPmxhYmVs
KCk7CiAgICAgYXV0byBjb21tYW5kT2JqQyA9IGFkb3B0TlMoW1tXS0VkaXRDb21tYW5kIGFsbG9j
XSBpbml0V2l0aFdlYkVkaXRDb21tYW5kUHJveHk6V1RGTW92ZShjb21tYW5kKV0pOwogCiAgICAg
TlNVbmRvTWFuYWdlciAqdW5kb01hbmFnZXIgPSBbbV92aWV3IHVuZG9NYW5hZ2VyXTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkVkaXRDb21tYW5kUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRWRpdENvbW1hbmRQcm94eS5jcHAKaW5kZXggOWY4
M2UzYzE5ZDg2YzlmMjM1M2E3ZTk1NzYxMGExZWE1ZDg1ODRiMi4uMGU2NGJkNzA4ODZjYmE5Yzk0
YmM5OTlkMmFiNWI2NmViZGY4NDlhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViRWRpdENvbW1hbmRQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViRWRpdENvbW1hbmRQcm94eS5jcHAKQEAgLTM2LDEwICszNiwxMCBAQAogbmFtZXNwYWNlIFdl
YktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotV2ViRWRpdENvbW1hbmRQcm94eTo6
V2ViRWRpdENvbW1hbmRQcm94eShXZWJVbmRvU3RlcElEIGNvbW1hbmRJRCwgV2ViQ29yZTo6RWRp
dEFjdGlvbiBlZGl0QWN0aW9uLCBXZWJQYWdlUHJveHkqIHBhZ2UpCitXZWJFZGl0Q29tbWFuZFBy
b3h5OjpXZWJFZGl0Q29tbWFuZFByb3h5KFdlYlVuZG9TdGVwSUQgY29tbWFuZElELCBjb25zdCBT
dHJpbmcmIGxhYmVsLCBXZWJQYWdlUHJveHkmIHBhZ2UpCiAgICAgOiBtX2NvbW1hbmRJRChjb21t
YW5kSUQpCi0gICAgLCBtX2VkaXRBY3Rpb24oZWRpdEFjdGlvbikKLSAgICAsIG1fcGFnZShwYWdl
KQorICAgICwgbV9sYWJlbChsYWJlbCkKKyAgICAsIG1fcGFnZShtYWtlV2Vha1B0cihwYWdlKSkK
IHsKICAgICBtX3BhZ2UtPmFkZEVkaXRDb21tYW5kKCp0aGlzKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkVkaXRDb21tYW5kUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkVkaXRDb21tYW5kUHJveHkuaAppbmRleCA3MTZjYjU4ZjQwM2RkODIz
MTk2Zjg2NDJmNzVmNGRmM2Q3MWFhOGNhLi5kMWExNGE5YWVjMzY2ZTM3Mzc4ZjY4YzBjNTdlZTc4
YjE5YWY1M2I5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJFZGl0Q29t
bWFuZFByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRWRpdENvbW1hbmRQ
cm94eS5oCkBAIC0zMSw2ICszMSw4IEBACiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRl
IDx3dGYvV2Vha1B0ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIApAQCAtMzgsMjYgKzQwLDI2IEBAIGNsYXNzIFdlYlBhZ2VQcm94eTsK
IAogY2xhc3MgV2ViRWRpdENvbW1hbmRQcm94eSA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJ
OjpPYmplY3Q6OlR5cGU6OkVkaXRDb21tYW5kUHJveHk+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UmVmPFdlYkVkaXRDb21tYW5kUHJveHk+IGNyZWF0ZShXZWJVbmRvU3RlcElEIGNvbW1hbmRJRCwg
V2ViQ29yZTo6RWRpdEFjdGlvbiBlZGl0QWN0aW9uLCBXZWJQYWdlUHJveHkqIHBhZ2UpCisgICAg
c3RhdGljIFJlZjxXZWJFZGl0Q29tbWFuZFByb3h5PiBjcmVhdGUoV2ViVW5kb1N0ZXBJRCBjb21t
YW5kSUQsIGNvbnN0IFN0cmluZyYgbGFiZWwsIFdlYlBhZ2VQcm94eSYgcGFnZSkKICAgICB7Ci0g
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkVkaXRDb21tYW5kUHJveHkoY29tbWFuZElE
LCBlZGl0QWN0aW9uLCBwYWdlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkVk
aXRDb21tYW5kUHJveHkoY29tbWFuZElELCBsYWJlbCwgcGFnZSkpOwogICAgIH0KICAgICB+V2Vi
RWRpdENvbW1hbmRQcm94eSgpOwogCiAgICAgV2ViVW5kb1N0ZXBJRCBjb21tYW5kSUQoKSBjb25z
dCB7IHJldHVybiBtX2NvbW1hbmRJRDsgfQotICAgIFdlYkNvcmU6OkVkaXRBY3Rpb24gZWRpdEFj
dGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZWRpdEFjdGlvbjsgfQorICAgIFN0cmluZyBsYWJlbCgp
IGNvbnN0IHsgcmV0dXJuIG1fbGFiZWw7IH0KIAotICAgIHZvaWQgaW52YWxpZGF0ZSgpIHsgbV9w
YWdlID0gMDsgfQorICAgIHZvaWQgaW52YWxpZGF0ZSgpIHsgbV9wYWdlLmNsZWFyKCk7IH0KIAog
ICAgIHZvaWQgdW5hcHBseSgpOwogICAgIHZvaWQgcmVhcHBseSgpOwogCiBwcml2YXRlOgotICAg
IFdlYkVkaXRDb21tYW5kUHJveHkoV2ViVW5kb1N0ZXBJRCBjb21tYW5kSUQsIFdlYkNvcmU6OkVk
aXRBY3Rpb24sIFdlYlBhZ2VQcm94eSopOworICAgIFdlYkVkaXRDb21tYW5kUHJveHkoV2ViVW5k
b1N0ZXBJRCBjb21tYW5kSUQsIGNvbnN0IFN0cmluZyYgbGFiZWwsIFdlYlBhZ2VQcm94eSYpOwog
CiAgICAgV2ViVW5kb1N0ZXBJRCBtX2NvbW1hbmRJRDsKLSAgICBXZWJDb3JlOjpFZGl0QWN0aW9u
IG1fZWRpdEFjdGlvbjsKLSAgICBXZWJQYWdlUHJveHkqIG1fcGFnZTsKKyAgICBTdHJpbmcgbV9s
YWJlbDsKKyAgICBXZWFrUHRyPFdlYlBhZ2VQcm94eT4gbV9wYWdlOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRl
eCBlNzRmMzhkYzU5YjQwMGQ0MDI2ZTJjYWQzYzY1OWUwNTI1YjQzYzlhLi5lNDQ0OWY4NjZjZGUz
YzE3MjgxNTY2Yzk0ZWY1YzJhOGUzNDkxODg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAKQEAgLTU0MzksOSArNTQzOSw5IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpj
b21wb3NpdGlvbldhc0NhbmNlbGVkKCkKIAogLy8gVW5kbyBtYW5hZ2VtZW50CiAKLXZvaWQgV2Vi
UGFnZVByb3h5OjpyZWdpc3RlckVkaXRDb21tYW5kRm9yVW5kbyhXZWJVbmRvU3RlcElEIGNvbW1h
bmRJRCwgdWludDMyX3QgZWRpdEFjdGlvbikKK3ZvaWQgV2ViUGFnZVByb3h5OjpyZWdpc3RlckVk
aXRDb21tYW5kRm9yVW5kbyhXZWJVbmRvU3RlcElEIGNvbW1hbmRJRCwgY29uc3QgU3RyaW5nJiBs
YWJlbCkKIHsKLSAgICByZWdpc3RlckVkaXRDb21tYW5kKFdlYkVkaXRDb21tYW5kUHJveHk6OmNy
ZWF0ZShjb21tYW5kSUQsIHN0YXRpY19jYXN0PEVkaXRBY3Rpb24+KGVkaXRBY3Rpb24pLCB0aGlz
KSwgVW5kb09yUmVkbzo6VW5kbyk7CisgICAgcmVnaXN0ZXJFZGl0Q29tbWFuZChXZWJFZGl0Q29t
bWFuZFByb3h5OjpjcmVhdGUoY29tbWFuZElELCBsYWJlbCwgKnRoaXMpLCBVbmRvT3JSZWRvOjpV
bmRvKTsKIH0KICAgICAKIHZvaWQgV2ViUGFnZVByb3h5OjpyZWdpc3Rlckluc2VydGlvblVuZG9H
cm91cGluZygpCkBAIC02NjUyLDEwICs2NjUyLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJlc2V0
U3RhdGUoUmVzZXRTdGF0ZVJlYXNvbiByZXNldFN0YXRlUmVhc29uKQogICAgIG1fY2FsbGJhY2tz
LmludmFsaWRhdGUoZXJyb3IpOwogICAgIG1fbG9hZERlcGVuZGVudFN0cmluZ0NhbGxiYWNrSURz
LmNsZWFyKCk7CiAKLSAgICBhdXRvIGVkaXRDb21tYW5kVmVjdG9yID0gY29weVRvVmVjdG9yKG1f
ZWRpdENvbW1hbmRTZXQpOwotICAgIG1fZWRpdENvbW1hbmRTZXQuY2xlYXIoKTsKLQotICAgIGZv
ciAoYXV0byYgZWRpdENvbW1hbmQgOiBlZGl0Q29tbWFuZFZlY3RvcikKKyAgICBmb3IgKGF1dG8m
IGVkaXRDb21tYW5kIDogc3RkOjpleGNoYW5nZShtX2VkaXRDb21tYW5kU2V0LCB7IH0pKQogICAg
ICAgICBlZGl0Q29tbWFuZC0+aW52YWxpZGF0ZSgpOwogCiAgICAgbV9hY3RpdmVQb3B1cE1lbnUg
PSBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBhYzU2
MDBmNjJhY2M2YTM2ZWQzMGUwMmE5ZmQ3MjQzMDFiZTBiZjRjLi5hZDdkN2RjOTI4MmUzNTdmMzBl
ZjI0ZTI4OWExMTNkYTYzMjAxZDkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaApAQCAtMTY0NCw3ICsxNjQ0LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGJhY2tGb3J3YXJk
Q2xlYXIoKTsKIAogICAgIC8vIFVuZG8gbWFuYWdlbWVudAotICAgIHZvaWQgcmVnaXN0ZXJFZGl0
Q29tbWFuZEZvclVuZG8oV2ViVW5kb1N0ZXBJRCBjb21tYW5kSUQsIHVpbnQzMl90IGVkaXRBY3Rp
b24pOworICAgIHZvaWQgcmVnaXN0ZXJFZGl0Q29tbWFuZEZvclVuZG8oV2ViVW5kb1N0ZXBJRCBj
b21tYW5kSUQsIGNvbnN0IFN0cmluZyYgbGFiZWwpOwogICAgIHZvaWQgcmVnaXN0ZXJJbnNlcnRp
b25VbmRvR3JvdXBpbmcoKTsKICAgICB2b2lkIGNsZWFyQWxsRWRpdENvbW1hbmRzKCk7CiAgICAg
dm9pZCBjYW5VbmRvUmVkbyhVbmRvT3JSZWRvLCBib29sJiByZXN1bHQpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDM4OWEzMmJk
YTE0Y2QwMWRiNGM0Yjk5Y2MyNGM2OTRkMWMxYTVkOWYuLjZjMzVjYjQxMTIzNmExMzhhNWM2MDcx
NzA3ZjNjNDAxNjUwNTBiNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTIzMyw3ICsyMzMsNyBAQCBtZXNzYWdlcyAtPiBXZWJQ
YWdlUHJveHkgewogICAgIFdpbGxHb1RvQmFja0ZvcndhcmRMaXN0SXRlbShzdHJ1Y3QgV2ViQ29y
ZTo6QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciBpdGVtSUQsIGJvb2wgaW5QYWdlQ2FjaGUpCiAK
ICAgICAjIFVuZG8vUmVkbyBtZXNzYWdlcwotICAgIFJlZ2lzdGVyRWRpdENvbW1hbmRGb3JVbmRv
KHVpbnQ2NF90IGNvbW1hbmRJRCwgdWludDMyX3QgZWRpdEFjdGlvbikKKyAgICBSZWdpc3RlckVk
aXRDb21tYW5kRm9yVW5kbyh1aW50NjRfdCBjb21tYW5kSUQsIFN0cmluZyBsYWJlbCkKICAgICBD
bGVhckFsbEVkaXRDb21tYW5kcygpCiAgICAgUmVnaXN0ZXJJbnNlcnRpb25VbmRvR3JvdXBpbmco
KQogICAgIENhblVuZG9SZWRvKGVudW06Ym9vbCBXZWJLaXQ6OlVuZG9PclJlZG8gdW5kb09yUmVk
bykgLT4gKGJvb2wgcmVzdWx0KSBMZWdhY3lTeW5jCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KaW5kZXggNzFlYTZiOGZmZTdiYmFkOTI5ZDY4
MGE0ZTg1M2YwMWQwYzhjM2RlMS4uZjIzMDRhYzcyOTNmMGQ4MjVkNTU4MzQyOWFkZTFjMDVmYTM3
MDNlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJ
bXBsSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1w
bElPUy5tbQpAQCAtMjY3LDcgKzI2Nyw3IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OmRpZENoYW5n
ZVZpZXdwb3J0UHJvcGVydGllcyhjb25zdCBWaWV3cG9ydEF0dHJpYnV0ZXMmKQogCiB2b2lkIFBh
Z2VDbGllbnRJbXBsOjpyZWdpc3RlckVkaXRDb21tYW5kKFJlZjxXZWJFZGl0Q29tbWFuZFByb3h5
PiYmIGNvbW1hbmQsIFVuZG9PclJlZG8gdW5kb09yUmVkbykKIHsKLSAgICBhdXRvIGFjdGlvbk5h
bWUgPSBXZWJDb3JlOjpuYW1lRm9yVW5kb1JlZG8oY29tbWFuZC0+ZWRpdEFjdGlvbigpKTsKKyAg
ICBhdXRvIGFjdGlvbk5hbWUgPSBjb21tYW5kLT5sYWJlbCgpOwogICAgIGF1dG8gY29tbWFuZE9i
akMgPSBhZG9wdE5TKFtbV0tFZGl0Q29tbWFuZCBhbGxvY10gaW5pdFdpdGhXZWJFZGl0Q29tbWFu
ZFByb3h5OldURk1vdmUoY29tbWFuZCldKTsKICAgICAKICAgICBOU1VuZG9NYW5hZ2VyICp1bmRv
TWFuYWdlciA9IFttX2NvbnRlbnRWaWV3IHVuZG9NYW5hZ2VyXTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5j
cHAKaW5kZXggMDA5NGUzNTZkNTE0Yjg3N2RiMWYzMGI2YTY4ZWQyZDczYzlmMTM1Ny4uOGYyMTgx
YmViZjE4MWMzZGNkNzg3ZmI0YjlmYmQ2MjBjOWQwMGQ3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5j
cHAKQEAgLTMxMSwxMCArMzExLDkgQEAgdm9pZCBXZWJFZGl0b3JDbGllbnQ6OnJlZ2lzdGVyVW5k
b1N0ZXAoVW5kb1N0ZXAmIHN0ZXApCiAKICAgICBhdXRvIHdlYlN0ZXAgPSBXZWJVbmRvU3RlcDo6
Y3JlYXRlKHN0ZXApOwogICAgIGF1dG8gc3RlcElEID0gd2ViU3RlcC0+c3RlcElEKCk7Ci0gICAg
YXV0byBlZGl0QWN0aW9uID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHdlYlN0ZXAtPnN0ZXAoKS5l
ZGl0aW5nQWN0aW9uKCkpOwogCiAgICAgbV9wYWdlLT5hZGRXZWJVbmRvU3RlcChzdGVwSUQsIFdU
Rk1vdmUod2ViU3RlcCkpOwotICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpSZWdpc3RlckVkaXRDb21tYW5kRm9yVW5kbyhzdGVwSUQsIGVkaXRBY3Rpb24pLCBtX3BhZ2Ut
PnBhZ2VJRCgpLCBJUEM6OlNlbmRPcHRpb246OkRpc3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2FpdGlu
Z0ZvclN5bmNSZXBseSk7CisgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OlJlZ2lzdGVyRWRpdENvbW1hbmRGb3JVbmRvKHN0ZXBJRCwgc3RlcC5sYWJlbCgpKSwgbV9wYWdl
LT5wYWdlSUQoKSwgSVBDOjpTZW5kT3B0aW9uOjpEaXNwYXRjaE1lc3NhZ2VFdmVuV2hlbldhaXRp
bmdGb3JTeW5jUmVwbHkpOwogfQogCiB2b2lkIFdlYkVkaXRvckNsaWVudDo6cmVnaXN0ZXJSZWRv
U3RlcChVbmRvU3RlcCYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KaW5kZXggY2NjMzNmOTQwZmJjOWU2MzFm
ZGQ5OGQyZWExNmI5N2UxNTZiZDBiMy4uYzM1MjMzZWQxMjE5Nzk3MmE1YTRjNDYxNzUxNmE0Yzg2
NWFmNmVhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViRWRpdG9yQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQpAQCAtMTI1LDcgKzEyNSw3IEBAIEBpbnRlcmZh
Y2UgV2ViVW5kb1N0ZXAgOiBOU09iamVjdAogICAgIFJlZlB0cjxVbmRvU3RlcD4gbV9zdGVwOyAg
IAogfQogCi0rIChXZWJVbmRvU3RlcCAqKXN0ZXBXaXRoVW5kb1N0ZXA6KFVuZG9TdGVwJilzdGVw
OworKyAoV2ViVW5kb1N0ZXAgKilzdGVwV2l0aFVuZG9TdGVwOihSZWY8VW5kb1N0ZXA+JiYpc3Rl
cDsKIC0gKFVuZG9TdGVwJilzdGVwOwogCiBAZW5kCkBAIC0xNDEsMTIgKzE0MSwxMiBAQCArICh2
b2lkKWluaXRpYWxpemUKICNlbmRpZgogfQogCi0tIChpZClpbml0V2l0aFVuZG9TdGVwOihVbmRv
U3RlcCYpc3RlcAorLSAoaWQpaW5pdFdpdGhVbmRvU3RlcDooUmVmPFVuZG9TdGVwPiYmKXN0ZXAK
IHsKICAgICBzZWxmID0gW3N1cGVyIGluaXRdOwogICAgIGlmICghc2VsZikKICAgICAgICAgcmV0
dXJuIG5pbDsKLSAgICBtX3N0ZXAgPSAmc3RlcDsKKyAgICBtX3N0ZXAgPSBXVEZNb3ZlKHN0ZXAp
OwogICAgIHJldHVybiBzZWxmOwogfQogCkBAIC0xNTgsOSArMTU4LDkgQEAgLSAodm9pZClkZWFs
bG9jCiAgICAgW3N1cGVyIGRlYWxsb2NdOwogfQogCi0rIChXZWJVbmRvU3RlcCAqKXN0ZXBXaXRo
VW5kb1N0ZXA6KFVuZG9TdGVwJilzdGVwCisrIChXZWJVbmRvU3RlcCAqKXN0ZXBXaXRoVW5kb1N0
ZXA6KFJlZjxVbmRvU3RlcD4mJilzdGVwCiB7Ci0gICAgcmV0dXJuIFtbW1dlYlVuZG9TdGVwIGFs
bG9jXSBpbml0V2l0aFVuZG9TdGVwOnN0ZXBdIGF1dG9yZWxlYXNlXTsKKyAgICByZXR1cm4gW1tb
V2ViVW5kb1N0ZXAgYWxsb2NdIGluaXRXaXRoVW5kb1N0ZXA6V1RGTW92ZShzdGVwKV0gYXV0b3Jl
bGVhc2VdOwogfQogCiAtIChVbmRvU3RlcCYpc3RlcApAQCAtNjAxLDkgKzYwMSw4IEBAIHZvaWQg
V2ViRWRpdG9yQ2xpZW50OjpyZWdpc3RlclVuZG9PclJlZG9TdGVwKFVuZG9TdGVwJiBzdGVwLCBi
b29sIGlzUmVkbykKICAgICAgICAgcmV0dXJuOwogI2VuZGlmCiAKLSAgICBOU1N0cmluZyAqYWN0
aW9uTmFtZSA9IFdlYkNvcmU6Om5hbWVGb3JVbmRvUmVkbyhzdGVwLmVkaXRpbmdBY3Rpb24oKSk7
Ci0gICAgV2ViVW5kb1N0ZXAgKndlYkVudHJ5ID0gW1dlYlVuZG9TdGVwIHN0ZXBXaXRoVW5kb1N0
ZXA6c3RlcF07Ci0gICAgW3VuZG9NYW5hZ2VyIHJlZ2lzdGVyVW5kb1dpdGhUYXJnZXQ6bV91bmRv
VGFyZ2V0LmdldCgpIHNlbGVjdG9yOihpc1JlZG8gPyBAc2VsZWN0b3IocmVkb0VkaXRpbmc6KSA6
IEBzZWxlY3Rvcih1bmRvRWRpdGluZzopKSBvYmplY3Q6d2ViRW50cnldOworICAgIE5TU3RyaW5n
ICphY3Rpb25OYW1lID0gc3RlcC5sYWJlbCgpOworICAgIFt1bmRvTWFuYWdlciByZWdpc3RlclVu
ZG9XaXRoVGFyZ2V0Om1fdW5kb1RhcmdldC5nZXQoKSBzZWxlY3RvcjooaXNSZWRvID8gQHNlbGVj
dG9yKHJlZG9FZGl0aW5nOikgOiBAc2VsZWN0b3IodW5kb0VkaXRpbmc6KSkgb2JqZWN0OltXZWJV
bmRvU3RlcCBzdGVwV2l0aFVuZG9TdGVwOnN0ZXBdXTsKICAgICBpZiAoYWN0aW9uTmFtZSkKICAg
ICAgICAgW3VuZG9NYW5hZ2VyIHNldEFjdGlvbk5hbWU6YWN0aW9uTmFtZV07CiAgICAgbV9oYXZl
VW5kb1JlZG9PcGVyYXRpb25zID0gWUVTOwpAQCAtNjI5LDE0ICs2MjgsMTQgQEAgdm9pZCBXZWJF
ZGl0b3JDbGllbnQ6OnVwZGF0ZUVkaXRvclN0YXRlQWZ0ZXJMYXlvdXRJZkVkaXRhYmlsaXR5Q2hh
bmdlZCgpCiAgICAgICAgIFttX3dlYlZpZXcgdXBkYXRlVG91Y2hCYXJdOwogfQogCi12b2lkIFdl
YkVkaXRvckNsaWVudDo6cmVnaXN0ZXJVbmRvU3RlcChVbmRvU3RlcCYgY21kKQordm9pZCBXZWJF
ZGl0b3JDbGllbnQ6OnJlZ2lzdGVyVW5kb1N0ZXAoVW5kb1N0ZXAmIGNvbW1hbmQpCiB7Ci0gICAg
cmVnaXN0ZXJVbmRvT3JSZWRvU3RlcChjbWQsIGZhbHNlKTsKKyAgICByZWdpc3RlclVuZG9PclJl
ZG9TdGVwKGNvbW1hbmQsIGZhbHNlKTsKIH0KIAotdm9pZCBXZWJFZGl0b3JDbGllbnQ6OnJlZ2lz
dGVyUmVkb1N0ZXAoVW5kb1N0ZXAmIGNtZCkKK3ZvaWQgV2ViRWRpdG9yQ2xpZW50OjpyZWdpc3Rl
clJlZG9TdGVwKFVuZG9TdGVwJiBjb21tYW5kKQogewotICAgIHJlZ2lzdGVyVW5kb09yUmVkb1N0
ZXAoY21kLCB0cnVlKTsKKyAgICByZWdpc3RlclVuZG9PclJlZG9TdGVwKGNvbW1hbmQsIHRydWUp
OwogfQogCiB2b2lkIFdlYkVkaXRvckNsaWVudDo6Y2xlYXJVbmRvUmVkb09wZXJhdGlvbnMoKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>