<?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>73960</bug_id>
          
          <creation_ts>2011-12-06 16:05:04 -0800</creation_ts>
          <short_desc>[WK2] Add permissions support to web notifications</short_desc>
          <delta_ts>2011-12-08 11:07:16 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jon Lee">jonlee</reporter>
          <assigned_to name="Jon Lee">jonlee</assigned_to>
          <cc>darin</cc>
    
    <cc>gustavo.noronha</cc>
    
    <cc>gustavo</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>516331</commentid>
    <comment_count>0</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2011-12-06 16:05:04 -0800</bug_when>
    <thetext>Implement current permissions API for WK2.

&lt;rdar://problem/10357008&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516388</commentid>
    <comment_count>1</comment_count>
      <attachid>118147</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2011-12-06 17:07:13 -0800</bug_when>
    <thetext>Created attachment 118147
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516405</commentid>
    <comment_count>2</comment_count>
      <attachid>118150</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2011-12-06 17:27:06 -0800</bug_when>
    <thetext>Created attachment 118150
Patch

Added new files to Windows vcproj</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516451</commentid>
    <comment_count>3</comment_count>
      <attachid>118150</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2011-12-06 19:40:47 -0800</bug_when>
    <thetext>Comment on attachment 118150
Patch

Attachment 118150 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/10756001</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516712</commentid>
    <comment_count>4</comment_count>
      <attachid>118226</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2011-12-07 10:20:07 -0800</bug_when>
    <thetext>Created attachment 118226
Patch with GNU build fixes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516726</commentid>
    <comment_count>5</comment_count>
      <attachid>118226</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2011-12-07 10:29:30 -0800</bug_when>
    <thetext>Comment on attachment 118226
Patch with GNU build fixes

Attachment 118226 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/10752207</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516758</commentid>
    <comment_count>6</comment_count>
      <attachid>118234</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2011-12-07 11:05:21 -0800</bug_when>
    <thetext>Created attachment 118234
Fix gtk again</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516788</commentid>
    <comment_count>7</comment_count>
      <attachid>118234</attachid>
    <who name="Collabora GTK+ EWS bot">gustavo.noronha</who>
    <bug_when>2011-12-07 11:43:35 -0800</bug_when>
    <thetext>Comment on attachment 118234
Fix gtk again

Attachment 118234 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/10748211</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516805</commentid>
    <comment_count>8</comment_count>
      <attachid>118247</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2011-12-07 11:51:07 -0800</bug_when>
    <thetext>Created attachment 118247
Fix gtk again and adjust some xcodeproj settings and paths</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516849</commentid>
    <comment_count>9</comment_count>
      <attachid>118247</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2011-12-07 12:53:07 -0800</bug_when>
    <thetext>Comment on attachment 118247
Fix gtk again and adjust some xcodeproj settings and paths

Attachment 118247 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/10767181</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516853</commentid>
    <comment_count>10</comment_count>
      <attachid>118257</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2011-12-07 13:00:05 -0800</bug_when>
    <thetext>Created attachment 118257
Trying again with gtk</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517514</commentid>
    <comment_count>11</comment_count>
      <attachid>118257</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-12-08 10:15:31 -0800</bug_when>
    <thetext>Comment on attachment 118257
Trying again with gtk

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

&gt; Source/WebKit2/UIProcess/Notifications/WebNotification.cpp:38
&gt; +WebNotification::WebNotification()
&gt; +{
&gt; +}

Shouldn’t we set m_notificationID to 0 in this constructor? I suppose maybe not if we always just decode afterwards, but it seems slightly strange that the strings will both be initialized and the notification will not.

&gt; Source/WebKit2/UIProcess/Notifications/WebNotification.cpp:49
&gt; +WebNotification::~WebNotification()
&gt; +{
&gt; +}

I suggest not defining or declaring this and just letting the compiler generate it.

&gt; Source/WebKit2/UIProcess/Notifications/WebNotificationManagerProxy.cpp:53
&gt; +WebNotificationManagerProxy::~WebNotificationManagerProxy()
&gt; +{
&gt; +}

Seems we should just let the compiler generate this and need not define or declare it.

&gt; Source/WebKit2/WebProcess/Notifications/NotificationPermissionRequestManager.cpp:62
&gt; +NotificationPermissionRequestManager::~NotificationPermissionRequestManager()
&gt; +{
&gt; +}

Seems we should just let the compiler generate this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517517</commentid>
    <comment_count>12</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2011-12-08 10:18:55 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 118257 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=118257&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/Notifications/WebNotification.cpp:38
&gt; &gt; +WebNotification::WebNotification()
&gt; &gt; +{
&gt; &gt; +}
&gt; 
&gt; Shouldn’t we set m_notificationID to 0 in this constructor? I suppose maybe not if we always just decode afterwards, but it seems slightly strange that the strings will both be initialized and the notification will not.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/Notifications/WebNotification.cpp:49
&gt; &gt; +WebNotification::~WebNotification()
&gt; &gt; +{
&gt; &gt; +}
&gt; 
&gt; I suggest not defining or declaring this and just letting the compiler generate it.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/Notifications/WebNotificationManagerProxy.cpp:53
&gt; &gt; +WebNotificationManagerProxy::~WebNotificationManagerProxy()
&gt; &gt; +{
&gt; &gt; +}
&gt; 
&gt; Seems we should just let the compiler generate this and need not define or declare it.
&gt; 
&gt; &gt; Source/WebKit2/WebProcess/Notifications/NotificationPermissionRequestManager.cpp:62
&gt; &gt; +NotificationPermissionRequestManager::~NotificationPermissionRequestManager()
&gt; &gt; +{
&gt; &gt; +}
&gt; 
&gt; Seems we should just let the compiler generate this.

Will do. Thank you!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517580</commentid>
    <comment_count>13</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2011-12-08 11:07:16 -0800</bug_when>
    <thetext>Committed r102352: &lt;http://trac.webkit.org/changeset/102352&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118147</attachid>
            <date>2011-12-06 17:07:13 -0800</date>
            <delta_ts>2011-12-06 17:27:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73960-20111206170840.patch</filename>
            <type>text/plain</type>
            <size>126851</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyMTgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMzA5NWYxYWEyYzA0OTIz
NDM4YzdiMmM5N2QxMDIxMjQ1MmM4ODQwYS4uZDQ0YTQ5OGE4NDY3MzQ5NzliYmQ2MGIyMDNmOTk4
YmNhYWEzNzNlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzNCBAQAorMjAxMS0xMi0wNiAgSm9u
IExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gQWRkIHBlcm1pc3Npb25z
IHN1cHBvcnQgKDczOTYwKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NzM5NjAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEwMzU3MDA4PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRGVyaXZlZFNvdXJj
ZXMubWFrZTogTW92ZWQgbm90aWZpY2F0aW9uIGZpbGVzIHRvIGl0cyBvd24gZGlyZWN0b3J5LiBO
ZWVkIHRvIGFkZCB0aGF0IHBhdGguCisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOiBOZXcgaGVhZGVyIGFuZCBpbXBsIGZpbGVzLgorICAgICAgICAqIFRhcmdldC5w
cmk6IERpdHRvLgorCisgICAgICAgIEltcGxlbWVudCBwZXJtaXNzaW9uIGZ1bmN0aW9ucywgd2hp
Y2ggZ28gdGhyb3VnaCBwZXJtaXNzaW9uIHJlcXVlc3QgbWFuYWdlci4KKworICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uQ2xpZW50OjpyZXF1ZXN0UGVybWlzc2lvbik6Cisg
ICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbkNsaWVudDo6Y2FuY2VsUmVxdWVzdHNGb3JQ
ZXJtaXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uQ2xpZW50OjpjaGVj
a1Blcm1pc3Npb24pOgorCisgICAgICAgIE5ldyBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXIgdG8gbWFrZSBhbmQgY2FuY2VsIHBlcm1pc3Npb24gcmVxdWVzdHMsIGFuZCB0byBy
ZXRyaWV2ZSBjdXJyZW50CisgICAgICAgIHBvbGljeS4KKworICAgICAgICAqIFdlYlByb2Nlc3Mv
Tm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdlYktpdDo6Z2VuZXJhdGVSZXF1ZXN0SUQpOgorICAgICAgICAoV2Vi
S2l0OjpOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJLaXQ6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6Tm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6Tm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjp+Tm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6Tm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyOjpzdGFydFJlcXVlc3QpOiBLZWVwIHRyYWNrIG9mIHRoZSBwcm92aWRlZCBj
YWxsYmFjayBvbmNlCisgICAgICAgIHBvbGljeSBkZWNpc2lvbiBpcyBtYWRlLgorICAgICAgICAo
V2ViS2l0OjpOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OmNhbmNlbFJlcXVl
c3QpOgorICAgICAgICAoV2ViS2l0OjpOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXI6OnBlcm1pc3Npb25MZXZlbCk6IFJldHJpZXZlIGxldmVsIHRocm91Z2ggYSBzeW5jaHJvbm91
cworICAgICAgICBtZXNzYWdlIHRvIHRoZSBwcm94eS4KKyAgICAgICAgKFdlYktpdDo6Tm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpkaWRSZWNlaXZlTm90aWZpY2F0aW9uUGVy
bWlzc2lvbkRlY2lzaW9uKTogSW52b2tlIHRoZSBjYWxsYmFjay4KKyAgICAgICAgKiBXZWJQcm9j
ZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmg6
IEFkZGVkLgorICAgICAgICAoV2ViS2l0Ojppc1JlcXVlc3RJRFZhbGlkKTogTWFrZSBzdXJlIGFu
eSBwcm92aWRlZCByZXF1ZXN0IElEcyBhcmUgdmFsaWQuCisKKyAgICAgICAgQWRkZWQgbmV3IE5v
dGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0IGNsYXNzLgorCisgICAgICAgICogVUlQcm9jZXNz
L05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYktpdDo6Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJLaXQ6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0OjpOb3RpZmlj
YXRpb25QZXJtaXNzaW9uUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6Ok5vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0OjphbGxvdyk6IE5vdGlmeSBtYW5hZ2VyIG9mIGRlY2lzaW9uLgorICAg
ICAgICAoV2ViS2l0OjpOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDo6ZGVueSk6IERpdHRv
LgorICAgICAgICAoV2ViS2l0OjpOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDo6aW52YWxp
ZGF0ZSk6IERpc2Fzc29jaWF0ZSB3aXRoIG1hbmFnZXIuCisgICAgICAgIChXZWJLaXQ6Ok5vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0Ojp0eXBlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTm90
aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oOiBBZGRlZC4KKworICAg
ICAgICBXS0FQSSBzdXBwb3J0IGZvciBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDoKKwor
ICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS0Jhc2UuaDoKKyAgICAgICAgKiBTaGFyZWQvQVBJT2Jq
ZWN0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcDogQWRk
ZWQuCisgICAgICAgIChXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0R2V0VHlwZUlEKToK
KyAgICAgICAgKFdLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RBbGxvdyk6CisgICAgICAg
IChXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0RGVueSk6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaDogQWRkZWQuCisKKyAg
ICAgICAgT3RoZXIgYWRkaXRpb25zIHRvIFdLIEFQSToKKworICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQy9XS05vdGlmaWNhdGlvblByb3ZpZGVyLmg6IEFkZGVkIG5ldyBjYWxsYmFjayBmb3IgV0tO
b3RpZmljYXRpb25Qcm92aWRlcnMsIHRvIHJldHVybiBwb2xpY3kKKyAgICAgICAgZm9yIGEgZ2l2
ZW4gc2VjdXJpdHkgb3JpZ2luLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaDog
QWRkZWQgbmV3IGNhbGxiYWNrIHRvIFdLUGFnZVVJQ2xpZW50IHRvIGFzayB1c2VyIHRvIGRlY2lk
ZSBvbiBwb2xpY3kuCisKKyAgICAgICAgTmV3IE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5IHRvIGNyZWF0ZSByZXF1ZXN0cy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9O
b3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNw
cDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5OjpOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSk6
CisgICAgICAgIChXZWJLaXQ6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5OjppbnZhbGlkYXRlUmVxdWVzdHMpOgorICAgICAgICAoV2ViS2l0OjpOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Y3JlYXRlUmVxdWVzdCk6CisgICAgICAgIChX
ZWJLaXQ6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpkaWRSZWNl
aXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
Tm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5o
OiBBZGRlZC4KKworICAgICAgICBBZGRlZCBuZXcgbWVzc2FnZSB0byBub3RpZmljYXRpb24gbWFu
YWdlcjogTm90aWZpY2F0aW9uUGVybWlzc2lvbkxldmVsLCB0byByZXRyaWV2ZSBwb2xpY3kuIFRo
ZSBjdXJyZW50CisgICAgICAgIEpTIEFQSSByZXRyaWV2ZXMgdGhlIHBlcm1pc3Npb24gc3luY2hy
b25vdXNseSwgc28gdGhlIG1lc3NhZ2UgbmVlZHMgdG8gYmUgc2VudCBzeW5jaHJvbm91c2x5IGFs
c28uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25N
YW5hZ2VyUHJveHkubWVzc2FnZXMuaW46IE1vdmVkIGZyb20gU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbi4KKyAgICAgICAgKiBV
SVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHA6IE1vdmVk
IGZyb20gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmNw
cC4KKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uUHJvdmlkZXI6OnBvbGljeUZvck5v
dGlmaWNhdGlvblBlcm1pc3Npb25BdE9yaWdpbik6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vz
cy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmg6IE1vdmVkIGZyb20gU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmguCisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKTogQm9pbGVycGxhdGUgdG8gZm9yd2Fy
ZCBtZXNzYWdlcyB0byBub3RpZmljYXRpb24gbWFuYWdlci4KKworICAgICAgICAqIFVJUHJvY2Vz
cy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHA6IE1vdmVkIGZy
b20gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5j
cHAuCisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5OjpXZWJOb3Rp
ZmljYXRpb25NYW5hZ2VyUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25N
YW5hZ2VyUHJveHk6On5XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OmludmFsaWRhdGUpOgorICAgICAgICAo
V2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OmluaXRpYWxpemVQcm92aWRlcik6
CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2
ZU1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6
OmRpZFJlY2VpdmVTeW5jTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlv
bk1hbmFnZXJQcm94eTo6c2hvdyk6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1h
bmFnZXJQcm94eTo6Y2FuY2VsKToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFu
YWdlclByb3h5OjpkaWREZXN0cm95Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Tm90aWZpY2F0aW9uTWFuYWdlclByb3h5Ojpub3RpZmljYXRpb25QZXJtaXNzaW9uTGV2ZWwpOiBS
ZXRyaWV2ZSB0aGUgcG9saWN5IGZyb20gdGhlIHByb3ZpZGVyLgorICAgICAgICAoV2ViS2l0OjpX
ZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OnByb3ZpZGVyRGlkU2hvd05vdGlmaWNhdGlvbik6
CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6cHJvdmlkZXJE
aWRDbGlja05vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1h
bmFnZXJQcm94eTo6cHJvdmlkZXJEaWRDbG9zZU5vdGlmaWNhdGlvbnMpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oOiBNb3Zl
ZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJv
eHkuaC4KKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5OjpjbGVh
ckNvbnRleHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6
OnR5cGUpOgorCisgICAgICAgIEFkZGVkIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5IHRvIFdlYlBhZ2VQcm94eSwgdG8gYWxsb3cgYSByZXF1ZXN0IGZvciBwZXJtaXNz
aW9uIHRvCisgICAgICAgIGdvIHRocm91Z2ggdG8gdGhlIFVJIGNsaWVudC4gQWRkZWQgbmV3IG1l
c3NhZ2UgdG8gV2ViUGFnZVByb3h5LCBSZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbi4KKwor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OldlYlBhZ2VQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6Y2xvc2UpOiBJbnZhbGlkYXRlIHBlbmRpbmcgcmVxdWVzdHMuCisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2VQcm94eTo6cHJvY2Vzc0RpZENyYXNoKTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2VQcm94eTo6cmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb24pOiBGb3J3YXJkIHJl
cXVlc3QgdG8gVUkgY2xpZW50LgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorCisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVUlDbGll
bnQ6OmRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViVUlDbGllbnQuaDoKKworICAgICAgICBBZGRlZCBuZXcgbWVzc2Fn
ZSBEaWRSZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uLiBUaGUgV2ViUGFnZSBm
b3J3YXJkcyB0aGUgbWVzc2FnZSB0byB0aGUKKyAgICAgICAgcGVybWlzc2lvbiByZXF1ZXN0IG1h
bmFnZXIuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5p
bjogQWRkZWQgbmV3IG1lc3NhZ2UgRGlkUmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25EZWNp
c2lvbgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6bm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKTog
Q3JlYXRlIG1hbmFnZXIgb24gcmVxdWVzdC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlk
UmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25EZWNpc2lvbik6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKworICAgICAgICBNb3ZpbmcgZmlsZXMgdG8gTm90aWZp
Y2F0aW9ucy8gc3ViZGlyZWN0b3J5LgorCisgICAgICAgICogVUlQcm9jZXNzL05vdGlmaWNhdGlv
bnMvV2ViTm90aWZpY2F0aW9uLmNwcDogTW92ZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViTm90aWZpY2F0aW9uLmNwcC4KKyAgICAgICAgKiBVSVByb2Nlc3MvTm90aWZpY2F0aW9u
cy9XZWJOb3RpZmljYXRpb24uaDogTW92ZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViTm90aWZpY2F0aW9uLmguCisKIDIwMTEtMTItMDYgIEFsZXhhbmRlciBGw6Zyw7h5ICA8YWxl
eGFuZGVyLmZhZXJveUBub2tpYS5jb20+CiAKICAgICAgICAgW1F0XSBGaXggYXNzZXJ0aW9uIGlu
IFF0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZS5jcHA6NDY4CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJj
ZXMubWFrZQppbmRleCBhMzAwZjg0YmQ5YmQ5M2U1ZWUyNzYzODEwODA2MTE1MzI1ZDFhMjg1Li5l
MjI3N2U0NWM2ZmVkOTkzZTBhZTUyNjhlNDUyMDY5NTM5ODFiNDdkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQyL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKQEAgLTQwLDYgKzQwLDcgQEAgVlBBVEggPSBcCiAgICAgJChXZWJLaXQy
KS9XZWJQcm9jZXNzIFwKICAgICAkKFdlYktpdDIpL1VJUHJvY2VzcyBcCiAgICAgJChXZWJLaXQy
KS9VSVByb2Nlc3MvRG93bmxvYWRzIFwKKyAgICAkKFdlYktpdDIpL1VJUHJvY2Vzcy9Ob3RpZmlj
YXRpb25zIFwKICAgICAkKFdlYktpdDIpL1VJUHJvY2Vzcy9QbHVnaW5zIFwKICMKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCmluZGV4IDZjZjRmMGYwM2I3MGE4NzY1MjBiYmUyNjdj
NWQ4YjgyMjJjNTkxOWEuLmFkYmNlNmQ2ODRiNjY4ZGQwMTAzOWEyZjQ4MWFmZWZjNGI2NGU5ZWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKQEAgLTk3LDYgKzk3LDcgQEAgdHlw
ZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tNZWRpYUNhY2hlTWFuYWdlciogV0tNZWRpYUNhY2hl
TWFuYWdlclJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLTmF2aWdhdGlvbkRhdGEq
IFdLTmF2aWdhdGlvbkRhdGFSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS05vdGlm
aWNhdGlvbiogV0tOb3RpZmljYXRpb25SZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVX
S05vdGlmaWNhdGlvbk1hbmFnZXIqIFdLTm90aWZpY2F0aW9uTWFuYWdlclJlZjsKK3R5cGVkZWYg
Y29uc3Qgc3RydWN0IE9wYXF1ZVdLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QqIFdLTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFx
dWVXS05vdGlmaWNhdGlvblByb3ZpZGVyKiBXS05vdGlmaWNhdGlvblByb3ZpZGVyUmVmOwogdHlw
ZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tPcGVuUGFuZWxQYXJhbWV0ZXJzKiBXS09wZW5QYW5l
bFBhcmFtZXRlcnNSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS09wZW5QYW5lbFJl
c3VsdExpc3RlbmVyKiBXS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyUmVmOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L0FQSU9iamVjdC5oCmluZGV4IGRlY2JkYjk3YTdjNjkxMjMwMTk0YjJjMTY5YjI1MTYzMDdkNzI1
OTcuLjI5YzcyNmQwN2U1M2M5ZGFjN2ZjYzFkYzk0OTg4ZWYwMjY0ZmQyMmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQVBJT2JqZWN0LmgKQEAgLTkxLDYgKzkxLDcgQEAgcHVibGljOgogICAgICAgICBUeXBl
TmF2aWdhdGlvbkRhdGEsCiAgICAgICAgIFR5cGVOb3RpZmljYXRpb24sCiAgICAgICAgIFR5cGVO
b3RpZmljYXRpb25NYW5hZ2VyLAorICAgICAgICBUeXBlTm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3QsCiAgICAgICAgIFR5cGVPcGVuUGFuZWxQYXJhbWV0ZXJzLAogICAgICAgICBUeXBlT3Bl
blBhbmVsUmVzdWx0TGlzdGVuZXIsCiAgICAgICAgIFR5cGVQYWdlLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKaW5kZXgg
OTc2OTE0ZTU5YjhkNDUxNWJlNjYyMGY5ZTBiNGU2MjRjNjNlYmJiMi4uZTE4ODU5MTliMGViNDMx
YjA2MzIwYTg3ZDgwOTkzYjYwOTczZDI3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVGFy
Z2V0LnByaQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCkBAIC0xNTYsNiArMTU2LDcg
QEAgSEVBREVSUyArPSBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLTmF2aWdhdGlvbkRhdGEuaCBc
CiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9uLmggXAogICAgIFVJUHJvY2Vzcy9B
UEkvQy9XS05vdGlmaWNhdGlvbk1hbmFnZXIuaCBcCisgICAgVUlQcm9jZXNzL0FQSS9DL1dLTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLTm90
aWZpY2F0aW9uUHJvdmlkZXIuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oIFwKICAg
ICBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3JvdXAuaCBcCkBAIC0xOTMsNiArMTk0LDExIEBAIEhF
QURFUlMgKz0gXAogICAgIFVJUHJvY2Vzcy9HZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UHJv
eHkuaCBcCiAgICAgVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oIFwKICAgICBV
SVByb2Nlc3MvTGF1bmNoZXIvVGhyZWFkTGF1bmNoZXIuaCBcCisgICAgVUlQcm9jZXNzL05vdGlm
aWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaCBcCisgICAgVUlQcm9jZXNz
L05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHku
aCBcCisgICAgVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uLmggXAorICAg
IFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oIFwK
KyAgICBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25Qcm92aWRlci5oIFwK
ICAgICBVSVByb2Nlc3MvUGFnZUNsaWVudC5oIFwKICAgICBVSVByb2Nlc3MvUGx1Z2lucy9QbHVn
aW5JbmZvU3RvcmUuaCBcCiAgICAgVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5
LmggXApAQCAtMjMxLDkgKzIzNyw2IEBAIEhFQURFUlMgKz0gXAogICAgIFVJUHJvY2Vzcy9XZWJM
b2FkZXJDbGllbnQuaCBcCiAgICAgVUlQcm9jZXNzL1dlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHku
aCBcCiAgICAgVUlQcm9jZXNzL1dlYk5hdmlnYXRpb25EYXRhLmggXAotICAgIFVJUHJvY2Vzcy9X
ZWJOb3RpZmljYXRpb24uaCBcCi0gICAgVUlQcm9jZXNzL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQ
cm94eS5oIFwKLSAgICBVSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuaCBcCiAgICAg
VUlQcm9jZXNzL1dlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHkuaCBcCiAgICAgVUlQcm9j
ZXNzL1dlYlBhZ2VDb250ZXh0TWVudUNsaWVudC5oIFwKICAgICBVSVByb2Nlc3MvV2ViUGFnZUdy
b3VwLmggXApAQCAtMzAzLDYgKzMwNiw3IEBAIEhFQURFUlMgKz0gXAogICAgIFdlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUNvZGVycy5oIFwKICAgICBX
ZWJQcm9jZXNzL0tleVZhbHVlU3RvcmFnZS9XZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmggXAog
ICAgIFdlYlByb2Nlc3MvTWVkaWFDYWNoZS9XZWJNZWRpYUNhY2hlTWFuYWdlci5oIFwKKyAgICBX
ZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyLmggXAogICAgIFdlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5h
Z2VyLmggXAogICAgIFdlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZS9XZWJSZXNvdXJjZUNhY2hlTWFu
YWdlci5oIFwKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE1ldGhvZC5oIFwK
QEAgLTQ3NCw2ICs0NzgsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tJ
bnNwZWN0b3IuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tOb3RpZmljYXRpb24uY3BwIFwK
ICAgICBVSVByb2Nlc3MvQVBJL0MvV0tOb3RpZmljYXRpb25NYW5hZ2VyLmNwcCBcCisgICAgVUlQ
cm9jZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuY3BwIFwKICAgICBV
SVByb2Nlc3MvQVBJL0MvV0tPcGVuUGFuZWxQYXJhbWV0ZXJzLmNwcCBcCiAgICAgVUlQcm9jZXNz
L0FQSS9DL1dLT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJ
L0MvV0tOYXZpZ2F0aW9uRGF0YS5jcHAgXApAQCAtNTA3LDYgKzUxMiwxMSBAQCBTT1VSQ0VTICs9
IFwKICAgICBVSVByb2Nlc3MvTGF1bmNoZXIvVGhyZWFkTGF1bmNoZXIuY3BwIFwKICAgICBVSVBy
b2Nlc3MvTGF1bmNoZXIvcXQvUHJvY2Vzc0xhdW5jaGVyUXQuY3BwIFwKICAgICBVSVByb2Nlc3Mv
TGF1bmNoZXIvcXQvVGhyZWFkTGF1bmNoZXJRdC5jcHAgXAorICAgIFVJUHJvY2Vzcy9Ob3RpZmlj
YXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcCBcCisgICAgVUlQcm9jZXNz
L05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHku
Y3BwIFwKKyAgICBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb24uY3BwIFwK
KyAgICBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHku
Y3BwIFwKKyAgICBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25Qcm92aWRl
ci5jcHAgXAogICAgIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbkluZm9TdG9yZS5jcHAgXAogICAg
IFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5jcHAgXAogICAgIFVJUHJvY2Vz
cy9QbHVnaW5zL1BsdWdpblByb2Nlc3NNYW5hZ2VyLmNwcCBcCkBAIC01NDUsOSArNTU1LDYgQEAg
U09VUkNFUyArPSBcCiAgICAgVUlQcm9jZXNzL1dlYkxvYWRlckNsaWVudC5jcHAgXAogICAgIFVJ
UHJvY2Vzcy9XZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5LmNwcCBcCiAgICAgVUlQcm9jZXNzL1dl
Yk5hdmlnYXRpb25EYXRhLmNwcCBcCi0gICAgVUlQcm9jZXNzL1dlYk5vdGlmaWNhdGlvbi5jcHAg
XAotICAgIFVJUHJvY2Vzcy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwIFwKLSAgICBV
SVByb2Nlc3MvV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwIFwKICAgICBVSVByb2Nlc3MvV2Vi
T3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eS5jcHAgXAogICAgIFVJUHJvY2Vzcy9XZWJQYWdl
Q29udGV4dE1lbnVDbGllbnQuY3BwIFwKICAgICBVSVByb2Nlc3MvV2ViUGFnZUdyb3VwLmNwcCBc
CkBAIC02MzMsNiArNjQwLDcgQEAgU09VUkNFUyArPSBcCiAgICAgV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9xdC9JbmplY3RlZEJ1bmRsZVF0LmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9LZXlWYWx1
ZVN0b3JhZ2UvV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlci5jcHAgXAogICAgIFdlYlByb2Nlc3Mv
TWVkaWFDYWNoZS9XZWJNZWRpYUNhY2hlTWFuYWdlci5jcHAgXAorICAgIFdlYlByb2Nlc3MvTm90
aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwIFwKICAg
ICBXZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAgXAog
ICAgIFdlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZS9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlci5jcHAg
XAogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QTWV0aG9kLmNwcCBcCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKaW5kZXggOTc3N2MxYWNhZjQ4
YzkwZmY0NGUzZjk1YzJiYzVhZGEyYzM1YjJkOC4uMGU3MTc1YTQyOGY3ODA4MjBjODk3MWRlMzlj
OTY1MTBhYWFmYWM5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLQVBJQ2FzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNh
c3QuaApAQCAtNTIsNiArNTIsNyBAQCBjbGFzcyBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5
OwogY2xhc3MgQXV0aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVyOwogY2xhc3MgRG93bmxvYWRQ
cm94eTsKIGNsYXNzIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RQcm94eTsKK2NsYXNzIE5v
dGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0OwogY2xhc3MgV2ViQXBwbGljYXRpb25DYWNoZU1h
bmFnZXJQcm94eTsKIGNsYXNzIFdlYkJhY2tGb3J3YXJkTGlzdDsKIGNsYXNzIFdlYkJhY2tGb3J3
YXJkTGlzdEl0ZW07CkBAIC0xMDgsNiArMTA5LDcgQEAgV0tfQUREX0FQSV9NQVBQSU5HKFdLS2V5
VmFsdWVTdG9yYWdlTWFuYWdlclJlZiwgV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlclByb3h5KQog
V0tfQUREX0FQSV9NQVBQSU5HKFdLTWVkaWFDYWNoZU1hbmFnZXJSZWYsIFdlYk1lZGlhQ2FjaGVN
YW5hZ2VyUHJveHkpCiBXS19BRERfQVBJX01BUFBJTkcoV0tOYXZpZ2F0aW9uRGF0YVJlZiwgV2Vi
TmF2aWdhdGlvbkRhdGEpCiBXS19BRERfQVBJX01BUFBJTkcoV0tOb3RpZmljYXRpb25NYW5hZ2Vy
UmVmLCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkpCitXS19BRERfQVBJX01BUFBJTkcoV0tO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdFJlZiwgTm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3QpCiBXS19BRERfQVBJX01BUFBJTkcoV0tOb3RpZmljYXRpb25Qcm92aWRlclJlZiwgV2Vi
Tm90aWZpY2F0aW9uUHJvdmlkZXIpCiBXS19BRERfQVBJX01BUFBJTkcoV0tOb3RpZmljYXRpb25S
ZWYsIFdlYk5vdGlmaWNhdGlvbikKIFdLX0FERF9BUElfTUFQUElORyhXS09wZW5QYW5lbFBhcmFt
ZXRlcnNSZWYsIFdlYk9wZW5QYW5lbFBhcmFtZXRlcnMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tOb3RpZmljYXRpb25QZXJtaXNzaW9u
UmVxdWVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTk2MzQ4ZDcyNmVkYzQyYjBjNzcwNDBiOTk1Y2M4ODdm
ZTFlNTRhYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcApAQCAtMCwwICsxLDQ3IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldLTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3QuaCIKKworI2luY2x1ZGUgIk5vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0LmgiCisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJL
aXQ7CisKK1dLVHlwZUlEIFdLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RHZXRUeXBlSUQo
KQoreworICAgIHJldHVybiB0b0FQSShOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDo6QVBJ
VHlwZSk7Cit9CisKK3ZvaWQgV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdEFsbG93KFdL
Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RSZWYgbm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3QpCit7CisgICAgcmV0dXJuIHRvSW1wbChub3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVz
dCktPmFsbG93KCk7Cit9CisKK3ZvaWQgV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdERl
bnkoV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdFJlZiBub3RpZmljYXRpb25QZXJtaXNz
aW9uUmVxdWVzdCkKK3sKKyAgICByZXR1cm4gdG9JbXBsKG5vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0KS0+ZGVueSgpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMTk0N2EwNmFhYmFlMjk1MTVkNWQ3M2QwNDIwNGQ1YjM5M2JmMTgxNwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0LmgKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYg
V0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdF9oCisjZGVmaW5lIFdLTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RfaAorCisjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KKworI2lm
ZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCitXS19FWFBPUlQgV0tUeXBl
SUQgV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdEdldFR5cGVJRCgpOworCitXS19FWFBP
UlQgdm9pZCBXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0QWxsb3coV0tOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdFJlZiBub3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCk7CitX
S19FWFBPUlQgdm9pZCBXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0RGVueShXS05vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0UmVmIG5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
KTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKworI2VuZGlmIC8vIFdLTm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3RfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9uUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNhdGlvblByb3ZpZGVyLmgKaW5kZXggNmZhNjViYmU3ZWI5
NGE2YTU4ZDRjMWYyZDRmN2Y3YjQ2M2FlMGQyOC4uNzA0ODEzZjFjZjliMTJmNWM5YTkxZjE3Mjcy
MjcxMGI4NjI1MDYxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLTm90aWZpY2F0aW9uUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tOb3RpZmljYXRpb25Qcm92aWRlci5oCkBAIC0zNSwxNyArMzUsMTkgQEAgZXh0ZXJu
ICJDIiB7CiB0eXBlZGVmIHZvaWQgKCpXS05vdGlmaWNhdGlvblByb3ZpZGVyU2hvd0NhbGxiYWNr
KShXS05vdGlmaWNhdGlvblJlZiBub3RpZmljYXRpb24sIGNvbnN0IHZvaWQqIGNsaWVudEluZm8p
OwogdHlwZWRlZiB2b2lkICgqV0tOb3RpZmljYXRpb25Qcm92aWRlckNhbmNlbENhbGxiYWNrKShX
S05vdGlmaWNhdGlvblJlZiBub3RpZmljYXRpb24sIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwog
dHlwZWRlZiB2b2lkICgqV0tOb3RpZmljYXRpb25Qcm92aWRlckRpZERlc3Ryb3lOb3RpZmljYXRp
b25DYWxsYmFjaykoV0tOb3RpZmljYXRpb25SZWYgbm90aWZpY2F0aW9uLCBjb25zdCB2b2lkKiBj
bGllbnRJbmZvKTsKK3R5cGVkZWYgaW50ICgqV0tOb3RpZmljYXRpb25Qcm92aWRlclBvbGljeUZv
ck5vdGlmaWNhdGlvblBlcm1pc3Npb25BdE9yaWdpbkNhbGxiYWNrKShXS1NlY3VyaXR5T3JpZ2lu
UmVmIG9yaWdpbiwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS05v
dGlmaWNhdGlvblByb3ZpZGVyQWRkTm90aWZpY2F0aW9uTWFuYWdlckNhbGxiYWNrKShXS05vdGlm
aWNhdGlvbk1hbmFnZXJSZWYgbWFuYWdlciwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiB0eXBl
ZGVmIHZvaWQgKCpXS05vdGlmaWNhdGlvblByb3ZpZGVyUmVtb3ZlTm90aWZpY2F0aW9uTWFuYWdl
ckNhbGxiYWNrKShXS05vdGlmaWNhdGlvbk1hbmFnZXJSZWYgbWFuYWdlciwgY29uc3Qgdm9pZCog
Y2xpZW50SW5mbyk7CiAKIHN0cnVjdCBXS05vdGlmaWNhdGlvblByb3ZpZGVyIHsKLSAgICBpbnQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVy
c2lvbjsKLSAgICBjb25zdCB2b2lkKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY2xpZW50SW5mbzsKLSAgICBXS05vdGlmaWNhdGlvblByb3ZpZGVyU2hvd0Nh
bGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgc2hvdzsKLSAgICBXS05vdGlmaWNhdGlvblBy
b3ZpZGVyQ2FuY2VsQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgY2FuY2VsOwotICAgIFdL
Tm90aWZpY2F0aW9uUHJvdmlkZXJEaWREZXN0cm95Tm90aWZpY2F0aW9uQ2FsbGJhY2sgICAgICBk
aWREZXN0cm95Tm90aWZpY2F0aW9uOwotICAgIFdLTm90aWZpY2F0aW9uUHJvdmlkZXJBZGROb3Rp
ZmljYXRpb25NYW5hZ2VyQ2FsbGJhY2sgICAgICBhZGROb3RpZmljYXRpb25NYW5hZ2VyOwotICAg
IFdLTm90aWZpY2F0aW9uUHJvdmlkZXJSZW1vdmVOb3RpZmljYXRpb25NYW5hZ2VyQ2FsbGJhY2sg
ICByZW1vdmVOb3RpZmljYXRpb25NYW5hZ2VyOworICAgIGludCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uOwor
ICAgIGNvbnN0IHZvaWQqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjbGllbnRJbmZvOworICAgIFdLTm90aWZpY2F0aW9uUHJvdmlkZXJT
aG93Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93OworICAg
IFdLTm90aWZpY2F0aW9uUHJvdmlkZXJDYW5jZWxDYWxsYmFjayAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjYW5jZWw7CisgICAgV0tOb3RpZmljYXRpb25Qcm92aWRlckRpZERlc3Ry
b3lOb3RpZmljYXRpb25DYWxsYmFjayAgICAgICAgICAgICAgICAgIGRpZERlc3Ryb3lOb3RpZmlj
YXRpb247CisgICAgV0tOb3RpZmljYXRpb25Qcm92aWRlclBvbGljeUZvck5vdGlmaWNhdGlvblBl
cm1pc3Npb25BdE9yaWdpbkNhbGxiYWNrIHBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25B
dE9yaWdpbjsKKyAgICBXS05vdGlmaWNhdGlvblByb3ZpZGVyQWRkTm90aWZpY2F0aW9uTWFuYWdl
ckNhbGxiYWNrICAgICAgICAgICAgICAgICAgYWRkTm90aWZpY2F0aW9uTWFuYWdlcjsKKyAgICBX
S05vdGlmaWNhdGlvblByb3ZpZGVyUmVtb3ZlTm90aWZpY2F0aW9uTWFuYWdlckNhbGxiYWNrICAg
ICAgICAgICAgICAgcmVtb3ZlTm90aWZpY2F0aW9uTWFuYWdlcjsKIH07CiB0eXBlZGVmIHN0cnVj
dCBXS05vdGlmaWNhdGlvblByb3ZpZGVyIFdLTm90aWZpY2F0aW9uUHJvdmlkZXI7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaAppbmRleCBjYjVhZDJmMTU5MjMwYmJhMDY5
ODFhNDY4NzUwZjYxYmUwMDQ2OGJkLi4xZGU3MDYyOGM4OGIxZDBjMWQwYjQ1YWMzNjdhNWU5NzA2
ZDUxOTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdl
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oCkBAIC0xOTcs
NiArMTk3LDcgQEAgdHlwZWRlZiB2b2lkICgqV0tQYWdlRHJhd0Zvb3RlckNhbGxiYWNrKShXS1Bh
Z2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tSZWMKIHR5cGVkZWYgdm9pZCAoKldLUGFn
ZVByaW50RnJhbWVDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIGNv
bnN0IHZvaWQqIGNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tQYWdlU2F2ZURhdGFUb0Zp
bGVJbkRvd25sb2Fkc0ZvbGRlckNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYg
c3VnZ2VzdGVkRmlsZW5hbWUsIFdLU3RyaW5nUmVmIG1pbWVUeXBlLCBXS1VSTFJlZiBvcmlnaW5h
dGluZ1VSTCwgV0tEYXRhUmVmIGRhdGEsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogdHlwZWRl
ZiBib29sICgqV0tQYWdlU2hvdWxkSW50ZXJydXB0SmF2YVNjcmlwdENhbGxiYWNrKShXS1BhZ2VS
ZWYgcGFnZSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7Cit0eXBlZGVmIHZvaWQgKCpXS1BhZ2VE
ZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdENhbGxiYWNrKShXS1Bh
Z2VSZWYgcGFnZSwgV0tTZWN1cml0eU9yaWdpblJlZiBvcmlnaW4sIFdLTm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RSZWYgcGVybWlzc2lvblJlcXVlc3QsIGNvbnN0IHZvaWQgKmNsaWVudElu
Zm8pOwogCiAvLyBEZXByZWNhdGVkICAgIAogdHlwZWRlZiBXS1BhZ2VSZWYgKCpXS1BhZ2VDcmVh
dGVOZXdQYWdlQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCkoV0tQYWdlUmVmIHBhZ2Us
IFdLRGljdGlvbmFyeVJlZiBmZWF0dXJlcywgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIFdL
RXZlbnRNb3VzZUJ1dHRvbiBtb3VzZUJ1dHRvbiwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CkBA
IC0yNTAsNiArMjUxLDcgQEAgc3RydWN0IFdLUGFnZVVJQ2xpZW50IHsKICAgICAvLyBWZXJzaW9u
IDEKICAgICBXS1BhZ2VDcmVhdGVOZXdQYWdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNyZWF0ZU5ld1BhZ2U7CiAgICAgV0tQYWdlTW91c2VEaWRNb3Zl
T3ZlckVsZW1lbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb3VzZURp
ZE1vdmVPdmVyRWxlbWVudDsKKyAgICBXS1BhZ2VEZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdENhbGxiYWNrICAgICAgICAgIGRlY2lkZVBvbGljeUZvck5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0OwogfTsKIHR5cGVkZWYgc3RydWN0IFdLUGFnZVVJQ2xpZW50
IFdLUGFnZVVJQ2xpZW50OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Tm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMjVkMzdkYTRiOTk0YjZkMGNkZGJlNDI1NDQwMjgzYWMxZTBl
NjlhNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmlj
YXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcApAQCAtMCwwICsxLDY3IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk5vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0LmgiCisKKyNpbmNsdWRlICJOb3RpZmljYXRpb25QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKyAgICAKK1Bhc3NS
ZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q+IE5vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0OjpjcmVhdGUoV2ViS2l0OjpOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eSAqbWFuYWdlciwgdWludDY0X3Qgbm90aWZpY2F0aW9uSUQpCit7CisgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdChtYW5hZ2VyLCBu
b3RpZmljYXRpb25JRCkpOworfQorCitOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDo6Tm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QoTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkqIG1hbmFnZXIsIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQorICAgIDogbV9t
YW5hZ2VyKG1hbmFnZXIpCisgICAgLCBtX25vdGlmaWNhdGlvbklEKG5vdGlmaWNhdGlvbklEKQor
eworfQorCit2b2lkIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0OjphbGxvdygpCit7Cisg
ICAgaWYgKCFtX21hbmFnZXIpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBtX21hbmFnZXIt
PmRpZFJlY2VpdmVOb3RpZmljYXRpb25QZXJtaXNzaW9uRGVjaXNpb24obV9ub3RpZmljYXRpb25J
RCwgdHJ1ZSk7CisgICAgbV9tYW5hZ2VyID0gMDsKK30KKwordm9pZCBOb3RpZmljYXRpb25QZXJt
aXNzaW9uUmVxdWVzdDo6ZGVueSgpCit7CisgICAgaWYgKCFtX21hbmFnZXIpCisgICAgICAgIHJl
dHVybjsKKyAgICAKKyAgICBtX21hbmFnZXItPmRpZFJlY2VpdmVOb3RpZmljYXRpb25QZXJtaXNz
aW9uRGVjaXNpb24obV9ub3RpZmljYXRpb25JRCwgZmFsc2UpOworICAgIG1fbWFuYWdlciA9IDA7
Cit9CisKK3ZvaWQgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q6OmludmFsaWRhdGUoKQor
eworICAgIG1fbWFuYWdlciA9IDA7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRp
b25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjRkYjk4YjBj
NTY4OWFkZjY5YWMwMjk5ZmEyZmU2MjdkYmExNTZmOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0LmgKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTm90aWZpY2F0
aW9uUGVybWlzc2lvblJlcXVlc3RfaAorI2RlZmluZSBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdF9oCisKKyNpbmNsdWRlICJBUElPYmplY3QuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0
ci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgTm90aWZpY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHk7CisKK2NsYXNzIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0IDogcHVibGljIEFQSU9iamVjdCB7CitwdWJsaWM6CisgICAgc3RhdGljIGNvbnN0IFR5cGUg
QVBJVHlwZSA9IFR5cGVOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDsKKyAgICAKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdD4gY3JlYXRlKE5v
dGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5KiwgdWludDY0X3Qgbm90aWZp
Y2F0aW9uSUQpOworICAgIAorICAgIHZvaWQgYWxsb3coKTsKKyAgICB2b2lkIGRlbnkoKTsKKyAg
ICAKKyAgICB2b2lkIGludmFsaWRhdGUoKTsKKyAgICAKK3ByaXZhdGU6CisgICAgTm90aWZpY2F0
aW9uUGVybWlzc2lvblJlcXVlc3QoTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHkqLCB1aW50NjRfdCBub3RpZmljYXRpb25JRCk7CisgICAgCisgICAgdmlydHVhbCBUeXBl
IHR5cGUoKSBjb25zdCB7IHJldHVybiBBUElUeXBlOyB9CisgICAgCisgICAgTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkqIG1fbWFuYWdlcjsKKyAgICB1aW50NjRfdCBt
X25vdGlmaWNhdGlvbklEOyAgICAKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5k
aWYgLy8gTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RQcm94eV9oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90
aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMDc5MjI5ODVlNDU2NWYzYzczY2FkYzNhMGNmNDU1MjE3YzYxOTk2OQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05v
dGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcApAQCAtMCwwICsxLDcw
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgiCisKKyNpbmNsdWRlICJOb3RpZmlj
YXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oIgorI2luY2x1ZGUgIldlYlBhZ2VNZXNzYWdlcy5oIgor
I2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eS5oIgor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHk6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5KFdlYlBh
Z2VQcm94eSogcGFnZSkKKyAgICA6IG1fcGFnZShwYWdlKQoreworfQorCit2b2lkIE5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjppbnZhbGlkYXRlUmVxdWVzdHMoKQor
eworICAgIFBlbmRpbmdSZXF1ZXN0TWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IG1fcGVuZGluZ1Jl
cXVlc3RzLmJlZ2luKCk7CisgICAgUGVuZGluZ1JlcXVlc3RNYXA6OmNvbnN0X2l0ZXJhdG9yIGVu
ZCA9IG1fcGVuZGluZ1JlcXVlc3RzLmVuZCgpOworICAgIGZvciAoOyBpdCAhPSBlbmQ7ICsraXQp
CisgICAgICAgIGl0LT5zZWNvbmQtPmludmFsaWRhdGUoKTsKKyAgICAKKyAgICBtX3BlbmRpbmdS
ZXF1ZXN0cy5jbGVhcigpOworfQorCitQYXNzUmVmUHRyPE5vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0PiBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Y3JlYXRl
UmVxdWVzdCh1aW50NjRfdCBub3RpZmljYXRpb25JRCkKK3sKKyAgICBSZWZQdHI8Tm90aWZpY2F0
aW9uUGVybWlzc2lvblJlcXVlc3Q+IHJlcXVlc3QgPSBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdDo6Y3JlYXRlKHRoaXMsIG5vdGlmaWNhdGlvbklEKTsKKyAgICBtX3BlbmRpbmdSZXF1ZXN0
cy5hZGQobm90aWZpY2F0aW9uSUQsIHJlcXVlc3QuZ2V0KCkpOworICAgIHJldHVybiByZXF1ZXN0
LnJlbGVhc2UoKTsKK30KKwordm9pZCBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eTo6ZGlkUmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRf
dCBub3RpZmljYXRpb25JRCwgYm9vbCBhbGxvdykKK3sKKyAgICBpZiAoIW1fcGFnZS0+aXNWYWxp
ZCgpKQorICAgICAgICByZXR1cm47CisgICAgCisgICAgUmVmUHRyPE5vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0PiByZXF1ZXN0ID0gbV9wZW5kaW5nUmVxdWVzdHMudGFrZShub3RpZmljYXRp
b25JRCk7CisgICAgaWYgKCFyZXF1ZXN0KQorICAgICAgICByZXR1cm47CisgICAgCisgICAgbV9w
YWdlLT5wcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRpZFJlY2VpdmVOb3RpZmlj
YXRpb25QZXJtaXNzaW9uRGVjaXNpb24obm90aWZpY2F0aW9uSUQsIGFsbG93KSwgbV9wYWdlLT5w
YWdlSUQoKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRp
b25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZjYyMjhlNzJhOTRkMmYyMWQ0MTExMTIzMGM3MmRiNTUzNWNiNGEyYQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZm5kZWYgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHlf
aAorI2RlZmluZSBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eV9oCisK
KyNpbmNsdWRlICJOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oIgorI2luY2x1ZGUgPHd0
Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworY2xhc3MgR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFByb3h5OworY2xhc3MgV2Vi
UGFnZVByb3h5OworCitjbGFzcyBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eSB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHkoV2ViUGFnZVByb3h5Kik7CisgICAgCisgICAgdm9pZCBpbnZhbGlkYXRl
UmVxdWVzdHMoKTsKKyAgICAKKyAgICAvLyBDcmVhdGUgYSByZXF1ZXN0IHRvIGJlIHByZXNlbnRl
ZCB0byB0aGUgdXNlci4KKyAgICBQYXNzUmVmUHRyPE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0PiBjcmVhdGVSZXF1ZXN0KHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKTsKKyAgICAKKyAgICAv
LyBDYWxsZWQgYnkgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Qgd2hlbiBhIGRlY2lzaW9u
IGlzIG1hZGUgYnkgdGhlIHVzZXIuCisgICAgdm9pZCBkaWRSZWNlaXZlTm90aWZpY2F0aW9uUGVy
bWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklELCBib29sIGFsbG93KTsKKyAg
ICAKK3ByaXZhdGU6CisgICAgdHlwZWRlZiBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8Tm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3Q+ID4gUGVuZGluZ1JlcXVlc3RNYXA7CisgICAgUGVuZGlu
Z1JlcXVlc3RNYXAgbV9wZW5kaW5nUmVxdWVzdHM7CisgICAgV2ViUGFnZVByb3h5KiBtX3BhZ2U7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworCisjZW5kaWYgLy8gTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHlfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbi5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uM2YwMjU5ODYyNGMxNTZhOThmYmYyMDlhNjIyZTExOTFjMmE2ZmQzZQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlm
aWNhdGlvbi5jcHAKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJXZWJOb3RpZmljYXRpb24uaCIKKworI2luY2x1ZGUgIkFyZ3VtZW50
Q29kZXJzLmgiCisjaW5jbHVkZSAiQXJndW1lbnREZWNvZGVyLmgiCisjaW5jbHVkZSAiQXJndW1l
bnRFbmNvZGVyLmgiCisjaW5jbHVkZSAiQXJndW1lbnRzLmgiCisKK25hbWVzcGFjZSBXZWJLaXQg
eworCitXZWJOb3RpZmljYXRpb246OldlYk5vdGlmaWNhdGlvbigpCit7Cit9CisKK1dlYk5vdGlm
aWNhdGlvbjo6V2ViTm90aWZpY2F0aW9uKGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmlu
ZyYgYm9keSwgdWludDY0X3Qgbm90aWZpY2F0aW9uSUQpCisgICAgOiBtX3RpdGxlKHRpdGxlKQor
ICAgICwgbV9ib2R5KGJvZHkpCisgICAgLCBtX25vdGlmaWNhdGlvbklEKG5vdGlmaWNhdGlvbklE
KQoreworfQorCitXZWJOb3RpZmljYXRpb246On5XZWJOb3RpZmljYXRpb24oKQoreworfQorCit2
b2lkIFdlYk5vdGlmaWNhdGlvbjo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5j
b2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyLT5lbmNvZGUoQ29yZUlQQzo6SW4obV90aXRsZSwg
bV9ib2R5LCBtX25vdGlmaWNhdGlvbklEKSk7Cit9CisKK2Jvb2wgV2ViTm90aWZpY2F0aW9uOjpk
ZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBXZWJOb3RpZmljYXRpb24m
IG5vdGlmaWNhdGlvbikKK3sKKyAgICByZXR1cm4gZGVjb2Rlci0+ZGVjb2RlKENvcmVJUEM6Ok91
dChub3RpZmljYXRpb24ubV90aXRsZSwgbm90aWZpY2F0aW9uLm1fYm9keSwgbm90aWZpY2F0aW9u
Lm1fbm90aWZpY2F0aW9uSUQpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRp
b24uaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNh
dGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmY2ODU4NmYxMjUyMzQzODRhNDUzYTgxY2Q4Mzg0OGJiYWRmZjhk
ZDQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0
aW9ucy9XZWJOb3RpZmljYXRpb24uaApAQCAtMCwwICsxLDgxIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
bmRlZiBXZWJOb3RpZmljYXRpb25faAorI2RlZmluZSBXZWJOb3RpZmljYXRpb25faAorCisjaW5j
bHVkZSAiQVBJT2JqZWN0LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIENvcmVJUEMgeworCitjbGFzcyBB
cmd1bWVudERlY29kZXI7CitjbGFzcyBBcmd1bWVudEVuY29kZXI7CisKK30gLy8gbmFtZXNwYWNl
IENvcmVJUEMKKworbmFtZXNwYWNlIFdlYktpdCB7CisgICAgCitjbGFzcyBXZWJOb3RpZmljYXRp
b24gOiBwdWJsaWMgQVBJT2JqZWN0IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgY29uc3QgVHlwZSBB
UElUeXBlID0gVHlwZU5vdGlmaWNhdGlvbjsKKyAgICAKKyAgICBXZWJOb3RpZmljYXRpb24oKTsK
KyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJOb3RpZmljYXRpb24+IGNyZWF0ZShjb25zdCBTdHJp
bmcmIHRpdGxlLCBjb25zdCBTdHJpbmcmIGJvZHksIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJOb3RpZmljYXRpb24odGl0bGUs
IGJvZHksIG5vdGlmaWNhdGlvbklEKSk7CisgICAgfQorICAgIHZpcnR1YWwgfldlYk5vdGlmaWNh
dGlvbigpOworICAgIAorICAgIGNvbnN0IFN0cmluZyYgdGl0bGUoKSBjb25zdCB7IHJldHVybiBt
X3RpdGxlOyB9CisgICAgCisgICAgY29uc3QgU3RyaW5nJiBib2R5KCkgY29uc3QgeyByZXR1cm4g
bV9ib2R5OyB9CisgICAgCisgICAgdWludDY0X3Qgbm90aWZpY2F0aW9uSUQoKSBjb25zdCB7IHJl
dHVybiBtX25vdGlmaWNhdGlvbklEOyB9CisKKyAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1
bWVudEVuY29kZXIqKSBjb25zdDsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKiwgV2ViTm90aWZpY2F0aW9uJik7CisKK3ByaXZhdGU6CisgICAgV2ViTm90
aWZpY2F0aW9uKGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgYm9keSwgdWludDY0
X3Qgbm90aWZpY2F0aW9uSUQpOworCisgICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCB7IHJl
dHVybiBBUElUeXBlOyB9CisgICAgCisgICAgU3RyaW5nIG1fdGl0bGU7CisgICAgU3RyaW5nIG1f
Ym9keTsKKyAgICB1aW50NjRfdCBtX25vdGlmaWNhdGlvbklEOworfTsKKworaW5saW5lIGJvb2wg
aXNOb3RpZmljYXRpb25JRFZhbGlkKHVpbnQ2NF90IGlkKQoreworICAgIC8vIFRoaXMgY2hlY2sg
bWFrZXMgc3VyZSB0aGF0IHRoZSBJRCBpcyBub3QgZXF1YWwgdG8gdmFsdWVzIG5lZWRlZCBieQor
ICAgIC8vIEhhc2hNYXAgZm9yIGJ1Y2tldGluZy4KKyAgICByZXR1cm4gaWQgJiYgaWQgIT0gc3Rh
dGljX2Nhc3Q8dWludDY0X3Q+KC0xKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNl
bmRpZiAvLyBXZWJOb3RpZmljYXRpb25faApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFn
ZXJQcm94eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmZjZmIzNGQxNjU3ZmE5NWQ3YWJiNWNlM2E3MWJkMjdk
ODY0NDBjNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3Rp
ZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAKQEAgLTAsMCArMSwxNTQg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViTm90aWZp
Y2F0aW9uTWFuYWdlclByb3h5LmgiCisKKyNpbmNsdWRlICJJbW11dGFibGVBcnJheS5oIgorI2lu
Y2x1ZGUgIldlYkNvbnRleHQuaCIKKyNpbmNsdWRlICJXZWJOb3RpZmljYXRpb24uaCIKKyNpbmNs
dWRlICJXZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJTZWN1
cml0eU9yaWdpbi5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTm90aWZpY2F0aW9uQ29udGVudHMuaD4K
KwordXNpbmcgbmFtZXNwYWNlIFdURjsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1l
c3BhY2UgV2ViS2l0IHsKKworUGFzc1JlZlB0cjxXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk+
IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6Y3JlYXRlKFdlYkNvbnRleHQqIGNvbnRleHQp
Cit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHko
Y29udGV4dCkpOworfQorCitXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OldlYk5vdGlmaWNh
dGlvbk1hbmFnZXJQcm94eShXZWJDb250ZXh0KiBjb250ZXh0KQorICAgIDogbV9jb250ZXh0KGNv
bnRleHQpCit7Cit9CisKK1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6fldlYk5vdGlmaWNh
dGlvbk1hbmFnZXJQcm94eSgpCit7Cit9CisKK3ZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlclBy
b3h5OjppbnZhbGlkYXRlKCkKK3sKKyAgICBtX3Byb3ZpZGVyLnJlbW92ZU5vdGlmaWNhdGlvbk1h
bmFnZXIodGhpcyk7Cit9CisKK3ZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5Ojppbml0
aWFsaXplUHJvdmlkZXIoY29uc3QgV0tOb3RpZmljYXRpb25Qcm92aWRlciAqcHJvdmlkZXIpCit7
CisgICAgbV9wcm92aWRlci5pbml0aWFsaXplKHByb3ZpZGVyKTsKK30KKwordm9pZCBXZWJOb3Rp
ZmljYXRpb25NYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciogYXJndW1lbnRzKQoreworICAgIGRpZFJlY2VpdmVXZWJOb3RpZmljYXRp
b25NYW5hZ2VyUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsK
K30KKwordm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVTeW5jTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQg
bWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cywgT3duUHRyPENv
cmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mIHJlcGx5KQoreworICAgIGRpZFJlY2VpdmVTeW5jV2Vi
Tm90aWZpY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFy
Z3VtZW50cywgcmVwbHkpOworfQorCit2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6
c2hvdyhjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBTdHJpbmcmIGJvZHksIHVpbnQ2NF90IG5v
dGlmaWNhdGlvbklEKQoreworICAgIGlmICghaXNOb3RpZmljYXRpb25JRFZhbGlkKG5vdGlmaWNh
dGlvbklEKSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIG1fcHJvdmlkZXIuYWRkTm90aWZp
Y2F0aW9uTWFuYWdlcih0aGlzKTsKKworICAgIFJlZlB0cjxXZWJOb3RpZmljYXRpb24+IG5vdGlm
aWNhdGlvbiA9IFdlYk5vdGlmaWNhdGlvbjo6Y3JlYXRlKHRpdGxlLCBib2R5LCBub3RpZmljYXRp
b25JRCk7CisgICAgbV9ub3RpZmljYXRpb25zLnNldChub3RpZmljYXRpb25JRCwgbm90aWZpY2F0
aW9uKTsKKyAgICBtX3Byb3ZpZGVyLnNob3cobm90aWZpY2F0aW9uLmdldCgpKTsKK30KKwordm9p
ZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OmNhbmNlbCh1aW50NjRfdCBub3RpZmljYXRp
b25JRCkKK3sKKyAgICBpZiAoIWlzTm90aWZpY2F0aW9uSURWYWxpZChub3RpZmljYXRpb25JRCkp
CisgICAgICAgIHJldHVybjsKKworICAgIFJlZlB0cjxXZWJOb3RpZmljYXRpb24+IG5vdGlmaWNh
dGlvbiA9IG1fbm90aWZpY2F0aW9ucy5nZXQobm90aWZpY2F0aW9uSUQpOworICAgIGlmICghbm90
aWZpY2F0aW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3Byb3ZpZGVyLmFkZE5vdGlmaWNh
dGlvbk1hbmFnZXIodGhpcyk7CisgICAgbV9wcm92aWRlci5jYW5jZWwobm90aWZpY2F0aW9uLmdl
dCgpKTsKK30KKyAgICAKK3ZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5OjpkaWREZXN0
cm95Tm90aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQoreworICAgIGlmICghaXNO
b3RpZmljYXRpb25JRFZhbGlkKG5vdGlmaWNhdGlvbklEKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgUmVmUHRyPFdlYk5vdGlmaWNhdGlvbj4gbm90aWZpY2F0aW9uID0gbV9ub3RpZmljYXRpb25z
LnRha2Uobm90aWZpY2F0aW9uSUQpOworICAgIGlmICghbm90aWZpY2F0aW9uKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBtX3Byb3ZpZGVyLmRpZERlc3Ryb3lOb3RpZmljYXRpb24obm90aWZpY2F0
aW9uLmdldCgpKTsKK30KKwordm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6Om5vdGlm
aWNhdGlvblBlcm1pc3Npb25MZXZlbChjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIHVp
bnQ2NF90JiBwZXJtaXNzaW9uTGV2ZWwpCit7CisgICAgUmVmUHRyPFdlYlNlY3VyaXR5T3JpZ2lu
PiBvcmlnaW4gPSBXZWJTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKG9yaWdpbklkZW50aWZpZXIpOwor
ICAgIHBlcm1pc3Npb25MZXZlbCA9IG1fcHJvdmlkZXIucG9saWN5Rm9yTm90aWZpY2F0aW9uUGVy
bWlzc2lvbkF0T3JpZ2luKG9yaWdpbi5nZXQoKSk7Cit9CisKK3ZvaWQgV2ViTm90aWZpY2F0aW9u
TWFuYWdlclByb3h5Ojpwcm92aWRlckRpZFNob3dOb3RpZmljYXRpb24odWludDY0X3Qgbm90aWZp
Y2F0aW9uSUQpCit7CisgICAgaWYgKCFtX2NvbnRleHQpCisgICAgICAgIHJldHVybjsKKyAgICAK
KyAgICBtX2NvbnRleHQtPnNlbmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6V2ViTm90aWZpY2F0
aW9uTWFuYWdlcjo6RGlkU2hvd05vdGlmaWNhdGlvbihub3RpZmljYXRpb25JRCkpOworfQorCit2
b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6cHJvdmlkZXJEaWRDbGlja05vdGlmaWNh
dGlvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCkKK3sKKyAgICBpZiAoIW1fY29udGV4dCkKKyAg
ICAgICAgcmV0dXJuOworICAgIAorICAgIG1fY29udGV4dC0+c2VuZFRvQWxsUHJvY2Vzc2VzKE1l
c3NhZ2VzOjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpEaWRDbGlja05vdGlmaWNhdGlvbihub3Rp
ZmljYXRpb25JRCkpOworfQorCisKK3ZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5Ojpw
cm92aWRlckRpZENsb3NlTm90aWZpY2F0aW9ucyhJbW11dGFibGVBcnJheSogbm90aWZpY2F0aW9u
SURzKQoreworICAgIGlmICghbV9jb250ZXh0KQorICAgICAgICByZXR1cm47CisgICAgCisgICAg
c2l6ZV90IHNpemUgPSBub3RpZmljYXRpb25JRHMtPnNpemUoKTsKKyAgICAKKyAgICBWZWN0b3I8
dWludDY0X3Q+IHZlY3Rvck5vdGlmaWNhdGlvbklEczsKKyAgICB2ZWN0b3JOb3RpZmljYXRpb25J
RHMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShzaXplKTsKKyAgICAKKyAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IHNpemU7ICsraSkgeworICAgICAgICB1aW50NjRfdCBub3RpZmljYXRpb25JRCA9
IG5vdGlmaWNhdGlvbklEcy0+YXQ8V2ViVUludDY0PihpKS0+dmFsdWUoKTsKKyAgICAgICAgdmVj
dG9yTm90aWZpY2F0aW9uSURzLmFwcGVuZChub3RpZmljYXRpb25JRCk7CisgICAgfQorICAgIAor
ICAgIGlmICh2ZWN0b3JOb3RpZmljYXRpb25JRHMuc2l6ZSgpKQorICAgICAgICBtX2NvbnRleHQt
PnNlbmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6V2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6RGlk
Q2xvc2VOb3RpZmljYXRpb25zKHZlY3Rvck5vdGlmaWNhdGlvbklEcykpOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3Rp
ZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNjgwOWFlNGQ0ODJjNTA5MjYzYjVkMmE0N2RkOWM0MDU5MjBmNjBkYQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5v
dGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oCkBAIC0wLDAgKzEsODkgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWZuZGVmIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eV9oCisjZGVmaW5lIFdlYk5vdGlmaWNh
dGlvbk1hbmFnZXJQcm94eV9oCisKKyNpbmNsdWRlICJBUElPYmplY3QuaCIKKyNpbmNsdWRlICJN
ZXNzYWdlSUQuaCIKKyNpbmNsdWRlICJXZWJOb3RpZmljYXRpb25Qcm92aWRlci5oIgorI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL093blB0ci5oPgorI2luY2x1ZGUgPHd0
Zi9QYXNzUmVmUHRyLmg+CisKK25hbWVzcGFjZSBDb3JlSVBDIHsKK2NsYXNzIEFyZ3VtZW50RGVj
b2RlcjsKK2NsYXNzIEFyZ3VtZW50RW5jb2RlcjsKK2NsYXNzIENvbm5lY3Rpb247Cit9CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBJbW11dGFibGVBcnJheTsKK2NsYXNzIFdlYkNvbnRl
eHQ7CisKK2NsYXNzIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eSA6IHB1YmxpYyBBUElPYmpl
Y3QgeworcHVibGljOgorICAgIHN0YXRpYyBjb25zdCBUeXBlIEFQSVR5cGUgPSBUeXBlTm90aWZp
Y2F0aW9uTWFuYWdlcjsKKyAgICAKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJOb3RpZmljYXRp
b25NYW5hZ2VyUHJveHk+IGNyZWF0ZShXZWJDb250ZXh0Kik7CisgICAgdmlydHVhbCB+V2ViTm90
aWZpY2F0aW9uTWFuYWdlclByb3h5KCk7CisgICAgCisgICAgdm9pZCBpbnZhbGlkYXRlKCk7Cisg
ICAgdm9pZCBjbGVhckNvbnRleHQoKSB7IG1fY29udGV4dCA9IDA7IH0KKworICAgIHZvaWQgaW5p
dGlhbGl6ZVByb3ZpZGVyKGNvbnN0IFdLTm90aWZpY2F0aW9uUHJvdmlkZXIqKTsKKyAgICAKKyAg
ICB2b2lkIHByb3ZpZGVyRGlkU2hvd05vdGlmaWNhdGlvbih1aW50NjRfdCBub3RpZmljYXRpb25J
RCk7CisgICAgdm9pZCBwcm92aWRlckRpZENsaWNrTm90aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlm
aWNhdGlvbklEKTsKKyAgICB2b2lkIHByb3ZpZGVyRGlkQ2xvc2VOb3RpZmljYXRpb25zKEltbXV0
YWJsZUFycmF5KiBub3RpZmljYXRpb25JRHMpOworICAgIAorICAgIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6
QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKiwgT3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mKTsKKworcHJpdmF0ZToKKyAg
ICBleHBsaWNpdCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkoV2ViQ29udGV4dCopOworICAg
IAorICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQorICAg
IAorICAgIHZvaWQgZGlkUmVjZWl2ZVdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eU1lc3NhZ2Uo
Q29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY1dlYk5vdGlmaWNhdGlvbk1hbmFn
ZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwg
Q29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgT3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rl
cj4mKTsKKyAgICAKKyAgICAvLyBNZXNzYWdlIGhhbmRsZXJzCisgICAgdm9pZCBzaG93KGNvbnN0
IFdURjo6U3RyaW5nJiB0aXRsZSwgY29uc3QgV1RGOjpTdHJpbmcmIGJvZHksIHVpbnQ2NF90IG5v
dGlmaWNhdGlvbklEKTsKKyAgICB2b2lkIGNhbmNlbCh1aW50NjRfdCBub3RpZmljYXRpb25JRCk7
CisgICAgdm9pZCBkaWREZXN0cm95Tm90aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklE
KTsKKyAgICB2b2lkIG5vdGlmaWNhdGlvblBlcm1pc3Npb25MZXZlbChjb25zdCBXVEY6OlN0cmlu
ZyYgb3JpZ2luSWRlbnRpZmllciwgdWludDY0X3QmIHBlcm1pc3Npb25MZXZlbCk7CisKKyAgICB0
eXBlZGVmIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxXZWJOb3RpZmljYXRpb24+ID4gV2ViTm90
aWZpY2F0aW9uTWFwOworICAgIAorICAgIFdlYkNvbnRleHQqIG1fY29udGV4dDsKKyAgICBXZWJO
b3RpZmljYXRpb25Qcm92aWRlciBtX3Byb3ZpZGVyOworICAgIFdlYk5vdGlmaWNhdGlvbk1hcCBt
X25vdGlmaWNhdGlvbnM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8v
IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3Rp
ZmljYXRpb25NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDY2NzFiNDI4NGRh
NDM2MGIwMDgwYzNhZGRkZDU5NTViNTFhMmYyOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94
eS5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDI5IEBACisjIENvcHlyaWdodCAoQykgMjAxMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQK
KyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisj
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisKK21lc3NhZ2VzIC0+IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eSB7
CisgICAgU2hvdyhXVEY6OlN0cmluZyB0aXRsZSwgV1RGOjpTdHJpbmcgYm9keSwgdWludDY0X3Qg
bm90aWZpY2F0aW9uSUQpOworICAgIENhbmNlbCh1aW50NjRfdCBub3RpZmljYXRpb25JRCk7Cisg
ICAgRGlkRGVzdHJveU5vdGlmaWNhdGlvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCk7CisKKyAg
ICBOb3RpZmljYXRpb25QZXJtaXNzaW9uTGV2ZWwoV1RGOjpTdHJpbmcgb3JpZ2luSWRlbnRpZmll
cikgLT4gKHVpbnQ2NF90IHBvbGljeSkKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvblByb3ZpZGVy
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5hZjhhNzFkYmFlMzEwMDhlYjI5MTdkZTgyZWQ4MjEwNzkzNjVjMzgy
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlv
bnMvV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwCkBAIC0wLDAgKzEsODQgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9uUHJvdmlk
ZXIuaCIKKworI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlv
bi5oIgorI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oIgorI2luY2x1ZGUg
IldlYlNlY3VyaXR5T3JpZ2luLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIFdlYk5v
dGlmaWNhdGlvblByb3ZpZGVyOjpzaG93KFdlYk5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uKQor
eworICAgIGlmICghbV9jbGllbnQuc2hvdykKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIG1f
Y2xpZW50LnNob3codG9BUEkobm90aWZpY2F0aW9uKSwgbV9jbGllbnQuY2xpZW50SW5mbyk7Cit9
CisKK3ZvaWQgV2ViTm90aWZpY2F0aW9uUHJvdmlkZXI6OmNhbmNlbChXZWJOb3RpZmljYXRpb24q
IG5vdGlmaWNhdGlvbikKK3sKKyAgICBpZiAoIW1fY2xpZW50LmNhbmNlbCkKKyAgICAgICAgcmV0
dXJuOworICAgIAorICAgIG1fY2xpZW50LmNhbmNlbCh0b0FQSShub3RpZmljYXRpb24pLCBtX2Ns
aWVudC5jbGllbnRJbmZvKTsKK30KKwordm9pZCBXZWJOb3RpZmljYXRpb25Qcm92aWRlcjo6ZGlk
RGVzdHJveU5vdGlmaWNhdGlvbihXZWJOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbikKK3sKKyAg
ICBpZiAoIW1fY2xpZW50LmRpZERlc3Ryb3lOb3RpZmljYXRpb24pCisgICAgICAgIHJldHVybjsK
KyAgICAKKyAgICBtX2NsaWVudC5kaWREZXN0cm95Tm90aWZpY2F0aW9uKHRvQVBJKG5vdGlmaWNh
dGlvbiksIG1fY2xpZW50LmNsaWVudEluZm8pOworfQorCitpbnQgV2ViTm90aWZpY2F0aW9uUHJv
dmlkZXI6OnBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25BdE9yaWdpbihXZWJTZWN1cml0
eU9yaWdpbiogb3JpZ2luKQoreworICAgIGlmICghbV9jbGllbnQucG9saWN5Rm9yTm90aWZpY2F0
aW9uUGVybWlzc2lvbkF0T3JpZ2luKQorICAgICAgICByZXR1cm4gSU5UX01JTjsKKyAgICAKKyAg
ICByZXR1cm4gbV9jbGllbnQucG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvbkF0T3JpZ2lu
KHRvQVBJKG9yaWdpbiksIG1fY2xpZW50LmNsaWVudEluZm8pOworfQorCit2b2lkIFdlYk5vdGlm
aWNhdGlvblByb3ZpZGVyOjphZGROb3RpZmljYXRpb25NYW5hZ2VyKFdlYk5vdGlmaWNhdGlvbk1h
bmFnZXJQcm94eSogbWFuYWdlcikKK3sKKyAgICBpZiAoIW1fY2xpZW50LmFkZE5vdGlmaWNhdGlv
bk1hbmFnZXIpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBtX2NsaWVudC5hZGROb3RpZmlj
YXRpb25NYW5hZ2VyKHRvQVBJKG1hbmFnZXIpLCBtX2NsaWVudC5jbGllbnRJbmZvKTsKK30KKwor
dm9pZCBXZWJOb3RpZmljYXRpb25Qcm92aWRlcjo6cmVtb3ZlTm90aWZpY2F0aW9uTWFuYWdlcihX
ZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkqIG1hbmFnZXIpCit7CisgICAgaWYgKCFtX2NsaWVu
dC5yZW1vdmVOb3RpZmljYXRpb25NYW5hZ2VyKQorICAgICAgICByZXR1cm47CisgICAgCisgICAg
bV9jbGllbnQucmVtb3ZlTm90aWZpY2F0aW9uTWFuYWdlcih0b0FQSShtYW5hZ2VyKSwgbV9jbGll
bnQuY2xpZW50SW5mbyk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uUHJv
dmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlm
aWNhdGlvblByb3ZpZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTcwYTI2NGQwODNkZDc0ODY1MjQ5ZjQwNjQx
MTkyODc0OWFkYTU0NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmgKQEAgLTAsMCArMSw1MiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViTm90aWZpY2F0aW9uUHJvdmlkZXJfaAorI2RlZmlu
ZSBXZWJOb3RpZmljYXRpb25Qcm92aWRlcl9oCisKKyNpbmNsdWRlICJBUElDbGllbnQuaCIKKyNp
bmNsdWRlICJXS05vdGlmaWNhdGlvblByb3ZpZGVyLmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQu
aD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYk5vdGlmaWNhdGlvbjsKK2NsYXNz
IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTsKK2NsYXNzIFdlYlNlY3VyaXR5T3JpZ2luOwor
ICAgIAorY2xhc3MgV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIgOiBwdWJsaWMgQVBJQ2xpZW50PFdL
Tm90aWZpY2F0aW9uUHJvdmlkZXIsIGtXS05vdGlmaWNhdGlvblByb3ZpZGVyQ3VycmVudFZlcnNp
b24+IHsKK3B1YmxpYzoKKyAgICB2b2lkIHNob3coV2ViTm90aWZpY2F0aW9uKik7CisgICAgdm9p
ZCBjYW5jZWwoV2ViTm90aWZpY2F0aW9uKik7CisgICAgdm9pZCBkaWREZXN0cm95Tm90aWZpY2F0
aW9uKFdlYk5vdGlmaWNhdGlvbiopOworICAgIGludCBwb2xpY3lGb3JOb3RpZmljYXRpb25QZXJt
aXNzaW9uQXRPcmlnaW4oV2ViU2VjdXJpdHlPcmlnaW4qKTsKKworICAgIHZvaWQgYWRkTm90aWZp
Y2F0aW9uTWFuYWdlcihXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkqKTsKKyAgICB2b2lkIHJl
bW92ZU5vdGlmaWNhdGlvbk1hbmFnZXIoV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5Kik7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYk5vdGlmaWNhdGlvblBy
b3ZpZGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOb3RpZmlj
YXRpb24uY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5vdGlmaWNhdGlvbi5jcHAK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNmMDI1OTg2MjRjMTU2YTk4ZmJmMjA5YTYy
MmUxMTkxYzJhNmZkM2UuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5vdGlmaWNhdGlvbi5jcHAKKysrIC9k
ZXYvbnVsbApAQCAtMSw2MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
Ci0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwot
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5o
IgotI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbi5oIgotCi0jaW5jbHVkZSAiQXJndW1lbnRDb2Rl
cnMuaCIKLSNpbmNsdWRlICJBcmd1bWVudERlY29kZXIuaCIKLSNpbmNsdWRlICJBcmd1bWVudEVu
Y29kZXIuaCIKLSNpbmNsdWRlICJBcmd1bWVudHMuaCIKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0K
LVdlYk5vdGlmaWNhdGlvbjo6V2ViTm90aWZpY2F0aW9uKCkKLXsKLX0KLQotV2ViTm90aWZpY2F0
aW9uOjpXZWJOb3RpZmljYXRpb24oY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiBi
b2R5LCB1aW50NjRfdCBub3RpZmljYXRpb25JRCkKLSAgICA6IG1fdGl0bGUodGl0bGUpCi0gICAg
LCBtX2JvZHkoYm9keSkKLSAgICAsIG1fbm90aWZpY2F0aW9uSUQobm90aWZpY2F0aW9uSUQpCi17
Ci19Ci0KLVdlYk5vdGlmaWNhdGlvbjo6fldlYk5vdGlmaWNhdGlvbigpCi17Ci19Ci0KLXZvaWQg
V2ViTm90aWZpY2F0aW9uOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVy
KSBjb25zdAotewotICAgIGVuY29kZXItPmVuY29kZShDb3JlSVBDOjpJbihtX3RpdGxlLCBtX2Jv
ZHksIG1fbm90aWZpY2F0aW9uSUQpKTsKLX0KLQotYm9vbCBXZWJOb3RpZmljYXRpb246OmRlY29k
ZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIFdlYk5vdGlmaWNhdGlvbiYgbm90
aWZpY2F0aW9uKQotewotICAgIHJldHVybiBkZWNvZGVyLT5kZWNvZGUoQ29yZUlQQzo6T3V0KG5v
dGlmaWNhdGlvbi5tX3RpdGxlLCBub3RpZmljYXRpb24ubV9ib2R5LCBub3RpZmljYXRpb24ubV9u
b3RpZmljYXRpb25JRCkpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOb3RpZmljYXRpb24uaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJOb3RpZmljYXRpb24uaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggZjY4NTg2ZjEyNTIzNDM4NGE0NTNhODFjZDgzODQ4YmJhZGZmOGRkNC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViTm90aWZpY2F0aW9uLmgKKysrIC9kZXYvbnVsbApAQCAtMSw4MSArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0gKi8KLQotI2lmbmRlZiBXZWJOb3RpZmljYXRpb25faAotI2RlZmluZSBXZWJOb3RpZmlj
YXRpb25faAotCi0jaW5jbHVkZSAiQVBJT2JqZWN0LmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQ
dHIuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNwYWNlIENvcmVJ
UEMgewotCi1jbGFzcyBBcmd1bWVudERlY29kZXI7Ci1jbGFzcyBBcmd1bWVudEVuY29kZXI7Ci0K
LX0gLy8gbmFtZXNwYWNlIENvcmVJUEMKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0gICAgCi1jbGFz
cyBXZWJOb3RpZmljYXRpb24gOiBwdWJsaWMgQVBJT2JqZWN0IHsKLXB1YmxpYzoKLSAgICBzdGF0
aWMgY29uc3QgVHlwZSBBUElUeXBlID0gVHlwZU5vdGlmaWNhdGlvbjsKLSAgICAKLSAgICBXZWJO
b3RpZmljYXRpb24oKTsKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJOb3RpZmljYXRpb24+IGNy
ZWF0ZShjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBTdHJpbmcmIGJvZHksIHVpbnQ2NF90IG5v
dGlmaWNhdGlvbklEKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJOb3Rp
ZmljYXRpb24odGl0bGUsIGJvZHksIG5vdGlmaWNhdGlvbklEKSk7Ci0gICAgfQotICAgIHZpcnR1
YWwgfldlYk5vdGlmaWNhdGlvbigpOwotICAgIAotICAgIGNvbnN0IFN0cmluZyYgdGl0bGUoKSBj
b25zdCB7IHJldHVybiBtX3RpdGxlOyB9Ci0gICAgCi0gICAgY29uc3QgU3RyaW5nJiBib2R5KCkg
Y29uc3QgeyByZXR1cm4gbV9ib2R5OyB9Ci0gICAgCi0gICAgdWludDY0X3Qgbm90aWZpY2F0aW9u
SUQoKSBjb25zdCB7IHJldHVybiBtX25vdGlmaWNhdGlvbklEOyB9Ci0KLSAgICB2b2lkIGVuY29k
ZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqKSBjb25zdDsKLSAgICBzdGF0aWMgYm9vbCBkZWNv
ZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgV2ViTm90aWZpY2F0aW9uJik7Ci0KLXByaXZh
dGU6Ci0gICAgV2ViTm90aWZpY2F0aW9uKGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmlu
ZyYgYm9keSwgdWludDY0X3Qgbm90aWZpY2F0aW9uSUQpOwotCi0gICAgdmlydHVhbCBUeXBlIHR5
cGUoKSBjb25zdCB7IHJldHVybiBBUElUeXBlOyB9Ci0gICAgCi0gICAgU3RyaW5nIG1fdGl0bGU7
Ci0gICAgU3RyaW5nIG1fYm9keTsKLSAgICB1aW50NjRfdCBtX25vdGlmaWNhdGlvbklEOwotfTsK
LQotaW5saW5lIGJvb2wgaXNOb3RpZmljYXRpb25JRFZhbGlkKHVpbnQ2NF90IGlkKQotewotICAg
IC8vIFRoaXMgY2hlY2sgbWFrZXMgc3VyZSB0aGF0IHRoZSBJRCBpcyBub3QgZXF1YWwgdG8gdmFs
dWVzIG5lZWRlZCBieQotICAgIC8vIEhhc2hNYXAgZm9yIGJ1Y2tldGluZy4KLSAgICByZXR1cm4g
aWQgJiYgaWQgIT0gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KC0xKTsKLX0KLQotfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBXZWJOb3RpZmljYXRpb25faApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTAyOWRjNDRlOWZhOGY4ODI1MDJlMzAyYWVi
OGJhZmU4NmQzNGIwMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5
LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDE0MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1
ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oIgot
Ci0jaW5jbHVkZSAiSW1tdXRhYmxlQXJyYXkuaCIKLSNpbmNsdWRlICJXZWJDb250ZXh0LmgiCi0j
aW5jbHVkZSAiV2ViTm90aWZpY2F0aW9uLmgiCi0jaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9uTWFu
YWdlck1lc3NhZ2VzLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9Ob3RpZmljYXRpb25Db250ZW50cy5o
PgotCi11c2luZyBuYW1lc3BhY2UgV1RGOwotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLW5h
bWVzcGFjZSBXZWJLaXQgewotCi1QYXNzUmVmUHRyPFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94
eT4gV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5OjpjcmVhdGUoV2ViQ29udGV4dCogY29udGV4
dCkKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94
eShjb250ZXh0KSk7Ci19Ci0KLVdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6V2ViTm90aWZp
Y2F0aW9uTWFuYWdlclByb3h5KFdlYkNvbnRleHQqIGNvbnRleHQpCi0gICAgOiBtX2NvbnRleHQo
Y29udGV4dCkKLXsKLX0KLQotV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5Ojp+V2ViTm90aWZp
Y2F0aW9uTWFuYWdlclByb3h5KCkKLXsKLX0KLQotdm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2Vy
UHJveHk6OmludmFsaWRhdGUoKQotewotICAgIG1fcHJvdmlkZXIucmVtb3ZlTm90aWZpY2F0aW9u
TWFuYWdlcih0aGlzKTsKLX0KLQotdm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6Omlu
aXRpYWxpemVQcm92aWRlcihjb25zdCBXS05vdGlmaWNhdGlvblByb3ZpZGVyICpwcm92aWRlcikK
LXsKLSAgICBtX3Byb3ZpZGVyLmluaXRpYWxpemUocHJvdmlkZXIpOwotfQotCi12b2lkIFdlYk5v
dGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVj
dGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6
QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCi17Ci0gICAgZGlkUmVjZWl2ZVdlYk5vdGlmaWNh
dGlvbk1hbmFnZXJQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMp
OwotfQotCi12b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6c2hvdyhjb25zdCBTdHJp
bmcmIHRpdGxlLCBjb25zdCBTdHJpbmcmIGJvZHksIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQot
ewotICAgIGlmICghaXNOb3RpZmljYXRpb25JRFZhbGlkKG5vdGlmaWNhdGlvbklEKSkKLSAgICAg
ICAgcmV0dXJuOwotICAgIAotICAgIG1fcHJvdmlkZXIuYWRkTm90aWZpY2F0aW9uTWFuYWdlcih0
aGlzKTsKLQotICAgIFJlZlB0cjxXZWJOb3RpZmljYXRpb24+IG5vdGlmaWNhdGlvbiA9IFdlYk5v
dGlmaWNhdGlvbjo6Y3JlYXRlKHRpdGxlLCBib2R5LCBub3RpZmljYXRpb25JRCk7Ci0gICAgbV9u
b3RpZmljYXRpb25zLnNldChub3RpZmljYXRpb25JRCwgbm90aWZpY2F0aW9uKTsKLSAgICBtX3By
b3ZpZGVyLnNob3cobm90aWZpY2F0aW9uLmdldCgpKTsKLX0KLQotdm9pZCBXZWJOb3RpZmljYXRp
b25NYW5hZ2VyUHJveHk6OmNhbmNlbCh1aW50NjRfdCBub3RpZmljYXRpb25JRCkKLXsKLSAgICBp
ZiAoIWlzTm90aWZpY2F0aW9uSURWYWxpZChub3RpZmljYXRpb25JRCkpCi0gICAgICAgIHJldHVy
bjsKLQotICAgIFJlZlB0cjxXZWJOb3RpZmljYXRpb24+IG5vdGlmaWNhdGlvbiA9IG1fbm90aWZp
Y2F0aW9ucy5nZXQobm90aWZpY2F0aW9uSUQpOwotICAgIGlmICghbm90aWZpY2F0aW9uKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBtX3Byb3ZpZGVyLmFkZE5vdGlmaWNhdGlvbk1hbmFnZXIodGhp
cyk7Ci0gICAgbV9wcm92aWRlci5jYW5jZWwobm90aWZpY2F0aW9uLmdldCgpKTsKLX0KLSAgICAK
LXZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5OjpkaWREZXN0cm95Tm90aWZpY2F0aW9u
KHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQotewotICAgIGlmICghaXNOb3RpZmljYXRpb25JRFZh
bGlkKG5vdGlmaWNhdGlvbklEKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgUmVmUHRyPFdlYk5v
dGlmaWNhdGlvbj4gbm90aWZpY2F0aW9uID0gbV9ub3RpZmljYXRpb25zLnRha2Uobm90aWZpY2F0
aW9uSUQpOwotICAgIGlmICghbm90aWZpY2F0aW9uKQotICAgICAgICByZXR1cm47Ci0KLSAgICBt
X3Byb3ZpZGVyLmRpZERlc3Ryb3lOb3RpZmljYXRpb24obm90aWZpY2F0aW9uLmdldCgpKTsKLX0K
LQotdm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OnByb3ZpZGVyRGlkU2hvd05vdGlm
aWNhdGlvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCkKLXsKLSAgICBpZiAoIW1fY29udGV4dCkK
LSAgICAgICAgcmV0dXJuOwotICAgIAotICAgIG1fY29udGV4dC0+c2VuZFRvQWxsUHJvY2Vzc2Vz
KE1lc3NhZ2VzOjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpEaWRTaG93Tm90aWZpY2F0aW9uKG5v
dGlmaWNhdGlvbklEKSk7Ci19Ci0KLXZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5Ojpw
cm92aWRlckRpZENsaWNrTm90aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQotewot
ICAgIGlmICghbV9jb250ZXh0KQotICAgICAgICByZXR1cm47Ci0gICAgCi0gICAgbV9jb250ZXh0
LT5zZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OkRp
ZENsaWNrTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbklEKSk7Ci19Ci0KLQotdm9pZCBXZWJOb3Rp
ZmljYXRpb25NYW5hZ2VyUHJveHk6OnByb3ZpZGVyRGlkQ2xvc2VOb3RpZmljYXRpb25zKEltbXV0
YWJsZUFycmF5KiBub3RpZmljYXRpb25JRHMpCi17Ci0gICAgaWYgKCFtX2NvbnRleHQpCi0gICAg
ICAgIHJldHVybjsKLSAgICAKLSAgICBzaXplX3Qgc2l6ZSA9IG5vdGlmaWNhdGlvbklEcy0+c2l6
ZSgpOwotICAgIAotICAgIFZlY3Rvcjx1aW50NjRfdD4gdmVjdG9yTm90aWZpY2F0aW9uSURzOwot
ICAgIHZlY3Rvck5vdGlmaWNhdGlvbklEcy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHNpemUpOwot
ICAgIAotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7Ci0gICAgICAgIHVp
bnQ2NF90IG5vdGlmaWNhdGlvbklEID0gbm90aWZpY2F0aW9uSURzLT5hdDxXZWJVSW50NjQ+KGkp
LT52YWx1ZSgpOwotICAgICAgICB2ZWN0b3JOb3RpZmljYXRpb25JRHMuYXBwZW5kKG5vdGlmaWNh
dGlvbklEKTsKLSAgICB9Ci0gICAgCi0gICAgaWYgKHZlY3Rvck5vdGlmaWNhdGlvbklEcy5zaXpl
KCkpCi0gICAgICAgIG1fY29udGV4dC0+c2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJO
b3RpZmljYXRpb25NYW5hZ2VyOjpEaWRDbG9zZU5vdGlmaWNhdGlvbnModmVjdG9yTm90aWZpY2F0
aW9uSURzKSk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ODdmYTlhNDg2MWRhMTZkYjhjZDU5NTc2MmE5Yzc4Y2Zh
MmMzMmY5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaAorKysg
L2Rldi9udWxsCkBAIC0xLDg0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
Ci0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0g
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFdlYk5vdGlm
aWNhdGlvbk1hbmFnZXJQcm94eV9oCi0jZGVmaW5lIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94
eV9oCi0KLSNpbmNsdWRlICJBUElPYmplY3QuaCIKLSNpbmNsdWRlICJNZXNzYWdlSUQuaCIKLSNp
bmNsdWRlICJXZWJOb3RpZmljYXRpb25Qcm92aWRlci5oIgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFw
Lmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLQotbmFtZXNwYWNlIENvcmVJUEMgewot
Y2xhc3MgQXJndW1lbnREZWNvZGVyOwotY2xhc3MgQ29ubmVjdGlvbjsKLX0KLQotbmFtZXNwYWNl
IFdlYktpdCB7Ci0KLWNsYXNzIEltbXV0YWJsZUFycmF5OwotY2xhc3MgV2ViQ29udGV4dDsKLQot
Y2xhc3MgV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5IDogcHVibGljIEFQSU9iamVjdCB7Ci1w
dWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IFR5cGUgQVBJVHlwZSA9IFR5cGVOb3RpZmljYXRpb25N
YW5hZ2VyOwotICAgIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYk5vdGlmaWNhdGlvbk1hbmFn
ZXJQcm94eT4gY3JlYXRlKFdlYkNvbnRleHQqKTsKLSAgICB2aXJ0dWFsIH5XZWJOb3RpZmljYXRp
b25NYW5hZ2VyUHJveHkoKTsKLSAgICAKLSAgICB2b2lkIGludmFsaWRhdGUoKTsKLSAgICB2b2lk
IGNsZWFyQ29udGV4dCgpIHsgbV9jb250ZXh0ID0gMDsgfQotCi0gICAgdm9pZCBpbml0aWFsaXpl
UHJvdmlkZXIoY29uc3QgV0tOb3RpZmljYXRpb25Qcm92aWRlciopOwotICAgIAotICAgIHZvaWQg
cHJvdmlkZXJEaWRTaG93Tm90aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKTsKLSAg
ICB2b2lkIHByb3ZpZGVyRGlkQ2xpY2tOb3RpZmljYXRpb24odWludDY0X3Qgbm90aWZpY2F0aW9u
SUQpOwotICAgIHZvaWQgcHJvdmlkZXJEaWRDbG9zZU5vdGlmaWNhdGlvbnMoSW1tdXRhYmxlQXJy
YXkqIG5vdGlmaWNhdGlvbklEcyk7Ci0gICAgCi0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqKTsKLQotcHJpdmF0ZToKLSAgICBleHBsaWNpdCBXZWJOb3RpZmljYXRpb25NYW5h
Z2VyUHJveHkoV2ViQ29udGV4dCopOwotICAgIAotICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29u
c3QgeyByZXR1cm4gQVBJVHlwZTsgfQotICAgIAotICAgIHZvaWQgZGlkUmVjZWl2ZVdlYk5vdGlm
aWNhdGlvbk1hbmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6
Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0gICAgCi0gICAgLy8gTWVz
c2FnZSBoYW5kbGVycwotICAgIHZvaWQgc2hvdyhjb25zdCBXVEY6OlN0cmluZyYgdGl0bGUsIGNv
bnN0IFdURjo6U3RyaW5nJiBib2R5LCB1aW50NjRfdCBub3RpZmljYXRpb25JRCk7Ci0gICAgdm9p
ZCBjYW5jZWwodWludDY0X3Qgbm90aWZpY2F0aW9uSUQpOwotICAgIHZvaWQgZGlkRGVzdHJveU5v
dGlmaWNhdGlvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCk7Ci0gICAgCi0gICAgdHlwZWRlZiBI
YXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8V2ViTm90aWZpY2F0aW9uPiA+IFdlYk5vdGlmaWNhdGlv
bk1hcDsKLSAgICAKLSAgICBXZWJDb250ZXh0KiBtX2NvbnRleHQ7Ci0gICAgV2ViTm90aWZpY2F0
aW9uUHJvdmlkZXIgbV9wcm92aWRlcjsKLSAgICBXZWJOb3RpZmljYXRpb25NYXAgbV9ub3RpZmlj
YXRpb25zOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBXZWJOb3Rp
ZmljYXRpb25NYW5hZ2VyUHJveHlfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZkNDAzYzNkN2Q4NTljZTVkOTAwYTQ4YTBkZWI0
NjlkODA2MTg4YWQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5t
ZXNzYWdlcy5pbgorKysgL2Rldi9udWxsCkBAIC0xLDI3ICswLDAgQEAKLSMgQ29weXJpZ2h0IChD
KSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0j
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotIyBhcmUgbWV0OgotIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0jICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0jICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotIwotIyBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnIEFORAotIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotIyBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0jIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SCi0jIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKLSMgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKLSMg
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIKLSMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKLSMgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotbWVzc2FnZXMgLT4gV2ViTm90aWZpY2F0aW9uTWFu
YWdlclByb3h5IHsKLSAgICBTaG93KFdURjo6U3RyaW5nIHRpdGxlLCBXVEY6OlN0cmluZyBib2R5
LCB1aW50NjRfdCBub3RpZmljYXRpb25JRCk7Ci0gICAgQ2FuY2VsKHVpbnQ2NF90IG5vdGlmaWNh
dGlvbklEKTsKLSAgICBEaWREZXN0cm95Tm90aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlv
bklEKTsKLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOb3RpZmlj
YXRpb25Qcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTm90aWZpY2F0
aW9uUHJvdmlkZXIuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NjFiMWFkNzg5
NmRhZTk3MjhlMDQ3MmIzYWZiNjVlY2EzODRkZWJiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOb3RpZmlj
YXRpb25Qcm92aWRlci5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw3NSArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
LSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
Ci0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0g
Ki8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvblByb3Zp
ZGVyLmgiCi0KLSNpbmNsdWRlICJXS0FQSUNhc3QuaCIKLSNpbmNsdWRlICJXZWJOb3RpZmljYXRp
b24uaCIKLSNpbmNsdWRlICJXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaCIKLQotbmFtZXNw
YWNlIFdlYktpdCB7Ci0KLXZvaWQgV2ViTm90aWZpY2F0aW9uUHJvdmlkZXI6OnNob3coV2ViTm90
aWZpY2F0aW9uKiBub3RpZmljYXRpb24pCi17Ci0gICAgaWYgKCFtX2NsaWVudC5zaG93KQotICAg
ICAgICByZXR1cm47Ci0gICAgCi0gICAgbV9jbGllbnQuc2hvdyh0b0FQSShub3RpZmljYXRpb24p
LCBtX2NsaWVudC5jbGllbnRJbmZvKTsKLX0KLQotdm9pZCBXZWJOb3RpZmljYXRpb25Qcm92aWRl
cjo6Y2FuY2VsKFdlYk5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uKQotewotICAgIGlmICghbV9j
bGllbnQuY2FuY2VsKQotICAgICAgICByZXR1cm47Ci0gICAgCi0gICAgbV9jbGllbnQuY2FuY2Vs
KHRvQVBJKG5vdGlmaWNhdGlvbiksIG1fY2xpZW50LmNsaWVudEluZm8pOwotfQotCi12b2lkIFdl
Yk5vdGlmaWNhdGlvblByb3ZpZGVyOjpkaWREZXN0cm95Tm90aWZpY2F0aW9uKFdlYk5vdGlmaWNh
dGlvbiogbm90aWZpY2F0aW9uKQotewotICAgIGlmICghbV9jbGllbnQuZGlkRGVzdHJveU5vdGlm
aWNhdGlvbikKLSAgICAgICAgcmV0dXJuOwotICAgIAotICAgIG1fY2xpZW50LmRpZERlc3Ryb3lO
b3RpZmljYXRpb24odG9BUEkobm90aWZpY2F0aW9uKSwgbV9jbGllbnQuY2xpZW50SW5mbyk7Ci19
Ci0KLXZvaWQgV2ViTm90aWZpY2F0aW9uUHJvdmlkZXI6OmFkZE5vdGlmaWNhdGlvbk1hbmFnZXIo
V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5KiBtYW5hZ2VyKQotewotICAgIGlmICghbV9jbGll
bnQuYWRkTm90aWZpY2F0aW9uTWFuYWdlcikKLSAgICAgICAgcmV0dXJuOwotICAgIAotICAgIG1f
Y2xpZW50LmFkZE5vdGlmaWNhdGlvbk1hbmFnZXIodG9BUEkobWFuYWdlciksIG1fY2xpZW50LmNs
aWVudEluZm8pOwotfQotCi12b2lkIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyOjpyZW1vdmVOb3Rp
ZmljYXRpb25NYW5hZ2VyKFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eSogbWFuYWdlcikKLXsK
LSAgICBpZiAoIW1fY2xpZW50LnJlbW92ZU5vdGlmaWNhdGlvbk1hbmFnZXIpCi0gICAgICAgIHJl
dHVybjsKLSAgICAKLSAgICBtX2NsaWVudC5yZW1vdmVOb3RpZmljYXRpb25NYW5hZ2VyKHRvQVBJ
KG1hbmFnZXIpLCBtX2NsaWVudC5jbGllbnRJbmZvKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9u
UHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOb3RpZmljYXRpb25Qcm92
aWRlci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZjQwYmE4ZjdkMGY5ZmIwZDRk
OTE1MTg5MDZkM2IxMzRlODM2ZTdiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOb3RpZmljYXRpb25Qcm92
aWRlci5oCisrKyAvZGV2L251bGwKQEAgLTEsNTAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5k
ZWYgV2ViTm90aWZpY2F0aW9uUHJvdmlkZXJfaAotI2RlZmluZSBXZWJOb3RpZmljYXRpb25Qcm92
aWRlcl9oCi0KLSNpbmNsdWRlICJBUElDbGllbnQuaCIKLSNpbmNsdWRlICJXS05vdGlmaWNhdGlv
blByb3ZpZGVyLmgiCi0jaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLQotbmFtZXNwYWNlIFdlYktp
dCB7Ci0KLWNsYXNzIFdlYk5vdGlmaWNhdGlvbjsKLWNsYXNzIFdlYk5vdGlmaWNhdGlvbk1hbmFn
ZXJQcm94eTsKLSAgICAKLWNsYXNzIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyIDogcHVibGljIEFQ
SUNsaWVudDxXS05vdGlmaWNhdGlvblByb3ZpZGVyLCBrV0tOb3RpZmljYXRpb25Qcm92aWRlckN1
cnJlbnRWZXJzaW9uPiB7Ci1wdWJsaWM6Ci0gICAgdm9pZCBzaG93KFdlYk5vdGlmaWNhdGlvbiop
OwotICAgIHZvaWQgY2FuY2VsKFdlYk5vdGlmaWNhdGlvbiopOwotICAgIHZvaWQgZGlkRGVzdHJv
eU5vdGlmaWNhdGlvbihXZWJOb3RpZmljYXRpb24qKTsKLQotICAgIHZvaWQgYWRkTm90aWZpY2F0
aW9uTWFuYWdlcihXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkqKTsKLSAgICB2b2lkIHJlbW92
ZU5vdGlmaWNhdGlvbk1hbmFnZXIoV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5Kik7Ci19Owot
Ci19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIFdlYk5vdGlmaWNhdGlvblByb3Zp
ZGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggYjk3
N2Q4OGVmMDMzZDVmNjc0MGRlNDE0Njk1MmM1MzAzYjIzYTgzNC4uZWZmNjYxMTY2ZTM2YjA1MGJh
NjdhNWMyMDNmOTFmMWI3MTUyNDQ1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAKQEAgLTM3LDYgKzM3LDggQEAKICNpbmNsdWRlICJOYXRpdmVXZWJLZXlib2Fy
ZEV2ZW50LmgiCiAjaW5jbHVkZSAiTmF0aXZlV2ViTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIk5h
dGl2ZVdlYldoZWVsRXZlbnQuaCIKKyNpbmNsdWRlICJOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdC5oIgorI2luY2x1ZGUgIk5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5o
IgogI2luY2x1ZGUgIlBhZ2VDbGllbnQuaCIKICNpbmNsdWRlICJQcmludEluZm8uaCIKICNpbmNs
dWRlICJTZXNzaW9uU3RhdGUuaCIKQEAgLTE0Niw2ICsxNDgsNyBAQCBXZWJQYWdlUHJveHk6Oldl
YlBhZ2VQcm94eShQYWdlQ2xpZW50KiBwYWdlQ2xpZW50LCBQYXNzUmVmUHRyPFdlYlByb2Nlc3NQ
cm94eT4gcAogICAgICwgbV9tYWluRnJhbWUoMCkKICAgICAsIG1fdXNlckFnZW50KHN0YW5kYXJk
VXNlckFnZW50KCkpCiAgICAgLCBtX2dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
KHRoaXMpCisgICAgLCBtX25vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcih0aGlz
KQogICAgICwgbV9lc3RpbWF0ZWRQcm9ncmVzcygwKQogICAgICwgbV9pc0luV2luZG93KG1fcGFn
ZUNsaWVudC0+aXNWaWV3SW5XaW5kb3coKSkKICAgICAsIG1faXNWaXNpYmxlKG1fcGFnZUNsaWVu
dC0+aXNWaWV3VmlzaWJsZSgpKQpAQCAtMzY0LDYgKzM2Nyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5
OjpjbG9zZSgpCiAgICAgfQogCiAgICAgbV9nZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlci5pbnZhbGlkYXRlUmVxdWVzdHMoKTsKKyAgICBtX25vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlci5pbnZhbGlkYXRlUmVxdWVzdHMoKTsKIAogICAgIG1fdG9vbFRpcCA9IFN0
cmluZygpOwogCkBAIC0zMTMzLDYgKzMxMzcsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cHJvY2Vz
c0RpZENyYXNoKCkKICAgICB9CiAKICAgICBtX2dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyLmludmFsaWRhdGVSZXF1ZXN0cygpOworICAgIG1fbm90aWZpY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyLmludmFsaWRhdGVSZXF1ZXN0cygpOwogCiAgICAgbV90b29sVGlwID0g
U3RyaW5nKCk7CiAKQEAgLTMyOTUsNiArMzMwMCwxOCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cmVx
dWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IGdlb2xvY2F0aW9uSUQs
CiAgICAgICAgIHJlcXVlc3QtPmRlbnkoKTsKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6OnJlcXVl
c3ROb3RpZmljYXRpb25QZXJtaXNzaW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgU3RyaW5n
JiBvcmlnaW5JZGVudGlmaWVyKQoreworICAgIGlmICghaXNSZXF1ZXN0SURWYWxpZChyZXF1ZXN0
SUQpKQorICAgICAgICByZXR1cm47CisKKyAgICBSZWZQdHI8V2ViU2VjdXJpdHlPcmlnaW4+IG9y
aWdpbiA9IFdlYlNlY3VyaXR5T3JpZ2luOjpjcmVhdGUob3JpZ2luSWRlbnRpZmllcik7CisgICAg
UmVmUHRyPE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0PiByZXF1ZXN0ID0gbV9ub3RpZmlj
YXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3JlYXRlUmVxdWVzdChyZXF1ZXN0SUQpOwor
ICAgIAorICAgIGlmICghbV91aUNsaWVudC5kZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJt
aXNzaW9uUmVxdWVzdCh0aGlzLCBvcmlnaW4uZ2V0KCksIHJlcXVlc3QuZ2V0KCkpKQorICAgICAg
ICByZXF1ZXN0LT5kZW55KCk7Cit9CisKIGZsb2F0IFdlYlBhZ2VQcm94eTo6aGVhZGVySGVpZ2h0
KFdlYkZyYW1lUHJveHkqIGZyYW1lKQogewogICAgIHJldHVybiBtX3VpQ2xpZW50LmhlYWRlckhl
aWdodCh0aGlzLCBmcmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
aW5kZXggODI1NWNmNDFmYzNmNmRkMTI2MzE0NmEwYjZkZDIzNzcxZGY0N2QwNS4uNDdmY2Q2YzAy
MjNiOGNhNGFhMjA3MTFmODVkZjQ4N2EwMTdjYjQ5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaApAQCAtMzYsNiArMzYsNyBAQAogI2lmIEVOQUJMRShUT1VDSF9FVkVO
VFMpCiAjaW5jbHVkZSAiTmF0aXZlV2ViVG91Y2hFdmVudC5oIgogI2VuZGlmCisjaW5jbHVkZSAi
Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJQ
bGF0Zm9ybVByb2Nlc3NJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5o
IgogI2luY2x1ZGUgIlNoYXJlYWJsZUJpdG1hcC5oIgpAQCAtNjg1LDYgKzY4Niw4IEBAIHByaXZh
dGU6CiAgICAgdm9pZCByZWF0dGFjaFRvV2ViUHJvY2VzcygpOwogICAgIHZvaWQgcmVhdHRhY2hU
b1dlYlByb2Nlc3NXaXRoSXRlbShXZWJCYWNrRm9yd2FyZExpc3RJdGVtKik7CiAKKyAgICB2b2lk
IHJlcXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklELCBj
b25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIpOworICAgIAogI2lmIFVTRShUSUxFRF9CQUNL
SU5HX1NUT1JFKQogICAgIHZvaWQgcGFnZURpZFJlcXVlc3RTY3JvbGwoY29uc3QgV2ViQ29yZTo6
SW50UG9pbnQmKTsKICNlbmRpZgpAQCAtODY5LDYgKzg3Miw3IEBAIHByaXZhdGU6CiAgICAgQ29u
dGV4dE1lbnVTdGF0ZSBtX2FjdGl2ZUNvbnRleHRNZW51U3RhdGU7CiAgICAgUmVmUHRyPFdlYk9w
ZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHk+IG1fb3BlblBhbmVsUmVzdWx0TGlzdGVuZXI7CiAg
ICAgR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSBtX2dlb2xvY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOworICAgIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5IG1fbm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOwog
CiAgICAgZG91YmxlIG1fZXN0aW1hdGVkUHJvZ3Jlc3M7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDZkMmFiMzllMTYxYWZj
MWJjYzdlMjc1ZWIzYTkyOGMyYWY2N2ZlOGEuLjVlM2Q2OTg5MTdlOWI3Njc1ZjA5NzdkZTNjMjEz
MDgzMzQzNzE5ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5tZXNzYWdlcy5pbgpAQCAtMTk0LDYgKzE5NCw5IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQ
cm94eSB7CiAKICAgICAjIEdlb2xvY2F0aW9uIG1lc3NhZ2VzCiAgICAgUmVxdWVzdEdlb2xvY2F0
aW9uUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IGdlb2xvY2F0aW9uSUQsIHVpbnQ2NF90IGZy
YW1lSUQsIFdURjo6U3RyaW5nIG9yaWdpbklkZW50aWZpZXIpCisgICAgCisgICAgIyBOb3RpZmlj
YXRpb24gbWVzc2FnZXMKKyAgICBSZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbih1aW50NjRf
dCByZXF1ZXN0SUQsIFdURjo6U3RyaW5nIG9yaWdpbklkZW50aWZpZXIpCiAKICAgICAjIFNwZWxs
aW5nIGFuZCBncmFtbWFyIG1lc3NhZ2VzCiAjaWYgVVNFKFVOSUZJRURfVEVYVF9DSEVDS0lORykg
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAw
YjJiMTg3YzYwZDgxOWRlMGRiNjI0OTY5ZjRkYzU3YTE0YmNjMDlmLi4wYzExY2FhNWI5Yjg1ZmUy
YzU4NDMwN2IyOWI5OTU1N2QyMDI3NWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIldlYkJhY2tG
b3J3YXJkTGlzdEl0ZW0uaCIKICNpbmNsdWRlICJXZWJDb250ZXh0LmgiCiAjaW5jbHVkZSAiV2Vi
TmF2aWdhdGlvbkRhdGFTdG9yZS5oIgorI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQ
cm94eS5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NN
ZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCkBAIC0zMzIs
NiArMzMzLDExIEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlU3luY01lc3NhZ2Uo
Q29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yCiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKKyAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYk5vdGlm
aWNhdGlvbk1hbmFnZXJQcm94eT4oKSkgeworICAgICAgICBtX2NvbnRleHQtPm5vdGlmaWNhdGlv
bk1hbmFnZXJQcm94eSgpLT5kaWRSZWNlaXZlU3luY01lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2Fn
ZUlELCBhcmd1bWVudHMsIHJlcGx5KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIHVp
bnQ2NF90IHBhZ2VJRCA9IGFyZ3VtZW50cy0+ZGVzdGluYXRpb25JRCgpOwogICAgIGlmICghcGFn
ZUlEKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViVUlDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50
LmNwcAppbmRleCBmMTM3MGFmNWEwNzY1MTllZDZmM2NhMGI1ZGM2NWIzNzAwMDk5ZGQzLi40MDM4
NGY4ZWFhNTk2M2EyNjBjNDg2NWFmNzYwOTI2NzlhZDk5YWRhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViVUlDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJVSUNsaWVudC5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJJbW11
dGFibGVEaWN0aW9uYXJ5LmgiCiAjaW5jbHVkZSAiTmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5oIgog
I2luY2x1ZGUgIk5hdGl2ZVdlYldoZWVsRXZlbnQuaCIKKyNpbmNsdWRlICJOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdC5oIgogI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgogI2luY2x1ZGUgIldl
Yk51bWJlci5oIgogI2luY2x1ZGUgIldlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHkuaCIK
QEAgLTMzMSw2ICszMzIsMTUgQEAgYm9vbCBXZWJVSUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yR2Vv
bG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveHkqIHBhZ2UKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAorYm9vbCBXZWJVSUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3h5KiBwYWdlLCBXZWJTZWN1cml0eU9yaWdpbiog
b3JpZ2luLCBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCogcGVybWlzc2lvblJlcXVlc3Qp
Cit7CisgICAgaWYgKCFtX2NsaWVudC5kZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNz
aW9uUmVxdWVzdCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIG1fY2xpZW50LmRl
Y2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KHRvQVBJKHBhZ2UpLCB0
b0FQSShvcmlnaW4pLCB0b0FQSShwZXJtaXNzaW9uUmVxdWVzdCksIG1fY2xpZW50LmNsaWVudElu
Zm8pOworICAgIHJldHVybiB0cnVlOworfQorCiBmbG9hdCBXZWJVSUNsaWVudDo6aGVhZGVySGVp
Z2h0KFdlYlBhZ2VQcm94eSogcGFnZSwgV2ViRnJhbWVQcm94eSogZnJhbWUpCiB7CiAgICAgaWYg
KCFtX2NsaWVudC5oZWFkZXJIZWlnaHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViVUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVu
dC5oCmluZGV4IDU2ZTA5ODhjYjc1NTNjYzk0OTE4MzM5YjBmZDNmM2IzYjYzZjc4ZmYuLjgzNWU2
Y2ViN2EwNmIzYjM4MzJhMmFkMWNhNDc4MzkwMjc1NWYzMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJVSUNsaWVudC5oCkBAIC00Nyw2ICs0Nyw3IEBAIGNsYXNzIEFQSU9iamVjdDsKIGNs
YXNzIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RQcm94eTsKIGNsYXNzIE5hdGl2ZVdlYktl
eWJvYXJkRXZlbnQ7CiBjbGFzcyBOYXRpdmVXZWJXaGVlbEV2ZW50OworY2xhc3MgTm90aWZpY2F0
aW9uUGVybWlzc2lvblJlcXVlc3Q7CiBjbGFzcyBXZWJEYXRhOwogY2xhc3MgV2ViRnJhbWVQcm94
eTsKIGNsYXNzIFdlYlBhZ2VQcm94eTsKQEAgLTk5LDYgKzEwMCw3IEBAIHB1YmxpYzoKIAogICAg
IGJvb2wgcnVuT3BlblBhbmVsKFdlYlBhZ2VQcm94eSosIFdlYkZyYW1lUHJveHkqLCBXZWJPcGVu
UGFuZWxQYXJhbWV0ZXJzKiwgV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eSopOwogICAg
IGJvb2wgZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdl
UHJveHkqLCBXZWJGcmFtZVByb3h5KiwgV2ViU2VjdXJpdHlPcmlnaW4qLCBHZW9sb2NhdGlvblBl
cm1pc3Npb25SZXF1ZXN0UHJveHkqKTsKKyAgICBib29sIGRlY2lkZVBvbGljeUZvck5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSosIFdlYlNlY3VyaXR5T3JpZ2luKiwg
Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QqKTsKIAogICAgIC8vIFByaW50aW5nLgogICAg
IGZsb2F0IGhlYWRlckhlaWdodChXZWJQYWdlUHJveHkqLCBXZWJGcmFtZVByb3h5Kik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
MWZmZTlhOWU4NzQyZmM4MTkwNTdiYmNmMjE1ZmJmZTQ2MTNmMDQ0MC4uYzNmMzUwOThkMTJiMDk3
YjYzMDM3ZmJmMDk5NGUxZWRmZGVmMjUwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
S2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktp
dDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjQ2LDEzICsyNDYsMTAgQEAKIAkJMUNB
OEI5NTQxMjdDODkxNTAwNTc2QzJCIC8qIFdlYkluc3BlY3Rvck1hYy5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDOEUyREFEMTI3OEM1QjIwMEJDN0JE
MCAvKiBXZWJJbnNwZWN0b3JNYWMubW0gKi87IH07CiAJCTI5Q0Q1NUFBMTI4RTI5NEYwMDEzM0M4
NSAvKiBXS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOUNENTVBODEyOEUyOTRGMDAxMzNDODUgLyogV0tB
Y2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdC5oICovOyB9OwogCQkyOUNENTVBQjEyOEUyOTRGMDAx
MzNDODUgLyogV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdC5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5Q0Q1NUE5MTI4RTI5NEYwMDEzM0M4NSAv
KiBXS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0Lm1tICovOyB9OwotCQkzMTA5OTk2RjE0NkM3
NDFEMDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTA5OTk2QTE0NkM3MzkyMDAyOURF
QjkgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmggKi87IH07Ci0JCTMxMDk5OTcwMTQ2
Qzc0MjAwMDI5REVCOSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEwOTk5NkIxNDZDNzNCMTAw
MjlERUI5IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAgKi87IH07CiAJCTMxMDk5
OTczMTQ2Qzc1QTIwMDI5REVCOSAvKiBXZWJOb3RpZmljYXRpb25DbGllbnQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEwOTk5NzExNDZDNzU5QjAw
MjlERUI5IC8qIFdlYk5vdGlmaWNhdGlvbkNsaWVudC5jcHAgKi87IH07CiAJCTMxMDk5OTdBMTQ2
QzhCMTQwMDI5REVCOSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMDk5OTc4MTQ2QzhCMTQwMDI5REVC
OSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcCAqLzsgfTsKIAkJMzEwOTk5N0IxNDZDOEIx
NDAwMjlERUI5IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMDk5OTc5MTQ2QzhCMTQwMDI5REVCOSAvKiBX
ZWJOb3RpZmljYXRpb25NYW5hZ2VyLmggKi87IH07CiAJCTMxMDk5OUM3MTQ2QzlFM0QwMDI5REVC
OSAvKiBXZWJOb3RpZmljYXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDMxMDk5OTY4MTQ2QzcxRjUwMDI5REVCOSAvKiBXZWJOb3RpZmlj
YXRpb25DbGllbnQuaCAqLzsgfTsKLQkJMzEyQzBDNDcxNDZEREJCRDAwMTZDOTExIC8qIFdlYk5v
dGlmaWNhdGlvblByb3ZpZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDMxMkMwQzQ2MTQ2RERCQkMwMDE2QzkxMSAvKiBXZWJOb3RpZmljYXRpb25Q
cm92aWRlci5jcHAgKi87IH07CiAJCTMxMkMwQzRBMTQ2RERDOEEwMDE2QzkxMSAvKiBXS05vdGlm
aWNhdGlvblByb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAzMTJDMEM0OTE0NkREQzhBMDAxNkM5MTEgLyogV0tOb3RpZmljYXRpb25Qcm92aWRl
ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTMx
OEJFMTY3MTQ3MzQzMzcwMEE4RkJCMiAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHlNZXNz
YWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMzE4QkUxNjUxNDczNDMzNzAwQThGQkIyIC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQ
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTMxOEJFMTY4MTQ3MzQzMzcwMEE4RkJC
MiAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE4QkUxNjYxNDczNDMzNzAwQThGQkIy
IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eU1lc3NhZ2VzLmggKi87IH07CkBAIC0yNjAs
MTAgKzI1NywyMiBAQAogCQkzMThCRTE3NTE0NzQzREQ3MDBBOEZCQjIgLyogV0tOb3RpZmljYXRp
b25NYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDMxOEJFMTc0MTQ3NDNERDYwMEE4RkJCMiAvKiBXS05vdGlmaWNhdGlvbk1hbmFnZXIuY3Bw
ICovOyB9OwogCQkzMThCRTE3NzE0NzQzRTYwMDBBOEZCQjIgLyogV0tOb3RpZmljYXRpb24uY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE4QkUxNzYx
NDc0M0U2MDAwQThGQkIyIC8qIFdLTm90aWZpY2F0aW9uLmNwcCAqLzsgfTsKIAkJMzE4QkUxNzkx
NDc0M0U2RjAwQThGQkIyIC8qIFdLTm90aWZpY2F0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMThCRTE3ODE0NzQzRTZBMDBBOEZCQjIgLyogV0tO
b3RpZmljYXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OworCQkzMUEyRUMzRTE0ODk3NDM3MDA4MTBENzEgLyogTm90aWZpY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDMxQTJFQzNDMTQ4OTc0MzcwMDgxMEQ3MSAvKiBOb3RpZmljYXRpb25QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXIuY3BwICovOyB9OworCQkzMUEyRUMzRjE0ODk3NDM3MDA4MTBENzEg
LyogTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUEyRUMzRDE0ODk3NDM3MDA4MTBENzEg
LyogTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmggKi87IH07CisJCTMxQTJF
QzQ4MTQ4OTk3QzIwMDgxMEQ3MSAvKiBXZWJOb3RpZmljYXRpb24uY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFBMkVDNDExNDg5OTdCRTAwODEwRDcx
IC8qIFdlYk5vdGlmaWNhdGlvbi5jcHAgKi87IH07CisJCTMxQTJFQzQ5MTQ4OTk3QzIwMDgxMEQ3
MSAvKiBXZWJOb3RpZmljYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDMxQTJFQzQyMTQ4OTk3QkUwMDgxMEQ3MSAvKiBXZWJOb3RpZmljYXRpb24u
aCAqLzsgfTsKKwkJMzFBMkVDNEExNDg5OTdDMjAwODEwRDcxIC8qIFdlYk5vdGlmaWNhdGlvbk1h
bmFnZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAzMUEyRUM0MzE0ODk5N0JFMDA4MTBENzEgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlclBy
b3h5LmNwcCAqLzsgfTsKKwkJMzFBMkVDNEIxNDg5OTdDMjAwODEwRDcxIC8qIFdlYk5vdGlmaWNh
dGlvbk1hbmFnZXJQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMzFBMkVDNDQxNDg5OTdCRjAwODEwRDcxIC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFn
ZXJQcm94eS5oICovOyB9OworCQkzMUEyRUM0RDE0ODk5N0MyMDA4MTBENzEgLyogV2ViTm90aWZp
Y2F0aW9uUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMzFBMkVDNDYxNDg5OTdDMDAwODEwRDcxIC8qIFdlYk5vdGlmaWNhdGlvblByb3Zp
ZGVyLmNwcCAqLzsgfTsKKwkJMzFBMkVDNEUxNDg5OTdDMjAwODEwRDcxIC8qIFdlYk5vdGlmaWNh
dGlvblByb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAzMUEyRUM0NzE0ODk5N0MxMDA4MTBENzEgLyogV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIu
aCAqLzsgfTsKKwkJMzFBMkVDNTAxNDg5OTgwNTAwODEwRDcxIC8qIE5vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDMxQTJFQzRGMTQ4OTk4MDUwMDgxMEQ3MSAvKiBOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgKi87IH07CisJCTMxQTJFQzUyMTQ4
OTk4MTkwMDgxMEQ3MSAvKiBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFBMkVD
NTExNDg5OTgxNTAwODEwRDcxIC8qIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5LmggKi87IH07CisJCTMxQTJFQzU1MTQ4OTk4MkUwMDgxMEQ3MSAvKiBOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAzMUEyRUM1NDE0ODk5ODJFMDA4MTBENzEgLyogTm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3QuY3BwICovOyB9OworCQkzMUEyRUM1NjE0ODk5QzA5MDA4MTBENzEgLyog
Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxQTJFQzUzMTQ4OTk4MjUwMDgxMEQ3MSAvKiBOb3RpZmlj
YXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oICovOyB9OworCQkzMUEyRUM3NDE0OEQ1OUNBMDA4MTBE
NzEgLyogV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFBMkVDNzIxNDhENTlCQjAwODEwRDcxIC8q
IFdLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkzMUEyRUM3NzE0OEQ2NjJFMDA4MTBENzEgLyog
V0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUEyRUM3NTE0OEQ2NUJCMDA4MTBENzEgLyogV0tO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5jcHAgKi87IH07CiAJCTMxQkE5MjREMTQ4ODMx
MjYwMDYyRURCNSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxQkE5MjQ4MTQ4
ODMwODEwMDYyRURCNSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNw
cCAqLzsgfTsKIAkJMzFCQTkyNEUxNDg4MzEyNjAwNjJFREI1IC8qIFdlYk5vdGlmaWNhdGlvbk1h
bmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMzFCQTkyNDkxNDg4MzA4MTAwNjJFREI1IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJN
ZXNzYWdlcy5oICovOyB9OwotCQkzMUMxMUFCMzE0ODQ1MkU5MDA0OUE0Q0MgLyogV2ViTm90aWZp
Y2F0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDMxQzExQUIxMTQ4NDUyRTkwMDQ5QTRDQyAvKiBXZWJOb3RpZmljYXRpb24uY3BwICovOyB9Owot
CQkzMUMxMUFCNDE0ODQ1MkU5MDA0OUE0Q0MgLyogV2ViTm90aWZpY2F0aW9uLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUMxMUFCMjE0ODQ1MkU5MDA0
OUE0Q0MgLyogV2ViTm90aWZpY2F0aW9uLmggKi87IH07CiAJCTMxRUEyNUQyMTM0Rjc4QzAwMDVC
MTQ1MiAvKiBOYXRpdmVXZWJNb3VzZUV2ZW50TWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFFQTI1RDAxMzRGNzhCMjAwNUIxNDUyIC8qIE5hdGl2
ZVdlYk1vdXNlRXZlbnRNYWMubW0gKi87IH07CiAJCTMzMDkzNDQ3MTMxNUI5MjIwMDk3QTdCQyAv
KiBXZWJDb29raWVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMzMDkzNDQzMTMxNUI5MjIwMDk3QTdCQyAvKiBX
ZWJDb29raWVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJMzMwOTM0NDgxMzE1
QjkyMjAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzMwOTM0NDQxMzE1QjkyMjAwOTdBN0JD
IC8qIFdlYkNvb2tpZU1hbmFnZXJNZXNzYWdlcy5oICovOyB9OwpAQCAtMTIyNSwxNCArMTIzNCw5
IEBACiAJCTI5Q0Q1NUE4MTI4RTI5NEYwMDEzM0M4NSAvKiBXS0FjY2Vzc2liaWxpdHlXZWJQYWdl
T2JqZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQWNjZXNzaWJpbGl0
eVdlYlBhZ2VPYmplY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjlDRDU1QTkx
MjhFMjk0RjAwMTMzQzg1IC8qIFdLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3QubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS0FjY2Vzc2liaWxpdHlXZWJQYWdl
T2JqZWN0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMTA5OTk2ODE0NkM3MUY1
MDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9uQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYk5v
dGlmaWNhdGlvbkNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkzMTA5OTk2
QTE0NkM3MzkyMDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQkzMTA5OTk2QjE0NkM3M0IxMDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9u
TWFuYWdlclByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdl
Yk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTMxMDk5OTZEMTQ2QzczQzQwMDI5REVCOSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJv
eHkubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViTm90aWZpY2F0aW9uTWFu
YWdlclByb3h5Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMTA5
OTk3MTE0NkM3NTlCMDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYk5vdGlmaWNhdGlvbkNsaWVudC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxMDk5OTc4MTQ2QzhCMTQwMDI5REVCOSAv
KiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgbmFtZSA9IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwOyBwYXRoID0gTm90aWZpY2F0aW9u
cy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMzEwOTk5NzkxNDZDOEIxNDAwMjlERUI5IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViTm90aWZpY2F0aW9uTWFuYWdlci5o
OyBwYXRoID0gTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTMxMkMwQzQ2MTQ2RERCQkMwMDE2QzkxMSAvKiBXZWJOb3Rp
ZmljYXRpb25Qcm92aWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBXZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTMxMkMwQzQ4MTQ2RERCRDMwMDE2QzkxMSAvKiBXZWJOb3RpZmljYXRpb25Qcm92aWRlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXZWJOb3RpZmljYXRpb25Qcm92aWRlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkzMTJDMEM0OTE0NkREQzhBMDAxNkM5MTEgLyogV0tOb3RpZmljYXRp
b25Qcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS05vdGlmaWNh
dGlvblByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxOEJFMTY1MTQ3
MzQzMzcwMEE4RkJCMiAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViTm90aWZpY2F0
aW9uTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMzE4QkUxNjYxNDczNDMzNzAwQThGQkIyIC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFn
ZXJQcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYk5v
dGlmaWNhdGlvbk1hbmFnZXJQcm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0xMjQwLDEwICsxMjQ0LDIzIEBACiAJCTMxOEJFMTc0MTQ3NDNERDYwMEE4RkJCMiAv
KiBXS05vdGlmaWNhdGlvbk1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gV0tOb3RpZmljYXRpb25NYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMzE4QkUxNzYxNDc0M0U2MDAwQThGQkIyIC8qIFdLTm90aWZpY2F0aW9uLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLTm90aWZpY2F0aW9uLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzE4QkUxNzgxNDc0M0U2QTAwQThGQkIyIC8q
IFdLTm90aWZpY2F0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLTm90aWZpY2F0aW9uLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxQTJFQzNDMTQ4OTc0MzcwMDgxMEQ3MSAvKiBOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBuYW1lID0gTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNw
cDsgcGF0aCA9IE5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzFBMkVDM0QxNDg5NzQzNzAw
ODEwRDcxIC8qIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXIuaDsgcGF0aCA9IE5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxQTJFQzQxMTQ4OTk3
QkUwMDgxMEQ3MSAvKiBXZWJOb3RpZmljYXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gV2ViTm90aWZpY2F0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMzFBMkVDNDIxNDg5OTdCRTAwODEwRDcxIC8qIFdlYk5vdGlmaWNhdGlvbi5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJOb3RpZmljYXRpb24uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzFBMkVDNDMxNDg5OTdCRTAwODEwRDcxIC8qIFdlYk5v
dGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkzMUEyRUM0NDE0ODk5N0JGMDA4MTBENzEgLyogV2ViTm90aWZpY2F0aW9u
TWFuYWdlclByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYk5vdGlm
aWNhdGlvbk1hbmFnZXJQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMUEy
RUM0NTE0ODk5N0JGMDA4MTBENzEgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5Lm1lc3Nh
Z2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94
eS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzFBMkVDNDYxNDg5
OTdDMDAwODEwRDcxIC8qIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzFBMkVDNDcxNDg5OTdDMTAwODEwRDcxIC8qIFdl
Yk5vdGlmaWNhdGlvblByb3ZpZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTMxQTJFQzRGMTQ4OTk4MDUwMDgxMEQ3MSAvKiBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTMxQTJFQzUxMTQ4OTk4MTUwMDgxMEQ3MSAvKiBOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOb3RpZmlj
YXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkzMUEyRUM1MzE0ODk5ODI1MDA4MTBENzEgLyogTm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzFBMkVDNTQxNDg5OTgyRTAwODEw
RDcxIC8qIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzFBMkVDNzIxNDhENTlCQjAwODEwRDcxIC8q
IFdLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkzMUEyRUM3NTE0OEQ2NUJCMDA4MTBENzEgLyogV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS05vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MzFCQTkyNDgxNDg4MzA4MTAwNjJFREI1IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdl
UmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViTm90
aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTMxQkE5MjQ5MTQ4ODMwODEwMDYyRURCNSAvKiBXZWJOb3RpZmljYXRpb25NYW5h
Z2VyTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViTm90aWZp
Y2F0aW9uTWFuYWdlck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTMx
QzExQUIxMTQ4NDUyRTkwMDQ5QTRDQyAvKiBXZWJOb3RpZmljYXRpb24uY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViTm90aWZpY2F0aW9uLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMzFDMTFBQjIxNDg0NTJFOTAwNDlBNENDIC8qIFdlYk5vdGlm
aWNhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJOb3RpZmljYXRp
b24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzFFQTI1RDAxMzRGNzhCMjAwNUIx
NDUyIC8qIE5hdGl2ZVdlYk1vdXNlRXZlbnRNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBO
YXRpdmVXZWJNb3VzZUV2ZW50TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkz
MUVBMjVEMzEzNEY3OEQ2MDA1QjE0NTIgLyogTmF0aXZlV2ViTW91c2VFdmVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOYXRpdmVXZWJNb3VzZUV2ZW50Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMyREJDRjVFMDM3MEFERUUwMEM5MTc4MyAvKiBXZWJLaXQy
UHJlZml4LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYktpdDJQcmVmaXgu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI0ODAsMTIgKzI0OTcsMzIgQEAKIAkJ
MzEwOTk5NzQxNDZDOEFBODAwMjlERUI5IC8qIE5vdGlmaWNhdGlvbnMgKFVzZXIpICovID0gewog
CQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkzMUEyRUMzQzE0ODk3NDM3
MDA4MTBENzEgLyogTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcCAqLywK
KwkJCQkzMUEyRUMzRDE0ODk3NDM3MDA4MTBENzEgLyogTm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyLmggKi8sCiAJCQkJMzEwOTk5NzgxNDZDOEIxNDAwMjlERUI5IC8qIFdlYk5v
dGlmaWNhdGlvbk1hbmFnZXIuY3BwICovLAogCQkJCTMxMDk5OTc5MTQ2QzhCMTQwMDI5REVCOSAv
KiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyLmggKi8sCiAJCQkpOwogCQkJbmFtZSA9ICJOb3RpZmlj
YXRpb25zIChVc2VyKSI7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQkzMUEy
RUM0MDE0ODk5NzM3MDA4MTBENzEgLyogTm90aWZpY2F0aW9ucyAqLyA9IHsKKwkJCWlzYSA9IFBC
WEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJMzFBMkVDNEYxNDg5OTgwNTAwODEwRDcxIC8q
IE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCAqLywKKwkJCQkz
MUEyRUM1MTE0ODk5ODE1MDA4MTBENzEgLyogTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkuaCAqLywKKwkJCQkzMUEyRUM1NDE0ODk5ODJFMDA4MTBENzEgLyogTm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3QuY3BwICovLAorCQkJCTMxQTJFQzUzMTQ4OTk4MjUwMDgx
MEQ3MSAvKiBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oICovLAorCQkJCTMxQTJFQzQx
MTQ4OTk3QkUwMDgxMEQ3MSAvKiBXZWJOb3RpZmljYXRpb24uY3BwICovLAorCQkJCTMxQTJFQzQy
MTQ4OTk3QkUwMDgxMEQ3MSAvKiBXZWJOb3RpZmljYXRpb24uaCAqLywKKwkJCQkzMUEyRUM0MzE0
ODk5N0JFMDA4MTBENzEgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcCAqLywKKwkJ
CQkzMUEyRUM0NDE0ODk5N0JGMDA4MTBENzEgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5
LmggKi8sCisJCQkJMzFBMkVDNDUxNDg5OTdCRjAwODEwRDcxIC8qIFdlYk5vdGlmaWNhdGlvbk1h
bmFnZXJQcm94eS5tZXNzYWdlcy5pbiAqLywKKwkJCQkzMUEyRUM0NjE0ODk5N0MwMDA4MTBENzEg
LyogV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwICovLAorCQkJCTMxQTJFQzQ3MTQ4OTk3QzEw
MDgxMEQ3MSAvKiBXZWJOb3RpZmljYXRpb25Qcm92aWRlci5oICovLAorCQkJKTsKKwkJCXBhdGgg
PSBOb3RpZmljYXRpb25zOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJMzJD
ODhERkYwMzcxQzI0MjAwQzkxNzgzIC8qIE90aGVyIFNvdXJjZXMgKi8gPSB7CiAJCQlpc2EgPSBQ
QlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMjc1OCw2ICsyNzk1LDcgQEAKIAkJCQkxQUI3
RDRDNzEyODhBQTlBMDBDRkQwOEMgLyogRG93bmxvYWRzICovLAogCQkJCUJDMTExQjE4MTEyRjVG
QjQwMDMzN0JBQiAvKiBMYXVuY2hlciAqLywKIAkJCQlCQ0NGMDg1QzExM0YzQjc1MDBDNjUwQzUg
LyogbWFjICovLAorCQkJCTMxQTJFQzQwMTQ4OTk3MzcwMDgxMEQ3MSAvKiBOb3RpZmljYXRpb25z
ICovLAogCQkJCTFBRUZDQzA1MTFEMDFGMzQwMDgyMTlEMyAvKiBQbHVnaW5zICovLAogCQkJCTFB
NjQyNTY3MTJERTQyRUMwMENBQUUyQyAvKiBCYWNraW5nU3RvcmUuY3BwICovLAogCQkJCTFBNjQy
NTY2MTJERTQyRUMwMENBQUUyQyAvKiBCYWNraW5nU3RvcmUuaCAqLywKQEAgLTI4NDksMTMgKzI4
ODcsNiBAQAogCQkJCTMzRDNBM0I5MTMzOTYwNjIwMDcwOUJFNCAvKiBXZWJNZWRpYUNhY2hlTWFu
YWdlclByb3h5Lm1lc3NhZ2VzLmluICovLAogCQkJCUJDRjY5RkExMTE3NkQwMTQwMDQ3MUE1MiAv
KiBXZWJOYXZpZ2F0aW9uRGF0YS5jcHAgKi8sCiAJCQkJQkNGNjlGQTAxMTc2RDAxNDAwNDcxQTUy
IC8qIFdlYk5hdmlnYXRpb25EYXRhLmggKi8sCi0JCQkJMzFDMTFBQjExNDg0NTJFOTAwNDlBNEND
IC8qIFdlYk5vdGlmaWNhdGlvbi5jcHAgKi8sCi0JCQkJMzFDMTFBQjIxNDg0NTJFOTAwNDlBNEND
IC8qIFdlYk5vdGlmaWNhdGlvbi5oICovLAotCQkJCTMxMDk5OTZCMTQ2QzczQjEwMDI5REVCOSAv
KiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwICovLAotCQkJCTMxMDk5OTZBMTQ2Qzcz
OTIwMDI5REVCOSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaCAqLywKLQkJCQkzMTA5
OTk2RDE0NkM3M0M0MDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5Lm1lc3Nh
Z2VzLmluICovLAotCQkJCTMxMkMwQzQ2MTQ2RERCQkMwMDE2QzkxMSAvKiBXZWJOb3RpZmljYXRp
b25Qcm92aWRlci5jcHAgKi8sCi0JCQkJMzEyQzBDNDgxNDZEREJEMzAwMTZDOTExIC8qIFdlYk5v
dGlmaWNhdGlvblByb3ZpZGVyLmggKi8sCiAJCQkJQkMxREZFQTMxMkIzMUY4NzAwNURGNzMwIC8q
IFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHkuY3BwICovLAogCQkJCUJDMURGRUEyMTJC
MzFGODcwMDVERjczMCAvKiBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5LmggKi8sCiAJ
CQkJNTE1MzU2OUExMjkxQjFEMjAwMDc0OURDIC8qIFdlYlBhZ2VDb250ZXh0TWVudUNsaWVudC5j
cHAgKi8sCkBAIC0yOTc2LDYgKzMwMDcsOCBAQAogCQkJCTUxOEFDQUU5MTJBRUU2QkIwMEIwNEI4
MyAvKiBXS1Byb3RlY3Rpb25TcGFjZVR5cGVzLmggKi8sCiAJCQkJMzMzNjc2MzgxMzBDOTlEQzAw
NkM5REUyIC8qIFdLUmVzb3VyY2VDYWNoZU1hbmFnZXIuY3BwICovLAogCQkJCTMzMzY3NjM5MTMw
Qzk5REMwMDZDOURFMiAvKiBXS1Jlc291cmNlQ2FjaGVNYW5hZ2VyLmggKi8sCisJCQkJMzFBMkVD
NzIxNDhENTlCQjAwODEwRDcxIC8qIFdLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaCAq
LywKKwkJCQkzMUEyRUM3NTE0OEQ2NUJCMDA4MTBENzEgLyogV0tOb3RpZmljYXRpb25QZXJtaXNz
aW9uUmVxdWVzdC5jcHAgKi8sCiAJCQkpOwogCQkJcGF0aCA9IEM7CiAJCQlzb3VyY2VUcmVlID0g
Ijxncm91cD4iOwpAQCAtNDA1NSwxNSArNDA4OCwyMCBAQAogCQkJCUJDMDlCOEY5MTQ3NDYwRjcw
MDVGNTYyNSAvKiBXZWJDb250ZXh0Q29ubmVjdGlvbkNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMzc4OEEwNUMxNDc0M0M5MDAwNjMxOUU1IC8qIFdLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxl
clByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRTlDMEI3MTQ4NDcxNDcwMEUzM0Q2MSAv
KiBXZWJDb25uZWN0aW9uTWVzc2FnZUtpbmRzLmggaW4gSGVhZGVycyAqLywKLQkJCQkzMTA5OTk2
RjE0NkM3NDFEMDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmggaW4gSGVh
ZGVycyAqLywKIAkJCQkzMTA5OTk3QjE0NkM4QjE0MDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9u
TWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzEwOTk5QzcxNDZDOUUzRDAwMjlERUI5IC8q
IFdlYk5vdGlmaWNhdGlvbkNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzEyQzBDNEExNDZE
REM4QTAwMTZDOTExIC8qIFdLTm90aWZpY2F0aW9uUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTMxOEJFMTY4MTQ3MzQzMzcwMEE4RkJCMiAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJv
eHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE4QkUxNzExNDc0M0RCMTAwQThGQkIy
IC8qIFdLTm90aWZpY2F0aW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE4QkUxNzkx
NDc0M0U2RjAwQThGQkIyIC8qIFdLTm90aWZpY2F0aW9uLmggaW4gSGVhZGVycyAqLywKLQkJCQkz
MUMxMUFCNDE0ODQ1MkU5MDA0OUE0Q0MgLyogV2ViTm90aWZpY2F0aW9uLmggaW4gSGVhZGVycyAq
LywKIAkJCQkzMUJBOTI0RTE0ODgzMTI2MDA2MkVEQjUgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdl
ck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKKwkJCQkzMUEyRUMzRjE0ODk3NDM3MDA4MTBENzEg
LyogTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywK
KwkJCQkzMUEyRUM0OTE0ODk5N0MyMDA4MTBENzEgLyogV2ViTm90aWZpY2F0aW9uLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkzMUEyRUM0QjE0ODk5N0MyMDA4MTBENzEgLyogV2ViTm90aWZpY2F0aW9u
TWFuYWdlclByb3h5LmggaW4gSGVhZGVycyAqLywKKwkJCQkzMUEyRUM0RTE0ODk5N0MyMDA4MTBE
NzEgLyogV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTMxQTJF
QzUyMTQ4OTk4MTkwMDgxMEQ3MSAvKiBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzFBMkVDNTYxNDg5OUMwOTAwODEwRDcxIC8q
IE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQkzMUEy
RUM3NDE0OEQ1OUNBMDA4MTBENzEgLyogV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDA7CiAJCX07CkBAIC00NzY2LDE2ICs0ODA0LDIwIEBACiAJCQkJQkM0QTYyOTYxNDcz
MTNBMDAwNkM2ODFBIC8qIFdLQ29ubmVjdGlvblJlZi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlC
QzRBNjJBNzE0NzQ0RUM3MDA2QzY4MUEgLyogV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlCQzA5QjhGODE0NzQ2MEY3MDA1RjU2MjUgLyogV2ViQ29udGV4
dENvbm5lY3Rpb25DbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMzEwOTk5NzAxNDZDNzQy
MDAwMjlERUI5IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkzMTA5OTk3MzE0NkM3NUEyMDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9uQ2xpZW50
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxMDk5OTdBMTQ2QzhCMTQwMDI5REVCOSAvKiBXZWJO
b3RpZmljYXRpb25NYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTMxMkMwQzQ3MTQ2RERC
QkQwMDE2QzkxMSAvKiBXZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkzMThCRTE2NzE0NzM0MzM3MDBBOEZCQjIgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlclBy
b3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxOEJFMTc1MTQ3NDNE
RDcwMEE4RkJCMiAvKiBXS05vdGlmaWNhdGlvbk1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMzE4QkUxNzcxNDc0M0U2MDAwQThGQkIyIC8qIFdLTm90aWZpY2F0aW9uLmNwcCBpbiBTb3Vy
Y2VzICovLAotCQkJCTMxQzExQUIzMTQ4NDUyRTkwMDQ5QTRDQyAvKiBXZWJOb3RpZmljYXRpb24u
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFCQTkyNEQxNDg4MzEyNjAwNjJFREI1IC8qIFdlYk5v
dGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QkNEMzY3NUMxNDhDMjZDMDAwNDQ3RTg3IC8qIFdlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcy5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQkzMUEyRUMzRTE0ODk3NDM3MDA4MTBENzEgLyogTm90aWZpY2F0
aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTMxQTJF
QzQ4MTQ4OTk3QzIwMDgxMEQ3MSAvKiBXZWJOb3RpZmljYXRpb24uY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJMzFBMkVDNEExNDg5OTdDMjAwODEwRDcxIC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQ
cm94eS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkzMUEyRUM0RDE0ODk5N0MyMDA4MTBENzEgLyog
V2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMzFBMkVDNTAx
NDg5OTgwNTAwODEwRDcxIC8qIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTMxQTJFQzU1MTQ4OTk4MkUwMDgxMEQ3MSAvKiBO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkzMUEy
RUM3NzE0OEQ2NjJFMDA4MTBENzEgLyogV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9j
ZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
Tm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDgyOGY4MzQ5OGY1YWQxYjBkY2Nj
YjIxMDBhNThmNTg0MDM0NzViOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXIuY3BwCkBAIC0wLDAgKzEsMTIzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIk5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIgorCisj
aW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSAiV2ViTm90aWZpY2F0
aW9uTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisjaW5jbHVk
ZSAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5j
bHVkZSA8V2ViQ29yZS9Ob3RpZmljYXRpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CisK
K3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworI2lmIEVO
QUJMRShOT1RJRklDQVRJT05TKQorc3RhdGljIHVpbnQ2NF90IGdlbmVyYXRlUmVxdWVzdElEKCkK
K3sKKyAgICBzdGF0aWMgdWludDY0X3QgdW5pcXVlUmVxdWVzdElEID0gMTsKKyAgICByZXR1cm4g
dW5pcXVlUmVxdWVzdElEKys7Cit9CisjZW5kaWYKKworUGFzc1JlZlB0cjxOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI+IE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlcjo6Y3JlYXRlKFdlYlBhZ2UqIHBhZ2UpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIocGFnZSkpOworfQorCitOb3RpZmlj
YXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlcihXZWJQYWdlKiBwYWdlKQorICAgIDogbV9wYWdlKHBhZ2UpCit7Cit9CisKK05v
dGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6fk5vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlcigpCit7Cit9CisKK3ZvaWQgTm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyOjpzdGFydFJlcXVlc3QoU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiwgUGFzc1Jl
ZlB0cjxWb2lkQ2FsbGJhY2s+IGNhbGxiYWNrKQoreworI2lmIEVOQUJMRShOT1RJRklDQVRJT05T
KQorICAgIHVpbnQ2NF90IHJlcXVlc3RJRCA9IGdlbmVyYXRlUmVxdWVzdElEKCk7CisgICAgbV9v
cmlnaW5Ub0lETWFwLnNldChvcmlnaW4sIHJlcXVlc3RJRCk7CisgICAgbV9pZFRvT3JpZ2luTWFw
LnNldChyZXF1ZXN0SUQsIG9yaWdpbik7CisgICAgbV9pZFRvQ2FsbGJhY2tNYXAuc2V0KHJlcXVl
c3RJRCwgY2FsbGJhY2spOworICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpSZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbihyZXF1ZXN0SUQsIG9yaWdpbi0+ZGF0YWJh
c2VJZGVudGlmaWVyKCkpKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKG9yaWdpbik7CisgICAg
VU5VU0VEX1BBUkFNKGNhbGxiYWNrKTsKKyNlbmRpZgorfQorCit2b2lkIE5vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6Y2FuY2VsUmVxdWVzdChTZWN1cml0eU9yaWdpbiogb3Jp
Z2luKQoreworI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQorICAgIHVpbnQ2NF90IGlkID0gbV9v
cmlnaW5Ub0lETWFwLnRha2Uob3JpZ2luKTsKKyAgICBpZiAoIWlkKQorICAgICAgICByZXR1cm47
CisgICAgCisgICAgbV9pZFRvT3JpZ2luTWFwLnJlbW92ZShpZCk7CisgICAgbV9pZFRvQ2FsbGJh
Y2tNYXAucmVtb3ZlKGlkKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKG9yaWdpbik7CisjZW5k
aWYKK30KKworTm90aWZpY2F0aW9uUHJlc2VudGVyOjpQZXJtaXNzaW9uIE5vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6cGVybWlzc2lvbkxldmVsKFNlY3VyaXR5T3JpZ2luKiBz
ZWN1cml0eU9yaWdpbikKK3sKKyNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKKyAgICB1aW50NjRf
dCBwZXJtaXNzaW9uTGV2ZWw7CisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigp
LT5zZW5kU3luYyhNZXNzYWdlczo6V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5OjpOb3RpZmlj
YXRpb25QZXJtaXNzaW9uTGV2ZWwoc2VjdXJpdHlPcmlnaW4tPmRhdGFiYXNlSWRlbnRpZmllcigp
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1lc3Nh
Z2VzOjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25M
ZXZlbDo6UmVwbHkocGVybWlzc2lvbkxldmVsKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDApOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxOb3RpZmlj
YXRpb25QcmVzZW50ZXI6OlBlcm1pc3Npb24+KHBlcm1pc3Npb25MZXZlbCk7CisjZWxzZQorICAg
IFVOVVNFRF9QQVJBTShzZWN1cml0eU9yaWdpbik7CisgICAgcmV0dXJuIE5vdGlmaWNhdGlvblBy
ZXNlbnRlcjo6UGVybWlzc2lvbkRlbmllZDsKKyNlbmRpZgorfQorCit2b2lkIE5vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6ZGlkUmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Np
b25EZWNpc2lvbih1aW50NjRfdCByZXF1ZXN0SUQsIGJvb2wgYWxsb3dlZCkKK3sKKyNpZiBFTkFC
TEUoTk9USUZJQ0FUSU9OUykKKyAgICBpZiAoIWlzUmVxdWVzdElEVmFsaWQocmVxdWVzdElEKSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgUmVmUHRyPFZvaWRDYWxsYmFjaz4gY2FsbGJhY2sgPSBt
X2lkVG9DYWxsYmFja01hcC50YWtlKHJlcXVlc3RJRCk7CisgICAgaWYgKCFjYWxsYmFjaykKKyAg
ICAgICAgcmV0dXJuOworICAgIAorICAgIGNhbGxiYWNrLT5oYW5kbGVFdmVudCgpOworI2Vsc2UK
KyAgICBVTlVTRURfUEFSQU0ocmVxdWVzdElEKTsKKyAgICBVTlVTRURfUEFSQU0oYWxsb3dlZCk7
CisjZW5kaWYgICAgCit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRp
b25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY0
YWI5OGYyZWNlOGQ1NTMwY2Q5NTcyZTMzNDhmYjg2OTczOGRkN2EKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgKQEAgLTAsMCArMSw3NyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
Zm5kZWYgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyX2gKKyNkZWZpbmUgTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyX2gKKworI2luY2x1ZGUgPFdlYkNvcmUv
Tm90aWZpY2F0aW9uUHJlc2VudGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Wb2lkQ2FsbGJhY2su
aD4KKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+
CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBO
b3RpZmljYXRpb247ICAgIAorY2xhc3MgU2VjdXJpdHlPcmlnaW47Cit9CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitjbGFzcyBXZWJQYWdlOworCisvLy8gRklYTUU6IE5lZWQgdG8ga2VlcCBhIHF1
ZXVlIG9mIHBlbmRpbmcgbm90aWZpY2F0aW9ucyB3aGljaCBwZXJtaXNzaW9uIGlzIHN0aWxsIGJl
aW5nIHJlcXVlc3RlZC4KK2NsYXNzIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
ciA6IHB1YmxpYyBSZWZDb3VudGVkPE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
cj4geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPE5vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlcj4gY3JlYXRlKFdlYlBhZ2UqKTsKKyAgICB2aXJ0dWFsIH5Ob3RpZmlj
YXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKTsKKyAgICAKKyAgICB2b2lkIHN0YXJ0UmVx
dWVzdChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiosIFBhc3NSZWZQdHI8V2ViQ29yZTo6Vm9pZENh
bGxiYWNrPik7CisgICAgdm9pZCBjYW5jZWxSZXF1ZXN0KFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
Kik7CisgICAgCisgICAgLy8gU3luY2hyb25vdXMgY2FsbCB0byByZXRyaWV2ZSBwZXJtaXNzaW9u
IGxldmVsIGZvciBnaXZlbiBzZWN1cml0eSBvcmlnaW4KKyAgICBXZWJDb3JlOjpOb3RpZmljYXRp
b25QcmVzZW50ZXI6OlBlcm1pc3Npb24gcGVybWlzc2lvbkxldmVsKFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luKik7CisgICAgCisgICAgdm9pZCBkaWRSZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lv
bkRlY2lzaW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklELCBib29sIGFsbG93ZWQpOworICAgIAor
cHJpdmF0ZToKKyAgICBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoV2ViUGFn
ZSopOworICAgIAorICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxXZWJDb3JlOjpWb2lkQ2Fs
bGJhY2s+ID4gbV9pZFRvQ2FsbGJhY2tNYXA7CisgICAgSGFzaE1hcDxSZWZQdHI8V2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW4+LCB1aW50NjRfdD4gbV9vcmlnaW5Ub0lETWFwOworICAgIEhhc2hNYXA8
dWludDY0X3QsIFJlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4gPiBtX2lkVG9PcmlnaW5N
YXA7CisKKyAgICBXZWJQYWdlKiBtX3BhZ2U7Cit9OworCitpbmxpbmUgYm9vbCBpc1JlcXVlc3RJ
RFZhbGlkKHVpbnQ2NF90IGlkKQoreworICAgIC8vIFRoaXMgY2hlY2sgbWFrZXMgc3VyZSB0aGF0
IHRoZSBJRCBpcyBub3QgZXF1YWwgdG8gdmFsdWVzIG5lZWRlZCBieQorICAgIC8vIEhhc2hNYXAg
Zm9yIGJ1Y2tldGluZy4KKyAgICByZXR1cm4gaWQgJiYgaWQgIT0gc3RhdGljX2Nhc3Q8dWludDY0
X3Q+KC0xKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBOb3RpZmlj
YXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuaCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5h
Z2VyLmgKaW5kZXggMDdjZmFmYzc4NTZkMDhlZTA3YWRiNzNlY2U0YjU5ODU0ZWZlY2U3ZC4uM2Iz
MmYwYWRlYmI5OWJiZThiNDliZTczMTkxZWY0Y2M5Y2UyZGEyYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZp
Y2F0aW9uTWFuYWdlci5oCkBAIC0zOCw3ICszOCw3IEBAIGNsYXNzIENvbm5lY3Rpb247CiB9CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKLWNsYXNzIE5vdGlmaWNhdGlvbjsgICAgCitjbGFzcyBOb3Rp
ZmljYXRpb247CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuY3Bw
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRp
b25DbGllbnQuY3BwCmluZGV4IGYxODQ4YmRmZjlkYjVjYmRmODY2NGJhMDM5YWQ2NmE3NTZjYzIz
NWYuLmUwNjIzNGExY2U1YmZiYjgxYjcxMjM1Njc3NDE0OTBiNzBiYjIzZTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9u
Q2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5jcHAKQEAgLTI4LDkgKzI4LDEyIEBACiAKICNpZiBFTkFC
TEUoTk9USUZJQ0FUSU9OUykKIAorI2luY2x1ZGUgIk5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlci5oIgogI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbk1hbmFnZXIuaCIKKyNpbmNs
dWRlICJXZWJQYWdlLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgPFdlYkNv
cmUvTm90SW1wbGVtZW50ZWQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NjcmlwdEV4ZWN1dGlvbkNv
bnRleHQuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTc0LDIwICs3NywyMSBA
QCB2b2lkIFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6bm90aWZpY2F0aW9uT2JqZWN0RGVzdHJveWVk
KE5vdGlmaWNhdGlvbiogbm90aWZpY2F0aQogI2VuZGlmCiB9CiAKLXZvaWQgV2ViTm90aWZpY2F0
aW9uQ2xpZW50OjpyZXF1ZXN0UGVybWlzc2lvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFz
c1JlZlB0cjxWb2lkQ2FsbGJhY2s+KQordm9pZCBXZWJOb3RpZmljYXRpb25DbGllbnQ6OnJlcXVl
c3RQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8
Vm9pZENhbGxiYWNrPiBjYWxsYmFjaykKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIG1f
cGFnZS0+bm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCktPnN0YXJ0UmVxdWVz
dChjb250ZXh0LT5zZWN1cml0eU9yaWdpbigpLCBjYWxsYmFjayk7CiB9CiAKLXZvaWQgV2ViTm90
aWZpY2F0aW9uQ2xpZW50OjpjYW5jZWxSZXF1ZXN0c0ZvclBlcm1pc3Npb24oU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCopCit2b2lkIFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6Y2FuY2VsUmVxdWVzdHNG
b3JQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCiB7Ci0gICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICBtX3BhZ2UtPm5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlcigpLT5jYW5jZWxSZXF1ZXN0KGNvbnRleHQtPnNlY3VyaXR5T3JpZ2luKCkpOwogfQog
Ci1Ob3RpZmljYXRpb25QcmVzZW50ZXI6OlBlcm1pc3Npb24gV2ViTm90aWZpY2F0aW9uQ2xpZW50
OjpjaGVja1Blcm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopCitOb3RpZmljYXRpb25Q
cmVzZW50ZXI6OlBlcm1pc3Npb24gV2ViTm90aWZpY2F0aW9uQ2xpZW50OjpjaGVja1Blcm1pc3Np
b24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKIHsKLSAgICBub3RJbXBsZW1lbnRl
ZCgpOwotICAgIHJldHVybiBOb3RpZmljYXRpb25QcmVzZW50ZXI6OlBlcm1pc3Npb25EZW5pZWQ7
CisgICAgaWYgKCFjb250ZXh0IHx8ICFjb250ZXh0LT5pc0RvY3VtZW50KCkpCisgICAgICAgIHJl
dHVybiBOb3RpZmljYXRpb25QcmVzZW50ZXI6OlBlcm1pc3Npb25EZW5pZWQ7CisgICAgcmV0dXJu
IG1fcGFnZS0+bm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCktPnBlcm1pc3Np
b25MZXZlbChjb250ZXh0LT5zZWN1cml0eU9yaWdpbigpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
aW5kZXggNjE3MmQ0Zjk4ODJkZmEyNTM5Yjg2ZTI5ZDg4MWJjYmNlMTcwYmJmZS4uNDNlYzM4Yzcw
ZGUwMjZlMjA3MDVmYTI2OWM0ZjQ0ZWYzYTNjNDNlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUg
IkxheWVyVHJlZUhvc3QuaCIKICNpbmNsdWRlICJNZXNzYWdlSUQuaCIKICNpbmNsdWRlICJOZXRz
Y2FwZVBsdWdpbi5oIgorI2luY2x1ZGUgIk5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlci5oIgogI2luY2x1ZGUgIlBhZ2VPdmVybGF5LmgiCiAjaW5jbHVkZSAiUGx1Z2luUHJveHku
aCIKICNpbmNsdWRlICJQbHVnaW5WaWV3LmgiCkBAIC0xODQyLDYgKzE4NDMsMTUgQEAgV2ViRnVs
bFNjcmVlbk1hbmFnZXIqIFdlYlBhZ2U6OmZ1bGxTY3JlZW5NYW5hZ2VyKCkKIH0KICNlbmRpZgog
CitOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIqIFdlYlBhZ2U6Om5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpCit7CisgICAgaWYgKG1fbm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKQorICAgICAgICByZXR1cm4gbV9ub3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuZ2V0KCk7CisKKyAgICBtX25vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlciA9IE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
cjo6Y3JlYXRlKHRoaXMpOworICAgIHJldHVybiBtX25vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlci5nZXQoKTsKK30KKwogI2lmICFQTEFURk9STShHVEspICYmICFQTEFURk9STShN
QUMpCiBib29sIFdlYlBhZ2U6OmhhbmRsZUVkaXRpbmdLZXlib2FyZEV2ZW50KEtleWJvYXJkRXZl
bnQqIGV2dCkKIHsKQEAgLTIxMTgsNiArMjEyOCwxMSBAQCB2b2lkIFdlYlBhZ2U6OmRpZFJlY2Vp
dmVHZW9sb2NhdGlvblBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCBnZW9sb2NhdGlvbklELCBi
bwogICAgIG1fZ2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuZGlkUmVjZWl2ZUdl
b2xvY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKGdlb2xvY2F0aW9uSUQsIGFsbG93ZWQpOwogfQog
Cit2b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVOb3RpZmljYXRpb25QZXJtaXNzaW9uRGVjaXNpb24o
dWludDY0X3Qgbm90aWZpY2F0aW9uSUQsIGJvb2wgYWxsb3dlZCkKK3sKKyAgICBub3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKS0+ZGlkUmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1p
c3Npb25EZWNpc2lvbihub3RpZmljYXRpb25JRCwgYWxsb3dlZCk7Cit9CisKIHZvaWQgV2ViUGFn
ZTo6YWR2YW5jZVRvTmV4dE1pc3NwZWxsaW5nKGJvb2wgc3RhcnRCZWZvcmVTZWxlY3Rpb24pCiB7
CiAgICAgRnJhbWUqIGZyYW1lID0gbV9wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS0+Zm9jdXNlZE9y
TWFpbkZyYW1lKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aAppbmRleCA5MTZkODYyNGQ2YTYzOThjZmM3OWVmMzI1N2UxMWJiZDQzMDVhNzYwLi44NzU2YjQx
ZmMwOGQxZDU2MjY0NzhkY2I3NjlmOTEyNTVjN2I4NGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTEwMiw2ICsxMDIsNyBAQCBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAogY2xhc3MgRHJhd2luZ0FyZWE7CiBjbGFzcyBJbmplY3RlZEJ1bmRsZUJhY2tG
b3J3YXJkTGlzdDsKK2NsYXNzIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsK
IGNsYXNzIFBhZ2VPdmVybGF5OwogY2xhc3MgUGx1Z2luVmlldzsKIGNsYXNzIFNlc3Npb25TdGF0
ZTsKQEAgLTMwOSw2ICszMTAsNyBAQCBwdWJsaWM6CiAKICAgICBGaW5kQ29udHJvbGxlciYgZmlu
ZENvbnRyb2xsZXIoKSB7IHJldHVybiBtX2ZpbmRDb250cm9sbGVyOyB9CiAgICAgR2VvbG9jYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXImIGdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyKCkgeyByZXR1cm4gbV9nZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsg
fQorICAgIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlciogbm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCk7CiAKICAgICB2b2lkIHBhZ2VEaWRTY3JvbGwoKTsK
ICNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKQEAgLTU4Nyw2ICs1ODksNyBAQCBwcml2YXRl
OgogI2VuZGlmCiAKICAgICB2b2lkIGRpZFJlY2VpdmVHZW9sb2NhdGlvblBlcm1pc3Npb25EZWNp
c2lvbih1aW50NjRfdCBnZW9sb2NhdGlvbklELCBib29sIGFsbG93ZWQpOworICAgIHZvaWQgZGlk
UmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCBub3RpZmljYXRp
b25JRCwgYm9vbCBhbGxvd2VkKTsKIAogICAgIHZvaWQgYWR2YW5jZVRvTmV4dE1pc3NwZWxsaW5n
KGJvb2wgc3RhcnRCZWZvcmVTZWxlY3Rpb24pOwogICAgIHZvaWQgY2hhbmdlU3BlbGxpbmdUb1dv
cmQoY29uc3QgU3RyaW5nJiB3b3JkKTsKQEAgLTY5Myw2ICs2OTYsNyBAQCBwcml2YXRlOgogICAg
IFJlZlB0cjxXZWJDb250ZXh0TWVudT4gbV9jb250ZXh0TWVudTsKICAgICBSZWZQdHI8V2ViT3Bl
blBhbmVsUmVzdWx0TGlzdGVuZXI+IG1fYWN0aXZlT3BlblBhbmVsUmVzdWx0TGlzdGVuZXI7CiAg
ICAgR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIgbV9nZW9sb2NhdGlvblBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlcjsKKyAgICBSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyPiBtX25vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsKIAog
ICAgIE93blB0cjxXZWJDb3JlOjpQcmludENvbnRleHQ+IG1fcHJpbnRDb250ZXh0OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdl
cy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2Vz
LmluCmluZGV4IGQwZTMwNGJkYmFlZWRmOWJlMTFmNmI1NTUxYzkyMmY4YzNjNjc2ZDkuLjM3ODYx
OTFlNTA3MWU2YWU4ZmZjNzJjZjAwY2RlOWQ2OWUwYTk5NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC0xNzIs
NiArMTcyLDkgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSB7CiAKICAgICAjIEdlb2xvY2F0aW9uCiAg
ICAgRGlkUmVjZWl2ZUdlb2xvY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IGdlb2xv
Y2F0aW9uSUQsIGJvb2wgYWxsb3dlZCkKKyAgICAKKyAgICAjIE5vdGlmaWNhdGlvbgorICAgIERp
ZFJlY2VpdmVOb3RpZmljYXRpb25QZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3Qgbm90aWZpY2F0
aW9uSUQsIGJvb2wgYWxsb3dlZCkKIAogICAgIFNldFdpbmRvd1Jlc2l6ZXJTaXplKFdlYkNvcmU6
OkludFNpemUgaW50ZXJzZWN0c1ZpZXcpCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCBmYjI4MTZlMjI4MTk0ZGE3NGVmM2RlNGUyNDkzMWYyZmZh
MWE4NDMzLi42MmQyNzEwMDNlOThkMmQwZmI3MWUxNDdlY2Y2ODJiZTA5MTA1MjlhIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkg
QEAKKzIwMTEtMTItMDYgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgorCisgICAgICAgIFtX
SzJdIEFkZCBwZXJtaXNzaW9ucyBzdXBwb3J0ICg3Mzk2MCkKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczOTYwCisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS8xMDM1NzAwOD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGQgbnVsbCBmdW5jdGlvbiBpdGVtIHRvIGNvbXBseSB3aXRoIGFkZGVkIGNhbGxiYWNr
IHRvIFdLUGFnZVVJQ2xpZW50LgorCisgICAgICAgICogTWluaUJyb3dzZXIvbWFjL0Jyb3dzZXJX
aW5kb3dDb250cm9sbGVyLm06CisgICAgICAgICgtW0Jyb3dzZXJXaW5kb3dDb250cm9sbGVyIGF3
YWtlRnJvbU5pYl0pOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIu
Y3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6Y3JlYXRlT3RoZXJQYWdlKToKKyAg
ICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmluaXRpYWxpemUpOgorCiAyMDExLTEyLTA2ICBB
ZGFtIFJvYmVuICA8YXJvYmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYSBwaWQgcGFyYW1l
dGVyIHRvIENyYXNoTG9ncy5maW5kX25ld2VzdF9sb2cKZGlmZiAtLWdpdCBhL1Rvb2xzL01pbmlC
cm93c2VyL21hYy9Ccm93c2VyV2luZG93Q29udHJvbGxlci5tIGIvVG9vbHMvTWluaUJyb3dzZXIv
bWFjL0Jyb3dzZXJXaW5kb3dDb250cm9sbGVyLm0KaW5kZXggZjdlOWM2OTAxMDY3N2U0YjQxNTRl
NmI3MDBjNDA4ZTg4MDA1N2I5Mi4uNDk5M2FhOTlkOTUzNWM5Yjg3NWVkOTA4ODFlNDZlMjBmYjRj
ZjEwMSAxMDA2NDQKLS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvbWFjL0Jyb3dzZXJXaW5kb3dDb250
cm9sbGVyLm0KKysrIGIvVG9vbHMvTWluaUJyb3dzZXIvbWFjL0Jyb3dzZXJXaW5kb3dDb250cm9s
bGVyLm0KQEAgLTY2Nyw2ICs2NjcsNyBAQCAtICh2b2lkKWF3YWtlRnJvbU5pYgogICAgICAgICAw
LCAvLyBzaG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0CiAgICAgICAgIGNyZWF0ZU5ld1BhZ2UsCiAg
ICAgICAgIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50LAorICAgICAgICAwLCAvLyBkZWNpZGVQb2xp
Y3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdAogICAgIH07CiAgICAgV0tQYWdlU2V0
UGFnZVVJQ2xpZW50KF93ZWJWaWV3LnBhZ2VSZWYsICZ1aUNsaWVudCk7CiB9CmRpZmYgLS1naXQg
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IGNmNzExNDBkMWFiZjViNjMzMjRl
Zjk1OTRiZTkyN2IyODRlYzdjYjkuLmRlNjhhMjk3ZTRiOTkyYzQyYjQ5YzJiNGEwZDFlOTZmMTY4
NDYwMjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIu
Y3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC0y
MDQsNiArMjA0LDcgQEAgV0tQYWdlUmVmIFRlc3RDb250cm9sbGVyOjpjcmVhdGVPdGhlclBhZ2Uo
V0tQYWdlUmVmIG9sZFBhZ2UsIFdLVVJMUmVxdWVzdFJlZiwgV0sKICAgICAgICAgMCwgLy8gc2hv
dWxkSW50ZXJydXB0SmF2YVNjcmlwdAogICAgICAgICBjcmVhdGVPdGhlclBhZ2UsCiAgICAgICAg
IDAsIC8vIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50CisgICAgICAgIDAsIC8vIGRlY2lkZVBvbGlj
eUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0CiAgICAgfTsKICAgICBXS1BhZ2VTZXRQ
YWdlVUlDbGllbnQobmV3UGFnZSwgJm90aGVyUGFnZVVJQ2xpZW50KTsKIApAQCAtMzU2LDYgKzM1
Nyw3IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmluaXRpYWxpemUoaW50IGFyZ2MsIGNvbnN0IGNo
YXIqIGFyZ3ZbXSkKICAgICAgICAgMCwgLy8gc2hvdWxkSW50ZXJydXB0SmF2YVNjcmlwdAogICAg
ICAgICBjcmVhdGVPdGhlclBhZ2UsCiAgICAgICAgIDAsIC8vIG1vdXNlRGlkTW92ZU92ZXJFbGVt
ZW50CisgICAgICAgIDAsIC8vIGRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0CiAgICAgfTsKICAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQobV9tYWluV2ViVmlldy0+
cGFnZSgpLCAmcGFnZVVJQ2xpZW50KTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118150</attachid>
            <date>2011-12-06 17:27:06 -0800</date>
            <delta_ts>2011-12-07 10:20:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73960-20111206172833.patch</filename>
            <type>text/plain</type>
            <size>137152</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyMTgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMzA5NWYxYWEyYzA0OTIz
NDM4YzdiMmM5N2QxMDIxMjQ1MmM4ODQwYS4uZDJhN2M2MWMwYzdmZmI2MmMxMDFmMmIxMjgyMzI2
ZmJmMTc5YmVkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzNiBAQAorMjAxMS0xMi0wNiAgSm9u
IExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gQWRkIHBlcm1pc3Npb25z
IHN1cHBvcnQgKDczOTYwKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NzM5NjAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEwMzU3MDA4PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRGVyaXZlZFNvdXJj
ZXMubWFrZTogTW92ZWQgbm90aWZpY2F0aW9uIGZpbGVzIHRvIGl0cyBvd24gZGlyZWN0b3J5LiBO
ZWVkIHRvIGFkZCB0aGF0IHBhdGguCisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOiBOZXcgaGVhZGVyIGFuZCBpbXBsIGZpbGVzLgorICAgICAgICAqIFRhcmdldC5w
cmk6IERpdHRvLgorICAgICAgICAqIHdpbi9XZWJLaXQyLnZjcHJvajogRGl0dG8uCisgICAgICAg
ICogd2luL1dlYktpdDJDb21tb24udnNwcm9wczogQWRkIHBhdGggdG8gTm90aWZpY2F0aW9ucyBk
aXJlY3RvcnkuCisKKyAgICAgICAgSW1wbGVtZW50IHBlcm1pc3Npb24gZnVuY3Rpb25zLCB3aGlj
aCBnbyB0aHJvdWdoIHBlcm1pc3Npb24gcmVxdWVzdCBtYW5hZ2VyLgorCisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25DbGllbnQ6OnJlcXVlc3RQZXJtaXNzaW9uKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uQ2xpZW50OjpjYW5jZWxSZXF1ZXN0c0ZvclBl
cm1pc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25DbGllbnQ6OmNoZWNr
UGVybWlzc2lvbik6CisKKyAgICAgICAgTmV3IE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlciB0byBtYWtlIGFuZCBjYW5jZWwgcGVybWlzc2lvbiByZXF1ZXN0cywgYW5kIHRvIHJl
dHJpZXZlIGN1cnJlbnQKKyAgICAgICAgcG9saWN5LgorCisgICAgICAgICogV2ViUHJvY2Vzcy9O
b3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViS2l0OjpnZW5lcmF0ZVJlcXVlc3RJRCk6CisgICAgICAgIChXZWJL
aXQ6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYktpdDo6Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpOb3RpZmlj
YXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpOb3RpZmlj
YXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6On5Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXI6OnN0YXJ0UmVxdWVzdCk6IEtlZXAgdHJhY2sgb2YgdGhlIHByb3ZpZGVkIGNh
bGxiYWNrIG9uY2UKKyAgICAgICAgcG9saWN5IGRlY2lzaW9uIGlzIG1hZGUuCisgICAgICAgIChX
ZWJLaXQ6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6Y2FuY2VsUmVxdWVz
dCk6CisgICAgICAgIChXZWJLaXQ6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
cjo6cGVybWlzc2lvbkxldmVsKTogUmV0cmlldmUgbGV2ZWwgdGhyb3VnaCBhIHN5bmNocm9ub3Vz
CisgICAgICAgIG1lc3NhZ2UgdG8gdGhlIHByb3h5LgorICAgICAgICAoV2ViS2l0OjpOb3RpZmlj
YXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OmRpZFJlY2VpdmVOb3RpZmljYXRpb25QZXJt
aXNzaW9uRGVjaXNpb24pOiBJbnZva2UgdGhlIGNhbGxiYWNrLgorICAgICAgICAqIFdlYlByb2Nl
c3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaDog
QWRkZWQuCisgICAgICAgIChXZWJLaXQ6OmlzUmVxdWVzdElEVmFsaWQpOiBNYWtlIHN1cmUgYW55
IHByb3ZpZGVkIHJlcXVlc3QgSURzIGFyZSB2YWxpZC4KKworICAgICAgICBBZGRlZCBuZXcgTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QgY2xhc3MuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
Tm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViS2l0OjpOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDo6Y3JlYXRlKToK
KyAgICAgICAgKFdlYktpdDo6Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q6Ok5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6Tm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3Q6OmFsbG93KTogTm90aWZ5IG1hbmFnZXIgb2YgZGVjaXNpb24uCisgICAg
ICAgIChXZWJLaXQ6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0OjpkZW55KTogRGl0dG8u
CisgICAgICAgIChXZWJLaXQ6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0OjppbnZhbGlk
YXRlKTogRGlzYXNzb2NpYXRlIHdpdGggbWFuYWdlci4KKyAgICAgICAgKFdlYktpdDo6Tm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3Q6OnR5cGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Ob3Rp
ZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0Lmg6IEFkZGVkLgorCisgICAg
ICAgIFdLQVBJIHN1cHBvcnQgZm9yIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0OgorCisg
ICAgICAgICogU2hhcmVkL0FQSS9jL1dLQmFzZS5oOgorICAgICAgICAqIFNoYXJlZC9BUElPYmpl
Y3QuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0Lmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RHZXRUeXBlSUQpOgor
ICAgICAgICAoV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdEFsbG93KToKKyAgICAgICAg
KFdLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3REZW55KToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0MvV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oOiBBZGRlZC4KKworICAg
ICAgICBPdGhlciBhZGRpdGlvbnMgdG8gV0sgQVBJOgorCisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9DL1dLTm90aWZpY2F0aW9uUHJvdmlkZXIuaDogQWRkZWQgbmV3IGNhbGxiYWNrIGZvciBXS05v
dGlmaWNhdGlvblByb3ZpZGVycywgdG8gcmV0dXJuIHBvbGljeQorICAgICAgICBmb3IgYSBnaXZl
biBzZWN1cml0eSBvcmlnaW4uCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oOiBB
ZGRlZCBuZXcgY2FsbGJhY2sgdG8gV0tQYWdlVUlDbGllbnQgdG8gYXNrIHVzZXIgdG8gZGVjaWRl
IG9uIHBvbGljeS4KKworICAgICAgICBOZXcgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkgdG8gY3JlYXRlIHJlcXVlc3RzLgorCisgICAgICAgICogVUlQcm9jZXNzL05v
dGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3Bw
OiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHk6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5KToK
KyAgICAgICAgKFdlYktpdDo6Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHk6OmludmFsaWRhdGVSZXF1ZXN0cyk6CisgICAgICAgIChXZWJLaXQ6Ok5vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpjcmVhdGVSZXF1ZXN0KToKKyAgICAgICAgKFdl
YktpdDo6Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmRpZFJlY2Vp
dmVOb3RpZmljYXRpb25QZXJtaXNzaW9uRGVjaXNpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9O
b3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Lmg6
IEFkZGVkLgorCisgICAgICAgIEFkZGVkIG5ldyBtZXNzYWdlIHRvIG5vdGlmaWNhdGlvbiBtYW5h
Z2VyOiBOb3RpZmljYXRpb25QZXJtaXNzaW9uTGV2ZWwsIHRvIHJldHJpZXZlIHBvbGljeS4gVGhl
IGN1cnJlbnQKKyAgICAgICAgSlMgQVBJIHJldHJpZXZlcyB0aGUgcGVybWlzc2lvbiBzeW5jaHJv
bm91c2x5LCBzbyB0aGUgbWVzc2FnZSBuZWVkcyB0byBiZSBzZW50IHN5bmNocm9ub3VzbHkgYWxz
by4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1h
bmFnZXJQcm94eS5tZXNzYWdlcy5pbjogTW92ZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluLgorICAgICAgICAqIFVJ
UHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcDogTW92ZWQg
ZnJvbSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuY3Bw
LgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25Qcm92aWRlcjo6cG9saWN5Rm9yTm90
aWZpY2F0aW9uUGVybWlzc2lvbkF0T3JpZ2luKTogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNz
L05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuaDogTW92ZWQgZnJvbSBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuaC4KKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzc1Byb3h5OjpkaWRSZWNlaXZlU3luY01lc3NhZ2UpOiBCb2lsZXJwbGF0ZSB0byBmb3J3YXJk
IG1lc3NhZ2VzIHRvIG5vdGlmaWNhdGlvbiBtYW5hZ2VyLgorCisgICAgICAgICogVUlQcm9jZXNz
L05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcDogTW92ZWQgZnJv
bSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNw
cC4KKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5OjpjcmVhdGUp
OgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OldlYk5vdGlm
aWNhdGlvbk1hbmFnZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1h
bmFnZXJQcm94eTo6fldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eSk6CisgICAgICAgIChXZWJL
aXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6aW52YWxpZGF0ZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6aW5pdGlhbGl6ZVByb3ZpZGVyKToK
KyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5OjpkaWRSZWNlaXZl
TWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6
ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9u
TWFuYWdlclByb3h5OjpzaG93KToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFu
YWdlclByb3h5OjpjYW5jZWwpOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5h
Z2VyUHJveHk6OmRpZERlc3Ryb3lOb3RpZmljYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJO
b3RpZmljYXRpb25NYW5hZ2VyUHJveHk6Om5vdGlmaWNhdGlvblBlcm1pc3Npb25MZXZlbCk6IFJl
dHJpZXZlIHRoZSBwb2xpY3kgZnJvbSB0aGUgcHJvdmlkZXIuCisgICAgICAgIChXZWJLaXQ6Oldl
Yk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6cHJvdmlkZXJEaWRTaG93Tm90aWZpY2F0aW9uKToK
KyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5Ojpwcm92aWRlckRp
ZENsaWNrTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFu
YWdlclByb3h5Ojpwcm92aWRlckRpZENsb3NlTm90aWZpY2F0aW9ucyk6CisgICAgICAgICogVUlQ
cm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5Lmg6IE1vdmVk
IGZyb20gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94
eS5oLgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OmNsZWFy
Q29udGV4dCk6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6
dHlwZSk6CisKKyAgICAgICAgQWRkZWQgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHkgdG8gV2ViUGFnZVByb3h5LCB0byBhbGxvdyBhIHJlcXVlc3QgZm9yIHBlcm1pc3Np
b24gdG8KKyAgICAgICAgZ28gdGhyb3VnaCB0byB0aGUgVUkgY2xpZW50LiBBZGRlZCBuZXcgbWVz
c2FnZSB0byBXZWJQYWdlUHJveHksIFJlcXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9uLgorCisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6V2ViUGFnZVByb3h5KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpjbG9zZSk6IEludmFsaWRhdGUgcGVuZGluZyByZXF1ZXN0cy4KKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5Ojpwcm9jZXNzRGlkQ3Jhc2gpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjpyZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbik6IEZvcndhcmQgcmVx
dWVzdCB0byBVSSBjbGllbnQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViVUlDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJVSUNsaWVu
dDo6ZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJVSUNsaWVudC5oOgorCisgICAgICAgIEFkZGVkIG5ldyBtZXNzYWdl
IERpZFJlY2VpdmVOb3RpZmljYXRpb25QZXJtaXNzaW9uRGVjaXNpb24uIFRoZSBXZWJQYWdlIGZv
cndhcmRzIHRoZSBtZXNzYWdlIHRvIHRoZQorICAgICAgICBwZXJtaXNzaW9uIHJlcXVlc3QgbWFu
YWdlci4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmlu
OiBBZGRlZCBuZXcgbWVzc2FnZSBEaWRSZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lz
aW9uCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlOjpub3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIpOiBD
cmVhdGUgbWFuYWdlciBvbiByZXF1ZXN0LgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkaWRS
ZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorCisgICAgICAgIE1vdmluZyBmaWxlcyB0byBOb3RpZmlj
YXRpb25zLyBzdWJkaXJlY3RvcnkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvTm90aWZpY2F0aW9u
cy9XZWJOb3RpZmljYXRpb24uY3BwOiBNb3ZlZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJOb3RpZmljYXRpb24uY3BwLgorICAgICAgICAqIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25z
L1dlYk5vdGlmaWNhdGlvbi5oOiBNb3ZlZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJOb3RpZmljYXRpb24uaC4KKwogMjAxMS0xMi0wNiAgQWxleGFuZGVyIEbDpnLDuHkgIDxhbGV4
YW5kZXIuZmFlcm95QG5va2lhLmNvbT4KIAogICAgICAgICBbUXRdIEZpeCBhc3NlcnRpb24gaW4g
UXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lLmNwcDo0NjgKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNl
cy5tYWtlCmluZGV4IGEzMDBmODRiZDliZDkzZTVlZTI3NjM4MTA4MDYxMTUzMjVkMWEyODUuLmUy
Mjc3ZTQ1YzZmZWQ5OTNlMGFlNTI2OGU0NTIwNjk1Mzk4MWI0N2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYktpdDIvRGVyaXZl
ZFNvdXJjZXMubWFrZQpAQCAtNDAsNiArNDAsNyBAQCBWUEFUSCA9IFwKICAgICAkKFdlYktpdDIp
L1dlYlByb2Nlc3MgXAogICAgICQoV2ViS2l0MikvVUlQcm9jZXNzIFwKICAgICAkKFdlYktpdDIp
L1VJUHJvY2Vzcy9Eb3dubG9hZHMgXAorICAgICQoV2ViS2l0MikvVUlQcm9jZXNzL05vdGlmaWNh
dGlvbnMgXAogICAgICQoV2ViS2l0MikvVUlQcm9jZXNzL1BsdWdpbnMgXAogIwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmggYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKaW5kZXggNmNmNGYwZjAzYjcwYTg3NjUyMGJiZTI2N2M1
ZDhiODIyMmM1OTE5YS4uYWRiY2U2ZDY4NGI2NjhkZDAxMDM5YTJmNDgxYWZlZmM0YjY0ZTllYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaApAQCAtOTcsNiArOTcsNyBAQCB0eXBl
ZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS01lZGlhQ2FjaGVNYW5hZ2VyKiBXS01lZGlhQ2FjaGVN
YW5hZ2VyUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tOYXZpZ2F0aW9uRGF0YSog
V0tOYXZpZ2F0aW9uRGF0YVJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLTm90aWZp
Y2F0aW9uKiBXS05vdGlmaWNhdGlvblJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdL
Tm90aWZpY2F0aW9uTWFuYWdlciogV0tOb3RpZmljYXRpb25NYW5hZ2VyUmVmOwordHlwZWRlZiBj
b25zdCBzdHJ1Y3QgT3BhcXVlV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCogV0tOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdFJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1
ZVdLTm90aWZpY2F0aW9uUHJvdmlkZXIqIFdLTm90aWZpY2F0aW9uUHJvdmlkZXJSZWY7CiB0eXBl
ZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS09wZW5QYW5lbFBhcmFtZXRlcnMqIFdLT3BlblBhbmVs
UGFyYW1ldGVyc1JlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLT3BlblBhbmVsUmVz
dWx0TGlzdGVuZXIqIFdLT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJSZWY7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
QVBJT2JqZWN0LmgKaW5kZXggZGVjYmRiOTdhN2M2OTEyMzAxOTRiMmMxNjliMjUxNjMwN2Q3MjU5
Ny4uMjljNzI2ZDA3ZTUzYzlkYWM3ZmNjMWRjOTQ5ODhlZjAyNjRmZDIyYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9BUElPYmplY3QuaApAQCAtOTEsNiArOTEsNyBAQCBwdWJsaWM6CiAgICAgICAgIFR5cGVO
YXZpZ2F0aW9uRGF0YSwKICAgICAgICAgVHlwZU5vdGlmaWNhdGlvbiwKICAgICAgICAgVHlwZU5v
dGlmaWNhdGlvbk1hbmFnZXIsCisgICAgICAgIFR5cGVOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdCwKICAgICAgICAgVHlwZU9wZW5QYW5lbFBhcmFtZXRlcnMsCiAgICAgICAgIFR5cGVPcGVu
UGFuZWxSZXN1bHRMaXN0ZW5lciwKICAgICAgICAgVHlwZVBhZ2UsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9UYXJnZXQucHJpIGIvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQppbmRleCA5
NzY5MTRlNTliOGQ0NTE1YmU2NjIwZjllMGI0ZTYyNGM2M2ViYmIyLi5lMTg4NTkxOWIwZWI0MzFi
MDYzMjBhODdkODA5OTNiNjA5NzNkMjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9UYXJn
ZXQucHJpCisrKyBiL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKQEAgLTE1Niw2ICsxNTYsNyBA
QCBIRUFERVJTICs9IFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0aW9uRGF0YS5oIFwK
ICAgICBVSVByb2Nlc3MvQVBJL0MvV0tOb3RpZmljYXRpb24uaCBcCiAgICAgVUlQcm9jZXNzL0FQ
SS9DL1dLTm90aWZpY2F0aW9uTWFuYWdlci5oIFwKKyAgICBVSVByb2Nlc3MvQVBJL0MvV0tOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tOb3Rp
ZmljYXRpb25Qcm92aWRlci5oIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmggXAogICAg
IFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VHcm91cC5oIFwKQEAgLTE5Myw2ICsxOTQsMTEgQEAgSEVB
REVSUyArPSBcCiAgICAgVUlQcm9jZXNzL0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RQcm94
eS5oIFwKICAgICBVSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmggXAogICAgIFVJ
UHJvY2Vzcy9MYXVuY2hlci9UaHJlYWRMYXVuY2hlci5oIFwKKyAgICBVSVByb2Nlc3MvTm90aWZp
Y2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oIFwKKyAgICBVSVByb2Nlc3Mv
Tm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5o
IFwKKyAgICBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb24uaCBcCisgICAg
VUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmggXAor
ICAgIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmggXAog
ICAgIFVJUHJvY2Vzcy9QYWdlQ2xpZW50LmggXAogICAgIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdp
bkluZm9TdG9yZS5oIFwKICAgICBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHku
aCBcCkBAIC0yMzEsOSArMjM3LDYgQEAgSEVBREVSUyArPSBcCiAgICAgVUlQcm9jZXNzL1dlYkxv
YWRlckNsaWVudC5oIFwKICAgICBVSVByb2Nlc3MvV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eS5o
IFwKICAgICBVSVByb2Nlc3MvV2ViTmF2aWdhdGlvbkRhdGEuaCBcCi0gICAgVUlQcm9jZXNzL1dl
Yk5vdGlmaWNhdGlvbi5oIFwKLSAgICBVSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9uTWFuYWdlclBy
b3h5LmggXAotICAgIFVJUHJvY2Vzcy9XZWJOb3RpZmljYXRpb25Qcm92aWRlci5oIFwKICAgICBV
SVByb2Nlc3MvV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eS5oIFwKICAgICBVSVByb2Nl
c3MvV2ViUGFnZUNvbnRleHRNZW51Q2xpZW50LmggXAogICAgIFVJUHJvY2Vzcy9XZWJQYWdlR3Jv
dXAuaCBcCkBAIC0zMDMsNiArMzA2LDcgQEAgSEVBREVSUyArPSBcCiAgICAgV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlQ29kZXJzLmggXAogICAgIFdl
YlByb2Nlc3MvS2V5VmFsdWVTdG9yYWdlL1dlYktleVZhbHVlU3RvcmFnZU1hbmFnZXIuaCBcCiAg
ICAgV2ViUHJvY2Vzcy9NZWRpYUNhY2hlL1dlYk1lZGlhQ2FjaGVNYW5hZ2VyLmggXAorICAgIFdl
YlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXIuaCBcCiAgICAgV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFn
ZXIuaCBcCiAgICAgV2ViUHJvY2Vzcy9SZXNvdXJjZUNhY2hlL1dlYlJlc291cmNlQ2FjaGVNYW5h
Z2VyLmggXAogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QTWV0aG9kLmggXApA
QCAtNDc0LDYgKzQ3OCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0lu
c3BlY3Rvci5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNhdGlvbi5jcHAgXAog
ICAgIFVJUHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNhdGlvbk1hbmFnZXIuY3BwIFwKKyAgICBVSVBy
b2Nlc3MvQVBJL0MvV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5jcHAgXAogICAgIFVJ
UHJvY2Vzcy9BUEkvQy9XS09wZW5QYW5lbFBhcmFtZXRlcnMuY3BwIFwKICAgICBVSVByb2Nlc3Mv
QVBJL0MvV0tPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkv
Qy9XS05hdmlnYXRpb25EYXRhLmNwcCBcCkBAIC01MDcsNiArNTEyLDExIEBAIFNPVVJDRVMgKz0g
XAogICAgIFVJUHJvY2Vzcy9MYXVuY2hlci9UaHJlYWRMYXVuY2hlci5jcHAgXAogICAgIFVJUHJv
Y2Vzcy9MYXVuY2hlci9xdC9Qcm9jZXNzTGF1bmNoZXJRdC5jcHAgXAogICAgIFVJUHJvY2Vzcy9M
YXVuY2hlci9xdC9UaHJlYWRMYXVuY2hlclF0LmNwcCBcCisgICAgVUlQcm9jZXNzL05vdGlmaWNh
dGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuY3BwIFwKKyAgICBVSVByb2Nlc3Mv
Tm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5j
cHAgXAorICAgIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbi5jcHAgXAor
ICAgIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5j
cHAgXAorICAgIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvblByb3ZpZGVy
LmNwcCBcCiAgICAgVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luSW5mb1N0b3JlLmNwcCBcCiAgICAg
VUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcCBcCiAgICAgVUlQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luUHJvY2Vzc01hbmFnZXIuY3BwIFwKQEAgLTU0NSw5ICs1NTUsNiBAQCBT
T1VSQ0VTICs9IFwKICAgICBVSVByb2Nlc3MvV2ViTG9hZGVyQ2xpZW50LmNwcCBcCiAgICAgVUlQ
cm9jZXNzL1dlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHkuY3BwIFwKICAgICBVSVByb2Nlc3MvV2Vi
TmF2aWdhdGlvbkRhdGEuY3BwIFwKLSAgICBVSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9uLmNwcCBc
Ci0gICAgVUlQcm9jZXNzL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAgXAotICAgIFVJ
UHJvY2Vzcy9XZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHAgXAogICAgIFVJUHJvY2Vzcy9XZWJP
cGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5LmNwcCBcCiAgICAgVUlQcm9jZXNzL1dlYlBhZ2VD
b250ZXh0TWVudUNsaWVudC5jcHAgXAogICAgIFVJUHJvY2Vzcy9XZWJQYWdlR3JvdXAuY3BwIFwK
QEAgLTYzMyw2ICs2NDAsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBXZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL3F0L0luamVjdGVkQnVuZGxlUXQuY3BwIFwKICAgICBXZWJQcm9jZXNzL0tleVZhbHVl
U3RvcmFnZS9XZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9N
ZWRpYUNhY2hlL1dlYk1lZGlhQ2FjaGVNYW5hZ2VyLmNwcCBcCisgICAgV2ViUHJvY2Vzcy9Ob3Rp
ZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAgXAogICAg
IFdlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcCBcCiAg
ICAgV2ViUHJvY2Vzcy9SZXNvdXJjZUNhY2hlL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyLmNwcCBc
CiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBNZXRob2QuY3BwIFwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAppbmRleCA5Nzc3YzFhY2FmNDhj
OTBmZjQ0ZTNmOTVjMmJjNWFkYTJjMzViMmQ4Li4wZTcxNzVhNDI4Zjc4MDgyMGM4OTcxZGUzOWM5
NjUxMGFhYWZhYzkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tBUElDYXN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2Fz
dC5oCkBAIC01Miw2ICs1Miw3IEBAIGNsYXNzIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk7
CiBjbGFzcyBBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXI7CiBjbGFzcyBEb3dubG9hZFBy
b3h5OwogY2xhc3MgR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFByb3h5OworY2xhc3MgTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q7CiBjbGFzcyBXZWJBcHBsaWNhdGlvbkNhY2hlTWFu
YWdlclByb3h5OwogY2xhc3MgV2ViQmFja0ZvcndhcmRMaXN0OwogY2xhc3MgV2ViQmFja0Zvcndh
cmRMaXN0SXRlbTsKQEAgLTEwOCw2ICsxMDksNyBAQCBXS19BRERfQVBJX01BUFBJTkcoV0tLZXlW
YWx1ZVN0b3JhZ2VNYW5hZ2VyUmVmLCBXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveHkpCiBX
S19BRERfQVBJX01BUFBJTkcoV0tNZWRpYUNhY2hlTWFuYWdlclJlZiwgV2ViTWVkaWFDYWNoZU1h
bmFnZXJQcm94eSkKIFdLX0FERF9BUElfTUFQUElORyhXS05hdmlnYXRpb25EYXRhUmVmLCBXZWJO
YXZpZ2F0aW9uRGF0YSkKIFdLX0FERF9BUElfTUFQUElORyhXS05vdGlmaWNhdGlvbk1hbmFnZXJS
ZWYsIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eSkKK1dLX0FERF9BUElfTUFQUElORyhXS05v
dGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0UmVmLCBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdCkKIFdLX0FERF9BUElfTUFQUElORyhXS05vdGlmaWNhdGlvblByb3ZpZGVyUmVmLCBXZWJO
b3RpZmljYXRpb25Qcm92aWRlcikKIFdLX0FERF9BUElfTUFQUElORyhXS05vdGlmaWNhdGlvblJl
ZiwgV2ViTm90aWZpY2F0aW9uKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLT3BlblBhbmVsUGFyYW1l
dGVyc1JlZiwgV2ViT3BlblBhbmVsUGFyYW1ldGVycykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41OTYzNDhkNzI2ZWRjNDJiMGM3NzA0MGI5OTVjYzg4N2Zl
MWU1NGFjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuY3BwCkBAIC0wLDAgKzEsNDcgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV0tOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdC5oIgorCisjaW5jbHVkZSAiTm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3QuaCIKKyNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYktp
dDsKKworV0tUeXBlSUQgV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdEdldFR5cGVJRCgp
Cit7CisgICAgcmV0dXJuIHRvQVBJKE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0OjpBUElU
eXBlKTsKK30KKwordm9pZCBXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0QWxsb3coV0tO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdFJlZiBub3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdCkKK3sKKyAgICByZXR1cm4gdG9JbXBsKG5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
KS0+YWxsb3coKTsKK30KKwordm9pZCBXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0RGVu
eShXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0UmVmIG5vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0KQoreworICAgIHJldHVybiB0b0ltcGwobm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3QpLT5kZW55KCk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4xOTQ3YTA2YWFiYWUyOTUxNWQ1ZDczZDA0MjA0ZDViMzkzYmYxODE3Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3QuaApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBX
S05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0X2gKKyNkZWZpbmUgV0tOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdF9oCisKKyNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgorCisjaWZk
ZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKK1dLX0VYUE9SVCBXS1R5cGVJ
RCBXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0R2V0VHlwZUlEKCk7CisKK1dLX0VYUE9S
VCB2b2lkIFdLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RBbGxvdyhXS05vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0UmVmIG5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KTsKK1dL
X0VYUE9SVCB2b2lkIFdLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3REZW55KFdLTm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3RSZWYgbm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Qp
OworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLy8gV0tOb3RpZmlj
YXRpb25QZXJtaXNzaW9uUmVxdWVzdF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tOb3RpZmljYXRpb25Qcm92aWRlci5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9uUHJvdmlkZXIuaAppbmRleCA2ZmE2NWJiZTdlYjk0
YTZhNThkNGMxZjJkNGY3ZjdiNDYzYWUwZDI4Li43MDQ4MTNmMWNmOWIxMmY1YzlhOTFmMTcyNzIy
NzEwYjg2MjUwNjFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tOb3RpZmljYXRpb25Qcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS05vdGlmaWNhdGlvblByb3ZpZGVyLmgKQEAgLTM1LDE3ICszNSwxOSBAQCBleHRlcm4g
IkMiIHsKIHR5cGVkZWYgdm9pZCAoKldLTm90aWZpY2F0aW9uUHJvdmlkZXJTaG93Q2FsbGJhY2sp
KFdLTm90aWZpY2F0aW9uUmVmIG5vdGlmaWNhdGlvbiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7
CiB0eXBlZGVmIHZvaWQgKCpXS05vdGlmaWNhdGlvblByb3ZpZGVyQ2FuY2VsQ2FsbGJhY2spKFdL
Tm90aWZpY2F0aW9uUmVmIG5vdGlmaWNhdGlvbiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiB0
eXBlZGVmIHZvaWQgKCpXS05vdGlmaWNhdGlvblByb3ZpZGVyRGlkRGVzdHJveU5vdGlmaWNhdGlv
bkNhbGxiYWNrKShXS05vdGlmaWNhdGlvblJlZiBub3RpZmljYXRpb24sIGNvbnN0IHZvaWQqIGNs
aWVudEluZm8pOwordHlwZWRlZiBpbnQgKCpXS05vdGlmaWNhdGlvblByb3ZpZGVyUG9saWN5Rm9y
Tm90aWZpY2F0aW9uUGVybWlzc2lvbkF0T3JpZ2luQ2FsbGJhY2spKFdLU2VjdXJpdHlPcmlnaW5S
ZWYgb3JpZ2luLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLTm90
aWZpY2F0aW9uUHJvdmlkZXJBZGROb3RpZmljYXRpb25NYW5hZ2VyQ2FsbGJhY2spKFdLTm90aWZp
Y2F0aW9uTWFuYWdlclJlZiBtYW5hZ2VyLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIHR5cGVk
ZWYgdm9pZCAoKldLTm90aWZpY2F0aW9uUHJvdmlkZXJSZW1vdmVOb3RpZmljYXRpb25NYW5hZ2Vy
Q2FsbGJhY2spKFdLTm90aWZpY2F0aW9uTWFuYWdlclJlZiBtYW5hZ2VyLCBjb25zdCB2b2lkKiBj
bGllbnRJbmZvKTsKIAogc3RydWN0IFdLTm90aWZpY2F0aW9uUHJvdmlkZXIgewotICAgIGludCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJz
aW9uOwotICAgIGNvbnN0IHZvaWQqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjbGllbnRJbmZvOwotICAgIFdLTm90aWZpY2F0aW9uUHJvdmlkZXJTaG93Q2Fs
bGJhY2sgICAgICAgICAgICAgICAgICAgICAgICBzaG93OwotICAgIFdLTm90aWZpY2F0aW9uUHJv
dmlkZXJDYW5jZWxDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICBjYW5jZWw7Ci0gICAgV0tO
b3RpZmljYXRpb25Qcm92aWRlckRpZERlc3Ryb3lOb3RpZmljYXRpb25DYWxsYmFjayAgICAgIGRp
ZERlc3Ryb3lOb3RpZmljYXRpb247Ci0gICAgV0tOb3RpZmljYXRpb25Qcm92aWRlckFkZE5vdGlm
aWNhdGlvbk1hbmFnZXJDYWxsYmFjayAgICAgIGFkZE5vdGlmaWNhdGlvbk1hbmFnZXI7Ci0gICAg
V0tOb3RpZmljYXRpb25Qcm92aWRlclJlbW92ZU5vdGlmaWNhdGlvbk1hbmFnZXJDYWxsYmFjayAg
IHJlbW92ZU5vdGlmaWNhdGlvbk1hbmFnZXI7CisgICAgaW50ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnNpb247Cisg
ICAgY29uc3Qgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNsaWVudEluZm87CisgICAgV0tOb3RpZmljYXRpb25Qcm92aWRlclNo
b3dDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3c7CisgICAg
V0tOb3RpZmljYXRpb25Qcm92aWRlckNhbmNlbENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNhbmNlbDsKKyAgICBXS05vdGlmaWNhdGlvblByb3ZpZGVyRGlkRGVzdHJv
eU5vdGlmaWNhdGlvbkNhbGxiYWNrICAgICAgICAgICAgICAgICAgZGlkRGVzdHJveU5vdGlmaWNh
dGlvbjsKKyAgICBXS05vdGlmaWNhdGlvblByb3ZpZGVyUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVy
bWlzc2lvbkF0T3JpZ2luQ2FsbGJhY2sgcG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvbkF0
T3JpZ2luOworICAgIFdLTm90aWZpY2F0aW9uUHJvdmlkZXJBZGROb3RpZmljYXRpb25NYW5hZ2Vy
Q2FsbGJhY2sgICAgICAgICAgICAgICAgICBhZGROb3RpZmljYXRpb25NYW5hZ2VyOworICAgIFdL
Tm90aWZpY2F0aW9uUHJvdmlkZXJSZW1vdmVOb3RpZmljYXRpb25NYW5hZ2VyQ2FsbGJhY2sgICAg
ICAgICAgICAgICByZW1vdmVOb3RpZmljYXRpb25NYW5hZ2VyOwogfTsKIHR5cGVkZWYgc3RydWN0
IFdLTm90aWZpY2F0aW9uUHJvdmlkZXIgV0tOb3RpZmljYXRpb25Qcm92aWRlcjsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oCmluZGV4IGNiNWFkMmYxNTkyMzBiYmEwNjk4
MWE0Njg3NTBmNjFiZTAwNDY4YmQuLjFkZTcwNjI4Yzg4YjFkMGMxZDBiNDVhYzM2N2E1ZTk3MDZk
NTE5NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2Uu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmgKQEAgLTE5Nyw2
ICsxOTcsNyBAQCB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VEcmF3Rm9vdGVyQ2FsbGJhY2spKFdLUGFn
ZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1JlYwogdHlwZWRlZiB2b2lkICgqV0tQYWdl
UHJpbnRGcmFtZUNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgY29u
c3Qgdm9pZCogY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VTYXZlRGF0YVRvRmls
ZUluRG93bmxvYWRzRm9sZGVyQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBz
dWdnZXN0ZWRGaWxlbmFtZSwgV0tTdHJpbmdSZWYgbWltZVR5cGUsIFdLVVJMUmVmIG9yaWdpbmF0
aW5nVVJMLCBXS0RhdGFSZWYgZGF0YSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiB0eXBlZGVm
IGJvb2wgKCpXS1BhZ2VTaG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0Q2FsbGJhY2spKFdLUGFnZVJl
ZiBwYWdlLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKK3R5cGVkZWYgdm9pZCAoKldLUGFnZURl
Y2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0Q2FsbGJhY2spKFdLUGFn
ZVJlZiBwYWdlLCBXS1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpbiwgV0tOb3RpZmljYXRpb25QZXJt
aXNzaW9uUmVxdWVzdFJlZiBwZXJtaXNzaW9uUmVxdWVzdCwgY29uc3Qgdm9pZCAqY2xpZW50SW5m
byk7CiAKIC8vIERlcHJlY2F0ZWQgICAgCiB0eXBlZGVmIFdLUGFnZVJlZiAoKldLUGFnZUNyZWF0
ZU5ld1BhZ2VDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwKShXS1BhZ2VSZWYgcGFnZSwg
V0tEaWN0aW9uYXJ5UmVmIGZlYXR1cmVzLCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgV0tF
dmVudE1vdXNlQnV0dG9uIG1vdXNlQnV0dG9uLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKQEAg
LTI1MCw2ICsyNTEsNyBAQCBzdHJ1Y3QgV0tQYWdlVUlDbGllbnQgewogICAgIC8vIFZlcnNpb24g
MQogICAgIFdLUGFnZUNyZWF0ZU5ld1BhZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY3JlYXRlTmV3UGFnZTsKICAgICBXS1BhZ2VNb3VzZURpZE1vdmVP
dmVyRWxlbWVudENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vdXNlRGlk
TW92ZU92ZXJFbGVtZW50OworICAgIFdLUGFnZURlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0Q2FsbGJhY2sgICAgICAgICAgZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0
aW9uUGVybWlzc2lvblJlcXVlc3Q7CiB9OwogdHlwZWRlZiBzdHJ1Y3QgV0tQYWdlVUlDbGllbnQg
V0tQYWdlVUlDbGllbnQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9O
b3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4yNWQzN2RhNGI5OTRiNmQwY2RkYmU0MjU0NDAyODNhYzFlMGU2
OWE1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNh
dGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuY3BwCkBAIC0wLDAgKzEsNjcgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3QuaCIKKworI2luY2x1ZGUgIk5vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworICAgIAorUGFzc1Jl
ZlB0cjxOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdD4gTm90aWZpY2F0aW9uUGVybWlzc2lv
blJlcXVlc3Q6OmNyZWF0ZShXZWJLaXQ6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5ICptYW5hZ2VyLCB1aW50NjRfdCBub3RpZmljYXRpb25JRCkKK3sKKyAgICByZXR1
cm4gYWRvcHRSZWYobmV3IE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KG1hbmFnZXIsIG5v
dGlmaWNhdGlvbklEKSk7Cit9CisKK05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0OjpOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdChOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eSogbWFuYWdlciwgdWludDY0X3Qgbm90aWZpY2F0aW9uSUQpCisgICAgOiBtX21h
bmFnZXIobWFuYWdlcikKKyAgICAsIG1fbm90aWZpY2F0aW9uSUQobm90aWZpY2F0aW9uSUQpCit7
Cit9CisKK3ZvaWQgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q6OmFsbG93KCkKK3sKKyAg
ICBpZiAoIW1fbWFuYWdlcikKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIG1fbWFuYWdlci0+
ZGlkUmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25EZWNpc2lvbihtX25vdGlmaWNhdGlvbklE
LCB0cnVlKTsKKyAgICBtX21hbmFnZXIgPSAwOworfQorCit2b2lkIE5vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0OjpkZW55KCkKK3sKKyAgICBpZiAoIW1fbWFuYWdlcikKKyAgICAgICAgcmV0
dXJuOworICAgIAorICAgIG1fbWFuYWdlci0+ZGlkUmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Np
b25EZWNpc2lvbihtX25vdGlmaWNhdGlvbklELCBmYWxzZSk7CisgICAgbV9tYW5hZ2VyID0gMDsK
K30KKwordm9pZCBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDo6aW52YWxpZGF0ZSgpCit7
CisgICAgbV9tYW5hZ2VyID0gMDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlv
bnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNGRiOThiMGM1
Njg5YWRmNjlhYzAyOTlmYTJmZTYyN2RiYTE1NmY5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3QuaApAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdF9oCisjZGVmaW5lIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0X2gKKworI2luY2x1ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRy
Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBOb3RpZmljYXRpb25QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eTsKKworY2xhc3MgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3QgOiBwdWJsaWMgQVBJT2JqZWN0IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgY29uc3QgVHlwZSBB
UElUeXBlID0gVHlwZU5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0OworICAgIAorICAgIHN0
YXRpYyBQYXNzUmVmUHRyPE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0PiBjcmVhdGUoTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkqLCB1aW50NjRfdCBub3RpZmlj
YXRpb25JRCk7CisgICAgCisgICAgdm9pZCBhbGxvdygpOworICAgIHZvaWQgZGVueSgpOworICAg
IAorICAgIHZvaWQgaW52YWxpZGF0ZSgpOworICAgIAorcHJpdmF0ZToKKyAgICBOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdChOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eSosIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKTsKKyAgICAKKyAgICB2aXJ0dWFsIFR5cGUg
dHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KKyAgICAKKyAgICBOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSogbV9tYW5hZ2VyOworICAgIHVpbnQ2NF90IG1f
bm90aWZpY2F0aW9uSUQ7ICAgIAorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRp
ZiAvLyBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdFByb3h5X2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3Rp
ZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4wNzkyMjk4NWU0NTY1ZjNjNzNjYWRjM2EwY2Y0NTUyMTdjNjE5OTY5Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCkBAIC0wLDAgKzEsNzAg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTm90aWZpY2F0
aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCIKKworI2luY2x1ZGUgIk5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0LmgiCisjaW5jbHVkZSAiV2ViUGFnZU1lc3NhZ2VzLmgiCisj
aW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eTo6Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkoV2ViUGFn
ZVByb3h5KiBwYWdlKQorICAgIDogbV9wYWdlKHBhZ2UpCit7Cit9CisKK3ZvaWQgTm90aWZpY2F0
aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmludmFsaWRhdGVSZXF1ZXN0cygpCit7
CisgICAgUGVuZGluZ1JlcXVlc3RNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9wZW5kaW5nUmVx
dWVzdHMuYmVnaW4oKTsKKyAgICBQZW5kaW5nUmVxdWVzdE1hcDo6Y29uc3RfaXRlcmF0b3IgZW5k
ID0gbV9wZW5kaW5nUmVxdWVzdHMuZW5kKCk7CisgICAgZm9yICg7IGl0ICE9IGVuZDsgKytpdCkK
KyAgICAgICAgaXQtPnNlY29uZC0+aW52YWxpZGF0ZSgpOworICAgIAorICAgIG1fcGVuZGluZ1Jl
cXVlc3RzLmNsZWFyKCk7Cit9CisKK1Bhc3NSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3Q+IE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpjcmVhdGVS
ZXF1ZXN0KHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQoreworICAgIFJlZlB0cjxOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdD4gcmVxdWVzdCA9IE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0OjpjcmVhdGUodGhpcywgbm90aWZpY2F0aW9uSUQpOworICAgIG1fcGVuZGluZ1JlcXVlc3Rz
LmFkZChub3RpZmljYXRpb25JRCwgcmVxdWVzdC5nZXQoKSk7CisgICAgcmV0dXJuIHJlcXVlc3Qu
cmVsZWFzZSgpOworfQorCit2b2lkIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5OjpkaWRSZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90
IG5vdGlmaWNhdGlvbklELCBib29sIGFsbG93KQoreworICAgIGlmICghbV9wYWdlLT5pc1ZhbGlk
KCkpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3Q+IHJlcXVlc3QgPSBtX3BlbmRpbmdSZXF1ZXN0cy50YWtlKG5vdGlmaWNhdGlv
bklEKTsKKyAgICBpZiAoIXJlcXVlc3QpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBtX3Bh
Z2UtPnByb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlkUmVjZWl2ZU5vdGlmaWNh
dGlvblBlcm1pc3Npb25EZWNpc2lvbihub3RpZmljYXRpb25JRCwgYWxsb3cpLCBtX3BhZ2UtPnBh
Z2VJRCgpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlv
bnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5mNjIyOGU3MmE5NGQyZjIxZDQxMTExMjMwYzcyZGI1NTM1Y2I0YTJhCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaApAQCAtMCwwICsxLDU5IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2lmbmRlZiBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eV9o
CisjZGVmaW5lIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5X2gKKwor
I2luY2x1ZGUgIk5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmgiCisjaW5jbHVkZSA8d3Rm
L0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQg
eworCitjbGFzcyBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UHJveHk7CitjbGFzcyBXZWJQ
YWdlUHJveHk7CisKK2NsYXNzIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5IHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eShXZWJQYWdlUHJveHkqKTsKKyAgICAKKyAgICB2b2lkIGludmFsaWRhdGVS
ZXF1ZXN0cygpOworICAgIAorICAgIC8vIENyZWF0ZSBhIHJlcXVlc3QgdG8gYmUgcHJlc2VudGVk
IHRvIHRoZSB1c2VyLgorICAgIFBhc3NSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3Q+IGNyZWF0ZVJlcXVlc3QodWludDY0X3Qgbm90aWZpY2F0aW9uSUQpOworICAgIAorICAgIC8v
IENhbGxlZCBieSBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCB3aGVuIGEgZGVjaXNpb24g
aXMgbWFkZSBieSB0aGUgdXNlci4KKyAgICB2b2lkIGRpZFJlY2VpdmVOb3RpZmljYXRpb25QZXJt
aXNzaW9uRGVjaXNpb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQsIGJvb2wgYWxsb3cpOworICAg
IAorcHJpdmF0ZToKKyAgICB0eXBlZGVmIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxOb3RpZmlj
YXRpb25QZXJtaXNzaW9uUmVxdWVzdD4gPiBQZW5kaW5nUmVxdWVzdE1hcDsKKyAgICBQZW5kaW5n
UmVxdWVzdE1hcCBtX3BlbmRpbmdSZXF1ZXN0czsKKyAgICBXZWJQYWdlUHJveHkqIG1fcGFnZTsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisKKyNlbmRpZiAvLyBOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb24uY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4zZjAyNTk4NjI0YzE1NmE5OGZiZjIwOWE2MjJlMTE5MWMyYTZmZDNlCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZp
Y2F0aW9uLmNwcApAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbi5oIgorCisjaW5jbHVkZSAiQXJndW1lbnRD
b2RlcnMuaCIKKyNpbmNsdWRlICJBcmd1bWVudERlY29kZXIuaCIKKyNpbmNsdWRlICJBcmd1bWVu
dEVuY29kZXIuaCIKKyNpbmNsdWRlICJBcmd1bWVudHMuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK1dlYk5vdGlmaWNhdGlvbjo6V2ViTm90aWZpY2F0aW9uKCkKK3sKK30KKworV2ViTm90aWZp
Y2F0aW9uOjpXZWJOb3RpZmljYXRpb24oY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5n
JiBib2R5LCB1aW50NjRfdCBub3RpZmljYXRpb25JRCkKKyAgICA6IG1fdGl0bGUodGl0bGUpCisg
ICAgLCBtX2JvZHkoYm9keSkKKyAgICAsIG1fbm90aWZpY2F0aW9uSUQobm90aWZpY2F0aW9uSUQp
Cit7Cit9CisKK1dlYk5vdGlmaWNhdGlvbjo6fldlYk5vdGlmaWNhdGlvbigpCit7Cit9CisKK3Zv
aWQgV2ViTm90aWZpY2F0aW9uOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNv
ZGVyKSBjb25zdAoreworICAgIGVuY29kZXItPmVuY29kZShDb3JlSVBDOjpJbihtX3RpdGxlLCBt
X2JvZHksIG1fbm90aWZpY2F0aW9uSUQpKTsKK30KKworYm9vbCBXZWJOb3RpZmljYXRpb246OmRl
Y29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIFdlYk5vdGlmaWNhdGlvbiYg
bm90aWZpY2F0aW9uKQoreworICAgIHJldHVybiBkZWNvZGVyLT5kZWNvZGUoQ29yZUlQQzo6T3V0
KG5vdGlmaWNhdGlvbi5tX3RpdGxlLCBub3RpZmljYXRpb24ubV9ib2R5LCBub3RpZmljYXRpb24u
bV9ub3RpZmljYXRpb25JRCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlv
bi5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0
aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZjY4NTg2ZjEyNTIzNDM4NGE0NTNhODFjZDgzODQ4YmJhZGZmOGRk
NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRp
b25zL1dlYk5vdGlmaWNhdGlvbi5oCkBAIC0wLDAgKzEsODEgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZu
ZGVmIFdlYk5vdGlmaWNhdGlvbl9oCisjZGVmaW5lIFdlYk5vdGlmaWNhdGlvbl9oCisKKyNpbmNs
dWRlICJBUElPYmplY3QuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgQ29yZUlQQyB7CisKK2NsYXNzIEFy
Z3VtZW50RGVjb2RlcjsKK2NsYXNzIEFyZ3VtZW50RW5jb2RlcjsKKworfSAvLyBuYW1lc3BhY2Ug
Q29yZUlQQworCituYW1lc3BhY2UgV2ViS2l0IHsKKyAgICAKK2NsYXNzIFdlYk5vdGlmaWNhdGlv
biA6IHB1YmxpYyBBUElPYmplY3QgeworcHVibGljOgorICAgIHN0YXRpYyBjb25zdCBUeXBlIEFQ
SVR5cGUgPSBUeXBlTm90aWZpY2F0aW9uOworICAgIAorICAgIFdlYk5vdGlmaWNhdGlvbigpOwor
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYk5vdGlmaWNhdGlvbj4gY3JlYXRlKGNvbnN0IFN0cmlu
ZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgYm9keSwgdWludDY0X3Qgbm90aWZpY2F0aW9uSUQpCisg
ICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYk5vdGlmaWNhdGlvbih0aXRsZSwg
Ym9keSwgbm90aWZpY2F0aW9uSUQpKTsKKyAgICB9CisgICAgdmlydHVhbCB+V2ViTm90aWZpY2F0
aW9uKCk7CisgICAgCisgICAgY29uc3QgU3RyaW5nJiB0aXRsZSgpIGNvbnN0IHsgcmV0dXJuIG1f
dGl0bGU7IH0KKyAgICAKKyAgICBjb25zdCBTdHJpbmcmIGJvZHkoKSBjb25zdCB7IHJldHVybiBt
X2JvZHk7IH0KKyAgICAKKyAgICB1aW50NjRfdCBub3RpZmljYXRpb25JRCgpIGNvbnN0IHsgcmV0
dXJuIG1fbm90aWZpY2F0aW9uSUQ7IH0KKworICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3Vt
ZW50RW5jb2RlciopIGNvbnN0OworICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1
bWVudERlY29kZXIqLCBXZWJOb3RpZmljYXRpb24mKTsKKworcHJpdmF0ZToKKyAgICBXZWJOb3Rp
ZmljYXRpb24oY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiBib2R5LCB1aW50NjRf
dCBub3RpZmljYXRpb25JRCk7CisKKyAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0
dXJuIEFQSVR5cGU7IH0KKyAgICAKKyAgICBTdHJpbmcgbV90aXRsZTsKKyAgICBTdHJpbmcgbV9i
b2R5OworICAgIHVpbnQ2NF90IG1fbm90aWZpY2F0aW9uSUQ7Cit9OworCitpbmxpbmUgYm9vbCBp
c05vdGlmaWNhdGlvbklEVmFsaWQodWludDY0X3QgaWQpCit7CisgICAgLy8gVGhpcyBjaGVjayBt
YWtlcyBzdXJlIHRoYXQgdGhlIElEIGlzIG5vdCBlcXVhbCB0byB2YWx1ZXMgbmVlZGVkIGJ5Cisg
ICAgLy8gSGFzaE1hcCBmb3IgYnVja2V0aW5nLgorICAgIHJldHVybiBpZCAmJiBpZCAhPSBzdGF0
aWNfY2FzdDx1aW50NjRfdD4oLTEpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2Vu
ZGlmIC8vIFdlYk5vdGlmaWNhdGlvbl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdl
clByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZmNmYjM0ZDE2NTdmYTk1ZDdhYmI1Y2UzYTcxYmQyN2Q4
NjQ0MGM3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlm
aWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcApAQCAtMCwwICsxLDE1NCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJOb3RpZmlj
YXRpb25NYW5hZ2VyUHJveHkuaCIKKworI2luY2x1ZGUgIkltbXV0YWJsZUFycmF5LmgiCisjaW5j
bHVkZSAiV2ViQ29udGV4dC5oIgorI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbi5oIgorI2luY2x1
ZGUgIldlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlNlY3Vy
aXR5T3JpZ2luLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RpZmljYXRpb25Db250ZW50cy5oPgor
Cit1c2luZyBuYW1lc3BhY2UgV1RGOwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitQYXNzUmVmUHRyPFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eT4g
V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5OjpjcmVhdGUoV2ViQ29udGV4dCogY29udGV4dCkK
K3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eShj
b250ZXh0KSk7Cit9CisKK1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6V2ViTm90aWZpY2F0
aW9uTWFuYWdlclByb3h5KFdlYkNvbnRleHQqIGNvbnRleHQpCisgICAgOiBtX2NvbnRleHQoY29u
dGV4dCkKK3sKK30KKworV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5Ojp+V2ViTm90aWZpY2F0
aW9uTWFuYWdlclByb3h5KCkKK3sKK30KKwordm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJv
eHk6OmludmFsaWRhdGUoKQoreworICAgIG1fcHJvdmlkZXIucmVtb3ZlTm90aWZpY2F0aW9uTWFu
YWdlcih0aGlzKTsKK30KKwordm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OmluaXRp
YWxpemVQcm92aWRlcihjb25zdCBXS05vdGlmaWNhdGlvblByb3ZpZGVyICpwcm92aWRlcikKK3sK
KyAgICBtX3Byb3ZpZGVyLmluaXRpYWxpemUocHJvdmlkZXIpOworfQorCit2b2lkIFdlYk5vdGlm
aWNhdGlvbk1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlv
biogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit7CisgICAgZGlkUmVjZWl2ZVdlYk5vdGlmaWNhdGlv
bk1hbmFnZXJQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOwor
fQorCit2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZVN5bmNNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBt
ZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzLCBPd25QdHI8Q29y
ZUlQQzo6QXJndW1lbnRFbmNvZGVyPiYgcmVwbHkpCit7CisgICAgZGlkUmVjZWl2ZVN5bmNXZWJO
b3RpZmljYXRpb25NYW5hZ2VyUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJn
dW1lbnRzLCByZXBseSk7Cit9CisKK3ZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5Ojpz
aG93KGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgYm9keSwgdWludDY0X3Qgbm90
aWZpY2F0aW9uSUQpCit7CisgICAgaWYgKCFpc05vdGlmaWNhdGlvbklEVmFsaWQobm90aWZpY2F0
aW9uSUQpKQorICAgICAgICByZXR1cm47CisgICAgCisgICAgbV9wcm92aWRlci5hZGROb3RpZmlj
YXRpb25NYW5hZ2VyKHRoaXMpOworCisgICAgUmVmUHRyPFdlYk5vdGlmaWNhdGlvbj4gbm90aWZp
Y2F0aW9uID0gV2ViTm90aWZpY2F0aW9uOjpjcmVhdGUodGl0bGUsIGJvZHksIG5vdGlmaWNhdGlv
bklEKTsKKyAgICBtX25vdGlmaWNhdGlvbnMuc2V0KG5vdGlmaWNhdGlvbklELCBub3RpZmljYXRp
b24pOworICAgIG1fcHJvdmlkZXIuc2hvdyhub3RpZmljYXRpb24uZ2V0KCkpOworfQorCit2b2lk
IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6Y2FuY2VsKHVpbnQ2NF90IG5vdGlmaWNhdGlv
bklEKQoreworICAgIGlmICghaXNOb3RpZmljYXRpb25JRFZhbGlkKG5vdGlmaWNhdGlvbklEKSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgUmVmUHRyPFdlYk5vdGlmaWNhdGlvbj4gbm90aWZpY2F0
aW9uID0gbV9ub3RpZmljYXRpb25zLmdldChub3RpZmljYXRpb25JRCk7CisgICAgaWYgKCFub3Rp
ZmljYXRpb24pCisgICAgICAgIHJldHVybjsKKworICAgIG1fcHJvdmlkZXIuYWRkTm90aWZpY2F0
aW9uTWFuYWdlcih0aGlzKTsKKyAgICBtX3Byb3ZpZGVyLmNhbmNlbChub3RpZmljYXRpb24uZ2V0
KCkpOworfQorICAgIAordm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OmRpZERlc3Ry
b3lOb3RpZmljYXRpb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQpCit7CisgICAgaWYgKCFpc05v
dGlmaWNhdGlvbklEVmFsaWQobm90aWZpY2F0aW9uSUQpKQorICAgICAgICByZXR1cm47CisKKyAg
ICBSZWZQdHI8V2ViTm90aWZpY2F0aW9uPiBub3RpZmljYXRpb24gPSBtX25vdGlmaWNhdGlvbnMu
dGFrZShub3RpZmljYXRpb25JRCk7CisgICAgaWYgKCFub3RpZmljYXRpb24pCisgICAgICAgIHJl
dHVybjsKKworICAgIG1fcHJvdmlkZXIuZGlkRGVzdHJveU5vdGlmaWNhdGlvbihub3RpZmljYXRp
b24uZ2V0KCkpOworfQorCit2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6bm90aWZp
Y2F0aW9uUGVybWlzc2lvbkxldmVsKGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwgdWlu
dDY0X3QmIHBlcm1pc3Npb25MZXZlbCkKK3sKKyAgICBSZWZQdHI8V2ViU2VjdXJpdHlPcmlnaW4+
IG9yaWdpbiA9IFdlYlNlY3VyaXR5T3JpZ2luOjpjcmVhdGUob3JpZ2luSWRlbnRpZmllcik7Cisg
ICAgcGVybWlzc2lvbkxldmVsID0gbV9wcm92aWRlci5wb2xpY3lGb3JOb3RpZmljYXRpb25QZXJt
aXNzaW9uQXRPcmlnaW4ob3JpZ2luLmdldCgpKTsKK30KKwordm9pZCBXZWJOb3RpZmljYXRpb25N
YW5hZ2VyUHJveHk6OnByb3ZpZGVyRGlkU2hvd05vdGlmaWNhdGlvbih1aW50NjRfdCBub3RpZmlj
YXRpb25JRCkKK3sKKyAgICBpZiAoIW1fY29udGV4dCkKKyAgICAgICAgcmV0dXJuOworICAgIAor
ICAgIG1fY29udGV4dC0+c2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJOb3RpZmljYXRp
b25NYW5hZ2VyOjpEaWRTaG93Tm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbklEKSk7Cit9CisKK3Zv
aWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5Ojpwcm92aWRlckRpZENsaWNrTm90aWZpY2F0
aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQoreworICAgIGlmICghbV9jb250ZXh0KQorICAg
ICAgICByZXR1cm47CisgICAgCisgICAgbV9jb250ZXh0LT5zZW5kVG9BbGxQcm9jZXNzZXMoTWVz
c2FnZXM6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OkRpZENsaWNrTm90aWZpY2F0aW9uKG5vdGlm
aWNhdGlvbklEKSk7Cit9CisKKwordm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OnBy
b3ZpZGVyRGlkQ2xvc2VOb3RpZmljYXRpb25zKEltbXV0YWJsZUFycmF5KiBub3RpZmljYXRpb25J
RHMpCit7CisgICAgaWYgKCFtX2NvbnRleHQpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBz
aXplX3Qgc2l6ZSA9IG5vdGlmaWNhdGlvbklEcy0+c2l6ZSgpOworICAgIAorICAgIFZlY3Rvcjx1
aW50NjRfdD4gdmVjdG9yTm90aWZpY2F0aW9uSURzOworICAgIHZlY3Rvck5vdGlmaWNhdGlvbklE
cy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHNpemUpOworICAgIAorICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgc2l6ZTsgKytpKSB7CisgICAgICAgIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEID0g
bm90aWZpY2F0aW9uSURzLT5hdDxXZWJVSW50NjQ+KGkpLT52YWx1ZSgpOworICAgICAgICB2ZWN0
b3JOb3RpZmljYXRpb25JRHMuYXBwZW5kKG5vdGlmaWNhdGlvbklEKTsKKyAgICB9CisgICAgCisg
ICAgaWYgKHZlY3Rvck5vdGlmaWNhdGlvbklEcy5zaXplKCkpCisgICAgICAgIG1fY29udGV4dC0+
c2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpEaWRD
bG9zZU5vdGlmaWNhdGlvbnModmVjdG9yTm90aWZpY2F0aW9uSURzKSk7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlm
aWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi42ODA5YWU0ZDQ4MmM1MDkyNjNiNWQyYTQ3ZGQ5YzQwNTkyMGY2MGRhCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90
aWZpY2F0aW9uTWFuYWdlclByb3h5LmgKQEAgLTAsMCArMSw4OSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
Zm5kZWYgV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5X2gKKyNkZWZpbmUgV2ViTm90aWZpY2F0
aW9uTWFuYWdlclByb3h5X2gKKworI2luY2x1ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1ZGUgIk1l
c3NhZ2VJRC5oIgorI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmgiCisjaW5jbHVk
ZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8d3Rm
L1Bhc3NSZWZQdHIuaD4KKworbmFtZXNwYWNlIENvcmVJUEMgeworY2xhc3MgQXJndW1lbnREZWNv
ZGVyOworY2xhc3MgQXJndW1lbnRFbmNvZGVyOworY2xhc3MgQ29ubmVjdGlvbjsKK30KKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIEltbXV0YWJsZUFycmF5OworY2xhc3MgV2ViQ29udGV4
dDsKKworY2xhc3MgV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5IDogcHVibGljIEFQSU9iamVj
dCB7CitwdWJsaWM6CisgICAgc3RhdGljIGNvbnN0IFR5cGUgQVBJVHlwZSA9IFR5cGVOb3RpZmlj
YXRpb25NYW5hZ2VyOworICAgIAorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYk5vdGlmaWNhdGlv
bk1hbmFnZXJQcm94eT4gY3JlYXRlKFdlYkNvbnRleHQqKTsKKyAgICB2aXJ0dWFsIH5XZWJOb3Rp
ZmljYXRpb25NYW5hZ2VyUHJveHkoKTsKKyAgICAKKyAgICB2b2lkIGludmFsaWRhdGUoKTsKKyAg
ICB2b2lkIGNsZWFyQ29udGV4dCgpIHsgbV9jb250ZXh0ID0gMDsgfQorCisgICAgdm9pZCBpbml0
aWFsaXplUHJvdmlkZXIoY29uc3QgV0tOb3RpZmljYXRpb25Qcm92aWRlciopOworICAgIAorICAg
IHZvaWQgcHJvdmlkZXJEaWRTaG93Tm90aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklE
KTsKKyAgICB2b2lkIHByb3ZpZGVyRGlkQ2xpY2tOb3RpZmljYXRpb24odWludDY0X3Qgbm90aWZp
Y2F0aW9uSUQpOworICAgIHZvaWQgcHJvdmlkZXJEaWRDbG9zZU5vdGlmaWNhdGlvbnMoSW1tdXRh
YmxlQXJyYXkqIG5vdGlmaWNhdGlvbklEcyk7CisgICAgCisgICAgdm9pZCBkaWRSZWNlaXZlTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBD
OjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29k
ZXIqLCBPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPiYpOworCitwcml2YXRlOgorICAg
IGV4cGxpY2l0IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eShXZWJDb250ZXh0Kik7CisgICAg
CisgICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBBUElUeXBlOyB9CisgICAg
CisgICAgdm9pZCBkaWRSZWNlaXZlV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jV2ViTm90aWZpY2F0aW9uTWFuYWdl
clByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVy
PiYpOworICAgIAorICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMKKyAgICB2b2lkIHNob3coY29uc3Qg
V1RGOjpTdHJpbmcmIHRpdGxlLCBjb25zdCBXVEY6OlN0cmluZyYgYm9keSwgdWludDY0X3Qgbm90
aWZpY2F0aW9uSUQpOworICAgIHZvaWQgY2FuY2VsKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKTsK
KyAgICB2b2lkIGRpZERlc3Ryb3lOb3RpZmljYXRpb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQp
OworICAgIHZvaWQgbm90aWZpY2F0aW9uUGVybWlzc2lvbkxldmVsKGNvbnN0IFdURjo6U3RyaW5n
JiBvcmlnaW5JZGVudGlmaWVyLCB1aW50NjRfdCYgcGVybWlzc2lvbkxldmVsKTsKKworICAgIHR5
cGVkZWYgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFdlYk5vdGlmaWNhdGlvbj4gPiBXZWJOb3Rp
ZmljYXRpb25NYXA7CisgICAgCisgICAgV2ViQ29udGV4dCogbV9jb250ZXh0OworICAgIFdlYk5v
dGlmaWNhdGlvblByb3ZpZGVyIG1fcHJvdmlkZXI7CisgICAgV2ViTm90aWZpY2F0aW9uTWFwIG1f
bm90aWZpY2F0aW9uczsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8g
V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlm
aWNhdGlvbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NjY3MWI0Mjg0ZGE0
MzYwYjAwODBjM2FkZGRkNTk1NWI1MWEyZjI5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5
Lm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMjkgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDExIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
IyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAor
IyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMg
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKworbWVzc2FnZXMgLT4gV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5IHsK
KyAgICBTaG93KFdURjo6U3RyaW5nIHRpdGxlLCBXVEY6OlN0cmluZyBib2R5LCB1aW50NjRfdCBu
b3RpZmljYXRpb25JRCk7CisgICAgQ2FuY2VsKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKTsKKyAg
ICBEaWREZXN0cm95Tm90aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKTsKKworICAg
IE5vdGlmaWNhdGlvblBlcm1pc3Npb25MZXZlbChXVEY6OlN0cmluZyBvcmlnaW5JZGVudGlmaWVy
KSAtPiAodWludDY0X3QgcG9saWN5KQorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmFmOGE3MWRiYWUzMTAwOGViMjkxN2RlODJlZDgyMTA3OTM2NWMzODIK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9u
cy9XZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHAKQEAgLTAsMCArMSw4NCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJOb3RpZmljYXRpb25Qcm92aWRl
ci5oIgorCisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisjaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9u
LmgiCisjaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmgiCisjaW5jbHVkZSAi
V2ViU2VjdXJpdHlPcmlnaW4uaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgV2ViTm90
aWZpY2F0aW9uUHJvdmlkZXI6OnNob3coV2ViTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24pCit7
CisgICAgaWYgKCFtX2NsaWVudC5zaG93KQorICAgICAgICByZXR1cm47CisgICAgCisgICAgbV9j
bGllbnQuc2hvdyh0b0FQSShub3RpZmljYXRpb24pLCBtX2NsaWVudC5jbGllbnRJbmZvKTsKK30K
Kwordm9pZCBXZWJOb3RpZmljYXRpb25Qcm92aWRlcjo6Y2FuY2VsKFdlYk5vdGlmaWNhdGlvbiog
bm90aWZpY2F0aW9uKQoreworICAgIGlmICghbV9jbGllbnQuY2FuY2VsKQorICAgICAgICByZXR1
cm47CisgICAgCisgICAgbV9jbGllbnQuY2FuY2VsKHRvQVBJKG5vdGlmaWNhdGlvbiksIG1fY2xp
ZW50LmNsaWVudEluZm8pOworfQorCit2b2lkIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyOjpkaWRE
ZXN0cm95Tm90aWZpY2F0aW9uKFdlYk5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uKQoreworICAg
IGlmICghbV9jbGllbnQuZGlkRGVzdHJveU5vdGlmaWNhdGlvbikKKyAgICAgICAgcmV0dXJuOwor
ICAgIAorICAgIG1fY2xpZW50LmRpZERlc3Ryb3lOb3RpZmljYXRpb24odG9BUEkobm90aWZpY2F0
aW9uKSwgbV9jbGllbnQuY2xpZW50SW5mbyk7Cit9CisKK2ludCBXZWJOb3RpZmljYXRpb25Qcm92
aWRlcjo6cG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvbkF0T3JpZ2luKFdlYlNlY3VyaXR5
T3JpZ2luKiBvcmlnaW4pCit7CisgICAgaWYgKCFtX2NsaWVudC5wb2xpY3lGb3JOb3RpZmljYXRp
b25QZXJtaXNzaW9uQXRPcmlnaW4pCisgICAgICAgIHJldHVybiBJTlRfTUlOOworICAgIAorICAg
IHJldHVybiBtX2NsaWVudC5wb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uQXRPcmlnaW4o
dG9BUEkob3JpZ2luKSwgbV9jbGllbnQuY2xpZW50SW5mbyk7Cit9CisKK3ZvaWQgV2ViTm90aWZp
Y2F0aW9uUHJvdmlkZXI6OmFkZE5vdGlmaWNhdGlvbk1hbmFnZXIoV2ViTm90aWZpY2F0aW9uTWFu
YWdlclByb3h5KiBtYW5hZ2VyKQoreworICAgIGlmICghbV9jbGllbnQuYWRkTm90aWZpY2F0aW9u
TWFuYWdlcikKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIG1fY2xpZW50LmFkZE5vdGlmaWNh
dGlvbk1hbmFnZXIodG9BUEkobWFuYWdlciksIG1fY2xpZW50LmNsaWVudEluZm8pOworfQorCit2
b2lkIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyOjpyZW1vdmVOb3RpZmljYXRpb25NYW5hZ2VyKFdl
Yk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eSogbWFuYWdlcikKK3sKKyAgICBpZiAoIW1fY2xpZW50
LnJlbW92ZU5vdGlmaWNhdGlvbk1hbmFnZXIpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBt
X2NsaWVudC5yZW1vdmVOb3RpZmljYXRpb25NYW5hZ2VyKHRvQVBJKG1hbmFnZXIpLCBtX2NsaWVu
dC5jbGllbnRJbmZvKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25Qcm92
aWRlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZp
Y2F0aW9uUHJvdmlkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NzBhMjY0ZDA4M2RkNzQ4NjUyNDlmNDA2NDEx
OTI4NzQ5YWRhNTQ2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuaApAQCAtMCwwICsxLDUyIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJOb3RpZmljYXRpb25Qcm92aWRlcl9oCisjZGVmaW5l
IFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyX2gKKworI2luY2x1ZGUgIkFQSUNsaWVudC5oIgorI2lu
Y2x1ZGUgIldLTm90aWZpY2F0aW9uUHJvdmlkZXIuaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5o
PgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViTm90aWZpY2F0aW9uOworY2xhc3Mg
V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5OworY2xhc3MgV2ViU2VjdXJpdHlPcmlnaW47Cisg
ICAgCitjbGFzcyBXZWJOb3RpZmljYXRpb25Qcm92aWRlciA6IHB1YmxpYyBBUElDbGllbnQ8V0tO
b3RpZmljYXRpb25Qcm92aWRlciwga1dLTm90aWZpY2F0aW9uUHJvdmlkZXJDdXJyZW50VmVyc2lv
bj4geworcHVibGljOgorICAgIHZvaWQgc2hvdyhXZWJOb3RpZmljYXRpb24qKTsKKyAgICB2b2lk
IGNhbmNlbChXZWJOb3RpZmljYXRpb24qKTsKKyAgICB2b2lkIGRpZERlc3Ryb3lOb3RpZmljYXRp
b24oV2ViTm90aWZpY2F0aW9uKik7CisgICAgaW50IHBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1p
c3Npb25BdE9yaWdpbihXZWJTZWN1cml0eU9yaWdpbiopOworCisgICAgdm9pZCBhZGROb3RpZmlj
YXRpb25NYW5hZ2VyKFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eSopOworICAgIHZvaWQgcmVt
b3ZlTm90aWZpY2F0aW9uTWFuYWdlcihXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkqKTsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViTm90aWZpY2F0aW9uUHJv
dmlkZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5vdGlmaWNh
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9uLmNwcApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2YwMjU5ODYyNGMxNTZhOThmYmYyMDlhNjIy
ZTExOTFjMmE2ZmQzZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9uLmNwcAorKysgL2Rl
di9udWxsCkBAIC0xLDYxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
LSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0g
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgi
Ci0jaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9uLmgiCi0KLSNpbmNsdWRlICJBcmd1bWVudENvZGVy
cy5oIgotI2luY2x1ZGUgIkFyZ3VtZW50RGVjb2Rlci5oIgotI2luY2x1ZGUgIkFyZ3VtZW50RW5j
b2Rlci5oIgotI2luY2x1ZGUgIkFyZ3VtZW50cy5oIgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQot
V2ViTm90aWZpY2F0aW9uOjpXZWJOb3RpZmljYXRpb24oKQotewotfQotCi1XZWJOb3RpZmljYXRp
b246OldlYk5vdGlmaWNhdGlvbihjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBTdHJpbmcmIGJv
ZHksIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQotICAgIDogbV90aXRsZSh0aXRsZSkKLSAgICAs
IG1fYm9keShib2R5KQotICAgICwgbV9ub3RpZmljYXRpb25JRChub3RpZmljYXRpb25JRCkKLXsK
LX0KLQotV2ViTm90aWZpY2F0aW9uOjp+V2ViTm90aWZpY2F0aW9uKCkKLXsKLX0KLQotdm9pZCBX
ZWJOb3RpZmljYXRpb246OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIp
IGNvbnN0Ci17Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKENvcmVJUEM6OkluKG1fdGl0bGUsIG1fYm9k
eSwgbV9ub3RpZmljYXRpb25JRCkpOwotfQotCi1ib29sIFdlYk5vdGlmaWNhdGlvbjo6ZGVjb2Rl
KENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgV2ViTm90aWZpY2F0aW9uJiBub3Rp
ZmljYXRpb24pCi17Ci0gICAgcmV0dXJuIGRlY29kZXItPmRlY29kZShDb3JlSVBDOjpPdXQobm90
aWZpY2F0aW9uLm1fdGl0bGUsIG5vdGlmaWNhdGlvbi5tX2JvZHksIG5vdGlmaWNhdGlvbi5tX25v
dGlmaWNhdGlvbklEKSk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5vdGlmaWNhdGlvbi5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYk5vdGlmaWNhdGlvbi5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBmNjg1ODZmMTI1MjM0Mzg0YTQ1M2E4MWNkODM4NDhiYmFkZmY4ZGQ0Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJOb3RpZmljYXRpb24uaAorKysgL2Rldi9udWxsCkBAIC0xLDgxICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLSAqLwotCi0jaWZuZGVmIFdlYk5vdGlmaWNhdGlvbl9oCi0jZGVmaW5lIFdlYk5vdGlmaWNh
dGlvbl9oCi0KLSNpbmNsdWRlICJBUElPYmplY3QuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0
ci5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgotCi1uYW1lc3BhY2UgQ29yZUlQ
QyB7Ci0KLWNsYXNzIEFyZ3VtZW50RGVjb2RlcjsKLWNsYXNzIEFyZ3VtZW50RW5jb2RlcjsKLQot
fSAvLyBuYW1lc3BhY2UgQ29yZUlQQwotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLSAgICAKLWNsYXNz
IFdlYk5vdGlmaWNhdGlvbiA6IHB1YmxpYyBBUElPYmplY3QgewotcHVibGljOgotICAgIHN0YXRp
YyBjb25zdCBUeXBlIEFQSVR5cGUgPSBUeXBlTm90aWZpY2F0aW9uOwotICAgIAotICAgIFdlYk5v
dGlmaWNhdGlvbigpOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYk5vdGlmaWNhdGlvbj4gY3Jl
YXRlKGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgYm9keSwgdWludDY0X3Qgbm90
aWZpY2F0aW9uSUQpCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYk5vdGlm
aWNhdGlvbih0aXRsZSwgYm9keSwgbm90aWZpY2F0aW9uSUQpKTsKLSAgICB9Ci0gICAgdmlydHVh
bCB+V2ViTm90aWZpY2F0aW9uKCk7Ci0gICAgCi0gICAgY29uc3QgU3RyaW5nJiB0aXRsZSgpIGNv
bnN0IHsgcmV0dXJuIG1fdGl0bGU7IH0KLSAgICAKLSAgICBjb25zdCBTdHJpbmcmIGJvZHkoKSBj
b25zdCB7IHJldHVybiBtX2JvZHk7IH0KLSAgICAKLSAgICB1aW50NjRfdCBub3RpZmljYXRpb25J
RCgpIGNvbnN0IHsgcmV0dXJuIG1fbm90aWZpY2F0aW9uSUQ7IH0KLQotICAgIHZvaWQgZW5jb2Rl
KENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciopIGNvbnN0OwotICAgIHN0YXRpYyBib29sIGRlY29k
ZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBXZWJOb3RpZmljYXRpb24mKTsKLQotcHJpdmF0
ZToKLSAgICBXZWJOb3RpZmljYXRpb24oY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5n
JiBib2R5LCB1aW50NjRfdCBub3RpZmljYXRpb25JRCk7Ci0KLSAgICB2aXJ0dWFsIFR5cGUgdHlw
ZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KLSAgICAKLSAgICBTdHJpbmcgbV90aXRsZTsK
LSAgICBTdHJpbmcgbV9ib2R5OwotICAgIHVpbnQ2NF90IG1fbm90aWZpY2F0aW9uSUQ7Ci19Owot
Ci1pbmxpbmUgYm9vbCBpc05vdGlmaWNhdGlvbklEVmFsaWQodWludDY0X3QgaWQpCi17Ci0gICAg
Ly8gVGhpcyBjaGVjayBtYWtlcyBzdXJlIHRoYXQgdGhlIElEIGlzIG5vdCBlcXVhbCB0byB2YWx1
ZXMgbmVlZGVkIGJ5Ci0gICAgLy8gSGFzaE1hcCBmb3IgYnVja2V0aW5nLgotICAgIHJldHVybiBp
ZCAmJiBpZCAhPSBzdGF0aWNfY2FzdDx1aW50NjRfdD4oLTEpOwotfQotCi19IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKLQotI2VuZGlmIC8vIFdlYk5vdGlmaWNhdGlvbl9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MDI5ZGM0NGU5ZmE4Zjg4MjUwMmUzMDJhZWI4
YmFmZTg2ZDM0YjAwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHku
Y3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTQyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVk
ZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmgiCi0K
LSNpbmNsdWRlICJJbW11dGFibGVBcnJheS5oIgotI2luY2x1ZGUgIldlYkNvbnRleHQuaCIKLSNp
bmNsdWRlICJXZWJOb3RpZmljYXRpb24uaCIKLSNpbmNsdWRlICJXZWJOb3RpZmljYXRpb25NYW5h
Z2VyTWVzc2FnZXMuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL05vdGlmaWNhdGlvbkNvbnRlbnRzLmg+
Ci0KLXVzaW5nIG5hbWVzcGFjZSBXVEY7Ci11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotbmFt
ZXNwYWNlIFdlYktpdCB7Ci0KLVBhc3NSZWZQdHI8V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5
PiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OmNyZWF0ZShXZWJDb250ZXh0KiBjb250ZXh0
KQotewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5
KGNvbnRleHQpKTsKLX0KLQotV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5OjpXZWJOb3RpZmlj
YXRpb25NYW5hZ2VyUHJveHkoV2ViQ29udGV4dCogY29udGV4dCkKLSAgICA6IG1fY29udGV4dChj
b250ZXh0KQotewotfQotCi1XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6On5XZWJOb3RpZmlj
YXRpb25NYW5hZ2VyUHJveHkoKQotewotfQotCi12b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQ
cm94eTo6aW52YWxpZGF0ZSgpCi17Ci0gICAgbV9wcm92aWRlci5yZW1vdmVOb3RpZmljYXRpb25N
YW5hZ2VyKHRoaXMpOwotfQotCi12b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6aW5p
dGlhbGl6ZVByb3ZpZGVyKGNvbnN0IFdLTm90aWZpY2F0aW9uUHJvdmlkZXIgKnByb3ZpZGVyKQot
ewotICAgIG1fcHJvdmlkZXIuaW5pdGlhbGl6ZShwcm92aWRlcik7Ci19Ci0KLXZvaWQgV2ViTm90
aWZpY2F0aW9uTWFuYWdlclByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKLXsKLSAgICBkaWRSZWNlaXZlV2ViTm90aWZpY2F0
aW9uTWFuYWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7
Ci19Ci0KLXZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5OjpzaG93KGNvbnN0IFN0cmlu
ZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgYm9keSwgdWludDY0X3Qgbm90aWZpY2F0aW9uSUQpCi17
Ci0gICAgaWYgKCFpc05vdGlmaWNhdGlvbklEVmFsaWQobm90aWZpY2F0aW9uSUQpKQotICAgICAg
ICByZXR1cm47Ci0gICAgCi0gICAgbV9wcm92aWRlci5hZGROb3RpZmljYXRpb25NYW5hZ2VyKHRo
aXMpOwotCi0gICAgUmVmUHRyPFdlYk5vdGlmaWNhdGlvbj4gbm90aWZpY2F0aW9uID0gV2ViTm90
aWZpY2F0aW9uOjpjcmVhdGUodGl0bGUsIGJvZHksIG5vdGlmaWNhdGlvbklEKTsKLSAgICBtX25v
dGlmaWNhdGlvbnMuc2V0KG5vdGlmaWNhdGlvbklELCBub3RpZmljYXRpb24pOwotICAgIG1fcHJv
dmlkZXIuc2hvdyhub3RpZmljYXRpb24uZ2V0KCkpOwotfQotCi12b2lkIFdlYk5vdGlmaWNhdGlv
bk1hbmFnZXJQcm94eTo6Y2FuY2VsKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQotewotICAgIGlm
ICghaXNOb3RpZmljYXRpb25JRFZhbGlkKG5vdGlmaWNhdGlvbklEKSkKLSAgICAgICAgcmV0dXJu
OwotCi0gICAgUmVmUHRyPFdlYk5vdGlmaWNhdGlvbj4gbm90aWZpY2F0aW9uID0gbV9ub3RpZmlj
YXRpb25zLmdldChub3RpZmljYXRpb25JRCk7Ci0gICAgaWYgKCFub3RpZmljYXRpb24pCi0gICAg
ICAgIHJldHVybjsKLQotICAgIG1fcHJvdmlkZXIuYWRkTm90aWZpY2F0aW9uTWFuYWdlcih0aGlz
KTsKLSAgICBtX3Byb3ZpZGVyLmNhbmNlbChub3RpZmljYXRpb24uZ2V0KCkpOwotfQotICAgIAot
dm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OmRpZERlc3Ryb3lOb3RpZmljYXRpb24o
dWludDY0X3Qgbm90aWZpY2F0aW9uSUQpCi17Ci0gICAgaWYgKCFpc05vdGlmaWNhdGlvbklEVmFs
aWQobm90aWZpY2F0aW9uSUQpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBSZWZQdHI8V2ViTm90
aWZpY2F0aW9uPiBub3RpZmljYXRpb24gPSBtX25vdGlmaWNhdGlvbnMudGFrZShub3RpZmljYXRp
b25JRCk7Ci0gICAgaWYgKCFub3RpZmljYXRpb24pCi0gICAgICAgIHJldHVybjsKLQotICAgIG1f
cHJvdmlkZXIuZGlkRGVzdHJveU5vdGlmaWNhdGlvbihub3RpZmljYXRpb24uZ2V0KCkpOwotfQot
Ci12b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6cHJvdmlkZXJEaWRTaG93Tm90aWZp
Y2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQotewotICAgIGlmICghbV9jb250ZXh0KQot
ICAgICAgICByZXR1cm47Ci0gICAgCi0gICAgbV9jb250ZXh0LT5zZW5kVG9BbGxQcm9jZXNzZXMo
TWVzc2FnZXM6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OkRpZFNob3dOb3RpZmljYXRpb24obm90
aWZpY2F0aW9uSUQpKTsKLX0KLQotdm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OnBy
b3ZpZGVyRGlkQ2xpY2tOb3RpZmljYXRpb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQpCi17Ci0g
ICAgaWYgKCFtX2NvbnRleHQpCi0gICAgICAgIHJldHVybjsKLSAgICAKLSAgICBtX2NvbnRleHQt
PnNlbmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6V2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6RGlk
Q2xpY2tOb3RpZmljYXRpb24obm90aWZpY2F0aW9uSUQpKTsKLX0KLQotCi12b2lkIFdlYk5vdGlm
aWNhdGlvbk1hbmFnZXJQcm94eTo6cHJvdmlkZXJEaWRDbG9zZU5vdGlmaWNhdGlvbnMoSW1tdXRh
YmxlQXJyYXkqIG5vdGlmaWNhdGlvbklEcykKLXsKLSAgICBpZiAoIW1fY29udGV4dCkKLSAgICAg
ICAgcmV0dXJuOwotICAgIAotICAgIHNpemVfdCBzaXplID0gbm90aWZpY2F0aW9uSURzLT5zaXpl
KCk7Ci0gICAgCi0gICAgVmVjdG9yPHVpbnQ2NF90PiB2ZWN0b3JOb3RpZmljYXRpb25JRHM7Ci0g
ICAgdmVjdG9yTm90aWZpY2F0aW9uSURzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoc2l6ZSk7Ci0g
ICAgCi0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKLSAgICAgICAgdWlu
dDY0X3Qgbm90aWZpY2F0aW9uSUQgPSBub3RpZmljYXRpb25JRHMtPmF0PFdlYlVJbnQ2ND4oaSkt
PnZhbHVlKCk7Ci0gICAgICAgIHZlY3Rvck5vdGlmaWNhdGlvbklEcy5hcHBlbmQobm90aWZpY2F0
aW9uSUQpOwotICAgIH0KLSAgICAKLSAgICBpZiAodmVjdG9yTm90aWZpY2F0aW9uSURzLnNpemUo
KSkKLSAgICAgICAgbV9jb250ZXh0LT5zZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYk5v
dGlmaWNhdGlvbk1hbmFnZXI6OkRpZENsb3NlTm90aWZpY2F0aW9ucyh2ZWN0b3JOb3RpZmljYXRp
b25JRHMpKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmgKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU4N2ZhOWE0ODYxZGExNmRiOGNkNTk1NzYyYTljNzhjZmEy
YzMyZjkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oCisrKyAv
ZGV2L251bGwKQEAgLTEsODQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
LSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgV2ViTm90aWZp
Y2F0aW9uTWFuYWdlclByb3h5X2gKLSNkZWZpbmUgV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5
X2gKLQotI2luY2x1ZGUgIkFQSU9iamVjdC5oIgotI2luY2x1ZGUgIk1lc3NhZ2VJRC5oIgotI2lu
Y2x1ZGUgIldlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmgiCi0jaW5jbHVkZSA8d3RmL0hhc2hNYXAu
aD4KLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgotCi1uYW1lc3BhY2UgQ29yZUlQQyB7Ci1j
bGFzcyBBcmd1bWVudERlY29kZXI7Ci1jbGFzcyBDb25uZWN0aW9uOwotfQotCi1uYW1lc3BhY2Ug
V2ViS2l0IHsKLQotY2xhc3MgSW1tdXRhYmxlQXJyYXk7Ci1jbGFzcyBXZWJDb250ZXh0OwotCi1j
bGFzcyBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkgOiBwdWJsaWMgQVBJT2JqZWN0IHsKLXB1
YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgVHlwZSBBUElUeXBlID0gVHlwZU5vdGlmaWNhdGlvbk1h
bmFnZXI7Ci0gICAgCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViTm90aWZpY2F0aW9uTWFuYWdl
clByb3h5PiBjcmVhdGUoV2ViQ29udGV4dCopOwotICAgIHZpcnR1YWwgfldlYk5vdGlmaWNhdGlv
bk1hbmFnZXJQcm94eSgpOwotICAgIAotICAgIHZvaWQgaW52YWxpZGF0ZSgpOwotICAgIHZvaWQg
Y2xlYXJDb250ZXh0KCkgeyBtX2NvbnRleHQgPSAwOyB9Ci0KLSAgICB2b2lkIGluaXRpYWxpemVQ
cm92aWRlcihjb25zdCBXS05vdGlmaWNhdGlvblByb3ZpZGVyKik7Ci0gICAgCi0gICAgdm9pZCBw
cm92aWRlckRpZFNob3dOb3RpZmljYXRpb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQpOwotICAg
IHZvaWQgcHJvdmlkZXJEaWRDbGlja05vdGlmaWNhdGlvbih1aW50NjRfdCBub3RpZmljYXRpb25J
RCk7Ci0gICAgdm9pZCBwcm92aWRlckRpZENsb3NlTm90aWZpY2F0aW9ucyhJbW11dGFibGVBcnJh
eSogbm90aWZpY2F0aW9uSURzKTsKLSAgICAKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENv
cmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciopOwotCi1wcml2YXRlOgotICAgIGV4cGxpY2l0IFdlYk5vdGlmaWNhdGlvbk1hbmFn
ZXJQcm94eShXZWJDb250ZXh0Kik7Ci0gICAgCi0gICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25z
dCB7IHJldHVybiBBUElUeXBlOyB9Ci0gICAgCi0gICAgdm9pZCBkaWRSZWNlaXZlV2ViTm90aWZp
Y2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6
TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKLSAgICAKLSAgICAvLyBNZXNz
YWdlIGhhbmRsZXJzCi0gICAgdm9pZCBzaG93KGNvbnN0IFdURjo6U3RyaW5nJiB0aXRsZSwgY29u
c3QgV1RGOjpTdHJpbmcmIGJvZHksIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKTsKLSAgICB2b2lk
IGNhbmNlbCh1aW50NjRfdCBub3RpZmljYXRpb25JRCk7Ci0gICAgdm9pZCBkaWREZXN0cm95Tm90
aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKTsKLSAgICAKLSAgICB0eXBlZGVmIEhh
c2hNYXA8dWludDY0X3QsIFJlZlB0cjxXZWJOb3RpZmljYXRpb24+ID4gV2ViTm90aWZpY2F0aW9u
TWFwOwotICAgIAotICAgIFdlYkNvbnRleHQqIG1fY29udGV4dDsKLSAgICBXZWJOb3RpZmljYXRp
b25Qcm92aWRlciBtX3Byb3ZpZGVyOwotICAgIFdlYk5vdGlmaWNhdGlvbk1hcCBtX25vdGlmaWNh
dGlvbnM7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIFdlYk5vdGlm
aWNhdGlvbk1hbmFnZXJQcm94eV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmQ0MDNjM2Q3ZDg1OWNlNWQ5MDBhNDhhMGRlYjQ2
OWQ4MDYxODhhZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5Lm1l
c3NhZ2VzLmluCisrKyAvZGV2L251bGwKQEAgLTEsMjcgKzAsMCBAQAotIyBDb3B5cmlnaHQgKEMp
IDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMg
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0jIGFyZSBtZXQ6Ci0jIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAyLiAgUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0jCi0jIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycgQU5ECi0jIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0jIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSMgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IKLSMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAotIyBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgotIyBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUgotIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAotIyBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi1tZXNzYWdlcyAtPiBXZWJOb3RpZmljYXRpb25NYW5h
Z2VyUHJveHkgewotICAgIFNob3coV1RGOjpTdHJpbmcgdGl0bGUsIFdURjo6U3RyaW5nIGJvZHks
IHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKTsKLSAgICBDYW5jZWwodWludDY0X3Qgbm90aWZpY2F0
aW9uSUQpOwotICAgIERpZERlc3Ryb3lOb3RpZmljYXRpb24odWludDY0X3Qgbm90aWZpY2F0aW9u
SUQpOwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5vdGlmaWNh
dGlvblByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOb3RpZmljYXRp
b25Qcm92aWRlci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ2MWIxYWQ3ODk2
ZGFlOTcyOGUwNDcyYjNhZmI2NWVjYTM4NGRlYmIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5vdGlmaWNh
dGlvblByb3ZpZGVyLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDc1ICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgot
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
LSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9uUHJvdmlk
ZXIuaCIKLQotI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgotI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlv
bi5oIgotI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oIgotCi1uYW1lc3Bh
Y2UgV2ViS2l0IHsKLQotdm9pZCBXZWJOb3RpZmljYXRpb25Qcm92aWRlcjo6c2hvdyhXZWJOb3Rp
ZmljYXRpb24qIG5vdGlmaWNhdGlvbikKLXsKLSAgICBpZiAoIW1fY2xpZW50LnNob3cpCi0gICAg
ICAgIHJldHVybjsKLSAgICAKLSAgICBtX2NsaWVudC5zaG93KHRvQVBJKG5vdGlmaWNhdGlvbiks
IG1fY2xpZW50LmNsaWVudEluZm8pOwotfQotCi12b2lkIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVy
OjpjYW5jZWwoV2ViTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24pCi17Ci0gICAgaWYgKCFtX2Ns
aWVudC5jYW5jZWwpCi0gICAgICAgIHJldHVybjsKLSAgICAKLSAgICBtX2NsaWVudC5jYW5jZWwo
dG9BUEkobm90aWZpY2F0aW9uKSwgbV9jbGllbnQuY2xpZW50SW5mbyk7Ci19Ci0KLXZvaWQgV2Vi
Tm90aWZpY2F0aW9uUHJvdmlkZXI6OmRpZERlc3Ryb3lOb3RpZmljYXRpb24oV2ViTm90aWZpY2F0
aW9uKiBub3RpZmljYXRpb24pCi17Ci0gICAgaWYgKCFtX2NsaWVudC5kaWREZXN0cm95Tm90aWZp
Y2F0aW9uKQotICAgICAgICByZXR1cm47Ci0gICAgCi0gICAgbV9jbGllbnQuZGlkRGVzdHJveU5v
dGlmaWNhdGlvbih0b0FQSShub3RpZmljYXRpb24pLCBtX2NsaWVudC5jbGllbnRJbmZvKTsKLX0K
LQotdm9pZCBXZWJOb3RpZmljYXRpb25Qcm92aWRlcjo6YWRkTm90aWZpY2F0aW9uTWFuYWdlcihX
ZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkqIG1hbmFnZXIpCi17Ci0gICAgaWYgKCFtX2NsaWVu
dC5hZGROb3RpZmljYXRpb25NYW5hZ2VyKQotICAgICAgICByZXR1cm47Ci0gICAgCi0gICAgbV9j
bGllbnQuYWRkTm90aWZpY2F0aW9uTWFuYWdlcih0b0FQSShtYW5hZ2VyKSwgbV9jbGllbnQuY2xp
ZW50SW5mbyk7Ci19Ci0KLXZvaWQgV2ViTm90aWZpY2F0aW9uUHJvdmlkZXI6OnJlbW92ZU5vdGlm
aWNhdGlvbk1hbmFnZXIoV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5KiBtYW5hZ2VyKQotewot
ICAgIGlmICghbV9jbGllbnQucmVtb3ZlTm90aWZpY2F0aW9uTWFuYWdlcikKLSAgICAgICAgcmV0
dXJuOwotICAgIAotICAgIG1fY2xpZW50LnJlbW92ZU5vdGlmaWNhdGlvbk1hbmFnZXIodG9BUEko
bWFuYWdlciksIG1fY2xpZW50LmNsaWVudEluZm8pOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOb3RpZmljYXRpb25Q
cm92aWRlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5vdGlmaWNhdGlvblByb3Zp
ZGVyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZmNDBiYThmN2QwZjlmYjBkNGQ5
MTUxODkwNmQzYjEzNGU4MzZlN2IuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5vdGlmaWNhdGlvblByb3Zp
ZGVyLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRl
ZiBXZWJOb3RpZmljYXRpb25Qcm92aWRlcl9oCi0jZGVmaW5lIFdlYk5vdGlmaWNhdGlvblByb3Zp
ZGVyX2gKLQotI2luY2x1ZGUgIkFQSUNsaWVudC5oIgotI2luY2x1ZGUgIldLTm90aWZpY2F0aW9u
UHJvdmlkZXIuaCIKLSNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgotCi1uYW1lc3BhY2UgV2ViS2l0
IHsKLQotY2xhc3MgV2ViTm90aWZpY2F0aW9uOwotY2xhc3MgV2ViTm90aWZpY2F0aW9uTWFuYWdl
clByb3h5OwotICAgIAotY2xhc3MgV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIgOiBwdWJsaWMgQVBJ
Q2xpZW50PFdLTm90aWZpY2F0aW9uUHJvdmlkZXIsIGtXS05vdGlmaWNhdGlvblByb3ZpZGVyQ3Vy
cmVudFZlcnNpb24+IHsKLXB1YmxpYzoKLSAgICB2b2lkIHNob3coV2ViTm90aWZpY2F0aW9uKik7
Ci0gICAgdm9pZCBjYW5jZWwoV2ViTm90aWZpY2F0aW9uKik7Ci0gICAgdm9pZCBkaWREZXN0cm95
Tm90aWZpY2F0aW9uKFdlYk5vdGlmaWNhdGlvbiopOwotCi0gICAgdm9pZCBhZGROb3RpZmljYXRp
b25NYW5hZ2VyKFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eSopOwotICAgIHZvaWQgcmVtb3Zl
Tm90aWZpY2F0aW9uTWFuYWdlcihXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkqKTsKLX07Ci0K
LX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gV2ViTm90aWZpY2F0aW9uUHJvdmlk
ZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBiOTc3
ZDg4ZWYwMzNkNWY2NzQwZGU0MTQ2OTUyYzUzMDNiMjNhODM0Li5lZmY2NjExNjZlMzZiMDUwYmE2
N2E1YzIwM2Y5MWYxYjcxNTI0NDUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcApAQCAtMzcsNiArMzcsOCBAQAogI2luY2x1ZGUgIk5hdGl2ZVdlYktleWJvYXJk
RXZlbnQuaCIKICNpbmNsdWRlICJOYXRpdmVXZWJNb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiTmF0
aXZlV2ViV2hlZWxFdmVudC5oIgorI2luY2x1ZGUgIk5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0LmgiCisjaW5jbHVkZSAiTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgi
CiAjaW5jbHVkZSAiUGFnZUNsaWVudC5oIgogI2luY2x1ZGUgIlByaW50SW5mby5oIgogI2luY2x1
ZGUgIlNlc3Npb25TdGF0ZS5oIgpAQCAtMTQ2LDYgKzE0OCw3IEBAIFdlYlBhZ2VQcm94eTo6V2Vi
UGFnZVByb3h5KFBhZ2VDbGllbnQqIHBhZ2VDbGllbnQsIFBhc3NSZWZQdHI8V2ViUHJvY2Vzc1By
b3h5PiBwCiAgICAgLCBtX21haW5GcmFtZSgwKQogICAgICwgbV91c2VyQWdlbnQoc3RhbmRhcmRV
c2VyQWdlbnQoKSkKICAgICAsIG1fZ2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIo
dGhpcykKKyAgICAsIG1fbm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKHRoaXMp
CiAgICAgLCBtX2VzdGltYXRlZFByb2dyZXNzKDApCiAgICAgLCBtX2lzSW5XaW5kb3cobV9wYWdl
Q2xpZW50LT5pc1ZpZXdJbldpbmRvdygpKQogICAgICwgbV9pc1Zpc2libGUobV9wYWdlQ2xpZW50
LT5pc1ZpZXdWaXNpYmxlKCkpCkBAIC0zNjQsNiArMzY3LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6
OmNsb3NlKCkKICAgICB9CiAKICAgICBtX2dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyLmludmFsaWRhdGVSZXF1ZXN0cygpOworICAgIG1fbm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyLmludmFsaWRhdGVSZXF1ZXN0cygpOwogCiAgICAgbV90b29sVGlwID0gU3Ry
aW5nKCk7CiAKQEAgLTMxMzMsNiArMzEzNyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpwcm9jZXNz
RGlkQ3Jhc2goKQogICAgIH0KIAogICAgIG1fZ2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXIuaW52YWxpZGF0ZVJlcXVlc3RzKCk7CisgICAgbV9ub3RpZmljYXRpb25QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXIuaW52YWxpZGF0ZVJlcXVlc3RzKCk7CiAKICAgICBtX3Rvb2xUaXAgPSBT
dHJpbmcoKTsKIApAQCAtMzI5NSw2ICszMzAwLDE4IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZXF1
ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgZ2VvbG9jYXRpb25JRCwK
ICAgICAgICAgcmVxdWVzdC0+ZGVueSgpOwogfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVz
dE5vdGlmaWNhdGlvblBlcm1pc3Npb24odWludDY0X3QgcmVxdWVzdElELCBjb25zdCBTdHJpbmcm
IG9yaWdpbklkZW50aWZpZXIpCit7CisgICAgaWYgKCFpc1JlcXVlc3RJRFZhbGlkKHJlcXVlc3RJ
RCkpCisgICAgICAgIHJldHVybjsKKworICAgIFJlZlB0cjxXZWJTZWN1cml0eU9yaWdpbj4gb3Jp
Z2luID0gV2ViU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShvcmlnaW5JZGVudGlmaWVyKTsKKyAgICBS
ZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q+IHJlcXVlc3QgPSBtX25vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcmVhdGVSZXF1ZXN0KHJlcXVlc3RJRCk7Cisg
ICAgCisgICAgaWYgKCFtX3VpQ2xpZW50LmRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0KHRoaXMsIG9yaWdpbi5nZXQoKSwgcmVxdWVzdC5nZXQoKSkpCisgICAgICAg
IHJlcXVlc3QtPmRlbnkoKTsKK30KKwogZmxvYXQgV2ViUGFnZVByb3h5OjpoZWFkZXJIZWlnaHQo
V2ViRnJhbWVQcm94eSogZnJhbWUpCiB7CiAgICAgcmV0dXJuIG1fdWlDbGllbnQuaGVhZGVySGVp
Z2h0KHRoaXMsIGZyYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApp
bmRleCA4MjU1Y2Y0MWZjM2Y2ZGQxMjYzMTQ2YTBiNmRkMjM3NzFkZjQ3ZDA1Li40N2ZjZDZjMDIy
M2I4Y2E0YWEyMDcxMWY4NWRmNDg3YTAxN2NiNDlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCkBAIC0zNiw2ICszNiw3IEBACiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5U
UykKICNpbmNsdWRlICJOYXRpdmVXZWJUb3VjaEV2ZW50LmgiCiAjZW5kaWYKKyNpbmNsdWRlICJO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgIlBs
YXRmb3JtUHJvY2Vzc0lkZW50aWZpZXIuaCIKICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgi
CiAjaW5jbHVkZSAiU2hhcmVhYmxlQml0bWFwLmgiCkBAIC02ODUsNiArNjg2LDggQEAgcHJpdmF0
ZToKICAgICB2b2lkIHJlYXR0YWNoVG9XZWJQcm9jZXNzKCk7CiAgICAgdm9pZCByZWF0dGFjaFRv
V2ViUHJvY2Vzc1dpdGhJdGVtKFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qKTsKIAorICAgIHZvaWQg
cmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQsIGNv
bnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllcik7CisgICAgCiAjaWYgVVNFKFRJTEVEX0JBQ0tJ
TkdfU1RPUkUpCiAgICAgdm9pZCBwYWdlRGlkUmVxdWVzdFNjcm9sbChjb25zdCBXZWJDb3JlOjpJ
bnRQb2ludCYpOwogI2VuZGlmCkBAIC04NjksNiArODcyLDcgQEAgcHJpdmF0ZToKICAgICBDb250
ZXh0TWVudVN0YXRlIG1fYWN0aXZlQ29udGV4dE1lbnVTdGF0ZTsKICAgICBSZWZQdHI8V2ViT3Bl
blBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eT4gbV9vcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcjsKICAg
ICBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5IG1fZ2VvbG9jYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7CisgICAgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHkgbV9ub3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7CiAK
ICAgICBkb3VibGUgbV9lc3RpbWF0ZWRQcm9ncmVzczsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggNmQyYWIzOWUxNjFhZmMx
YmNjN2UyNzVlYjNhOTI4YzJhZjY3ZmU4YS4uNWUzZDY5ODkxN2U5Yjc2NzVmMDk3N2RlM2MyMTMw
ODMzNDM3MTlmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lm1lc3NhZ2VzLmluCkBAIC0xOTQsNiArMTk0LDkgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVBy
b3h5IHsKIAogICAgICMgR2VvbG9jYXRpb24gbWVzc2FnZXMKICAgICBSZXF1ZXN0R2VvbG9jYXRp
b25QZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgZ2VvbG9jYXRpb25JRCwgdWludDY0X3QgZnJh
bWVJRCwgV1RGOjpTdHJpbmcgb3JpZ2luSWRlbnRpZmllcikKKyAgICAKKyAgICAjIE5vdGlmaWNh
dGlvbiBtZXNzYWdlcworICAgIFJlcXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9uKHVpbnQ2NF90
IHJlcXVlc3RJRCwgV1RGOjpTdHJpbmcgb3JpZ2luSWRlbnRpZmllcikKIAogICAgICMgU3BlbGxp
bmcgYW5kIGdyYW1tYXIgbWVzc2FnZXMKICNpZiBVU0UoVU5JRklFRF9URVhUX0NIRUNLSU5HKSAg
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IDBi
MmIxODdjNjBkODE5ZGUwZGI2MjQ5NjlmNGRjNTdhMTRiY2MwOWYuLjBjMTFjYWE1YjliODVmZTJj
NTg0MzA3YjI5Yjk5NTU3ZDIwMjc1ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiV2ViQmFja0Zv
cndhcmRMaXN0SXRlbS5oIgogI2luY2x1ZGUgIldlYkNvbnRleHQuaCIKICNpbmNsdWRlICJXZWJO
YXZpZ2F0aW9uRGF0YVN0b3JlLmgiCisjaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9uTWFuYWdlclBy
b3h5LmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc01l
c3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKQEAgLTMzMiw2
ICszMzMsMTEgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3IKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAorICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViTm90aWZp
Y2F0aW9uTWFuYWdlclByb3h5PigpKSB7CisgICAgICAgIG1fY29udGV4dC0+bm90aWZpY2F0aW9u
TWFuYWdlclByb3h5KCktPmRpZFJlY2VpdmVTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdl
SUQsIGFyZ3VtZW50cywgcmVwbHkpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgdWlu
dDY0X3QgcGFnZUlEID0gYXJndW1lbnRzLT5kZXN0aW5hdGlvbklEKCk7CiAgICAgaWYgKCFwYWdl
SUQpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJVSUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVUlDbGllbnQu
Y3BwCmluZGV4IGYxMzcwYWY1YTA3NjUxOWVkNmYzY2EwYjVkYzY1YjM3MDAwOTlkZDMuLjQwMzg0
ZjhlYWE1OTYzYTI2MGM0ODY1YWY3NjA5MjY3OWFkOTlhZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlVJQ2xpZW50LmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkltbXV0
YWJsZURpY3Rpb25hcnkuaCIKICNpbmNsdWRlICJOYXRpdmVXZWJLZXlib2FyZEV2ZW50LmgiCiAj
aW5jbHVkZSAiTmF0aXZlV2ViV2hlZWxFdmVudC5oIgorI2luY2x1ZGUgIk5vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0LmgiCiAjaW5jbHVkZSAiV0tBUElDYXN0LmgiCiAjaW5jbHVkZSAiV2Vi
TnVtYmVyLmgiCiAjaW5jbHVkZSAiV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eS5oIgpA
QCAtMzMxLDYgKzMzMiwxNSBAQCBib29sIFdlYlVJQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JHZW9s
b2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSogcGFnZQogICAgIHJldHVybiB0
cnVlOwogfQogCitib29sIFdlYlVJQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveHkqIHBhZ2UsIFdlYlNlY3VyaXR5T3JpZ2luKiBv
cmlnaW4sIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KiBwZXJtaXNzaW9uUmVxdWVzdCkK
K3sKKyAgICBpZiAoIW1fY2xpZW50LmRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgbV9jbGllbnQuZGVj
aWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QodG9BUEkocGFnZSksIHRv
QVBJKG9yaWdpbiksIHRvQVBJKHBlcm1pc3Npb25SZXF1ZXN0KSwgbV9jbGllbnQuY2xpZW50SW5m
byk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIGZsb2F0IFdlYlVJQ2xpZW50OjpoZWFkZXJIZWln
aHQoV2ViUGFnZVByb3h5KiBwYWdlLCBXZWJGcmFtZVByb3h5KiBmcmFtZSkKIHsKICAgICBpZiAo
IW1fY2xpZW50LmhlYWRlckhlaWdodCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJVSUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50
LmgKaW5kZXggNTZlMDk4OGNiNzU1M2NjOTQ5MTgzMzliMGZkM2YzYjNiNjNmNzhmZi4uODM1ZTZj
ZWI3YTA2YjNiMzgzMmEyYWQxY2E0NzgzOTAyNzU1ZjMxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlVJQ2xpZW50LmgKQEAgLTQ3LDYgKzQ3LDcgQEAgY2xhc3MgQVBJT2JqZWN0OwogY2xh
c3MgR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFByb3h5OwogY2xhc3MgTmF0aXZlV2ViS2V5
Ym9hcmRFdmVudDsKIGNsYXNzIE5hdGl2ZVdlYldoZWVsRXZlbnQ7CitjbGFzcyBOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdDsKIGNsYXNzIFdlYkRhdGE7CiBjbGFzcyBXZWJGcmFtZVByb3h5
OwogY2xhc3MgV2ViUGFnZVByb3h5OwpAQCAtOTksNiArMTAwLDcgQEAgcHVibGljOgogCiAgICAg
Ym9vbCBydW5PcGVuUGFuZWwoV2ViUGFnZVByb3h5KiwgV2ViRnJhbWVQcm94eSosIFdlYk9wZW5Q
YW5lbFBhcmFtZXRlcnMqLCBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5Kik7CiAgICAg
Ym9vbCBkZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQ
cm94eSosIFdlYkZyYW1lUHJveHkqLCBXZWJTZWN1cml0eU9yaWdpbiosIEdlb2xvY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RQcm94eSopOworICAgIGJvb2wgZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0
aW9uUGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3h5KiwgV2ViU2VjdXJpdHlPcmlnaW4qLCBO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCopOwogCiAgICAgLy8gUHJpbnRpbmcuCiAgICAg
ZmxvYXQgaGVhZGVySGVpZ2h0KFdlYlBhZ2VQcm94eSosIFdlYkZyYW1lUHJveHkqKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAx
ZmZlOWE5ZTg3NDJmYzgxOTA1N2JiY2YyMTVmYmZlNDYxM2YwNDQwLi5jM2YzNTA5OGQxMmIwOTdi
NjMwMzdmYmYwOTk0ZTFlZGZkZWYyNTAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJL
aXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0
Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNDYsMTMgKzI0NiwxMCBAQAogCQkxQ0E4
Qjk1NDEyN0M4OTE1MDA1NzZDMkIgLyogV2ViSW5zcGVjdG9yTWFjLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM4RTJEQUQxMjc4QzVCMjAwQkM3QkQw
IC8qIFdlYkluc3BlY3Rvck1hYy5tbSAqLzsgfTsKIAkJMjlDRDU1QUExMjhFMjk0RjAwMTMzQzg1
IC8qIFdLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5Q0Q1NUE4MTI4RTI5NEYwMDEzM0M4NSAvKiBXS0Fj
Y2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0LmggKi87IH07CiAJCTI5Q0Q1NUFCMTI4RTI5NEYwMDEz
M0M4NSAvKiBXS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0Lm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjlDRDU1QTkxMjhFMjk0RjAwMTMzQzg1IC8q
IFdLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3QubW0gKi87IH07Ci0JCTMxMDk5OTZGMTQ2Qzc0
MUQwMDI5REVCOSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMDk5OTZBMTQ2QzczOTIwMDI5REVC
OSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaCAqLzsgfTsKLQkJMzEwOTk5NzAxNDZD
NzQyMDAwMjlERUI5IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTA5OTk2QjE0NkM3M0IxMDAy
OURFQjkgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcCAqLzsgfTsKIAkJMzEwOTk5
NzMxNDZDNzVBMjAwMjlERUI5IC8qIFdlYk5vdGlmaWNhdGlvbkNsaWVudC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTA5OTk3MTE0NkM3NTlCMDAy
OURFQjkgLyogV2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcCAqLzsgfTsKIAkJMzEwOTk5N0ExNDZD
OEIxNDAwMjlERUI5IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEwOTk5NzgxNDZDOEIxNDAwMjlERUI5
IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwICovOyB9OwogCQkzMTA5OTk3QjE0NkM4QjE0
MDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEwOTk5NzkxNDZDOEIxNDAwMjlERUI5IC8qIFdl
Yk5vdGlmaWNhdGlvbk1hbmFnZXIuaCAqLzsgfTsKIAkJMzEwOTk5QzcxNDZDOUUzRDAwMjlERUI5
IC8qIFdlYk5vdGlmaWNhdGlvbkNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMzEwOTk5NjgxNDZDNzFGNTAwMjlERUI5IC8qIFdlYk5vdGlmaWNh
dGlvbkNsaWVudC5oICovOyB9OwotCQkzMTJDMEM0NzE0NkREQkJEMDAxNkM5MTEgLyogV2ViTm90
aWZpY2F0aW9uUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMzEyQzBDNDYxNDZEREJCQzAwMTZDOTExIC8qIFdlYk5vdGlmaWNhdGlvblBy
b3ZpZGVyLmNwcCAqLzsgfTsKIAkJMzEyQzBDNEExNDZEREM4QTAwMTZDOTExIC8qIFdLTm90aWZp
Y2F0aW9uUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDMxMkMwQzQ5MTQ2RERDOEEwMDE2QzkxMSAvKiBXS05vdGlmaWNhdGlvblByb3ZpZGVy
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMzE4
QkUxNjcxNDczNDMzNzAwQThGQkIyIC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eU1lc3Nh
Z2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAzMThCRTE2NTE0NzM0MzM3MDBBOEZCQjIgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlclBy
b3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJMzE4QkUxNjgxNDczNDMzNzAwQThGQkIy
IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMThCRTE2NjE0NzM0MzM3MDBBOEZCQjIg
LyogV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZXMuaCAqLzsgfTsKQEAgLTI2MCwx
MCArMjU3LDIyIEBACiAJCTMxOEJFMTc1MTQ3NDNERDcwMEE4RkJCMiAvKiBXS05vdGlmaWNhdGlv
bk1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMzE4QkUxNzQxNDc0M0RENjAwQThGQkIyIC8qIFdLTm90aWZpY2F0aW9uTWFuYWdlci5jcHAg
Ki87IH07CiAJCTMxOEJFMTc3MTQ3NDNFNjAwMEE4RkJCMiAvKiBXS05vdGlmaWNhdGlvbi5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMThCRTE3NjE0
NzQzRTYwMDBBOEZCQjIgLyogV0tOb3RpZmljYXRpb24uY3BwICovOyB9OwogCQkzMThCRTE3OTE0
NzQzRTZGMDBBOEZCQjIgLyogV0tOb3RpZmljYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxOEJFMTc4MTQ3NDNFNkEwMEE4RkJCMiAvKiBXS05v
dGlmaWNhdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTMxQTJFQzNFMTQ4OTc0MzcwMDgxMEQ3MSAvKiBOb3RpZmljYXRpb25QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMzFBMkVDM0MxNDg5NzQzNzAwODEwRDcxIC8qIE5vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlci5jcHAgKi87IH07CisJCTMxQTJFQzNGMTQ4OTc0MzcwMDgxMEQ3MSAv
KiBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxQTJFQzNEMTQ4OTc0MzcwMDgxMEQ3MSAv
KiBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCAqLzsgfTsKKwkJMzFBMkVD
NDgxNDg5OTdDMjAwODEwRDcxIC8qIFdlYk5vdGlmaWNhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUEyRUM0MTE0ODk5N0JFMDA4MTBENzEg
LyogV2ViTm90aWZpY2F0aW9uLmNwcCAqLzsgfTsKKwkJMzFBMkVDNDkxNDg5OTdDMjAwODEwRDcx
IC8qIFdlYk5vdGlmaWNhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMzFBMkVDNDIxNDg5OTdCRTAwODEwRDcxIC8qIFdlYk5vdGlmaWNhdGlvbi5o
ICovOyB9OworCQkzMUEyRUM0QTE0ODk5N0MyMDA4MTBENzEgLyogV2ViTm90aWZpY2F0aW9uTWFu
YWdlclByb3h5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDMxQTJFQzQzMTQ4OTk3QkUwMDgxMEQ3MSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJv
eHkuY3BwICovOyB9OworCQkzMUEyRUM0QjE0ODk5N0MyMDA4MTBENzEgLyogV2ViTm90aWZpY2F0
aW9uTWFuYWdlclByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAzMUEyRUM0NDE0ODk5N0JGMDA4MTBENzEgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdl
clByb3h5LmggKi87IH07CisJCTMxQTJFQzREMTQ4OTk3QzIwMDgxMEQ3MSAvKiBXZWJOb3RpZmlj
YXRpb25Qcm92aWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAzMUEyRUM0NjE0ODk5N0MwMDA4MTBENzEgLyogV2ViTm90aWZpY2F0aW9uUHJvdmlk
ZXIuY3BwICovOyB9OworCQkzMUEyRUM0RTE0ODk5N0MyMDA4MTBENzEgLyogV2ViTm90aWZpY2F0
aW9uUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDMxQTJFQzQ3MTQ4OTk3QzEwMDgxMEQ3MSAvKiBXZWJOb3RpZmljYXRpb25Qcm92aWRlci5o
ICovOyB9OworCQkzMUEyRUM1MDE0ODk5ODA1MDA4MTBENzEgLyogTm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMzFBMkVDNEYxNDg5OTgwNTAwODEwRDcxIC8qIE5vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCAqLzsgfTsKKwkJMzFBMkVDNTIxNDg5
OTgxOTAwODEwRDcxIC8qIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUEyRUM1
MTE0ODk5ODE1MDA4MTBENzEgLyogTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHkuaCAqLzsgfTsKKwkJMzFBMkVDNTUxNDg5OTgyRTAwODEwRDcxIC8qIE5vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDMxQTJFQzU0MTQ4OTk4MkUwMDgxMEQ3MSAvKiBOb3RpZmljYXRpb25QZXJt
aXNzaW9uUmVxdWVzdC5jcHAgKi87IH07CisJCTMxQTJFQzU2MTQ4OTlDMDkwMDgxMEQ3MSAvKiBO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMzFBMkVDNTMxNDg5OTgyNTAwODEwRDcxIC8qIE5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0LmggKi87IH07CisJCTMxQTJFQzc0MTQ4RDU5Q0EwMDgxMEQ3
MSAvKiBXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUEyRUM3MjE0OEQ1OUJCMDA4MTBENzEgLyog
V0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTMxQTJFQzc3MTQ4RDY2MkUwMDgxMEQ3MSAvKiBX
S05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxQTJFQzc1MTQ4RDY1QkIwMDgxMEQ3MSAvKiBXS05v
dGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcCAqLzsgfTsKIAkJMzFCQTkyNEQxNDg4MzEy
NjAwNjJFREI1IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFCQTkyNDgxNDg4
MzA4MTAwNjJFREI1IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
ICovOyB9OwogCQkzMUJBOTI0RTE0ODgzMTI2MDA2MkVEQjUgLyogV2ViTm90aWZpY2F0aW9uTWFu
YWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAzMUJBOTI0OTE0ODgzMDgxMDA2MkVEQjUgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlck1l
c3NhZ2VzLmggKi87IH07Ci0JCTMxQzExQUIzMTQ4NDUyRTkwMDQ5QTRDQyAvKiBXZWJOb3RpZmlj
YXRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MzFDMTFBQjExNDg0NTJFOTAwNDlBNENDIC8qIFdlYk5vdGlmaWNhdGlvbi5jcHAgKi87IH07Ci0J
CTMxQzExQUI0MTQ4NDUyRTkwMDQ5QTRDQyAvKiBXZWJOb3RpZmljYXRpb24uaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxQzExQUIyMTQ4NDUyRTkwMDQ5
QTRDQyAvKiBXZWJOb3RpZmljYXRpb24uaCAqLzsgfTsKIAkJMzFFQTI1RDIxMzRGNzhDMDAwNUIx
NDUyIC8qIE5hdGl2ZVdlYk1vdXNlRXZlbnRNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUVBMjVEMDEzNEY3OEIyMDA1QjE0NTIgLyogTmF0aXZl
V2ViTW91c2VFdmVudE1hYy5tbSAqLzsgfTsKIAkJMzMwOTM0NDcxMzE1QjkyMjAwOTdBN0JDIC8q
IFdlYkNvb2tpZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzMwOTM0NDMxMzE1QjkyMjAwOTdBN0JDIC8qIFdl
YkNvb2tpZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQkzMzA5MzQ0ODEzMTVC
OTIyMDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMzA5MzQ0NDEzMTVCOTIyMDA5N0E3QkMg
LyogV2ViQ29va2llTWFuYWdlck1lc3NhZ2VzLmggKi87IH07CkBAIC0xMjI1LDE0ICsxMjM0LDkg
QEAKIAkJMjlDRDU1QTgxMjhFMjk0RjAwMTMzQzg1IC8qIFdLQWNjZXNzaWJpbGl0eVdlYlBhZ2VP
YmplY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tBY2Nlc3NpYmlsaXR5
V2ViUGFnZU9iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyOUNENTVBOTEy
OEUyOTRGMDAxMzNDODUgLyogV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdC5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLQWNjZXNzaWJpbGl0eVdlYlBhZ2VP
YmplY3QubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxMDk5OTY4MTQ2QzcxRjUw
MDI5REVCOSAvKiBXZWJOb3RpZmljYXRpb25DbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViTm90
aWZpY2F0aW9uQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTMxMDk5OTZB
MTQ2QzczOTIwMDI5REVCOSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTMxMDk5OTZCMTQ2QzczQjEwMDI5REVCOSAvKiBXZWJOb3RpZmljYXRpb25N
YW5hZ2VyUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2Vi
Tm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJMzEwOTk5NkQxNDZDNzNDNDAwMjlERUI5IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94
eS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJOb3RpZmljYXRpb25NYW5h
Z2VyUHJveHkubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxMDk5
OTcxMTQ2Qzc1OUIwMDI5REVCOSAvKiBXZWJOb3RpZmljYXRpb25DbGllbnQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzEwOTk5NzgxNDZDOEIxNDAwMjlERUI5IC8q
IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBuYW1lID0gV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHA7IHBhdGggPSBOb3RpZmljYXRpb25z
L1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkzMTA5OTk3OTE0NkM4QjE0MDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJOb3RpZmljYXRpb25NYW5hZ2VyLmg7
IHBhdGggPSBOb3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMzEyQzBDNDYxNDZEREJCQzAwMTZDOTExIC8qIFdlYk5vdGlm
aWNhdGlvblByb3ZpZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJMzEyQzBDNDgxNDZEREJEMzAwMTZDOTExIC8qIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTMxMkMwQzQ5MTQ2RERDOEEwMDE2QzkxMSAvKiBXS05vdGlmaWNhdGlv
blByb3ZpZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLTm90aWZpY2F0
aW9uUHJvdmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzE4QkUxNjUxNDcz
NDMzNzAwQThGQkIyIC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJOb3RpZmljYXRp
b25NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkzMThCRTE2NjE0NzM0MzM3MDBBOEZCQjIgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdl
clByb3h5TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViTm90
aWZpY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTEyNDAsMTAgKzEyNDQsMjMgQEAKIAkJMzE4QkUxNzQxNDc0M0RENjAwQThGQkIyIC8q
IFdLTm90aWZpY2F0aW9uTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBXS05vdGlmaWNhdGlvbk1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkzMThCRTE3NjE0NzQzRTYwMDBBOEZCQjIgLyogV0tOb3RpZmljYXRpb24uY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tOb3RpZmljYXRpb24uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMThCRTE3ODE0NzQzRTZBMDBBOEZCQjIgLyog
V0tOb3RpZmljYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tOb3RpZmljYXRpb24uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzFBMkVDM0MxNDg5NzQzNzAwODEwRDcxIC8qIE5vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IG5hbWUgPSBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3Bw
OyBwYXRoID0gTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMUEyRUMzRDE0ODk3NDM3MDA4
MTBENzEgLyogTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlci5oOyBwYXRoID0gTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzFBMkVDNDExNDg5OTdC
RTAwODEwRDcxIC8qIFdlYk5vdGlmaWNhdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBXZWJOb3RpZmljYXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkzMUEyRUM0MjE0ODk5N0JFMDA4MTBENzEgLyogV2ViTm90aWZpY2F0aW9uLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYk5vdGlmaWNhdGlvbi5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkzMUEyRUM0MzE0ODk5N0JFMDA4MTBENzEgLyogV2ViTm90
aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTMxQTJFQzQ0MTQ4OTk3QkYwMDgxMEQ3MSAvKiBXZWJOb3RpZmljYXRpb25N
YW5hZ2VyUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViTm90aWZp
Y2F0aW9uTWFuYWdlclByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxQTJF
QzQ1MTQ4OTk3QkYwMDgxMEQ3MSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkubWVzc2Fn
ZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5
Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMUEyRUM0NjE0ODk5
N0MwMDA4MTBENzEgLyogV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMUEyRUM0NzE0ODk5N0MxMDA4MTBENzEgLyogV2Vi
Tm90aWZpY2F0aW9uUHJvdmlkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MzFBMkVDNEYxNDg5OTgwNTAwODEwRDcxIC8qIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5v
dGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMzFBMkVDNTExNDg5OTgxNTAwODEwRDcxIC8qIE5vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTMxQTJFQzUzMTQ4OTk4MjUwMDgxMEQ3MSAvKiBOb3RpZmljYXRpb25QZXJtaXNz
aW9uUmVxdWVzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVz
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMUEyRUM1NDE0ODk5ODJFMDA4MTBE
NzEgLyogTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMUEyRUM3MjE0OEQ1OUJCMDA4MTBENzEgLyog
V0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS05vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTMxQTJFQzc1MTQ4RDY1QkIwMDgxMEQ3MSAvKiBXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLTm90aWZpY2F0
aW9uUGVybWlzc2lvblJlcXVlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkz
MUJBOTI0ODE0ODgzMDgxMDA2MkVEQjUgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VS
ZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJOb3Rp
ZmljYXRpb25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMzFCQTkyNDkxNDg4MzA4MTAwNjJFREI1IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFn
ZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJOb3RpZmlj
YXRpb25NYW5hZ2VyTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMzFD
MTFBQjExNDg0NTJFOTAwNDlBNENDIC8qIFdlYk5vdGlmaWNhdGlvbi5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJOb3RpZmljYXRpb24uY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQkzMUMxMUFCMjE0ODQ1MkU5MDA0OUE0Q0MgLyogV2ViTm90aWZp
Y2F0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYk5vdGlmaWNhdGlv
bi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMUVBMjVEMDEzNEY3OEIyMDA1QjE0
NTIgLyogTmF0aXZlV2ViTW91c2VFdmVudE1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE5h
dGl2ZVdlYk1vdXNlRXZlbnRNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMx
RUEyNUQzMTM0Rjc4RDYwMDVCMTQ1MiAvKiBOYXRpdmVXZWJNb3VzZUV2ZW50LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5hdGl2ZVdlYk1vdXNlRXZlbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzJEQkNGNUUwMzcwQURFRTAwQzkxNzgzIC8qIFdlYktpdDJQ
cmVmaXguaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViS2l0MlByZWZpeC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjQ4MCwxMiArMjQ5NywzMiBAQAogCQkz
MTA5OTk3NDE0NkM4QUE4MDAyOURFQjkgLyogTm90aWZpY2F0aW9ucyAoVXNlcikgKi8gPSB7CiAJ
CQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTMxQTJFQzNDMTQ4OTc0Mzcw
MDgxMEQ3MSAvKiBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwICovLAor
CQkJCTMxQTJFQzNEMTQ4OTc0MzcwMDgxMEQ3MSAvKiBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXIuaCAqLywKIAkJCQkzMTA5OTk3ODE0NkM4QjE0MDAyOURFQjkgLyogV2ViTm90
aWZpY2F0aW9uTWFuYWdlci5jcHAgKi8sCiAJCQkJMzEwOTk5NzkxNDZDOEIxNDAwMjlERUI5IC8q
IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXIuaCAqLywKIAkJCSk7CiAJCQluYW1lID0gIk5vdGlmaWNh
dGlvbnMgKFVzZXIpIjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTMxQTJF
QzQwMTQ4OTk3MzcwMDgxMEQ3MSAvKiBOb3RpZmljYXRpb25zICovID0geworCQkJaXNhID0gUEJY
R3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQkzMUEyRUM0RjE0ODk5ODA1MDA4MTBENzEgLyog
Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwICovLAorCQkJCTMx
QTJFQzUxMTQ4OTk4MTUwMDgxMEQ3MSAvKiBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eS5oICovLAorCQkJCTMxQTJFQzU0MTQ4OTk4MkUwMDgxMEQ3MSAvKiBOb3RpZmlj
YXRpb25QZXJtaXNzaW9uUmVxdWVzdC5jcHAgKi8sCisJCQkJMzFBMkVDNTMxNDg5OTgyNTAwODEw
RDcxIC8qIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmggKi8sCisJCQkJMzFBMkVDNDEx
NDg5OTdCRTAwODEwRDcxIC8qIFdlYk5vdGlmaWNhdGlvbi5jcHAgKi8sCisJCQkJMzFBMkVDNDIx
NDg5OTdCRTAwODEwRDcxIC8qIFdlYk5vdGlmaWNhdGlvbi5oICovLAorCQkJCTMxQTJFQzQzMTQ4
OTk3QkUwMDgxMEQ3MSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwICovLAorCQkJ
CTMxQTJFQzQ0MTQ4OTk3QkYwMDgxMEQ3MSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHku
aCAqLywKKwkJCQkzMUEyRUM0NTE0ODk5N0JGMDA4MTBENzEgLyogV2ViTm90aWZpY2F0aW9uTWFu
YWdlclByb3h5Lm1lc3NhZ2VzLmluICovLAorCQkJCTMxQTJFQzQ2MTQ4OTk3QzAwMDgxMEQ3MSAv
KiBXZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHAgKi8sCisJCQkJMzFBMkVDNDcxNDg5OTdDMTAw
ODEwRDcxIC8qIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmggKi8sCisJCQkpOworCQkJcGF0aCA9
IE5vdGlmaWNhdGlvbnM7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQkzMkM4
OERGRjAzNzFDMjQyMDBDOTE3ODMgLyogT3RoZXIgU291cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBC
WEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0yNzU4LDYgKzI3OTUsNyBAQAogCQkJCTFBQjdE
NEM3MTI4OEFBOUEwMENGRDA4QyAvKiBEb3dubG9hZHMgKi8sCiAJCQkJQkMxMTFCMTgxMTJGNUZC
NDAwMzM3QkFCIC8qIExhdW5jaGVyICovLAogCQkJCUJDQ0YwODVDMTEzRjNCNzUwMEM2NTBDNSAv
KiBtYWMgKi8sCisJCQkJMzFBMkVDNDAxNDg5OTczNzAwODEwRDcxIC8qIE5vdGlmaWNhdGlvbnMg
Ki8sCiAJCQkJMUFFRkNDMDUxMUQwMUYzNDAwODIxOUQzIC8qIFBsdWdpbnMgKi8sCiAJCQkJMUE2
NDI1NjcxMkRFNDJFQzAwQ0FBRTJDIC8qIEJhY2tpbmdTdG9yZS5jcHAgKi8sCiAJCQkJMUE2NDI1
NjYxMkRFNDJFQzAwQ0FBRTJDIC8qIEJhY2tpbmdTdG9yZS5oICovLApAQCAtMjg0OSwxMyArMjg4
Nyw2IEBACiAJCQkJMzNEM0EzQjkxMzM5NjA2MjAwNzA5QkU0IC8qIFdlYk1lZGlhQ2FjaGVNYW5h
Z2VyUHJveHkubWVzc2FnZXMuaW4gKi8sCiAJCQkJQkNGNjlGQTExMTc2RDAxNDAwNDcxQTUyIC8q
IFdlYk5hdmlnYXRpb25EYXRhLmNwcCAqLywKIAkJCQlCQ0Y2OUZBMDExNzZEMDE0MDA0NzFBNTIg
LyogV2ViTmF2aWdhdGlvbkRhdGEuaCAqLywKLQkJCQkzMUMxMUFCMTE0ODQ1MkU5MDA0OUE0Q0Mg
LyogV2ViTm90aWZpY2F0aW9uLmNwcCAqLywKLQkJCQkzMUMxMUFCMjE0ODQ1MkU5MDA0OUE0Q0Mg
LyogV2ViTm90aWZpY2F0aW9uLmggKi8sCi0JCQkJMzEwOTk5NkIxNDZDNzNCMTAwMjlERUI5IC8q
IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAgKi8sCi0JCQkJMzEwOTk5NkExNDZDNzM5
MjAwMjlERUI5IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oICovLAotCQkJCTMxMDk5
OTZEMTQ2QzczQzQwMDI5REVCOSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkubWVzc2Fn
ZXMuaW4gKi8sCi0JCQkJMzEyQzBDNDYxNDZEREJCQzAwMTZDOTExIC8qIFdlYk5vdGlmaWNhdGlv
blByb3ZpZGVyLmNwcCAqLywKLQkJCQkzMTJDMEM0ODE0NkREQkQzMDAxNkM5MTEgLyogV2ViTm90
aWZpY2F0aW9uUHJvdmlkZXIuaCAqLywKIAkJCQlCQzFERkVBMzEyQjMxRjg3MDA1REY3MzAgLyog
V2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eS5jcHAgKi8sCiAJCQkJQkMxREZFQTIxMkIz
MUY4NzAwNURGNzMwIC8qIFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHkuaCAqLywKIAkJ
CQk1MTUzNTY5QTEyOTFCMUQyMDAwNzQ5REMgLyogV2ViUGFnZUNvbnRleHRNZW51Q2xpZW50LmNw
cCAqLywKQEAgLTI5NzYsNiArMzAwNyw4IEBACiAJCQkJNTE4QUNBRTkxMkFFRTZCQjAwQjA0Qjgz
IC8qIFdLUHJvdGVjdGlvblNwYWNlVHlwZXMuaCAqLywKIAkJCQkzMzM2NzYzODEzMEM5OURDMDA2
QzlERTIgLyogV0tSZXNvdXJjZUNhY2hlTWFuYWdlci5jcHAgKi8sCiAJCQkJMzMzNjc2MzkxMzBD
OTlEQzAwNkM5REUyIC8qIFdLUmVzb3VyY2VDYWNoZU1hbmFnZXIuaCAqLywKKwkJCQkzMUEyRUM3
MjE0OEQ1OUJCMDA4MTBENzEgLyogV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oICov
LAorCQkJCTMxQTJFQzc1MTQ4RDY1QkIwMDgxMEQ3MSAvKiBXS05vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0LmNwcCAqLywKIAkJCSk7CiAJCQlwYXRoID0gQzsKIAkJCXNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7CkBAIC00MDU1LDE1ICs0MDg4LDIwIEBACiAJCQkJQkMwOUI4RjkxNDc0NjBGNzAw
NUY1NjI1IC8qIFdlYkNvbnRleHRDb25uZWN0aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQkzNzg4QTA1QzE0NzQzQzkwMDA2MzE5RTUgLyogV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVy
UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFOUMwQjcxNDg0NzE0NzAwRTMzRDYxIC8q
IFdlYkNvbm5lY3Rpb25NZXNzYWdlS2luZHMuaCBpbiBIZWFkZXJzICovLAotCQkJCTMxMDk5OTZG
MTQ2Qzc0MUQwMDI5REVCOSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTMxMDk5OTdCMTQ2QzhCMTQwMDI5REVCOSAvKiBXZWJOb3RpZmljYXRpb25N
YW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTA5OTlDNzE0NkM5RTNEMDAyOURFQjkgLyog
V2ViTm90aWZpY2F0aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTJDMEM0QTE0NkRE
QzhBMDAxNkM5MTEgLyogV0tOb3RpZmljYXRpb25Qcm92aWRlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMzE4QkUxNjgxNDczNDMzNzAwQThGQkIyIC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94
eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMThCRTE3MTE0NzQzREIxMDBBOEZCQjIg
LyogV0tOb3RpZmljYXRpb25NYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMThCRTE3OTE0
NzQzRTZGMDBBOEZCQjIgLyogV0tOb3RpZmljYXRpb24uaCBpbiBIZWFkZXJzICovLAotCQkJCTMx
QzExQUI0MTQ4NDUyRTkwMDQ5QTRDQyAvKiBXZWJOb3RpZmljYXRpb24uaCBpbiBIZWFkZXJzICov
LAogCQkJCTMxQkE5MjRFMTQ4ODMxMjYwMDYyRURCNSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2Vy
TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTMxQTJFQzNGMTQ4OTc0MzcwMDgxMEQ3MSAv
KiBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAor
CQkJCTMxQTJFQzQ5MTQ4OTk3QzIwMDgxMEQ3MSAvKiBXZWJOb3RpZmljYXRpb24uaCBpbiBIZWFk
ZXJzICovLAorCQkJCTMxQTJFQzRCMTQ4OTk3QzIwMDgxMEQ3MSAvKiBXZWJOb3RpZmljYXRpb25N
YW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJzICovLAorCQkJCTMxQTJFQzRFMTQ4OTk3QzIwMDgxMEQ3
MSAvKiBXZWJOb3RpZmljYXRpb25Qcm92aWRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzFBMkVD
NTIxNDg5OTgxOTAwODEwRDcxIC8qIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5LmggaW4gSGVhZGVycyAqLywKKwkJCQkzMUEyRUM1NjE0ODk5QzA5MDA4MTBENzEgLyog
Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTMxQTJF
Qzc0MTQ4RDU5Q0EwMDgxMEQ3MSAvKiBXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNz
aW5nID0gMDsKIAkJfTsKQEAgLTQ3NjYsMTYgKzQ4MDQsMjAgQEAKIAkJCQlCQzRBNjI5NjE0NzMx
M0EwMDA2QzY4MUEgLyogV0tDb25uZWN0aW9uUmVmLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJD
NEE2MkE3MTQ3NDRFQzcwMDZDNjgxQSAvKiBXZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUJDMDlCOEY4MTQ3NDYwRjcwMDVGNTYyNSAvKiBXZWJDb250ZXh0
Q29ubmVjdGlvbkNsaWVudC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkzMTA5OTk3MDE0NkM3NDIw
MDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTMxMDk5OTczMTQ2Qzc1QTIwMDI5REVCOSAvKiBXZWJOb3RpZmljYXRpb25DbGllbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzEwOTk5N0ExNDZDOEIxNDAwMjlERUI5IC8qIFdlYk5v
dGlmaWNhdGlvbk1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMzEyQzBDNDcxNDZEREJC
RDAwMTZDOTExIC8qIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTMxOEJFMTY3MTQ3MzQzMzcwMEE4RkJCMiAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJv
eHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzE4QkUxNzUxNDc0M0RE
NzAwQThGQkIyIC8qIFdLTm90aWZpY2F0aW9uTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkzMThCRTE3NzE0NzQzRTYwMDBBOEZCQjIgLyogV0tOb3RpZmljYXRpb24uY3BwIGluIFNvdXJj
ZXMgKi8sCi0JCQkJMzFDMTFBQjMxNDg0NTJFOTAwNDlBNENDIC8qIFdlYk5vdGlmaWNhdGlvbi5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkzMUJBOTI0RDE0ODgzMTI2MDA2MkVEQjUgLyogV2ViTm90
aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlC
Q0QzNjc1QzE0OEMyNkMwMDA0NDdFODcgLyogV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCTMxQTJFQzNFMTQ4OTc0MzcwMDgxMEQ3MSAvKiBOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMzFBMkVD
NDgxNDg5OTdDMjAwODEwRDcxIC8qIFdlYk5vdGlmaWNhdGlvbi5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQkzMUEyRUM0QTE0ODk5N0MyMDA4MTBENzEgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlclBy
b3h5LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTMxQTJFQzREMTQ4OTk3QzIwMDgxMEQ3MSAvKiBX
ZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkzMUEyRUM1MDE0
ODk5ODA1MDA4MTBENzEgLyogTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMzFBMkVDNTUxNDg5OTgyRTAwODEwRDcxIC8qIE5v
dGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTMxQTJF
Qzc3MTQ4RDY2MkUwMDgxMEQ3MSAvKiBXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nl
c3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9O
b3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wODI4ZjgzNDk4ZjVhZDFiMGRjY2Ni
MjEwMGE1OGY1ODQwMzQ3NWI5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
ci5jcHAKQEAgLTAsMCArMSwxMjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgiCisKKyNp
bmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlICJXZWJOb3RpZmljYXRp
b25NYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRl
ICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNs
dWRlIDxXZWJDb3JlL05vdGlmaWNhdGlvbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KKwor
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCisjaWYgRU5B
QkxFKE5PVElGSUNBVElPTlMpCitzdGF0aWMgdWludDY0X3QgZ2VuZXJhdGVSZXF1ZXN0SUQoKQor
eworICAgIHN0YXRpYyB1aW50NjRfdCB1bmlxdWVSZXF1ZXN0SUQgPSAxOworICAgIHJldHVybiB1
bmlxdWVSZXF1ZXN0SUQrKzsKK30KKyNlbmRpZgorCitQYXNzUmVmUHRyPE5vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlcj4gTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyOjpjcmVhdGUoV2ViUGFnZSogcGFnZSkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IE5v
dGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcihwYWdlKSk7Cit9CisKK05vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyKFdlYlBhZ2UqIHBhZ2UpCisgICAgOiBtX3BhZ2UocGFnZSkKK3sKK30KKworTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjp+Tm90aWZpY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyKCkKK3sKK30KKwordm9pZCBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXI6OnN0YXJ0UmVxdWVzdChTZWN1cml0eU9yaWdpbiogb3JpZ2luLCBQYXNzUmVm
UHRyPFZvaWRDYWxsYmFjaz4gY2FsbGJhY2spCit7CisjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMp
CisgICAgdWludDY0X3QgcmVxdWVzdElEID0gZ2VuZXJhdGVSZXF1ZXN0SUQoKTsKKyAgICBtX29y
aWdpblRvSURNYXAuc2V0KG9yaWdpbiwgcmVxdWVzdElEKTsKKyAgICBtX2lkVG9PcmlnaW5NYXAu
c2V0KHJlcXVlc3RJRCwgb3JpZ2luKTsKKyAgICBtX2lkVG9DYWxsYmFja01hcC5zZXQocmVxdWVz
dElELCBjYWxsYmFjayk7CisgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OlJlcXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9uKHJlcXVlc3RJRCwgb3JpZ2luLT5kYXRhYmFz
ZUlkZW50aWZpZXIoKSkpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ob3JpZ2luKTsKKyAgICBV
TlVTRURfUEFSQU0oY2FsbGJhY2spOworI2VuZGlmCit9CisKK3ZvaWQgTm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpjYW5jZWxSZXF1ZXN0KFNlY3VyaXR5T3JpZ2luKiBvcmln
aW4pCit7CisjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCisgICAgdWludDY0X3QgaWQgPSBtX29y
aWdpblRvSURNYXAudGFrZShvcmlnaW4pOworICAgIGlmICghaWQpCisgICAgICAgIHJldHVybjsK
KyAgICAKKyAgICBtX2lkVG9PcmlnaW5NYXAucmVtb3ZlKGlkKTsKKyAgICBtX2lkVG9DYWxsYmFj
a01hcC5yZW1vdmUoaWQpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ob3JpZ2luKTsKKyNlbmRp
ZgorfQorCitOb3RpZmljYXRpb25QcmVzZW50ZXI6OlBlcm1pc3Npb24gTm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpwZXJtaXNzaW9uTGV2ZWwoU2VjdXJpdHlPcmlnaW4qIHNl
Y3VyaXR5T3JpZ2luKQoreworI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQorICAgIHVpbnQ2NF90
IHBlcm1pc3Npb25MZXZlbDsKKyAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9uKCkt
PnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6Ok5vdGlmaWNh
dGlvblBlcm1pc3Npb25MZXZlbChzZWN1cml0eU9yaWdpbi0+ZGF0YWJhc2VJZGVudGlmaWVyKCkp
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWVzc2Fn
ZXM6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6Tm90aWZpY2F0aW9uUGVybWlzc2lvbkxl
dmVsOjpSZXBseShwZXJtaXNzaW9uTGV2ZWwpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMCk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PE5vdGlmaWNh
dGlvblByZXNlbnRlcjo6UGVybWlzc2lvbj4ocGVybWlzc2lvbkxldmVsKTsKKyNlbHNlCisgICAg
VU5VU0VEX1BBUkFNKHNlY3VyaXR5T3JpZ2luKTsKKyAgICByZXR1cm4gTm90aWZpY2F0aW9uUHJl
c2VudGVyOjpQZXJtaXNzaW9uRGVuaWVkOworI2VuZGlmCit9CisKK3ZvaWQgTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpkaWRSZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lv
bkRlY2lzaW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgYm9vbCBhbGxvd2VkKQoreworI2lmIEVOQUJM
RShOT1RJRklDQVRJT05TKQorICAgIGlmICghaXNSZXF1ZXN0SURWYWxpZChyZXF1ZXN0SUQpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBSZWZQdHI8Vm9pZENhbGxiYWNrPiBjYWxsYmFjayA9IG1f
aWRUb0NhbGxiYWNrTWFwLnRha2UocmVxdWVzdElEKTsKKyAgICBpZiAoIWNhbGxiYWNrKQorICAg
ICAgICByZXR1cm47CisgICAgCisgICAgY2FsbGJhY2stPmhhbmRsZUV2ZW50KCk7CisjZWxzZQor
ICAgIFVOVVNFRF9QQVJBTShyZXF1ZXN0SUQpOworICAgIFVOVVNFRF9QQVJBTShhbGxvd2VkKTsK
KyNlbmRpZiAgICAKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlv
bnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjRh
Yjk4ZjJlY2U4ZDU1MzBjZDk1NzJlMzM0OGZiODY5NzM4ZGQ3YQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXIuaApAQCAtMCwwICsxLDc3IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
bmRlZiBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJfaAorI2RlZmluZSBOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJfaAorCisjaW5jbHVkZSA8V2ViQ29yZS9O
b3RpZmljYXRpb25QcmVzZW50ZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1ZvaWRDYWxsYmFjay5o
PgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4K
KyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIE5v
dGlmaWNhdGlvbjsgICAgCitjbGFzcyBTZWN1cml0eU9yaWdpbjsKK30KKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK2NsYXNzIFdlYlBhZ2U7CisKKy8vLyBGSVhNRTogTmVlZCB0byBrZWVwIGEgcXVl
dWUgb2YgcGVuZGluZyBub3RpZmljYXRpb25zIHdoaWNoIHBlcm1pc3Npb24gaXMgc3RpbGwgYmVp
bmcgcmVxdWVzdGVkLgorY2xhc3MgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
IDogcHVibGljIFJlZkNvdW50ZWQ8Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
PiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyPiBjcmVhdGUoV2ViUGFnZSopOworICAgIHZpcnR1YWwgfk5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpOworICAgIAorICAgIHZvaWQgc3RhcnRSZXF1
ZXN0KFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpWb2lkQ2Fs
bGJhY2s+KTsKKyAgICB2b2lkIGNhbmNlbFJlcXVlc3QoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4q
KTsKKyAgICAKKyAgICAvLyBTeW5jaHJvbm91cyBjYWxsIHRvIHJldHJpZXZlIHBlcm1pc3Npb24g
bGV2ZWwgZm9yIGdpdmVuIHNlY3VyaXR5IG9yaWdpbgorICAgIFdlYkNvcmU6Ok5vdGlmaWNhdGlv
blByZXNlbnRlcjo6UGVybWlzc2lvbiBwZXJtaXNzaW9uTGV2ZWwoV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW4qKTsKKyAgICAKKyAgICB2b2lkIGRpZFJlY2VpdmVOb3RpZmljYXRpb25QZXJtaXNzaW9u
RGVjaXNpb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQsIGJvb2wgYWxsb3dlZCk7CisgICAgCitw
cml2YXRlOgorICAgIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcihXZWJQYWdl
Kik7CisgICAgCisgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFdlYkNvcmU6OlZvaWRDYWxs
YmFjaz4gPiBtX2lkVG9DYWxsYmFja01hcDsKKyAgICBIYXNoTWFwPFJlZlB0cjxXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbj4sIHVpbnQ2NF90PiBtX29yaWdpblRvSURNYXA7CisgICAgSGFzaE1hcDx1
aW50NjRfdCwgUmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiA+IG1faWRUb09yaWdpbk1h
cDsKKworICAgIFdlYlBhZ2UqIG1fcGFnZTsKK307CisKK2lubGluZSBib29sIGlzUmVxdWVzdElE
VmFsaWQodWludDY0X3QgaWQpCit7CisgICAgLy8gVGhpcyBjaGVjayBtYWtlcyBzdXJlIHRoYXQg
dGhlIElEIGlzIG5vdCBlcXVhbCB0byB2YWx1ZXMgbmVlZGVkIGJ5CisgICAgLy8gSGFzaE1hcCBm
b3IgYnVja2V0aW5nLgorICAgIHJldHVybiBpZCAmJiBpZCAhPSBzdGF0aWNfY2FzdDx1aW50NjRf
dD4oLTEpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIE5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5oIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFn
ZXIuaAppbmRleCAwN2NmYWZjNzg1NmQwOGVlMDdhZGI3M2VjZTRiNTk4NTRlZmVjZTdkLi4zYjMy
ZjBhZGViYjk5YmJlOGI0OWJlNzMxOTFlZjRjYzljZTJkYTJiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmlj
YXRpb25NYW5hZ2VyLmgKQEAgLTM4LDcgKzM4LDcgQEAgY2xhc3MgQ29ubmVjdGlvbjsKIH0KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewotY2xhc3MgTm90aWZpY2F0aW9uOyAgICAKK2NsYXNzIE5vdGlm
aWNhdGlvbjsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlv
bkNsaWVudC5jcHAKaW5kZXggZjE4NDhiZGZmOWRiNWNiZGY4NjY0YmEwMzlhZDY2YTc1NmNjMjM1
Zi4uZTA2MjM0YTFjZTViZmJiODFiNzEyMzU2Nzc0MTQ5MGI3MGJiMjNlOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25D
bGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcApAQCAtMjgsOSArMjgsMTIgQEAKIAogI2lmIEVOQUJM
RShOT1RJRklDQVRJT05TKQogCisjaW5jbHVkZSAiTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9uTWFuYWdlci5oIgorI2luY2x1
ZGUgIldlYlBhZ2UuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSA8V2ViQ29y
ZS9Ob3RJbXBsZW1lbnRlZC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dC5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtNzQsMjAgKzc3LDIxIEBA
IHZvaWQgV2ViTm90aWZpY2F0aW9uQ2xpZW50Ojpub3RpZmljYXRpb25PYmplY3REZXN0cm95ZWQo
Tm90aWZpY2F0aW9uKiBub3RpZmljYXRpCiAjZW5kaWYKIH0KIAotdm9pZCBXZWJOb3RpZmljYXRp
b25DbGllbnQ6OnJlcXVlc3RQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNz
UmVmUHRyPFZvaWRDYWxsYmFjaz4pCit2b2lkIFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6cmVxdWVz
dFBlcm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxW
b2lkQ2FsbGJhY2s+IGNhbGxiYWNrKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgbV9w
YWdlLT5ub3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKS0+c3RhcnRSZXF1ZXN0
KGNvbnRleHQtPnNlY3VyaXR5T3JpZ2luKCksIGNhbGxiYWNrKTsKIH0KIAotdm9pZCBXZWJOb3Rp
ZmljYXRpb25DbGllbnQ6OmNhbmNlbFJlcXVlc3RzRm9yUGVybWlzc2lvbihTY3JpcHRFeGVjdXRp
b25Db250ZXh0KikKK3ZvaWQgV2ViTm90aWZpY2F0aW9uQ2xpZW50OjpjYW5jZWxSZXF1ZXN0c0Zv
clBlcm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKIHsKLSAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIG1fcGFnZS0+bm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyKCktPmNhbmNlbFJlcXVlc3QoY29udGV4dC0+c2VjdXJpdHlPcmlnaW4oKSk7CiB9CiAK
LU5vdGlmaWNhdGlvblByZXNlbnRlcjo6UGVybWlzc2lvbiBXZWJOb3RpZmljYXRpb25DbGllbnQ6
OmNoZWNrUGVybWlzc2lvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KikKK05vdGlmaWNhdGlvblBy
ZXNlbnRlcjo6UGVybWlzc2lvbiBXZWJOb3RpZmljYXRpb25DbGllbnQ6OmNoZWNrUGVybWlzc2lv
bihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQogewotICAgIG5vdEltcGxlbWVudGVk
KCk7Ci0gICAgcmV0dXJuIE5vdGlmaWNhdGlvblByZXNlbnRlcjo6UGVybWlzc2lvbkRlbmllZDsK
KyAgICBpZiAoIWNvbnRleHQgfHwgIWNvbnRleHQtPmlzRG9jdW1lbnQoKSkKKyAgICAgICAgcmV0
dXJuIE5vdGlmaWNhdGlvblByZXNlbnRlcjo6UGVybWlzc2lvbkRlbmllZDsKKyAgICByZXR1cm4g
bV9wYWdlLT5ub3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKS0+cGVybWlzc2lv
bkxldmVsKGNvbnRleHQtPnNlY3VyaXR5T3JpZ2luKCkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApp
bmRleCA2MTcyZDRmOTg4MmRmYTI1MzliODZlMjlkODgxYmNiY2UxNzBiYmZlLi40M2VjMzhjNzBk
ZTAyNmUyMDcwNWZhMjY5YzRmNDRlZjNhM2M0M2UwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAi
TGF5ZXJUcmVlSG9zdC5oIgogI2luY2x1ZGUgIk1lc3NhZ2VJRC5oIgogI2luY2x1ZGUgIk5ldHNj
YXBlUGx1Z2luLmgiCisjaW5jbHVkZSAiTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyLmgiCiAjaW5jbHVkZSAiUGFnZU92ZXJsYXkuaCIKICNpbmNsdWRlICJQbHVnaW5Qcm94eS5o
IgogI2luY2x1ZGUgIlBsdWdpblZpZXcuaCIKQEAgLTE4NDIsNiArMTg0MywxNSBAQCBXZWJGdWxs
U2NyZWVuTWFuYWdlciogV2ViUGFnZTo6ZnVsbFNjcmVlbk1hbmFnZXIoKQogfQogI2VuZGlmCiAK
K05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlciogV2ViUGFnZTo6bm90aWZpY2F0
aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCkKK3sKKyAgICBpZiAobV9ub3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIpCisgICAgICAgIHJldHVybiBtX25vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlci5nZXQoKTsKKworICAgIG1fbm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyID0gTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
OjpjcmVhdGUodGhpcyk7CisgICAgcmV0dXJuIG1fbm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyLmdldCgpOworfQorCiAjaWYgIVBMQVRGT1JNKEdUSykgJiYgIVBMQVRGT1JNKE1B
QykKIGJvb2wgV2ViUGFnZTo6aGFuZGxlRWRpdGluZ0tleWJvYXJkRXZlbnQoS2V5Ym9hcmRFdmVu
dCogZXZ0KQogewpAQCAtMjExOCw2ICsyMTI4LDExIEBAIHZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2
ZUdlb2xvY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IGdlb2xvY2F0aW9uSUQsIGJv
CiAgICAgbV9nZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5kaWRSZWNlaXZlR2Vv
bG9jYXRpb25QZXJtaXNzaW9uRGVjaXNpb24oZ2VvbG9jYXRpb25JRCwgYWxsb3dlZCk7CiB9CiAK
K3ZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25EZWNpc2lvbih1
aW50NjRfdCBub3RpZmljYXRpb25JRCwgYm9vbCBhbGxvd2VkKQoreworICAgIG5vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpLT5kaWRSZWNlaXZlTm90aWZpY2F0aW9uUGVybWlz
c2lvbkRlY2lzaW9uKG5vdGlmaWNhdGlvbklELCBhbGxvd2VkKTsKK30KKwogdm9pZCBXZWJQYWdl
OjphZHZhbmNlVG9OZXh0TWlzc3BlbGxpbmcoYm9vbCBzdGFydEJlZm9yZVNlbGVjdGlvbikKIHsK
ICAgICBGcmFtZSogZnJhbWUgPSBtX3BhZ2UtPmZvY3VzQ29udHJvbGxlcigpLT5mb2N1c2VkT3JN
YWluRnJhbWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
CmluZGV4IDkxNmQ4NjI0ZDZhNjM5OGNmYzc5ZWYzMjU3ZTExYmJkNDMwNWE3NjAuLjg3NTZiNDFm
YzA4ZDFkNTYyNjQ3OGRjYjc2OWY5MTI1NWM3Yjg0ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMTAyLDYgKzEwMiw3IEBAIG5hbWVzcGFjZSBX
ZWJLaXQgewogCiBjbGFzcyBEcmF3aW5nQXJlYTsKIGNsYXNzIEluamVjdGVkQnVuZGxlQmFja0Zv
cndhcmRMaXN0OworY2xhc3MgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOwog
Y2xhc3MgUGFnZU92ZXJsYXk7CiBjbGFzcyBQbHVnaW5WaWV3OwogY2xhc3MgU2Vzc2lvblN0YXRl
OwpAQCAtMzA5LDYgKzMxMCw3IEBAIHB1YmxpYzoKIAogICAgIEZpbmRDb250cm9sbGVyJiBmaW5k
Q29udHJvbGxlcigpIHsgcmV0dXJuIG1fZmluZENvbnRyb2xsZXI7IH0KICAgICBHZW9sb2NhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlciYgZ2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXIoKSB7IHJldHVybiBtX2dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOyB9
CisgICAgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKiBub3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKTsKIAogICAgIHZvaWQgcGFnZURpZFNjcm9sbCgpOwog
I2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQpAQCAtNTg3LDYgKzU4OSw3IEBAIHByaXZhdGU6
CiAjZW5kaWYKIAogICAgIHZvaWQgZGlkUmVjZWl2ZUdlb2xvY2F0aW9uUGVybWlzc2lvbkRlY2lz
aW9uKHVpbnQ2NF90IGdlb2xvY2F0aW9uSUQsIGJvb2wgYWxsb3dlZCk7CisgICAgdm9pZCBkaWRS
ZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlv
bklELCBib29sIGFsbG93ZWQpOwogCiAgICAgdm9pZCBhZHZhbmNlVG9OZXh0TWlzc3BlbGxpbmco
Ym9vbCBzdGFydEJlZm9yZVNlbGVjdGlvbik7CiAgICAgdm9pZCBjaGFuZ2VTcGVsbGluZ1RvV29y
ZChjb25zdCBTdHJpbmcmIHdvcmQpOwpAQCAtNjkzLDYgKzY5Niw3IEBAIHByaXZhdGU6CiAgICAg
UmVmUHRyPFdlYkNvbnRleHRNZW51PiBtX2NvbnRleHRNZW51OwogICAgIFJlZlB0cjxXZWJPcGVu
UGFuZWxSZXN1bHRMaXN0ZW5lcj4gbV9hY3RpdmVPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcjsKICAg
ICBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlciBtX2dlb2xvY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyOworICAgIFJlZlB0cjxOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXI+IG1fbm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOwogCiAg
ICAgT3duUHRyPFdlYkNvcmU6OlByaW50Q29udGV4dD4gbV9wcmludENvbnRleHQ7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMu
aW4KaW5kZXggZDBlMzA0YmRiYWVlZGY5YmUxMWY2YjU1NTFjOTIyZjhjM2M2NzZkOS4uMzc4NjE5
MWU1MDcxZTZhZThmZmM3MmNmMDBjZGU5ZDY5ZTBhOTk2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTE3Miw2
ICsxNzIsOSBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIHsKIAogICAgICMgR2VvbG9jYXRpb24KICAg
ICBEaWRSZWNlaXZlR2VvbG9jYXRpb25QZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3QgZ2VvbG9j
YXRpb25JRCwgYm9vbCBhbGxvd2VkKQorICAgIAorICAgICMgTm90aWZpY2F0aW9uCisgICAgRGlk
UmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCBub3RpZmljYXRp
b25JRCwgYm9vbCBhbGxvd2VkKQogCiAgICAgU2V0V2luZG93UmVzaXplclNpemUoV2ViQ29yZTo6
SW50U2l6ZSBpbnRlcnNlY3RzVmlldykKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvd2lu
L1dlYktpdDIudmNwcm9qIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9qCmluZGV4
IDQ3OWJiZDc3ZmVmODM5ZDliMTk3OGU4MWQ2M2RmYWYzYWYwNjUwNTIuLmMwNWEzNjM5MmFiMWI2
OGY0MmI1YWQyZWI0YmM3YWE4ZDRkYWI4NjMgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL3dp
bi9XZWJLaXQyLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2oK
QEAgLTE1NTUsMTUgKzE1NTUsMTUgQEAKIAkJCU5hbWU9IldlYlByb2Nlc3MiCiAJCQk+CiAJCQk8
RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViUHJvY2Vzc1xXZWJLaXRNYWluLmNwcCIKKwkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzLmNw
cCIKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2Vi
UHJvY2Vzc1xXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MuY3BwIgorCQkJCVJlbGF0aXZlUGF0aD0i
Li5cV2ViUHJvY2Vzc1xXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MuaCIKIAkJCQk+CiAJCQk8L0Zp
bGU+CiAJCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViUHJvY2Vzc1xXZWJDb25uZWN0
aW9uVG9VSVByb2Nlc3MuaCIKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcV2ViS2l0
TWFpbi5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKQEAgLTI3MDYsNiArMjcwNiwx
NCBAQAogCQkJCU5hbWU9Ik5vdGlmaWNhdGlvbnMgKFVzZXIpIgogCQkJCT4KIAkJCQk8RmlsZQor
CQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcTm90aWZpY2F0aW9uc1xOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJ
CTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViUHJvY2Vzc1xOb3RpZmljYXRpb25zXE5v
dGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIgorCQkJCQk+CisJCQkJPC9GaWxl
PgorCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViUHJvY2Vzc1xOb3RpZmljYXRp
b25zXFdlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwIgogCQkJCQk+CiAJCQkJPC9GaWxlPgpAQCAt
MzA4MywzNCArMzA5MSw2IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKLQkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xXZWJOb3RpZmljYXRpb24uY3BwIgotCQkJCT4KLQkJCTwv
RmlsZT4KLQkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcV2ViTm90aWZp
Y2F0aW9uLmgiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXFVJUHJvY2Vzc1xXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwIgotCQkJCT4KLQkJ
CTwvRmlsZT4KLQkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcV2ViTm90
aWZpY2F0aW9uTWFuYWdlclByb3h5LmgiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHku
bWVzc2FnZXMuaW4iCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXFVJUHJvY2Vzc1xXZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHAiCi0JCQkJPgotCQkJ
PC9GaWxlPgotCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xXZWJOb3Rp
ZmljYXRpb25Qcm92aWRlci5oIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCiAJCQkJUmVs
YXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eS5j
cHAiCiAJCQkJPgogCQkJPC9GaWxlPgpAQCAtMzgxMCw2ICszNzkwLDU0IEBACiAJCQkJCTwvRmls
ZT4KIAkJCQk8L0ZpbHRlcj4KIAkJCTwvRmlsdGVyPgorCQkJPEZpbHRlcgorCQkJCU5hbWU9Ik5v
dGlmaWNhdGlvbnMgKFVzZXIpIgorCQkJCT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXFVJUHJvY2Vzc1xOb3RpZmljYXRpb25zXE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
LmNwcCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXFVJUHJvY2Vzc1xOb3RpZmljYXRpb25zXE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
LmgiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIu
LlxVSVByb2Nlc3NcTm90aWZpY2F0aW9uc1xOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eS5jcHAiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcTm90aWZpY2F0aW9uc1xOb3RpZmljYXRpb25QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxl
CisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXE5vdGlmaWNhdGlvbnNcV2ViTm90aWZp
Y2F0aW9uLmNwcCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xOb3RpZmljYXRpb25zXFdlYk5vdGlmaWNhdGlvbi5oIgorCQkJ
CQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9j
ZXNzXE5vdGlmaWNhdGlvbnNcV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcCIKKwkJCQkJ
PgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vz
c1xOb3RpZmljYXRpb25zXFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oIgorCQkJCQk+CisJ
CQkJPC9GaWxlPgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXE5v
dGlmaWNhdGlvbnNcV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIgorCQkJ
CQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9j
ZXNzXE5vdGlmaWNhdGlvbnNcV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwIgorCQkJCQk+CisJ
CQkJPC9GaWxlPgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXE5v
dGlmaWNhdGlvbnNcV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuaCIKKwkJCQkJPgorCQkJCTwvRmls
ZT4KKwkJCTwvRmlsdGVyPgogCQk8L0ZpbHRlcj4KIAkJPEZpbHRlcgogCQkJTmFtZT0iUGxhdGZv
cm0iCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNvbW1vbi52c3Byb3Bz
IGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDb21tb24udnNwcm9wcwppbmRleCBjYzE0YWZk
ZjcyZjJlZmVlNTc3ZTRiODk2YTQ1MTNkZWJiMmM4ODA3Li44MWQzNGQ5MDdjODcwYTA3NGFjYTk1
ZDI0OGVkNmJkNjM4NGMyODlmIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0
MkNvbW1vbi52c3Byb3BzCisrKyBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ29tbW9uLnZz
cHJvcHMKQEAgLTYsNyArNiw3IEBACiAJPgogCTxUb29sCiAJCU5hbWU9IlZDQ0xDb21waWxlclRv
b2wiCi0JCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9IiZxdW90OyQoUHJvamVjdERpcikm
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4u
XFBsYXRmb3JtJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cUGxhdGZvcm1cY2cmcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxQbGF0Zm9ybVxDb3JlSVBDJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcilcLi5cUGx1Z2luUHJvY2VzcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNo
YXJlZCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFx3aW4mcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcY2YmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxT
aGFyZWRcQVBJXGMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcQVBJXGNcY2Ym
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcQVBJXGNcd2luJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXENvcmVJUENTdXBwb3J0JnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcilcLi5cU2hhcmVkXFBsdWdpbnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxT
aGFyZWRcUGx1Z2luc1xOZXRzY2FwZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJv
Y2VzcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xBUElcQyZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xBUElcQ1x3aW4mcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcQVBJXGNwcCZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
XC4uXFVJUHJvY2Vzc1xBUElcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9j
ZXNzXEF1dGhlbnRpY2F0aW9uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNz
XERvd25sb2FkcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xMYXVuY2hl
ciZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xQbHVnaW5zJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpXC4uXFdlYlByb2Nlc3MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNz
XFdlYkNvcmVTdXBwb3J0JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xX
ZWJDb3JlU3VwcG9ydFx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNz
XFdlYlBhZ2UmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFdlYlBhZ2Vc
d2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xJY29uRGF0YWJhc2Um
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEluamVjdGVkQnVuZGxlJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xJbmplY3RlZEJ1bmRsZVxBUElc
YyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcSW5qZWN0ZWRCdW5kbGVc
RE9NJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xJbmplY3RlZEJ1bmRs
ZVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFBsdWdpbnMmcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFBsdWdpbnNcTmV0c2NhcGUmcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXHdpbiZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpXC4uXFdlYlByb2Nlc3NcQXBwbGljYXRpb25DYWNoZSZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpXC4uXFdlYlByb2Nlc3NcQXV0aGVudGljYXRpb24mcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKVwuLlxXZWJQcm9jZXNzXENvb2tpZXMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwu
LlxXZWJQcm9jZXNzXENvb2tpZXNcY2YmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQ
cm9jZXNzXERvd25sb2FkcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3Nc
RG93bmxvYWRzXGNmJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xGdWxs
U2NyZWVuJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xHZW9sb2NhdGlv
biZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcS2V5VmFsdWVTdG9yYWdl
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xNZWRpYUNhY2hlJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xOb3RpZmljYXRpb25zJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xSZXNvdXJjZUNhY2hlJnF1b3Q7OyZxdW90
OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJj
ZXMmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXEluY2x1ZGUmcXVvdDs7JnF1
b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXEluY2x1ZGVccHJpdmF0ZSZxdW90OzsmcXVvdDsk
KFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVkZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmll
c0RpcilcSW5jbHVkZVxwcml2YXRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJ
bmNsdWRlXHB0aHJlYWRzJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxJbmNs
dWRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxJ
bmNsdWRlXHByaXZhdGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJp
ZXNEaXIpXEluY2x1ZGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJp
ZXNEaXIpXEluY2x1ZGVccHJpdmF0ZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKENvbmZp
Z3VyYXRpb25CdWlsZERpcilcSW5jbHVkZVxXZWJDb3JlXEZvcndhcmRpbmdIZWFkZXJzJnF1b3Q7
OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJbmNsdWRlXFdlYkNvcmVcRm9yd2FyZGluZ0hl
YWRlcnMmcXVvdDsiCisJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9IiZxdW90OyQoUHJv
amVjdERpcikmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLiZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpXC4uXFBsYXRmb3JtJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cUGxhdGZvcm1c
Y2cmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxQbGF0Zm9ybVxDb3JlSVBDJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcilcLi5cUGx1Z2luUHJvY2VzcyZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpXC4uXFNoYXJlZCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFx3aW4mcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcY2YmcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKVwuLlxTaGFyZWRcQVBJXGMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRc
QVBJXGNcY2YmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcQVBJXGNcd2luJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXENvcmVJUENTdXBwb3J0JnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXFBsdWdpbnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKVwuLlxTaGFyZWRcUGx1Z2luc1xOZXRzY2FwZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
XC4uXFVJUHJvY2VzcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xBUElc
QyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xBUElcQ1x3aW4mcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcQVBJXGNwcCZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpXC4uXFVJUHJvY2Vzc1xBUElcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilc
Li5cVUlQcm9jZXNzXEF1dGhlbnRpY2F0aW9uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5c
VUlQcm9jZXNzXERvd25sb2FkcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vz
c1xMYXVuY2hlciZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xOb3RpZmlj
YXRpb25zJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXFBsdWdpbnMmcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3Ncd2luJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcilcLi5cV2ViUHJvY2VzcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlBy
b2Nlc3NcV2ViQ29yZVN1cHBvcnQmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9j
ZXNzXFdlYkNvcmVTdXBwb3J0XHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlBy
b2Nlc3NcV2ViUGFnZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcV2Vi
UGFnZVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEljb25EYXRh
YmFzZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcSW5qZWN0ZWRCdW5k
bGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEluamVjdGVkQnVuZGxl
XEFQSVxjJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xJbmplY3RlZEJ1
bmRsZVxET00mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEluamVjdGVk
QnVuZGxlXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcUGx1Z2lu
cyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcUGx1Z2luc1xOZXRzY2Fw
ZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3Ncd2luJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xBcHBsaWNhdGlvbkNhY2hlJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xBdXRoZW50aWNhdGlvbiZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcQ29va2llcyZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpXC4uXFdlYlByb2Nlc3NcQ29va2llc1xjZiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4u
XFdlYlByb2Nlc3NcRG93bmxvYWRzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJv
Y2Vzc1xEb3dubG9hZHNcY2YmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNz
XEZ1bGxTY3JlZW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEdlb2xv
Y2F0aW9uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xLZXlWYWx1ZVN0
b3JhZ2UmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXE1lZGlhQ2FjaGUm
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXE5vdGlmaWNhdGlvbnMmcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFJlc291cmNlQ2FjaGUmcXVvdDs7
JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVk
U291cmNlcyZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcSW5jbHVkZSZxdW90
OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcSW5jbHVkZVxwcml2YXRlJnF1b3Q7OyZx
dW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJbmNsdWRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGli
cmFyaWVzRGlyKVxJbmNsdWRlXHByaXZhdGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNE
aXIpXEluY2x1ZGVccHRocmVhZHMmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIp
XEluY2x1ZGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGRE
aXIpXEluY2x1ZGVccHJpdmF0ZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKFdlYktpdExp
YnJhcmllc0RpcilcSW5jbHVkZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKFdlYktpdExp
YnJhcmllc0RpcilcSW5jbHVkZVxwcml2YXRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQo
Q29uZmlndXJhdGlvbkJ1aWxkRGlyKVxJbmNsdWRlXFdlYkNvcmVcRm9yd2FyZGluZ0hlYWRlcnMm
cXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVcV2ViQ29yZVxGb3J3YXJk
aW5nSGVhZGVycyZxdW90OyIKIAkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9Il9VU1JETEw7V0VC
S0lUX0VYUE9SVFM7RlJBTUVXT1JLX05BTUU9V2ViS2l0O0JVSUxESU5HX1dFQktJVCIKIAkJVXNl
UHJlY29tcGlsZWRIZWFkZXI9IjIiCiAJCVByZWNvbXBpbGVkSGVhZGVyVGhyb3VnaD0iV2ViS2l0
MlByZWZpeC5oIgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9n
CmluZGV4IGZiMjgxNmUyMjgxOTRkYTc0ZWYzZGU0ZTI0OTMxZjJmZmExYTg0MzMuLjYyZDI3MTAw
M2U5OGQyZDBmYjcxZTE0N2VjZjY4MmJlMDkxMDUyOWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5n
ZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMS0xMi0wNiAg
Sm9uIExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gQWRkIHBlcm1pc3Np
b25zIHN1cHBvcnQgKDczOTYwKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzM5NjAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEwMzU3MDA4PgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBudWxsIGZ1
bmN0aW9uIGl0ZW0gdG8gY29tcGx5IHdpdGggYWRkZWQgY2FsbGJhY2sgdG8gV0tQYWdlVUlDbGll
bnQuCisKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9tYWMvQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIu
bToKKyAgICAgICAgKC1bQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIgYXdha2VGcm9tTmliXSk6Cisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChX
VFI6OlRlc3RDb250cm9sbGVyOjpjcmVhdGVPdGhlclBhZ2UpOgorICAgICAgICAoV1RSOjpUZXN0
Q29udHJvbGxlcjo6aW5pdGlhbGl6ZSk6CisKIDIwMTEtMTItMDYgIEFkYW0gUm9iZW4gIDxhcm9i
ZW5AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBhIHBpZCBwYXJhbWV0ZXIgdG8gQ3Jhc2hMb2dz
LmZpbmRfbmV3ZXN0X2xvZwpkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvbWFjL0Jyb3dz
ZXJXaW5kb3dDb250cm9sbGVyLm0gYi9Ub29scy9NaW5pQnJvd3Nlci9tYWMvQnJvd3NlcldpbmRv
d0NvbnRyb2xsZXIubQppbmRleCBmN2U5YzY5MDEwNjc3ZTRiNDE1NGU2YjcwMGM0MDhlODgwMDU3
YjkyLi40OTkzYWE5OWQ5NTM1YzliODc1ZWQ5MDg4MWU0NmUyMGZiNGNmMTAxIDEwMDY0NAotLS0g
YS9Ub29scy9NaW5pQnJvd3Nlci9tYWMvQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubQorKysgYi9U
b29scy9NaW5pQnJvd3Nlci9tYWMvQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubQpAQCAtNjY3LDYg
KzY2Nyw3IEBAIC0gKHZvaWQpYXdha2VGcm9tTmliCiAgICAgICAgIDAsIC8vIHNob3VsZEludGVy
cnVwdEphdmFTY3JpcHQKICAgICAgICAgY3JlYXRlTmV3UGFnZSwKICAgICAgICAgbW91c2VEaWRN
b3ZlT3ZlckVsZW1lbnQsCisgICAgICAgIDAsIC8vIGRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0CiAgICAgfTsKICAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQoX3dl
YlZpZXcucGFnZVJlZiwgJnVpQ2xpZW50KTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
Q29udHJvbGxlci5jcHAKaW5kZXggY2Y3MTE0MGQxYWJmNWI2MzMyNGVmOTU5NGJlOTI3YjI4NGVj
N2NiOS4uZGU2OGEyOTdlNGI5OTJjNDJiNDljMmI0YTBkMWU5NmYxNjg0NjAyNSAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTIwNCw2ICsyMDQsNyBAQCBX
S1BhZ2VSZWYgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZU90aGVyUGFnZShXS1BhZ2VSZWYgb2xkUGFn
ZSwgV0tVUkxSZXF1ZXN0UmVmLCBXSwogICAgICAgICAwLCAvLyBzaG91bGRJbnRlcnJ1cHRKYXZh
U2NyaXB0CiAgICAgICAgIGNyZWF0ZU90aGVyUGFnZSwKICAgICAgICAgMCwgLy8gbW91c2VEaWRN
b3ZlT3ZlckVsZW1lbnQKKyAgICAgICAgMCwgLy8gZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3QKICAgICB9OwogICAgIFdLUGFnZVNldFBhZ2VVSUNsaWVudChuZXdQ
YWdlLCAmb3RoZXJQYWdlVUlDbGllbnQpOwogCkBAIC0zNTYsNiArMzU3LDcgQEAgdm9pZCBUZXN0
Q29udHJvbGxlcjo6aW5pdGlhbGl6ZShpbnQgYXJnYywgY29uc3QgY2hhciogYXJndltdKQogICAg
ICAgICAwLCAvLyBzaG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0CiAgICAgICAgIGNyZWF0ZU90aGVy
UGFnZSwKICAgICAgICAgMCwgLy8gbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQKKyAgICAgICAgMCwg
Ly8gZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QKICAgICB9Owog
ICAgIFdLUGFnZVNldFBhZ2VVSUNsaWVudChtX21haW5XZWJWaWV3LT5wYWdlKCksICZwYWdlVUlD
bGllbnQpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118226</attachid>
            <date>2011-12-07 10:20:07 -0800</date>
            <delta_ts>2011-12-07 11:05:16 -0800</delta_ts>
            <desc>Patch with GNU build fixes</desc>
            <filename>bug-73960-20111207102136.patch</filename>
            <type>text/plain</type>
            <size>141463</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyMTgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMzA5NWYxYWEyYzA0OTIz
NDM4YzdiMmM5N2QxMDIxMjQ1MmM4ODQwYS4uY2RkM2I5YjgwZGI5YjViZmVhN2MyYjM5NzQyM2Zi
MzhiMTQ0Nzc5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzNyBAQAorMjAxMS0xMi0wNiAgSm9u
IExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gQWRkIHBlcm1pc3Npb25z
IHN1cHBvcnQgKDczOTYwKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NzM5NjAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEwMzU3MDA4PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRGVyaXZlZFNvdXJj
ZXMubWFrZTogTW92ZWQgbm90aWZpY2F0aW9uIGZpbGVzIHRvIGl0cyBvd24gZGlyZWN0b3J5LiBO
ZWVkIHRvIGFkZCB0aGF0IHBhdGguCisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOiBOZXcgaGVhZGVyIGFuZCBpbXBsIGZpbGVzLgorICAgICAgICAqIFRhcmdldC5w
cmk6IERpdHRvLgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOiBEaXR0by4KKyAgICAgICAgKiB3
aW4vV2ViS2l0Mi52Y3Byb2o6IERpdHRvLgorICAgICAgICAqIHdpbi9XZWJLaXQyQ29tbW9uLnZz
cHJvcHM6IEFkZCBwYXRoIHRvIE5vdGlmaWNhdGlvbnMgZGlyZWN0b3J5LgorCisgICAgICAgIElt
cGxlbWVudCBwZXJtaXNzaW9uIGZ1bmN0aW9ucywgd2hpY2ggZ28gdGhyb3VnaCBwZXJtaXNzaW9u
IHJlcXVlc3QgbWFuYWdlci4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0
aW9uQ2xpZW50OjpyZXF1ZXN0UGVybWlzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlm
aWNhdGlvbkNsaWVudDo6Y2FuY2VsUmVxdWVzdHNGb3JQZXJtaXNzaW9uKToKKyAgICAgICAgKFdl
YktpdDo6V2ViTm90aWZpY2F0aW9uQ2xpZW50OjpjaGVja1Blcm1pc3Npb24pOgorCisgICAgICAg
IE5ldyBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIgdG8gbWFrZSBhbmQgY2Fu
Y2VsIHBlcm1pc3Npb24gcmVxdWVzdHMsIGFuZCB0byByZXRyaWV2ZSBjdXJyZW50CisgICAgICAg
IHBvbGljeS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6
Z2VuZXJhdGVSZXF1ZXN0SUQpOgorICAgICAgICAoV2ViS2l0OjpOb3RpZmljYXRpb25QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyOjp+Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKToKKyAgICAgICAg
KFdlYktpdDo6Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpzdGFydFJlcXVl
c3QpOiBLZWVwIHRyYWNrIG9mIHRoZSBwcm92aWRlZCBjYWxsYmFjayBvbmNlCisgICAgICAgIHBv
bGljeSBkZWNpc2lvbiBpcyBtYWRlLgorICAgICAgICAoV2ViS2l0OjpOb3RpZmljYXRpb25QZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXI6OmNhbmNlbFJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnBlcm1pc3Npb25MZXZlbCk6IFJl
dHJpZXZlIGxldmVsIHRocm91Z2ggYSBzeW5jaHJvbm91cworICAgICAgICBtZXNzYWdlIHRvIHRo
ZSBwcm94eS4KKyAgICAgICAgKFdlYktpdDo6Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyOjpkaWRSZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKTogSW52b2tl
IHRoZSBjYWxsYmFjay4KKyAgICAgICAgKiBXZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0
Ojppc1JlcXVlc3RJRFZhbGlkKTogTWFrZSBzdXJlIGFueSBwcm92aWRlZCByZXF1ZXN0IElEcyBh
cmUgdmFsaWQuCisKKyAgICAgICAgQWRkZWQgbmV3IE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0IGNsYXNzLgorCisgICAgICAgICogVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0
aW9uUGVybWlzc2lvblJlcXVlc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6Tm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0OjpOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCk6
CisgICAgICAgIChXZWJLaXQ6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0OjphbGxvdyk6
IE5vdGlmeSBtYW5hZ2VyIG9mIGRlY2lzaW9uLgorICAgICAgICAoV2ViS2l0OjpOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdDo6ZGVueSk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDo6aW52YWxpZGF0ZSk6IERpc2Fzc29jaWF0ZSB3aXRo
IG1hbmFnZXIuCisgICAgICAgIChXZWJLaXQ6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
Ojp0eXBlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdC5oOiBBZGRlZC4KKworICAgICAgICBXS0FQSSBzdXBwb3J0IGZvciBO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDoKKworICAgICAgICAqIFNoYXJlZC9BUEkvYy9X
S0Jhc2UuaDoKKyAgICAgICAgKiBTaGFyZWQvQVBJT2JqZWN0Lmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9DL1dLQVBJQ2FzdC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS05vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcDogQWRkZWQuCisgICAgICAgIChXS05vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0R2V0VHlwZUlEKToKKyAgICAgICAgKFdLTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RBbGxvdyk6CisgICAgICAgIChXS05vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0RGVueSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3QuaDogQWRkZWQuCisKKyAgICAgICAgT3RoZXIgYWRkaXRpb25zIHRv
IFdLIEFQSToKKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNhdGlvblByb3Zp
ZGVyLmg6IEFkZGVkIG5ldyBjYWxsYmFjayBmb3IgV0tOb3RpZmljYXRpb25Qcm92aWRlcnMsIHRv
IHJldHVybiBwb2xpY3kKKyAgICAgICAgZm9yIGEgZ2l2ZW4gc2VjdXJpdHkgb3JpZ2luLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaDogQWRkZWQgbmV3IGNhbGxiYWNrIHRvIFdL
UGFnZVVJQ2xpZW50IHRvIGFzayB1c2VyIHRvIGRlY2lkZSBvbiBwb2xpY3kuCisKKyAgICAgICAg
TmV3IE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5IHRvIGNyZWF0ZSBy
ZXF1ZXN0cy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJL
aXQ6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6Ok5vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjppbnZhbGlkYXRlUmVxdWVzdHMp
OgorICAgICAgICAoV2ViS2l0OjpOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eTo6Y3JlYXRlUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6Ok5vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpkaWRSZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lv
bkRlY2lzaW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oOiBBZGRlZC4KKworICAgICAgICBBZGRl
ZCBuZXcgbWVzc2FnZSB0byBub3RpZmljYXRpb24gbWFuYWdlcjogTm90aWZpY2F0aW9uUGVybWlz
c2lvbkxldmVsLCB0byByZXRyaWV2ZSBwb2xpY3kuIFRoZSBjdXJyZW50CisgICAgICAgIEpTIEFQ
SSByZXRyaWV2ZXMgdGhlIHBlcm1pc3Npb24gc3luY2hyb25vdXNseSwgc28gdGhlIG1lc3NhZ2Ug
bmVlZHMgdG8gYmUgc2VudCBzeW5jaHJvbm91c2x5IGFsc28uCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW46
IE1vdmVkIGZyb20gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5vdGlmaWNhdGlvbk1hbmFn
ZXJQcm94eS5tZXNzYWdlcy5pbi4KKyAgICAgICAgKiBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9X
ZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHA6IE1vdmVkIGZyb20gU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcC4KKyAgICAgICAgKFdlYktpdDo6V2Vi
Tm90aWZpY2F0aW9uUHJvdmlkZXI6OnBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25BdE9y
aWdpbik6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlm
aWNhdGlvblByb3ZpZGVyLmg6IE1vdmVkIGZyb20gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
Yk5vdGlmaWNhdGlvblByb3ZpZGVyLmguCisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZVN5
bmNNZXNzYWdlKTogQm9pbGVycGxhdGUgdG8gZm9yd2FyZCBtZXNzYWdlcyB0byBub3RpZmljYXRp
b24gbWFuYWdlci4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlm
aWNhdGlvbk1hbmFnZXJQcm94eS5jcHA6IE1vdmVkIGZyb20gU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAuCisgICAgICAgIChXZWJLaXQ6Oldl
Yk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Tm90aWZpY2F0aW9uTWFuYWdlclByb3h5OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6On5XZWJOb3RpZmlj
YXRpb25NYW5hZ2VyUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5h
Z2VyUHJveHk6OmludmFsaWRhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25N
YW5hZ2VyUHJveHk6OmluaXRpYWxpemVQcm92aWRlcik6CisgICAgICAgIChXZWJLaXQ6OldlYk5v
dGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6c2hvdyk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6Y2FuY2VsKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5OjpkaWREZXN0cm95Tm90
aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5
Ojpub3RpZmljYXRpb25QZXJtaXNzaW9uTGV2ZWwpOiBSZXRyaWV2ZSB0aGUgcG9saWN5IGZyb20g
dGhlIHByb3ZpZGVyLgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJv
eHk6OnByb3ZpZGVyRGlkU2hvd05vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYk5v
dGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6cHJvdmlkZXJEaWRDbGlja05vdGlmaWNhdGlvbik6Cisg
ICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6cHJvdmlkZXJEaWRD
bG9zZU5vdGlmaWNhdGlvbnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dl
Yk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oOiBNb3ZlZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaC4KKyAgICAgICAgKFdlYktpdDo6
V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5OjpjbGVhckNvbnRleHQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OnR5cGUpOgorCisgICAgICAgIEFkZGVk
IE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5IHRvIFdlYlBhZ2VQcm94
eSwgdG8gYWxsb3cgYSByZXF1ZXN0IGZvciBwZXJtaXNzaW9uIHRvCisgICAgICAgIGdvIHRocm91
Z2ggdG8gdGhlIFVJIGNsaWVudC4gQWRkZWQgbmV3IG1lc3NhZ2UgdG8gV2ViUGFnZVByb3h5LCBS
ZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OldlYlBhZ2VQcm94
eSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y2xvc2UpOiBJbnZhbGlkYXRlIHBl
bmRpbmcgcmVxdWVzdHMuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cHJvY2Vzc0Rp
ZENyYXNoKTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVzdE5v
dGlmaWNhdGlvblBlcm1pc3Npb24pOiBGb3J3YXJkIHJlcXVlc3QgdG8gVUkgY2xpZW50LgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlVJQ2xpZW50
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVUlDbGllbnQ6OmRlY2lkZVBvbGljeUZvck5vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViVUlDbGll
bnQuaDoKKworICAgICAgICBBZGRlZCBuZXcgbWVzc2FnZSBEaWRSZWNlaXZlTm90aWZpY2F0aW9u
UGVybWlzc2lvbkRlY2lzaW9uLiBUaGUgV2ViUGFnZSBmb3J3YXJkcyB0aGUgbWVzc2FnZSB0byB0
aGUKKyAgICAgICAgcGVybWlzc2lvbiByZXF1ZXN0IG1hbmFnZXIuCisKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjogQWRkZWQgbmV3IG1lc3NhZ2UgRGlk
UmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25EZWNpc2lvbgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6bm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKTogQ3JlYXRlIG1hbmFnZXIgb24gcmVxdWVz
dC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkUmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1p
c3Npb25EZWNpc2lvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoK
KworICAgICAgICBNb3ZpbmcgZmlsZXMgdG8gTm90aWZpY2F0aW9ucy8gc3ViZGlyZWN0b3J5Lgor
CisgICAgICAgICogVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uLmNwcDog
TW92ZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9uLmNwcC4K
KyAgICAgICAgKiBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb24uaDogTW92
ZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9uLmguCisKIDIw
MTEtMTItMDYgIEFsZXhhbmRlciBGw6Zyw7h5ICA8YWxleGFuZGVyLmZhZXJveUBub2tpYS5jb20+
CiAKICAgICAgICAgW1F0XSBGaXggYXNzZXJ0aW9uIGluIFF0Vmlld3BvcnRJbnRlcmFjdGlvbkVu
Z2luZS5jcHA6NDY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5t
YWtlIGIvU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCBhMzAwZjg0YmQ5
YmQ5M2U1ZWUyNzYzODEwODA2MTE1MzI1ZDFhMjg1Li5lMjI3N2U0NWM2ZmVkOTkzZTBhZTUyNjhl
NDUyMDY5NTM5ODFiNDdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNl
cy5tYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTQwLDYg
KzQwLDcgQEAgVlBBVEggPSBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzIFwKICAgICAkKFdl
YktpdDIpL1VJUHJvY2VzcyBcCiAgICAgJChXZWJLaXQyKS9VSVByb2Nlc3MvRG93bmxvYWRzIFwK
KyAgICAkKFdlYktpdDIpL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zIFwKICAgICAkKFdlYktpdDIp
L1VJUHJvY2Vzcy9QbHVnaW5zIFwKICMKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvR05V
bWFrZWZpbGUuYW0gYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5hbQppbmRleCBjODgxNWYw
ZjdjOTFjNWUwYWY3ZTZiZjUzMTMyZGRmMGIwZGNkNzUyLi44NzE3MmI2ZTI1MGZkZmVlNjRhZTU1
NWY0ZDg4ZTc1YTFjNjQ0NDkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmls
ZS5hbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5hbQpAQCAtNjIsNiArNjIsMTAg
QEAgbGlid2Via2l0Mmd0a19AV0VCS0lUR1RLX0FQSV9NQUpPUl9WRVJTSU9OQF9AV0VCS0lUR1RL
X0FQSV9NSU5PUl9WRVJTSU9OQF9sYV9IRUEKIAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9X
S05vdGlmaWNhdGlvblByb3ZpZGVyLmggXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dL
TmF0aXZlRXZlbnQuaCBcCiAJJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0aW9u
RGF0YS5oIFwKKwkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNhdGlvbi5oIFwK
KwkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNhdGlvbk1hbmFnZXIuaCBcCisJ
JChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0MvV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVz
dC5oIFwKKwkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNhdGlvblByb3ZpZGVy
LmggXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLT3BlblBhbmVsUGFyYW1ldGVycy5o
IFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9XS09wZW5QYW5lbFJlc3VsdExpc3RlbmVy
LmggXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUdyb3VwLmggXApAQCAtMjcz
LDYgKzI3NywxMyBAQCBsaWJ3ZWJraXQyZ3RrX0BXRUJLSVRHVEtfQVBJX01BSk9SX1ZFUlNJT05A
X0BXRUJLSVRHVEtfQVBJX01JTk9SX1ZFUlNJT05AX2xhX1NPVQogCVNvdXJjZS9XZWJLaXQyL1No
YXJlZC9BUEkvYy9XS011dGFibGVBcnJheS5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJ
L2MvV0tNdXRhYmxlRGljdGlvbmFyeS5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkv
Yy9XS011dGFibGVEaWN0aW9uYXJ5LmggXAorCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9X
S05vdGlmaWNhdGlvbi5jcHAgXAorCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS05vdGlm
aWNhdGlvbi5oIFwKKwlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tOb3RpZmljYXRpb25N
YW5hZ2VyLmNwcCBcCisJU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLTm90aWZpY2F0aW9u
TWFuYWdlci5oIFwKKwlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdC5jcHAgXAorCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS05v
dGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmggXAorCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9B
UEkvYy9XS05vdGlmaWNhdGlvblByb3ZpZGVyLmggXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9B
UEkvYy9XS051bWJlci5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS051bWJl
ci5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tQYWdlTG9hZFR5cGVzLmggXApA
QCAtNTc5LDYgKzU5MCwxNiBAQCBsaWJ3ZWJraXQyZ3RrX0BXRUJLSVRHVEtfQVBJX01BSk9SX1ZF
UlNJT05AX0BXRUJLSVRHVEtfQVBJX01JTk9SX1ZFUlNJT05AX2xhX1NPVQogCVNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaCBcCiAJU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0xhdW5jaGVyL1RocmVhZExhdW5jaGVyLmNwcCBcCiAJU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0xhdW5jaGVyL1RocmVhZExhdW5jaGVyLmggXAorCVNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNw
cCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3QuaCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNh
dGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwIFwKKwlT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90
aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb24uY3BwIFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb24uaCBcCisJU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcCBcCisJ
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFu
YWdlclByb3h5LmggXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dl
Yk5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05v
dGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuaCBcCiAJU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luSW5mb1N0b3JlLmNwcCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luSW5mb1N0b3JlLmggXApAQCAtNjU3LDEyICs2NzgsNiBAQCBsaWJ3ZWJraXQyZ3Rr
X0BXRUJLSVRHVEtfQVBJX01BSk9SX1ZFUlNJT05AX0BXRUJLSVRHVEtfQVBJX01JTk9SX1ZFUlNJ
T05AX2xhX1NPVQogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJLZXlWYWx1ZVN0b3JhZ2VN
YW5hZ2VyUHJveHkuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk1lZGlhQ2FjaGVN
YW5hZ2VyUHJveHkuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTWVkaWFDYWNo
ZU1hbmFnZXJQcm94eS5oIFwKLQlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTm90aWZpY2F0
aW9uLmNwcCBcCi0JU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5vdGlmaWNhdGlvbi5oIFwK
LQlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNw
cCBcCi0JU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94
eS5oIFwKLQlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIu
Y3BwIFwKLQlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIu
aCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkxvYWRlckNsaWVudC5jcHAgXAogCVNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJMb2FkZXJDbGllbnQuaCBcCiAJU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYk5hdmlnYXRpb25EYXRhLmNwcCBcCkBAIC03OTMsNiArODA4LDggQEAg
bGlid2Via2l0Mmd0a19AV0VCS0lUR1RLX0FQSV9NQUpPUl9WRVJTSU9OQF9AV0VCS0lUR1RLX0FQ
SV9NSU5PUl9WRVJTSU9OQF9sYV9TT1UKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0tleVZh
bHVlU3RvcmFnZS9XZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmggXAogCVNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvTWVkaWFDYWNoZS9XZWJNZWRpYUNhY2hlTWFuYWdlci5jcHAgXAogCVNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFDYWNoZS9XZWJNZWRpYUNhY2hlTWFuYWdlci5oIFwK
KwlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcCBcCisJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9O
b3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIFwKIAlT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFu
YWdlci5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJO
b3RpZmljYXRpb25NYW5hZ2VyLmggXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9KU05QTWV0aG9kLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQVBJL2MvV0tCYXNlLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNl
LmgKaW5kZXggNmNmNGYwZjAzYjcwYTg3NjUyMGJiZTI2N2M1ZDhiODIyMmM1OTE5YS4uYWRiY2U2
ZDY4NGI2NjhkZDAxMDM5YTJmNDgxYWZlZmM0YjY0ZTllYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9B
UEkvYy9XS0Jhc2UuaApAQCAtOTcsNiArOTcsNyBAQCB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFx
dWVXS01lZGlhQ2FjaGVNYW5hZ2VyKiBXS01lZGlhQ2FjaGVNYW5hZ2VyUmVmOwogdHlwZWRlZiBj
b25zdCBzdHJ1Y3QgT3BhcXVlV0tOYXZpZ2F0aW9uRGF0YSogV0tOYXZpZ2F0aW9uRGF0YVJlZjsK
IHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLTm90aWZpY2F0aW9uKiBXS05vdGlmaWNhdGlv
blJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLTm90aWZpY2F0aW9uTWFuYWdlciog
V0tOb3RpZmljYXRpb25NYW5hZ2VyUmVmOwordHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCogV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdFJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLTm90aWZpY2F0aW9uUHJvdmlk
ZXIqIFdLTm90aWZpY2F0aW9uUHJvdmlkZXJSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFx
dWVXS09wZW5QYW5lbFBhcmFtZXRlcnMqIFdLT3BlblBhbmVsUGFyYW1ldGVyc1JlZjsKIHR5cGVk
ZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIqIFdLT3BlblBh
bmVsUmVzdWx0TGlzdGVuZXJSZWY7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
QVBJT2JqZWN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgKaW5kZXggZGVj
YmRiOTdhN2M2OTEyMzAxOTRiMmMxNjliMjUxNjMwN2Q3MjU5Ny4uMjljNzI2ZDA3ZTUzYzlkYWM3
ZmNjMWRjOTQ5ODhlZjAyNjRmZDIyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L0FQSU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaApAQCAt
OTEsNiArOTEsNyBAQCBwdWJsaWM6CiAgICAgICAgIFR5cGVOYXZpZ2F0aW9uRGF0YSwKICAgICAg
ICAgVHlwZU5vdGlmaWNhdGlvbiwKICAgICAgICAgVHlwZU5vdGlmaWNhdGlvbk1hbmFnZXIsCisg
ICAgICAgIFR5cGVOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCwKICAgICAgICAgVHlwZU9w
ZW5QYW5lbFBhcmFtZXRlcnMsCiAgICAgICAgIFR5cGVPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lciwK
ICAgICAgICAgVHlwZVBhZ2UsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJp
IGIvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQppbmRleCA5NzY5MTRlNTliOGQ0NTE1YmU2NjIw
ZjllMGI0ZTYyNGM2M2ViYmIyLi5lMTg4NTkxOWIwZWI0MzFiMDYzMjBhODdkODA5OTNiNjA5NzNk
MjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1RhcmdldC5wcmkKQEAgLTE1Niw2ICsxNTYsNyBAQCBIRUFERVJTICs9IFwKICAgICBV
SVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0aW9uRGF0YS5oIFwKICAgICBVSVByb2Nlc3MvQVBJL0Mv
V0tOb3RpZmljYXRpb24uaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9uTWFu
YWdlci5oIFwKKyAgICBVSVByb2Nlc3MvQVBJL0MvV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdC5oIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tOb3RpZmljYXRpb25Qcm92aWRlci5oIFwK
ICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmggXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1Bh
Z2VHcm91cC5oIFwKQEAgLTE5Myw2ICsxOTQsMTEgQEAgSEVBREVSUyArPSBcCiAgICAgVUlQcm9j
ZXNzL0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RQcm94eS5oIFwKICAgICBVSVByb2Nlc3Mv
TGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmggXAogICAgIFVJUHJvY2Vzcy9MYXVuY2hlci9UaHJl
YWRMYXVuY2hlci5oIFwKKyAgICBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdC5oIFwKKyAgICBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmlj
YXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIFwKKyAgICBVSVByb2Nlc3MvTm90
aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb24uaCBcCisgICAgVUlQcm9jZXNzL05vdGlmaWNhdGlv
bnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmggXAorICAgIFVJUHJvY2Vzcy9Ob3RpZmlj
YXRpb25zL1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmggXAogICAgIFVJUHJvY2Vzcy9QYWdlQ2xp
ZW50LmggXAogICAgIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbkluZm9TdG9yZS5oIFwKICAgICBV
SVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuaCBcCkBAIC0yMzEsOSArMjM3LDYg
QEAgSEVBREVSUyArPSBcCiAgICAgVUlQcm9jZXNzL1dlYkxvYWRlckNsaWVudC5oIFwKICAgICBV
SVByb2Nlc3MvV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eS5oIFwKICAgICBVSVByb2Nlc3MvV2Vi
TmF2aWdhdGlvbkRhdGEuaCBcCi0gICAgVUlQcm9jZXNzL1dlYk5vdGlmaWNhdGlvbi5oIFwKLSAg
ICBVSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmggXAotICAgIFVJUHJvY2Vz
cy9XZWJOb3RpZmljYXRpb25Qcm92aWRlci5oIFwKICAgICBVSVByb2Nlc3MvV2ViT3BlblBhbmVs
UmVzdWx0TGlzdGVuZXJQcm94eS5oIFwKICAgICBVSVByb2Nlc3MvV2ViUGFnZUNvbnRleHRNZW51
Q2xpZW50LmggXAogICAgIFVJUHJvY2Vzcy9XZWJQYWdlR3JvdXAuaCBcCkBAIC0zMDMsNiArMzA2
LDcgQEAgSEVBREVSUyArPSBcCiAgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZVVzZXJNZXNzYWdlQ29kZXJzLmggXAogICAgIFdlYlByb2Nlc3MvS2V5VmFsdWVTdG9y
YWdlL1dlYktleVZhbHVlU3RvcmFnZU1hbmFnZXIuaCBcCiAgICAgV2ViUHJvY2Vzcy9NZWRpYUNh
Y2hlL1dlYk1lZGlhQ2FjaGVNYW5hZ2VyLmggXAorICAgIFdlYlByb2Nlc3MvTm90aWZpY2F0aW9u
cy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCBcCiAgICAgV2ViUHJvY2Vz
cy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuaCBcCiAgICAgV2ViUHJvY2Vz
cy9SZXNvdXJjZUNhY2hlL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyLmggXAogICAgIFdlYlByb2Nl
c3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QTWV0aG9kLmggXApAQCAtNDc0LDYgKzQ3OCw3IEBAIFNP
VVJDRVMgKz0gXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0luc3BlY3Rvci5jcHAgXAogICAgIFVJ
UHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNhdGlvbi5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9X
S05vdGlmaWNhdGlvbk1hbmFnZXIuY3BwIFwKKyAgICBVSVByb2Nlc3MvQVBJL0MvV0tOb3RpZmlj
YXRpb25QZXJtaXNzaW9uUmVxdWVzdC5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS09wZW5Q
YW5lbFBhcmFtZXRlcnMuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tPcGVuUGFuZWxSZXN1
bHRMaXN0ZW5lci5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS05hdmlnYXRpb25EYXRhLmNw
cCBcCkBAIC01MDcsNiArNTEyLDExIEBAIFNPVVJDRVMgKz0gXAogICAgIFVJUHJvY2Vzcy9MYXVu
Y2hlci9UaHJlYWRMYXVuY2hlci5jcHAgXAogICAgIFVJUHJvY2Vzcy9MYXVuY2hlci9xdC9Qcm9j
ZXNzTGF1bmNoZXJRdC5jcHAgXAogICAgIFVJUHJvY2Vzcy9MYXVuY2hlci9xdC9UaHJlYWRMYXVu
Y2hlclF0LmNwcCBcCisgICAgVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3QuY3BwIFwKKyAgICBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmlj
YXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgXAorICAgIFVJUHJvY2Vzcy9O
b3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbi5jcHAgXAorICAgIFVJUHJvY2Vzcy9Ob3RpZmlj
YXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAgXAorICAgIFVJUHJvY2Vzcy9O
b3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcCBcCiAgICAgVUlQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luSW5mb1N0b3JlLmNwcCBcCiAgICAgVUlQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luUHJvY2Vzc1Byb3h5LmNwcCBcCiAgICAgVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vz
c01hbmFnZXIuY3BwIFwKQEAgLTU0NSw5ICs1NTUsNiBAQCBTT1VSQ0VTICs9IFwKICAgICBVSVBy
b2Nlc3MvV2ViTG9hZGVyQ2xpZW50LmNwcCBcCiAgICAgVUlQcm9jZXNzL1dlYk1lZGlhQ2FjaGVN
YW5hZ2VyUHJveHkuY3BwIFwKICAgICBVSVByb2Nlc3MvV2ViTmF2aWdhdGlvbkRhdGEuY3BwIFwK
LSAgICBVSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9uLmNwcCBcCi0gICAgVUlQcm9jZXNzL1dlYk5v
dGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAgXAotICAgIFVJUHJvY2Vzcy9XZWJOb3RpZmljYXRp
b25Qcm92aWRlci5jcHAgXAogICAgIFVJUHJvY2Vzcy9XZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5l
clByb3h5LmNwcCBcCiAgICAgVUlQcm9jZXNzL1dlYlBhZ2VDb250ZXh0TWVudUNsaWVudC5jcHAg
XAogICAgIFVJUHJvY2Vzcy9XZWJQYWdlR3JvdXAuY3BwIFwKQEAgLTYzMyw2ICs2NDAsNyBAQCBT
T1VSQ0VTICs9IFwKICAgICBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL3F0L0luamVjdGVkQnVu
ZGxlUXQuY3BwIFwKICAgICBXZWJQcm9jZXNzL0tleVZhbHVlU3RvcmFnZS9XZWJLZXlWYWx1ZVN0
b3JhZ2VNYW5hZ2VyLmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9NZWRpYUNhY2hlL1dlYk1lZGlhQ2Fj
aGVNYW5hZ2VyLmNwcCBcCisgICAgV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAgXAogICAgIFdlYlByb2Nlc3MvTm90aWZpY2F0
aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9SZXNvdXJj
ZUNhY2hlL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyLmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9QbHVn
aW5zL05ldHNjYXBlL0pTTlBNZXRob2QuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS0FQSUNhc3QuaAppbmRleCA5Nzc3YzFhY2FmNDhjOTBmZjQ0ZTNmOTVjMmJjNWFkYTJj
MzViMmQ4Li4wZTcxNzVhNDI4Zjc4MDgyMGM4OTcxZGUzOWM5NjUxMGFhYWZhYzkwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCkBAIC01Miw2ICs1Miw3IEBA
IGNsYXNzIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk7CiBjbGFzcyBBdXRoZW50aWNhdGlv
bkRlY2lzaW9uTGlzdGVuZXI7CiBjbGFzcyBEb3dubG9hZFByb3h5OwogY2xhc3MgR2VvbG9jYXRp
b25QZXJtaXNzaW9uUmVxdWVzdFByb3h5OworY2xhc3MgTm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3Q7CiBjbGFzcyBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5OwogY2xhc3MgV2Vi
QmFja0ZvcndhcmRMaXN0OwogY2xhc3MgV2ViQmFja0ZvcndhcmRMaXN0SXRlbTsKQEAgLTEwOCw2
ICsxMDksNyBAQCBXS19BRERfQVBJX01BUFBJTkcoV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUmVm
LCBXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveHkpCiBXS19BRERfQVBJX01BUFBJTkcoV0tN
ZWRpYUNhY2hlTWFuYWdlclJlZiwgV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eSkKIFdLX0FERF9B
UElfTUFQUElORyhXS05hdmlnYXRpb25EYXRhUmVmLCBXZWJOYXZpZ2F0aW9uRGF0YSkKIFdLX0FE
RF9BUElfTUFQUElORyhXS05vdGlmaWNhdGlvbk1hbmFnZXJSZWYsIFdlYk5vdGlmaWNhdGlvbk1h
bmFnZXJQcm94eSkKK1dLX0FERF9BUElfTUFQUElORyhXS05vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0UmVmLCBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCkKIFdLX0FERF9BUElfTUFQ
UElORyhXS05vdGlmaWNhdGlvblByb3ZpZGVyUmVmLCBXZWJOb3RpZmljYXRpb25Qcm92aWRlcikK
IFdLX0FERF9BUElfTUFQUElORyhXS05vdGlmaWNhdGlvblJlZiwgV2ViTm90aWZpY2F0aW9uKQog
V0tfQUREX0FQSV9NQVBQSU5HKFdLT3BlblBhbmVsUGFyYW1ldGVyc1JlZiwgV2ViT3BlblBhbmVs
UGFyYW1ldGVycykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li41OTYzNDhkNzI2ZWRjNDJiMGM3NzA0MGI5OTVjYzg4N2ZlMWU1NGFjCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3QuY3BwCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oIgor
CisjaW5jbHVkZSAiTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaCIKKyNpbmNsdWRlICJX
S0FQSUNhc3QuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworV0tUeXBlSUQgV0tOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdEdldFR5cGVJRCgpCit7CisgICAgcmV0dXJuIHRvQVBJ
KE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0OjpBUElUeXBlKTsKK30KKwordm9pZCBXS05v
dGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0QWxsb3coV0tOb3RpZmljYXRpb25QZXJtaXNzaW9u
UmVxdWVzdFJlZiBub3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCkKK3sKKyAgICByZXR1cm4g
dG9JbXBsKG5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KS0+YWxsb3coKTsKK30KKwordm9p
ZCBXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0RGVueShXS05vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0UmVmIG5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KQoreworICAgIHJl
dHVybiB0b0ltcGwobm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QpLT5kZW55KCk7Cit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xOTQ3YTA2YWFiYWUyOTUx
NWQ1ZDczZDA0MjA0ZDViMzkzYmYxODE3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaApAQCAt
MCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXS05vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0X2gKKyNkZWZpbmUgV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdF9oCisK
KyNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVy
biAiQyIgeworI2VuZGlmCisKK1dLX0VYUE9SVCBXS1R5cGVJRCBXS05vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0R2V0VHlwZUlEKCk7CisKK1dLX0VYUE9SVCB2b2lkIFdLTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RBbGxvdyhXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0UmVm
IG5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KTsKK1dLX0VYUE9SVCB2b2lkIFdLTm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3REZW55KFdLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RSZWYgbm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QpOworCisjaWZkZWYgX19jcGx1c3Bs
dXMKK30KKyNlbmRpZgorCisjZW5kaWYgLy8gV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVz
dF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tOb3RpZmlj
YXRpb25Qcm92aWRlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTm90aWZp
Y2F0aW9uUHJvdmlkZXIuaAppbmRleCA2ZmE2NWJiZTdlYjk0YTZhNThkNGMxZjJkNGY3ZjdiNDYz
YWUwZDI4Li43MDQ4MTNmMWNmOWIxMmY1YzlhOTFmMTcyNzIyNzEwYjg2MjUwNjFkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tOb3RpZmljYXRpb25Qcm92aWRl
ci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNhdGlvblBy
b3ZpZGVyLmgKQEAgLTM1LDE3ICszNSwxOSBAQCBleHRlcm4gIkMiIHsKIHR5cGVkZWYgdm9pZCAo
KldLTm90aWZpY2F0aW9uUHJvdmlkZXJTaG93Q2FsbGJhY2spKFdLTm90aWZpY2F0aW9uUmVmIG5v
dGlmaWNhdGlvbiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS05v
dGlmaWNhdGlvblByb3ZpZGVyQ2FuY2VsQ2FsbGJhY2spKFdLTm90aWZpY2F0aW9uUmVmIG5vdGlm
aWNhdGlvbiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS05vdGlm
aWNhdGlvblByb3ZpZGVyRGlkRGVzdHJveU5vdGlmaWNhdGlvbkNhbGxiYWNrKShXS05vdGlmaWNh
dGlvblJlZiBub3RpZmljYXRpb24sIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwordHlwZWRlZiBp
bnQgKCpXS05vdGlmaWNhdGlvblByb3ZpZGVyUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lv
bkF0T3JpZ2luQ2FsbGJhY2spKFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luLCBjb25zdCB2b2lk
ICpjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLTm90aWZpY2F0aW9uUHJvdmlkZXJBZGRO
b3RpZmljYXRpb25NYW5hZ2VyQ2FsbGJhY2spKFdLTm90aWZpY2F0aW9uTWFuYWdlclJlZiBtYW5h
Z2VyLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLTm90aWZpY2F0
aW9uUHJvdmlkZXJSZW1vdmVOb3RpZmljYXRpb25NYW5hZ2VyQ2FsbGJhY2spKFdLTm90aWZpY2F0
aW9uTWFuYWdlclJlZiBtYW5hZ2VyLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIAogc3RydWN0
IFdLTm90aWZpY2F0aW9uUHJvdmlkZXIgewotICAgIGludCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uOwotICAgIGNvbnN0IHZvaWQq
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGllbnRJbmZv
OwotICAgIFdLTm90aWZpY2F0aW9uUHJvdmlkZXJTaG93Q2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICAgICBzaG93OwotICAgIFdLTm90aWZpY2F0aW9uUHJvdmlkZXJDYW5jZWxDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICBjYW5jZWw7Ci0gICAgV0tOb3RpZmljYXRpb25Qcm92aWRlckRp
ZERlc3Ryb3lOb3RpZmljYXRpb25DYWxsYmFjayAgICAgIGRpZERlc3Ryb3lOb3RpZmljYXRpb247
Ci0gICAgV0tOb3RpZmljYXRpb25Qcm92aWRlckFkZE5vdGlmaWNhdGlvbk1hbmFnZXJDYWxsYmFj
ayAgICAgIGFkZE5vdGlmaWNhdGlvbk1hbmFnZXI7Ci0gICAgV0tOb3RpZmljYXRpb25Qcm92aWRl
clJlbW92ZU5vdGlmaWNhdGlvbk1hbmFnZXJDYWxsYmFjayAgIHJlbW92ZU5vdGlmaWNhdGlvbk1h
bmFnZXI7CisgICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnNpb247CisgICAgY29uc3Qgdm9pZCogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVu
dEluZm87CisgICAgV0tOb3RpZmljYXRpb25Qcm92aWRlclNob3dDYWxsYmFjayAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHNob3c7CisgICAgV0tOb3RpZmljYXRpb25Qcm92aWRl
ckNhbmNlbENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbmNlbDsK
KyAgICBXS05vdGlmaWNhdGlvblByb3ZpZGVyRGlkRGVzdHJveU5vdGlmaWNhdGlvbkNhbGxiYWNr
ICAgICAgICAgICAgICAgICAgZGlkRGVzdHJveU5vdGlmaWNhdGlvbjsKKyAgICBXS05vdGlmaWNh
dGlvblByb3ZpZGVyUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvbkF0T3JpZ2luQ2FsbGJh
Y2sgcG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvbkF0T3JpZ2luOworICAgIFdLTm90aWZp
Y2F0aW9uUHJvdmlkZXJBZGROb3RpZmljYXRpb25NYW5hZ2VyQ2FsbGJhY2sgICAgICAgICAgICAg
ICAgICBhZGROb3RpZmljYXRpb25NYW5hZ2VyOworICAgIFdLTm90aWZpY2F0aW9uUHJvdmlkZXJS
ZW1vdmVOb3RpZmljYXRpb25NYW5hZ2VyQ2FsbGJhY2sgICAgICAgICAgICAgICByZW1vdmVOb3Rp
ZmljYXRpb25NYW5hZ2VyOwogfTsKIHR5cGVkZWYgc3RydWN0IFdLTm90aWZpY2F0aW9uUHJvdmlk
ZXIgV0tOb3RpZmljYXRpb25Qcm92aWRlcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLUGFnZS5oCmluZGV4IGNiNWFkMmYxNTkyMzBiYmEwNjk4MWE0Njg3NTBmNjFiZTAwNDY4YmQu
LjFkZTcwNjI4Yzg4YjFkMGMxZDBiNDVhYzM2N2E1ZTk3MDZkNTE5NWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmgKQEAgLTE5Nyw2ICsxOTcsNyBAQCB0eXBlZGVmIHZv
aWQgKCpXS1BhZ2VEcmF3Rm9vdGVyQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVm
IGZyYW1lLCBXS1JlYwogdHlwZWRlZiB2b2lkICgqV0tQYWdlUHJpbnRGcmFtZUNhbGxiYWNrKShX
S1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7
CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VTYXZlRGF0YVRvRmlsZUluRG93bmxvYWRzRm9sZGVyQ2Fs
bGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBzdWdnZXN0ZWRGaWxlbmFtZSwgV0tT
dHJpbmdSZWYgbWltZVR5cGUsIFdLVVJMUmVmIG9yaWdpbmF0aW5nVVJMLCBXS0RhdGFSZWYgZGF0
YSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiB0eXBlZGVmIGJvb2wgKCpXS1BhZ2VTaG91bGRJ
bnRlcnJ1cHRKYXZhU2NyaXB0Q2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkICpj
bGllbnRJbmZvKTsKK3R5cGVkZWYgdm9pZCAoKldLUGFnZURlY2lkZVBvbGljeUZvck5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0Q2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS1NlY3VyaXR5
T3JpZ2luUmVmIG9yaWdpbiwgV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdFJlZiBwZXJt
aXNzaW9uUmVxdWVzdCwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiAKIC8vIERlcHJlY2F0ZWQg
ICAgCiB0eXBlZGVmIFdLUGFnZVJlZiAoKldLUGFnZUNyZWF0ZU5ld1BhZ2VDYWxsYmFja19kZXBy
ZWNhdGVkRm9yVXNlV2l0aFYwKShXS1BhZ2VSZWYgcGFnZSwgV0tEaWN0aW9uYXJ5UmVmIGZlYXR1
cmVzLCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgV0tFdmVudE1vdXNlQnV0dG9uIG1vdXNl
QnV0dG9uLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKQEAgLTI1MCw2ICsyNTEsNyBAQCBzdHJ1
Y3QgV0tQYWdlVUlDbGllbnQgewogICAgIC8vIFZlcnNpb24gMQogICAgIFdLUGFnZUNyZWF0ZU5l
d1BhZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3Jl
YXRlTmV3UGFnZTsKICAgICBXS1BhZ2VNb3VzZURpZE1vdmVPdmVyRWxlbWVudENhbGxiYWNrICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50OworICAg
IFdLUGFnZURlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0Q2FsbGJh
Y2sgICAgICAgICAgZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q7
CiB9OwogdHlwZWRlZiBzdHJ1Y3QgV0tQYWdlVUlDbGllbnQgV0tQYWdlVUlDbGllbnQ7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3Rp
ZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4y
NWQzN2RhNGI5OTRiNmQwY2RkYmU0MjU0NDAyODNhYzFlMGU2OWE1Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3QuY3BwCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaCIK
KworI2luY2x1ZGUgIk5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Lmgi
CisKK25hbWVzcGFjZSBXZWJLaXQgeworICAgIAorUGFzc1JlZlB0cjxOb3RpZmljYXRpb25QZXJt
aXNzaW9uUmVxdWVzdD4gTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q6OmNyZWF0ZShXZWJL
aXQ6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5ICptYW5hZ2VyLCB1
aW50NjRfdCBub3RpZmljYXRpb25JRCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IE5vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KG1hbmFnZXIsIG5vdGlmaWNhdGlvbklEKSk7Cit9CisK
K05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0OjpOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdChOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSogbWFuYWdlciwg
dWludDY0X3Qgbm90aWZpY2F0aW9uSUQpCisgICAgOiBtX21hbmFnZXIobWFuYWdlcikKKyAgICAs
IG1fbm90aWZpY2F0aW9uSUQobm90aWZpY2F0aW9uSUQpCit7Cit9CisKK3ZvaWQgTm90aWZpY2F0
aW9uUGVybWlzc2lvblJlcXVlc3Q6OmFsbG93KCkKK3sKKyAgICBpZiAoIW1fbWFuYWdlcikKKyAg
ICAgICAgcmV0dXJuOworICAgIAorICAgIG1fbWFuYWdlci0+ZGlkUmVjZWl2ZU5vdGlmaWNhdGlv
blBlcm1pc3Npb25EZWNpc2lvbihtX25vdGlmaWNhdGlvbklELCB0cnVlKTsKKyAgICBtX21hbmFn
ZXIgPSAwOworfQorCit2b2lkIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0OjpkZW55KCkK
K3sKKyAgICBpZiAoIW1fbWFuYWdlcikKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIG1fbWFu
YWdlci0+ZGlkUmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25EZWNpc2lvbihtX25vdGlmaWNh
dGlvbklELCBmYWxzZSk7CisgICAgbV9tYW5hZ2VyID0gMDsKK30KKwordm9pZCBOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdDo6aW52YWxpZGF0ZSgpCit7CisgICAgbV9tYW5hZ2VyID0gMDsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNGRiOThiMGM1Njg5YWRmNjlhYzAyOTlmYTJmZTYy
N2RiYTE1NmY5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05v
dGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaApAQCAtMCwwICsxLDU4
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdF9o
CisjZGVmaW5lIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0X2gKKworI2luY2x1ZGUgIkFQ
SU9iamVjdC5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJL
aXQgeworCitjbGFzcyBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTsK
KworY2xhc3MgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QgOiBwdWJsaWMgQVBJT2JqZWN0
IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgY29uc3QgVHlwZSBBUElUeXBlID0gVHlwZU5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0OworICAgIAorICAgIHN0YXRpYyBQYXNzUmVmUHRyPE5vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0PiBjcmVhdGUoTm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkqLCB1aW50NjRfdCBub3RpZmljYXRpb25JRCk7CisgICAgCisgICAg
dm9pZCBhbGxvdygpOworICAgIHZvaWQgZGVueSgpOworICAgIAorICAgIHZvaWQgaW52YWxpZGF0
ZSgpOworICAgIAorcHJpdmF0ZToKKyAgICBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdChO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSosIHVpbnQ2NF90IG5vdGlm
aWNhdGlvbklEKTsKKyAgICAKKyAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJu
IEFQSVR5cGU7IH0KKyAgICAKKyAgICBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eSogbV9tYW5hZ2VyOworICAgIHVpbnQ2NF90IG1fbm90aWZpY2F0aW9uSUQ7ICAgIAor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBOb3RpZmljYXRpb25QZXJt
aXNzaW9uUmVxdWVzdFByb3h5X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNzkyMjk4NWU0
NTY1ZjNjNzNjYWRjM2EwY2Y0NTUyMTdjNjE5OTY5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkuY3BwCkBAIC0wLDAgKzEsNzAgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkuaCIKKworI2luY2x1ZGUgIk5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
LmgiCisjaW5jbHVkZSAiV2ViUGFnZU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5
LmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Tm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkoV2ViUGFnZVByb3h5KiBwYWdlKQorICAgIDog
bV9wYWdlKHBhZ2UpCit7Cit9CisKK3ZvaWQgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHk6OmludmFsaWRhdGVSZXF1ZXN0cygpCit7CisgICAgUGVuZGluZ1JlcXVlc3RN
YXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9wZW5kaW5nUmVxdWVzdHMuYmVnaW4oKTsKKyAgICBQ
ZW5kaW5nUmVxdWVzdE1hcDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gbV9wZW5kaW5nUmVxdWVzdHMu
ZW5kKCk7CisgICAgZm9yICg7IGl0ICE9IGVuZDsgKytpdCkKKyAgICAgICAgaXQtPnNlY29uZC0+
aW52YWxpZGF0ZSgpOworICAgIAorICAgIG1fcGVuZGluZ1JlcXVlc3RzLmNsZWFyKCk7Cit9CisK
K1Bhc3NSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q+IE5vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpjcmVhdGVSZXF1ZXN0KHVpbnQ2NF90IG5vdGlm
aWNhdGlvbklEKQoreworICAgIFJlZlB0cjxOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdD4g
cmVxdWVzdCA9IE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0OjpjcmVhdGUodGhpcywgbm90
aWZpY2F0aW9uSUQpOworICAgIG1fcGVuZGluZ1JlcXVlc3RzLmFkZChub3RpZmljYXRpb25JRCwg
cmVxdWVzdC5nZXQoKSk7CisgICAgcmV0dXJuIHJlcXVlc3QucmVsZWFzZSgpOworfQorCit2b2lk
IE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpkaWRSZWNlaXZlTm90
aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklELCBib29s
IGFsbG93KQoreworICAgIGlmICghbV9wYWdlLT5pc1ZhbGlkKCkpCisgICAgICAgIHJldHVybjsK
KyAgICAKKyAgICBSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q+IHJlcXVlc3Qg
PSBtX3BlbmRpbmdSZXF1ZXN0cy50YWtlKG5vdGlmaWNhdGlvbklEKTsKKyAgICBpZiAoIXJlcXVl
c3QpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBtX3BhZ2UtPnByb2Nlc3MoKS0+c2VuZChN
ZXNzYWdlczo6V2ViUGFnZTo6RGlkUmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25EZWNpc2lv
bihub3RpZmljYXRpb25JRCwgYWxsb3cpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90
aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNjIyOGU3MmE5NGQyZjIxZDQx
MTExMjMwYzcyZGI1NTM1Y2I0YTJhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHkuaApAQCAtMCwwICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBOb3RpZmlj
YXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eV9oCisjZGVmaW5lIE5vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5X2gKKworI2luY2x1ZGUgIk5vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0LmgiCisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRl
IDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBHZW9sb2NhdGlv
blBlcm1pc3Npb25SZXF1ZXN0UHJveHk7CitjbGFzcyBXZWJQYWdlUHJveHk7CisKK2NsYXNzIE5v
dGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5IHsKK3B1YmxpYzoKKyAgICBl
eHBsaWNpdCBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eShXZWJQYWdl
UHJveHkqKTsKKyAgICAKKyAgICB2b2lkIGludmFsaWRhdGVSZXF1ZXN0cygpOworICAgIAorICAg
IC8vIENyZWF0ZSBhIHJlcXVlc3QgdG8gYmUgcHJlc2VudGVkIHRvIHRoZSB1c2VyLgorICAgIFBh
c3NSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q+IGNyZWF0ZVJlcXVlc3QodWlu
dDY0X3Qgbm90aWZpY2F0aW9uSUQpOworICAgIAorICAgIC8vIENhbGxlZCBieSBOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdCB3aGVuIGEgZGVjaXNpb24gaXMgbWFkZSBieSB0aGUgdXNlci4K
KyAgICB2b2lkIGRpZFJlY2VpdmVOb3RpZmljYXRpb25QZXJtaXNzaW9uRGVjaXNpb24odWludDY0
X3Qgbm90aWZpY2F0aW9uSUQsIGJvb2wgYWxsb3cpOworICAgIAorcHJpdmF0ZToKKyAgICB0eXBl
ZGVmIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVz
dD4gPiBQZW5kaW5nUmVxdWVzdE1hcDsKKyAgICBQZW5kaW5nUmVxdWVzdE1hcCBtX3BlbmRpbmdS
ZXF1ZXN0czsKKyAgICBXZWJQYWdlUHJveHkqIG1fcGFnZTsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAorCisKKyNlbmRpZiAvLyBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0
aW9ucy9XZWJOb3RpZmljYXRpb24uY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlm
aWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZjAyNTk4NjI0YzE1NmE5
OGZiZjIwOWE2MjJlMTE5MWMyYTZmZDNlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uLmNwcApAQCAtMCwwICsx
LDYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYk5v
dGlmaWNhdGlvbi5oIgorCisjaW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlICJB
cmd1bWVudERlY29kZXIuaCIKKyNpbmNsdWRlICJBcmd1bWVudEVuY29kZXIuaCIKKyNpbmNsdWRl
ICJBcmd1bWVudHMuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYk5vdGlmaWNhdGlvbjo6
V2ViTm90aWZpY2F0aW9uKCkKK3sKK30KKworV2ViTm90aWZpY2F0aW9uOjpXZWJOb3RpZmljYXRp
b24oY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiBib2R5LCB1aW50NjRfdCBub3Rp
ZmljYXRpb25JRCkKKyAgICA6IG1fdGl0bGUodGl0bGUpCisgICAgLCBtX2JvZHkoYm9keSkKKyAg
ICAsIG1fbm90aWZpY2F0aW9uSUQobm90aWZpY2F0aW9uSUQpCit7Cit9CisKK1dlYk5vdGlmaWNh
dGlvbjo6fldlYk5vdGlmaWNhdGlvbigpCit7Cit9CisKK3ZvaWQgV2ViTm90aWZpY2F0aW9uOjpl
bmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAoreworICAgIGVu
Y29kZXItPmVuY29kZShDb3JlSVBDOjpJbihtX3RpdGxlLCBtX2JvZHksIG1fbm90aWZpY2F0aW9u
SUQpKTsKK30KKworYm9vbCBXZWJOb3RpZmljYXRpb246OmRlY29kZShDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqIGRlY29kZXIsIFdlYk5vdGlmaWNhdGlvbiYgbm90aWZpY2F0aW9uKQoreworICAg
IHJldHVybiBkZWNvZGVyLT5kZWNvZGUoQ29yZUlQQzo6T3V0KG5vdGlmaWNhdGlvbi5tX3RpdGxl
LCBub3RpZmljYXRpb24ubV9ib2R5LCBub3RpZmljYXRpb24ubV9ub3RpZmljYXRpb25JRCkpOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbi5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjY4
NTg2ZjEyNTIzNDM4NGE0NTNhODFjZDgzODQ4YmJhZGZmOGRkNAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbi5o
CkBAIC0wLDAgKzEsODEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYk5vdGlmaWNhdGlvbl9o
CisjZGVmaW5lIFdlYk5vdGlmaWNhdGlvbl9oCisKKyNpbmNsdWRlICJBUElPYmplY3QuaCIKKyNp
bmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgorCituYW1lc3BhY2UgQ29yZUlQQyB7CisKK2NsYXNzIEFyZ3VtZW50RGVjb2RlcjsKK2NsYXNz
IEFyZ3VtZW50RW5jb2RlcjsKKworfSAvLyBuYW1lc3BhY2UgQ29yZUlQQworCituYW1lc3BhY2Ug
V2ViS2l0IHsKKyAgICAKK2NsYXNzIFdlYk5vdGlmaWNhdGlvbiA6IHB1YmxpYyBBUElPYmplY3Qg
eworcHVibGljOgorICAgIHN0YXRpYyBjb25zdCBUeXBlIEFQSVR5cGUgPSBUeXBlTm90aWZpY2F0
aW9uOworICAgIAorICAgIFdlYk5vdGlmaWNhdGlvbigpOworICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFdlYk5vdGlmaWNhdGlvbj4gY3JlYXRlKGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmlu
ZyYgYm9keSwgdWludDY0X3Qgbm90aWZpY2F0aW9uSUQpCisgICAgeworICAgICAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFdlYk5vdGlmaWNhdGlvbih0aXRsZSwgYm9keSwgbm90aWZpY2F0aW9uSUQp
KTsKKyAgICB9CisgICAgdmlydHVhbCB+V2ViTm90aWZpY2F0aW9uKCk7CisgICAgCisgICAgY29u
c3QgU3RyaW5nJiB0aXRsZSgpIGNvbnN0IHsgcmV0dXJuIG1fdGl0bGU7IH0KKyAgICAKKyAgICBj
b25zdCBTdHJpbmcmIGJvZHkoKSBjb25zdCB7IHJldHVybiBtX2JvZHk7IH0KKyAgICAKKyAgICB1
aW50NjRfdCBub3RpZmljYXRpb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fbm90aWZpY2F0aW9uSUQ7
IH0KKworICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciopIGNvbnN0Owor
ICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBXZWJOb3Rp
ZmljYXRpb24mKTsKKworcHJpdmF0ZToKKyAgICBXZWJOb3RpZmljYXRpb24oY29uc3QgU3RyaW5n
JiB0aXRsZSwgY29uc3QgU3RyaW5nJiBib2R5LCB1aW50NjRfdCBub3RpZmljYXRpb25JRCk7CisK
KyAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KKyAgICAK
KyAgICBTdHJpbmcgbV90aXRsZTsKKyAgICBTdHJpbmcgbV9ib2R5OworICAgIHVpbnQ2NF90IG1f
bm90aWZpY2F0aW9uSUQ7Cit9OworCitpbmxpbmUgYm9vbCBpc05vdGlmaWNhdGlvbklEVmFsaWQo
dWludDY0X3QgaWQpCit7CisgICAgLy8gVGhpcyBjaGVjayBtYWtlcyBzdXJlIHRoYXQgdGhlIElE
IGlzIG5vdCBlcXVhbCB0byB2YWx1ZXMgbmVlZGVkIGJ5CisgICAgLy8gSGFzaE1hcCBmb3IgYnVj
a2V0aW5nLgorICAgIHJldHVybiBpZCAmJiBpZCAhPSBzdGF0aWNfY2FzdDx1aW50NjRfdD4oLTEp
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYk5vdGlmaWNhdGlv
bl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9X
ZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4yZmNmYjM0ZDE2NTdmYTk1ZDdhYmI1Y2UzYTcxYmQyN2Q4NjQ0MGM3Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0
aW9uTWFuYWdlclByb3h5LmNwcApAQCAtMCwwICsxLDE1NCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaCIK
KworI2luY2x1ZGUgIkltbXV0YWJsZUFycmF5LmgiCisjaW5jbHVkZSAiV2ViQ29udGV4dC5oIgor
I2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbi5oIgorI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbk1h
bmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlNlY3VyaXR5T3JpZ2luLmgiCisjaW5jbHVk
ZSA8V2ViQ29yZS9Ob3RpZmljYXRpb25Db250ZW50cy5oPgorCit1c2luZyBuYW1lc3BhY2UgV1RG
OwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitQYXNz
UmVmUHRyPFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eT4gV2ViTm90aWZpY2F0aW9uTWFuYWdl
clByb3h5OjpjcmVhdGUoV2ViQ29udGV4dCogY29udGV4dCkKK3sKKyAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eShjb250ZXh0KSk7Cit9CisKK1dlYk5v
dGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5KFdlYkNv
bnRleHQqIGNvbnRleHQpCisgICAgOiBtX2NvbnRleHQoY29udGV4dCkKK3sKK30KKworV2ViTm90
aWZpY2F0aW9uTWFuYWdlclByb3h5Ojp+V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5KCkKK3sK
K30KKwordm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OmludmFsaWRhdGUoKQorewor
ICAgIG1fcHJvdmlkZXIucmVtb3ZlTm90aWZpY2F0aW9uTWFuYWdlcih0aGlzKTsKK30KKwordm9p
ZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OmluaXRpYWxpemVQcm92aWRlcihjb25zdCBX
S05vdGlmaWNhdGlvblByb3ZpZGVyICpwcm92aWRlcikKK3sKKyAgICBtX3Byb3ZpZGVyLmluaXRp
YWxpemUocHJvdmlkZXIpOworfQorCit2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6
ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQ
Qzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVu
dHMpCit7CisgICAgZGlkUmVjZWl2ZVdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eU1lc3NhZ2Uo
Y29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworfQorCit2b2lkIFdlYk5vdGlmaWNh
dGlvbk1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciogYXJndW1lbnRzLCBPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVy
PiYgcmVwbHkpCit7CisgICAgZGlkUmVjZWl2ZVN5bmNXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJv
eHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzLCByZXBseSk7Cit9CisK
K3ZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5OjpzaG93KGNvbnN0IFN0cmluZyYgdGl0
bGUsIGNvbnN0IFN0cmluZyYgYm9keSwgdWludDY0X3Qgbm90aWZpY2F0aW9uSUQpCit7CisgICAg
aWYgKCFpc05vdGlmaWNhdGlvbklEVmFsaWQobm90aWZpY2F0aW9uSUQpKQorICAgICAgICByZXR1
cm47CisgICAgCisgICAgbV9wcm92aWRlci5hZGROb3RpZmljYXRpb25NYW5hZ2VyKHRoaXMpOwor
CisgICAgUmVmUHRyPFdlYk5vdGlmaWNhdGlvbj4gbm90aWZpY2F0aW9uID0gV2ViTm90aWZpY2F0
aW9uOjpjcmVhdGUodGl0bGUsIGJvZHksIG5vdGlmaWNhdGlvbklEKTsKKyAgICBtX25vdGlmaWNh
dGlvbnMuc2V0KG5vdGlmaWNhdGlvbklELCBub3RpZmljYXRpb24pOworICAgIG1fcHJvdmlkZXIu
c2hvdyhub3RpZmljYXRpb24uZ2V0KCkpOworfQorCit2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFn
ZXJQcm94eTo6Y2FuY2VsKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQoreworICAgIGlmICghaXNO
b3RpZmljYXRpb25JRFZhbGlkKG5vdGlmaWNhdGlvbklEKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgUmVmUHRyPFdlYk5vdGlmaWNhdGlvbj4gbm90aWZpY2F0aW9uID0gbV9ub3RpZmljYXRpb25z
LmdldChub3RpZmljYXRpb25JRCk7CisgICAgaWYgKCFub3RpZmljYXRpb24pCisgICAgICAgIHJl
dHVybjsKKworICAgIG1fcHJvdmlkZXIuYWRkTm90aWZpY2F0aW9uTWFuYWdlcih0aGlzKTsKKyAg
ICBtX3Byb3ZpZGVyLmNhbmNlbChub3RpZmljYXRpb24uZ2V0KCkpOworfQorICAgIAordm9pZCBX
ZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OmRpZERlc3Ryb3lOb3RpZmljYXRpb24odWludDY0
X3Qgbm90aWZpY2F0aW9uSUQpCit7CisgICAgaWYgKCFpc05vdGlmaWNhdGlvbklEVmFsaWQobm90
aWZpY2F0aW9uSUQpKQorICAgICAgICByZXR1cm47CisKKyAgICBSZWZQdHI8V2ViTm90aWZpY2F0
aW9uPiBub3RpZmljYXRpb24gPSBtX25vdGlmaWNhdGlvbnMudGFrZShub3RpZmljYXRpb25JRCk7
CisgICAgaWYgKCFub3RpZmljYXRpb24pCisgICAgICAgIHJldHVybjsKKworICAgIG1fcHJvdmlk
ZXIuZGlkRGVzdHJveU5vdGlmaWNhdGlvbihub3RpZmljYXRpb24uZ2V0KCkpOworfQorCit2b2lk
IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6bm90aWZpY2F0aW9uUGVybWlzc2lvbkxldmVs
KGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwgdWludDY0X3QmIHBlcm1pc3Npb25MZXZl
bCkKK3sKKyAgICBSZWZQdHI8V2ViU2VjdXJpdHlPcmlnaW4+IG9yaWdpbiA9IFdlYlNlY3VyaXR5
T3JpZ2luOjpjcmVhdGUob3JpZ2luSWRlbnRpZmllcik7CisgICAgcGVybWlzc2lvbkxldmVsID0g
bV9wcm92aWRlci5wb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uQXRPcmlnaW4ob3JpZ2lu
LmdldCgpKTsKK30KKwordm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OnByb3ZpZGVy
RGlkU2hvd05vdGlmaWNhdGlvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCkKK3sKKyAgICBpZiAo
IW1fY29udGV4dCkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIG1fY29udGV4dC0+c2VuZFRv
QWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpEaWRTaG93Tm90
aWZpY2F0aW9uKG5vdGlmaWNhdGlvbklEKSk7Cit9CisKK3ZvaWQgV2ViTm90aWZpY2F0aW9uTWFu
YWdlclByb3h5Ojpwcm92aWRlckRpZENsaWNrTm90aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNh
dGlvbklEKQoreworICAgIGlmICghbV9jb250ZXh0KQorICAgICAgICByZXR1cm47CisgICAgCisg
ICAgbV9jb250ZXh0LT5zZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYk5vdGlmaWNhdGlv
bk1hbmFnZXI6OkRpZENsaWNrTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbklEKSk7Cit9CisKKwor
dm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OnByb3ZpZGVyRGlkQ2xvc2VOb3RpZmlj
YXRpb25zKEltbXV0YWJsZUFycmF5KiBub3RpZmljYXRpb25JRHMpCit7CisgICAgaWYgKCFtX2Nv
bnRleHQpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBzaXplX3Qgc2l6ZSA9IG5vdGlmaWNh
dGlvbklEcy0+c2l6ZSgpOworICAgIAorICAgIFZlY3Rvcjx1aW50NjRfdD4gdmVjdG9yTm90aWZp
Y2F0aW9uSURzOworICAgIHZlY3Rvck5vdGlmaWNhdGlvbklEcy5yZXNlcnZlSW5pdGlhbENhcGFj
aXR5KHNpemUpOworICAgIAorICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7
CisgICAgICAgIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEID0gbm90aWZpY2F0aW9uSURzLT5hdDxX
ZWJVSW50NjQ+KGkpLT52YWx1ZSgpOworICAgICAgICB2ZWN0b3JOb3RpZmljYXRpb25JRHMuYXBw
ZW5kKG5vdGlmaWNhdGlvbklEKTsKKyAgICB9CisgICAgCisgICAgaWYgKHZlY3Rvck5vdGlmaWNh
dGlvbklEcy5zaXplKCkpCisgICAgICAgIG1fY29udGV4dC0+c2VuZFRvQWxsUHJvY2Vzc2VzKE1l
c3NhZ2VzOjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpEaWRDbG9zZU5vdGlmaWNhdGlvbnModmVj
dG9yTm90aWZpY2F0aW9uSURzKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0
aW9uTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9u
cy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ODA5YWU0ZDQ4MmM1
MDkyNjNiNWQyYTQ3ZGQ5YzQwNTkyMGY2MGRhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5
LmgKQEAgLTAsMCArMSw4OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViTm90aWZpY2F0aW9u
TWFuYWdlclByb3h5X2gKKyNkZWZpbmUgV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5X2gKKwor
I2luY2x1ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1ZGUgIk1lc3NhZ2VJRC5oIgorI2luY2x1ZGUg
IldlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmgiCisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNp
bmNsdWRlIDx3dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKworbmFt
ZXNwYWNlIENvcmVJUEMgeworY2xhc3MgQXJndW1lbnREZWNvZGVyOworY2xhc3MgQXJndW1lbnRF
bmNvZGVyOworY2xhc3MgQ29ubmVjdGlvbjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2Ns
YXNzIEltbXV0YWJsZUFycmF5OworY2xhc3MgV2ViQ29udGV4dDsKKworY2xhc3MgV2ViTm90aWZp
Y2F0aW9uTWFuYWdlclByb3h5IDogcHVibGljIEFQSU9iamVjdCB7CitwdWJsaWM6CisgICAgc3Rh
dGljIGNvbnN0IFR5cGUgQVBJVHlwZSA9IFR5cGVOb3RpZmljYXRpb25NYW5hZ2VyOworICAgIAor
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eT4gY3JlYXRl
KFdlYkNvbnRleHQqKTsKKyAgICB2aXJ0dWFsIH5XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHko
KTsKKyAgICAKKyAgICB2b2lkIGludmFsaWRhdGUoKTsKKyAgICB2b2lkIGNsZWFyQ29udGV4dCgp
IHsgbV9jb250ZXh0ID0gMDsgfQorCisgICAgdm9pZCBpbml0aWFsaXplUHJvdmlkZXIoY29uc3Qg
V0tOb3RpZmljYXRpb25Qcm92aWRlciopOworICAgIAorICAgIHZvaWQgcHJvdmlkZXJEaWRTaG93
Tm90aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKTsKKyAgICB2b2lkIHByb3ZpZGVy
RGlkQ2xpY2tOb3RpZmljYXRpb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQpOworICAgIHZvaWQg
cHJvdmlkZXJEaWRDbG9zZU5vdGlmaWNhdGlvbnMoSW1tdXRhYmxlQXJyYXkqIG5vdGlmaWNhdGlv
bklEcyk7CisgICAgCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAg
ICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQ
Qzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBPd25QdHI8Q29yZUlQQzo6
QXJndW1lbnRFbmNvZGVyPiYpOworCitwcml2YXRlOgorICAgIGV4cGxpY2l0IFdlYk5vdGlmaWNh
dGlvbk1hbmFnZXJQcm94eShXZWJDb250ZXh0Kik7CisgICAgCisgICAgdmlydHVhbCBUeXBlIHR5
cGUoKSBjb25zdCB7IHJldHVybiBBUElUeXBlOyB9CisgICAgCisgICAgdm9pZCBkaWRSZWNlaXZl
V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwg
Q29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lk
IGRpZFJlY2VpdmVTeW5jV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBD
OjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29k
ZXIqLCBPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPiYpOworICAgIAorICAgIC8vIE1l
c3NhZ2UgaGFuZGxlcnMKKyAgICB2b2lkIHNob3coY29uc3QgV1RGOjpTdHJpbmcmIHRpdGxlLCBj
b25zdCBXVEY6OlN0cmluZyYgYm9keSwgdWludDY0X3Qgbm90aWZpY2F0aW9uSUQpOworICAgIHZv
aWQgY2FuY2VsKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKTsKKyAgICB2b2lkIGRpZERlc3Ryb3lO
b3RpZmljYXRpb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQpOworICAgIHZvaWQgbm90aWZpY2F0
aW9uUGVybWlzc2lvbkxldmVsKGNvbnN0IFdURjo6U3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyLCB1
aW50NjRfdCYgcGVybWlzc2lvbkxldmVsKTsKKworICAgIHR5cGVkZWYgSGFzaE1hcDx1aW50NjRf
dCwgUmVmUHRyPFdlYk5vdGlmaWNhdGlvbj4gPiBXZWJOb3RpZmljYXRpb25NYXA7CisgICAgCisg
ICAgV2ViQ29udGV4dCogbV9jb250ZXh0OworICAgIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyIG1f
cHJvdmlkZXI7CisgICAgV2ViTm90aWZpY2F0aW9uTWFwIG1fbm90aWZpY2F0aW9uczsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViTm90aWZpY2F0aW9uTWFuYWdl
clByb3h5X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRp
b25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5t
ZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NjY3MWI0Mjg0ZGE0MzYwYjAwODBjM2FkZGRkNTk1NWI1
MWEyZjI5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlm
aWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0wLDAg
KzEsMjkgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwK
KyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworbWVzc2Fn
ZXMgLT4gV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5IHsKKyAgICBTaG93KFdURjo6U3RyaW5n
IHRpdGxlLCBXVEY6OlN0cmluZyBib2R5LCB1aW50NjRfdCBub3RpZmljYXRpb25JRCk7CisgICAg
Q2FuY2VsKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKTsKKyAgICBEaWREZXN0cm95Tm90aWZpY2F0
aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKTsKKworICAgIE5vdGlmaWNhdGlvblBlcm1pc3Np
b25MZXZlbChXVEY6OlN0cmluZyBvcmlnaW5JZGVudGlmaWVyKSAtPiAodWludDY0X3QgcG9saWN5
KQorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMv
V2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05v
dGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFmOGE3
MWRiYWUzMTAwOGViMjkxN2RlODJlZDgyMTA3OTM2NWMzODIKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25Qcm92
aWRlci5jcHAKQEAgLTAsMCArMSw4NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJXZWJOb3RpZmljYXRpb25Qcm92aWRlci5oIgorCisjaW5jbHVkZSAiV0tB
UElDYXN0LmgiCisjaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9uLmgiCisjaW5jbHVkZSAiV2ViTm90
aWZpY2F0aW9uTWFuYWdlclByb3h5LmgiCisjaW5jbHVkZSAiV2ViU2VjdXJpdHlPcmlnaW4uaCIK
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgV2ViTm90aWZpY2F0aW9uUHJvdmlkZXI6OnNo
b3coV2ViTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24pCit7CisgICAgaWYgKCFtX2NsaWVudC5z
aG93KQorICAgICAgICByZXR1cm47CisgICAgCisgICAgbV9jbGllbnQuc2hvdyh0b0FQSShub3Rp
ZmljYXRpb24pLCBtX2NsaWVudC5jbGllbnRJbmZvKTsKK30KKwordm9pZCBXZWJOb3RpZmljYXRp
b25Qcm92aWRlcjo6Y2FuY2VsKFdlYk5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uKQoreworICAg
IGlmICghbV9jbGllbnQuY2FuY2VsKQorICAgICAgICByZXR1cm47CisgICAgCisgICAgbV9jbGll
bnQuY2FuY2VsKHRvQVBJKG5vdGlmaWNhdGlvbiksIG1fY2xpZW50LmNsaWVudEluZm8pOworfQor
Cit2b2lkIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyOjpkaWREZXN0cm95Tm90aWZpY2F0aW9uKFdl
Yk5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uKQoreworICAgIGlmICghbV9jbGllbnQuZGlkRGVz
dHJveU5vdGlmaWNhdGlvbikKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIG1fY2xpZW50LmRp
ZERlc3Ryb3lOb3RpZmljYXRpb24odG9BUEkobm90aWZpY2F0aW9uKSwgbV9jbGllbnQuY2xpZW50
SW5mbyk7Cit9CisKK2ludCBXZWJOb3RpZmljYXRpb25Qcm92aWRlcjo6cG9saWN5Rm9yTm90aWZp
Y2F0aW9uUGVybWlzc2lvbkF0T3JpZ2luKFdlYlNlY3VyaXR5T3JpZ2luKiBvcmlnaW4pCit7Cisg
ICAgaWYgKCFtX2NsaWVudC5wb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uQXRPcmlnaW4p
CisgICAgICAgIHJldHVybiBJTlRfTUlOOworICAgIAorICAgIHJldHVybiBtX2NsaWVudC5wb2xp
Y3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uQXRPcmlnaW4odG9BUEkob3JpZ2luKSwgbV9jbGll
bnQuY2xpZW50SW5mbyk7Cit9CisKK3ZvaWQgV2ViTm90aWZpY2F0aW9uUHJvdmlkZXI6OmFkZE5v
dGlmaWNhdGlvbk1hbmFnZXIoV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5KiBtYW5hZ2VyKQor
eworICAgIGlmICghbV9jbGllbnQuYWRkTm90aWZpY2F0aW9uTWFuYWdlcikKKyAgICAgICAgcmV0
dXJuOworICAgIAorICAgIG1fY2xpZW50LmFkZE5vdGlmaWNhdGlvbk1hbmFnZXIodG9BUEkobWFu
YWdlciksIG1fY2xpZW50LmNsaWVudEluZm8pOworfQorCit2b2lkIFdlYk5vdGlmaWNhdGlvblBy
b3ZpZGVyOjpyZW1vdmVOb3RpZmljYXRpb25NYW5hZ2VyKFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQ
cm94eSogbWFuYWdlcikKK3sKKyAgICBpZiAoIW1fY2xpZW50LnJlbW92ZU5vdGlmaWNhdGlvbk1h
bmFnZXIpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBtX2NsaWVudC5yZW1vdmVOb3RpZmlj
YXRpb25NYW5hZ2VyKHRvQVBJKG1hbmFnZXIpLCBtX2NsaWVudC5jbGllbnRJbmZvKTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25Qcm92aWRlci5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi41NzBhMjY0ZDA4M2RkNzQ4NjUyNDlmNDA2NDExOTI4NzQ5YWRhNTQ2Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90
aWZpY2F0aW9uUHJvdmlkZXIuaApAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRl
ZiBXZWJOb3RpZmljYXRpb25Qcm92aWRlcl9oCisjZGVmaW5lIFdlYk5vdGlmaWNhdGlvblByb3Zp
ZGVyX2gKKworI2luY2x1ZGUgIkFQSUNsaWVudC5oIgorI2luY2x1ZGUgIldLTm90aWZpY2F0aW9u
UHJvdmlkZXIuaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworY2xhc3MgV2ViTm90aWZpY2F0aW9uOworY2xhc3MgV2ViTm90aWZpY2F0aW9uTWFuYWdl
clByb3h5OworY2xhc3MgV2ViU2VjdXJpdHlPcmlnaW47CisgICAgCitjbGFzcyBXZWJOb3RpZmlj
YXRpb25Qcm92aWRlciA6IHB1YmxpYyBBUElDbGllbnQ8V0tOb3RpZmljYXRpb25Qcm92aWRlciwg
a1dLTm90aWZpY2F0aW9uUHJvdmlkZXJDdXJyZW50VmVyc2lvbj4geworcHVibGljOgorICAgIHZv
aWQgc2hvdyhXZWJOb3RpZmljYXRpb24qKTsKKyAgICB2b2lkIGNhbmNlbChXZWJOb3RpZmljYXRp
b24qKTsKKyAgICB2b2lkIGRpZERlc3Ryb3lOb3RpZmljYXRpb24oV2ViTm90aWZpY2F0aW9uKik7
CisgICAgaW50IHBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25BdE9yaWdpbihXZWJTZWN1
cml0eU9yaWdpbiopOworCisgICAgdm9pZCBhZGROb3RpZmljYXRpb25NYW5hZ2VyKFdlYk5vdGlm
aWNhdGlvbk1hbmFnZXJQcm94eSopOworICAgIHZvaWQgcmVtb3ZlTm90aWZpY2F0aW9uTWFuYWdl
cihXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkqKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdAorCisjZW5kaWYgLy8gV2ViTm90aWZpY2F0aW9uUHJvdmlkZXJfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5vdGlmaWNhdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9uLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggM2YwMjU5ODYyNGMxNTZhOThmYmYyMDlhNjIyZTExOTFjMmE2ZmQzZS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViTm90aWZpY2F0aW9uLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDYxICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV2ViTm90aWZp
Y2F0aW9uLmgiCi0KLSNpbmNsdWRlICJBcmd1bWVudENvZGVycy5oIgotI2luY2x1ZGUgIkFyZ3Vt
ZW50RGVjb2Rlci5oIgotI2luY2x1ZGUgIkFyZ3VtZW50RW5jb2Rlci5oIgotI2luY2x1ZGUgIkFy
Z3VtZW50cy5oIgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotV2ViTm90aWZpY2F0aW9uOjpXZWJO
b3RpZmljYXRpb24oKQotewotfQotCi1XZWJOb3RpZmljYXRpb246OldlYk5vdGlmaWNhdGlvbihj
b25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBTdHJpbmcmIGJvZHksIHVpbnQ2NF90IG5vdGlmaWNh
dGlvbklEKQotICAgIDogbV90aXRsZSh0aXRsZSkKLSAgICAsIG1fYm9keShib2R5KQotICAgICwg
bV9ub3RpZmljYXRpb25JRChub3RpZmljYXRpb25JRCkKLXsKLX0KLQotV2ViTm90aWZpY2F0aW9u
Ojp+V2ViTm90aWZpY2F0aW9uKCkKLXsKLX0KLQotdm9pZCBXZWJOb3RpZmljYXRpb246OmVuY29k
ZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0Ci17Ci0gICAgZW5jb2Rl
ci0+ZW5jb2RlKENvcmVJUEM6OkluKG1fdGl0bGUsIG1fYm9keSwgbV9ub3RpZmljYXRpb25JRCkp
OwotfQotCi1ib29sIFdlYk5vdGlmaWNhdGlvbjo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVj
b2RlciogZGVjb2RlciwgV2ViTm90aWZpY2F0aW9uJiBub3RpZmljYXRpb24pCi17Ci0gICAgcmV0
dXJuIGRlY29kZXItPmRlY29kZShDb3JlSVBDOjpPdXQobm90aWZpY2F0aW9uLm1fdGl0bGUsIG5v
dGlmaWNhdGlvbi5tX2JvZHksIG5vdGlmaWNhdGlvbi5tX25vdGlmaWNhdGlvbklEKSk7Ci19Ci0K
LX0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYk5vdGlmaWNhdGlvbi5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5vdGlm
aWNhdGlvbi5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNjg1ODZmMTI1MjM0Mzg0
YTQ1M2E4MWNkODM4NDhiYmFkZmY4ZGQ0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOb3RpZmljYXRpb24u
aAorKysgL2Rldi9udWxsCkBAIC0xLDgxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFdl
Yk5vdGlmaWNhdGlvbl9oCi0jZGVmaW5lIFdlYk5vdGlmaWNhdGlvbl9oCi0KLSNpbmNsdWRlICJB
UElPYmplY3QuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgotCi1uYW1lc3BhY2UgQ29yZUlQQyB7Ci0KLWNsYXNzIEFyZ3VtZW50
RGVjb2RlcjsKLWNsYXNzIEFyZ3VtZW50RW5jb2RlcjsKLQotfSAvLyBuYW1lc3BhY2UgQ29yZUlQ
QwotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLSAgICAKLWNsYXNzIFdlYk5vdGlmaWNhdGlvbiA6IHB1
YmxpYyBBUElPYmplY3QgewotcHVibGljOgotICAgIHN0YXRpYyBjb25zdCBUeXBlIEFQSVR5cGUg
PSBUeXBlTm90aWZpY2F0aW9uOwotICAgIAotICAgIFdlYk5vdGlmaWNhdGlvbigpOwotICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFdlYk5vdGlmaWNhdGlvbj4gY3JlYXRlKGNvbnN0IFN0cmluZyYgdGl0
bGUsIGNvbnN0IFN0cmluZyYgYm9keSwgdWludDY0X3Qgbm90aWZpY2F0aW9uSUQpCi0gICAgewot
ICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYk5vdGlmaWNhdGlvbih0aXRsZSwgYm9keSwg
bm90aWZpY2F0aW9uSUQpKTsKLSAgICB9Ci0gICAgdmlydHVhbCB+V2ViTm90aWZpY2F0aW9uKCk7
Ci0gICAgCi0gICAgY29uc3QgU3RyaW5nJiB0aXRsZSgpIGNvbnN0IHsgcmV0dXJuIG1fdGl0bGU7
IH0KLSAgICAKLSAgICBjb25zdCBTdHJpbmcmIGJvZHkoKSBjb25zdCB7IHJldHVybiBtX2JvZHk7
IH0KLSAgICAKLSAgICB1aW50NjRfdCBub3RpZmljYXRpb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1f
bm90aWZpY2F0aW9uSUQ7IH0KLQotICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5j
b2RlciopIGNvbnN0OwotICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqLCBXZWJOb3RpZmljYXRpb24mKTsKLQotcHJpdmF0ZToKLSAgICBXZWJOb3RpZmljYXRp
b24oY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiBib2R5LCB1aW50NjRfdCBub3Rp
ZmljYXRpb25JRCk7Ci0KLSAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQ
SVR5cGU7IH0KLSAgICAKLSAgICBTdHJpbmcgbV90aXRsZTsKLSAgICBTdHJpbmcgbV9ib2R5Owot
ICAgIHVpbnQ2NF90IG1fbm90aWZpY2F0aW9uSUQ7Ci19OwotCi1pbmxpbmUgYm9vbCBpc05vdGlm
aWNhdGlvbklEVmFsaWQodWludDY0X3QgaWQpCi17Ci0gICAgLy8gVGhpcyBjaGVjayBtYWtlcyBz
dXJlIHRoYXQgdGhlIElEIGlzIG5vdCBlcXVhbCB0byB2YWx1ZXMgbmVlZGVkIGJ5Ci0gICAgLy8g
SGFzaE1hcCBmb3IgYnVja2V0aW5nLgotICAgIHJldHVybiBpZCAmJiBpZCAhPSBzdGF0aWNfY2Fz
dDx1aW50NjRfdD4oLTEpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8v
IFdlYk5vdGlmaWNhdGlvbl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA5MDI5ZGM0NGU5ZmE4Zjg4MjUwMmUzMDJhZWI4YmFmZTg2ZDM0YjAwLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwCisrKyAvZGV2L251bGwKQEAg
LTEsMTQyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVk
ZSAiV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmgiCi0KLSNpbmNsdWRlICJJbW11dGFibGVB
cnJheS5oIgotI2luY2x1ZGUgIldlYkNvbnRleHQuaCIKLSNpbmNsdWRlICJXZWJOb3RpZmljYXRp
b24uaCIKLSNpbmNsdWRlICJXZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZXMuaCIKLSNpbmNs
dWRlIDxXZWJDb3JlL05vdGlmaWNhdGlvbkNvbnRlbnRzLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBX
VEY7Ci11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLVBh
c3NSZWZQdHI8V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5PiBXZWJOb3RpZmljYXRpb25NYW5h
Z2VyUHJveHk6OmNyZWF0ZShXZWJDb250ZXh0KiBjb250ZXh0KQotewotICAgIHJldHVybiBhZG9w
dFJlZihuZXcgV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5KGNvbnRleHQpKTsKLX0KLQotV2Vi
Tm90aWZpY2F0aW9uTWFuYWdlclByb3h5OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkoV2Vi
Q29udGV4dCogY29udGV4dCkKLSAgICA6IG1fY29udGV4dChjb250ZXh0KQotewotfQotCi1XZWJO
b3RpZmljYXRpb25NYW5hZ2VyUHJveHk6On5XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkoKQot
ewotfQotCi12b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6aW52YWxpZGF0ZSgpCi17
Ci0gICAgbV9wcm92aWRlci5yZW1vdmVOb3RpZmljYXRpb25NYW5hZ2VyKHRoaXMpOwotfQotCi12
b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6aW5pdGlhbGl6ZVByb3ZpZGVyKGNvbnN0
IFdLTm90aWZpY2F0aW9uUHJvdmlkZXIgKnByb3ZpZGVyKQotewotICAgIG1fcHJvdmlkZXIuaW5p
dGlhbGl6ZShwcm92aWRlcik7Ci19Ci0KLXZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5
OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3Jl
SVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3Vt
ZW50cykKLXsKLSAgICBkaWRSZWNlaXZlV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5TWVzc2Fn
ZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7Ci19Ci0KLXZvaWQgV2ViTm90aWZp
Y2F0aW9uTWFuYWdlclByb3h5OjpzaG93KGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmlu
ZyYgYm9keSwgdWludDY0X3Qgbm90aWZpY2F0aW9uSUQpCi17Ci0gICAgaWYgKCFpc05vdGlmaWNh
dGlvbklEVmFsaWQobm90aWZpY2F0aW9uSUQpKQotICAgICAgICByZXR1cm47Ci0gICAgCi0gICAg
bV9wcm92aWRlci5hZGROb3RpZmljYXRpb25NYW5hZ2VyKHRoaXMpOwotCi0gICAgUmVmUHRyPFdl
Yk5vdGlmaWNhdGlvbj4gbm90aWZpY2F0aW9uID0gV2ViTm90aWZpY2F0aW9uOjpjcmVhdGUodGl0
bGUsIGJvZHksIG5vdGlmaWNhdGlvbklEKTsKLSAgICBtX25vdGlmaWNhdGlvbnMuc2V0KG5vdGlm
aWNhdGlvbklELCBub3RpZmljYXRpb24pOwotICAgIG1fcHJvdmlkZXIuc2hvdyhub3RpZmljYXRp
b24uZ2V0KCkpOwotfQotCi12b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6Y2FuY2Vs
KHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQotewotICAgIGlmICghaXNOb3RpZmljYXRpb25JRFZh
bGlkKG5vdGlmaWNhdGlvbklEKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgUmVmUHRyPFdlYk5v
dGlmaWNhdGlvbj4gbm90aWZpY2F0aW9uID0gbV9ub3RpZmljYXRpb25zLmdldChub3RpZmljYXRp
b25JRCk7Ci0gICAgaWYgKCFub3RpZmljYXRpb24pCi0gICAgICAgIHJldHVybjsKLQotICAgIG1f
cHJvdmlkZXIuYWRkTm90aWZpY2F0aW9uTWFuYWdlcih0aGlzKTsKLSAgICBtX3Byb3ZpZGVyLmNh
bmNlbChub3RpZmljYXRpb24uZ2V0KCkpOwotfQotICAgIAotdm9pZCBXZWJOb3RpZmljYXRpb25N
YW5hZ2VyUHJveHk6OmRpZERlc3Ryb3lOb3RpZmljYXRpb24odWludDY0X3Qgbm90aWZpY2F0aW9u
SUQpCi17Ci0gICAgaWYgKCFpc05vdGlmaWNhdGlvbklEVmFsaWQobm90aWZpY2F0aW9uSUQpKQot
ICAgICAgICByZXR1cm47Ci0KLSAgICBSZWZQdHI8V2ViTm90aWZpY2F0aW9uPiBub3RpZmljYXRp
b24gPSBtX25vdGlmaWNhdGlvbnMudGFrZShub3RpZmljYXRpb25JRCk7Ci0gICAgaWYgKCFub3Rp
ZmljYXRpb24pCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fcHJvdmlkZXIuZGlkRGVzdHJveU5v
dGlmaWNhdGlvbihub3RpZmljYXRpb24uZ2V0KCkpOwotfQotCi12b2lkIFdlYk5vdGlmaWNhdGlv
bk1hbmFnZXJQcm94eTo6cHJvdmlkZXJEaWRTaG93Tm90aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlm
aWNhdGlvbklEKQotewotICAgIGlmICghbV9jb250ZXh0KQotICAgICAgICByZXR1cm47Ci0gICAg
Ci0gICAgbV9jb250ZXh0LT5zZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYk5vdGlmaWNh
dGlvbk1hbmFnZXI6OkRpZFNob3dOb3RpZmljYXRpb24obm90aWZpY2F0aW9uSUQpKTsKLX0KLQot
dm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OnByb3ZpZGVyRGlkQ2xpY2tOb3RpZmlj
YXRpb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQpCi17Ci0gICAgaWYgKCFtX2NvbnRleHQpCi0g
ICAgICAgIHJldHVybjsKLSAgICAKLSAgICBtX2NvbnRleHQtPnNlbmRUb0FsbFByb2Nlc3NlcyhN
ZXNzYWdlczo6V2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6RGlkQ2xpY2tOb3RpZmljYXRpb24obm90
aWZpY2F0aW9uSUQpKTsKLX0KLQotCi12b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6
cHJvdmlkZXJEaWRDbG9zZU5vdGlmaWNhdGlvbnMoSW1tdXRhYmxlQXJyYXkqIG5vdGlmaWNhdGlv
bklEcykKLXsKLSAgICBpZiAoIW1fY29udGV4dCkKLSAgICAgICAgcmV0dXJuOwotICAgIAotICAg
IHNpemVfdCBzaXplID0gbm90aWZpY2F0aW9uSURzLT5zaXplKCk7Ci0gICAgCi0gICAgVmVjdG9y
PHVpbnQ2NF90PiB2ZWN0b3JOb3RpZmljYXRpb25JRHM7Ci0gICAgdmVjdG9yTm90aWZpY2F0aW9u
SURzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoc2l6ZSk7Ci0gICAgCi0gICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBzaXplOyArK2kpIHsKLSAgICAgICAgdWludDY0X3Qgbm90aWZpY2F0aW9uSUQg
PSBub3RpZmljYXRpb25JRHMtPmF0PFdlYlVJbnQ2ND4oaSktPnZhbHVlKCk7Ci0gICAgICAgIHZl
Y3Rvck5vdGlmaWNhdGlvbklEcy5hcHBlbmQobm90aWZpY2F0aW9uSUQpOwotICAgIH0KLSAgICAK
LSAgICBpZiAodmVjdG9yTm90aWZpY2F0aW9uSURzLnNpemUoKSkKLSAgICAgICAgbV9jb250ZXh0
LT5zZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OkRp
ZENsb3NlTm90aWZpY2F0aW9ucyh2ZWN0b3JOb3RpZmljYXRpb25JRHMpKTsKLX0KLQotfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
Tm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
Tm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDU4N2ZhOWE0ODYxZGExNmRiOGNkNTk1NzYyYTljNzhjZmEyYzMyZjkuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oCisrKyAvZGV2L251bGwKQEAgLTEsODQgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5X2gK
LSNkZWZpbmUgV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5X2gKLQotI2luY2x1ZGUgIkFQSU9i
amVjdC5oIgotI2luY2x1ZGUgIk1lc3NhZ2VJRC5oIgotI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlv
blByb3ZpZGVyLmgiCi0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvUGFz
c1JlZlB0ci5oPgotCi1uYW1lc3BhY2UgQ29yZUlQQyB7Ci1jbGFzcyBBcmd1bWVudERlY29kZXI7
Ci1jbGFzcyBDb25uZWN0aW9uOwotfQotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgSW1t
dXRhYmxlQXJyYXk7Ci1jbGFzcyBXZWJDb250ZXh0OwotCi1jbGFzcyBXZWJOb3RpZmljYXRpb25N
YW5hZ2VyUHJveHkgOiBwdWJsaWMgQVBJT2JqZWN0IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgY29u
c3QgVHlwZSBBUElUeXBlID0gVHlwZU5vdGlmaWNhdGlvbk1hbmFnZXI7Ci0gICAgCi0gICAgc3Rh
dGljIFBhc3NSZWZQdHI8V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5PiBjcmVhdGUoV2ViQ29u
dGV4dCopOwotICAgIHZpcnR1YWwgfldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eSgpOwotICAg
IAotICAgIHZvaWQgaW52YWxpZGF0ZSgpOwotICAgIHZvaWQgY2xlYXJDb250ZXh0KCkgeyBtX2Nv
bnRleHQgPSAwOyB9Ci0KLSAgICB2b2lkIGluaXRpYWxpemVQcm92aWRlcihjb25zdCBXS05vdGlm
aWNhdGlvblByb3ZpZGVyKik7Ci0gICAgCi0gICAgdm9pZCBwcm92aWRlckRpZFNob3dOb3RpZmlj
YXRpb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQpOwotICAgIHZvaWQgcHJvdmlkZXJEaWRDbGlj
a05vdGlmaWNhdGlvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCk7Ci0gICAgdm9pZCBwcm92aWRl
ckRpZENsb3NlTm90aWZpY2F0aW9ucyhJbW11dGFibGVBcnJheSogbm90aWZpY2F0aW9uSURzKTsK
LSAgICAKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBD
b3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwotCi1wcml2YXRl
OgotICAgIGV4cGxpY2l0IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eShXZWJDb250ZXh0Kik7
Ci0gICAgCi0gICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBBUElUeXBlOyB9
Ci0gICAgCi0gICAgdm9pZCBkaWRSZWNlaXZlV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5TWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqKTsKLSAgICAKLSAgICAvLyBNZXNzYWdlIGhhbmRsZXJzCi0gICAgdm9p
ZCBzaG93KGNvbnN0IFdURjo6U3RyaW5nJiB0aXRsZSwgY29uc3QgV1RGOjpTdHJpbmcmIGJvZHks
IHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKTsKLSAgICB2b2lkIGNhbmNlbCh1aW50NjRfdCBub3Rp
ZmljYXRpb25JRCk7Ci0gICAgdm9pZCBkaWREZXN0cm95Tm90aWZpY2F0aW9uKHVpbnQ2NF90IG5v
dGlmaWNhdGlvbklEKTsKLSAgICAKLSAgICB0eXBlZGVmIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0
cjxXZWJOb3RpZmljYXRpb24+ID4gV2ViTm90aWZpY2F0aW9uTWFwOwotICAgIAotICAgIFdlYkNv
bnRleHQqIG1fY29udGV4dDsKLSAgICBXZWJOb3RpZmljYXRpb25Qcm92aWRlciBtX3Byb3ZpZGVy
OwotICAgIFdlYk5vdGlmaWNhdGlvbk1hcCBtX25vdGlmaWNhdGlvbnM7Ci19OwotCi19IC8vIG5h
bWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eV9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9uTWFu
YWdlclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5vdGlm
aWNhdGlvbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNmQ0MDNjM2Q3ZDg1OWNlNWQ5MDBhNDhhMGRlYjQ2OWQ4MDYxODhhZC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCisrKyAvZGV2L251
bGwKQEAgLTEsMjcgKzAsMCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0jIGFyZSBtZXQ6
Ci0jIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECi0jIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVECi0jIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKLSMgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTAotIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgotIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgotIyBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLAotIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotCi1tZXNzYWdlcyAtPiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkgewotICAgIFNob3co
V1RGOjpTdHJpbmcgdGl0bGUsIFdURjo6U3RyaW5nIGJvZHksIHVpbnQ2NF90IG5vdGlmaWNhdGlv
bklEKTsKLSAgICBDYW5jZWwodWludDY0X3Qgbm90aWZpY2F0aW9uSUQpOwotICAgIERpZERlc3Ry
b3lOb3RpZmljYXRpb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQpOwotfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHAKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ2MWIxYWQ3ODk2ZGFlOTcyOGUwNDcyYjNhZmI2NWVj
YTM4NGRlYmIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcAorKysg
L2Rldi9udWxsCkBAIC0xLDc1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
Ci0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0g
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmln
LmgiCi0jaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuaCIKLQotI2luY2x1ZGUgIldL
QVBJQ2FzdC5oIgotI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbi5oIgotI2luY2x1ZGUgIldlYk5v
dGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oIgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotdm9pZCBX
ZWJOb3RpZmljYXRpb25Qcm92aWRlcjo6c2hvdyhXZWJOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlv
bikKLXsKLSAgICBpZiAoIW1fY2xpZW50LnNob3cpCi0gICAgICAgIHJldHVybjsKLSAgICAKLSAg
ICBtX2NsaWVudC5zaG93KHRvQVBJKG5vdGlmaWNhdGlvbiksIG1fY2xpZW50LmNsaWVudEluZm8p
OwotfQotCi12b2lkIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyOjpjYW5jZWwoV2ViTm90aWZpY2F0
aW9uKiBub3RpZmljYXRpb24pCi17Ci0gICAgaWYgKCFtX2NsaWVudC5jYW5jZWwpCi0gICAgICAg
IHJldHVybjsKLSAgICAKLSAgICBtX2NsaWVudC5jYW5jZWwodG9BUEkobm90aWZpY2F0aW9uKSwg
bV9jbGllbnQuY2xpZW50SW5mbyk7Ci19Ci0KLXZvaWQgV2ViTm90aWZpY2F0aW9uUHJvdmlkZXI6
OmRpZERlc3Ryb3lOb3RpZmljYXRpb24oV2ViTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24pCi17
Ci0gICAgaWYgKCFtX2NsaWVudC5kaWREZXN0cm95Tm90aWZpY2F0aW9uKQotICAgICAgICByZXR1
cm47Ci0gICAgCi0gICAgbV9jbGllbnQuZGlkRGVzdHJveU5vdGlmaWNhdGlvbih0b0FQSShub3Rp
ZmljYXRpb24pLCBtX2NsaWVudC5jbGllbnRJbmZvKTsKLX0KLQotdm9pZCBXZWJOb3RpZmljYXRp
b25Qcm92aWRlcjo6YWRkTm90aWZpY2F0aW9uTWFuYWdlcihXZWJOb3RpZmljYXRpb25NYW5hZ2Vy
UHJveHkqIG1hbmFnZXIpCi17Ci0gICAgaWYgKCFtX2NsaWVudC5hZGROb3RpZmljYXRpb25NYW5h
Z2VyKQotICAgICAgICByZXR1cm47Ci0gICAgCi0gICAgbV9jbGllbnQuYWRkTm90aWZpY2F0aW9u
TWFuYWdlcih0b0FQSShtYW5hZ2VyKSwgbV9jbGllbnQuY2xpZW50SW5mbyk7Ci19Ci0KLXZvaWQg
V2ViTm90aWZpY2F0aW9uUHJvdmlkZXI6OnJlbW92ZU5vdGlmaWNhdGlvbk1hbmFnZXIoV2ViTm90
aWZpY2F0aW9uTWFuYWdlclByb3h5KiBtYW5hZ2VyKQotewotICAgIGlmICghbV9jbGllbnQucmVt
b3ZlTm90aWZpY2F0aW9uTWFuYWdlcikKLSAgICAgICAgcmV0dXJuOwotICAgIAotICAgIG1fY2xp
ZW50LnJlbW92ZU5vdGlmaWNhdGlvbk1hbmFnZXIodG9BUEkobWFuYWdlciksIG1fY2xpZW50LmNs
aWVudEluZm8pOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOb3RpZmljYXRpb25Qcm92aWRlci5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmgKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGZmNDBiYThmN2QwZjlmYjBkNGQ5MTUxODkwNmQzYjEzNGU4MzZlN2Iu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmgKKysrIC9kZXYvbnVsbApA
QCAtMSw1MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBXZWJOb3RpZmljYXRpb25Qcm92
aWRlcl9oCi0jZGVmaW5lIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyX2gKLQotI2luY2x1ZGUgIkFQ
SUNsaWVudC5oIgotI2luY2x1ZGUgIldLTm90aWZpY2F0aW9uUHJvdmlkZXIuaCIKLSNpbmNsdWRl
IDx3dGYvRm9yd2FyZC5oPgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgV2ViTm90aWZp
Y2F0aW9uOwotY2xhc3MgV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5OwotICAgIAotY2xhc3Mg
V2ViTm90aWZpY2F0aW9uUHJvdmlkZXIgOiBwdWJsaWMgQVBJQ2xpZW50PFdLTm90aWZpY2F0aW9u
UHJvdmlkZXIsIGtXS05vdGlmaWNhdGlvblByb3ZpZGVyQ3VycmVudFZlcnNpb24+IHsKLXB1Ymxp
YzoKLSAgICB2b2lkIHNob3coV2ViTm90aWZpY2F0aW9uKik7Ci0gICAgdm9pZCBjYW5jZWwoV2Vi
Tm90aWZpY2F0aW9uKik7Ci0gICAgdm9pZCBkaWREZXN0cm95Tm90aWZpY2F0aW9uKFdlYk5vdGlm
aWNhdGlvbiopOwotCi0gICAgdm9pZCBhZGROb3RpZmljYXRpb25NYW5hZ2VyKFdlYk5vdGlmaWNh
dGlvbk1hbmFnZXJQcm94eSopOwotICAgIHZvaWQgcmVtb3ZlTm90aWZpY2F0aW9uTWFuYWdlcihX
ZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkqKTsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktp
dAotCi0jZW5kaWYgLy8gV2ViTm90aWZpY2F0aW9uUHJvdmlkZXJfaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBiOTc3ZDg4ZWYwMzNkNWY2NzQwZGU0MTQ2
OTUyYzUzMDNiMjNhODM0Li5lZmY2NjExNjZlMzZiMDUwYmE2N2E1YzIwM2Y5MWYxYjcxNTI0NDUw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMzcsNiAr
MzcsOCBAQAogI2luY2x1ZGUgIk5hdGl2ZVdlYktleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJO
YXRpdmVXZWJNb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiTmF0aXZlV2ViV2hlZWxFdmVudC5oIgor
I2luY2x1ZGUgIk5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmgiCisjaW5jbHVkZSAiTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiUGFnZUNsaWVu
dC5oIgogI2luY2x1ZGUgIlByaW50SW5mby5oIgogI2luY2x1ZGUgIlNlc3Npb25TdGF0ZS5oIgpA
QCAtMTQ2LDYgKzE0OCw3IEBAIFdlYlBhZ2VQcm94eTo6V2ViUGFnZVByb3h5KFBhZ2VDbGllbnQq
IHBhZ2VDbGllbnQsIFBhc3NSZWZQdHI8V2ViUHJvY2Vzc1Byb3h5PiBwCiAgICAgLCBtX21haW5G
cmFtZSgwKQogICAgICwgbV91c2VyQWdlbnQoc3RhbmRhcmRVc2VyQWdlbnQoKSkKICAgICAsIG1f
Z2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIodGhpcykKKyAgICAsIG1fbm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKHRoaXMpCiAgICAgLCBtX2VzdGltYXRlZFBy
b2dyZXNzKDApCiAgICAgLCBtX2lzSW5XaW5kb3cobV9wYWdlQ2xpZW50LT5pc1ZpZXdJbldpbmRv
dygpKQogICAgICwgbV9pc1Zpc2libGUobV9wYWdlQ2xpZW50LT5pc1ZpZXdWaXNpYmxlKCkpCkBA
IC0zNjQsNiArMzY3LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNsb3NlKCkKICAgICB9CiAKICAg
ICBtX2dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmludmFsaWRhdGVSZXF1ZXN0
cygpOworICAgIG1fbm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmludmFsaWRh
dGVSZXF1ZXN0cygpOwogCiAgICAgbV90b29sVGlwID0gU3RyaW5nKCk7CiAKQEAgLTMxMzMsNiAr
MzEzNyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpwcm9jZXNzRGlkQ3Jhc2goKQogICAgIH0KIAog
ICAgIG1fZ2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaW52YWxpZGF0ZVJlcXVl
c3RzKCk7CisgICAgbV9ub3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaW52YWxp
ZGF0ZVJlcXVlc3RzKCk7CiAKICAgICBtX3Rvb2xUaXAgPSBTdHJpbmcoKTsKIApAQCAtMzI5NSw2
ICszMzAwLDE4IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNz
aW9uRm9yRnJhbWUodWludDY0X3QgZ2VvbG9jYXRpb25JRCwKICAgICAgICAgcmVxdWVzdC0+ZGVu
eSgpOwogfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Np
b24odWludDY0X3QgcmVxdWVzdElELCBjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIpCit7
CisgICAgaWYgKCFpc1JlcXVlc3RJRFZhbGlkKHJlcXVlc3RJRCkpCisgICAgICAgIHJldHVybjsK
KworICAgIFJlZlB0cjxXZWJTZWN1cml0eU9yaWdpbj4gb3JpZ2luID0gV2ViU2VjdXJpdHlPcmln
aW46OmNyZWF0ZShvcmlnaW5JZGVudGlmaWVyKTsKKyAgICBSZWZQdHI8Tm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3Q+IHJlcXVlc3QgPSBtX25vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlci5jcmVhdGVSZXF1ZXN0KHJlcXVlc3RJRCk7CisgICAgCisgICAgaWYgKCFtX3VpQ2xp
ZW50LmRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KHRoaXMsIG9y
aWdpbi5nZXQoKSwgcmVxdWVzdC5nZXQoKSkpCisgICAgICAgIHJlcXVlc3QtPmRlbnkoKTsKK30K
KwogZmxvYXQgV2ViUGFnZVByb3h5OjpoZWFkZXJIZWlnaHQoV2ViRnJhbWVQcm94eSogZnJhbWUp
CiB7CiAgICAgcmV0dXJuIG1fdWlDbGllbnQuaGVhZGVySGVpZ2h0KHRoaXMsIGZyYW1lKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA4MjU1Y2Y0MWZjM2Y2ZGQx
MjYzMTQ2YTBiNmRkMjM3NzFkZjQ3ZDA1Li40N2ZjZDZjMDIyM2I4Y2E0YWEyMDcxMWY4NWRmNDg3
YTAxN2NiNDlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0z
Niw2ICszNiw3IEBACiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKICNpbmNsdWRlICJOYXRpdmVX
ZWJUb3VjaEV2ZW50LmgiCiAjZW5kaWYKKyNpbmNsdWRlICJOb3RpZmljYXRpb25QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtUHJvY2Vzc0lkZW50aWZp
ZXIuaCIKICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSAiU2hhcmVhYmxl
Qml0bWFwLmgiCkBAIC02ODUsNiArNjg2LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlYXR0YWNo
VG9XZWJQcm9jZXNzKCk7CiAgICAgdm9pZCByZWF0dGFjaFRvV2ViUHJvY2Vzc1dpdGhJdGVtKFdl
YkJhY2tGb3J3YXJkTGlzdEl0ZW0qKTsKIAorICAgIHZvaWQgcmVxdWVzdE5vdGlmaWNhdGlvblBl
cm1pc3Npb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRl
bnRpZmllcik7CisgICAgCiAjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgdm9pZCBw
YWdlRGlkUmVxdWVzdFNjcm9sbChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpOwogI2VuZGlmCkBA
IC04NjksNiArODcyLDcgQEAgcHJpdmF0ZToKICAgICBDb250ZXh0TWVudVN0YXRlIG1fYWN0aXZl
Q29udGV4dE1lbnVTdGF0ZTsKICAgICBSZWZQdHI8V2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQ
cm94eT4gbV9vcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcjsKICAgICBHZW9sb2NhdGlvblBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5IG1fZ2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXI7CisgICAgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkgbV9ub3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7CiAKICAgICBkb3VibGUgbV9lc3RpbWF0
ZWRQcm9ncmVzczsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkubWVzc2FnZXMuaW4KaW5kZXggNmQyYWIzOWUxNjFhZmMxYmNjN2UyNzVlYjNhOTI4YzJhZjY3
ZmU4YS4uNWUzZDY5ODkxN2U5Yjc2NzVmMDk3N2RlM2MyMTMwODMzNDM3MTlmNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0x
OTQsNiArMTk0LDkgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKIAogICAgICMgR2VvbG9j
YXRpb24gbWVzc2FnZXMKICAgICBSZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUo
dWludDY0X3QgZ2VvbG9jYXRpb25JRCwgdWludDY0X3QgZnJhbWVJRCwgV1RGOjpTdHJpbmcgb3Jp
Z2luSWRlbnRpZmllcikKKyAgICAKKyAgICAjIE5vdGlmaWNhdGlvbiBtZXNzYWdlcworICAgIFJl
cXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgV1RGOjpTdHJp
bmcgb3JpZ2luSWRlbnRpZmllcikKIAogICAgICMgU3BlbGxpbmcgYW5kIGdyYW1tYXIgbWVzc2Fn
ZXMKICNpZiBVU0UoVU5JRklFRF9URVhUX0NIRUNLSU5HKSAgCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IDBiMmIxODdjNjBkODE5ZGUwZGI2MjQ5
NjlmNGRjNTdhMTRiY2MwOWYuLjBjMTFjYWE1YjliODVmZTJjNTg0MzA3YjI5Yjk5NTU3ZDIwMjc1
ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBA
IC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiV2ViQmFja0ZvcndhcmRMaXN0SXRlbS5oIgogI2lu
Y2x1ZGUgIldlYkNvbnRleHQuaCIKICNpbmNsdWRlICJXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlLmgi
CisjaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiV2Vi
UGFnZVByb3h5LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAi
V2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKQEAgLTMzMiw2ICszMzMsMTEgQEAgdm9pZCBXZWJQ
cm9jZXNzUHJveHk6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBj
b25uZWN0aW9uLCBDb3IKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIGlmIChtZXNzYWdl
SUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5Pigp
KSB7CisgICAgICAgIG1fY29udGV4dC0+bm90aWZpY2F0aW9uTWFuYWdlclByb3h5KCktPmRpZFJl
Y2VpdmVTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cywgcmVwbHkp
OworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgdWludDY0X3QgcGFnZUlEID0gYXJndW1l
bnRzLT5kZXN0aW5hdGlvbklEKCk7CiAgICAgaWYgKCFwYWdlSUQpCiAgICAgICAgIHJldHVybjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVUlDbGllbnQuY3BwCmluZGV4IGYxMzcwYWY1YTA3
NjUxOWVkNmYzY2EwYjVkYzY1YjM3MDAwOTlkZDMuLjQwMzg0ZjhlYWE1OTYzYTI2MGM0ODY1YWY3
NjA5MjY3OWFkOTlhZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJV
SUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmNw
cApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkltbXV0YWJsZURpY3Rpb25hcnkuaCIKICNp
bmNsdWRlICJOYXRpdmVXZWJLZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiTmF0aXZlV2ViV2hl
ZWxFdmVudC5oIgorI2luY2x1ZGUgIk5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmgiCiAj
aW5jbHVkZSAiV0tBUElDYXN0LmgiCiAjaW5jbHVkZSAiV2ViTnVtYmVyLmgiCiAjaW5jbHVkZSAi
V2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eS5oIgpAQCAtMzMxLDYgKzMzMiwxNSBAQCBi
b29sIFdlYlVJQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1
ZXN0KFdlYlBhZ2VQcm94eSogcGFnZQogICAgIHJldHVybiB0cnVlOwogfQogCitib29sIFdlYlVJ
Q2xpZW50OjpkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJQ
YWdlUHJveHkqIHBhZ2UsIFdlYlNlY3VyaXR5T3JpZ2luKiBvcmlnaW4sIE5vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0KiBwZXJtaXNzaW9uUmVxdWVzdCkKK3sKKyAgICBpZiAoIW1fY2xpZW50
LmRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgCisgICAgbV9jbGllbnQuZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0
aW9uUGVybWlzc2lvblJlcXVlc3QodG9BUEkocGFnZSksIHRvQVBJKG9yaWdpbiksIHRvQVBJKHBl
cm1pc3Npb25SZXF1ZXN0KSwgbV9jbGllbnQuY2xpZW50SW5mbyk7CisgICAgcmV0dXJuIHRydWU7
Cit9CisKIGZsb2F0IFdlYlVJQ2xpZW50OjpoZWFkZXJIZWlnaHQoV2ViUGFnZVByb3h5KiBwYWdl
LCBXZWJGcmFtZVByb3h5KiBmcmFtZSkKIHsKICAgICBpZiAoIW1fY2xpZW50LmhlYWRlckhlaWdo
dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmgKaW5kZXggNTZlMDk4OGNiNzU1
M2NjOTQ5MTgzMzliMGZkM2YzYjNiNjNmNzhmZi4uODM1ZTZjZWI3YTA2YjNiMzgzMmEyYWQxY2E0
NzgzOTAyNzU1ZjMxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVJ
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmgKQEAg
LTQ3LDYgKzQ3LDcgQEAgY2xhc3MgQVBJT2JqZWN0OwogY2xhc3MgR2VvbG9jYXRpb25QZXJtaXNz
aW9uUmVxdWVzdFByb3h5OwogY2xhc3MgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudDsKIGNsYXNzIE5h
dGl2ZVdlYldoZWVsRXZlbnQ7CitjbGFzcyBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDsK
IGNsYXNzIFdlYkRhdGE7CiBjbGFzcyBXZWJGcmFtZVByb3h5OwogY2xhc3MgV2ViUGFnZVByb3h5
OwpAQCAtOTksNiArMTAwLDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBydW5PcGVuUGFuZWwoV2Vi
UGFnZVByb3h5KiwgV2ViRnJhbWVQcm94eSosIFdlYk9wZW5QYW5lbFBhcmFtZXRlcnMqLCBXZWJP
cGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5Kik7CiAgICAgYm9vbCBkZWNpZGVQb2xpY3lGb3JH
ZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSosIFdlYkZyYW1lUHJveHkq
LCBXZWJTZWN1cml0eU9yaWdpbiosIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RQcm94eSop
OworICAgIGJvb2wgZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Qo
V2ViUGFnZVByb3h5KiwgV2ViU2VjdXJpdHlPcmlnaW4qLCBOb3RpZmljYXRpb25QZXJtaXNzaW9u
UmVxdWVzdCopOwogCiAgICAgLy8gUHJpbnRpbmcuCiAgICAgZmxvYXQgaGVhZGVySGVpZ2h0KFdl
YlBhZ2VQcm94eSosIFdlYkZyYW1lUHJveHkqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktp
dDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAxZmZlOWE5ZTg3NDJmYzgxOTA1N2Ji
Y2YyMTVmYmZlNDYxM2YwNDQwLi5jM2YzNTA5OGQxMmIwOTdiNjMwMzdmYmYwOTk0ZTFlZGZkZWYy
NTAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC0yNDYsMTMgKzI0NiwxMCBAQAogCQkxQ0E4Qjk1NDEyN0M4OTE1MDA1NzZDMkIg
LyogV2ViSW5zcGVjdG9yTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMUM4RTJEQUQxMjc4QzVCMjAwQkM3QkQwIC8qIFdlYkluc3BlY3Rvck1hYy5t
bSAqLzsgfTsKIAkJMjlDRDU1QUExMjhFMjk0RjAwMTMzQzg1IC8qIFdLQWNjZXNzaWJpbGl0eVdl
YlBhZ2VPYmplY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDI5Q0Q1NUE4MTI4RTI5NEYwMDEzM0M4NSAvKiBXS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2Jq
ZWN0LmggKi87IH07CiAJCTI5Q0Q1NUFCMTI4RTI5NEYwMDEzM0M4NSAvKiBXS0FjY2Vzc2liaWxp
dHlXZWJQYWdlT2JqZWN0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMjlDRDU1QTkxMjhFMjk0RjAwMTMzQzg1IC8qIFdLQWNjZXNzaWJpbGl0eVdlYlBh
Z2VPYmplY3QubW0gKi87IH07Ci0JCTMxMDk5OTZGMTQ2Qzc0MUQwMDI5REVCOSAvKiBXZWJOb3Rp
ZmljYXRpb25NYW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDMxMDk5OTZBMTQ2QzczOTIwMDI5REVCOSAvKiBXZWJOb3RpZmljYXRpb25N
YW5hZ2VyUHJveHkuaCAqLzsgfTsKLQkJMzEwOTk5NzAxNDZDNzQyMDAwMjlERUI5IC8qIFdlYk5v
dGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAzMTA5OTk2QjE0NkM3M0IxMDAyOURFQjkgLyogV2ViTm90aWZpY2F0
aW9uTWFuYWdlclByb3h5LmNwcCAqLzsgfTsKIAkJMzEwOTk5NzMxNDZDNzVBMjAwMjlERUI5IC8q
IFdlYk5vdGlmaWNhdGlvbkNsaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAzMTA5OTk3MTE0NkM3NTlCMDAyOURFQjkgLyogV2ViTm90aWZpY2F0
aW9uQ2xpZW50LmNwcCAqLzsgfTsKIAkJMzEwOTk5N0ExNDZDOEIxNDAwMjlERUI5IC8qIFdlYk5v
dGlmaWNhdGlvbk1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMzEwOTk5NzgxNDZDOEIxNDAwMjlERUI5IC8qIFdlYk5vdGlmaWNhdGlvbk1h
bmFnZXIuY3BwICovOyB9OwogCQkzMTA5OTk3QjE0NkM4QjE0MDAyOURFQjkgLyogV2ViTm90aWZp
Y2F0aW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMzEwOTk5NzkxNDZDOEIxNDAwMjlERUI5IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXIu
aCAqLzsgfTsKIAkJMzEwOTk5QzcxNDZDOUUzRDAwMjlERUI5IC8qIFdlYk5vdGlmaWNhdGlvbkNs
aWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEw
OTk5NjgxNDZDNzFGNTAwMjlERUI5IC8qIFdlYk5vdGlmaWNhdGlvbkNsaWVudC5oICovOyB9Owot
CQkzMTJDMEM0NzE0NkREQkJEMDAxNkM5MTEgLyogV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEyQzBDNDYx
NDZEREJCQzAwMTZDOTExIC8qIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcCAqLzsgfTsKIAkJ
MzEyQzBDNEExNDZEREM4QTAwMTZDOTExIC8qIFdLTm90aWZpY2F0aW9uUHJvdmlkZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMkMwQzQ5MTQ2RERD
OEEwMDE2QzkxMSAvKiBXS05vdGlmaWNhdGlvblByb3ZpZGVyLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMzE4QkUxNjcxNDczNDMzNzAwQThGQkIy
IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMThCRTE2NTE0NzM0MzM3
MDBBOEZCQjIgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNw
cCAqLzsgfTsKIAkJMzE4QkUxNjgxNDczNDMzNzAwQThGQkIyIC8qIFdlYk5vdGlmaWNhdGlvbk1h
bmFnZXJQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAzMThCRTE2NjE0NzM0MzM3MDBBOEZCQjIgLyogV2ViTm90aWZpY2F0aW9uTWFu
YWdlclByb3h5TWVzc2FnZXMuaCAqLzsgfTsKQEAgLTI2MCwxMCArMjU3LDIyIEBACiAJCTMxOEJF
MTc1MTQ3NDNERDcwMEE4RkJCMiAvKiBXS05vdGlmaWNhdGlvbk1hbmFnZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE4QkUxNzQxNDc0M0RENjAw
QThGQkIyIC8qIFdLTm90aWZpY2F0aW9uTWFuYWdlci5jcHAgKi87IH07CiAJCTMxOEJFMTc3MTQ3
NDNFNjAwMEE4RkJCMiAvKiBXS05vdGlmaWNhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMThCRTE3NjE0NzQzRTYwMDBBOEZCQjIgLyogV0tO
b3RpZmljYXRpb24uY3BwICovOyB9OwogCQkzMThCRTE3OTE0NzQzRTZGMDBBOEZCQjIgLyogV0tO
b3RpZmljYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDMxOEJFMTc4MTQ3NDNFNkEwMEE4RkJCMiAvKiBXS05vdGlmaWNhdGlvbi5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTMxQTJFQzNFMTQ4OTc0
MzcwMDgxMEQ3MSAvKiBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFBMkVDM0MxNDg5
NzQzNzAwODEwRDcxIC8qIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAg
Ki87IH07CisJCTMxQTJFQzNGMTQ4OTc0MzcwMDgxMEQ3MSAvKiBOb3RpZmljYXRpb25QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDMxQTJFQzNEMTQ4OTc0MzcwMDgxMEQ3MSAvKiBOb3RpZmljYXRpb25QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXIuaCAqLzsgfTsKKwkJMzFBMkVDNDgxNDg5OTdDMjAwODEwRDcxIC8q
IFdlYk5vdGlmaWNhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAzMUEyRUM0MTE0ODk5N0JFMDA4MTBENzEgLyogV2ViTm90aWZpY2F0aW9uLmNw
cCAqLzsgfTsKKwkJMzFBMkVDNDkxNDg5OTdDMjAwODEwRDcxIC8qIFdlYk5vdGlmaWNhdGlvbi5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFBMkVDNDIx
NDg5OTdCRTAwODEwRDcxIC8qIFdlYk5vdGlmaWNhdGlvbi5oICovOyB9OworCQkzMUEyRUM0QTE0
ODk5N0MyMDA4MTBENzEgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxQTJFQzQzMTQ4OTk3QkUw
MDgxMEQ3MSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwICovOyB9OworCQkzMUEy
RUM0QjE0ODk5N0MyMDA4MTBENzEgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUEyRUM0NDE0ODk5
N0JGMDA4MTBENzEgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmggKi87IH07CisJCTMx
QTJFQzREMTQ4OTk3QzIwMDgxMEQ3MSAvKiBXZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUEyRUM0NjE0ODk5
N0MwMDA4MTBENzEgLyogV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwICovOyB9OworCQkzMUEy
RUM0RTE0ODk5N0MyMDA4MTBENzEgLyogV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxQTJFQzQ3MTQ4OTk3QzEw
MDgxMEQ3MSAvKiBXZWJOb3RpZmljYXRpb25Qcm92aWRlci5oICovOyB9OworCQkzMUEyRUM1MDE0
ODk5ODA1MDA4MTBENzEgLyogTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFB
MkVDNEYxNDg5OTgwNTAwODEwRDcxIC8qIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5LmNwcCAqLzsgfTsKKwkJMzFBMkVDNTIxNDg5OTgxOTAwODEwRDcxIC8qIE5vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUEyRUM1MTE0ODk5ODE1MDA4MTBENzEgLyog
Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCAqLzsgfTsKKwkJMzFB
MkVDNTUxNDg5OTgyRTAwODEwRDcxIC8qIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxQTJFQzU0
MTQ4OTk4MkUwMDgxMEQ3MSAvKiBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5jcHAgKi87
IH07CisJCTMxQTJFQzU2MTQ4OTlDMDkwMDgxMEQ3MSAvKiBOb3RpZmljYXRpb25QZXJtaXNzaW9u
UmVxdWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MzFBMkVDNTMxNDg5OTgyNTAwODEwRDcxIC8qIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
LmggKi87IH07CisJCTMxQTJFQzc0MTQ4RDU5Q0EwMDgxMEQ3MSAvKiBXS05vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAzMUEyRUM3MjE0OEQ1OUJCMDA4MTBENzEgLyogV0tOb3RpZmljYXRpb25QZXJtaXNz
aW9uUmVxdWVzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTMxQTJFQzc3MTQ4RDY2MkUwMDgxMEQ3MSAvKiBXS05vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDMxQTJFQzc1MTQ4RDY1QkIwMDgxMEQ3MSAvKiBXS05vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0LmNwcCAqLzsgfTsKIAkJMzFCQTkyNEQxNDg4MzEyNjAwNjJFREI1IC8qIFdlYk5vdGlm
aWNhdGlvbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFCQTkyNDgxNDg4MzA4MTAwNjJFREI1IC8qIFdlYk5v
dGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQkzMUJBOTI0RTE0
ODgzMTI2MDA2MkVEQjUgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUJBOTI0OTE0ODgzMDgx
MDA2MkVEQjUgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VzLmggKi87IH07Ci0JCTMx
QzExQUIzMTQ4NDUyRTkwMDQ5QTRDQyAvKiBXZWJOb3RpZmljYXRpb24uY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFDMTFBQjExNDg0NTJFOTAwNDlB
NENDIC8qIFdlYk5vdGlmaWNhdGlvbi5jcHAgKi87IH07Ci0JCTMxQzExQUI0MTQ4NDUyRTkwMDQ5
QTRDQyAvKiBXZWJOb3RpZmljYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDMxQzExQUIyMTQ4NDUyRTkwMDQ5QTRDQyAvKiBXZWJOb3RpZmljYXRp
b24uaCAqLzsgfTsKIAkJMzFFQTI1RDIxMzRGNzhDMDAwNUIxNDUyIC8qIE5hdGl2ZVdlYk1vdXNl
RXZlbnRNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAzMUVBMjVEMDEzNEY3OEIyMDA1QjE0NTIgLyogTmF0aXZlV2ViTW91c2VFdmVudE1hYy5tbSAq
LzsgfTsKIAkJMzMwOTM0NDcxMzE1QjkyMjAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMzMwOTM0NDMxMzE1QjkyMjAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJNZXNzYWdl
UmVjZWl2ZXIuY3BwICovOyB9OwogCQkzMzA5MzQ0ODEzMTVCOTIyMDA5N0E3QkMgLyogV2ViQ29v
a2llTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAzMzA5MzQ0NDEzMTVCOTIyMDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlck1l
c3NhZ2VzLmggKi87IH07CkBAIC0xMjI1LDE0ICsxMjM0LDkgQEAKIAkJMjlDRDU1QTgxMjhFMjk0
RjAwMTMzQzg1IC8qIFdLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3QuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyOUNENTVBOTEyOEUyOTRGMDAxMzNDODUgLyogV0tB
Y2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFdLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3QubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTMxMDk5OTY4MTQ2QzcxRjUwMDI5REVCOSAvKiBXZWJOb3RpZmlj
YXRpb25DbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViTm90aWZpY2F0aW9uQ2xpZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTMxMDk5OTZBMTQ2QzczOTIwMDI5REVCOSAvKiBX
ZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViTm90aWZpY2F0
aW9uTWFuYWdlclByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTMxMDk5OTZC
MTQ2QzczQjEwMDI5REVCOSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViTm90aWZpY2F0aW9uTWFuYWdlclBy
b3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMzEwOTk5NkQxNDZDNzNDNDAw
MjlERUI5IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW47
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxMDk5OTcxMTQ2Qzc1OUIwMDI5REVCOSAv
KiBXZWJOb3RpZmljYXRpb25DbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gV2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMzEwOTk5NzgxNDZDOEIxNDAwMjlERUI5IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFn
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViTm90aWZpY2F0
aW9uTWFuYWdlci5jcHA7IHBhdGggPSBOb3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFn
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMTA5OTk3OTE0NkM4QjE0MDAy
OURFQjkgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBXZWJOb3RpZmljYXRpb25NYW5hZ2VyLmg7IHBhdGggPSBOb3RpZmljYXRpb25z
L1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
MzEyQzBDNDYxNDZEREJCQzAwMTZDOTExIC8qIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYk5vdGlmaWNhdGlvblByb3Zp
ZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMzEyQzBDNDgxNDZEREJEMzAw
MTZDOTExIC8qIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYk5v
dGlmaWNhdGlvblByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxMkMw
QzQ5MTQ2RERDOEEwMDE2QzkxMSAvKiBXS05vdGlmaWNhdGlvblByb3ZpZGVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLTm90aWZpY2F0aW9uUHJvdmlkZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzE4QkUxNjUxNDczNDMzNzAwQThGQkIyIC8qIFdlYk5v
dGlmaWNhdGlvbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHlNZXNzYWdl
UmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMThCRTE2NjE0NzM0
MzM3MDBBOEZCQjIgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5
TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEyNDAsMTAgKzEyNDQs
MjMgQEAKIAkJMzE4QkUxNzQxNDc0M0RENjAwQThGQkIyIC8qIFdLTm90aWZpY2F0aW9uTWFuYWdl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS05vdGlmaWNhdGlv
bk1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMThCRTE3NjE0NzQz
RTYwMDBBOEZCQjIgLyogV0tOb3RpZmljYXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gV0tOb3RpZmljYXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkzMThCRTE3ODE0NzQzRTZBMDBBOEZCQjIgLyogV0tOb3RpZmljYXRpb24uaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV0tOb3RpZmljYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMzFBMkVDM0MxNDg5NzQzNzAwODEwRDcxIC8qIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwOyBwYXRoID0gTm90aWZpY2F0aW9u
cy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkzMUEyRUMzRDE0ODk3NDM3MDA4MTBENzEgLyogTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oOyBwYXRoID0gTm90aWZp
Y2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzFBMkVDNDExNDg5OTdCRTAwODEwRDcxIC8qIFdlYk5vdGlm
aWNhdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJOb3Rp
ZmljYXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMUEyRUM0MjE0ODk5
N0JFMDA4MTBENzEgLyogV2ViTm90aWZpY2F0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdlYk5vdGlmaWNhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkzMUEyRUM0MzE0ODk5N0JFMDA4MTBENzEgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYk5vdGlmaWNhdGlv
bk1hbmFnZXJQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxQTJFQzQ0
MTQ4OTk3QkYwMDgxMEQ3MSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxQTJFQzQ1MTQ4OTk3QkYwMDgxMEQ3MSAv
KiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkzMUEyRUM0NjE0ODk5N0MwMDA4MTBENzEgLyogV2ViTm90
aWZpY2F0aW9uUHJvdmlkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkzMUEyRUM0NzE0ODk5N0MxMDA4MTBENzEgLyogV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViTm90aWZpY2F0aW9uUHJvdmlk
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzFBMkVDNEYxNDg5OTgwNTAwODEw
RDcxIC8qIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzFB
MkVDNTExNDg5OTgxNTAwODEwRDcxIC8qIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxQTJFQzUzMTQ4
OTk4MjUwMDgxMEQ3MSAvKiBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkzMUEyRUM1NDE0ODk5ODJFMDA4MTBENzEgLyogTm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkzMUEyRUM3MjE0OEQ1OUJCMDA4MTBENzEgLyogV0tOb3RpZmljYXRpb25QZXJtaXNz
aW9uUmVxdWVzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxQTJFQzc1MTQ4RDY1QkIwMDgx
MEQ3MSAvKiBXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Qu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMUJBOTI0ODE0ODgzMDgxMDA2MkVE
QjUgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2Fn
ZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzFCQTkyNDkxNDg4
MzA4MTAwNjJFREI1IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZXMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMzFDMTFBQjExNDg0NTJFOTAwNDlBNEND
IC8qIFdlYk5vdGlmaWNhdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXZWJOb3RpZmljYXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkz
MUMxMUFCMjE0ODQ1MkU5MDA0OUE0Q0MgLyogV2ViTm90aWZpY2F0aW9uLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYk5vdGlmaWNhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkzMUVBMjVEMDEzNEY3OEIyMDA1QjE0NTIgLyogTmF0aXZlV2ViTW91c2VF
dmVudE1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE5hdGl2ZVdlYk1vdXNlRXZlbnRNYWMu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxRUEyNUQzMTM0Rjc4RDYwMDVCMTQ1
MiAvKiBOYXRpdmVXZWJNb3VzZUV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IE5hdGl2ZVdlYk1vdXNlRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MzJEQkNGNUUwMzcwQURFRTAwQzkxNzgzIC8qIFdlYktpdDJQcmVmaXguaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViS2l0MlByZWZpeC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMjQ4MCwxMiArMjQ5NywzMiBAQAogCQkzMTA5OTk3NDE0NkM4QUE4MDAyOURF
QjkgLyogTm90aWZpY2F0aW9ucyAoVXNlcikgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJ
CWNoaWxkcmVuID0gKAorCQkJCTMxQTJFQzNDMTQ4OTc0MzcwMDgxMEQ3MSAvKiBOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwICovLAorCQkJCTMxQTJFQzNEMTQ4OTc0Mzcw
MDgxMEQ3MSAvKiBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCAqLywKIAkJ
CQkzMTA5OTk3ODE0NkM4QjE0MDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAg
Ki8sCiAJCQkJMzEwOTk5NzkxNDZDOEIxNDAwMjlERUI5IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFn
ZXIuaCAqLywKIAkJCSk7CiAJCQluYW1lID0gIk5vdGlmaWNhdGlvbnMgKFVzZXIpIjsKIAkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTMxQTJFQzQwMTQ4OTk3MzcwMDgxMEQ3MSAv
KiBOb3RpZmljYXRpb25zICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9
ICgKKwkJCQkzMUEyRUM0RjE0ODk5ODA1MDA4MTBENzEgLyogTm90aWZpY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwICovLAorCQkJCTMxQTJFQzUxMTQ4OTk4MTUwMDgxMEQ3
MSAvKiBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oICovLAorCQkJ
CTMxQTJFQzU0MTQ4OTk4MkUwMDgxMEQ3MSAvKiBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVz
dC5jcHAgKi8sCisJCQkJMzFBMkVDNTMxNDg5OTgyNTAwODEwRDcxIC8qIE5vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0LmggKi8sCisJCQkJMzFBMkVDNDExNDg5OTdCRTAwODEwRDcxIC8qIFdl
Yk5vdGlmaWNhdGlvbi5jcHAgKi8sCisJCQkJMzFBMkVDNDIxNDg5OTdCRTAwODEwRDcxIC8qIFdl
Yk5vdGlmaWNhdGlvbi5oICovLAorCQkJCTMxQTJFQzQzMTQ4OTk3QkUwMDgxMEQ3MSAvKiBXZWJO
b3RpZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwICovLAorCQkJCTMxQTJFQzQ0MTQ4OTk3QkYwMDgx
MEQ3MSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaCAqLywKKwkJCQkzMUEyRUM0NTE0
ODk5N0JGMDA4MTBENzEgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmlu
ICovLAorCQkJCTMxQTJFQzQ2MTQ4OTk3QzAwMDgxMEQ3MSAvKiBXZWJOb3RpZmljYXRpb25Qcm92
aWRlci5jcHAgKi8sCisJCQkJMzFBMkVDNDcxNDg5OTdDMTAwODEwRDcxIC8qIFdlYk5vdGlmaWNh
dGlvblByb3ZpZGVyLmggKi8sCisJCQkpOworCQkJcGF0aCA9IE5vdGlmaWNhdGlvbnM7CisJCQlz
b3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQkzMkM4OERGRjAzNzFDMjQyMDBDOTE3ODMg
LyogT3RoZXIgU291cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4g
PSAoCkBAIC0yNzU4LDYgKzI3OTUsNyBAQAogCQkJCTFBQjdENEM3MTI4OEFBOUEwMENGRDA4QyAv
KiBEb3dubG9hZHMgKi8sCiAJCQkJQkMxMTFCMTgxMTJGNUZCNDAwMzM3QkFCIC8qIExhdW5jaGVy
ICovLAogCQkJCUJDQ0YwODVDMTEzRjNCNzUwMEM2NTBDNSAvKiBtYWMgKi8sCisJCQkJMzFBMkVD
NDAxNDg5OTczNzAwODEwRDcxIC8qIE5vdGlmaWNhdGlvbnMgKi8sCiAJCQkJMUFFRkNDMDUxMUQw
MUYzNDAwODIxOUQzIC8qIFBsdWdpbnMgKi8sCiAJCQkJMUE2NDI1NjcxMkRFNDJFQzAwQ0FBRTJD
IC8qIEJhY2tpbmdTdG9yZS5jcHAgKi8sCiAJCQkJMUE2NDI1NjYxMkRFNDJFQzAwQ0FBRTJDIC8q
IEJhY2tpbmdTdG9yZS5oICovLApAQCAtMjg0OSwxMyArMjg4Nyw2IEBACiAJCQkJMzNEM0EzQjkx
MzM5NjA2MjAwNzA5QkU0IC8qIFdlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4g
Ki8sCiAJCQkJQkNGNjlGQTExMTc2RDAxNDAwNDcxQTUyIC8qIFdlYk5hdmlnYXRpb25EYXRhLmNw
cCAqLywKIAkJCQlCQ0Y2OUZBMDExNzZEMDE0MDA0NzFBNTIgLyogV2ViTmF2aWdhdGlvbkRhdGEu
aCAqLywKLQkJCQkzMUMxMUFCMTE0ODQ1MkU5MDA0OUE0Q0MgLyogV2ViTm90aWZpY2F0aW9uLmNw
cCAqLywKLQkJCQkzMUMxMUFCMjE0ODQ1MkU5MDA0OUE0Q0MgLyogV2ViTm90aWZpY2F0aW9uLmgg
Ki8sCi0JCQkJMzEwOTk5NkIxNDZDNzNCMTAwMjlERUI5IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFn
ZXJQcm94eS5jcHAgKi8sCi0JCQkJMzEwOTk5NkExNDZDNzM5MjAwMjlERUI5IC8qIFdlYk5vdGlm
aWNhdGlvbk1hbmFnZXJQcm94eS5oICovLAotCQkJCTMxMDk5OTZEMTQ2QzczQzQwMDI5REVCOSAv
KiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gKi8sCi0JCQkJMzEyQzBD
NDYxNDZEREJCQzAwMTZDOTExIC8qIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcCAqLywKLQkJ
CQkzMTJDMEM0ODE0NkREQkQzMDAxNkM5MTEgLyogV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuaCAq
LywKIAkJCQlCQzFERkVBMzEyQjMxRjg3MDA1REY3MzAgLyogV2ViT3BlblBhbmVsUmVzdWx0TGlz
dGVuZXJQcm94eS5jcHAgKi8sCiAJCQkJQkMxREZFQTIxMkIzMUY4NzAwNURGNzMwIC8qIFdlYk9w
ZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHkuaCAqLywKIAkJCQk1MTUzNTY5QTEyOTFCMUQyMDAw
NzQ5REMgLyogV2ViUGFnZUNvbnRleHRNZW51Q2xpZW50LmNwcCAqLywKQEAgLTI5NzYsNiArMzAw
Nyw4IEBACiAJCQkJNTE4QUNBRTkxMkFFRTZCQjAwQjA0QjgzIC8qIFdLUHJvdGVjdGlvblNwYWNl
VHlwZXMuaCAqLywKIAkJCQkzMzM2NzYzODEzMEM5OURDMDA2QzlERTIgLyogV0tSZXNvdXJjZUNh
Y2hlTWFuYWdlci5jcHAgKi8sCiAJCQkJMzMzNjc2MzkxMzBDOTlEQzAwNkM5REUyIC8qIFdLUmVz
b3VyY2VDYWNoZU1hbmFnZXIuaCAqLywKKwkJCQkzMUEyRUM3MjE0OEQ1OUJCMDA4MTBENzEgLyog
V0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oICovLAorCQkJCTMxQTJFQzc1MTQ4RDY1
QkIwMDgxMEQ3MSAvKiBXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcCAqLywKIAkJ
CSk7CiAJCQlwYXRoID0gQzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC00MDU1LDE1
ICs0MDg4LDIwIEBACiAJCQkJQkMwOUI4RjkxNDc0NjBGNzAwNUY1NjI1IC8qIFdlYkNvbnRleHRD
b25uZWN0aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkzNzg4QTA1QzE0NzQzQzkwMDA2
MzE5RTUgLyogV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyUHJpdmF0ZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkNFOUMwQjcxNDg0NzE0NzAwRTMzRDYxIC8qIFdlYkNvbm5lY3Rpb25NZXNzYWdl
S2luZHMuaCBpbiBIZWFkZXJzICovLAotCQkJCTMxMDk5OTZGMTQ2Qzc0MUQwMDI5REVCOSAvKiBX
ZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxMDk5OTdC
MTQ2QzhCMTQwMDI5REVCOSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyLmggaW4gSGVhZGVycyAq
LywKIAkJCQkzMTA5OTlDNzE0NkM5RTNEMDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9uQ2xpZW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTJDMEM0QTE0NkREQzhBMDAxNkM5MTEgLyogV0tOb3Rp
ZmljYXRpb25Qcm92aWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE4QkUxNjgxNDczNDMzNzAw
QThGQkIyIC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkzMThCRTE3MTE0NzQzREIxMDBBOEZCQjIgLyogV0tOb3RpZmljYXRpb25NYW5h
Z2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMThCRTE3OTE0NzQzRTZGMDBBOEZCQjIgLyogV0tO
b3RpZmljYXRpb24uaCBpbiBIZWFkZXJzICovLAotCQkJCTMxQzExQUI0MTQ4NDUyRTkwMDQ5QTRD
QyAvKiBXZWJOb3RpZmljYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTMxQkE5MjRFMTQ4ODMx
MjYwMDYyRURCNSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTMxQTJFQzNGMTQ4OTc0MzcwMDgxMEQ3MSAvKiBOb3RpZmljYXRpb25QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTMxQTJFQzQ5MTQ4OTk3QzIw
MDgxMEQ3MSAvKiBXZWJOb3RpZmljYXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTMxQTJFQzRC
MTQ4OTk3QzIwMDgxMEQ3MSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTMxQTJFQzRFMTQ4OTk3QzIwMDgxMEQ3MSAvKiBXZWJOb3RpZmljYXRpb25Q
cm92aWRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzFBMkVDNTIxNDg5OTgxOTAwODEwRDcxIC8q
IE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggaW4gSGVhZGVycyAq
LywKKwkJCQkzMUEyRUM1NjE0ODk5QzA5MDA4MTBENzEgLyogTm90aWZpY2F0aW9uUGVybWlzc2lv
blJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTMxQTJFQzc0MTQ4RDU5Q0EwMDgxMEQ3MSAv
KiBXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKIAkJCSk7
CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTQ3
NjYsMTYgKzQ4MDQsMjAgQEAKIAkJCQlCQzRBNjI5NjE0NzMxM0EwMDA2QzY4MUEgLyogV0tDb25u
ZWN0aW9uUmVmLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNEE2MkE3MTQ3NDRFQzcwMDZDNjgx
QSAvKiBXZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJD
MDlCOEY4MTQ3NDYwRjcwMDVGNTYyNSAvKiBXZWJDb250ZXh0Q29ubmVjdGlvbkNsaWVudC5jcHAg
aW4gU291cmNlcyAqLywKLQkJCQkzMTA5OTk3MDE0NkM3NDIwMDAyOURFQjkgLyogV2ViTm90aWZp
Y2F0aW9uTWFuYWdlclByb3h5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxMDk5OTczMTQ2Qzc1
QTIwMDI5REVCOSAvKiBXZWJOb3RpZmljYXRpb25DbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMzEwOTk5N0ExNDZDOEIxNDAwMjlERUI5IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCi0JCQkJMzEyQzBDNDcxNDZEREJCRDAwMTZDOTExIC8qIFdlYk5vdGlm
aWNhdGlvblByb3ZpZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxOEJFMTY3MTQ3MzQzMzcw
MEE4RkJCMiAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMzE4QkUxNzUxNDc0M0RENzAwQThGQkIyIC8qIFdLTm90aWZp
Y2F0aW9uTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMThCRTE3NzE0NzQzRTYwMDBB
OEZCQjIgLyogV0tOb3RpZmljYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMzFDMTFBQjMx
NDg0NTJFOTAwNDlBNENDIC8qIFdlYk5vdGlmaWNhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkzMUJBOTI0RDE0ODgzMTI2MDA2MkVEQjUgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlck1lc3Nh
Z2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0QzNjc1QzE0OEMyNkMwMDA0NDdF
ODcgLyogV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTMx
QTJFQzNFMTQ4OTc0MzcwMDgxMEQ3MSAvKiBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMzFBMkVDNDgxNDg5OTdDMjAwODEwRDcxIC8q
IFdlYk5vdGlmaWNhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkzMUEyRUM0QTE0ODk5N0My
MDA4MTBENzEgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCTMxQTJFQzREMTQ4OTk3QzIwMDgxMEQ3MSAvKiBXZWJOb3RpZmljYXRpb25Qcm92aWRl
ci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkzMUEyRUM1MDE0ODk5ODA1MDA4MTBENzEgLyogTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJMzFBMkVDNTUxNDg5OTgyRTAwODEwRDcxIC8qIE5vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTMxQTJFQzc3MTQ4RDY2MkUwMDgxMEQ3MSAv
KiBXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
KTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4wODI4ZjgzNDk4ZjVhZDFiMGRjY2NiMjEwMGE1OGY1ODQwMzQ3NWI5Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25z
L05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKQEAgLTAsMCArMSwxMjMg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTm90aWZpY2F0
aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgiCisKKyNpbmNsdWRlICJXZWJDb3JlQXJndW1l
bnRDb2RlcnMuaCIKKyNpbmNsdWRlICJXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHlNZXNzYWdl
cy5oIgorI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdl
cy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL05vdGlmaWNh
dGlvbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCisjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCitz
dGF0aWMgdWludDY0X3QgZ2VuZXJhdGVSZXF1ZXN0SUQoKQoreworICAgIHN0YXRpYyB1aW50NjRf
dCB1bmlxdWVSZXF1ZXN0SUQgPSAxOworICAgIHJldHVybiB1bmlxdWVSZXF1ZXN0SUQrKzsKK30K
KyNlbmRpZgorCitQYXNzUmVmUHRyPE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
cj4gTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpjcmVhdGUoV2ViUGFnZSog
cGFnZSkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IE5vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlcihwYWdlKSk7Cit9CisKK05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlcjo6Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKFdlYlBhZ2UqIHBh
Z2UpCisgICAgOiBtX3BhZ2UocGFnZSkKK3sKK30KKworTm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyOjp+Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCkKK3sK
K30KKwordm9pZCBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnN0YXJ0UmVx
dWVzdChTZWN1cml0eU9yaWdpbiogb3JpZ2luLCBQYXNzUmVmUHRyPFZvaWRDYWxsYmFjaz4gY2Fs
bGJhY2spCit7CisjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCisgICAgdWludDY0X3QgcmVxdWVz
dElEID0gZ2VuZXJhdGVSZXF1ZXN0SUQoKTsKKyAgICBtX29yaWdpblRvSURNYXAuc2V0KG9yaWdp
biwgcmVxdWVzdElEKTsKKyAgICBtX2lkVG9PcmlnaW5NYXAuc2V0KHJlcXVlc3RJRCwgb3JpZ2lu
KTsKKyAgICBtX2lkVG9DYWxsYmFja01hcC5zZXQocmVxdWVzdElELCBjYWxsYmFjayk7CisgICAg
bV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJlcXVlc3ROb3RpZmljYXRpb25Q
ZXJtaXNzaW9uKHJlcXVlc3RJRCwgb3JpZ2luLT5kYXRhYmFzZUlkZW50aWZpZXIoKSkpOworI2Vs
c2UKKyAgICBVTlVTRURfUEFSQU0ob3JpZ2luKTsKKyAgICBVTlVTRURfUEFSQU0oY2FsbGJhY2sp
OworI2VuZGlmCit9CisKK3ZvaWQgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
OjpjYW5jZWxSZXF1ZXN0KFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4pCit7CisjaWYgRU5BQkxFKE5P
VElGSUNBVElPTlMpCisgICAgdWludDY0X3QgaWQgPSBtX29yaWdpblRvSURNYXAudGFrZShvcmln
aW4pOworICAgIGlmICghaWQpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBtX2lkVG9Pcmln
aW5NYXAucmVtb3ZlKGlkKTsKKyAgICBtX2lkVG9DYWxsYmFja01hcC5yZW1vdmUoaWQpOworI2Vs
c2UKKyAgICBVTlVTRURfUEFSQU0ob3JpZ2luKTsKKyNlbmRpZgorfQorCitOb3RpZmljYXRpb25Q
cmVzZW50ZXI6OlBlcm1pc3Npb24gTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
OjpwZXJtaXNzaW9uTGV2ZWwoU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luKQoreworI2lm
IEVOQUJMRShOT1RJRklDQVRJT05TKQorICAgIHVpbnQ2NF90IHBlcm1pc3Npb25MZXZlbDsKKyAg
ICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpX
ZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25MZXZlbChz
ZWN1cml0eU9yaWdpbi0+ZGF0YWJhc2VJZGVudGlmaWVyKCkpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWVzc2FnZXM6OldlYk5vdGlmaWNhdGlvbk1h
bmFnZXJQcm94eTo6Tm90aWZpY2F0aW9uUGVybWlzc2lvbkxldmVsOjpSZXBseShwZXJtaXNzaW9u
TGV2ZWwpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
MCk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PE5vdGlmaWNhdGlvblByZXNlbnRlcjo6UGVybWlz
c2lvbj4ocGVybWlzc2lvbkxldmVsKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHNlY3VyaXR5
T3JpZ2luKTsKKyAgICByZXR1cm4gTm90aWZpY2F0aW9uUHJlc2VudGVyOjpQZXJtaXNzaW9uRGVu
aWVkOworI2VuZGlmCit9CisKK3ZvaWQgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyOjpkaWRSZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IHJl
cXVlc3RJRCwgYm9vbCBhbGxvd2VkKQoreworI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQorICAg
IGlmICghaXNSZXF1ZXN0SURWYWxpZChyZXF1ZXN0SUQpKQorICAgICAgICByZXR1cm47CisKKyAg
ICBSZWZQdHI8Vm9pZENhbGxiYWNrPiBjYWxsYmFjayA9IG1faWRUb0NhbGxiYWNrTWFwLnRha2Uo
cmVxdWVzdElEKTsKKyAgICBpZiAoIWNhbGxiYWNrKQorICAgICAgICByZXR1cm47CisgICAgCisg
ICAgY2FsbGJhY2stPmhhbmRsZUV2ZW50KCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShyZXF1
ZXN0SUQpOworICAgIFVOVVNFRF9QQVJBTShhbGxvd2VkKTsKKyNlbmRpZiAgICAKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmggYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjRhYjk4ZjJlY2U4ZDU1MzBjZDk1NzJl
MzM0OGZiODY5NzM4ZGQ3YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIu
aApAQCAtMCwwICsxLDc3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBOb3RpZmljYXRpb25QZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJfaAorI2RlZmluZSBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJfaAorCisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RpZmljYXRpb25QcmVzZW50ZXIu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL1ZvaWRDYWxsYmFjay5oPgorI2luY2x1ZGUgPHd0Zi9IYXNo
TWFwLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRy
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIE5vdGlmaWNhdGlvbjsgICAgCitjbGFz
cyBTZWN1cml0eU9yaWdpbjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBh
Z2U7CisKKy8vLyBGSVhNRTogTmVlZCB0byBrZWVwIGEgcXVldWUgb2YgcGVuZGluZyBub3RpZmlj
YXRpb25zIHdoaWNoIHBlcm1pc3Npb24gaXMgc3RpbGwgYmVpbmcgcmVxdWVzdGVkLgorY2xhc3Mg
Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyIDogcHVibGljIFJlZkNvdW50ZWQ8
Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyPiB7CitwdWJsaWM6CisgICAgc3Rh
dGljIFBhc3NSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyPiBjcmVh
dGUoV2ViUGFnZSopOworICAgIHZpcnR1YWwgfk5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlcigpOworICAgIAorICAgIHZvaWQgc3RhcnRSZXF1ZXN0KFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luKiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpWb2lkQ2FsbGJhY2s+KTsKKyAgICB2b2lkIGNh
bmNlbFJlcXVlc3QoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qKTsKKyAgICAKKyAgICAvLyBTeW5j
aHJvbm91cyBjYWxsIHRvIHJldHJpZXZlIHBlcm1pc3Npb24gbGV2ZWwgZm9yIGdpdmVuIHNlY3Vy
aXR5IG9yaWdpbgorICAgIFdlYkNvcmU6Ok5vdGlmaWNhdGlvblByZXNlbnRlcjo6UGVybWlzc2lv
biBwZXJtaXNzaW9uTGV2ZWwoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qKTsKKyAgICAKKyAgICB2
b2lkIGRpZFJlY2VpdmVOb3RpZmljYXRpb25QZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3Qgbm90
aWZpY2F0aW9uSUQsIGJvb2wgYWxsb3dlZCk7CisgICAgCitwcml2YXRlOgorICAgIE5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcihXZWJQYWdlKik7CisgICAgCisgICAgSGFzaE1h
cDx1aW50NjRfdCwgUmVmUHRyPFdlYkNvcmU6OlZvaWRDYWxsYmFjaz4gPiBtX2lkVG9DYWxsYmFj
a01hcDsKKyAgICBIYXNoTWFwPFJlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4sIHVpbnQ2
NF90PiBtX29yaWdpblRvSURNYXA7CisgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luPiA+IG1faWRUb09yaWdpbk1hcDsKKworICAgIFdlYlBhZ2UqIG1f
cGFnZTsKK307CisKK2lubGluZSBib29sIGlzUmVxdWVzdElEVmFsaWQodWludDY0X3QgaWQpCit7
CisgICAgLy8gVGhpcyBjaGVjayBtYWtlcyBzdXJlIHRoYXQgdGhlIElEIGlzIG5vdCBlcXVhbCB0
byB2YWx1ZXMgbmVlZGVkIGJ5CisgICAgLy8gSGFzaE1hcCBmb3IgYnVja2V0aW5nLgorICAgIHJl
dHVybiBpZCAmJiBpZCAhPSBzdGF0aWNfY2FzdDx1aW50NjRfdD4oLTEpOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNh
dGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuaAppbmRleCAwN2NmYWZjNzg1
NmQwOGVlMDdhZGI3M2VjZTRiNTk4NTRlZmVjZTdkLi4zYjMyZjBhZGViYjk5YmJlOGI0OWJlNzMx
OTFlZjRjYzljZTJkYTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05v
dGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmgKQEAgLTM4
LDcgKzM4LDcgQEAgY2xhc3MgQ29ubmVjdGlvbjsKIH0KIAogbmFtZXNwYWNlIFdlYkNvcmUgewot
Y2xhc3MgTm90aWZpY2F0aW9uOyAgICAKK2NsYXNzIE5vdGlmaWNhdGlvbjsKIH0KIAogbmFtZXNw
YWNlIFdlYktpdCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5jcHAKaW5kZXggZjE4
NDhiZGZmOWRiNWNiZGY4NjY0YmEwMzlhZDY2YTc1NmNjMjM1Zi4uZTA2MjM0YTFjZTViZmJiODFi
NzEyMzU2Nzc0MTQ5MGI3MGJiMjNlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50
LmNwcApAQCAtMjgsOSArMjgsMTIgQEAKIAogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQogCisj
aW5jbHVkZSAiTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgiCiAjaW5jbHVk
ZSAiV2ViTm90aWZpY2F0aW9uTWFuYWdlci5oIgorI2luY2x1ZGUgIldlYlBhZ2UuaCIKICNpbmNs
dWRlICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oPgogCiB1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKIApAQCAtNzQsMjAgKzc3LDIxIEBAIHZvaWQgV2ViTm90aWZpY2F0aW9u
Q2xpZW50Ojpub3RpZmljYXRpb25PYmplY3REZXN0cm95ZWQoTm90aWZpY2F0aW9uKiBub3RpZmlj
YXRpCiAjZW5kaWYKIH0KIAotdm9pZCBXZWJOb3RpZmljYXRpb25DbGllbnQ6OnJlcXVlc3RQZXJt
aXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPFZvaWRDYWxsYmFjaz4p
Cit2b2lkIFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6cmVxdWVzdFBlcm1pc3Npb24oU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxWb2lkQ2FsbGJhY2s+IGNhbGxiYWNr
KQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgbV9wYWdlLT5ub3RpZmljYXRpb25QZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXIoKS0+c3RhcnRSZXF1ZXN0KGNvbnRleHQtPnNlY3VyaXR5T3Jp
Z2luKCksIGNhbGxiYWNrKTsKIH0KIAotdm9pZCBXZWJOb3RpZmljYXRpb25DbGllbnQ6OmNhbmNl
bFJlcXVlc3RzRm9yUGVybWlzc2lvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KikKK3ZvaWQgV2Vi
Tm90aWZpY2F0aW9uQ2xpZW50OjpjYW5jZWxSZXF1ZXN0c0ZvclBlcm1pc3Npb24oU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogY29udGV4dCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIG1f
cGFnZS0+bm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCktPmNhbmNlbFJlcXVl
c3QoY29udGV4dC0+c2VjdXJpdHlPcmlnaW4oKSk7CiB9CiAKLU5vdGlmaWNhdGlvblByZXNlbnRl
cjo6UGVybWlzc2lvbiBXZWJOb3RpZmljYXRpb25DbGllbnQ6OmNoZWNrUGVybWlzc2lvbihTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KikKK05vdGlmaWNhdGlvblByZXNlbnRlcjo6UGVybWlzc2lvbiBX
ZWJOb3RpZmljYXRpb25DbGllbnQ6OmNoZWNrUGVybWlzc2lvbihTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBjb250ZXh0KQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIE5vdGlm
aWNhdGlvblByZXNlbnRlcjo6UGVybWlzc2lvbkRlbmllZDsKKyAgICBpZiAoIWNvbnRleHQgfHwg
IWNvbnRleHQtPmlzRG9jdW1lbnQoKSkKKyAgICAgICAgcmV0dXJuIE5vdGlmaWNhdGlvblByZXNl
bnRlcjo6UGVybWlzc2lvbkRlbmllZDsKKyAgICByZXR1cm4gbV9wYWdlLT5ub3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKS0+cGVybWlzc2lvbkxldmVsKGNvbnRleHQtPnNlY3Vy
aXR5T3JpZ2luKCkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA2MTcyZDRmOTg4MmRmYTI1
MzliODZlMjlkODgxYmNiY2UxNzBiYmZlLi40M2VjMzhjNzBkZTAyNmUyMDcwNWZhMjY5YzRmNDRl
ZjNhM2M0M2UwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiTGF5ZXJUcmVlSG9zdC5oIgogI2lu
Y2x1ZGUgIk1lc3NhZ2VJRC5oIgogI2luY2x1ZGUgIk5ldHNjYXBlUGx1Z2luLmgiCisjaW5jbHVk
ZSAiTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiUGFn
ZU92ZXJsYXkuaCIKICNpbmNsdWRlICJQbHVnaW5Qcm94eS5oIgogI2luY2x1ZGUgIlBsdWdpblZp
ZXcuaCIKQEAgLTE4NDIsNiArMTg0MywxNSBAQCBXZWJGdWxsU2NyZWVuTWFuYWdlciogV2ViUGFn
ZTo6ZnVsbFNjcmVlbk1hbmFnZXIoKQogfQogI2VuZGlmCiAKK05vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlciogV2ViUGFnZTo6bm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyKCkKK3sKKyAgICBpZiAobV9ub3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXIpCisgICAgICAgIHJldHVybiBtX25vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
ci5nZXQoKTsKKworICAgIG1fbm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyID0g
Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpjcmVhdGUodGhpcyk7CisgICAg
cmV0dXJuIG1fbm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmdldCgpOworfQor
CiAjaWYgIVBMQVRGT1JNKEdUSykgJiYgIVBMQVRGT1JNKE1BQykKIGJvb2wgV2ViUGFnZTo6aGFu
ZGxlRWRpdGluZ0tleWJvYXJkRXZlbnQoS2V5Ym9hcmRFdmVudCogZXZ0KQogewpAQCAtMjExOCw2
ICsyMTI4LDExIEBAIHZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZUdlb2xvY2F0aW9uUGVybWlzc2lv
bkRlY2lzaW9uKHVpbnQ2NF90IGdlb2xvY2F0aW9uSUQsIGJvCiAgICAgbV9nZW9sb2NhdGlvblBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlci5kaWRSZWNlaXZlR2VvbG9jYXRpb25QZXJtaXNzaW9uRGVj
aXNpb24oZ2VvbG9jYXRpb25JRCwgYWxsb3dlZCk7CiB9CiAKK3ZvaWQgV2ViUGFnZTo6ZGlkUmVj
ZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCBub3RpZmljYXRpb25J
RCwgYm9vbCBhbGxvd2VkKQoreworICAgIG5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlcigpLT5kaWRSZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKG5vdGlmaWNh
dGlvbklELCBhbGxvd2VkKTsKK30KKwogdm9pZCBXZWJQYWdlOjphZHZhbmNlVG9OZXh0TWlzc3Bl
bGxpbmcoYm9vbCBzdGFydEJlZm9yZVNlbGVjdGlvbikKIHsKICAgICBGcmFtZSogZnJhbWUgPSBt
X3BhZ2UtPmZvY3VzQ29udHJvbGxlcigpLT5mb2N1c2VkT3JNYWluRnJhbWUoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDkxNmQ4NjI0ZDZhNjM5
OGNmYzc5ZWYzMjU3ZTExYmJkNDMwNWE3NjAuLjg3NTZiNDFmYzA4ZDFkNTYyNjQ3OGRjYjc2OWY5
MTI1NWM3Yjg0ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaApAQCAtMTAyLDYgKzEwMiw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBEcmF3
aW5nQXJlYTsKIGNsYXNzIEluamVjdGVkQnVuZGxlQmFja0ZvcndhcmRMaXN0OworY2xhc3MgTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOwogY2xhc3MgUGFnZU92ZXJsYXk7CiBj
bGFzcyBQbHVnaW5WaWV3OwogY2xhc3MgU2Vzc2lvblN0YXRlOwpAQCAtMzA5LDYgKzMxMCw3IEBA
IHB1YmxpYzoKIAogICAgIEZpbmRDb250cm9sbGVyJiBmaW5kQ29udHJvbGxlcigpIHsgcmV0dXJu
IG1fZmluZENvbnRyb2xsZXI7IH0KICAgICBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlciYgZ2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKSB7IHJldHVybiBtX2dl
b2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOyB9CisgICAgTm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyKiBub3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXIoKTsKIAogICAgIHZvaWQgcGFnZURpZFNjcm9sbCgpOwogI2lmIFVTRShUSUxFRF9CQUNLSU5H
X1NUT1JFKQpAQCAtNTg3LDYgKzU4OSw3IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAgIHZvaWQg
ZGlkUmVjZWl2ZUdlb2xvY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IGdlb2xvY2F0
aW9uSUQsIGJvb2wgYWxsb3dlZCk7CisgICAgdm9pZCBkaWRSZWNlaXZlTm90aWZpY2F0aW9uUGVy
bWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklELCBib29sIGFsbG93ZWQpOwog
CiAgICAgdm9pZCBhZHZhbmNlVG9OZXh0TWlzc3BlbGxpbmcoYm9vbCBzdGFydEJlZm9yZVNlbGVj
dGlvbik7CiAgICAgdm9pZCBjaGFuZ2VTcGVsbGluZ1RvV29yZChjb25zdCBTdHJpbmcmIHdvcmQp
OwpAQCAtNjkzLDYgKzY5Niw3IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFdlYkNvbnRleHRNZW51
PiBtX2NvbnRleHRNZW51OwogICAgIFJlZlB0cjxXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcj4g
bV9hY3RpdmVPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcjsKICAgICBHZW9sb2NhdGlvblBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlciBtX2dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOwor
ICAgIFJlZlB0cjxOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI+IG1fbm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOwogCiAgICAgT3duUHRyPFdlYkNvcmU6OlBy
aW50Q29udGV4dD4gbV9wcmludENvbnRleHQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggZDBlMzA0YmRiYWVl
ZGY5YmUxMWY2YjU1NTFjOTIyZjhjM2M2NzZkOS4uMzc4NjE5MWU1MDcxZTZhZThmZmM3MmNmMDBj
ZGU5ZDY5ZTBhOTk2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTE3Miw2ICsxNzIsOSBAQCBtZXNzYWdlcyAt
PiBXZWJQYWdlIHsKIAogICAgICMgR2VvbG9jYXRpb24KICAgICBEaWRSZWNlaXZlR2VvbG9jYXRp
b25QZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3QgZ2VvbG9jYXRpb25JRCwgYm9vbCBhbGxvd2Vk
KQorICAgIAorICAgICMgTm90aWZpY2F0aW9uCisgICAgRGlkUmVjZWl2ZU5vdGlmaWNhdGlvblBl
cm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCwgYm9vbCBhbGxvd2VkKQog
CiAgICAgU2V0V2luZG93UmVzaXplclNpemUoV2ViQ29yZTo6SW50U2l6ZSBpbnRlcnNlY3RzVmll
dykKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9qIGIvU291
cmNlL1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9qCmluZGV4IDQ3OWJiZDc3ZmVmODM5ZDliMTk3
OGU4MWQ2M2RmYWYzYWYwNjUwNTIuLmMwNWEzNjM5MmFiMWI2OGY0MmI1YWQyZWI0YmM3YWE4ZDRk
YWI4NjMgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2oKQEAgLTE1NTUsMTUgKzE1NTUsMTUg
QEAKIAkJCU5hbWU9IldlYlByb2Nlc3MiCiAJCQk+CiAJCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0
aD0iLi5cV2ViUHJvY2Vzc1xXZWJLaXRNYWluLmNwcCIKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdl
YlByb2Nlc3NcV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzLmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+
CiAJCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViUHJvY2Vzc1xXZWJDb25uZWN0aW9u
VG9VSVByb2Nlc3MuY3BwIgorCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViUHJvY2Vzc1xXZWJDb25u
ZWN0aW9uVG9VSVByb2Nlc3MuaCIKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQotCQkJCVJl
bGF0aXZlUGF0aD0iLi5cV2ViUHJvY2Vzc1xXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MuaCIKKwkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcV2ViS2l0TWFpbi5jcHAiCiAJCQkJPgogCQkJ
PC9GaWxlPgogCQkJPEZpbGUKQEAgLTI3MDYsNiArMjcwNiwxNCBAQAogCQkJCU5hbWU9Ik5vdGlm
aWNhdGlvbnMgKFVzZXIpIgogCQkJCT4KIAkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XFdlYlByb2Nlc3NcTm90aWZpY2F0aW9uc1xOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXIuY3BwIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZl
UGF0aD0iLi5cV2ViUHJvY2Vzc1xOb3RpZmljYXRpb25zXE5vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlci5oIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCiAJCQkJCVJl
bGF0aXZlUGF0aD0iLi5cV2ViUHJvY2Vzc1xOb3RpZmljYXRpb25zXFdlYk5vdGlmaWNhdGlvbk1h
bmFnZXIuY3BwIgogCQkJCQk+CiAJCQkJPC9GaWxlPgpAQCAtMzA4MywzNCArMzA5MSw2IEBACiAJ
CQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vz
c1xXZWJOb3RpZmljYXRpb24uY3BwIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCi0JCQkJ
UmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcV2ViTm90aWZpY2F0aW9uLmgiCi0JCQkJPgotCQkJ
PC9GaWxlPgotCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xXZWJOb3Rp
ZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCi0J
CQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5
LmgiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJ
UHJvY2Vzc1xXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4iCi0JCQkJPgot
CQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xXZWJO
b3RpZmljYXRpb25Qcm92aWRlci5jcHAiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xXZWJOb3RpZmljYXRpb25Qcm92aWRlci5oIgot
CQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nl
c3NcV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eS5jcHAiCiAJCQkJPgogCQkJPC9GaWxl
PgpAQCAtMzgxMCw2ICszNzkwLDU0IEBACiAJCQkJCTwvRmlsZT4KIAkJCQk8L0ZpbHRlcj4KIAkJ
CTwvRmlsdGVyPgorCQkJPEZpbHRlcgorCQkJCU5hbWU9Ik5vdGlmaWNhdGlvbnMgKFVzZXIpIgor
CQkJCT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xOb3RpZmlj
YXRpb25zXE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcCIKKwkJCQkJPgorCQkJCTwv
RmlsZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xOb3RpZmlj
YXRpb25zXE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmgiCisJCQkJCT4KKwkJCQk8L0Zp
bGU+CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcTm90aWZpY2F0
aW9uc1xOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAiCisJCQkJ
CT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nl
c3NcTm90aWZpY2F0aW9uc1xOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eS5oIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0i
Li5cVUlQcm9jZXNzXE5vdGlmaWNhdGlvbnNcV2ViTm90aWZpY2F0aW9uLmNwcCIKKwkJCQkJPgor
CQkJCTwvRmlsZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xO
b3RpZmljYXRpb25zXFdlYk5vdGlmaWNhdGlvbi5oIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJ
CTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXE5vdGlmaWNhdGlvbnNcV2Vi
Tm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8
RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xOb3RpZmljYXRpb25zXFdlYk5v
dGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxl
CisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXE5vdGlmaWNhdGlvbnNcV2ViTm90aWZp
Y2F0aW9uTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJ
CTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXE5vdGlmaWNhdGlvbnNcV2Vi
Tm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxl
CisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXE5vdGlmaWNhdGlvbnNcV2ViTm90aWZp
Y2F0aW9uUHJvdmlkZXIuaCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCTwvRmlsdGVyPgogCQk8
L0ZpbHRlcj4KIAkJPEZpbHRlcgogCQkJTmFtZT0iUGxhdGZvcm0iCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNvbW1vbi52c3Byb3BzIGIvU291cmNlL1dlYktpdDIvd2lu
L1dlYktpdDJDb21tb24udnNwcm9wcwppbmRleCBjYzE0YWZkZjcyZjJlZmVlNTc3ZTRiODk2YTQ1
MTNkZWJiMmM4ODA3Li44MWQzNGQ5MDdjODcwYTA3NGFjYTk1ZDI0OGVkNmJkNjM4NGMyODlmIDEw
MDc1NQotLS0gYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNvbW1vbi52c3Byb3BzCisrKyBi
L1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ29tbW9uLnZzcHJvcHMKQEAgLTYsNyArNiw3IEBA
CiAJPgogCTxUb29sCiAJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCUFkZGl0aW9uYWxJbmNs
dWRlRGlyZWN0b3JpZXM9IiZxdW90OyQoUHJvamVjdERpcikmcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKVwuLiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFBsYXRmb3JtJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcilcLi5cUGxhdGZvcm1cY2cmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwu
LlxQbGF0Zm9ybVxDb3JlSVBDJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cUGx1Z2luUHJv
Y2VzcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZCZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpXC4uXFNoYXJlZFx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFy
ZWRcY2YmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcQVBJXGMmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcQVBJXGNcY2YmcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKVwuLlxTaGFyZWRcQVBJXGNcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hh
cmVkXENvcmVJUENTdXBwb3J0JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXFBs
dWdpbnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcUGx1Z2luc1xOZXRzY2Fw
ZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2VzcyZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpXC4uXFVJUHJvY2Vzc1xBUElcQyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4u
XFVJUHJvY2Vzc1xBUElcQ1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nl
c3NcQVBJXGNwcCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xBUElcd2lu
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXEF1dGhlbnRpY2F0aW9uJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXERvd25sb2FkcyZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xMYXVuY2hlciZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpXC4uXFVJUHJvY2Vzc1xQbHVnaW5zJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5c
VUlQcm9jZXNzXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3MmcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFdlYkNvcmVTdXBwb3J0JnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xXZWJDb3JlU3VwcG9ydFx3aW4mcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFdlYlBhZ2UmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFdlYlBhZ2Vcd2luJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcilcLi5cV2ViUHJvY2Vzc1xJY29uRGF0YWJhc2UmcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKVwuLlxXZWJQcm9jZXNzXEluamVjdGVkQnVuZGxlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cilcLi5cV2ViUHJvY2Vzc1xJbmplY3RlZEJ1bmRsZVxBUElcYyZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpXC4uXFdlYlByb2Nlc3NcSW5qZWN0ZWRCdW5kbGVcRE9NJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcilcLi5cV2ViUHJvY2Vzc1xJbmplY3RlZEJ1bmRsZVx3aW4mcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFBsdWdpbnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KVwuLlxXZWJQcm9jZXNzXFBsdWdpbnNcTmV0c2NhcGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KVwuLlxXZWJQcm9jZXNzXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nl
c3NcQXBwbGljYXRpb25DYWNoZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nl
c3NcQXV0aGVudGljYXRpb24mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNz
XENvb2tpZXMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXENvb2tpZXNc
Y2YmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXERvd25sb2FkcyZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcRG93bmxvYWRzXGNmJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xGdWxsU2NyZWVuJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xHZW9sb2NhdGlvbiZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpXC4uXFdlYlByb2Nlc3NcS2V5VmFsdWVTdG9yYWdlJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcilcLi5cV2ViUHJvY2Vzc1xNZWRpYUNhY2hlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilc
Li5cV2ViUHJvY2Vzc1xOb3RpZmljYXRpb25zJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5c
V2ViUHJvY2Vzc1xSZXNvdXJjZUNhY2hlJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxk
RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXMmcXVvdDs7JnF1b3Q7JChDb25m
aWd1cmF0aW9uQnVpbGREaXIpXEluY2x1ZGUmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVp
bGREaXIpXEluY2x1ZGVccHJpdmF0ZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0Rpcilc
SW5jbHVkZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVkZVxwcml2YXRl
JnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJbmNsdWRlXHB0aHJlYWRzJnF1b3Q7
OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxJbmNsdWRlXEphdmFTY3JpcHRDb3JlJnF1
b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxJbmNsdWRlXHByaXZhdGVcSmF2YVNj
cmlwdENvcmUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVcSmF2YVNj
cmlwdENvcmUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVccHJpdmF0
ZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcSW5j
bHVkZVxXZWJDb3JlXEZvcndhcmRpbmdIZWFkZXJzJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFy
aWVzRGlyKVxJbmNsdWRlXFdlYkNvcmVcRm9yd2FyZGluZ0hlYWRlcnMmcXVvdDsiCisJCUFkZGl0
aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9IiZxdW90OyQoUHJvamVjdERpcikmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKVwuLiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFBsYXRmb3JtJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cUGxhdGZvcm1cY2cmcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKVwuLlxQbGF0Zm9ybVxDb3JlSVBDJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5c
UGx1Z2luUHJvY2VzcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZCZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KVwuLlxTaGFyZWRcY2YmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcQVBJXGMm
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcQVBJXGNcY2YmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcQVBJXGNcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cilcLi5cU2hhcmVkXENvcmVJUENTdXBwb3J0JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5c
U2hhcmVkXFBsdWdpbnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcUGx1Z2lu
c1xOZXRzY2FwZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2VzcyZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xBUElcQyZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpXC4uXFVJUHJvY2Vzc1xBUElcQ1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwu
LlxVSVByb2Nlc3NcQVBJXGNwcCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vz
c1xBUElcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXEF1dGhlbnRp
Y2F0aW9uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXERvd25sb2FkcyZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xMYXVuY2hlciZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xOb3RpZmljYXRpb25zJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcilcLi5cVUlQcm9jZXNzXFBsdWdpbnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KVwuLlxVSVByb2Nlc3Ncd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vz
cyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcV2ViQ29yZVN1cHBvcnQm
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFdlYkNvcmVTdXBwb3J0XHdp
biZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcV2ViUGFnZSZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcV2ViUGFnZVx3aW4mcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEljb25EYXRhYmFzZSZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpXC4uXFdlYlByb2Nlc3NcSW5qZWN0ZWRCdW5kbGUmcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEluamVjdGVkQnVuZGxlXEFQSVxjJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xJbmplY3RlZEJ1bmRsZVxET00mcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEluamVjdGVkQnVuZGxlXHdpbiZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcUGx1Z2lucyZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpXC4uXFdlYlByb2Nlc3NcUGx1Z2luc1xOZXRzY2FwZSZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpXC4uXFdlYlByb2Nlc3Ncd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2Vi
UHJvY2Vzc1xBcHBsaWNhdGlvbkNhY2hlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2Vi
UHJvY2Vzc1xBdXRoZW50aWNhdGlvbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlBy
b2Nlc3NcQ29va2llcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcQ29v
a2llc1xjZiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcRG93bmxvYWRz
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xEb3dubG9hZHNcY2YmcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEZ1bGxTY3JlZW4mcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEdlb2xvY2F0aW9uJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xLZXlWYWx1ZVN0b3JhZ2UmcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXE1lZGlhQ2FjaGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKVwuLlxXZWJQcm9jZXNzXE5vdGlmaWNhdGlvbnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KVwuLlxXZWJQcm9jZXNzXFJlc291cmNlQ2FjaGUmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9u
QnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlcyZxdW90OzsmcXVvdDsk
KENvbmZpZ3VyYXRpb25CdWlsZERpcilcSW5jbHVkZSZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRp
b25CdWlsZERpcilcSW5jbHVkZVxwcml2YXRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVz
RGlyKVxJbmNsdWRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJbmNsdWRlXHBy
aXZhdGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVccHRocmVhZHMm
cXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXEluY2x1ZGVcSmF2YVNjcmlwdENv
cmUmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXEluY2x1ZGVccHJpdmF0ZVxK
YXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVkZVxK
YXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVkZVxw
cml2YXRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGly
KVxJbmNsdWRlXFdlYkNvcmVcRm9yd2FyZGluZ0hlYWRlcnMmcXVvdDs7JnF1b3Q7JChXZWJLaXRM
aWJyYXJpZXNEaXIpXEluY2x1ZGVcV2ViQ29yZVxGb3J3YXJkaW5nSGVhZGVycyZxdW90OyIKIAkJ
UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9Il9VU1JETEw7V0VCS0lUX0VYUE9SVFM7RlJBTUVXT1JL
X05BTUU9V2ViS2l0O0JVSUxESU5HX1dFQktJVCIKIAkJVXNlUHJlY29tcGlsZWRIZWFkZXI9IjIi
CiAJCVByZWNvbXBpbGVkSGVhZGVyVGhyb3VnaD0iV2ViS2l0MlByZWZpeC5oIgpkaWZmIC0tZ2l0
IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGZiMjgxNmUyMjgxOTRk
YTc0ZWYzZGU0ZTI0OTMxZjJmZmExYTg0MzMuLjYyZDI3MTAwM2U5OGQyZDBmYjcxZTE0N2VjZjY4
MmJlMDkxMDUyOWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMS0xMi0wNiAgSm9uIExlZSAgPGpvbmxlZUBhcHBs
ZS5jb20+CisKKyAgICAgICAgW1dLMl0gQWRkIHBlcm1pc3Npb25zIHN1cHBvcnQgKDczOTYwKQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM5NjAKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEwMzU3MDA4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBudWxsIGZ1bmN0aW9uIGl0ZW0gdG8gY29tcGx5
IHdpdGggYWRkZWQgY2FsbGJhY2sgdG8gV0tQYWdlVUlDbGllbnQuCisKKyAgICAgICAgKiBNaW5p
QnJvd3Nlci9tYWMvQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubToKKyAgICAgICAgKC1bQnJvd3Nl
cldpbmRvd0NvbnRyb2xsZXIgYXdha2VGcm9tTmliXSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpj
cmVhdGVPdGhlclBhZ2UpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6aW5pdGlhbGl6
ZSk6CisKIDIwMTEtMTItMDYgIEFkYW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIEFkZCBhIHBpZCBwYXJhbWV0ZXIgdG8gQ3Jhc2hMb2dzLmZpbmRfbmV3ZXN0X2xvZwpkaWZm
IC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvbWFjL0Jyb3dzZXJXaW5kb3dDb250cm9sbGVyLm0g
Yi9Ub29scy9NaW5pQnJvd3Nlci9tYWMvQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubQppbmRleCBm
N2U5YzY5MDEwNjc3ZTRiNDE1NGU2YjcwMGM0MDhlODgwMDU3YjkyLi40OTkzYWE5OWQ5NTM1Yzli
ODc1ZWQ5MDg4MWU0NmUyMGZiNGNmMTAxIDEwMDY0NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nlci9t
YWMvQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubQorKysgYi9Ub29scy9NaW5pQnJvd3Nlci9tYWMv
QnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubQpAQCAtNjY3LDYgKzY2Nyw3IEBAIC0gKHZvaWQpYXdh
a2VGcm9tTmliCiAgICAgICAgIDAsIC8vIHNob3VsZEludGVycnVwdEphdmFTY3JpcHQKICAgICAg
ICAgY3JlYXRlTmV3UGFnZSwKICAgICAgICAgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQsCisgICAg
ICAgIDAsIC8vIGRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0CiAg
ICAgfTsKICAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQoX3dlYlZpZXcucGFnZVJlZiwgJnVpQ2xp
ZW50KTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXgg
Y2Y3MTE0MGQxYWJmNWI2MzMyNGVmOTU5NGJlOTI3YjI4NGVjN2NiOS4uZGU2OGEyOTdlNGI5OTJj
NDJiNDljMmI0YTBkMWU5NmYxNjg0NjAyNSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
Q29udHJvbGxlci5jcHAKQEAgLTIwNCw2ICsyMDQsNyBAQCBXS1BhZ2VSZWYgVGVzdENvbnRyb2xs
ZXI6OmNyZWF0ZU90aGVyUGFnZShXS1BhZ2VSZWYgb2xkUGFnZSwgV0tVUkxSZXF1ZXN0UmVmLCBX
SwogICAgICAgICAwLCAvLyBzaG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0CiAgICAgICAgIGNyZWF0
ZU90aGVyUGFnZSwKICAgICAgICAgMCwgLy8gbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQKKyAgICAg
ICAgMCwgLy8gZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QKICAg
ICB9OwogICAgIFdLUGFnZVNldFBhZ2VVSUNsaWVudChuZXdQYWdlLCAmb3RoZXJQYWdlVUlDbGll
bnQpOwogCkBAIC0zNTYsNiArMzU3LDcgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6aW5pdGlhbGl6
ZShpbnQgYXJnYywgY29uc3QgY2hhciogYXJndltdKQogICAgICAgICAwLCAvLyBzaG91bGRJbnRl
cnJ1cHRKYXZhU2NyaXB0CiAgICAgICAgIGNyZWF0ZU90aGVyUGFnZSwKICAgICAgICAgMCwgLy8g
bW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQKKyAgICAgICAgMCwgLy8gZGVjaWRlUG9saWN5Rm9yTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QKICAgICB9OwogICAgIFdLUGFnZVNldFBhZ2VVSUNs
aWVudChtX21haW5XZWJWaWV3LT5wYWdlKCksICZwYWdlVUlDbGllbnQpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118234</attachid>
            <date>2011-12-07 11:05:21 -0800</date>
            <delta_ts>2011-12-07 11:51:03 -0800</delta_ts>
            <desc>Fix gtk again</desc>
            <filename>bug-73960-20111207110650.patch</filename>
            <type>text/plain</type>
            <size>142494</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyMTgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMzA5NWYxYWEyYzA0OTIz
NDM4YzdiMmM5N2QxMDIxMjQ1MmM4ODQwYS4uY2RkM2I5YjgwZGI5YjViZmVhN2MyYjM5NzQyM2Zi
MzhiMTQ0Nzc5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzNyBAQAorMjAxMS0xMi0wNiAgSm9u
IExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gQWRkIHBlcm1pc3Npb25z
IHN1cHBvcnQgKDczOTYwKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NzM5NjAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEwMzU3MDA4PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRGVyaXZlZFNvdXJj
ZXMubWFrZTogTW92ZWQgbm90aWZpY2F0aW9uIGZpbGVzIHRvIGl0cyBvd24gZGlyZWN0b3J5LiBO
ZWVkIHRvIGFkZCB0aGF0IHBhdGguCisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOiBOZXcgaGVhZGVyIGFuZCBpbXBsIGZpbGVzLgorICAgICAgICAqIFRhcmdldC5w
cmk6IERpdHRvLgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOiBEaXR0by4KKyAgICAgICAgKiB3
aW4vV2ViS2l0Mi52Y3Byb2o6IERpdHRvLgorICAgICAgICAqIHdpbi9XZWJLaXQyQ29tbW9uLnZz
cHJvcHM6IEFkZCBwYXRoIHRvIE5vdGlmaWNhdGlvbnMgZGlyZWN0b3J5LgorCisgICAgICAgIElt
cGxlbWVudCBwZXJtaXNzaW9uIGZ1bmN0aW9ucywgd2hpY2ggZ28gdGhyb3VnaCBwZXJtaXNzaW9u
IHJlcXVlc3QgbWFuYWdlci4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0
aW9uQ2xpZW50OjpyZXF1ZXN0UGVybWlzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlm
aWNhdGlvbkNsaWVudDo6Y2FuY2VsUmVxdWVzdHNGb3JQZXJtaXNzaW9uKToKKyAgICAgICAgKFdl
YktpdDo6V2ViTm90aWZpY2F0aW9uQ2xpZW50OjpjaGVja1Blcm1pc3Npb24pOgorCisgICAgICAg
IE5ldyBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIgdG8gbWFrZSBhbmQgY2Fu
Y2VsIHBlcm1pc3Npb24gcmVxdWVzdHMsIGFuZCB0byByZXRyaWV2ZSBjdXJyZW50CisgICAgICAg
IHBvbGljeS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6
Z2VuZXJhdGVSZXF1ZXN0SUQpOgorICAgICAgICAoV2ViS2l0OjpOb3RpZmljYXRpb25QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyOjp+Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKToKKyAgICAgICAg
KFdlYktpdDo6Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpzdGFydFJlcXVl
c3QpOiBLZWVwIHRyYWNrIG9mIHRoZSBwcm92aWRlZCBjYWxsYmFjayBvbmNlCisgICAgICAgIHBv
bGljeSBkZWNpc2lvbiBpcyBtYWRlLgorICAgICAgICAoV2ViS2l0OjpOb3RpZmljYXRpb25QZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXI6OmNhbmNlbFJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnBlcm1pc3Npb25MZXZlbCk6IFJl
dHJpZXZlIGxldmVsIHRocm91Z2ggYSBzeW5jaHJvbm91cworICAgICAgICBtZXNzYWdlIHRvIHRo
ZSBwcm94eS4KKyAgICAgICAgKFdlYktpdDo6Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyOjpkaWRSZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKTogSW52b2tl
IHRoZSBjYWxsYmFjay4KKyAgICAgICAgKiBXZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0
Ojppc1JlcXVlc3RJRFZhbGlkKTogTWFrZSBzdXJlIGFueSBwcm92aWRlZCByZXF1ZXN0IElEcyBh
cmUgdmFsaWQuCisKKyAgICAgICAgQWRkZWQgbmV3IE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0IGNsYXNzLgorCisgICAgICAgICogVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0
aW9uUGVybWlzc2lvblJlcXVlc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6Tm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0OjpOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCk6
CisgICAgICAgIChXZWJLaXQ6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0OjphbGxvdyk6
IE5vdGlmeSBtYW5hZ2VyIG9mIGRlY2lzaW9uLgorICAgICAgICAoV2ViS2l0OjpOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdDo6ZGVueSk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDo6aW52YWxpZGF0ZSk6IERpc2Fzc29jaWF0ZSB3aXRo
IG1hbmFnZXIuCisgICAgICAgIChXZWJLaXQ6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
Ojp0eXBlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdC5oOiBBZGRlZC4KKworICAgICAgICBXS0FQSSBzdXBwb3J0IGZvciBO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDoKKworICAgICAgICAqIFNoYXJlZC9BUEkvYy9X
S0Jhc2UuaDoKKyAgICAgICAgKiBTaGFyZWQvQVBJT2JqZWN0Lmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9DL1dLQVBJQ2FzdC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS05vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcDogQWRkZWQuCisgICAgICAgIChXS05vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0R2V0VHlwZUlEKToKKyAgICAgICAgKFdLTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RBbGxvdyk6CisgICAgICAgIChXS05vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0RGVueSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3QuaDogQWRkZWQuCisKKyAgICAgICAgT3RoZXIgYWRkaXRpb25zIHRv
IFdLIEFQSToKKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNhdGlvblByb3Zp
ZGVyLmg6IEFkZGVkIG5ldyBjYWxsYmFjayBmb3IgV0tOb3RpZmljYXRpb25Qcm92aWRlcnMsIHRv
IHJldHVybiBwb2xpY3kKKyAgICAgICAgZm9yIGEgZ2l2ZW4gc2VjdXJpdHkgb3JpZ2luLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaDogQWRkZWQgbmV3IGNhbGxiYWNrIHRvIFdL
UGFnZVVJQ2xpZW50IHRvIGFzayB1c2VyIHRvIGRlY2lkZSBvbiBwb2xpY3kuCisKKyAgICAgICAg
TmV3IE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5IHRvIGNyZWF0ZSBy
ZXF1ZXN0cy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJL
aXQ6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6Ok5vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjppbnZhbGlkYXRlUmVxdWVzdHMp
OgorICAgICAgICAoV2ViS2l0OjpOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eTo6Y3JlYXRlUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6Ok5vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpkaWRSZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lv
bkRlY2lzaW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oOiBBZGRlZC4KKworICAgICAgICBBZGRl
ZCBuZXcgbWVzc2FnZSB0byBub3RpZmljYXRpb24gbWFuYWdlcjogTm90aWZpY2F0aW9uUGVybWlz
c2lvbkxldmVsLCB0byByZXRyaWV2ZSBwb2xpY3kuIFRoZSBjdXJyZW50CisgICAgICAgIEpTIEFQ
SSByZXRyaWV2ZXMgdGhlIHBlcm1pc3Npb24gc3luY2hyb25vdXNseSwgc28gdGhlIG1lc3NhZ2Ug
bmVlZHMgdG8gYmUgc2VudCBzeW5jaHJvbm91c2x5IGFsc28uCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW46
IE1vdmVkIGZyb20gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5vdGlmaWNhdGlvbk1hbmFn
ZXJQcm94eS5tZXNzYWdlcy5pbi4KKyAgICAgICAgKiBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9X
ZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHA6IE1vdmVkIGZyb20gU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcC4KKyAgICAgICAgKFdlYktpdDo6V2Vi
Tm90aWZpY2F0aW9uUHJvdmlkZXI6OnBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25BdE9y
aWdpbik6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlm
aWNhdGlvblByb3ZpZGVyLmg6IE1vdmVkIGZyb20gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
Yk5vdGlmaWNhdGlvblByb3ZpZGVyLmguCisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZVN5
bmNNZXNzYWdlKTogQm9pbGVycGxhdGUgdG8gZm9yd2FyZCBtZXNzYWdlcyB0byBub3RpZmljYXRp
b24gbWFuYWdlci4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlm
aWNhdGlvbk1hbmFnZXJQcm94eS5jcHA6IE1vdmVkIGZyb20gU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAuCisgICAgICAgIChXZWJLaXQ6Oldl
Yk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Tm90aWZpY2F0aW9uTWFuYWdlclByb3h5OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6On5XZWJOb3RpZmlj
YXRpb25NYW5hZ2VyUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5h
Z2VyUHJveHk6OmludmFsaWRhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25N
YW5hZ2VyUHJveHk6OmluaXRpYWxpemVQcm92aWRlcik6CisgICAgICAgIChXZWJLaXQ6OldlYk5v
dGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6c2hvdyk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6Y2FuY2VsKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5OjpkaWREZXN0cm95Tm90
aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5
Ojpub3RpZmljYXRpb25QZXJtaXNzaW9uTGV2ZWwpOiBSZXRyaWV2ZSB0aGUgcG9saWN5IGZyb20g
dGhlIHByb3ZpZGVyLgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJv
eHk6OnByb3ZpZGVyRGlkU2hvd05vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYk5v
dGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6cHJvdmlkZXJEaWRDbGlja05vdGlmaWNhdGlvbik6Cisg
ICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6cHJvdmlkZXJEaWRD
bG9zZU5vdGlmaWNhdGlvbnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dl
Yk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oOiBNb3ZlZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaC4KKyAgICAgICAgKFdlYktpdDo6
V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5OjpjbGVhckNvbnRleHQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OnR5cGUpOgorCisgICAgICAgIEFkZGVk
IE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5IHRvIFdlYlBhZ2VQcm94
eSwgdG8gYWxsb3cgYSByZXF1ZXN0IGZvciBwZXJtaXNzaW9uIHRvCisgICAgICAgIGdvIHRocm91
Z2ggdG8gdGhlIFVJIGNsaWVudC4gQWRkZWQgbmV3IG1lc3NhZ2UgdG8gV2ViUGFnZVByb3h5LCBS
ZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OldlYlBhZ2VQcm94
eSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y2xvc2UpOiBJbnZhbGlkYXRlIHBl
bmRpbmcgcmVxdWVzdHMuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cHJvY2Vzc0Rp
ZENyYXNoKTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVzdE5v
dGlmaWNhdGlvblBlcm1pc3Npb24pOiBGb3J3YXJkIHJlcXVlc3QgdG8gVUkgY2xpZW50LgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlVJQ2xpZW50
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVUlDbGllbnQ6OmRlY2lkZVBvbGljeUZvck5vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViVUlDbGll
bnQuaDoKKworICAgICAgICBBZGRlZCBuZXcgbWVzc2FnZSBEaWRSZWNlaXZlTm90aWZpY2F0aW9u
UGVybWlzc2lvbkRlY2lzaW9uLiBUaGUgV2ViUGFnZSBmb3J3YXJkcyB0aGUgbWVzc2FnZSB0byB0
aGUKKyAgICAgICAgcGVybWlzc2lvbiByZXF1ZXN0IG1hbmFnZXIuCisKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjogQWRkZWQgbmV3IG1lc3NhZ2UgRGlk
UmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25EZWNpc2lvbgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6bm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKTogQ3JlYXRlIG1hbmFnZXIgb24gcmVxdWVz
dC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkUmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1p
c3Npb25EZWNpc2lvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoK
KworICAgICAgICBNb3ZpbmcgZmlsZXMgdG8gTm90aWZpY2F0aW9ucy8gc3ViZGlyZWN0b3J5Lgor
CisgICAgICAgICogVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uLmNwcDog
TW92ZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9uLmNwcC4K
KyAgICAgICAgKiBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb24uaDogTW92
ZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9uLmguCisKIDIw
MTEtMTItMDYgIEFsZXhhbmRlciBGw6Zyw7h5ICA8YWxleGFuZGVyLmZhZXJveUBub2tpYS5jb20+
CiAKICAgICAgICAgW1F0XSBGaXggYXNzZXJ0aW9uIGluIFF0Vmlld3BvcnRJbnRlcmFjdGlvbkVu
Z2luZS5jcHA6NDY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9FbmdsaXNoLmxwcm9qL0xv
Y2FsaXphYmxlLnN0cmluZ3MgYi9Tb3VyY2UvV2ViQ29yZS9FbmdsaXNoLmxwcm9qL0xvY2FsaXph
YmxlLnN0cmluZ3MKaW5kZXggMjQ1ZGFjYjA0NDdjNDVkNGQ1ZWNkYjhiMzI1ZWJkN2I2M2QzOGU5
Zi4uMTE2MDZjMzEyOTlkYzlmN2QzODVkZWVkYjQ2ODRmMWYxNThhMDdmZCAxMDA2NDQKR0lUIGJp
bmFyeSBwYXRjaApkZWx0YSAyMDUKemNtYlFSaW4oRDheTT16THlhNWJGNDU8dm9LJUI9PUdXaVhN
e0E2YlhwP1Z2SmUxLXlzNXs2NzVveVRDdXBhNWkqCnowTStDSVJmNT1nS3IjYENaTk5IbmZIS0tJ
Yz9GPCtETUpvZVVqZEwjMT94LSZ2dk1JZTBNJSMhXzRfamYxNmQlbQp3YX5MV2FHPVhkXzI3THhE
MXw8ZW5oNzwrYDYkVmVaYnhKQDxUT2Z1P0EhSGA2R25VPGFsZihRQjBJUS1Ye3J+Xn4KCmRlbHRh
IDE4CmFjbVpveiEjclVYXk09ekxsaD5OP1o5ZDZxZWcqKGNCP3ROZAoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUHJlc2VudGVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvblByZXNlbnRlci5oCmluZGV4IDJj
ZmUwNjdiNWRkODNmOTc1OGZlZGYzZTIyMmQ0NGZmZWI1MTdmZTYuLjU1NTQ2OTI1ODljODliM2Fl
MzZjYTU5YmIwYWM4MmJjYTE3NjVhOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL25vdGlm
aWNhdGlvbnMvTm90aWZpY2F0aW9uUHJlc2VudGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbm90
aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QcmVzZW50ZXIuaApAQCAtNDIsNiArNDIsNyBAQCBjbGFz
cyBOb3RpZmljYXRpb247CiBjbGFzcyBLVVJMOwogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dDsKIAorLy8gRklYTUU6IFJlbmFtZSB0byBOb3RpZmljYXRpb25DbGllbnQsIHRvIGNvbmZvcm0g
dG8gbmFtaW5nIGNvbnZlbnRpb25zIG9mIHRoZSByZXN0IG9mIFdlYkNvcmUuCiBjbGFzcyBOb3Rp
ZmljYXRpb25QcmVzZW50ZXIgewogCiBwdWJsaWM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMubWFr
ZQppbmRleCBhMzAwZjg0YmQ5YmQ5M2U1ZWUyNzYzODEwODA2MTE1MzI1ZDFhMjg1Li5lMjI3N2U0
NWM2ZmVkOTkzZTBhZTUyNjhlNDUyMDY5NTM5ODFiNDdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKQEAgLTQwLDYgKzQwLDcgQEAgVlBBVEggPSBcCiAgICAgJChXZWJLaXQyKS9XZWJQ
cm9jZXNzIFwKICAgICAkKFdlYktpdDIpL1VJUHJvY2VzcyBcCiAgICAgJChXZWJLaXQyKS9VSVBy
b2Nlc3MvRG93bmxvYWRzIFwKKyAgICAkKFdlYktpdDIpL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25z
IFwKICAgICAkKFdlYktpdDIpL1VJUHJvY2Vzcy9QbHVnaW5zIFwKICMKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUuYW0gYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmls
ZS5hbQppbmRleCBjODgxNWYwZjdjOTFjNWUwYWY3ZTZiZjUzMTMyZGRmMGIwZGNkNzUyLi5lY2My
NmRjNjQ4YzUzODA3Nzk2MzY4N2EzNjQ3MzRhNWU2Y2I4NDU5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9HTlVtYWtlZmlsZS5hbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5h
bQpAQCAtNTcsMTEgKzU3LDEyIEBAIGxpYndlYmtpdDJndGtfQFdFQktJVEdUS19BUElfTUFKT1Jf
VkVSU0lPTkBfQFdFQktJVEdUS19BUElfTUlOT1JfVkVSU0lPTkBfbGFfSEVBCiAJJChXZWJLaXQy
KS9VSVByb2Nlc3MvQVBJL0MvV0tJbnNwZWN0b3IuaCBcCiAJJChXZWJLaXQyKS9VSVByb2Nlc3Mv
QVBJL0MvV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmggXAogCSQoV2ViS2l0MikvVUlQcm9jZXNz
L0FQSS9DL1dLTWVkaWFDYWNoZU1hbmFnZXIuaCBcCisJJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJ
L0MvV0tOYXRpdmVFdmVudC5oIFwKKwkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9XS05hdmln
YXRpb25EYXRhLmggXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9u
LmggXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9uTWFuYWdlci5o
IFwKKwkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0LmggXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9uUHJv
dmlkZXIuaCBcCi0JJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0MvV0tOYXRpdmVFdmVudC5oIFwK
LQkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9XS05hdmlnYXRpb25EYXRhLmggXAogCSQoV2Vi
S2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLT3BlblBhbmVsUGFyYW1ldGVycy5oIFwKIAkkKFdlYktp
dDIpL1VJUHJvY2Vzcy9BUEkvQy9XS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyLmggXAogCSQoV2Vi
S2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUdyb3VwLmggXApAQCAtNDgzLDYgKzQ4NCw4IEBA
IGxpYndlYmtpdDJndGtfQFdFQktJVEdUS19BUElfTUFKT1JfVkVSU0lPTkBfQFdFQktJVEdUS19B
UElfTUlOT1JfVkVSU0lPTkBfbGFfU09VCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLTm90aWZpY2F0aW9uLmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS05v
dGlmaWNhdGlvbk1hbmFnZXIuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tOb3RpZmljYXRpb25NYW5hZ2VyLmggXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Yy9XS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcCBcCisJU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9jL1dLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaCBcCiAJU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9uUHJvdmlkZXIuaCBcCiAJ
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLT3BlblBhbmVsUGFyYW1ldGVycy5jcHAg
XAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS09wZW5QYW5lbFBhcmFtZXRlcnMu
aCBcCkBAIC01NzksNiArNTgyLDE2IEBAIGxpYndlYmtpdDJndGtfQFdFQktJVEdUS19BUElfTUFK
T1JfVkVSU0lPTkBfQFdFQktJVEdUS19BUElfTUlOT1JfVkVSU0lPTkBfbGFfU09VCiAJU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oIFwKIAlTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvVGhyZWFkTGF1bmNoZXIuY3BwIFwKIAlTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvVGhyZWFkTGF1bmNoZXIuaCBcCisJU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3QuY3BwIFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmlj
YXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oIFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90
aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAg
XAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbi5jcHAgXAorCVNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbi5oIFwKKwlTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuY3Bw
IFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRp
b25NYW5hZ2VyUHJveHkuaCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlv
bnMvV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwIFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25Qcm92aWRlci5oIFwKIAlTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW5JbmZvU3RvcmUuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW5JbmZvU3RvcmUuaCBcCkBAIC02NTcsMTIgKzY3MCw2IEBAIGxpYndlYmtp
dDJndGtfQFdFQktJVEdUS19BUElfTUFKT1JfVkVSU0lPTkBfQFdFQktJVEdUS19BUElfTUlOT1Jf
VkVSU0lPTkBfbGFfU09VCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYktleVZhbHVlU3Rv
cmFnZU1hbmFnZXJQcm94eS5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTWVkaWFD
YWNoZU1hbmFnZXJQcm94eS5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJNZWRp
YUNhY2hlTWFuYWdlclByb3h5LmggXAotCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOb3Rp
ZmljYXRpb24uY3BwIFwKLQlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9u
LmggXAotCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJv
eHkuY3BwIFwKLQlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9uTWFuYWdl
clByb3h5LmggXAotCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOb3RpZmljYXRpb25Qcm92
aWRlci5jcHAgXAotCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOb3RpZmljYXRpb25Qcm92
aWRlci5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTG9hZGVyQ2xpZW50LmNwcCBc
CiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkxvYWRlckNsaWVudC5oIFwKIAlTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViTmF2aWdhdGlvbkRhdGEuY3BwIFwKQEAgLTc5Myw2ICs4MDAs
OCBAQCBsaWJ3ZWJraXQyZ3RrX0BXRUJLSVRHVEtfQVBJX01BSk9SX1ZFUlNJT05AX0BXRUJLSVRH
VEtfQVBJX01JTk9SX1ZFUlNJT05AX2xhX1NPVQogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
S2V5VmFsdWVTdG9yYWdlL1dlYktleVZhbHVlU3RvcmFnZU1hbmFnZXIuaCBcCiAJU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9NZWRpYUNhY2hlL1dlYk1lZGlhQ2FjaGVNYW5hZ2VyLmNwcCBcCiAJ
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYUNhY2hlL1dlYk1lZGlhQ2FjaGVNYW5hZ2Vy
LmggXAorCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwIFwKKwlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgg
XAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRp
b25NYW5hZ2VyLmNwcCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25z
L1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuaCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Q
bHVnaW5zL05ldHNjYXBlL0pTTlBNZXRob2QuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9X
S0Jhc2UuaAppbmRleCA2Y2Y0ZjBmMDNiNzBhODc2NTIwYmJlMjY3YzVkOGI4MjIyYzU5MTlhLi5h
ZGJjZTZkNjg0YjY2OGRkMDEwMzlhMmY0ODFhZmVmYzRiNjRlOWViIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL0FQSS9jL1dLQmFzZS5oCkBAIC05Nyw2ICs5Nyw3IEBAIHR5cGVkZWYgY29uc3Qgc3RydWN0
IE9wYXF1ZVdLTWVkaWFDYWNoZU1hbmFnZXIqIFdLTWVkaWFDYWNoZU1hbmFnZXJSZWY7CiB0eXBl
ZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS05hdmlnYXRpb25EYXRhKiBXS05hdmlnYXRpb25EYXRh
UmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tOb3RpZmljYXRpb24qIFdLTm90aWZp
Y2F0aW9uUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tOb3RpZmljYXRpb25NYW5h
Z2VyKiBXS05vdGlmaWNhdGlvbk1hbmFnZXJSZWY7Cit0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFx
dWVXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KiBXS05vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0UmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tOb3RpZmljYXRpb25Q
cm92aWRlciogV0tOb3RpZmljYXRpb25Qcm92aWRlclJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0
IE9wYXF1ZVdLT3BlblBhbmVsUGFyYW1ldGVycyogV0tPcGVuUGFuZWxQYXJhbWV0ZXJzUmVmOwog
dHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lciogV0tP
cGVuUGFuZWxSZXN1bHRMaXN0ZW5lclJlZjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9BUElPYmplY3QuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaAppbmRl
eCBkZWNiZGI5N2E3YzY5MTIzMDE5NGIyYzE2OWIyNTE2MzA3ZDcyNTk3Li4yOWM3MjZkMDdlNTNj
OWRhYzdmY2MxZGM5NDk4OGVmMDI2NGZkMjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQVBJT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5o
CkBAIC05MSw2ICs5MSw3IEBAIHB1YmxpYzoKICAgICAgICAgVHlwZU5hdmlnYXRpb25EYXRhLAog
ICAgICAgICBUeXBlTm90aWZpY2F0aW9uLAogICAgICAgICBUeXBlTm90aWZpY2F0aW9uTWFuYWdl
ciwKKyAgICAgICAgVHlwZU5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LAogICAgICAgICBU
eXBlT3BlblBhbmVsUGFyYW1ldGVycywKICAgICAgICAgVHlwZU9wZW5QYW5lbFJlc3VsdExpc3Rl
bmVyLAogICAgICAgICBUeXBlUGFnZSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1Rhcmdl
dC5wcmkgYi9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCmluZGV4IDk3NjkxNGU1OWI4ZDQ1MTVi
ZTY2MjBmOWUwYjRlNjI0YzYzZWJiYjIuLmUxODg1OTE5YjBlYjQzMWIwNjMyMGE4N2Q4MDk5M2I2
MDk3M2QyN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKKysrIGIvU291
cmNlL1dlYktpdDIvVGFyZ2V0LnByaQpAQCAtMTU2LDYgKzE1Niw3IEBAIEhFQURFUlMgKz0gXAog
ICAgIFVJUHJvY2Vzcy9BUEkvQy9XS05hdmlnYXRpb25EYXRhLmggXAogICAgIFVJUHJvY2Vzcy9B
UEkvQy9XS05vdGlmaWNhdGlvbi5oIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tOb3RpZmljYXRp
b25NYW5hZ2VyLmggXAorICAgIFVJUHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0LmggXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNhdGlvblByb3ZpZGVy
LmggXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9D
L1dLUGFnZUdyb3VwLmggXApAQCAtMTkzLDYgKzE5NCwxMSBAQCBIRUFERVJTICs9IFwKICAgICBV
SVByb2Nlc3MvR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFByb3h5LmggXAogICAgIFVJUHJv
Y2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaCBcCiAgICAgVUlQcm9jZXNzL0xhdW5jaGVy
L1RocmVhZExhdW5jaGVyLmggXAorICAgIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0LmggXAorICAgIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05v
dGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggXAorICAgIFVJUHJvY2Vz
cy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbi5oIFwKKyAgICBVSVByb2Nlc3MvTm90aWZp
Y2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaCBcCisgICAgVUlQcm9jZXNzL05v
dGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuaCBcCiAgICAgVUlQcm9jZXNzL1Bh
Z2VDbGllbnQuaCBcCiAgICAgVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luSW5mb1N0b3JlLmggXAog
ICAgIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5oIFwKQEAgLTIzMSw5ICsy
MzcsNiBAQCBIRUFERVJTICs9IFwKICAgICBVSVByb2Nlc3MvV2ViTG9hZGVyQ2xpZW50LmggXAog
ICAgIFVJUHJvY2Vzcy9XZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5LmggXAogICAgIFVJUHJvY2Vz
cy9XZWJOYXZpZ2F0aW9uRGF0YS5oIFwKLSAgICBVSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9uLmgg
XAotICAgIFVJUHJvY2Vzcy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaCBcCi0gICAgVUlQ
cm9jZXNzL1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmggXAogICAgIFVJUHJvY2Vzcy9XZWJPcGVu
UGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5LmggXAogICAgIFVJUHJvY2Vzcy9XZWJQYWdlQ29udGV4
dE1lbnVDbGllbnQuaCBcCiAgICAgVUlQcm9jZXNzL1dlYlBhZ2VHcm91cC5oIFwKQEAgLTMwMyw2
ICszMDYsNyBAQCBIRUFERVJTICs9IFwKICAgICBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlVXNlck1lc3NhZ2VDb2RlcnMuaCBcCiAgICAgV2ViUHJvY2Vzcy9LZXlWYWx1
ZVN0b3JhZ2UvV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlci5oIFwKICAgICBXZWJQcm9jZXNzL01l
ZGlhQ2FjaGUvV2ViTWVkaWFDYWNoZU1hbmFnZXIuaCBcCisgICAgV2ViUHJvY2Vzcy9Ob3RpZmlj
YXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIFwKICAgICBXZWJQ
cm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5oIFwKICAgICBXZWJQ
cm9jZXNzL1Jlc291cmNlQ2FjaGUvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXIuaCBcCiAgICAgV2Vi
UHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBNZXRob2QuaCBcCkBAIC00NzQsNiArNDc4LDcg
QEAgU09VUkNFUyArPSBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLSW5zcGVjdG9yLmNwcCBcCiAg
ICAgVUlQcm9jZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9uLmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQ
SS9DL1dLTm90aWZpY2F0aW9uTWFuYWdlci5jcHAgXAorICAgIFVJUHJvY2Vzcy9BUEkvQy9XS05v
dGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dL
T3BlblBhbmVsUGFyYW1ldGVycy5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS09wZW5QYW5l
bFJlc3VsdExpc3RlbmVyLmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLTmF2aWdhdGlvbkRh
dGEuY3BwIFwKQEAgLTUwNyw2ICs1MTIsMTEgQEAgU09VUkNFUyArPSBcCiAgICAgVUlQcm9jZXNz
L0xhdW5jaGVyL1RocmVhZExhdW5jaGVyLmNwcCBcCiAgICAgVUlQcm9jZXNzL0xhdW5jaGVyL3F0
L1Byb2Nlc3NMYXVuY2hlclF0LmNwcCBcCiAgICAgVUlQcm9jZXNzL0xhdW5jaGVyL3F0L1RocmVh
ZExhdW5jaGVyUXQuY3BwIFwKKyAgICBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdC5jcHAgXAorICAgIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05v
dGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBcCisgICAgVUlQcm9j
ZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uLmNwcCBcCisgICAgVUlQcm9jZXNzL05v
dGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcCBcCisgICAgVUlQcm9j
ZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwIFwKICAgICBVSVBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5JbmZvU3RvcmUuY3BwIFwKICAgICBVSVByb2Nlc3MvUGx1Z2lu
cy9QbHVnaW5Qcm9jZXNzUHJveHkuY3BwIFwKICAgICBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Q
cm9jZXNzTWFuYWdlci5jcHAgXApAQCAtNTQ1LDkgKzU1NSw2IEBAIFNPVVJDRVMgKz0gXAogICAg
IFVJUHJvY2Vzcy9XZWJMb2FkZXJDbGllbnQuY3BwIFwKICAgICBVSVByb2Nlc3MvV2ViTWVkaWFD
YWNoZU1hbmFnZXJQcm94eS5jcHAgXAogICAgIFVJUHJvY2Vzcy9XZWJOYXZpZ2F0aW9uRGF0YS5j
cHAgXAotICAgIFVJUHJvY2Vzcy9XZWJOb3RpZmljYXRpb24uY3BwIFwKLSAgICBVSVByb2Nlc3Mv
V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcCBcCi0gICAgVUlQcm9jZXNzL1dlYk5vdGlm
aWNhdGlvblByb3ZpZGVyLmNwcCBcCiAgICAgVUlQcm9jZXNzL1dlYk9wZW5QYW5lbFJlc3VsdExp
c3RlbmVyUHJveHkuY3BwIFwKICAgICBVSVByb2Nlc3MvV2ViUGFnZUNvbnRleHRNZW51Q2xpZW50
LmNwcCBcCiAgICAgVUlQcm9jZXNzL1dlYlBhZ2VHcm91cC5jcHAgXApAQCAtNjMzLDYgKzY0MCw3
IEBAIFNPVVJDRVMgKz0gXAogICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvcXQvSW5qZWN0
ZWRCdW5kbGVRdC5jcHAgXAogICAgIFdlYlByb2Nlc3MvS2V5VmFsdWVTdG9yYWdlL1dlYktleVZh
bHVlU3RvcmFnZU1hbmFnZXIuY3BwIFwKICAgICBXZWJQcm9jZXNzL01lZGlhQ2FjaGUvV2ViTWVk
aWFDYWNoZU1hbmFnZXIuY3BwIFwKKyAgICBXZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9Ob3Rp
ZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwIFwKICAgICBXZWJQcm9jZXNzL1Jl
c291cmNlQ2FjaGUvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXIuY3BwIFwKICAgICBXZWJQcm9jZXNz
L1BsdWdpbnMvTmV0c2NhcGUvSlNOUE1ldGhvZC5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCmluZGV4IDk3NzdjMWFjYWY0OGM5MGZmNDRlM2Y5NWMyYmM1
YWRhMmMzNWIyZDguLjBlNzE3NWE0MjhmNzgwODIwYzg5NzFkZTM5Yzk2NTEwYWFhZmFjOTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKQEAgLTUyLDYgKzUy
LDcgQEAgY2xhc3MgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eTsKIGNsYXNzIEF1dGhlbnRp
Y2F0aW9uRGVjaXNpb25MaXN0ZW5lcjsKIGNsYXNzIERvd25sb2FkUHJveHk7CiBjbGFzcyBHZW9s
b2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UHJveHk7CitjbGFzcyBOb3RpZmljYXRpb25QZXJtaXNz
aW9uUmVxdWVzdDsKIGNsYXNzIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHk7CiBjbGFz
cyBXZWJCYWNrRm9yd2FyZExpc3Q7CiBjbGFzcyBXZWJCYWNrRm9yd2FyZExpc3RJdGVtOwpAQCAt
MTA4LDYgKzEwOSw3IEBAIFdLX0FERF9BUElfTUFQUElORyhXS0tleVZhbHVlU3RvcmFnZU1hbmFn
ZXJSZWYsIFdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eSkKIFdLX0FERF9BUElfTUFQUElO
RyhXS01lZGlhQ2FjaGVNYW5hZ2VyUmVmLCBXZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5KQogV0tf
QUREX0FQSV9NQVBQSU5HKFdLTmF2aWdhdGlvbkRhdGFSZWYsIFdlYk5hdmlnYXRpb25EYXRhKQog
V0tfQUREX0FQSV9NQVBQSU5HKFdLTm90aWZpY2F0aW9uTWFuYWdlclJlZiwgV2ViTm90aWZpY2F0
aW9uTWFuYWdlclByb3h5KQorV0tfQUREX0FQSV9NQVBQSU5HKFdLTm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RSZWYsIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KQogV0tfQUREX0FQ
SV9NQVBQSU5HKFdLTm90aWZpY2F0aW9uUHJvdmlkZXJSZWYsIFdlYk5vdGlmaWNhdGlvblByb3Zp
ZGVyKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLTm90aWZpY2F0aW9uUmVmLCBXZWJOb3RpZmljYXRp
b24pCiBXS19BRERfQVBJX01BUFBJTkcoV0tPcGVuUGFuZWxQYXJhbWV0ZXJzUmVmLCBXZWJPcGVu
UGFuZWxQYXJhbWV0ZXJzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjU5NjM0OGQ3MjZlZGM0MmIwYzc3MDQwYjk5NWNjODg3ZmUxZTU0YWMKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdC5jcHAKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
LmgiCisKKyNpbmNsdWRlICJOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oIgorI2luY2x1
ZGUgIldLQVBJQ2FzdC5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCitXS1R5cGVJRCBX
S05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0R2V0VHlwZUlEKCkKK3sKKyAgICByZXR1cm4g
dG9BUEkoTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q6OkFQSVR5cGUpOworfQorCit2b2lk
IFdLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RBbGxvdyhXS05vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0UmVmIG5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KQoreworICAgIHJl
dHVybiB0b0ltcGwobm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QpLT5hbGxvdygpOworfQor
Cit2b2lkIFdLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3REZW55KFdLTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RSZWYgbm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QpCit7Cisg
ICAgcmV0dXJuIHRvSW1wbChub3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCktPmRlbnkoKTsK
K30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE5NDdhMDZhYWJh
ZTI5NTE1ZDVkNzNkMDQyMDRkNWIzOTNiZjE4MTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5o
CkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdLTm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RfaAorI2RlZmluZSBXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
X2gKKworI2luY2x1ZGUgPFdlYktpdDIvV0tCYXNlLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cwor
ZXh0ZXJuICJDIiB7CisjZW5kaWYKKworV0tfRVhQT1JUIFdLVHlwZUlEIFdLTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RHZXRUeXBlSUQoKTsKKworV0tfRVhQT1JUIHZvaWQgV0tOb3RpZmlj
YXRpb25QZXJtaXNzaW9uUmVxdWVzdEFsbG93KFdLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RSZWYgbm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QpOworV0tfRVhQT1JUIHZvaWQgV0tO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdERlbnkoV0tOb3RpZmljYXRpb25QZXJtaXNzaW9u
UmVxdWVzdFJlZiBub3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCk7CisKKyNpZmRlZiBfX2Nw
bHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRpZiAvLyBXS05vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS05v
dGlmaWNhdGlvblByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tO
b3RpZmljYXRpb25Qcm92aWRlci5oCmluZGV4IDZmYTY1YmJlN2ViOTRhNmE1OGQ0YzFmMmQ0Zjdm
N2I0NjNhZTBkMjguLjcwNDgxM2YxY2Y5YjEyZjVjOWE5MWYxNzI3MjI3MTBiODYyNTA2MWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNhdGlvblBy
b3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTm90aWZpY2F0
aW9uUHJvdmlkZXIuaApAQCAtMzUsMTcgKzM1LDE5IEBAIGV4dGVybiAiQyIgewogdHlwZWRlZiB2
b2lkICgqV0tOb3RpZmljYXRpb25Qcm92aWRlclNob3dDYWxsYmFjaykoV0tOb3RpZmljYXRpb25S
ZWYgbm90aWZpY2F0aW9uLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAo
KldLTm90aWZpY2F0aW9uUHJvdmlkZXJDYW5jZWxDYWxsYmFjaykoV0tOb3RpZmljYXRpb25SZWYg
bm90aWZpY2F0aW9uLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldL
Tm90aWZpY2F0aW9uUHJvdmlkZXJEaWREZXN0cm95Tm90aWZpY2F0aW9uQ2FsbGJhY2spKFdLTm90
aWZpY2F0aW9uUmVmIG5vdGlmaWNhdGlvbiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7Cit0eXBl
ZGVmIGludCAoKldLTm90aWZpY2F0aW9uUHJvdmlkZXJQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJt
aXNzaW9uQXRPcmlnaW5DYWxsYmFjaykoV0tTZWN1cml0eU9yaWdpblJlZiBvcmlnaW4sIGNvbnN0
IHZvaWQgKmNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tOb3RpZmljYXRpb25Qcm92aWRl
ckFkZE5vdGlmaWNhdGlvbk1hbmFnZXJDYWxsYmFjaykoV0tOb3RpZmljYXRpb25NYW5hZ2VyUmVm
IG1hbmFnZXIsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tOb3Rp
ZmljYXRpb25Qcm92aWRlclJlbW92ZU5vdGlmaWNhdGlvbk1hbmFnZXJDYWxsYmFjaykoV0tOb3Rp
ZmljYXRpb25NYW5hZ2VyUmVmIG1hbmFnZXIsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogCiBz
dHJ1Y3QgV0tOb3RpZmljYXRpb25Qcm92aWRlciB7Ci0gICAgaW50ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnNpb247Ci0gICAgY29uc3Qg
dm9pZCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVu
dEluZm87Ci0gICAgV0tOb3RpZmljYXRpb25Qcm92aWRlclNob3dDYWxsYmFjayAgICAgICAgICAg
ICAgICAgICAgICAgIHNob3c7Ci0gICAgV0tOb3RpZmljYXRpb25Qcm92aWRlckNhbmNlbENhbGxi
YWNrICAgICAgICAgICAgICAgICAgICAgIGNhbmNlbDsKLSAgICBXS05vdGlmaWNhdGlvblByb3Zp
ZGVyRGlkRGVzdHJveU5vdGlmaWNhdGlvbkNhbGxiYWNrICAgICAgZGlkRGVzdHJveU5vdGlmaWNh
dGlvbjsKLSAgICBXS05vdGlmaWNhdGlvblByb3ZpZGVyQWRkTm90aWZpY2F0aW9uTWFuYWdlckNh
bGxiYWNrICAgICAgYWRkTm90aWZpY2F0aW9uTWFuYWdlcjsKLSAgICBXS05vdGlmaWNhdGlvblBy
b3ZpZGVyUmVtb3ZlTm90aWZpY2F0aW9uTWFuYWdlckNhbGxiYWNrICAgcmVtb3ZlTm90aWZpY2F0
aW9uTWFuYWdlcjsKKyAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbjsKKyAgICBjb25zdCB2b2lkKiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y2xpZW50SW5mbzsKKyAgICBXS05vdGlmaWNhdGlvblByb3ZpZGVyU2hvd0NhbGxiYWNrICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvdzsKKyAgICBXS05vdGlmaWNhdGlvblBy
b3ZpZGVyQ2FuY2VsQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2Fu
Y2VsOworICAgIFdLTm90aWZpY2F0aW9uUHJvdmlkZXJEaWREZXN0cm95Tm90aWZpY2F0aW9uQ2Fs
bGJhY2sgICAgICAgICAgICAgICAgICBkaWREZXN0cm95Tm90aWZpY2F0aW9uOworICAgIFdLTm90
aWZpY2F0aW9uUHJvdmlkZXJQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uQXRPcmlnaW5D
YWxsYmFjayBwb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uQXRPcmlnaW47CisgICAgV0tO
b3RpZmljYXRpb25Qcm92aWRlckFkZE5vdGlmaWNhdGlvbk1hbmFnZXJDYWxsYmFjayAgICAgICAg
ICAgICAgICAgIGFkZE5vdGlmaWNhdGlvbk1hbmFnZXI7CisgICAgV0tOb3RpZmljYXRpb25Qcm92
aWRlclJlbW92ZU5vdGlmaWNhdGlvbk1hbmFnZXJDYWxsYmFjayAgICAgICAgICAgICAgIHJlbW92
ZU5vdGlmaWNhdGlvbk1hbmFnZXI7CiB9OwogdHlwZWRlZiBzdHJ1Y3QgV0tOb3RpZmljYXRpb25Q
cm92aWRlciBXS05vdGlmaWNhdGlvblByb3ZpZGVyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tQYWdlLmgKaW5kZXggY2I1YWQyZjE1OTIzMGJiYTA2OTgxYTQ2ODc1MGY2MWJlMDA0
NjhiZC4uMWRlNzA2MjhjODhiMWQwYzFkMGI0NWFjMzY3YTVlOTcwNmQ1MTk1YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaApAQCAtMTk3LDYgKzE5Nyw3IEBAIHR5cGVk
ZWYgdm9pZCAoKldLUGFnZURyYXdGb290ZXJDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLRnJh
bWVSZWYgZnJhbWUsIFdLUmVjCiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VQcmludEZyYW1lQ2FsbGJh
Y2spKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBjb25zdCB2b2lkKiBjbGllbnRJ
bmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLUGFnZVNhdmVEYXRhVG9GaWxlSW5Eb3dubG9hZHNGb2xk
ZXJDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIHN1Z2dlc3RlZEZpbGVuYW1l
LCBXS1N0cmluZ1JlZiBtaW1lVHlwZSwgV0tVUkxSZWYgb3JpZ2luYXRpbmdVUkwsIFdLRGF0YVJl
ZiBkYXRhLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIHR5cGVkZWYgYm9vbCAoKldLUGFnZVNo
b3VsZEludGVycnVwdEphdmFTY3JpcHRDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IHZv
aWQgKmNsaWVudEluZm8pOwordHlwZWRlZiB2b2lkICgqV0tQYWdlRGVjaWRlUG9saWN5Rm9yTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLU2Vj
dXJpdHlPcmlnaW5SZWYgb3JpZ2luLCBXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0UmVm
IHBlcm1pc3Npb25SZXF1ZXN0LCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIAogLy8gRGVwcmVj
YXRlZCAgICAKIHR5cGVkZWYgV0tQYWdlUmVmICgqV0tQYWdlQ3JlYXRlTmV3UGFnZUNhbGxiYWNr
X2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjApKFdLUGFnZVJlZiBwYWdlLCBXS0RpY3Rpb25hcnlSZWYg
ZmVhdHVyZXMsIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzLCBXS0V2ZW50TW91c2VCdXR0b24g
bW91c2VCdXR0b24sIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwpAQCAtMjUwLDYgKzI1MSw3IEBA
IHN0cnVjdCBXS1BhZ2VVSUNsaWVudCB7CiAgICAgLy8gVmVyc2lvbiAxCiAgICAgV0tQYWdlQ3Jl
YXRlTmV3UGFnZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjcmVhdGVOZXdQYWdlOwogICAgIFdLUGFnZU1vdXNlRGlkTW92ZU92ZXJFbGVtZW50Q2FsbGJh
Y2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQ7
CisgICAgV0tQYWdlRGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RD
YWxsYmFjayAgICAgICAgICBkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdDsKIH07CiB0eXBlZGVmIHN0cnVjdCBXS1BhZ2VVSUNsaWVudCBXS1BhZ2VVSUNsaWVudDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjI1ZDM3ZGE0Yjk5NGI2ZDBjZGRiZTQyNTQ0MDI4M2FjMWUwZTY5YTUKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdC5jcHAKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVz
dC5oIgorCisjaW5jbHVkZSAiTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisgICAgCitQYXNzUmVmUHRyPE5vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0PiBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDo6Y3JlYXRl
KFdlYktpdDo6Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkgKm1hbmFn
ZXIsIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcg
Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QobWFuYWdlciwgbm90aWZpY2F0aW9uSUQpKTsK
K30KKworTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q6Ok5vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0KE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5KiBtYW5h
Z2VyLCB1aW50NjRfdCBub3RpZmljYXRpb25JRCkKKyAgICA6IG1fbWFuYWdlcihtYW5hZ2VyKQor
ICAgICwgbV9ub3RpZmljYXRpb25JRChub3RpZmljYXRpb25JRCkKK3sKK30KKwordm9pZCBOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDo6YWxsb3coKQoreworICAgIGlmICghbV9tYW5hZ2Vy
KQorICAgICAgICByZXR1cm47CisgICAgCisgICAgbV9tYW5hZ2VyLT5kaWRSZWNlaXZlTm90aWZp
Y2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKG1fbm90aWZpY2F0aW9uSUQsIHRydWUpOworICAgIG1f
bWFuYWdlciA9IDA7Cit9CisKK3ZvaWQgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q6OmRl
bnkoKQoreworICAgIGlmICghbV9tYW5hZ2VyKQorICAgICAgICByZXR1cm47CisgICAgCisgICAg
bV9tYW5hZ2VyLT5kaWRSZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKG1fbm90
aWZpY2F0aW9uSUQsIGZhbHNlKTsKKyAgICBtX21hbmFnZXIgPSAwOworfQorCit2b2lkIE5vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0OjppbnZhbGlkYXRlKCkKK3sKKyAgICBtX21hbmFnZXIg
PSAwOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI0ZGI5OGIwYzU2ODlhZGY2OWFjMDI5OWZh
MmZlNjI3ZGJhMTU2ZjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oCkBAIC0wLDAg
KzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0X2gKKyNkZWZpbmUgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RfaAorCisjaW5jbHVk
ZSAiQVBJT2JqZWN0LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK2NsYXNzIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5OworCitjbGFzcyBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCA6IHB1YmxpYyBBUElP
YmplY3QgeworcHVibGljOgorICAgIHN0YXRpYyBjb25zdCBUeXBlIEFQSVR5cGUgPSBUeXBlTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q7CisgICAgCisgICAgc3RhdGljIFBhc3NSZWZQdHI8
Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q+IGNyZWF0ZShOb3RpZmljYXRpb25QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eSosIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKTsKKyAgICAK
KyAgICB2b2lkIGFsbG93KCk7CisgICAgdm9pZCBkZW55KCk7CisgICAgCisgICAgdm9pZCBpbnZh
bGlkYXRlKCk7CisgICAgCitwcml2YXRlOgorICAgIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0KE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5KiwgdWludDY0X3Qg
bm90aWZpY2F0aW9uSUQpOworICAgIAorICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyBy
ZXR1cm4gQVBJVHlwZTsgfQorICAgIAorICAgIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5KiBtX21hbmFnZXI7CisgICAgdWludDY0X3QgbV9ub3RpZmljYXRpb25JRDsg
ICAgCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIE5vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0UHJveHlfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA3OTIy
OTg1ZTQ1NjVmM2M3M2NhZGMzYTBjZjQ1NTIxN2M2MTk5NjkKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKQEAgLTAsMCArMSw3MCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eS5oIgorCisjaW5jbHVkZSAiTm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3QuaCIKKyNpbmNsdWRlICJXZWJQYWdlTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQYWdl
UHJveHkuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpOb3RpZmlj
YXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eShXZWJQYWdlUHJveHkqIHBhZ2UpCisg
ICAgOiBtX3BhZ2UocGFnZSkKK3sKK30KKwordm9pZCBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eTo6aW52YWxpZGF0ZVJlcXVlc3RzKCkKK3sKKyAgICBQZW5kaW5nUmVx
dWVzdE1hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX3BlbmRpbmdSZXF1ZXN0cy5iZWdpbigpOwor
ICAgIFBlbmRpbmdSZXF1ZXN0TWFwOjpjb25zdF9pdGVyYXRvciBlbmQgPSBtX3BlbmRpbmdSZXF1
ZXN0cy5lbmQoKTsKKyAgICBmb3IgKDsgaXQgIT0gZW5kOyArK2l0KQorICAgICAgICBpdC0+c2Vj
b25kLT5pbnZhbGlkYXRlKCk7CisgICAgCisgICAgbV9wZW5kaW5nUmVxdWVzdHMuY2xlYXIoKTsK
K30KKworUGFzc1JlZlB0cjxOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdD4gTm90aWZpY2F0
aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmNyZWF0ZVJlcXVlc3QodWludDY0X3Qg
bm90aWZpY2F0aW9uSUQpCit7CisgICAgUmVmUHRyPE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0PiByZXF1ZXN0ID0gTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q6OmNyZWF0ZSh0aGlz
LCBub3RpZmljYXRpb25JRCk7CisgICAgbV9wZW5kaW5nUmVxdWVzdHMuYWRkKG5vdGlmaWNhdGlv
bklELCByZXF1ZXN0LmdldCgpKTsKKyAgICByZXR1cm4gcmVxdWVzdC5yZWxlYXNlKCk7Cit9CisK
K3ZvaWQgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmRpZFJlY2Vp
dmVOb3RpZmljYXRpb25QZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQs
IGJvb2wgYWxsb3cpCit7CisgICAgaWYgKCFtX3BhZ2UtPmlzVmFsaWQoKSkKKyAgICAgICAgcmV0
dXJuOworICAgIAorICAgIFJlZlB0cjxOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdD4gcmVx
dWVzdCA9IG1fcGVuZGluZ1JlcXVlc3RzLnRha2Uobm90aWZpY2F0aW9uSUQpOworICAgIGlmICgh
cmVxdWVzdCkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIG1fcGFnZS0+cHJvY2VzcygpLT5z
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRSZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRl
Y2lzaW9uKG5vdGlmaWNhdGlvbklELCBhbGxvdyksIG1fcGFnZS0+cGFnZUlEKCkpOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY2MjI4ZTcyYTk0ZDJm
MjFkNDExMTEyMzBjNzJkYjU1MzVjYjRhMmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eS5oCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIE5v
dGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5X2gKKyNkZWZpbmUgTm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHlfaAorCisjaW5jbHVkZSAiTm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2lu
Y2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIEdlb2xv
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3RQcm94eTsKK2NsYXNzIFdlYlBhZ2VQcm94eTsKKworY2xh
c3MgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkgeworcHVibGljOgor
ICAgIGV4cGxpY2l0IE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5KFdl
YlBhZ2VQcm94eSopOworICAgIAorICAgIHZvaWQgaW52YWxpZGF0ZVJlcXVlc3RzKCk7CisgICAg
CisgICAgLy8gQ3JlYXRlIGEgcmVxdWVzdCB0byBiZSBwcmVzZW50ZWQgdG8gdGhlIHVzZXIuCisg
ICAgUGFzc1JlZlB0cjxOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdD4gY3JlYXRlUmVxdWVz
dCh1aW50NjRfdCBub3RpZmljYXRpb25JRCk7CisgICAgCisgICAgLy8gQ2FsbGVkIGJ5IE5vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0IHdoZW4gYSBkZWNpc2lvbiBpcyBtYWRlIGJ5IHRoZSB1
c2VyLgorICAgIHZvaWQgZGlkUmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25EZWNpc2lvbih1
aW50NjRfdCBub3RpZmljYXRpb25JRCwgYm9vbCBhbGxvdyk7CisgICAgCitwcml2YXRlOgorICAg
IHR5cGVkZWYgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPE5vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0PiA+IFBlbmRpbmdSZXF1ZXN0TWFwOworICAgIFBlbmRpbmdSZXF1ZXN0TWFwIG1fcGVu
ZGluZ1JlcXVlc3RzOworICAgIFdlYlBhZ2VQcm94eSogbV9wYWdlOworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CisKKworI2VuZGlmIC8vIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3Rp
ZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Tm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNmMDI1OTg2MjRj
MTU2YTk4ZmJmMjA5YTYyMmUxMTkxYzJhNmZkM2UKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb24uY3BwCkBAIC0w
LDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
V2ViTm90aWZpY2F0aW9uLmgiCisKKyNpbmNsdWRlICJBcmd1bWVudENvZGVycy5oIgorI2luY2x1
ZGUgIkFyZ3VtZW50RGVjb2Rlci5oIgorI2luY2x1ZGUgIkFyZ3VtZW50RW5jb2Rlci5oIgorI2lu
Y2x1ZGUgIkFyZ3VtZW50cy5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViTm90aWZpY2F0
aW9uOjpXZWJOb3RpZmljYXRpb24oKQoreworfQorCitXZWJOb3RpZmljYXRpb246OldlYk5vdGlm
aWNhdGlvbihjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBTdHJpbmcmIGJvZHksIHVpbnQ2NF90
IG5vdGlmaWNhdGlvbklEKQorICAgIDogbV90aXRsZSh0aXRsZSkKKyAgICAsIG1fYm9keShib2R5
KQorICAgICwgbV9ub3RpZmljYXRpb25JRChub3RpZmljYXRpb25JRCkKK3sKK30KKworV2ViTm90
aWZpY2F0aW9uOjp+V2ViTm90aWZpY2F0aW9uKCkKK3sKK30KKwordm9pZCBXZWJOb3RpZmljYXRp
b246OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0Cit7Cisg
ICAgZW5jb2Rlci0+ZW5jb2RlKENvcmVJUEM6OkluKG1fdGl0bGUsIG1fYm9keSwgbV9ub3RpZmlj
YXRpb25JRCkpOworfQorCitib29sIFdlYk5vdGlmaWNhdGlvbjo6ZGVjb2RlKENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciogZGVjb2RlciwgV2ViTm90aWZpY2F0aW9uJiBub3RpZmljYXRpb24pCit7
CisgICAgcmV0dXJuIGRlY29kZXItPmRlY29kZShDb3JlSVBDOjpPdXQobm90aWZpY2F0aW9uLm1f
dGl0bGUsIG5vdGlmaWNhdGlvbi5tX2JvZHksIG5vdGlmaWNhdGlvbi5tX25vdGlmaWNhdGlvbklE
KSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb24uaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5mNjg1ODZmMTI1MjM0Mzg0YTQ1M2E4MWNkODM4NDhiYmFkZmY4ZGQ0Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0
aW9uLmgKQEAgLTAsMCArMSw4MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViTm90aWZpY2F0
aW9uX2gKKyNkZWZpbmUgV2ViTm90aWZpY2F0aW9uX2gKKworI2luY2x1ZGUgIkFQSU9iamVjdC5o
IgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CisKK25hbWVzcGFjZSBDb3JlSVBDIHsKKworY2xhc3MgQXJndW1lbnREZWNvZGVyOwor
Y2xhc3MgQXJndW1lbnRFbmNvZGVyOworCit9IC8vIG5hbWVzcGFjZSBDb3JlSVBDCisKK25hbWVz
cGFjZSBXZWJLaXQgeworICAgIAorY2xhc3MgV2ViTm90aWZpY2F0aW9uIDogcHVibGljIEFQSU9i
amVjdCB7CitwdWJsaWM6CisgICAgc3RhdGljIGNvbnN0IFR5cGUgQVBJVHlwZSA9IFR5cGVOb3Rp
ZmljYXRpb247CisgICAgCisgICAgV2ViTm90aWZpY2F0aW9uKCk7CisgICAgc3RhdGljIFBhc3NS
ZWZQdHI8V2ViTm90aWZpY2F0aW9uPiBjcmVhdGUoY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3Qg
U3RyaW5nJiBib2R5LCB1aW50NjRfdCBub3RpZmljYXRpb25JRCkKKyAgICB7CisgICAgICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgV2ViTm90aWZpY2F0aW9uKHRpdGxlLCBib2R5LCBub3RpZmljYXRp
b25JRCkpOworICAgIH0KKyAgICB2aXJ0dWFsIH5XZWJOb3RpZmljYXRpb24oKTsKKyAgICAKKyAg
ICBjb25zdCBTdHJpbmcmIHRpdGxlKCkgY29uc3QgeyByZXR1cm4gbV90aXRsZTsgfQorICAgIAor
ICAgIGNvbnN0IFN0cmluZyYgYm9keSgpIGNvbnN0IHsgcmV0dXJuIG1fYm9keTsgfQorICAgIAor
ICAgIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKCkgY29uc3QgeyByZXR1cm4gbV9ub3RpZmljYXRp
b25JRDsgfQorCisgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKikgY29u
c3Q7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIFdl
Yk5vdGlmaWNhdGlvbiYpOworCitwcml2YXRlOgorICAgIFdlYk5vdGlmaWNhdGlvbihjb25zdCBT
dHJpbmcmIHRpdGxlLCBjb25zdCBTdHJpbmcmIGJvZHksIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklE
KTsKKworICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQor
ICAgIAorICAgIFN0cmluZyBtX3RpdGxlOworICAgIFN0cmluZyBtX2JvZHk7CisgICAgdWludDY0
X3QgbV9ub3RpZmljYXRpb25JRDsKK307CisKK2lubGluZSBib29sIGlzTm90aWZpY2F0aW9uSURW
YWxpZCh1aW50NjRfdCBpZCkKK3sKKyAgICAvLyBUaGlzIGNoZWNrIG1ha2VzIHN1cmUgdGhhdCB0
aGUgSUQgaXMgbm90IGVxdWFsIHRvIHZhbHVlcyBuZWVkZWQgYnkKKyAgICAvLyBIYXNoTWFwIGZv
ciBidWNrZXRpbmcuCisgICAgcmV0dXJuIGlkICYmIGlkICE9IHN0YXRpY19jYXN0PHVpbnQ2NF90
PigtMSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViTm90aWZp
Y2F0aW9uX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRp
b25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjJmY2ZiMzRkMTY1N2ZhOTVkN2FiYjVjZTNhNzFiZDI3ZDg2NDQwYzcKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3Rp
ZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwCkBAIC0wLDAgKzEsMTU0IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94
eS5oIgorCisjaW5jbHVkZSAiSW1tdXRhYmxlQXJyYXkuaCIKKyNpbmNsdWRlICJXZWJDb250ZXh0
LmgiCisjaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9uLmgiCisjaW5jbHVkZSAiV2ViTm90aWZpY2F0
aW9uTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViU2VjdXJpdHlPcmlnaW4uaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL05vdGlmaWNhdGlvbkNvbnRlbnRzLmg+CisKK3VzaW5nIG5hbWVzcGFj
ZSBXVEY7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K1Bhc3NSZWZQdHI8V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5PiBXZWJOb3RpZmljYXRpb25N
YW5hZ2VyUHJveHk6OmNyZWF0ZShXZWJDb250ZXh0KiBjb250ZXh0KQoreworICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5KGNvbnRleHQpKTsKK30KKwor
V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHko
V2ViQ29udGV4dCogY29udGV4dCkKKyAgICA6IG1fY29udGV4dChjb250ZXh0KQoreworfQorCitX
ZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6On5XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHko
KQoreworfQorCit2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6aW52YWxpZGF0ZSgp
Cit7CisgICAgbV9wcm92aWRlci5yZW1vdmVOb3RpZmljYXRpb25NYW5hZ2VyKHRoaXMpOworfQor
Cit2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6aW5pdGlhbGl6ZVByb3ZpZGVyKGNv
bnN0IFdLTm90aWZpY2F0aW9uUHJvdmlkZXIgKnByb3ZpZGVyKQoreworICAgIG1fcHJvdmlkZXIu
aW5pdGlhbGl6ZShwcm92aWRlcik7Cit9CisKK3ZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlclBy
b3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBD
b3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFy
Z3VtZW50cykKK3sKKyAgICBkaWRSZWNlaXZlV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5TWVz
c2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7Cit9CisKK3ZvaWQgV2ViTm90
aWZpY2F0aW9uTWFuYWdlclByb3h5OjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQ
Qzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMsIE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVu
Y29kZXI+JiByZXBseSkKK3sKKyAgICBkaWRSZWNlaXZlU3luY1dlYk5vdGlmaWNhdGlvbk1hbmFn
ZXJQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMsIHJlcGx5KTsK
K30KKwordm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OnNob3coY29uc3QgU3RyaW5n
JiB0aXRsZSwgY29uc3QgU3RyaW5nJiBib2R5LCB1aW50NjRfdCBub3RpZmljYXRpb25JRCkKK3sK
KyAgICBpZiAoIWlzTm90aWZpY2F0aW9uSURWYWxpZChub3RpZmljYXRpb25JRCkpCisgICAgICAg
IHJldHVybjsKKyAgICAKKyAgICBtX3Byb3ZpZGVyLmFkZE5vdGlmaWNhdGlvbk1hbmFnZXIodGhp
cyk7CisKKyAgICBSZWZQdHI8V2ViTm90aWZpY2F0aW9uPiBub3RpZmljYXRpb24gPSBXZWJOb3Rp
ZmljYXRpb246OmNyZWF0ZSh0aXRsZSwgYm9keSwgbm90aWZpY2F0aW9uSUQpOworICAgIG1fbm90
aWZpY2F0aW9ucy5zZXQobm90aWZpY2F0aW9uSUQsIG5vdGlmaWNhdGlvbik7CisgICAgbV9wcm92
aWRlci5zaG93KG5vdGlmaWNhdGlvbi5nZXQoKSk7Cit9CisKK3ZvaWQgV2ViTm90aWZpY2F0aW9u
TWFuYWdlclByb3h5OjpjYW5jZWwodWludDY0X3Qgbm90aWZpY2F0aW9uSUQpCit7CisgICAgaWYg
KCFpc05vdGlmaWNhdGlvbklEVmFsaWQobm90aWZpY2F0aW9uSUQpKQorICAgICAgICByZXR1cm47
CisKKyAgICBSZWZQdHI8V2ViTm90aWZpY2F0aW9uPiBub3RpZmljYXRpb24gPSBtX25vdGlmaWNh
dGlvbnMuZ2V0KG5vdGlmaWNhdGlvbklEKTsKKyAgICBpZiAoIW5vdGlmaWNhdGlvbikKKyAgICAg
ICAgcmV0dXJuOworCisgICAgbV9wcm92aWRlci5hZGROb3RpZmljYXRpb25NYW5hZ2VyKHRoaXMp
OworICAgIG1fcHJvdmlkZXIuY2FuY2VsKG5vdGlmaWNhdGlvbi5nZXQoKSk7Cit9CisgICAgCit2
b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6ZGlkRGVzdHJveU5vdGlmaWNhdGlvbih1
aW50NjRfdCBub3RpZmljYXRpb25JRCkKK3sKKyAgICBpZiAoIWlzTm90aWZpY2F0aW9uSURWYWxp
ZChub3RpZmljYXRpb25JRCkpCisgICAgICAgIHJldHVybjsKKworICAgIFJlZlB0cjxXZWJOb3Rp
ZmljYXRpb24+IG5vdGlmaWNhdGlvbiA9IG1fbm90aWZpY2F0aW9ucy50YWtlKG5vdGlmaWNhdGlv
bklEKTsKKyAgICBpZiAoIW5vdGlmaWNhdGlvbikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9w
cm92aWRlci5kaWREZXN0cm95Tm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbi5nZXQoKSk7Cit9CisK
K3ZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5Ojpub3RpZmljYXRpb25QZXJtaXNzaW9u
TGV2ZWwoY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyLCB1aW50NjRfdCYgcGVybWlzc2lv
bkxldmVsKQoreworICAgIFJlZlB0cjxXZWJTZWN1cml0eU9yaWdpbj4gb3JpZ2luID0gV2ViU2Vj
dXJpdHlPcmlnaW46OmNyZWF0ZShvcmlnaW5JZGVudGlmaWVyKTsKKyAgICBwZXJtaXNzaW9uTGV2
ZWwgPSBtX3Byb3ZpZGVyLnBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25BdE9yaWdpbihv
cmlnaW4uZ2V0KCkpOworfQorCit2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6cHJv
dmlkZXJEaWRTaG93Tm90aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQoreworICAg
IGlmICghbV9jb250ZXh0KQorICAgICAgICByZXR1cm47CisgICAgCisgICAgbV9jb250ZXh0LT5z
ZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OkRpZFNo
b3dOb3RpZmljYXRpb24obm90aWZpY2F0aW9uSUQpKTsKK30KKwordm9pZCBXZWJOb3RpZmljYXRp
b25NYW5hZ2VyUHJveHk6OnByb3ZpZGVyRGlkQ2xpY2tOb3RpZmljYXRpb24odWludDY0X3Qgbm90
aWZpY2F0aW9uSUQpCit7CisgICAgaWYgKCFtX2NvbnRleHQpCisgICAgICAgIHJldHVybjsKKyAg
ICAKKyAgICBtX2NvbnRleHQtPnNlbmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6V2ViTm90aWZp
Y2F0aW9uTWFuYWdlcjo6RGlkQ2xpY2tOb3RpZmljYXRpb24obm90aWZpY2F0aW9uSUQpKTsKK30K
KworCit2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6cHJvdmlkZXJEaWRDbG9zZU5v
dGlmaWNhdGlvbnMoSW1tdXRhYmxlQXJyYXkqIG5vdGlmaWNhdGlvbklEcykKK3sKKyAgICBpZiAo
IW1fY29udGV4dCkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIHNpemVfdCBzaXplID0gbm90
aWZpY2F0aW9uSURzLT5zaXplKCk7CisgICAgCisgICAgVmVjdG9yPHVpbnQ2NF90PiB2ZWN0b3JO
b3RpZmljYXRpb25JRHM7CisgICAgdmVjdG9yTm90aWZpY2F0aW9uSURzLnJlc2VydmVJbml0aWFs
Q2FwYWNpdHkoc2l6ZSk7CisgICAgCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyAr
K2kpIHsKKyAgICAgICAgdWludDY0X3Qgbm90aWZpY2F0aW9uSUQgPSBub3RpZmljYXRpb25JRHMt
PmF0PFdlYlVJbnQ2ND4oaSktPnZhbHVlKCk7CisgICAgICAgIHZlY3Rvck5vdGlmaWNhdGlvbklE
cy5hcHBlbmQobm90aWZpY2F0aW9uSUQpOworICAgIH0KKyAgICAKKyAgICBpZiAodmVjdG9yTm90
aWZpY2F0aW9uSURzLnNpemUoKSkKKyAgICAgICAgbV9jb250ZXh0LT5zZW5kVG9BbGxQcm9jZXNz
ZXMoTWVzc2FnZXM6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OkRpZENsb3NlTm90aWZpY2F0aW9u
cyh2ZWN0b3JOb3RpZmljYXRpb25JRHMpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3Rp
ZmljYXRpb25NYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmlj
YXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY4MDlhZTRk
NDgyYzUwOTI2M2I1ZDJhNDdkZDljNDA1OTIwZjYwZGEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2Vy
UHJveHkuaApAQCAtMCwwICsxLDg5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJOb3RpZmlj
YXRpb25NYW5hZ2VyUHJveHlfaAorI2RlZmluZSBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHlf
aAorCisjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCisjaW5jbHVkZSAiTWVzc2FnZUlELmgiCisjaW5j
bHVkZSAiV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuaCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5o
PgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgor
CituYW1lc3BhY2UgQ29yZUlQQyB7CitjbGFzcyBBcmd1bWVudERlY29kZXI7CitjbGFzcyBBcmd1
bWVudEVuY29kZXI7CitjbGFzcyBDb25uZWN0aW9uOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsK
KworY2xhc3MgSW1tdXRhYmxlQXJyYXk7CitjbGFzcyBXZWJDb250ZXh0OworCitjbGFzcyBXZWJO
b3RpZmljYXRpb25NYW5hZ2VyUHJveHkgOiBwdWJsaWMgQVBJT2JqZWN0IHsKK3B1YmxpYzoKKyAg
ICBzdGF0aWMgY29uc3QgVHlwZSBBUElUeXBlID0gVHlwZU5vdGlmaWNhdGlvbk1hbmFnZXI7Cisg
ICAgCisgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5PiBj
cmVhdGUoV2ViQ29udGV4dCopOworICAgIHZpcnR1YWwgfldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQ
cm94eSgpOworICAgIAorICAgIHZvaWQgaW52YWxpZGF0ZSgpOworICAgIHZvaWQgY2xlYXJDb250
ZXh0KCkgeyBtX2NvbnRleHQgPSAwOyB9CisKKyAgICB2b2lkIGluaXRpYWxpemVQcm92aWRlcihj
b25zdCBXS05vdGlmaWNhdGlvblByb3ZpZGVyKik7CisgICAgCisgICAgdm9pZCBwcm92aWRlckRp
ZFNob3dOb3RpZmljYXRpb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQpOworICAgIHZvaWQgcHJv
dmlkZXJEaWRDbGlja05vdGlmaWNhdGlvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCk7CisgICAg
dm9pZCBwcm92aWRlckRpZENsb3NlTm90aWZpY2F0aW9ucyhJbW11dGFibGVBcnJheSogbm90aWZp
Y2F0aW9uSURzKTsKKyAgICAKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNv
bm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rlciop
OworICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBD
b3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIE93blB0cjxDb3Jl
SVBDOjpBcmd1bWVudEVuY29kZXI+Jik7CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgV2ViTm90
aWZpY2F0aW9uTWFuYWdlclByb3h5KFdlYkNvbnRleHQqKTsKKyAgICAKKyAgICB2aXJ0dWFsIFR5
cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KKyAgICAKKyAgICB2b2lkIGRpZFJl
Y2VpdmVXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAg
IHZvaWQgZGlkUmVjZWl2ZVN5bmNXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHlNZXNzYWdlKENv
cmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciosIE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+Jik7CisgICAgCisgICAg
Ly8gTWVzc2FnZSBoYW5kbGVycworICAgIHZvaWQgc2hvdyhjb25zdCBXVEY6OlN0cmluZyYgdGl0
bGUsIGNvbnN0IFdURjo6U3RyaW5nJiBib2R5LCB1aW50NjRfdCBub3RpZmljYXRpb25JRCk7Cisg
ICAgdm9pZCBjYW5jZWwodWludDY0X3Qgbm90aWZpY2F0aW9uSUQpOworICAgIHZvaWQgZGlkRGVz
dHJveU5vdGlmaWNhdGlvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCk7CisgICAgdm9pZCBub3Rp
ZmljYXRpb25QZXJtaXNzaW9uTGV2ZWwoY29uc3QgV1RGOjpTdHJpbmcmIG9yaWdpbklkZW50aWZp
ZXIsIHVpbnQ2NF90JiBwZXJtaXNzaW9uTGV2ZWwpOworCisgICAgdHlwZWRlZiBIYXNoTWFwPHVp
bnQ2NF90LCBSZWZQdHI8V2ViTm90aWZpY2F0aW9uPiA+IFdlYk5vdGlmaWNhdGlvbk1hcDsKKyAg
ICAKKyAgICBXZWJDb250ZXh0KiBtX2NvbnRleHQ7CisgICAgV2ViTm90aWZpY2F0aW9uUHJvdmlk
ZXIgbV9wcm92aWRlcjsKKyAgICBXZWJOb3RpZmljYXRpb25NYXAgbV9ub3RpZmljYXRpb25zOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBXZWJOb3RpZmljYXRpb25N
YW5hZ2VyUHJveHlfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlm
aWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclBy
b3h5Lm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ2NjcxYjQyODRkYTQzNjBiMDA4MGMzYWRkZGQ1
OTU1YjUxYTJmMjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Tm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KQEAg
LTAsMCArMSwyOSBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEu
ICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMg
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitt
ZXNzYWdlcyAtPiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkgeworICAgIFNob3coV1RGOjpT
dHJpbmcgdGl0bGUsIFdURjo6U3RyaW5nIGJvZHksIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKTsK
KyAgICBDYW5jZWwodWludDY0X3Qgbm90aWZpY2F0aW9uSUQpOworICAgIERpZERlc3Ryb3lOb3Rp
ZmljYXRpb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQpOworCisgICAgTm90aWZpY2F0aW9uUGVy
bWlzc2lvbkxldmVsKFdURjo6U3RyaW5nIG9yaWdpbklkZW50aWZpZXIpIC0+ICh1aW50NjRfdCBw
b2xpY3kpCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0
aW9ucy9XZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YWY4YTcxZGJhZTMxMDA4ZWIyOTE3ZGU4MmVkODIxMDc5MzY1YzM4MgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlv
blByb3ZpZGVyLmNwcApAQCAtMCwwICsxLDg0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmgiCisKKyNpbmNsdWRl
ICJXS0FQSUNhc3QuaCIKKyNpbmNsdWRlICJXZWJOb3RpZmljYXRpb24uaCIKKyNpbmNsdWRlICJX
ZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaCIKKyNpbmNsdWRlICJXZWJTZWN1cml0eU9yaWdp
bi5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBXZWJOb3RpZmljYXRpb25Qcm92aWRl
cjo6c2hvdyhXZWJOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbikKK3sKKyAgICBpZiAoIW1fY2xp
ZW50LnNob3cpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBtX2NsaWVudC5zaG93KHRvQVBJ
KG5vdGlmaWNhdGlvbiksIG1fY2xpZW50LmNsaWVudEluZm8pOworfQorCit2b2lkIFdlYk5vdGlm
aWNhdGlvblByb3ZpZGVyOjpjYW5jZWwoV2ViTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24pCit7
CisgICAgaWYgKCFtX2NsaWVudC5jYW5jZWwpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBt
X2NsaWVudC5jYW5jZWwodG9BUEkobm90aWZpY2F0aW9uKSwgbV9jbGllbnQuY2xpZW50SW5mbyk7
Cit9CisKK3ZvaWQgV2ViTm90aWZpY2F0aW9uUHJvdmlkZXI6OmRpZERlc3Ryb3lOb3RpZmljYXRp
b24oV2ViTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24pCit7CisgICAgaWYgKCFtX2NsaWVudC5k
aWREZXN0cm95Tm90aWZpY2F0aW9uKQorICAgICAgICByZXR1cm47CisgICAgCisgICAgbV9jbGll
bnQuZGlkRGVzdHJveU5vdGlmaWNhdGlvbih0b0FQSShub3RpZmljYXRpb24pLCBtX2NsaWVudC5j
bGllbnRJbmZvKTsKK30KKworaW50IFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyOjpwb2xpY3lGb3JO
b3RpZmljYXRpb25QZXJtaXNzaW9uQXRPcmlnaW4oV2ViU2VjdXJpdHlPcmlnaW4qIG9yaWdpbikK
K3sKKyAgICBpZiAoIW1fY2xpZW50LnBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25BdE9y
aWdpbikKKyAgICAgICAgcmV0dXJuIElOVF9NSU47CisgICAgCisgICAgcmV0dXJuIG1fY2xpZW50
LnBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25BdE9yaWdpbih0b0FQSShvcmlnaW4pLCBt
X2NsaWVudC5jbGllbnRJbmZvKTsKK30KKwordm9pZCBXZWJOb3RpZmljYXRpb25Qcm92aWRlcjo6
YWRkTm90aWZpY2F0aW9uTWFuYWdlcihXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkqIG1hbmFn
ZXIpCit7CisgICAgaWYgKCFtX2NsaWVudC5hZGROb3RpZmljYXRpb25NYW5hZ2VyKQorICAgICAg
ICByZXR1cm47CisgICAgCisgICAgbV9jbGllbnQuYWRkTm90aWZpY2F0aW9uTWFuYWdlcih0b0FQ
SShtYW5hZ2VyKSwgbV9jbGllbnQuY2xpZW50SW5mbyk7Cit9CisKK3ZvaWQgV2ViTm90aWZpY2F0
aW9uUHJvdmlkZXI6OnJlbW92ZU5vdGlmaWNhdGlvbk1hbmFnZXIoV2ViTm90aWZpY2F0aW9uTWFu
YWdlclByb3h5KiBtYW5hZ2VyKQoreworICAgIGlmICghbV9jbGllbnQucmVtb3ZlTm90aWZpY2F0
aW9uTWFuYWdlcikKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIG1fY2xpZW50LnJlbW92ZU5v
dGlmaWNhdGlvbk1hbmFnZXIodG9BUEkobWFuYWdlciksIG1fY2xpZW50LmNsaWVudEluZm8pOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25Qcm92aWRlci5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjU3MGEyNjRkMDgzZGQ3NDg2NTI0OWY0MDY0MTE5Mjg3NDlhZGE1NDYKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9X
ZWJOb3RpZmljYXRpb25Qcm92aWRlci5oCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWZuZGVmIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyX2gKKyNkZWZpbmUgV2ViTm90aWZpY2F0aW9u
UHJvdmlkZXJfaAorCisjaW5jbHVkZSAiQVBJQ2xpZW50LmgiCisjaW5jbHVkZSAiV0tOb3RpZmlj
YXRpb25Qcm92aWRlci5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitjbGFzcyBXZWJOb3RpZmljYXRpb247CitjbGFzcyBXZWJOb3RpZmljYXRpb25N
YW5hZ2VyUHJveHk7CitjbGFzcyBXZWJTZWN1cml0eU9yaWdpbjsKKyAgICAKK2NsYXNzIFdlYk5v
dGlmaWNhdGlvblByb3ZpZGVyIDogcHVibGljIEFQSUNsaWVudDxXS05vdGlmaWNhdGlvblByb3Zp
ZGVyLCBrV0tOb3RpZmljYXRpb25Qcm92aWRlckN1cnJlbnRWZXJzaW9uPiB7CitwdWJsaWM6Cisg
ICAgdm9pZCBzaG93KFdlYk5vdGlmaWNhdGlvbiopOworICAgIHZvaWQgY2FuY2VsKFdlYk5vdGlm
aWNhdGlvbiopOworICAgIHZvaWQgZGlkRGVzdHJveU5vdGlmaWNhdGlvbihXZWJOb3RpZmljYXRp
b24qKTsKKyAgICBpbnQgcG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvbkF0T3JpZ2luKFdl
YlNlY3VyaXR5T3JpZ2luKik7CisKKyAgICB2b2lkIGFkZE5vdGlmaWNhdGlvbk1hbmFnZXIoV2Vi
Tm90aWZpY2F0aW9uTWFuYWdlclByb3h5Kik7CisgICAgdm9pZCByZW1vdmVOb3RpZmljYXRpb25N
YW5hZ2VyKFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eSopOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CisKKyNlbmRpZiAvLyBXZWJOb3RpZmljYXRpb25Qcm92aWRlcl9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOb3RpZmljYXRpb24uY3BwCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAzZjAyNTk4NjI0YzE1NmE5OGZiZjIwOWE2MjJlMTE5MWMyYTZmZDNlLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJOb3RpZmljYXRpb24uY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNjEg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
LSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0g
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJXZWJO
b3RpZmljYXRpb24uaCIKLQotI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJzLmgiCi0jaW5jbHVkZSAi
QXJndW1lbnREZWNvZGVyLmgiCi0jaW5jbHVkZSAiQXJndW1lbnRFbmNvZGVyLmgiCi0jaW5jbHVk
ZSAiQXJndW1lbnRzLmgiCi0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1XZWJOb3RpZmljYXRpb246
OldlYk5vdGlmaWNhdGlvbigpCi17Ci19Ci0KLVdlYk5vdGlmaWNhdGlvbjo6V2ViTm90aWZpY2F0
aW9uKGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgYm9keSwgdWludDY0X3Qgbm90
aWZpY2F0aW9uSUQpCi0gICAgOiBtX3RpdGxlKHRpdGxlKQotICAgICwgbV9ib2R5KGJvZHkpCi0g
ICAgLCBtX25vdGlmaWNhdGlvbklEKG5vdGlmaWNhdGlvbklEKQotewotfQotCi1XZWJOb3RpZmlj
YXRpb246On5XZWJOb3RpZmljYXRpb24oKQotewotfQotCi12b2lkIFdlYk5vdGlmaWNhdGlvbjo6
ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKLXsKLSAgICBl
bmNvZGVyLT5lbmNvZGUoQ29yZUlQQzo6SW4obV90aXRsZSwgbV9ib2R5LCBtX25vdGlmaWNhdGlv
bklEKSk7Ci19Ci0KLWJvb2wgV2ViTm90aWZpY2F0aW9uOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKiBkZWNvZGVyLCBXZWJOb3RpZmljYXRpb24mIG5vdGlmaWNhdGlvbikKLXsKLSAg
ICByZXR1cm4gZGVjb2Rlci0+ZGVjb2RlKENvcmVJUEM6Ok91dChub3RpZmljYXRpb24ubV90aXRs
ZSwgbm90aWZpY2F0aW9uLm1fYm9keSwgbm90aWZpY2F0aW9uLm1fbm90aWZpY2F0aW9uSUQpKTsK
LX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViTm90aWZpY2F0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
Tm90aWZpY2F0aW9uLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY2ODU4NmYxMjUy
MzQzODRhNDUzYTgxY2Q4Mzg0OGJiYWRmZjhkZDQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5vdGlmaWNh
dGlvbi5oCisrKyAvZGV2L251bGwKQEAgLTEsODEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5k
ZWYgV2ViTm90aWZpY2F0aW9uX2gKLSNkZWZpbmUgV2ViTm90aWZpY2F0aW9uX2gKLQotI2luY2x1
ZGUgIkFQSU9iamVjdC5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Ci0jaW5jbHVkZSA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBDb3JlSVBDIHsKLQotY2xhc3MgQXJn
dW1lbnREZWNvZGVyOwotY2xhc3MgQXJndW1lbnRFbmNvZGVyOwotCi19IC8vIG5hbWVzcGFjZSBD
b3JlSVBDCi0KLW5hbWVzcGFjZSBXZWJLaXQgewotICAgIAotY2xhc3MgV2ViTm90aWZpY2F0aW9u
IDogcHVibGljIEFQSU9iamVjdCB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IFR5cGUgQVBJ
VHlwZSA9IFR5cGVOb3RpZmljYXRpb247Ci0gICAgCi0gICAgV2ViTm90aWZpY2F0aW9uKCk7Ci0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViTm90aWZpY2F0aW9uPiBjcmVhdGUoY29uc3QgU3RyaW5n
JiB0aXRsZSwgY29uc3QgU3RyaW5nJiBib2R5LCB1aW50NjRfdCBub3RpZmljYXRpb25JRCkKLSAg
ICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViTm90aWZpY2F0aW9uKHRpdGxlLCBi
b2R5LCBub3RpZmljYXRpb25JRCkpOwotICAgIH0KLSAgICB2aXJ0dWFsIH5XZWJOb3RpZmljYXRp
b24oKTsKLSAgICAKLSAgICBjb25zdCBTdHJpbmcmIHRpdGxlKCkgY29uc3QgeyByZXR1cm4gbV90
aXRsZTsgfQotICAgIAotICAgIGNvbnN0IFN0cmluZyYgYm9keSgpIGNvbnN0IHsgcmV0dXJuIG1f
Ym9keTsgfQotICAgIAotICAgIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKCkgY29uc3QgeyByZXR1
cm4gbV9ub3RpZmljYXRpb25JRDsgfQotCi0gICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1l
bnRFbmNvZGVyKikgY29uc3Q7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3Vt
ZW50RGVjb2RlciosIFdlYk5vdGlmaWNhdGlvbiYpOwotCi1wcml2YXRlOgotICAgIFdlYk5vdGlm
aWNhdGlvbihjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBTdHJpbmcmIGJvZHksIHVpbnQ2NF90
IG5vdGlmaWNhdGlvbklEKTsKLQotICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1
cm4gQVBJVHlwZTsgfQotICAgIAotICAgIFN0cmluZyBtX3RpdGxlOwotICAgIFN0cmluZyBtX2Jv
ZHk7Ci0gICAgdWludDY0X3QgbV9ub3RpZmljYXRpb25JRDsKLX07Ci0KLWlubGluZSBib29sIGlz
Tm90aWZpY2F0aW9uSURWYWxpZCh1aW50NjRfdCBpZCkKLXsKLSAgICAvLyBUaGlzIGNoZWNrIG1h
a2VzIHN1cmUgdGhhdCB0aGUgSUQgaXMgbm90IGVxdWFsIHRvIHZhbHVlcyBuZWVkZWQgYnkKLSAg
ICAvLyBIYXNoTWFwIGZvciBidWNrZXRpbmcuCi0gICAgcmV0dXJuIGlkICYmIGlkICE9IHN0YXRp
Y19jYXN0PHVpbnQ2NF90PigtMSk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5k
aWYgLy8gV2ViTm90aWZpY2F0aW9uX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDkwMjlkYzQ0ZTlmYThmODgyNTAyZTMwMmFlYjhiYWZlODZkMzRiMDAuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAKKysrIC9kZXYvbnVs
bApAQCAtMSwxNDIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNp
bmNsdWRlICJXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaCIKLQotI2luY2x1ZGUgIkltbXV0
YWJsZUFycmF5LmgiCi0jaW5jbHVkZSAiV2ViQ29udGV4dC5oIgotI2luY2x1ZGUgIldlYk5vdGlm
aWNhdGlvbi5oIgotI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlcy5oIgot
I2luY2x1ZGUgPFdlYkNvcmUvTm90aWZpY2F0aW9uQ29udGVudHMuaD4KLQotdXNpbmcgbmFtZXNw
YWNlIFdURjsKLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1uYW1lc3BhY2UgV2ViS2l0IHsK
LQotUGFzc1JlZlB0cjxXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk+IFdlYk5vdGlmaWNhdGlv
bk1hbmFnZXJQcm94eTo6Y3JlYXRlKFdlYkNvbnRleHQqIGNvbnRleHQpCi17Ci0gICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkoY29udGV4dCkpOwotfQot
Ci1XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94
eShXZWJDb250ZXh0KiBjb250ZXh0KQotICAgIDogbV9jb250ZXh0KGNvbnRleHQpCi17Ci19Ci0K
LVdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6fldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94
eSgpCi17Ci19Ci0KLXZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5OjppbnZhbGlkYXRl
KCkKLXsKLSAgICBtX3Byb3ZpZGVyLnJlbW92ZU5vdGlmaWNhdGlvbk1hbmFnZXIodGhpcyk7Ci19
Ci0KLXZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5Ojppbml0aWFsaXplUHJvdmlkZXIo
Y29uc3QgV0tOb3RpZmljYXRpb25Qcm92aWRlciAqcHJvdmlkZXIpCi17Ci0gICAgbV9wcm92aWRl
ci5pbml0aWFsaXplKHByb3ZpZGVyKTsKLX0KLQotdm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2Vy
UHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24s
IENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rlciog
YXJndW1lbnRzKQotewotICAgIGRpZFJlY2VpdmVXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHlN
ZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKLX0KLQotdm9pZCBXZWJO
b3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OnNob3coY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3Qg
U3RyaW5nJiBib2R5LCB1aW50NjRfdCBub3RpZmljYXRpb25JRCkKLXsKLSAgICBpZiAoIWlzTm90
aWZpY2F0aW9uSURWYWxpZChub3RpZmljYXRpb25JRCkpCi0gICAgICAgIHJldHVybjsKLSAgICAK
LSAgICBtX3Byb3ZpZGVyLmFkZE5vdGlmaWNhdGlvbk1hbmFnZXIodGhpcyk7Ci0KLSAgICBSZWZQ
dHI8V2ViTm90aWZpY2F0aW9uPiBub3RpZmljYXRpb24gPSBXZWJOb3RpZmljYXRpb246OmNyZWF0
ZSh0aXRsZSwgYm9keSwgbm90aWZpY2F0aW9uSUQpOwotICAgIG1fbm90aWZpY2F0aW9ucy5zZXQo
bm90aWZpY2F0aW9uSUQsIG5vdGlmaWNhdGlvbik7Ci0gICAgbV9wcm92aWRlci5zaG93KG5vdGlm
aWNhdGlvbi5nZXQoKSk7Ci19Ci0KLXZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5Ojpj
YW5jZWwodWludDY0X3Qgbm90aWZpY2F0aW9uSUQpCi17Ci0gICAgaWYgKCFpc05vdGlmaWNhdGlv
bklEVmFsaWQobm90aWZpY2F0aW9uSUQpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBSZWZQdHI8
V2ViTm90aWZpY2F0aW9uPiBub3RpZmljYXRpb24gPSBtX25vdGlmaWNhdGlvbnMuZ2V0KG5vdGlm
aWNhdGlvbklEKTsKLSAgICBpZiAoIW5vdGlmaWNhdGlvbikKLSAgICAgICAgcmV0dXJuOwotCi0g
ICAgbV9wcm92aWRlci5hZGROb3RpZmljYXRpb25NYW5hZ2VyKHRoaXMpOwotICAgIG1fcHJvdmlk
ZXIuY2FuY2VsKG5vdGlmaWNhdGlvbi5nZXQoKSk7Ci19Ci0gICAgCi12b2lkIFdlYk5vdGlmaWNh
dGlvbk1hbmFnZXJQcm94eTo6ZGlkRGVzdHJveU5vdGlmaWNhdGlvbih1aW50NjRfdCBub3RpZmlj
YXRpb25JRCkKLXsKLSAgICBpZiAoIWlzTm90aWZpY2F0aW9uSURWYWxpZChub3RpZmljYXRpb25J
RCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIFJlZlB0cjxXZWJOb3RpZmljYXRpb24+IG5vdGlm
aWNhdGlvbiA9IG1fbm90aWZpY2F0aW9ucy50YWtlKG5vdGlmaWNhdGlvbklEKTsKLSAgICBpZiAo
IW5vdGlmaWNhdGlvbikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9wcm92aWRlci5kaWREZXN0
cm95Tm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbi5nZXQoKSk7Ci19Ci0KLXZvaWQgV2ViTm90aWZp
Y2F0aW9uTWFuYWdlclByb3h5Ojpwcm92aWRlckRpZFNob3dOb3RpZmljYXRpb24odWludDY0X3Qg
bm90aWZpY2F0aW9uSUQpCi17Ci0gICAgaWYgKCFtX2NvbnRleHQpCi0gICAgICAgIHJldHVybjsK
LSAgICAKLSAgICBtX2NvbnRleHQtPnNlbmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6V2ViTm90
aWZpY2F0aW9uTWFuYWdlcjo6RGlkU2hvd05vdGlmaWNhdGlvbihub3RpZmljYXRpb25JRCkpOwot
fQotCi12b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6cHJvdmlkZXJEaWRDbGlja05v
dGlmaWNhdGlvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCkKLXsKLSAgICBpZiAoIW1fY29udGV4
dCkKLSAgICAgICAgcmV0dXJuOwotICAgIAotICAgIG1fY29udGV4dC0+c2VuZFRvQWxsUHJvY2Vz
c2VzKE1lc3NhZ2VzOjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpEaWRDbGlja05vdGlmaWNhdGlv
bihub3RpZmljYXRpb25JRCkpOwotfQotCi0KLXZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlclBy
b3h5Ojpwcm92aWRlckRpZENsb3NlTm90aWZpY2F0aW9ucyhJbW11dGFibGVBcnJheSogbm90aWZp
Y2F0aW9uSURzKQotewotICAgIGlmICghbV9jb250ZXh0KQotICAgICAgICByZXR1cm47Ci0gICAg
Ci0gICAgc2l6ZV90IHNpemUgPSBub3RpZmljYXRpb25JRHMtPnNpemUoKTsKLSAgICAKLSAgICBW
ZWN0b3I8dWludDY0X3Q+IHZlY3Rvck5vdGlmaWNhdGlvbklEczsKLSAgICB2ZWN0b3JOb3RpZmlj
YXRpb25JRHMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShzaXplKTsKLSAgICAKLSAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkgewotICAgICAgICB1aW50NjRfdCBub3RpZmljYXRp
b25JRCA9IG5vdGlmaWNhdGlvbklEcy0+YXQ8V2ViVUludDY0PihpKS0+dmFsdWUoKTsKLSAgICAg
ICAgdmVjdG9yTm90aWZpY2F0aW9uSURzLmFwcGVuZChub3RpZmljYXRpb25JRCk7Ci0gICAgfQot
ICAgIAotICAgIGlmICh2ZWN0b3JOb3RpZmljYXRpb25JRHMuc2l6ZSgpKQotICAgICAgICBtX2Nv
bnRleHQtPnNlbmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6V2ViTm90aWZpY2F0aW9uTWFuYWdl
cjo6RGlkQ2xvc2VOb3RpZmljYXRpb25zKHZlY3Rvck5vdGlmaWNhdGlvbklEcykpOwotfQotCi19
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNTg3ZmE5YTQ4NjFkYTE2ZGI4Y2Q1OTU3NjJhOWM3OGNmYTJjMzJmOS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmgKKysrIC9kZXYvbnVsbApAQCAtMSw4
NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
LSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJv
eHlfaAotI2RlZmluZSBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHlfaAotCi0jaW5jbHVkZSAi
QVBJT2JqZWN0LmgiCi0jaW5jbHVkZSAiTWVzc2FnZUlELmgiCi0jaW5jbHVkZSAiV2ViTm90aWZp
Y2F0aW9uUHJvdmlkZXIuaCIKLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0
Zi9QYXNzUmVmUHRyLmg+Ci0KLW5hbWVzcGFjZSBDb3JlSVBDIHsKLWNsYXNzIEFyZ3VtZW50RGVj
b2RlcjsKLWNsYXNzIENvbm5lY3Rpb247Ci19Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFz
cyBJbW11dGFibGVBcnJheTsKLWNsYXNzIFdlYkNvbnRleHQ7Ci0KLWNsYXNzIFdlYk5vdGlmaWNh
dGlvbk1hbmFnZXJQcm94eSA6IHB1YmxpYyBBUElPYmplY3QgewotcHVibGljOgotICAgIHN0YXRp
YyBjb25zdCBUeXBlIEFQSVR5cGUgPSBUeXBlTm90aWZpY2F0aW9uTWFuYWdlcjsKLSAgICAKLSAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk+IGNyZWF0ZShX
ZWJDb250ZXh0Kik7Ci0gICAgdmlydHVhbCB+V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5KCk7
Ci0gICAgCi0gICAgdm9pZCBpbnZhbGlkYXRlKCk7Ci0gICAgdm9pZCBjbGVhckNvbnRleHQoKSB7
IG1fY29udGV4dCA9IDA7IH0KLQotICAgIHZvaWQgaW5pdGlhbGl6ZVByb3ZpZGVyKGNvbnN0IFdL
Tm90aWZpY2F0aW9uUHJvdmlkZXIqKTsKLSAgICAKLSAgICB2b2lkIHByb3ZpZGVyRGlkU2hvd05v
dGlmaWNhdGlvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCk7Ci0gICAgdm9pZCBwcm92aWRlckRp
ZENsaWNrTm90aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKTsKLSAgICB2b2lkIHBy
b3ZpZGVyRGlkQ2xvc2VOb3RpZmljYXRpb25zKEltbXV0YWJsZUFycmF5KiBub3RpZmljYXRpb25J
RHMpOwotICAgIAotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlv
biosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0KLXBy
aXZhdGU6Ci0gICAgZXhwbGljaXQgV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5KFdlYkNvbnRl
eHQqKTsKLSAgICAKLSAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5
cGU7IH0KLSAgICAKLSAgICB2b2lkIGRpZFJlY2VpdmVXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJv
eHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJ
UEM6OkFyZ3VtZW50RGVjb2RlciopOwotICAgIAotICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMKLSAg
ICB2b2lkIHNob3coY29uc3QgV1RGOjpTdHJpbmcmIHRpdGxlLCBjb25zdCBXVEY6OlN0cmluZyYg
Ym9keSwgdWludDY0X3Qgbm90aWZpY2F0aW9uSUQpOwotICAgIHZvaWQgY2FuY2VsKHVpbnQ2NF90
IG5vdGlmaWNhdGlvbklEKTsKLSAgICB2b2lkIGRpZERlc3Ryb3lOb3RpZmljYXRpb24odWludDY0
X3Qgbm90aWZpY2F0aW9uSUQpOwotICAgIAotICAgIHR5cGVkZWYgSGFzaE1hcDx1aW50NjRfdCwg
UmVmUHRyPFdlYk5vdGlmaWNhdGlvbj4gPiBXZWJOb3RpZmljYXRpb25NYXA7Ci0gICAgCi0gICAg
V2ViQ29udGV4dCogbV9jb250ZXh0OwotICAgIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyIG1fcHJv
dmlkZXI7Ci0gICAgV2ViTm90aWZpY2F0aW9uTWFwIG1fbm90aWZpY2F0aW9uczsKLX07Ci0KLX0g
Ly8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gV2ViTm90aWZpY2F0aW9uTWFuYWdlclBy
b3h5X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOb3RpZmljYXRp
b25NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
Tm90aWZpY2F0aW9uTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA2ZDQwM2MzZDdkODU5Y2U1ZDkwMGE0OGEwZGViNDY5ZDgwNjE4OGFkLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKysrIC9k
ZXYvbnVsbApAQCAtMSwyNyArMCwwIEBACi0jIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSMgYXJl
IG1ldDoKLSMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKLSMgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFIElNUExJRUQKLSMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotIyBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgot
IyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMCi0jIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCi0jIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
Ci0jIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCi0jIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0KLW1lc3NhZ2VzIC0+IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eSB7Ci0gICAg
U2hvdyhXVEY6OlN0cmluZyB0aXRsZSwgV1RGOjpTdHJpbmcgYm9keSwgdWludDY0X3Qgbm90aWZp
Y2F0aW9uSUQpOwotICAgIENhbmNlbCh1aW50NjRfdCBub3RpZmljYXRpb25JRCk7Ci0gICAgRGlk
RGVzdHJveU5vdGlmaWNhdGlvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCk7Ci19CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDYxYjFhZDc4OTZkYWU5NzI4ZTA0NzJiM2Fm
YjY1ZWNhMzg0ZGViYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuY3Bw
CisrKyAvZGV2L251bGwKQEAgLTEsNzUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJj
b25maWcuaCIKLSNpbmNsdWRlICJXZWJOb3RpZmljYXRpb25Qcm92aWRlci5oIgotCi0jaW5jbHVk
ZSAiV0tBUElDYXN0LmgiCi0jaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9uLmgiCi0jaW5jbHVkZSAi
V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmgiCi0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi12
b2lkIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyOjpzaG93KFdlYk5vdGlmaWNhdGlvbiogbm90aWZp
Y2F0aW9uKQotewotICAgIGlmICghbV9jbGllbnQuc2hvdykKLSAgICAgICAgcmV0dXJuOwotICAg
IAotICAgIG1fY2xpZW50LnNob3codG9BUEkobm90aWZpY2F0aW9uKSwgbV9jbGllbnQuY2xpZW50
SW5mbyk7Ci19Ci0KLXZvaWQgV2ViTm90aWZpY2F0aW9uUHJvdmlkZXI6OmNhbmNlbChXZWJOb3Rp
ZmljYXRpb24qIG5vdGlmaWNhdGlvbikKLXsKLSAgICBpZiAoIW1fY2xpZW50LmNhbmNlbCkKLSAg
ICAgICAgcmV0dXJuOwotICAgIAotICAgIG1fY2xpZW50LmNhbmNlbCh0b0FQSShub3RpZmljYXRp
b24pLCBtX2NsaWVudC5jbGllbnRJbmZvKTsKLX0KLQotdm9pZCBXZWJOb3RpZmljYXRpb25Qcm92
aWRlcjo6ZGlkRGVzdHJveU5vdGlmaWNhdGlvbihXZWJOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlv
bikKLXsKLSAgICBpZiAoIW1fY2xpZW50LmRpZERlc3Ryb3lOb3RpZmljYXRpb24pCi0gICAgICAg
IHJldHVybjsKLSAgICAKLSAgICBtX2NsaWVudC5kaWREZXN0cm95Tm90aWZpY2F0aW9uKHRvQVBJ
KG5vdGlmaWNhdGlvbiksIG1fY2xpZW50LmNsaWVudEluZm8pOwotfQotCi12b2lkIFdlYk5vdGlm
aWNhdGlvblByb3ZpZGVyOjphZGROb3RpZmljYXRpb25NYW5hZ2VyKFdlYk5vdGlmaWNhdGlvbk1h
bmFnZXJQcm94eSogbWFuYWdlcikKLXsKLSAgICBpZiAoIW1fY2xpZW50LmFkZE5vdGlmaWNhdGlv
bk1hbmFnZXIpCi0gICAgICAgIHJldHVybjsKLSAgICAKLSAgICBtX2NsaWVudC5hZGROb3RpZmlj
YXRpb25NYW5hZ2VyKHRvQVBJKG1hbmFnZXIpLCBtX2NsaWVudC5jbGllbnRJbmZvKTsKLX0KLQot
dm9pZCBXZWJOb3RpZmljYXRpb25Qcm92aWRlcjo6cmVtb3ZlTm90aWZpY2F0aW9uTWFuYWdlcihX
ZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkqIG1hbmFnZXIpCi17Ci0gICAgaWYgKCFtX2NsaWVu
dC5yZW1vdmVOb3RpZmljYXRpb25NYW5hZ2VyKQotICAgICAgICByZXR1cm47Ci0gICAgCi0gICAg
bV9jbGllbnQucmVtb3ZlTm90aWZpY2F0aW9uTWFuYWdlcih0b0FQSShtYW5hZ2VyKSwgbV9jbGll
bnQuY2xpZW50SW5mbyk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuaApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZmY0MGJhOGY3ZDBmOWZiMGQ0ZDkxNTE4OTA2ZDNiMTM0ZTgz
NmU3Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuaAorKysgL2Rldi9u
dWxsCkBAIC0xLDUwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFdlYk5vdGlmaWNhdGlv
blByb3ZpZGVyX2gKLSNkZWZpbmUgV2ViTm90aWZpY2F0aW9uUHJvdmlkZXJfaAotCi0jaW5jbHVk
ZSAiQVBJQ2xpZW50LmgiCi0jaW5jbHVkZSAiV0tOb3RpZmljYXRpb25Qcm92aWRlci5oIgotI2lu
Y2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBXZWJO
b3RpZmljYXRpb247Ci1jbGFzcyBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk7Ci0gICAgCi1j
bGFzcyBXZWJOb3RpZmljYXRpb25Qcm92aWRlciA6IHB1YmxpYyBBUElDbGllbnQ8V0tOb3RpZmlj
YXRpb25Qcm92aWRlciwga1dLTm90aWZpY2F0aW9uUHJvdmlkZXJDdXJyZW50VmVyc2lvbj4gewot
cHVibGljOgotICAgIHZvaWQgc2hvdyhXZWJOb3RpZmljYXRpb24qKTsKLSAgICB2b2lkIGNhbmNl
bChXZWJOb3RpZmljYXRpb24qKTsKLSAgICB2b2lkIGRpZERlc3Ryb3lOb3RpZmljYXRpb24oV2Vi
Tm90aWZpY2F0aW9uKik7Ci0KLSAgICB2b2lkIGFkZE5vdGlmaWNhdGlvbk1hbmFnZXIoV2ViTm90
aWZpY2F0aW9uTWFuYWdlclByb3h5Kik7Ci0gICAgdm9pZCByZW1vdmVOb3RpZmljYXRpb25NYW5h
Z2VyKFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eSopOwotfTsKLQotfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0Ci0KLSNlbmRpZiAvLyBXZWJOb3RpZmljYXRpb25Qcm92aWRlcl9oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGI5NzdkODhlZjAzM2Q1ZjY3NDBk
ZTQxNDY5NTJjNTMwM2IyM2E4MzQuLmVmZjY2MTE2NmUzNmIwNTBiYTY3YTVjMjAzZjkxZjFiNzE1
MjQ0NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0z
Nyw2ICszNyw4IEBACiAjaW5jbHVkZSAiTmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5oIgogI2luY2x1
ZGUgIk5hdGl2ZVdlYk1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJOYXRpdmVXZWJXaGVlbEV2ZW50
LmgiCisjaW5jbHVkZSAiTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaCIKKyNpbmNsdWRl
ICJOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCIKICNpbmNsdWRlICJQYWdl
Q2xpZW50LmgiCiAjaW5jbHVkZSAiUHJpbnRJbmZvLmgiCiAjaW5jbHVkZSAiU2Vzc2lvblN0YXRl
LmgiCkBAIC0xNDYsNiArMTQ4LDcgQEAgV2ViUGFnZVByb3h5OjpXZWJQYWdlUHJveHkoUGFnZUNs
aWVudCogcGFnZUNsaWVudCwgUGFzc1JlZlB0cjxXZWJQcm9jZXNzUHJveHk+IHAKICAgICAsIG1f
bWFpbkZyYW1lKDApCiAgICAgLCBtX3VzZXJBZ2VudChzdGFuZGFyZFVzZXJBZ2VudCgpKQogICAg
ICwgbV9nZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcih0aGlzKQorICAgICwgbV9u
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIodGhpcykKICAgICAsIG1fZXN0aW1h
dGVkUHJvZ3Jlc3MoMCkKICAgICAsIG1faXNJbldpbmRvdyhtX3BhZ2VDbGllbnQtPmlzVmlld0lu
V2luZG93KCkpCiAgICAgLCBtX2lzVmlzaWJsZShtX3BhZ2VDbGllbnQtPmlzVmlld1Zpc2libGUo
KSkKQEAgLTM2NCw2ICszNjcsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Y2xvc2UoKQogICAgIH0K
IAogICAgIG1fZ2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaW52YWxpZGF0ZVJl
cXVlc3RzKCk7CisgICAgbV9ub3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaW52
YWxpZGF0ZVJlcXVlc3RzKCk7CiAKICAgICBtX3Rvb2xUaXAgPSBTdHJpbmcoKTsKIApAQCAtMzEz
Myw2ICszMTM3LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnByb2Nlc3NEaWRDcmFzaCgpCiAgICAg
fQogCiAgICAgbV9nZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5pbnZhbGlkYXRl
UmVxdWVzdHMoKTsKKyAgICBtX25vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5p
bnZhbGlkYXRlUmVxdWVzdHMoKTsKIAogICAgIG1fdG9vbFRpcCA9IFN0cmluZygpOwogCkBAIC0z
Mjk1LDYgKzMzMDAsMTggQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RHZW9sb2NhdGlvblBl
cm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCBnZW9sb2NhdGlvbklELAogICAgICAgICByZXF1ZXN0
LT5kZW55KCk7CiB9CiAKK3ZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0Tm90aWZpY2F0aW9uUGVy
bWlzc2lvbih1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmll
cikKK3sKKyAgICBpZiAoIWlzUmVxdWVzdElEVmFsaWQocmVxdWVzdElEKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgUmVmUHRyPFdlYlNlY3VyaXR5T3JpZ2luPiBvcmlnaW4gPSBXZWJTZWN1cml0
eU9yaWdpbjo6Y3JlYXRlKG9yaWdpbklkZW50aWZpZXIpOworICAgIFJlZlB0cjxOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdD4gcmVxdWVzdCA9IG1fbm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyLmNyZWF0ZVJlcXVlc3QocmVxdWVzdElEKTsKKyAgICAKKyAgICBpZiAoIW1f
dWlDbGllbnQuZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QodGhp
cywgb3JpZ2luLmdldCgpLCByZXF1ZXN0LmdldCgpKSkKKyAgICAgICAgcmVxdWVzdC0+ZGVueSgp
OworfQorCiBmbG9hdCBXZWJQYWdlUHJveHk6OmhlYWRlckhlaWdodChXZWJGcmFtZVByb3h5KiBm
cmFtZSkKIHsKICAgICByZXR1cm4gbV91aUNsaWVudC5oZWFkZXJIZWlnaHQodGhpcywgZnJhbWUp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDgyNTVjZjQxZmMz
ZjZkZDEyNjMxNDZhMGI2ZGQyMzc3MWRmNDdkMDUuLjQ3ZmNkNmMwMjIzYjhjYTRhYTIwNzExZjg1
ZGY0ODdhMDE3Y2I0OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
QEAgLTM2LDYgKzM2LDcgQEAKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogI2luY2x1ZGUgIk5h
dGl2ZVdlYlRvdWNoRXZlbnQuaCIKICNlbmRpZgorI2luY2x1ZGUgIk5vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1Qcm9jZXNzSWRl
bnRpZmllci5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKICNpbmNsdWRlICJTaGFy
ZWFibGVCaXRtYXAuaCIKQEAgLTY4NSw2ICs2ODYsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVh
dHRhY2hUb1dlYlByb2Nlc3MoKTsKICAgICB2b2lkIHJlYXR0YWNoVG9XZWJQcm9jZXNzV2l0aEl0
ZW0oV2ViQmFja0ZvcndhcmRMaXN0SXRlbSopOwogCisgICAgdm9pZCByZXF1ZXN0Tm90aWZpY2F0
aW9uUGVybWlzc2lvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCwgY29uc3QgU3RyaW5nJiBvcmln
aW5JZGVudGlmaWVyKTsKKyAgICAKICNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKICAgICB2
b2lkIHBhZ2VEaWRSZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkludFBvaW50Jik7CiAjZW5k
aWYKQEAgLTg2OSw2ICs4NzIsNyBAQCBwcml2YXRlOgogICAgIENvbnRleHRNZW51U3RhdGUgbV9h
Y3RpdmVDb250ZXh0TWVudVN0YXRlOwogICAgIFJlZlB0cjxXZWJPcGVuUGFuZWxSZXN1bHRMaXN0
ZW5lclByb3h5PiBtX29wZW5QYW5lbFJlc3VsdExpc3RlbmVyOwogICAgIEdlb2xvY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkgbV9nZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlcjsKKyAgICBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSBt
X25vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsKIAogICAgIGRvdWJsZSBtX2Vz
dGltYXRlZFByb2dyZXNzOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCA2ZDJhYjM5ZTE2MWFmYzFiY2M3ZTI3NWViM2E5Mjhj
MmFmNjdmZThhLi41ZTNkNjk4OTE3ZTliNzY3NWYwOTc3ZGUzYzIxMzA4MzM0MzcxOWY1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmlu
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4K
QEAgLTE5NCw2ICsxOTQsOSBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogCiAgICAgIyBH
ZW9sb2NhdGlvbiBtZXNzYWdlcwogICAgIFJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JG
cmFtZSh1aW50NjRfdCBnZW9sb2NhdGlvbklELCB1aW50NjRfdCBmcmFtZUlELCBXVEY6OlN0cmlu
ZyBvcmlnaW5JZGVudGlmaWVyKQorICAgIAorICAgICMgTm90aWZpY2F0aW9uIG1lc3NhZ2VzCisg
ICAgUmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb24odWludDY0X3QgcmVxdWVzdElELCBXVEY6
OlN0cmluZyBvcmlnaW5JZGVudGlmaWVyKQogCiAgICAgIyBTcGVsbGluZyBhbmQgZ3JhbW1hciBt
ZXNzYWdlcwogI2lmIFVTRShVTklGSUVEX1RFWFRfQ0hFQ0tJTkcpICAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXggMGIyYjE4N2M2MGQ4MTlkZTBk
YjYyNDk2OWY0ZGM1N2ExNGJjYzA5Zi4uMGMxMWNhYTViOWI4NWZlMmM1ODQzMDdiMjliOTk1NTdk
MjAyNzVmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5j
cHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJXZWJCYWNrRm9yd2FyZExpc3RJdGVtLmgi
CiAjaW5jbHVkZSAiV2ViQ29udGV4dC5oIgogI2luY2x1ZGUgIldlYk5hdmlnYXRpb25EYXRhU3Rv
cmUuaCIKKyNpbmNsdWRlICJXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRl
ICJXZWJQYWdlUHJveHkuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNs
dWRlICJXZWJQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgpAQCAtMzMyLDYgKzMzMywxMSBAQCB2b2lk
IFdlYlByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qIGNvbm5lY3Rpb24sIENvcgogICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgaWYgKG1l
c3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJv
eHk+KCkpIHsKKyAgICAgICAgbV9jb250ZXh0LT5ub3RpZmljYXRpb25NYW5hZ2VyUHJveHkoKS0+
ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzLCBy
ZXBseSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICB1aW50NjRfdCBwYWdlSUQgPSBh
cmd1bWVudHMtPmRlc3RpbmF0aW9uSUQoKTsKICAgICBpZiAoIXBhZ2VJRCkKICAgICAgICAgcmV0
dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5jcHAKaW5kZXggZjEzNzBh
ZjVhMDc2NTE5ZWQ2ZjNjYTBiNWRjNjViMzcwMDA5OWRkMy4uNDAzODRmOGVhYTU5NjNhMjYwYzQ4
NjVhZjc2MDkyNjc5YWQ5OWFkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlVJQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVUlDbGll
bnQuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiSW1tdXRhYmxlRGljdGlvbmFyeS5o
IgogI2luY2x1ZGUgIk5hdGl2ZVdlYktleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJOYXRpdmVX
ZWJXaGVlbEV2ZW50LmgiCisjaW5jbHVkZSAiTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Qu
aCIKICNpbmNsdWRlICJXS0FQSUNhc3QuaCIKICNpbmNsdWRlICJXZWJOdW1iZXIuaCIKICNpbmNs
dWRlICJXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5LmgiCkBAIC0zMzEsNiArMzMyLDE1
IEBAIGJvb2wgV2ViVUlDbGllbnQ6OmRlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lv
blJlcXVlc3QoV2ViUGFnZVByb3h5KiBwYWdlCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK2Jvb2wg
V2ViVUlDbGllbnQ6OmRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
KFdlYlBhZ2VQcm94eSogcGFnZSwgV2ViU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiwgTm90aWZpY2F0
aW9uUGVybWlzc2lvblJlcXVlc3QqIHBlcm1pc3Npb25SZXF1ZXN0KQoreworICAgIGlmICghbV9j
bGllbnQuZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAgICBtX2NsaWVudC5kZWNpZGVQb2xpY3lGb3JOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCh0b0FQSShwYWdlKSwgdG9BUEkob3JpZ2luKSwgdG9B
UEkocGVybWlzc2lvblJlcXVlc3QpLCBtX2NsaWVudC5jbGllbnRJbmZvKTsKKyAgICByZXR1cm4g
dHJ1ZTsKK30KKwogZmxvYXQgV2ViVUlDbGllbnQ6OmhlYWRlckhlaWdodChXZWJQYWdlUHJveHkq
IHBhZ2UsIFdlYkZyYW1lUHJveHkqIGZyYW1lKQogewogICAgIGlmICghbV9jbGllbnQuaGVhZGVy
SGVpZ2h0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVUlDbGllbnQuaAppbmRleCA1NmUwOTg4
Y2I3NTUzY2M5NDkxODMzOWIwZmQzZjNiM2I2M2Y3OGZmLi44MzVlNmNlYjdhMDZiM2IzODMyYTJh
ZDFjYTQ3ODM5MDI3NTVmMzE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViVUlDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVUlDbGllbnQu
aApAQCAtNDcsNiArNDcsNyBAQCBjbGFzcyBBUElPYmplY3Q7CiBjbGFzcyBHZW9sb2NhdGlvblBl
cm1pc3Npb25SZXF1ZXN0UHJveHk7CiBjbGFzcyBOYXRpdmVXZWJLZXlib2FyZEV2ZW50OwogY2xh
c3MgTmF0aXZlV2ViV2hlZWxFdmVudDsKK2NsYXNzIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0OwogY2xhc3MgV2ViRGF0YTsKIGNsYXNzIFdlYkZyYW1lUHJveHk7CiBjbGFzcyBXZWJQYWdl
UHJveHk7CkBAIC05OSw2ICsxMDAsNyBAQCBwdWJsaWM6CiAKICAgICBib29sIHJ1bk9wZW5QYW5l
bChXZWJQYWdlUHJveHkqLCBXZWJGcmFtZVByb3h5KiwgV2ViT3BlblBhbmVsUGFyYW1ldGVycyos
IFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHkqKTsKICAgICBib29sIGRlY2lkZVBvbGlj
eUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3h5KiwgV2ViRnJhbWVQ
cm94eSosIFdlYlNlY3VyaXR5T3JpZ2luKiwgR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFBy
b3h5Kik7CisgICAgYm9vbCBkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdChXZWJQYWdlUHJveHkqLCBXZWJTZWN1cml0eU9yaWdpbiosIE5vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0Kik7CiAKICAgICAvLyBQcmludGluZy4KICAgICBmbG9hdCBoZWFkZXJIZWln
aHQoV2ViUGFnZVByb3h5KiwgV2ViRnJhbWVQcm94eSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdDIv
V2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDFmZmU5YTllODc0MmZjODE5
MDU3YmJjZjIxNWZiZmU0NjEzZjA0NDAuLmMzZjM1MDk4ZDEyYjA5N2I2MzAzN2ZiZjA5OTRlMWVk
ZmRlZjI1MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTI0NiwxMyArMjQ2LDEwIEBACiAJCTFDQThCOTU0MTI3Qzg5MTUwMDU3
NkMyQiAvKiBXZWJJbnNwZWN0b3JNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxQzhFMkRBRDEyNzhDNUIyMDBCQzdCRDAgLyogV2ViSW5zcGVjdG9y
TWFjLm1tICovOyB9OwogCQkyOUNENTVBQTEyOEUyOTRGMDAxMzNDODUgLyogV0tBY2Nlc3NpYmls
aXR5V2ViUGFnZU9iamVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMjlDRDU1QTgxMjhFMjk0RjAwMTMzQzg1IC8qIFdLQWNjZXNzaWJpbGl0eVdlYlBh
Z2VPYmplY3QuaCAqLzsgfTsKIAkJMjlDRDU1QUIxMjhFMjk0RjAwMTMzQzg1IC8qIFdLQWNjZXNz
aWJpbGl0eVdlYlBhZ2VPYmplY3QubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAyOUNENTVBOTEyOEUyOTRGMDAxMzNDODUgLyogV0tBY2Nlc3NpYmlsaXR5
V2ViUGFnZU9iamVjdC5tbSAqLzsgfTsKLQkJMzEwOTk5NkYxNDZDNzQxRDAwMjlERUI5IC8qIFdl
Yk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMzEwOTk5NkExNDZDNzM5MjAwMjlERUI5IC8qIFdlYk5vdGlmaWNh
dGlvbk1hbmFnZXJQcm94eS5oICovOyB9OwotCQkzMTA5OTk3MDE0NkM3NDIwMDAyOURFQjkgLyog
V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMDk5OTZCMTQ2QzczQjEwMDI5REVCOSAvKiBXZWJOb3Rp
ZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwICovOyB9OwogCQkzMTA5OTk3MzE0NkM3NUEyMDAyOURF
QjkgLyogV2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMDk5OTcxMTQ2Qzc1OUIwMDI5REVCOSAvKiBXZWJOb3Rp
ZmljYXRpb25DbGllbnQuY3BwICovOyB9OwogCQkzMTA5OTk3QTE0NkM4QjE0MDAyOURFQjkgLyog
V2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAzMTA5OTk3ODE0NkM4QjE0MDAyOURFQjkgLyogV2ViTm90aWZpY2F0
aW9uTWFuYWdlci5jcHAgKi87IH07CiAJCTMxMDk5OTdCMTQ2QzhCMTQwMDI5REVCOSAvKiBXZWJO
b3RpZmljYXRpb25NYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAzMTA5OTk3OTE0NkM4QjE0MDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9uTWFu
YWdlci5oICovOyB9OwogCQkzMTA5OTlDNzE0NkM5RTNEMDAyOURFQjkgLyogV2ViTm90aWZpY2F0
aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAzMTA5OTk2ODE0NkM3MUY1MDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9uQ2xpZW50LmggKi87
IH07Ci0JCTMxMkMwQzQ3MTQ2RERCQkQwMDE2QzkxMSAvKiBXZWJOb3RpZmljYXRpb25Qcm92aWRl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTJD
MEM0NjE0NkREQkJDMDAxNkM5MTEgLyogV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwICovOyB9
OwogCQkzMTJDMEM0QTE0NkREQzhBMDAxNkM5MTEgLyogV0tOb3RpZmljYXRpb25Qcm92aWRlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEyQzBDNDkx
NDZEREM4QTAwMTZDOTExIC8qIFdLTm90aWZpY2F0aW9uUHJvdmlkZXIuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkzMThCRTE2NzE0NzM0MzM3MDBB
OEZCQjIgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxOEJFMTY1MTQ3
MzQzMzcwMEE4RkJCMiAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2
ZXIuY3BwICovOyB9OwogCQkzMThCRTE2ODE0NzM0MzM3MDBBOEZCQjIgLyogV2ViTm90aWZpY2F0
aW9uTWFuYWdlclByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDMxOEJFMTY2MTQ3MzQzMzcwMEE4RkJCMiAvKiBXZWJOb3RpZmljYXRp
b25NYW5hZ2VyUHJveHlNZXNzYWdlcy5oICovOyB9OwpAQCAtMjYwLDEwICsyNTcsMjIgQEAKIAkJ
MzE4QkUxNzUxNDc0M0RENzAwQThGQkIyIC8qIFdLTm90aWZpY2F0aW9uTWFuYWdlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMThCRTE3NDE0NzQz
REQ2MDBBOEZCQjIgLyogV0tOb3RpZmljYXRpb25NYW5hZ2VyLmNwcCAqLzsgfTsKIAkJMzE4QkUx
NzcxNDc0M0U2MDAwQThGQkIyIC8qIFdLTm90aWZpY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxOEJFMTc2MTQ3NDNFNjAwMEE4RkJCMiAv
KiBXS05vdGlmaWNhdGlvbi5jcHAgKi87IH07CiAJCTMxOEJFMTc5MTQ3NDNFNkYwMEE4RkJCMiAv
KiBXS05vdGlmaWNhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMzE4QkUxNzgxNDc0M0U2QTAwQThGQkIyIC8qIFdLTm90aWZpY2F0aW9uLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMzFBMkVDM0Ux
NDg5NzQzNzAwODEwRDcxIC8qIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUEyRUMz
QzE0ODk3NDM3MDA4MTBENzEgLyogTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
LmNwcCAqLzsgfTsKKwkJMzFBMkVDM0YxNDg5NzQzNzAwODEwRDcxIC8qIE5vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMzFBMkVDM0QxNDg5NzQzNzAwODEwRDcxIC8qIE5vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oICovOyB9OworCQkzMUEyRUM0ODE0ODk5N0MyMDA4MTBE
NzEgLyogV2ViTm90aWZpY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDMxQTJFQzQxMTQ4OTk3QkUwMDgxMEQ3MSAvKiBXZWJOb3RpZmljYXRp
b24uY3BwICovOyB9OworCQkzMUEyRUM0OTE0ODk5N0MyMDA4MTBENzEgLyogV2ViTm90aWZpY2F0
aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUEy
RUM0MjE0ODk5N0JFMDA4MTBENzEgLyogV2ViTm90aWZpY2F0aW9uLmggKi87IH07CisJCTMxQTJF
QzRBMTQ4OTk3QzIwMDgxMEQ3MSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFBMkVDNDMxNDg5
OTdCRTAwODEwRDcxIC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAgKi87IH07CisJ
CTMxQTJFQzRCMTQ4OTk3QzIwMDgxMEQ3MSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHku
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxQTJFQzQ0
MTQ4OTk3QkYwMDgxMEQ3MSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaCAqLzsgfTsK
KwkJMzFBMkVDNEQxNDg5OTdDMjAwODEwRDcxIC8qIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxQTJFQzQ2
MTQ4OTk3QzAwMDgxMEQ3MSAvKiBXZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHAgKi87IH07CisJ
CTMxQTJFQzRFMTQ4OTk3QzIwMDgxMEQ3MSAvKiBXZWJOb3RpZmljYXRpb25Qcm92aWRlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFBMkVDNDcxNDg5
OTdDMTAwODEwRDcxIC8qIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmggKi87IH07CisJCTMxQTJF
QzUwMTQ4OTk4MDUwMDgxMEQ3MSAvKiBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAzMUEyRUM0RjE0ODk5ODA1MDA4MTBENzEgLyogTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHkuY3BwICovOyB9OworCQkzMUEyRUM1MjE0ODk5ODE5MDA4MTBENzEgLyog
Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxQTJFQzUxMTQ4OTk4MTUwMDgxMEQ3
MSAvKiBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oICovOyB9Owor
CQkzMUEyRUM1NTE0ODk5ODJFMDA4MTBENzEgLyogTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFB
MkVDNTQxNDg5OTgyRTAwODEwRDcxIC8qIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNw
cCAqLzsgfTsKKwkJMzFBMkVDNTYxNDg5OUMwOTAwODEwRDcxIC8qIE5vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAzMUEyRUM1MzE0ODk5ODI1MDA4MTBENzEgLyogTm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3QuaCAqLzsgfTsKKwkJMzFBMkVDNzQxNDhENTlDQTAwODEwRDcxIC8qIFdLTm90aWZpY2F0
aW9uUGVybWlzc2lvblJlcXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDMxQTJFQzcyMTQ4RDU5QkIwMDgxMEQ3MSAvKiBXS05vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJMzFBMkVDNzcxNDhENjYyRTAwODEwRDcxIC8qIFdLTm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMzFBMkVDNzUxNDhENjVCQjAwODEwRDcxIC8qIFdLTm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3QuY3BwICovOyB9OwogCQkzMUJBOTI0RDE0ODgzMTI2MDA2MkVEQjUgLyogV2Vi
Tm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUJBOTI0ODE0ODgzMDgxMDA2MkVEQjUgLyog
V2ViTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTMxQkE5
MjRFMTQ4ODMxMjYwMDYyRURCNSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxQkE5MjQ5MTQ4
ODMwODEwMDYyRURCNSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZXMuaCAqLzsgfTsK
LQkJMzFDMTFBQjMxNDg0NTJFOTAwNDlBNENDIC8qIFdlYk5vdGlmaWNhdGlvbi5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUMxMUFCMTE0ODQ1MkU5
MDA0OUE0Q0MgLyogV2ViTm90aWZpY2F0aW9uLmNwcCAqLzsgfTsKLQkJMzFDMTFBQjQxNDg0NTJF
OTAwNDlBNENDIC8qIFdlYk5vdGlmaWNhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMzFDMTFBQjIxNDg0NTJFOTAwNDlBNENDIC8qIFdlYk5vdGlm
aWNhdGlvbi5oICovOyB9OwogCQkzMUVBMjVEMjEzNEY3OEMwMDA1QjE0NTIgLyogTmF0aXZlV2Vi
TW91c2VFdmVudE1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDMxRUEyNUQwMTM0Rjc4QjIwMDVCMTQ1MiAvKiBOYXRpdmVXZWJNb3VzZUV2ZW50TWFj
Lm1tICovOyB9OwogCQkzMzA5MzQ0NzEzMTVCOTIyMDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdl
ck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAzMzA5MzQ0MzEzMTVCOTIyMDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlck1l
c3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTMzMDkzNDQ4MTMxNUI5MjIwMDk3QTdCQyAvKiBX
ZWJDb29raWVNYW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDMzMDkzNDQ0MTMxNUI5MjIwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5h
Z2VyTWVzc2FnZXMuaCAqLzsgfTsKQEAgLTEyMjUsMTQgKzEyMzQsOSBAQAogCQkyOUNENTVBODEy
OEUyOTRGMDAxMzNDODUgLyogV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5Q0Q1NUE5MTI4RTI5NEYwMDEzM0M4NSAv
KiBXS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdC5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzEwOTk5NjgxNDZDNzFGNTAwMjlERUI5IC8qIFdlYk5v
dGlmaWNhdGlvbkNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJOb3RpZmljYXRpb25DbGllbnQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMzEwOTk5NkExNDZDNzM5MjAwMjlERUI5
IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJOb3Rp
ZmljYXRpb25NYW5hZ2VyUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMzEw
OTk5NkIxNDZDNzNCMTAwMjlERUI5IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJOb3RpZmljYXRpb25NYW5h
Z2VyUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkzMTA5OTk2RDE0NkM3
M0M0MDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5tZXNzYWdl
cy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzEwOTk5NzExNDZDNzU5QjAwMjlE
RUI5IC8qIFdlYk5vdGlmaWNhdGlvbkNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBXZWJOb3RpZmljYXRpb25DbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkzMTA5OTk3ODE0NkM4QjE0MDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9u
TWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJOb3Rp
ZmljYXRpb25NYW5hZ2VyLmNwcDsgcGF0aCA9IE5vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9u
TWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxMDk5OTc5MTQ2QzhC
MTQwMDI5REVCOSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXIuaDsgcGF0aCA9IE5vdGlmaWNh
dGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQkzMTJDMEM0NjE0NkREQkJDMDAxNkM5MTEgLyogV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViTm90aWZpY2F0aW9u
UHJvdmlkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkzMTJDMEM0ODE0NkRE
QkQzMDAxNkM5MTEgLyogV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MzEyQzBDNDkxNDZEREM4QTAwMTZDOTExIC8qIFdLTm90aWZpY2F0aW9uUHJvdmlkZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tOb3RpZmljYXRpb25Qcm92aWRlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMThCRTE2NTE0NzM0MzM3MDBBOEZCQjIgLyog
V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eU1l
c3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxOEJFMTY2
MTQ3MzQzMzcwMEE4RkJCMiAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHlNZXNzYWdlcy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJOb3RpZmljYXRpb25NYW5hZ2Vy
UHJveHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTI0MCwxMCAr
MTI0NCwyMyBAQAogCQkzMThCRTE3NDE0NzQzREQ2MDBBOEZCQjIgLyogV0tOb3RpZmljYXRpb25N
YW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLTm90aWZp
Y2F0aW9uTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxOEJFMTc2
MTQ3NDNFNjAwMEE4RkJCMiAvKiBXS05vdGlmaWNhdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBXS05vdGlmaWNhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTMxOEJFMTc4MTQ3NDNFNkEwMEE4RkJCMiAvKiBXS05vdGlmaWNhdGlvbi5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXS05vdGlmaWNhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkzMUEyRUMzQzE0ODk3NDM3MDA4MTBENzEgLyogTm90aWZpY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9
IE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHA7IHBhdGggPSBOb3RpZmlj
YXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxQTJFQzNEMTQ4OTc0MzcwMDgxMEQ3MSAvKiBOb3RpZmlj
YXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmg7IHBhdGggPSBO
b3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMUEyRUM0MTE0ODk5N0JFMDA4MTBENzEgLyogV2Vi
Tm90aWZpY2F0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdl
Yk5vdGlmaWNhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxQTJFQzQy
MTQ4OTk3QkUwMDgxMEQ3MSAvKiBXZWJOb3RpZmljYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV2ViTm90aWZpY2F0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTMxQTJFQzQzMTQ4OTk3QkUwMDgxMEQ3MSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2Vy
UHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViTm90aWZp
Y2F0aW9uTWFuYWdlclByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzFB
MkVDNDQxNDg5OTdCRjAwODEwRDcxIC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJv
eHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzFBMkVDNDUxNDg5OTdCRjAwODEw
RDcxIC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW47IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxQTJFQzQ2MTQ4OTk3QzAwMDgxMEQ3MSAvKiBX
ZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBXZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTMxQTJFQzQ3MTQ4OTk3QzEwMDgxMEQ3MSAvKiBXZWJOb3RpZmljYXRpb25Qcm92
aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJOb3RpZmljYXRpb25Q
cm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMUEyRUM0RjE0ODk5ODA1
MDA4MTBENzEgLyogTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkzMUEyRUM1MTE0ODk5ODE1MDA4MTBENzEgLyogTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzFBMkVD
NTMxNDg5OTgyNTAwODEwRDcxIC8qIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTMxQTJFQzU0MTQ4OTk4MkUwMDgxMEQ3MSAvKiBOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTMxQTJFQzcyMTQ4RDU5QkIwMDgxMEQ3MSAvKiBXS05vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLTm90aWZpY2F0aW9uUGVybWlzc2lv
blJlcXVlc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzFBMkVDNzUxNDhENjVC
QjAwODEwRDcxIC8qIFdLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxQkE5MjQ4MTQ4ODMwODEw
MDYyRURCNSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJN
ZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMUJBOTI0
OTE0ODgzMDgxMDA2MkVEQjUgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNz
YWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkzMUMxMUFCMTE0ODQ1MkU5MDA0
OUE0Q0MgLyogV2ViTm90aWZpY2F0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFdlYk5vdGlmaWNhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTMxQzExQUIyMTQ4NDUyRTkwMDQ5QTRDQyAvKiBXZWJOb3RpZmljYXRpb24uaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViTm90aWZpY2F0aW9uLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTMxRUEyNUQwMTM0Rjc4QjIwMDVCMTQ1MiAvKiBOYXRpdmVXZWJN
b3VzZUV2ZW50TWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTmF0aXZlV2ViTW91c2VFdmVu
dE1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzFFQTI1RDMxMzRGNzhENjAw
NUIxNDUyIC8qIE5hdGl2ZVdlYk1vdXNlRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTmF0aXZlV2ViTW91c2VFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkzMkRCQ0Y1RTAzNzBBREVFMDBDOTE3ODMgLyogV2ViS2l0MlByZWZpeC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJLaXQyUHJlZml4Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0yNDgwLDEyICsyNDk3LDMyIEBACiAJCTMxMDk5OTc0MTQ2QzhBQTgw
MDI5REVCOSAvKiBOb3RpZmljYXRpb25zIChVc2VyKSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3Vw
OwogCQkJY2hpbGRyZW4gPSAoCisJCQkJMzFBMkVDM0MxNDg5NzQzNzAwODEwRDcxIC8qIE5vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAgKi8sCisJCQkJMzFBMkVDM0QxNDg5
NzQzNzAwODEwRDcxIC8qIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oICov
LAogCQkJCTMxMDk5OTc4MTQ2QzhCMTQwMDI5REVCOSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2Vy
LmNwcCAqLywKIAkJCQkzMTA5OTk3OTE0NkM4QjE0MDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9u
TWFuYWdlci5oICovLAogCQkJKTsKIAkJCW5hbWUgPSAiTm90aWZpY2F0aW9ucyAoVXNlcikiOwog
CQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJMzFBMkVDNDAxNDg5OTczNzAwODEw
RDcxIC8qIE5vdGlmaWNhdGlvbnMgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxk
cmVuID0gKAorCQkJCTMxQTJFQzRGMTQ4OTk4MDUwMDgxMEQ3MSAvKiBOb3RpZmljYXRpb25QZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgKi8sCisJCQkJMzFBMkVDNTExNDg5OTgxNTAw
ODEwRDcxIC8qIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggKi8s
CisJCQkJMzFBMkVDNTQxNDg5OTgyRTAwODEwRDcxIC8qIE5vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0LmNwcCAqLywKKwkJCQkzMUEyRUM1MzE0ODk5ODI1MDA4MTBENzEgLyogTm90aWZpY2F0
aW9uUGVybWlzc2lvblJlcXVlc3QuaCAqLywKKwkJCQkzMUEyRUM0MTE0ODk5N0JFMDA4MTBENzEg
LyogV2ViTm90aWZpY2F0aW9uLmNwcCAqLywKKwkJCQkzMUEyRUM0MjE0ODk5N0JFMDA4MTBENzEg
LyogV2ViTm90aWZpY2F0aW9uLmggKi8sCisJCQkJMzFBMkVDNDMxNDg5OTdCRTAwODEwRDcxIC8q
IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAgKi8sCisJCQkJMzFBMkVDNDQxNDg5OTdC
RjAwODEwRDcxIC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oICovLAorCQkJCTMxQTJF
QzQ1MTQ4OTk3QkYwMDgxMEQ3MSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkubWVzc2Fn
ZXMuaW4gKi8sCisJCQkJMzFBMkVDNDYxNDg5OTdDMDAwODEwRDcxIC8qIFdlYk5vdGlmaWNhdGlv
blByb3ZpZGVyLmNwcCAqLywKKwkJCQkzMUEyRUM0NzE0ODk5N0MxMDA4MTBENzEgLyogV2ViTm90
aWZpY2F0aW9uUHJvdmlkZXIuaCAqLywKKwkJCSk7CisJCQlwYXRoID0gTm90aWZpY2F0aW9uczsK
KwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTMyQzg4REZGMDM3MUMyNDIwMEM5
MTc4MyAvKiBPdGhlciBTb3VyY2VzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGls
ZHJlbiA9ICgKQEAgLTI3NTgsNiArMjc5NSw3IEBACiAJCQkJMUFCN0Q0QzcxMjg4QUE5QTAwQ0ZE
MDhDIC8qIERvd25sb2FkcyAqLywKIAkJCQlCQzExMUIxODExMkY1RkI0MDAzMzdCQUIgLyogTGF1
bmNoZXIgKi8sCiAJCQkJQkNDRjA4NUMxMTNGM0I3NTAwQzY1MEM1IC8qIG1hYyAqLywKKwkJCQkz
MUEyRUM0MDE0ODk5NzM3MDA4MTBENzEgLyogTm90aWZpY2F0aW9ucyAqLywKIAkJCQkxQUVGQ0Mw
NTExRDAxRjM0MDA4MjE5RDMgLyogUGx1Z2lucyAqLywKIAkJCQkxQTY0MjU2NzEyREU0MkVDMDBD
QUFFMkMgLyogQmFja2luZ1N0b3JlLmNwcCAqLywKIAkJCQkxQTY0MjU2NjEyREU0MkVDMDBDQUFF
MkMgLyogQmFja2luZ1N0b3JlLmggKi8sCkBAIC0yODQ5LDEzICsyODg3LDYgQEAKIAkJCQkzM0Qz
QTNCOTEzMzk2MDYyMDA3MDlCRTQgLyogV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eS5tZXNzYWdl
cy5pbiAqLywKIAkJCQlCQ0Y2OUZBMTExNzZEMDE0MDA0NzFBNTIgLyogV2ViTmF2aWdhdGlvbkRh
dGEuY3BwICovLAogCQkJCUJDRjY5RkEwMTE3NkQwMTQwMDQ3MUE1MiAvKiBXZWJOYXZpZ2F0aW9u
RGF0YS5oICovLAotCQkJCTMxQzExQUIxMTQ4NDUyRTkwMDQ5QTRDQyAvKiBXZWJOb3RpZmljYXRp
b24uY3BwICovLAotCQkJCTMxQzExQUIyMTQ4NDUyRTkwMDQ5QTRDQyAvKiBXZWJOb3RpZmljYXRp
b24uaCAqLywKLQkJCQkzMTA5OTk2QjE0NkM3M0IxMDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9u
TWFuYWdlclByb3h5LmNwcCAqLywKLQkJCQkzMTA5OTk2QTE0NkM3MzkyMDAyOURFQjkgLyogV2Vi
Tm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmggKi8sCi0JCQkJMzEwOTk5NkQxNDZDNzNDNDAwMjlE
RUI5IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiAqLywKLQkJCQkz
MTJDMEM0NjE0NkREQkJDMDAxNkM5MTEgLyogV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwICov
LAotCQkJCTMxMkMwQzQ4MTQ2RERCRDMwMDE2QzkxMSAvKiBXZWJOb3RpZmljYXRpb25Qcm92aWRl
ci5oICovLAogCQkJCUJDMURGRUEzMTJCMzFGODcwMDVERjczMCAvKiBXZWJPcGVuUGFuZWxSZXN1
bHRMaXN0ZW5lclByb3h5LmNwcCAqLywKIAkJCQlCQzFERkVBMjEyQjMxRjg3MDA1REY3MzAgLyog
V2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eS5oICovLAogCQkJCTUxNTM1NjlBMTI5MUIx
RDIwMDA3NDlEQyAvKiBXZWJQYWdlQ29udGV4dE1lbnVDbGllbnQuY3BwICovLApAQCAtMjk3Niw2
ICszMDA3LDggQEAKIAkJCQk1MThBQ0FFOTEyQUVFNkJCMDBCMDRCODMgLyogV0tQcm90ZWN0aW9u
U3BhY2VUeXBlcy5oICovLAogCQkJCTMzMzY3NjM4MTMwQzk5REMwMDZDOURFMiAvKiBXS1Jlc291
cmNlQ2FjaGVNYW5hZ2VyLmNwcCAqLywKIAkJCQkzMzM2NzYzOTEzMEM5OURDMDA2QzlERTIgLyog
V0tSZXNvdXJjZUNhY2hlTWFuYWdlci5oICovLAorCQkJCTMxQTJFQzcyMTQ4RDU5QkIwMDgxMEQ3
MSAvKiBXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmggKi8sCisJCQkJMzFBMkVDNzUx
NDhENjVCQjAwODEwRDcxIC8qIFdLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuY3BwICov
LAogCQkJKTsKIAkJCXBhdGggPSBDOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTQw
NTUsMTUgKzQwODgsMjAgQEAKIAkJCQlCQzA5QjhGOTE0NzQ2MEY3MDA1RjU2MjUgLyogV2ViQ29u
dGV4dENvbm5lY3Rpb25DbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3ODhBMDVDMTQ3NDND
OTAwMDYzMTlFNSAvKiBXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXJQcml2YXRlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCQ0U5QzBCNzE0ODQ3MTQ3MDBFMzNENjEgLyogV2ViQ29ubmVjdGlvbk1l
c3NhZ2VLaW5kcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMzEwOTk5NkYxNDZDNzQxRDAwMjlERUI5
IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzEw
OTk5N0IxNDZDOEIxNDAwMjlERUI5IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTMxMDk5OUM3MTQ2QzlFM0QwMDI5REVCOSAvKiBXZWJOb3RpZmljYXRpb25D
bGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxMkMwQzRBMTQ2RERDOEEwMDE2QzkxMSAvKiBX
S05vdGlmaWNhdGlvblByb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMThCRTE2ODE0NzM0
MzM3MDBBOEZCQjIgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZXMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTMxOEJFMTcxMTQ3NDNEQjEwMEE4RkJCMiAvKiBXS05vdGlmaWNhdGlv
bk1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxOEJFMTc5MTQ3NDNFNkYwMEE4RkJCMiAv
KiBXS05vdGlmaWNhdGlvbi5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMzFDMTFBQjQxNDg0NTJFOTAw
NDlBNENDIC8qIFdlYk5vdGlmaWNhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzFCQTkyNEUx
NDg4MzEyNjAwNjJFREI1IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlcy5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMzFBMkVDM0YxNDg5NzQzNzAwODEwRDcxIC8qIE5vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzFBMkVDNDkxNDg5
OTdDMjAwODEwRDcxIC8qIFdlYk5vdGlmaWNhdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzFB
MkVDNEIxNDg5OTdDMjAwODEwRDcxIC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJMzFBMkVDNEUxNDg5OTdDMjAwODEwRDcxIC8qIFdlYk5vdGlmaWNh
dGlvblByb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQkzMUEyRUM1MjE0ODk5ODE5MDA4MTBE
NzEgLyogTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTMxQTJFQzU2MTQ4OTlDMDkwMDgxMEQ3MSAvKiBOb3RpZmljYXRpb25QZXJt
aXNzaW9uUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzFBMkVDNzQxNDhENTlDQTAwODEw
RDcxIC8qIFdLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAog
CQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpA
QCAtNDc2NiwxNiArNDgwNCwyMCBAQAogCQkJCUJDNEE2Mjk2MTQ3MzEzQTAwMDZDNjgxQSAvKiBX
S0Nvbm5lY3Rpb25SZWYuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM0QTYyQTcxNDc0NEVDNzAw
NkM2ODFBIC8qIFdlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQkMwOUI4RjgxNDc0NjBGNzAwNUY1NjI1IC8qIFdlYkNvbnRleHRDb25uZWN0aW9uQ2xpZW50
LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTMxMDk5OTcwMTQ2Qzc0MjAwMDI5REVCOSAvKiBXZWJO
b3RpZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzEwOTk5NzMx
NDZDNzVBMjAwMjlERUI5IC8qIFdlYk5vdGlmaWNhdGlvbkNsaWVudC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkzMTA5OTk3QTE0NkM4QjE0MDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdl
ci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkzMTJDMEM0NzE0NkREQkJEMDAxNkM5MTEgLyogV2Vi
Tm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzE4QkUxNjcxNDcz
NDMzNzAwQThGQkIyIC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZl
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMThCRTE3NTE0NzQzREQ3MDBBOEZCQjIgLyogV0tO
b3RpZmljYXRpb25NYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxOEJFMTc3MTQ3NDNF
NjAwMEE4RkJCMiAvKiBXS05vdGlmaWNhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkzMUMx
MUFCMzE0ODQ1MkU5MDA0OUE0Q0MgLyogV2ViTm90aWZpY2F0aW9uLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTMxQkE5MjREMTQ4ODMxMjYwMDYyRURCNSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2Vy
TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDRDM2NzVDMTQ4QzI2QzAw
MDQ0N0U4NyAvKiBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJMzFBMkVDM0UxNDg5NzQzNzAwODEwRDcxIC8qIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkzMUEyRUM0ODE0ODk5N0MyMDA4MTBE
NzEgLyogV2ViTm90aWZpY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTMxQTJFQzRBMTQ4
OTk3QzIwMDgxMEQ3MSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJMzFBMkVDNEQxNDg5OTdDMjAwODEwRDcxIC8qIFdlYk5vdGlmaWNhdGlvblBy
b3ZpZGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTMxQTJFQzUwMTQ4OTk4MDUwMDgxMEQ3MSAv
KiBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQkzMUEyRUM1NTE0ODk5ODJFMDA4MTBENzEgLyogTm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMzFBMkVDNzcxNDhENjYyRTAwODEw
RDcxIC8qIFdLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjA4MjhmODM0OThmNWFkMWIwZGNjY2IyMTAwYTU4ZjU4NDAzNDc1
YjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNh
dGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcApAQCAtMCwwICsx
LDEyMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCIKKworI2luY2x1ZGUgIldlYkNvcmVB
cmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eU1l
c3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUGFnZS5oIgorI2luY2x1ZGUgIldlYlBhZ2VQcm94eU1l
c3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTm90
aWZpY2F0aW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TY3JpcHRFeGVjdXRpb25Db250ZXh0Lmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgorCit1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKKyNpZiBFTkFCTEUoTk9USUZJQ0FUSU9O
UykKK3N0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZVJlcXVlc3RJRCgpCit7CisgICAgc3RhdGljIHVp
bnQ2NF90IHVuaXF1ZVJlcXVlc3RJRCA9IDE7CisgICAgcmV0dXJuIHVuaXF1ZVJlcXVlc3RJRCsr
OworfQorI2VuZGlmCisKK1Bhc3NSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyPiBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OmNyZWF0ZShXZWJQ
YWdlKiBwYWdlKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgTm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyKHBhZ2UpKTsKK30KKworTm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyOjpOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoV2ViUGFn
ZSogcGFnZSkKKyAgICA6IG1fcGFnZShwYWdlKQoreworfQorCitOb3RpZmljYXRpb25QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXI6On5Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIo
KQoreworfQorCit2b2lkIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6c3Rh
cnRSZXF1ZXN0KFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4sIFBhc3NSZWZQdHI8Vm9pZENhbGxiYWNr
PiBjYWxsYmFjaykKK3sKKyNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKKyAgICB1aW50NjRfdCBy
ZXF1ZXN0SUQgPSBnZW5lcmF0ZVJlcXVlc3RJRCgpOworICAgIG1fb3JpZ2luVG9JRE1hcC5zZXQo
b3JpZ2luLCByZXF1ZXN0SUQpOworICAgIG1faWRUb09yaWdpbk1hcC5zZXQocmVxdWVzdElELCBv
cmlnaW4pOworICAgIG1faWRUb0NhbGxiYWNrTWFwLnNldChyZXF1ZXN0SUQsIGNhbGxiYWNrKTsK
KyAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UmVxdWVzdE5vdGlmaWNh
dGlvblBlcm1pc3Npb24ocmVxdWVzdElELCBvcmlnaW4tPmRhdGFiYXNlSWRlbnRpZmllcigpKSk7
CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShvcmlnaW4pOworICAgIFVOVVNFRF9QQVJBTShjYWxs
YmFjayk7CisjZW5kaWYKK30KKwordm9pZCBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXI6OmNhbmNlbFJlcXVlc3QoU2VjdXJpdHlPcmlnaW4qIG9yaWdpbikKK3sKKyNpZiBFTkFC
TEUoTk9USUZJQ0FUSU9OUykKKyAgICB1aW50NjRfdCBpZCA9IG1fb3JpZ2luVG9JRE1hcC50YWtl
KG9yaWdpbik7CisgICAgaWYgKCFpZCkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIG1faWRU
b09yaWdpbk1hcC5yZW1vdmUoaWQpOworICAgIG1faWRUb0NhbGxiYWNrTWFwLnJlbW92ZShpZCk7
CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShvcmlnaW4pOworI2VuZGlmCit9CisKK05vdGlmaWNh
dGlvblByZXNlbnRlcjo6UGVybWlzc2lvbiBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXI6OnBlcm1pc3Npb25MZXZlbChTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmlnaW4pCit7
CisjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCisgICAgdWludDY0X3QgcGVybWlzc2lvbkxldmVs
OworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmNvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2Fn
ZXM6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6Tm90aWZpY2F0aW9uUGVybWlzc2lvbkxl
dmVsKHNlY3VyaXR5T3JpZ2luLT5kYXRhYmFzZUlkZW50aWZpZXIoKSksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZXNzYWdlczo6V2ViTm90aWZpY2F0
aW9uTWFuYWdlclByb3h5OjpOb3RpZmljYXRpb25QZXJtaXNzaW9uTGV2ZWw6OlJlcGx5KHBlcm1p
c3Npb25MZXZlbCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAwKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Tm90aWZpY2F0aW9uUHJlc2VudGVyOjpQ
ZXJtaXNzaW9uPihwZXJtaXNzaW9uTGV2ZWwpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oc2Vj
dXJpdHlPcmlnaW4pOworICAgIHJldHVybiBOb3RpZmljYXRpb25QcmVzZW50ZXI6OlBlcm1pc3Np
b25EZW5pZWQ7CisjZW5kaWYKK30KKwordm9pZCBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXI6OmRpZFJlY2VpdmVOb3RpZmljYXRpb25QZXJtaXNzaW9uRGVjaXNpb24odWludDY0
X3QgcmVxdWVzdElELCBib29sIGFsbG93ZWQpCit7CisjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMp
CisgICAgaWYgKCFpc1JlcXVlc3RJRFZhbGlkKHJlcXVlc3RJRCkpCisgICAgICAgIHJldHVybjsK
KworICAgIFJlZlB0cjxWb2lkQ2FsbGJhY2s+IGNhbGxiYWNrID0gbV9pZFRvQ2FsbGJhY2tNYXAu
dGFrZShyZXF1ZXN0SUQpOworICAgIGlmICghY2FsbGJhY2spCisgICAgICAgIHJldHVybjsKKyAg
ICAKKyAgICBjYWxsYmFjay0+aGFuZGxlRXZlbnQoKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFN
KHJlcXVlc3RJRCk7CisgICAgVU5VU0VEX1BBUkFNKGFsbG93ZWQpOworI2VuZGlmICAgIAorfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIu
aCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NGFiOThmMmVjZThkNTUzMGNk
OTU3MmUzMzQ4ZmI4Njk3MzhkZDdhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlci5oCkBAIC0wLDAgKzEsNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIE5vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcl9oCisjZGVmaW5lIE5vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlcl9oCisKKyNpbmNsdWRlIDxXZWJDb3JlL05vdGlmaWNhdGlvblByZXNl
bnRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVm9pZENhbGxiYWNrLmg+CisjaW5jbHVkZSA8d3Rm
L0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9S
ZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgTm90aWZpY2F0aW9uOyAgICAK
K2NsYXNzIFNlY3VyaXR5T3JpZ2luOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3Mg
V2ViUGFnZTsKKworLy8vIEZJWE1FOiBOZWVkIHRvIGtlZXAgYSBxdWV1ZSBvZiBwZW5kaW5nIG5v
dGlmaWNhdGlvbnMgd2hpY2ggcGVybWlzc2lvbiBpcyBzdGlsbCBiZWluZyByZXF1ZXN0ZWQuCitj
bGFzcyBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIgOiBwdWJsaWMgUmVmQ291
bnRlZDxOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI+IHsKK3B1YmxpYzoKKyAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI+
IGNyZWF0ZShXZWJQYWdlKik7CisgICAgdmlydHVhbCB+Tm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyKCk7CisgICAgCisgICAgdm9pZCBzdGFydFJlcXVlc3QoV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW4qLCBQYXNzUmVmUHRyPFdlYkNvcmU6OlZvaWRDYWxsYmFjaz4pOworICAgIHZv
aWQgY2FuY2VsUmVxdWVzdChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiopOworICAgIAorICAgIC8v
IFN5bmNocm9ub3VzIGNhbGwgdG8gcmV0cmlldmUgcGVybWlzc2lvbiBsZXZlbCBmb3IgZ2l2ZW4g
c2VjdXJpdHkgb3JpZ2luCisgICAgV2ViQ29yZTo6Tm90aWZpY2F0aW9uUHJlc2VudGVyOjpQZXJt
aXNzaW9uIHBlcm1pc3Npb25MZXZlbChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiopOworICAgIAor
ICAgIHZvaWQgZGlkUmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRf
dCBub3RpZmljYXRpb25JRCwgYm9vbCBhbGxvd2VkKTsKKyAgICAKK3ByaXZhdGU6CisgICAgTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKFdlYlBhZ2UqKTsKKyAgICAKKyAgICBI
YXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8V2ViQ29yZTo6Vm9pZENhbGxiYWNrPiA+IG1faWRUb0Nh
bGxiYWNrTWFwOworICAgIEhhc2hNYXA8UmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiwg
dWludDY0X3Q+IG1fb3JpZ2luVG9JRE1hcDsKKyAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+ID4gbV9pZFRvT3JpZ2luTWFwOworCisgICAgV2ViUGFn
ZSogbV9wYWdlOworfTsKKworaW5saW5lIGJvb2wgaXNSZXF1ZXN0SURWYWxpZCh1aW50NjRfdCBp
ZCkKK3sKKyAgICAvLyBUaGlzIGNoZWNrIG1ha2VzIHN1cmUgdGhhdCB0aGUgSUQgaXMgbm90IGVx
dWFsIHRvIHZhbHVlcyBuZWVkZWQgYnkKKyAgICAvLyBIYXNoTWFwIGZvciBidWNrZXRpbmcuCisg
ICAgcmV0dXJuIGlkICYmIGlkICE9IHN0YXRpY19jYXN0PHVpbnQ2NF90PigtMSk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gTm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90
aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5oCmluZGV4IDA3Y2Zh
ZmM3ODU2ZDA4ZWUwN2FkYjczZWNlNGI1OTg1NGVmZWNlN2QuLjNiMzJmMGFkZWJiOTliYmU4YjQ5
YmU3MzE5MWVmNGNjOWNlMmRhMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmgKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuaApA
QCAtMzgsNyArMzgsNyBAQCBjbGFzcyBDb25uZWN0aW9uOwogfQogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7Ci1jbGFzcyBOb3RpZmljYXRpb247ICAgIAorY2xhc3MgTm90aWZpY2F0aW9uOwogfQogCiBu
YW1lc3BhY2UgV2ViS2l0IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcAppbmRl
eCBmMTg0OGJkZmY5ZGI1Y2JkZjg2NjRiYTAzOWFkNjZhNzU2Y2MyMzVmLi5lMDYyMzRhMWNlNWJm
YmI4MWI3MTIzNTY3NzQxNDkwYjcwYmIyM2U4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25D
bGllbnQuY3BwCkBAIC0yOCw5ICsyOCwxMiBAQAogCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMp
CiAKKyNpbmNsdWRlICJOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCIKICNp
bmNsdWRlICJXZWJOb3RpZmljYXRpb25NYW5hZ2VyLmgiCisjaW5jbHVkZSAiV2ViUGFnZS5oIgog
I2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVk
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TY3JpcHRFeGVjdXRpb25Db250ZXh0Lmg+CiAKIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC03NCwyMCArNzcsMjEgQEAgdm9pZCBXZWJOb3RpZmlj
YXRpb25DbGllbnQ6Om5vdGlmaWNhdGlvbk9iamVjdERlc3Ryb3llZChOb3RpZmljYXRpb24qIG5v
dGlmaWNhdGkKICNlbmRpZgogfQogCi12b2lkIFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6cmVxdWVz
dFBlcm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8Vm9pZENhbGxi
YWNrPikKK3ZvaWQgV2ViTm90aWZpY2F0aW9uQ2xpZW50OjpyZXF1ZXN0UGVybWlzc2lvbihTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPFZvaWRDYWxsYmFjaz4gY2Fs
bGJhY2spCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBtX3BhZ2UtPm5vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpLT5zdGFydFJlcXVlc3QoY29udGV4dC0+c2VjdXJp
dHlPcmlnaW4oKSwgY2FsbGJhY2spOwogfQogCi12b2lkIFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6
Y2FuY2VsUmVxdWVzdHNGb3JQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKQordm9p
ZCBXZWJOb3RpZmljYXRpb25DbGllbnQ6OmNhbmNlbFJlcXVlc3RzRm9yUGVybWlzc2lvbihTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgbV9wYWdlLT5ub3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKS0+Y2FuY2Vs
UmVxdWVzdChjb250ZXh0LT5zZWN1cml0eU9yaWdpbigpKTsKIH0KIAotTm90aWZpY2F0aW9uUHJl
c2VudGVyOjpQZXJtaXNzaW9uIFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6Y2hlY2tQZXJtaXNzaW9u
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKQorTm90aWZpY2F0aW9uUHJlc2VudGVyOjpQZXJtaXNz
aW9uIFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6Y2hlY2tQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGNvbnRleHQpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4g
Tm90aWZpY2F0aW9uUHJlc2VudGVyOjpQZXJtaXNzaW9uRGVuaWVkOworICAgIGlmICghY29udGV4
dCB8fCAhY29udGV4dC0+aXNEb2N1bWVudCgpKQorICAgICAgICByZXR1cm4gTm90aWZpY2F0aW9u
UHJlc2VudGVyOjpQZXJtaXNzaW9uRGVuaWVkOworICAgIHJldHVybiBtX3BhZ2UtPm5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpLT5wZXJtaXNzaW9uTGV2ZWwoY29udGV4dC0+
c2VjdXJpdHlPcmlnaW4oKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDYxNzJkNGY5ODgy
ZGZhMjUzOWI4NmUyOWQ4ODFiY2JjZTE3MGJiZmUuLjQzZWMzOGM3MGRlMDI2ZTIwNzA1ZmEyNjlj
NGY0NGVmM2EzYzQzZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJMYXllclRyZWVIb3N0Lmgi
CiAjaW5jbHVkZSAiTWVzc2FnZUlELmgiCiAjaW5jbHVkZSAiTmV0c2NhcGVQbHVnaW4uaCIKKyNp
bmNsdWRlICJOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCIKICNpbmNsdWRl
ICJQYWdlT3ZlcmxheS5oIgogI2luY2x1ZGUgIlBsdWdpblByb3h5LmgiCiAjaW5jbHVkZSAiUGx1
Z2luVmlldy5oIgpAQCAtMTg0Miw2ICsxODQzLDE1IEBAIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyKiBX
ZWJQYWdlOjpmdWxsU2NyZWVuTWFuYWdlcigpCiB9CiAjZW5kaWYKIAorTm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyKiBXZWJQYWdlOjpub3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXIoKQoreworICAgIGlmIChtX25vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlcikKKyAgICAgICAgcmV0dXJuIG1fbm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyLmdldCgpOworCisgICAgbV9ub3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXIgPSBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OmNyZWF0ZSh0aGlzKTsK
KyAgICByZXR1cm4gbV9ub3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuZ2V0KCk7
Cit9CisKICNpZiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0oTUFDKQogYm9vbCBXZWJQYWdl
OjpoYW5kbGVFZGl0aW5nS2V5Ym9hcmRFdmVudChLZXlib2FyZEV2ZW50KiBldnQpCiB7CkBAIC0y
MTE4LDYgKzIxMjgsMTEgQEAgdm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlR2VvbG9jYXRpb25QZXJt
aXNzaW9uRGVjaXNpb24odWludDY0X3QgZ2VvbG9jYXRpb25JRCwgYm8KICAgICBtX2dlb2xvY2F0
aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmRpZFJlY2VpdmVHZW9sb2NhdGlvblBlcm1pc3Np
b25EZWNpc2lvbihnZW9sb2NhdGlvbklELCBhbGxvd2VkKTsKIH0KIAordm9pZCBXZWJQYWdlOjpk
aWRSZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IG5vdGlmaWNh
dGlvbklELCBib29sIGFsbG93ZWQpCit7CisgICAgbm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyKCktPmRpZFJlY2VpdmVOb3RpZmljYXRpb25QZXJtaXNzaW9uRGVjaXNpb24obm90
aWZpY2F0aW9uSUQsIGFsbG93ZWQpOworfQorCiB2b2lkIFdlYlBhZ2U6OmFkdmFuY2VUb05leHRN
aXNzcGVsbGluZyhib29sIHN0YXJ0QmVmb3JlU2VsZWN0aW9uKQogewogICAgIEZyYW1lKiBmcmFt
ZSA9IG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCktPmZvY3VzZWRPck1haW5GcmFtZSgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggOTE2ZDg2MjRk
NmE2Mzk4Y2ZjNzllZjMyNTdlMTFiYmQ0MzA1YTc2MC4uODc1NmI0MWZjMDhkMWQ1NjI2NDc4ZGNi
NzY5ZjkxMjU1YzdiODRmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oCkBAIC0xMDIsNiArMTAyLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNz
IERyYXdpbmdBcmVhOwogY2xhc3MgSW5qZWN0ZWRCdW5kbGVCYWNrRm9yd2FyZExpc3Q7CitjbGFz
cyBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7CiBjbGFzcyBQYWdlT3Zlcmxh
eTsKIGNsYXNzIFBsdWdpblZpZXc7CiBjbGFzcyBTZXNzaW9uU3RhdGU7CkBAIC0zMDksNiArMzEw
LDcgQEAgcHVibGljOgogCiAgICAgRmluZENvbnRyb2xsZXImIGZpbmRDb250cm9sbGVyKCkgeyBy
ZXR1cm4gbV9maW5kQ29udHJvbGxlcjsgfQogICAgIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyJiBnZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpIHsgcmV0dXJu
IG1fZ2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7IH0KKyAgICBOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIqIG5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlcigpOwogCiAgICAgdm9pZCBwYWdlRGlkU2Nyb2xsKCk7CiAjaWYgVVNFKFRJTEVEX0JB
Q0tJTkdfU1RPUkUpCkBAIC01ODcsNiArNTg5LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAgICAg
dm9pZCBkaWRSZWNlaXZlR2VvbG9jYXRpb25QZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3QgZ2Vv
bG9jYXRpb25JRCwgYm9vbCBhbGxvd2VkKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVOb3RpZmljYXRp
b25QZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQsIGJvb2wgYWxsb3dl
ZCk7CiAKICAgICB2b2lkIGFkdmFuY2VUb05leHRNaXNzcGVsbGluZyhib29sIHN0YXJ0QmVmb3Jl
U2VsZWN0aW9uKTsKICAgICB2b2lkIGNoYW5nZVNwZWxsaW5nVG9Xb3JkKGNvbnN0IFN0cmluZyYg
d29yZCk7CkBAIC02OTMsNiArNjk2LDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8V2ViQ29udGV4
dE1lbnU+IG1fY29udGV4dE1lbnU7CiAgICAgUmVmUHRyPFdlYk9wZW5QYW5lbFJlc3VsdExpc3Rl
bmVyPiBtX2FjdGl2ZU9wZW5QYW5lbFJlc3VsdExpc3RlbmVyOwogICAgIEdlb2xvY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyIG1fZ2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXI7CisgICAgUmVmUHRyPE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcj4gbV9u
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7CiAKICAgICBPd25QdHI8V2ViQ29y
ZTo6UHJpbnRDb250ZXh0PiBtX3ByaW50Q29udGV4dDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCBkMGUzMDRi
ZGJhZWVkZjliZTExZjZiNTU1MWM5MjJmOGMzYzY3NmQ5Li4zNzg2MTkxZTUwNzFlNmFlOGZmYzcy
Y2YwMGNkZTlkNjllMGE5OTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtMTcyLDYgKzE3Miw5IEBAIG1lc3Nh
Z2VzIC0+IFdlYlBhZ2UgewogCiAgICAgIyBHZW9sb2NhdGlvbgogICAgIERpZFJlY2VpdmVHZW9s
b2NhdGlvblBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCBnZW9sb2NhdGlvbklELCBib29sIGFs
bG93ZWQpCisgICAgCisgICAgIyBOb3RpZmljYXRpb24KKyAgICBEaWRSZWNlaXZlTm90aWZpY2F0
aW9uUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklELCBib29sIGFsbG93
ZWQpCiAKICAgICBTZXRXaW5kb3dSZXNpemVyU2l6ZShXZWJDb3JlOjpJbnRTaXplIGludGVyc2Vj
dHNWaWV3KQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2og
Yi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2oKaW5kZXggNDc5YmJkNzdmZWY4Mzlk
OWIxOTc4ZTgxZDYzZGZhZjNhZjA2NTA1Mi4uYzA1YTM2MzkyYWIxYjY4ZjQyYjVhZDJlYjRiYzdh
YThkNGRhYjg2MyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9q
CisrKyBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagpAQCAtMTU1NSwxNSArMTU1
NSwxNSBAQAogCQkJTmFtZT0iV2ViUHJvY2VzcyIKIAkJCT4KIAkJCTxGaWxlCi0JCQkJUmVsYXRp
dmVQYXRoPSIuLlxXZWJQcm9jZXNzXFdlYktpdE1haW4uY3BwIgorCQkJCVJlbGF0aXZlUGF0aD0i
Li5cV2ViUHJvY2Vzc1xXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MuY3BwIgogCQkJCT4KIAkJCTwv
RmlsZT4KIAkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJQcm9jZXNzXFdlYkNvbm5l
Y3Rpb25Ub1VJUHJvY2Vzcy5jcHAiCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJQcm9jZXNzXFdl
YkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcy5oIgogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCi0J
CQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJQcm9jZXNzXFdlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcy5o
IgorCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViUHJvY2Vzc1xXZWJLaXRNYWluLmNwcCIKIAkJCQk+
CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQpAQCAtMjcwNiw2ICsyNzA2LDE0IEBACiAJCQkJTmFtZT0i
Tm90aWZpY2F0aW9ucyAoVXNlcikiCiAJCQkJPgogCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0
aD0iLi5cV2ViUHJvY2Vzc1xOb3RpZmljYXRpb25zXE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlci5jcHAiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxXZWJQcm9jZXNzXE5vdGlmaWNhdGlvbnNcTm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyLmgiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJQcm9jZXNzXE5vdGlmaWNhdGlvbnNcV2ViTm90aWZpY2F0
aW9uTWFuYWdlci5jcHAiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CkBAIC0zMDgzLDM0ICszMDkxLDYg
QEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQ
cm9jZXNzXFdlYk5vdGlmaWNhdGlvbi5jcHAiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUK
LQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xXZWJOb3RpZmljYXRpb24uaCIKLQkJCQk+
Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXFdl
Yk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZp
bGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xXZWJOb3RpZmljYXRpb25NYW5hZ2Vy
UHJveHkuaCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0i
Li5cVUlQcm9jZXNzXFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiIKLQkJ
CQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNz
XFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8Rmls
ZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXFdlYk5vdGlmaWNhdGlvblByb3ZpZGVy
LmgiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJ
UHJvY2Vzc1xXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5LmNwcCIKIAkJCQk+CiAJCQk8
L0ZpbGU+CkBAIC0zODEwLDYgKzM3OTAsNTQgQEAKIAkJCQkJPC9GaWxlPgogCQkJCTwvRmlsdGVy
PgogCQkJPC9GaWx0ZXI+CisJCQk8RmlsdGVyCisJCQkJTmFtZT0iTm90aWZpY2F0aW9ucyAoVXNl
cikiCisJCQkJPgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXE5v
dGlmaWNhdGlvbnNcTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuY3BwIgorCQkJCQk+CisJ
CQkJPC9GaWxlPgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXE5v
dGlmaWNhdGlvbnNcTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaCIKKwkJCQkJPgorCQkJ
CTwvRmlsZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xOb3Rp
ZmljYXRpb25zXE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCIK
KwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJ
UHJvY2Vzc1xOb3RpZmljYXRpb25zXE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5LmgiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxVSVByb2Nlc3NcTm90aWZpY2F0aW9uc1xXZWJOb3RpZmljYXRpb24uY3BwIgorCQkJ
CQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9j
ZXNzXE5vdGlmaWNhdGlvbnNcV2ViTm90aWZpY2F0aW9uLmgiCisJCQkJCT4KKwkJCQk8L0ZpbGU+
CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcTm90aWZpY2F0aW9u
c1xXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwIgorCQkJCQk+CisJCQkJPC9GaWxlPgor
CQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXE5vdGlmaWNhdGlvbnNc
V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmgiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJ
PEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcTm90aWZpY2F0aW9uc1xXZWJO
b3RpZmljYXRpb25NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4iCisJCQkJCT4KKwkJCQk8L0ZpbGU+
CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcTm90aWZpY2F0aW9u
c1xXZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHAiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJ
PEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcTm90aWZpY2F0aW9uc1xXZWJO
b3RpZmljYXRpb25Qcm92aWRlci5oIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJPC9GaWx0ZXI+
CiAJCTwvRmlsdGVyPgogCQk8RmlsdGVyCiAJCQlOYW1lPSJQbGF0Zm9ybSIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ29tbW9uLnZzcHJvcHMgYi9Tb3VyY2UvV2ViS2l0
Mi93aW4vV2ViS2l0MkNvbW1vbi52c3Byb3BzCmluZGV4IGNjMTRhZmRmNzJmMmVmZWU1NzdlNGI4
OTZhNDUxM2RlYmIyYzg4MDcuLjgxZDM0ZDkwN2M4NzBhMDc0YWNhOTVkMjQ4ZWQ2YmQ2Mzg0YzI4
OWYgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ29tbW9uLnZzcHJvcHMK
KysrIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDb21tb24udnNwcm9wcwpAQCAtNiw3ICs2
LDcgQEAKIAk+CiAJPFRvb2wKIAkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJQWRkaXRpb25h
bEluY2x1ZGVEaXJlY3Rvcmllcz0iJnF1b3Q7JChQcm9qZWN0RGlyKSZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpXC4uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cUGxhdGZvcm0mcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxQbGF0Zm9ybVxjZyZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpXC4uXFBsYXRmb3JtXENvcmVJUEMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxQbHVn
aW5Qcm9jZXNzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4u
XFNoYXJlZFxjZiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxBUElcYyZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxBUElcY1xjZiZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpXC4uXFNoYXJlZFxBUElcY1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwu
LlxTaGFyZWRcQ29yZUlQQ1N1cHBvcnQmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFy
ZWRcUGx1Z2lucyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxQbHVnaW5zXE5l
dHNjYXBlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXEFQSVxDJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cilcLi5cVUlQcm9jZXNzXEFQSVxDXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJ
UHJvY2Vzc1xBUElcY3BwJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXEFQ
SVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcQXV0aGVudGljYXRp
b24mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcRG93bmxvYWRzJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXExhdW5jaGVyJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcilcLi5cVUlQcm9jZXNzXFBsdWdpbnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KVwuLlxVSVByb2Nlc3Ncd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vz
cyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcV2ViQ29yZVN1cHBvcnQm
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFdlYkNvcmVTdXBwb3J0XHdp
biZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcV2ViUGFnZSZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcV2ViUGFnZVx3aW4mcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEljb25EYXRhYmFzZSZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpXC4uXFdlYlByb2Nlc3NcSW5qZWN0ZWRCdW5kbGUmcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEluamVjdGVkQnVuZGxlXEFQSVxjJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xJbmplY3RlZEJ1bmRsZVxET00mcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEluamVjdGVkQnVuZGxlXHdpbiZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcUGx1Z2lucyZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpXC4uXFdlYlByb2Nlc3NcUGx1Z2luc1xOZXRzY2FwZSZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpXC4uXFdlYlByb2Nlc3Ncd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2Vi
UHJvY2Vzc1xBcHBsaWNhdGlvbkNhY2hlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2Vi
UHJvY2Vzc1xBdXRoZW50aWNhdGlvbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlBy
b2Nlc3NcQ29va2llcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcQ29v
a2llc1xjZiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcRG93bmxvYWRz
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xEb3dubG9hZHNcY2YmcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEZ1bGxTY3JlZW4mcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEdlb2xvY2F0aW9uJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xLZXlWYWx1ZVN0b3JhZ2UmcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXE1lZGlhQ2FjaGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKVwuLlxXZWJQcm9jZXNzXE5vdGlmaWNhdGlvbnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KVwuLlxXZWJQcm9jZXNzXFJlc291cmNlQ2FjaGUmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9u
QnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlcyZxdW90OzsmcXVvdDsk
KENvbmZpZ3VyYXRpb25CdWlsZERpcilcSW5jbHVkZSZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRp
b25CdWlsZERpcilcSW5jbHVkZVxwcml2YXRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVz
RGlyKVxJbmNsdWRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJbmNsdWRlXHBy
aXZhdGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVccHRocmVhZHMm
cXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXEluY2x1ZGVcSmF2YVNjcmlwdENv
cmUmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXEluY2x1ZGVccHJpdmF0ZVxK
YXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVkZVxK
YXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVkZVxw
cml2YXRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGly
KVxJbmNsdWRlXFdlYkNvcmVcRm9yd2FyZGluZ0hlYWRlcnMmcXVvdDs7JnF1b3Q7JChXZWJLaXRM
aWJyYXJpZXNEaXIpXEluY2x1ZGVcV2ViQ29yZVxGb3J3YXJkaW5nSGVhZGVycyZxdW90OyIKKwkJ
QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iJnF1b3Q7JChQcm9qZWN0RGlyKSZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpXC4uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cUGxhdGZv
cm0mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxQbGF0Zm9ybVxjZyZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpXC4uXFBsYXRmb3JtXENvcmVJUEMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KVwuLlxQbHVnaW5Qcm9jZXNzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXHdpbiZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpXC4uXFNoYXJlZFxjZiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxB
UElcYyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxBUElcY1xjZiZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxBUElcY1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKVwuLlxTaGFyZWRcQ29yZUlQQ1N1cHBvcnQmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KVwuLlxTaGFyZWRcUGx1Z2lucyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxQ
bHVnaW5zXE5ldHNjYXBlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXEFQSVxDJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcilcLi5cVUlQcm9jZXNzXEFQSVxDXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpXC4uXFVJUHJvY2Vzc1xBUElcY3BwJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQ
cm9jZXNzXEFQSVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcQXV0
aGVudGljYXRpb24mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcRG93bmxv
YWRzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXExhdW5jaGVyJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXE5vdGlmaWNhdGlvbnMmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcUGx1Z2lucyZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpXC4uXFVJUHJvY2Vzc1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQ
cm9jZXNzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xXZWJDb3JlU3Vw
cG9ydCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcV2ViQ29yZVN1cHBv
cnRcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xXZWJQYWdlJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xXZWJQYWdlXHdpbiZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcSWNvbkRhdGFiYXNlJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xJbmplY3RlZEJ1bmRsZSZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcSW5qZWN0ZWRCdW5kbGVcQVBJXGMmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEluamVjdGVkQnVuZGxlXERPTSZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcSW5qZWN0ZWRCdW5kbGVcd2luJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xQbHVnaW5zJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xQbHVnaW5zXE5ldHNjYXBlJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwu
LlxXZWJQcm9jZXNzXEFwcGxpY2F0aW9uQ2FjaGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwu
LlxXZWJQcm9jZXNzXEF1dGhlbnRpY2F0aW9uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5c
V2ViUHJvY2Vzc1xDb29raWVzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vz
c1xDb29raWVzXGNmJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xEb3du
bG9hZHMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXERvd25sb2Fkc1xj
ZiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcRnVsbFNjcmVlbiZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcR2VvbG9jYXRpb24mcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEtleVZhbHVlU3RvcmFnZSZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcTWVkaWFDYWNoZSZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpXC4uXFdlYlByb2Nlc3NcTm90aWZpY2F0aW9ucyZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpXC4uXFdlYlByb2Nlc3NcUmVzb3VyY2VDYWNoZSZxdW90OzsmcXVvdDskKENvbmZpZ3Vy
YXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzJnF1b3Q7OyZx
dW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxJbmNsdWRlJnF1b3Q7OyZxdW90OyQoQ29uZmln
dXJhdGlvbkJ1aWxkRGlyKVxJbmNsdWRlXHByaXZhdGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJy
YXJpZXNEaXIpXEluY2x1ZGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1
ZGVccHJpdmF0ZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVkZVxwdGhy
ZWFkcyZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcSW5jbHVkZVxKYXZhU2Ny
aXB0Q29yZSZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcSW5jbHVkZVxwcml2
YXRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJbmNs
dWRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJbmNs
dWRlXHByaXZhdGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVp
bGREaXIpXEluY2x1ZGVcV2ViQ29yZVxGb3J3YXJkaW5nSGVhZGVycyZxdW90OzsmcXVvdDskKFdl
YktpdExpYnJhcmllc0RpcilcSW5jbHVkZVxXZWJDb3JlXEZvcndhcmRpbmdIZWFkZXJzJnF1b3Q7
IgogCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iX1VTUkRMTDtXRUJLSVRfRVhQT1JUUztGUkFN
RVdPUktfTkFNRT1XZWJLaXQ7QlVJTERJTkdfV0VCS0lUIgogCQlVc2VQcmVjb21waWxlZEhlYWRl
cj0iMiIKIAkJUHJlY29tcGlsZWRIZWFkZXJUaHJvdWdoPSJXZWJLaXQyUHJlZml4LmgiCmRpZmYg
LS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZmIyODE2ZTIy
ODE5NGRhNzRlZjNkZTRlMjQ5MzFmMmZmYTFhODQzMy4uNjJkMjcxMDAzZTk4ZDJkMGZiNzFlMTQ3
ZWNmNjgyYmUwOTEwNTI5YSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDExLTEyLTA2ICBKb24gTGVlICA8am9ubGVl
QGFwcGxlLmNvbT4KKworICAgICAgICBbV0syXSBBZGQgcGVybWlzc2lvbnMgc3VwcG9ydCAoNzM5
NjApCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzk2
MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTAzNTcwMDg+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIG51bGwgZnVuY3Rpb24gaXRlbSB0byBj
b21wbHkgd2l0aCBhZGRlZCBjYWxsYmFjayB0byBXS1BhZ2VVSUNsaWVudC4KKworICAgICAgICAq
IE1pbmlCcm93c2VyL21hYy9Ccm93c2VyV2luZG93Q29udHJvbGxlci5tOgorICAgICAgICAoLVtC
cm93c2VyV2luZG93Q29udHJvbGxlciBhd2FrZUZyb21OaWJdKToKKyAgICAgICAgKiBXZWJLaXRU
ZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xs
ZXI6OmNyZWF0ZU90aGVyUGFnZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjppbml0
aWFsaXplKToKKwogMjAxMS0xMi0wNiAgQWRhbSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgQWRkIGEgcGlkIHBhcmFtZXRlciB0byBDcmFzaExvZ3MuZmluZF9uZXdlc3RfbG9n
CmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nlci9tYWMvQnJvd3NlcldpbmRvd0NvbnRyb2xs
ZXIubSBiL1Rvb2xzL01pbmlCcm93c2VyL21hYy9Ccm93c2VyV2luZG93Q29udHJvbGxlci5tCmlu
ZGV4IGY3ZTljNjkwMTA2NzdlNGI0MTU0ZTZiNzAwYzQwOGU4ODAwNTdiOTIuLjQ5OTNhYTk5ZDk1
MzVjOWI4NzVlZDkwODgxZTQ2ZTIwZmI0Y2YxMDEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL01pbmlCcm93
c2VyL21hYy9Ccm93c2VyV2luZG93Q29udHJvbGxlci5tCisrKyBiL1Rvb2xzL01pbmlCcm93c2Vy
L21hYy9Ccm93c2VyV2luZG93Q29udHJvbGxlci5tCkBAIC02NjcsNiArNjY3LDcgQEAgLSAodm9p
ZClhd2FrZUZyb21OaWIKICAgICAgICAgMCwgLy8gc2hvdWxkSW50ZXJydXB0SmF2YVNjcmlwdAog
ICAgICAgICBjcmVhdGVOZXdQYWdlLAogICAgICAgICBtb3VzZURpZE1vdmVPdmVyRWxlbWVudCwK
KyAgICAgICAgMCwgLy8gZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3QKICAgICB9OwogICAgIFdLUGFnZVNldFBhZ2VVSUNsaWVudChfd2ViVmlldy5wYWdlUmVmLCAm
dWlDbGllbnQpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApp
bmRleCBjZjcxMTQwZDFhYmY1YjYzMzI0ZWY5NTk0YmU5MjdiMjg0ZWM3Y2I5Li5kZTY4YTI5N2U0
Yjk5MmM0MmI0OWMyYjRhMGQxZTk2ZjE2ODQ2MDI1IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RDb250cm9sbGVyLmNwcApAQCAtMjA0LDYgKzIwNCw3IEBAIFdLUGFnZVJlZiBUZXN0Q29u
dHJvbGxlcjo6Y3JlYXRlT3RoZXJQYWdlKFdLUGFnZVJlZiBvbGRQYWdlLCBXS1VSTFJlcXVlc3RS
ZWYsIFdLCiAgICAgICAgIDAsIC8vIHNob3VsZEludGVycnVwdEphdmFTY3JpcHQKICAgICAgICAg
Y3JlYXRlT3RoZXJQYWdlLAogICAgICAgICAwLCAvLyBtb3VzZURpZE1vdmVPdmVyRWxlbWVudAor
ICAgICAgICAwLCAvLyBkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVz
dAogICAgIH07CiAgICAgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KG5ld1BhZ2UsICZvdGhlclBhZ2VV
SUNsaWVudCk7CiAKQEAgLTM1Niw2ICszNTcsNyBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjppbml0
aWFsaXplKGludCBhcmdjLCBjb25zdCBjaGFyKiBhcmd2W10pCiAgICAgICAgIDAsIC8vIHNob3Vs
ZEludGVycnVwdEphdmFTY3JpcHQKICAgICAgICAgY3JlYXRlT3RoZXJQYWdlLAogICAgICAgICAw
LCAvLyBtb3VzZURpZE1vdmVPdmVyRWxlbWVudAorICAgICAgICAwLCAvLyBkZWNpZGVQb2xpY3lG
b3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdAogICAgIH07CiAgICAgV0tQYWdlU2V0UGFn
ZVVJQ2xpZW50KG1fbWFpbldlYlZpZXctPnBhZ2UoKSwgJnBhZ2VVSUNsaWVudCk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118247</attachid>
            <date>2011-12-07 11:51:07 -0800</date>
            <delta_ts>2011-12-07 12:59:59 -0800</delta_ts>
            <desc>Fix gtk again and adjust some xcodeproj settings and paths</desc>
            <filename>bug-73960-20111207115237.patch</filename>
            <type>text/plain</type>
            <size>145572</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyMTgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMzA5NWYxYWEyYzA0OTIz
NDM4YzdiMmM5N2QxMDIxMjQ1MmM4ODQwYS4uY2RkM2I5YjgwZGI5YjViZmVhN2MyYjM5NzQyM2Zi
MzhiMTQ0Nzc5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzNyBAQAorMjAxMS0xMi0wNiAgSm9u
IExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gQWRkIHBlcm1pc3Npb25z
IHN1cHBvcnQgKDczOTYwKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NzM5NjAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEwMzU3MDA4PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRGVyaXZlZFNvdXJj
ZXMubWFrZTogTW92ZWQgbm90aWZpY2F0aW9uIGZpbGVzIHRvIGl0cyBvd24gZGlyZWN0b3J5LiBO
ZWVkIHRvIGFkZCB0aGF0IHBhdGguCisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOiBOZXcgaGVhZGVyIGFuZCBpbXBsIGZpbGVzLgorICAgICAgICAqIFRhcmdldC5w
cmk6IERpdHRvLgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOiBEaXR0by4KKyAgICAgICAgKiB3
aW4vV2ViS2l0Mi52Y3Byb2o6IERpdHRvLgorICAgICAgICAqIHdpbi9XZWJLaXQyQ29tbW9uLnZz
cHJvcHM6IEFkZCBwYXRoIHRvIE5vdGlmaWNhdGlvbnMgZGlyZWN0b3J5LgorCisgICAgICAgIElt
cGxlbWVudCBwZXJtaXNzaW9uIGZ1bmN0aW9ucywgd2hpY2ggZ28gdGhyb3VnaCBwZXJtaXNzaW9u
IHJlcXVlc3QgbWFuYWdlci4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0
aW9uQ2xpZW50OjpyZXF1ZXN0UGVybWlzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlm
aWNhdGlvbkNsaWVudDo6Y2FuY2VsUmVxdWVzdHNGb3JQZXJtaXNzaW9uKToKKyAgICAgICAgKFdl
YktpdDo6V2ViTm90aWZpY2F0aW9uQ2xpZW50OjpjaGVja1Blcm1pc3Npb24pOgorCisgICAgICAg
IE5ldyBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIgdG8gbWFrZSBhbmQgY2Fu
Y2VsIHBlcm1pc3Npb24gcmVxdWVzdHMsIGFuZCB0byByZXRyaWV2ZSBjdXJyZW50CisgICAgICAg
IHBvbGljeS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6
Z2VuZXJhdGVSZXF1ZXN0SUQpOgorICAgICAgICAoV2ViS2l0OjpOb3RpZmljYXRpb25QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyOjp+Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKToKKyAgICAgICAg
KFdlYktpdDo6Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpzdGFydFJlcXVl
c3QpOiBLZWVwIHRyYWNrIG9mIHRoZSBwcm92aWRlZCBjYWxsYmFjayBvbmNlCisgICAgICAgIHBv
bGljeSBkZWNpc2lvbiBpcyBtYWRlLgorICAgICAgICAoV2ViS2l0OjpOb3RpZmljYXRpb25QZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXI6OmNhbmNlbFJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnBlcm1pc3Npb25MZXZlbCk6IFJl
dHJpZXZlIGxldmVsIHRocm91Z2ggYSBzeW5jaHJvbm91cworICAgICAgICBtZXNzYWdlIHRvIHRo
ZSBwcm94eS4KKyAgICAgICAgKFdlYktpdDo6Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyOjpkaWRSZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKTogSW52b2tl
IHRoZSBjYWxsYmFjay4KKyAgICAgICAgKiBXZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0
Ojppc1JlcXVlc3RJRFZhbGlkKTogTWFrZSBzdXJlIGFueSBwcm92aWRlZCByZXF1ZXN0IElEcyBh
cmUgdmFsaWQuCisKKyAgICAgICAgQWRkZWQgbmV3IE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0IGNsYXNzLgorCisgICAgICAgICogVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0
aW9uUGVybWlzc2lvblJlcXVlc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6Tm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0OjpOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCk6
CisgICAgICAgIChXZWJLaXQ6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0OjphbGxvdyk6
IE5vdGlmeSBtYW5hZ2VyIG9mIGRlY2lzaW9uLgorICAgICAgICAoV2ViS2l0OjpOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdDo6ZGVueSk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDo6aW52YWxpZGF0ZSk6IERpc2Fzc29jaWF0ZSB3aXRo
IG1hbmFnZXIuCisgICAgICAgIChXZWJLaXQ6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
Ojp0eXBlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdC5oOiBBZGRlZC4KKworICAgICAgICBXS0FQSSBzdXBwb3J0IGZvciBO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDoKKworICAgICAgICAqIFNoYXJlZC9BUEkvYy9X
S0Jhc2UuaDoKKyAgICAgICAgKiBTaGFyZWQvQVBJT2JqZWN0Lmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9DL1dLQVBJQ2FzdC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS05vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcDogQWRkZWQuCisgICAgICAgIChXS05vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0R2V0VHlwZUlEKToKKyAgICAgICAgKFdLTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RBbGxvdyk6CisgICAgICAgIChXS05vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0RGVueSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3QuaDogQWRkZWQuCisKKyAgICAgICAgT3RoZXIgYWRkaXRpb25zIHRv
IFdLIEFQSToKKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNhdGlvblByb3Zp
ZGVyLmg6IEFkZGVkIG5ldyBjYWxsYmFjayBmb3IgV0tOb3RpZmljYXRpb25Qcm92aWRlcnMsIHRv
IHJldHVybiBwb2xpY3kKKyAgICAgICAgZm9yIGEgZ2l2ZW4gc2VjdXJpdHkgb3JpZ2luLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaDogQWRkZWQgbmV3IGNhbGxiYWNrIHRvIFdL
UGFnZVVJQ2xpZW50IHRvIGFzayB1c2VyIHRvIGRlY2lkZSBvbiBwb2xpY3kuCisKKyAgICAgICAg
TmV3IE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5IHRvIGNyZWF0ZSBy
ZXF1ZXN0cy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJL
aXQ6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6Ok5vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjppbnZhbGlkYXRlUmVxdWVzdHMp
OgorICAgICAgICAoV2ViS2l0OjpOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eTo6Y3JlYXRlUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6Ok5vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpkaWRSZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lv
bkRlY2lzaW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oOiBBZGRlZC4KKworICAgICAgICBBZGRl
ZCBuZXcgbWVzc2FnZSB0byBub3RpZmljYXRpb24gbWFuYWdlcjogTm90aWZpY2F0aW9uUGVybWlz
c2lvbkxldmVsLCB0byByZXRyaWV2ZSBwb2xpY3kuIFRoZSBjdXJyZW50CisgICAgICAgIEpTIEFQ
SSByZXRyaWV2ZXMgdGhlIHBlcm1pc3Npb24gc3luY2hyb25vdXNseSwgc28gdGhlIG1lc3NhZ2Ug
bmVlZHMgdG8gYmUgc2VudCBzeW5jaHJvbm91c2x5IGFsc28uCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW46
IE1vdmVkIGZyb20gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5vdGlmaWNhdGlvbk1hbmFn
ZXJQcm94eS5tZXNzYWdlcy5pbi4KKyAgICAgICAgKiBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9X
ZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHA6IE1vdmVkIGZyb20gU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcC4KKyAgICAgICAgKFdlYktpdDo6V2Vi
Tm90aWZpY2F0aW9uUHJvdmlkZXI6OnBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25BdE9y
aWdpbik6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlm
aWNhdGlvblByb3ZpZGVyLmg6IE1vdmVkIGZyb20gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
Yk5vdGlmaWNhdGlvblByb3ZpZGVyLmguCisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZVN5
bmNNZXNzYWdlKTogQm9pbGVycGxhdGUgdG8gZm9yd2FyZCBtZXNzYWdlcyB0byBub3RpZmljYXRp
b24gbWFuYWdlci4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlm
aWNhdGlvbk1hbmFnZXJQcm94eS5jcHA6IE1vdmVkIGZyb20gU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAuCisgICAgICAgIChXZWJLaXQ6Oldl
Yk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Tm90aWZpY2F0aW9uTWFuYWdlclByb3h5OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6On5XZWJOb3RpZmlj
YXRpb25NYW5hZ2VyUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5h
Z2VyUHJveHk6OmludmFsaWRhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25N
YW5hZ2VyUHJveHk6OmluaXRpYWxpemVQcm92aWRlcik6CisgICAgICAgIChXZWJLaXQ6OldlYk5v
dGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6c2hvdyk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6Y2FuY2VsKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5OjpkaWREZXN0cm95Tm90
aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5
Ojpub3RpZmljYXRpb25QZXJtaXNzaW9uTGV2ZWwpOiBSZXRyaWV2ZSB0aGUgcG9saWN5IGZyb20g
dGhlIHByb3ZpZGVyLgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJv
eHk6OnByb3ZpZGVyRGlkU2hvd05vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYk5v
dGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6cHJvdmlkZXJEaWRDbGlja05vdGlmaWNhdGlvbik6Cisg
ICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6cHJvdmlkZXJEaWRD
bG9zZU5vdGlmaWNhdGlvbnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dl
Yk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oOiBNb3ZlZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaC4KKyAgICAgICAgKFdlYktpdDo6
V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5OjpjbGVhckNvbnRleHQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OnR5cGUpOgorCisgICAgICAgIEFkZGVk
IE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5IHRvIFdlYlBhZ2VQcm94
eSwgdG8gYWxsb3cgYSByZXF1ZXN0IGZvciBwZXJtaXNzaW9uIHRvCisgICAgICAgIGdvIHRocm91
Z2ggdG8gdGhlIFVJIGNsaWVudC4gQWRkZWQgbmV3IG1lc3NhZ2UgdG8gV2ViUGFnZVByb3h5LCBS
ZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OldlYlBhZ2VQcm94
eSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y2xvc2UpOiBJbnZhbGlkYXRlIHBl
bmRpbmcgcmVxdWVzdHMuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cHJvY2Vzc0Rp
ZENyYXNoKTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVzdE5v
dGlmaWNhdGlvblBlcm1pc3Npb24pOiBGb3J3YXJkIHJlcXVlc3QgdG8gVUkgY2xpZW50LgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlVJQ2xpZW50
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVUlDbGllbnQ6OmRlY2lkZVBvbGljeUZvck5vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViVUlDbGll
bnQuaDoKKworICAgICAgICBBZGRlZCBuZXcgbWVzc2FnZSBEaWRSZWNlaXZlTm90aWZpY2F0aW9u
UGVybWlzc2lvbkRlY2lzaW9uLiBUaGUgV2ViUGFnZSBmb3J3YXJkcyB0aGUgbWVzc2FnZSB0byB0
aGUKKyAgICAgICAgcGVybWlzc2lvbiByZXF1ZXN0IG1hbmFnZXIuCisKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjogQWRkZWQgbmV3IG1lc3NhZ2UgRGlk
UmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25EZWNpc2lvbgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6bm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKTogQ3JlYXRlIG1hbmFnZXIgb24gcmVxdWVz
dC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkUmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1p
c3Npb25EZWNpc2lvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoK
KworICAgICAgICBNb3ZpbmcgZmlsZXMgdG8gTm90aWZpY2F0aW9ucy8gc3ViZGlyZWN0b3J5Lgor
CisgICAgICAgICogVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uLmNwcDog
TW92ZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9uLmNwcC4K
KyAgICAgICAgKiBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb24uaDogTW92
ZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9uLmguCisKIDIw
MTEtMTItMDYgIEFsZXhhbmRlciBGw6Zyw7h5ICA8YWxleGFuZGVyLmZhZXJveUBub2tpYS5jb20+
CiAKICAgICAgICAgW1F0XSBGaXggYXNzZXJ0aW9uIGluIFF0Vmlld3BvcnRJbnRlcmFjdGlvbkVu
Z2luZS5jcHA6NDY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9FbmdsaXNoLmxwcm9qL0xv
Y2FsaXphYmxlLnN0cmluZ3MgYi9Tb3VyY2UvV2ViQ29yZS9FbmdsaXNoLmxwcm9qL0xvY2FsaXph
YmxlLnN0cmluZ3MKaW5kZXggMjQ1ZGFjYjA0NDdjNDVkNGQ1ZWNkYjhiMzI1ZWJkN2I2M2QzOGU5
Zi4uMTE2MDZjMzEyOTlkYzlmN2QzODVkZWVkYjQ2ODRmMWYxNThhMDdmZCAxMDA2NDQKR0lUIGJp
bmFyeSBwYXRjaApkZWx0YSAyMDUKemNtYlFSaW4oRDheTT16THlhNWJGNDU8dm9LJUI9PUdXaVhN
e0E2YlhwP1Z2SmUxLXlzNXs2NzVveVRDdXBhNWkqCnowTStDSVJmNT1nS3IjYENaTk5IbmZIS0tJ
Yz9GPCtETUpvZVVqZEwjMT94LSZ2dk1JZTBNJSMhXzRfamYxNmQlbQp3YX5MV2FHPVhkXzI3THhE
MXw8ZW5oNzwrYDYkVmVaYnhKQDxUT2Z1P0EhSGA2R25VPGFsZihRQjBJUS1Ye3J+Xn4KCmRlbHRh
IDE4CmFjbVpveiEjclVYXk09ekxsaD5OP1o5ZDZxZWcqKGNCP3ROZAoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUHJlc2VudGVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvblByZXNlbnRlci5oCmluZGV4IDJj
ZmUwNjdiNWRkODNmOTc1OGZlZGYzZTIyMmQ0NGZmZWI1MTdmZTYuLjU1NTQ2OTI1ODljODliM2Fl
MzZjYTU5YmIwYWM4MmJjYTE3NjVhOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL25vdGlm
aWNhdGlvbnMvTm90aWZpY2F0aW9uUHJlc2VudGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbm90
aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QcmVzZW50ZXIuaApAQCAtNDIsNiArNDIsNyBAQCBjbGFz
cyBOb3RpZmljYXRpb247CiBjbGFzcyBLVVJMOwogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dDsKIAorLy8gRklYTUU6IFJlbmFtZSB0byBOb3RpZmljYXRpb25DbGllbnQsIHRvIGNvbmZvcm0g
dG8gbmFtaW5nIGNvbnZlbnRpb25zIG9mIHRoZSByZXN0IG9mIFdlYkNvcmUuCiBjbGFzcyBOb3Rp
ZmljYXRpb25QcmVzZW50ZXIgewogCiBwdWJsaWM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMubWFr
ZQppbmRleCBhMzAwZjg0YmQ5YmQ5M2U1ZWUyNzYzODEwODA2MTE1MzI1ZDFhMjg1Li5lMjI3N2U0
NWM2ZmVkOTkzZTBhZTUyNjhlNDUyMDY5NTM5ODFiNDdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKQEAgLTQwLDYgKzQwLDcgQEAgVlBBVEggPSBcCiAgICAgJChXZWJLaXQyKS9XZWJQ
cm9jZXNzIFwKICAgICAkKFdlYktpdDIpL1VJUHJvY2VzcyBcCiAgICAgJChXZWJLaXQyKS9VSVBy
b2Nlc3MvRG93bmxvYWRzIFwKKyAgICAkKFdlYktpdDIpL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25z
IFwKICAgICAkKFdlYktpdDIpL1VJUHJvY2Vzcy9QbHVnaW5zIFwKICMKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUuYW0gYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmls
ZS5hbQppbmRleCBjODgxNWYwZjdjOTFjNWUwYWY3ZTZiZjUzMTMyZGRmMGIwZGNkNzUyLi40NmNj
MTVhMGZhZGZkYzc4ZjI3NjhiMmQ4YWRjMThkNTkwYmY3MTVmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9HTlVtYWtlZmlsZS5hbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5h
bQpAQCAtNTcsMTEgKzU3LDEyIEBAIGxpYndlYmtpdDJndGtfQFdFQktJVEdUS19BUElfTUFKT1Jf
VkVSU0lPTkBfQFdFQktJVEdUS19BUElfTUlOT1JfVkVSU0lPTkBfbGFfSEVBCiAJJChXZWJLaXQy
KS9VSVByb2Nlc3MvQVBJL0MvV0tJbnNwZWN0b3IuaCBcCiAJJChXZWJLaXQyKS9VSVByb2Nlc3Mv
QVBJL0MvV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmggXAogCSQoV2ViS2l0MikvVUlQcm9jZXNz
L0FQSS9DL1dLTWVkaWFDYWNoZU1hbmFnZXIuaCBcCisJJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJ
L0MvV0tOYXRpdmVFdmVudC5oIFwKKwkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9XS05hdmln
YXRpb25EYXRhLmggXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9u
LmggXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9uTWFuYWdlci5o
IFwKKwkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0LmggXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9uUHJv
dmlkZXIuaCBcCi0JJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0MvV0tOYXRpdmVFdmVudC5oIFwK
LQkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9XS05hdmlnYXRpb25EYXRhLmggXAogCSQoV2Vi
S2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLT3BlblBhbmVsUGFyYW1ldGVycy5oIFwKIAkkKFdlYktp
dDIpL1VJUHJvY2Vzcy9BUEkvQy9XS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyLmggXAogCSQoV2Vi
S2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUdyb3VwLmggXApAQCAtNDgzLDYgKzQ4NCw4IEBA
IGxpYndlYmtpdDJndGtfQFdFQktJVEdUS19BUElfTUFKT1JfVkVSU0lPTkBfQFdFQktJVEdUS19B
UElfTUlOT1JfVkVSU0lPTkBfbGFfU09VCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLTm90aWZpY2F0aW9uLmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS05v
dGlmaWNhdGlvbk1hbmFnZXIuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tOb3RpZmljYXRpb25NYW5hZ2VyLmggXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Yy9XS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcCBcCisJU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9jL1dLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaCBcCiAJU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9uUHJvdmlkZXIuaCBcCiAJ
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLT3BlblBhbmVsUGFyYW1ldGVycy5jcHAg
XAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS09wZW5QYW5lbFBhcmFtZXRlcnMu
aCBcCkBAIC01NzksNiArNTgyLDE2IEBAIGxpYndlYmtpdDJndGtfQFdFQktJVEdUS19BUElfTUFK
T1JfVkVSU0lPTkBfQFdFQktJVEdUS19BUElfTUlOT1JfVkVSU0lPTkBfbGFfU09VCiAJU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oIFwKIAlTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvVGhyZWFkTGF1bmNoZXIuY3BwIFwKIAlTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvVGhyZWFkTGF1bmNoZXIuaCBcCisJU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3QuY3BwIFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmlj
YXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oIFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90
aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAg
XAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbi5jcHAgXAorCVNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbi5oIFwKKwlTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuY3Bw
IFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRp
b25NYW5hZ2VyUHJveHkuaCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlv
bnMvV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwIFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25Qcm92aWRlci5oIFwKIAlTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW5JbmZvU3RvcmUuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW5JbmZvU3RvcmUuaCBcCkBAIC02NTcsMTIgKzY3MCw2IEBAIGxpYndlYmtp
dDJndGtfQFdFQktJVEdUS19BUElfTUFKT1JfVkVSU0lPTkBfQFdFQktJVEdUS19BUElfTUlOT1Jf
VkVSU0lPTkBfbGFfU09VCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYktleVZhbHVlU3Rv
cmFnZU1hbmFnZXJQcm94eS5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTWVkaWFD
YWNoZU1hbmFnZXJQcm94eS5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJNZWRp
YUNhY2hlTWFuYWdlclByb3h5LmggXAotCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOb3Rp
ZmljYXRpb24uY3BwIFwKLQlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9u
LmggXAotCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJv
eHkuY3BwIFwKLQlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9uTWFuYWdl
clByb3h5LmggXAotCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOb3RpZmljYXRpb25Qcm92
aWRlci5jcHAgXAotCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOb3RpZmljYXRpb25Qcm92
aWRlci5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTG9hZGVyQ2xpZW50LmNwcCBc
CiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkxvYWRlckNsaWVudC5oIFwKIAlTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViTmF2aWdhdGlvbkRhdGEuY3BwIFwKQEAgLTc5Myw2ICs4MDAs
OCBAQCBsaWJ3ZWJraXQyZ3RrX0BXRUJLSVRHVEtfQVBJX01BSk9SX1ZFUlNJT05AX0BXRUJLSVRH
VEtfQVBJX01JTk9SX1ZFUlNJT05AX2xhX1NPVQogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
S2V5VmFsdWVTdG9yYWdlL1dlYktleVZhbHVlU3RvcmFnZU1hbmFnZXIuaCBcCiAJU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9NZWRpYUNhY2hlL1dlYk1lZGlhQ2FjaGVNYW5hZ2VyLmNwcCBcCiAJ
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYUNhY2hlL1dlYk1lZGlhQ2FjaGVNYW5hZ2Vy
LmggXAorCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwIFwKKwlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgg
XAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRp
b25NYW5hZ2VyLmNwcCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25z
L1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuaCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Q
bHVnaW5zL05ldHNjYXBlL0pTTlBNZXRob2QuY3BwIFwKQEAgLTkzMSw2ICs5NDAsNyBAQCBsaWJ3
ZWJraXQyZ3RrX0BXRUJLSVRHVEtfQVBJX01BSk9SX1ZFUlNJT05AX0BXRUJLSVRHVEtfQVBJX01J
Tk9SX1ZFUlNJT05AX2xhX0NQUAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9ndGsgXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlciBc
CiAJLUkkKHNyY2RpcikvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL2d0ayBcCisJ
LUkkKHNyY2RpcikvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMgXAogCS1J
JChzcmNkaXIpL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zIFwKIAktSSQoc3JjZGly
KS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9ndGsgXAogCS1JJChzcmNkaXIpL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MgXApAQCAtMTA1Nyw2ICsxMDY3LDcgQEAgdnBhdGggJS5t
ZXNzYWdlcy5pbiA9IFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlIFwK
IAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9Eb3dubG9hZHMgXAogCSQoV2ViS2l0MikvVUlQcm9jZXNz
L0dlb2xvY2F0aW9uIFwKKwkkKFdlYktpdDIpL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zIFwKIAkk
KFdlYktpdDIpL1VJUHJvY2Vzcy9QbHVnaW5zIFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9SZXNv
dXJjZUNhY2hlIFwKIAkkKFdlYktpdDIpL1dlYlByb2Nlc3MgXApAQCAtMTQ1MSw2ICsxNDYyLDcg
QEAgRVhUUkFfRElTVCArPSBcCiAJJChzaGVsbCBscyAkKFdlYktpdDIpL1NoYXJlZC9QbHVnaW5z
LyouaW4pIFwKIAkkKHNoZWxsIGxzICQoV2ViS2l0MikvVUlQcm9jZXNzLyouaW4pIFwKIAkkKHNo
ZWxsIGxzICQoV2ViS2l0MikvVUlQcm9jZXNzL0Rvd25sb2Fkcy8qLmluKSBcCisJJChzaGVsbCBs
cyAkKFdlYktpdDIpL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zLyouaW4pIFwKIAkkKHNoZWxsIGxz
ICQoV2ViS2l0MikvVUlQcm9jZXNzL1BsdWdpbnMvKi5pbikgXAogCSQoc2hlbGwgbHMgJChXZWJL
aXQyKS9XZWJQcm9jZXNzLyouaW4pIFwKIAkkKHNoZWxsIGxzICQoV2ViS2l0MikvV2ViUHJvY2Vz
cy9BcHBsaWNhdGlvbkNhY2hlLyouaW4pIFwKQEAgLTE0NjEsNiArMTQ3Myw3IEBAIEVYVFJBX0RJ
U1QgKz0gXAogCSQoc2hlbGwgbHMgJChXZWJLaXQyKS9XZWJQcm9jZXNzL0ljb25EYXRhYmFzZS8q
LmluKSBcCiAJJChzaGVsbCBscyAkKFdlYktpdDIpL1dlYlByb2Nlc3MvS2V5VmFsdWVTdG9yYWdl
LyouaW4pIFwKIAkkKHNoZWxsIGxzICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9NZWRpYUNhY2hlLyou
aW4pIFwKKwkkKHNoZWxsIGxzICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zLyou
aW4pIFwKIAkkKHNoZWxsIGxzICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9QbHVnaW5zLyouaW4pIFwK
IAkkKHNoZWxsIGxzICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9SZXNvdXJjZUNhY2hlLyouaW4pIFwK
IAkkKHNoZWxsIGxzICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC8qLmluKSBc
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKaW5kZXggNmNmNGYwZjAzYjcwYTg3NjUy
MGJiZTI2N2M1ZDhiODIyMmM1OTE5YS4uYWRiY2U2ZDY4NGI2NjhkZDAxMDM5YTJmNDgxYWZlZmM0
YjY0ZTllYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaApAQCAtOTcsNiArOTcs
NyBAQCB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS01lZGlhQ2FjaGVNYW5hZ2VyKiBXS01l
ZGlhQ2FjaGVNYW5hZ2VyUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tOYXZpZ2F0
aW9uRGF0YSogV0tOYXZpZ2F0aW9uRGF0YVJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1
ZVdLTm90aWZpY2F0aW9uKiBXS05vdGlmaWNhdGlvblJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0
IE9wYXF1ZVdLTm90aWZpY2F0aW9uTWFuYWdlciogV0tOb3RpZmljYXRpb25NYW5hZ2VyUmVmOwor
dHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVz
dCogV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdFJlZjsKIHR5cGVkZWYgY29uc3Qgc3Ry
dWN0IE9wYXF1ZVdLTm90aWZpY2F0aW9uUHJvdmlkZXIqIFdLTm90aWZpY2F0aW9uUHJvdmlkZXJS
ZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS09wZW5QYW5lbFBhcmFtZXRlcnMqIFdL
T3BlblBhbmVsUGFyYW1ldGVyc1JlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLT3Bl
blBhbmVsUmVzdWx0TGlzdGVuZXIqIFdLT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJSZWY7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmggYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQVBJT2JqZWN0LmgKaW5kZXggZGVjYmRiOTdhN2M2OTEyMzAxOTRiMmMxNjliMjUx
NjMwN2Q3MjU5Ny4uMjljNzI2ZDA3ZTUzYzlkYWM3ZmNjMWRjOTQ5ODhlZjAyNjRmZDIyYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaApAQCAtOTEsNiArOTEsNyBAQCBwdWJsaWM6CiAgICAg
ICAgIFR5cGVOYXZpZ2F0aW9uRGF0YSwKICAgICAgICAgVHlwZU5vdGlmaWNhdGlvbiwKICAgICAg
ICAgVHlwZU5vdGlmaWNhdGlvbk1hbmFnZXIsCisgICAgICAgIFR5cGVOb3RpZmljYXRpb25QZXJt
aXNzaW9uUmVxdWVzdCwKICAgICAgICAgVHlwZU9wZW5QYW5lbFBhcmFtZXRlcnMsCiAgICAgICAg
IFR5cGVPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lciwKICAgICAgICAgVHlwZVBhZ2UsCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpIGIvU291cmNlL1dlYktpdDIvVGFyZ2V0LnBy
aQppbmRleCA5NzY5MTRlNTliOGQ0NTE1YmU2NjIwZjllMGI0ZTYyNGM2M2ViYmIyLi5lMTg4NTkx
OWIwZWI0MzFiMDYzMjBhODdkODA5OTNiNjA5NzNkMjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKQEAgLTE1Niw2
ICsxNTYsNyBAQCBIRUFERVJTICs9IFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0aW9u
RGF0YS5oIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tOb3RpZmljYXRpb24uaCBcCiAgICAgVUlQ
cm9jZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9uTWFuYWdlci5oIFwKKyAgICBVSVByb2Nlc3MvQVBJ
L0MvV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oIFwKICAgICBVSVByb2Nlc3MvQVBJ
L0MvV0tOb3RpZmljYXRpb25Qcm92aWRlci5oIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQYWdl
LmggXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VHcm91cC5oIFwKQEAgLTE5Myw2ICsxOTQs
MTEgQEAgSEVBREVSUyArPSBcCiAgICAgVUlQcm9jZXNzL0dlb2xvY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RQcm94eS5oIFwKICAgICBVSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmgg
XAogICAgIFVJUHJvY2Vzcy9MYXVuY2hlci9UaHJlYWRMYXVuY2hlci5oIFwKKyAgICBVSVByb2Nl
c3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oIFwKKyAgICBV
SVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eS5oIFwKKyAgICBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb24u
aCBcCisgICAgVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclBy
b3h5LmggXAorICAgIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvblByb3Zp
ZGVyLmggXAogICAgIFVJUHJvY2Vzcy9QYWdlQ2xpZW50LmggXAogICAgIFVJUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpbkluZm9TdG9yZS5oIFwKICAgICBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9j
ZXNzUHJveHkuaCBcCkBAIC0yMzEsOSArMjM3LDYgQEAgSEVBREVSUyArPSBcCiAgICAgVUlQcm9j
ZXNzL1dlYkxvYWRlckNsaWVudC5oIFwKICAgICBVSVByb2Nlc3MvV2ViTWVkaWFDYWNoZU1hbmFn
ZXJQcm94eS5oIFwKICAgICBVSVByb2Nlc3MvV2ViTmF2aWdhdGlvbkRhdGEuaCBcCi0gICAgVUlQ
cm9jZXNzL1dlYk5vdGlmaWNhdGlvbi5oIFwKLSAgICBVSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9u
TWFuYWdlclByb3h5LmggXAotICAgIFVJUHJvY2Vzcy9XZWJOb3RpZmljYXRpb25Qcm92aWRlci5o
IFwKICAgICBVSVByb2Nlc3MvV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eS5oIFwKICAg
ICBVSVByb2Nlc3MvV2ViUGFnZUNvbnRleHRNZW51Q2xpZW50LmggXAogICAgIFVJUHJvY2Vzcy9X
ZWJQYWdlR3JvdXAuaCBcCkBAIC0zMDMsNiArMzA2LDcgQEAgSEVBREVSUyArPSBcCiAgICAgV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlQ29kZXJzLmgg
XAogICAgIFdlYlByb2Nlc3MvS2V5VmFsdWVTdG9yYWdlL1dlYktleVZhbHVlU3RvcmFnZU1hbmFn
ZXIuaCBcCiAgICAgV2ViUHJvY2Vzcy9NZWRpYUNhY2hlL1dlYk1lZGlhQ2FjaGVNYW5hZ2VyLmgg
XAorICAgIFdlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXIuaCBcCiAgICAgV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNh
dGlvbk1hbmFnZXIuaCBcCiAgICAgV2ViUHJvY2Vzcy9SZXNvdXJjZUNhY2hlL1dlYlJlc291cmNl
Q2FjaGVNYW5hZ2VyLmggXAogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QTWV0
aG9kLmggXApAQCAtNDc0LDYgKzQ3OCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIFVJUHJvY2Vzcy9B
UEkvQy9XS0luc3BlY3Rvci5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNhdGlv
bi5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNhdGlvbk1hbmFnZXIuY3BwIFwK
KyAgICBVSVByb2Nlc3MvQVBJL0MvV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5jcHAg
XAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS09wZW5QYW5lbFBhcmFtZXRlcnMuY3BwIFwKICAgICBV
SVByb2Nlc3MvQVBJL0MvV0tPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5jcHAgXAogICAgIFVJUHJv
Y2Vzcy9BUEkvQy9XS05hdmlnYXRpb25EYXRhLmNwcCBcCkBAIC01MDcsNiArNTEyLDExIEBAIFNP
VVJDRVMgKz0gXAogICAgIFVJUHJvY2Vzcy9MYXVuY2hlci9UaHJlYWRMYXVuY2hlci5jcHAgXAog
ICAgIFVJUHJvY2Vzcy9MYXVuY2hlci9xdC9Qcm9jZXNzTGF1bmNoZXJRdC5jcHAgXAogICAgIFVJ
UHJvY2Vzcy9MYXVuY2hlci9xdC9UaHJlYWRMYXVuY2hlclF0LmNwcCBcCisgICAgVUlQcm9jZXNz
L05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuY3BwIFwKKyAgICBV
SVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eS5jcHAgXAorICAgIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlv
bi5jcHAgXAorICAgIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFn
ZXJQcm94eS5jcHAgXAorICAgIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlv
blByb3ZpZGVyLmNwcCBcCiAgICAgVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luSW5mb1N0b3JlLmNw
cCBcCiAgICAgVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcCBcCiAgICAg
VUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc01hbmFnZXIuY3BwIFwKQEAgLTU0NSw5ICs1
NTUsNiBAQCBTT1VSQ0VTICs9IFwKICAgICBVSVByb2Nlc3MvV2ViTG9hZGVyQ2xpZW50LmNwcCBc
CiAgICAgVUlQcm9jZXNzL1dlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHkuY3BwIFwKICAgICBVSVBy
b2Nlc3MvV2ViTmF2aWdhdGlvbkRhdGEuY3BwIFwKLSAgICBVSVByb2Nlc3MvV2ViTm90aWZpY2F0
aW9uLmNwcCBcCi0gICAgVUlQcm9jZXNzL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAg
XAotICAgIFVJUHJvY2Vzcy9XZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHAgXAogICAgIFVJUHJv
Y2Vzcy9XZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5LmNwcCBcCiAgICAgVUlQcm9jZXNz
L1dlYlBhZ2VDb250ZXh0TWVudUNsaWVudC5jcHAgXAogICAgIFVJUHJvY2Vzcy9XZWJQYWdlR3Jv
dXAuY3BwIFwKQEAgLTYzMyw2ICs2NDAsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBXZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL3F0L0luamVjdGVkQnVuZGxlUXQuY3BwIFwKICAgICBXZWJQcm9jZXNz
L0tleVZhbHVlU3RvcmFnZS9XZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmNwcCBcCiAgICAgV2Vi
UHJvY2Vzcy9NZWRpYUNhY2hlL1dlYk1lZGlhQ2FjaGVNYW5hZ2VyLmNwcCBcCisgICAgV2ViUHJv
Y2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5j
cHAgXAogICAgIFdlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2Vy
LmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9SZXNvdXJjZUNhY2hlL1dlYlJlc291cmNlQ2FjaGVNYW5h
Z2VyLmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBNZXRob2QuY3Bw
IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3Qu
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAppbmRleCA5Nzc3
YzFhY2FmNDhjOTBmZjQ0ZTNmOTVjMmJjNWFkYTJjMzViMmQ4Li4wZTcxNzVhNDI4Zjc4MDgyMGM4
OTcxZGUzOWM5NjUxMGFhYWZhYzkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tBUElDYXN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLQVBJQ2FzdC5oCkBAIC01Miw2ICs1Miw3IEBAIGNsYXNzIEF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlUHJveHk7CiBjbGFzcyBBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXI7CiBjbGFzcyBE
b3dubG9hZFByb3h5OwogY2xhc3MgR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFByb3h5Owor
Y2xhc3MgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q7CiBjbGFzcyBXZWJBcHBsaWNhdGlv
bkNhY2hlTWFuYWdlclByb3h5OwogY2xhc3MgV2ViQmFja0ZvcndhcmRMaXN0OwogY2xhc3MgV2Vi
QmFja0ZvcndhcmRMaXN0SXRlbTsKQEAgLTEwOCw2ICsxMDksNyBAQCBXS19BRERfQVBJX01BUFBJ
TkcoV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUmVmLCBXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2Vy
UHJveHkpCiBXS19BRERfQVBJX01BUFBJTkcoV0tNZWRpYUNhY2hlTWFuYWdlclJlZiwgV2ViTWVk
aWFDYWNoZU1hbmFnZXJQcm94eSkKIFdLX0FERF9BUElfTUFQUElORyhXS05hdmlnYXRpb25EYXRh
UmVmLCBXZWJOYXZpZ2F0aW9uRGF0YSkKIFdLX0FERF9BUElfTUFQUElORyhXS05vdGlmaWNhdGlv
bk1hbmFnZXJSZWYsIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eSkKK1dLX0FERF9BUElfTUFQ
UElORyhXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0UmVmLCBOb3RpZmljYXRpb25QZXJt
aXNzaW9uUmVxdWVzdCkKIFdLX0FERF9BUElfTUFQUElORyhXS05vdGlmaWNhdGlvblByb3ZpZGVy
UmVmLCBXZWJOb3RpZmljYXRpb25Qcm92aWRlcikKIFdLX0FERF9BUElfTUFQUElORyhXS05vdGlm
aWNhdGlvblJlZiwgV2ViTm90aWZpY2F0aW9uKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLT3BlblBh
bmVsUGFyYW1ldGVyc1JlZiwgV2ViT3BlblBhbmVsUGFyYW1ldGVycykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41OTYzNDhkNzI2ZWRjNDJiMGM3NzA0MGI5
OTVjYzg4N2ZlMWU1NGFjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuY3BwCkBAIC0wLDAgKzEs
NDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV0tOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oIgorCisjaW5jbHVkZSAiTm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3QuaCIKKyNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKwordXNpbmcgbmFtZXNw
YWNlIFdlYktpdDsKKworV0tUeXBlSUQgV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdEdl
dFR5cGVJRCgpCit7CisgICAgcmV0dXJuIHRvQVBJKE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0OjpBUElUeXBlKTsKK30KKwordm9pZCBXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
QWxsb3coV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdFJlZiBub3RpZmljYXRpb25QZXJt
aXNzaW9uUmVxdWVzdCkKK3sKKyAgICByZXR1cm4gdG9JbXBsKG5vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0KS0+YWxsb3coKTsKK30KKwordm9pZCBXS05vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0RGVueShXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0UmVmIG5vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0KQoreworICAgIHJldHVybiB0b0ltcGwobm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3QpLT5kZW55KCk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Qu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4xOTQ3YTA2YWFiYWUyOTUxNWQ1ZDczZDA0MjA0ZDViMzkzYmYxODE3Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2lmbmRlZiBXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0X2gKKyNkZWZpbmUgV0tOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdF9oCisKKyNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5o
PgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKK1dLX0VYUE9S
VCBXS1R5cGVJRCBXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0R2V0VHlwZUlEKCk7CisK
K1dLX0VYUE9SVCB2b2lkIFdLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RBbGxvdyhXS05v
dGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0UmVmIG5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0KTsKK1dLX0VYUE9SVCB2b2lkIFdLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3REZW55
KFdLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RSZWYgbm90aWZpY2F0aW9uUGVybWlzc2lv
blJlcXVlc3QpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLy8g
V0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tOb3RpZmljYXRpb25Qcm92aWRlci5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9uUHJvdmlkZXIuaAppbmRleCA2ZmE2
NWJiZTdlYjk0YTZhNThkNGMxZjJkNGY3ZjdiNDYzYWUwZDI4Li43MDQ4MTNmMWNmOWIxMmY1Yzlh
OTFmMTcyNzIyNzEwYjg2MjUwNjFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tOb3RpZmljYXRpb25Qcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNhdGlvblByb3ZpZGVyLmgKQEAgLTM1LDE3ICszNSwxOSBA
QCBleHRlcm4gIkMiIHsKIHR5cGVkZWYgdm9pZCAoKldLTm90aWZpY2F0aW9uUHJvdmlkZXJTaG93
Q2FsbGJhY2spKFdLTm90aWZpY2F0aW9uUmVmIG5vdGlmaWNhdGlvbiwgY29uc3Qgdm9pZCogY2xp
ZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS05vdGlmaWNhdGlvblByb3ZpZGVyQ2FuY2VsQ2Fs
bGJhY2spKFdLTm90aWZpY2F0aW9uUmVmIG5vdGlmaWNhdGlvbiwgY29uc3Qgdm9pZCogY2xpZW50
SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS05vdGlmaWNhdGlvblByb3ZpZGVyRGlkRGVzdHJveU5v
dGlmaWNhdGlvbkNhbGxiYWNrKShXS05vdGlmaWNhdGlvblJlZiBub3RpZmljYXRpb24sIGNvbnN0
IHZvaWQqIGNsaWVudEluZm8pOwordHlwZWRlZiBpbnQgKCpXS05vdGlmaWNhdGlvblByb3ZpZGVy
UG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvbkF0T3JpZ2luQ2FsbGJhY2spKFdLU2VjdXJp
dHlPcmlnaW5SZWYgb3JpZ2luLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9p
ZCAoKldLTm90aWZpY2F0aW9uUHJvdmlkZXJBZGROb3RpZmljYXRpb25NYW5hZ2VyQ2FsbGJhY2sp
KFdLTm90aWZpY2F0aW9uTWFuYWdlclJlZiBtYW5hZ2VyLCBjb25zdCB2b2lkKiBjbGllbnRJbmZv
KTsKIHR5cGVkZWYgdm9pZCAoKldLTm90aWZpY2F0aW9uUHJvdmlkZXJSZW1vdmVOb3RpZmljYXRp
b25NYW5hZ2VyQ2FsbGJhY2spKFdLTm90aWZpY2F0aW9uTWFuYWdlclJlZiBtYW5hZ2VyLCBjb25z
dCB2b2lkKiBjbGllbnRJbmZvKTsKIAogc3RydWN0IFdLTm90aWZpY2F0aW9uUHJvdmlkZXIgewot
ICAgIGludCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB2ZXJzaW9uOwotICAgIGNvbnN0IHZvaWQqICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjbGllbnRJbmZvOwotICAgIFdLTm90aWZpY2F0aW9uUHJvdmlk
ZXJTaG93Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICBzaG93OwotICAgIFdLTm90aWZp
Y2F0aW9uUHJvdmlkZXJDYW5jZWxDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICBjYW5jZWw7
Ci0gICAgV0tOb3RpZmljYXRpb25Qcm92aWRlckRpZERlc3Ryb3lOb3RpZmljYXRpb25DYWxsYmFj
ayAgICAgIGRpZERlc3Ryb3lOb3RpZmljYXRpb247Ci0gICAgV0tOb3RpZmljYXRpb25Qcm92aWRl
ckFkZE5vdGlmaWNhdGlvbk1hbmFnZXJDYWxsYmFjayAgICAgIGFkZE5vdGlmaWNhdGlvbk1hbmFn
ZXI7Ci0gICAgV0tOb3RpZmljYXRpb25Qcm92aWRlclJlbW92ZU5vdGlmaWNhdGlvbk1hbmFnZXJD
YWxsYmFjayAgIHJlbW92ZU5vdGlmaWNhdGlvbk1hbmFnZXI7CisgICAgaW50ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZl
cnNpb247CisgICAgY29uc3Qgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudEluZm87CisgICAgV0tOb3RpZmljYXRpb25Q
cm92aWRlclNob3dDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNo
b3c7CisgICAgV0tOb3RpZmljYXRpb25Qcm92aWRlckNhbmNlbENhbGxiYWNrICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNhbmNlbDsKKyAgICBXS05vdGlmaWNhdGlvblByb3ZpZGVy
RGlkRGVzdHJveU5vdGlmaWNhdGlvbkNhbGxiYWNrICAgICAgICAgICAgICAgICAgZGlkRGVzdHJv
eU5vdGlmaWNhdGlvbjsKKyAgICBXS05vdGlmaWNhdGlvblByb3ZpZGVyUG9saWN5Rm9yTm90aWZp
Y2F0aW9uUGVybWlzc2lvbkF0T3JpZ2luQ2FsbGJhY2sgcG9saWN5Rm9yTm90aWZpY2F0aW9uUGVy
bWlzc2lvbkF0T3JpZ2luOworICAgIFdLTm90aWZpY2F0aW9uUHJvdmlkZXJBZGROb3RpZmljYXRp
b25NYW5hZ2VyQ2FsbGJhY2sgICAgICAgICAgICAgICAgICBhZGROb3RpZmljYXRpb25NYW5hZ2Vy
OworICAgIFdLTm90aWZpY2F0aW9uUHJvdmlkZXJSZW1vdmVOb3RpZmljYXRpb25NYW5hZ2VyQ2Fs
bGJhY2sgICAgICAgICAgICAgICByZW1vdmVOb3RpZmljYXRpb25NYW5hZ2VyOwogfTsKIHR5cGVk
ZWYgc3RydWN0IFdLTm90aWZpY2F0aW9uUHJvdmlkZXIgV0tOb3RpZmljYXRpb25Qcm92aWRlcjsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oCmluZGV4IGNiNWFkMmYxNTky
MzBiYmEwNjk4MWE0Njg3NTBmNjFiZTAwNDY4YmQuLjFkZTcwNjI4Yzg4YjFkMGMxZDBiNDVhYzM2
N2E1ZTk3MDZkNTE5NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmgK
QEAgLTE5Nyw2ICsxOTcsNyBAQCB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VEcmF3Rm9vdGVyQ2FsbGJh
Y2spKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1JlYwogdHlwZWRlZiB2b2lk
ICgqV0tQYWdlUHJpbnRGcmFtZUNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBm
cmFtZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VTYXZl
RGF0YVRvRmlsZUluRG93bmxvYWRzRm9sZGVyQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS1N0
cmluZ1JlZiBzdWdnZXN0ZWRGaWxlbmFtZSwgV0tTdHJpbmdSZWYgbWltZVR5cGUsIFdLVVJMUmVm
IG9yaWdpbmF0aW5nVVJMLCBXS0RhdGFSZWYgZGF0YSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7
CiB0eXBlZGVmIGJvb2wgKCpXS1BhZ2VTaG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0Q2FsbGJhY2sp
KFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKK3R5cGVkZWYgdm9pZCAo
KldLUGFnZURlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0Q2FsbGJh
Y2spKFdLUGFnZVJlZiBwYWdlLCBXS1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpbiwgV0tOb3RpZmlj
YXRpb25QZXJtaXNzaW9uUmVxdWVzdFJlZiBwZXJtaXNzaW9uUmVxdWVzdCwgY29uc3Qgdm9pZCAq
Y2xpZW50SW5mbyk7CiAKIC8vIERlcHJlY2F0ZWQgICAgCiB0eXBlZGVmIFdLUGFnZVJlZiAoKldL
UGFnZUNyZWF0ZU5ld1BhZ2VDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwKShXS1BhZ2VS
ZWYgcGFnZSwgV0tEaWN0aW9uYXJ5UmVmIGZlYXR1cmVzLCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlm
aWVycywgV0tFdmVudE1vdXNlQnV0dG9uIG1vdXNlQnV0dG9uLCBjb25zdCB2b2lkICpjbGllbnRJ
bmZvKTsKQEAgLTI1MCw2ICsyNTEsNyBAQCBzdHJ1Y3QgV0tQYWdlVUlDbGllbnQgewogICAgIC8v
IFZlcnNpb24gMQogICAgIFdLUGFnZUNyZWF0ZU5ld1BhZ2VDYWxsYmFjayAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlTmV3UGFnZTsKICAgICBXS1BhZ2VNb3Vz
ZURpZE1vdmVPdmVyRWxlbWVudENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50OworICAgIFdLUGFnZURlY2lkZVBvbGljeUZvck5vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0Q2FsbGJhY2sgICAgICAgICAgZGVjaWRlUG9saWN5Rm9y
Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q7CiB9OwogdHlwZWRlZiBzdHJ1Y3QgV0tQYWdl
VUlDbGllbnQgV0tQYWdlVUlDbGllbnQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNWQzN2RhNGI5OTRiNmQwY2RkYmU0MjU0NDAy
ODNhYzFlMGU2OWE1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuY3BwCkBAIC0wLDAg
KzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaCIKKworI2luY2x1ZGUgIk5vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworICAg
IAorUGFzc1JlZlB0cjxOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdD4gTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3Q6OmNyZWF0ZShXZWJLaXQ6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5ICptYW5hZ2VyLCB1aW50NjRfdCBub3RpZmljYXRpb25JRCkKK3sK
KyAgICByZXR1cm4gYWRvcHRSZWYobmV3IE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KG1h
bmFnZXIsIG5vdGlmaWNhdGlvbklEKSk7Cit9CisKK05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0OjpOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdChOb3RpZmljYXRpb25QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eSogbWFuYWdlciwgdWludDY0X3Qgbm90aWZpY2F0aW9uSUQpCisg
ICAgOiBtX21hbmFnZXIobWFuYWdlcikKKyAgICAsIG1fbm90aWZpY2F0aW9uSUQobm90aWZpY2F0
aW9uSUQpCit7Cit9CisKK3ZvaWQgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q6OmFsbG93
KCkKK3sKKyAgICBpZiAoIW1fbWFuYWdlcikKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIG1f
bWFuYWdlci0+ZGlkUmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25EZWNpc2lvbihtX25vdGlm
aWNhdGlvbklELCB0cnVlKTsKKyAgICBtX21hbmFnZXIgPSAwOworfQorCit2b2lkIE5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0OjpkZW55KCkKK3sKKyAgICBpZiAoIW1fbWFuYWdlcikKKyAg
ICAgICAgcmV0dXJuOworICAgIAorICAgIG1fbWFuYWdlci0+ZGlkUmVjZWl2ZU5vdGlmaWNhdGlv
blBlcm1pc3Npb25EZWNpc2lvbihtX25vdGlmaWNhdGlvbklELCBmYWxzZSk7CisgICAgbV9tYW5h
Z2VyID0gMDsKK30KKwordm9pZCBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDo6aW52YWxp
ZGF0ZSgpCit7CisgICAgbV9tYW5hZ2VyID0gMDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05v
dGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4y
NGRiOThiMGM1Njg5YWRmNjlhYzAyOTlmYTJmZTYyN2RiYTE1NmY5Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3QuaApAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdF9oCisjZGVmaW5lIE5vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0X2gKKworI2luY2x1ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1ZGUgPHd0Zi9Q
YXNzUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTsKKworY2xhc3MgTm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3QgOiBwdWJsaWMgQVBJT2JqZWN0IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgY29u
c3QgVHlwZSBBUElUeXBlID0gVHlwZU5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0OworICAg
IAorICAgIHN0YXRpYyBQYXNzUmVmUHRyPE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0PiBj
cmVhdGUoTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkqLCB1aW50NjRf
dCBub3RpZmljYXRpb25JRCk7CisgICAgCisgICAgdm9pZCBhbGxvdygpOworICAgIHZvaWQgZGVu
eSgpOworICAgIAorICAgIHZvaWQgaW52YWxpZGF0ZSgpOworICAgIAorcHJpdmF0ZToKKyAgICBO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdChOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eSosIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKTsKKyAgICAKKyAgICB2aXJ0
dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KKyAgICAKKyAgICBOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSogbV9tYW5hZ2VyOworICAgIHVp
bnQ2NF90IG1fbm90aWZpY2F0aW9uSUQ7ICAgIAorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZiAvLyBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdFByb3h5X2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4wNzkyMjk4NWU0NTY1ZjNjNzNjYWRjM2EwY2Y0NTUyMTdjNjE5
OTY5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNh
dGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCkBAIC0w
LDAgKzEsNzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCIKKworI2luY2x1ZGUg
Ik5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmgiCisjaW5jbHVkZSAiV2ViUGFnZU1lc3Nh
Z2VzLmgiCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1By
b3h5LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eTo6Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkoV2ViUGFnZVByb3h5KiBwYWdlKQorICAgIDogbV9wYWdlKHBhZ2UpCit7Cit9CisKK3ZvaWQg
Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmludmFsaWRhdGVSZXF1
ZXN0cygpCit7CisgICAgUGVuZGluZ1JlcXVlc3RNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9w
ZW5kaW5nUmVxdWVzdHMuYmVnaW4oKTsKKyAgICBQZW5kaW5nUmVxdWVzdE1hcDo6Y29uc3RfaXRl
cmF0b3IgZW5kID0gbV9wZW5kaW5nUmVxdWVzdHMuZW5kKCk7CisgICAgZm9yICg7IGl0ICE9IGVu
ZDsgKytpdCkKKyAgICAgICAgaXQtPnNlY29uZC0+aW52YWxpZGF0ZSgpOworICAgIAorICAgIG1f
cGVuZGluZ1JlcXVlc3RzLmNsZWFyKCk7Cit9CisKK1Bhc3NSZWZQdHI8Tm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3Q+IE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
OjpjcmVhdGVSZXF1ZXN0KHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQoreworICAgIFJlZlB0cjxO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdD4gcmVxdWVzdCA9IE5vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0OjpjcmVhdGUodGhpcywgbm90aWZpY2F0aW9uSUQpOworICAgIG1fcGVuZGlu
Z1JlcXVlc3RzLmFkZChub3RpZmljYXRpb25JRCwgcmVxdWVzdC5nZXQoKSk7CisgICAgcmV0dXJu
IHJlcXVlc3QucmVsZWFzZSgpOworfQorCit2b2lkIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5OjpkaWRSZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9u
KHVpbnQ2NF90IG5vdGlmaWNhdGlvbklELCBib29sIGFsbG93KQoreworICAgIGlmICghbV9wYWdl
LT5pc1ZhbGlkKCkpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBSZWZQdHI8Tm90aWZpY2F0
aW9uUGVybWlzc2lvblJlcXVlc3Q+IHJlcXVlc3QgPSBtX3BlbmRpbmdSZXF1ZXN0cy50YWtlKG5v
dGlmaWNhdGlvbklEKTsKKyAgICBpZiAoIXJlcXVlc3QpCisgICAgICAgIHJldHVybjsKKyAgICAK
KyAgICBtX3BhZ2UtPnByb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlkUmVjZWl2
ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25EZWNpc2lvbihub3RpZmljYXRpb25JRCwgYWxsb3cpLCBt
X3BhZ2UtPnBhZ2VJRCgpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05v
dGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5mNjIyOGU3MmE5NGQyZjIxZDQxMTExMjMwYzcyZGI1NTM1Y2I0YTJhCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaApAQCAtMCwwICsxLDU5IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2lmbmRlZiBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eV9oCisjZGVmaW5lIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5X2gKKworI2luY2x1ZGUgIk5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmgiCisjaW5j
bHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCitjbGFzcyBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UHJveHk7Citj
bGFzcyBXZWJQYWdlUHJveHk7CisKK2NsYXNzIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5IHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBOb3RpZmljYXRpb25QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eShXZWJQYWdlUHJveHkqKTsKKyAgICAKKyAgICB2b2lkIGlu
dmFsaWRhdGVSZXF1ZXN0cygpOworICAgIAorICAgIC8vIENyZWF0ZSBhIHJlcXVlc3QgdG8gYmUg
cHJlc2VudGVkIHRvIHRoZSB1c2VyLgorICAgIFBhc3NSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3Q+IGNyZWF0ZVJlcXVlc3QodWludDY0X3Qgbm90aWZpY2F0aW9uSUQpOworICAg
IAorICAgIC8vIENhbGxlZCBieSBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCB3aGVuIGEg
ZGVjaXNpb24gaXMgbWFkZSBieSB0aGUgdXNlci4KKyAgICB2b2lkIGRpZFJlY2VpdmVOb3RpZmlj
YXRpb25QZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQsIGJvb2wgYWxs
b3cpOworICAgIAorcHJpdmF0ZToKKyAgICB0eXBlZGVmIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0
cjxOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdD4gPiBQZW5kaW5nUmVxdWVzdE1hcDsKKyAg
ICBQZW5kaW5nUmVxdWVzdE1hcCBtX3BlbmRpbmdSZXF1ZXN0czsKKyAgICBXZWJQYWdlUHJveHkq
IG1fcGFnZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisKKyNlbmRpZiAvLyBOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eV9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb24uY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zZjAyNTk4NjI0YzE1NmE5OGZiZjIwOWE2MjJlMTE5MWMyYTZmZDNlCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMv
V2ViTm90aWZpY2F0aW9uLmNwcApAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbi5oIgorCisjaW5jbHVkZSAi
QXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlICJBcmd1bWVudERlY29kZXIuaCIKKyNpbmNsdWRl
ICJBcmd1bWVudEVuY29kZXIuaCIKKyNpbmNsdWRlICJBcmd1bWVudHMuaCIKKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK1dlYk5vdGlmaWNhdGlvbjo6V2ViTm90aWZpY2F0aW9uKCkKK3sKK30KKwor
V2ViTm90aWZpY2F0aW9uOjpXZWJOb3RpZmljYXRpb24oY29uc3QgU3RyaW5nJiB0aXRsZSwgY29u
c3QgU3RyaW5nJiBib2R5LCB1aW50NjRfdCBub3RpZmljYXRpb25JRCkKKyAgICA6IG1fdGl0bGUo
dGl0bGUpCisgICAgLCBtX2JvZHkoYm9keSkKKyAgICAsIG1fbm90aWZpY2F0aW9uSUQobm90aWZp
Y2F0aW9uSUQpCit7Cit9CisKK1dlYk5vdGlmaWNhdGlvbjo6fldlYk5vdGlmaWNhdGlvbigpCit7
Cit9CisKK3ZvaWQgV2ViTm90aWZpY2F0aW9uOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNv
ZGVyKiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXItPmVuY29kZShDb3JlSVBDOjpJbiht
X3RpdGxlLCBtX2JvZHksIG1fbm90aWZpY2F0aW9uSUQpKTsKK30KKworYm9vbCBXZWJOb3RpZmlj
YXRpb246OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIFdlYk5vdGlm
aWNhdGlvbiYgbm90aWZpY2F0aW9uKQoreworICAgIHJldHVybiBkZWNvZGVyLT5kZWNvZGUoQ29y
ZUlQQzo6T3V0KG5vdGlmaWNhdGlvbi5tX3RpdGxlLCBub3RpZmljYXRpb24ubV9ib2R5LCBub3Rp
ZmljYXRpb24ubV9ub3RpZmljYXRpb25JRCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5v
dGlmaWNhdGlvbi5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2Vi
Tm90aWZpY2F0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjY4NTg2ZjEyNTIzNDM4NGE0NTNhODFjZDgzODQ4
YmJhZGZmOGRkNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9O
b3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbi5oCkBAIC0wLDAgKzEsODEgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIFdlYk5vdGlmaWNhdGlvbl9oCisjZGVmaW5lIFdlYk5vdGlmaWNhdGlvbl9o
CisKKyNpbmNsdWRlICJBUElPYmplY3QuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgor
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgQ29yZUlQQyB7CisK
K2NsYXNzIEFyZ3VtZW50RGVjb2RlcjsKK2NsYXNzIEFyZ3VtZW50RW5jb2RlcjsKKworfSAvLyBu
YW1lc3BhY2UgQ29yZUlQQworCituYW1lc3BhY2UgV2ViS2l0IHsKKyAgICAKK2NsYXNzIFdlYk5v
dGlmaWNhdGlvbiA6IHB1YmxpYyBBUElPYmplY3QgeworcHVibGljOgorICAgIHN0YXRpYyBjb25z
dCBUeXBlIEFQSVR5cGUgPSBUeXBlTm90aWZpY2F0aW9uOworICAgIAorICAgIFdlYk5vdGlmaWNh
dGlvbigpOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYk5vdGlmaWNhdGlvbj4gY3JlYXRlKGNv
bnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgYm9keSwgdWludDY0X3Qgbm90aWZpY2F0
aW9uSUQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYk5vdGlmaWNhdGlv
bih0aXRsZSwgYm9keSwgbm90aWZpY2F0aW9uSUQpKTsKKyAgICB9CisgICAgdmlydHVhbCB+V2Vi
Tm90aWZpY2F0aW9uKCk7CisgICAgCisgICAgY29uc3QgU3RyaW5nJiB0aXRsZSgpIGNvbnN0IHsg
cmV0dXJuIG1fdGl0bGU7IH0KKyAgICAKKyAgICBjb25zdCBTdHJpbmcmIGJvZHkoKSBjb25zdCB7
IHJldHVybiBtX2JvZHk7IH0KKyAgICAKKyAgICB1aW50NjRfdCBub3RpZmljYXRpb25JRCgpIGNv
bnN0IHsgcmV0dXJuIG1fbm90aWZpY2F0aW9uSUQ7IH0KKworICAgIHZvaWQgZW5jb2RlKENvcmVJ
UEM6OkFyZ3VtZW50RW5jb2RlciopIGNvbnN0OworICAgIHN0YXRpYyBib29sIGRlY29kZShDb3Jl
SVBDOjpBcmd1bWVudERlY29kZXIqLCBXZWJOb3RpZmljYXRpb24mKTsKKworcHJpdmF0ZToKKyAg
ICBXZWJOb3RpZmljYXRpb24oY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiBib2R5
LCB1aW50NjRfdCBub3RpZmljYXRpb25JRCk7CisKKyAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNv
bnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KKyAgICAKKyAgICBTdHJpbmcgbV90aXRsZTsKKyAgICBT
dHJpbmcgbV9ib2R5OworICAgIHVpbnQ2NF90IG1fbm90aWZpY2F0aW9uSUQ7Cit9OworCitpbmxp
bmUgYm9vbCBpc05vdGlmaWNhdGlvbklEVmFsaWQodWludDY0X3QgaWQpCit7CisgICAgLy8gVGhp
cyBjaGVjayBtYWtlcyBzdXJlIHRoYXQgdGhlIElEIGlzIG5vdCBlcXVhbCB0byB2YWx1ZXMgbmVl
ZGVkIGJ5CisgICAgLy8gSGFzaE1hcCBmb3IgYnVja2V0aW5nLgorICAgIHJldHVybiBpZCAmJiBp
ZCAhPSBzdGF0aWNfY2FzdDx1aW50NjRfdD4oLTEpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmIC8vIFdlYk5vdGlmaWNhdGlvbl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0
aW9uTWFuYWdlclByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZmNmYjM0ZDE2NTdmYTk1ZDdhYmI1Y2Uz
YTcxYmQyN2Q4NjQ0MGM3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcApAQCAtMCww
ICsxLDE1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJX
ZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaCIKKworI2luY2x1ZGUgIkltbXV0YWJsZUFycmF5
LmgiCisjaW5jbHVkZSAiV2ViQ29udGV4dC5oIgorI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbi5o
IgorI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUg
IldlYlNlY3VyaXR5T3JpZ2luLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RpZmljYXRpb25Db250
ZW50cy5oPgorCit1c2luZyBuYW1lc3BhY2UgV1RGOwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitQYXNzUmVmUHRyPFdlYk5vdGlmaWNhdGlvbk1hbmFn
ZXJQcm94eT4gV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5OjpjcmVhdGUoV2ViQ29udGV4dCog
Y29udGV4dCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYk5vdGlmaWNhdGlvbk1hbmFn
ZXJQcm94eShjb250ZXh0KSk7Cit9CisKK1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6V2Vi
Tm90aWZpY2F0aW9uTWFuYWdlclByb3h5KFdlYkNvbnRleHQqIGNvbnRleHQpCisgICAgOiBtX2Nv
bnRleHQoY29udGV4dCkKK3sKK30KKworV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5Ojp+V2Vi
Tm90aWZpY2F0aW9uTWFuYWdlclByb3h5KCkKK3sKK30KKwordm9pZCBXZWJOb3RpZmljYXRpb25N
YW5hZ2VyUHJveHk6OmludmFsaWRhdGUoKQoreworICAgIG1fcHJvdmlkZXIucmVtb3ZlTm90aWZp
Y2F0aW9uTWFuYWdlcih0aGlzKTsKK30KKwordm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJv
eHk6OmluaXRpYWxpemVQcm92aWRlcihjb25zdCBXS05vdGlmaWNhdGlvblByb3ZpZGVyICpwcm92
aWRlcikKK3sKKyAgICBtX3Byb3ZpZGVyLmluaXRpYWxpemUocHJvdmlkZXIpOworfQorCit2b2lk
IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6
Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29y
ZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit7CisgICAgZGlkUmVjZWl2ZVdlYk5v
dGlmaWNhdGlvbk1hbmFnZXJQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1
bWVudHMpOworfQorCit2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2
ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1l
c3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzLCBP
d25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPiYgcmVwbHkpCit7CisgICAgZGlkUmVjZWl2
ZVN5bmNXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3Nh
Z2VJRCwgYXJndW1lbnRzLCByZXBseSk7Cit9CisKK3ZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdl
clByb3h5OjpzaG93KGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgYm9keSwgdWlu
dDY0X3Qgbm90aWZpY2F0aW9uSUQpCit7CisgICAgaWYgKCFpc05vdGlmaWNhdGlvbklEVmFsaWQo
bm90aWZpY2F0aW9uSUQpKQorICAgICAgICByZXR1cm47CisgICAgCisgICAgbV9wcm92aWRlci5h
ZGROb3RpZmljYXRpb25NYW5hZ2VyKHRoaXMpOworCisgICAgUmVmUHRyPFdlYk5vdGlmaWNhdGlv
bj4gbm90aWZpY2F0aW9uID0gV2ViTm90aWZpY2F0aW9uOjpjcmVhdGUodGl0bGUsIGJvZHksIG5v
dGlmaWNhdGlvbklEKTsKKyAgICBtX25vdGlmaWNhdGlvbnMuc2V0KG5vdGlmaWNhdGlvbklELCBu
b3RpZmljYXRpb24pOworICAgIG1fcHJvdmlkZXIuc2hvdyhub3RpZmljYXRpb24uZ2V0KCkpOwor
fQorCit2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6Y2FuY2VsKHVpbnQ2NF90IG5v
dGlmaWNhdGlvbklEKQoreworICAgIGlmICghaXNOb3RpZmljYXRpb25JRFZhbGlkKG5vdGlmaWNh
dGlvbklEKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgUmVmUHRyPFdlYk5vdGlmaWNhdGlvbj4g
bm90aWZpY2F0aW9uID0gbV9ub3RpZmljYXRpb25zLmdldChub3RpZmljYXRpb25JRCk7CisgICAg
aWYgKCFub3RpZmljYXRpb24pCisgICAgICAgIHJldHVybjsKKworICAgIG1fcHJvdmlkZXIuYWRk
Tm90aWZpY2F0aW9uTWFuYWdlcih0aGlzKTsKKyAgICBtX3Byb3ZpZGVyLmNhbmNlbChub3RpZmlj
YXRpb24uZ2V0KCkpOworfQorICAgIAordm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6
OmRpZERlc3Ryb3lOb3RpZmljYXRpb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQpCit7CisgICAg
aWYgKCFpc05vdGlmaWNhdGlvbklEVmFsaWQobm90aWZpY2F0aW9uSUQpKQorICAgICAgICByZXR1
cm47CisKKyAgICBSZWZQdHI8V2ViTm90aWZpY2F0aW9uPiBub3RpZmljYXRpb24gPSBtX25vdGlm
aWNhdGlvbnMudGFrZShub3RpZmljYXRpb25JRCk7CisgICAgaWYgKCFub3RpZmljYXRpb24pCisg
ICAgICAgIHJldHVybjsKKworICAgIG1fcHJvdmlkZXIuZGlkRGVzdHJveU5vdGlmaWNhdGlvbihu
b3RpZmljYXRpb24uZ2V0KCkpOworfQorCit2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94
eTo6bm90aWZpY2F0aW9uUGVybWlzc2lvbkxldmVsKGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRp
ZmllciwgdWludDY0X3QmIHBlcm1pc3Npb25MZXZlbCkKK3sKKyAgICBSZWZQdHI8V2ViU2VjdXJp
dHlPcmlnaW4+IG9yaWdpbiA9IFdlYlNlY3VyaXR5T3JpZ2luOjpjcmVhdGUob3JpZ2luSWRlbnRp
Zmllcik7CisgICAgcGVybWlzc2lvbkxldmVsID0gbV9wcm92aWRlci5wb2xpY3lGb3JOb3RpZmlj
YXRpb25QZXJtaXNzaW9uQXRPcmlnaW4ob3JpZ2luLmdldCgpKTsKK30KKwordm9pZCBXZWJOb3Rp
ZmljYXRpb25NYW5hZ2VyUHJveHk6OnByb3ZpZGVyRGlkU2hvd05vdGlmaWNhdGlvbih1aW50NjRf
dCBub3RpZmljYXRpb25JRCkKK3sKKyAgICBpZiAoIW1fY29udGV4dCkKKyAgICAgICAgcmV0dXJu
OworICAgIAorICAgIG1fY29udGV4dC0+c2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJO
b3RpZmljYXRpb25NYW5hZ2VyOjpEaWRTaG93Tm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbklEKSk7
Cit9CisKK3ZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5Ojpwcm92aWRlckRpZENsaWNr
Tm90aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQoreworICAgIGlmICghbV9jb250
ZXh0KQorICAgICAgICByZXR1cm47CisgICAgCisgICAgbV9jb250ZXh0LT5zZW5kVG9BbGxQcm9j
ZXNzZXMoTWVzc2FnZXM6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OkRpZENsaWNrTm90aWZpY2F0
aW9uKG5vdGlmaWNhdGlvbklEKSk7Cit9CisKKwordm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2Vy
UHJveHk6OnByb3ZpZGVyRGlkQ2xvc2VOb3RpZmljYXRpb25zKEltbXV0YWJsZUFycmF5KiBub3Rp
ZmljYXRpb25JRHMpCit7CisgICAgaWYgKCFtX2NvbnRleHQpCisgICAgICAgIHJldHVybjsKKyAg
ICAKKyAgICBzaXplX3Qgc2l6ZSA9IG5vdGlmaWNhdGlvbklEcy0+c2l6ZSgpOworICAgIAorICAg
IFZlY3Rvcjx1aW50NjRfdD4gdmVjdG9yTm90aWZpY2F0aW9uSURzOworICAgIHZlY3Rvck5vdGlm
aWNhdGlvbklEcy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHNpemUpOworICAgIAorICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7CisgICAgICAgIHVpbnQ2NF90IG5vdGlmaWNh
dGlvbklEID0gbm90aWZpY2F0aW9uSURzLT5hdDxXZWJVSW50NjQ+KGkpLT52YWx1ZSgpOworICAg
ICAgICB2ZWN0b3JOb3RpZmljYXRpb25JRHMuYXBwZW5kKG5vdGlmaWNhdGlvbklEKTsKKyAgICB9
CisgICAgCisgICAgaWYgKHZlY3Rvck5vdGlmaWNhdGlvbklEcy5zaXplKCkpCisgICAgICAgIG1f
Y29udGV4dC0+c2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJOb3RpZmljYXRpb25NYW5h
Z2VyOjpEaWRDbG9zZU5vdGlmaWNhdGlvbnModmVjdG9yTm90aWZpY2F0aW9uSURzKSk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJv
eHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi42ODA5YWU0ZDQ4MmM1MDkyNjNiNWQyYTQ3ZGQ5YzQwNTkyMGY2MGRh
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlv
bnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmgKQEAgLTAsMCArMSw4OSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZm5kZWYgV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5X2gKKyNkZWZpbmUgV2Vi
Tm90aWZpY2F0aW9uTWFuYWdlclByb3h5X2gKKworI2luY2x1ZGUgIkFQSU9iamVjdC5oIgorI2lu
Y2x1ZGUgIk1lc3NhZ2VJRC5oIgorI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmgi
CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisjaW5j
bHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKworbmFtZXNwYWNlIENvcmVJUEMgeworY2xhc3MgQXJn
dW1lbnREZWNvZGVyOworY2xhc3MgQXJndW1lbnRFbmNvZGVyOworY2xhc3MgQ29ubmVjdGlvbjsK
K30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIEltbXV0YWJsZUFycmF5OworY2xhc3Mg
V2ViQ29udGV4dDsKKworY2xhc3MgV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5IDogcHVibGlj
IEFQSU9iamVjdCB7CitwdWJsaWM6CisgICAgc3RhdGljIGNvbnN0IFR5cGUgQVBJVHlwZSA9IFR5
cGVOb3RpZmljYXRpb25NYW5hZ2VyOworICAgIAorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYk5v
dGlmaWNhdGlvbk1hbmFnZXJQcm94eT4gY3JlYXRlKFdlYkNvbnRleHQqKTsKKyAgICB2aXJ0dWFs
IH5XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkoKTsKKyAgICAKKyAgICB2b2lkIGludmFsaWRh
dGUoKTsKKyAgICB2b2lkIGNsZWFyQ29udGV4dCgpIHsgbV9jb250ZXh0ID0gMDsgfQorCisgICAg
dm9pZCBpbml0aWFsaXplUHJvdmlkZXIoY29uc3QgV0tOb3RpZmljYXRpb25Qcm92aWRlciopOwor
ICAgIAorICAgIHZvaWQgcHJvdmlkZXJEaWRTaG93Tm90aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlm
aWNhdGlvbklEKTsKKyAgICB2b2lkIHByb3ZpZGVyRGlkQ2xpY2tOb3RpZmljYXRpb24odWludDY0
X3Qgbm90aWZpY2F0aW9uSUQpOworICAgIHZvaWQgcHJvdmlkZXJEaWRDbG9zZU5vdGlmaWNhdGlv
bnMoSW1tdXRhYmxlQXJyYXkqIG5vdGlmaWNhdGlvbklEcyk7CisgICAgCisgICAgdm9pZCBkaWRS
ZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1
bWVudERlY29kZXIqLCBPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPiYpOworCitwcml2
YXRlOgorICAgIGV4cGxpY2l0IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eShXZWJDb250ZXh0
Kik7CisgICAgCisgICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBBUElUeXBl
OyB9CisgICAgCisgICAgdm9pZCBkaWRSZWNlaXZlV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBD
OjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jV2ViTm90aWZpY2F0
aW9uTWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVz
c2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBPd25QdHI8Q29yZUlQQzo6QXJndW1l
bnRFbmNvZGVyPiYpOworICAgIAorICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMKKyAgICB2b2lkIHNo
b3coY29uc3QgV1RGOjpTdHJpbmcmIHRpdGxlLCBjb25zdCBXVEY6OlN0cmluZyYgYm9keSwgdWlu
dDY0X3Qgbm90aWZpY2F0aW9uSUQpOworICAgIHZvaWQgY2FuY2VsKHVpbnQ2NF90IG5vdGlmaWNh
dGlvbklEKTsKKyAgICB2b2lkIGRpZERlc3Ryb3lOb3RpZmljYXRpb24odWludDY0X3Qgbm90aWZp
Y2F0aW9uSUQpOworICAgIHZvaWQgbm90aWZpY2F0aW9uUGVybWlzc2lvbkxldmVsKGNvbnN0IFdU
Rjo6U3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyLCB1aW50NjRfdCYgcGVybWlzc2lvbkxldmVsKTsK
KworICAgIHR5cGVkZWYgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFdlYk5vdGlmaWNhdGlvbj4g
PiBXZWJOb3RpZmljYXRpb25NYXA7CisgICAgCisgICAgV2ViQ29udGV4dCogbV9jb250ZXh0Owor
ICAgIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyIG1fcHJvdmlkZXI7CisgICAgV2ViTm90aWZpY2F0
aW9uTWFwIG1fbm90aWZpY2F0aW9uczsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisj
ZW5kaWYgLy8gV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5X2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQ
cm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25z
L1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NjY3
MWI0Mjg0ZGE0MzYwYjAwODBjM2FkZGRkNTk1NWI1MWEyZjI5Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFu
YWdlclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMjkgQEAKKyMgQ29weXJpZ2h0IChDKSAy
MDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKworbWVzc2FnZXMgLT4gV2ViTm90aWZpY2F0aW9uTWFuYWdl
clByb3h5IHsKKyAgICBTaG93KFdURjo6U3RyaW5nIHRpdGxlLCBXVEY6OlN0cmluZyBib2R5LCB1
aW50NjRfdCBub3RpZmljYXRpb25JRCk7CisgICAgQ2FuY2VsKHVpbnQ2NF90IG5vdGlmaWNhdGlv
bklEKTsKKyAgICBEaWREZXN0cm95Tm90aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklE
KTsKKworICAgIE5vdGlmaWNhdGlvblBlcm1pc3Npb25MZXZlbChXVEY6OlN0cmluZyBvcmlnaW5J
ZGVudGlmaWVyKSAtPiAodWludDY0X3QgcG9saWN5KQorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9u
UHJvdmlkZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFmOGE3MWRiYWUzMTAwOGViMjkxN2RlODJlZDgyMTA3
OTM2NWMzODIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90
aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHAKQEAgLTAsMCArMSw4NCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJOb3RpZmljYXRp
b25Qcm92aWRlci5oIgorCisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisjaW5jbHVkZSAiV2ViTm90
aWZpY2F0aW9uLmgiCisjaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmgiCisj
aW5jbHVkZSAiV2ViU2VjdXJpdHlPcmlnaW4uaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3Zv
aWQgV2ViTm90aWZpY2F0aW9uUHJvdmlkZXI6OnNob3coV2ViTm90aWZpY2F0aW9uKiBub3RpZmlj
YXRpb24pCit7CisgICAgaWYgKCFtX2NsaWVudC5zaG93KQorICAgICAgICByZXR1cm47CisgICAg
CisgICAgbV9jbGllbnQuc2hvdyh0b0FQSShub3RpZmljYXRpb24pLCBtX2NsaWVudC5jbGllbnRJ
bmZvKTsKK30KKwordm9pZCBXZWJOb3RpZmljYXRpb25Qcm92aWRlcjo6Y2FuY2VsKFdlYk5vdGlm
aWNhdGlvbiogbm90aWZpY2F0aW9uKQoreworICAgIGlmICghbV9jbGllbnQuY2FuY2VsKQorICAg
ICAgICByZXR1cm47CisgICAgCisgICAgbV9jbGllbnQuY2FuY2VsKHRvQVBJKG5vdGlmaWNhdGlv
biksIG1fY2xpZW50LmNsaWVudEluZm8pOworfQorCit2b2lkIFdlYk5vdGlmaWNhdGlvblByb3Zp
ZGVyOjpkaWREZXN0cm95Tm90aWZpY2F0aW9uKFdlYk5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9u
KQoreworICAgIGlmICghbV9jbGllbnQuZGlkRGVzdHJveU5vdGlmaWNhdGlvbikKKyAgICAgICAg
cmV0dXJuOworICAgIAorICAgIG1fY2xpZW50LmRpZERlc3Ryb3lOb3RpZmljYXRpb24odG9BUEko
bm90aWZpY2F0aW9uKSwgbV9jbGllbnQuY2xpZW50SW5mbyk7Cit9CisKK2ludCBXZWJOb3RpZmlj
YXRpb25Qcm92aWRlcjo6cG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvbkF0T3JpZ2luKFdl
YlNlY3VyaXR5T3JpZ2luKiBvcmlnaW4pCit7CisgICAgaWYgKCFtX2NsaWVudC5wb2xpY3lGb3JO
b3RpZmljYXRpb25QZXJtaXNzaW9uQXRPcmlnaW4pCisgICAgICAgIHJldHVybiBJTlRfTUlOOwor
ICAgIAorICAgIHJldHVybiBtX2NsaWVudC5wb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9u
QXRPcmlnaW4odG9BUEkob3JpZ2luKSwgbV9jbGllbnQuY2xpZW50SW5mbyk7Cit9CisKK3ZvaWQg
V2ViTm90aWZpY2F0aW9uUHJvdmlkZXI6OmFkZE5vdGlmaWNhdGlvbk1hbmFnZXIoV2ViTm90aWZp
Y2F0aW9uTWFuYWdlclByb3h5KiBtYW5hZ2VyKQoreworICAgIGlmICghbV9jbGllbnQuYWRkTm90
aWZpY2F0aW9uTWFuYWdlcikKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIG1fY2xpZW50LmFk
ZE5vdGlmaWNhdGlvbk1hbmFnZXIodG9BUEkobWFuYWdlciksIG1fY2xpZW50LmNsaWVudEluZm8p
OworfQorCit2b2lkIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyOjpyZW1vdmVOb3RpZmljYXRpb25N
YW5hZ2VyKFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eSogbWFuYWdlcikKK3sKKyAgICBpZiAo
IW1fY2xpZW50LnJlbW92ZU5vdGlmaWNhdGlvbk1hbmFnZXIpCisgICAgICAgIHJldHVybjsKKyAg
ICAKKyAgICBtX2NsaWVudC5yZW1vdmVOb3RpZmljYXRpb25NYW5hZ2VyKHRvQVBJKG1hbmFnZXIp
LCBtX2NsaWVudC5jbGllbnRJbmZvKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmlj
YXRpb25Qcm92aWRlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMv
V2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NzBhMjY0ZDA4M2RkNzQ4NjUy
NDlmNDA2NDExOTI4NzQ5YWRhNTQ2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuaApAQCAtMCww
ICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJOb3RpZmljYXRpb25Qcm92aWRlcl9o
CisjZGVmaW5lIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyX2gKKworI2luY2x1ZGUgIkFQSUNsaWVu
dC5oIgorI2luY2x1ZGUgIldLTm90aWZpY2F0aW9uUHJvdmlkZXIuaCIKKyNpbmNsdWRlIDx3dGYv
Rm9yd2FyZC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViTm90aWZpY2F0aW9u
OworY2xhc3MgV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5OworY2xhc3MgV2ViU2VjdXJpdHlP
cmlnaW47CisgICAgCitjbGFzcyBXZWJOb3RpZmljYXRpb25Qcm92aWRlciA6IHB1YmxpYyBBUElD
bGllbnQ8V0tOb3RpZmljYXRpb25Qcm92aWRlciwga1dLTm90aWZpY2F0aW9uUHJvdmlkZXJDdXJy
ZW50VmVyc2lvbj4geworcHVibGljOgorICAgIHZvaWQgc2hvdyhXZWJOb3RpZmljYXRpb24qKTsK
KyAgICB2b2lkIGNhbmNlbChXZWJOb3RpZmljYXRpb24qKTsKKyAgICB2b2lkIGRpZERlc3Ryb3lO
b3RpZmljYXRpb24oV2ViTm90aWZpY2F0aW9uKik7CisgICAgaW50IHBvbGljeUZvck5vdGlmaWNh
dGlvblBlcm1pc3Npb25BdE9yaWdpbihXZWJTZWN1cml0eU9yaWdpbiopOworCisgICAgdm9pZCBh
ZGROb3RpZmljYXRpb25NYW5hZ2VyKFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eSopOworICAg
IHZvaWQgcmVtb3ZlTm90aWZpY2F0aW9uTWFuYWdlcihXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJv
eHkqKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViTm90aWZp
Y2F0aW9uUHJvdmlkZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
Yk5vdGlmaWNhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTm90aWZpY2F0
aW9uLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2YwMjU5ODYyNGMxNTZhOThm
YmYyMDlhNjIyZTExOTFjMmE2ZmQzZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9uLmNw
cAorKysgL2Rldi9udWxsCkBAIC0xLDYxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAi
Y29uZmlnLmgiCi0jaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9uLmgiCi0KLSNpbmNsdWRlICJBcmd1
bWVudENvZGVycy5oIgotI2luY2x1ZGUgIkFyZ3VtZW50RGVjb2Rlci5oIgotI2luY2x1ZGUgIkFy
Z3VtZW50RW5jb2Rlci5oIgotI2luY2x1ZGUgIkFyZ3VtZW50cy5oIgotCi1uYW1lc3BhY2UgV2Vi
S2l0IHsKLQotV2ViTm90aWZpY2F0aW9uOjpXZWJOb3RpZmljYXRpb24oKQotewotfQotCi1XZWJO
b3RpZmljYXRpb246OldlYk5vdGlmaWNhdGlvbihjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBT
dHJpbmcmIGJvZHksIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQotICAgIDogbV90aXRsZSh0aXRs
ZSkKLSAgICAsIG1fYm9keShib2R5KQotICAgICwgbV9ub3RpZmljYXRpb25JRChub3RpZmljYXRp
b25JRCkKLXsKLX0KLQotV2ViTm90aWZpY2F0aW9uOjp+V2ViTm90aWZpY2F0aW9uKCkKLXsKLX0K
LQotdm9pZCBXZWJOb3RpZmljYXRpb246OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIq
IGVuY29kZXIpIGNvbnN0Ci17Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKENvcmVJUEM6OkluKG1fdGl0
bGUsIG1fYm9keSwgbV9ub3RpZmljYXRpb25JRCkpOwotfQotCi1ib29sIFdlYk5vdGlmaWNhdGlv
bjo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgV2ViTm90aWZpY2F0
aW9uJiBub3RpZmljYXRpb24pCi17Ci0gICAgcmV0dXJuIGRlY29kZXItPmRlY29kZShDb3JlSVBD
OjpPdXQobm90aWZpY2F0aW9uLm1fdGl0bGUsIG5vdGlmaWNhdGlvbi5tX2JvZHksIG5vdGlmaWNh
dGlvbi5tX25vdGlmaWNhdGlvbklEKSk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5vdGlmaWNhdGlvbi5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5vdGlmaWNhdGlvbi5oCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBmNjg1ODZmMTI1MjM0Mzg0YTQ1M2E4MWNkODM4NDhiYmFkZmY4ZGQ0Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJOb3RpZmljYXRpb24uaAorKysgL2Rldi9udWxsCkBAIC0xLDgxICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0g
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFdlYk5vdGlmaWNhdGlvbl9oCi0jZGVmaW5lIFdl
Yk5vdGlmaWNhdGlvbl9oCi0KLSNpbmNsdWRlICJBUElPYmplY3QuaCIKLSNpbmNsdWRlIDx3dGYv
UGFzc1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgotCi1uYW1lc3Bh
Y2UgQ29yZUlQQyB7Ci0KLWNsYXNzIEFyZ3VtZW50RGVjb2RlcjsKLWNsYXNzIEFyZ3VtZW50RW5j
b2RlcjsKLQotfSAvLyBuYW1lc3BhY2UgQ29yZUlQQwotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLSAg
ICAKLWNsYXNzIFdlYk5vdGlmaWNhdGlvbiA6IHB1YmxpYyBBUElPYmplY3QgewotcHVibGljOgot
ICAgIHN0YXRpYyBjb25zdCBUeXBlIEFQSVR5cGUgPSBUeXBlTm90aWZpY2F0aW9uOwotICAgIAot
ICAgIFdlYk5vdGlmaWNhdGlvbigpOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYk5vdGlmaWNh
dGlvbj4gY3JlYXRlKGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgYm9keSwgdWlu
dDY0X3Qgbm90aWZpY2F0aW9uSUQpCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3
IFdlYk5vdGlmaWNhdGlvbih0aXRsZSwgYm9keSwgbm90aWZpY2F0aW9uSUQpKTsKLSAgICB9Ci0g
ICAgdmlydHVhbCB+V2ViTm90aWZpY2F0aW9uKCk7Ci0gICAgCi0gICAgY29uc3QgU3RyaW5nJiB0
aXRsZSgpIGNvbnN0IHsgcmV0dXJuIG1fdGl0bGU7IH0KLSAgICAKLSAgICBjb25zdCBTdHJpbmcm
IGJvZHkoKSBjb25zdCB7IHJldHVybiBtX2JvZHk7IH0KLSAgICAKLSAgICB1aW50NjRfdCBub3Rp
ZmljYXRpb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fbm90aWZpY2F0aW9uSUQ7IH0KLQotICAgIHZv
aWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciopIGNvbnN0OwotICAgIHN0YXRpYyBi
b29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBXZWJOb3RpZmljYXRpb24mKTsK
LQotcHJpdmF0ZToKLSAgICBXZWJOb3RpZmljYXRpb24oY29uc3QgU3RyaW5nJiB0aXRsZSwgY29u
c3QgU3RyaW5nJiBib2R5LCB1aW50NjRfdCBub3RpZmljYXRpb25JRCk7Ci0KLSAgICB2aXJ0dWFs
IFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KLSAgICAKLSAgICBTdHJpbmcg
bV90aXRsZTsKLSAgICBTdHJpbmcgbV9ib2R5OwotICAgIHVpbnQ2NF90IG1fbm90aWZpY2F0aW9u
SUQ7Ci19OwotCi1pbmxpbmUgYm9vbCBpc05vdGlmaWNhdGlvbklEVmFsaWQodWludDY0X3QgaWQp
Ci17Ci0gICAgLy8gVGhpcyBjaGVjayBtYWtlcyBzdXJlIHRoYXQgdGhlIElEIGlzIG5vdCBlcXVh
bCB0byB2YWx1ZXMgbmVlZGVkIGJ5Ci0gICAgLy8gSGFzaE1hcCBmb3IgYnVja2V0aW5nLgotICAg
IHJldHVybiBpZCAmJiBpZCAhPSBzdGF0aWNfY2FzdDx1aW50NjRfdD4oLTEpOwotfQotCi19IC8v
IG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIFdlYk5vdGlmaWNhdGlvbl9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJv
eHkuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MDI5ZGM0NGU5ZmE4Zjg4MjUw
MmUzMDJhZWI4YmFmZTg2ZDM0YjAwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOb3RpZmljYXRpb25NYW5h
Z2VyUHJveHkuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTQyICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9uTWFuYWdlclBy
b3h5LmgiCi0KLSNpbmNsdWRlICJJbW11dGFibGVBcnJheS5oIgotI2luY2x1ZGUgIldlYkNvbnRl
eHQuaCIKLSNpbmNsdWRlICJXZWJOb3RpZmljYXRpb24uaCIKLSNpbmNsdWRlICJXZWJOb3RpZmlj
YXRpb25NYW5hZ2VyTWVzc2FnZXMuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL05vdGlmaWNhdGlvbkNv
bnRlbnRzLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBXVEY7Ci11c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLVBhc3NSZWZQdHI8V2ViTm90aWZpY2F0aW9uTWFu
YWdlclByb3h5PiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OmNyZWF0ZShXZWJDb250ZXh0
KiBjb250ZXh0KQotewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViTm90aWZpY2F0aW9uTWFu
YWdlclByb3h5KGNvbnRleHQpKTsKLX0KLQotV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5OjpX
ZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkoV2ViQ29udGV4dCogY29udGV4dCkKLSAgICA6IG1f
Y29udGV4dChjb250ZXh0KQotewotfQotCi1XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6On5X
ZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkoKQotewotfQotCi12b2lkIFdlYk5vdGlmaWNhdGlv
bk1hbmFnZXJQcm94eTo6aW52YWxpZGF0ZSgpCi17Ci0gICAgbV9wcm92aWRlci5yZW1vdmVOb3Rp
ZmljYXRpb25NYW5hZ2VyKHRoaXMpOwotfQotCi12b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQ
cm94eTo6aW5pdGlhbGl6ZVByb3ZpZGVyKGNvbnN0IFdLTm90aWZpY2F0aW9uUHJvdmlkZXIgKnBy
b3ZpZGVyKQotewotICAgIG1fcHJvdmlkZXIuaW5pdGlhbGl6ZShwcm92aWRlcik7Ci19Ci0KLXZv
aWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBD
OjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKLXsKLSAgICBkaWRSZWNlaXZlV2Vi
Tm90aWZpY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFy
Z3VtZW50cyk7Ci19Ci0KLXZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5OjpzaG93KGNv
bnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgYm9keSwgdWludDY0X3Qgbm90aWZpY2F0
aW9uSUQpCi17Ci0gICAgaWYgKCFpc05vdGlmaWNhdGlvbklEVmFsaWQobm90aWZpY2F0aW9uSUQp
KQotICAgICAgICByZXR1cm47Ci0gICAgCi0gICAgbV9wcm92aWRlci5hZGROb3RpZmljYXRpb25N
YW5hZ2VyKHRoaXMpOwotCi0gICAgUmVmUHRyPFdlYk5vdGlmaWNhdGlvbj4gbm90aWZpY2F0aW9u
ID0gV2ViTm90aWZpY2F0aW9uOjpjcmVhdGUodGl0bGUsIGJvZHksIG5vdGlmaWNhdGlvbklEKTsK
LSAgICBtX25vdGlmaWNhdGlvbnMuc2V0KG5vdGlmaWNhdGlvbklELCBub3RpZmljYXRpb24pOwot
ICAgIG1fcHJvdmlkZXIuc2hvdyhub3RpZmljYXRpb24uZ2V0KCkpOwotfQotCi12b2lkIFdlYk5v
dGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6Y2FuY2VsKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQot
ewotICAgIGlmICghaXNOb3RpZmljYXRpb25JRFZhbGlkKG5vdGlmaWNhdGlvbklEKSkKLSAgICAg
ICAgcmV0dXJuOwotCi0gICAgUmVmUHRyPFdlYk5vdGlmaWNhdGlvbj4gbm90aWZpY2F0aW9uID0g
bV9ub3RpZmljYXRpb25zLmdldChub3RpZmljYXRpb25JRCk7Ci0gICAgaWYgKCFub3RpZmljYXRp
b24pCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fcHJvdmlkZXIuYWRkTm90aWZpY2F0aW9uTWFu
YWdlcih0aGlzKTsKLSAgICBtX3Byb3ZpZGVyLmNhbmNlbChub3RpZmljYXRpb24uZ2V0KCkpOwot
fQotICAgIAotdm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OmRpZERlc3Ryb3lOb3Rp
ZmljYXRpb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQpCi17Ci0gICAgaWYgKCFpc05vdGlmaWNh
dGlvbklEVmFsaWQobm90aWZpY2F0aW9uSUQpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBSZWZQ
dHI8V2ViTm90aWZpY2F0aW9uPiBub3RpZmljYXRpb24gPSBtX25vdGlmaWNhdGlvbnMudGFrZShu
b3RpZmljYXRpb25JRCk7Ci0gICAgaWYgKCFub3RpZmljYXRpb24pCi0gICAgICAgIHJldHVybjsK
LQotICAgIG1fcHJvdmlkZXIuZGlkRGVzdHJveU5vdGlmaWNhdGlvbihub3RpZmljYXRpb24uZ2V0
KCkpOwotfQotCi12b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6cHJvdmlkZXJEaWRT
aG93Tm90aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQotewotICAgIGlmICghbV9j
b250ZXh0KQotICAgICAgICByZXR1cm47Ci0gICAgCi0gICAgbV9jb250ZXh0LT5zZW5kVG9BbGxQ
cm9jZXNzZXMoTWVzc2FnZXM6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OkRpZFNob3dOb3RpZmlj
YXRpb24obm90aWZpY2F0aW9uSUQpKTsKLX0KLQotdm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2Vy
UHJveHk6OnByb3ZpZGVyRGlkQ2xpY2tOb3RpZmljYXRpb24odWludDY0X3Qgbm90aWZpY2F0aW9u
SUQpCi17Ci0gICAgaWYgKCFtX2NvbnRleHQpCi0gICAgICAgIHJldHVybjsKLSAgICAKLSAgICBt
X2NvbnRleHQtPnNlbmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6V2ViTm90aWZpY2F0aW9uTWFu
YWdlcjo6RGlkQ2xpY2tOb3RpZmljYXRpb24obm90aWZpY2F0aW9uSUQpKTsKLX0KLQotCi12b2lk
IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6cHJvdmlkZXJEaWRDbG9zZU5vdGlmaWNhdGlv
bnMoSW1tdXRhYmxlQXJyYXkqIG5vdGlmaWNhdGlvbklEcykKLXsKLSAgICBpZiAoIW1fY29udGV4
dCkKLSAgICAgICAgcmV0dXJuOwotICAgIAotICAgIHNpemVfdCBzaXplID0gbm90aWZpY2F0aW9u
SURzLT5zaXplKCk7Ci0gICAgCi0gICAgVmVjdG9yPHVpbnQ2NF90PiB2ZWN0b3JOb3RpZmljYXRp
b25JRHM7Ci0gICAgdmVjdG9yTm90aWZpY2F0aW9uSURzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHko
c2l6ZSk7Ci0gICAgCi0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKLSAg
ICAgICAgdWludDY0X3Qgbm90aWZpY2F0aW9uSUQgPSBub3RpZmljYXRpb25JRHMtPmF0PFdlYlVJ
bnQ2ND4oaSktPnZhbHVlKCk7Ci0gICAgICAgIHZlY3Rvck5vdGlmaWNhdGlvbklEcy5hcHBlbmQo
bm90aWZpY2F0aW9uSUQpOwotICAgIH0KLSAgICAKLSAgICBpZiAodmVjdG9yTm90aWZpY2F0aW9u
SURzLnNpemUoKSkKLSAgICAgICAgbV9jb250ZXh0LT5zZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2Fn
ZXM6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OkRpZENsb3NlTm90aWZpY2F0aW9ucyh2ZWN0b3JO
b3RpZmljYXRpb25JRHMpKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmgK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU4N2ZhOWE0ODYxZGExNmRiOGNkNTk1NzYy
YTljNzhjZmEyYzMyZjkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94
eS5oCisrKyAvZGV2L251bGwKQEAgLTEsODQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYg
V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5X2gKLSNkZWZpbmUgV2ViTm90aWZpY2F0aW9uTWFu
YWdlclByb3h5X2gKLQotI2luY2x1ZGUgIkFQSU9iamVjdC5oIgotI2luY2x1ZGUgIk1lc3NhZ2VJ
RC5oIgotI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmgiCi0jaW5jbHVkZSA8d3Rm
L0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgotCi1uYW1lc3BhY2UgQ29y
ZUlQQyB7Ci1jbGFzcyBBcmd1bWVudERlY29kZXI7Ci1jbGFzcyBDb25uZWN0aW9uOwotfQotCi1u
YW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgSW1tdXRhYmxlQXJyYXk7Ci1jbGFzcyBXZWJDb250
ZXh0OwotCi1jbGFzcyBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkgOiBwdWJsaWMgQVBJT2Jq
ZWN0IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgVHlwZSBBUElUeXBlID0gVHlwZU5vdGlm
aWNhdGlvbk1hbmFnZXI7Ci0gICAgCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViTm90aWZpY2F0
aW9uTWFuYWdlclByb3h5PiBjcmVhdGUoV2ViQ29udGV4dCopOwotICAgIHZpcnR1YWwgfldlYk5v
dGlmaWNhdGlvbk1hbmFnZXJQcm94eSgpOwotICAgIAotICAgIHZvaWQgaW52YWxpZGF0ZSgpOwot
ICAgIHZvaWQgY2xlYXJDb250ZXh0KCkgeyBtX2NvbnRleHQgPSAwOyB9Ci0KLSAgICB2b2lkIGlu
aXRpYWxpemVQcm92aWRlcihjb25zdCBXS05vdGlmaWNhdGlvblByb3ZpZGVyKik7Ci0gICAgCi0g
ICAgdm9pZCBwcm92aWRlckRpZFNob3dOb3RpZmljYXRpb24odWludDY0X3Qgbm90aWZpY2F0aW9u
SUQpOwotICAgIHZvaWQgcHJvdmlkZXJEaWRDbGlja05vdGlmaWNhdGlvbih1aW50NjRfdCBub3Rp
ZmljYXRpb25JRCk7Ci0gICAgdm9pZCBwcm92aWRlckRpZENsb3NlTm90aWZpY2F0aW9ucyhJbW11
dGFibGVBcnJheSogbm90aWZpY2F0aW9uSURzKTsKLSAgICAKLSAgICB2b2lkIGRpZFJlY2VpdmVN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciopOwotCi1wcml2YXRlOgotICAgIGV4cGxpY2l0IFdlYk5vdGlmaWNh
dGlvbk1hbmFnZXJQcm94eShXZWJDb250ZXh0Kik7Ci0gICAgCi0gICAgdmlydHVhbCBUeXBlIHR5
cGUoKSBjb25zdCB7IHJldHVybiBBUElUeXBlOyB9Ci0gICAgCi0gICAgdm9pZCBkaWRSZWNlaXZl
V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwg
Q29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKLSAgICAKLSAg
ICAvLyBNZXNzYWdlIGhhbmRsZXJzCi0gICAgdm9pZCBzaG93KGNvbnN0IFdURjo6U3RyaW5nJiB0
aXRsZSwgY29uc3QgV1RGOjpTdHJpbmcmIGJvZHksIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKTsK
LSAgICB2b2lkIGNhbmNlbCh1aW50NjRfdCBub3RpZmljYXRpb25JRCk7Ci0gICAgdm9pZCBkaWRE
ZXN0cm95Tm90aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKTsKLSAgICAKLSAgICB0
eXBlZGVmIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxXZWJOb3RpZmljYXRpb24+ID4gV2ViTm90
aWZpY2F0aW9uTWFwOwotICAgIAotICAgIFdlYkNvbnRleHQqIG1fY29udGV4dDsKLSAgICBXZWJO
b3RpZmljYXRpb25Qcm92aWRlciBtX3Byb3ZpZGVyOwotICAgIFdlYk5vdGlmaWNhdGlvbk1hcCBt
X25vdGlmaWNhdGlvbnM7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8v
IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5tZXNzYWdl
cy5pbgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmQ0MDNjM2Q3ZDg1OWNlNWQ5MDBh
NDhhMGRlYjQ2OWQ4MDYxODhhZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9uTWFuYWdl
clByb3h5Lm1lc3NhZ2VzLmluCisrKyAvZGV2L251bGwKQEAgLTEsMjcgKzAsMCBAQAotIyBDb3B5
cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0jIGFyZSBtZXQ6Ci0jIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
IyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSMgICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0jCi0j
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycgQU5ECi0jIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0jIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKLSMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKLSMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAotIyBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUgotIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgotIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAotIyBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi1tZXNzYWdlcyAtPiBXZWJOb3RpZmlj
YXRpb25NYW5hZ2VyUHJveHkgewotICAgIFNob3coV1RGOjpTdHJpbmcgdGl0bGUsIFdURjo6U3Ry
aW5nIGJvZHksIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKTsKLSAgICBDYW5jZWwodWludDY0X3Qg
bm90aWZpY2F0aW9uSUQpOwotICAgIERpZERlc3Ryb3lOb3RpZmljYXRpb24odWludDY0X3Qgbm90
aWZpY2F0aW9uSUQpOwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
Yk5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJO
b3RpZmljYXRpb25Qcm92aWRlci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ2
MWIxYWQ3ODk2ZGFlOTcyOGUwNDcyYjNhZmI2NWVjYTM4NGRlYmIuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
Yk5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDc1ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV2ViTm90aWZpY2F0
aW9uUHJvdmlkZXIuaCIKLQotI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgotI2luY2x1ZGUgIldlYk5v
dGlmaWNhdGlvbi5oIgotI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oIgot
Ci1uYW1lc3BhY2UgV2ViS2l0IHsKLQotdm9pZCBXZWJOb3RpZmljYXRpb25Qcm92aWRlcjo6c2hv
dyhXZWJOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbikKLXsKLSAgICBpZiAoIW1fY2xpZW50LnNo
b3cpCi0gICAgICAgIHJldHVybjsKLSAgICAKLSAgICBtX2NsaWVudC5zaG93KHRvQVBJKG5vdGlm
aWNhdGlvbiksIG1fY2xpZW50LmNsaWVudEluZm8pOwotfQotCi12b2lkIFdlYk5vdGlmaWNhdGlv
blByb3ZpZGVyOjpjYW5jZWwoV2ViTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24pCi17Ci0gICAg
aWYgKCFtX2NsaWVudC5jYW5jZWwpCi0gICAgICAgIHJldHVybjsKLSAgICAKLSAgICBtX2NsaWVu
dC5jYW5jZWwodG9BUEkobm90aWZpY2F0aW9uKSwgbV9jbGllbnQuY2xpZW50SW5mbyk7Ci19Ci0K
LXZvaWQgV2ViTm90aWZpY2F0aW9uUHJvdmlkZXI6OmRpZERlc3Ryb3lOb3RpZmljYXRpb24oV2Vi
Tm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24pCi17Ci0gICAgaWYgKCFtX2NsaWVudC5kaWREZXN0
cm95Tm90aWZpY2F0aW9uKQotICAgICAgICByZXR1cm47Ci0gICAgCi0gICAgbV9jbGllbnQuZGlk
RGVzdHJveU5vdGlmaWNhdGlvbih0b0FQSShub3RpZmljYXRpb24pLCBtX2NsaWVudC5jbGllbnRJ
bmZvKTsKLX0KLQotdm9pZCBXZWJOb3RpZmljYXRpb25Qcm92aWRlcjo6YWRkTm90aWZpY2F0aW9u
TWFuYWdlcihXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkqIG1hbmFnZXIpCi17Ci0gICAgaWYg
KCFtX2NsaWVudC5hZGROb3RpZmljYXRpb25NYW5hZ2VyKQotICAgICAgICByZXR1cm47Ci0gICAg
Ci0gICAgbV9jbGllbnQuYWRkTm90aWZpY2F0aW9uTWFuYWdlcih0b0FQSShtYW5hZ2VyKSwgbV9j
bGllbnQuY2xpZW50SW5mbyk7Ci19Ci0KLXZvaWQgV2ViTm90aWZpY2F0aW9uUHJvdmlkZXI6OnJl
bW92ZU5vdGlmaWNhdGlvbk1hbmFnZXIoV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5KiBtYW5h
Z2VyKQotewotICAgIGlmICghbV9jbGllbnQucmVtb3ZlTm90aWZpY2F0aW9uTWFuYWdlcikKLSAg
ICAgICAgcmV0dXJuOwotICAgIAotICAgIG1fY2xpZW50LnJlbW92ZU5vdGlmaWNhdGlvbk1hbmFn
ZXIodG9BUEkobWFuYWdlciksIG1fY2xpZW50LmNsaWVudEluZm8pOwotfQotCi19IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOb3Rp
ZmljYXRpb25Qcm92aWRlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5vdGlmaWNh
dGlvblByb3ZpZGVyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZmNDBiYThmN2Qw
ZjlmYjBkNGQ5MTUxODkwNmQzYjEzNGU4MzZlN2IuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5vdGlmaWNh
dGlvblByb3ZpZGVyLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1MCArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0g
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotI2lmbmRlZiBXZWJOb3RpZmljYXRpb25Qcm92aWRlcl9oCi0jZGVmaW5lIFdlYk5vdGlmaWNh
dGlvblByb3ZpZGVyX2gKLQotI2luY2x1ZGUgIkFQSUNsaWVudC5oIgotI2luY2x1ZGUgIldLTm90
aWZpY2F0aW9uUHJvdmlkZXIuaCIKLSNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgotCi1uYW1lc3Bh
Y2UgV2ViS2l0IHsKLQotY2xhc3MgV2ViTm90aWZpY2F0aW9uOwotY2xhc3MgV2ViTm90aWZpY2F0
aW9uTWFuYWdlclByb3h5OwotICAgIAotY2xhc3MgV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIgOiBw
dWJsaWMgQVBJQ2xpZW50PFdLTm90aWZpY2F0aW9uUHJvdmlkZXIsIGtXS05vdGlmaWNhdGlvblBy
b3ZpZGVyQ3VycmVudFZlcnNpb24+IHsKLXB1YmxpYzoKLSAgICB2b2lkIHNob3coV2ViTm90aWZp
Y2F0aW9uKik7Ci0gICAgdm9pZCBjYW5jZWwoV2ViTm90aWZpY2F0aW9uKik7Ci0gICAgdm9pZCBk
aWREZXN0cm95Tm90aWZpY2F0aW9uKFdlYk5vdGlmaWNhdGlvbiopOwotCi0gICAgdm9pZCBhZGRO
b3RpZmljYXRpb25NYW5hZ2VyKFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eSopOwotICAgIHZv
aWQgcmVtb3ZlTm90aWZpY2F0aW9uTWFuYWdlcihXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkq
KTsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gV2ViTm90aWZpY2F0
aW9uUHJvdmlkZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApp
bmRleCBiOTc3ZDg4ZWYwMzNkNWY2NzQwZGU0MTQ2OTUyYzUzMDNiMjNhODM0Li5lZmY2NjExNjZl
MzZiMDUwYmE2N2E1YzIwM2Y5MWYxYjcxNTI0NDUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMzcsNiArMzcsOCBAQAogI2luY2x1ZGUgIk5hdGl2ZVdl
YktleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJOYXRpdmVXZWJNb3VzZUV2ZW50LmgiCiAjaW5j
bHVkZSAiTmF0aXZlV2ViV2hlZWxFdmVudC5oIgorI2luY2x1ZGUgIk5vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0LmgiCisjaW5jbHVkZSAiTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyLmgiCiAjaW5jbHVkZSAiUGFnZUNsaWVudC5oIgogI2luY2x1ZGUgIlByaW50SW5mby5o
IgogI2luY2x1ZGUgIlNlc3Npb25TdGF0ZS5oIgpAQCAtMTQ2LDYgKzE0OCw3IEBAIFdlYlBhZ2VQ
cm94eTo6V2ViUGFnZVByb3h5KFBhZ2VDbGllbnQqIHBhZ2VDbGllbnQsIFBhc3NSZWZQdHI8V2Vi
UHJvY2Vzc1Byb3h5PiBwCiAgICAgLCBtX21haW5GcmFtZSgwKQogICAgICwgbV91c2VyQWdlbnQo
c3RhbmRhcmRVc2VyQWdlbnQoKSkKICAgICAsIG1fZ2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXIodGhpcykKKyAgICAsIG1fbm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyKHRoaXMpCiAgICAgLCBtX2VzdGltYXRlZFByb2dyZXNzKDApCiAgICAgLCBtX2lzSW5XaW5k
b3cobV9wYWdlQ2xpZW50LT5pc1ZpZXdJbldpbmRvdygpKQogICAgICwgbV9pc1Zpc2libGUobV9w
YWdlQ2xpZW50LT5pc1ZpZXdWaXNpYmxlKCkpCkBAIC0zNjQsNiArMzY3LDcgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OmNsb3NlKCkKICAgICB9CiAKICAgICBtX2dlb2xvY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyLmludmFsaWRhdGVSZXF1ZXN0cygpOworICAgIG1fbm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyLmludmFsaWRhdGVSZXF1ZXN0cygpOwogCiAgICAgbV90b29s
VGlwID0gU3RyaW5nKCk7CiAKQEAgLTMxMzMsNiArMzEzNyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5
Ojpwcm9jZXNzRGlkQ3Jhc2goKQogICAgIH0KIAogICAgIG1fZ2VvbG9jYXRpb25QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXIuaW52YWxpZGF0ZVJlcXVlc3RzKCk7CisgICAgbV9ub3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaW52YWxpZGF0ZVJlcXVlc3RzKCk7CiAKICAgICBtX3Rv
b2xUaXAgPSBTdHJpbmcoKTsKIApAQCAtMzI5NSw2ICszMzAwLDE4IEBAIHZvaWQgV2ViUGFnZVBy
b3h5OjpyZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgZ2VvbG9j
YXRpb25JRCwKICAgICAgICAgcmVxdWVzdC0+ZGVueSgpOwogfQogCit2b2lkIFdlYlBhZ2VQcm94
eTo6cmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb24odWludDY0X3QgcmVxdWVzdElELCBjb25z
dCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIpCit7CisgICAgaWYgKCFpc1JlcXVlc3RJRFZhbGlk
KHJlcXVlc3RJRCkpCisgICAgICAgIHJldHVybjsKKworICAgIFJlZlB0cjxXZWJTZWN1cml0eU9y
aWdpbj4gb3JpZ2luID0gV2ViU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShvcmlnaW5JZGVudGlmaWVy
KTsKKyAgICBSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q+IHJlcXVlc3QgPSBt
X25vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcmVhdGVSZXF1ZXN0KHJlcXVl
c3RJRCk7CisgICAgCisgICAgaWYgKCFtX3VpQ2xpZW50LmRlY2lkZVBvbGljeUZvck5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0KHRoaXMsIG9yaWdpbi5nZXQoKSwgcmVxdWVzdC5nZXQoKSkp
CisgICAgICAgIHJlcXVlc3QtPmRlbnkoKTsKK30KKwogZmxvYXQgV2ViUGFnZVByb3h5OjpoZWFk
ZXJIZWlnaHQoV2ViRnJhbWVQcm94eSogZnJhbWUpCiB7CiAgICAgcmV0dXJuIG1fdWlDbGllbnQu
aGVhZGVySGVpZ2h0KHRoaXMsIGZyYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaAppbmRleCA4MjU1Y2Y0MWZjM2Y2ZGQxMjYzMTQ2YTBiNmRkMjM3NzFkZjQ3ZDA1Li40
N2ZjZDZjMDIyM2I4Y2E0YWEyMDcxMWY4NWRmNDg3YTAxN2NiNDlkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0zNiw2ICszNiw3IEBACiAjaWYgRU5BQkxFKFRP
VUNIX0VWRU5UUykKICNpbmNsdWRlICJOYXRpdmVXZWJUb3VjaEV2ZW50LmgiCiAjZW5kaWYKKyNp
bmNsdWRlICJOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIgogI2lu
Y2x1ZGUgIlBsYXRmb3JtUHJvY2Vzc0lkZW50aWZpZXIuaCIKICNpbmNsdWRlICJTYW5kYm94RXh0
ZW5zaW9uLmgiCiAjaW5jbHVkZSAiU2hhcmVhYmxlQml0bWFwLmgiCkBAIC02ODUsNiArNjg2LDgg
QEAgcHJpdmF0ZToKICAgICB2b2lkIHJlYXR0YWNoVG9XZWJQcm9jZXNzKCk7CiAgICAgdm9pZCBy
ZWF0dGFjaFRvV2ViUHJvY2Vzc1dpdGhJdGVtKFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qKTsKIAor
ICAgIHZvaWQgcmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb24odWludDY0X3Qgbm90aWZpY2F0
aW9uSUQsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllcik7CisgICAgCiAjaWYgVVNFKFRJ
TEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgdm9pZCBwYWdlRGlkUmVxdWVzdFNjcm9sbChjb25zdCBX
ZWJDb3JlOjpJbnRQb2ludCYpOwogI2VuZGlmCkBAIC04NjksNiArODcyLDcgQEAgcHJpdmF0ZToK
ICAgICBDb250ZXh0TWVudVN0YXRlIG1fYWN0aXZlQ29udGV4dE1lbnVTdGF0ZTsKICAgICBSZWZQ
dHI8V2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eT4gbV9vcGVuUGFuZWxSZXN1bHRMaXN0
ZW5lcjsKICAgICBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5IG1fZ2Vv
bG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7CisgICAgTm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHkgbV9ub3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXI7CiAKICAgICBkb3VibGUgbV9lc3RpbWF0ZWRQcm9ncmVzczsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggNmQyYWIz
OWUxNjFhZmMxYmNjN2UyNzVlYjNhOTI4YzJhZjY3ZmU4YS4uNWUzZDY5ODkxN2U5Yjc2NzVmMDk3
N2RlM2MyMTMwODMzNDM3MTlmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0xOTQsNiArMTk0LDkgQEAgbWVzc2FnZXMgLT4g
V2ViUGFnZVByb3h5IHsKIAogICAgICMgR2VvbG9jYXRpb24gbWVzc2FnZXMKICAgICBSZXF1ZXN0
R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgZ2VvbG9jYXRpb25JRCwgdWlu
dDY0X3QgZnJhbWVJRCwgV1RGOjpTdHJpbmcgb3JpZ2luSWRlbnRpZmllcikKKyAgICAKKyAgICAj
IE5vdGlmaWNhdGlvbiBtZXNzYWdlcworICAgIFJlcXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9u
KHVpbnQ2NF90IHJlcXVlc3RJRCwgV1RGOjpTdHJpbmcgb3JpZ2luSWRlbnRpZmllcikKIAogICAg
ICMgU3BlbGxpbmcgYW5kIGdyYW1tYXIgbWVzc2FnZXMKICNpZiBVU0UoVU5JRklFRF9URVhUX0NI
RUNLSU5HKSAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3Bw
CmluZGV4IDBiMmIxODdjNjBkODE5ZGUwZGI2MjQ5NjlmNGRjNTdhMTRiY2MwOWYuLjBjMTFjYWE1
YjliODVmZTJjNTg0MzA3YjI5Yjk5NTU3ZDIwMjc1ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAi
V2ViQmFja0ZvcndhcmRMaXN0SXRlbS5oIgogI2luY2x1ZGUgIldlYkNvbnRleHQuaCIKICNpbmNs
dWRlICJXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlLmgiCisjaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9u
TWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCiAjaW5jbHVkZSAiV2Vi
UHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIK
QEAgLTMzMiw2ICszMzMsMTEgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVTeW5j
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3IKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAorICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNz
V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5PigpKSB7CisgICAgICAgIG1fY29udGV4dC0+bm90
aWZpY2F0aW9uTWFuYWdlclByb3h5KCktPmRpZFJlY2VpdmVTeW5jTWVzc2FnZShjb25uZWN0aW9u
LCBtZXNzYWdlSUQsIGFyZ3VtZW50cywgcmVwbHkpOworICAgICAgICByZXR1cm47CisgICAgfQor
CiAgICAgdWludDY0X3QgcGFnZUlEID0gYXJndW1lbnRzLT5kZXN0aW5hdGlvbklEKCk7CiAgICAg
aWYgKCFwYWdlSUQpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
VUlDbGllbnQuY3BwCmluZGV4IGYxMzcwYWY1YTA3NjUxOWVkNmYzY2EwYjVkYzY1YjM3MDAwOTlk
ZDMuLjQwMzg0ZjhlYWE1OTYzYTI2MGM0ODY1YWY3NjA5MjY3OWFkOTlhZGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1
ZGUgIkltbXV0YWJsZURpY3Rpb25hcnkuaCIKICNpbmNsdWRlICJOYXRpdmVXZWJLZXlib2FyZEV2
ZW50LmgiCiAjaW5jbHVkZSAiTmF0aXZlV2ViV2hlZWxFdmVudC5oIgorI2luY2x1ZGUgIk5vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmgiCiAjaW5jbHVkZSAiV0tBUElDYXN0LmgiCiAjaW5j
bHVkZSAiV2ViTnVtYmVyLmgiCiAjaW5jbHVkZSAiV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQ
cm94eS5oIgpAQCAtMzMxLDYgKzMzMiwxNSBAQCBib29sIFdlYlVJQ2xpZW50OjpkZWNpZGVQb2xp
Y3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSogcGFnZQogICAg
IHJldHVybiB0cnVlOwogfQogCitib29sIFdlYlVJQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveHkqIHBhZ2UsIFdlYlNlY3VyaXR5
T3JpZ2luKiBvcmlnaW4sIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KiBwZXJtaXNzaW9u
UmVxdWVzdCkKK3sKKyAgICBpZiAoIW1fY2xpZW50LmRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgbV9j
bGllbnQuZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QodG9BUEko
cGFnZSksIHRvQVBJKG9yaWdpbiksIHRvQVBJKHBlcm1pc3Npb25SZXF1ZXN0KSwgbV9jbGllbnQu
Y2xpZW50SW5mbyk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIGZsb2F0IFdlYlVJQ2xpZW50Ojpo
ZWFkZXJIZWlnaHQoV2ViUGFnZVByb3h5KiBwYWdlLCBXZWJGcmFtZVByb3h5KiBmcmFtZSkKIHsK
ICAgICBpZiAoIW1fY2xpZW50LmhlYWRlckhlaWdodCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlVJQ2xpZW50LmgKaW5kZXggNTZlMDk4OGNiNzU1M2NjOTQ5MTgzMzliMGZkM2YzYjNiNjNmNzhm
Zi4uODM1ZTZjZWI3YTA2YjNiMzgzMmEyYWQxY2E0NzgzOTAyNzU1ZjMxOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmgKQEAgLTQ3LDYgKzQ3LDcgQEAgY2xhc3MgQVBJT2Jq
ZWN0OwogY2xhc3MgR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFByb3h5OwogY2xhc3MgTmF0
aXZlV2ViS2V5Ym9hcmRFdmVudDsKIGNsYXNzIE5hdGl2ZVdlYldoZWVsRXZlbnQ7CitjbGFzcyBO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDsKIGNsYXNzIFdlYkRhdGE7CiBjbGFzcyBXZWJG
cmFtZVByb3h5OwogY2xhc3MgV2ViUGFnZVByb3h5OwpAQCAtOTksNiArMTAwLDcgQEAgcHVibGlj
OgogCiAgICAgYm9vbCBydW5PcGVuUGFuZWwoV2ViUGFnZVByb3h5KiwgV2ViRnJhbWVQcm94eSos
IFdlYk9wZW5QYW5lbFBhcmFtZXRlcnMqLCBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5
Kik7CiAgICAgYm9vbCBkZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0
KFdlYlBhZ2VQcm94eSosIFdlYkZyYW1lUHJveHkqLCBXZWJTZWN1cml0eU9yaWdpbiosIEdlb2xv
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3RQcm94eSopOworICAgIGJvb2wgZGVjaWRlUG9saWN5Rm9y
Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3h5KiwgV2ViU2VjdXJpdHlP
cmlnaW4qLCBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCopOwogCiAgICAgLy8gUHJpbnRp
bmcuCiAgICAgZmxvYXQgaGVhZGVySGVpZ2h0KFdlYlBhZ2VQcm94eSosIFdlYkZyYW1lUHJveHkq
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCAxZmZlOWE5ZTg3NDJmYzgxOTA1N2JiY2YyMTVmYmZlNDYxM2YwNDQwLi42OGU5YTU0
ZjU0ZGU4ZWQ3OGZmN2JjNjA0YWViZWE5YmVhYmUyZjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNDYsMjQgKzI0NiwzMyBA
QAogCQkxQ0E4Qjk1NDEyN0M4OTE1MDA1NzZDMkIgLyogV2ViSW5zcGVjdG9yTWFjLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM4RTJEQUQxMjc4QzVC
MjAwQkM3QkQwIC8qIFdlYkluc3BlY3Rvck1hYy5tbSAqLzsgfTsKIAkJMjlDRDU1QUExMjhFMjk0
RjAwMTMzQzg1IC8qIFdLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3QuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5Q0Q1NUE4MTI4RTI5NEYwMDEzM0M4
NSAvKiBXS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0LmggKi87IH07CiAJCTI5Q0Q1NUFCMTI4
RTI5NEYwMDEzM0M4NSAvKiBXS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0Lm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjlDRDU1QTkxMjhFMjk0RjAw
MTMzQzg1IC8qIFdLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3QubW0gKi87IH07Ci0JCTMxMDk5
OTZGMTQ2Qzc0MUQwMDI5REVCOSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMDk5OTZBMTQ2Qzcz
OTIwMDI5REVCOSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaCAqLzsgfTsKLQkJMzEw
OTk5NzAxNDZDNzQyMDAwMjlERUI5IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTA5OTk2QjE0
NkM3M0IxMDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcCAqLzsgfTsK
IAkJMzEwOTk5NzMxNDZDNzVBMjAwMjlERUI5IC8qIFdlYk5vdGlmaWNhdGlvbkNsaWVudC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTA5OTk3MTE0
NkM3NTlCMDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcCAqLzsgfTsKLQkJMzEw
OTk5N0ExNDZDOEIxNDAwMjlERUI5IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEwOTk5NzgxNDZDOEIx
NDAwMjlERUI5IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwICovOyB9OwotCQkzMTA5OTk3
QjE0NkM4QjE0MDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEwOTk5NzkxNDZDOEIxNDAwMjlE
RUI5IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXIuaCAqLzsgfTsKIAkJMzEwOTk5QzcxNDZDOUUz
RDAwMjlERUI5IC8qIFdlYk5vdGlmaWNhdGlvbkNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEwOTk5NjgxNDZDNzFGNTAwMjlERUI5IC8qIFdl
Yk5vdGlmaWNhdGlvbkNsaWVudC5oICovOyB9OwotCQkzMTJDMEM0NzE0NkREQkJEMDAxNkM5MTEg
LyogV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMzEyQzBDNDYxNDZEREJCQzAwMTZDOTExIC8qIFdlYk5vdGlm
aWNhdGlvblByb3ZpZGVyLmNwcCAqLzsgfTsKIAkJMzEyQzBDNEExNDZEREM4QTAwMTZDOTExIC8q
IFdLTm90aWZpY2F0aW9uUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDMxMkMwQzQ5MTQ2RERDOEEwMDE2QzkxMSAvKiBXS05vdGlmaWNhdGlv
blByb3ZpZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKKwkJMzEzMTI2MUUxNDhGRjgyQzAwQkEyQTM5IC8qIE5vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAzMTMxMjYxOTE0OEZGODJCMDBCQTJBMzkgLyogTm90aWZpY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyLmNwcCAqLzsgfTsKKwkJMzEzMTI2MUYxNDhGRjgyQzAwQkEyQTM5IC8q
IE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEzMTI2MUExNDhGRjgyQjAwQkEyQTM5IC8q
IE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oICovOyB9OworCQkzMTMxMjYy
MDE0OEZGODJDMDBCQTJBMzkgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTMxMjYxQjE0OEZGODJCMDBC
QTJBMzkgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAgKi87IH07CisJCTMxMzEyNjIxMTQ4
RkY4MkMwMEJBMkEzOSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTMxMjYxQzE0OEZGODJCMDBCQTJBMzkg
LyogV2ViTm90aWZpY2F0aW9uTWFuYWdlci5oICovOyB9OwogCQkzMThCRTE2NzE0NzM0MzM3MDBB
OEZCQjIgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxOEJFMTY1MTQ3
MzQzMzcwMEE4RkJCMiAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2
ZXIuY3BwICovOyB9OwogCQkzMThCRTE2ODE0NzM0MzM3MDBBOEZCQjIgLyogV2ViTm90aWZpY2F0
aW9uTWFuYWdlclByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDMxOEJFMTY2MTQ3MzQzMzcwMEE4RkJCMiAvKiBXZWJOb3RpZmljYXRp
b25NYW5hZ2VyUHJveHlNZXNzYWdlcy5oICovOyB9OwogCQkzMThCRTE3MTE0NzQzREIxMDBBOEZC
QjIgLyogV0tOb3RpZmljYXRpb25NYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAzMThCRTE3MDE0NzQzREIxMDBBOEZCQjIgLyogV0tOb3RpZmlj
YXRpb25NYW5hZ2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJMzE4QkUxNzUxNDc0M0RENzAwQThGQkIyIC8qIFdLTm90aWZpY2F0aW9uTWFuYWdl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMThC
RTE3NDE0NzQzREQ2MDBBOEZCQjIgLyogV0tOb3RpZmljYXRpb25NYW5hZ2VyLmNwcCAqLzsgfTsK
IAkJMzE4QkUxNzcxNDc0M0U2MDAwQThGQkIyIC8qIFdLTm90aWZpY2F0aW9uLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxOEJFMTc2MTQ3NDNFNjAw
MEE4RkJCMiAvKiBXS05vdGlmaWNhdGlvbi5jcHAgKi87IH07CiAJCTMxOEJFMTc5MTQ3NDNFNkYw
MEE4RkJCMiAvKiBXS05vdGlmaWNhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMzE4QkUxNzgxNDc0M0U2QTAwQThGQkIyIC8qIFdLTm90aWZpY2F0
aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
MzFBMkVDNDgxNDg5OTdDMjAwODEwRDcxIC8qIFdlYk5vdGlmaWNhdGlvbi5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUEyRUM0MTE0ODk5N0JFMDA4
MTBENzEgLyogV2ViTm90aWZpY2F0aW9uLmNwcCAqLzsgfTsKKwkJMzFBMkVDNDkxNDg5OTdDMjAw
ODEwRDcxIC8qIFdlYk5vdGlmaWNhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMzFBMkVDNDIxNDg5OTdCRTAwODEwRDcxIC8qIFdlYk5vdGlmaWNh
dGlvbi5oICovOyB9OworCQkzMUEyRUM0QTE0ODk5N0MyMDA4MTBENzEgLyogV2ViTm90aWZpY2F0
aW9uTWFuYWdlclByb3h5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDMxQTJFQzQzMTQ4OTk3QkUwMDgxMEQ3MSAvKiBXZWJOb3RpZmljYXRpb25NYW5h
Z2VyUHJveHkuY3BwICovOyB9OworCQkzMUEyRUM0QjE0ODk5N0MyMDA4MTBENzEgLyogV2ViTm90
aWZpY2F0aW9uTWFuYWdlclByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAzMUEyRUM0NDE0ODk5N0JGMDA4MTBENzEgLyogV2ViTm90aWZpY2F0aW9u
TWFuYWdlclByb3h5LmggKi87IH07CisJCTMxQTJFQzREMTQ4OTk3QzIwMDgxMEQ3MSAvKiBXZWJO
b3RpZmljYXRpb25Qcm92aWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAzMUEyRUM0NjE0ODk5N0MwMDA4MTBENzEgLyogV2ViTm90aWZpY2F0aW9u
UHJvdmlkZXIuY3BwICovOyB9OworCQkzMUEyRUM0RTE0ODk5N0MyMDA4MTBENzEgLyogV2ViTm90
aWZpY2F0aW9uUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDMxQTJFQzQ3MTQ4OTk3QzEwMDgxMEQ3MSAvKiBXZWJOb3RpZmljYXRpb25Qcm92
aWRlci5oICovOyB9OworCQkzMUEyRUM1MDE0ODk5ODA1MDA4MTBENzEgLyogTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFBMkVDNEYxNDg5OTgwNTAwODEwRDcxIC8qIE5vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCAqLzsgfTsKKwkJMzFBMkVD
NTIxNDg5OTgxOTAwODEwRDcxIC8qIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAz
MUEyRUM1MTE0ODk5ODE1MDA4MTBENzEgLyogTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkuaCAqLzsgfTsKKwkJMzFBMkVDNTUxNDg5OTgyRTAwODEwRDcxIC8qIE5vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDMxQTJFQzU0MTQ4OTk4MkUwMDgxMEQ3MSAvKiBOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdC5jcHAgKi87IH07CisJCTMxQTJFQzU2MTQ4OTlDMDkwMDgxMEQ3
MSAvKiBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFBMkVDNTMxNDg5OTgyNTAwODEwRDcxIC8qIE5v
dGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmggKi87IH07CisJCTMxQTJFQzc0MTQ4RDU5Q0Ew
MDgxMEQ3MSAvKiBXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUEyRUM3MjE0OEQ1OUJCMDA4MTBE
NzEgLyogV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTMxQTJFQzc3MTQ4RDY2MkUwMDgxMEQ3
MSAvKiBXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxQTJFQzc1MTQ4RDY1QkIwMDgxMEQ3MSAv
KiBXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcCAqLzsgfTsKIAkJMzFCQTkyNEQx
NDg4MzEyNjAwNjJFREI1IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFCQTky
NDgxNDg4MzA4MTAwNjJFREI1IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwICovOyB9OwogCQkzMUJBOTI0RTE0ODgzMTI2MDA2MkVEQjUgLyogV2ViTm90aWZpY2F0
aW9uTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAzMUJBOTI0OTE0ODgzMDgxMDA2MkVEQjUgLyogV2ViTm90aWZpY2F0aW9uTWFu
YWdlck1lc3NhZ2VzLmggKi87IH07Ci0JCTMxQzExQUIzMTQ4NDUyRTkwMDQ5QTRDQyAvKiBXZWJO
b3RpZmljYXRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMzFDMTFBQjExNDg0NTJFOTAwNDlBNENDIC8qIFdlYk5vdGlmaWNhdGlvbi5jcHAgKi87
IH07Ci0JCTMxQzExQUI0MTQ4NDUyRTkwMDQ5QTRDQyAvKiBXZWJOb3RpZmljYXRpb24uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxQzExQUIyMTQ4NDUy
RTkwMDQ5QTRDQyAvKiBXZWJOb3RpZmljYXRpb24uaCAqLzsgfTsKIAkJMzFFQTI1RDIxMzRGNzhD
MDAwNUIxNDUyIC8qIE5hdGl2ZVdlYk1vdXNlRXZlbnRNYWMubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUVBMjVEMDEzNEY3OEIyMDA1QjE0NTIgLyog
TmF0aXZlV2ViTW91c2VFdmVudE1hYy5tbSAqLzsgfTsKIAkJMzMwOTM0NDcxMzE1QjkyMjAwOTdB
N0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzMwOTM0NDMxMzE1QjkyMjAwOTdBN0JD
IC8qIFdlYkNvb2tpZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQkzMzA5MzQ0
ODEzMTVCOTIyMDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMzA5MzQ0NDEzMTVCOTIyMDA5
N0E3QkMgLyogV2ViQ29va2llTWFuYWdlck1lc3NhZ2VzLmggKi87IH07CkBAIC0xMjI1LDI1ICsx
MjM0LDM0IEBACiAJCTI5Q0Q1NUE4MTI4RTI5NEYwMDEzM0M4NSAvKiBXS0FjY2Vzc2liaWxpdHlX
ZWJQYWdlT2JqZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQWNjZXNz
aWJpbGl0eVdlYlBhZ2VPYmplY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjlD
RDU1QTkxMjhFMjk0RjAwMTMzQzg1IC8qIFdLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3QubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS0FjY2Vzc2liaWxpdHlX
ZWJQYWdlT2JqZWN0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMTA5OTk2ODE0
NkM3MUY1MDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9uQ2xpZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYk5vdGlmaWNhdGlvbkNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkz
MTA5OTk2QTE0NkM3MzkyMDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQkzMTA5OTk2QjE0NkM3M0IxMDAyOURFQjkgLyogV2ViTm90aWZp
Y2F0aW9uTWFuYWdlclByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTMxMDk5OTZEMTQ2QzczQzQwMDI5REVCOSAvKiBXZWJOb3RpZmljYXRpb25NYW5h
Z2VyUHJveHkubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViTm90aWZpY2F0
aW9uTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkzMTA5OTk3MTE0NkM3NTlCMDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYk5vdGlmaWNhdGlvbkNsaWVu
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTMxMDk5OTc4MTQ2QzhCMTQwMDI5
REVCOSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwOyBwYXRoID0gTm90aWZp
Y2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJMzEwOTk5NzkxNDZDOEIxNDAwMjlERUI5IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFn
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViTm90aWZpY2F0aW9uTWFu
YWdlci5oOyBwYXRoID0gTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTMxMkMwQzQ2MTQ2RERCQkMwMDE2QzkxMSAvKiBX
ZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBXZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTMxMkMwQzQ4MTQ2RERCRDMwMDE2QzkxMSAvKiBXZWJOb3RpZmljYXRpb25Qcm92
aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJOb3RpZmljYXRpb25Qcm92aWRlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkzMTJDMEM0OTE0NkREQzhBMDAxNkM5MTEgLyogV0tOb3Rp
ZmljYXRpb25Qcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS05v
dGlmaWNhdGlvblByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxMzEy
NjE5MTQ4RkY4MkIwMEJBMkEzOSAvKiBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMzEzMTI2MUExNDhGRjgyQjAwQkEyQTM5IC8qIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMzEzMTI2MUIxNDhGRjgyQjAwQkEyQTM5IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViTm90aWZpY2F0aW9uTWFu
YWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxMzEyNjFDMTQ4RkY4MkIw
MEJBMkEzOSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMzEzMTI2MUQxNDhGRjgyQzAwQkEyQTM5IC8qIFdlYk5vdGlmaWNhdGlvbk1h
bmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViTm90aWZpY2F0aW9u
TWFuYWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzE4QkUx
NjUxNDczNDMzNzAwQThGQkIyIC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eU1lc3NhZ2VS
ZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJOb3Rp
ZmljYXRpb25NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkzMThCRTE2NjE0NzM0MzM3MDBBOEZCQjIgLyogV2ViTm90aWZpY2F0aW9u
TWFuYWdlclByb3h5TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMzE4QkUxNzAxNDc0M0RCMTAwQThGQkIyIC8qIFdLTm90aWZpY2F0aW9uTWFu
YWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS05vdGlmaWNhdGlvbk1h
bmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzE4QkUxNzQxNDc0M0RENjAw
QThGQkIyIC8qIFdLTm90aWZpY2F0aW9uTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBXS05vdGlmaWNhdGlvbk1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkzMThCRTE3NjE0NzQzRTYwMDBBOEZCQjIgLyogV0tOb3RpZmljYXRp
b24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tOb3RpZmljYXRp
b24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMThCRTE3ODE0NzQzRTZBMDBB
OEZCQjIgLyogV0tOb3RpZmljYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tOb3RpZmljYXRpb24u
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzFBMkVDNDExNDg5OTdCRTAwODEwRDcx
IC8qIFdlYk5vdGlmaWNhdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXZWJOb3RpZmljYXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkz
MUEyRUM0MjE0ODk5N0JFMDA4MTBENzEgLyogV2ViTm90aWZpY2F0aW9uLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYk5vdGlmaWNhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkzMUEyRUM0MzE0ODk5N0JFMDA4MTBENzEgLyogV2ViTm90aWZpY2F0aW9u
TWFuYWdlclByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdl
Yk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTMxQTJFQzQ0MTQ4OTk3QkYwMDgxMEQ3MSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJv
eHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViTm90aWZpY2F0aW9uTWFu
YWdlclByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxQTJFQzQ1MTQ4OTk3
QkYwMDgxMEQ3MSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5Lm1lc3NhZ2Vz
LmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMUEyRUM0NjE0ODk5N0MwMDA4MTBE
NzEgLyogV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkzMUEyRUM0NzE0ODk5N0MxMDA4MTBENzEgLyogV2ViTm90aWZpY2F0
aW9uUHJvdmlkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViTm90aWZp
Y2F0aW9uUHJvdmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzFBMkVDNEYx
NDg5OTgwNTAwODEwRDcxIC8qIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMzFBMkVDNTExNDg5OTgxNTAwODEwRDcxIC8qIE5vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTMxQTJFQzUzMTQ4OTk4MjUwMDgxMEQ3MSAvKiBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVz
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMUEyRUM1NDE0ODk5ODJFMDA4MTBENzEgLyogTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkzMUEyRUM3MjE0OEQ1OUJCMDA4MTBENzEgLyogV0tOb3RpZmlj
YXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS05vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxQTJFQzc1
MTQ4RDY1QkIwMDgxMEQ3MSAvKiBXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLTm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMUJBOTI0ODE0
ODgzMDgxMDA2MkVEQjUgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJOb3RpZmljYXRpb25N
YW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MzFCQTkyNDkxNDg4MzA4MTAwNjJFREI1IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdl
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJOb3RpZmljYXRpb25NYW5h
Z2VyTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMzFDMTFBQjExNDg0
NTJFOTAwNDlBNENDIC8qIFdlYk5vdGlmaWNhdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBXZWJOb3RpZmljYXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQkzMUMxMUFCMjE0ODQ1MkU5MDA0OUE0Q0MgLyogV2ViTm90aWZpY2F0aW9uLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYk5vdGlmaWNhdGlvbi5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMUVBMjVEMDEzNEY3OEIyMDA1QjE0NTIgLyogTmF0
aXZlV2ViTW91c2VFdmVudE1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE5hdGl2ZVdlYk1v
dXNlRXZlbnRNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxRUEyNUQzMTM0
Rjc4RDYwMDVCMTQ1MiAvKiBOYXRpdmVXZWJNb3VzZUV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IE5hdGl2ZVdlYk1vdXNlRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMzJEQkNGNUUwMzcwQURFRTAwQzkxNzgzIC8qIFdlYktpdDJQcmVmaXguaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViS2l0MlByZWZpeC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjQ4MCwxMCArMjQ5OCwzMiBAQAogCQkzMTA5OTk3NDE0
NkM4QUE4MDAyOURFQjkgLyogTm90aWZpY2F0aW9ucyAoVXNlcikgKi8gPSB7CiAJCQlpc2EgPSBQ
QlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCTMxMDk5OTc4MTQ2QzhCMTQwMDI5REVCOSAv
KiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcCAqLywKLQkJCQkzMTA5OTk3OTE0NkM4QjE0MDAy
OURFQjkgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlci5oICovLAorCQkJCTMxMzEyNjE5MTQ4RkY4
MkIwMEJBMkEzOSAvKiBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwICov
LAorCQkJCTMxMzEyNjFBMTQ4RkY4MkIwMEJBMkEzOSAvKiBOb3RpZmljYXRpb25QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXIuaCAqLywKKwkJCQkzMTMxMjYxQjE0OEZGODJCMDBCQTJBMzkgLyogV2Vi
Tm90aWZpY2F0aW9uTWFuYWdlci5jcHAgKi8sCisJCQkJMzEzMTI2MUMxNDhGRjgyQjAwQkEyQTM5
IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXIuaCAqLywKKwkJCQkzMTMxMjYxRDE0OEZGODJDMDBC
QTJBMzkgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlci5tZXNzYWdlcy5pbiAqLywKIAkJCSk7CiAJ
CQluYW1lID0gIk5vdGlmaWNhdGlvbnMgKFVzZXIpIjsKKwkJCXBhdGggPSBOb3RpZmljYXRpb25z
OworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKKwkJMzFBMkVDNDAxNDg5OTczNzAw
ODEwRDcxIC8qIE5vdGlmaWNhdGlvbnMgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNo
aWxkcmVuID0gKAorCQkJCTMxQTJFQzRGMTQ4OTk4MDUwMDgxMEQ3MSAvKiBOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgKi8sCisJCQkJMzFBMkVDNTExNDg5OTgx
NTAwODEwRDcxIC8qIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Lmgg
Ki8sCisJCQkJMzFBMkVDNTQxNDg5OTgyRTAwODEwRDcxIC8qIE5vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0LmNwcCAqLywKKwkJCQkzMUEyRUM1MzE0ODk5ODI1MDA4MTBENzEgLyogTm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaCAqLywKKwkJCQkzMUEyRUM0MTE0ODk5N0JFMDA4MTBE
NzEgLyogV2ViTm90aWZpY2F0aW9uLmNwcCAqLywKKwkJCQkzMUEyRUM0MjE0ODk5N0JFMDA4MTBE
NzEgLyogV2ViTm90aWZpY2F0aW9uLmggKi8sCisJCQkJMzFBMkVDNDMxNDg5OTdCRTAwODEwRDcx
IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAgKi8sCisJCQkJMzFBMkVDNDQxNDg5
OTdCRjAwODEwRDcxIC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oICovLAorCQkJCTMx
QTJFQzQ1MTQ4OTk3QkYwMDgxMEQ3MSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkubWVz
c2FnZXMuaW4gKi8sCisJCQkJMzFBMkVDNDYxNDg5OTdDMDAwODEwRDcxIC8qIFdlYk5vdGlmaWNh
dGlvblByb3ZpZGVyLmNwcCAqLywKKwkJCQkzMUEyRUM0NzE0ODk5N0MxMDA4MTBENzEgLyogV2Vi
Tm90aWZpY2F0aW9uUHJvdmlkZXIuaCAqLywKKwkJCSk7CisJCQlwYXRoID0gTm90aWZpY2F0aW9u
czsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CiAJCTMyQzg4REZGMDM3MUMyNDIw
MEM5MTc4MyAvKiBPdGhlciBTb3VyY2VzICovID0gewpAQCAtMjc1OCw2ICsyNzk4LDcgQEAKIAkJ
CQkxQUI3RDRDNzEyODhBQTlBMDBDRkQwOEMgLyogRG93bmxvYWRzICovLAogCQkJCUJDMTExQjE4
MTEyRjVGQjQwMDMzN0JBQiAvKiBMYXVuY2hlciAqLywKIAkJCQlCQ0NGMDg1QzExM0YzQjc1MDBD
NjUwQzUgLyogbWFjICovLAorCQkJCTMxQTJFQzQwMTQ4OTk3MzcwMDgxMEQ3MSAvKiBOb3RpZmlj
YXRpb25zICovLAogCQkJCTFBRUZDQzA1MTFEMDFGMzQwMDgyMTlEMyAvKiBQbHVnaW5zICovLAog
CQkJCTFBNjQyNTY3MTJERTQyRUMwMENBQUUyQyAvKiBCYWNraW5nU3RvcmUuY3BwICovLAogCQkJ
CTFBNjQyNTY2MTJERTQyRUMwMENBQUUyQyAvKiBCYWNraW5nU3RvcmUuaCAqLywKQEAgLTI4NDks
MTMgKzI4OTAsNiBAQAogCQkJCTMzRDNBM0I5MTMzOTYwNjIwMDcwOUJFNCAvKiBXZWJNZWRpYUNh
Y2hlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluICovLAogCQkJCUJDRjY5RkExMTE3NkQwMTQwMDQ3
MUE1MiAvKiBXZWJOYXZpZ2F0aW9uRGF0YS5jcHAgKi8sCiAJCQkJQkNGNjlGQTAxMTc2RDAxNDAw
NDcxQTUyIC8qIFdlYk5hdmlnYXRpb25EYXRhLmggKi8sCi0JCQkJMzFDMTFBQjExNDg0NTJFOTAw
NDlBNENDIC8qIFdlYk5vdGlmaWNhdGlvbi5jcHAgKi8sCi0JCQkJMzFDMTFBQjIxNDg0NTJFOTAw
NDlBNENDIC8qIFdlYk5vdGlmaWNhdGlvbi5oICovLAotCQkJCTMxMDk5OTZCMTQ2QzczQjEwMDI5
REVCOSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwICovLAotCQkJCTMxMDk5OTZB
MTQ2QzczOTIwMDI5REVCOSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaCAqLywKLQkJ
CQkzMTA5OTk2RDE0NkM3M0M0MDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5
Lm1lc3NhZ2VzLmluICovLAotCQkJCTMxMkMwQzQ2MTQ2RERCQkMwMDE2QzkxMSAvKiBXZWJOb3Rp
ZmljYXRpb25Qcm92aWRlci5jcHAgKi8sCi0JCQkJMzEyQzBDNDgxNDZEREJEMzAwMTZDOTExIC8q
IFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmggKi8sCiAJCQkJQkMxREZFQTMxMkIzMUY4NzAwNURG
NzMwIC8qIFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHkuY3BwICovLAogCQkJCUJDMURG
RUEyMTJCMzFGODcwMDVERjczMCAvKiBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5Lmgg
Ki8sCiAJCQkJNTE1MzU2OUExMjkxQjFEMjAwMDc0OURDIC8qIFdlYlBhZ2VDb250ZXh0TWVudUNs
aWVudC5jcHAgKi8sCkBAIC0yOTc2LDYgKzMwMTAsOCBAQAogCQkJCTUxOEFDQUU5MTJBRUU2QkIw
MEIwNEI4MyAvKiBXS1Byb3RlY3Rpb25TcGFjZVR5cGVzLmggKi8sCiAJCQkJMzMzNjc2MzgxMzBD
OTlEQzAwNkM5REUyIC8qIFdLUmVzb3VyY2VDYWNoZU1hbmFnZXIuY3BwICovLAogCQkJCTMzMzY3
NjM5MTMwQzk5REMwMDZDOURFMiAvKiBXS1Jlc291cmNlQ2FjaGVNYW5hZ2VyLmggKi8sCisJCQkJ
MzFBMkVDNzIxNDhENTlCQjAwODEwRDcxIC8qIFdLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3QuaCAqLywKKwkJCQkzMUEyRUM3NTE0OEQ2NUJCMDA4MTBENzEgLyogV0tOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdC5jcHAgKi8sCiAJCQkpOwogCQkJcGF0aCA9IEM7CiAJCQlzb3VyY2VU
cmVlID0gIjxncm91cD4iOwpAQCAtNDA1NSwxNSArNDA5MSwyMCBAQAogCQkJCUJDMDlCOEY5MTQ3
NDYwRjcwMDVGNTYyNSAvKiBXZWJDb250ZXh0Q29ubmVjdGlvbkNsaWVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMzc4OEEwNUMxNDc0M0M5MDAwNjMxOUU1IC8qIFdLQnJvd3NpbmdDb250ZXh0Q29u
dHJvbGxlclByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRTlDMEI3MTQ4NDcxNDcwMEUz
M0Q2MSAvKiBXZWJDb25uZWN0aW9uTWVzc2FnZUtpbmRzLmggaW4gSGVhZGVycyAqLywKLQkJCQkz
MTA5OTk2RjE0NkM3NDFEMDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5Lmgg
aW4gSGVhZGVycyAqLywKLQkJCQkzMTA5OTk3QjE0NkM4QjE0MDAyOURFQjkgLyogV2ViTm90aWZp
Y2F0aW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzEwOTk5QzcxNDZDOUUzRDAwMjlE
RUI5IC8qIFdlYk5vdGlmaWNhdGlvbkNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzEyQzBD
NEExNDZEREM4QTAwMTZDOTExIC8qIFdLTm90aWZpY2F0aW9uUHJvdmlkZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTMxOEJFMTY4MTQ3MzQzMzcwMEE4RkJCMiAvKiBXZWJOb3RpZmljYXRpb25NYW5h
Z2VyUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE4QkUxNzExNDc0M0RCMTAw
QThGQkIyIC8qIFdLTm90aWZpY2F0aW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE4
QkUxNzkxNDc0M0U2RjAwQThGQkIyIC8qIFdLTm90aWZpY2F0aW9uLmggaW4gSGVhZGVycyAqLywK
LQkJCQkzMUMxMUFCNDE0ODQ1MkU5MDA0OUE0Q0MgLyogV2ViTm90aWZpY2F0aW9uLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkzMUJBOTI0RTE0ODgzMTI2MDA2MkVEQjUgLyogV2ViTm90aWZpY2F0aW9u
TWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKKwkJCQkzMUEyRUM0OTE0ODk5N0MyMDA4
MTBENzEgLyogV2ViTm90aWZpY2F0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQkzMUEyRUM0QjE0
ODk5N0MyMDA4MTBENzEgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmggaW4gSGVhZGVy
cyAqLywKKwkJCQkzMUEyRUM0RTE0ODk5N0MyMDA4MTBENzEgLyogV2ViTm90aWZpY2F0aW9uUHJv
dmlkZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTMxQTJFQzUyMTQ4OTk4MTkwMDgxMEQ3MSAvKiBO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJMzFBMkVDNTYxNDg5OUMwOTAwODEwRDcxIC8qIE5vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQkzMUEyRUM3NDE0OEQ1OUNBMDA4MTBENzEgLyog
V0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzEz
MTI2MUYxNDhGRjgyQzAwQkEyQTM5IC8qIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzEzMTI2MjExNDhGRjgyQzAwQkEyQTM5IC8qIFdl
Yk5vdGlmaWNhdGlvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlG
b3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtNDc2NiwxNiArNDgwNywy
MCBAQAogCQkJCUJDNEE2Mjk2MTQ3MzEzQTAwMDZDNjgxQSAvKiBXS0Nvbm5lY3Rpb25SZWYuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQkM0QTYyQTcxNDc0NEVDNzAwNkM2ODFBIC8qIFdlYkNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMwOUI4RjgxNDc0NjBG
NzAwNUY1NjI1IC8qIFdlYkNvbnRleHRDb25uZWN0aW9uQ2xpZW50LmNwcCBpbiBTb3VyY2VzICov
LAotCQkJCTMxMDk5OTcwMTQ2Qzc0MjAwMDI5REVCOSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2Vy
UHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzEwOTk5NzMxNDZDNzVBMjAwMjlERUI5IC8q
IFdlYk5vdGlmaWNhdGlvbkNsaWVudC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkzMTA5OTk3QTE0
NkM4QjE0MDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAgaW4gU291cmNlcyAq
LywKLQkJCQkzMTJDMEM0NzE0NkREQkJEMDAxNkM5MTEgLyogV2ViTm90aWZpY2F0aW9uUHJvdmlk
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzE4QkUxNjcxNDczNDMzNzAwQThGQkIyIC8qIFdl
Yk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkzMThCRTE3NTE0NzQzREQ3MDBBOEZCQjIgLyogV0tOb3RpZmljYXRpb25NYW5hZ2Vy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxOEJFMTc3MTQ3NDNFNjAwMEE4RkJCMiAvKiBXS05v
dGlmaWNhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkzMUMxMUFCMzE0ODQ1MkU5MDA0OUE0
Q0MgLyogV2ViTm90aWZpY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxQkE5MjREMTQ4
ODMxMjYwMDYyRURCNSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUJDRDM2NzVDMTQ4QzI2QzAwMDQ0N0U4NyAvKiBXZWJDb25u
ZWN0aW9uVG9VSVByb2Nlc3MuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMzFBMkVDNDgxNDg5OTdD
MjAwODEwRDcxIC8qIFdlYk5vdGlmaWNhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkzMUEy
RUM0QTE0ODk5N0MyMDA4MTBENzEgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcCBp
biBTb3VyY2VzICovLAorCQkJCTMxQTJFQzREMTQ4OTk3QzIwMDgxMEQ3MSAvKiBXZWJOb3RpZmlj
YXRpb25Qcm92aWRlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkzMUEyRUM1MDE0ODk5ODA1MDA4
MTBENzEgLyogTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJMzFBMkVDNTUxNDg5OTgyRTAwODEwRDcxIC8qIE5vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTMxQTJFQzc3MTQ4RDY2
MkUwMDgxMEQ3MSAvKiBXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCTMxMzEyNjFFMTQ4RkY4MkMwMEJBMkEzOSAvKiBOb3RpZmljYXRpb25QZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMzEzMTI2MjAxNDhG
RjgyQzAwQkEyQTM5IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjA4MjhmODM0OThmNWFkMWIwZGNjY2IyMTAwYTU4ZjU4NDAzNDc1
YjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNh
dGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcApAQCAtMCwwICsx
LDEyMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCIKKworI2luY2x1ZGUgIldlYkNvcmVB
cmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eU1l
c3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUGFnZS5oIgorI2luY2x1ZGUgIldlYlBhZ2VQcm94eU1l
c3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTm90
aWZpY2F0aW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TY3JpcHRFeGVjdXRpb25Db250ZXh0Lmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgorCit1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKKyNpZiBFTkFCTEUoTk9USUZJQ0FUSU9O
UykKK3N0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZVJlcXVlc3RJRCgpCit7CisgICAgc3RhdGljIHVp
bnQ2NF90IHVuaXF1ZVJlcXVlc3RJRCA9IDE7CisgICAgcmV0dXJuIHVuaXF1ZVJlcXVlc3RJRCsr
OworfQorI2VuZGlmCisKK1Bhc3NSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyPiBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OmNyZWF0ZShXZWJQ
YWdlKiBwYWdlKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgTm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyKHBhZ2UpKTsKK30KKworTm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyOjpOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoV2ViUGFn
ZSogcGFnZSkKKyAgICA6IG1fcGFnZShwYWdlKQoreworfQorCitOb3RpZmljYXRpb25QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXI6On5Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIo
KQoreworfQorCit2b2lkIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6c3Rh
cnRSZXF1ZXN0KFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4sIFBhc3NSZWZQdHI8Vm9pZENhbGxiYWNr
PiBjYWxsYmFjaykKK3sKKyNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKKyAgICB1aW50NjRfdCBy
ZXF1ZXN0SUQgPSBnZW5lcmF0ZVJlcXVlc3RJRCgpOworICAgIG1fb3JpZ2luVG9JRE1hcC5zZXQo
b3JpZ2luLCByZXF1ZXN0SUQpOworICAgIG1faWRUb09yaWdpbk1hcC5zZXQocmVxdWVzdElELCBv
cmlnaW4pOworICAgIG1faWRUb0NhbGxiYWNrTWFwLnNldChyZXF1ZXN0SUQsIGNhbGxiYWNrKTsK
KyAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UmVxdWVzdE5vdGlmaWNh
dGlvblBlcm1pc3Npb24ocmVxdWVzdElELCBvcmlnaW4tPmRhdGFiYXNlSWRlbnRpZmllcigpKSk7
CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShvcmlnaW4pOworICAgIFVOVVNFRF9QQVJBTShjYWxs
YmFjayk7CisjZW5kaWYKK30KKwordm9pZCBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXI6OmNhbmNlbFJlcXVlc3QoU2VjdXJpdHlPcmlnaW4qIG9yaWdpbikKK3sKKyNpZiBFTkFC
TEUoTk9USUZJQ0FUSU9OUykKKyAgICB1aW50NjRfdCBpZCA9IG1fb3JpZ2luVG9JRE1hcC50YWtl
KG9yaWdpbik7CisgICAgaWYgKCFpZCkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIG1faWRU
b09yaWdpbk1hcC5yZW1vdmUoaWQpOworICAgIG1faWRUb0NhbGxiYWNrTWFwLnJlbW92ZShpZCk7
CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShvcmlnaW4pOworI2VuZGlmCit9CisKK05vdGlmaWNh
dGlvblByZXNlbnRlcjo6UGVybWlzc2lvbiBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXI6OnBlcm1pc3Npb25MZXZlbChTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmlnaW4pCit7
CisjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCisgICAgdWludDY0X3QgcGVybWlzc2lvbkxldmVs
OworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmNvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2Fn
ZXM6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6Tm90aWZpY2F0aW9uUGVybWlzc2lvbkxl
dmVsKHNlY3VyaXR5T3JpZ2luLT5kYXRhYmFzZUlkZW50aWZpZXIoKSksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZXNzYWdlczo6V2ViTm90aWZpY2F0
aW9uTWFuYWdlclByb3h5OjpOb3RpZmljYXRpb25QZXJtaXNzaW9uTGV2ZWw6OlJlcGx5KHBlcm1p
c3Npb25MZXZlbCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAwKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Tm90aWZpY2F0aW9uUHJlc2VudGVyOjpQ
ZXJtaXNzaW9uPihwZXJtaXNzaW9uTGV2ZWwpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oc2Vj
dXJpdHlPcmlnaW4pOworICAgIHJldHVybiBOb3RpZmljYXRpb25QcmVzZW50ZXI6OlBlcm1pc3Np
b25EZW5pZWQ7CisjZW5kaWYKK30KKwordm9pZCBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXI6OmRpZFJlY2VpdmVOb3RpZmljYXRpb25QZXJtaXNzaW9uRGVjaXNpb24odWludDY0
X3QgcmVxdWVzdElELCBib29sIGFsbG93ZWQpCit7CisjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMp
CisgICAgaWYgKCFpc1JlcXVlc3RJRFZhbGlkKHJlcXVlc3RJRCkpCisgICAgICAgIHJldHVybjsK
KworICAgIFJlZlB0cjxWb2lkQ2FsbGJhY2s+IGNhbGxiYWNrID0gbV9pZFRvQ2FsbGJhY2tNYXAu
dGFrZShyZXF1ZXN0SUQpOworICAgIGlmICghY2FsbGJhY2spCisgICAgICAgIHJldHVybjsKKyAg
ICAKKyAgICBjYWxsYmFjay0+aGFuZGxlRXZlbnQoKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFN
KHJlcXVlc3RJRCk7CisgICAgVU5VU0VEX1BBUkFNKGFsbG93ZWQpOworI2VuZGlmICAgIAorfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIu
aCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NGFiOThmMmVjZThkNTUzMGNk
OTU3MmUzMzQ4ZmI4Njk3MzhkZDdhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlci5oCkBAIC0wLDAgKzEsNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIE5vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcl9oCisjZGVmaW5lIE5vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlcl9oCisKKyNpbmNsdWRlIDxXZWJDb3JlL05vdGlmaWNhdGlvblByZXNl
bnRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVm9pZENhbGxiYWNrLmg+CisjaW5jbHVkZSA8d3Rm
L0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9S
ZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgTm90aWZpY2F0aW9uOyAgICAK
K2NsYXNzIFNlY3VyaXR5T3JpZ2luOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3Mg
V2ViUGFnZTsKKworLy8vIEZJWE1FOiBOZWVkIHRvIGtlZXAgYSBxdWV1ZSBvZiBwZW5kaW5nIG5v
dGlmaWNhdGlvbnMgd2hpY2ggcGVybWlzc2lvbiBpcyBzdGlsbCBiZWluZyByZXF1ZXN0ZWQuCitj
bGFzcyBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIgOiBwdWJsaWMgUmVmQ291
bnRlZDxOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI+IHsKK3B1YmxpYzoKKyAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI+
IGNyZWF0ZShXZWJQYWdlKik7CisgICAgdmlydHVhbCB+Tm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyKCk7CisgICAgCisgICAgdm9pZCBzdGFydFJlcXVlc3QoV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW4qLCBQYXNzUmVmUHRyPFdlYkNvcmU6OlZvaWRDYWxsYmFjaz4pOworICAgIHZv
aWQgY2FuY2VsUmVxdWVzdChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiopOworICAgIAorICAgIC8v
IFN5bmNocm9ub3VzIGNhbGwgdG8gcmV0cmlldmUgcGVybWlzc2lvbiBsZXZlbCBmb3IgZ2l2ZW4g
c2VjdXJpdHkgb3JpZ2luCisgICAgV2ViQ29yZTo6Tm90aWZpY2F0aW9uUHJlc2VudGVyOjpQZXJt
aXNzaW9uIHBlcm1pc3Npb25MZXZlbChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiopOworICAgIAor
ICAgIHZvaWQgZGlkUmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRf
dCBub3RpZmljYXRpb25JRCwgYm9vbCBhbGxvd2VkKTsKKyAgICAKK3ByaXZhdGU6CisgICAgTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKFdlYlBhZ2UqKTsKKyAgICAKKyAgICBI
YXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8V2ViQ29yZTo6Vm9pZENhbGxiYWNrPiA+IG1faWRUb0Nh
bGxiYWNrTWFwOworICAgIEhhc2hNYXA8UmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiwg
dWludDY0X3Q+IG1fb3JpZ2luVG9JRE1hcDsKKyAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+ID4gbV9pZFRvT3JpZ2luTWFwOworCisgICAgV2ViUGFn
ZSogbV9wYWdlOworfTsKKworaW5saW5lIGJvb2wgaXNSZXF1ZXN0SURWYWxpZCh1aW50NjRfdCBp
ZCkKK3sKKyAgICAvLyBUaGlzIGNoZWNrIG1ha2VzIHN1cmUgdGhhdCB0aGUgSUQgaXMgbm90IGVx
dWFsIHRvIHZhbHVlcyBuZWVkZWQgYnkKKyAgICAvLyBIYXNoTWFwIGZvciBidWNrZXRpbmcuCisg
ICAgcmV0dXJuIGlkICYmIGlkICE9IHN0YXRpY19jYXN0PHVpbnQ2NF90PigtMSk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gTm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90
aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5oCmluZGV4IDA3Y2Zh
ZmM3ODU2ZDA4ZWUwN2FkYjczZWNlNGI1OTg1NGVmZWNlN2QuLjNiMzJmMGFkZWJiOTliYmU4YjQ5
YmU3MzE5MWVmNGNjOWNlMmRhMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmgKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuaApA
QCAtMzgsNyArMzgsNyBAQCBjbGFzcyBDb25uZWN0aW9uOwogfQogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7Ci1jbGFzcyBOb3RpZmljYXRpb247ICAgIAorY2xhc3MgTm90aWZpY2F0aW9uOwogfQogCiBu
YW1lc3BhY2UgV2ViS2l0IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcAppbmRl
eCBmMTg0OGJkZmY5ZGI1Y2JkZjg2NjRiYTAzOWFkNjZhNzU2Y2MyMzVmLi5lMDYyMzRhMWNlNWJm
YmI4MWI3MTIzNTY3NzQxNDkwYjcwYmIyM2U4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25D
bGllbnQuY3BwCkBAIC0yOCw5ICsyOCwxMiBAQAogCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMp
CiAKKyNpbmNsdWRlICJOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCIKICNp
bmNsdWRlICJXZWJOb3RpZmljYXRpb25NYW5hZ2VyLmgiCisjaW5jbHVkZSAiV2ViUGFnZS5oIgog
I2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVk
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TY3JpcHRFeGVjdXRpb25Db250ZXh0Lmg+CiAKIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC03NCwyMCArNzcsMjEgQEAgdm9pZCBXZWJOb3RpZmlj
YXRpb25DbGllbnQ6Om5vdGlmaWNhdGlvbk9iamVjdERlc3Ryb3llZChOb3RpZmljYXRpb24qIG5v
dGlmaWNhdGkKICNlbmRpZgogfQogCi12b2lkIFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6cmVxdWVz
dFBlcm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8Vm9pZENhbGxi
YWNrPikKK3ZvaWQgV2ViTm90aWZpY2F0aW9uQ2xpZW50OjpyZXF1ZXN0UGVybWlzc2lvbihTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPFZvaWRDYWxsYmFjaz4gY2Fs
bGJhY2spCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBtX3BhZ2UtPm5vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpLT5zdGFydFJlcXVlc3QoY29udGV4dC0+c2VjdXJp
dHlPcmlnaW4oKSwgY2FsbGJhY2spOwogfQogCi12b2lkIFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6
Y2FuY2VsUmVxdWVzdHNGb3JQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKQordm9p
ZCBXZWJOb3RpZmljYXRpb25DbGllbnQ6OmNhbmNlbFJlcXVlc3RzRm9yUGVybWlzc2lvbihTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgbV9wYWdlLT5ub3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKS0+Y2FuY2Vs
UmVxdWVzdChjb250ZXh0LT5zZWN1cml0eU9yaWdpbigpKTsKIH0KIAotTm90aWZpY2F0aW9uUHJl
c2VudGVyOjpQZXJtaXNzaW9uIFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6Y2hlY2tQZXJtaXNzaW9u
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKQorTm90aWZpY2F0aW9uUHJlc2VudGVyOjpQZXJtaXNz
aW9uIFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6Y2hlY2tQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGNvbnRleHQpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4g
Tm90aWZpY2F0aW9uUHJlc2VudGVyOjpQZXJtaXNzaW9uRGVuaWVkOworICAgIGlmICghY29udGV4
dCB8fCAhY29udGV4dC0+aXNEb2N1bWVudCgpKQorICAgICAgICByZXR1cm4gTm90aWZpY2F0aW9u
UHJlc2VudGVyOjpQZXJtaXNzaW9uRGVuaWVkOworICAgIHJldHVybiBtX3BhZ2UtPm5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpLT5wZXJtaXNzaW9uTGV2ZWwoY29udGV4dC0+
c2VjdXJpdHlPcmlnaW4oKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDYxNzJkNGY5ODgy
ZGZhMjUzOWI4NmUyOWQ4ODFiY2JjZTE3MGJiZmUuLjQzZWMzOGM3MGRlMDI2ZTIwNzA1ZmEyNjlj
NGY0NGVmM2EzYzQzZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJMYXllclRyZWVIb3N0Lmgi
CiAjaW5jbHVkZSAiTWVzc2FnZUlELmgiCiAjaW5jbHVkZSAiTmV0c2NhcGVQbHVnaW4uaCIKKyNp
bmNsdWRlICJOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCIKICNpbmNsdWRl
ICJQYWdlT3ZlcmxheS5oIgogI2luY2x1ZGUgIlBsdWdpblByb3h5LmgiCiAjaW5jbHVkZSAiUGx1
Z2luVmlldy5oIgpAQCAtMTg0Miw2ICsxODQzLDE1IEBAIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyKiBX
ZWJQYWdlOjpmdWxsU2NyZWVuTWFuYWdlcigpCiB9CiAjZW5kaWYKIAorTm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyKiBXZWJQYWdlOjpub3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXIoKQoreworICAgIGlmIChtX25vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlcikKKyAgICAgICAgcmV0dXJuIG1fbm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyLmdldCgpOworCisgICAgbV9ub3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXIgPSBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OmNyZWF0ZSh0aGlzKTsK
KyAgICByZXR1cm4gbV9ub3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuZ2V0KCk7
Cit9CisKICNpZiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0oTUFDKQogYm9vbCBXZWJQYWdl
OjpoYW5kbGVFZGl0aW5nS2V5Ym9hcmRFdmVudChLZXlib2FyZEV2ZW50KiBldnQpCiB7CkBAIC0y
MTE4LDYgKzIxMjgsMTEgQEAgdm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlR2VvbG9jYXRpb25QZXJt
aXNzaW9uRGVjaXNpb24odWludDY0X3QgZ2VvbG9jYXRpb25JRCwgYm8KICAgICBtX2dlb2xvY2F0
aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmRpZFJlY2VpdmVHZW9sb2NhdGlvblBlcm1pc3Np
b25EZWNpc2lvbihnZW9sb2NhdGlvbklELCBhbGxvd2VkKTsKIH0KIAordm9pZCBXZWJQYWdlOjpk
aWRSZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IG5vdGlmaWNh
dGlvbklELCBib29sIGFsbG93ZWQpCit7CisgICAgbm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyKCktPmRpZFJlY2VpdmVOb3RpZmljYXRpb25QZXJtaXNzaW9uRGVjaXNpb24obm90
aWZpY2F0aW9uSUQsIGFsbG93ZWQpOworfQorCiB2b2lkIFdlYlBhZ2U6OmFkdmFuY2VUb05leHRN
aXNzcGVsbGluZyhib29sIHN0YXJ0QmVmb3JlU2VsZWN0aW9uKQogewogICAgIEZyYW1lKiBmcmFt
ZSA9IG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCktPmZvY3VzZWRPck1haW5GcmFtZSgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggOTE2ZDg2MjRk
NmE2Mzk4Y2ZjNzllZjMyNTdlMTFiYmQ0MzA1YTc2MC4uODc1NmI0MWZjMDhkMWQ1NjI2NDc4ZGNi
NzY5ZjkxMjU1YzdiODRmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oCkBAIC0xMDIsNiArMTAyLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNz
IERyYXdpbmdBcmVhOwogY2xhc3MgSW5qZWN0ZWRCdW5kbGVCYWNrRm9yd2FyZExpc3Q7CitjbGFz
cyBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7CiBjbGFzcyBQYWdlT3Zlcmxh
eTsKIGNsYXNzIFBsdWdpblZpZXc7CiBjbGFzcyBTZXNzaW9uU3RhdGU7CkBAIC0zMDksNiArMzEw
LDcgQEAgcHVibGljOgogCiAgICAgRmluZENvbnRyb2xsZXImIGZpbmRDb250cm9sbGVyKCkgeyBy
ZXR1cm4gbV9maW5kQ29udHJvbGxlcjsgfQogICAgIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyJiBnZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpIHsgcmV0dXJu
IG1fZ2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7IH0KKyAgICBOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIqIG5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlcigpOwogCiAgICAgdm9pZCBwYWdlRGlkU2Nyb2xsKCk7CiAjaWYgVVNFKFRJTEVEX0JB
Q0tJTkdfU1RPUkUpCkBAIC01ODcsNiArNTg5LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAgICAg
dm9pZCBkaWRSZWNlaXZlR2VvbG9jYXRpb25QZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3QgZ2Vv
bG9jYXRpb25JRCwgYm9vbCBhbGxvd2VkKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVOb3RpZmljYXRp
b25QZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQsIGJvb2wgYWxsb3dl
ZCk7CiAKICAgICB2b2lkIGFkdmFuY2VUb05leHRNaXNzcGVsbGluZyhib29sIHN0YXJ0QmVmb3Jl
U2VsZWN0aW9uKTsKICAgICB2b2lkIGNoYW5nZVNwZWxsaW5nVG9Xb3JkKGNvbnN0IFN0cmluZyYg
d29yZCk7CkBAIC02OTMsNiArNjk2LDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8V2ViQ29udGV4
dE1lbnU+IG1fY29udGV4dE1lbnU7CiAgICAgUmVmUHRyPFdlYk9wZW5QYW5lbFJlc3VsdExpc3Rl
bmVyPiBtX2FjdGl2ZU9wZW5QYW5lbFJlc3VsdExpc3RlbmVyOwogICAgIEdlb2xvY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyIG1fZ2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXI7CisgICAgUmVmUHRyPE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcj4gbV9u
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7CiAKICAgICBPd25QdHI8V2ViQ29y
ZTo6UHJpbnRDb250ZXh0PiBtX3ByaW50Q29udGV4dDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCBkMGUzMDRi
ZGJhZWVkZjliZTExZjZiNTU1MWM5MjJmOGMzYzY3NmQ5Li4zNzg2MTkxZTUwNzFlNmFlOGZmYzcy
Y2YwMGNkZTlkNjllMGE5OTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtMTcyLDYgKzE3Miw5IEBAIG1lc3Nh
Z2VzIC0+IFdlYlBhZ2UgewogCiAgICAgIyBHZW9sb2NhdGlvbgogICAgIERpZFJlY2VpdmVHZW9s
b2NhdGlvblBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCBnZW9sb2NhdGlvbklELCBib29sIGFs
bG93ZWQpCisgICAgCisgICAgIyBOb3RpZmljYXRpb24KKyAgICBEaWRSZWNlaXZlTm90aWZpY2F0
aW9uUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklELCBib29sIGFsbG93
ZWQpCiAKICAgICBTZXRXaW5kb3dSZXNpemVyU2l6ZShXZWJDb3JlOjpJbnRTaXplIGludGVyc2Vj
dHNWaWV3KQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2og
Yi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2oKaW5kZXggNDc5YmJkNzdmZWY4Mzlk
OWIxOTc4ZTgxZDYzZGZhZjNhZjA2NTA1Mi4uYzA1YTM2MzkyYWIxYjY4ZjQyYjVhZDJlYjRiYzdh
YThkNGRhYjg2MyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9q
CisrKyBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagpAQCAtMTU1NSwxNSArMTU1
NSwxNSBAQAogCQkJTmFtZT0iV2ViUHJvY2VzcyIKIAkJCT4KIAkJCTxGaWxlCi0JCQkJUmVsYXRp
dmVQYXRoPSIuLlxXZWJQcm9jZXNzXFdlYktpdE1haW4uY3BwIgorCQkJCVJlbGF0aXZlUGF0aD0i
Li5cV2ViUHJvY2Vzc1xXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MuY3BwIgogCQkJCT4KIAkJCTwv
RmlsZT4KIAkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJQcm9jZXNzXFdlYkNvbm5l
Y3Rpb25Ub1VJUHJvY2Vzcy5jcHAiCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJQcm9jZXNzXFdl
YkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcy5oIgogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCi0J
CQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJQcm9jZXNzXFdlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcy5o
IgorCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViUHJvY2Vzc1xXZWJLaXRNYWluLmNwcCIKIAkJCQk+
CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQpAQCAtMjcwNiw2ICsyNzA2LDE0IEBACiAJCQkJTmFtZT0i
Tm90aWZpY2F0aW9ucyAoVXNlcikiCiAJCQkJPgogCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0
aD0iLi5cV2ViUHJvY2Vzc1xOb3RpZmljYXRpb25zXE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlci5jcHAiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxXZWJQcm9jZXNzXE5vdGlmaWNhdGlvbnNcTm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyLmgiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJQcm9jZXNzXE5vdGlmaWNhdGlvbnNcV2ViTm90aWZpY2F0
aW9uTWFuYWdlci5jcHAiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CkBAIC0zMDgzLDM0ICszMDkxLDYg
QEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQ
cm9jZXNzXFdlYk5vdGlmaWNhdGlvbi5jcHAiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUK
LQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xXZWJOb3RpZmljYXRpb24uaCIKLQkJCQk+
Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXFdl
Yk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZp
bGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xXZWJOb3RpZmljYXRpb25NYW5hZ2Vy
UHJveHkuaCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0i
Li5cVUlQcm9jZXNzXFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiIKLQkJ
CQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNz
XFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8Rmls
ZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXFdlYk5vdGlmaWNhdGlvblByb3ZpZGVy
LmgiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJ
UHJvY2Vzc1xXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5LmNwcCIKIAkJCQk+CiAJCQk8
L0ZpbGU+CkBAIC0zODEwLDYgKzM3OTAsNTQgQEAKIAkJCQkJPC9GaWxlPgogCQkJCTwvRmlsdGVy
PgogCQkJPC9GaWx0ZXI+CisJCQk8RmlsdGVyCisJCQkJTmFtZT0iTm90aWZpY2F0aW9ucyAoVXNl
cikiCisJCQkJPgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXE5v
dGlmaWNhdGlvbnNcTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuY3BwIgorCQkJCQk+CisJ
CQkJPC9GaWxlPgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXE5v
dGlmaWNhdGlvbnNcTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaCIKKwkJCQkJPgorCQkJ
CTwvRmlsZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xOb3Rp
ZmljYXRpb25zXE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCIK
KwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJ
UHJvY2Vzc1xOb3RpZmljYXRpb25zXE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5LmgiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxVSVByb2Nlc3NcTm90aWZpY2F0aW9uc1xXZWJOb3RpZmljYXRpb24uY3BwIgorCQkJ
CQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9j
ZXNzXE5vdGlmaWNhdGlvbnNcV2ViTm90aWZpY2F0aW9uLmgiCisJCQkJCT4KKwkJCQk8L0ZpbGU+
CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcTm90aWZpY2F0aW9u
c1xXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwIgorCQkJCQk+CisJCQkJPC9GaWxlPgor
CQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXE5vdGlmaWNhdGlvbnNc
V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmgiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJ
PEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcTm90aWZpY2F0aW9uc1xXZWJO
b3RpZmljYXRpb25NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4iCisJCQkJCT4KKwkJCQk8L0ZpbGU+
CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcTm90aWZpY2F0aW9u
c1xXZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHAiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJ
PEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcTm90aWZpY2F0aW9uc1xXZWJO
b3RpZmljYXRpb25Qcm92aWRlci5oIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJPC9GaWx0ZXI+
CiAJCTwvRmlsdGVyPgogCQk8RmlsdGVyCiAJCQlOYW1lPSJQbGF0Zm9ybSIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ29tbW9uLnZzcHJvcHMgYi9Tb3VyY2UvV2ViS2l0
Mi93aW4vV2ViS2l0MkNvbW1vbi52c3Byb3BzCmluZGV4IGNjMTRhZmRmNzJmMmVmZWU1NzdlNGI4
OTZhNDUxM2RlYmIyYzg4MDcuLjgxZDM0ZDkwN2M4NzBhMDc0YWNhOTVkMjQ4ZWQ2YmQ2Mzg0YzI4
OWYgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ29tbW9uLnZzcHJvcHMK
KysrIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDb21tb24udnNwcm9wcwpAQCAtNiw3ICs2
LDcgQEAKIAk+CiAJPFRvb2wKIAkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJQWRkaXRpb25h
bEluY2x1ZGVEaXJlY3Rvcmllcz0iJnF1b3Q7JChQcm9qZWN0RGlyKSZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpXC4uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cUGxhdGZvcm0mcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxQbGF0Zm9ybVxjZyZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpXC4uXFBsYXRmb3JtXENvcmVJUEMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxQbHVn
aW5Qcm9jZXNzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4u
XFNoYXJlZFxjZiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxBUElcYyZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxBUElcY1xjZiZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpXC4uXFNoYXJlZFxBUElcY1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwu
LlxTaGFyZWRcQ29yZUlQQ1N1cHBvcnQmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFy
ZWRcUGx1Z2lucyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxQbHVnaW5zXE5l
dHNjYXBlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXEFQSVxDJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cilcLi5cVUlQcm9jZXNzXEFQSVxDXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJ
UHJvY2Vzc1xBUElcY3BwJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXEFQ
SVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcQXV0aGVudGljYXRp
b24mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcRG93bmxvYWRzJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXExhdW5jaGVyJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcilcLi5cVUlQcm9jZXNzXFBsdWdpbnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KVwuLlxVSVByb2Nlc3Ncd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vz
cyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcV2ViQ29yZVN1cHBvcnQm
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFdlYkNvcmVTdXBwb3J0XHdp
biZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcV2ViUGFnZSZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcV2ViUGFnZVx3aW4mcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEljb25EYXRhYmFzZSZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpXC4uXFdlYlByb2Nlc3NcSW5qZWN0ZWRCdW5kbGUmcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEluamVjdGVkQnVuZGxlXEFQSVxjJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xJbmplY3RlZEJ1bmRsZVxET00mcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEluamVjdGVkQnVuZGxlXHdpbiZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcUGx1Z2lucyZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpXC4uXFdlYlByb2Nlc3NcUGx1Z2luc1xOZXRzY2FwZSZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpXC4uXFdlYlByb2Nlc3Ncd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2Vi
UHJvY2Vzc1xBcHBsaWNhdGlvbkNhY2hlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2Vi
UHJvY2Vzc1xBdXRoZW50aWNhdGlvbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlBy
b2Nlc3NcQ29va2llcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcQ29v
a2llc1xjZiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcRG93bmxvYWRz
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xEb3dubG9hZHNcY2YmcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEZ1bGxTY3JlZW4mcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEdlb2xvY2F0aW9uJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xLZXlWYWx1ZVN0b3JhZ2UmcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXE1lZGlhQ2FjaGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKVwuLlxXZWJQcm9jZXNzXE5vdGlmaWNhdGlvbnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KVwuLlxXZWJQcm9jZXNzXFJlc291cmNlQ2FjaGUmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9u
QnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlcyZxdW90OzsmcXVvdDsk
KENvbmZpZ3VyYXRpb25CdWlsZERpcilcSW5jbHVkZSZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRp
b25CdWlsZERpcilcSW5jbHVkZVxwcml2YXRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVz
RGlyKVxJbmNsdWRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJbmNsdWRlXHBy
aXZhdGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVccHRocmVhZHMm
cXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXEluY2x1ZGVcSmF2YVNjcmlwdENv
cmUmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXEluY2x1ZGVccHJpdmF0ZVxK
YXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVkZVxK
YXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVkZVxw
cml2YXRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGly
KVxJbmNsdWRlXFdlYkNvcmVcRm9yd2FyZGluZ0hlYWRlcnMmcXVvdDs7JnF1b3Q7JChXZWJLaXRM
aWJyYXJpZXNEaXIpXEluY2x1ZGVcV2ViQ29yZVxGb3J3YXJkaW5nSGVhZGVycyZxdW90OyIKKwkJ
QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iJnF1b3Q7JChQcm9qZWN0RGlyKSZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpXC4uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cUGxhdGZv
cm0mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxQbGF0Zm9ybVxjZyZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpXC4uXFBsYXRmb3JtXENvcmVJUEMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KVwuLlxQbHVnaW5Qcm9jZXNzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXHdpbiZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpXC4uXFNoYXJlZFxjZiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxB
UElcYyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxBUElcY1xjZiZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxBUElcY1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKVwuLlxTaGFyZWRcQ29yZUlQQ1N1cHBvcnQmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KVwuLlxTaGFyZWRcUGx1Z2lucyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxQ
bHVnaW5zXE5ldHNjYXBlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXEFQSVxDJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcilcLi5cVUlQcm9jZXNzXEFQSVxDXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpXC4uXFVJUHJvY2Vzc1xBUElcY3BwJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQ
cm9jZXNzXEFQSVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcQXV0
aGVudGljYXRpb24mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcRG93bmxv
YWRzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXExhdW5jaGVyJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXE5vdGlmaWNhdGlvbnMmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcUGx1Z2lucyZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpXC4uXFVJUHJvY2Vzc1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQ
cm9jZXNzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xXZWJDb3JlU3Vw
cG9ydCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcV2ViQ29yZVN1cHBv
cnRcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xXZWJQYWdlJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xXZWJQYWdlXHdpbiZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcSWNvbkRhdGFiYXNlJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xJbmplY3RlZEJ1bmRsZSZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcSW5qZWN0ZWRCdW5kbGVcQVBJXGMmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEluamVjdGVkQnVuZGxlXERPTSZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcSW5qZWN0ZWRCdW5kbGVcd2luJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xQbHVnaW5zJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xQbHVnaW5zXE5ldHNjYXBlJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwu
LlxXZWJQcm9jZXNzXEFwcGxpY2F0aW9uQ2FjaGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwu
LlxXZWJQcm9jZXNzXEF1dGhlbnRpY2F0aW9uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5c
V2ViUHJvY2Vzc1xDb29raWVzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vz
c1xDb29raWVzXGNmJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xEb3du
bG9hZHMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXERvd25sb2Fkc1xj
ZiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcRnVsbFNjcmVlbiZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcR2VvbG9jYXRpb24mcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEtleVZhbHVlU3RvcmFnZSZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcTWVkaWFDYWNoZSZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpXC4uXFdlYlByb2Nlc3NcTm90aWZpY2F0aW9ucyZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpXC4uXFdlYlByb2Nlc3NcUmVzb3VyY2VDYWNoZSZxdW90OzsmcXVvdDskKENvbmZpZ3Vy
YXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzJnF1b3Q7OyZx
dW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxJbmNsdWRlJnF1b3Q7OyZxdW90OyQoQ29uZmln
dXJhdGlvbkJ1aWxkRGlyKVxJbmNsdWRlXHByaXZhdGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJy
YXJpZXNEaXIpXEluY2x1ZGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1
ZGVccHJpdmF0ZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVkZVxwdGhy
ZWFkcyZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcSW5jbHVkZVxKYXZhU2Ny
aXB0Q29yZSZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcSW5jbHVkZVxwcml2
YXRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJbmNs
dWRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJbmNs
dWRlXHByaXZhdGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVp
bGREaXIpXEluY2x1ZGVcV2ViQ29yZVxGb3J3YXJkaW5nSGVhZGVycyZxdW90OzsmcXVvdDskKFdl
YktpdExpYnJhcmllc0RpcilcSW5jbHVkZVxXZWJDb3JlXEZvcndhcmRpbmdIZWFkZXJzJnF1b3Q7
IgogCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iX1VTUkRMTDtXRUJLSVRfRVhQT1JUUztGUkFN
RVdPUktfTkFNRT1XZWJLaXQ7QlVJTERJTkdfV0VCS0lUIgogCQlVc2VQcmVjb21waWxlZEhlYWRl
cj0iMiIKIAkJUHJlY29tcGlsZWRIZWFkZXJUaHJvdWdoPSJXZWJLaXQyUHJlZml4LmgiCmRpZmYg
LS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZmIyODE2ZTIy
ODE5NGRhNzRlZjNkZTRlMjQ5MzFmMmZmYTFhODQzMy4uNjJkMjcxMDAzZTk4ZDJkMGZiNzFlMTQ3
ZWNmNjgyYmUwOTEwNTI5YSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDExLTEyLTA2ICBKb24gTGVlICA8am9ubGVl
QGFwcGxlLmNvbT4KKworICAgICAgICBbV0syXSBBZGQgcGVybWlzc2lvbnMgc3VwcG9ydCAoNzM5
NjApCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzk2
MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTAzNTcwMDg+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIG51bGwgZnVuY3Rpb24gaXRlbSB0byBj
b21wbHkgd2l0aCBhZGRlZCBjYWxsYmFjayB0byBXS1BhZ2VVSUNsaWVudC4KKworICAgICAgICAq
IE1pbmlCcm93c2VyL21hYy9Ccm93c2VyV2luZG93Q29udHJvbGxlci5tOgorICAgICAgICAoLVtC
cm93c2VyV2luZG93Q29udHJvbGxlciBhd2FrZUZyb21OaWJdKToKKyAgICAgICAgKiBXZWJLaXRU
ZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xs
ZXI6OmNyZWF0ZU90aGVyUGFnZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjppbml0
aWFsaXplKToKKwogMjAxMS0xMi0wNiAgQWRhbSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgQWRkIGEgcGlkIHBhcmFtZXRlciB0byBDcmFzaExvZ3MuZmluZF9uZXdlc3RfbG9n
CmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nlci9tYWMvQnJvd3NlcldpbmRvd0NvbnRyb2xs
ZXIubSBiL1Rvb2xzL01pbmlCcm93c2VyL21hYy9Ccm93c2VyV2luZG93Q29udHJvbGxlci5tCmlu
ZGV4IGY3ZTljNjkwMTA2NzdlNGI0MTU0ZTZiNzAwYzQwOGU4ODAwNTdiOTIuLjQ5OTNhYTk5ZDk1
MzVjOWI4NzVlZDkwODgxZTQ2ZTIwZmI0Y2YxMDEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL01pbmlCcm93
c2VyL21hYy9Ccm93c2VyV2luZG93Q29udHJvbGxlci5tCisrKyBiL1Rvb2xzL01pbmlCcm93c2Vy
L21hYy9Ccm93c2VyV2luZG93Q29udHJvbGxlci5tCkBAIC02NjcsNiArNjY3LDcgQEAgLSAodm9p
ZClhd2FrZUZyb21OaWIKICAgICAgICAgMCwgLy8gc2hvdWxkSW50ZXJydXB0SmF2YVNjcmlwdAog
ICAgICAgICBjcmVhdGVOZXdQYWdlLAogICAgICAgICBtb3VzZURpZE1vdmVPdmVyRWxlbWVudCwK
KyAgICAgICAgMCwgLy8gZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3QKICAgICB9OwogICAgIFdLUGFnZVNldFBhZ2VVSUNsaWVudChfd2ViVmlldy5wYWdlUmVmLCAm
dWlDbGllbnQpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApp
bmRleCBjZjcxMTQwZDFhYmY1YjYzMzI0ZWY5NTk0YmU5MjdiMjg0ZWM3Y2I5Li5kZTY4YTI5N2U0
Yjk5MmM0MmI0OWMyYjRhMGQxZTk2ZjE2ODQ2MDI1IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RDb250cm9sbGVyLmNwcApAQCAtMjA0LDYgKzIwNCw3IEBAIFdLUGFnZVJlZiBUZXN0Q29u
dHJvbGxlcjo6Y3JlYXRlT3RoZXJQYWdlKFdLUGFnZVJlZiBvbGRQYWdlLCBXS1VSTFJlcXVlc3RS
ZWYsIFdLCiAgICAgICAgIDAsIC8vIHNob3VsZEludGVycnVwdEphdmFTY3JpcHQKICAgICAgICAg
Y3JlYXRlT3RoZXJQYWdlLAogICAgICAgICAwLCAvLyBtb3VzZURpZE1vdmVPdmVyRWxlbWVudAor
ICAgICAgICAwLCAvLyBkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVz
dAogICAgIH07CiAgICAgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KG5ld1BhZ2UsICZvdGhlclBhZ2VV
SUNsaWVudCk7CiAKQEAgLTM1Niw2ICszNTcsNyBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjppbml0
aWFsaXplKGludCBhcmdjLCBjb25zdCBjaGFyKiBhcmd2W10pCiAgICAgICAgIDAsIC8vIHNob3Vs
ZEludGVycnVwdEphdmFTY3JpcHQKICAgICAgICAgY3JlYXRlT3RoZXJQYWdlLAogICAgICAgICAw
LCAvLyBtb3VzZURpZE1vdmVPdmVyRWxlbWVudAorICAgICAgICAwLCAvLyBkZWNpZGVQb2xpY3lG
b3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdAogICAgIH07CiAgICAgV0tQYWdlU2V0UGFn
ZVVJQ2xpZW50KG1fbWFpbldlYlZpZXctPnBhZ2UoKSwgJnBhZ2VVSUNsaWVudCk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118257</attachid>
            <date>2011-12-07 13:00:05 -0800</date>
            <delta_ts>2011-12-08 10:15:31 -0800</delta_ts>
            <desc>Trying again with gtk</desc>
            <filename>bug-73960-20111207130134.patch</filename>
            <type>text/plain</type>
            <size>145572</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyMTgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMzA5NWYxYWEyYzA0OTIz
NDM4YzdiMmM5N2QxMDIxMjQ1MmM4ODQwYS4uY2RkM2I5YjgwZGI5YjViZmVhN2MyYjM5NzQyM2Zi
MzhiMTQ0Nzc5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzNyBAQAorMjAxMS0xMi0wNiAgSm9u
IExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gQWRkIHBlcm1pc3Npb25z
IHN1cHBvcnQgKDczOTYwKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NzM5NjAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEwMzU3MDA4PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRGVyaXZlZFNvdXJj
ZXMubWFrZTogTW92ZWQgbm90aWZpY2F0aW9uIGZpbGVzIHRvIGl0cyBvd24gZGlyZWN0b3J5LiBO
ZWVkIHRvIGFkZCB0aGF0IHBhdGguCisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOiBOZXcgaGVhZGVyIGFuZCBpbXBsIGZpbGVzLgorICAgICAgICAqIFRhcmdldC5w
cmk6IERpdHRvLgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOiBEaXR0by4KKyAgICAgICAgKiB3
aW4vV2ViS2l0Mi52Y3Byb2o6IERpdHRvLgorICAgICAgICAqIHdpbi9XZWJLaXQyQ29tbW9uLnZz
cHJvcHM6IEFkZCBwYXRoIHRvIE5vdGlmaWNhdGlvbnMgZGlyZWN0b3J5LgorCisgICAgICAgIElt
cGxlbWVudCBwZXJtaXNzaW9uIGZ1bmN0aW9ucywgd2hpY2ggZ28gdGhyb3VnaCBwZXJtaXNzaW9u
IHJlcXVlc3QgbWFuYWdlci4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0
aW9uQ2xpZW50OjpyZXF1ZXN0UGVybWlzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlm
aWNhdGlvbkNsaWVudDo6Y2FuY2VsUmVxdWVzdHNGb3JQZXJtaXNzaW9uKToKKyAgICAgICAgKFdl
YktpdDo6V2ViTm90aWZpY2F0aW9uQ2xpZW50OjpjaGVja1Blcm1pc3Npb24pOgorCisgICAgICAg
IE5ldyBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIgdG8gbWFrZSBhbmQgY2Fu
Y2VsIHBlcm1pc3Npb24gcmVxdWVzdHMsIGFuZCB0byByZXRyaWV2ZSBjdXJyZW50CisgICAgICAg
IHBvbGljeS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6
Z2VuZXJhdGVSZXF1ZXN0SUQpOgorICAgICAgICAoV2ViS2l0OjpOb3RpZmljYXRpb25QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyOjp+Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKToKKyAgICAgICAg
KFdlYktpdDo6Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpzdGFydFJlcXVl
c3QpOiBLZWVwIHRyYWNrIG9mIHRoZSBwcm92aWRlZCBjYWxsYmFjayBvbmNlCisgICAgICAgIHBv
bGljeSBkZWNpc2lvbiBpcyBtYWRlLgorICAgICAgICAoV2ViS2l0OjpOb3RpZmljYXRpb25QZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXI6OmNhbmNlbFJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnBlcm1pc3Npb25MZXZlbCk6IFJl
dHJpZXZlIGxldmVsIHRocm91Z2ggYSBzeW5jaHJvbm91cworICAgICAgICBtZXNzYWdlIHRvIHRo
ZSBwcm94eS4KKyAgICAgICAgKFdlYktpdDo6Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyOjpkaWRSZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKTogSW52b2tl
IHRoZSBjYWxsYmFjay4KKyAgICAgICAgKiBXZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0
Ojppc1JlcXVlc3RJRFZhbGlkKTogTWFrZSBzdXJlIGFueSBwcm92aWRlZCByZXF1ZXN0IElEcyBh
cmUgdmFsaWQuCisKKyAgICAgICAgQWRkZWQgbmV3IE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0IGNsYXNzLgorCisgICAgICAgICogVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0
aW9uUGVybWlzc2lvblJlcXVlc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6Tm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0OjpOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCk6
CisgICAgICAgIChXZWJLaXQ6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0OjphbGxvdyk6
IE5vdGlmeSBtYW5hZ2VyIG9mIGRlY2lzaW9uLgorICAgICAgICAoV2ViS2l0OjpOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdDo6ZGVueSk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDo6aW52YWxpZGF0ZSk6IERpc2Fzc29jaWF0ZSB3aXRo
IG1hbmFnZXIuCisgICAgICAgIChXZWJLaXQ6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
Ojp0eXBlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdC5oOiBBZGRlZC4KKworICAgICAgICBXS0FQSSBzdXBwb3J0IGZvciBO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDoKKworICAgICAgICAqIFNoYXJlZC9BUEkvYy9X
S0Jhc2UuaDoKKyAgICAgICAgKiBTaGFyZWQvQVBJT2JqZWN0Lmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9DL1dLQVBJQ2FzdC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS05vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcDogQWRkZWQuCisgICAgICAgIChXS05vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0R2V0VHlwZUlEKToKKyAgICAgICAgKFdLTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RBbGxvdyk6CisgICAgICAgIChXS05vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0RGVueSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3QuaDogQWRkZWQuCisKKyAgICAgICAgT3RoZXIgYWRkaXRpb25zIHRv
IFdLIEFQSToKKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNhdGlvblByb3Zp
ZGVyLmg6IEFkZGVkIG5ldyBjYWxsYmFjayBmb3IgV0tOb3RpZmljYXRpb25Qcm92aWRlcnMsIHRv
IHJldHVybiBwb2xpY3kKKyAgICAgICAgZm9yIGEgZ2l2ZW4gc2VjdXJpdHkgb3JpZ2luLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaDogQWRkZWQgbmV3IGNhbGxiYWNrIHRvIFdL
UGFnZVVJQ2xpZW50IHRvIGFzayB1c2VyIHRvIGRlY2lkZSBvbiBwb2xpY3kuCisKKyAgICAgICAg
TmV3IE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5IHRvIGNyZWF0ZSBy
ZXF1ZXN0cy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJL
aXQ6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6Ok5vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjppbnZhbGlkYXRlUmVxdWVzdHMp
OgorICAgICAgICAoV2ViS2l0OjpOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eTo6Y3JlYXRlUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6Ok5vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpkaWRSZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lv
bkRlY2lzaW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oOiBBZGRlZC4KKworICAgICAgICBBZGRl
ZCBuZXcgbWVzc2FnZSB0byBub3RpZmljYXRpb24gbWFuYWdlcjogTm90aWZpY2F0aW9uUGVybWlz
c2lvbkxldmVsLCB0byByZXRyaWV2ZSBwb2xpY3kuIFRoZSBjdXJyZW50CisgICAgICAgIEpTIEFQ
SSByZXRyaWV2ZXMgdGhlIHBlcm1pc3Npb24gc3luY2hyb25vdXNseSwgc28gdGhlIG1lc3NhZ2Ug
bmVlZHMgdG8gYmUgc2VudCBzeW5jaHJvbm91c2x5IGFsc28uCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW46
IE1vdmVkIGZyb20gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5vdGlmaWNhdGlvbk1hbmFn
ZXJQcm94eS5tZXNzYWdlcy5pbi4KKyAgICAgICAgKiBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9X
ZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHA6IE1vdmVkIGZyb20gU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcC4KKyAgICAgICAgKFdlYktpdDo6V2Vi
Tm90aWZpY2F0aW9uUHJvdmlkZXI6OnBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25BdE9y
aWdpbik6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlm
aWNhdGlvblByb3ZpZGVyLmg6IE1vdmVkIGZyb20gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
Yk5vdGlmaWNhdGlvblByb3ZpZGVyLmguCisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZVN5
bmNNZXNzYWdlKTogQm9pbGVycGxhdGUgdG8gZm9yd2FyZCBtZXNzYWdlcyB0byBub3RpZmljYXRp
b24gbWFuYWdlci4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlm
aWNhdGlvbk1hbmFnZXJQcm94eS5jcHA6IE1vdmVkIGZyb20gU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAuCisgICAgICAgIChXZWJLaXQ6Oldl
Yk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Tm90aWZpY2F0aW9uTWFuYWdlclByb3h5OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6On5XZWJOb3RpZmlj
YXRpb25NYW5hZ2VyUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5h
Z2VyUHJveHk6OmludmFsaWRhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25N
YW5hZ2VyUHJveHk6OmluaXRpYWxpemVQcm92aWRlcik6CisgICAgICAgIChXZWJLaXQ6OldlYk5v
dGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6c2hvdyk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6Y2FuY2VsKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5OjpkaWREZXN0cm95Tm90
aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5
Ojpub3RpZmljYXRpb25QZXJtaXNzaW9uTGV2ZWwpOiBSZXRyaWV2ZSB0aGUgcG9saWN5IGZyb20g
dGhlIHByb3ZpZGVyLgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJv
eHk6OnByb3ZpZGVyRGlkU2hvd05vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYk5v
dGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6cHJvdmlkZXJEaWRDbGlja05vdGlmaWNhdGlvbik6Cisg
ICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6cHJvdmlkZXJEaWRD
bG9zZU5vdGlmaWNhdGlvbnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dl
Yk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oOiBNb3ZlZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaC4KKyAgICAgICAgKFdlYktpdDo6
V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5OjpjbGVhckNvbnRleHQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OnR5cGUpOgorCisgICAgICAgIEFkZGVk
IE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5IHRvIFdlYlBhZ2VQcm94
eSwgdG8gYWxsb3cgYSByZXF1ZXN0IGZvciBwZXJtaXNzaW9uIHRvCisgICAgICAgIGdvIHRocm91
Z2ggdG8gdGhlIFVJIGNsaWVudC4gQWRkZWQgbmV3IG1lc3NhZ2UgdG8gV2ViUGFnZVByb3h5LCBS
ZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OldlYlBhZ2VQcm94
eSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y2xvc2UpOiBJbnZhbGlkYXRlIHBl
bmRpbmcgcmVxdWVzdHMuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cHJvY2Vzc0Rp
ZENyYXNoKTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVzdE5v
dGlmaWNhdGlvblBlcm1pc3Npb24pOiBGb3J3YXJkIHJlcXVlc3QgdG8gVUkgY2xpZW50LgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlVJQ2xpZW50
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVUlDbGllbnQ6OmRlY2lkZVBvbGljeUZvck5vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViVUlDbGll
bnQuaDoKKworICAgICAgICBBZGRlZCBuZXcgbWVzc2FnZSBEaWRSZWNlaXZlTm90aWZpY2F0aW9u
UGVybWlzc2lvbkRlY2lzaW9uLiBUaGUgV2ViUGFnZSBmb3J3YXJkcyB0aGUgbWVzc2FnZSB0byB0
aGUKKyAgICAgICAgcGVybWlzc2lvbiByZXF1ZXN0IG1hbmFnZXIuCisKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjogQWRkZWQgbmV3IG1lc3NhZ2UgRGlk
UmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25EZWNpc2lvbgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6bm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKTogQ3JlYXRlIG1hbmFnZXIgb24gcmVxdWVz
dC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkUmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1p
c3Npb25EZWNpc2lvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoK
KworICAgICAgICBNb3ZpbmcgZmlsZXMgdG8gTm90aWZpY2F0aW9ucy8gc3ViZGlyZWN0b3J5Lgor
CisgICAgICAgICogVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uLmNwcDog
TW92ZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9uLmNwcC4K
KyAgICAgICAgKiBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb24uaDogTW92
ZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9uLmguCisKIDIw
MTEtMTItMDYgIEFsZXhhbmRlciBGw6Zyw7h5ICA8YWxleGFuZGVyLmZhZXJveUBub2tpYS5jb20+
CiAKICAgICAgICAgW1F0XSBGaXggYXNzZXJ0aW9uIGluIFF0Vmlld3BvcnRJbnRlcmFjdGlvbkVu
Z2luZS5jcHA6NDY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9FbmdsaXNoLmxwcm9qL0xv
Y2FsaXphYmxlLnN0cmluZ3MgYi9Tb3VyY2UvV2ViQ29yZS9FbmdsaXNoLmxwcm9qL0xvY2FsaXph
YmxlLnN0cmluZ3MKaW5kZXggMjQ1ZGFjYjA0NDdjNDVkNGQ1ZWNkYjhiMzI1ZWJkN2I2M2QzOGU5
Zi4uMTE2MDZjMzEyOTlkYzlmN2QzODVkZWVkYjQ2ODRmMWYxNThhMDdmZCAxMDA2NDQKR0lUIGJp
bmFyeSBwYXRjaApkZWx0YSAyMDUKemNtYlFSaW4oRDheTT16THlhNWJGNDU8dm9LJUI9PUdXaVhN
e0E2YlhwP1Z2SmUxLXlzNXs2NzVveVRDdXBhNWkqCnowTStDSVJmNT1nS3IjYENaTk5IbmZIS0tJ
Yz9GPCtETUpvZVVqZEwjMT94LSZ2dk1JZTBNJSMhXzRfamYxNmQlbQp3YX5MV2FHPVhkXzI3THhE
MXw8ZW5oNzwrYDYkVmVaYnhKQDxUT2Z1P0EhSGA2R25VPGFsZihRQjBJUS1Ye3J+Xn4KCmRlbHRh
IDE4CmFjbVpveiEjclVYXk09ekxsaD5OP1o5ZDZxZWcqKGNCP3ROZAoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUHJlc2VudGVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvblByZXNlbnRlci5oCmluZGV4IDJj
ZmUwNjdiNWRkODNmOTc1OGZlZGYzZTIyMmQ0NGZmZWI1MTdmZTYuLjU1NTQ2OTI1ODljODliM2Fl
MzZjYTU5YmIwYWM4MmJjYTE3NjVhOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL25vdGlm
aWNhdGlvbnMvTm90aWZpY2F0aW9uUHJlc2VudGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbm90
aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QcmVzZW50ZXIuaApAQCAtNDIsNiArNDIsNyBAQCBjbGFz
cyBOb3RpZmljYXRpb247CiBjbGFzcyBLVVJMOwogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dDsKIAorLy8gRklYTUU6IFJlbmFtZSB0byBOb3RpZmljYXRpb25DbGllbnQsIHRvIGNvbmZvcm0g
dG8gbmFtaW5nIGNvbnZlbnRpb25zIG9mIHRoZSByZXN0IG9mIFdlYkNvcmUuCiBjbGFzcyBOb3Rp
ZmljYXRpb25QcmVzZW50ZXIgewogCiBwdWJsaWM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMubWFr
ZQppbmRleCBhMzAwZjg0YmQ5YmQ5M2U1ZWUyNzYzODEwODA2MTE1MzI1ZDFhMjg1Li5lMjI3N2U0
NWM2ZmVkOTkzZTBhZTUyNjhlNDUyMDY5NTM5ODFiNDdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKQEAgLTQwLDYgKzQwLDcgQEAgVlBBVEggPSBcCiAgICAgJChXZWJLaXQyKS9XZWJQ
cm9jZXNzIFwKICAgICAkKFdlYktpdDIpL1VJUHJvY2VzcyBcCiAgICAgJChXZWJLaXQyKS9VSVBy
b2Nlc3MvRG93bmxvYWRzIFwKKyAgICAkKFdlYktpdDIpL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25z
IFwKICAgICAkKFdlYktpdDIpL1VJUHJvY2Vzcy9QbHVnaW5zIFwKICMKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUuYW0gYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmls
ZS5hbQppbmRleCBjODgxNWYwZjdjOTFjNWUwYWY3ZTZiZjUzMTMyZGRmMGIwZGNkNzUyLi4xZWU1
ZTljNzY4ODRhNTg4NTdiMDcyNGI3ZGQxYmFkOTgyN2VkNzZlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9HTlVtYWtlZmlsZS5hbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5h
bQpAQCAtNTcsMTEgKzU3LDEyIEBAIGxpYndlYmtpdDJndGtfQFdFQktJVEdUS19BUElfTUFKT1Jf
VkVSU0lPTkBfQFdFQktJVEdUS19BUElfTUlOT1JfVkVSU0lPTkBfbGFfSEVBCiAJJChXZWJLaXQy
KS9VSVByb2Nlc3MvQVBJL0MvV0tJbnNwZWN0b3IuaCBcCiAJJChXZWJLaXQyKS9VSVByb2Nlc3Mv
QVBJL0MvV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmggXAogCSQoV2ViS2l0MikvVUlQcm9jZXNz
L0FQSS9DL1dLTWVkaWFDYWNoZU1hbmFnZXIuaCBcCisJJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJ
L0MvV0tOYXRpdmVFdmVudC5oIFwKKwkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9XS05hdmln
YXRpb25EYXRhLmggXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9u
LmggXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9uTWFuYWdlci5o
IFwKKwkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0LmggXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9uUHJv
dmlkZXIuaCBcCi0JJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0MvV0tOYXRpdmVFdmVudC5oIFwK
LQkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9XS05hdmlnYXRpb25EYXRhLmggXAogCSQoV2Vi
S2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLT3BlblBhbmVsUGFyYW1ldGVycy5oIFwKIAkkKFdlYktp
dDIpL1VJUHJvY2Vzcy9BUEkvQy9XS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyLmggXAogCSQoV2Vi
S2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUdyb3VwLmggXApAQCAtNDgzLDYgKzQ4NCw4IEBA
IGxpYndlYmtpdDJndGtfQFdFQktJVEdUS19BUElfTUFKT1JfVkVSU0lPTkBfQFdFQktJVEdUS19B
UElfTUlOT1JfVkVSU0lPTkBfbGFfU09VCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLTm90aWZpY2F0aW9uLmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS05v
dGlmaWNhdGlvbk1hbmFnZXIuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tOb3RpZmljYXRpb25NYW5hZ2VyLmggXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcCBcCisJU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaCBcCiAJU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9uUHJvdmlkZXIuaCBcCiAJ
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLT3BlblBhbmVsUGFyYW1ldGVycy5jcHAg
XAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS09wZW5QYW5lbFBhcmFtZXRlcnMu
aCBcCkBAIC01NzksNiArNTgyLDE2IEBAIGxpYndlYmtpdDJndGtfQFdFQktJVEdUS19BUElfTUFK
T1JfVkVSU0lPTkBfQFdFQktJVEdUS19BUElfTUlOT1JfVkVSU0lPTkBfbGFfU09VCiAJU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oIFwKIAlTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvVGhyZWFkTGF1bmNoZXIuY3BwIFwKIAlTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvVGhyZWFkTGF1bmNoZXIuaCBcCisJU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3QuY3BwIFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmlj
YXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oIFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90
aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAg
XAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbi5jcHAgXAorCVNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbi5oIFwKKwlTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuY3Bw
IFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRp
b25NYW5hZ2VyUHJveHkuaCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlv
bnMvV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwIFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25Qcm92aWRlci5oIFwKIAlTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW5JbmZvU3RvcmUuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW5JbmZvU3RvcmUuaCBcCkBAIC02NTcsMTIgKzY3MCw2IEBAIGxpYndlYmtp
dDJndGtfQFdFQktJVEdUS19BUElfTUFKT1JfVkVSU0lPTkBfQFdFQktJVEdUS19BUElfTUlOT1Jf
VkVSU0lPTkBfbGFfU09VCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYktleVZhbHVlU3Rv
cmFnZU1hbmFnZXJQcm94eS5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTWVkaWFD
YWNoZU1hbmFnZXJQcm94eS5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJNZWRp
YUNhY2hlTWFuYWdlclByb3h5LmggXAotCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOb3Rp
ZmljYXRpb24uY3BwIFwKLQlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9u
LmggXAotCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJv
eHkuY3BwIFwKLQlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9uTWFuYWdl
clByb3h5LmggXAotCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOb3RpZmljYXRpb25Qcm92
aWRlci5jcHAgXAotCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOb3RpZmljYXRpb25Qcm92
aWRlci5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTG9hZGVyQ2xpZW50LmNwcCBc
CiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkxvYWRlckNsaWVudC5oIFwKIAlTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViTmF2aWdhdGlvbkRhdGEuY3BwIFwKQEAgLTc5Myw2ICs4MDAs
OCBAQCBsaWJ3ZWJraXQyZ3RrX0BXRUJLSVRHVEtfQVBJX01BSk9SX1ZFUlNJT05AX0BXRUJLSVRH
VEtfQVBJX01JTk9SX1ZFUlNJT05AX2xhX1NPVQogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
S2V5VmFsdWVTdG9yYWdlL1dlYktleVZhbHVlU3RvcmFnZU1hbmFnZXIuaCBcCiAJU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9NZWRpYUNhY2hlL1dlYk1lZGlhQ2FjaGVNYW5hZ2VyLmNwcCBcCiAJ
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYUNhY2hlL1dlYk1lZGlhQ2FjaGVNYW5hZ2Vy
LmggXAorCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwIFwKKwlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgg
XAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRp
b25NYW5hZ2VyLmNwcCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25z
L1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuaCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Q
bHVnaW5zL05ldHNjYXBlL0pTTlBNZXRob2QuY3BwIFwKQEAgLTkzMSw2ICs5NDAsNyBAQCBsaWJ3
ZWJraXQyZ3RrX0BXRUJLSVRHVEtfQVBJX01BSk9SX1ZFUlNJT05AX0BXRUJLSVRHVEtfQVBJX01J
Tk9SX1ZFUlNJT05AX2xhX0NQUAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9ndGsgXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlciBc
CiAJLUkkKHNyY2RpcikvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL2d0ayBcCisJ
LUkkKHNyY2RpcikvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMgXAogCS1J
JChzcmNkaXIpL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zIFwKIAktSSQoc3JjZGly
KS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9ndGsgXAogCS1JJChzcmNkaXIpL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MgXApAQCAtMTA1Nyw2ICsxMDY3LDcgQEAgdnBhdGggJS5t
ZXNzYWdlcy5pbiA9IFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlIFwK
IAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9Eb3dubG9hZHMgXAogCSQoV2ViS2l0MikvVUlQcm9jZXNz
L0dlb2xvY2F0aW9uIFwKKwkkKFdlYktpdDIpL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zIFwKIAkk
KFdlYktpdDIpL1VJUHJvY2Vzcy9QbHVnaW5zIFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9SZXNv
dXJjZUNhY2hlIFwKIAkkKFdlYktpdDIpL1dlYlByb2Nlc3MgXApAQCAtMTQ1MSw2ICsxNDYyLDcg
QEAgRVhUUkFfRElTVCArPSBcCiAJJChzaGVsbCBscyAkKFdlYktpdDIpL1NoYXJlZC9QbHVnaW5z
LyouaW4pIFwKIAkkKHNoZWxsIGxzICQoV2ViS2l0MikvVUlQcm9jZXNzLyouaW4pIFwKIAkkKHNo
ZWxsIGxzICQoV2ViS2l0MikvVUlQcm9jZXNzL0Rvd25sb2Fkcy8qLmluKSBcCisJJChzaGVsbCBs
cyAkKFdlYktpdDIpL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zLyouaW4pIFwKIAkkKHNoZWxsIGxz
ICQoV2ViS2l0MikvVUlQcm9jZXNzL1BsdWdpbnMvKi5pbikgXAogCSQoc2hlbGwgbHMgJChXZWJL
aXQyKS9XZWJQcm9jZXNzLyouaW4pIFwKIAkkKHNoZWxsIGxzICQoV2ViS2l0MikvV2ViUHJvY2Vz
cy9BcHBsaWNhdGlvbkNhY2hlLyouaW4pIFwKQEAgLTE0NjEsNiArMTQ3Myw3IEBAIEVYVFJBX0RJ
U1QgKz0gXAogCSQoc2hlbGwgbHMgJChXZWJLaXQyKS9XZWJQcm9jZXNzL0ljb25EYXRhYmFzZS8q
LmluKSBcCiAJJChzaGVsbCBscyAkKFdlYktpdDIpL1dlYlByb2Nlc3MvS2V5VmFsdWVTdG9yYWdl
LyouaW4pIFwKIAkkKHNoZWxsIGxzICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9NZWRpYUNhY2hlLyou
aW4pIFwKKwkkKHNoZWxsIGxzICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zLyou
aW4pIFwKIAkkKHNoZWxsIGxzICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9QbHVnaW5zLyouaW4pIFwK
IAkkKHNoZWxsIGxzICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9SZXNvdXJjZUNhY2hlLyouaW4pIFwK
IAkkKHNoZWxsIGxzICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC8qLmluKSBc
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKaW5kZXggNmNmNGYwZjAzYjcwYTg3NjUy
MGJiZTI2N2M1ZDhiODIyMmM1OTE5YS4uYWRiY2U2ZDY4NGI2NjhkZDAxMDM5YTJmNDgxYWZlZmM0
YjY0ZTllYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaApAQCAtOTcsNiArOTcs
NyBAQCB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS01lZGlhQ2FjaGVNYW5hZ2VyKiBXS01l
ZGlhQ2FjaGVNYW5hZ2VyUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tOYXZpZ2F0
aW9uRGF0YSogV0tOYXZpZ2F0aW9uRGF0YVJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1
ZVdLTm90aWZpY2F0aW9uKiBXS05vdGlmaWNhdGlvblJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0
IE9wYXF1ZVdLTm90aWZpY2F0aW9uTWFuYWdlciogV0tOb3RpZmljYXRpb25NYW5hZ2VyUmVmOwor
dHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVz
dCogV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdFJlZjsKIHR5cGVkZWYgY29uc3Qgc3Ry
dWN0IE9wYXF1ZVdLTm90aWZpY2F0aW9uUHJvdmlkZXIqIFdLTm90aWZpY2F0aW9uUHJvdmlkZXJS
ZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS09wZW5QYW5lbFBhcmFtZXRlcnMqIFdL
T3BlblBhbmVsUGFyYW1ldGVyc1JlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLT3Bl
blBhbmVsUmVzdWx0TGlzdGVuZXIqIFdLT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJSZWY7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmggYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQVBJT2JqZWN0LmgKaW5kZXggZGVjYmRiOTdhN2M2OTEyMzAxOTRiMmMxNjliMjUx
NjMwN2Q3MjU5Ny4uMjljNzI2ZDA3ZTUzYzlkYWM3ZmNjMWRjOTQ5ODhlZjAyNjRmZDIyYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaApAQCAtOTEsNiArOTEsNyBAQCBwdWJsaWM6CiAgICAg
ICAgIFR5cGVOYXZpZ2F0aW9uRGF0YSwKICAgICAgICAgVHlwZU5vdGlmaWNhdGlvbiwKICAgICAg
ICAgVHlwZU5vdGlmaWNhdGlvbk1hbmFnZXIsCisgICAgICAgIFR5cGVOb3RpZmljYXRpb25QZXJt
aXNzaW9uUmVxdWVzdCwKICAgICAgICAgVHlwZU9wZW5QYW5lbFBhcmFtZXRlcnMsCiAgICAgICAg
IFR5cGVPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lciwKICAgICAgICAgVHlwZVBhZ2UsCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpIGIvU291cmNlL1dlYktpdDIvVGFyZ2V0LnBy
aQppbmRleCA5NzY5MTRlNTliOGQ0NTE1YmU2NjIwZjllMGI0ZTYyNGM2M2ViYmIyLi5lMTg4NTkx
OWIwZWI0MzFiMDYzMjBhODdkODA5OTNiNjA5NzNkMjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKQEAgLTE1Niw2
ICsxNTYsNyBAQCBIRUFERVJTICs9IFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0aW9u
RGF0YS5oIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tOb3RpZmljYXRpb24uaCBcCiAgICAgVUlQ
cm9jZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9uTWFuYWdlci5oIFwKKyAgICBVSVByb2Nlc3MvQVBJ
L0MvV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oIFwKICAgICBVSVByb2Nlc3MvQVBJ
L0MvV0tOb3RpZmljYXRpb25Qcm92aWRlci5oIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQYWdl
LmggXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VHcm91cC5oIFwKQEAgLTE5Myw2ICsxOTQs
MTEgQEAgSEVBREVSUyArPSBcCiAgICAgVUlQcm9jZXNzL0dlb2xvY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RQcm94eS5oIFwKICAgICBVSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmgg
XAogICAgIFVJUHJvY2Vzcy9MYXVuY2hlci9UaHJlYWRMYXVuY2hlci5oIFwKKyAgICBVSVByb2Nl
c3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oIFwKKyAgICBV
SVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eS5oIFwKKyAgICBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb24u
aCBcCisgICAgVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclBy
b3h5LmggXAorICAgIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvblByb3Zp
ZGVyLmggXAogICAgIFVJUHJvY2Vzcy9QYWdlQ2xpZW50LmggXAogICAgIFVJUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpbkluZm9TdG9yZS5oIFwKICAgICBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9j
ZXNzUHJveHkuaCBcCkBAIC0yMzEsOSArMjM3LDYgQEAgSEVBREVSUyArPSBcCiAgICAgVUlQcm9j
ZXNzL1dlYkxvYWRlckNsaWVudC5oIFwKICAgICBVSVByb2Nlc3MvV2ViTWVkaWFDYWNoZU1hbmFn
ZXJQcm94eS5oIFwKICAgICBVSVByb2Nlc3MvV2ViTmF2aWdhdGlvbkRhdGEuaCBcCi0gICAgVUlQ
cm9jZXNzL1dlYk5vdGlmaWNhdGlvbi5oIFwKLSAgICBVSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9u
TWFuYWdlclByb3h5LmggXAotICAgIFVJUHJvY2Vzcy9XZWJOb3RpZmljYXRpb25Qcm92aWRlci5o
IFwKICAgICBVSVByb2Nlc3MvV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eS5oIFwKICAg
ICBVSVByb2Nlc3MvV2ViUGFnZUNvbnRleHRNZW51Q2xpZW50LmggXAogICAgIFVJUHJvY2Vzcy9X
ZWJQYWdlR3JvdXAuaCBcCkBAIC0zMDMsNiArMzA2LDcgQEAgSEVBREVSUyArPSBcCiAgICAgV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlQ29kZXJzLmgg
XAogICAgIFdlYlByb2Nlc3MvS2V5VmFsdWVTdG9yYWdlL1dlYktleVZhbHVlU3RvcmFnZU1hbmFn
ZXIuaCBcCiAgICAgV2ViUHJvY2Vzcy9NZWRpYUNhY2hlL1dlYk1lZGlhQ2FjaGVNYW5hZ2VyLmgg
XAorICAgIFdlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXIuaCBcCiAgICAgV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNh
dGlvbk1hbmFnZXIuaCBcCiAgICAgV2ViUHJvY2Vzcy9SZXNvdXJjZUNhY2hlL1dlYlJlc291cmNl
Q2FjaGVNYW5hZ2VyLmggXAogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QTWV0
aG9kLmggXApAQCAtNDc0LDYgKzQ3OCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIFVJUHJvY2Vzcy9B
UEkvQy9XS0luc3BlY3Rvci5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNhdGlv
bi5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNhdGlvbk1hbmFnZXIuY3BwIFwK
KyAgICBVSVByb2Nlc3MvQVBJL0MvV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5jcHAg
XAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS09wZW5QYW5lbFBhcmFtZXRlcnMuY3BwIFwKICAgICBV
SVByb2Nlc3MvQVBJL0MvV0tPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5jcHAgXAogICAgIFVJUHJv
Y2Vzcy9BUEkvQy9XS05hdmlnYXRpb25EYXRhLmNwcCBcCkBAIC01MDcsNiArNTEyLDExIEBAIFNP
VVJDRVMgKz0gXAogICAgIFVJUHJvY2Vzcy9MYXVuY2hlci9UaHJlYWRMYXVuY2hlci5jcHAgXAog
ICAgIFVJUHJvY2Vzcy9MYXVuY2hlci9xdC9Qcm9jZXNzTGF1bmNoZXJRdC5jcHAgXAogICAgIFVJ
UHJvY2Vzcy9MYXVuY2hlci9xdC9UaHJlYWRMYXVuY2hlclF0LmNwcCBcCisgICAgVUlQcm9jZXNz
L05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuY3BwIFwKKyAgICBV
SVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eS5jcHAgXAorICAgIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlv
bi5jcHAgXAorICAgIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFn
ZXJQcm94eS5jcHAgXAorICAgIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlv
blByb3ZpZGVyLmNwcCBcCiAgICAgVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luSW5mb1N0b3JlLmNw
cCBcCiAgICAgVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcCBcCiAgICAg
VUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc01hbmFnZXIuY3BwIFwKQEAgLTU0NSw5ICs1
NTUsNiBAQCBTT1VSQ0VTICs9IFwKICAgICBVSVByb2Nlc3MvV2ViTG9hZGVyQ2xpZW50LmNwcCBc
CiAgICAgVUlQcm9jZXNzL1dlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHkuY3BwIFwKICAgICBVSVBy
b2Nlc3MvV2ViTmF2aWdhdGlvbkRhdGEuY3BwIFwKLSAgICBVSVByb2Nlc3MvV2ViTm90aWZpY2F0
aW9uLmNwcCBcCi0gICAgVUlQcm9jZXNzL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAg
XAotICAgIFVJUHJvY2Vzcy9XZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHAgXAogICAgIFVJUHJv
Y2Vzcy9XZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5LmNwcCBcCiAgICAgVUlQcm9jZXNz
L1dlYlBhZ2VDb250ZXh0TWVudUNsaWVudC5jcHAgXAogICAgIFVJUHJvY2Vzcy9XZWJQYWdlR3Jv
dXAuY3BwIFwKQEAgLTYzMyw2ICs2NDAsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBXZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL3F0L0luamVjdGVkQnVuZGxlUXQuY3BwIFwKICAgICBXZWJQcm9jZXNz
L0tleVZhbHVlU3RvcmFnZS9XZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmNwcCBcCiAgICAgV2Vi
UHJvY2Vzcy9NZWRpYUNhY2hlL1dlYk1lZGlhQ2FjaGVNYW5hZ2VyLmNwcCBcCisgICAgV2ViUHJv
Y2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5j
cHAgXAogICAgIFdlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2Vy
LmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9SZXNvdXJjZUNhY2hlL1dlYlJlc291cmNlQ2FjaGVNYW5h
Z2VyLmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBNZXRob2QuY3Bw
IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3Qu
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAppbmRleCA5Nzc3
YzFhY2FmNDhjOTBmZjQ0ZTNmOTVjMmJjNWFkYTJjMzViMmQ4Li4wZTcxNzVhNDI4Zjc4MDgyMGM4
OTcxZGUzOWM5NjUxMGFhYWZhYzkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tBUElDYXN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLQVBJQ2FzdC5oCkBAIC01Miw2ICs1Miw3IEBAIGNsYXNzIEF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlUHJveHk7CiBjbGFzcyBBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXI7CiBjbGFzcyBE
b3dubG9hZFByb3h5OwogY2xhc3MgR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFByb3h5Owor
Y2xhc3MgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q7CiBjbGFzcyBXZWJBcHBsaWNhdGlv
bkNhY2hlTWFuYWdlclByb3h5OwogY2xhc3MgV2ViQmFja0ZvcndhcmRMaXN0OwogY2xhc3MgV2Vi
QmFja0ZvcndhcmRMaXN0SXRlbTsKQEAgLTEwOCw2ICsxMDksNyBAQCBXS19BRERfQVBJX01BUFBJ
TkcoV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUmVmLCBXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2Vy
UHJveHkpCiBXS19BRERfQVBJX01BUFBJTkcoV0tNZWRpYUNhY2hlTWFuYWdlclJlZiwgV2ViTWVk
aWFDYWNoZU1hbmFnZXJQcm94eSkKIFdLX0FERF9BUElfTUFQUElORyhXS05hdmlnYXRpb25EYXRh
UmVmLCBXZWJOYXZpZ2F0aW9uRGF0YSkKIFdLX0FERF9BUElfTUFQUElORyhXS05vdGlmaWNhdGlv
bk1hbmFnZXJSZWYsIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eSkKK1dLX0FERF9BUElfTUFQ
UElORyhXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0UmVmLCBOb3RpZmljYXRpb25QZXJt
aXNzaW9uUmVxdWVzdCkKIFdLX0FERF9BUElfTUFQUElORyhXS05vdGlmaWNhdGlvblByb3ZpZGVy
UmVmLCBXZWJOb3RpZmljYXRpb25Qcm92aWRlcikKIFdLX0FERF9BUElfTUFQUElORyhXS05vdGlm
aWNhdGlvblJlZiwgV2ViTm90aWZpY2F0aW9uKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLT3BlblBh
bmVsUGFyYW1ldGVyc1JlZiwgV2ViT3BlblBhbmVsUGFyYW1ldGVycykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41OTYzNDhkNzI2ZWRjNDJiMGM3NzA0MGI5
OTVjYzg4N2ZlMWU1NGFjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuY3BwCkBAIC0wLDAgKzEs
NDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV0tOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oIgorCisjaW5jbHVkZSAiTm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3QuaCIKKyNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKwordXNpbmcgbmFtZXNw
YWNlIFdlYktpdDsKKworV0tUeXBlSUQgV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdEdl
dFR5cGVJRCgpCit7CisgICAgcmV0dXJuIHRvQVBJKE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0OjpBUElUeXBlKTsKK30KKwordm9pZCBXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
QWxsb3coV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdFJlZiBub3RpZmljYXRpb25QZXJt
aXNzaW9uUmVxdWVzdCkKK3sKKyAgICByZXR1cm4gdG9JbXBsKG5vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0KS0+YWxsb3coKTsKK30KKwordm9pZCBXS05vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0RGVueShXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0UmVmIG5vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0KQoreworICAgIHJldHVybiB0b0ltcGwobm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3QpLT5kZW55KCk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Qu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4xOTQ3YTA2YWFiYWUyOTUxNWQ1ZDczZDA0MjA0ZDViMzkzYmYxODE3Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2lmbmRlZiBXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0X2gKKyNkZWZpbmUgV0tOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdF9oCisKKyNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5o
PgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKK1dLX0VYUE9S
VCBXS1R5cGVJRCBXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0R2V0VHlwZUlEKCk7CisK
K1dLX0VYUE9SVCB2b2lkIFdLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RBbGxvdyhXS05v
dGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0UmVmIG5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0KTsKK1dLX0VYUE9SVCB2b2lkIFdLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3REZW55
KFdLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RSZWYgbm90aWZpY2F0aW9uUGVybWlzc2lv
blJlcXVlc3QpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLy8g
V0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tOb3RpZmljYXRpb25Qcm92aWRlci5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9uUHJvdmlkZXIuaAppbmRleCA2ZmE2
NWJiZTdlYjk0YTZhNThkNGMxZjJkNGY3ZjdiNDYzYWUwZDI4Li43MDQ4MTNmMWNmOWIxMmY1Yzlh
OTFmMTcyNzIyNzEwYjg2MjUwNjFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tOb3RpZmljYXRpb25Qcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNhdGlvblByb3ZpZGVyLmgKQEAgLTM1LDE3ICszNSwxOSBA
QCBleHRlcm4gIkMiIHsKIHR5cGVkZWYgdm9pZCAoKldLTm90aWZpY2F0aW9uUHJvdmlkZXJTaG93
Q2FsbGJhY2spKFdLTm90aWZpY2F0aW9uUmVmIG5vdGlmaWNhdGlvbiwgY29uc3Qgdm9pZCogY2xp
ZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS05vdGlmaWNhdGlvblByb3ZpZGVyQ2FuY2VsQ2Fs
bGJhY2spKFdLTm90aWZpY2F0aW9uUmVmIG5vdGlmaWNhdGlvbiwgY29uc3Qgdm9pZCogY2xpZW50
SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS05vdGlmaWNhdGlvblByb3ZpZGVyRGlkRGVzdHJveU5v
dGlmaWNhdGlvbkNhbGxiYWNrKShXS05vdGlmaWNhdGlvblJlZiBub3RpZmljYXRpb24sIGNvbnN0
IHZvaWQqIGNsaWVudEluZm8pOwordHlwZWRlZiBpbnQgKCpXS05vdGlmaWNhdGlvblByb3ZpZGVy
UG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvbkF0T3JpZ2luQ2FsbGJhY2spKFdLU2VjdXJp
dHlPcmlnaW5SZWYgb3JpZ2luLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9p
ZCAoKldLTm90aWZpY2F0aW9uUHJvdmlkZXJBZGROb3RpZmljYXRpb25NYW5hZ2VyQ2FsbGJhY2sp
KFdLTm90aWZpY2F0aW9uTWFuYWdlclJlZiBtYW5hZ2VyLCBjb25zdCB2b2lkKiBjbGllbnRJbmZv
KTsKIHR5cGVkZWYgdm9pZCAoKldLTm90aWZpY2F0aW9uUHJvdmlkZXJSZW1vdmVOb3RpZmljYXRp
b25NYW5hZ2VyQ2FsbGJhY2spKFdLTm90aWZpY2F0aW9uTWFuYWdlclJlZiBtYW5hZ2VyLCBjb25z
dCB2b2lkKiBjbGllbnRJbmZvKTsKIAogc3RydWN0IFdLTm90aWZpY2F0aW9uUHJvdmlkZXIgewot
ICAgIGludCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB2ZXJzaW9uOwotICAgIGNvbnN0IHZvaWQqICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjbGllbnRJbmZvOwotICAgIFdLTm90aWZpY2F0aW9uUHJvdmlk
ZXJTaG93Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICBzaG93OwotICAgIFdLTm90aWZp
Y2F0aW9uUHJvdmlkZXJDYW5jZWxDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICBjYW5jZWw7
Ci0gICAgV0tOb3RpZmljYXRpb25Qcm92aWRlckRpZERlc3Ryb3lOb3RpZmljYXRpb25DYWxsYmFj
ayAgICAgIGRpZERlc3Ryb3lOb3RpZmljYXRpb247Ci0gICAgV0tOb3RpZmljYXRpb25Qcm92aWRl
ckFkZE5vdGlmaWNhdGlvbk1hbmFnZXJDYWxsYmFjayAgICAgIGFkZE5vdGlmaWNhdGlvbk1hbmFn
ZXI7Ci0gICAgV0tOb3RpZmljYXRpb25Qcm92aWRlclJlbW92ZU5vdGlmaWNhdGlvbk1hbmFnZXJD
YWxsYmFjayAgIHJlbW92ZU5vdGlmaWNhdGlvbk1hbmFnZXI7CisgICAgaW50ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZl
cnNpb247CisgICAgY29uc3Qgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudEluZm87CisgICAgV0tOb3RpZmljYXRpb25Q
cm92aWRlclNob3dDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNo
b3c7CisgICAgV0tOb3RpZmljYXRpb25Qcm92aWRlckNhbmNlbENhbGxiYWNrICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNhbmNlbDsKKyAgICBXS05vdGlmaWNhdGlvblByb3ZpZGVy
RGlkRGVzdHJveU5vdGlmaWNhdGlvbkNhbGxiYWNrICAgICAgICAgICAgICAgICAgZGlkRGVzdHJv
eU5vdGlmaWNhdGlvbjsKKyAgICBXS05vdGlmaWNhdGlvblByb3ZpZGVyUG9saWN5Rm9yTm90aWZp
Y2F0aW9uUGVybWlzc2lvbkF0T3JpZ2luQ2FsbGJhY2sgcG9saWN5Rm9yTm90aWZpY2F0aW9uUGVy
bWlzc2lvbkF0T3JpZ2luOworICAgIFdLTm90aWZpY2F0aW9uUHJvdmlkZXJBZGROb3RpZmljYXRp
b25NYW5hZ2VyQ2FsbGJhY2sgICAgICAgICAgICAgICAgICBhZGROb3RpZmljYXRpb25NYW5hZ2Vy
OworICAgIFdLTm90aWZpY2F0aW9uUHJvdmlkZXJSZW1vdmVOb3RpZmljYXRpb25NYW5hZ2VyQ2Fs
bGJhY2sgICAgICAgICAgICAgICByZW1vdmVOb3RpZmljYXRpb25NYW5hZ2VyOwogfTsKIHR5cGVk
ZWYgc3RydWN0IFdLTm90aWZpY2F0aW9uUHJvdmlkZXIgV0tOb3RpZmljYXRpb25Qcm92aWRlcjsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oCmluZGV4IGNiNWFkMmYxNTky
MzBiYmEwNjk4MWE0Njg3NTBmNjFiZTAwNDY4YmQuLjFkZTcwNjI4Yzg4YjFkMGMxZDBiNDVhYzM2
N2E1ZTk3MDZkNTE5NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmgK
QEAgLTE5Nyw2ICsxOTcsNyBAQCB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VEcmF3Rm9vdGVyQ2FsbGJh
Y2spKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1JlYwogdHlwZWRlZiB2b2lk
ICgqV0tQYWdlUHJpbnRGcmFtZUNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBm
cmFtZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VTYXZl
RGF0YVRvRmlsZUluRG93bmxvYWRzRm9sZGVyQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS1N0
cmluZ1JlZiBzdWdnZXN0ZWRGaWxlbmFtZSwgV0tTdHJpbmdSZWYgbWltZVR5cGUsIFdLVVJMUmVm
IG9yaWdpbmF0aW5nVVJMLCBXS0RhdGFSZWYgZGF0YSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7
CiB0eXBlZGVmIGJvb2wgKCpXS1BhZ2VTaG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0Q2FsbGJhY2sp
KFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKK3R5cGVkZWYgdm9pZCAo
KldLUGFnZURlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0Q2FsbGJh
Y2spKFdLUGFnZVJlZiBwYWdlLCBXS1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpbiwgV0tOb3RpZmlj
YXRpb25QZXJtaXNzaW9uUmVxdWVzdFJlZiBwZXJtaXNzaW9uUmVxdWVzdCwgY29uc3Qgdm9pZCAq
Y2xpZW50SW5mbyk7CiAKIC8vIERlcHJlY2F0ZWQgICAgCiB0eXBlZGVmIFdLUGFnZVJlZiAoKldL
UGFnZUNyZWF0ZU5ld1BhZ2VDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwKShXS1BhZ2VS
ZWYgcGFnZSwgV0tEaWN0aW9uYXJ5UmVmIGZlYXR1cmVzLCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlm
aWVycywgV0tFdmVudE1vdXNlQnV0dG9uIG1vdXNlQnV0dG9uLCBjb25zdCB2b2lkICpjbGllbnRJ
bmZvKTsKQEAgLTI1MCw2ICsyNTEsNyBAQCBzdHJ1Y3QgV0tQYWdlVUlDbGllbnQgewogICAgIC8v
IFZlcnNpb24gMQogICAgIFdLUGFnZUNyZWF0ZU5ld1BhZ2VDYWxsYmFjayAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlTmV3UGFnZTsKICAgICBXS1BhZ2VNb3Vz
ZURpZE1vdmVPdmVyRWxlbWVudENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50OworICAgIFdLUGFnZURlY2lkZVBvbGljeUZvck5vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0Q2FsbGJhY2sgICAgICAgICAgZGVjaWRlUG9saWN5Rm9y
Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q7CiB9OwogdHlwZWRlZiBzdHJ1Y3QgV0tQYWdl
VUlDbGllbnQgV0tQYWdlVUlDbGllbnQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNWQzN2RhNGI5OTRiNmQwY2RkYmU0MjU0NDAy
ODNhYzFlMGU2OWE1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuY3BwCkBAIC0wLDAg
KzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaCIKKworI2luY2x1ZGUgIk5vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworICAg
IAorUGFzc1JlZlB0cjxOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdD4gTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3Q6OmNyZWF0ZShXZWJLaXQ6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5ICptYW5hZ2VyLCB1aW50NjRfdCBub3RpZmljYXRpb25JRCkKK3sK
KyAgICByZXR1cm4gYWRvcHRSZWYobmV3IE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KG1h
bmFnZXIsIG5vdGlmaWNhdGlvbklEKSk7Cit9CisKK05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0OjpOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdChOb3RpZmljYXRpb25QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eSogbWFuYWdlciwgdWludDY0X3Qgbm90aWZpY2F0aW9uSUQpCisg
ICAgOiBtX21hbmFnZXIobWFuYWdlcikKKyAgICAsIG1fbm90aWZpY2F0aW9uSUQobm90aWZpY2F0
aW9uSUQpCit7Cit9CisKK3ZvaWQgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q6OmFsbG93
KCkKK3sKKyAgICBpZiAoIW1fbWFuYWdlcikKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIG1f
bWFuYWdlci0+ZGlkUmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25EZWNpc2lvbihtX25vdGlm
aWNhdGlvbklELCB0cnVlKTsKKyAgICBtX21hbmFnZXIgPSAwOworfQorCit2b2lkIE5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0OjpkZW55KCkKK3sKKyAgICBpZiAoIW1fbWFuYWdlcikKKyAg
ICAgICAgcmV0dXJuOworICAgIAorICAgIG1fbWFuYWdlci0+ZGlkUmVjZWl2ZU5vdGlmaWNhdGlv
blBlcm1pc3Npb25EZWNpc2lvbihtX25vdGlmaWNhdGlvbklELCBmYWxzZSk7CisgICAgbV9tYW5h
Z2VyID0gMDsKK30KKwordm9pZCBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDo6aW52YWxp
ZGF0ZSgpCit7CisgICAgbV9tYW5hZ2VyID0gMDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05v
dGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4y
NGRiOThiMGM1Njg5YWRmNjlhYzAyOTlmYTJmZTYyN2RiYTE1NmY5Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3QuaApAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdF9oCisjZGVmaW5lIE5vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0X2gKKworI2luY2x1ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1ZGUgPHd0Zi9Q
YXNzUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTsKKworY2xhc3MgTm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3QgOiBwdWJsaWMgQVBJT2JqZWN0IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgY29u
c3QgVHlwZSBBUElUeXBlID0gVHlwZU5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0OworICAg
IAorICAgIHN0YXRpYyBQYXNzUmVmUHRyPE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0PiBj
cmVhdGUoTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkqLCB1aW50NjRf
dCBub3RpZmljYXRpb25JRCk7CisgICAgCisgICAgdm9pZCBhbGxvdygpOworICAgIHZvaWQgZGVu
eSgpOworICAgIAorICAgIHZvaWQgaW52YWxpZGF0ZSgpOworICAgIAorcHJpdmF0ZToKKyAgICBO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdChOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eSosIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKTsKKyAgICAKKyAgICB2aXJ0
dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KKyAgICAKKyAgICBOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSogbV9tYW5hZ2VyOworICAgIHVp
bnQ2NF90IG1fbm90aWZpY2F0aW9uSUQ7ICAgIAorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZiAvLyBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdFByb3h5X2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4wNzkyMjk4NWU0NTY1ZjNjNzNjYWRjM2EwY2Y0NTUyMTdjNjE5
OTY5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNh
dGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCkBAIC0w
LDAgKzEsNzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCIKKworI2luY2x1ZGUg
Ik5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmgiCisjaW5jbHVkZSAiV2ViUGFnZU1lc3Nh
Z2VzLmgiCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1By
b3h5LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eTo6Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkoV2ViUGFnZVByb3h5KiBwYWdlKQorICAgIDogbV9wYWdlKHBhZ2UpCit7Cit9CisKK3ZvaWQg
Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmludmFsaWRhdGVSZXF1
ZXN0cygpCit7CisgICAgUGVuZGluZ1JlcXVlc3RNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9w
ZW5kaW5nUmVxdWVzdHMuYmVnaW4oKTsKKyAgICBQZW5kaW5nUmVxdWVzdE1hcDo6Y29uc3RfaXRl
cmF0b3IgZW5kID0gbV9wZW5kaW5nUmVxdWVzdHMuZW5kKCk7CisgICAgZm9yICg7IGl0ICE9IGVu
ZDsgKytpdCkKKyAgICAgICAgaXQtPnNlY29uZC0+aW52YWxpZGF0ZSgpOworICAgIAorICAgIG1f
cGVuZGluZ1JlcXVlc3RzLmNsZWFyKCk7Cit9CisKK1Bhc3NSZWZQdHI8Tm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3Q+IE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
OjpjcmVhdGVSZXF1ZXN0KHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQoreworICAgIFJlZlB0cjxO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdD4gcmVxdWVzdCA9IE5vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0OjpjcmVhdGUodGhpcywgbm90aWZpY2F0aW9uSUQpOworICAgIG1fcGVuZGlu
Z1JlcXVlc3RzLmFkZChub3RpZmljYXRpb25JRCwgcmVxdWVzdC5nZXQoKSk7CisgICAgcmV0dXJu
IHJlcXVlc3QucmVsZWFzZSgpOworfQorCit2b2lkIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5OjpkaWRSZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9u
KHVpbnQ2NF90IG5vdGlmaWNhdGlvbklELCBib29sIGFsbG93KQoreworICAgIGlmICghbV9wYWdl
LT5pc1ZhbGlkKCkpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBSZWZQdHI8Tm90aWZpY2F0
aW9uUGVybWlzc2lvblJlcXVlc3Q+IHJlcXVlc3QgPSBtX3BlbmRpbmdSZXF1ZXN0cy50YWtlKG5v
dGlmaWNhdGlvbklEKTsKKyAgICBpZiAoIXJlcXVlc3QpCisgICAgICAgIHJldHVybjsKKyAgICAK
KyAgICBtX3BhZ2UtPnByb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlkUmVjZWl2
ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25EZWNpc2lvbihub3RpZmljYXRpb25JRCwgYWxsb3cpLCBt
X3BhZ2UtPnBhZ2VJRCgpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05v
dGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5mNjIyOGU3MmE5NGQyZjIxZDQxMTExMjMwYzcyZGI1NTM1Y2I0YTJhCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaApAQCAtMCwwICsxLDU5IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2lmbmRlZiBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eV9oCisjZGVmaW5lIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5X2gKKworI2luY2x1ZGUgIk5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmgiCisjaW5j
bHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCitjbGFzcyBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UHJveHk7Citj
bGFzcyBXZWJQYWdlUHJveHk7CisKK2NsYXNzIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5IHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBOb3RpZmljYXRpb25QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eShXZWJQYWdlUHJveHkqKTsKKyAgICAKKyAgICB2b2lkIGlu
dmFsaWRhdGVSZXF1ZXN0cygpOworICAgIAorICAgIC8vIENyZWF0ZSBhIHJlcXVlc3QgdG8gYmUg
cHJlc2VudGVkIHRvIHRoZSB1c2VyLgorICAgIFBhc3NSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3Q+IGNyZWF0ZVJlcXVlc3QodWludDY0X3Qgbm90aWZpY2F0aW9uSUQpOworICAg
IAorICAgIC8vIENhbGxlZCBieSBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCB3aGVuIGEg
ZGVjaXNpb24gaXMgbWFkZSBieSB0aGUgdXNlci4KKyAgICB2b2lkIGRpZFJlY2VpdmVOb3RpZmlj
YXRpb25QZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQsIGJvb2wgYWxs
b3cpOworICAgIAorcHJpdmF0ZToKKyAgICB0eXBlZGVmIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0
cjxOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdD4gPiBQZW5kaW5nUmVxdWVzdE1hcDsKKyAg
ICBQZW5kaW5nUmVxdWVzdE1hcCBtX3BlbmRpbmdSZXF1ZXN0czsKKyAgICBXZWJQYWdlUHJveHkq
IG1fcGFnZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisKKyNlbmRpZiAvLyBOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eV9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb24uY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zZjAyNTk4NjI0YzE1NmE5OGZiZjIwOWE2MjJlMTE5MWMyYTZmZDNlCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMv
V2ViTm90aWZpY2F0aW9uLmNwcApAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbi5oIgorCisjaW5jbHVkZSAi
QXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlICJBcmd1bWVudERlY29kZXIuaCIKKyNpbmNsdWRl
ICJBcmd1bWVudEVuY29kZXIuaCIKKyNpbmNsdWRlICJBcmd1bWVudHMuaCIKKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK1dlYk5vdGlmaWNhdGlvbjo6V2ViTm90aWZpY2F0aW9uKCkKK3sKK30KKwor
V2ViTm90aWZpY2F0aW9uOjpXZWJOb3RpZmljYXRpb24oY29uc3QgU3RyaW5nJiB0aXRsZSwgY29u
c3QgU3RyaW5nJiBib2R5LCB1aW50NjRfdCBub3RpZmljYXRpb25JRCkKKyAgICA6IG1fdGl0bGUo
dGl0bGUpCisgICAgLCBtX2JvZHkoYm9keSkKKyAgICAsIG1fbm90aWZpY2F0aW9uSUQobm90aWZp
Y2F0aW9uSUQpCit7Cit9CisKK1dlYk5vdGlmaWNhdGlvbjo6fldlYk5vdGlmaWNhdGlvbigpCit7
Cit9CisKK3ZvaWQgV2ViTm90aWZpY2F0aW9uOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNv
ZGVyKiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXItPmVuY29kZShDb3JlSVBDOjpJbiht
X3RpdGxlLCBtX2JvZHksIG1fbm90aWZpY2F0aW9uSUQpKTsKK30KKworYm9vbCBXZWJOb3RpZmlj
YXRpb246OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIFdlYk5vdGlm
aWNhdGlvbiYgbm90aWZpY2F0aW9uKQoreworICAgIHJldHVybiBkZWNvZGVyLT5kZWNvZGUoQ29y
ZUlQQzo6T3V0KG5vdGlmaWNhdGlvbi5tX3RpdGxlLCBub3RpZmljYXRpb24ubV9ib2R5LCBub3Rp
ZmljYXRpb24ubV9ub3RpZmljYXRpb25JRCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5v
dGlmaWNhdGlvbi5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2Vi
Tm90aWZpY2F0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjY4NTg2ZjEyNTIzNDM4NGE0NTNhODFjZDgzODQ4
YmJhZGZmOGRkNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9O
b3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbi5oCkBAIC0wLDAgKzEsODEgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIFdlYk5vdGlmaWNhdGlvbl9oCisjZGVmaW5lIFdlYk5vdGlmaWNhdGlvbl9o
CisKKyNpbmNsdWRlICJBUElPYmplY3QuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgor
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgQ29yZUlQQyB7CisK
K2NsYXNzIEFyZ3VtZW50RGVjb2RlcjsKK2NsYXNzIEFyZ3VtZW50RW5jb2RlcjsKKworfSAvLyBu
YW1lc3BhY2UgQ29yZUlQQworCituYW1lc3BhY2UgV2ViS2l0IHsKKyAgICAKK2NsYXNzIFdlYk5v
dGlmaWNhdGlvbiA6IHB1YmxpYyBBUElPYmplY3QgeworcHVibGljOgorICAgIHN0YXRpYyBjb25z
dCBUeXBlIEFQSVR5cGUgPSBUeXBlTm90aWZpY2F0aW9uOworICAgIAorICAgIFdlYk5vdGlmaWNh
dGlvbigpOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYk5vdGlmaWNhdGlvbj4gY3JlYXRlKGNv
bnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgYm9keSwgdWludDY0X3Qgbm90aWZpY2F0
aW9uSUQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYk5vdGlmaWNhdGlv
bih0aXRsZSwgYm9keSwgbm90aWZpY2F0aW9uSUQpKTsKKyAgICB9CisgICAgdmlydHVhbCB+V2Vi
Tm90aWZpY2F0aW9uKCk7CisgICAgCisgICAgY29uc3QgU3RyaW5nJiB0aXRsZSgpIGNvbnN0IHsg
cmV0dXJuIG1fdGl0bGU7IH0KKyAgICAKKyAgICBjb25zdCBTdHJpbmcmIGJvZHkoKSBjb25zdCB7
IHJldHVybiBtX2JvZHk7IH0KKyAgICAKKyAgICB1aW50NjRfdCBub3RpZmljYXRpb25JRCgpIGNv
bnN0IHsgcmV0dXJuIG1fbm90aWZpY2F0aW9uSUQ7IH0KKworICAgIHZvaWQgZW5jb2RlKENvcmVJ
UEM6OkFyZ3VtZW50RW5jb2RlciopIGNvbnN0OworICAgIHN0YXRpYyBib29sIGRlY29kZShDb3Jl
SVBDOjpBcmd1bWVudERlY29kZXIqLCBXZWJOb3RpZmljYXRpb24mKTsKKworcHJpdmF0ZToKKyAg
ICBXZWJOb3RpZmljYXRpb24oY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiBib2R5
LCB1aW50NjRfdCBub3RpZmljYXRpb25JRCk7CisKKyAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNv
bnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KKyAgICAKKyAgICBTdHJpbmcgbV90aXRsZTsKKyAgICBT
dHJpbmcgbV9ib2R5OworICAgIHVpbnQ2NF90IG1fbm90aWZpY2F0aW9uSUQ7Cit9OworCitpbmxp
bmUgYm9vbCBpc05vdGlmaWNhdGlvbklEVmFsaWQodWludDY0X3QgaWQpCit7CisgICAgLy8gVGhp
cyBjaGVjayBtYWtlcyBzdXJlIHRoYXQgdGhlIElEIGlzIG5vdCBlcXVhbCB0byB2YWx1ZXMgbmVl
ZGVkIGJ5CisgICAgLy8gSGFzaE1hcCBmb3IgYnVja2V0aW5nLgorICAgIHJldHVybiBpZCAmJiBp
ZCAhPSBzdGF0aWNfY2FzdDx1aW50NjRfdD4oLTEpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmIC8vIFdlYk5vdGlmaWNhdGlvbl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0
aW9uTWFuYWdlclByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZmNmYjM0ZDE2NTdmYTk1ZDdhYmI1Y2Uz
YTcxYmQyN2Q4NjQ0MGM3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcApAQCAtMCww
ICsxLDE1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJX
ZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaCIKKworI2luY2x1ZGUgIkltbXV0YWJsZUFycmF5
LmgiCisjaW5jbHVkZSAiV2ViQ29udGV4dC5oIgorI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbi5o
IgorI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUg
IldlYlNlY3VyaXR5T3JpZ2luLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RpZmljYXRpb25Db250
ZW50cy5oPgorCit1c2luZyBuYW1lc3BhY2UgV1RGOwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitQYXNzUmVmUHRyPFdlYk5vdGlmaWNhdGlvbk1hbmFn
ZXJQcm94eT4gV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5OjpjcmVhdGUoV2ViQ29udGV4dCog
Y29udGV4dCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYk5vdGlmaWNhdGlvbk1hbmFn
ZXJQcm94eShjb250ZXh0KSk7Cit9CisKK1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6V2Vi
Tm90aWZpY2F0aW9uTWFuYWdlclByb3h5KFdlYkNvbnRleHQqIGNvbnRleHQpCisgICAgOiBtX2Nv
bnRleHQoY29udGV4dCkKK3sKK30KKworV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5Ojp+V2Vi
Tm90aWZpY2F0aW9uTWFuYWdlclByb3h5KCkKK3sKK30KKwordm9pZCBXZWJOb3RpZmljYXRpb25N
YW5hZ2VyUHJveHk6OmludmFsaWRhdGUoKQoreworICAgIG1fcHJvdmlkZXIucmVtb3ZlTm90aWZp
Y2F0aW9uTWFuYWdlcih0aGlzKTsKK30KKwordm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJv
eHk6OmluaXRpYWxpemVQcm92aWRlcihjb25zdCBXS05vdGlmaWNhdGlvblByb3ZpZGVyICpwcm92
aWRlcikKK3sKKyAgICBtX3Byb3ZpZGVyLmluaXRpYWxpemUocHJvdmlkZXIpOworfQorCit2b2lk
IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6
Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29y
ZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit7CisgICAgZGlkUmVjZWl2ZVdlYk5v
dGlmaWNhdGlvbk1hbmFnZXJQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1
bWVudHMpOworfQorCit2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2
ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1l
c3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzLCBP
d25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPiYgcmVwbHkpCit7CisgICAgZGlkUmVjZWl2
ZVN5bmNXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3Nh
Z2VJRCwgYXJndW1lbnRzLCByZXBseSk7Cit9CisKK3ZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdl
clByb3h5OjpzaG93KGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgYm9keSwgdWlu
dDY0X3Qgbm90aWZpY2F0aW9uSUQpCit7CisgICAgaWYgKCFpc05vdGlmaWNhdGlvbklEVmFsaWQo
bm90aWZpY2F0aW9uSUQpKQorICAgICAgICByZXR1cm47CisgICAgCisgICAgbV9wcm92aWRlci5h
ZGROb3RpZmljYXRpb25NYW5hZ2VyKHRoaXMpOworCisgICAgUmVmUHRyPFdlYk5vdGlmaWNhdGlv
bj4gbm90aWZpY2F0aW9uID0gV2ViTm90aWZpY2F0aW9uOjpjcmVhdGUodGl0bGUsIGJvZHksIG5v
dGlmaWNhdGlvbklEKTsKKyAgICBtX25vdGlmaWNhdGlvbnMuc2V0KG5vdGlmaWNhdGlvbklELCBu
b3RpZmljYXRpb24pOworICAgIG1fcHJvdmlkZXIuc2hvdyhub3RpZmljYXRpb24uZ2V0KCkpOwor
fQorCit2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6Y2FuY2VsKHVpbnQ2NF90IG5v
dGlmaWNhdGlvbklEKQoreworICAgIGlmICghaXNOb3RpZmljYXRpb25JRFZhbGlkKG5vdGlmaWNh
dGlvbklEKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgUmVmUHRyPFdlYk5vdGlmaWNhdGlvbj4g
bm90aWZpY2F0aW9uID0gbV9ub3RpZmljYXRpb25zLmdldChub3RpZmljYXRpb25JRCk7CisgICAg
aWYgKCFub3RpZmljYXRpb24pCisgICAgICAgIHJldHVybjsKKworICAgIG1fcHJvdmlkZXIuYWRk
Tm90aWZpY2F0aW9uTWFuYWdlcih0aGlzKTsKKyAgICBtX3Byb3ZpZGVyLmNhbmNlbChub3RpZmlj
YXRpb24uZ2V0KCkpOworfQorICAgIAordm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6
OmRpZERlc3Ryb3lOb3RpZmljYXRpb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQpCit7CisgICAg
aWYgKCFpc05vdGlmaWNhdGlvbklEVmFsaWQobm90aWZpY2F0aW9uSUQpKQorICAgICAgICByZXR1
cm47CisKKyAgICBSZWZQdHI8V2ViTm90aWZpY2F0aW9uPiBub3RpZmljYXRpb24gPSBtX25vdGlm
aWNhdGlvbnMudGFrZShub3RpZmljYXRpb25JRCk7CisgICAgaWYgKCFub3RpZmljYXRpb24pCisg
ICAgICAgIHJldHVybjsKKworICAgIG1fcHJvdmlkZXIuZGlkRGVzdHJveU5vdGlmaWNhdGlvbihu
b3RpZmljYXRpb24uZ2V0KCkpOworfQorCit2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94
eTo6bm90aWZpY2F0aW9uUGVybWlzc2lvbkxldmVsKGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRp
ZmllciwgdWludDY0X3QmIHBlcm1pc3Npb25MZXZlbCkKK3sKKyAgICBSZWZQdHI8V2ViU2VjdXJp
dHlPcmlnaW4+IG9yaWdpbiA9IFdlYlNlY3VyaXR5T3JpZ2luOjpjcmVhdGUob3JpZ2luSWRlbnRp
Zmllcik7CisgICAgcGVybWlzc2lvbkxldmVsID0gbV9wcm92aWRlci5wb2xpY3lGb3JOb3RpZmlj
YXRpb25QZXJtaXNzaW9uQXRPcmlnaW4ob3JpZ2luLmdldCgpKTsKK30KKwordm9pZCBXZWJOb3Rp
ZmljYXRpb25NYW5hZ2VyUHJveHk6OnByb3ZpZGVyRGlkU2hvd05vdGlmaWNhdGlvbih1aW50NjRf
dCBub3RpZmljYXRpb25JRCkKK3sKKyAgICBpZiAoIW1fY29udGV4dCkKKyAgICAgICAgcmV0dXJu
OworICAgIAorICAgIG1fY29udGV4dC0+c2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJO
b3RpZmljYXRpb25NYW5hZ2VyOjpEaWRTaG93Tm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbklEKSk7
Cit9CisKK3ZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5Ojpwcm92aWRlckRpZENsaWNr
Tm90aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQoreworICAgIGlmICghbV9jb250
ZXh0KQorICAgICAgICByZXR1cm47CisgICAgCisgICAgbV9jb250ZXh0LT5zZW5kVG9BbGxQcm9j
ZXNzZXMoTWVzc2FnZXM6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OkRpZENsaWNrTm90aWZpY2F0
aW9uKG5vdGlmaWNhdGlvbklEKSk7Cit9CisKKwordm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2Vy
UHJveHk6OnByb3ZpZGVyRGlkQ2xvc2VOb3RpZmljYXRpb25zKEltbXV0YWJsZUFycmF5KiBub3Rp
ZmljYXRpb25JRHMpCit7CisgICAgaWYgKCFtX2NvbnRleHQpCisgICAgICAgIHJldHVybjsKKyAg
ICAKKyAgICBzaXplX3Qgc2l6ZSA9IG5vdGlmaWNhdGlvbklEcy0+c2l6ZSgpOworICAgIAorICAg
IFZlY3Rvcjx1aW50NjRfdD4gdmVjdG9yTm90aWZpY2F0aW9uSURzOworICAgIHZlY3Rvck5vdGlm
aWNhdGlvbklEcy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHNpemUpOworICAgIAorICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7CisgICAgICAgIHVpbnQ2NF90IG5vdGlmaWNh
dGlvbklEID0gbm90aWZpY2F0aW9uSURzLT5hdDxXZWJVSW50NjQ+KGkpLT52YWx1ZSgpOworICAg
ICAgICB2ZWN0b3JOb3RpZmljYXRpb25JRHMuYXBwZW5kKG5vdGlmaWNhdGlvbklEKTsKKyAgICB9
CisgICAgCisgICAgaWYgKHZlY3Rvck5vdGlmaWNhdGlvbklEcy5zaXplKCkpCisgICAgICAgIG1f
Y29udGV4dC0+c2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJOb3RpZmljYXRpb25NYW5h
Z2VyOjpEaWRDbG9zZU5vdGlmaWNhdGlvbnModmVjdG9yTm90aWZpY2F0aW9uSURzKSk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJv
eHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi42ODA5YWU0ZDQ4MmM1MDkyNjNiNWQyYTQ3ZGQ5YzQwNTkyMGY2MGRh
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlv
bnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmgKQEAgLTAsMCArMSw4OSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZm5kZWYgV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5X2gKKyNkZWZpbmUgV2Vi
Tm90aWZpY2F0aW9uTWFuYWdlclByb3h5X2gKKworI2luY2x1ZGUgIkFQSU9iamVjdC5oIgorI2lu
Y2x1ZGUgIk1lc3NhZ2VJRC5oIgorI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmgi
CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisjaW5j
bHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKworbmFtZXNwYWNlIENvcmVJUEMgeworY2xhc3MgQXJn
dW1lbnREZWNvZGVyOworY2xhc3MgQXJndW1lbnRFbmNvZGVyOworY2xhc3MgQ29ubmVjdGlvbjsK
K30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIEltbXV0YWJsZUFycmF5OworY2xhc3Mg
V2ViQ29udGV4dDsKKworY2xhc3MgV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5IDogcHVibGlj
IEFQSU9iamVjdCB7CitwdWJsaWM6CisgICAgc3RhdGljIGNvbnN0IFR5cGUgQVBJVHlwZSA9IFR5
cGVOb3RpZmljYXRpb25NYW5hZ2VyOworICAgIAorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYk5v
dGlmaWNhdGlvbk1hbmFnZXJQcm94eT4gY3JlYXRlKFdlYkNvbnRleHQqKTsKKyAgICB2aXJ0dWFs
IH5XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkoKTsKKyAgICAKKyAgICB2b2lkIGludmFsaWRh
dGUoKTsKKyAgICB2b2lkIGNsZWFyQ29udGV4dCgpIHsgbV9jb250ZXh0ID0gMDsgfQorCisgICAg
dm9pZCBpbml0aWFsaXplUHJvdmlkZXIoY29uc3QgV0tOb3RpZmljYXRpb25Qcm92aWRlciopOwor
ICAgIAorICAgIHZvaWQgcHJvdmlkZXJEaWRTaG93Tm90aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlm
aWNhdGlvbklEKTsKKyAgICB2b2lkIHByb3ZpZGVyRGlkQ2xpY2tOb3RpZmljYXRpb24odWludDY0
X3Qgbm90aWZpY2F0aW9uSUQpOworICAgIHZvaWQgcHJvdmlkZXJEaWRDbG9zZU5vdGlmaWNhdGlv
bnMoSW1tdXRhYmxlQXJyYXkqIG5vdGlmaWNhdGlvbklEcyk7CisgICAgCisgICAgdm9pZCBkaWRS
ZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1
bWVudERlY29kZXIqLCBPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPiYpOworCitwcml2
YXRlOgorICAgIGV4cGxpY2l0IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eShXZWJDb250ZXh0
Kik7CisgICAgCisgICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBBUElUeXBl
OyB9CisgICAgCisgICAgdm9pZCBkaWRSZWNlaXZlV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBD
OjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jV2ViTm90aWZpY2F0
aW9uTWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVz
c2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBPd25QdHI8Q29yZUlQQzo6QXJndW1l
bnRFbmNvZGVyPiYpOworICAgIAorICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMKKyAgICB2b2lkIHNo
b3coY29uc3QgV1RGOjpTdHJpbmcmIHRpdGxlLCBjb25zdCBXVEY6OlN0cmluZyYgYm9keSwgdWlu
dDY0X3Qgbm90aWZpY2F0aW9uSUQpOworICAgIHZvaWQgY2FuY2VsKHVpbnQ2NF90IG5vdGlmaWNh
dGlvbklEKTsKKyAgICB2b2lkIGRpZERlc3Ryb3lOb3RpZmljYXRpb24odWludDY0X3Qgbm90aWZp
Y2F0aW9uSUQpOworICAgIHZvaWQgbm90aWZpY2F0aW9uUGVybWlzc2lvbkxldmVsKGNvbnN0IFdU
Rjo6U3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyLCB1aW50NjRfdCYgcGVybWlzc2lvbkxldmVsKTsK
KworICAgIHR5cGVkZWYgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFdlYk5vdGlmaWNhdGlvbj4g
PiBXZWJOb3RpZmljYXRpb25NYXA7CisgICAgCisgICAgV2ViQ29udGV4dCogbV9jb250ZXh0Owor
ICAgIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyIG1fcHJvdmlkZXI7CisgICAgV2ViTm90aWZpY2F0
aW9uTWFwIG1fbm90aWZpY2F0aW9uczsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisj
ZW5kaWYgLy8gV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5X2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQ
cm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25z
L1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NjY3
MWI0Mjg0ZGE0MzYwYjAwODBjM2FkZGRkNTk1NWI1MWEyZjI5Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFu
YWdlclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMjkgQEAKKyMgQ29weXJpZ2h0IChDKSAy
MDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKworbWVzc2FnZXMgLT4gV2ViTm90aWZpY2F0aW9uTWFuYWdl
clByb3h5IHsKKyAgICBTaG93KFdURjo6U3RyaW5nIHRpdGxlLCBXVEY6OlN0cmluZyBib2R5LCB1
aW50NjRfdCBub3RpZmljYXRpb25JRCk7CisgICAgQ2FuY2VsKHVpbnQ2NF90IG5vdGlmaWNhdGlv
bklEKTsKKyAgICBEaWREZXN0cm95Tm90aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklE
KTsKKworICAgIE5vdGlmaWNhdGlvblBlcm1pc3Npb25MZXZlbChXVEY6OlN0cmluZyBvcmlnaW5J
ZGVudGlmaWVyKSAtPiAodWludDY0X3QgcG9saWN5KQorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9u
UHJvdmlkZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFmOGE3MWRiYWUzMTAwOGViMjkxN2RlODJlZDgyMTA3
OTM2NWMzODIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90
aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHAKQEAgLTAsMCArMSw4NCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJOb3RpZmljYXRp
b25Qcm92aWRlci5oIgorCisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisjaW5jbHVkZSAiV2ViTm90
aWZpY2F0aW9uLmgiCisjaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmgiCisj
aW5jbHVkZSAiV2ViU2VjdXJpdHlPcmlnaW4uaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3Zv
aWQgV2ViTm90aWZpY2F0aW9uUHJvdmlkZXI6OnNob3coV2ViTm90aWZpY2F0aW9uKiBub3RpZmlj
YXRpb24pCit7CisgICAgaWYgKCFtX2NsaWVudC5zaG93KQorICAgICAgICByZXR1cm47CisgICAg
CisgICAgbV9jbGllbnQuc2hvdyh0b0FQSShub3RpZmljYXRpb24pLCBtX2NsaWVudC5jbGllbnRJ
bmZvKTsKK30KKwordm9pZCBXZWJOb3RpZmljYXRpb25Qcm92aWRlcjo6Y2FuY2VsKFdlYk5vdGlm
aWNhdGlvbiogbm90aWZpY2F0aW9uKQoreworICAgIGlmICghbV9jbGllbnQuY2FuY2VsKQorICAg
ICAgICByZXR1cm47CisgICAgCisgICAgbV9jbGllbnQuY2FuY2VsKHRvQVBJKG5vdGlmaWNhdGlv
biksIG1fY2xpZW50LmNsaWVudEluZm8pOworfQorCit2b2lkIFdlYk5vdGlmaWNhdGlvblByb3Zp
ZGVyOjpkaWREZXN0cm95Tm90aWZpY2F0aW9uKFdlYk5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9u
KQoreworICAgIGlmICghbV9jbGllbnQuZGlkRGVzdHJveU5vdGlmaWNhdGlvbikKKyAgICAgICAg
cmV0dXJuOworICAgIAorICAgIG1fY2xpZW50LmRpZERlc3Ryb3lOb3RpZmljYXRpb24odG9BUEko
bm90aWZpY2F0aW9uKSwgbV9jbGllbnQuY2xpZW50SW5mbyk7Cit9CisKK2ludCBXZWJOb3RpZmlj
YXRpb25Qcm92aWRlcjo6cG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvbkF0T3JpZ2luKFdl
YlNlY3VyaXR5T3JpZ2luKiBvcmlnaW4pCit7CisgICAgaWYgKCFtX2NsaWVudC5wb2xpY3lGb3JO
b3RpZmljYXRpb25QZXJtaXNzaW9uQXRPcmlnaW4pCisgICAgICAgIHJldHVybiBJTlRfTUlOOwor
ICAgIAorICAgIHJldHVybiBtX2NsaWVudC5wb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9u
QXRPcmlnaW4odG9BUEkob3JpZ2luKSwgbV9jbGllbnQuY2xpZW50SW5mbyk7Cit9CisKK3ZvaWQg
V2ViTm90aWZpY2F0aW9uUHJvdmlkZXI6OmFkZE5vdGlmaWNhdGlvbk1hbmFnZXIoV2ViTm90aWZp
Y2F0aW9uTWFuYWdlclByb3h5KiBtYW5hZ2VyKQoreworICAgIGlmICghbV9jbGllbnQuYWRkTm90
aWZpY2F0aW9uTWFuYWdlcikKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIG1fY2xpZW50LmFk
ZE5vdGlmaWNhdGlvbk1hbmFnZXIodG9BUEkobWFuYWdlciksIG1fY2xpZW50LmNsaWVudEluZm8p
OworfQorCit2b2lkIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyOjpyZW1vdmVOb3RpZmljYXRpb25N
YW5hZ2VyKFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eSogbWFuYWdlcikKK3sKKyAgICBpZiAo
IW1fY2xpZW50LnJlbW92ZU5vdGlmaWNhdGlvbk1hbmFnZXIpCisgICAgICAgIHJldHVybjsKKyAg
ICAKKyAgICBtX2NsaWVudC5yZW1vdmVOb3RpZmljYXRpb25NYW5hZ2VyKHRvQVBJKG1hbmFnZXIp
LCBtX2NsaWVudC5jbGllbnRJbmZvKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmlj
YXRpb25Qcm92aWRlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMv
V2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NzBhMjY0ZDA4M2RkNzQ4NjUy
NDlmNDA2NDExOTI4NzQ5YWRhNTQ2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuaApAQCAtMCww
ICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJOb3RpZmljYXRpb25Qcm92aWRlcl9o
CisjZGVmaW5lIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyX2gKKworI2luY2x1ZGUgIkFQSUNsaWVu
dC5oIgorI2luY2x1ZGUgIldLTm90aWZpY2F0aW9uUHJvdmlkZXIuaCIKKyNpbmNsdWRlIDx3dGYv
Rm9yd2FyZC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViTm90aWZpY2F0aW9u
OworY2xhc3MgV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5OworY2xhc3MgV2ViU2VjdXJpdHlP
cmlnaW47CisgICAgCitjbGFzcyBXZWJOb3RpZmljYXRpb25Qcm92aWRlciA6IHB1YmxpYyBBUElD
bGllbnQ8V0tOb3RpZmljYXRpb25Qcm92aWRlciwga1dLTm90aWZpY2F0aW9uUHJvdmlkZXJDdXJy
ZW50VmVyc2lvbj4geworcHVibGljOgorICAgIHZvaWQgc2hvdyhXZWJOb3RpZmljYXRpb24qKTsK
KyAgICB2b2lkIGNhbmNlbChXZWJOb3RpZmljYXRpb24qKTsKKyAgICB2b2lkIGRpZERlc3Ryb3lO
b3RpZmljYXRpb24oV2ViTm90aWZpY2F0aW9uKik7CisgICAgaW50IHBvbGljeUZvck5vdGlmaWNh
dGlvblBlcm1pc3Npb25BdE9yaWdpbihXZWJTZWN1cml0eU9yaWdpbiopOworCisgICAgdm9pZCBh
ZGROb3RpZmljYXRpb25NYW5hZ2VyKFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eSopOworICAg
IHZvaWQgcmVtb3ZlTm90aWZpY2F0aW9uTWFuYWdlcihXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJv
eHkqKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViTm90aWZp
Y2F0aW9uUHJvdmlkZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
Yk5vdGlmaWNhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTm90aWZpY2F0
aW9uLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2YwMjU5ODYyNGMxNTZhOThm
YmYyMDlhNjIyZTExOTFjMmE2ZmQzZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9uLmNw
cAorKysgL2Rldi9udWxsCkBAIC0xLDYxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAi
Y29uZmlnLmgiCi0jaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9uLmgiCi0KLSNpbmNsdWRlICJBcmd1
bWVudENvZGVycy5oIgotI2luY2x1ZGUgIkFyZ3VtZW50RGVjb2Rlci5oIgotI2luY2x1ZGUgIkFy
Z3VtZW50RW5jb2Rlci5oIgotI2luY2x1ZGUgIkFyZ3VtZW50cy5oIgotCi1uYW1lc3BhY2UgV2Vi
S2l0IHsKLQotV2ViTm90aWZpY2F0aW9uOjpXZWJOb3RpZmljYXRpb24oKQotewotfQotCi1XZWJO
b3RpZmljYXRpb246OldlYk5vdGlmaWNhdGlvbihjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBT
dHJpbmcmIGJvZHksIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQotICAgIDogbV90aXRsZSh0aXRs
ZSkKLSAgICAsIG1fYm9keShib2R5KQotICAgICwgbV9ub3RpZmljYXRpb25JRChub3RpZmljYXRp
b25JRCkKLXsKLX0KLQotV2ViTm90aWZpY2F0aW9uOjp+V2ViTm90aWZpY2F0aW9uKCkKLXsKLX0K
LQotdm9pZCBXZWJOb3RpZmljYXRpb246OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIq
IGVuY29kZXIpIGNvbnN0Ci17Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKENvcmVJUEM6OkluKG1fdGl0
bGUsIG1fYm9keSwgbV9ub3RpZmljYXRpb25JRCkpOwotfQotCi1ib29sIFdlYk5vdGlmaWNhdGlv
bjo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgV2ViTm90aWZpY2F0
aW9uJiBub3RpZmljYXRpb24pCi17Ci0gICAgcmV0dXJuIGRlY29kZXItPmRlY29kZShDb3JlSVBD
OjpPdXQobm90aWZpY2F0aW9uLm1fdGl0bGUsIG5vdGlmaWNhdGlvbi5tX2JvZHksIG5vdGlmaWNh
dGlvbi5tX25vdGlmaWNhdGlvbklEKSk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5vdGlmaWNhdGlvbi5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5vdGlmaWNhdGlvbi5oCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBmNjg1ODZmMTI1MjM0Mzg0YTQ1M2E4MWNkODM4NDhiYmFkZmY4ZGQ0Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJOb3RpZmljYXRpb24uaAorKysgL2Rldi9udWxsCkBAIC0xLDgxICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0g
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFdlYk5vdGlmaWNhdGlvbl9oCi0jZGVmaW5lIFdl
Yk5vdGlmaWNhdGlvbl9oCi0KLSNpbmNsdWRlICJBUElPYmplY3QuaCIKLSNpbmNsdWRlIDx3dGYv
UGFzc1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgotCi1uYW1lc3Bh
Y2UgQ29yZUlQQyB7Ci0KLWNsYXNzIEFyZ3VtZW50RGVjb2RlcjsKLWNsYXNzIEFyZ3VtZW50RW5j
b2RlcjsKLQotfSAvLyBuYW1lc3BhY2UgQ29yZUlQQwotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLSAg
ICAKLWNsYXNzIFdlYk5vdGlmaWNhdGlvbiA6IHB1YmxpYyBBUElPYmplY3QgewotcHVibGljOgot
ICAgIHN0YXRpYyBjb25zdCBUeXBlIEFQSVR5cGUgPSBUeXBlTm90aWZpY2F0aW9uOwotICAgIAot
ICAgIFdlYk5vdGlmaWNhdGlvbigpOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYk5vdGlmaWNh
dGlvbj4gY3JlYXRlKGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgYm9keSwgdWlu
dDY0X3Qgbm90aWZpY2F0aW9uSUQpCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3
IFdlYk5vdGlmaWNhdGlvbih0aXRsZSwgYm9keSwgbm90aWZpY2F0aW9uSUQpKTsKLSAgICB9Ci0g
ICAgdmlydHVhbCB+V2ViTm90aWZpY2F0aW9uKCk7Ci0gICAgCi0gICAgY29uc3QgU3RyaW5nJiB0
aXRsZSgpIGNvbnN0IHsgcmV0dXJuIG1fdGl0bGU7IH0KLSAgICAKLSAgICBjb25zdCBTdHJpbmcm
IGJvZHkoKSBjb25zdCB7IHJldHVybiBtX2JvZHk7IH0KLSAgICAKLSAgICB1aW50NjRfdCBub3Rp
ZmljYXRpb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fbm90aWZpY2F0aW9uSUQ7IH0KLQotICAgIHZv
aWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciopIGNvbnN0OwotICAgIHN0YXRpYyBi
b29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBXZWJOb3RpZmljYXRpb24mKTsK
LQotcHJpdmF0ZToKLSAgICBXZWJOb3RpZmljYXRpb24oY29uc3QgU3RyaW5nJiB0aXRsZSwgY29u
c3QgU3RyaW5nJiBib2R5LCB1aW50NjRfdCBub3RpZmljYXRpb25JRCk7Ci0KLSAgICB2aXJ0dWFs
IFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KLSAgICAKLSAgICBTdHJpbmcg
bV90aXRsZTsKLSAgICBTdHJpbmcgbV9ib2R5OwotICAgIHVpbnQ2NF90IG1fbm90aWZpY2F0aW9u
SUQ7Ci19OwotCi1pbmxpbmUgYm9vbCBpc05vdGlmaWNhdGlvbklEVmFsaWQodWludDY0X3QgaWQp
Ci17Ci0gICAgLy8gVGhpcyBjaGVjayBtYWtlcyBzdXJlIHRoYXQgdGhlIElEIGlzIG5vdCBlcXVh
bCB0byB2YWx1ZXMgbmVlZGVkIGJ5Ci0gICAgLy8gSGFzaE1hcCBmb3IgYnVja2V0aW5nLgotICAg
IHJldHVybiBpZCAmJiBpZCAhPSBzdGF0aWNfY2FzdDx1aW50NjRfdD4oLTEpOwotfQotCi19IC8v
IG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIFdlYk5vdGlmaWNhdGlvbl9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJv
eHkuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MDI5ZGM0NGU5ZmE4Zjg4MjUw
MmUzMDJhZWI4YmFmZTg2ZDM0YjAwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOb3RpZmljYXRpb25NYW5h
Z2VyUHJveHkuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTQyICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9uTWFuYWdlclBy
b3h5LmgiCi0KLSNpbmNsdWRlICJJbW11dGFibGVBcnJheS5oIgotI2luY2x1ZGUgIldlYkNvbnRl
eHQuaCIKLSNpbmNsdWRlICJXZWJOb3RpZmljYXRpb24uaCIKLSNpbmNsdWRlICJXZWJOb3RpZmlj
YXRpb25NYW5hZ2VyTWVzc2FnZXMuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL05vdGlmaWNhdGlvbkNv
bnRlbnRzLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBXVEY7Ci11c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLVBhc3NSZWZQdHI8V2ViTm90aWZpY2F0aW9uTWFu
YWdlclByb3h5PiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OmNyZWF0ZShXZWJDb250ZXh0
KiBjb250ZXh0KQotewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViTm90aWZpY2F0aW9uTWFu
YWdlclByb3h5KGNvbnRleHQpKTsKLX0KLQotV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5OjpX
ZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkoV2ViQ29udGV4dCogY29udGV4dCkKLSAgICA6IG1f
Y29udGV4dChjb250ZXh0KQotewotfQotCi1XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6On5X
ZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkoKQotewotfQotCi12b2lkIFdlYk5vdGlmaWNhdGlv
bk1hbmFnZXJQcm94eTo6aW52YWxpZGF0ZSgpCi17Ci0gICAgbV9wcm92aWRlci5yZW1vdmVOb3Rp
ZmljYXRpb25NYW5hZ2VyKHRoaXMpOwotfQotCi12b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQ
cm94eTo6aW5pdGlhbGl6ZVByb3ZpZGVyKGNvbnN0IFdLTm90aWZpY2F0aW9uUHJvdmlkZXIgKnBy
b3ZpZGVyKQotewotICAgIG1fcHJvdmlkZXIuaW5pdGlhbGl6ZShwcm92aWRlcik7Ci19Ci0KLXZv
aWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBD
OjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKLXsKLSAgICBkaWRSZWNlaXZlV2Vi
Tm90aWZpY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFy
Z3VtZW50cyk7Ci19Ci0KLXZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5OjpzaG93KGNv
bnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgYm9keSwgdWludDY0X3Qgbm90aWZpY2F0
aW9uSUQpCi17Ci0gICAgaWYgKCFpc05vdGlmaWNhdGlvbklEVmFsaWQobm90aWZpY2F0aW9uSUQp
KQotICAgICAgICByZXR1cm47Ci0gICAgCi0gICAgbV9wcm92aWRlci5hZGROb3RpZmljYXRpb25N
YW5hZ2VyKHRoaXMpOwotCi0gICAgUmVmUHRyPFdlYk5vdGlmaWNhdGlvbj4gbm90aWZpY2F0aW9u
ID0gV2ViTm90aWZpY2F0aW9uOjpjcmVhdGUodGl0bGUsIGJvZHksIG5vdGlmaWNhdGlvbklEKTsK
LSAgICBtX25vdGlmaWNhdGlvbnMuc2V0KG5vdGlmaWNhdGlvbklELCBub3RpZmljYXRpb24pOwot
ICAgIG1fcHJvdmlkZXIuc2hvdyhub3RpZmljYXRpb24uZ2V0KCkpOwotfQotCi12b2lkIFdlYk5v
dGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6Y2FuY2VsKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQot
ewotICAgIGlmICghaXNOb3RpZmljYXRpb25JRFZhbGlkKG5vdGlmaWNhdGlvbklEKSkKLSAgICAg
ICAgcmV0dXJuOwotCi0gICAgUmVmUHRyPFdlYk5vdGlmaWNhdGlvbj4gbm90aWZpY2F0aW9uID0g
bV9ub3RpZmljYXRpb25zLmdldChub3RpZmljYXRpb25JRCk7Ci0gICAgaWYgKCFub3RpZmljYXRp
b24pCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fcHJvdmlkZXIuYWRkTm90aWZpY2F0aW9uTWFu
YWdlcih0aGlzKTsKLSAgICBtX3Byb3ZpZGVyLmNhbmNlbChub3RpZmljYXRpb24uZ2V0KCkpOwot
fQotICAgIAotdm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OmRpZERlc3Ryb3lOb3Rp
ZmljYXRpb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQpCi17Ci0gICAgaWYgKCFpc05vdGlmaWNh
dGlvbklEVmFsaWQobm90aWZpY2F0aW9uSUQpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBSZWZQ
dHI8V2ViTm90aWZpY2F0aW9uPiBub3RpZmljYXRpb24gPSBtX25vdGlmaWNhdGlvbnMudGFrZShu
b3RpZmljYXRpb25JRCk7Ci0gICAgaWYgKCFub3RpZmljYXRpb24pCi0gICAgICAgIHJldHVybjsK
LQotICAgIG1fcHJvdmlkZXIuZGlkRGVzdHJveU5vdGlmaWNhdGlvbihub3RpZmljYXRpb24uZ2V0
KCkpOwotfQotCi12b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6cHJvdmlkZXJEaWRT
aG93Tm90aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQotewotICAgIGlmICghbV9j
b250ZXh0KQotICAgICAgICByZXR1cm47Ci0gICAgCi0gICAgbV9jb250ZXh0LT5zZW5kVG9BbGxQ
cm9jZXNzZXMoTWVzc2FnZXM6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OkRpZFNob3dOb3RpZmlj
YXRpb24obm90aWZpY2F0aW9uSUQpKTsKLX0KLQotdm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2Vy
UHJveHk6OnByb3ZpZGVyRGlkQ2xpY2tOb3RpZmljYXRpb24odWludDY0X3Qgbm90aWZpY2F0aW9u
SUQpCi17Ci0gICAgaWYgKCFtX2NvbnRleHQpCi0gICAgICAgIHJldHVybjsKLSAgICAKLSAgICBt
X2NvbnRleHQtPnNlbmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6V2ViTm90aWZpY2F0aW9uTWFu
YWdlcjo6RGlkQ2xpY2tOb3RpZmljYXRpb24obm90aWZpY2F0aW9uSUQpKTsKLX0KLQotCi12b2lk
IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6cHJvdmlkZXJEaWRDbG9zZU5vdGlmaWNhdGlv
bnMoSW1tdXRhYmxlQXJyYXkqIG5vdGlmaWNhdGlvbklEcykKLXsKLSAgICBpZiAoIW1fY29udGV4
dCkKLSAgICAgICAgcmV0dXJuOwotICAgIAotICAgIHNpemVfdCBzaXplID0gbm90aWZpY2F0aW9u
SURzLT5zaXplKCk7Ci0gICAgCi0gICAgVmVjdG9yPHVpbnQ2NF90PiB2ZWN0b3JOb3RpZmljYXRp
b25JRHM7Ci0gICAgdmVjdG9yTm90aWZpY2F0aW9uSURzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHko
c2l6ZSk7Ci0gICAgCi0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKLSAg
ICAgICAgdWludDY0X3Qgbm90aWZpY2F0aW9uSUQgPSBub3RpZmljYXRpb25JRHMtPmF0PFdlYlVJ
bnQ2ND4oaSktPnZhbHVlKCk7Ci0gICAgICAgIHZlY3Rvck5vdGlmaWNhdGlvbklEcy5hcHBlbmQo
bm90aWZpY2F0aW9uSUQpOwotICAgIH0KLSAgICAKLSAgICBpZiAodmVjdG9yTm90aWZpY2F0aW9u
SURzLnNpemUoKSkKLSAgICAgICAgbV9jb250ZXh0LT5zZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2Fn
ZXM6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OkRpZENsb3NlTm90aWZpY2F0aW9ucyh2ZWN0b3JO
b3RpZmljYXRpb25JRHMpKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmgK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU4N2ZhOWE0ODYxZGExNmRiOGNkNTk1NzYy
YTljNzhjZmEyYzMyZjkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94
eS5oCisrKyAvZGV2L251bGwKQEAgLTEsODQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYg
V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5X2gKLSNkZWZpbmUgV2ViTm90aWZpY2F0aW9uTWFu
YWdlclByb3h5X2gKLQotI2luY2x1ZGUgIkFQSU9iamVjdC5oIgotI2luY2x1ZGUgIk1lc3NhZ2VJ
RC5oIgotI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmgiCi0jaW5jbHVkZSA8d3Rm
L0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgotCi1uYW1lc3BhY2UgQ29y
ZUlQQyB7Ci1jbGFzcyBBcmd1bWVudERlY29kZXI7Ci1jbGFzcyBDb25uZWN0aW9uOwotfQotCi1u
YW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgSW1tdXRhYmxlQXJyYXk7Ci1jbGFzcyBXZWJDb250
ZXh0OwotCi1jbGFzcyBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkgOiBwdWJsaWMgQVBJT2Jq
ZWN0IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgVHlwZSBBUElUeXBlID0gVHlwZU5vdGlm
aWNhdGlvbk1hbmFnZXI7Ci0gICAgCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViTm90aWZpY2F0
aW9uTWFuYWdlclByb3h5PiBjcmVhdGUoV2ViQ29udGV4dCopOwotICAgIHZpcnR1YWwgfldlYk5v
dGlmaWNhdGlvbk1hbmFnZXJQcm94eSgpOwotICAgIAotICAgIHZvaWQgaW52YWxpZGF0ZSgpOwot
ICAgIHZvaWQgY2xlYXJDb250ZXh0KCkgeyBtX2NvbnRleHQgPSAwOyB9Ci0KLSAgICB2b2lkIGlu
aXRpYWxpemVQcm92aWRlcihjb25zdCBXS05vdGlmaWNhdGlvblByb3ZpZGVyKik7Ci0gICAgCi0g
ICAgdm9pZCBwcm92aWRlckRpZFNob3dOb3RpZmljYXRpb24odWludDY0X3Qgbm90aWZpY2F0aW9u
SUQpOwotICAgIHZvaWQgcHJvdmlkZXJEaWRDbGlja05vdGlmaWNhdGlvbih1aW50NjRfdCBub3Rp
ZmljYXRpb25JRCk7Ci0gICAgdm9pZCBwcm92aWRlckRpZENsb3NlTm90aWZpY2F0aW9ucyhJbW11
dGFibGVBcnJheSogbm90aWZpY2F0aW9uSURzKTsKLSAgICAKLSAgICB2b2lkIGRpZFJlY2VpdmVN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciopOwotCi1wcml2YXRlOgotICAgIGV4cGxpY2l0IFdlYk5vdGlmaWNh
dGlvbk1hbmFnZXJQcm94eShXZWJDb250ZXh0Kik7Ci0gICAgCi0gICAgdmlydHVhbCBUeXBlIHR5
cGUoKSBjb25zdCB7IHJldHVybiBBUElUeXBlOyB9Ci0gICAgCi0gICAgdm9pZCBkaWRSZWNlaXZl
V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwg
Q29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKLSAgICAKLSAg
ICAvLyBNZXNzYWdlIGhhbmRsZXJzCi0gICAgdm9pZCBzaG93KGNvbnN0IFdURjo6U3RyaW5nJiB0
aXRsZSwgY29uc3QgV1RGOjpTdHJpbmcmIGJvZHksIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKTsK
LSAgICB2b2lkIGNhbmNlbCh1aW50NjRfdCBub3RpZmljYXRpb25JRCk7Ci0gICAgdm9pZCBkaWRE
ZXN0cm95Tm90aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKTsKLSAgICAKLSAgICB0
eXBlZGVmIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxXZWJOb3RpZmljYXRpb24+ID4gV2ViTm90
aWZpY2F0aW9uTWFwOwotICAgIAotICAgIFdlYkNvbnRleHQqIG1fY29udGV4dDsKLSAgICBXZWJO
b3RpZmljYXRpb25Qcm92aWRlciBtX3Byb3ZpZGVyOwotICAgIFdlYk5vdGlmaWNhdGlvbk1hcCBt
X25vdGlmaWNhdGlvbnM7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8v
IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5tZXNzYWdl
cy5pbgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmQ0MDNjM2Q3ZDg1OWNlNWQ5MDBh
NDhhMGRlYjQ2OWQ4MDYxODhhZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTm90aWZpY2F0aW9uTWFuYWdl
clByb3h5Lm1lc3NhZ2VzLmluCisrKyAvZGV2L251bGwKQEAgLTEsMjcgKzAsMCBAQAotIyBDb3B5
cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0jIGFyZSBtZXQ6Ci0jIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
IyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSMgICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0jCi0j
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycgQU5ECi0jIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0jIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKLSMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKLSMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAotIyBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUgotIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgotIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAotIyBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi1tZXNzYWdlcyAtPiBXZWJOb3RpZmlj
YXRpb25NYW5hZ2VyUHJveHkgewotICAgIFNob3coV1RGOjpTdHJpbmcgdGl0bGUsIFdURjo6U3Ry
aW5nIGJvZHksIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKTsKLSAgICBDYW5jZWwodWludDY0X3Qg
bm90aWZpY2F0aW9uSUQpOwotICAgIERpZERlc3Ryb3lOb3RpZmljYXRpb24odWludDY0X3Qgbm90
aWZpY2F0aW9uSUQpOwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
Yk5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJO
b3RpZmljYXRpb25Qcm92aWRlci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ2
MWIxYWQ3ODk2ZGFlOTcyOGUwNDcyYjNhZmI2NWVjYTM4NGRlYmIuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
Yk5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDc1ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV2ViTm90aWZpY2F0
aW9uUHJvdmlkZXIuaCIKLQotI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgotI2luY2x1ZGUgIldlYk5v
dGlmaWNhdGlvbi5oIgotI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oIgot
Ci1uYW1lc3BhY2UgV2ViS2l0IHsKLQotdm9pZCBXZWJOb3RpZmljYXRpb25Qcm92aWRlcjo6c2hv
dyhXZWJOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbikKLXsKLSAgICBpZiAoIW1fY2xpZW50LnNo
b3cpCi0gICAgICAgIHJldHVybjsKLSAgICAKLSAgICBtX2NsaWVudC5zaG93KHRvQVBJKG5vdGlm
aWNhdGlvbiksIG1fY2xpZW50LmNsaWVudEluZm8pOwotfQotCi12b2lkIFdlYk5vdGlmaWNhdGlv
blByb3ZpZGVyOjpjYW5jZWwoV2ViTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24pCi17Ci0gICAg
aWYgKCFtX2NsaWVudC5jYW5jZWwpCi0gICAgICAgIHJldHVybjsKLSAgICAKLSAgICBtX2NsaWVu
dC5jYW5jZWwodG9BUEkobm90aWZpY2F0aW9uKSwgbV9jbGllbnQuY2xpZW50SW5mbyk7Ci19Ci0K
LXZvaWQgV2ViTm90aWZpY2F0aW9uUHJvdmlkZXI6OmRpZERlc3Ryb3lOb3RpZmljYXRpb24oV2Vi
Tm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24pCi17Ci0gICAgaWYgKCFtX2NsaWVudC5kaWREZXN0
cm95Tm90aWZpY2F0aW9uKQotICAgICAgICByZXR1cm47Ci0gICAgCi0gICAgbV9jbGllbnQuZGlk
RGVzdHJveU5vdGlmaWNhdGlvbih0b0FQSShub3RpZmljYXRpb24pLCBtX2NsaWVudC5jbGllbnRJ
bmZvKTsKLX0KLQotdm9pZCBXZWJOb3RpZmljYXRpb25Qcm92aWRlcjo6YWRkTm90aWZpY2F0aW9u
TWFuYWdlcihXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkqIG1hbmFnZXIpCi17Ci0gICAgaWYg
KCFtX2NsaWVudC5hZGROb3RpZmljYXRpb25NYW5hZ2VyKQotICAgICAgICByZXR1cm47Ci0gICAg
Ci0gICAgbV9jbGllbnQuYWRkTm90aWZpY2F0aW9uTWFuYWdlcih0b0FQSShtYW5hZ2VyKSwgbV9j
bGllbnQuY2xpZW50SW5mbyk7Ci19Ci0KLXZvaWQgV2ViTm90aWZpY2F0aW9uUHJvdmlkZXI6OnJl
bW92ZU5vdGlmaWNhdGlvbk1hbmFnZXIoV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5KiBtYW5h
Z2VyKQotewotICAgIGlmICghbV9jbGllbnQucmVtb3ZlTm90aWZpY2F0aW9uTWFuYWdlcikKLSAg
ICAgICAgcmV0dXJuOwotICAgIAotICAgIG1fY2xpZW50LnJlbW92ZU5vdGlmaWNhdGlvbk1hbmFn
ZXIodG9BUEkobWFuYWdlciksIG1fY2xpZW50LmNsaWVudEluZm8pOwotfQotCi19IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOb3Rp
ZmljYXRpb25Qcm92aWRlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5vdGlmaWNh
dGlvblByb3ZpZGVyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZmNDBiYThmN2Qw
ZjlmYjBkNGQ5MTUxODkwNmQzYjEzNGU4MzZlN2IuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5vdGlmaWNh
dGlvblByb3ZpZGVyLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1MCArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0g
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotI2lmbmRlZiBXZWJOb3RpZmljYXRpb25Qcm92aWRlcl9oCi0jZGVmaW5lIFdlYk5vdGlmaWNh
dGlvblByb3ZpZGVyX2gKLQotI2luY2x1ZGUgIkFQSUNsaWVudC5oIgotI2luY2x1ZGUgIldLTm90
aWZpY2F0aW9uUHJvdmlkZXIuaCIKLSNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgotCi1uYW1lc3Bh
Y2UgV2ViS2l0IHsKLQotY2xhc3MgV2ViTm90aWZpY2F0aW9uOwotY2xhc3MgV2ViTm90aWZpY2F0
aW9uTWFuYWdlclByb3h5OwotICAgIAotY2xhc3MgV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIgOiBw
dWJsaWMgQVBJQ2xpZW50PFdLTm90aWZpY2F0aW9uUHJvdmlkZXIsIGtXS05vdGlmaWNhdGlvblBy
b3ZpZGVyQ3VycmVudFZlcnNpb24+IHsKLXB1YmxpYzoKLSAgICB2b2lkIHNob3coV2ViTm90aWZp
Y2F0aW9uKik7Ci0gICAgdm9pZCBjYW5jZWwoV2ViTm90aWZpY2F0aW9uKik7Ci0gICAgdm9pZCBk
aWREZXN0cm95Tm90aWZpY2F0aW9uKFdlYk5vdGlmaWNhdGlvbiopOwotCi0gICAgdm9pZCBhZGRO
b3RpZmljYXRpb25NYW5hZ2VyKFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eSopOwotICAgIHZv
aWQgcmVtb3ZlTm90aWZpY2F0aW9uTWFuYWdlcihXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkq
KTsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gV2ViTm90aWZpY2F0
aW9uUHJvdmlkZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApp
bmRleCBiOTc3ZDg4ZWYwMzNkNWY2NzQwZGU0MTQ2OTUyYzUzMDNiMjNhODM0Li5lZmY2NjExNjZl
MzZiMDUwYmE2N2E1YzIwM2Y5MWYxYjcxNTI0NDUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMzcsNiArMzcsOCBAQAogI2luY2x1ZGUgIk5hdGl2ZVdl
YktleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJOYXRpdmVXZWJNb3VzZUV2ZW50LmgiCiAjaW5j
bHVkZSAiTmF0aXZlV2ViV2hlZWxFdmVudC5oIgorI2luY2x1ZGUgIk5vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0LmgiCisjaW5jbHVkZSAiTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyLmgiCiAjaW5jbHVkZSAiUGFnZUNsaWVudC5oIgogI2luY2x1ZGUgIlByaW50SW5mby5o
IgogI2luY2x1ZGUgIlNlc3Npb25TdGF0ZS5oIgpAQCAtMTQ2LDYgKzE0OCw3IEBAIFdlYlBhZ2VQ
cm94eTo6V2ViUGFnZVByb3h5KFBhZ2VDbGllbnQqIHBhZ2VDbGllbnQsIFBhc3NSZWZQdHI8V2Vi
UHJvY2Vzc1Byb3h5PiBwCiAgICAgLCBtX21haW5GcmFtZSgwKQogICAgICwgbV91c2VyQWdlbnQo
c3RhbmRhcmRVc2VyQWdlbnQoKSkKICAgICAsIG1fZ2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXIodGhpcykKKyAgICAsIG1fbm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyKHRoaXMpCiAgICAgLCBtX2VzdGltYXRlZFByb2dyZXNzKDApCiAgICAgLCBtX2lzSW5XaW5k
b3cobV9wYWdlQ2xpZW50LT5pc1ZpZXdJbldpbmRvdygpKQogICAgICwgbV9pc1Zpc2libGUobV9w
YWdlQ2xpZW50LT5pc1ZpZXdWaXNpYmxlKCkpCkBAIC0zNjQsNiArMzY3LDcgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OmNsb3NlKCkKICAgICB9CiAKICAgICBtX2dlb2xvY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyLmludmFsaWRhdGVSZXF1ZXN0cygpOworICAgIG1fbm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyLmludmFsaWRhdGVSZXF1ZXN0cygpOwogCiAgICAgbV90b29s
VGlwID0gU3RyaW5nKCk7CiAKQEAgLTMxMzMsNiArMzEzNyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5
Ojpwcm9jZXNzRGlkQ3Jhc2goKQogICAgIH0KIAogICAgIG1fZ2VvbG9jYXRpb25QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXIuaW52YWxpZGF0ZVJlcXVlc3RzKCk7CisgICAgbV9ub3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaW52YWxpZGF0ZVJlcXVlc3RzKCk7CiAKICAgICBtX3Rv
b2xUaXAgPSBTdHJpbmcoKTsKIApAQCAtMzI5NSw2ICszMzAwLDE4IEBAIHZvaWQgV2ViUGFnZVBy
b3h5OjpyZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgZ2VvbG9j
YXRpb25JRCwKICAgICAgICAgcmVxdWVzdC0+ZGVueSgpOwogfQogCit2b2lkIFdlYlBhZ2VQcm94
eTo6cmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb24odWludDY0X3QgcmVxdWVzdElELCBjb25z
dCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIpCit7CisgICAgaWYgKCFpc1JlcXVlc3RJRFZhbGlk
KHJlcXVlc3RJRCkpCisgICAgICAgIHJldHVybjsKKworICAgIFJlZlB0cjxXZWJTZWN1cml0eU9y
aWdpbj4gb3JpZ2luID0gV2ViU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShvcmlnaW5JZGVudGlmaWVy
KTsKKyAgICBSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q+IHJlcXVlc3QgPSBt
X25vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcmVhdGVSZXF1ZXN0KHJlcXVl
c3RJRCk7CisgICAgCisgICAgaWYgKCFtX3VpQ2xpZW50LmRlY2lkZVBvbGljeUZvck5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0KHRoaXMsIG9yaWdpbi5nZXQoKSwgcmVxdWVzdC5nZXQoKSkp
CisgICAgICAgIHJlcXVlc3QtPmRlbnkoKTsKK30KKwogZmxvYXQgV2ViUGFnZVByb3h5OjpoZWFk
ZXJIZWlnaHQoV2ViRnJhbWVQcm94eSogZnJhbWUpCiB7CiAgICAgcmV0dXJuIG1fdWlDbGllbnQu
aGVhZGVySGVpZ2h0KHRoaXMsIGZyYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaAppbmRleCA4MjU1Y2Y0MWZjM2Y2ZGQxMjYzMTQ2YTBiNmRkMjM3NzFkZjQ3ZDA1Li40
N2ZjZDZjMDIyM2I4Y2E0YWEyMDcxMWY4NWRmNDg3YTAxN2NiNDlkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0zNiw2ICszNiw3IEBACiAjaWYgRU5BQkxFKFRP
VUNIX0VWRU5UUykKICNpbmNsdWRlICJOYXRpdmVXZWJUb3VjaEV2ZW50LmgiCiAjZW5kaWYKKyNp
bmNsdWRlICJOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIgogI2lu
Y2x1ZGUgIlBsYXRmb3JtUHJvY2Vzc0lkZW50aWZpZXIuaCIKICNpbmNsdWRlICJTYW5kYm94RXh0
ZW5zaW9uLmgiCiAjaW5jbHVkZSAiU2hhcmVhYmxlQml0bWFwLmgiCkBAIC02ODUsNiArNjg2LDgg
QEAgcHJpdmF0ZToKICAgICB2b2lkIHJlYXR0YWNoVG9XZWJQcm9jZXNzKCk7CiAgICAgdm9pZCBy
ZWF0dGFjaFRvV2ViUHJvY2Vzc1dpdGhJdGVtKFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qKTsKIAor
ICAgIHZvaWQgcmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb24odWludDY0X3Qgbm90aWZpY2F0
aW9uSUQsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllcik7CisgICAgCiAjaWYgVVNFKFRJ
TEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgdm9pZCBwYWdlRGlkUmVxdWVzdFNjcm9sbChjb25zdCBX
ZWJDb3JlOjpJbnRQb2ludCYpOwogI2VuZGlmCkBAIC04NjksNiArODcyLDcgQEAgcHJpdmF0ZToK
ICAgICBDb250ZXh0TWVudVN0YXRlIG1fYWN0aXZlQ29udGV4dE1lbnVTdGF0ZTsKICAgICBSZWZQ
dHI8V2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eT4gbV9vcGVuUGFuZWxSZXN1bHRMaXN0
ZW5lcjsKICAgICBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5IG1fZ2Vv
bG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7CisgICAgTm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHkgbV9ub3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXI7CiAKICAgICBkb3VibGUgbV9lc3RpbWF0ZWRQcm9ncmVzczsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggNmQyYWIz
OWUxNjFhZmMxYmNjN2UyNzVlYjNhOTI4YzJhZjY3ZmU4YS4uNWUzZDY5ODkxN2U5Yjc2NzVmMDk3
N2RlM2MyMTMwODMzNDM3MTlmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0xOTQsNiArMTk0LDkgQEAgbWVzc2FnZXMgLT4g
V2ViUGFnZVByb3h5IHsKIAogICAgICMgR2VvbG9jYXRpb24gbWVzc2FnZXMKICAgICBSZXF1ZXN0
R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgZ2VvbG9jYXRpb25JRCwgdWlu
dDY0X3QgZnJhbWVJRCwgV1RGOjpTdHJpbmcgb3JpZ2luSWRlbnRpZmllcikKKyAgICAKKyAgICAj
IE5vdGlmaWNhdGlvbiBtZXNzYWdlcworICAgIFJlcXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9u
KHVpbnQ2NF90IHJlcXVlc3RJRCwgV1RGOjpTdHJpbmcgb3JpZ2luSWRlbnRpZmllcikKIAogICAg
ICMgU3BlbGxpbmcgYW5kIGdyYW1tYXIgbWVzc2FnZXMKICNpZiBVU0UoVU5JRklFRF9URVhUX0NI
RUNLSU5HKSAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3Bw
CmluZGV4IDBiMmIxODdjNjBkODE5ZGUwZGI2MjQ5NjlmNGRjNTdhMTRiY2MwOWYuLjBjMTFjYWE1
YjliODVmZTJjNTg0MzA3YjI5Yjk5NTU3ZDIwMjc1ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAi
V2ViQmFja0ZvcndhcmRMaXN0SXRlbS5oIgogI2luY2x1ZGUgIldlYkNvbnRleHQuaCIKICNpbmNs
dWRlICJXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlLmgiCisjaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9u
TWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCiAjaW5jbHVkZSAiV2Vi
UHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIK
QEAgLTMzMiw2ICszMzMsMTEgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVTeW5j
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3IKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAorICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNz
V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5PigpKSB7CisgICAgICAgIG1fY29udGV4dC0+bm90
aWZpY2F0aW9uTWFuYWdlclByb3h5KCktPmRpZFJlY2VpdmVTeW5jTWVzc2FnZShjb25uZWN0aW9u
LCBtZXNzYWdlSUQsIGFyZ3VtZW50cywgcmVwbHkpOworICAgICAgICByZXR1cm47CisgICAgfQor
CiAgICAgdWludDY0X3QgcGFnZUlEID0gYXJndW1lbnRzLT5kZXN0aW5hdGlvbklEKCk7CiAgICAg
aWYgKCFwYWdlSUQpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
VUlDbGllbnQuY3BwCmluZGV4IGYxMzcwYWY1YTA3NjUxOWVkNmYzY2EwYjVkYzY1YjM3MDAwOTlk
ZDMuLjQwMzg0ZjhlYWE1OTYzYTI2MGM0ODY1YWY3NjA5MjY3OWFkOTlhZGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1
ZGUgIkltbXV0YWJsZURpY3Rpb25hcnkuaCIKICNpbmNsdWRlICJOYXRpdmVXZWJLZXlib2FyZEV2
ZW50LmgiCiAjaW5jbHVkZSAiTmF0aXZlV2ViV2hlZWxFdmVudC5oIgorI2luY2x1ZGUgIk5vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmgiCiAjaW5jbHVkZSAiV0tBUElDYXN0LmgiCiAjaW5j
bHVkZSAiV2ViTnVtYmVyLmgiCiAjaW5jbHVkZSAiV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQ
cm94eS5oIgpAQCAtMzMxLDYgKzMzMiwxNSBAQCBib29sIFdlYlVJQ2xpZW50OjpkZWNpZGVQb2xp
Y3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSogcGFnZQogICAg
IHJldHVybiB0cnVlOwogfQogCitib29sIFdlYlVJQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveHkqIHBhZ2UsIFdlYlNlY3VyaXR5
T3JpZ2luKiBvcmlnaW4sIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KiBwZXJtaXNzaW9u
UmVxdWVzdCkKK3sKKyAgICBpZiAoIW1fY2xpZW50LmRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgbV9j
bGllbnQuZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QodG9BUEko
cGFnZSksIHRvQVBJKG9yaWdpbiksIHRvQVBJKHBlcm1pc3Npb25SZXF1ZXN0KSwgbV9jbGllbnQu
Y2xpZW50SW5mbyk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIGZsb2F0IFdlYlVJQ2xpZW50Ojpo
ZWFkZXJIZWlnaHQoV2ViUGFnZVByb3h5KiBwYWdlLCBXZWJGcmFtZVByb3h5KiBmcmFtZSkKIHsK
ICAgICBpZiAoIW1fY2xpZW50LmhlYWRlckhlaWdodCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlVJQ2xpZW50LmgKaW5kZXggNTZlMDk4OGNiNzU1M2NjOTQ5MTgzMzliMGZkM2YzYjNiNjNmNzhm
Zi4uODM1ZTZjZWI3YTA2YjNiMzgzMmEyYWQxY2E0NzgzOTAyNzU1ZjMxOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmgKQEAgLTQ3LDYgKzQ3LDcgQEAgY2xhc3MgQVBJT2Jq
ZWN0OwogY2xhc3MgR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFByb3h5OwogY2xhc3MgTmF0
aXZlV2ViS2V5Ym9hcmRFdmVudDsKIGNsYXNzIE5hdGl2ZVdlYldoZWVsRXZlbnQ7CitjbGFzcyBO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDsKIGNsYXNzIFdlYkRhdGE7CiBjbGFzcyBXZWJG
cmFtZVByb3h5OwogY2xhc3MgV2ViUGFnZVByb3h5OwpAQCAtOTksNiArMTAwLDcgQEAgcHVibGlj
OgogCiAgICAgYm9vbCBydW5PcGVuUGFuZWwoV2ViUGFnZVByb3h5KiwgV2ViRnJhbWVQcm94eSos
IFdlYk9wZW5QYW5lbFBhcmFtZXRlcnMqLCBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5
Kik7CiAgICAgYm9vbCBkZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0
KFdlYlBhZ2VQcm94eSosIFdlYkZyYW1lUHJveHkqLCBXZWJTZWN1cml0eU9yaWdpbiosIEdlb2xv
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3RQcm94eSopOworICAgIGJvb2wgZGVjaWRlUG9saWN5Rm9y
Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3h5KiwgV2ViU2VjdXJpdHlP
cmlnaW4qLCBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCopOwogCiAgICAgLy8gUHJpbnRp
bmcuCiAgICAgZmxvYXQgaGVhZGVySGVpZ2h0KFdlYlBhZ2VQcm94eSosIFdlYkZyYW1lUHJveHkq
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCAxZmZlOWE5ZTg3NDJmYzgxOTA1N2JiY2YyMTVmYmZlNDYxM2YwNDQwLi42OGU5YTU0
ZjU0ZGU4ZWQ3OGZmN2JjNjA0YWViZWE5YmVhYmUyZjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNDYsMjQgKzI0NiwzMyBA
QAogCQkxQ0E4Qjk1NDEyN0M4OTE1MDA1NzZDMkIgLyogV2ViSW5zcGVjdG9yTWFjLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM4RTJEQUQxMjc4QzVC
MjAwQkM3QkQwIC8qIFdlYkluc3BlY3Rvck1hYy5tbSAqLzsgfTsKIAkJMjlDRDU1QUExMjhFMjk0
RjAwMTMzQzg1IC8qIFdLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3QuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5Q0Q1NUE4MTI4RTI5NEYwMDEzM0M4
NSAvKiBXS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0LmggKi87IH07CiAJCTI5Q0Q1NUFCMTI4
RTI5NEYwMDEzM0M4NSAvKiBXS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0Lm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjlDRDU1QTkxMjhFMjk0RjAw
MTMzQzg1IC8qIFdLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3QubW0gKi87IH07Ci0JCTMxMDk5
OTZGMTQ2Qzc0MUQwMDI5REVCOSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMDk5OTZBMTQ2Qzcz
OTIwMDI5REVCOSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaCAqLzsgfTsKLQkJMzEw
OTk5NzAxNDZDNzQyMDAwMjlERUI5IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTA5OTk2QjE0
NkM3M0IxMDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcCAqLzsgfTsK
IAkJMzEwOTk5NzMxNDZDNzVBMjAwMjlERUI5IC8qIFdlYk5vdGlmaWNhdGlvbkNsaWVudC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTA5OTk3MTE0
NkM3NTlCMDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcCAqLzsgfTsKLQkJMzEw
OTk5N0ExNDZDOEIxNDAwMjlERUI5IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEwOTk5NzgxNDZDOEIx
NDAwMjlERUI5IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwICovOyB9OwotCQkzMTA5OTk3
QjE0NkM4QjE0MDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEwOTk5NzkxNDZDOEIxNDAwMjlE
RUI5IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXIuaCAqLzsgfTsKIAkJMzEwOTk5QzcxNDZDOUUz
RDAwMjlERUI5IC8qIFdlYk5vdGlmaWNhdGlvbkNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEwOTk5NjgxNDZDNzFGNTAwMjlERUI5IC8qIFdl
Yk5vdGlmaWNhdGlvbkNsaWVudC5oICovOyB9OwotCQkzMTJDMEM0NzE0NkREQkJEMDAxNkM5MTEg
LyogV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMzEyQzBDNDYxNDZEREJCQzAwMTZDOTExIC8qIFdlYk5vdGlm
aWNhdGlvblByb3ZpZGVyLmNwcCAqLzsgfTsKIAkJMzEyQzBDNEExNDZEREM4QTAwMTZDOTExIC8q
IFdLTm90aWZpY2F0aW9uUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDMxMkMwQzQ5MTQ2RERDOEEwMDE2QzkxMSAvKiBXS05vdGlmaWNhdGlv
blByb3ZpZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKKwkJMzEzMTI2MUUxNDhGRjgyQzAwQkEyQTM5IC8qIE5vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAzMTMxMjYxOTE0OEZGODJCMDBCQTJBMzkgLyogTm90aWZpY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyLmNwcCAqLzsgfTsKKwkJMzEzMTI2MUYxNDhGRjgyQzAwQkEyQTM5IC8q
IE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEzMTI2MUExNDhGRjgyQjAwQkEyQTM5IC8q
IE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oICovOyB9OworCQkzMTMxMjYy
MDE0OEZGODJDMDBCQTJBMzkgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTMxMjYxQjE0OEZGODJCMDBC
QTJBMzkgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAgKi87IH07CisJCTMxMzEyNjIxMTQ4
RkY4MkMwMEJBMkEzOSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTMxMjYxQzE0OEZGODJCMDBCQTJBMzkg
LyogV2ViTm90aWZpY2F0aW9uTWFuYWdlci5oICovOyB9OwogCQkzMThCRTE2NzE0NzM0MzM3MDBB
OEZCQjIgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxOEJFMTY1MTQ3
MzQzMzcwMEE4RkJCMiAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2
ZXIuY3BwICovOyB9OwogCQkzMThCRTE2ODE0NzM0MzM3MDBBOEZCQjIgLyogV2ViTm90aWZpY2F0
aW9uTWFuYWdlclByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDMxOEJFMTY2MTQ3MzQzMzcwMEE4RkJCMiAvKiBXZWJOb3RpZmljYXRp
b25NYW5hZ2VyUHJveHlNZXNzYWdlcy5oICovOyB9OwogCQkzMThCRTE3MTE0NzQzREIxMDBBOEZC
QjIgLyogV0tOb3RpZmljYXRpb25NYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAzMThCRTE3MDE0NzQzREIxMDBBOEZCQjIgLyogV0tOb3RpZmlj
YXRpb25NYW5hZ2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJMzE4QkUxNzUxNDc0M0RENzAwQThGQkIyIC8qIFdLTm90aWZpY2F0aW9uTWFuYWdl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMThC
RTE3NDE0NzQzREQ2MDBBOEZCQjIgLyogV0tOb3RpZmljYXRpb25NYW5hZ2VyLmNwcCAqLzsgfTsK
IAkJMzE4QkUxNzcxNDc0M0U2MDAwQThGQkIyIC8qIFdLTm90aWZpY2F0aW9uLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxOEJFMTc2MTQ3NDNFNjAw
MEE4RkJCMiAvKiBXS05vdGlmaWNhdGlvbi5jcHAgKi87IH07CiAJCTMxOEJFMTc5MTQ3NDNFNkYw
MEE4RkJCMiAvKiBXS05vdGlmaWNhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMzE4QkUxNzgxNDc0M0U2QTAwQThGQkIyIC8qIFdLTm90aWZpY2F0
aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
MzFBMkVDNDgxNDg5OTdDMjAwODEwRDcxIC8qIFdlYk5vdGlmaWNhdGlvbi5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUEyRUM0MTE0ODk5N0JFMDA4
MTBENzEgLyogV2ViTm90aWZpY2F0aW9uLmNwcCAqLzsgfTsKKwkJMzFBMkVDNDkxNDg5OTdDMjAw
ODEwRDcxIC8qIFdlYk5vdGlmaWNhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMzFBMkVDNDIxNDg5OTdCRTAwODEwRDcxIC8qIFdlYk5vdGlmaWNh
dGlvbi5oICovOyB9OworCQkzMUEyRUM0QTE0ODk5N0MyMDA4MTBENzEgLyogV2ViTm90aWZpY2F0
aW9uTWFuYWdlclByb3h5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDMxQTJFQzQzMTQ4OTk3QkUwMDgxMEQ3MSAvKiBXZWJOb3RpZmljYXRpb25NYW5h
Z2VyUHJveHkuY3BwICovOyB9OworCQkzMUEyRUM0QjE0ODk5N0MyMDA4MTBENzEgLyogV2ViTm90
aWZpY2F0aW9uTWFuYWdlclByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAzMUEyRUM0NDE0ODk5N0JGMDA4MTBENzEgLyogV2ViTm90aWZpY2F0aW9u
TWFuYWdlclByb3h5LmggKi87IH07CisJCTMxQTJFQzREMTQ4OTk3QzIwMDgxMEQ3MSAvKiBXZWJO
b3RpZmljYXRpb25Qcm92aWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAzMUEyRUM0NjE0ODk5N0MwMDA4MTBENzEgLyogV2ViTm90aWZpY2F0aW9u
UHJvdmlkZXIuY3BwICovOyB9OworCQkzMUEyRUM0RTE0ODk5N0MyMDA4MTBENzEgLyogV2ViTm90
aWZpY2F0aW9uUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDMxQTJFQzQ3MTQ4OTk3QzEwMDgxMEQ3MSAvKiBXZWJOb3RpZmljYXRpb25Qcm92
aWRlci5oICovOyB9OworCQkzMUEyRUM1MDE0ODk5ODA1MDA4MTBENzEgLyogTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFBMkVDNEYxNDg5OTgwNTAwODEwRDcxIC8qIE5vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCAqLzsgfTsKKwkJMzFBMkVD
NTIxNDg5OTgxOTAwODEwRDcxIC8qIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAz
MUEyRUM1MTE0ODk5ODE1MDA4MTBENzEgLyogTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkuaCAqLzsgfTsKKwkJMzFBMkVDNTUxNDg5OTgyRTAwODEwRDcxIC8qIE5vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDMxQTJFQzU0MTQ4OTk4MkUwMDgxMEQ3MSAvKiBOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdC5jcHAgKi87IH07CisJCTMxQTJFQzU2MTQ4OTlDMDkwMDgxMEQ3
MSAvKiBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFBMkVDNTMxNDg5OTgyNTAwODEwRDcxIC8qIE5v
dGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmggKi87IH07CisJCTMxQTJFQzc0MTQ4RDU5Q0Ew
MDgxMEQ3MSAvKiBXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUEyRUM3MjE0OEQ1OUJCMDA4MTBE
NzEgLyogV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTMxQTJFQzc3MTQ4RDY2MkUwMDgxMEQ3
MSAvKiBXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxQTJFQzc1MTQ4RDY1QkIwMDgxMEQ3MSAv
KiBXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcCAqLzsgfTsKIAkJMzFCQTkyNEQx
NDg4MzEyNjAwNjJFREI1IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFCQTky
NDgxNDg4MzA4MTAwNjJFREI1IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwICovOyB9OwogCQkzMUJBOTI0RTE0ODgzMTI2MDA2MkVEQjUgLyogV2ViTm90aWZpY2F0
aW9uTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAzMUJBOTI0OTE0ODgzMDgxMDA2MkVEQjUgLyogV2ViTm90aWZpY2F0aW9uTWFu
YWdlck1lc3NhZ2VzLmggKi87IH07Ci0JCTMxQzExQUIzMTQ4NDUyRTkwMDQ5QTRDQyAvKiBXZWJO
b3RpZmljYXRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMzFDMTFBQjExNDg0NTJFOTAwNDlBNENDIC8qIFdlYk5vdGlmaWNhdGlvbi5jcHAgKi87
IH07Ci0JCTMxQzExQUI0MTQ4NDUyRTkwMDQ5QTRDQyAvKiBXZWJOb3RpZmljYXRpb24uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxQzExQUIyMTQ4NDUy
RTkwMDQ5QTRDQyAvKiBXZWJOb3RpZmljYXRpb24uaCAqLzsgfTsKIAkJMzFFQTI1RDIxMzRGNzhD
MDAwNUIxNDUyIC8qIE5hdGl2ZVdlYk1vdXNlRXZlbnRNYWMubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUVBMjVEMDEzNEY3OEIyMDA1QjE0NTIgLyog
TmF0aXZlV2ViTW91c2VFdmVudE1hYy5tbSAqLzsgfTsKIAkJMzMwOTM0NDcxMzE1QjkyMjAwOTdB
N0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzMwOTM0NDMxMzE1QjkyMjAwOTdBN0JD
IC8qIFdlYkNvb2tpZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQkzMzA5MzQ0
ODEzMTVCOTIyMDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMzA5MzQ0NDEzMTVCOTIyMDA5
N0E3QkMgLyogV2ViQ29va2llTWFuYWdlck1lc3NhZ2VzLmggKi87IH07CkBAIC0xMjI1LDI1ICsx
MjM0LDM0IEBACiAJCTI5Q0Q1NUE4MTI4RTI5NEYwMDEzM0M4NSAvKiBXS0FjY2Vzc2liaWxpdHlX
ZWJQYWdlT2JqZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQWNjZXNz
aWJpbGl0eVdlYlBhZ2VPYmplY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjlD
RDU1QTkxMjhFMjk0RjAwMTMzQzg1IC8qIFdLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3QubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS0FjY2Vzc2liaWxpdHlX
ZWJQYWdlT2JqZWN0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMTA5OTk2ODE0
NkM3MUY1MDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9uQ2xpZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYk5vdGlmaWNhdGlvbkNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkz
MTA5OTk2QTE0NkM3MzkyMDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQkzMTA5OTk2QjE0NkM3M0IxMDAyOURFQjkgLyogV2ViTm90aWZp
Y2F0aW9uTWFuYWdlclByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTMxMDk5OTZEMTQ2QzczQzQwMDI5REVCOSAvKiBXZWJOb3RpZmljYXRpb25NYW5h
Z2VyUHJveHkubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViTm90aWZpY2F0
aW9uTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkzMTA5OTk3MTE0NkM3NTlCMDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYk5vdGlmaWNhdGlvbkNsaWVu
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTMxMDk5OTc4MTQ2QzhCMTQwMDI5
REVCOSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwOyBwYXRoID0gTm90aWZp
Y2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJMzEwOTk5NzkxNDZDOEIxNDAwMjlERUI5IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFn
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViTm90aWZpY2F0aW9uTWFu
YWdlci5oOyBwYXRoID0gTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTMxMkMwQzQ2MTQ2RERCQkMwMDE2QzkxMSAvKiBX
ZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBXZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTMxMkMwQzQ4MTQ2RERCRDMwMDE2QzkxMSAvKiBXZWJOb3RpZmljYXRpb25Qcm92
aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJOb3RpZmljYXRpb25Qcm92aWRlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkzMTJDMEM0OTE0NkREQzhBMDAxNkM5MTEgLyogV0tOb3Rp
ZmljYXRpb25Qcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS05v
dGlmaWNhdGlvblByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxMzEy
NjE5MTQ4RkY4MkIwMEJBMkEzOSAvKiBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMzEzMTI2MUExNDhGRjgyQjAwQkEyQTM5IC8qIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMzEzMTI2MUIxNDhGRjgyQjAwQkEyQTM5IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViTm90aWZpY2F0aW9uTWFu
YWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxMzEyNjFDMTQ4RkY4MkIw
MEJBMkEzOSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMzEzMTI2MUQxNDhGRjgyQzAwQkEyQTM5IC8qIFdlYk5vdGlmaWNhdGlvbk1h
bmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViTm90aWZpY2F0aW9u
TWFuYWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzE4QkUx
NjUxNDczNDMzNzAwQThGQkIyIC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eU1lc3NhZ2VS
ZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJOb3Rp
ZmljYXRpb25NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkzMThCRTE2NjE0NzM0MzM3MDBBOEZCQjIgLyogV2ViTm90aWZpY2F0aW9u
TWFuYWdlclByb3h5TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMzE4QkUxNzAxNDc0M0RCMTAwQThGQkIyIC8qIFdLTm90aWZpY2F0aW9uTWFu
YWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS05vdGlmaWNhdGlvbk1h
bmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzE4QkUxNzQxNDc0M0RENjAw
QThGQkIyIC8qIFdLTm90aWZpY2F0aW9uTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBXS05vdGlmaWNhdGlvbk1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkzMThCRTE3NjE0NzQzRTYwMDBBOEZCQjIgLyogV0tOb3RpZmljYXRp
b24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tOb3RpZmljYXRp
b24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMThCRTE3ODE0NzQzRTZBMDBB
OEZCQjIgLyogV0tOb3RpZmljYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tOb3RpZmljYXRpb24u
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzFBMkVDNDExNDg5OTdCRTAwODEwRDcx
IC8qIFdlYk5vdGlmaWNhdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXZWJOb3RpZmljYXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkz
MUEyRUM0MjE0ODk5N0JFMDA4MTBENzEgLyogV2ViTm90aWZpY2F0aW9uLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYk5vdGlmaWNhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkzMUEyRUM0MzE0ODk5N0JFMDA4MTBENzEgLyogV2ViTm90aWZpY2F0aW9u
TWFuYWdlclByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdl
Yk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTMxQTJFQzQ0MTQ4OTk3QkYwMDgxMEQ3MSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJv
eHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViTm90aWZpY2F0aW9uTWFu
YWdlclByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxQTJFQzQ1MTQ4OTk3
QkYwMDgxMEQ3MSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5Lm1lc3NhZ2Vz
LmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMUEyRUM0NjE0ODk5N0MwMDA4MTBE
NzEgLyogV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkzMUEyRUM0NzE0ODk5N0MxMDA4MTBENzEgLyogV2ViTm90aWZpY2F0
aW9uUHJvdmlkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViTm90aWZp
Y2F0aW9uUHJvdmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzFBMkVDNEYx
NDg5OTgwNTAwODEwRDcxIC8qIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMzFBMkVDNTExNDg5OTgxNTAwODEwRDcxIC8qIE5vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTMxQTJFQzUzMTQ4OTk4MjUwMDgxMEQ3MSAvKiBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVz
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMUEyRUM1NDE0ODk5ODJFMDA4MTBENzEgLyogTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkzMUEyRUM3MjE0OEQ1OUJCMDA4MTBENzEgLyogV0tOb3RpZmlj
YXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS05vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxQTJFQzc1
MTQ4RDY1QkIwMDgxMEQ3MSAvKiBXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLTm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMUJBOTI0ODE0
ODgzMDgxMDA2MkVEQjUgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJOb3RpZmljYXRpb25N
YW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MzFCQTkyNDkxNDg4MzA4MTAwNjJFREI1IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdl
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJOb3RpZmljYXRpb25NYW5h
Z2VyTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMzFDMTFBQjExNDg0
NTJFOTAwNDlBNENDIC8qIFdlYk5vdGlmaWNhdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBXZWJOb3RpZmljYXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQkzMUMxMUFCMjE0ODQ1MkU5MDA0OUE0Q0MgLyogV2ViTm90aWZpY2F0aW9uLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYk5vdGlmaWNhdGlvbi5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMUVBMjVEMDEzNEY3OEIyMDA1QjE0NTIgLyogTmF0
aXZlV2ViTW91c2VFdmVudE1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE5hdGl2ZVdlYk1v
dXNlRXZlbnRNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxRUEyNUQzMTM0
Rjc4RDYwMDVCMTQ1MiAvKiBOYXRpdmVXZWJNb3VzZUV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IE5hdGl2ZVdlYk1vdXNlRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMzJEQkNGNUUwMzcwQURFRTAwQzkxNzgzIC8qIFdlYktpdDJQcmVmaXguaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViS2l0MlByZWZpeC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjQ4MCwxMCArMjQ5OCwzMiBAQAogCQkzMTA5OTk3NDE0
NkM4QUE4MDAyOURFQjkgLyogTm90aWZpY2F0aW9ucyAoVXNlcikgKi8gPSB7CiAJCQlpc2EgPSBQ
QlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCTMxMDk5OTc4MTQ2QzhCMTQwMDI5REVCOSAv
KiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcCAqLywKLQkJCQkzMTA5OTk3OTE0NkM4QjE0MDAy
OURFQjkgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlci5oICovLAorCQkJCTMxMzEyNjE5MTQ4RkY4
MkIwMEJBMkEzOSAvKiBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwICov
LAorCQkJCTMxMzEyNjFBMTQ4RkY4MkIwMEJBMkEzOSAvKiBOb3RpZmljYXRpb25QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXIuaCAqLywKKwkJCQkzMTMxMjYxQjE0OEZGODJCMDBCQTJBMzkgLyogV2Vi
Tm90aWZpY2F0aW9uTWFuYWdlci5jcHAgKi8sCisJCQkJMzEzMTI2MUMxNDhGRjgyQjAwQkEyQTM5
IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXIuaCAqLywKKwkJCQkzMTMxMjYxRDE0OEZGODJDMDBC
QTJBMzkgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlci5tZXNzYWdlcy5pbiAqLywKIAkJCSk7CiAJ
CQluYW1lID0gIk5vdGlmaWNhdGlvbnMgKFVzZXIpIjsKKwkJCXBhdGggPSBOb3RpZmljYXRpb25z
OworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKKwkJMzFBMkVDNDAxNDg5OTczNzAw
ODEwRDcxIC8qIE5vdGlmaWNhdGlvbnMgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNo
aWxkcmVuID0gKAorCQkJCTMxQTJFQzRGMTQ4OTk4MDUwMDgxMEQ3MSAvKiBOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgKi8sCisJCQkJMzFBMkVDNTExNDg5OTgx
NTAwODEwRDcxIC8qIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Lmgg
Ki8sCisJCQkJMzFBMkVDNTQxNDg5OTgyRTAwODEwRDcxIC8qIE5vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0LmNwcCAqLywKKwkJCQkzMUEyRUM1MzE0ODk5ODI1MDA4MTBENzEgLyogTm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaCAqLywKKwkJCQkzMUEyRUM0MTE0ODk5N0JFMDA4MTBE
NzEgLyogV2ViTm90aWZpY2F0aW9uLmNwcCAqLywKKwkJCQkzMUEyRUM0MjE0ODk5N0JFMDA4MTBE
NzEgLyogV2ViTm90aWZpY2F0aW9uLmggKi8sCisJCQkJMzFBMkVDNDMxNDg5OTdCRTAwODEwRDcx
IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAgKi8sCisJCQkJMzFBMkVDNDQxNDg5
OTdCRjAwODEwRDcxIC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oICovLAorCQkJCTMx
QTJFQzQ1MTQ4OTk3QkYwMDgxMEQ3MSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkubWVz
c2FnZXMuaW4gKi8sCisJCQkJMzFBMkVDNDYxNDg5OTdDMDAwODEwRDcxIC8qIFdlYk5vdGlmaWNh
dGlvblByb3ZpZGVyLmNwcCAqLywKKwkJCQkzMUEyRUM0NzE0ODk5N0MxMDA4MTBENzEgLyogV2Vi
Tm90aWZpY2F0aW9uUHJvdmlkZXIuaCAqLywKKwkJCSk7CisJCQlwYXRoID0gTm90aWZpY2F0aW9u
czsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CiAJCTMyQzg4REZGMDM3MUMyNDIw
MEM5MTc4MyAvKiBPdGhlciBTb3VyY2VzICovID0gewpAQCAtMjc1OCw2ICsyNzk4LDcgQEAKIAkJ
CQkxQUI3RDRDNzEyODhBQTlBMDBDRkQwOEMgLyogRG93bmxvYWRzICovLAogCQkJCUJDMTExQjE4
MTEyRjVGQjQwMDMzN0JBQiAvKiBMYXVuY2hlciAqLywKIAkJCQlCQ0NGMDg1QzExM0YzQjc1MDBD
NjUwQzUgLyogbWFjICovLAorCQkJCTMxQTJFQzQwMTQ4OTk3MzcwMDgxMEQ3MSAvKiBOb3RpZmlj
YXRpb25zICovLAogCQkJCTFBRUZDQzA1MTFEMDFGMzQwMDgyMTlEMyAvKiBQbHVnaW5zICovLAog
CQkJCTFBNjQyNTY3MTJERTQyRUMwMENBQUUyQyAvKiBCYWNraW5nU3RvcmUuY3BwICovLAogCQkJ
CTFBNjQyNTY2MTJERTQyRUMwMENBQUUyQyAvKiBCYWNraW5nU3RvcmUuaCAqLywKQEAgLTI4NDks
MTMgKzI4OTAsNiBAQAogCQkJCTMzRDNBM0I5MTMzOTYwNjIwMDcwOUJFNCAvKiBXZWJNZWRpYUNh
Y2hlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluICovLAogCQkJCUJDRjY5RkExMTE3NkQwMTQwMDQ3
MUE1MiAvKiBXZWJOYXZpZ2F0aW9uRGF0YS5jcHAgKi8sCiAJCQkJQkNGNjlGQTAxMTc2RDAxNDAw
NDcxQTUyIC8qIFdlYk5hdmlnYXRpb25EYXRhLmggKi8sCi0JCQkJMzFDMTFBQjExNDg0NTJFOTAw
NDlBNENDIC8qIFdlYk5vdGlmaWNhdGlvbi5jcHAgKi8sCi0JCQkJMzFDMTFBQjIxNDg0NTJFOTAw
NDlBNENDIC8qIFdlYk5vdGlmaWNhdGlvbi5oICovLAotCQkJCTMxMDk5OTZCMTQ2QzczQjEwMDI5
REVCOSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwICovLAotCQkJCTMxMDk5OTZB
MTQ2QzczOTIwMDI5REVCOSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaCAqLywKLQkJ
CQkzMTA5OTk2RDE0NkM3M0M0MDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5
Lm1lc3NhZ2VzLmluICovLAotCQkJCTMxMkMwQzQ2MTQ2RERCQkMwMDE2QzkxMSAvKiBXZWJOb3Rp
ZmljYXRpb25Qcm92aWRlci5jcHAgKi8sCi0JCQkJMzEyQzBDNDgxNDZEREJEMzAwMTZDOTExIC8q
IFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmggKi8sCiAJCQkJQkMxREZFQTMxMkIzMUY4NzAwNURG
NzMwIC8qIFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHkuY3BwICovLAogCQkJCUJDMURG
RUEyMTJCMzFGODcwMDVERjczMCAvKiBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5Lmgg
Ki8sCiAJCQkJNTE1MzU2OUExMjkxQjFEMjAwMDc0OURDIC8qIFdlYlBhZ2VDb250ZXh0TWVudUNs
aWVudC5jcHAgKi8sCkBAIC0yOTc2LDYgKzMwMTAsOCBAQAogCQkJCTUxOEFDQUU5MTJBRUU2QkIw
MEIwNEI4MyAvKiBXS1Byb3RlY3Rpb25TcGFjZVR5cGVzLmggKi8sCiAJCQkJMzMzNjc2MzgxMzBD
OTlEQzAwNkM5REUyIC8qIFdLUmVzb3VyY2VDYWNoZU1hbmFnZXIuY3BwICovLAogCQkJCTMzMzY3
NjM5MTMwQzk5REMwMDZDOURFMiAvKiBXS1Jlc291cmNlQ2FjaGVNYW5hZ2VyLmggKi8sCisJCQkJ
MzFBMkVDNzIxNDhENTlCQjAwODEwRDcxIC8qIFdLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3QuaCAqLywKKwkJCQkzMUEyRUM3NTE0OEQ2NUJCMDA4MTBENzEgLyogV0tOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdC5jcHAgKi8sCiAJCQkpOwogCQkJcGF0aCA9IEM7CiAJCQlzb3VyY2VU
cmVlID0gIjxncm91cD4iOwpAQCAtNDA1NSwxNSArNDA5MSwyMCBAQAogCQkJCUJDMDlCOEY5MTQ3
NDYwRjcwMDVGNTYyNSAvKiBXZWJDb250ZXh0Q29ubmVjdGlvbkNsaWVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMzc4OEEwNUMxNDc0M0M5MDAwNjMxOUU1IC8qIFdLQnJvd3NpbmdDb250ZXh0Q29u
dHJvbGxlclByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRTlDMEI3MTQ4NDcxNDcwMEUz
M0Q2MSAvKiBXZWJDb25uZWN0aW9uTWVzc2FnZUtpbmRzLmggaW4gSGVhZGVycyAqLywKLQkJCQkz
MTA5OTk2RjE0NkM3NDFEMDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5Lmgg
aW4gSGVhZGVycyAqLywKLQkJCQkzMTA5OTk3QjE0NkM4QjE0MDAyOURFQjkgLyogV2ViTm90aWZp
Y2F0aW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzEwOTk5QzcxNDZDOUUzRDAwMjlE
RUI5IC8qIFdlYk5vdGlmaWNhdGlvbkNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzEyQzBD
NEExNDZEREM4QTAwMTZDOTExIC8qIFdLTm90aWZpY2F0aW9uUHJvdmlkZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTMxOEJFMTY4MTQ3MzQzMzcwMEE4RkJCMiAvKiBXZWJOb3RpZmljYXRpb25NYW5h
Z2VyUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE4QkUxNzExNDc0M0RCMTAw
QThGQkIyIC8qIFdLTm90aWZpY2F0aW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE4
QkUxNzkxNDc0M0U2RjAwQThGQkIyIC8qIFdLTm90aWZpY2F0aW9uLmggaW4gSGVhZGVycyAqLywK
LQkJCQkzMUMxMUFCNDE0ODQ1MkU5MDA0OUE0Q0MgLyogV2ViTm90aWZpY2F0aW9uLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkzMUJBOTI0RTE0ODgzMTI2MDA2MkVEQjUgLyogV2ViTm90aWZpY2F0aW9u
TWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKKwkJCQkzMUEyRUM0OTE0ODk5N0MyMDA4
MTBENzEgLyogV2ViTm90aWZpY2F0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQkzMUEyRUM0QjE0
ODk5N0MyMDA4MTBENzEgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmggaW4gSGVhZGVy
cyAqLywKKwkJCQkzMUEyRUM0RTE0ODk5N0MyMDA4MTBENzEgLyogV2ViTm90aWZpY2F0aW9uUHJv
dmlkZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTMxQTJFQzUyMTQ4OTk4MTkwMDgxMEQ3MSAvKiBO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJMzFBMkVDNTYxNDg5OUMwOTAwODEwRDcxIC8qIE5vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQkzMUEyRUM3NDE0OEQ1OUNBMDA4MTBENzEgLyog
V0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzEz
MTI2MUYxNDhGRjgyQzAwQkEyQTM5IC8qIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzEzMTI2MjExNDhGRjgyQzAwQkEyQTM5IC8qIFdl
Yk5vdGlmaWNhdGlvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlG
b3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtNDc2NiwxNiArNDgwNywy
MCBAQAogCQkJCUJDNEE2Mjk2MTQ3MzEzQTAwMDZDNjgxQSAvKiBXS0Nvbm5lY3Rpb25SZWYuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQkM0QTYyQTcxNDc0NEVDNzAwNkM2ODFBIC8qIFdlYkNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMwOUI4RjgxNDc0NjBG
NzAwNUY1NjI1IC8qIFdlYkNvbnRleHRDb25uZWN0aW9uQ2xpZW50LmNwcCBpbiBTb3VyY2VzICov
LAotCQkJCTMxMDk5OTcwMTQ2Qzc0MjAwMDI5REVCOSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2Vy
UHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzEwOTk5NzMxNDZDNzVBMjAwMjlERUI5IC8q
IFdlYk5vdGlmaWNhdGlvbkNsaWVudC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkzMTA5OTk3QTE0
NkM4QjE0MDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAgaW4gU291cmNlcyAq
LywKLQkJCQkzMTJDMEM0NzE0NkREQkJEMDAxNkM5MTEgLyogV2ViTm90aWZpY2F0aW9uUHJvdmlk
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzE4QkUxNjcxNDczNDMzNzAwQThGQkIyIC8qIFdl
Yk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkzMThCRTE3NTE0NzQzREQ3MDBBOEZCQjIgLyogV0tOb3RpZmljYXRpb25NYW5hZ2Vy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxOEJFMTc3MTQ3NDNFNjAwMEE4RkJCMiAvKiBXS05v
dGlmaWNhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkzMUMxMUFCMzE0ODQ1MkU5MDA0OUE0
Q0MgLyogV2ViTm90aWZpY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxQkE5MjREMTQ4
ODMxMjYwMDYyRURCNSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUJDRDM2NzVDMTQ4QzI2QzAwMDQ0N0U4NyAvKiBXZWJDb25u
ZWN0aW9uVG9VSVByb2Nlc3MuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMzFBMkVDNDgxNDg5OTdD
MjAwODEwRDcxIC8qIFdlYk5vdGlmaWNhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkzMUEy
RUM0QTE0ODk5N0MyMDA4MTBENzEgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcCBp
biBTb3VyY2VzICovLAorCQkJCTMxQTJFQzREMTQ4OTk3QzIwMDgxMEQ3MSAvKiBXZWJOb3RpZmlj
YXRpb25Qcm92aWRlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkzMUEyRUM1MDE0ODk5ODA1MDA4
MTBENzEgLyogTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJMzFBMkVDNTUxNDg5OTgyRTAwODEwRDcxIC8qIE5vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTMxQTJFQzc3MTQ4RDY2
MkUwMDgxMEQ3MSAvKiBXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCTMxMzEyNjFFMTQ4RkY4MkMwMEJBMkEzOSAvKiBOb3RpZmljYXRpb25QZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMzEzMTI2MjAxNDhG
RjgyQzAwQkEyQTM5IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjA4MjhmODM0OThmNWFkMWIwZGNjY2IyMTAwYTU4ZjU4NDAzNDc1
YjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNh
dGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcApAQCAtMCwwICsx
LDEyMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCIKKworI2luY2x1ZGUgIldlYkNvcmVB
cmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eU1l
c3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUGFnZS5oIgorI2luY2x1ZGUgIldlYlBhZ2VQcm94eU1l
c3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTm90
aWZpY2F0aW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TY3JpcHRFeGVjdXRpb25Db250ZXh0Lmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgorCit1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKKyNpZiBFTkFCTEUoTk9USUZJQ0FUSU9O
UykKK3N0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZVJlcXVlc3RJRCgpCit7CisgICAgc3RhdGljIHVp
bnQ2NF90IHVuaXF1ZVJlcXVlc3RJRCA9IDE7CisgICAgcmV0dXJuIHVuaXF1ZVJlcXVlc3RJRCsr
OworfQorI2VuZGlmCisKK1Bhc3NSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyPiBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OmNyZWF0ZShXZWJQ
YWdlKiBwYWdlKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgTm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyKHBhZ2UpKTsKK30KKworTm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyOjpOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoV2ViUGFn
ZSogcGFnZSkKKyAgICA6IG1fcGFnZShwYWdlKQoreworfQorCitOb3RpZmljYXRpb25QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXI6On5Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIo
KQoreworfQorCit2b2lkIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6c3Rh
cnRSZXF1ZXN0KFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4sIFBhc3NSZWZQdHI8Vm9pZENhbGxiYWNr
PiBjYWxsYmFjaykKK3sKKyNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKKyAgICB1aW50NjRfdCBy
ZXF1ZXN0SUQgPSBnZW5lcmF0ZVJlcXVlc3RJRCgpOworICAgIG1fb3JpZ2luVG9JRE1hcC5zZXQo
b3JpZ2luLCByZXF1ZXN0SUQpOworICAgIG1faWRUb09yaWdpbk1hcC5zZXQocmVxdWVzdElELCBv
cmlnaW4pOworICAgIG1faWRUb0NhbGxiYWNrTWFwLnNldChyZXF1ZXN0SUQsIGNhbGxiYWNrKTsK
KyAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UmVxdWVzdE5vdGlmaWNh
dGlvblBlcm1pc3Npb24ocmVxdWVzdElELCBvcmlnaW4tPmRhdGFiYXNlSWRlbnRpZmllcigpKSk7
CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShvcmlnaW4pOworICAgIFVOVVNFRF9QQVJBTShjYWxs
YmFjayk7CisjZW5kaWYKK30KKwordm9pZCBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXI6OmNhbmNlbFJlcXVlc3QoU2VjdXJpdHlPcmlnaW4qIG9yaWdpbikKK3sKKyNpZiBFTkFC
TEUoTk9USUZJQ0FUSU9OUykKKyAgICB1aW50NjRfdCBpZCA9IG1fb3JpZ2luVG9JRE1hcC50YWtl
KG9yaWdpbik7CisgICAgaWYgKCFpZCkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIG1faWRU
b09yaWdpbk1hcC5yZW1vdmUoaWQpOworICAgIG1faWRUb0NhbGxiYWNrTWFwLnJlbW92ZShpZCk7
CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShvcmlnaW4pOworI2VuZGlmCit9CisKK05vdGlmaWNh
dGlvblByZXNlbnRlcjo6UGVybWlzc2lvbiBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXI6OnBlcm1pc3Npb25MZXZlbChTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmlnaW4pCit7
CisjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCisgICAgdWludDY0X3QgcGVybWlzc2lvbkxldmVs
OworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmNvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2Fn
ZXM6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6Tm90aWZpY2F0aW9uUGVybWlzc2lvbkxl
dmVsKHNlY3VyaXR5T3JpZ2luLT5kYXRhYmFzZUlkZW50aWZpZXIoKSksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZXNzYWdlczo6V2ViTm90aWZpY2F0
aW9uTWFuYWdlclByb3h5OjpOb3RpZmljYXRpb25QZXJtaXNzaW9uTGV2ZWw6OlJlcGx5KHBlcm1p
c3Npb25MZXZlbCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAwKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Tm90aWZpY2F0aW9uUHJlc2VudGVyOjpQ
ZXJtaXNzaW9uPihwZXJtaXNzaW9uTGV2ZWwpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oc2Vj
dXJpdHlPcmlnaW4pOworICAgIHJldHVybiBOb3RpZmljYXRpb25QcmVzZW50ZXI6OlBlcm1pc3Np
b25EZW5pZWQ7CisjZW5kaWYKK30KKwordm9pZCBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXI6OmRpZFJlY2VpdmVOb3RpZmljYXRpb25QZXJtaXNzaW9uRGVjaXNpb24odWludDY0
X3QgcmVxdWVzdElELCBib29sIGFsbG93ZWQpCit7CisjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMp
CisgICAgaWYgKCFpc1JlcXVlc3RJRFZhbGlkKHJlcXVlc3RJRCkpCisgICAgICAgIHJldHVybjsK
KworICAgIFJlZlB0cjxWb2lkQ2FsbGJhY2s+IGNhbGxiYWNrID0gbV9pZFRvQ2FsbGJhY2tNYXAu
dGFrZShyZXF1ZXN0SUQpOworICAgIGlmICghY2FsbGJhY2spCisgICAgICAgIHJldHVybjsKKyAg
ICAKKyAgICBjYWxsYmFjay0+aGFuZGxlRXZlbnQoKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFN
KHJlcXVlc3RJRCk7CisgICAgVU5VU0VEX1BBUkFNKGFsbG93ZWQpOworI2VuZGlmICAgIAorfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIu
aCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NGFiOThmMmVjZThkNTUzMGNk
OTU3MmUzMzQ4ZmI4Njk3MzhkZDdhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlci5oCkBAIC0wLDAgKzEsNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIE5vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcl9oCisjZGVmaW5lIE5vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlcl9oCisKKyNpbmNsdWRlIDxXZWJDb3JlL05vdGlmaWNhdGlvblByZXNl
bnRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVm9pZENhbGxiYWNrLmg+CisjaW5jbHVkZSA8d3Rm
L0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9S
ZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgTm90aWZpY2F0aW9uOyAgICAK
K2NsYXNzIFNlY3VyaXR5T3JpZ2luOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3Mg
V2ViUGFnZTsKKworLy8vIEZJWE1FOiBOZWVkIHRvIGtlZXAgYSBxdWV1ZSBvZiBwZW5kaW5nIG5v
dGlmaWNhdGlvbnMgd2hpY2ggcGVybWlzc2lvbiBpcyBzdGlsbCBiZWluZyByZXF1ZXN0ZWQuCitj
bGFzcyBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIgOiBwdWJsaWMgUmVmQ291
bnRlZDxOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI+IHsKK3B1YmxpYzoKKyAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI+
IGNyZWF0ZShXZWJQYWdlKik7CisgICAgdmlydHVhbCB+Tm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyKCk7CisgICAgCisgICAgdm9pZCBzdGFydFJlcXVlc3QoV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW4qLCBQYXNzUmVmUHRyPFdlYkNvcmU6OlZvaWRDYWxsYmFjaz4pOworICAgIHZv
aWQgY2FuY2VsUmVxdWVzdChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiopOworICAgIAorICAgIC8v
IFN5bmNocm9ub3VzIGNhbGwgdG8gcmV0cmlldmUgcGVybWlzc2lvbiBsZXZlbCBmb3IgZ2l2ZW4g
c2VjdXJpdHkgb3JpZ2luCisgICAgV2ViQ29yZTo6Tm90aWZpY2F0aW9uUHJlc2VudGVyOjpQZXJt
aXNzaW9uIHBlcm1pc3Npb25MZXZlbChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiopOworICAgIAor
ICAgIHZvaWQgZGlkUmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRf
dCBub3RpZmljYXRpb25JRCwgYm9vbCBhbGxvd2VkKTsKKyAgICAKK3ByaXZhdGU6CisgICAgTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKFdlYlBhZ2UqKTsKKyAgICAKKyAgICBI
YXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8V2ViQ29yZTo6Vm9pZENhbGxiYWNrPiA+IG1faWRUb0Nh
bGxiYWNrTWFwOworICAgIEhhc2hNYXA8UmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiwg
dWludDY0X3Q+IG1fb3JpZ2luVG9JRE1hcDsKKyAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+ID4gbV9pZFRvT3JpZ2luTWFwOworCisgICAgV2ViUGFn
ZSogbV9wYWdlOworfTsKKworaW5saW5lIGJvb2wgaXNSZXF1ZXN0SURWYWxpZCh1aW50NjRfdCBp
ZCkKK3sKKyAgICAvLyBUaGlzIGNoZWNrIG1ha2VzIHN1cmUgdGhhdCB0aGUgSUQgaXMgbm90IGVx
dWFsIHRvIHZhbHVlcyBuZWVkZWQgYnkKKyAgICAvLyBIYXNoTWFwIGZvciBidWNrZXRpbmcuCisg
ICAgcmV0dXJuIGlkICYmIGlkICE9IHN0YXRpY19jYXN0PHVpbnQ2NF90PigtMSk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gTm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90
aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5oCmluZGV4IDA3Y2Zh
ZmM3ODU2ZDA4ZWUwN2FkYjczZWNlNGI1OTg1NGVmZWNlN2QuLjNiMzJmMGFkZWJiOTliYmU4YjQ5
YmU3MzE5MWVmNGNjOWNlMmRhMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmgKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuaApA
QCAtMzgsNyArMzgsNyBAQCBjbGFzcyBDb25uZWN0aW9uOwogfQogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7Ci1jbGFzcyBOb3RpZmljYXRpb247ICAgIAorY2xhc3MgTm90aWZpY2F0aW9uOwogfQogCiBu
YW1lc3BhY2UgV2ViS2l0IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcAppbmRl
eCBmMTg0OGJkZmY5ZGI1Y2JkZjg2NjRiYTAzOWFkNjZhNzU2Y2MyMzVmLi5lMDYyMzRhMWNlNWJm
YmI4MWI3MTIzNTY3NzQxNDkwYjcwYmIyM2U4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25D
bGllbnQuY3BwCkBAIC0yOCw5ICsyOCwxMiBAQAogCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMp
CiAKKyNpbmNsdWRlICJOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCIKICNp
bmNsdWRlICJXZWJOb3RpZmljYXRpb25NYW5hZ2VyLmgiCisjaW5jbHVkZSAiV2ViUGFnZS5oIgog
I2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVk
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TY3JpcHRFeGVjdXRpb25Db250ZXh0Lmg+CiAKIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC03NCwyMCArNzcsMjEgQEAgdm9pZCBXZWJOb3RpZmlj
YXRpb25DbGllbnQ6Om5vdGlmaWNhdGlvbk9iamVjdERlc3Ryb3llZChOb3RpZmljYXRpb24qIG5v
dGlmaWNhdGkKICNlbmRpZgogfQogCi12b2lkIFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6cmVxdWVz
dFBlcm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8Vm9pZENhbGxi
YWNrPikKK3ZvaWQgV2ViTm90aWZpY2F0aW9uQ2xpZW50OjpyZXF1ZXN0UGVybWlzc2lvbihTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPFZvaWRDYWxsYmFjaz4gY2Fs
bGJhY2spCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBtX3BhZ2UtPm5vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpLT5zdGFydFJlcXVlc3QoY29udGV4dC0+c2VjdXJp
dHlPcmlnaW4oKSwgY2FsbGJhY2spOwogfQogCi12b2lkIFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6
Y2FuY2VsUmVxdWVzdHNGb3JQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKQordm9p
ZCBXZWJOb3RpZmljYXRpb25DbGllbnQ6OmNhbmNlbFJlcXVlc3RzRm9yUGVybWlzc2lvbihTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgbV9wYWdlLT5ub3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKS0+Y2FuY2Vs
UmVxdWVzdChjb250ZXh0LT5zZWN1cml0eU9yaWdpbigpKTsKIH0KIAotTm90aWZpY2F0aW9uUHJl
c2VudGVyOjpQZXJtaXNzaW9uIFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6Y2hlY2tQZXJtaXNzaW9u
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKQorTm90aWZpY2F0aW9uUHJlc2VudGVyOjpQZXJtaXNz
aW9uIFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6Y2hlY2tQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGNvbnRleHQpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4g
Tm90aWZpY2F0aW9uUHJlc2VudGVyOjpQZXJtaXNzaW9uRGVuaWVkOworICAgIGlmICghY29udGV4
dCB8fCAhY29udGV4dC0+aXNEb2N1bWVudCgpKQorICAgICAgICByZXR1cm4gTm90aWZpY2F0aW9u
UHJlc2VudGVyOjpQZXJtaXNzaW9uRGVuaWVkOworICAgIHJldHVybiBtX3BhZ2UtPm5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpLT5wZXJtaXNzaW9uTGV2ZWwoY29udGV4dC0+
c2VjdXJpdHlPcmlnaW4oKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDYxNzJkNGY5ODgy
ZGZhMjUzOWI4NmUyOWQ4ODFiY2JjZTE3MGJiZmUuLjQzZWMzOGM3MGRlMDI2ZTIwNzA1ZmEyNjlj
NGY0NGVmM2EzYzQzZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJMYXllclRyZWVIb3N0Lmgi
CiAjaW5jbHVkZSAiTWVzc2FnZUlELmgiCiAjaW5jbHVkZSAiTmV0c2NhcGVQbHVnaW4uaCIKKyNp
bmNsdWRlICJOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCIKICNpbmNsdWRl
ICJQYWdlT3ZlcmxheS5oIgogI2luY2x1ZGUgIlBsdWdpblByb3h5LmgiCiAjaW5jbHVkZSAiUGx1
Z2luVmlldy5oIgpAQCAtMTg0Miw2ICsxODQzLDE1IEBAIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyKiBX
ZWJQYWdlOjpmdWxsU2NyZWVuTWFuYWdlcigpCiB9CiAjZW5kaWYKIAorTm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyKiBXZWJQYWdlOjpub3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXIoKQoreworICAgIGlmIChtX25vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlcikKKyAgICAgICAgcmV0dXJuIG1fbm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyLmdldCgpOworCisgICAgbV9ub3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXIgPSBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OmNyZWF0ZSh0aGlzKTsK
KyAgICByZXR1cm4gbV9ub3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuZ2V0KCk7
Cit9CisKICNpZiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0oTUFDKQogYm9vbCBXZWJQYWdl
OjpoYW5kbGVFZGl0aW5nS2V5Ym9hcmRFdmVudChLZXlib2FyZEV2ZW50KiBldnQpCiB7CkBAIC0y
MTE4LDYgKzIxMjgsMTEgQEAgdm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlR2VvbG9jYXRpb25QZXJt
aXNzaW9uRGVjaXNpb24odWludDY0X3QgZ2VvbG9jYXRpb25JRCwgYm8KICAgICBtX2dlb2xvY2F0
aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmRpZFJlY2VpdmVHZW9sb2NhdGlvblBlcm1pc3Np
b25EZWNpc2lvbihnZW9sb2NhdGlvbklELCBhbGxvd2VkKTsKIH0KIAordm9pZCBXZWJQYWdlOjpk
aWRSZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IG5vdGlmaWNh
dGlvbklELCBib29sIGFsbG93ZWQpCit7CisgICAgbm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyKCktPmRpZFJlY2VpdmVOb3RpZmljYXRpb25QZXJtaXNzaW9uRGVjaXNpb24obm90
aWZpY2F0aW9uSUQsIGFsbG93ZWQpOworfQorCiB2b2lkIFdlYlBhZ2U6OmFkdmFuY2VUb05leHRN
aXNzcGVsbGluZyhib29sIHN0YXJ0QmVmb3JlU2VsZWN0aW9uKQogewogICAgIEZyYW1lKiBmcmFt
ZSA9IG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCktPmZvY3VzZWRPck1haW5GcmFtZSgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggOTE2ZDg2MjRk
NmE2Mzk4Y2ZjNzllZjMyNTdlMTFiYmQ0MzA1YTc2MC4uODc1NmI0MWZjMDhkMWQ1NjI2NDc4ZGNi
NzY5ZjkxMjU1YzdiODRmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oCkBAIC0xMDIsNiArMTAyLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNz
IERyYXdpbmdBcmVhOwogY2xhc3MgSW5qZWN0ZWRCdW5kbGVCYWNrRm9yd2FyZExpc3Q7CitjbGFz
cyBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7CiBjbGFzcyBQYWdlT3Zlcmxh
eTsKIGNsYXNzIFBsdWdpblZpZXc7CiBjbGFzcyBTZXNzaW9uU3RhdGU7CkBAIC0zMDksNiArMzEw
LDcgQEAgcHVibGljOgogCiAgICAgRmluZENvbnRyb2xsZXImIGZpbmRDb250cm9sbGVyKCkgeyBy
ZXR1cm4gbV9maW5kQ29udHJvbGxlcjsgfQogICAgIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyJiBnZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpIHsgcmV0dXJu
IG1fZ2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7IH0KKyAgICBOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIqIG5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlcigpOwogCiAgICAgdm9pZCBwYWdlRGlkU2Nyb2xsKCk7CiAjaWYgVVNFKFRJTEVEX0JB
Q0tJTkdfU1RPUkUpCkBAIC01ODcsNiArNTg5LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAgICAg
dm9pZCBkaWRSZWNlaXZlR2VvbG9jYXRpb25QZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3QgZ2Vv
bG9jYXRpb25JRCwgYm9vbCBhbGxvd2VkKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVOb3RpZmljYXRp
b25QZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQsIGJvb2wgYWxsb3dl
ZCk7CiAKICAgICB2b2lkIGFkdmFuY2VUb05leHRNaXNzcGVsbGluZyhib29sIHN0YXJ0QmVmb3Jl
U2VsZWN0aW9uKTsKICAgICB2b2lkIGNoYW5nZVNwZWxsaW5nVG9Xb3JkKGNvbnN0IFN0cmluZyYg
d29yZCk7CkBAIC02OTMsNiArNjk2LDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8V2ViQ29udGV4
dE1lbnU+IG1fY29udGV4dE1lbnU7CiAgICAgUmVmUHRyPFdlYk9wZW5QYW5lbFJlc3VsdExpc3Rl
bmVyPiBtX2FjdGl2ZU9wZW5QYW5lbFJlc3VsdExpc3RlbmVyOwogICAgIEdlb2xvY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyIG1fZ2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXI7CisgICAgUmVmUHRyPE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcj4gbV9u
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7CiAKICAgICBPd25QdHI8V2ViQ29y
ZTo6UHJpbnRDb250ZXh0PiBtX3ByaW50Q29udGV4dDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCBkMGUzMDRi
ZGJhZWVkZjliZTExZjZiNTU1MWM5MjJmOGMzYzY3NmQ5Li4zNzg2MTkxZTUwNzFlNmFlOGZmYzcy
Y2YwMGNkZTlkNjllMGE5OTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtMTcyLDYgKzE3Miw5IEBAIG1lc3Nh
Z2VzIC0+IFdlYlBhZ2UgewogCiAgICAgIyBHZW9sb2NhdGlvbgogICAgIERpZFJlY2VpdmVHZW9s
b2NhdGlvblBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCBnZW9sb2NhdGlvbklELCBib29sIGFs
bG93ZWQpCisgICAgCisgICAgIyBOb3RpZmljYXRpb24KKyAgICBEaWRSZWNlaXZlTm90aWZpY2F0
aW9uUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklELCBib29sIGFsbG93
ZWQpCiAKICAgICBTZXRXaW5kb3dSZXNpemVyU2l6ZShXZWJDb3JlOjpJbnRTaXplIGludGVyc2Vj
dHNWaWV3KQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2og
Yi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2oKaW5kZXggNDc5YmJkNzdmZWY4Mzlk
OWIxOTc4ZTgxZDYzZGZhZjNhZjA2NTA1Mi4uYzA1YTM2MzkyYWIxYjY4ZjQyYjVhZDJlYjRiYzdh
YThkNGRhYjg2MyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9q
CisrKyBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagpAQCAtMTU1NSwxNSArMTU1
NSwxNSBAQAogCQkJTmFtZT0iV2ViUHJvY2VzcyIKIAkJCT4KIAkJCTxGaWxlCi0JCQkJUmVsYXRp
dmVQYXRoPSIuLlxXZWJQcm9jZXNzXFdlYktpdE1haW4uY3BwIgorCQkJCVJlbGF0aXZlUGF0aD0i
Li5cV2ViUHJvY2Vzc1xXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MuY3BwIgogCQkJCT4KIAkJCTwv
RmlsZT4KIAkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJQcm9jZXNzXFdlYkNvbm5l
Y3Rpb25Ub1VJUHJvY2Vzcy5jcHAiCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJQcm9jZXNzXFdl
YkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcy5oIgogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCi0J
CQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJQcm9jZXNzXFdlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcy5o
IgorCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViUHJvY2Vzc1xXZWJLaXRNYWluLmNwcCIKIAkJCQk+
CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQpAQCAtMjcwNiw2ICsyNzA2LDE0IEBACiAJCQkJTmFtZT0i
Tm90aWZpY2F0aW9ucyAoVXNlcikiCiAJCQkJPgogCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0
aD0iLi5cV2ViUHJvY2Vzc1xOb3RpZmljYXRpb25zXE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlci5jcHAiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxXZWJQcm9jZXNzXE5vdGlmaWNhdGlvbnNcTm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyLmgiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJQcm9jZXNzXE5vdGlmaWNhdGlvbnNcV2ViTm90aWZpY2F0
aW9uTWFuYWdlci5jcHAiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CkBAIC0zMDgzLDM0ICszMDkxLDYg
QEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQ
cm9jZXNzXFdlYk5vdGlmaWNhdGlvbi5jcHAiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUK
LQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xXZWJOb3RpZmljYXRpb24uaCIKLQkJCQk+
Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXFdl
Yk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZp
bGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xXZWJOb3RpZmljYXRpb25NYW5hZ2Vy
UHJveHkuaCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0i
Li5cVUlQcm9jZXNzXFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiIKLQkJ
CQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNz
XFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8Rmls
ZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXFdlYk5vdGlmaWNhdGlvblByb3ZpZGVy
LmgiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJ
UHJvY2Vzc1xXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5LmNwcCIKIAkJCQk+CiAJCQk8
L0ZpbGU+CkBAIC0zODEwLDYgKzM3OTAsNTQgQEAKIAkJCQkJPC9GaWxlPgogCQkJCTwvRmlsdGVy
PgogCQkJPC9GaWx0ZXI+CisJCQk8RmlsdGVyCisJCQkJTmFtZT0iTm90aWZpY2F0aW9ucyAoVXNl
cikiCisJCQkJPgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXE5v
dGlmaWNhdGlvbnNcTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuY3BwIgorCQkJCQk+CisJ
CQkJPC9GaWxlPgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXE5v
dGlmaWNhdGlvbnNcTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaCIKKwkJCQkJPgorCQkJ
CTwvRmlsZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xOb3Rp
ZmljYXRpb25zXE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCIK
KwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJ
UHJvY2Vzc1xOb3RpZmljYXRpb25zXE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5LmgiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxVSVByb2Nlc3NcTm90aWZpY2F0aW9uc1xXZWJOb3RpZmljYXRpb24uY3BwIgorCQkJ
CQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9j
ZXNzXE5vdGlmaWNhdGlvbnNcV2ViTm90aWZpY2F0aW9uLmgiCisJCQkJCT4KKwkJCQk8L0ZpbGU+
CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcTm90aWZpY2F0aW9u
c1xXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwIgorCQkJCQk+CisJCQkJPC9GaWxlPgor
CQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXE5vdGlmaWNhdGlvbnNc
V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmgiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJ
PEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcTm90aWZpY2F0aW9uc1xXZWJO
b3RpZmljYXRpb25NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4iCisJCQkJCT4KKwkJCQk8L0ZpbGU+
CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcTm90aWZpY2F0aW9u
c1xXZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHAiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJ
PEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcTm90aWZpY2F0aW9uc1xXZWJO
b3RpZmljYXRpb25Qcm92aWRlci5oIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJPC9GaWx0ZXI+
CiAJCTwvRmlsdGVyPgogCQk8RmlsdGVyCiAJCQlOYW1lPSJQbGF0Zm9ybSIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ29tbW9uLnZzcHJvcHMgYi9Tb3VyY2UvV2ViS2l0
Mi93aW4vV2ViS2l0MkNvbW1vbi52c3Byb3BzCmluZGV4IGNjMTRhZmRmNzJmMmVmZWU1NzdlNGI4
OTZhNDUxM2RlYmIyYzg4MDcuLjgxZDM0ZDkwN2M4NzBhMDc0YWNhOTVkMjQ4ZWQ2YmQ2Mzg0YzI4
OWYgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ29tbW9uLnZzcHJvcHMK
KysrIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDb21tb24udnNwcm9wcwpAQCAtNiw3ICs2
LDcgQEAKIAk+CiAJPFRvb2wKIAkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJQWRkaXRpb25h
bEluY2x1ZGVEaXJlY3Rvcmllcz0iJnF1b3Q7JChQcm9qZWN0RGlyKSZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpXC4uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cUGxhdGZvcm0mcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxQbGF0Zm9ybVxjZyZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpXC4uXFBsYXRmb3JtXENvcmVJUEMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxQbHVn
aW5Qcm9jZXNzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4u
XFNoYXJlZFxjZiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxBUElcYyZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxBUElcY1xjZiZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpXC4uXFNoYXJlZFxBUElcY1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwu
LlxTaGFyZWRcQ29yZUlQQ1N1cHBvcnQmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFy
ZWRcUGx1Z2lucyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxQbHVnaW5zXE5l
dHNjYXBlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXEFQSVxDJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cilcLi5cVUlQcm9jZXNzXEFQSVxDXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJ
UHJvY2Vzc1xBUElcY3BwJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXEFQ
SVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcQXV0aGVudGljYXRp
b24mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcRG93bmxvYWRzJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXExhdW5jaGVyJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcilcLi5cVUlQcm9jZXNzXFBsdWdpbnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KVwuLlxVSVByb2Nlc3Ncd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vz
cyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcV2ViQ29yZVN1cHBvcnQm
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFdlYkNvcmVTdXBwb3J0XHdp
biZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcV2ViUGFnZSZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcV2ViUGFnZVx3aW4mcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEljb25EYXRhYmFzZSZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpXC4uXFdlYlByb2Nlc3NcSW5qZWN0ZWRCdW5kbGUmcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEluamVjdGVkQnVuZGxlXEFQSVxjJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xJbmplY3RlZEJ1bmRsZVxET00mcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEluamVjdGVkQnVuZGxlXHdpbiZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcUGx1Z2lucyZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpXC4uXFdlYlByb2Nlc3NcUGx1Z2luc1xOZXRzY2FwZSZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpXC4uXFdlYlByb2Nlc3Ncd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2Vi
UHJvY2Vzc1xBcHBsaWNhdGlvbkNhY2hlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2Vi
UHJvY2Vzc1xBdXRoZW50aWNhdGlvbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlBy
b2Nlc3NcQ29va2llcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcQ29v
a2llc1xjZiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcRG93bmxvYWRz
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xEb3dubG9hZHNcY2YmcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEZ1bGxTY3JlZW4mcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEdlb2xvY2F0aW9uJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xLZXlWYWx1ZVN0b3JhZ2UmcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXE1lZGlhQ2FjaGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKVwuLlxXZWJQcm9jZXNzXE5vdGlmaWNhdGlvbnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KVwuLlxXZWJQcm9jZXNzXFJlc291cmNlQ2FjaGUmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9u
QnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlcyZxdW90OzsmcXVvdDsk
KENvbmZpZ3VyYXRpb25CdWlsZERpcilcSW5jbHVkZSZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRp
b25CdWlsZERpcilcSW5jbHVkZVxwcml2YXRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVz
RGlyKVxJbmNsdWRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJbmNsdWRlXHBy
aXZhdGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVccHRocmVhZHMm
cXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXEluY2x1ZGVcSmF2YVNjcmlwdENv
cmUmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXEluY2x1ZGVccHJpdmF0ZVxK
YXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVkZVxK
YXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVkZVxw
cml2YXRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGly
KVxJbmNsdWRlXFdlYkNvcmVcRm9yd2FyZGluZ0hlYWRlcnMmcXVvdDs7JnF1b3Q7JChXZWJLaXRM
aWJyYXJpZXNEaXIpXEluY2x1ZGVcV2ViQ29yZVxGb3J3YXJkaW5nSGVhZGVycyZxdW90OyIKKwkJ
QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iJnF1b3Q7JChQcm9qZWN0RGlyKSZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpXC4uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cUGxhdGZv
cm0mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxQbGF0Zm9ybVxjZyZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpXC4uXFBsYXRmb3JtXENvcmVJUEMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KVwuLlxQbHVnaW5Qcm9jZXNzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXHdpbiZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpXC4uXFNoYXJlZFxjZiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxB
UElcYyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxBUElcY1xjZiZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxBUElcY1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKVwuLlxTaGFyZWRcQ29yZUlQQ1N1cHBvcnQmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KVwuLlxTaGFyZWRcUGx1Z2lucyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxQ
bHVnaW5zXE5ldHNjYXBlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXEFQSVxDJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcilcLi5cVUlQcm9jZXNzXEFQSVxDXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpXC4uXFVJUHJvY2Vzc1xBUElcY3BwJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQ
cm9jZXNzXEFQSVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcQXV0
aGVudGljYXRpb24mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcRG93bmxv
YWRzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXExhdW5jaGVyJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXE5vdGlmaWNhdGlvbnMmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcUGx1Z2lucyZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpXC4uXFVJUHJvY2Vzc1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQ
cm9jZXNzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xXZWJDb3JlU3Vw
cG9ydCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcV2ViQ29yZVN1cHBv
cnRcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xXZWJQYWdlJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xXZWJQYWdlXHdpbiZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcSWNvbkRhdGFiYXNlJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xJbmplY3RlZEJ1bmRsZSZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcSW5qZWN0ZWRCdW5kbGVcQVBJXGMmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEluamVjdGVkQnVuZGxlXERPTSZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcSW5qZWN0ZWRCdW5kbGVcd2luJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xQbHVnaW5zJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xQbHVnaW5zXE5ldHNjYXBlJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwu
LlxXZWJQcm9jZXNzXEFwcGxpY2F0aW9uQ2FjaGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwu
LlxXZWJQcm9jZXNzXEF1dGhlbnRpY2F0aW9uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5c
V2ViUHJvY2Vzc1xDb29raWVzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vz
c1xDb29raWVzXGNmJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xEb3du
bG9hZHMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXERvd25sb2Fkc1xj
ZiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcRnVsbFNjcmVlbiZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcR2VvbG9jYXRpb24mcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEtleVZhbHVlU3RvcmFnZSZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcTWVkaWFDYWNoZSZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpXC4uXFdlYlByb2Nlc3NcTm90aWZpY2F0aW9ucyZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpXC4uXFdlYlByb2Nlc3NcUmVzb3VyY2VDYWNoZSZxdW90OzsmcXVvdDskKENvbmZpZ3Vy
YXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzJnF1b3Q7OyZx
dW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxJbmNsdWRlJnF1b3Q7OyZxdW90OyQoQ29uZmln
dXJhdGlvbkJ1aWxkRGlyKVxJbmNsdWRlXHByaXZhdGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJy
YXJpZXNEaXIpXEluY2x1ZGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1
ZGVccHJpdmF0ZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVkZVxwdGhy
ZWFkcyZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcSW5jbHVkZVxKYXZhU2Ny
aXB0Q29yZSZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcSW5jbHVkZVxwcml2
YXRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJbmNs
dWRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJbmNs
dWRlXHByaXZhdGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVp
bGREaXIpXEluY2x1ZGVcV2ViQ29yZVxGb3J3YXJkaW5nSGVhZGVycyZxdW90OzsmcXVvdDskKFdl
YktpdExpYnJhcmllc0RpcilcSW5jbHVkZVxXZWJDb3JlXEZvcndhcmRpbmdIZWFkZXJzJnF1b3Q7
IgogCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iX1VTUkRMTDtXRUJLSVRfRVhQT1JUUztGUkFN
RVdPUktfTkFNRT1XZWJLaXQ7QlVJTERJTkdfV0VCS0lUIgogCQlVc2VQcmVjb21waWxlZEhlYWRl
cj0iMiIKIAkJUHJlY29tcGlsZWRIZWFkZXJUaHJvdWdoPSJXZWJLaXQyUHJlZml4LmgiCmRpZmYg
LS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZmIyODE2ZTIy
ODE5NGRhNzRlZjNkZTRlMjQ5MzFmMmZmYTFhODQzMy4uNjJkMjcxMDAzZTk4ZDJkMGZiNzFlMTQ3
ZWNmNjgyYmUwOTEwNTI5YSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDExLTEyLTA2ICBKb24gTGVlICA8am9ubGVl
QGFwcGxlLmNvbT4KKworICAgICAgICBbV0syXSBBZGQgcGVybWlzc2lvbnMgc3VwcG9ydCAoNzM5
NjApCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzk2
MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTAzNTcwMDg+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIG51bGwgZnVuY3Rpb24gaXRlbSB0byBj
b21wbHkgd2l0aCBhZGRlZCBjYWxsYmFjayB0byBXS1BhZ2VVSUNsaWVudC4KKworICAgICAgICAq
IE1pbmlCcm93c2VyL21hYy9Ccm93c2VyV2luZG93Q29udHJvbGxlci5tOgorICAgICAgICAoLVtC
cm93c2VyV2luZG93Q29udHJvbGxlciBhd2FrZUZyb21OaWJdKToKKyAgICAgICAgKiBXZWJLaXRU
ZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xs
ZXI6OmNyZWF0ZU90aGVyUGFnZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjppbml0
aWFsaXplKToKKwogMjAxMS0xMi0wNiAgQWRhbSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgQWRkIGEgcGlkIHBhcmFtZXRlciB0byBDcmFzaExvZ3MuZmluZF9uZXdlc3RfbG9n
CmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nlci9tYWMvQnJvd3NlcldpbmRvd0NvbnRyb2xs
ZXIubSBiL1Rvb2xzL01pbmlCcm93c2VyL21hYy9Ccm93c2VyV2luZG93Q29udHJvbGxlci5tCmlu
ZGV4IGY3ZTljNjkwMTA2NzdlNGI0MTU0ZTZiNzAwYzQwOGU4ODAwNTdiOTIuLjQ5OTNhYTk5ZDk1
MzVjOWI4NzVlZDkwODgxZTQ2ZTIwZmI0Y2YxMDEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL01pbmlCcm93
c2VyL21hYy9Ccm93c2VyV2luZG93Q29udHJvbGxlci5tCisrKyBiL1Rvb2xzL01pbmlCcm93c2Vy
L21hYy9Ccm93c2VyV2luZG93Q29udHJvbGxlci5tCkBAIC02NjcsNiArNjY3LDcgQEAgLSAodm9p
ZClhd2FrZUZyb21OaWIKICAgICAgICAgMCwgLy8gc2hvdWxkSW50ZXJydXB0SmF2YVNjcmlwdAog
ICAgICAgICBjcmVhdGVOZXdQYWdlLAogICAgICAgICBtb3VzZURpZE1vdmVPdmVyRWxlbWVudCwK
KyAgICAgICAgMCwgLy8gZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3QKICAgICB9OwogICAgIFdLUGFnZVNldFBhZ2VVSUNsaWVudChfd2ViVmlldy5wYWdlUmVmLCAm
dWlDbGllbnQpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApp
bmRleCBjZjcxMTQwZDFhYmY1YjYzMzI0ZWY5NTk0YmU5MjdiMjg0ZWM3Y2I5Li5kZTY4YTI5N2U0
Yjk5MmM0MmI0OWMyYjRhMGQxZTk2ZjE2ODQ2MDI1IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RDb250cm9sbGVyLmNwcApAQCAtMjA0LDYgKzIwNCw3IEBAIFdLUGFnZVJlZiBUZXN0Q29u
dHJvbGxlcjo6Y3JlYXRlT3RoZXJQYWdlKFdLUGFnZVJlZiBvbGRQYWdlLCBXS1VSTFJlcXVlc3RS
ZWYsIFdLCiAgICAgICAgIDAsIC8vIHNob3VsZEludGVycnVwdEphdmFTY3JpcHQKICAgICAgICAg
Y3JlYXRlT3RoZXJQYWdlLAogICAgICAgICAwLCAvLyBtb3VzZURpZE1vdmVPdmVyRWxlbWVudAor
ICAgICAgICAwLCAvLyBkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVz
dAogICAgIH07CiAgICAgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KG5ld1BhZ2UsICZvdGhlclBhZ2VV
SUNsaWVudCk7CiAKQEAgLTM1Niw2ICszNTcsNyBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjppbml0
aWFsaXplKGludCBhcmdjLCBjb25zdCBjaGFyKiBhcmd2W10pCiAgICAgICAgIDAsIC8vIHNob3Vs
ZEludGVycnVwdEphdmFTY3JpcHQKICAgICAgICAgY3JlYXRlT3RoZXJQYWdlLAogICAgICAgICAw
LCAvLyBtb3VzZURpZE1vdmVPdmVyRWxlbWVudAorICAgICAgICAwLCAvLyBkZWNpZGVQb2xpY3lG
b3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdAogICAgIH07CiAgICAgV0tQYWdlU2V0UGFn
ZVVJQ2xpZW50KG1fbWFpbldlYlZpZXctPnBhZ2UoKSwgJnBhZ2VVSUNsaWVudCk7CiAK
</data>
<flag name="review"
          id="117939"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>