<?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>61848</bug_id>
          
          <creation_ts>2011-06-01 01:52:01 -0700</creation_ts>
          <short_desc>Implement video full-srceen API in WebKit2</short_desc>
          <delta_ts>2012-01-30 15:27:54 -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>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</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>
          <dependson>61843</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>aestes</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>eric</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>413233</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-06-01 01:52:01 -0700</bug_when>
    <thetext>Implement video full-srceen API in WebKit2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>413250</commentid>
    <comment_count>1</comment_count>
      <attachid>95571</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-06-01 02:46:08 -0700</bug_when>
    <thetext>Created attachment 95571
Patch

This patch enables video full-screen mode (i.e. webkitEnterFullscreen) in WebKit2 on mac, supporting both QTKit and AVFoundation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>413658</commentid>
    <comment_count>2</comment_count>
      <attachid>95660</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-06-01 14:18:43 -0700</bug_when>
    <thetext>Created attachment 95660
[PATCH 1/4] Added new class: WebVideoFullScreenManager</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>413659</commentid>
    <comment_count>3</comment_count>
      <attachid>95661</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-06-01 14:19:19 -0700</bug_when>
    <thetext>Created attachment 95661
[PATCH 2/4] Added new class: WebVideoFullScreenManagerProxy</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>413660</commentid>
    <comment_count>4</comment_count>
      <attachid>95662</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-06-01 14:19:56 -0700</bug_when>
    <thetext>Created attachment 95662
[PATCH 3/4] Add new classes to project, and add support for their</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>413661</commentid>
    <comment_count>5</comment_count>
      <attachid>95663</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-06-01 14:20:21 -0700</bug_when>
    <thetext>Created attachment 95663
[PATCH 4/4] Enable video full-screen mode in WebKit2/mac.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>413662</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-01 14:20:47 -0700</bug_when>
    <thetext>Attachment 95660 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit...&quot; exit_code: 1

Source/WebKit2/WebProcess/FullScreen/mac/WebVideoFullScreenManagerMac.h:41:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Source/WebKit2/WebProcess/FullScreen/WebVideoFullScreenManager.h:35:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 2 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>413666</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-01 14:21:55 -0700</bug_when>
    <thetext>Attachment 95661 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit...&quot; exit_code: 1

Source/WebKit2/UIProcess/FullScreen/WebVideoFullScreenManagerProxy.h:35:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 1 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>413670</commentid>
    <comment_count>8</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-06-01 14:28:58 -0700</bug_when>
    <thetext>&lt;rdar://problem/9522985&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>414150</commentid>
    <comment_count>9</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-06-02 08:38:05 -0700</bug_when>
    <thetext>Who should be CC&apos;d to review these?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415487</commentid>
    <comment_count>10</comment_count>
      <attachid>95662</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-06-04 08:52:56 -0700</bug_when>
    <thetext>Comment on attachment 95662
[PATCH 3/4] Add new classes to project, and add support for their

Attachment 95662 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/8651089</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415488</commentid>
    <comment_count>11</comment_count>
      <attachid>95663</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-06-04 08:54:27 -0700</bug_when>
    <thetext>Comment on attachment 95663
[PATCH 4/4] Enable video full-screen mode in WebKit2/mac.

Attachment 95663 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/8766376</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545480</commentid>
    <comment_count>12</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-01-30 15:22:16 -0800</bug_when>
    <thetext>Looks like this was forgotten?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545490</commentid>
    <comment_count>13</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2012-01-30 15:27:13 -0800</bug_when>
    <thetext>Yes, I&apos;ll clear the r? flags and mark this as not-to-be-fixed.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>95571</attachid>
            <date>2011-06-01 02:46:08 -0700</date>
            <delta_ts>2011-06-01 14:18:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-61848-20110601024607.patch</filename>
            <type>text/plain</type>
            <size>79288</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODc3MDMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA1YjdlYzI2MTg0YjcxMTA1
MzUyYzM3NmM0ZjhlOTJiMzE4MTFiYzQ0Li5jMmUxOTQzMWJlMjBjODkwMmFiMjRiOGMxMjExNTM1
MTIxODhmYmJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQ5IEBACisyMDExLTA2LTAxICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIExlZ2FjeSBGdWxsIFNjcmVlbiBBUEkgZm9yIFdlYktpdDIu
CisKKyAgICAgICAgSW1wbGVtZW50IHZpZGVvIGZ1bGwtc3JjZWVuIEFQSSBpbiBXZWJLaXQyCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MTg0OAorCisg
ICAgICAgIEluIG9yZGVyIHRvIGltcGxlbWVudCBmdWxsLXNjcmVlbiBtb2RlIGluIFdlYktpdDIs
IGEgbG90IG9mIGluZm9ybWF0aW9uIG5lZWRzIHRvIAorICAgICAgICBiZSBwYXNzZWQgYmV0d2Vl
biB0aGUgV2ViUHJvY2VzcyBhbmQgVUlQcm9jZXNzLiAgVG8gZmFjaWxpdGF0ZSB0aGlzLCB0aGUg
Zm9sbG93aW5nCisgICAgICAgIGNsYXNzZXMgaGF2ZSBiZWVuIGFkZGVkOgorICAgICAgICAKKyAg
ICAgICAgV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlcjogSW4gdGhlIFdlYlByb2Nlc3M7IG1hbmFn
ZXMgdGhlIEhUTUxNZWRpYUVsZW1lbnQuCisgICAgICAgIFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFn
ZXJNYWM6IERlYWxzIHdpdGggcGxhdGZvcm0tc3BlY2lmaWMgZGV0YWlscywgc3VjaCBhcyBDQUxh
eWVycy4KKyAgICAgICAgV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5OiBJbiB0aGUgVUlQ
cm9jZXNzOyBtb3N0bHkgZW1wdHkuCisgICAgICAgIFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQ
cm94eU1hYzogRGVhbHMgd2l0aCBwbGF0Zm9ybS1zcGVjaWZpYyBkZXRhaWxzLCBzdWNoIGFzCisg
ICAgICAgICAgICBtYW5hZ2luZyB0aGUgV2ViVmlkZW9GdWxsU2NyZWVuQ29udHJvbGxlciBhbmQg
dGhlIHJvb3QgQ0FMYXllci4KKyAgICAgICAgVmlkZW9FdmVudExpc3RlbmVyOiBQcm92aWRlcyBh
IGdlbmVyaWMgY2FsbGJhY2sgbWVjaGFuaXNtIGZvciBFdmVudExpc3RlbmVycywgYnV0IAorICAg
ICAgICAgICAgcHJvdmlkaW5nIGEgQysrIGludGVyZmFjZSBpbnN0ZWFkIG9mIE9iakMuCisgICAg
ICAgIAorICAgICAgICAqIFVJUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYlZpZGVvRnVsbFNjcmVlbk1h
bmFnZXJQcm94eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxTY3Jl
ZW5NYW5hZ2VyUHJveHk6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eSk6CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6fldlYlZpZGVvRnVsbFNj
cmVlbk1hbmFnZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1h
bmFnZXJQcm94eTo6c2V0V2ViVmlldyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbFNj
cmVlbk1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclBy
b3h5Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYlZpZGVvRnVs
bFNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogVUlQcm9j
ZXNzL0Z1bGxTY3JlZW4vbWFjL1dlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYy5oOiBB
ZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvRnVsbFNjcmVlbi9tYWMvV2ViVmlkZW9GdWxsU2Ny
ZWVuTWFuYWdlclByb3h5TWFjLm1tOiBBZGRlZC4KKyAgICAgICAgKC1bV2ViVmlkZW9EZWxlZ2F0
ZSBpbml0V2l0aE1hbmFnZXI6V2ViS2l0OjpdKToKKyAgICAgICAgKC1bV2ViVmlkZW9EZWxlZ2F0
ZSBtZWRpYUVsZW1lbnRdKToKKyAgICAgICAgKC1bV2ViVmlkZW9EZWxlZ2F0ZSByZXF1ZXN0RXhp
dEZ1bGxzY3JlZW5dKToKKyAgICAgICAgKC1bV2ViVmlkZW9EZWxlZ2F0ZSBiZWdpblNjcnViYmlu
Z10pOgorICAgICAgICAoLVtXZWJWaWRlb0RlbGVnYXRlIGVuZFNjcnViYmluZ10pOgorICAgICAg
ICAoLVtXZWJWaWRlb0RlbGVnYXRlIGN1cnJlbnRUaW1lXSk6CisgICAgICAgICgtW1dlYlZpZGVv
RGVsZWdhdGUgc2V0Q3VycmVudFRpbWU6XSk6CisgICAgICAgICgtW1dlYlZpZGVvRGVsZWdhdGUg
ZHVyYXRpb25dKToKKyAgICAgICAgKC1bV2ViVmlkZW9EZWxlZ2F0ZSB2b2x1bWVdKToKKyAgICAg
ICAgKC1bV2ViVmlkZW9EZWxlZ2F0ZSBtdXRlZF0pOgorICAgICAgICAoLVtXZWJWaWRlb0RlbGVn
YXRlIHNldE11dGVkOl0pOgorICAgICAgICAoLVtXZWJWaWRlb0RlbGVnYXRlIHNldFZvbHVtZTpd
KToKKyAgICAgICAgKC1bV2ViVmlkZW9EZWxlZ2F0ZSBjYW5QbGF5XSk6CisgICAgICAgICgtW1dl
YlZpZGVvRGVsZWdhdGUgcGxheV0pOgorICAgICAgICAoLVtXZWJWaWRlb0RlbGVnYXRlIHBhdXNl
XSk6CisgICAgICAgICgtW1dlYlZpZGVvRGVsZWdhdGUgcmV3aW5kOl0pOgorICAgICAgICAoLVtX
ZWJWaWRlb0RlbGVnYXRlIG1lZGlhRWxlbWVudFNjcmVlblJlY3RdKToKKyAgICAgICAgKC1bV2Vi
VmlkZW9EZWxlZ2F0ZSByZWxlYXNlTWVkaWFFbGVtZW50TGF5ZXJdKToKKyAgICAgICAgKC1bV2Vi
VmlkZW9EZWxlZ2F0ZSBzdGVhbE1lZGlhRWxlbWVudExheWVyXSk6CisgICAgICAgICgtW1dlYlZp
ZGVvRGVsZWdhdGUgZW50ZXJGdWxsU2NyZWVuQ29tcGxldGVkXSk6CisgICAgICAgICgtW1dlYlZp
ZGVvRGVsZWdhdGUgZXhpdEZ1bGxTY3JlZW5Db21wbGV0ZWRdKToKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHlNYWM6OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYzo6V2ViVmlkZW9GdWxsU2Ny
ZWVuTWFuYWdlclByb3h5TWFjKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsU2NyZWVu
TWFuYWdlclByb3h5TWFjOjp+V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5TWFjKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5TWFjOjplbnRlckZ1
bGxTY3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJv
eHlNYWM6OmV4aXRGdWxsU2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsU2Ny
ZWVuTWFuYWdlclByb3h5TWFjOjplbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5TWFjOjpleGl0QWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxT
Y3JlZW5NYW5hZ2VyUHJveHlNYWM6OnJvb3RMYXllcik6CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYzo6c2V0TXV0ZWQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHlNYWM6OnJld2luZCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYzo6Y2FuUGxheSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYzo6ZHVyYXRpb24p
OgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHlNYWM6OnNl
dFZvbHVtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94
eU1hYzo6YmVnaW5TY3J1YmJpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxTY3Jl
ZW5NYW5hZ2VyUHJveHlNYWM6OmVuZFNjcnViYmluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYzo6bXV0ZWQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHlNYWM6OnZvbHVtZSk6CisgICAgICAgIChXZWJL
aXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYzo6cGxheSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYzo6cGF1c2UpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHlNYWM6OmN1cnJlbnRUaW1l
KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5TWFjOjpz
ZXRDdXJyZW50VGltZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFn
ZXJQcm94eU1hYzo6cmVxdWVzdEV4aXRGdWxsU2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
VmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5TWFjOjpnZXRGdWxsU2NyZWVuUmVjdCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYzo6Y2FuUGxheVVw
ZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1h
Yzo6dGltZVVwZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFn
ZXJQcm94eU1hYzo6dm9sdW1lVXBkYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxs
U2NyZWVuTWFuYWdlclByb3h5TWFjOjptdXRlVXBkYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
VmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5TWFjOjpkdXJhdGlvblVwZGF0ZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYzo6bWVkaWFFbGVtZW50
U2NyZWVuUmVjdFVwZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1h
bmFnZXJQcm94eU1hYzo6bWVkaWFFbGVtZW50U2NyZWVuUmVjdCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYzo6ZW50ZXJGdWxsU2NyZWVuQ29tcGxl
dGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5TWFj
OjpleGl0RnVsbFNjcmVlbkNvbXBsZXRlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9GdWxsU2Ny
ZWVuL1dlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktp
dDo6VmlkZW9FdmVudExpc3RlbmVyOjpWaWRlb0V2ZW50TGlzdGVuZXIpOgorICAgICAgICAoV2Vi
S2l0OjpWaWRlb0V2ZW50TGlzdGVuZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlZpZGVv
RXZlbnRMaXN0ZW5lcjo6b3BlcmF0b3I9PSk6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRXZlbnRM
aXN0ZW5lcjo6aGFuZGxlRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxTY3Jl
ZW5NYW5hZ2VyOjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlcjo6fldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXIpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyOjptZWRpYUVsZW1lbnQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyOjpzZXRNZWRpYUVs
ZW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyOjpkaWRS
ZWNlaXZlTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFn
ZXI6OmVudGVyRnVsbFNjcmVlbik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVl
bk1hbmFnZXI6OmV4aXRGdWxsU2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxs
U2NyZWVuTWFuYWdlcjo6Z2V0RnVsbFNjcmVlblJlY3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJW
aWRlb0Z1bGxTY3JlZW5NYW5hZ2VyOjpleGl0RnVsbFNjcmVlbkNvbXBsZXRlZCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXI6OmVudGVyRnVsbFNjcmVlbkNvbXBs
ZXRlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXI6OnBsYXkp
OgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyOjpwYXVzZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXI6OnNldFZvbHVtZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXI6OnJldHVyblRvUmVhbFRp
bWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyOjpyZXdpbmQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyOjpyZXF1ZXN0RXhp
dEZ1bGxTY3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2Vy
OjpiZWdpblNjcnViYmluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1h
bmFnZXI6OmVuZFNjcnViYmluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVl
bk1hbmFnZXI6OnNldEN1cnJlbnRUaW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxs
U2NyZWVuTWFuYWdlcjo6c2V0TXV0ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxT
Y3JlZW5NYW5hZ2VyOjp0aW1lVXBkYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxs
U2NyZWVuTWFuYWdlcjo6Y2FuUGxheVVwZGF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9GdWxs
U2NyZWVuL1dlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXIuaDogQWRkZWQuCisgICAgICAgICogV2Vi
UHJvY2Vzcy9GdWxsU2NyZWVuL1dlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW46
IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvRnVsbFNjcmVlbi9tYWMvV2ViVmlkZW9GdWxs
U2NyZWVuTWFuYWdlck1hYy5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0Z1bGxTY3Jl
ZW4vbWFjL1dlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJNYWMubW06IEFkZGVkLgorICAgICAgICAo
V2ViS2l0OjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyOjpjcmVhdGUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyTWFjOjpjcmVhdGUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyTWFjOjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5h
Z2VyTWFjKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlck1hYzo6
fldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJNYWMpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRl
b0Z1bGxTY3JlZW5NYW5hZ2VyTWFjOjpzZXRVcExheWVyQ2xpZW50KToKKyAgICAgICAgKFdlYktp
dDo6V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlck1hYzo6dGVhckRvd25MYXllckNsaWVudCk6CisK
KyAgICAgICAgTm93IHRoYXQgV2ViS2l0MiBzdXBwb3J0cyBpdCwgaW1wbGVtZW50IHRoZXNlIHZp
ZGVvIGZ1bGwtc2NyZWVuIGNsaWVudCBBUElzLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21l
Q2xpZW50OjpzdXBwb3J0c0Z1bGxzY3JlZW5Gb3JOb2RlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Q2hyb21lQ2xpZW50OjplbnRlckZ1bGxzY3JlZW5Gb3JOb2RlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViQ2hyb21lQ2xpZW50OjpleGl0RnVsbHNjcmVlbkZvck5vZGUpOgorCisgICAgICAgIFRoZSBm
b2xsb3dpbmcgYXJlIG1vc3RseSBib2lsZXJwbGF0ZSBjaGFuZ2VzIHRvIGFsbG93IHRoZXNlIG5l
dyBjbGFzc2VzIHRvIHVzZSAKKyAgICAgICAgdGhlIHBhZ2UncyBjcm9zcy1wbGF0Zm9ybSBtZXNz
YWdpbmcuCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBQbGF0Zm9y
bS9Db3JlSVBDL01lc3NhZ2VJRC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlU3luY01lc3NhZ2UpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnZpZGVvRnVsbFNjcmVlbk1hbmFnZXIpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBXZWJLaXQyLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmNsb3NlKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6dmlkZW9GdWxsU2NyZWVuTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2U6OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oOgorCiAyMDExLTA1LTMwICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQyL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKaW5kZXggODY1MDUwYzY2ZWQ1OTIyZWM1MGQ1MGJjOTQ4ODlmMDhkYmNm
NWNlMi4uZTM2ZDcwODVmN2M1MmQ4M2MzM2NlNjA2ZDY4MmI1MWY1MzVlMTUxNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0zOSw2ICszOSw3IEBAIFZQQVRIID0gXAogICAgICQo
V2ViS2l0MikvV2ViUHJvY2VzcyBcCiAgICAgJChXZWJLaXQyKS9VSVByb2Nlc3MgXAogICAgICQo
V2ViS2l0MikvVUlQcm9jZXNzL0Rvd25sb2FkcyBcCisgICAgJChXZWJLaXQyKS9VSVByb2Nlc3Mv
RnVsbFNjcmVlbiBcCiAgICAgJChXZWJLaXQyKS9VSVByb2Nlc3MvUGx1Z2lucyBcCiAjCiAKQEAg
LTc4LDYgKzc5LDggQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAgICAgV2ViUHJvY2Vzc1Byb3h5
IFwKICAgICBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlciBcCiAgICAgV2ViUmVzb3VyY2VDYWNoZU1h
bmFnZXJQcm94eSBcCisgICAgV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlciBcCisgICAgV2ViVmlk
ZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5IFwKICMKIAogU0NSSVBUUyA9IFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZUlELmggYi9Tb3VyY2UvV2Vi
S2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VJRC5oCmluZGV4IDBiNTI4MDYwZDJjN2U0YjA3
MWVhMWQ0ZTNjNmM2MjhiYmVmNzRmNWQuLmUwZDlmNjUyZGYxNWFkZTBjYWU1YmFkM2RjNTMzM2Qz
YjJjODM2Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVz
c2FnZUlELmgKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlSUQu
aApAQCAtNTEsNiArNTEsNyBAQCBlbnVtIE1lc3NhZ2VDbGFzcyB7CiAgICAgTWVzc2FnZUNsYXNz
V2ViUGFnZSwKICAgICBNZXNzYWdlQ2xhc3NXZWJQcm9jZXNzLAogICAgIE1lc3NhZ2VDbGFzc1dl
YlJlc291cmNlQ2FjaGVNYW5hZ2VyLAorICAgIE1lc3NhZ2VDbGFzc1dlYlZpZGVvRnVsbFNjcmVl
bk1hbmFnZXIsCiAKICAgICAvLyBNZXNzYWdlcyBzZW50IGJ5IHRoZSB3ZWIgcHJvY2VzcyB0byB0
aGUgVUkgcHJvY2Vzcy4KICAgICBNZXNzYWdlQ2xhc3NEb3dubG9hZFByb3h5LApAQCAtNzAsNiAr
NzEsNyBAQCBlbnVtIE1lc3NhZ2VDbGFzcyB7CiAgICAgTWVzc2FnZUNsYXNzV2ViUGFnZVByb3h5
LAogICAgIE1lc3NhZ2VDbGFzc1dlYlByb2Nlc3NQcm94eSwKICAgICBNZXNzYWdlQ2xhc3NXZWJS
ZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LAorICAgIE1lc3NhZ2VDbGFzc1dlYlZpZGVvRnVsbFNj
cmVlbk1hbmFnZXJQcm94eSwKIAogICAgIC8vIE1lc3NhZ2VzIHNlbnQgYnkgdGhlIFVJIHByb2Nl
c3MgdG8gdGhlIHBsdWctaW4gcHJvY2Vzcy4KICAgICBNZXNzYWdlQ2xhc3NQbHVnaW5Qcm9jZXNz
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViVmlk
ZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9G
dWxsU2NyZWVuL1dlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZTc0OGYzN2M4NjcyNmRkMDZjNzMyMDhmMzVjZTIzYmM5ZDcxYzRkOQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYlZpZGVvRnVsbFNjcmVl
bk1hbmFnZXJQcm94eS5jcHAKQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHkuaCIK
KworI2luY2x1ZGUgIldlYkNvbnRleHQuaCIKKyNpbmNsdWRlICJXZWJGdWxsU2NyZWVuTWFuYWdl
ck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5TWVz
c2FnZXMuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYlZpZGVvRnVsbFNjcmVlbk1hbmFn
ZXJQcm94eTo6V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5KFdlYlBhZ2VQcm94eSogcGFn
ZSkKKyAgICA6IG1fcGFnZShwYWdlKQorICAgICwgbV93ZWJWaWV3KDApCit7Cit9CisKK1dlYlZp
ZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6fldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94
eSgpCit7Cit9CisKK3ZvaWQgV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5OjpzZXRXZWJW
aWV3KFBsYXRmb3JtV2ViVmlldyogd2ViVmlldykKK3sKKyAgICBtX3dlYlZpZXcgPSB3ZWJWaWV3
OworfQorCit2b2lkIFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZU1l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlE
IG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit7CisgICAg
ZGlkUmVjZWl2ZVdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2UoY29ubmVjdGlv
biwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworfQorCit2b2lkIFdlYlZpZGVvRnVsbFNjcmVlbk1h
bmFnZXJQcm94eTo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNv
bm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciogYXJndW1lbnRzLCBPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPiYgcmVw
bHkpCit7CisgICAgZGlkUmVjZWl2ZVN5bmNXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHlN
ZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzLCByZXBseSk7Cit9CisgICAg
ICAgIAorfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvRnVsbFNjcmVlbi9XZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHkuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYlZpZGVvRnVsbFNjcmVlbk1hbmFn
ZXJQcm94eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYxNTYyYmIwNDczZTBkM2JmNWQxNzkxZDU2MzFiOTQwZGFh
YTNjNWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRnVsbFNj
cmVlbi9XZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHkuaApAQCAtMCwwICsxLDk3IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2lmbmRlZiBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHlfaAorI2Rl
ZmluZSBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHlfaAorCisjaW5jbHVkZSAiQ29ubmVj
dGlvbi5oIgorI2luY2x1ZGUgPFdlYkNvcmUvSW50UmVjdC5oPgorI2luY2x1ZGUgPHd0Zi9QYXNz
UmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgQ29yZUlQQyB7
CisgICAgY2xhc3MgQXJndW1lbnREZWNvZGVyOworICAgIGNsYXNzIENvbm5lY3Rpb247CisgICAg
Y2xhc3MgTWVzc2FnZUlEOworfQorCisjaWYgUExBVEZPUk0oTUFDKQorT0JKQ19DTEFTUyBXS1Zp
ZXc7CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYktpdCB7CisKKyNpZiBQTEFURk9STShNQUMpCit0
eXBlZGVmIFdLVmlldyBQbGF0Zm9ybVdlYlZpZXc7CisjZWxpZiBQTEFURk9STShXSU4pCitjbGFz
cyBXZWJWaWV3OwordHlwZWRlZiBXZWJWaWV3IFBsYXRmb3JtV2ViVmlldzsKKyNlbGlmIFBMQVRG
T1JNKFFUKQordHlwZWRlZiBRR3JhcGhpY3NXS1ZpZXcgUGxhdGZvcm1XZWJWaWV3OworI2VsaWYg
UExBVEZPUk0oR1RLKQorY2xhc3MgV2ViVmlldzsKK3R5cGVkZWYgV2ViVmlldyBQbGF0Zm9ybVdl
YlZpZXc7CisjZW5kaWYKKworY2xhc3MgV2ViUGFnZVByb3h5OworY2xhc3MgTGF5ZXJUcmVlQ29u
dGV4dDsKKworY2xhc3MgV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5IDogcHVibGljIFJl
ZkNvdW50ZWQ8V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5PiB7CitwdWJsaWM6CisgICAg
c3RhdGljIFBhc3NSZWZQdHI8V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5PiBjcmVhdGUo
V2ViUGFnZVByb3h5Kik7CisgICAgdmlydHVhbCB+V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclBy
b3h5KCk7CisKKyAgICB2b2lkIHNldFdlYlZpZXcoUGxhdGZvcm1XZWJWaWV3Kik7CisKKyAgICB2
aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZSgpID0gMDsKKworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6
Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
KiBhcmd1bWVudHMsIE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+JiByZXBseSk7CisK
K3Byb3RlY3RlZDoKKyAgICBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHkoV2ViUGFnZVBy
b3h5Kik7CisgICAgCisgICAgdmlydHVhbCB2b2lkIGVudGVyRnVsbFNjcmVlbigpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgZXhpdEZ1bGxTY3JlZW4oKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGVu
dGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKCkgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBnZXRGdWxsU2NyZWVuUmVjdChXZWJDb3JlOjpJbnRSZWN0Jikg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBjYW5QbGF5VXBkYXRlKGJvb2wpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgdGltZVVwZGF0ZShmbG9hdCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB2b2x1bWVV
cGRhdGUoZmxvYXQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgbXV0ZVVwZGF0ZShib29sKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIGR1cmF0aW9uVXBkYXRlKGRvdWJsZSkgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBtZWRpYUVsZW1lbnRTY3JlZW5SZWN0VXBkYXRlKFdlYkNvcmU6OkludFJlY3QpID0g
MDsKKworICAgIFdlYlBhZ2VQcm94eSogbV9wYWdlOworICAgIFBsYXRmb3JtV2ViVmlldyogbV93
ZWJWaWV3OworCisgICAgdm9pZCBkaWRSZWNlaXZlV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclBy
b3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3Jl
SVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jV2ViVmlkZW9G
dWxsU2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQ
Qzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cywgT3duUHRy
PENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mIHJlcGx5KTsKK307CisgICAgCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eV9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRnVsbFNjcmVlbi9XZWJWaWRl
b0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvRnVsbFNjcmVlbi9XZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMu
aW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNDA3Y2NlYmM3NjI2ZDc5MjQ4MjhkNTRhNDJkMGNiOGEwNTJkYmJlYgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9GdWxsU2NyZWVuL1dl
YlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDM3IEBA
CisjIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisj
CisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
CisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK21lc3NhZ2VzIC0+IFdl
YlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eSB7CisgICAgRW50ZXJGdWxsU2NyZWVuKCkgLT4g
KCkKKyAgICBFeGl0RnVsbFNjcmVlbigpIC0+ICgpCisgICAgQ2FuUGxheVVwZGF0ZShib29sIGNh
blBsYXkpCisgICAgVm9sdW1lVXBkYXRlKGZsb2F0IHZvbHVtZSkKKyAgICBNdXRlVXBkYXRlKGJv
b2wgbXV0ZWQpCisgICAgVGltZVVwZGF0ZShkb3VibGUgdGltZSkKKyAgICBEdXJhdGlvblVwZGF0
ZShkb3VibGUgZHVyYXRpb24pCisgICAgR2V0RnVsbFNjcmVlblJlY3QoKSAtPiAoV2ViQ29yZTo6
SW50UmVjdCByZWN0KQorICAgIE1lZGlhRWxlbWVudFNjcmVlblJlY3RVcGRhdGUoV2ViQ29yZTo6
SW50UmVjdCByZWN0KSAtPiAoKQorI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyAg
ICBFbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKFdlYktpdDo6TGF5ZXJUcmVlQ29udGV4
dCBjb250ZXh0KSAtPiAoKQorICAgIEV4aXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSgpIC0+
ICgpCisjZW5kaWYKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9GdWxs
U2NyZWVuL21hYy9XZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHlNYWMuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9GdWxsU2NyZWVuL21hYy9XZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2Vy
UHJveHlNYWMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNTY4OTlhYjcyYTY3MzIyMGIxYjdkMzVkZTc4NGIwZjFj
YzY2ZDI1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Z1bGxT
Y3JlZW4vbWFjL1dlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYy5oCkBAIC0wLDAgKzEs
OTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94
eU1hY19oCisjZGVmaW5lIFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hY19oCisKKyNp
bXBvcnQgIldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5oIgorCisjaW1wb3J0IDxXZWJD
b3JlL0ludFJlY3QuaD4KKyNpbXBvcnQgPFdlYkNvcmUvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJv
bGxlci5oPgorI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorCitAY2xhc3MgV2ViVmlkZW9EZWxl
Z2F0ZTsKK0BjbGFzcyBDQUxheWVyOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2Vi
VmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5TWFjIDogcHVibGljIFdlYlZpZGVvRnVsbFNjcmVl
bk1hbmFnZXJQcm94eSB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViVmlkZW9G
dWxsU2NyZWVuTWFuYWdlclByb3h5TWFjPiBjcmVhdGUoV2ViUGFnZVByb3h5Kik7CisKKyAgICB2
aXJ0dWFsIHZvaWQgZW50ZXJGdWxsU2NyZWVuKCk7CisgICAgdmlydHVhbCB2b2lkIGV4aXRGdWxs
U2NyZWVuKCk7CisgICAgdmlydHVhbCB2b2lkIGVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01v
ZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpOworICAgIHZpcnR1YWwgdm9pZCBleGl0QWNjZWxl
cmF0ZWRDb21wb3NpdGluZ01vZGUoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0RnVsbFNjcmVlblJl
Y3QoV2ViQ29yZTo6SW50UmVjdCYpOworICAgIHZpcnR1YWwgdm9pZCBjYW5QbGF5VXBkYXRlKGJv
b2wgY2FuUGxheSk7CisgICAgdmlydHVhbCB2b2lkIHRpbWVVcGRhdGUoZmxvYXQgdGltZSk7Cisg
ICAgdmlydHVhbCB2b2lkIHZvbHVtZVVwZGF0ZShmbG9hdCB2b2x1bWUpOworICAgIHZpcnR1YWwg
dm9pZCBtdXRlVXBkYXRlKGJvb2wpOworICAgIHZpcnR1YWwgdm9pZCBkdXJhdGlvblVwZGF0ZShk
b3VibGUpOworICAgIHZpcnR1YWwgdm9pZCBtZWRpYUVsZW1lbnRTY3JlZW5SZWN0VXBkYXRlKFdl
YkNvcmU6OkludFJlY3QpOworICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlKCk7CisKKyAgICB2
b2lkIHJlcXVlc3RFeGl0RnVsbFNjcmVlbigpOworICAgIHZvaWQgYmVnaW5TY3J1YmJpbmcoKTsK
KyAgICB2b2lkIGVuZFNjcnViYmluZygpOworICAgIGRvdWJsZSBjdXJyZW50VGltZSgpIGNvbnN0
OworICAgIHZvaWQgc2V0Q3VycmVudFRpbWUoZG91YmxlKTsKKyAgICBkb3VibGUgZHVyYXRpb24o
KSBjb25zdDsKKyAgICBmbG9hdCB2b2x1bWUoKSBjb25zdDsKKyAgICB2b2lkIHNldFZvbHVtZShm
bG9hdCk7CisgICAgYm9vbCBtdXRlZCgpIGNvbnN0OworICAgIHZvaWQgc2V0TXV0ZWQoYm9vbCk7
CisgICAgYm9vbCBjYW5QbGF5KCkgY29uc3Q7CisgICAgdm9pZCBwbGF5KCk7CisgICAgdm9pZCBw
YXVzZSgpOworICAgIHZvaWQgcmV3aW5kKGZsb2F0IGRlbHRhKTsKKyAgICBXZWJDb3JlOjpJbnRS
ZWN0IG1lZGlhRWxlbWVudFNjcmVlblJlY3QoKSBjb25zdDsKKyAgICB2b2lkIGV4aXRGdWxsU2Ny
ZWVuQ29tcGxldGVkKCk7CisgICAgdm9pZCBlbnRlckZ1bGxTY3JlZW5Db21wbGV0ZWQoKTsKKwor
ICAgIENBTGF5ZXIqIHJvb3RMYXllcigpOworICAgIAorcHJpdmF0ZToKKyAgICBXZWJWaWRlb0Z1
bGxTY3JlZW5NYW5hZ2VyUHJveHlNYWMoV2ViUGFnZVByb3h5Kik7CisgICAgdmlydHVhbCB+V2Vi
VmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5TWFjKCk7ICAgIAorCisgICAgYm9vbCBtX2NhblBs
YXk7CisgICAgYm9vbCBtX211dGVkOworICAgIGZsb2F0IG1fdm9sdW1lOworICAgIGRvdWJsZSBt
X2N1cnJlbnRUaW1lOworICAgIGRvdWJsZSBtX2R1cmF0aW9uOworICAgIFdlYkNvcmU6OkludFJl
Y3QgbV9tZWRpYUVsZW1lbnRTY3JlZW5SZWN0OworICAgIAorICAgIFJldGFpblB0cjxXZWJWaWRl
b0Z1bGxzY3JlZW5Db250cm9sbGVyPiBtX3dpbmRvd0NvbnRyb2xsZXI7CisgICAgUmV0YWluUHRy
PFdlYlZpZGVvRGVsZWdhdGU+IG1fZGVsZWdhdGU7CisgICAgUmV0YWluUHRyPENBTGF5ZXI+IG1f
cm9vdExheWVyOworfTsKKworfQorCisjZW5kaWYgLy8gV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdl
clByb3h5TWFjX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9GdWxsU2Ny
ZWVuL21hYy9XZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHlNYWMubW0gYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvRnVsbFNjcmVlbi9tYWMvV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclBy
b3h5TWFjLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVlMzNkM2RkMmFmZWY4NmJkYTYwMDY2ZDlhZmNkZjEwMTBj
MWM0YjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRnVsbFNj
cmVlbi9tYWMvV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5TWFjLm1tCkBAIC0wLDAgKzEs
MzU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisKKyNpbXBvcnQgIldlYlZp
ZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYy5oIgorCisjaW1wb3J0ICJMYXllclRyZWVDb250
ZXh0LmgiCisjaW1wb3J0ICJXZWJQYWdlUHJveHkuaCIKKyNpbXBvcnQgIldlYlByb2Nlc3NQcm94
eS5oIgorI2ltcG9ydCAiV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlck1lc3NhZ2VzLmgiCisjaW1w
b3J0ICJXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHkuaCIKKyNpbXBvcnQgPFdlYkNvcmUv
SW50UmVjdC5oPgorI2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CisjaW1wb3J0IDxR
dWFydHpDb3JlL1F1YXJ0ekNvcmUuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK0Bp
bnRlcmZhY2UgV2ViVmlkZW9EZWxlZ2F0ZSA6IE5TT2JqZWN0PFdlYlZpZGVvRnVsbHNjcmVlbkNv
bnRyb2xsZXJEZWxlZ2F0ZT4geworICAgIFdlYktpdDo6V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdl
clByb3h5TWFjKiBfbWFuYWdlcjsKK30KKy0gKGlkKWluaXRXaXRoTWFuYWdlcjooV2ViS2l0OjpX
ZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHlNYWMqKW1hbmFnZXI7CitAZW5kCisKK0BpbXBs
ZW1lbnRhdGlvbiBXZWJWaWRlb0RlbGVnYXRlCistIChpZClpbml0V2l0aE1hbmFnZXI6KFdlYktp
dDo6V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5TWFjICopbWFuYWdlcgoreworICAgIHNl
bGYgPSBbc3VwZXIgaW5pdF07CisgICAgaWYgKCFzZWxmKQorICAgICAgICByZXR1cm4gbmlsOwor
ICAgIAorICAgIF9tYW5hZ2VyID0gbWFuYWdlcjsKKyAgICByZXR1cm4gc2VsZjsKK30KKworLSAo
SFRNTE1lZGlhRWxlbWVudCopbWVkaWFFbGVtZW50Cit7CisgICAgcmV0dXJuIDA7Cit9CisKKy0g
KHZvaWQpcmVxdWVzdEV4aXRGdWxsc2NyZWVuCit7CisgICAgX21hbmFnZXItPnJlcXVlc3RFeGl0
RnVsbFNjcmVlbigpOworfQorCistICh2b2lkKWJlZ2luU2NydWJiaW5nCit7CisgICAgX21hbmFn
ZXItPmJlZ2luU2NydWJiaW5nKCk7Cit9CisKKy0gKHZvaWQpZW5kU2NydWJiaW5nCit7CisgICAg
X21hbmFnZXItPmVuZFNjcnViYmluZygpOworfQorCistIChmbG9hdCljdXJyZW50VGltZQorewor
ICAgIHJldHVybiBfbWFuYWdlci0+Y3VycmVudFRpbWUoKTsKK30KKworLSAodm9pZClzZXRDdXJy
ZW50VGltZTooZG91YmxlKWN1cnJlbnRUaW1lCit7CisgICAgX21hbmFnZXItPnNldEN1cnJlbnRU
aW1lKGN1cnJlbnRUaW1lKTsKK30KKworLSAoZG91YmxlKWR1cmF0aW9uCit7CisgICAgcmV0dXJu
IF9tYW5hZ2VyLT5kdXJhdGlvbigpOworfQorCistIChmbG9hdCl2b2x1bWUKK3sKKyAgICByZXR1
cm4gX21hbmFnZXItPnZvbHVtZSgpOworfQorCistIChCT09MKW11dGVkCit7CisgICAgcmV0dXJu
IF9tYW5hZ2VyLT5tdXRlZCgpOworfQorCistICh2b2lkKXNldE11dGVkOihCT09MKW11dGVkCit7
CisgICAgX21hbmFnZXItPnNldE11dGVkKG11dGVkKTsKK30KKworLSAodm9pZClzZXRWb2x1bWU6
KGZsb2F0KXZvbHVtZQoreworICAgIF9tYW5hZ2VyLT5zZXRWb2x1bWUodm9sdW1lKTsKK30KKwor
LSAoQk9PTCljYW5QbGF5Cit7CisgICAgcmV0dXJuIF9tYW5hZ2VyLT5jYW5QbGF5KCk7Cit9CisK
Ky0gKHZvaWQpcGxheQoreworICAgIF9tYW5hZ2VyLT5wbGF5KCk7Cit9CisKKy0gKHZvaWQpcGF1
c2UKK3sKKyAgICBfbWFuYWdlci0+cGF1c2UoKTsKK30KKworLSAodm9pZClyZXdpbmQ6KGZsb2F0
KWRlbHRhCit7CisgICAgX21hbmFnZXItPnJld2luZChkZWx0YSk7Cit9CisKKy0gKE5TUmVjdClt
ZWRpYUVsZW1lbnRTY3JlZW5SZWN0Cit7CisgICAgcmV0dXJuIF9tYW5hZ2VyLT5tZWRpYUVsZW1l
bnRTY3JlZW5SZWN0KCk7Cit9CisKKy0gKHZvaWQpcmVsZWFzZU1lZGlhRWxlbWVudExheWVyCit7
Cit9CisKKy0gKENBTGF5ZXIqKXN0ZWFsTWVkaWFFbGVtZW50TGF5ZXIKK3sKKyAgICByZXR1cm4g
X21hbmFnZXItPnJvb3RMYXllcigpOworfQorCistICh2b2lkKWVudGVyRnVsbFNjcmVlbkNvbXBs
ZXRlZAoreworICAgIF9tYW5hZ2VyLT5lbnRlckZ1bGxTY3JlZW5Db21wbGV0ZWQoKTsKK30KKwor
LSAodm9pZClleGl0RnVsbFNjcmVlbkNvbXBsZXRlZAoreworICAgIF9tYW5hZ2VyLT5leGl0RnVs
bFNjcmVlbkNvbXBsZXRlZCgpOworfQorQGVuZAorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUGFz
c1JlZlB0cjxXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHk+IFdlYlZpZGVvRnVsbFNjcmVl
bk1hbmFnZXJQcm94eTo6Y3JlYXRlKFdlYlBhZ2VQcm94eSogcGFnZSkKK3sKKyAgICByZXR1cm4g
V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5TWFjOjpjcmVhdGUocGFnZSk7Cit9CisKK1Bh
c3NSZWZQdHI8V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5TWFjPiBXZWJWaWRlb0Z1bGxT
Y3JlZW5NYW5hZ2VyUHJveHlNYWM6OmNyZWF0ZShXZWJQYWdlUHJveHkqIHBhZ2UpCit7CisgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHlNYWMocGFn
ZSkpOworfQorCitXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHlNYWM6OldlYlZpZGVvRnVs
bFNjcmVlbk1hbmFnZXJQcm94eU1hYyhXZWJQYWdlUHJveHkqIHBhZ2UpCisgICAgOiBXZWJWaWRl
b0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHkocGFnZSkKKyAgICAsIG1fY2FuUGxheShmYWxzZSkKKyAg
ICAsIG1fbXV0ZWQoZmFsc2UpCisgICAgLCBtX3ZvbHVtZSgwKQorICAgICwgbV9jdXJyZW50VGlt
ZSgwKQorICAgICwgbV9kdXJhdGlvbigwKQorICAgICwgbV9kZWxlZ2F0ZShBZG9wdE5TLCBbW1dl
YlZpZGVvRGVsZWdhdGUgYWxsb2NdIGluaXRXaXRoTWFuYWdlcjp0aGlzXSkKK3sKK30KKworV2Vi
VmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5TWFjOjp+V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdl
clByb3h5TWFjKCkKK3sKK30KKwordm9pZCBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHlN
YWM6OmVudGVyRnVsbFNjcmVlbigpCit7CisgICAgaWYgKCFtX3dpbmRvd0NvbnRyb2xsZXIpIHsK
KyAgICAgICAgbV93aW5kb3dDb250cm9sbGVyLmFkb3B0TlMoW1tXZWJWaWRlb0Z1bGxzY3JlZW5D
b250cm9sbGVyIGFsbG9jXSBpbml0XSk7CisgICAgICAgIFttX3dpbmRvd0NvbnRyb2xsZXIuZ2V0
KCkgc2V0RGVsZWdhdGU6bV9kZWxlZ2F0ZS5nZXQoKV07CisgICAgfQorCisgICAgTlNTY3JlZW4q
IHNjcmVlbiA9IFtOU1NjcmVlbiBtYWluU2NyZWVuXTsKKyAgICBbbV93aW5kb3dDb250cm9sbGVy
LmdldCgpIGVudGVyRnVsbHNjcmVlbjpzY3JlZW5dOworfQorCit2b2lkIFdlYlZpZGVvRnVsbFNj
cmVlbk1hbmFnZXJQcm94eU1hYzo6ZXhpdEZ1bGxTY3JlZW4oKQoreworICAgIFttX3dpbmRvd0Nv
bnRyb2xsZXIuZ2V0KCkgZXhpdEZ1bGxzY3JlZW5dOworfQorCit2b2lkIFdlYlZpZGVvRnVsbFNj
cmVlbk1hbmFnZXJQcm94eU1hYzo6ZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShjb25z
dCBMYXllclRyZWVDb250ZXh0JiBjb250ZXh0KQoreworICAgIG1fcm9vdExheWVyLmFkb3B0TlMo
W1tDQUxheWVyIGFsbG9jXSBpbml0XSk7CisjaWZuZGVmIE5ERUJVRworICAgIFttX3Jvb3RMYXll
ci5nZXQoKSBzZXROYW1lOkAiSG9zdGluZyByb290IGxheWVyIl07CisjZW5kaWYKKyAgICAKKyAg
ICBDQUxheWVyICpyZW5kZXJMYXllciA9IFdLTWFrZVJlbmRlckxheWVyKGNvbnRleHQuY29udGV4
dElEKTsKKyAgICBbbV9yb290TGF5ZXIuZ2V0KCkgYWRkU3VibGF5ZXI6cmVuZGVyTGF5ZXJdOwor
fQorCit2b2lkIFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYzo6ZXhpdEFjY2VsZXJh
dGVkQ29tcG9zaXRpbmdNb2RlKCkKK3sKKyAgICBbbV9yb290TGF5ZXIuZ2V0KCkgc2V0U3VibGF5
ZXJzOm5pbF07CisgICAgW21fcm9vdExheWVyLmdldCgpIHJlbW92ZUZyb21TdXBlcmxheWVyXTsK
KyAgICBtX3Jvb3RMYXllciA9IG51bGxwdHI7Cit9CisKK0NBTGF5ZXIqIFdlYlZpZGVvRnVsbFNj
cmVlbk1hbmFnZXJQcm94eU1hYzo6cm9vdExheWVyKCkKK3sKKyAgICByZXR1cm4gbV9yb290TGF5
ZXIuZ2V0KCk7Cit9CisKK3ZvaWQgV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5TWFjOjpz
ZXRNdXRlZChib29sIG11dGVkKQoreworICAgIG1fcGFnZS0+cHJvY2VzcygpLT5zZW5kKE1lc3Nh
Z2VzOjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyOjpTZXRNdXRlZChtdXRlZCksIG1fcGFnZS0+
cGFnZUlEKCkpOworfQorCit2b2lkIFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYzo6
cmV3aW5kKGZsb2F0IGRlbHRhKQoreworICAgIG1fcGFnZS0+cHJvY2VzcygpLT5zZW5kKE1lc3Nh
Z2VzOjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyOjpSZXdpbmQoZGVsdGEpLCBtX3BhZ2UtPnBh
Z2VJRCgpKTsKK30KKworYm9vbCBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHlNYWM6OmNh
blBsYXkoKSBjb25zdCAKK3sKKyAgICByZXR1cm4gbV9jYW5QbGF5OworfQorCitkb3VibGUgV2Vi
VmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5TWFjOjpkdXJhdGlvbigpIGNvbnN0Cit7CisgICAg
cmV0dXJuIG1fZHVyYXRpb247Cit9CisKK3ZvaWQgV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclBy
b3h5TWFjOjpzZXRWb2x1bWUoZmxvYXQgdm9sdW1lKQoreworICAgIG1fcGFnZS0+cHJvY2Vzcygp
LT5zZW5kKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyOjpTZXRWb2x1bWUodm9s
dW1lKSwgbV9wYWdlLT5wYWdlSUQoKSk7Cit9CisKK3ZvaWQgV2ViVmlkZW9GdWxsU2NyZWVuTWFu
YWdlclByb3h5TWFjOjpiZWdpblNjcnViYmluZygpCit7CisgICAgbV9wYWdlLT5wcm9jZXNzKCkt
PnNlbmQoTWVzc2FnZXM6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXI6OkJlZ2luU2NydWJiaW5n
KCksIG1fcGFnZS0+cGFnZUlEKCkpOworfQorCit2b2lkIFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFn
ZXJQcm94eU1hYzo6ZW5kU2NydWJiaW5nKCkKK3sKKyAgICBtX3BhZ2UtPnByb2Nlc3MoKS0+c2Vu
ZChNZXNzYWdlczo6V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlcjo6RW5kU2NydWJiaW5nKCksIG1f
cGFnZS0+cGFnZUlEKCkpOworfQorCitib29sIFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94
eU1hYzo6bXV0ZWQoKSBjb25zdAoreworICAgIHJldHVybiBtX211dGVkOworfQorCitmbG9hdCBX
ZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHlNYWM6OnZvbHVtZSgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIG1fdm9sdW1lOworfQorCit2b2lkIFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94
eU1hYzo6cGxheSgpCit7CisgICAgbV9wYWdlLT5wcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6Oldl
YlZpZGVvRnVsbFNjcmVlbk1hbmFnZXI6OlBsYXkoKSwgbV9wYWdlLT5wYWdlSUQoKSk7Cit9CisK
K3ZvaWQgV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5TWFjOjpwYXVzZSgpCit7CisgICAg
bV9wYWdlLT5wcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFn
ZXI6OlBhdXNlKCksIG1fcGFnZS0+cGFnZUlEKCkpOworfQorCitkb3VibGUgV2ViVmlkZW9GdWxs
U2NyZWVuTWFuYWdlclByb3h5TWFjOjpjdXJyZW50VGltZSgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IG1fY3VycmVudFRpbWU7Cit9CisKK3ZvaWQgV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5
TWFjOjpzZXRDdXJyZW50VGltZShkb3VibGUgY3VycmVudFRpbWUpCit7CisgICAgbV9wYWdlLT5w
cm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXI6OlNldEN1
cnJlbnRUaW1lKGN1cnJlbnRUaW1lKSwgbV9wYWdlLT5wYWdlSUQoKSk7Cit9CisKK3ZvaWQgV2Vi
VmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5TWFjOjpyZXF1ZXN0RXhpdEZ1bGxTY3JlZW4oKQor
eworICAgIG1fcGFnZS0+cHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxTY3Jl
ZW5NYW5hZ2VyOjpSZXF1ZXN0RXhpdEZ1bGxTY3JlZW4oKSwgbV9wYWdlLT5wYWdlSUQoKSk7Cit9
CisKK3ZvaWQgV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5TWFjOjpnZXRGdWxsU2NyZWVu
UmVjdChJbnRSZWN0JiByZWN0KQoreworICAgIE5TU2NyZWVuKiBzY3JlZW4gPSBbTlNTY3JlZW4g
bWFpblNjcmVlbl07CisgICAgcmVjdCA9IGVuY2xvc2luZ0ludFJlY3QoW3NjcmVlbiBmcmFtZV0p
OworfQorCit2b2lkIFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYzo6Y2FuUGxheVVw
ZGF0ZShib29sIGNhblBsYXkpCit7CisgICAgbV9jYW5QbGF5ID0gY2FuUGxheTsKKyAgICBbbV93
aW5kb3dDb250cm9sbGVyLmdldCgpIHVwZGF0ZVBsYXlTdGF0ZV07Cit9CisKK3ZvaWQgV2ViVmlk
ZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5TWFjOjp0aW1lVXBkYXRlKGZsb2F0IHRpbWUpCit7Cisg
ICAgbV9jdXJyZW50VGltZSA9IHRpbWU7CisgICAgW21fd2luZG93Q29udHJvbGxlci5nZXQoKSB1
cGRhdGVUaW1lXTsKK30KKwordm9pZCBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHlNYWM6
OnZvbHVtZVVwZGF0ZShmbG9hdCB2b2x1bWUpCit7CisgICAgbV92b2x1bWUgPSB2b2x1bWU7Cisg
ICAgW21fd2luZG93Q29udHJvbGxlci5nZXQoKSB1cGRhdGVWb2x1bWVdOworfQorCit2b2lkIFdl
YlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYzo6bXV0ZVVwZGF0ZShib29sIG11dGVkKQor
eworICAgIG1fbXV0ZWQgPSBtdXRlZDsKK30KKwordm9pZCBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5h
Z2VyUHJveHlNYWM6OmR1cmF0aW9uVXBkYXRlKGRvdWJsZSBkdXJhdGlvbikKK3sKKyAgICBtX2R1
cmF0aW9uID0gZHVyYXRpb247CisgICAgW21fd2luZG93Q29udHJvbGxlci5nZXQoKSB1cGRhdGVU
aW1lXTsKK30KKwordm9pZCBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHlNYWM6Om1lZGlh
RWxlbWVudFNjcmVlblJlY3RVcGRhdGUoSW50UmVjdCByZWN0KQoreworICAgIG1fbWVkaWFFbGVt
ZW50U2NyZWVuUmVjdCA9IHJlY3Q7Cit9CisKK0ludFJlY3QgV2ViVmlkZW9GdWxsU2NyZWVuTWFu
YWdlclByb3h5TWFjOjptZWRpYUVsZW1lbnRTY3JlZW5SZWN0KCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9tZWRpYUVsZW1lbnRTY3JlZW5SZWN0OworfQorCit2b2lkIFdlYlZpZGVvRnVsbFNjcmVl
bk1hbmFnZXJQcm94eU1hYzo6ZW50ZXJGdWxsU2NyZWVuQ29tcGxldGVkKCkKK3sKKyAgICBtX3Bh
Z2UtPnByb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlcjo6
RW50ZXJGdWxsU2NyZWVuQ29tcGxldGVkKCksIG1fcGFnZS0+cGFnZUlEKCkpOworfQorCit2b2lk
IFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYzo6ZXhpdEZ1bGxTY3JlZW5Db21wbGV0
ZWQoKQoreworICAgIG1fcGFnZS0+cHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1
bGxTY3JlZW5NYW5hZ2VyOjpFeGl0RnVsbFNjcmVlbkNvbXBsZXRlZCgpLCBtX3BhZ2UtPnBhZ2VJ
RCgpKTsKKyAgICBtX3dpbmRvd0NvbnRyb2xsZXIgPSBudWxscHRyOworfQorCit2b2lkIFdlYlZp
ZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYzo6aW52YWxpZGF0ZSgpCit7CisgICAgW21fd2lu
ZG93Q29udHJvbGxlci5nZXQoKSBjbG9zZV07CisgICAgbV93aW5kb3dDb250cm9sbGVyID0gbnVs
bHB0cjsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZGMzZGJkOWQxZTYxNWU4NjI3ZjExMzY3ZThkNGMx
YmNhMTdjOGE4ZS4uOTdhYWNjMDU1OGVkMTdjYjMzMmU0ZTkzOTU4YWU1MWM3YmI1NTllMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTcxLDYgKzcxLDcg
QEAKICNpbmNsdWRlICJXZWJQcm90ZWN0aW9uU3BhY2UuaCIKICNpbmNsdWRlICJXZWJTZWN1cml0
eU9yaWdpbi5oIgogI2luY2x1ZGUgIldlYlVSTFJlcXVlc3QuaCIKKyNpbmNsdWRlICJXZWJWaWRl
b0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0RyYWdEYXRhLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFJlY3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZvY3Vz
RGlyZWN0aW9uLmg+CkBAIC0xMzkyLDYgKzEzOTMsMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRp
ZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6
Ok0KICAgICB9CiAjZW5kaWYKIAorICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2Fn
ZUNsYXNzV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5PigpKSB7CisgICAgICAgIHZpZGVv
RnVsbFNjcmVlbk1hbmFnZXIoKS0+ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2Fn
ZUlELCBhcmd1bWVudHMpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgZGlkUmVjZWl2
ZVdlYlBhZ2VQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOwog
fQogCkBAIC0xNDEyLDYgKzE0MTgsMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVT
eW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVAKICAgICB9
CiAjZW5kaWYKIAorICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2Vi
VmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5PigpKSB7CisgICAgICAgIHZpZGVvRnVsbFNjcmVl
bk1hbmFnZXIoKS0+ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwg
YXJndW1lbnRzLCByZXBseSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICAvLyBGSVhN
RTogRG8gc29tZXRoaW5nIHdpdGggcmVwbHkuCiAgICAgZGlkUmVjZWl2ZVN5bmNXZWJQYWdlUHJv
eHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzLCByZXBseSk7CiB9CkBA
IC0yMTc4LDkgKzIxODksMTUgQEAgV2ViSW5zcGVjdG9yUHJveHkqIFdlYlBhZ2VQcm94eTo6aW5z
cGVjdG9yKCkKICAgICAgICAgbV9pbnNwZWN0b3IgPSBXZWJJbnNwZWN0b3JQcm94eTo6Y3JlYXRl
KHRoaXMpOwogICAgIHJldHVybiBtX2luc3BlY3Rvci5nZXQoKTsKIH0KLQogI2VuZGlmCiAKK1dl
YlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eSogV2ViUGFnZVByb3h5Ojp2aWRlb0Z1bGxTY3Jl
ZW5NYW5hZ2VyKCkKK3sKKyAgICBpZiAoIW1fdmlkZW9GdWxsU2NyZWVuTWFuYWdlcikKKyAgICAg
ICAgbV92aWRlb0Z1bGxTY3JlZW5NYW5hZ2VyID0gV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclBy
b3h5OjpjcmVhdGUodGhpcyk7CisgICAgcmV0dXJuIG1fdmlkZW9GdWxsU2NyZWVuTWFuYWdlci5n
ZXQoKTsKK30KKwogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKIFdlYkZ1bGxTY3JlZW5NYW5h
Z2VyUHJveHkqIFdlYlBhZ2VQcm94eTo6ZnVsbFNjcmVlbk1hbmFnZXIoKQogewpAQCAtMjg5Miw2
ICsyOTA5LDExIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpwcm9jZXNzRGlkQ3Jhc2goKQogICAgIH0K
ICNlbmRpZgogCisgICAgaWYgKG1fdmlkZW9GdWxsU2NyZWVuTWFuYWdlcikgeworICAgICAgICBt
X3ZpZGVvRnVsbFNjcmVlbk1hbmFnZXItPmludmFsaWRhdGUoKTsKKyAgICAgICAgbV92aWRlb0Z1
bGxTY3JlZW5NYW5hZ2VyID0gbnVsbHB0cjsKKyAgICB9CisKICNpZiBFTkFCTEUoRlVMTFNDUkVF
Tl9BUEkpCiAgICAgaWYgKG1fZnVsbFNjcmVlbk1hbmFnZXIpIHsKICAgICAgICAgbV9mdWxsU2Ny
ZWVuTWFuYWdlci0+aW52YWxpZGF0ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oCmluZGV4IDM2YmEzOTk1NmQwZWE1OGI1NWQwODIyMjFhODQzODNkYmUwMzBiMTAuLjYw
NmI3NWE0NzQ4ZGRhMDkwNTViODQyYTNkNTgxYTAzOTViOTkyMmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTEwNCw3ICsxMDQsOSBAQCBjbGFzcyBXZWJPcGVu
UGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5OwogY2xhc3MgV2ViUGFnZUdyb3VwOwogY2xhc3MgV2Vi
UHJvY2Vzc1Byb3h5OwogY2xhc3MgV2ViVVJMUmVxdWVzdDsKK2NsYXNzIFdlYlZpZGVvRnVsbFNj
cmVlbk1hbmFnZXI7CiBjbGFzcyBXZWJXaGVlbEV2ZW50OworY2xhc3MgV2ViVmlkZW9GdWxsU2Ny
ZWVuTWFuYWdlclByb3h5Owogc3RydWN0IEF0dHJpYnV0ZWRTdHJpbmc7CiBzdHJ1Y3QgRGljdGlv
bmFyeVBvcHVwSW5mbzsKIHN0cnVjdCBFZGl0b3JTdGF0ZTsKQEAgLTE5MCw2ICsxOTIsOCBAQCBw
dWJsaWM6CiAgICAgV2ViSW5zcGVjdG9yUHJveHkqIGluc3BlY3RvcigpOwogI2VuZGlmCiAKKyAg
ICBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHkqIHZpZGVvRnVsbFNjcmVlbk1hbmFnZXIo
KTsKKwogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICBXZWJGdWxsU2NyZWVuTWFuYWdl
clByb3h5KiBmdWxsU2NyZWVuTWFuYWdlcigpOwogI2VuZGlmCkBAIC03ODQsNiArNzg4LDggQEAg
cHJpdmF0ZToKICAgICBSZWZQdHI8V2ViSW5zcGVjdG9yUHJveHk+IG1faW5zcGVjdG9yOwogI2Vu
ZGlmCiAKKyAgICBSZWZQdHI8V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5PiBtX3ZpZGVv
RnVsbFNjcmVlbk1hbmFnZXI7CisKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgUmVm
UHRyPFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk+IG1fZnVsbFNjcmVlbk1hbmFnZXI7CiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCAzNjM0NTZiZDc3YTdhMWI4OTNjN2I2NzViZDM5NTUwNDAwMjhjM2Y3Li4zMDc2ODdi
NDc1ZWE5YjFmYTVlNzRmNTk3OWNlNTI0MWY5MWYzMThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC03OTUsMTAgKzc5NSwxNyBA
QAogCQlDNTc0QTU4MjEyRTY2NjgxMDAyREZFOTggLyogUGFzdGVib2FyZFR5cGVzLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzU3NEE1ODAxMkU2NjY4
MTAwMkRGRTk4IC8qIFBhc3RlYm9hcmRUeXBlcy5tbSAqLzsgfTsKIAkJQ0Q1QzY2QTAxMzRCOUQz
ODAwNEZFMkE4IC8qIEluamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q1QzY2OUUxMzRCOUQz
NjAwNEZFMkE4IC8qIEluamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuY3BwICovOyB9
OwogCQlDRDVDNjZBMTEzNEI5RDM4MDA0RkUyQTggLyogSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNj
cmVlbkNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0Q1QzY2OUYxMzRCOUQzNzAwNEZFMkE4IC8qIEluamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3Jl
ZW5DbGllbnQuaCAqLzsgfTsKKwkJQ0Q1RDI4MTQxMzk0RENGNTAwNTMxOTVEIC8qIFdlYlZpZGVv
RnVsbFNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDhCMzMxNTEzOTRDQzUwMDBFRDk3QUIg
LyogV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsg
fTsKKwkJQ0Q1RDI4MTUxMzk0RENGQjAwNTMxOTVEIC8qIFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFn
ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQ0Q4QjMzMTMxMzk0Q0M1MDAwRUQ5N0FCIC8qIFdlYlZpZGVvRnVsbFNjcmVl
bk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OworCQlDRDVEMjgxQjEzOTRFMDMyMDA1
MzE5NUQgLyogV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5TWFjLmggaW4gQ29weUZpbGVz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENUQyODE3MTM5NEUwMzIwMDUz
MTk1RCAvKiBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHlNYWMuaCAqLzsgfTsKKwkJQ0Q1
RDI4MjkxMzk0RjMyMTAwNTMxOTVEIC8qIFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1h
Yy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENUQy
ODE4MTM5NEUwMzIwMDUzMTk1RCAvKiBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHlNYWMu
bW0gKi87IH07CiAJCUNENkY3NUY0MTMxQjY2RDAwMEQ2QjIxRSAvKiBXZWJGdWxsU2NyZWVuTWFu
YWdlclByb3h5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IENENzNCQTNFMTMxQTJFOEEwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5
LmNwcCAqLzsgfTsKIAkJQ0Q3M0JBNDcxMzFBQ0M5QTAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5N
YW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q3M0JBNDUxMzFBQ0M4ODAwRUVERUQyIC8qIFdlYkZ1bGxT
Y3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQlDRDczQkE0RTEz
MUFDREI3MDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q3M0JBNDgx
MzFBQ0Q4RTAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNw
cCAqLzsgfTsKIAkJQ0Q3M0JBNTMxMzFCNjQ1QjAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5h
Z2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENE
NzNCQTM3MTMxQTI5RkUwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlci5jcHAgKi87IH07
CisJCUNEOEIzMzExMTM5NENDMjAwMEVEOTdBQiAvKiBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2Vy
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOEIz
MzA0MTM5NEM2MDMwMEVEOTdBQiAvKiBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyLmNwcCAqLzsg
fTsKKwkJQ0Q4QjMzMTIxMzk0Q0MyQzAwRUQ5N0FCIC8qIFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFn
ZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDRDhCMzMwQjEzOTRDOERFMDBFRDk3QUIgLyogV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclBy
b3h5LmNwcCAqLzsgfTsKKwkJQ0Q4QjMzMUYxMzk0RDlCRDAwRUQ5N0FCIC8qIFdlYlZpZGVvRnVs
bFNjcmVlbk1hbmFnZXJNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDRDhCMzMxQzEzOTRENkExMDBFRDk3QUIgLyogV2ViVmlkZW9GdWxsU2NyZWVu
TWFuYWdlck1hYy5tbSAqLzsgfTsKIAkJQ0RDQTg1QzgxMzJBQkE0RTAwRTk2MURGIC8qIFdLRnVs
bFNjcmVlbldpbmRvd0NvbnRyb2xsZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDRENBODVDNjEzMkFCQTRFMDBFOTYxREYgLyogV0tGdWxsU2NyZWVu
V2luZG93Q29udHJvbGxlci5tbSAqLzsgfTsKIAkJQ0RDQTg1QzkxMzJBQkE0RTAwRTk2MURGIC8q
IFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQ0E4NUM3MTMyQUJBNEUwMEU5NjFERiAvKiBXS0Z1bGxT
Y3JlZW5XaW5kb3dDb250cm9sbGVyLmggKi87IH07CiAJCUNEQ0E4NUQ1MTMyQUMyQjMwMEU5NjFE
RiAvKiBJT0tpdC5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDRENBODVENDEzMkFDMkIzMDBFOTYxREYgLyogSU9LaXQuZnJhbWV3b3Jr
ICovOyB9OwpAQCAtOTA2LDYgKzkxMyw3IEBACiAJCQlmaWxlcyA9ICgKIAkJCQkxQTUwREI2NjEx
MEEzRDU3MDAwRDNGRTUgLyogV2ViUHJvY2Vzcy5hcHAgaW4gQ29weUZpbGVzICovLAogCQkJCUJD
REUwQUJGMTMyNzI3MDgwMDEyNTlGQiAvKiBQbHVnaW5Qcm9jZXNzLmFwcCBpbiBDb3B5RmlsZXMg
Ki8sCisJCQkJQ0Q1RDI4MUIxMzk0RTAzMjAwNTMxOTVEIC8qIFdlYlZpZGVvRnVsbFNjcmVlbk1h
bmFnZXJQcm94eU1hYy5oIGluIENvcHlGaWxlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVw
bG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTE3NTEsNiArMTc1OSw4IEBACiAJ
CUM1NzRBNTgwMTJFNjY2ODEwMDJERkU5OCAvKiBQYXN0ZWJvYXJkVHlwZXMubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQYXN0ZWJvYXJkVHlwZXMubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENUM2NjlFMTM0QjlEMzYwMDRGRTJBOCAvKiBJbmpl
Y3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDVDNjY5RjEzNEI5RDM3MDA0RkUyQTggLyog
SW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENUQyODE3MTM5NEUwMzIwMDUzMTk1RCAvKiBXZWJW
aWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHlNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5TWFjLmg7IHBhdGggPSBGdWxs
U2NyZWVuL21hYy9XZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHlNYWMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q1RDI4MTgxMzk0RTAzMjAwNTMxOTVEIC8qIFdlYlZpZGVv
RnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgbmFtZSA9IFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYy5tbTsgcGF0aCA9
IEZ1bGxTY3JlZW4vbWFjL1dlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYy5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q3M0JBMzcxMzFBMjlGRTAwRUVERUQyIC8qIFdl
YkZ1bGxTY3JlZW5NYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFt
ZSA9IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyLmNwcDsgcGF0aCA9IEZ1bGxTY3JlZW4vV2ViRnVsbFNj
cmVlbk1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDczQkEzODEz
MUEyOUZFMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gV2ViRnVsbFNjcmVlbk1hbmFnZXIuaDsgcGF0aCA9IEZ1bGxTY3Jl
ZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
Q0Q3M0JBMzkxMzFBMjlGRTAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyLm1lc3NhZ2Vz
LmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyLm1lc3NhZ2Vz
LmluOyBwYXRoID0gRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbjsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3NjEsNiArMTc3MSwxOCBAQAogCQlDRDcz
QkE0ODEzMUFDRDhFMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViRnVsbFNjcmVl
bk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlDRDczQkE0OTEzMUFDRDhFMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdl
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJGdWxsU2NyZWVuTWFuYWdl
ck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENzNCQTRBMTMxQUNE
OEYwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZXMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1lc3Nh
Z2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEOEIzMzA0MTM5NEM2MDMwMEVE
OTdBQiAvKiBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgbmFtZSA9IFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXIuY3BwOyBwYXRoID0g
RnVsbFNjcmVlbi9XZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQ0Q4QjMzMDUxMzk0QzYwMzAwRUQ5N0FCIC8qIFdlYlZpZGVvRnVsbFNj
cmVlbk1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViVmlkZW9G
dWxsU2NyZWVuTWFuYWdlci5oOyBwYXRoID0gRnVsbFNjcmVlbi9XZWJWaWRlb0Z1bGxTY3JlZW5N
YW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEOEIzMzA2MTM5NEM2MDMw
MEVEOTdBQiAvKiBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgbmFtZSA9IFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW47IHBh
dGggPSBGdWxsU2NyZWVuL1dlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW47IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEOEIzMzBCMTM5NEM4REUwMEVEOTdBQiAvKiBX
ZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBuYW1lID0gV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5LmNwcDsgcGF0aCA9
IEZ1bGxTY3JlZW4vV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q4QjMzMEMxMzk0QzhERTAwRUQ5N0FCIC8qIFdlYlZpZGVv
RnVsbFNjcmVlbk1hbmFnZXJQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHkuaDsgcGF0aCA9IEZ1bGxTY3JlZW4vV2Vi
VmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUNEOEIzMzBEMTM5NEM4REUwMEVEOTdBQiAvKiBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2Vy
UHJveHkubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gV2ViVmlkZW9GdWxsU2Ny
ZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOyBwYXRoID0gRnVsbFNjcmVlbi9XZWJWaWRlb0Z1
bGxTY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUNEOEIzMzEzMTM5NENDNTAwMEVEOTdBQiAvKiBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5h
Z2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlDRDhCMzMxNDEzOTRDQzUwMDBFRDk3QUIgLyogV2ViVmlk
ZW9GdWxsU2NyZWVuTWFuYWdlck1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlDRDhCMzMxNTEzOTRDQzUwMDBFRDk3QUIgLyogV2ViVmlkZW9GdWxs
U2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VS
ZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEOEIzMzE2MTM5NEND
NTAwMEVEOTdBQiAvKiBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2Vy
UHJveHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDhCMzMxQjEz
OTRENkExMDBFRDk3QUIgLyogV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlck1hYy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyTWFjLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEOEIzMzFDMTM5NEQ2QTEwMEVEOTdBQiAv
KiBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlck1hYy5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RDQTg1QzYxMzJBQkE0RTAwRTk2MURGIC8qIFdLRnVs
bFNjcmVlbldpbmRvd0NvbnRyb2xsZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlDRENBODVDNzEzMkFCQTRFMDBFOTYxREYgLyogV0tGdWxsU2NyZWVu
V2luZG93Q29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0Z1
bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUNEQ0E4NUQ0MTMyQUMyQjMwMEU5NjFERiAvKiBJT0tpdC5mcmFtZXdvcmsgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsg
bmFtZSA9IElPS2l0LmZyYW1ld29yazsgcGF0aCA9IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtz
L0lPS2l0LmZyYW1ld29yazsgc291cmNlVHJlZSA9ICI8YWJzb2x1dGU+IjsgfTsKQEAgLTI1OTMs
NiArMjYxNSw3IEBACiAJCUJDMDMyREMzMTBGNDM4MjYwMDU4QzE1QSAvKiBVSVByb2Nlc3MgKi8g
PSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCUNEOEIzMzBBMTM5
NEM4QzYwMEVEOTdBQiAvKiBGdWxsU2NyZWVuICovLAogCQkJCUJDMDMyREM0MTBGNDM4N0MwMDU4
QzE1QSAvKiBBUEkgKi8sCiAJCQkJNTEyRjU4OEQxMkE4ODM2RjAwNjI5NTMwIC8qIEF1dGhlbnRp
Y2F0aW9uICovLAogCQkJCTUxQjMwMDREMTI1MjlDRjUwMDBCNUNBMCAvKiBjZiAqLywKQEAgLTMy
NzEsNiArMzI5NCwxMCBAQAogCQlDMENFNzI5RDEyNDdFNzFEMDBCQzBFQzQgLyogRGVyaXZlZCBT
b3VyY2VzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlD
RDhCMzMxMzEzOTRDQzUwMDBFRDk3QUIgLyogV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlck1lc3Nh
Z2VSZWNlaXZlci5jcHAgKi8sCisJCQkJQ0Q4QjMzMTQxMzk0Q0M1MDAwRUQ5N0FCIC8qIFdlYlZp
ZGVvRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdlcy5oICovLAorCQkJCUNEOEIzMzE1MTM5NENDNTAw
MEVEOTdBQiAvKiBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIu
Y3BwICovLAorCQkJCUNEOEIzMzE2MTM5NENDNTAwMEVEOTdBQiAvKiBXZWJWaWRlb0Z1bGxTY3Jl
ZW5NYW5hZ2VyUHJveHlNZXNzYWdlcy5oICovLAogCQkJCTFBNjQyMzA2MTJERDA5RUIwMENBQUUy
QyAvKiBEcmF3aW5nQXJlYVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQkxQTY0MjMw
NzEyREQwOUVCMDBDQUFFMkMgLyogRHJhd2luZ0FyZWFQcm94eU1lc3NhZ2VzLmggKi8sCiAJCQkJ
NTEyRjU4QTAxMkE4ODNBRDAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0aW9uTWFuYWdlck1lc3NhZ2VS
ZWNlaXZlci5jcHAgKi8sCkBAIC0zMzcwLDkgKzMzOTcsMjEgQEAKIAkJCXBhdGggPSB3ZWJraXQy
OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJQ0Q1RDI4MTYxMzk0RTAxMzAw
NTMxOTVEIC8qIG1hYyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAo
CisJCQkJQ0Q1RDI4MTcxMzk0RTAzMjAwNTMxOTVEIC8qIFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFn
ZXJQcm94eU1hYy5oICovLAorCQkJCUNENUQyODE4MTM5NEUwMzIwMDUzMTk1RCAvKiBXZWJWaWRl
b0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHlNYWMubW0gKi8sCisJCQkpOworCQkJbmFtZSA9IG1hYzsK
KwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCUNENzNCQTNEMTMxQTJBMjEwMEVF
REVEMiAvKiBGdWxsU2NyZWVuICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJl
biA9ICgKKwkJCQlDRDhCMzMwNDEzOTRDNjAzMDBFRDk3QUIgLyogV2ViVmlkZW9GdWxsU2NyZWVu
TWFuYWdlci5jcHAgKi8sCisJCQkJQ0Q4QjMzMDUxMzk0QzYwMzAwRUQ5N0FCIC8qIFdlYlZpZGVv
RnVsbFNjcmVlbk1hbmFnZXIuaCAqLywKKwkJCQlDRDhCMzMwNjEzOTRDNjAzMDBFRDk3QUIgLyog
V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbiAqLywKIAkJCQlDRENBODVFNDEz
MkFEMzMwMDBFOTYxREYgLyogbWFjICovLAogCQkJCUNENzNCQTM3MTMxQTI5RkUwMEVFREVEMiAv
KiBXZWJGdWxsU2NyZWVuTWFuYWdlci5jcHAgKi8sCiAJCQkJQ0Q3M0JBMzgxMzFBMjlGRTAwRUVE
RUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyLmggKi8sCkBAIC0zMzgxLDkgKzM0MjAsMjIgQEAK
IAkJCW5hbWUgPSBGdWxsU2NyZWVuOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsK
KwkJQ0Q4QjMzMEExMzk0QzhDNjAwRUQ5N0FCIC8qIEZ1bGxTY3JlZW4gKi8gPSB7CisJCQlpc2Eg
PSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUNENUQyODE2MTM5NEUwMTMwMDUzMTk1
RCAvKiBtYWMgKi8sCisJCQkJQ0Q4QjMzMEIxMzk0QzhERTAwRUQ5N0FCIC8qIFdlYlZpZGVvRnVs
bFNjcmVlbk1hbmFnZXJQcm94eS5jcHAgKi8sCisJCQkJQ0Q4QjMzMEMxMzk0QzhERTAwRUQ5N0FC
IC8qIFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5oICovLAorCQkJCUNEOEIzMzBEMTM5
NEM4REUwMEVEOTdBQiAvKiBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMu
aW4gKi8sCisJCQkpOworCQkJbmFtZSA9IEZ1bGxTY3JlZW47CisJCQlzb3VyY2VUcmVlID0gIjxn
cm91cD4iOworCQl9OwogCQlDRENBODVFNDEzMkFEMzMwMDBFOTYxREYgLyogbWFjICovID0gewog
CQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlDRDhCMzMxQjEzOTRENkEx
MDBFRDk3QUIgLyogV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlck1hYy5oICovLAorCQkJCUNEOEIz
MzFDMTM5NEQ2QTEwMEVEOTdBQiAvKiBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyTWFjLm1tICov
LAogCQkJCUNEQ0E4NUU1MTMyQUQzMzAwMEU5NjFERiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlck1h
Yy5oICovLAogCQkJCUNEQ0E4NUU2MTMyQUQzMzAwMEU5NjFERiAvKiBXZWJGdWxsU2NyZWVuTWFu
YWdlck1hYy5tbSAqLywKIAkJCSk7CkBAIC0zOTI2LDYgKzM5NzgsOSBAQAogLyogQmVnaW4gUEJY
UHJvamVjdCBzZWN0aW9uICovCiAJCTA4NjdENjkwRkU4NDAyOEZDMDJBQUMwNyAvKiBQcm9qZWN0
IG9iamVjdCAqLyA9IHsKIAkJCWlzYSA9IFBCWFByb2plY3Q7CisJCQlhdHRyaWJ1dGVzID0gewor
CQkJCUxhc3RVcGdyYWRlQ2hlY2sgPSAwNDEwOworCQkJfTsKIAkJCWJ1aWxkQ29uZmlndXJhdGlv
bkxpc3QgPSAxREVCOTFCMTA4NzMzREE1MDAxMEU5Q0QgLyogQnVpbGQgY29uZmlndXJhdGlvbiBs
aXN0IGZvciBQQlhQcm9qZWN0ICJXZWJLaXQyIiAqLzsKIAkJCWNvbXBhdGliaWxpdHlWZXJzaW9u
ID0gIlhjb2RlIDMuMSI7CiAJCQlkZXZlbG9wbWVudFJlZ2lvbiA9IEVuZ2xpc2g7CkBAIC00NDg1
LDYgKzQ1NDAsMTIgQEAKIAkJCQk1MTJERjZGRTEzOEMyNTQ2MDBBMjJGQzYgLyogU2VjS2V5Y2hh
aW5JdGVtUmVxdWVzdERhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTEyREY3MDAxMzhDMjU0
NjAwQTIyRkM2IC8qIFNlY0tleWNoYWluSXRlbVJlc3BvbnNlRGF0YS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk1MTJERjcwQTEzOEMyNkM3MDBBMjJGQzYgLyogS2V5Y2hhaW5BdHRyaWJ1dGUuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJQ0Q4QjMzMTExMzk0Q0MyMDAwRUQ5N0FCIC8qIFdlYlZpZGVv
RnVsbFNjcmVlbk1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0Q4QjMzMTIxMzk0Q0My
QzAwRUQ5N0FCIC8qIFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQlDRDhCMzMxRjEzOTREOUJEMDBFRDk3QUIgLyogV2ViVmlkZW9GdWxsU2NyZWVu
TWFuYWdlck1hYy5tbSBpbiBTb3VyY2VzICovLAorCQkJCUNENUQyODE0MTM5NERDRjUwMDUzMTk1
RCAvKiBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJQ0Q1RDI4MTUxMzk0RENGQjAwNTMxOTVEIC8qIFdlYlZpZGVvRnVs
bFNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0Q1
RDI4MjkxMzk0RjMyMTAwNTMxOTVEIC8qIFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1h
Yy5tbSBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHBy
b2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9GdWxsU2NyZWVuL1dlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXIuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjJlYWIyMTllMGNhMTcyMGJjMTQ2YzYwY2I3NDBmNDU1NmYyNWJiMjUKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViVmlk
ZW9GdWxsU2NyZWVuTWFuYWdlci5jcHAKQEAgLTAsMCArMSwyNDEgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXIuaCIK
KworI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJNZXNzYWdlSUQuaCIKKyNpbmNs
dWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisjaW5j
bHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgIldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQ
cm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9IVE1MTWVkaWFFbGVtZW50Lmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9UaW1lci5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFZpZGVvRXZlbnRMaXN0ZW5lciA6IHB1YmxpYyBX
ZWJDb3JlOjpFdmVudExpc3RlbmVyIHsKK3B1YmxpYzoKKyAgICB0eXBlZGVmIHZvaWQoV2ViVmlk
ZW9GdWxsU2NyZWVuTWFuYWdlcjo6Kkxpc3RlbmVyQ2FsbGJhY2spKCk7CisgICAgc3RhdGljIFBh
c3NSZWZQdHI8VmlkZW9FdmVudExpc3RlbmVyPiBjcmVhdGUoV2ViVmlkZW9GdWxsU2NyZWVuTWFu
YWdlciosIExpc3RlbmVyQ2FsbGJhY2spOworICAgIHZpcnR1YWwgYm9vbCBvcGVyYXRvcj09KGNv
bnN0IFdlYkNvcmU6OkV2ZW50TGlzdGVuZXImKTsKKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRXZl
bnQoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFdlYkNvcmU6OkV2ZW50Kik7CisK
K3ByaXZhdGU6CisgICAgVmlkZW9FdmVudExpc3RlbmVyKFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFn
ZXIqLCBMaXN0ZW5lckNhbGxiYWNrKTsKKyAgICBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyKiBt
X21hbmFnZXI7CisgICAgTGlzdGVuZXJDYWxsYmFjayBtX2NhbGxiYWNrOworfTsKKworVmlkZW9F
dmVudExpc3RlbmVyOjpWaWRlb0V2ZW50TGlzdGVuZXIoV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdl
ciogbWFuYWdlciwgTGlzdGVuZXJDYWxsYmFjayBjYWxsYmFjaykKKyAgICA6IEV2ZW50TGlzdGVu
ZXIoQ1BQRXZlbnRMaXN0ZW5lclR5cGUpCisgICAgLCBtX21hbmFnZXIobWFuYWdlcikKKyAgICAs
IG1fY2FsbGJhY2soY2FsbGJhY2spCit7Cit9CisKK1Bhc3NSZWZQdHI8VmlkZW9FdmVudExpc3Rl
bmVyPiBWaWRlb0V2ZW50TGlzdGVuZXI6OmNyZWF0ZShXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2Vy
KiBtYW5hZ2VyLCBMaXN0ZW5lckNhbGxiYWNrIGNhbGxiYWNrKQoreworICAgIHJldHVybiBhZG9w
dFJlZihuZXcgVmlkZW9FdmVudExpc3RlbmVyKG1hbmFnZXIsIGNhbGxiYWNrKSk7Cit9CisKK2Jv
b2wgVmlkZW9FdmVudExpc3RlbmVyOjpvcGVyYXRvcj09KGNvbnN0IEV2ZW50TGlzdGVuZXImIGxp
c3RlbmVyKQoreworICAgIHJldHVybiB0aGlzID09ICZsaXN0ZW5lcjsKK30KKwordm9pZCBWaWRl
b0V2ZW50TGlzdGVuZXI6OmhhbmRsZUV2ZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQsIEV2ZW50KiBldmVudCkKK3sKKyAgICAobV9tYW5hZ2VyLT4qbV9jYWxsYmFjaykoKTsKK30K
KworV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlcjo6V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlcihX
ZWJQYWdlKiBwYWdlKQorICAgIDogbV9wYWdlKHBhZ2UpCisgICAgLCBtX3RpbWVMaXN0ZW5lcihW
aWRlb0V2ZW50TGlzdGVuZXI6OmNyZWF0ZSh0aGlzLCAmV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdl
cjo6dGltZVVwZGF0ZSkpCisgICAgLCBtX2NhblBsYXlMaXN0ZW5lcihWaWRlb0V2ZW50TGlzdGVu
ZXI6OmNyZWF0ZSh0aGlzLCAmV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlcjo6Y2FuUGxheVVwZGF0
ZSkpCisgICAgLCBtX2R1cmF0aW9uTGlzdGVuZXIoVmlkZW9FdmVudExpc3RlbmVyOjpjcmVhdGUo
dGhpcywgJldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXI6OmR1cmF0aW9uVXBkYXRlKSkKKyAgICAs
IG1fdm9sdW1lTGlzdGVuZXIoVmlkZW9FdmVudExpc3RlbmVyOjpjcmVhdGUodGhpcywgJldlYlZp
ZGVvRnVsbFNjcmVlbk1hbmFnZXI6OnZvbHVtZVVwZGF0ZSkpCit7Cit9CisKKworV2ViVmlkZW9G
dWxsU2NyZWVuTWFuYWdlcjo6fldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXIoKQoreworICAgIHNl
dE1lZGlhRWxlbWVudCgwKTsKK30KKworV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudCogV2ViVmlk
ZW9GdWxsU2NyZWVuTWFuYWdlcjo6bWVkaWFFbGVtZW50KCkKK3sKKyAgICByZXR1cm4gbV9tZWRp
YUVsZW1lbnQuZ2V0KCk7Cit9CisKK3ZvaWQgV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlcjo6c2V0
TWVkaWFFbGVtZW50KFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWxlbWVudCkKK3sK
KyAgICBpZiAobWVkaWFFbGVtZW50ID09IG1fbWVkaWFFbGVtZW50KQorICAgICAgICByZXR1cm47
CisKKyAgICBXZWJDb3JlOjpFdmVudE5hbWVzJiBldmVudE5hbWVzID0gV2ViQ29yZTo6ZXZlbnRO
YW1lcygpOworCisgICAgaWYgKG1fbWVkaWFFbGVtZW50KSB7CisgICAgICAgIG1fbWVkaWFFbGVt
ZW50LT5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMucGxheUV2ZW50LCAgbV9jYW5QbGF5
TGlzdGVuZXIuZ2V0KCksIHRydWUpOworICAgICAgICBtX21lZGlhRWxlbWVudC0+cmVtb3ZlRXZl
bnRMaXN0ZW5lcihldmVudE5hbWVzLnBhdXNlRXZlbnQsIG1fY2FuUGxheUxpc3RlbmVyLmdldCgp
LCB0cnVlKTsKKyAgICAgICAgbV9tZWRpYUVsZW1lbnQtPnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZl
bnROYW1lcy5lbmRlZEV2ZW50LCBtX2NhblBsYXlMaXN0ZW5lci5nZXQoKSwgdHJ1ZSk7CisgICAg
ICAgIG1fbWVkaWFFbGVtZW50LT5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMudGltZXVw
ZGF0ZUV2ZW50LCBtX3RpbWVMaXN0ZW5lci5nZXQoKSwgdHJ1ZSk7CisgICAgICAgIG1fbWVkaWFF
bGVtZW50LT5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMuZHVyYXRpb25jaGFuZ2VFdmVu
dCwgbV9kdXJhdGlvbkxpc3RlbmVyLmdldCgpLCB0cnVlKTsKKyAgICAgICAgbV9tZWRpYUVsZW1l
bnQtPnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcy52b2x1bWVjaGFuZ2VFdmVudCwgbV92
b2x1bWVMaXN0ZW5lci5nZXQoKSwgdHJ1ZSk7CisgICAgfQorCisgICAgbV9tZWRpYUVsZW1lbnQg
PSBtZWRpYUVsZW1lbnQ7CisKKyAgICBpZiAobV9tZWRpYUVsZW1lbnQpIHsKKyAgICAgICAgbV9t
ZWRpYUVsZW1lbnQtPmFkZEV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcy5wbGF5RXZlbnQsICBtX2Nh
blBsYXlMaXN0ZW5lciwgdHJ1ZSk7CisgICAgICAgIG1fbWVkaWFFbGVtZW50LT5hZGRFdmVudExp
c3RlbmVyKGV2ZW50TmFtZXMucGF1c2VFdmVudCwgbV9jYW5QbGF5TGlzdGVuZXIsIHRydWUpOwor
ICAgICAgICBtX21lZGlhRWxlbWVudC0+YWRkRXZlbnRMaXN0ZW5lcihldmVudE5hbWVzLmVuZGVk
RXZlbnQsIG1fY2FuUGxheUxpc3RlbmVyLCB0cnVlKTsKKyAgICAgICAgbV9tZWRpYUVsZW1lbnQt
PmFkZEV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcy50aW1ldXBkYXRlRXZlbnQsIG1fdGltZUxpc3Rl
bmVyLmdldCgpLCB0cnVlKTsKKyAgICAgICAgbV9tZWRpYUVsZW1lbnQtPmFkZEV2ZW50TGlzdGVu
ZXIoZXZlbnROYW1lcy5kdXJhdGlvbmNoYW5nZUV2ZW50LCBtX2R1cmF0aW9uTGlzdGVuZXIuZ2V0
KCksIHRydWUpOworICAgICAgICBtX21lZGlhRWxlbWVudC0+YWRkRXZlbnRMaXN0ZW5lcihldmVu
dE5hbWVzLnZvbHVtZWNoYW5nZUV2ZW50LCBtX3ZvbHVtZUxpc3RlbmVyLmdldCgpLCB0cnVlKTsK
KworICAgICAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFn
ZXJQcm94eTo6VGltZVVwZGF0ZShtX21lZGlhRWxlbWVudC0+Y3VycmVudFRpbWUoKSkpOworICAg
ICAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94
eTo6Q2FuUGxheVVwZGF0ZShtX21lZGlhRWxlbWVudC0+Y2FuUGxheSgpKSk7CisgICAgICAgIG1f
cGFnZS0+c2VuZChNZXNzYWdlczo6V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5OjpEdXJh
dGlvblVwZGF0ZShtX21lZGlhRWxlbWVudC0+ZHVyYXRpb24oKSkpOworICAgICAgICBtX3BhZ2Ut
PnNlbmQoTWVzc2FnZXM6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6TXV0ZVVwZGF0
ZShtX21lZGlhRWxlbWVudC0+bXV0ZWQoKSkpOworICAgICAgICBtX3BhZ2UtPnNlbmQoTWVzc2Fn
ZXM6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6Vm9sdW1lVXBkYXRlKG1fbWVkaWFF
bGVtZW50LT52b2x1bWUoKSkpOworICAgIH0KK30KKwordm9pZCBXZWJWaWRlb0Z1bGxTY3JlZW5N
YW5hZ2VyOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9u
LCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIq
IGFyZ3VtZW50cykKK3sKKyAgICBkaWRSZWNlaXZlV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlck1l
c3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworfQorCit2b2lkIFdlYlZp
ZGVvRnVsbFNjcmVlbk1hbmFnZXI6OmVudGVyRnVsbFNjcmVlbigpCit7CisgICAgbV9wYWdlLT5z
ZW5kU3luYyhNZXNzYWdlczo6V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5OjpNZWRpYUVs
ZW1lbnRTY3JlZW5SZWN0VXBkYXRlKG1fbWVkaWFFbGVtZW50LT5zY3JlZW5SZWN0KCkpLCBNZXNz
YWdlczo6V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5OjpFbnRlckZ1bGxTY3JlZW46OlJl
cGx5KCkpOworICAgIHNldFVwTGF5ZXJDbGllbnQoKTsKKyAgICBtX3BhZ2UtPnNlbmRTeW5jKE1l
c3NhZ2VzOjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OkVudGVyRnVsbFNjcmVlbigp
LCBNZXNzYWdlczo6V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5OjpFbnRlckZ1bGxTY3Jl
ZW46OlJlcGx5KCkpOworfQorCit2b2lkIFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXI6OmV4aXRG
dWxsU2NyZWVuKCkKK3sKKyAgICBtX3BhZ2UtPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1
bGxTY3JlZW5NYW5hZ2VyUHJveHk6Ok1lZGlhRWxlbWVudFNjcmVlblJlY3RVcGRhdGUobV9tZWRp
YUVsZW1lbnQtPnNjcmVlblJlY3QoKSksIE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5h
Z2VyUHJveHk6OkVudGVyRnVsbFNjcmVlbjo6UmVwbHkoKSk7CisgICAgbV9wYWdlLT5zZW5kU3lu
YyhNZXNzYWdlczo6V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5OjpFeGl0RnVsbFNjcmVl
bigpLCBNZXNzYWdlczo6V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5OjpFeGl0RnVsbFNj
cmVlbjo6UmVwbHkoKSk7Cit9CisKK0ludFJlY3QgV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlcjo6
Z2V0RnVsbFNjcmVlblJlY3QoKQoreworICAgIEludFJlY3QgcmVjdDsKKyAgICBtX3BhZ2UtPnNl
bmRTeW5jKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OkdldEZ1bGxT
Y3JlZW5SZWN0KCksIE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHk6Okdl
dEZ1bGxTY3JlZW5SZWN0OjpSZXBseShyZWN0KSk7CisgICAgcmV0dXJuIHJlY3Q7Cit9CisKK3Zv
aWQgV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlcjo6ZXhpdEZ1bGxTY3JlZW5Db21wbGV0ZWQoKQor
eworICAgIHRlYXJEb3duTGF5ZXJDbGllbnQoKTsKK30KKwordm9pZCBXZWJWaWRlb0Z1bGxTY3Jl
ZW5NYW5hZ2VyOjplbnRlckZ1bGxTY3JlZW5Db21wbGV0ZWQoKQoreworfQorCit2b2lkIFdlYlZp
ZGVvRnVsbFNjcmVlbk1hbmFnZXI6OnBsYXkoKQoreworICAgIEFTU0VSVChtX21lZGlhRWxlbWVu
dCk7CisgICAgbV9tZWRpYUVsZW1lbnQtPnBsYXkobV9tZWRpYUVsZW1lbnQtPnByb2Nlc3NpbmdV
c2VyR2VzdHVyZSgpKTsKK30KKwordm9pZCBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyOjpwYXVz
ZSgpCit7CisgICAgQVNTRVJUKG1fbWVkaWFFbGVtZW50KTsKKyAgICBtX21lZGlhRWxlbWVudC0+
cGF1c2UobV9tZWRpYUVsZW1lbnQtPnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpKTsKK30KKwordm9p
ZCBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyOjpzZXRWb2x1bWUoZmxvYXQgdm9sdW1lKQorewor
ICAgIEFTU0VSVChtX21lZGlhRWxlbWVudCk7CisgICAgRXhjZXB0aW9uQ29kZSBjb2RlOworICAg
IG1fbWVkaWFFbGVtZW50LT5zZXRWb2x1bWUodm9sdW1lLCBjb2RlKTsKK30KKwordm9pZCBXZWJW
aWRlb0Z1bGxTY3JlZW5NYW5hZ2VyOjpyZXR1cm5Ub1JlYWxUaW1lKCkKK3sKKyAgICBtX21lZGlh
RWxlbWVudC0+cmV0dXJuVG9SZWFsdGltZSgpOworfQorCit2b2lkIFdlYlZpZGVvRnVsbFNjcmVl
bk1hbmFnZXI6OnJld2luZChmbG9hdCBkZWx0YSkKK3sKKyAgICBtX21lZGlhRWxlbWVudC0+cmV3
aW5kKGRlbHRhKTsKK30KKwordm9pZCBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyOjpyZXF1ZXN0
RXhpdEZ1bGxTY3JlZW4oKQoreworICAgIGlmIChtX21lZGlhRWxlbWVudC0+aXNGdWxsc2NyZWVu
KCkpCisgICAgICAgIG1fbWVkaWFFbGVtZW50LT5leGl0RnVsbHNjcmVlbigpOworfQorCit2b2lk
IFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXI6OmJlZ2luU2NydWJiaW5nKCkKK3sKKyAgICBtX21l
ZGlhRWxlbWVudC0+YmVnaW5TY3J1YmJpbmcoKTsKK30KKwordm9pZCBXZWJWaWRlb0Z1bGxTY3Jl
ZW5NYW5hZ2VyOjplbmRTY3J1YmJpbmcoKQoreworICAgIG1fbWVkaWFFbGVtZW50LT5lbmRTY3J1
YmJpbmcoKTsKK30KKwordm9pZCBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyOjpzZXRDdXJyZW50
VGltZShmbG9hdCBjdXJyZW50VGltZSkKK3sKKyAgICBFeGNlcHRpb25Db2RlIGU7CisgICAgbV9t
ZWRpYUVsZW1lbnQtPnNldEN1cnJlbnRUaW1lKGN1cnJlbnRUaW1lLCBlKTsKK30KKwordm9pZCBX
ZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyOjpzZXRNdXRlZChib29sIG11dGVkKQoreworICAgIG1f
bWVkaWFFbGVtZW50LT5zZXRNdXRlZChtdXRlZCk7Cit9CisKK3ZvaWQgV2ViVmlkZW9GdWxsU2Ny
ZWVuTWFuYWdlcjo6dGltZVVwZGF0ZSgpCit7CisgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpX
ZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OlRpbWVVcGRhdGUobV9tZWRpYUVsZW1lbnQt
PmN1cnJlbnRUaW1lKCkpKTsKK30KKwordm9pZCBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyOjpj
YW5QbGF5VXBkYXRlKCkKK3sKKyAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlZpZGVvRnVs
bFNjcmVlbk1hbmFnZXJQcm94eTo6Q2FuUGxheVVwZGF0ZShtX21lZGlhRWxlbWVudC0+Y2FuUGxh
eSgpKSk7Cit9CisKK3ZvaWQgV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlcjo6ZHVyYXRpb25VcGRh
dGUoKQoreworICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViVmlkZW9GdWxsU2NyZWVuTWFu
YWdlclByb3h5OjpEdXJhdGlvblVwZGF0ZShtX21lZGlhRWxlbWVudC0+ZHVyYXRpb24oKSkpOwor
fQorCit2b2lkIFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXI6OnZvbHVtZVVwZGF0ZSgpCit7Cisg
ICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHk6
Ok11dGVVcGRhdGUobV9tZWRpYUVsZW1lbnQtPm11dGVkKCkpKTsKKyAgICBtX3BhZ2UtPnNlbmQo
TWVzc2FnZXM6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6Vm9sdW1lVXBkYXRlKG1f
bWVkaWFFbGVtZW50LT52b2x1bWUoKSkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJWaWRlb0Z1
bGxTY3JlZW5NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4v
V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE0ZjUyYThmMWZjN2FkMDk2
MWVhOTI1ODQwY2Y4OGJjNGYzNWY2MjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlci5oCkBAIC0w
LDAgKzEsMTA1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKyNpZm5kZWYgV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdl
cl9oCisjZGVmaW5lIFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJfaAorCisjaWYgRU5BQkxFKEZV
TExTQ1JFRU5fQVBJKQorCisjaW5jbHVkZSA8V2ViQ29yZS9JbnRSZWN0Lmg+CisjaW5jbHVkZSA8
d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBD
b3JlSVBDIHsKKyAgICBjbGFzcyBBcmd1bWVudERlY29kZXI7CisgICAgY2xhc3MgQ29ubmVjdGlv
bjsKKyAgICBjbGFzcyBNZXNzYWdlSUQ7Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICBj
bGFzcyBFdmVudExpc3RlbmVyOworICAgIGNsYXNzIEhUTUxNZWRpYUVsZW1lbnQ7Cit9CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCisgICAgY2xhc3MgV2ViUGFnZTsKKworICAgIGNsYXNzIFdlYlZp
ZGVvRnVsbFNjcmVlbk1hbmFnZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJWaWRlb0Z1bGxTY3Jl
ZW5NYW5hZ2VyPiB7CisgICAgcHVibGljOgorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJW
aWRlb0Z1bGxTY3JlZW5NYW5hZ2VyPiBjcmVhdGUoV2ViUGFnZSopOworICAgICAgICB2aXJ0dWFs
IH5XZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyKCk7CisKKyAgICAgICAgdm9pZCBkaWRSZWNlaXZl
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBD
OjpBcmd1bWVudERlY29kZXIqKTsKKworICAgICAgICB2b2lkIHNldE1lZGlhRWxlbWVudChXZWJD
b3JlOjpIVE1MTWVkaWFFbGVtZW50Kik7CisgICAgICAgIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1l
bnQqIG1lZGlhRWxlbWVudCgpOworCisgICAgICAgIHZvaWQgZW50ZXJGdWxsU2NyZWVuKCk7Cisg
ICAgICAgIHZvaWQgZXhpdEZ1bGxTY3JlZW4oKTsKKworICAgIHByb3RlY3RlZDoKKyAgICAgICAg
V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlcihXZWJQYWdlKik7CisKKyAgICAgICAgV2ViQ29yZTo6
SW50UmVjdCBnZXRGdWxsU2NyZWVuUmVjdCgpOworICAgICAgICB2b2lkIGV4aXRGdWxsU2NyZWVu
Q29tcGxldGVkKCk7CisgICAgICAgIHZvaWQgZW50ZXJGdWxsU2NyZWVuQ29tcGxldGVkKCk7Cisg
ICAgICAgIHZvaWQgcGxheSgpOworICAgICAgICB2b2lkIHBhdXNlKCk7CisgICAgICAgIHZvaWQg
c2V0Vm9sdW1lKGZsb2F0KTsKKyAgICAgICAgdm9pZCBiZWdpbkZhc3RGb3J3YXJkKCk7CisgICAg
ICAgIHZvaWQgZW5kRmFzdEZvcndhcmQoKTsKKyAgICAgICAgdm9pZCBiZWdpblJld2luZCgpOwor
ICAgICAgICB2b2lkIGVuZFJld2luZCgpOworICAgICAgICB2b2lkIHJldHVyblRvUmVhbFRpbWUo
KTsKKyAgICAgICAgdm9pZCByZXdpbmQoZmxvYXQgZGVsdGEpOworICAgICAgICB2b2lkIHJlcXVl
c3RFeGl0RnVsbFNjcmVlbigpOworICAgICAgICB2b2lkIGJlZ2luU2NydWJiaW5nKCk7CisgICAg
ICAgIHZvaWQgZW5kU2NydWJiaW5nKCk7CisgICAgICAgIHZvaWQgc2V0Q3VycmVudFRpbWUoZmxv
YXQpOworICAgICAgICB2b2lkIHNldE11dGVkKGJvb2wpOworCisgICAgICAgIHZvaWQgdGltZVVw
ZGF0ZSgpOworICAgICAgICB2b2lkIGNhblBsYXlVcGRhdGUoKTsKKyAgICAgICAgdm9pZCBkdXJh
dGlvblVwZGF0ZSgpOworICAgICAgICB2b2lkIHZvbHVtZVVwZGF0ZSgpOworCisgICAgICAgIHZp
cnR1YWwgdm9pZCBzZXRVcExheWVyQ2xpZW50KCkgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQg
dGVhckRvd25MYXllckNsaWVudCgpID0gMDsKKyAgICAgICAgdm9pZCBkaWRSZWNlaXZlV2ViVmlk
ZW9GdWxsU2NyZWVuTWFuYWdlck1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6
Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisKKyAgICAgICAgV2ViQ29y
ZTo6SW50UmVjdCBtX2luaXRpYWxGcmFtZTsKKyAgICAgICAgUmVmUHRyPFdlYlBhZ2U+IG1fcGFn
ZTsKKyAgICAgICAgUmVmUHRyPFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ+IG1fbWVkaWFFbGVt
ZW50OworICAgICAgICBSZWZQdHI8V2ViQ29yZTo6RXZlbnRMaXN0ZW5lcj4gbV90aW1lTGlzdGVu
ZXI7CisgICAgICAgIFJlZlB0cjxXZWJDb3JlOjpFdmVudExpc3RlbmVyPiBtX2NhblBsYXlMaXN0
ZW5lcjsKKyAgICAgICAgUmVmUHRyPFdlYkNvcmU6OkV2ZW50TGlzdGVuZXI+IG1fZHVyYXRpb25M
aXN0ZW5lcjsKKyAgICAgICAgUmVmUHRyPFdlYkNvcmU6OkV2ZW50TGlzdGVuZXI+IG1fdm9sdW1l
TGlzdGVuZXI7CisgICAgfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBF
TkFCTEUoRlVMTFNDUkVFTl9BUEkpCisKKyNlbmRpZiAvLyBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5h
Z2VyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9X
ZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9GdWxsU2NyZWVuL1dlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4K
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOGU0NjlmNmRhZjkyNWJlYzE3YjdlNTMzMjUwY2Y5YTM1YzNhYTVmYQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJW
aWRlb0Z1bGxTY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzggQEAKKyMgQ29w
eXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIwor
IyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworbWVzc2FnZXMgLT4gV2ViVmlkZW9G
dWxsU2NyZWVuTWFuYWdlciB7CisgICAgU2V0VXBMYXllckNsaWVudCgpCisgICAgVGVhckRvd25M
YXllckNsaWVudCgpCisgICAgRW50ZXJGdWxsU2NyZWVuQ29tcGxldGVkKCkKKyAgICBFeGl0RnVs
bFNjcmVlbkNvbXBsZXRlZCgpCisgICAgUGxheSgpCisgICAgUGF1c2UoKQorICAgIFNldFZvbHVt
ZShmbG9hdCB2b2x1bWUpCisgICAgUmV0dXJuVG9SZWFsVGltZSgpOworICAgIFJld2luZChmbG9h
dCBkZWx0YSk7CisgICAgUmVxdWVzdEV4aXRGdWxsU2NyZWVuKCk7CisgICAgQmVnaW5TY3J1YmJp
bmcoKQorICAgIEVuZFNjcnViYmluZygpCisgICAgU2V0Q3VycmVudFRpbWUoZmxvYXQgY3VycmVu
dFRpbWUpCisgICAgU2V0TXV0ZWQoYm9vbCBtdXRlZCkKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9tYWMvV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdl
ck1hYy5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL21hYy9XZWJWaWRl
b0Z1bGxTY3JlZW5NYW5hZ2VyTWFjLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2ZhZmE2NmMzNWMxNTRlMzY5OTEw
M2UzNDkxMDhhNTRiZWMzMjE3ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvRnVsbFNjcmVlbi9tYWMvV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlck1hYy5oCkBA
IC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYlZpZGVvRnVsbFNjcmVlbk1h
bmFnZXJNYWNfaAorI2RlZmluZSBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyTWFjX2gKKworI2lt
cG9ydCAiTGF5ZXJUcmVlQ29udGV4dC5oIgorI2ltcG9ydCAiV2ViVmlkZW9GdWxsU2NyZWVuTWFu
YWdlci5oIgorCisjaW1wb3J0IDxXZWJDb3JlL0dyYXBoaWNzTGF5ZXIuaD4KKyNpbXBvcnQgPFdl
YkNvcmUvSW50UmVjdC5oPgorI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorCit0eXBlZGVmIHN0
cnVjdCBfX1dLQ0FSZW1vdGVMYXllckNsaWVudFJlZiogV0tDQVJlbW90ZUxheWVyQ2xpZW50UmVm
OworT0JKQ19DTEFTUyBXZWJGdWxsU2NyZWVuTWFuYWdlckFuaW1hdGlvbkxpc3RlbmVyOworCitu
YW1lc3BhY2UgV2ViS2l0IHsKKyAgICAKKyAgICBjbGFzcyBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5h
Z2VyTWFjIDogcHVibGljIFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXIgeworICAgIHB1YmxpYzoK
KyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlck1hYz4g
Y3JlYXRlKFdlYlBhZ2UqKTsKKyAgICAgICAgCisgICAgcHJpdmF0ZToKKyAgICAgICAgV2ViVmlk
ZW9GdWxsU2NyZWVuTWFuYWdlck1hYyhXZWJQYWdlKik7CisgICAgICAgIHZpcnR1YWwgfldlYlZp
ZGVvRnVsbFNjcmVlbk1hbmFnZXJNYWMoKTsKKyAgICAgICAgCisgICAgICAgIHZpcnR1YWwgdm9p
ZCBzZXRVcExheWVyQ2xpZW50KCk7CisgICAgICAgIHZpcnR1YWwgdm9pZCB0ZWFyRG93bkxheWVy
Q2xpZW50KCk7CisgICAgICAgIAorICAgICAgICBMYXllclRyZWVDb250ZXh0IG1fbGF5ZXJUcmVl
Q29udGV4dDsKKyAgICAgICAgUmV0YWluUHRyPFdLQ0FSZW1vdGVMYXllckNsaWVudFJlZj4gbV9y
ZW1vdGVMYXllckNsaWVudDsKKyAgICB9OworICAgIAorfQorCisjZW5kaWYgLy8gV2ViVmlkZW9G
dWxsU2NyZWVuTWFuYWdlck1hY19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0Z1bGxTY3JlZW4vbWFjL1dlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJNYWMubW0gYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4vbWFjL1dlYlZpZGVvRnVsbFNjcmVlbk1h
bmFnZXJNYWMubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWYyY2Y2NWEyOTc1OWQwODI4NjRmMGUyZGY4NDVmZTEw
MGViMTA5NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVs
bFNjcmVlbi9tYWMvV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlck1hYy5tbQpAQCAtMCwwICsxLDEw
NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIldlYlZpZGVvRnVs
bFNjcmVlbk1hbmFnZXJNYWMuaCIKKworI2ltcG9ydCAiQ29ubmVjdGlvbi5oIgorI2ltcG9ydCAi
TGF5ZXJUcmVlQ29udGV4dC5oIgorI2ltcG9ydCAiTWVzc2FnZUlELmgiCisjaW1wb3J0ICJXZWJQ
YWdlLmgiCisjaW1wb3J0ICJXZWJQcm9jZXNzLmgiCisjaW1wb3J0ICJXZWJWaWRlb0Z1bGxTY3Jl
ZW5NYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgorI2ltcG9ydCA8UXVhcnR6Q29yZS9RdWFydHpDb3Jl
Lmg+CisjaW1wb3J0IDxXZWJDb3JlL0hUTUxNZWRpYUVsZW1lbnQuaD4KKyNpbXBvcnQgPFdlYktp
dFN5c3RlbUludGVyZmFjZS5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNw
YWNlIFdlYktpdCB7CisgICAgCitQYXNzUmVmUHRyPFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXI+
IFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXI6OmNyZWF0ZShXZWJQYWdlKiBwYWdlKQoreworICAg
IHJldHVybiBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyTWFjOjpjcmVhdGUocGFnZSk7Cit9CisK
K1Bhc3NSZWZQdHI8V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlck1hYz4gV2ViVmlkZW9GdWxsU2Ny
ZWVuTWFuYWdlck1hYzo6Y3JlYXRlKFdlYlBhZ2UqIHBhZ2UpCit7CisgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyTWFjKHBhZ2UpKTsKK30KKworV2ViVmlk
ZW9GdWxsU2NyZWVuTWFuYWdlck1hYzo6V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlck1hYyhXZWJQ
YWdlKiBwYWdlKQorICAgIDogV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlcihwYWdlKQoreworfQor
CitXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyTWFjOjp+V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdl
ck1hYygpCit7CisgICAgbV9wYWdlLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViVmlkZW9GdWxsU2Ny
ZWVuTWFuYWdlclByb3h5OjpFeGl0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoKSwgTWVzc2Fn
ZXM6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6RXhpdEFjY2VsZXJhdGVkQ29tcG9z
aXRpbmdNb2RlOjpSZXBseSgpKTsKK30KKwordm9pZCBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2Vy
TWFjOjpzZXRVcExheWVyQ2xpZW50KCkKK3sKKyAgICBpZiAoIW1fcmVtb3RlTGF5ZXJDbGllbnQp
IHsKKyAgICAgICAgbWFjaF9wb3J0X3Qgc2VydmVyUG9ydCA9IFdlYlByb2Nlc3M6OnNoYXJlZCgp
LmNvbXBvc2l0aW5nUmVuZGVyU2VydmVyUG9ydCgpOworICAgICAgICBtX3JlbW90ZUxheWVyQ2xp
ZW50ID0gV0tDQVJlbW90ZUxheWVyQ2xpZW50TWFrZVdpdGhTZXJ2ZXJQb3J0KHNlcnZlclBvcnQp
OworICAgICAgICAKKyAgICAgICAgUmV0YWluUHRyPENBTGF5ZXI+IHJvb3RMYXllcihBZG9wdE5T
LCBbW0NBTGF5ZXIgYWxsb2NdIGluaXRdKTsKKyAgICAgICAgV0tDQVJlbW90ZUxheWVyQ2xpZW50
U2V0TGF5ZXIobV9yZW1vdGVMYXllckNsaWVudC5nZXQoKSwgcm9vdExheWVyLmdldCgpKTsKKwor
ICAgICAgICBtX2xheWVyVHJlZUNvbnRleHQuY29udGV4dElEID0gV0tDQVJlbW90ZUxheWVyQ2xp
ZW50R2V0Q2xpZW50SWQobV9yZW1vdGVMYXllckNsaWVudC5nZXQoKSk7CisgICAgfQorCisgICAg
bV9wYWdlLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5
OjpFbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKG1fbGF5ZXJUcmVlQ29udGV4dCksIE1l
c3NhZ2VzOjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OkVudGVyQWNjZWxlcmF0ZWRD
b21wb3NpdGluZ01vZGU6OlJlcGx5KCkpOworCisgICAgQ0FMYXllciogcm9vdExheWVyID0gV0tD
QVJlbW90ZUxheWVyQ2xpZW50R2V0TGF5ZXIobV9yZW1vdGVMYXllckNsaWVudC5nZXQoKSk7Cisg
ICAgbV9tZWRpYUVsZW1lbnQtPnNldFBsYXRmb3JtTGF5ZXJTdG9sZW4odHJ1ZSk7CisgICAgQ0FM
YXllciogbWVkaWFMYXllciA9IG1fbWVkaWFFbGVtZW50LT5mdWxsU2NyZWVuTGF5ZXIoKTsKKyAg
ICBJbnRSZWN0IGRlc3RpbmF0aW9uUmVjdCA9IGdldEZ1bGxTY3JlZW5SZWN0KCk7CisgICAgQ0dS
ZWN0IGxheWVyQm91bmRzID0gQ0dSZWN0WmVybzsKKyAgICBsYXllckJvdW5kcy5zaXplID0gZGVz
dGluYXRpb25SZWN0LnNpemUoKTsKKworICAgIFtDQVRyYW5zYWN0aW9uIGJlZ2luXTsKKyAgICBb
Q0FUcmFuc2FjdGlvbiBzZXRWYWx1ZTpbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6WUVTXSBmb3JL
ZXk6a0NBVHJhbnNhY3Rpb25EaXNhYmxlQWN0aW9uc107CisgICAgW21lZGlhTGF5ZXIgc2V0Qm91
bmRzOmxheWVyQm91bmRzXTsKKyAgICBbcm9vdExheWVyIGFkZFN1YmxheWVyOm1lZGlhTGF5ZXJd
OworICAgIFtDQVRyYW5zYWN0aW9uIGNvbW1pdF07CisKKyAgICBbW05TTm90aWZpY2F0aW9uQ2Vu
dGVyIGRlZmF1bHRDZW50ZXJdIHBvc3ROb3RpZmljYXRpb25OYW1lOkAiV2ViS2l0TGF5ZXJIb3N0
Q2hhbmdlZCIgb2JqZWN0OnJvb3RMYXllciB1c2VySW5mbzpuaWxdOworfQorCit2b2lkIFdlYlZp
ZGVvRnVsbFNjcmVlbk1hbmFnZXJNYWM6OnRlYXJEb3duTGF5ZXJDbGllbnQoKQoreworICAgIGlm
ICghbV9yZW1vdGVMYXllckNsaWVudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgQ0FMYXllciog
cm9vdExheWVyID0gV0tDQVJlbW90ZUxheWVyQ2xpZW50R2V0TGF5ZXIobV9yZW1vdGVMYXllckNs
aWVudC5nZXQoKSk7CisgICAgW3Jvb3RMYXllciBzZXRTdWJsYXllcnM6bmlsXTsKKyAgICBtX21l
ZGlhRWxlbWVudC0+c2V0UGxhdGZvcm1MYXllclN0b2xlbihmYWxzZSk7CisKKyAgICBtX3BhZ2Ut
PnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OkV4aXRB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSgpLCBNZXNzYWdlczo6V2ViVmlkZW9GdWxsU2NyZWVu
TWFuYWdlclByb3h5OjpFeGl0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGU6OlJlcGx5KCkpOwor
ICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcG9zdE5vdGlmaWNhdGlv
bk5hbWU6QCJXZWJLaXRMYXllckhvc3RDaGFuZ2VkIiBvYmplY3Q6cm9vdExheWVyIHVzZXJJbmZv
Om5pbF07ICAgICAgICAgICAgCit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuY3BwCmluZGV4IDExZDgwYzQ4YjRhMTA0NDIwYWFiYTMyZmQ5YTU3YWE5NzRmMTU0
YzAuLjEyNzIzZmE0ZDU2MTBjODY5MjFkYzM2NmUwNzU2YjczZmNiYWNjY2EgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5jcHAKQEAgLTQ0LDExICs0NCwxMyBAQAogI2luY2x1ZGUgIldlYlByZWZlcmVu
Y2VzU3RvcmUuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiV2ViU2VhcmNo
UG9wdXBNZW51LmgiCisjaW5jbHVkZSAiV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlci5oIgogI2lu
Y2x1ZGUgPFdlYkNvcmUvRGF0YWJhc2VUcmFja2VyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GaWxl
Q2hvb3Nlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWUuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0ZyYW1lTG9hZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZVZpZXcuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL0hUTUxNZWRpYUVsZW1lbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0hUTUxOYW1l
cy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvSWNvbi5oPgpAQCAtNzM5LDYgKzc0MSw0MyBAQCB2b2lkIFdlYkNocm9tZUNs
aWVudDo6c2V0TGFzdFNldEN1cnNvclRvQ3VycmVudEN1cnNvcigpCiB7CiB9CiAjZW5kaWYKKyAg
ICAKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50OjpzdXBwb3J0c0Z1bGxzY3JlZW5Gb3JOb2RlKGNvbnN0
IFdlYkNvcmU6Ok5vZGUqIG5vZGUpCit7CisgICAgQVNTRVJUKG5vZGUpOworICAgIGlmICghbm9k
ZS0+aXNFbGVtZW50Tm9kZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8Y29uc3QgRWxlbWVudCo+KG5vZGUpLT5pc01lZGlhRWxlbWVudCgpOworfQor
Cit2b2lkIFdlYkNocm9tZUNsaWVudDo6ZW50ZXJGdWxsc2NyZWVuRm9yTm9kZShXZWJDb3JlOjpO
b2RlKiBub2RlKQoreworICAgIEFTU0VSVChub2RlKTsKKyAgICBpZiAoIW5vZGUtPmlzRWxlbWVu
dE5vZGUoKSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBz
dGF0aWNfY2FzdDxFbGVtZW50Kj4obm9kZSk7CisgICAgaWYgKCFlbGVtZW50LT5pc01lZGlhRWxl
bWVudCgpKQorICAgICAgICByZXR1cm47CisgICAgICAgIAorICAgIG1fcGFnZS0+dmlkZW9GdWxs
U2NyZWVuTWFuYWdlcigpLT5zZXRNZWRpYUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTE1lZGlhRWxl
bWVudCo+KG5vZGUpKTsKKyAgICBtX3BhZ2UtPnZpZGVvRnVsbFNjcmVlbk1hbmFnZXIoKS0+ZW50
ZXJGdWxsU2NyZWVuKCk7Cit9CisKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGl0RnVsbHNjcmVl
bkZvck5vZGUoV2ViQ29yZTo6Tm9kZSogbm9kZSkKK3sKKyAgICBBU1NFUlQobm9kZSk7CisgICAg
aWYgKCFub2RlLT5pc0VsZW1lbnROb2RlKCkpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBF
bGVtZW50KiBlbGVtZW50ID0gc3RhdGljX2Nhc3Q8RWxlbWVudCo+KG5vZGUpOworICAgIGlmICgh
ZWxlbWVudC0+aXNNZWRpYUVsZW1lbnQoKSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIG1f
cGFnZS0+dmlkZW9GdWxsU2NyZWVuTWFuYWdlcigpLT5zZXRNZWRpYUVsZW1lbnQoc3RhdGljX2Nh
c3Q8SFRNTE1lZGlhRWxlbWVudCo+KG5vZGUpKTsKKyAgICBtX3BhZ2UtPnZpZGVvRnVsbFNjcmVl
bk1hbmFnZXIoKS0+ZXhpdEZ1bGxTY3JlZW4oKTsKK30KIAogI2lmIEVOQUJMRShGVUxMU0NSRUVO
X0FQSSkKIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50
KGNvbnN0IFdlYkNvcmU6OkVsZW1lbnQqIGVsZW1lbnQsIGJvb2wgd2l0aEtleWJvYXJkKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmgKaW5kZXggMjA3OWM0NDNjNzlmMDQ2MmYyMzAzNGZiMGRlM2U0MzI1MDFl
MmY5Ni4uYjIzNmU3ZjFhYWZkNzA3MGU1MmY5ZWU5NTI2NThmY2UzZWE1NTgzYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5oCkBAIC0yMDcsNiArMjA3LDEwIEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2
b2lkIHNldExhc3RTZXRDdXJzb3JUb0N1cnJlbnRDdXJzb3IoKTsKICNlbmRpZgogCisgICAgdmly
dHVhbCBib29sIHN1cHBvcnRzRnVsbHNjcmVlbkZvck5vZGUoY29uc3QgV2ViQ29yZTo6Tm9kZSop
OworICAgIHZpcnR1YWwgdm9pZCBlbnRlckZ1bGxzY3JlZW5Gb3JOb2RlKFdlYkNvcmU6Ok5vZGUq
KTsKKyAgICB2aXJ0dWFsIHZvaWQgZXhpdEZ1bGxzY3JlZW5Gb3JOb2RlKFdlYkNvcmU6Ok5vZGUq
KTsKKwogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9y
dHNGdWxsU2NyZWVuRm9yRWxlbWVudChjb25zdCBXZWJDb3JlOjpFbGVtZW50KiwgYm9vbCB3aXRo
S2V5Ym9hcmQpOwogICAgIHZpcnR1YWwgdm9pZCBlbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdl
YkNvcmU6OkVsZW1lbnQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcAppbmRleCAzMmFjODc4ZTMyYjFjOGUxZjIwZmU4YTU3MjkzOTAxMDdiZDQxZjhj
Li5jMWQ3Mzc5YmQwZWMxOWI5M2NhOWNjMDNhZTVhZDFkNmRhODkwYTg3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC02OCw2ICs2OCw3IEBA
CiAjaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXNTdG9yZS5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3Mu
aCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlZp
ZGVvRnVsbFNjcmVlbk1hbmFnZXIuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9BUElDYXN0
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9BYnN0cmFjdERhdGFiYXNlLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9BcmNoaXZlUmVzb3VyY2UuaD4KQEAgLTQxNCw2ICs0MTUsMTAgQEAgdm9pZCBXZWJQYWdl
OjpjbG9zZSgpCiAgICAgbV9mdWxsU2NyZWVuTWFuYWdlciA9IDA7CiAjZW5kaWYKIAorI2lmIFBM
QVRGT1JNKE1BQykKKyAgICBtX3ZpZGVvRnVsbFNjcmVlbk1hbmFnZXIgPSAwOworI2VuZGlmCisK
ICAgICBpZiAobV9hY3RpdmVQb3B1cE1lbnUpIHsKICAgICAgICAgbV9hY3RpdmVQb3B1cE1lbnUt
PmRpc2Nvbm5lY3RGcm9tUGFnZSgpOwogICAgICAgICBtX2FjdGl2ZVBvcHVwTWVudSA9IDA7CkBA
IC0xNTgzLDYgKzE1ODgsMTMgQEAgV2ViSW5zcGVjdG9yKiBXZWJQYWdlOjppbnNwZWN0b3IoKQog
fQogI2VuZGlmCiAKK1dlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXIqIFdlYlBhZ2U6OnZpZGVvRnVs
bFNjcmVlbk1hbmFnZXIoKQoreworICAgIGlmICghbV92aWRlb0Z1bGxTY3JlZW5NYW5hZ2VyKQor
ICAgICAgICBtX3ZpZGVvRnVsbFNjcmVlbk1hbmFnZXIgPSBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5h
Z2VyOjpjcmVhdGUodGhpcyk7CisgICAgcmV0dXJuIG1fdmlkZW9GdWxsU2NyZWVuTWFuYWdlci5n
ZXQoKTsKK30KKwogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKIFdlYkZ1bGxTY3JlZW5NYW5h
Z2VyKiBXZWJQYWdlOjpmdWxsU2NyZWVuTWFuYWdlcigpCiB7CkBAIC0xOTk3LDYgKzIwMDksMTEg
QEAgdm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBj
b25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWcKICAgICB9CiAjZW5kaWYKIAorICAgIGlmIChtZXNz
YWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlcj4o
KSkgeworICAgICAgICB2aWRlb0Z1bGxTY3JlZW5NYW5hZ2VyKCktPmRpZFJlY2VpdmVNZXNzYWdl
KGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKwogICAgIGRpZFJlY2VpdmVXZWJQYWdlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQs
IGFyZ3VtZW50cyk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oCmluZGV4IDFhMjE5YzNmOWQwZWFhNDEwZDU0M2U3NWUwYTY1Y2Y5OGNiYjc1ZGQuLmM1
OGJhZWJmMTBiY2YxNGQ1Y2IwZmNmYzk2MmJmZWY4MjU2MGM5NmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMTA2LDYgKzEwNiw3IEBAIGNsYXNz
IFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyOwogY2xhc3MgV2ViUGFnZUdyb3VwUHJveHk7CiBj
bGFzcyBXZWJQb3B1cE1lbnU7CiBjbGFzcyBXZWJXaGVlbEV2ZW50OworY2xhc3MgV2ViVmlkZW9G
dWxsU2NyZWVuTWFuYWdlcjsKIHN0cnVjdCBBdHRyaWJ1dGVkU3RyaW5nOwogc3RydWN0IEVkaXRv
clN0YXRlOwogc3RydWN0IFByaW50SW5mbzsKQEAgLTQyNiw2ICs0MjcsMTAgQEAgcHVibGljOgog
CiAgICAgdm9pZCBjb250ZXh0TWVudVNob3dpbmcoKSB7IG1faXNTaG93aW5nQ29udGV4dE1lbnUg
PSB0cnVlOyB9CiAKKyNpZiBQTEFURk9STShNQUMpCisgICAgV2ViVmlkZW9GdWxsU2NyZWVuTWFu
YWdlciogdmlkZW9GdWxsU2NyZWVuTWFuYWdlcigpOworI2VuZGlmCisKIHByaXZhdGU6CiAgICAg
V2ViUGFnZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMm
KTsKIApAQCAtNjc2LDYgKzY4MSwxMSBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKFdJTikKICAg
ICBib29sIG1fZ2VzdHVyZVJlYWNoZWRTY3JvbGxpbmdMaW1pdDsKICNlbmRpZgorCisjaWYgUExB
VEZPUk0oTUFDKQorICAgIFJlZlB0cjxXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyPiBtX3ZpZGVv
RnVsbFNjcmVlbk1hbmFnZXI7CisjZW5kaWYKKwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>95660</attachid>
            <date>2011-06-01 14:18:43 -0700</date>
            <delta_ts>2012-01-30 15:27:34 -0800</delta_ts>
            <desc>[PATCH 1/4] Added new class: WebVideoFullScreenManager</desc>
            <filename>0001-Added-new-class-WebVideoFullScreenManager.patch</filename>
            <type>text/plain</type>
            <size>39974</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">RnJvbSA0MDczNjBkNDgzMzA2ZGQ5NjA3OTY0Yjk1ZDE5YjE1ODVjMmYxMDBlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKZXIgTm9ibGUgPGplci5ub2JsZUBhcHBsZS5jb20+CkRhdGU6
IFdlZCwgMSBKdW4gMjAxMSAxMzozNjowOSAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMS80XSBBZGRl
ZCBuZXcgY2xhc3M6IFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXIKClJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgoKSW1wbGVtZW50IHZpZGVvIGZ1bGwtc3JjZWVuIEFQSSBpbiBXZWJLaXQyCmh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MTg0OAoKV2ViVmlkZW9GdWxs
U2NyZWVuTWFuYWdlciBpcyByZXNwb25zaWJsZSBmb3IgY29tbXVuaWNhdGluZyB3aXRoIHRoZSBI
VE1MTWVkaWFFbGVtZW50CmFuZCBmb3Igc2V0dGluZyB1cCBhIGxheWVyIHRvIGhvc3QgdGhlIG1l
ZGlhIGVsZW1lbnQncyBwbGF0Zm9ybUxheWVyIGFjcm9zcyB0byB0aGUKVUlQcm9jZXNzLgoKKiBX
ZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlci5jcHA6IEFkZGVk
LgoKVmlkZW9FdmVudExpc3RlbmVyIGlzIG11Y2ggbGlrZSBNZWRpYUV2ZW50TGlzdGVuZXIgaW4g
V2ViQ29yZSwgYnV0IGl0IGlzIGludGVuZGVkIGZvcgpDKysgY2xpZW50cyBpbnN0ZWFkIG9mIE9i
akMgb25lcy4KKFdlYktpdDo6VmlkZW9FdmVudExpc3RlbmVyOjpWaWRlb0V2ZW50TGlzdGVuZXIp
OgooV2ViS2l0OjpWaWRlb0V2ZW50TGlzdGVuZXI6OmNyZWF0ZSk6CihXZWJLaXQ6OlZpZGVvRXZl
bnRMaXN0ZW5lcjo6b3BlcmF0b3I9PSk6CihXZWJLaXQ6OlZpZGVvRXZlbnRMaXN0ZW5lcjo6aGFu
ZGxlRXZlbnQpOgoKVGhlIGZvbGxvd2luZyBmdW5jdGlvbnMgY2FsbCB0aGUgZXF1aXZhbGVudCBm
dW5jdGlvbiBvbiBIVE1MTWVkaWFFbGVtZW50OgooV2ViS2l0OjpXZWJWaWRlb0Z1bGxTY3JlZW5N
YW5hZ2VyOjpwbGF5KToKKFdlYktpdDo6V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlcjo6cGF1c2Up
OgooV2ViS2l0OjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyOjpzZXRWb2x1bWUpOgooV2ViS2l0
OjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyOjpyZXR1cm5Ub1JlYWxUaW1lKToKKFdlYktpdDo6
V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlcjo6cmV3aW5kKToKKFdlYktpdDo6V2ViVmlkZW9GdWxs
U2NyZWVuTWFuYWdlcjo6cmVxdWVzdEV4aXRGdWxsU2NyZWVuKToKKFdlYktpdDo6V2ViVmlkZW9G
dWxsU2NyZWVuTWFuYWdlcjo6YmVnaW5TY3J1YmJpbmcpOgooV2ViS2l0OjpXZWJWaWRlb0Z1bGxT
Y3JlZW5NYW5hZ2VyOjplbmRTY3J1YmJpbmcpOgooV2ViS2l0OjpXZWJWaWRlb0Z1bGxTY3JlZW5N
YW5hZ2VyOjpzZXRDdXJyZW50VGltZSk6CihXZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFn
ZXI6OnNldE11dGVkKToKClRoZSBmb2xsb3dpbmcgZnVuY3Rpb25zIGFyZSBuZXcgRXZlbnRMaXN0
ZW5lciBjYWxsYmFja3M6CihXZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXI6OnRpbWVV
cGRhdGUpOgooV2ViS2l0OjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyOjpjYW5QbGF5VXBkYXRl
KToKKFdlYktpdDo6V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlcjo6ZHVyYXRpb25VcGRhdGUpOgoo
V2ViS2l0OjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyOjp2b2x1bWVVcGRhdGUpOgoKVGhlIGZv
bGxvd2luZyBmdW5jdGlvbnMgc2VuZCBtZXNzYWdlcyB0byB0aGUgVUlQcm9jZXNzLgooV2ViS2l0
OjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyOjplbnRlckZ1bGxTY3JlZW4pOgooV2ViS2l0OjpX
ZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyOjpleGl0RnVsbFNjcmVlbik6CihXZWJLaXQ6OldlYlZp
ZGVvRnVsbFNjcmVlbk1hbmFnZXI6OmdldEZ1bGxTY3JlZW5SZWN0KToKClRoZSByZXN0OgooV2Vi
S2l0OjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyOjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2Vy
KToKKFdlYktpdDo6V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlcjo6fldlYlZpZGVvRnVsbFNjcmVl
bk1hbmFnZXIpOgooV2ViS2l0OjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyOjptZWRpYUVsZW1l
bnQpOiBBY2Nlc3NvciBmb3IgbV9tZWRpYUVsZW1lbnQuCihXZWJLaXQ6OldlYlZpZGVvRnVsbFNj
cmVlbk1hbmFnZXI6OnNldE1lZGlhRWxlbWVudCk6IFNldCB1cCB0aGUgZXZlbnQgbGlzdGVuZXJz
IGZvciB0aGUKICAgIG5ldyBtZWRpYSBlbGVtZW50LCBhbmQgdGVhciBkb3duIHRoZSBvbmVzIGZv
ciB0aGUgb2xkIGVsZW1lbnQuCihXZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXI6OmRp
ZFJlY2VpdmVNZXNzYWdlKTogV2ViS2l0MiBib2lsZXJwbGF0ZS4KKFdlYktpdDo6V2ViVmlkZW9G
dWxsU2NyZWVuTWFuYWdlcjo6ZXhpdEZ1bGxTY3JlZW5Db21wbGV0ZWQpOiBUZWFyIGRvd24gdGhl
IGxheWVyIGhvc3QuCihXZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXI6OmVudGVyRnVs
bFNjcmVlbkNvbXBsZXRlZCk6IE5vLW9wLgoqIFdlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJWaWRl
b0Z1bGxTY3JlZW5NYW5hZ2VyLmg6IEFkZGVkLgoqIFdlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJW
aWRlb0Z1bGxTY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluOiBBZGRlZC4KClRoZSBXZWJWaWRlb0Z1
bGxTY3JlZW5NYW5hZ2VyTWFjIGNsYXNzIGRlYWxzIHdpdGggcG9ydCBzcGVjaWZpYyB0aGluZ3Ms
IGxpa2UgQ0FMYXllcnMuCiogV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL21hYy9XZWJWaWRlb0Z1bGxT
Y3JlZW5NYW5hZ2VyTWFjLmg6IEFkZGVkLgoqIFdlYlByb2Nlc3MvRnVsbFNjcmVlbi9tYWMvV2Vi
VmlkZW9GdWxsU2NyZWVuTWFuYWdlck1hYy5tbTogQWRkZWQuCihXZWJLaXQ6OldlYlZpZGVvRnVs
bFNjcmVlbk1hbmFnZXI6OmNyZWF0ZSk6IENyZWF0ZSBhIFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFn
ZXJNYWMuCihXZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJNYWM6OmNyZWF0ZSk6CihX
ZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJNYWM6OldlYlZpZGVvRnVsbFNjcmVlbk1h
bmFnZXJNYWMpOgooV2ViS2l0OjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyTWFjOjp+V2ViVmlk
ZW9GdWxsU2NyZWVuTWFuYWdlck1hYyk6CihXZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFn
ZXJNYWM6OnNldFVwTGF5ZXJDbGllbnQpOiBDcmVhdGUgYSBsYXllciBob3N0LgooV2ViS2l0OjpX
ZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyTWFjOjp0ZWFyRG93bkxheWVyQ2xpZW50KTogVGVhciB0
aGF0IGxheWVyIGhvc3QgZG93bi4KLS0tCiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgICAgICAg
ICAgICAgICAgICAgICAgICAgICB8ICAyMTMgKysrKysrKysrKysrKysrKysKIC4uLi9GdWxsU2Ny
ZWVuL1dlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXIuY3BwICAgICAgIHwgIDI0MSArKysrKysrKysr
KysrKysrKysrKwogLi4uL0Z1bGxTY3JlZW4vV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlci5oICAg
ICAgICAgfCAgMTA1ICsrKysrKysrKwogLi4uL1dlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXIubWVz
c2FnZXMuaW4gICAgICAgICAgfCAgIDM4ICsrKwogLi4uL0Z1bGxTY3JlZW4vbWFjL1dlYlZpZGVv
RnVsbFNjcmVlbk1hbmFnZXJNYWMuaCAgfCAgIDU4ICsrKysrCiAuLi4vRnVsbFNjcmVlbi9tYWMv
V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlck1hYy5tbSB8ICAxMDUgKysrKysrKysrCiA2IGZpbGVz
IGNoYW5nZWQsIDc2MCBpbnNlcnRpb25zKCspLCAwIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUg
MTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJWaWRlb0Z1bGxT
Y3JlZW5NYW5hZ2VyLmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvRnVsbFNjcmVlbi9XZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyLmgKIGNyZWF0ZSBtb2Rl
IDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViVmlkZW9GdWxs
U2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbgogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9tYWMvV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlck1h
Yy5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2Ny
ZWVuL21hYy9XZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyTWFjLm1tCgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGY0
MTg5NjhmLi4xZGVmMDM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjE2IEBACisyMDExLTA2LTAx
ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIG5ldyBjbGFzczogV2ViVmlkZW9GdWxs
U2NyZWVuTWFuYWdlcgorCisgICAgICAgIEltcGxlbWVudCB2aWRlbyBmdWxsLXNyY2VlbiBBUEkg
aW4gV2ViS2l0MgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NjE4NDgKKworICAgICAgICBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyIGlzIHJlc3BvbnNp
YmxlIGZvciBjb21tdW5pY2F0aW5nIHdpdGggdGhlIEhUTUxNZWRpYUVsZW1lbnQKKyAgICAgICAg
YW5kIGZvciBzZXR0aW5nIHVwIGEgbGF5ZXIgdG8gaG9zdCB0aGUgbWVkaWEgZWxlbWVudCdzIHBs
YXRmb3JtTGF5ZXIgYWNyb3NzIHRvIHRoZSAKKyAgICAgICAgVUlQcm9jZXNzLgorCisgICAgICAg
ICogV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXIuY3BwOiBB
ZGRlZC4KKyAgICAgICAgCisgICAgICAgIFZpZGVvRXZlbnRMaXN0ZW5lciBpcyBtdWNoIGxpa2Ug
TWVkaWFFdmVudExpc3RlbmVyIGluIFdlYkNvcmUsIGJ1dCBpdCBpcyBpbnRlbmRlZCBmb3IKKyAg
ICAgICAgQysrIGNsaWVudHMgaW5zdGVhZCBvZiBPYmpDIG9uZXMuCisgICAgICAgIChXZWJLaXQ6
OlZpZGVvRXZlbnRMaXN0ZW5lcjo6VmlkZW9FdmVudExpc3RlbmVyKToKKyAgICAgICAgKFdlYktp
dDo6VmlkZW9FdmVudExpc3RlbmVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0V2
ZW50TGlzdGVuZXI6Om9wZXJhdG9yPT0pOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0V2ZW50TGlz
dGVuZXI6OmhhbmRsZUV2ZW50KToKKworICAgICAgICBUaGUgZm9sbG93aW5nIGZ1bmN0aW9ucyBj
YWxsIHRoZSBlcXVpdmFsZW50IGZ1bmN0aW9uIG9uIEhUTUxNZWRpYUVsZW1lbnQ6CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXI6OnBsYXkpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyOjpwYXVzZSk6CisgICAgICAgIChXZWJLaXQ6
OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXI6OnNldFZvbHVtZSk6CisgICAgICAgIChXZWJLaXQ6
OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXI6OnJldHVyblRvUmVhbFRpbWUpOgorICAgICAgICAo
V2ViS2l0OjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyOjpyZXdpbmQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyOjpyZXF1ZXN0RXhpdEZ1bGxTY3JlZW4pOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyOjpiZWdpblNjcnViYmlu
Zyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXI6OmVuZFNjcnVi
YmluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXI6OnNldEN1
cnJlbnRUaW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlcjo6
c2V0TXV0ZWQpOgorCisgICAgICAgIFRoZSBmb2xsb3dpbmcgZnVuY3Rpb25zIGFyZSBuZXcgRXZl
bnRMaXN0ZW5lciBjYWxsYmFja3M6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVl
bk1hbmFnZXI6OnRpbWVVcGRhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxTY3Jl
ZW5NYW5hZ2VyOjpjYW5QbGF5VXBkYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxs
U2NyZWVuTWFuYWdlcjo6ZHVyYXRpb25VcGRhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRl
b0Z1bGxTY3JlZW5NYW5hZ2VyOjp2b2x1bWVVcGRhdGUpOgorCisgICAgICAgIFRoZSBmb2xsb3dp
bmcgZnVuY3Rpb25zIHNlbmQgbWVzc2FnZXMgdG8gdGhlIFVJUHJvY2Vzcy4KKyAgICAgICAgKFdl
YktpdDo6V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlcjo6ZW50ZXJGdWxsU2NyZWVuKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlcjo6ZXhpdEZ1bGxTY3JlZW4pOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyOjpnZXRGdWxsU2NyZWVu
UmVjdCk6CisKKyAgICAgICAgVGhlIHJlc3Q6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVs
bFNjcmVlbk1hbmFnZXI6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXIpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyOjp+V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdl
cik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXI6Om1lZGlhRWxl
bWVudCk6IEFjY2Vzc29yIGZvciBtX21lZGlhRWxlbWVudC4KKyAgICAgICAgKFdlYktpdDo6V2Vi
VmlkZW9GdWxsU2NyZWVuTWFuYWdlcjo6c2V0TWVkaWFFbGVtZW50KTogU2V0IHVwIHRoZSBldmVu
dCBsaXN0ZW5lcnMgZm9yIHRoZQorICAgICAgICAgICAgbmV3IG1lZGlhIGVsZW1lbnQsIGFuZCB0
ZWFyIGRvd24gdGhlIG9uZXMgZm9yIHRoZSBvbGQgZWxlbWVudC4KKyAgICAgICAgKFdlYktpdDo6
V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOiBXZWJLaXQyIGJv
aWxlcnBsYXRlLgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyOjpl
eGl0RnVsbFNjcmVlbkNvbXBsZXRlZCk6IFRlYXIgZG93biB0aGUgbGF5ZXIgaG9zdC4KKyAgICAg
ICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlcjo6ZW50ZXJGdWxsU2NyZWVuQ29t
cGxldGVkKTogTm8tb3AuCisgICAgICAgICogV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYlZpZGVv
RnVsbFNjcmVlbk1hbmFnZXIuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9GdWxsU2Ny
ZWVuL1dlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAg
ICAKKyAgICAgICAgVGhlIFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJNYWMgY2xhc3MgZGVhbHMg
d2l0aCBwb3J0IHNwZWNpZmljIHRoaW5ncywgbGlrZSBDQUxheWVycy4KKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0Z1bGxTY3JlZW4vbWFjL1dlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJNYWMuaDogQWRk
ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL21hYy9XZWJWaWRlb0Z1bGxTY3Jl
ZW5NYW5hZ2VyTWFjLm1tOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsU2Ny
ZWVuTWFuYWdlcjo6Y3JlYXRlKTogQ3JlYXRlIGEgV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlck1h
Yy4KKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlck1hYzo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlck1hYzo6V2ViVmlk
ZW9GdWxsU2NyZWVuTWFuYWdlck1hYyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbFNj
cmVlbk1hbmFnZXJNYWM6On5XZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyTWFjKToKKyAgICAgICAg
KFdlYktpdDo6V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlck1hYzo6c2V0VXBMYXllckNsaWVudCk6
IENyZWF0ZSBhIGxheWVyIGhvc3QuCisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVl
bk1hbmFnZXJNYWM6OnRlYXJEb3duTGF5ZXJDbGllbnQpOiBUZWFyIHRoYXQgbGF5ZXIgaG9zdCBk
b3duLgorCisyMDExLTA2LTAxICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIExlZ2FjeSBGdWxs
IFNjcmVlbiBBUEkgZm9yIFdlYktpdDIuCisKKyAgICAgICAgSW1wbGVtZW50IHZpZGVvIGZ1bGwt
c3JjZWVuIEFQSSBpbiBXZWJLaXQyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD02MTg0OAorCisgICAgICAgIEluIG9yZGVyIHRvIGltcGxlbWVudCBmdWxs
LXNjcmVlbiBtb2RlIGluIFdlYktpdDIsIGEgbG90IG9mIGluZm9ybWF0aW9uIG5lZWRzIHRvIAor
ICAgICAgICBiZSBwYXNzZWQgYmV0d2VlbiB0aGUgV2ViUHJvY2VzcyBhbmQgVUlQcm9jZXNzLiAg
VG8gZmFjaWxpdGF0ZSB0aGlzLCB0aGUgZm9sbG93aW5nCisgICAgICAgIGNsYXNzZXMgaGF2ZSBi
ZWVuIGFkZGVkOgorICAgICAgICAKKyAgICAgICAgV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlcjog
SW4gdGhlIFdlYlByb2Nlc3M7IG1hbmFnZXMgdGhlIEhUTUxNZWRpYUVsZW1lbnQuCisgICAgICAg
IFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJNYWM6IERlYWxzIHdpdGggcGxhdGZvcm0tc3BlY2lm
aWMgZGV0YWlscywgc3VjaCBhcyBDQUxheWVycy4KKyAgICAgICAgV2ViVmlkZW9GdWxsU2NyZWVu
TWFuYWdlclByb3h5OiBJbiB0aGUgVUlQcm9jZXNzOyBtb3N0bHkgZW1wdHkuCisgICAgICAgIFdl
YlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYzogRGVhbHMgd2l0aCBwbGF0Zm9ybS1zcGVj
aWZpYyBkZXRhaWxzLCBzdWNoIGFzCisgICAgICAgICAgICBtYW5hZ2luZyB0aGUgV2ViVmlkZW9G
dWxsU2NyZWVuQ29udHJvbGxlciBhbmQgdGhlIHJvb3QgQ0FMYXllci4KKyAgICAgICAgVmlkZW9F
dmVudExpc3RlbmVyOiBQcm92aWRlcyBhIGdlbmVyaWMgY2FsbGJhY2sgbWVjaGFuaXNtIGZvciBF
dmVudExpc3RlbmVycywgYnV0IAorICAgICAgICAgICAgcHJvdmlkaW5nIGEgQysrIGludGVyZmFj
ZSBpbnN0ZWFkIG9mIE9iakMuCisgICAgICAgIAorICAgICAgICAqIFVJUHJvY2Vzcy9GdWxsU2Ny
ZWVuL1dlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViS2l0OjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OldlYlZpZGVvRnVsbFNjcmVl
bk1hbmFnZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFn
ZXJQcm94eTo6fldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eSk6CisgICAgICAgIChXZWJL
aXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6c2V0V2ViVmlldyk6CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZU1lc3Nh
Z2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OmRp
ZFJlY2VpdmVTeW5jTWVzc2FnZSk6CisgICAgICAgICogVUlQcm9jZXNzL0Z1bGxTY3JlZW4vV2Vi
VmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vz
cy9GdWxsU2NyZWVuL1dlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjog
QWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0Z1bGxTY3JlZW4vbWFjL1dlYlZpZGVvRnVsbFNj
cmVlbk1hbmFnZXJQcm94eU1hYy5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvRnVsbFNj
cmVlbi9tYWMvV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5TWFjLm1tOiBBZGRlZC4KKyAg
ICAgICAgKC1bV2ViVmlkZW9EZWxlZ2F0ZSBpbml0V2l0aE1hbmFnZXI6V2ViS2l0OjpdKToKKyAg
ICAgICAgKC1bV2ViVmlkZW9EZWxlZ2F0ZSBtZWRpYUVsZW1lbnRdKToKKyAgICAgICAgKC1bV2Vi
VmlkZW9EZWxlZ2F0ZSByZXF1ZXN0RXhpdEZ1bGxzY3JlZW5dKToKKyAgICAgICAgKC1bV2ViVmlk
ZW9EZWxlZ2F0ZSBiZWdpblNjcnViYmluZ10pOgorICAgICAgICAoLVtXZWJWaWRlb0RlbGVnYXRl
IGVuZFNjcnViYmluZ10pOgorICAgICAgICAoLVtXZWJWaWRlb0RlbGVnYXRlIGN1cnJlbnRUaW1l
XSk6CisgICAgICAgICgtW1dlYlZpZGVvRGVsZWdhdGUgc2V0Q3VycmVudFRpbWU6XSk6CisgICAg
ICAgICgtW1dlYlZpZGVvRGVsZWdhdGUgZHVyYXRpb25dKToKKyAgICAgICAgKC1bV2ViVmlkZW9E
ZWxlZ2F0ZSB2b2x1bWVdKToKKyAgICAgICAgKC1bV2ViVmlkZW9EZWxlZ2F0ZSBtdXRlZF0pOgor
ICAgICAgICAoLVtXZWJWaWRlb0RlbGVnYXRlIHNldE11dGVkOl0pOgorICAgICAgICAoLVtXZWJW
aWRlb0RlbGVnYXRlIHNldFZvbHVtZTpdKToKKyAgICAgICAgKC1bV2ViVmlkZW9EZWxlZ2F0ZSBj
YW5QbGF5XSk6CisgICAgICAgICgtW1dlYlZpZGVvRGVsZWdhdGUgcGxheV0pOgorICAgICAgICAo
LVtXZWJWaWRlb0RlbGVnYXRlIHBhdXNlXSk6CisgICAgICAgICgtW1dlYlZpZGVvRGVsZWdhdGUg
cmV3aW5kOl0pOgorICAgICAgICAoLVtXZWJWaWRlb0RlbGVnYXRlIG1lZGlhRWxlbWVudFNjcmVl
blJlY3RdKToKKyAgICAgICAgKC1bV2ViVmlkZW9EZWxlZ2F0ZSByZWxlYXNlTWVkaWFFbGVtZW50
TGF5ZXJdKToKKyAgICAgICAgKC1bV2ViVmlkZW9EZWxlZ2F0ZSBzdGVhbE1lZGlhRWxlbWVudExh
eWVyXSk6CisgICAgICAgICgtW1dlYlZpZGVvRGVsZWdhdGUgZW50ZXJGdWxsU2NyZWVuQ29tcGxl
dGVkXSk6CisgICAgICAgICgtW1dlYlZpZGVvRGVsZWdhdGUgZXhpdEZ1bGxTY3JlZW5Db21wbGV0
ZWRdKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5Ojpj
cmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHlN
YWM6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQ
cm94eU1hYzo6V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5TWFjKToKKyAgICAgICAgKFdl
YktpdDo6V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5TWFjOjp+V2ViVmlkZW9GdWxsU2Ny
ZWVuTWFuYWdlclByb3h5TWFjKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsU2NyZWVu
TWFuYWdlclByb3h5TWFjOjplbnRlckZ1bGxTY3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpXZWJW
aWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHlNYWM6OmV4aXRGdWxsU2NyZWVuKToKKyAgICAgICAg
KFdlYktpdDo6V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5TWFjOjplbnRlckFjY2VsZXJh
dGVkQ29tcG9zaXRpbmdNb2RlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsU2NyZWVu
TWFuYWdlclByb3h5TWFjOjpleGl0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHlNYWM6OnJvb3RMYXllcik6
CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYzo6c2V0
TXV0ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHlN
YWM6OnJld2luZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQ
cm94eU1hYzo6Y2FuUGxheSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1h
bmFnZXJQcm94eU1hYzo6ZHVyYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxT
Y3JlZW5NYW5hZ2VyUHJveHlNYWM6OnNldFZvbHVtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYzo6YmVnaW5TY3J1YmJpbmcpOgorICAgICAgICAo
V2ViS2l0OjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHlNYWM6OmVuZFNjcnViYmluZyk6
CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYzo6bXV0
ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHlNYWM6
OnZvbHVtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94
eU1hYzo6cGxheSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQ
cm94eU1hYzo6cGF1c2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5h
Z2VyUHJveHlNYWM6OmN1cnJlbnRUaW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxs
U2NyZWVuTWFuYWdlclByb3h5TWFjOjpzZXRDdXJyZW50VGltZSk6CisgICAgICAgIChXZWJLaXQ6
OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYzo6cmVxdWVzdEV4aXRGdWxsU2NyZWVu
KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5TWFjOjpn
ZXRGdWxsU2NyZWVuUmVjdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1h
bmFnZXJQcm94eU1hYzo6Y2FuUGxheVVwZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVv
RnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYzo6dGltZVVwZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6
OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYzo6dm9sdW1lVXBkYXRlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5TWFjOjptdXRlVXBkYXRl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5TWFjOjpk
dXJhdGlvblVwZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFn
ZXJQcm94eU1hYzo6bWVkaWFFbGVtZW50U2NyZWVuUmVjdFVwZGF0ZSk6CisgICAgICAgIChXZWJL
aXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYzo6bWVkaWFFbGVtZW50U2NyZWVu
UmVjdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1h
Yzo6ZW50ZXJGdWxsU2NyZWVuQ29tcGxldGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9G
dWxsU2NyZWVuTWFuYWdlclByb3h5TWFjOjpleGl0RnVsbFNjcmVlbkNvbXBsZXRlZCk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXIuY3Bw
OiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6VmlkZW9FdmVudExpc3RlbmVyOjpWaWRlb0V2ZW50
TGlzdGVuZXIpOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0V2ZW50TGlzdGVuZXI6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRXZlbnRMaXN0ZW5lcjo6b3BlcmF0b3I9PSk6CisgICAg
ICAgIChXZWJLaXQ6OlZpZGVvRXZlbnRMaXN0ZW5lcjo6aGFuZGxlRXZlbnQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyOjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5h
Z2VyKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlcjo6fldlYlZp
ZGVvRnVsbFNjcmVlbk1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxTY3Jl
ZW5NYW5hZ2VyOjptZWRpYUVsZW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxT
Y3JlZW5NYW5hZ2VyOjpzZXRNZWRpYUVsZW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRl
b0Z1bGxTY3JlZW5NYW5hZ2VyOjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6
OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXI6OmVudGVyRnVsbFNjcmVlbik6CisgICAgICAgIChX
ZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXI6OmV4aXRGdWxsU2NyZWVuKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlcjo6Z2V0RnVsbFNjcmVlblJlY3Qp
OgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyOjpleGl0RnVsbFNj
cmVlbkNvbXBsZXRlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFn
ZXI6OmVudGVyRnVsbFNjcmVlbkNvbXBsZXRlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVv
RnVsbFNjcmVlbk1hbmFnZXI6OnBsYXkpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxT
Y3JlZW5NYW5hZ2VyOjpwYXVzZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVl
bk1hbmFnZXI6OnNldFZvbHVtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVl
bk1hbmFnZXI6OnJldHVyblRvUmVhbFRpbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1
bGxTY3JlZW5NYW5hZ2VyOjpyZXdpbmQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxT
Y3JlZW5NYW5hZ2VyOjpyZXF1ZXN0RXhpdEZ1bGxTY3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyOjpiZWdpblNjcnViYmluZyk6CisgICAgICAgIChXZWJL
aXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXI6OmVuZFNjcnViYmluZyk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXI6OnNldEN1cnJlbnRUaW1lKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlcjo6c2V0TXV0ZWQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyOjp0aW1lVXBkYXRlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlcjo6Y2FuUGxheVVwZGF0ZSk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXIu
aDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYlZpZGVvRnVsbFNj
cmVlbk1hbmFnZXIubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvRnVs
bFNjcmVlbi9tYWMvV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlck1hYy5oOiBBZGRlZC4KKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0Z1bGxTY3JlZW4vbWFjL1dlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJN
YWMubW06IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2Vy
OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyTWFj
OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyTWFj
OjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyTWFjKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlk
ZW9GdWxsU2NyZWVuTWFuYWdlck1hYzo6fldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJNYWMpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyTWFjOjpzZXRVcExheWVy
Q2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlck1hYzo6
dGVhckRvd25MYXllckNsaWVudCk6CisKKyAgICAgICAgTm93IHRoYXQgV2ViS2l0MiBzdXBwb3J0
cyBpdCwgaW1wbGVtZW50IHRoZXNlIHZpZGVvIGZ1bGwtc2NyZWVuIGNsaWVudCBBUElzLgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpzdXBwb3J0c0Z1bGxzY3JlZW5Gb3JOb2Rl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjplbnRlckZ1bGxzY3JlZW5Gb3JO
b2RlKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpleGl0RnVsbHNjcmVlbkZv
ck5vZGUpOgorCisgICAgICAgIFRoZSBmb2xsb3dpbmcgYXJlIG1vc3RseSBib2lsZXJwbGF0ZSBj
aGFuZ2VzIHRvIGFsbG93IHRoZXNlIG5ldyBjbGFzc2VzIHRvIHVzZSAKKyAgICAgICAgdGhlIHBh
Z2UncyBjcm9zcy1wbGF0Zm9ybSBtZXNzYWdpbmcuCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMu
bWFrZToKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VJRC5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJv
eHk6OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpk
aWRSZWNlaXZlU3luY01lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnZp
ZGVvRnVsbFNjcmVlbk1hbmFnZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aDoKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OmNsb3NlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dmlkZW9GdWxsU2NyZWVuTWFu
YWdlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorCiAyMDExLTA1LTMwICBObydh
bSBSb3NlbnRoYWwgIDxub2FtLnJvc2VudGhhbEBub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgU2ltb24gSGF1c21hbm4uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0Z1bGxTY3JlZW4vV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlci5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmVhYjIxOQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJWaWRlb0Z1bGxT
Y3JlZW5NYW5hZ2VyLmNwcApAQCAtMCwwICsxLDI0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlci5oIgorCisjaW5j
bHVkZSAiQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIk1lc3NhZ2VJRC5oIgorI2luY2x1ZGUgIldl
YkNvcmVBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlICJX
ZWJQcm9jZXNzLmgiCisjaW5jbHVkZSAiV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5TWVz
c2FnZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0hUTUxNZWRpYUVsZW1lbnQuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL1RpbWVyLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworY2xhc3MgVmlkZW9FdmVudExpc3RlbmVyIDogcHVibGljIFdlYkNvcmU6
OkV2ZW50TGlzdGVuZXIgeworcHVibGljOgorICAgIHR5cGVkZWYgdm9pZChXZWJWaWRlb0Z1bGxT
Y3JlZW5NYW5hZ2VyOjoqTGlzdGVuZXJDYWxsYmFjaykoKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0
cjxWaWRlb0V2ZW50TGlzdGVuZXI+IGNyZWF0ZShXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyKiwg
TGlzdGVuZXJDYWxsYmFjayk7CisgICAgdmlydHVhbCBib29sIG9wZXJhdG9yPT0oY29uc3QgV2Vi
Q29yZTo6RXZlbnRMaXN0ZW5lciYpOworICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVFdmVudChXZWJD
b3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgV2ViQ29yZTo6RXZlbnQqKTsKKworcHJpdmF0
ZToKKyAgICBWaWRlb0V2ZW50TGlzdGVuZXIoV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlciosIExp
c3RlbmVyQ2FsbGJhY2spOworICAgIFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXIqIG1fbWFuYWdl
cjsKKyAgICBMaXN0ZW5lckNhbGxiYWNrIG1fY2FsbGJhY2s7Cit9OworCitWaWRlb0V2ZW50TGlz
dGVuZXI6OlZpZGVvRXZlbnRMaXN0ZW5lcihXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyKiBtYW5h
Z2VyLCBMaXN0ZW5lckNhbGxiYWNrIGNhbGxiYWNrKQorICAgIDogRXZlbnRMaXN0ZW5lcihDUFBF
dmVudExpc3RlbmVyVHlwZSkKKyAgICAsIG1fbWFuYWdlcihtYW5hZ2VyKQorICAgICwgbV9jYWxs
YmFjayhjYWxsYmFjaykKK3sKK30KKworUGFzc1JlZlB0cjxWaWRlb0V2ZW50TGlzdGVuZXI+IFZp
ZGVvRXZlbnRMaXN0ZW5lcjo6Y3JlYXRlKFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXIqIG1hbmFn
ZXIsIExpc3RlbmVyQ2FsbGJhY2sgY2FsbGJhY2spCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBWaWRlb0V2ZW50TGlzdGVuZXIobWFuYWdlciwgY2FsbGJhY2spKTsKK30KKworYm9vbCBWaWRl
b0V2ZW50TGlzdGVuZXI6Om9wZXJhdG9yPT0oY29uc3QgRXZlbnRMaXN0ZW5lciYgbGlzdGVuZXIp
Cit7CisgICAgcmV0dXJuIHRoaXMgPT0gJmxpc3RlbmVyOworfQorCit2b2lkIFZpZGVvRXZlbnRM
aXN0ZW5lcjo6aGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgRXZl
bnQqIGV2ZW50KQoreworICAgIChtX21hbmFnZXItPiptX2NhbGxiYWNrKSgpOworfQorCitXZWJW
aWRlb0Z1bGxTY3JlZW5NYW5hZ2VyOjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyKFdlYlBhZ2Uq
IHBhZ2UpCisgICAgOiBtX3BhZ2UocGFnZSkKKyAgICAsIG1fdGltZUxpc3RlbmVyKFZpZGVvRXZl
bnRMaXN0ZW5lcjo6Y3JlYXRlKHRoaXMsICZXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyOjp0aW1l
VXBkYXRlKSkKKyAgICAsIG1fY2FuUGxheUxpc3RlbmVyKFZpZGVvRXZlbnRMaXN0ZW5lcjo6Y3Jl
YXRlKHRoaXMsICZXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyOjpjYW5QbGF5VXBkYXRlKSkKKyAg
ICAsIG1fZHVyYXRpb25MaXN0ZW5lcihWaWRlb0V2ZW50TGlzdGVuZXI6OmNyZWF0ZSh0aGlzLCAm
V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlcjo6ZHVyYXRpb25VcGRhdGUpKQorICAgICwgbV92b2x1
bWVMaXN0ZW5lcihWaWRlb0V2ZW50TGlzdGVuZXI6OmNyZWF0ZSh0aGlzLCAmV2ViVmlkZW9GdWxs
U2NyZWVuTWFuYWdlcjo6dm9sdW1lVXBkYXRlKSkKK3sKK30KKworCitXZWJWaWRlb0Z1bGxTY3Jl
ZW5NYW5hZ2VyOjp+V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlcigpCit7CisgICAgc2V0TWVkaWFF
bGVtZW50KDApOworfQorCitXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50KiBXZWJWaWRlb0Z1bGxT
Y3JlZW5NYW5hZ2VyOjptZWRpYUVsZW1lbnQoKQoreworICAgIHJldHVybiBtX21lZGlhRWxlbWVu
dC5nZXQoKTsKK30KKwordm9pZCBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyOjpzZXRNZWRpYUVs
ZW1lbnQoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbGVtZW50KQoreworICAgIGlm
IChtZWRpYUVsZW1lbnQgPT0gbV9tZWRpYUVsZW1lbnQpCisgICAgICAgIHJldHVybjsKKworICAg
IFdlYkNvcmU6OkV2ZW50TmFtZXMmIGV2ZW50TmFtZXMgPSBXZWJDb3JlOjpldmVudE5hbWVzKCk7
CisKKyAgICBpZiAobV9tZWRpYUVsZW1lbnQpIHsKKyAgICAgICAgbV9tZWRpYUVsZW1lbnQtPnJl
bW92ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcy5wbGF5RXZlbnQsICBtX2NhblBsYXlMaXN0ZW5l
ci5nZXQoKSwgdHJ1ZSk7CisgICAgICAgIG1fbWVkaWFFbGVtZW50LT5yZW1vdmVFdmVudExpc3Rl
bmVyKGV2ZW50TmFtZXMucGF1c2VFdmVudCwgbV9jYW5QbGF5TGlzdGVuZXIuZ2V0KCksIHRydWUp
OworICAgICAgICBtX21lZGlhRWxlbWVudC0+cmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudE5hbWVz
LmVuZGVkRXZlbnQsIG1fY2FuUGxheUxpc3RlbmVyLmdldCgpLCB0cnVlKTsKKyAgICAgICAgbV9t
ZWRpYUVsZW1lbnQtPnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcy50aW1ldXBkYXRlRXZl
bnQsIG1fdGltZUxpc3RlbmVyLmdldCgpLCB0cnVlKTsKKyAgICAgICAgbV9tZWRpYUVsZW1lbnQt
PnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcy5kdXJhdGlvbmNoYW5nZUV2ZW50LCBtX2R1
cmF0aW9uTGlzdGVuZXIuZ2V0KCksIHRydWUpOworICAgICAgICBtX21lZGlhRWxlbWVudC0+cmVt
b3ZlRXZlbnRMaXN0ZW5lcihldmVudE5hbWVzLnZvbHVtZWNoYW5nZUV2ZW50LCBtX3ZvbHVtZUxp
c3RlbmVyLmdldCgpLCB0cnVlKTsKKyAgICB9CisKKyAgICBtX21lZGlhRWxlbWVudCA9IG1lZGlh
RWxlbWVudDsKKworICAgIGlmIChtX21lZGlhRWxlbWVudCkgeworICAgICAgICBtX21lZGlhRWxl
bWVudC0+YWRkRXZlbnRMaXN0ZW5lcihldmVudE5hbWVzLnBsYXlFdmVudCwgIG1fY2FuUGxheUxp
c3RlbmVyLCB0cnVlKTsKKyAgICAgICAgbV9tZWRpYUVsZW1lbnQtPmFkZEV2ZW50TGlzdGVuZXIo
ZXZlbnROYW1lcy5wYXVzZUV2ZW50LCBtX2NhblBsYXlMaXN0ZW5lciwgdHJ1ZSk7CisgICAgICAg
IG1fbWVkaWFFbGVtZW50LT5hZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMuZW5kZWRFdmVudCwg
bV9jYW5QbGF5TGlzdGVuZXIsIHRydWUpOworICAgICAgICBtX21lZGlhRWxlbWVudC0+YWRkRXZl
bnRMaXN0ZW5lcihldmVudE5hbWVzLnRpbWV1cGRhdGVFdmVudCwgbV90aW1lTGlzdGVuZXIuZ2V0
KCksIHRydWUpOworICAgICAgICBtX21lZGlhRWxlbWVudC0+YWRkRXZlbnRMaXN0ZW5lcihldmVu
dE5hbWVzLmR1cmF0aW9uY2hhbmdlRXZlbnQsIG1fZHVyYXRpb25MaXN0ZW5lci5nZXQoKSwgdHJ1
ZSk7CisgICAgICAgIG1fbWVkaWFFbGVtZW50LT5hZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMu
dm9sdW1lY2hhbmdlRXZlbnQsIG1fdm9sdW1lTGlzdGVuZXIuZ2V0KCksIHRydWUpOworCisgICAg
ICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5
OjpUaW1lVXBkYXRlKG1fbWVkaWFFbGVtZW50LT5jdXJyZW50VGltZSgpKSk7CisgICAgICAgIG1f
cGFnZS0+c2VuZChNZXNzYWdlczo6V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5OjpDYW5Q
bGF5VXBkYXRlKG1fbWVkaWFFbGVtZW50LT5jYW5QbGF5KCkpKTsKKyAgICAgICAgbV9wYWdlLT5z
ZW5kKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OkR1cmF0aW9uVXBk
YXRlKG1fbWVkaWFFbGVtZW50LT5kdXJhdGlvbigpKSk7CisgICAgICAgIG1fcGFnZS0+c2VuZChN
ZXNzYWdlczo6V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5OjpNdXRlVXBkYXRlKG1fbWVk
aWFFbGVtZW50LT5tdXRlZCgpKSk7CisgICAgICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2Vi
VmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5OjpWb2x1bWVVcGRhdGUobV9tZWRpYUVsZW1lbnQt
PnZvbHVtZSgpKSk7CisgICAgfQorfQorCit2b2lkIFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXI6
OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJ
UEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1l
bnRzKQoreworICAgIGRpZFJlY2VpdmVXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyTWVzc2FnZShj
b25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7Cit9CisKK3ZvaWQgV2ViVmlkZW9GdWxs
U2NyZWVuTWFuYWdlcjo6ZW50ZXJGdWxsU2NyZWVuKCkKK3sKKyAgICBtX3BhZ2UtPnNlbmRTeW5j
KE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHk6Ok1lZGlhRWxlbWVudFNj
cmVlblJlY3RVcGRhdGUobV9tZWRpYUVsZW1lbnQtPnNjcmVlblJlY3QoKSksIE1lc3NhZ2VzOjpX
ZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OkVudGVyRnVsbFNjcmVlbjo6UmVwbHkoKSk7
CisgICAgc2V0VXBMYXllckNsaWVudCgpOworICAgIG1fcGFnZS0+c2VuZFN5bmMoTWVzc2FnZXM6
OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6RW50ZXJGdWxsU2NyZWVuKCksIE1lc3Nh
Z2VzOjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OkVudGVyRnVsbFNjcmVlbjo6UmVw
bHkoKSk7Cit9CisKK3ZvaWQgV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlcjo6ZXhpdEZ1bGxTY3Jl
ZW4oKQoreworICAgIG1fcGFnZS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlZpZGVvRnVsbFNjcmVl
bk1hbmFnZXJQcm94eTo6TWVkaWFFbGVtZW50U2NyZWVuUmVjdFVwZGF0ZShtX21lZGlhRWxlbWVu
dC0+c2NyZWVuUmVjdCgpKSwgTWVzc2FnZXM6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94
eTo6RW50ZXJGdWxsU2NyZWVuOjpSZXBseSgpKTsKKyAgICBtX3BhZ2UtPnNlbmRTeW5jKE1lc3Nh
Z2VzOjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OkV4aXRGdWxsU2NyZWVuKCksIE1l
c3NhZ2VzOjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OkV4aXRGdWxsU2NyZWVuOjpS
ZXBseSgpKTsKK30KKworSW50UmVjdCBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyOjpnZXRGdWxs
U2NyZWVuUmVjdCgpCit7CisgICAgSW50UmVjdCByZWN0OworICAgIG1fcGFnZS0+c2VuZFN5bmMo
TWVzc2FnZXM6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6R2V0RnVsbFNjcmVlblJl
Y3QoKSwgTWVzc2FnZXM6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6R2V0RnVsbFNj
cmVlblJlY3Q6OlJlcGx5KHJlY3QpKTsKKyAgICByZXR1cm4gcmVjdDsKK30KKwordm9pZCBXZWJW
aWRlb0Z1bGxTY3JlZW5NYW5hZ2VyOjpleGl0RnVsbFNjcmVlbkNvbXBsZXRlZCgpCit7CisgICAg
dGVhckRvd25MYXllckNsaWVudCgpOworfQorCit2b2lkIFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFn
ZXI6OmVudGVyRnVsbFNjcmVlbkNvbXBsZXRlZCgpCit7Cit9CisKK3ZvaWQgV2ViVmlkZW9GdWxs
U2NyZWVuTWFuYWdlcjo6cGxheSgpCit7CisgICAgQVNTRVJUKG1fbWVkaWFFbGVtZW50KTsKKyAg
ICBtX21lZGlhRWxlbWVudC0+cGxheShtX21lZGlhRWxlbWVudC0+cHJvY2Vzc2luZ1VzZXJHZXN0
dXJlKCkpOworfQorCit2b2lkIFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXI6OnBhdXNlKCkKK3sK
KyAgICBBU1NFUlQobV9tZWRpYUVsZW1lbnQpOworICAgIG1fbWVkaWFFbGVtZW50LT5wYXVzZSht
X21lZGlhRWxlbWVudC0+cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkpOworfQorCit2b2lkIFdlYlZp
ZGVvRnVsbFNjcmVlbk1hbmFnZXI6OnNldFZvbHVtZShmbG9hdCB2b2x1bWUpCit7CisgICAgQVNT
RVJUKG1fbWVkaWFFbGVtZW50KTsKKyAgICBFeGNlcHRpb25Db2RlIGNvZGU7CisgICAgbV9tZWRp
YUVsZW1lbnQtPnNldFZvbHVtZSh2b2x1bWUsIGNvZGUpOworfQorCit2b2lkIFdlYlZpZGVvRnVs
bFNjcmVlbk1hbmFnZXI6OnJldHVyblRvUmVhbFRpbWUoKQoreworICAgIG1fbWVkaWFFbGVtZW50
LT5yZXR1cm5Ub1JlYWx0aW1lKCk7Cit9CisKK3ZvaWQgV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdl
cjo6cmV3aW5kKGZsb2F0IGRlbHRhKQoreworICAgIG1fbWVkaWFFbGVtZW50LT5yZXdpbmQoZGVs
dGEpOworfQorCit2b2lkIFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXI6OnJlcXVlc3RFeGl0RnVs
bFNjcmVlbigpCit7CisgICAgaWYgKG1fbWVkaWFFbGVtZW50LT5pc0Z1bGxzY3JlZW4oKSkKKyAg
ICAgICAgbV9tZWRpYUVsZW1lbnQtPmV4aXRGdWxsc2NyZWVuKCk7Cit9CisKK3ZvaWQgV2ViVmlk
ZW9GdWxsU2NyZWVuTWFuYWdlcjo6YmVnaW5TY3J1YmJpbmcoKQoreworICAgIG1fbWVkaWFFbGVt
ZW50LT5iZWdpblNjcnViYmluZygpOworfQorCit2b2lkIFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFn
ZXI6OmVuZFNjcnViYmluZygpCit7CisgICAgbV9tZWRpYUVsZW1lbnQtPmVuZFNjcnViYmluZygp
OworfQorCit2b2lkIFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXI6OnNldEN1cnJlbnRUaW1lKGZs
b2F0IGN1cnJlbnRUaW1lKQoreworICAgIEV4Y2VwdGlvbkNvZGUgZTsKKyAgICBtX21lZGlhRWxl
bWVudC0+c2V0Q3VycmVudFRpbWUoY3VycmVudFRpbWUsIGUpOworfQorCit2b2lkIFdlYlZpZGVv
RnVsbFNjcmVlbk1hbmFnZXI6OnNldE11dGVkKGJvb2wgbXV0ZWQpCit7CisgICAgbV9tZWRpYUVs
ZW1lbnQtPnNldE11dGVkKG11dGVkKTsKK30KKwordm9pZCBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5h
Z2VyOjp0aW1lVXBkYXRlKCkKK3sKKyAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlZpZGVv
RnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6VGltZVVwZGF0ZShtX21lZGlhRWxlbWVudC0+Y3VycmVu
dFRpbWUoKSkpOworfQorCit2b2lkIFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXI6OmNhblBsYXlV
cGRhdGUoKQoreworICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViVmlkZW9GdWxsU2NyZWVu
TWFuYWdlclByb3h5OjpDYW5QbGF5VXBkYXRlKG1fbWVkaWFFbGVtZW50LT5jYW5QbGF5KCkpKTsK
K30KKwordm9pZCBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyOjpkdXJhdGlvblVwZGF0ZSgpCit7
CisgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJv
eHk6OkR1cmF0aW9uVXBkYXRlKG1fbWVkaWFFbGVtZW50LT5kdXJhdGlvbigpKSk7Cit9CisKK3Zv
aWQgV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlcjo6dm9sdW1lVXBkYXRlKCkKK3sKKyAgICBtX3Bh
Z2UtPnNlbmQoTWVzc2FnZXM6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6TXV0ZVVw
ZGF0ZShtX21lZGlhRWxlbWVudC0+bXV0ZWQoKSkpOworICAgIG1fcGFnZS0+c2VuZChNZXNzYWdl
czo6V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5OjpWb2x1bWVVcGRhdGUobV9tZWRpYUVs
ZW1lbnQtPnZvbHVtZSgpKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYlZpZGVvRnVsbFNjcmVl
bk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJWaWRl
b0Z1bGxTY3JlZW5NYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
YTRmNTJhOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVs
bFNjcmVlbi9XZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyLmgKQEAgLTAsMCArMSwxMDUgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworI2lmbmRlZiBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyX2gKKyNkZWZpbmUgV2Vi
VmlkZW9GdWxsU2NyZWVuTWFuYWdlcl9oCisKKyNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCisK
KyNpbmNsdWRlIDxXZWJDb3JlL0ludFJlY3QuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5o
PgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIENvcmVJUEMgeworICAgIGNs
YXNzIEFyZ3VtZW50RGVjb2RlcjsKKyAgICBjbGFzcyBDb25uZWN0aW9uOworICAgIGNsYXNzIE1l
c3NhZ2VJRDsKK30KKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIGNsYXNzIEV2ZW50TGlzdGVu
ZXI7CisgICAgY2xhc3MgSFRNTE1lZGlhRWxlbWVudDsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7
CisKKyAgICBjbGFzcyBXZWJQYWdlOworCisgICAgY2xhc3MgV2ViVmlkZW9GdWxsU2NyZWVuTWFu
YWdlciA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXI+IHsKKyAg
ICBwdWJsaWM6CisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYlZpZGVvRnVsbFNjcmVlbk1h
bmFnZXI+IGNyZWF0ZShXZWJQYWdlKik7CisgICAgICAgIHZpcnR1YWwgfldlYlZpZGVvRnVsbFNj
cmVlbk1hbmFnZXIoKTsKKworICAgICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciopOworCisgICAgICAgIHZvaWQgc2V0TWVkaWFFbGVtZW50KFdlYkNvcmU6OkhUTUxNZWRpYUVs
ZW1lbnQqKTsKKyAgICAgICAgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbGVtZW50
KCk7CisKKyAgICAgICAgdm9pZCBlbnRlckZ1bGxTY3JlZW4oKTsKKyAgICAgICAgdm9pZCBleGl0
RnVsbFNjcmVlbigpOworCisgICAgcHJvdGVjdGVkOgorICAgICAgICBXZWJWaWRlb0Z1bGxTY3Jl
ZW5NYW5hZ2VyKFdlYlBhZ2UqKTsKKworICAgICAgICBXZWJDb3JlOjpJbnRSZWN0IGdldEZ1bGxT
Y3JlZW5SZWN0KCk7CisgICAgICAgIHZvaWQgZXhpdEZ1bGxTY3JlZW5Db21wbGV0ZWQoKTsKKyAg
ICAgICAgdm9pZCBlbnRlckZ1bGxTY3JlZW5Db21wbGV0ZWQoKTsKKyAgICAgICAgdm9pZCBwbGF5
KCk7CisgICAgICAgIHZvaWQgcGF1c2UoKTsKKyAgICAgICAgdm9pZCBzZXRWb2x1bWUoZmxvYXQp
OworICAgICAgICB2b2lkIGJlZ2luRmFzdEZvcndhcmQoKTsKKyAgICAgICAgdm9pZCBlbmRGYXN0
Rm9yd2FyZCgpOworICAgICAgICB2b2lkIGJlZ2luUmV3aW5kKCk7CisgICAgICAgIHZvaWQgZW5k
UmV3aW5kKCk7CisgICAgICAgIHZvaWQgcmV0dXJuVG9SZWFsVGltZSgpOworICAgICAgICB2b2lk
IHJld2luZChmbG9hdCBkZWx0YSk7CisgICAgICAgIHZvaWQgcmVxdWVzdEV4aXRGdWxsU2NyZWVu
KCk7CisgICAgICAgIHZvaWQgYmVnaW5TY3J1YmJpbmcoKTsKKyAgICAgICAgdm9pZCBlbmRTY3J1
YmJpbmcoKTsKKyAgICAgICAgdm9pZCBzZXRDdXJyZW50VGltZShmbG9hdCk7CisgICAgICAgIHZv
aWQgc2V0TXV0ZWQoYm9vbCk7CisKKyAgICAgICAgdm9pZCB0aW1lVXBkYXRlKCk7CisgICAgICAg
IHZvaWQgY2FuUGxheVVwZGF0ZSgpOworICAgICAgICB2b2lkIGR1cmF0aW9uVXBkYXRlKCk7Cisg
ICAgICAgIHZvaWQgdm9sdW1lVXBkYXRlKCk7CisKKyAgICAgICAgdmlydHVhbCB2b2lkIHNldFVw
TGF5ZXJDbGllbnQoKSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCB0ZWFyRG93bkxheWVyQ2xp
ZW50KCkgPSAwOworICAgICAgICB2b2lkIGRpZFJlY2VpdmVXZWJWaWRlb0Z1bGxTY3JlZW5NYW5h
Z2VyTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3Jl
SVBDOjpBcmd1bWVudERlY29kZXIqKTsKKworICAgICAgICBXZWJDb3JlOjpJbnRSZWN0IG1faW5p
dGlhbEZyYW1lOworICAgICAgICBSZWZQdHI8V2ViUGFnZT4gbV9wYWdlOworICAgICAgICBSZWZQ
dHI8V2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudD4gbV9tZWRpYUVsZW1lbnQ7CisgICAgICAgIFJl
ZlB0cjxXZWJDb3JlOjpFdmVudExpc3RlbmVyPiBtX3RpbWVMaXN0ZW5lcjsKKyAgICAgICAgUmVm
UHRyPFdlYkNvcmU6OkV2ZW50TGlzdGVuZXI+IG1fY2FuUGxheUxpc3RlbmVyOworICAgICAgICBS
ZWZQdHI8V2ViQ29yZTo6RXZlbnRMaXN0ZW5lcj4gbV9kdXJhdGlvbkxpc3RlbmVyOworICAgICAg
ICBSZWZQdHI8V2ViQ29yZTo6RXZlbnRMaXN0ZW5lcj4gbV92b2x1bWVMaXN0ZW5lcjsKKyAgICB9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShGVUxMU0NSRUVO
X0FQSSkKKworI2VuZGlmIC8vIFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYlZpZGVvRnVsbFNjcmVl
bk1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Z1bGxTY3Jl
ZW4vV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi44ZTQ2OWY2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXIubWVz
c2FnZXMuaW4KQEAgLTAsMCArMSwzOCBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFy
ZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IK
KyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorCittZXNzYWdlcyAtPiBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyIHsKKyAgICBT
ZXRVcExheWVyQ2xpZW50KCkKKyAgICBUZWFyRG93bkxheWVyQ2xpZW50KCkKKyAgICBFbnRlckZ1
bGxTY3JlZW5Db21wbGV0ZWQoKQorICAgIEV4aXRGdWxsU2NyZWVuQ29tcGxldGVkKCkKKyAgICBQ
bGF5KCkKKyAgICBQYXVzZSgpCisgICAgU2V0Vm9sdW1lKGZsb2F0IHZvbHVtZSkKKyAgICBSZXR1
cm5Ub1JlYWxUaW1lKCk7CisgICAgUmV3aW5kKGZsb2F0IGRlbHRhKTsKKyAgICBSZXF1ZXN0RXhp
dEZ1bGxTY3JlZW4oKTsKKyAgICBCZWdpblNjcnViYmluZygpCisgICAgRW5kU2NydWJiaW5nKCkK
KyAgICBTZXRDdXJyZW50VGltZShmbG9hdCBjdXJyZW50VGltZSkKKyAgICBTZXRNdXRlZChib29s
IG11dGVkKQorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2Ny
ZWVuL21hYy9XZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyTWFjLmggYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0Z1bGxTY3JlZW4vbWFjL1dlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJNYWMuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZmFmYTY2Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL21hYy9XZWJWaWRlb0Z1
bGxTY3JlZW5NYW5hZ2VyTWFjLmgKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlck1hY19oCisjZGVmaW5lIFdlYlZpZGVvRnVsbFNj
cmVlbk1hbmFnZXJNYWNfaAorCisjaW1wb3J0ICJMYXllclRyZWVDb250ZXh0LmgiCisjaW1wb3J0
ICJXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyLmgiCisKKyNpbXBvcnQgPFdlYkNvcmUvR3JhcGhp
Y3NMYXllci5oPgorI2ltcG9ydCA8V2ViQ29yZS9JbnRSZWN0Lmg+CisjaW1wb3J0IDx3dGYvUmV0
YWluUHRyLmg+CisKK3R5cGVkZWYgc3RydWN0IF9fV0tDQVJlbW90ZUxheWVyQ2xpZW50UmVmKiBX
S0NBUmVtb3RlTGF5ZXJDbGllbnRSZWY7CitPQkpDX0NMQVNTIFdlYkZ1bGxTY3JlZW5NYW5hZ2Vy
QW5pbWF0aW9uTGlzdGVuZXI7CisKK25hbWVzcGFjZSBXZWJLaXQgeworICAgIAorICAgIGNsYXNz
IFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJNYWMgOiBwdWJsaWMgV2ViVmlkZW9GdWxsU2NyZWVu
TWFuYWdlciB7CisgICAgcHVibGljOgorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJWaWRl
b0Z1bGxTY3JlZW5NYW5hZ2VyTWFjPiBjcmVhdGUoV2ViUGFnZSopOworICAgICAgICAKKyAgICBw
cml2YXRlOgorICAgICAgICBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyTWFjKFdlYlBhZ2UqKTsK
KyAgICAgICAgdmlydHVhbCB+V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlck1hYygpOworICAgICAg
ICAKKyAgICAgICAgdmlydHVhbCB2b2lkIHNldFVwTGF5ZXJDbGllbnQoKTsKKyAgICAgICAgdmly
dHVhbCB2b2lkIHRlYXJEb3duTGF5ZXJDbGllbnQoKTsKKyAgICAgICAgCisgICAgICAgIExheWVy
VHJlZUNvbnRleHQgbV9sYXllclRyZWVDb250ZXh0OworICAgICAgICBSZXRhaW5QdHI8V0tDQVJl
bW90ZUxheWVyQ2xpZW50UmVmPiBtX3JlbW90ZUxheWVyQ2xpZW50OworICAgIH07CisgICAgCit9
CisKKyNlbmRpZiAvLyBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyTWFjX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9tYWMvV2ViVmlkZW9GdWxsU2Ny
ZWVuTWFuYWdlck1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9t
YWMvV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlck1hYy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi45ZjJjZjY1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9GdWxsU2NyZWVuL21hYy9XZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyTWFjLm1t
CkBAIC0wLDAgKzEsMTA1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9y
dCAiV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlck1hYy5oIgorCisjaW1wb3J0ICJDb25uZWN0aW9u
LmgiCisjaW1wb3J0ICJMYXllclRyZWVDb250ZXh0LmgiCisjaW1wb3J0ICJNZXNzYWdlSUQuaCIK
KyNpbXBvcnQgIldlYlBhZ2UuaCIKKyNpbXBvcnQgIldlYlByb2Nlc3MuaCIKKyNpbXBvcnQgIldl
YlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCisjaW1wb3J0IDxRdWFydHpD
b3JlL1F1YXJ0ekNvcmUuaD4KKyNpbXBvcnQgPFdlYkNvcmUvSFRNTE1lZGlhRWxlbWVudC5oPgor
I2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKyAgICAKK1Bhc3NSZWZQdHI8V2ViVmlkZW9GdWxs
U2NyZWVuTWFuYWdlcj4gV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlcjo6Y3JlYXRlKFdlYlBhZ2Uq
IHBhZ2UpCit7CisgICAgcmV0dXJuIFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJNYWM6OmNyZWF0
ZShwYWdlKTsKK30KKworUGFzc1JlZlB0cjxXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyTWFjPiBX
ZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyTWFjOjpjcmVhdGUoV2ViUGFnZSogcGFnZSkKK3sKKyAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJNYWMocGFnZSkp
OworfQorCitXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyTWFjOjpXZWJWaWRlb0Z1bGxTY3JlZW5N
YW5hZ2VyTWFjKFdlYlBhZ2UqIHBhZ2UpCisgICAgOiBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2Vy
KHBhZ2UpCit7Cit9CisKK1dlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJNYWM6On5XZWJWaWRlb0Z1
bGxTY3JlZW5NYW5hZ2VyTWFjKCkKK3sKKyAgICBtX3BhZ2UtPnNlbmRTeW5jKE1lc3NhZ2VzOjpX
ZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OkV4aXRBY2NlbGVyYXRlZENvbXBvc2l0aW5n
TW9kZSgpLCBNZXNzYWdlczo6V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5OjpFeGl0QWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ01vZGU6OlJlcGx5KCkpOworfQorCit2b2lkIFdlYlZpZGVvRnVs
bFNjcmVlbk1hbmFnZXJNYWM6OnNldFVwTGF5ZXJDbGllbnQoKQoreworICAgIGlmICghbV9yZW1v
dGVMYXllckNsaWVudCkgeworICAgICAgICBtYWNoX3BvcnRfdCBzZXJ2ZXJQb3J0ID0gV2ViUHJv
Y2Vzczo6c2hhcmVkKCkuY29tcG9zaXRpbmdSZW5kZXJTZXJ2ZXJQb3J0KCk7CisgICAgICAgIG1f
cmVtb3RlTGF5ZXJDbGllbnQgPSBXS0NBUmVtb3RlTGF5ZXJDbGllbnRNYWtlV2l0aFNlcnZlclBv
cnQoc2VydmVyUG9ydCk7CisgICAgICAgIAorICAgICAgICBSZXRhaW5QdHI8Q0FMYXllcj4gcm9v
dExheWVyKEFkb3B0TlMsIFtbQ0FMYXllciBhbGxvY10gaW5pdF0pOworICAgICAgICBXS0NBUmVt
b3RlTGF5ZXJDbGllbnRTZXRMYXllcihtX3JlbW90ZUxheWVyQ2xpZW50LmdldCgpLCByb290TGF5
ZXIuZ2V0KCkpOworCisgICAgICAgIG1fbGF5ZXJUcmVlQ29udGV4dC5jb250ZXh0SUQgPSBXS0NB
UmVtb3RlTGF5ZXJDbGllbnRHZXRDbGllbnRJZChtX3JlbW90ZUxheWVyQ2xpZW50LmdldCgpKTsK
KyAgICB9CisKKyAgICBtX3BhZ2UtPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxTY3Jl
ZW5NYW5hZ2VyUHJveHk6OkVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUobV9sYXllclRy
ZWVDb250ZXh0KSwgTWVzc2FnZXM6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6RW50
ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZTo6UmVwbHkoKSk7CisKKyAgICBDQUxheWVyKiBy
b290TGF5ZXIgPSBXS0NBUmVtb3RlTGF5ZXJDbGllbnRHZXRMYXllcihtX3JlbW90ZUxheWVyQ2xp
ZW50LmdldCgpKTsKKyAgICBtX21lZGlhRWxlbWVudC0+c2V0UGxhdGZvcm1MYXllclN0b2xlbih0
cnVlKTsKKyAgICBDQUxheWVyKiBtZWRpYUxheWVyID0gbV9tZWRpYUVsZW1lbnQtPmZ1bGxTY3Jl
ZW5MYXllcigpOworICAgIEludFJlY3QgZGVzdGluYXRpb25SZWN0ID0gZ2V0RnVsbFNjcmVlblJl
Y3QoKTsKKyAgICBDR1JlY3QgbGF5ZXJCb3VuZHMgPSBDR1JlY3RaZXJvOworICAgIGxheWVyQm91
bmRzLnNpemUgPSBkZXN0aW5hdGlvblJlY3Quc2l6ZSgpOworCisgICAgW0NBVHJhbnNhY3Rpb24g
YmVnaW5dOworICAgIFtDQVRyYW5zYWN0aW9uIHNldFZhbHVlOltOU051bWJlciBudW1iZXJXaXRo
Qm9vbDpZRVNdIGZvcktleTprQ0FUcmFuc2FjdGlvbkRpc2FibGVBY3Rpb25zXTsKKyAgICBbbWVk
aWFMYXllciBzZXRCb3VuZHM6bGF5ZXJCb3VuZHNdOworICAgIFtyb290TGF5ZXIgYWRkU3VibGF5
ZXI6bWVkaWFMYXllcl07CisgICAgW0NBVHJhbnNhY3Rpb24gY29tbWl0XTsKKworICAgIFtbTlNO
b3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcG9zdE5vdGlmaWNhdGlvbk5hbWU6QCJX
ZWJLaXRMYXllckhvc3RDaGFuZ2VkIiBvYmplY3Q6cm9vdExheWVyIHVzZXJJbmZvOm5pbF07Cit9
CisKK3ZvaWQgV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlck1hYzo6dGVhckRvd25MYXllckNsaWVu
dCgpCit7CisgICAgaWYgKCFtX3JlbW90ZUxheWVyQ2xpZW50KQorICAgICAgICByZXR1cm47CisK
KyAgICBDQUxheWVyKiByb290TGF5ZXIgPSBXS0NBUmVtb3RlTGF5ZXJDbGllbnRHZXRMYXllciht
X3JlbW90ZUxheWVyQ2xpZW50LmdldCgpKTsKKyAgICBbcm9vdExheWVyIHNldFN1YmxheWVyczpu
aWxdOworICAgIG1fbWVkaWFFbGVtZW50LT5zZXRQbGF0Zm9ybUxheWVyU3RvbGVuKGZhbHNlKTsK
KworICAgIG1fcGFnZS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFn
ZXJQcm94eTo6RXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKCksIE1lc3NhZ2VzOjpXZWJW
aWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OkV4aXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9k
ZTo6UmVwbHkoKSk7CisgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBw
b3N0Tm90aWZpY2F0aW9uTmFtZTpAIldlYktpdExheWVySG9zdENoYW5nZWQiIG9iamVjdDpyb290
TGF5ZXIgdXNlckluZm86bmlsXTsgICAgICAgICAgICAKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0Ci0tIAoxLjcuNC40Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>95661</attachid>
            <date>2011-06-01 14:19:19 -0700</date>
            <delta_ts>2012-01-30 15:27:41 -0800</delta_ts>
            <desc>[PATCH 2/4] Added new class: WebVideoFullScreenManagerProxy</desc>
            <filename>0002-Added-new-class-WebVideoFullScreenManagerProxy.patch</filename>
            <type>text/plain</type>
            <size>33896</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">RnJvbSA2ZDA4YjA0N2EyYzNmZWZiYTJlODI5MTc4ZjUxZTFiN2JkYWU2M2QyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKZXIgTm9ibGUgPGplci5ub2JsZUBhcHBsZS5jb20+CkRhdGU6
IFdlZCwgMSBKdW4gMjAxMSAxMzo0NjoyMyAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMi80XSBBZGRl
ZCBuZXcgY2xhc3M6IFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eQoKUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCgpJbXBsZW1lbnQgdmlkZW8gZnVsbC1zcmNlZW4gQVBJIGluIFdlYktp
dDIKaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYxODQ4CgpUaGlzIGNs
YXNzIGlzIHRoZSBVSVByb2Nlc3MgcGFpciBvZiBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyLiBI
b3dldmVyLCBtb3N0IG9mCnRoZSBoZWF2eSBsaWZ0aW5nIGlzIGRvbmUgaW4gV2ViS2l0VmlkZW9G
dWxsU2NyZWVuTWFuYWdlclByb3h5TWFjLgoqIFVJUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYlZpZGVv
RnVsbFNjcmVlbk1hbmFnZXJQcm94eS5jcHA6IEFkZGVkLgooV2ViS2l0OjpXZWJWaWRlb0Z1bGxT
Y3JlZW5NYW5hZ2VyUHJveHk6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eSk6CihXZWJL
aXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6fldlYlZpZGVvRnVsbFNjcmVlbk1h
bmFnZXJQcm94eSk6CihXZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6c2V0
V2ViVmlldyk6CihXZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6ZGlkUmVj
ZWl2ZU1lc3NhZ2UpOiBXZWJLaXQyIGJvaWxlcnBsYXRlLgooV2ViS2l0OjpXZWJWaWRlb0Z1bGxT
Y3JlZW5NYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZSk6IERpdHRvLgoqIFVJUHJv
Y2Vzcy9GdWxsU2NyZWVuL1dlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5oOiBBZGRlZC4K
KiBVSVByb2Nlc3MvRnVsbFNjcmVlbi9XZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHkubWVz
c2FnZXMuaW46IEFkZGVkLgoKVGhpcyBjbGFzcyBjb21tdW5pY2F0ZXMgd2l0aCB0aGUgV2ViVmlk
ZW9GdWxsc2NyZWVuQ29udHJvbGxlciwgYW5kIHByb3ZpZGVzIGl0CmEgZGVsZWdhdGUgd2l0aCB3
aGljaCB0byBjb21tdW5pY2F0ZSB3aXRoIHRoZSBIVE1MTWVkaWFFbGVtZW50IGluIHRoZSBXZWJQ
cm9jZXNzLgoqIFVJUHJvY2Vzcy9GdWxsU2NyZWVuL21hYy9XZWJWaWRlb0Z1bGxTY3JlZW5NYW5h
Z2VyUHJveHlNYWMuaDogQWRkZWQuCiogVUlQcm9jZXNzL0Z1bGxTY3JlZW4vbWFjL1dlYlZpZGVv
RnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYy5tbTogQWRkZWQuCgpUaGUgZm9sbG93aW5nIGZ1bmN0
aW9ucyBzaW1wbHkgcGFzcyB0aHJvdWdoIHRvIHRoZSBtYW5hZ2VyOgooLVtXZWJWaWRlb0RlbGVn
YXRlIGluaXRXaXRoTWFuYWdlcjpXZWJLaXQ6Ol0pOgooLVtXZWJWaWRlb0RlbGVnYXRlIG1lZGlh
RWxlbWVudF0pOgooLVtXZWJWaWRlb0RlbGVnYXRlIHJlcXVlc3RFeGl0RnVsbHNjcmVlbl0pOgoo
LVtXZWJWaWRlb0RlbGVnYXRlIGJlZ2luU2NydWJiaW5nXSk6CigtW1dlYlZpZGVvRGVsZWdhdGUg
ZW5kU2NydWJiaW5nXSk6CigtW1dlYlZpZGVvRGVsZWdhdGUgY3VycmVudFRpbWVdKToKKC1bV2Vi
VmlkZW9EZWxlZ2F0ZSBzZXRDdXJyZW50VGltZTpdKToKKC1bV2ViVmlkZW9EZWxlZ2F0ZSBkdXJh
dGlvbl0pOgooLVtXZWJWaWRlb0RlbGVnYXRlIHZvbHVtZV0pOgooLVtXZWJWaWRlb0RlbGVnYXRl
IG11dGVkXSk6CigtW1dlYlZpZGVvRGVsZWdhdGUgc2V0TXV0ZWQ6XSk6CigtW1dlYlZpZGVvRGVs
ZWdhdGUgc2V0Vm9sdW1lOl0pOgooLVtXZWJWaWRlb0RlbGVnYXRlIGNhblBsYXldKToKKC1bV2Vi
VmlkZW9EZWxlZ2F0ZSBwbGF5XSk6CigtW1dlYlZpZGVvRGVsZWdhdGUgcGF1c2VdKToKKC1bV2Vi
VmlkZW9EZWxlZ2F0ZSByZXdpbmQ6XSk6CigtW1dlYlZpZGVvRGVsZWdhdGUgbWVkaWFFbGVtZW50
U2NyZWVuUmVjdF0pOgooLVtXZWJWaWRlb0RlbGVnYXRlIHJlbGVhc2VNZWRpYUVsZW1lbnRMYXll
cl0pOgooLVtXZWJWaWRlb0RlbGVnYXRlIHN0ZWFsTWVkaWFFbGVtZW50TGF5ZXJdKToKKC1bV2Vi
VmlkZW9EZWxlZ2F0ZSBlbnRlckZ1bGxTY3JlZW5Db21wbGV0ZWRdKToKKC1bV2ViVmlkZW9EZWxl
Z2F0ZSBleGl0RnVsbFNjcmVlbkNvbXBsZXRlZF0pOgoKVGhlIGZvbGxvd2luZyBmdW5jdGlvbnMg
cmV0cmlldmUgY2FjaGVkIHZhbHVlcyBzdG9yZSBpbiB0aGUgbWFuYWdlcjoKKFdlYktpdDo6V2Vi
VmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5TWFjOjpyb290TGF5ZXIpOgooV2ViS2l0OjpXZWJW
aWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHlNYWM6OmR1cmF0aW9uKToKKFdlYktpdDo6V2ViVmlk
ZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5TWFjOjptdXRlZCk6CihXZWJLaXQ6OldlYlZpZGVvRnVs
bFNjcmVlbk1hbmFnZXJQcm94eU1hYzo6dm9sdW1lKToKKFdlYktpdDo6V2ViVmlkZW9GdWxsU2Ny
ZWVuTWFuYWdlclByb3h5TWFjOjptZWRpYUVsZW1lbnRTY3JlZW5SZWN0KToKKFdlYktpdDo6V2Vi
VmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5TWFjOjpjdXJyZW50VGltZSk6CihXZWJLaXQ6Oldl
YlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYzo6Y2FuUGxheSk6CgpUaGUgZm9sbG93aW5n
IGZ1bmN0aW9ucyBzZW5kIG1lc3NhZ2VzIHRvIHRoZSBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2Vy
IGluIHRoZSBXZWJQcm9jZXNzOgooV2ViS2l0OjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJv
eHlNYWM6OnNldE11dGVkKToKKFdlYktpdDo6V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5
TWFjOjpyZXdpbmQpOgooV2ViS2l0OjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHlNYWM6
OnNldFZvbHVtZSk6CihXZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYzo6
YmVnaW5TY3J1YmJpbmcpOgooV2ViS2l0OjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHlN
YWM6OmVuZFNjcnViYmluZyk6CihXZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94
eU1hYzo6cGxheSk6CihXZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYzo6
cGF1c2UpOgooV2ViS2l0OjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHlNYWM6OnNldEN1
cnJlbnRUaW1lKToKKFdlYktpdDo6V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5TWFjOjpy
ZXF1ZXN0RXhpdEZ1bGxTY3JlZW4pOgooV2ViS2l0OjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2Vy
UHJveHlNYWM6OmVudGVyRnVsbFNjcmVlbkNvbXBsZXRlZCk6CihXZWJLaXQ6OldlYlZpZGVvRnVs
bFNjcmVlbk1hbmFnZXJQcm94eU1hYzo6ZXhpdEZ1bGxTY3JlZW5Db21wbGV0ZWQpOgoKVGhlIGZv
bGxvd2luZyBmdW5jdGlvbnMgcmVhY3QgdG8gbWVzc2FnZXMgZnJvbSB0aGUgV2ViVmlkZW9GdWxs
U2NyZWVuTWFuYWdlciBhbmQgY2FjaGUgdGhlaXIgdmFsdWVzOgooV2ViS2l0OjpXZWJWaWRlb0Z1
bGxTY3JlZW5NYW5hZ2VyUHJveHlNYWM6OmNhblBsYXlVcGRhdGUpOgooV2ViS2l0OjpXZWJWaWRl
b0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHlNYWM6OnRpbWVVcGRhdGUpOgooV2ViS2l0OjpXZWJWaWRl
b0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHlNYWM6OnZvbHVtZVVwZGF0ZSk6CihXZWJLaXQ6OldlYlZp
ZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYzo6bXV0ZVVwZGF0ZSk6CihXZWJLaXQ6OldlYlZp
ZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYzo6ZHVyYXRpb25VcGRhdGUpOgooV2ViS2l0OjpX
ZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHlNYWM6Om1lZGlhRWxlbWVudFNjcmVlblJlY3RV
cGRhdGUpOgoKKFdlYktpdDo6V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5OjpjcmVhdGUp
OiBDcmVhdGUgYSBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHlNYWMuCihXZWJLaXQ6Oldl
YlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYzo6Y3JlYXRlKToKKFdlYktpdDo6V2ViVmlk
ZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5TWFjOjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJv
eHlNYWMpOgooV2ViS2l0OjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHlNYWM6On5XZWJW
aWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHlNYWMpOgooV2ViS2l0OjpXZWJWaWRlb0Z1bGxTY3Jl
ZW5NYW5hZ2VyUHJveHlNYWM6OmVudGVyRnVsbFNjcmVlbik6IExhemlseSBjcmVhdGUgdGhlIHdp
bmRvdyBjb250cm9sbGVyIGFuZCBlbnRlciBmdWxsLXNjcmVlbi4KKFdlYktpdDo6V2ViVmlkZW9G
dWxsU2NyZWVuTWFuYWdlclByb3h5TWFjOjpleGl0RnVsbFNjcmVlbik6ICBUZWxsIHRoZSB3aW5k
b3cgY29udHJvbGxlciB0byBleGl0IGZ1bGwtc2NyZWVuLgooV2ViS2l0OjpXZWJWaWRlb0Z1bGxT
Y3JlZW5NYW5hZ2VyUHJveHlNYWM6OmVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUpOiBT
ZXQgdXAgdGhlIHJlbmRlciBsYXllciBob3N0aW5nCiAgICB0aGUgbGF5ZXIgaW4gdGhlIFdlYlBy
b2Nlc3MuCihXZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYzo6ZXhpdEFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKTogVGVhciB0aGF0IGxheWVyIGRvd24uCihXZWJLaXQ6
OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYzo6Z2V0RnVsbFNjcmVlblJlY3QpOiBH
ZXQgdGhlIHNjcmVlbiByZWN0IGZvciB0aGUgY3VycmVudCBzY3JlZW4uCihXZWJLaXQ6OldlYlZp
ZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYzo6aW52YWxpZGF0ZSk6Ci0tLQogU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDkwICsrKysrCiAu
Li4vRnVsbFNjcmVlbi9XZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHkuY3BwICB8ICAgNjAg
KysrKwogLi4uL0Z1bGxTY3JlZW4vV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5LmggICAg
fCAgIDk3ICsrKysrKwogLi4uL1dlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdl
cy5pbiAgICAgfCAgIDM3ICsrCiAuLi4vbWFjL1dlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94
eU1hYy5oICAgICAgICB8ICAgOTUgKysrKysrCiAuLi4vbWFjL1dlYlZpZGVvRnVsbFNjcmVlbk1h
bmFnZXJQcm94eU1hYy5tbSAgICAgICB8ICAzNTcgKysrKysrKysrKysrKysrKysrKysKIDYgZmls
ZXMgY2hhbmdlZCwgNzM2IGluc2VydGlvbnMoKyksIDAgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViVmlkZW9GdWxs
U2NyZWVuTWFuYWdlclByb3h5LmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5oCiBj
cmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Z1bGxTY3JlZW4vV2Vi
VmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCiBjcmVhdGUgbW9kZSAxMDA2
NDQgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Z1bGxTY3JlZW4vbWFjL1dlYlZpZGVvRnVsbFNj
cmVlbk1hbmFnZXJQcm94eU1hYy5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0Z1bGxTY3JlZW4vbWFjL1dlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1h
Yy5tbQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwppbmRleCAxZGVmMDM0Li40YjM1Y2JjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0yLDYg
KzIsOTYgQEAKIAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KIAorICAgICAg
ICBBZGRlZCBuZXcgY2xhc3M6IFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eQorCisgICAg
ICAgIEltcGxlbWVudCB2aWRlbyBmdWxsLXNyY2VlbiBBUEkgaW4gV2ViS2l0MgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjE4NDgKKworICAgICAgICBU
aGlzIGNsYXNzIGlzIHRoZSBVSVByb2Nlc3MgcGFpciBvZiBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5h
Z2VyLiBIb3dldmVyLCBtb3N0IG9mCisgICAgICAgIHRoZSBoZWF2eSBsaWZ0aW5nIGlzIGRvbmUg
aW4gV2ViS2l0VmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5TWFjLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9GdWxsU2NyZWVuL1dlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OldlYlZp
ZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVs
bFNjcmVlbk1hbmFnZXJQcm94eTo6fldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6c2V0V2ViVmll
dyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6ZGlk
UmVjZWl2ZU1lc3NhZ2UpOiBXZWJLaXQyIGJvaWxlcnBsYXRlLgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZSk6IERp
dHRvLgorICAgICAgICAqIFVJUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYlZpZGVvRnVsbFNjcmVlbk1h
bmFnZXJQcm94eS5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvRnVsbFNjcmVlbi9XZWJW
aWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAK
KyAgICAgICAgVGhpcyBjbGFzcyBjb21tdW5pY2F0ZXMgd2l0aCB0aGUgV2ViVmlkZW9GdWxsc2Ny
ZWVuQ29udHJvbGxlciwgYW5kIHByb3ZpZGVzIGl0IAorICAgICAgICBhIGRlbGVnYXRlIHdpdGgg
d2hpY2ggdG8gY29tbXVuaWNhdGUgd2l0aCB0aGUgSFRNTE1lZGlhRWxlbWVudCBpbiB0aGUgV2Vi
UHJvY2Vzcy4KKyAgICAgICAgKiBVSVByb2Nlc3MvRnVsbFNjcmVlbi9tYWMvV2ViVmlkZW9GdWxs
U2NyZWVuTWFuYWdlclByb3h5TWFjLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9GdWxs
U2NyZWVuL21hYy9XZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHlNYWMubW06IEFkZGVkLgor
ICAgICAgICAKKyAgICAgICAgVGhlIGZvbGxvd2luZyBmdW5jdGlvbnMgc2ltcGx5IHBhc3MgdGhy
b3VnaCB0byB0aGUgbWFuYWdlcjoKKyAgICAgICAgKC1bV2ViVmlkZW9EZWxlZ2F0ZSBpbml0V2l0
aE1hbmFnZXI6V2ViS2l0OjpdKToKKyAgICAgICAgKC1bV2ViVmlkZW9EZWxlZ2F0ZSBtZWRpYUVs
ZW1lbnRdKToKKyAgICAgICAgKC1bV2ViVmlkZW9EZWxlZ2F0ZSByZXF1ZXN0RXhpdEZ1bGxzY3Jl
ZW5dKToKKyAgICAgICAgKC1bV2ViVmlkZW9EZWxlZ2F0ZSBiZWdpblNjcnViYmluZ10pOgorICAg
ICAgICAoLVtXZWJWaWRlb0RlbGVnYXRlIGVuZFNjcnViYmluZ10pOgorICAgICAgICAoLVtXZWJW
aWRlb0RlbGVnYXRlIGN1cnJlbnRUaW1lXSk6CisgICAgICAgICgtW1dlYlZpZGVvRGVsZWdhdGUg
c2V0Q3VycmVudFRpbWU6XSk6CisgICAgICAgICgtW1dlYlZpZGVvRGVsZWdhdGUgZHVyYXRpb25d
KToKKyAgICAgICAgKC1bV2ViVmlkZW9EZWxlZ2F0ZSB2b2x1bWVdKToKKyAgICAgICAgKC1bV2Vi
VmlkZW9EZWxlZ2F0ZSBtdXRlZF0pOgorICAgICAgICAoLVtXZWJWaWRlb0RlbGVnYXRlIHNldE11
dGVkOl0pOgorICAgICAgICAoLVtXZWJWaWRlb0RlbGVnYXRlIHNldFZvbHVtZTpdKToKKyAgICAg
ICAgKC1bV2ViVmlkZW9EZWxlZ2F0ZSBjYW5QbGF5XSk6CisgICAgICAgICgtW1dlYlZpZGVvRGVs
ZWdhdGUgcGxheV0pOgorICAgICAgICAoLVtXZWJWaWRlb0RlbGVnYXRlIHBhdXNlXSk6CisgICAg
ICAgICgtW1dlYlZpZGVvRGVsZWdhdGUgcmV3aW5kOl0pOgorICAgICAgICAoLVtXZWJWaWRlb0Rl
bGVnYXRlIG1lZGlhRWxlbWVudFNjcmVlblJlY3RdKToKKyAgICAgICAgKC1bV2ViVmlkZW9EZWxl
Z2F0ZSByZWxlYXNlTWVkaWFFbGVtZW50TGF5ZXJdKToKKyAgICAgICAgKC1bV2ViVmlkZW9EZWxl
Z2F0ZSBzdGVhbE1lZGlhRWxlbWVudExheWVyXSk6CisgICAgICAgICgtW1dlYlZpZGVvRGVsZWdh
dGUgZW50ZXJGdWxsU2NyZWVuQ29tcGxldGVkXSk6CisgICAgICAgICgtW1dlYlZpZGVvRGVsZWdh
dGUgZXhpdEZ1bGxTY3JlZW5Db21wbGV0ZWRdKToKKyAgICAgICAgCisgICAgICAgIFRoZSBmb2xs
b3dpbmcgZnVuY3Rpb25zIHJldHJpZXZlIGNhY2hlZCB2YWx1ZXMgc3RvcmUgaW4gdGhlIG1hbmFn
ZXI6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYzo6
cm9vdExheWVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclBy
b3h5TWFjOjpkdXJhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1h
bmFnZXJQcm94eU1hYzo6bXV0ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxTY3Jl
ZW5NYW5hZ2VyUHJveHlNYWM6OnZvbHVtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVs
bFNjcmVlbk1hbmFnZXJQcm94eU1hYzo6bWVkaWFFbGVtZW50U2NyZWVuUmVjdCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYzo6Y3VycmVudFRpbWUp
OgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHlNYWM6OmNh
blBsYXkpOgorICAgICAgICAKKyAgICAgICAgVGhlIGZvbGxvd2luZyBmdW5jdGlvbnMgc2VuZCBt
ZXNzYWdlcyB0byB0aGUgV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlciBpbiB0aGUgV2ViUHJvY2Vz
czoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5TWFjOjpz
ZXRNdXRlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94
eU1hYzo6cmV3aW5kKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdl
clByb3h5TWFjOjpzZXRWb2x1bWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxTY3Jl
ZW5NYW5hZ2VyUHJveHlNYWM6OmJlZ2luU2NydWJiaW5nKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
VmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5TWFjOjplbmRTY3J1YmJpbmcpOgorICAgICAgICAo
V2ViS2l0OjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHlNYWM6OnBsYXkpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHlNYWM6OnBhdXNlKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5TWFjOjpzZXRDdXJy
ZW50VGltZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94
eU1hYzo6cmVxdWVzdEV4aXRGdWxsU2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9G
dWxsU2NyZWVuTWFuYWdlclByb3h5TWFjOjplbnRlckZ1bGxTY3JlZW5Db21wbGV0ZWQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHlNYWM6OmV4aXRGdWxs
U2NyZWVuQ29tcGxldGVkKToKKworICAgICAgICBUaGUgZm9sbG93aW5nIGZ1bmN0aW9ucyByZWFj
dCB0byBtZXNzYWdlcyBmcm9tIHRoZSBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyIGFuZCBjYWNo
ZSB0aGVpciB2YWx1ZXM6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFn
ZXJQcm94eU1hYzo6Y2FuUGxheVVwZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVs
bFNjcmVlbk1hbmFnZXJQcm94eU1hYzo6dGltZVVwZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYzo6dm9sdW1lVXBkYXRlKToKKyAgICAgICAg
KFdlYktpdDo6V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5TWFjOjptdXRlVXBkYXRlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5TWFjOjpkdXJh
dGlvblVwZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQ
cm94eU1hYzo6bWVkaWFFbGVtZW50U2NyZWVuUmVjdFVwZGF0ZSk6CisgICAgICAgIAorICAgICAg
ICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OmNyZWF0ZSk6IENyZWF0
ZSBhIFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYy4KKyAgICAgICAgKFdlYktpdDo6
V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5TWFjOjpjcmVhdGUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHlNYWM6OldlYlZpZGVvRnVsbFNjcmVl
bk1hbmFnZXJQcm94eU1hYyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1h
bmFnZXJQcm94eU1hYzo6fldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYyk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYzo6ZW50ZXJGdWxs
U2NyZWVuKTogTGF6aWx5IGNyZWF0ZSB0aGUgd2luZG93IGNvbnRyb2xsZXIgYW5kIGVudGVyIGZ1
bGwtc2NyZWVuLgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJv
eHlNYWM6OmV4aXRGdWxsU2NyZWVuKTogIFRlbGwgdGhlIHdpbmRvdyBjb250cm9sbGVyIHRvIGV4
aXQgZnVsbC1zY3JlZW4uCisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFn
ZXJQcm94eU1hYzo6ZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSk6IFNldCB1cCB0aGUg
cmVuZGVyIGxheWVyIGhvc3RpbmcKKyAgICAgICAgICAgIHRoZSBsYXllciBpbiB0aGUgV2ViUHJv
Y2Vzcy4KKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5TWFj
OjpleGl0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUpOiBUZWFyIHRoYXQgbGF5ZXIgZG93bi4K
KyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5TWFjOjpnZXRG
dWxsU2NyZWVuUmVjdCk6IEdldCB0aGUgc2NyZWVuIHJlY3QgZm9yIHRoZSBjdXJyZW50IHNjcmVl
bi4KKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5TWFjOjpp
bnZhbGlkYXRlKToKKworMjAxMS0wNi0wMSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNv
bT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwogICAgICAgICBBZGRl
ZCBuZXcgY2xhc3M6IFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXIKIAogICAgICAgICBJbXBsZW1l
bnQgdmlkZW8gZnVsbC1zcmNlZW4gQVBJIGluIFdlYktpdDIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRnVsbFNjcmVlbi9XZWJWaWRlb0Z1bGxT
Y3JlZW5NYW5hZ2VyUHJveHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LmU3NDhmMzcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRnVs
bFNjcmVlbi9XZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHkuY3BwCkBAIC0wLDAgKzEsNjAg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViVmlkZW9G
dWxsU2NyZWVuTWFuYWdlclByb3h5LmgiCisKKyNpbmNsdWRlICJXZWJDb250ZXh0LmgiCisjaW5j
bHVkZSAiV2ViRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlZpZGVv
RnVsbFNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFn
ZXJQcm94eShXZWJQYWdlUHJveHkqIHBhZ2UpCisgICAgOiBtX3BhZ2UocGFnZSkKKyAgICAsIG1f
d2ViVmlldygwKQoreworfQorCitXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHk6On5XZWJW
aWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHkoKQoreworfQorCit2b2lkIFdlYlZpZGVvRnVsbFNj
cmVlbk1hbmFnZXJQcm94eTo6c2V0V2ViVmlldyhQbGF0Zm9ybVdlYlZpZXcqIHdlYlZpZXcpCit7
CisgICAgbV93ZWJWaWV3ID0gd2ViVmlldzsKK30KKwordm9pZCBXZWJWaWRlb0Z1bGxTY3JlZW5N
YW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5l
Y3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVj
b2RlciogYXJndW1lbnRzKQoreworICAgIGRpZFJlY2VpdmVXZWJWaWRlb0Z1bGxTY3JlZW5NYW5h
Z2VyUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKK30KKwor
dm9pZCBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVTeW5jTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVz
c2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cywgT3duUHRyPENvcmVJ
UEM6OkFyZ3VtZW50RW5jb2Rlcj4mIHJlcGx5KQoreworICAgIGRpZFJlY2VpdmVTeW5jV2ViVmlk
ZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFy
Z3VtZW50cywgcmVwbHkpOworfQorICAgICAgICAKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViVmlkZW9GdWxs
U2NyZWVuTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRnVsbFNjcmVl
bi9XZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi5mMTU2MmJiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5LmgKQEAg
LTAsMCArMSw5NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViVmlkZW9GdWxsU2NyZWVuTWFu
YWdlclByb3h5X2gKKyNkZWZpbmUgV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5X2gKKwor
I2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ludFJlY3QuaD4KKyNp
bmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFt
ZXNwYWNlIENvcmVJUEMgeworICAgIGNsYXNzIEFyZ3VtZW50RGVjb2RlcjsKKyAgICBjbGFzcyBD
b25uZWN0aW9uOworICAgIGNsYXNzIE1lc3NhZ2VJRDsKK30KKworI2lmIFBMQVRGT1JNKE1BQykK
K09CSkNfQ0xBU1MgV0tWaWV3OworI2VuZGlmCisKK25hbWVzcGFjZSBXZWJLaXQgeworCisjaWYg
UExBVEZPUk0oTUFDKQordHlwZWRlZiBXS1ZpZXcgUGxhdGZvcm1XZWJWaWV3OworI2VsaWYgUExB
VEZPUk0oV0lOKQorY2xhc3MgV2ViVmlldzsKK3R5cGVkZWYgV2ViVmlldyBQbGF0Zm9ybVdlYlZp
ZXc7CisjZWxpZiBQTEFURk9STShRVCkKK3R5cGVkZWYgUUdyYXBoaWNzV0tWaWV3IFBsYXRmb3Jt
V2ViVmlldzsKKyNlbGlmIFBMQVRGT1JNKEdUSykKK2NsYXNzIFdlYlZpZXc7Cit0eXBlZGVmIFdl
YlZpZXcgUGxhdGZvcm1XZWJWaWV3OworI2VuZGlmCisKK2NsYXNzIFdlYlBhZ2VQcm94eTsKK2Ns
YXNzIExheWVyVHJlZUNvbnRleHQ7CisKK2NsYXNzIFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQ
cm94eSA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eT4g
eworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFn
ZXJQcm94eT4gY3JlYXRlKFdlYlBhZ2VQcm94eSopOworICAgIHZpcnR1YWwgfldlYlZpZGVvRnVs
bFNjcmVlbk1hbmFnZXJQcm94eSgpOworCisgICAgdm9pZCBzZXRXZWJWaWV3KFBsYXRmb3JtV2Vi
VmlldyopOworCisgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGUoKSA9IDA7CisKKyAgICB2b2lk
IGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdl
SUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzLCBPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNv
ZGVyPiYgcmVwbHkpOworCitwcm90ZWN0ZWQ6CisgICAgV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdl
clByb3h5KFdlYlBhZ2VQcm94eSopOworICAgIAorICAgIHZpcnR1YWwgdm9pZCBlbnRlckZ1bGxT
Y3JlZW4oKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGV4aXRGdWxsU2NyZWVuKCkgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBlbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGNvbnN0IExheWVy
VHJlZUNvbnRleHQmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGV4aXRBY2NlbGVyYXRlZENvbXBv
c2l0aW5nTW9kZSgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0RnVsbFNjcmVlblJlY3QoV2Vi
Q29yZTo6SW50UmVjdCYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY2FuUGxheVVwZGF0ZShib29s
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHRpbWVVcGRhdGUoZmxvYXQpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgdm9sdW1lVXBkYXRlKGZsb2F0KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIG11dGVV
cGRhdGUoYm9vbCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkdXJhdGlvblVwZGF0ZShkb3VibGUp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgbWVkaWFFbGVtZW50U2NyZWVuUmVjdFVwZGF0ZShXZWJD
b3JlOjpJbnRSZWN0KSA9IDA7CisKKyAgICBXZWJQYWdlUHJveHkqIG1fcGFnZTsKKyAgICBQbGF0
Zm9ybVdlYlZpZXcqIG1fd2ViVmlldzsKKworICAgIHZvaWQgZGlkUmVjZWl2ZVdlYlZpZGVvRnVs
bFNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6
Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNl
aXZlU3luY1dlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBh
cmd1bWVudHMsIE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+JiByZXBseSk7Cit9Owor
ICAgIAorfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBXZWJWaWRlb0Z1bGxTY3Jl
ZW5NYW5hZ2VyUHJveHlfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Z1
bGxTY3JlZW4vV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdl
clByb3h5Lm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQw
N2NjZWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRnVsbFNj
cmVlbi9XZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KQEAgLTAsMCAr
MSwzNyBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
CisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAor
IyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCittZXNzYWdl
cyAtPiBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHkgeworICAgIEVudGVyRnVsbFNjcmVl
bigpIC0+ICgpCisgICAgRXhpdEZ1bGxTY3JlZW4oKSAtPiAoKQorICAgIENhblBsYXlVcGRhdGUo
Ym9vbCBjYW5QbGF5KQorICAgIFZvbHVtZVVwZGF0ZShmbG9hdCB2b2x1bWUpCisgICAgTXV0ZVVw
ZGF0ZShib29sIG11dGVkKQorICAgIFRpbWVVcGRhdGUoZG91YmxlIHRpbWUpCisgICAgRHVyYXRp
b25VcGRhdGUoZG91YmxlIGR1cmF0aW9uKQorICAgIEdldEZ1bGxTY3JlZW5SZWN0KCkgLT4gKFdl
YkNvcmU6OkludFJlY3QgcmVjdCkKKyAgICBNZWRpYUVsZW1lbnRTY3JlZW5SZWN0VXBkYXRlKFdl
YkNvcmU6OkludFJlY3QgcmVjdCkgLT4gKCkKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCisgICAgRW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShXZWJLaXQ6OkxheWVyVHJl
ZUNvbnRleHQgY29udGV4dCkgLT4gKCkKKyAgICBFeGl0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01v
ZGUoKSAtPiAoKQorI2VuZGlmCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvRnVsbFNjcmVlbi9tYWMvV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5TWFjLmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRnVsbFNjcmVlbi9tYWMvV2ViVmlkZW9GdWxsU2NyZWVu
TWFuYWdlclByb3h5TWFjLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzU2
ODk5YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9GdWxsU2Ny
ZWVuL21hYy9XZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHlNYWMuaApAQCAtMCwwICsxLDk1
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHlN
YWNfaAorI2RlZmluZSBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHlNYWNfaAorCisjaW1w
b3J0ICJXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHkuaCIKKworI2ltcG9ydCA8V2ViQ29y
ZS9JbnRSZWN0Lmg+CisjaW1wb3J0IDxXZWJDb3JlL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xs
ZXIuaD4KKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKworQGNsYXNzIFdlYlZpZGVvRGVsZWdh
dGU7CitAY2xhc3MgQ0FMYXllcjsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlZp
ZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYyA6IHB1YmxpYyBXZWJWaWRlb0Z1bGxTY3JlZW5N
YW5hZ2VyUHJveHkgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYlZpZGVvRnVs
bFNjcmVlbk1hbmFnZXJQcm94eU1hYz4gY3JlYXRlKFdlYlBhZ2VQcm94eSopOworCisgICAgdmly
dHVhbCB2b2lkIGVudGVyRnVsbFNjcmVlbigpOworICAgIHZpcnR1YWwgdm9pZCBleGl0RnVsbFNj
cmVlbigpOworICAgIHZpcnR1YWwgdm9pZCBlbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2Rl
KGNvbnN0IExheWVyVHJlZUNvbnRleHQmKTsKKyAgICB2aXJ0dWFsIHZvaWQgZXhpdEFjY2VsZXJh
dGVkQ29tcG9zaXRpbmdNb2RlKCk7CisgICAgdmlydHVhbCB2b2lkIGdldEZ1bGxTY3JlZW5SZWN0
KFdlYkNvcmU6OkludFJlY3QmKTsKKyAgICB2aXJ0dWFsIHZvaWQgY2FuUGxheVVwZGF0ZShib29s
IGNhblBsYXkpOworICAgIHZpcnR1YWwgdm9pZCB0aW1lVXBkYXRlKGZsb2F0IHRpbWUpOworICAg
IHZpcnR1YWwgdm9pZCB2b2x1bWVVcGRhdGUoZmxvYXQgdm9sdW1lKTsKKyAgICB2aXJ0dWFsIHZv
aWQgbXV0ZVVwZGF0ZShib29sKTsKKyAgICB2aXJ0dWFsIHZvaWQgZHVyYXRpb25VcGRhdGUoZG91
YmxlKTsKKyAgICB2aXJ0dWFsIHZvaWQgbWVkaWFFbGVtZW50U2NyZWVuUmVjdFVwZGF0ZShXZWJD
b3JlOjpJbnRSZWN0KTsKKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZSgpOworCisgICAgdm9p
ZCByZXF1ZXN0RXhpdEZ1bGxTY3JlZW4oKTsKKyAgICB2b2lkIGJlZ2luU2NydWJiaW5nKCk7Cisg
ICAgdm9pZCBlbmRTY3J1YmJpbmcoKTsKKyAgICBkb3VibGUgY3VycmVudFRpbWUoKSBjb25zdDsK
KyAgICB2b2lkIHNldEN1cnJlbnRUaW1lKGRvdWJsZSk7CisgICAgZG91YmxlIGR1cmF0aW9uKCkg
Y29uc3Q7CisgICAgZmxvYXQgdm9sdW1lKCkgY29uc3Q7CisgICAgdm9pZCBzZXRWb2x1bWUoZmxv
YXQpOworICAgIGJvb2wgbXV0ZWQoKSBjb25zdDsKKyAgICB2b2lkIHNldE11dGVkKGJvb2wpOwor
ICAgIGJvb2wgY2FuUGxheSgpIGNvbnN0OworICAgIHZvaWQgcGxheSgpOworICAgIHZvaWQgcGF1
c2UoKTsKKyAgICB2b2lkIHJld2luZChmbG9hdCBkZWx0YSk7CisgICAgV2ViQ29yZTo6SW50UmVj
dCBtZWRpYUVsZW1lbnRTY3JlZW5SZWN0KCkgY29uc3Q7CisgICAgdm9pZCBleGl0RnVsbFNjcmVl
bkNvbXBsZXRlZCgpOworICAgIHZvaWQgZW50ZXJGdWxsU2NyZWVuQ29tcGxldGVkKCk7CisKKyAg
ICBDQUxheWVyKiByb290TGF5ZXIoKTsKKyAgICAKK3ByaXZhdGU6CisgICAgV2ViVmlkZW9GdWxs
U2NyZWVuTWFuYWdlclByb3h5TWFjKFdlYlBhZ2VQcm94eSopOworICAgIHZpcnR1YWwgfldlYlZp
ZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYygpOyAgICAKKworICAgIGJvb2wgbV9jYW5QbGF5
OworICAgIGJvb2wgbV9tdXRlZDsKKyAgICBmbG9hdCBtX3ZvbHVtZTsKKyAgICBkb3VibGUgbV9j
dXJyZW50VGltZTsKKyAgICBkb3VibGUgbV9kdXJhdGlvbjsKKyAgICBXZWJDb3JlOjpJbnRSZWN0
IG1fbWVkaWFFbGVtZW50U2NyZWVuUmVjdDsKKyAgICAKKyAgICBSZXRhaW5QdHI8V2ViVmlkZW9G
dWxsc2NyZWVuQ29udHJvbGxlcj4gbV93aW5kb3dDb250cm9sbGVyOworICAgIFJldGFpblB0cjxX
ZWJWaWRlb0RlbGVnYXRlPiBtX2RlbGVnYXRlOworICAgIFJldGFpblB0cjxDQUxheWVyPiBtX3Jv
b3RMYXllcjsKK307CisKK30KKworI2VuZGlmIC8vIFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQ
cm94eU1hY19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRnVsbFNjcmVl
bi9tYWMvV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5TWFjLm1tIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0Z1bGxTY3JlZW4vbWFjL1dlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94
eU1hYy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZTMzZDNkCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Z1bGxTY3JlZW4vbWFjL1dl
YlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYy5tbQpAQCAtMCwwICsxLDM1NyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorCisjaW1wb3J0ICJXZWJWaWRlb0Z1bGxTY3Jl
ZW5NYW5hZ2VyUHJveHlNYWMuaCIKKworI2ltcG9ydCAiTGF5ZXJUcmVlQ29udGV4dC5oIgorI2lt
cG9ydCAiV2ViUGFnZVByb3h5LmgiCisjaW1wb3J0ICJXZWJQcm9jZXNzUHJveHkuaCIKKyNpbXBv
cnQgIldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdlcy5oIgorI2ltcG9ydCAiV2ViVmlk
ZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5LmgiCisjaW1wb3J0IDxXZWJDb3JlL0ludFJlY3QuaD4K
KyNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgorI2ltcG9ydCA8UXVhcnR6Q29yZS9R
dWFydHpDb3JlLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitAaW50ZXJmYWNlIFdl
YlZpZGVvRGVsZWdhdGUgOiBOU09iamVjdDxXZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyRGVs
ZWdhdGU+IHsKKyAgICBXZWJLaXQ6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYyog
X21hbmFnZXI7Cit9CistIChpZClpbml0V2l0aE1hbmFnZXI6KFdlYktpdDo6V2ViVmlkZW9GdWxs
U2NyZWVuTWFuYWdlclByb3h5TWFjKiltYW5hZ2VyOworQGVuZAorCitAaW1wbGVtZW50YXRpb24g
V2ViVmlkZW9EZWxlZ2F0ZQorLSAoaWQpaW5pdFdpdGhNYW5hZ2VyOihXZWJLaXQ6OldlYlZpZGVv
RnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYyAqKW1hbmFnZXIKK3sKKyAgICBzZWxmID0gW3N1cGVy
IGluaXRdOworICAgIGlmICghc2VsZikKKyAgICAgICAgcmV0dXJuIG5pbDsKKyAgICAKKyAgICBf
bWFuYWdlciA9IG1hbmFnZXI7CisgICAgcmV0dXJuIHNlbGY7Cit9CisKKy0gKEhUTUxNZWRpYUVs
ZW1lbnQqKW1lZGlhRWxlbWVudAoreworICAgIHJldHVybiAwOworfQorCistICh2b2lkKXJlcXVl
c3RFeGl0RnVsbHNjcmVlbgoreworICAgIF9tYW5hZ2VyLT5yZXF1ZXN0RXhpdEZ1bGxTY3JlZW4o
KTsKK30KKworLSAodm9pZCliZWdpblNjcnViYmluZworeworICAgIF9tYW5hZ2VyLT5iZWdpblNj
cnViYmluZygpOworfQorCistICh2b2lkKWVuZFNjcnViYmluZworeworICAgIF9tYW5hZ2VyLT5l
bmRTY3J1YmJpbmcoKTsKK30KKworLSAoZmxvYXQpY3VycmVudFRpbWUKK3sKKyAgICByZXR1cm4g
X21hbmFnZXItPmN1cnJlbnRUaW1lKCk7Cit9CisKKy0gKHZvaWQpc2V0Q3VycmVudFRpbWU6KGRv
dWJsZSljdXJyZW50VGltZQoreworICAgIF9tYW5hZ2VyLT5zZXRDdXJyZW50VGltZShjdXJyZW50
VGltZSk7Cit9CisKKy0gKGRvdWJsZSlkdXJhdGlvbgoreworICAgIHJldHVybiBfbWFuYWdlci0+
ZHVyYXRpb24oKTsKK30KKworLSAoZmxvYXQpdm9sdW1lCit7CisgICAgcmV0dXJuIF9tYW5hZ2Vy
LT52b2x1bWUoKTsKK30KKworLSAoQk9PTCltdXRlZAoreworICAgIHJldHVybiBfbWFuYWdlci0+
bXV0ZWQoKTsKK30KKworLSAodm9pZClzZXRNdXRlZDooQk9PTCltdXRlZAoreworICAgIF9tYW5h
Z2VyLT5zZXRNdXRlZChtdXRlZCk7Cit9CisKKy0gKHZvaWQpc2V0Vm9sdW1lOihmbG9hdCl2b2x1
bWUKK3sKKyAgICBfbWFuYWdlci0+c2V0Vm9sdW1lKHZvbHVtZSk7Cit9CisKKy0gKEJPT0wpY2Fu
UGxheQoreworICAgIHJldHVybiBfbWFuYWdlci0+Y2FuUGxheSgpOworfQorCistICh2b2lkKXBs
YXkKK3sKKyAgICBfbWFuYWdlci0+cGxheSgpOworfQorCistICh2b2lkKXBhdXNlCit7CisgICAg
X21hbmFnZXItPnBhdXNlKCk7Cit9CisKKy0gKHZvaWQpcmV3aW5kOihmbG9hdClkZWx0YQorewor
ICAgIF9tYW5hZ2VyLT5yZXdpbmQoZGVsdGEpOworfQorCistIChOU1JlY3QpbWVkaWFFbGVtZW50
U2NyZWVuUmVjdAoreworICAgIHJldHVybiBfbWFuYWdlci0+bWVkaWFFbGVtZW50U2NyZWVuUmVj
dCgpOworfQorCistICh2b2lkKXJlbGVhc2VNZWRpYUVsZW1lbnRMYXllcgoreworfQorCistIChD
QUxheWVyKilzdGVhbE1lZGlhRWxlbWVudExheWVyCit7CisgICAgcmV0dXJuIF9tYW5hZ2VyLT5y
b290TGF5ZXIoKTsKK30KKworLSAodm9pZCllbnRlckZ1bGxTY3JlZW5Db21wbGV0ZWQKK3sKKyAg
ICBfbWFuYWdlci0+ZW50ZXJGdWxsU2NyZWVuQ29tcGxldGVkKCk7Cit9CisKKy0gKHZvaWQpZXhp
dEZ1bGxTY3JlZW5Db21wbGV0ZWQKK3sKKyAgICBfbWFuYWdlci0+ZXhpdEZ1bGxTY3JlZW5Db21w
bGV0ZWQoKTsKK30KK0BlbmQKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1Bhc3NSZWZQdHI8V2Vi
VmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5PiBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJv
eHk6OmNyZWF0ZShXZWJQYWdlUHJveHkqIHBhZ2UpCit7CisgICAgcmV0dXJuIFdlYlZpZGVvRnVs
bFNjcmVlbk1hbmFnZXJQcm94eU1hYzo6Y3JlYXRlKHBhZ2UpOworfQorCitQYXNzUmVmUHRyPFdl
YlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYz4gV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdl
clByb3h5TWFjOjpjcmVhdGUoV2ViUGFnZVByb3h5KiBwYWdlKQoreworICAgIHJldHVybiBhZG9w
dFJlZihuZXcgV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5TWFjKHBhZ2UpKTsKK30KKwor
V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5TWFjOjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5h
Z2VyUHJveHlNYWMoV2ViUGFnZVByb3h5KiBwYWdlKQorICAgIDogV2ViVmlkZW9GdWxsU2NyZWVu
TWFuYWdlclByb3h5KHBhZ2UpCisgICAgLCBtX2NhblBsYXkoZmFsc2UpCisgICAgLCBtX211dGVk
KGZhbHNlKQorICAgICwgbV92b2x1bWUoMCkKKyAgICAsIG1fY3VycmVudFRpbWUoMCkKKyAgICAs
IG1fZHVyYXRpb24oMCkKKyAgICAsIG1fZGVsZWdhdGUoQWRvcHROUywgW1tXZWJWaWRlb0RlbGVn
YXRlIGFsbG9jXSBpbml0V2l0aE1hbmFnZXI6dGhpc10pCit7Cit9CisKK1dlYlZpZGVvRnVsbFNj
cmVlbk1hbmFnZXJQcm94eU1hYzo6fldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYygp
Cit7Cit9CisKK3ZvaWQgV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5TWFjOjplbnRlckZ1
bGxTY3JlZW4oKQoreworICAgIGlmICghbV93aW5kb3dDb250cm9sbGVyKSB7CisgICAgICAgIG1f
d2luZG93Q29udHJvbGxlci5hZG9wdE5TKFtbV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlciBh
bGxvY10gaW5pdF0pOworICAgICAgICBbbV93aW5kb3dDb250cm9sbGVyLmdldCgpIHNldERlbGVn
YXRlOm1fZGVsZWdhdGUuZ2V0KCldOworICAgIH0KKworICAgIE5TU2NyZWVuKiBzY3JlZW4gPSBb
TlNTY3JlZW4gbWFpblNjcmVlbl07CisgICAgW21fd2luZG93Q29udHJvbGxlci5nZXQoKSBlbnRl
ckZ1bGxzY3JlZW46c2NyZWVuXTsKK30KKwordm9pZCBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2Vy
UHJveHlNYWM6OmV4aXRGdWxsU2NyZWVuKCkKK3sKKyAgICBbbV93aW5kb3dDb250cm9sbGVyLmdl
dCgpIGV4aXRGdWxsc2NyZWVuXTsKK30KKwordm9pZCBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2Vy
UHJveHlNYWM6OmVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJUcmVl
Q29udGV4dCYgY29udGV4dCkKK3sKKyAgICBtX3Jvb3RMYXllci5hZG9wdE5TKFtbQ0FMYXllciBh
bGxvY10gaW5pdF0pOworI2lmbmRlZiBOREVCVUcKKyAgICBbbV9yb290TGF5ZXIuZ2V0KCkgc2V0
TmFtZTpAIkhvc3Rpbmcgcm9vdCBsYXllciJdOworI2VuZGlmCisgICAgCisgICAgQ0FMYXllciAq
cmVuZGVyTGF5ZXIgPSBXS01ha2VSZW5kZXJMYXllcihjb250ZXh0LmNvbnRleHRJRCk7CisgICAg
W21fcm9vdExheWVyLmdldCgpIGFkZFN1YmxheWVyOnJlbmRlckxheWVyXTsKK30KKwordm9pZCBX
ZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHlNYWM6OmV4aXRBY2NlbGVyYXRlZENvbXBvc2l0
aW5nTW9kZSgpCit7CisgICAgW21fcm9vdExheWVyLmdldCgpIHNldFN1YmxheWVyczpuaWxdOwor
ICAgIFttX3Jvb3RMYXllci5nZXQoKSByZW1vdmVGcm9tU3VwZXJsYXllcl07CisgICAgbV9yb290
TGF5ZXIgPSBudWxscHRyOworfQorCitDQUxheWVyKiBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2Vy
UHJveHlNYWM6OnJvb3RMYXllcigpCit7CisgICAgcmV0dXJuIG1fcm9vdExheWVyLmdldCgpOwor
fQorCit2b2lkIFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYzo6c2V0TXV0ZWQoYm9v
bCBtdXRlZCkKK3sKKyAgICBtX3BhZ2UtPnByb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6V2ViVmlk
ZW9GdWxsU2NyZWVuTWFuYWdlcjo6U2V0TXV0ZWQobXV0ZWQpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsK
K30KKwordm9pZCBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHlNYWM6OnJld2luZChmbG9h
dCBkZWx0YSkKK3sKKyAgICBtX3BhZ2UtPnByb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6V2ViVmlk
ZW9GdWxsU2NyZWVuTWFuYWdlcjo6UmV3aW5kKGRlbHRhKSwgbV9wYWdlLT5wYWdlSUQoKSk7Cit9
CisKK2Jvb2wgV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5TWFjOjpjYW5QbGF5KCkgY29u
c3QgCit7CisgICAgcmV0dXJuIG1fY2FuUGxheTsKK30KKworZG91YmxlIFdlYlZpZGVvRnVsbFNj
cmVlbk1hbmFnZXJQcm94eU1hYzo6ZHVyYXRpb24oKSBjb25zdAoreworICAgIHJldHVybiBtX2R1
cmF0aW9uOworfQorCit2b2lkIFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYzo6c2V0
Vm9sdW1lKGZsb2F0IHZvbHVtZSkKK3sKKyAgICBtX3BhZ2UtPnByb2Nlc3MoKS0+c2VuZChNZXNz
YWdlczo6V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlcjo6U2V0Vm9sdW1lKHZvbHVtZSksIG1fcGFn
ZS0+cGFnZUlEKCkpOworfQorCit2b2lkIFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1h
Yzo6YmVnaW5TY3J1YmJpbmcoKQoreworICAgIG1fcGFnZS0+cHJvY2VzcygpLT5zZW5kKE1lc3Nh
Z2VzOjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyOjpCZWdpblNjcnViYmluZygpLCBtX3BhZ2Ut
PnBhZ2VJRCgpKTsKK30KKwordm9pZCBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHlNYWM6
OmVuZFNjcnViYmluZygpCit7CisgICAgbV9wYWdlLT5wcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6
OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXI6OkVuZFNjcnViYmluZygpLCBtX3BhZ2UtPnBhZ2VJ
RCgpKTsKK30KKworYm9vbCBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHlNYWM6Om11dGVk
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9tdXRlZDsKK30KKworZmxvYXQgV2ViVmlkZW9GdWxs
U2NyZWVuTWFuYWdlclByb3h5TWFjOjp2b2x1bWUoKSBjb25zdAoreworICAgIHJldHVybiBtX3Zv
bHVtZTsKK30KKwordm9pZCBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHlNYWM6OnBsYXko
KQoreworICAgIG1fcGFnZS0+cHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxT
Y3JlZW5NYW5hZ2VyOjpQbGF5KCksIG1fcGFnZS0+cGFnZUlEKCkpOworfQorCit2b2lkIFdlYlZp
ZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYzo6cGF1c2UoKQoreworICAgIG1fcGFnZS0+cHJv
Y2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyOjpQYXVzZSgp
LCBtX3BhZ2UtPnBhZ2VJRCgpKTsKK30KKworZG91YmxlIFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFn
ZXJQcm94eU1hYzo6Y3VycmVudFRpbWUoKSBjb25zdAoreworICAgIHJldHVybiBtX2N1cnJlbnRU
aW1lOworfQorCit2b2lkIFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYzo6c2V0Q3Vy
cmVudFRpbWUoZG91YmxlIGN1cnJlbnRUaW1lKQoreworICAgIG1fcGFnZS0+cHJvY2VzcygpLT5z
ZW5kKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyOjpTZXRDdXJyZW50VGltZShj
dXJyZW50VGltZSksIG1fcGFnZS0+cGFnZUlEKCkpOworfQorCit2b2lkIFdlYlZpZGVvRnVsbFNj
cmVlbk1hbmFnZXJQcm94eU1hYzo6cmVxdWVzdEV4aXRGdWxsU2NyZWVuKCkKK3sKKyAgICBtX3Bh
Z2UtPnByb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlcjo6
UmVxdWVzdEV4aXRGdWxsU2NyZWVuKCksIG1fcGFnZS0+cGFnZUlEKCkpOworfQorCit2b2lkIFdl
YlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYzo6Z2V0RnVsbFNjcmVlblJlY3QoSW50UmVj
dCYgcmVjdCkKK3sKKyAgICBOU1NjcmVlbiogc2NyZWVuID0gW05TU2NyZWVuIG1haW5TY3JlZW5d
OworICAgIHJlY3QgPSBlbmNsb3NpbmdJbnRSZWN0KFtzY3JlZW4gZnJhbWVdKTsKK30KKwordm9p
ZCBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHlNYWM6OmNhblBsYXlVcGRhdGUoYm9vbCBj
YW5QbGF5KQoreworICAgIG1fY2FuUGxheSA9IGNhblBsYXk7CisgICAgW21fd2luZG93Q29udHJv
bGxlci5nZXQoKSB1cGRhdGVQbGF5U3RhdGVdOworfQorCit2b2lkIFdlYlZpZGVvRnVsbFNjcmVl
bk1hbmFnZXJQcm94eU1hYzo6dGltZVVwZGF0ZShmbG9hdCB0aW1lKQoreworICAgIG1fY3VycmVu
dFRpbWUgPSB0aW1lOworICAgIFttX3dpbmRvd0NvbnRyb2xsZXIuZ2V0KCkgdXBkYXRlVGltZV07
Cit9CisKK3ZvaWQgV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5TWFjOjp2b2x1bWVVcGRh
dGUoZmxvYXQgdm9sdW1lKQoreworICAgIG1fdm9sdW1lID0gdm9sdW1lOworICAgIFttX3dpbmRv
d0NvbnRyb2xsZXIuZ2V0KCkgdXBkYXRlVm9sdW1lXTsKK30KKwordm9pZCBXZWJWaWRlb0Z1bGxT
Y3JlZW5NYW5hZ2VyUHJveHlNYWM6Om11dGVVcGRhdGUoYm9vbCBtdXRlZCkKK3sKKyAgICBtX211
dGVkID0gbXV0ZWQ7Cit9CisKK3ZvaWQgV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5TWFj
OjpkdXJhdGlvblVwZGF0ZShkb3VibGUgZHVyYXRpb24pCit7CisgICAgbV9kdXJhdGlvbiA9IGR1
cmF0aW9uOworICAgIFttX3dpbmRvd0NvbnRyb2xsZXIuZ2V0KCkgdXBkYXRlVGltZV07Cit9CisK
K3ZvaWQgV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5TWFjOjptZWRpYUVsZW1lbnRTY3Jl
ZW5SZWN0VXBkYXRlKEludFJlY3QgcmVjdCkKK3sKKyAgICBtX21lZGlhRWxlbWVudFNjcmVlblJl
Y3QgPSByZWN0OworfQorCitJbnRSZWN0IFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1h
Yzo6bWVkaWFFbGVtZW50U2NyZWVuUmVjdCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fbWVkaWFF
bGVtZW50U2NyZWVuUmVjdDsKK30KKwordm9pZCBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJv
eHlNYWM6OmVudGVyRnVsbFNjcmVlbkNvbXBsZXRlZCgpCit7CisgICAgbV9wYWdlLT5wcm9jZXNz
KCktPnNlbmQoTWVzc2FnZXM6OldlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXI6OkVudGVyRnVsbFNj
cmVlbkNvbXBsZXRlZCgpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKK30KKwordm9pZCBXZWJWaWRlb0Z1
bGxTY3JlZW5NYW5hZ2VyUHJveHlNYWM6OmV4aXRGdWxsU2NyZWVuQ29tcGxldGVkKCkKK3sKKyAg
ICBtX3BhZ2UtPnByb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6V2ViVmlkZW9GdWxsU2NyZWVuTWFu
YWdlcjo6RXhpdEZ1bGxTY3JlZW5Db21wbGV0ZWQoKSwgbV9wYWdlLT5wYWdlSUQoKSk7CisgICAg
bV93aW5kb3dDb250cm9sbGVyID0gbnVsbHB0cjsKK30KKwordm9pZCBXZWJWaWRlb0Z1bGxTY3Jl
ZW5NYW5hZ2VyUHJveHlNYWM6OmludmFsaWRhdGUoKQoreworICAgIFttX3dpbmRvd0NvbnRyb2xs
ZXIuZ2V0KCkgY2xvc2VdOworICAgIG1fd2luZG93Q29udHJvbGxlciA9IG51bGxwdHI7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCi0tIAoxLjcuNC40Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>95662</attachid>
            <date>2011-06-01 14:19:56 -0700</date>
            <delta_ts>2012-01-30 15:27:47 -0800</delta_ts>
            <desc>[PATCH 3/4] Add new classes to project, and add support for their</desc>
            <filename>0003-Add-new-classes-to-project-and-add-support-for-their.patch</filename>
            <type>text/plain</type>
            <size>21607</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">RnJvbSA5ODg0MmM3NDU1ZDQxZTkxMzY0YTc2MDA4ZTFmYjgzYTc4MTMxNDkwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKZXIgTm9ibGUgPGplci5ub2JsZUBhcHBsZS5jb20+CkRhdGU6
IFdlZCwgMSBKdW4gMjAxMSAxMzo1ODo0NSAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMy80XSBBZGQg
bmV3IGNsYXNzZXMgdG8gcHJvamVjdCwgYW5kIGFkZCBzdXBwb3J0IGZvciB0aGVpcgogV2ViS2l0
MiBtZXNzYWdlIHBhc3NpbmcuCgotLS0KIFNvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLm1h
a2UgICAgICAgICAgICAgICB8ICAgIDMgKwogU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQ
Qy9NZXNzYWdlSUQuaCAgICAgIHwgICAgMiArCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcCAgICAgICAgfCAgIDI0ICsrKysrKysrLQogU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oICAgICAgICAgIHwgICAgNiArKwogU291cmNlL1dlYktpdDIv
V2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIHwgICA2MSArKysrKysrKysrKysrKysr
KysrKysrCiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgICAg
fCAgIDE3ICsrKysrKwogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aCAgICAgIHwgICAxMCArKysrCiA3IGZpbGVzIGNoYW5nZWQsIDEyMiBpbnNlcnRpb25zKCspLCAx
IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UgYi9Tb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDg2NTA1MGMu
LmUzNmQ3MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLm1ha2UK
KysrIGIvU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMzksNiArMzksNyBA
QCBWUEFUSCA9IFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MgXAogICAgICQoV2ViS2l0Mikv
VUlQcm9jZXNzIFwKICAgICAkKFdlYktpdDIpL1VJUHJvY2Vzcy9Eb3dubG9hZHMgXAorICAgICQo
V2ViS2l0MikvVUlQcm9jZXNzL0Z1bGxTY3JlZW4gXAogICAgICQoV2ViS2l0MikvVUlQcm9jZXNz
L1BsdWdpbnMgXAogIwogCkBAIC03OCw2ICs3OSw4IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAog
ICAgIFdlYlByb2Nlc3NQcm94eSBcCiAgICAgV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXIgXAogICAg
IFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkgXAorICAgIFdlYlZpZGVvRnVsbFNjcmVlbk1h
bmFnZXIgXAorICAgIFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eSBcCiAjCiAKIFNDUklQ
VFMgPSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3Nh
Z2VJRC5oIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlSUQuaAppbmRl
eCAwYjUyODA2Li5lMGQ5ZjY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9D
b3JlSVBDL01lc3NhZ2VJRC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMv
TWVzc2FnZUlELmgKQEAgLTUxLDYgKzUxLDcgQEAgZW51bSBNZXNzYWdlQ2xhc3MgewogICAgIE1l
c3NhZ2VDbGFzc1dlYlBhZ2UsCiAgICAgTWVzc2FnZUNsYXNzV2ViUHJvY2VzcywKICAgICBNZXNz
YWdlQ2xhc3NXZWJSZXNvdXJjZUNhY2hlTWFuYWdlciwKKyAgICBNZXNzYWdlQ2xhc3NXZWJWaWRl
b0Z1bGxTY3JlZW5NYW5hZ2VyLAogCiAgICAgLy8gTWVzc2FnZXMgc2VudCBieSB0aGUgd2ViIHBy
b2Nlc3MgdG8gdGhlIFVJIHByb2Nlc3MuCiAgICAgTWVzc2FnZUNsYXNzRG93bmxvYWRQcm94eSwK
QEAgLTcwLDYgKzcxLDcgQEAgZW51bSBNZXNzYWdlQ2xhc3MgewogICAgIE1lc3NhZ2VDbGFzc1dl
YlBhZ2VQcm94eSwKICAgICBNZXNzYWdlQ2xhc3NXZWJQcm9jZXNzUHJveHksCiAgICAgTWVzc2Fn
ZUNsYXNzV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eSwKKyAgICBNZXNzYWdlQ2xhc3NXZWJW
aWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHksCiAKICAgICAvLyBNZXNzYWdlcyBzZW50IGJ5IHRo
ZSBVSSBwcm9jZXNzIHRvIHRoZSBwbHVnLWluIHByb2Nlc3MuCiAgICAgTWVzc2FnZUNsYXNzUGx1
Z2luUHJvY2VzcywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5k
ZXggZGMzZGJkOS4uOTdhYWNjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAKQEAgLTcxLDYgKzcxLDcgQEAKICNpbmNsdWRlICJXZWJQcm90ZWN0aW9uU3BhY2Uu
aCIKICNpbmNsdWRlICJXZWJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIldlYlVSTFJlcXVl
c3QuaCIKKyNpbmNsdWRlICJXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHkuaCIKICNpbmNs
dWRlIDxXZWJDb3JlL0RyYWdEYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFJlY3QuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0ZvY3VzRGlyZWN0aW9uLmg+CkBAIC0xMzkyLDYgKzEzOTMsMTEg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok0KICAgICB9CiAjZW5kaWYKIAorICAgIGlmIChtZXNz
YWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclBy
b3h5PigpKSB7CisgICAgICAgIHZpZGVvRnVsbFNjcmVlbk1hbmFnZXIoKS0+ZGlkUmVjZWl2ZU1l
c3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgICAgICByZXR1cm47
CisgICAgfQorCiAgICAgZGlkUmVjZWl2ZVdlYlBhZ2VQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwg
bWVzc2FnZUlELCBhcmd1bWVudHMpOwogfQogCkBAIC0xNDEyLDYgKzE0MTgsMTEgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBj
b25uZWN0aW9uLCBDb3JlSVAKICAgICB9CiAjZW5kaWYKIAorICAgIGlmIChtZXNzYWdlSUQuaXM8
Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5PigpKSB7
CisgICAgICAgIHZpZGVvRnVsbFNjcmVlbk1hbmFnZXIoKS0+ZGlkUmVjZWl2ZVN5bmNNZXNzYWdl
KGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzLCByZXBseSk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKICAgICAvLyBGSVhNRTogRG8gc29tZXRoaW5nIHdpdGggcmVwbHkuCiAgICAg
ZGlkUmVjZWl2ZVN5bmNXZWJQYWdlUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwg
YXJndW1lbnRzLCByZXBseSk7CiB9CkBAIC0yMTc4LDkgKzIxODksMTUgQEAgV2ViSW5zcGVjdG9y
UHJveHkqIFdlYlBhZ2VQcm94eTo6aW5zcGVjdG9yKCkKICAgICAgICAgbV9pbnNwZWN0b3IgPSBX
ZWJJbnNwZWN0b3JQcm94eTo6Y3JlYXRlKHRoaXMpOwogICAgIHJldHVybiBtX2luc3BlY3Rvci5n
ZXQoKTsKIH0KLQogI2VuZGlmCiAKK1dlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eSogV2Vi
UGFnZVByb3h5Ojp2aWRlb0Z1bGxTY3JlZW5NYW5hZ2VyKCkKK3sKKyAgICBpZiAoIW1fdmlkZW9G
dWxsU2NyZWVuTWFuYWdlcikKKyAgICAgICAgbV92aWRlb0Z1bGxTY3JlZW5NYW5hZ2VyID0gV2Vi
VmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5OjpjcmVhdGUodGhpcyk7CisgICAgcmV0dXJuIG1f
dmlkZW9GdWxsU2NyZWVuTWFuYWdlci5nZXQoKTsKK30KKwogI2lmIEVOQUJMRShGVUxMU0NSRUVO
X0FQSSkKIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkqIFdlYlBhZ2VQcm94eTo6ZnVsbFNjcmVl
bk1hbmFnZXIoKQogewpAQCAtMjg5Miw2ICsyOTA5LDExIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpw
cm9jZXNzRGlkQ3Jhc2goKQogICAgIH0KICNlbmRpZgogCisgICAgaWYgKG1fdmlkZW9GdWxsU2Ny
ZWVuTWFuYWdlcikgeworICAgICAgICBtX3ZpZGVvRnVsbFNjcmVlbk1hbmFnZXItPmludmFsaWRh
dGUoKTsKKyAgICAgICAgbV92aWRlb0Z1bGxTY3JlZW5NYW5hZ2VyID0gbnVsbHB0cjsKKyAgICB9
CisKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgaWYgKG1fZnVsbFNjcmVlbk1hbmFn
ZXIpIHsKICAgICAgICAgbV9mdWxsU2NyZWVuTWFuYWdlci0+aW52YWxpZGF0ZSgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDM2YmEzOTkuLjYwNmI3NWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTEwNCw3ICsxMDQsOSBA
QCBjbGFzcyBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5OwogY2xhc3MgV2ViUGFnZUdy
b3VwOwogY2xhc3MgV2ViUHJvY2Vzc1Byb3h5OwogY2xhc3MgV2ViVVJMUmVxdWVzdDsKK2NsYXNz
IFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXI7CiBjbGFzcyBXZWJXaGVlbEV2ZW50OworY2xhc3Mg
V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5Owogc3RydWN0IEF0dHJpYnV0ZWRTdHJpbmc7
CiBzdHJ1Y3QgRGljdGlvbmFyeVBvcHVwSW5mbzsKIHN0cnVjdCBFZGl0b3JTdGF0ZTsKQEAgLTE5
MCw2ICsxOTIsOCBAQCBwdWJsaWM6CiAgICAgV2ViSW5zcGVjdG9yUHJveHkqIGluc3BlY3Rvcigp
OwogI2VuZGlmCiAKKyAgICBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHkqIHZpZGVvRnVs
bFNjcmVlbk1hbmFnZXIoKTsKKwogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICBXZWJG
dWxsU2NyZWVuTWFuYWdlclByb3h5KiBmdWxsU2NyZWVuTWFuYWdlcigpOwogI2VuZGlmCkBAIC03
ODQsNiArNzg4LDggQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8V2ViSW5zcGVjdG9yUHJveHk+IG1f
aW5zcGVjdG9yOwogI2VuZGlmCiAKKyAgICBSZWZQdHI8V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdl
clByb3h5PiBtX3ZpZGVvRnVsbFNjcmVlbk1hbmFnZXI7CisKICNpZiBFTkFCTEUoRlVMTFNDUkVF
Tl9BUEkpCiAgICAgUmVmUHRyPFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk+IG1fZnVsbFNjcmVl
bk1hbmFnZXI7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCAzNjM0NTZiLi4zMDc2ODdiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC03OTUsMTAgKzc5
NSwxNyBAQAogCQlDNTc0QTU4MjEyRTY2NjgxMDAyREZFOTggLyogUGFzdGVib2FyZFR5cGVzLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzU3NEE1ODAx
MkU2NjY4MTAwMkRGRTk4IC8qIFBhc3RlYm9hcmRUeXBlcy5tbSAqLzsgfTsKIAkJQ0Q1QzY2QTAx
MzRCOUQzODAwNEZFMkE4IC8qIEluamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q1QzY2OUUx
MzRCOUQzNjAwNEZFMkE4IC8qIEluamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuY3Bw
ICovOyB9OwogCQlDRDVDNjZBMTEzNEI5RDM4MDA0RkUyQTggLyogSW5qZWN0ZWRCdW5kbGVQYWdl
RnVsbFNjcmVlbkNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0Q1QzY2OUYxMzRCOUQzNzAwNEZFMkE4IC8qIEluamVjdGVkQnVuZGxlUGFnZUZ1
bGxTY3JlZW5DbGllbnQuaCAqLzsgfTsKKwkJQ0Q1RDI4MTQxMzk0RENGNTAwNTMxOTVEIC8qIFdl
YlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDhCMzMxNTEzOTRDQzUwMDBF
RDk3QUIgLyogV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNw
cCAqLzsgfTsKKwkJQ0Q1RDI4MTUxMzk0RENGQjAwNTMxOTVEIC8qIFdlYlZpZGVvRnVsbFNjcmVl
bk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0Q4QjMzMTMxMzk0Q0M1MDAwRUQ5N0FCIC8qIFdlYlZpZGVvRnVs
bFNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OworCQlDRDVEMjgxQjEzOTRF
MDMyMDA1MzE5NUQgLyogV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5TWFjLmggaW4gQ29w
eUZpbGVzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENUQyODE3MTM5NEUw
MzIwMDUzMTk1RCAvKiBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHlNYWMuaCAqLzsgfTsK
KwkJQ0Q1RDI4MjkxMzk0RjMyMTAwNTMxOTVEIC8qIFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQ
cm94eU1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IENENUQyODE4MTM5NEUwMzIwMDUzMTk1RCAvKiBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJv
eHlNYWMubW0gKi87IH07CiAJCUNENkY3NUY0MTMxQjY2RDAwMEQ2QjIxRSAvKiBXZWJGdWxsU2Ny
ZWVuTWFuYWdlclByb3h5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENENzNCQTNFMTMxQTJFOEEwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdl
clByb3h5LmNwcCAqLzsgfTsKIAkJQ0Q3M0JBNDcxMzFBQ0M5QTAwRUVERUQyIC8qIFdlYkZ1bGxT
Y3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q3M0JBNDUxMzFBQ0M4ODAwRUVERUQyIC8qIFdl
YkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQlDRDcz
QkE0RTEzMUFDREI3MDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q3
M0JBNDgxMzFBQ0Q4RTAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyTWVzc2FnZVJlY2Vp
dmVyLmNwcCAqLzsgfTsKIAkJQ0Q3M0JBNTMxMzFCNjQ1QjAwRUVERUQyIC8qIFdlYkZ1bGxTY3Jl
ZW5NYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IENENzNCQTM3MTMxQTI5RkUwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlci5jcHAg
Ki87IH07CisJCUNEOEIzMzExMTM5NENDMjAwMEVEOTdBQiAvKiBXZWJWaWRlb0Z1bGxTY3JlZW5N
YW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IENEOEIzMzA0MTM5NEM2MDMwMEVEOTdBQiAvKiBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyLmNw
cCAqLzsgfTsKKwkJQ0Q4QjMzMTIxMzk0Q0MyQzAwRUQ5N0FCIC8qIFdlYlZpZGVvRnVsbFNjcmVl
bk1hbmFnZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDRDhCMzMwQjEzOTRDOERFMDBFRDk3QUIgLyogV2ViVmlkZW9GdWxsU2NyZWVuTWFu
YWdlclByb3h5LmNwcCAqLzsgfTsKKwkJQ0Q4QjMzMUYxMzk0RDlCRDAwRUQ5N0FCIC8qIFdlYlZp
ZGVvRnVsbFNjcmVlbk1hbmFnZXJNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDRDhCMzMxQzEzOTRENkExMDBFRDk3QUIgLyogV2ViVmlkZW9GdWxs
U2NyZWVuTWFuYWdlck1hYy5tbSAqLzsgfTsKIAkJQ0RDQTg1QzgxMzJBQkE0RTAwRTk2MURGIC8q
IFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRENBODVDNjEzMkFCQTRFMDBFOTYxREYgLyogV0tGdWxs
U2NyZWVuV2luZG93Q29udHJvbGxlci5tbSAqLzsgfTsKIAkJQ0RDQTg1QzkxMzJBQkE0RTAwRTk2
MURGIC8qIFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQ0E4NUM3MTMyQUJBNEUwMEU5NjFERiAvKiBX
S0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLmggKi87IH07CiAJCUNEQ0E4NUQ1MTMyQUMyQjMw
MEU5NjFERiAvKiBJT0tpdC5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDRENBODVENDEzMkFDMkIzMDBFOTYxREYgLyogSU9LaXQuZnJh
bWV3b3JrICovOyB9OwpAQCAtOTA2LDYgKzkxMyw3IEBACiAJCQlmaWxlcyA9ICgKIAkJCQkxQTUw
REI2NjExMEEzRDU3MDAwRDNGRTUgLyogV2ViUHJvY2Vzcy5hcHAgaW4gQ29weUZpbGVzICovLAog
CQkJCUJDREUwQUJGMTMyNzI3MDgwMDEyNTlGQiAvKiBQbHVnaW5Qcm9jZXNzLmFwcCBpbiBDb3B5
RmlsZXMgKi8sCisJCQkJQ0Q1RDI4MUIxMzk0RTAzMjAwNTMxOTVEIC8qIFdlYlZpZGVvRnVsbFNj
cmVlbk1hbmFnZXJQcm94eU1hYy5oIGluIENvcHlGaWxlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5
Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTE3NTEsNiArMTc1OSw4
IEBACiAJCUM1NzRBNTgwMTJFNjY2ODEwMDJERkU5OCAvKiBQYXN0ZWJvYXJkVHlwZXMubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQYXN0ZWJvYXJkVHlwZXMubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENUM2NjlFMTM0QjlEMzYwMDRGRTJBOCAv
KiBJbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDVDNjY5RjEzNEI5RDM3MDA0RkUy
QTggLyogSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENUQyODE3MTM5NEUwMzIwMDUzMTk1RCAv
KiBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHlNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5TWFjLmg7IHBhdGgg
PSBGdWxsU2NyZWVuL21hYy9XZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHlNYWMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q1RDI4MTgxMzk0RTAzMjAwNTMxOTVEIC8qIFdl
YlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgbmFtZSA9IFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYy5tbTsg
cGF0aCA9IEZ1bGxTY3JlZW4vbWFjL1dlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1hYy5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q3M0JBMzcxMzFBMjlGRTAwRUVERUQy
IC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgbmFtZSA9IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyLmNwcDsgcGF0aCA9IEZ1bGxTY3JlZW4vV2Vi
RnVsbFNjcmVlbk1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDcz
QkEzODEzMUEyOUZFMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViRnVsbFNjcmVlbk1hbmFnZXIuaDsgcGF0aCA9IEZ1
bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQ0Q3M0JBMzkxMzFBMjlGRTAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyLm1l
c3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyLm1l
c3NhZ2VzLmluOyBwYXRoID0gRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5tZXNzYWdl
cy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3NjEsNiArMTc3MSwxOCBAQAog
CQlDRDczQkE0ODEzMUFDRDhFMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdl
UmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViRnVs
bFNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlDRDczQkE0OTEzMUFDRDhFMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJN
ZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJGdWxsU2NyZWVu
TWFuYWdlck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENzNCQTRB
MTMxQUNEOEYwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZXMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94
eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEOEIzMzA0MTM5NEM2
MDMwMEVEOTdBQiAvKiBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXIuY3BwOyBw
YXRoID0gRnVsbFNjcmVlbi9XZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q4QjMzMDUxMzk0QzYwMzAwRUQ5N0FCIC8qIFdlYlZpZGVv
RnVsbFNjcmVlbk1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2Vi
VmlkZW9GdWxsU2NyZWVuTWFuYWdlci5oOyBwYXRoID0gRnVsbFNjcmVlbi9XZWJWaWRlb0Z1bGxT
Y3JlZW5NYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEOEIzMzA2MTM5
NEM2MDMwMEVEOTdBQiAvKiBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgbmFtZSA9IFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXIubWVzc2FnZXMu
aW47IHBhdGggPSBGdWxsU2NyZWVuL1dlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXIubWVzc2FnZXMu
aW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEOEIzMzBCMTM5NEM4REUwMEVEOTdB
QiAvKiBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5LmNwcDsg
cGF0aCA9IEZ1bGxTY3JlZW4vV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q4QjMzMEMxMzk0QzhERTAwRUQ5N0FCIC8qIFdl
YlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHkuaDsgcGF0aCA9IEZ1bGxTY3Jl
ZW4vV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUNEOEIzMzBEMTM5NEM4REUwMEVEOTdBQiAvKiBXZWJWaWRlb0Z1bGxTY3JlZW5N
YW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gV2ViVmlkZW9G
dWxsU2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOyBwYXRoID0gRnVsbFNjcmVlbi9XZWJW
aWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUNEOEIzMzEzMTM5NENDNTAwMEVEOTdBQiAvKiBXZWJWaWRlb0Z1bGxTY3Jl
ZW5NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDhCMzMxNDEzOTRDQzUwMDBFRDk3QUIgLyog
V2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlck1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlDRDhCMzMxNTEzOTRDQzUwMDBFRDk3QUIgLyogV2ViVmlk
ZW9GdWxsU2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1l
c3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEOEIzMzE2
MTM5NENDNTAwMEVEOTdBQiAvKiBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdl
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJWaWRlb0Z1bGxTY3JlZW5N
YW5hZ2VyUHJveHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDhC
MzMxQjEzOTRENkExMDBFRDk3QUIgLyogV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlck1hYy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2Vy
TWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEOEIzMzFDMTM5NEQ2QTEwMEVE
OTdBQiAvKiBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyTWFjLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlck1hYy5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RDQTg1QzYxMzJBQkE0RTAwRTk2MURGIC8q
IFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlDRENBODVDNzEzMkFCQTRFMDBFOTYxREYgLyogV0tGdWxs
U2NyZWVuV2luZG93Q29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUNEQ0E4NUQ0MTMyQUMyQjMwMEU5NjFERiAvKiBJT0tpdC5mcmFtZXdvcmsgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1l
d29yazsgbmFtZSA9IElPS2l0LmZyYW1ld29yazsgcGF0aCA9IC9TeXN0ZW0vTGlicmFyeS9GcmFt
ZXdvcmtzL0lPS2l0LmZyYW1ld29yazsgc291cmNlVHJlZSA9ICI8YWJzb2x1dGU+IjsgfTsKQEAg
LTI1OTMsNiArMjYxNSw3IEBACiAJCUJDMDMyREMzMTBGNDM4MjYwMDU4QzE1QSAvKiBVSVByb2Nl
c3MgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCUNEOEIz
MzBBMTM5NEM4QzYwMEVEOTdBQiAvKiBGdWxsU2NyZWVuICovLAogCQkJCUJDMDMyREM0MTBGNDM4
N0MwMDU4QzE1QSAvKiBBUEkgKi8sCiAJCQkJNTEyRjU4OEQxMkE4ODM2RjAwNjI5NTMwIC8qIEF1
dGhlbnRpY2F0aW9uICovLAogCQkJCTUxQjMwMDREMTI1MjlDRjUwMDBCNUNBMCAvKiBjZiAqLywK
QEAgLTMyNzEsNiArMzI5NCwxMCBAQAogCQlDMENFNzI5RDEyNDdFNzFEMDBCQzBFQzQgLyogRGVy
aXZlZCBTb3VyY2VzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgK
KwkJCQlDRDhCMzMxMzEzOTRDQzUwMDBFRDk3QUIgLyogV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdl
ck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCisJCQkJQ0Q4QjMzMTQxMzk0Q0M1MDAwRUQ5N0FCIC8q
IFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdlcy5oICovLAorCQkJCUNEOEIzMzE1MTM5
NENDNTAwMEVEOTdBQiAvKiBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlUmVj
ZWl2ZXIuY3BwICovLAorCQkJCUNEOEIzMzE2MTM5NENDNTAwMEVEOTdBQiAvKiBXZWJWaWRlb0Z1
bGxTY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlcy5oICovLAogCQkJCTFBNjQyMzA2MTJERDA5RUIw
MENBQUUyQyAvKiBEcmF3aW5nQXJlYVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQkx
QTY0MjMwNzEyREQwOUVCMDBDQUFFMkMgLyogRHJhd2luZ0FyZWFQcm94eU1lc3NhZ2VzLmggKi8s
CiAJCQkJNTEyRjU4QTAxMkE4ODNBRDAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0aW9uTWFuYWdlck1l
c3NhZ2VSZWNlaXZlci5jcHAgKi8sCkBAIC0zMzcwLDkgKzMzOTcsMjEgQEAKIAkJCXBhdGggPSB3
ZWJraXQyOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJQ0Q1RDI4MTYxMzk0
RTAxMzAwNTMxOTVEIC8qIG1hYyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRy
ZW4gPSAoCisJCQkJQ0Q1RDI4MTcxMzk0RTAzMjAwNTMxOTVEIC8qIFdlYlZpZGVvRnVsbFNjcmVl
bk1hbmFnZXJQcm94eU1hYy5oICovLAorCQkJCUNENUQyODE4MTM5NEUwMzIwMDUzMTk1RCAvKiBX
ZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHlNYWMubW0gKi8sCisJCQkpOworCQkJbmFtZSA9
IG1hYzsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCUNENzNCQTNEMTMxQTJB
MjEwMEVFREVEMiAvKiBGdWxsU2NyZWVuICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQlj
aGlsZHJlbiA9ICgKKwkJCQlDRDhCMzMwNDEzOTRDNjAzMDBFRDk3QUIgLyogV2ViVmlkZW9GdWxs
U2NyZWVuTWFuYWdlci5jcHAgKi8sCisJCQkJQ0Q4QjMzMDUxMzk0QzYwMzAwRUQ5N0FCIC8qIFdl
YlZpZGVvRnVsbFNjcmVlbk1hbmFnZXIuaCAqLywKKwkJCQlDRDhCMzMwNjEzOTRDNjAzMDBFRDk3
QUIgLyogV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbiAqLywKIAkJCQlDRENB
ODVFNDEzMkFEMzMwMDBFOTYxREYgLyogbWFjICovLAogCQkJCUNENzNCQTM3MTMxQTI5RkUwMEVF
REVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlci5jcHAgKi8sCiAJCQkJQ0Q3M0JBMzgxMzFBMjlG
RTAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyLmggKi8sCkBAIC0zMzgxLDkgKzM0MjAs
MjIgQEAKIAkJCW5hbWUgPSBGdWxsU2NyZWVuOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsK
IAkJfTsKKwkJQ0Q4QjMzMEExMzk0QzhDNjAwRUQ5N0FCIC8qIEZ1bGxTY3JlZW4gKi8gPSB7CisJ
CQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUNENUQyODE2MTM5NEUwMTMw
MDUzMTk1RCAvKiBtYWMgKi8sCisJCQkJQ0Q4QjMzMEIxMzk0QzhERTAwRUQ5N0FCIC8qIFdlYlZp
ZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5jcHAgKi8sCisJCQkJQ0Q4QjMzMEMxMzk0QzhERTAw
RUQ5N0FCIC8qIFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5oICovLAorCQkJCUNEOEIz
MzBEMTM5NEM4REUwMEVEOTdBQiAvKiBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHkubWVz
c2FnZXMuaW4gKi8sCisJCQkpOworCQkJbmFtZSA9IEZ1bGxTY3JlZW47CisJCQlzb3VyY2VUcmVl
ID0gIjxncm91cD4iOworCQl9OwogCQlDRENBODVFNDEzMkFEMzMwMDBFOTYxREYgLyogbWFjICov
ID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlDRDhCMzMxQjEz
OTRENkExMDBFRDk3QUIgLyogV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlck1hYy5oICovLAorCQkJ
CUNEOEIzMzFDMTM5NEQ2QTEwMEVEOTdBQiAvKiBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyTWFj
Lm1tICovLAogCQkJCUNEQ0E4NUU1MTMyQUQzMzAwMEU5NjFERiAvKiBXZWJGdWxsU2NyZWVuTWFu
YWdlck1hYy5oICovLAogCQkJCUNEQ0E4NUU2MTMyQUQzMzAwMEU5NjFERiAvKiBXZWJGdWxsU2Ny
ZWVuTWFuYWdlck1hYy5tbSAqLywKIAkJCSk7CkBAIC0zOTI2LDYgKzM5NzgsOSBAQAogLyogQmVn
aW4gUEJYUHJvamVjdCBzZWN0aW9uICovCiAJCTA4NjdENjkwRkU4NDAyOEZDMDJBQUMwNyAvKiBQ
cm9qZWN0IG9iamVjdCAqLyA9IHsKIAkJCWlzYSA9IFBCWFByb2plY3Q7CisJCQlhdHRyaWJ1dGVz
ID0geworCQkJCUxhc3RVcGdyYWRlQ2hlY2sgPSAwNDEwOworCQkJfTsKIAkJCWJ1aWxkQ29uZmln
dXJhdGlvbkxpc3QgPSAxREVCOTFCMTA4NzMzREE1MDAxMEU5Q0QgLyogQnVpbGQgY29uZmlndXJh
dGlvbiBsaXN0IGZvciBQQlhQcm9qZWN0ICJXZWJLaXQyIiAqLzsKIAkJCWNvbXBhdGliaWxpdHlW
ZXJzaW9uID0gIlhjb2RlIDMuMSI7CiAJCQlkZXZlbG9wbWVudFJlZ2lvbiA9IEVuZ2xpc2g7CkBA
IC00NDg1LDYgKzQ1NDAsMTIgQEAKIAkJCQk1MTJERjZGRTEzOEMyNTQ2MDBBMjJGQzYgLyogU2Vj
S2V5Y2hhaW5JdGVtUmVxdWVzdERhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTEyREY3MDAx
MzhDMjU0NjAwQTIyRkM2IC8qIFNlY0tleWNoYWluSXRlbVJlc3BvbnNlRGF0YS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk1MTJERjcwQTEzOEMyNkM3MDBBMjJGQzYgLyogS2V5Y2hhaW5BdHRyaWJ1
dGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0Q4QjMzMTExMzk0Q0MyMDAwRUQ5N0FCIC8qIFdl
YlZpZGVvRnVsbFNjcmVlbk1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0Q4QjMzMTIx
Mzk0Q0MyQzAwRUQ5N0FCIC8qIFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQlDRDhCMzMxRjEzOTREOUJEMDBFRDk3QUIgLyogV2ViVmlkZW9GdWxs
U2NyZWVuTWFuYWdlck1hYy5tbSBpbiBTb3VyY2VzICovLAorCQkJCUNENUQyODE0MTM5NERDRjUw
MDUzMTk1RCAvKiBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0Q1RDI4MTUxMzk0RENGQjAwNTMxOTVEIC8qIFdlYlZp
ZGVvRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJQ0Q1RDI4MjkxMzk0RjMyMTAwNTMxOTVEIC8qIFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXJQ
cm94eU1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50
UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDMyYWM4NzguLmMxZDczNzkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTY4LDYgKzY4LDcgQEAK
ICNpbmNsdWRlICJXZWJQcmVmZXJlbmNlc1N0b3JlLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5o
IgogI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViVmlk
ZW9GdWxsU2NyZWVuTWFuYWdlci5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0FQSUNhc3Qu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0Fic3RyYWN0RGF0YWJhc2UuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0FyY2hpdmVSZXNvdXJjZS5oPgpAQCAtNDE0LDYgKzQxNSwxMCBAQCB2b2lkIFdlYlBhZ2U6
OmNsb3NlKCkKICAgICBtX2Z1bGxTY3JlZW5NYW5hZ2VyID0gMDsKICNlbmRpZgogCisjaWYgUExB
VEZPUk0oTUFDKQorICAgIG1fdmlkZW9GdWxsU2NyZWVuTWFuYWdlciA9IDA7CisjZW5kaWYKKwog
ICAgIGlmIChtX2FjdGl2ZVBvcHVwTWVudSkgewogICAgICAgICBtX2FjdGl2ZVBvcHVwTWVudS0+
ZGlzY29ubmVjdEZyb21QYWdlKCk7CiAgICAgICAgIG1fYWN0aXZlUG9wdXBNZW51ID0gMDsKQEAg
LTE1ODMsNiArMTU4OCwxMyBAQCBXZWJJbnNwZWN0b3IqIFdlYlBhZ2U6Omluc3BlY3RvcigpCiB9
CiAjZW5kaWYKIAorV2ViVmlkZW9GdWxsU2NyZWVuTWFuYWdlciogV2ViUGFnZTo6dmlkZW9GdWxs
U2NyZWVuTWFuYWdlcigpCit7CisgICAgaWYgKCFtX3ZpZGVvRnVsbFNjcmVlbk1hbmFnZXIpCisg
ICAgICAgIG1fdmlkZW9GdWxsU2NyZWVuTWFuYWdlciA9IFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFn
ZXI6OmNyZWF0ZSh0aGlzKTsKKyAgICByZXR1cm4gbV92aWRlb0Z1bGxTY3JlZW5NYW5hZ2VyLmdl
dCgpOworfQorCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogV2ViRnVsbFNjcmVlbk1hbmFn
ZXIqIFdlYlBhZ2U6OmZ1bGxTY3JlZW5NYW5hZ2VyKCkKIHsKQEAgLTE5OTcsNiArMjAwOSwxMSBA
QCB2b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNv
bm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZwogICAgIH0KICNlbmRpZgogCisgICAgaWYgKG1lc3Nh
Z2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyPigp
KSB7CisgICAgICAgIHZpZGVvRnVsbFNjcmVlbk1hbmFnZXIoKS0+ZGlkUmVjZWl2ZU1lc3NhZ2Uo
Y29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgICAgICByZXR1cm47CisgICAg
fQorCiAgICAgZGlkUmVjZWl2ZVdlYlBhZ2VNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwg
YXJndW1lbnRzKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmgKaW5kZXggMWEyMTljMy4uYzU4YmFlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xMDYsNiArMTA2LDcgQEAgY2xhc3MgV2ViT3BlblBh
bmVsUmVzdWx0TGlzdGVuZXI7CiBjbGFzcyBXZWJQYWdlR3JvdXBQcm94eTsKIGNsYXNzIFdlYlBv
cHVwTWVudTsKIGNsYXNzIFdlYldoZWVsRXZlbnQ7CitjbGFzcyBXZWJWaWRlb0Z1bGxTY3JlZW5N
YW5hZ2VyOwogc3RydWN0IEF0dHJpYnV0ZWRTdHJpbmc7CiBzdHJ1Y3QgRWRpdG9yU3RhdGU7CiBz
dHJ1Y3QgUHJpbnRJbmZvOwpAQCAtNDI2LDYgKzQyNywxMCBAQCBwdWJsaWM6CiAKICAgICB2b2lk
IGNvbnRleHRNZW51U2hvd2luZygpIHsgbV9pc1Nob3dpbmdDb250ZXh0TWVudSA9IHRydWU7IH0K
IAorI2lmIFBMQVRGT1JNKE1BQykKKyAgICBXZWJWaWRlb0Z1bGxTY3JlZW5NYW5hZ2VyKiB2aWRl
b0Z1bGxTY3JlZW5NYW5hZ2VyKCk7CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBXZWJQYWdlKHVp
bnQ2NF90IHBhZ2VJRCwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYpOwogCkBAIC02
NzYsNiArNjgxLDExIEBAIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oV0lOKQogICAgIGJvb2wgbV9n
ZXN0dXJlUmVhY2hlZFNjcm9sbGluZ0xpbWl0OwogI2VuZGlmCisKKyNpZiBQTEFURk9STShNQUMp
CisgICAgUmVmUHRyPFdlYlZpZGVvRnVsbFNjcmVlbk1hbmFnZXI+IG1fdmlkZW9GdWxsU2NyZWVu
TWFuYWdlcjsKKyNlbmRpZgorCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKLS0gCjEuNy40
LjQKCg==
</data>
<flag name="commit-queue"
          id="89639"
          type_id="3"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>95663</attachid>
            <date>2011-06-01 14:20:21 -0700</date>
            <delta_ts>2012-01-30 15:27:54 -0800</delta_ts>
            <desc>[PATCH 4/4] Enable video full-screen mode in WebKit2/mac.</desc>
            <filename>0004-Enable-video-full-screen-mode-in-WebKit2-mac.patch</filename>
            <type>text/plain</type>
            <size>5173</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">RnJvbSBjOWQ5ZmZmZTUyMDAxZjI2ZjQ0NGU5NjIzZjlkYmJhNjg1OTFhMjIwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKZXIgTm9ibGUgPGplci5ub2JsZUBhcHBsZS5jb20+CkRhdGU6
IFdlZCwgMSBKdW4gMjAxMSAxNDoxMTozMiAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggNC80XSBFbmFi
bGUgdmlkZW8gZnVsbC1zY3JlZW4gbW9kZSBpbiBXZWJLaXQyL21hYy4KClJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgoKSW1wbGVtZW50IHZpZGVvIGZ1bGwtc3JjZWVuIEFQSSBpbiBXZWJLaXQy
Cmh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MTg0OAoKRW5hYmxlIHN1
cHBvcnQgZm9yIHZpZGVvIGZ1bGwtc2NyZWVuIGluIFdlYktpdDIgYnkgaW1wbGVtZW50aW5nCnRo
ZSBmdWxsc2NyZWVuRm9yTm9kZSBDaHJvbWVDbGllbnQgZnVuY3Rpb25zIGluIFdlYkNocm9tZUNs
aWVudC4KKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CihX
ZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6c3VwcG9ydHNGdWxsc2NyZWVuRm9yTm9kZSk6IEFjY2Vw
dCBmdWxsLXNjcmVlbgogICAgcmVxdWVzdHMgb25seSBmcm9tIEhUTUxNZWRpYUVsZW1lbnRzLgoo
V2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmVudGVyRnVsbHNjcmVlbkZvck5vZGUpOiBQYXNzIHRo
ZSBtZWRpYSBlbGVtZW50CiAgICB0byB2aWRlb0Z1bGxTY3JlZW5NYW5hZ2VyKCkgYW5kIGNhbGwg
ZW50ZXJGdWxsU2NyZWVuKCkuCihXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6ZXhpdEZ1bGxzY3Jl
ZW5Gb3JOb2RlKTogQ2FsbCBleGl0RnVsbFNjcmVlbigpLgoqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6Ci0tLQogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE5ICsrKysrKysrKysKIC4uLi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgIHwgICAzOSArKysrKysrKysrKysr
KysrKysrKwogLi4uL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmgg
ICAgfCAgICA0ICsrCiAzIGZpbGVzIGNoYW5nZWQsIDYyIGluc2VydGlvbnMoKyksIDAgZGVsZXRp
b25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCmluZGV4IDRiMzVjYmMuLjkzN2YyZjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTIs
NiArMiwyNSBAQAogCiAgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgogCisgICAg
ICAgIEVuYWJsZSB2aWRlbyBmdWxsLXNjcmVlbiBtb2RlIGluIFdlYktpdDIvbWFjLgorCisgICAg
ICAgIEltcGxlbWVudCB2aWRlbyBmdWxsLXNyY2VlbiBBUEkgaW4gV2ViS2l0MgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjE4NDgKKworICAgICAgICBF
bmFibGUgc3VwcG9ydCBmb3IgdmlkZW8gZnVsbC1zY3JlZW4gaW4gV2ViS2l0MiBieSBpbXBsZW1l
bnRpbmcKKyAgICAgICAgdGhlIGZ1bGxzY3JlZW5Gb3JOb2RlIENocm9tZUNsaWVudCBmdW5jdGlv
bnMgaW4gV2ViQ2hyb21lQ2xpZW50LgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50
OjpzdXBwb3J0c0Z1bGxzY3JlZW5Gb3JOb2RlKTogQWNjZXB0IGZ1bGwtc2NyZWVuCisgICAgICAg
ICAgICByZXF1ZXN0cyBvbmx5IGZyb20gSFRNTE1lZGlhRWxlbWVudHMuCisgICAgICAgIChXZWJL
aXQ6OldlYkNocm9tZUNsaWVudDo6ZW50ZXJGdWxsc2NyZWVuRm9yTm9kZSk6IFBhc3MgdGhlIG1l
ZGlhIGVsZW1lbnQKKyAgICAgICAgICAgIHRvIHZpZGVvRnVsbFNjcmVlbk1hbmFnZXIoKSBhbmQg
Y2FsbCBlbnRlckZ1bGxTY3JlZW4oKS4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50
OjpleGl0RnVsbHNjcmVlbkZvck5vZGUpOiBDYWxsIGV4aXRGdWxsU2NyZWVuKCkuCisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKworMjAxMS0w
Ni0wMSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKwogICAgICAgICBBZGRlZCBuZXcgY2xhc3M6IFdlYlZpZGVv
RnVsbFNjcmVlbk1hbmFnZXJQcm94eQogCiAgICAgICAgIEltcGxlbWVudCB2aWRlbyBmdWxsLXNy
Y2VlbiBBUEkgaW4gV2ViS2l0MgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDExZDgwYzQu
LjEyNzIzZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTQ0LDExICs0NCwxMyBAQAog
I2luY2x1ZGUgIldlYlByZWZlcmVuY2VzU3RvcmUuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgi
CiAjaW5jbHVkZSAiV2ViU2VhcmNoUG9wdXBNZW51LmgiCisjaW5jbHVkZSAiV2ViVmlkZW9GdWxs
U2NyZWVuTWFuYWdlci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRGF0YWJhc2VUcmFja2VyLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9GaWxlQ2hvb3Nlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWUu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9G
cmFtZVZpZXcuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0hUTUxNZWRpYUVsZW1lbnQuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0hUTUxOYW1lcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSFRNTFBsdWdJbklt
YWdlRWxlbWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSWNvbi5oPgpAQCAtNzM5LDYgKzc0MSw0
MyBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0TGFzdFNldEN1cnNvclRvQ3VycmVudEN1cnNv
cigpCiB7CiB9CiAjZW5kaWYKKyAgICAKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50OjpzdXBwb3J0c0Z1
bGxzY3JlZW5Gb3JOb2RlKGNvbnN0IFdlYkNvcmU6Ok5vZGUqIG5vZGUpCit7CisgICAgQVNTRVJU
KG5vZGUpOworICAgIGlmICghbm9kZS0+aXNFbGVtZW50Tm9kZSgpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgRWxlbWVudCo+KG5vZGUpLT5p
c01lZGlhRWxlbWVudCgpOworfQorCit2b2lkIFdlYkNocm9tZUNsaWVudDo6ZW50ZXJGdWxsc2Ny
ZWVuRm9yTm9kZShXZWJDb3JlOjpOb2RlKiBub2RlKQoreworICAgIEFTU0VSVChub2RlKTsKKyAg
ICBpZiAoIW5vZGUtPmlzRWxlbWVudE5vZGUoKSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAg
IEVsZW1lbnQqIGVsZW1lbnQgPSBzdGF0aWNfY2FzdDxFbGVtZW50Kj4obm9kZSk7CisgICAgaWYg
KCFlbGVtZW50LT5pc01lZGlhRWxlbWVudCgpKQorICAgICAgICByZXR1cm47CisgICAgICAgIAor
ICAgIG1fcGFnZS0+dmlkZW9GdWxsU2NyZWVuTWFuYWdlcigpLT5zZXRNZWRpYUVsZW1lbnQoc3Rh
dGljX2Nhc3Q8SFRNTE1lZGlhRWxlbWVudCo+KG5vZGUpKTsKKyAgICBtX3BhZ2UtPnZpZGVvRnVs
bFNjcmVlbk1hbmFnZXIoKS0+ZW50ZXJGdWxsU2NyZWVuKCk7Cit9CisKK3ZvaWQgV2ViQ2hyb21l
Q2xpZW50OjpleGl0RnVsbHNjcmVlbkZvck5vZGUoV2ViQ29yZTo6Tm9kZSogbm9kZSkKK3sKKyAg
ICBBU1NFUlQobm9kZSk7CisgICAgaWYgKCFub2RlLT5pc0VsZW1lbnROb2RlKCkpCisgICAgICAg
IHJldHVybjsKKyAgICAKKyAgICBFbGVtZW50KiBlbGVtZW50ID0gc3RhdGljX2Nhc3Q8RWxlbWVu
dCo+KG5vZGUpOworICAgIGlmICghZWxlbWVudC0+aXNNZWRpYUVsZW1lbnQoKSkKKyAgICAgICAg
cmV0dXJuOworICAgIAorICAgIG1fcGFnZS0+dmlkZW9GdWxsU2NyZWVuTWFuYWdlcigpLT5zZXRN
ZWRpYUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTE1lZGlhRWxlbWVudCo+KG5vZGUpKTsKKyAgICBt
X3BhZ2UtPnZpZGVvRnVsbFNjcmVlbk1hbmFnZXIoKS0+ZXhpdEZ1bGxTY3JlZW4oKTsKK30KIAog
I2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpzdXBwb3J0
c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0IFdlYkNvcmU6OkVsZW1lbnQqIGVsZW1lbnQsIGJv
b2wgd2l0aEtleWJvYXJkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggMjA3OWM0NC4uYjIzNmU3
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0yMDcsNiArMjA3LDEwIEBAIHByaXZhdGU6CiAg
ICAgdmlydHVhbCB2b2lkIHNldExhc3RTZXRDdXJzb3JUb0N1cnJlbnRDdXJzb3IoKTsKICNlbmRp
ZgogCisgICAgdmlydHVhbCBib29sIHN1cHBvcnRzRnVsbHNjcmVlbkZvck5vZGUoY29uc3QgV2Vi
Q29yZTo6Tm9kZSopOworICAgIHZpcnR1YWwgdm9pZCBlbnRlckZ1bGxzY3JlZW5Gb3JOb2RlKFdl
YkNvcmU6Ok5vZGUqKTsKKyAgICB2aXJ0dWFsIHZvaWQgZXhpdEZ1bGxzY3JlZW5Gb3JOb2RlKFdl
YkNvcmU6Ok5vZGUqKTsKKwogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICB2aXJ0dWFs
IGJvb2wgc3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudChjb25zdCBXZWJDb3JlOjpFbGVtZW50
KiwgYm9vbCB3aXRoS2V5Ym9hcmQpOwogICAgIHZpcnR1YWwgdm9pZCBlbnRlckZ1bGxTY3JlZW5G
b3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQqKTsKLS0gCjEuNy40LjQKCg==
</data>
<flag name="commit-queue"
          id="89640"
          type_id="3"
          status="-"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>