<?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>167427</bug_id>
          
          <creation_ts>2017-01-25 13:01:01 -0800</creation_ts>
          <short_desc>Refactor drag and drop implementation on Mac</short_desc>
          <delta_ts>2017-01-28 12:25:51 -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>DOM</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>macOS 10.12</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>bdakin</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>enrica</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>kangil.han</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1269926</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-01-25 13:01:01 -0800</bug_when>
    <thetext>Refactor drag and drop implementation in WebCore</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1270005</commentid>
    <comment_count>1</comment_count>
      <attachid>299756</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-01-25 15:53:44 -0800</bug_when>
    <thetext>Created attachment 299756
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1270007</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-25 15:56:57 -0800</bug_when>
    <thetext>Attachment 299756 did not pass style-queue:


ERROR: Source/WebCore/platform/mac/DragDataMac.mm:96:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
Total errors found: 1 in 21 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>1270012</commentid>
    <comment_count>3</comment_count>
      <attachid>299759</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-01-25 16:08:14 -0800</bug_when>
    <thetext>Created attachment 299759
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1270014</commentid>
    <comment_count>4</comment_count>
      <attachid>299760</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-01-25 16:09:51 -0800</bug_when>
    <thetext>Created attachment 299760
Address build failures.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1270017</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-25 16:11:09 -0800</bug_when>
    <thetext>Attachment 299760 did not pass style-queue:


ERROR: Source/WebCore/platform/mac/DragDataMac.mm:96:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
Total errors found: 1 in 21 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>1270031</commentid>
    <comment_count>6</comment_count>
      <attachid>299765</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-01-25 16:36:21 -0800</bug_when>
    <thetext>Created attachment 299765
Another attempt to address build failures</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1270033</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-25 16:39:20 -0800</bug_when>
    <thetext>Attachment 299765 did not pass style-queue:


ERROR: Source/WebCore/platform/mac/DragDataMac.mm:96:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
Total errors found: 1 in 20 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>1270043</commentid>
    <comment_count>8</comment_count>
      <attachid>299765</attachid>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2017-01-25 16:57:41 -0800</bug_when>
    <thetext>Comment on attachment 299765
Another attempt to address build failures

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

&gt; Source/WebCore/platform/ios/DragImageIOS.mm:36
&gt; +#pragma clang diagnostic pop

would it be possible to have the pragmas inside the imported file?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1270045</commentid>
    <comment_count>9</comment_count>
      <attachid>299765</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-01-25 16:59:02 -0800</bug_when>
    <thetext>Comment on attachment 299765
Another attempt to address build failures

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

Thank you Enrica!

&gt;&gt; Source/WebCore/platform/ios/DragImageIOS.mm:36
&gt;&gt; +#pragma clang diagnostic pop
&gt; 
&gt; would it be possible to have the pragmas inside the imported file?

Yes! I&apos;ll do that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1270057</commentid>
    <comment_count>10</comment_count>
      <attachid>299776</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-01-25 17:22:05 -0800</bug_when>
    <thetext>Created attachment 299776
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1270058</commentid>
    <comment_count>11</comment_count>
      <attachid>299776</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-25 17:23:46 -0800</bug_when>
    <thetext>Comment on attachment 299776
Patch for landing

Rejecting attachment 299776 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-03&apos;, &apos;apply-attachment&apos;, &apos;--no-update&apos;, &apos;--non-interactive&apos;, 299776, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
mm
patching file Source/WebKit/mac/WebView/WebFrameInternal.h
patching file Source/WebKit/mac/WebView/WebHTMLView.mm
patching file Source/WebKit/mac/WebView/WebView.mm
patching file Source/WebKit2/Shared/WebCoreArgumentCoders.cpp
patching file Source/WebKit2/UIProcess/Cocoa/WebPageProxyCocoa.mm
patching file Source/WebKit2/WebProcess/WebCoreSupport/mac/WebDragClientMac.mm

Failed to run &quot;[u&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Full output: http://webkit-queues.webkit.org/results/2949534</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1270059</commentid>
    <comment_count>12</comment_count>
      <attachid>299777</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-01-25 17:24:33 -0800</bug_when>
    <thetext>Created attachment 299777
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1270075</commentid>
    <comment_count>13</comment_count>
      <attachid>299777</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-25 18:02:48 -0800</bug_when>
    <thetext>Comment on attachment 299777
Patch for landing

Clearing flags on attachment: 299777

Committed r211192: &lt;http://trac.webkit.org/changeset/211192&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1271036</commentid>
    <comment_count>14</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-01-28 12:25:51 -0800</bug_when>
    <thetext>&lt;rdar://problem/30107775&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>299756</attachid>
            <date>2017-01-25 15:53:44 -0800</date>
            <delta_ts>2017-01-25 16:08:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-167427-20170125155143.patch</filename>
            <type>text/plain</type>
            <size>26635</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExMTY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWVmOWM4ZTA5ZTU5ZjBk
NTYyODQyZDZlYjUyNmM1ZjQzYWE1ZWQyYi4uNjk1YjY5N2ZlY2RhMjUxNmNkNTJlNDg1ZGNlOGZl
MDI0OWVjZjg0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ0IEBACiAyMDE3LTAxLTI1ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCisgICAgICAgIFJlZmFjdG9yIGRy
YWcgYW5kIGRyb3AgaW1wbGVtZW50YXRpb24gb24gTWFjCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjc0MjcKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWZhY3RvcnMgc29tZSBjb2RlIGFyb3VuZCBkcmFn
IGFuZCBkcm9wIG9uIE1hYywgYW5kIGNsZWFucyB1cCBzb21lIG90aGVyIHJlbGF0ZWQgY29kZSBh
cyBuZWVkZWQuIFRoaXMgcGF0Y2gKKyAgICAgICAgc2hvdWxkIHJlc3VsdCBpbiBubyBiZWhhdmlv
ciBjaGFuZ2UuCisKKyAgICAgICAgKiBkb20vRGF0YVRyYW5zZmVyLmNwcDoKKyAgICAgICAgKiBw
YWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgICogcGFnZS9pb3MvRXZlbnRIYW5kbGVySU9T
Lm1tOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpldmVudExvb3BIYW5kbGVNb3Vz
ZURyYWdnZWQpOgorICAgICAgICAqIHBhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9EcmFnSW1hZ2UuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL1Bhc3RlYm9h
cmQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvRHJhZ0ltYWdlSU9TLm1tOgorICAgICAgICAq
IHBsYXRmb3JtL2lvcy9QYXN0ZWJvYXJkSU9TLm1tOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9E
cmFnRGF0YU1hYy5tbToKKyAgICAgICAgKHJ0ZlBhc3RlYm9hcmRUeXBlKToKKyAgICAgICAgKHJ0
ZmRQYXN0ZWJvYXJkVHlwZSk6CisgICAgICAgIChzdHJpbmdQYXN0ZWJvYXJkVHlwZSk6CisgICAg
ICAgICh1cmxQYXN0ZWJvYXJkVHlwZSk6CisgICAgICAgIChodG1sUGFzdGVib2FyZFR5cGUpOgor
ICAgICAgICAoY29sb3JQYXN0ZWJvYXJkVHlwZSk6CisgICAgICAgIChwZGZQYXN0ZWJvYXJkVHlw
ZSk6CisgICAgICAgICh0aWZmUGFzdGVib2FyZFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6RHJh
Z0RhdGE6OkRyYWdEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdEYXRhOjpjb250YWluc0Nv
bG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdEYXRhOjpjb250YWluc0ZpbGVzKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRyYWdEYXRhOjpudW1iZXJPZkZpbGVzKToKKyAgICAgICAgKFdlYkNvcmU6
OkRyYWdEYXRhOjphc0ZpbGVuYW1lcyk6CisgICAgICAgIChXZWJDb3JlOjpEcmFnRGF0YTo6Y29u
dGFpbnNQbGFpblRleHQpOgorICAgICAgICAoV2ViQ29yZTo6RHJhZ0RhdGE6OmNvbnRhaW5zQ29t
cGF0aWJsZUNvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RHJhZ0RhdGE6OmNvbnRhaW5zUHJv
bWlzZSk6CisgICAgICAgIChXZWJDb3JlOjpEcmFnRGF0YTo6YXNVUkwpOgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9EcmFnSW1hZ2VNYWMubW06CisKKzIwMTctMDEtMjUgIFdlbnNvbiBIc2llaCAg
PHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKICAgICAgICAgSW50cm9kdWNlIGFuIGl0ZW0tcHJv
dmlkZXItYmFzZWQgcGFzdGVib2FyZCB3cmFwcGVyCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjc0MTAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDgwYzcy
OTQxY2ZhMzQ2ZTEzNzFkYzU5NjlmNjE5OWMyMTkxYWUyNGYuLmI2MWI3NzkyZDdhODg0YmQxM2I2
ZGRjY2E1MzcyNWI3YzA2OTUyN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEwLDYgKzEwLDIzIEBA
CiAKIDIwMTctMDEtMjUgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAK
KyAgICAgICAgUmVmYWN0b3IgZHJhZyBhbmQgZHJvcCBpbXBsZW1lbnRhdGlvbiBvbiBNYWMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NzQyNworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlZmFjdG9yIHNv
bWUgV2ViS2l0MSBjb2RlIG9uIHRoZSBNYWMgcGVydGFpbmluZyB0byBkcmFnIGFuZCBkcm9wLiBT
ZWUgV2ViQ29yZSBDaGFuZ2VMb2cgZm9yIG1vcmUgZGV0YWlscy4KKworICAgICAgICAqIE1pc2Mv
V2ViTlNQYXN0ZWJvYXJkRXh0cmFzLmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRHJh
Z0NsaWVudC5tbToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZyYW1lLm1tOgorICAgICAgICAqIFdl
YlZpZXcvV2ViRnJhbWVJbnRlcm5hbC5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViSFRNTFZpZXcu
bW06CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAgICAoLVtXZWJWaWV3IGlu
aXRTaW1wbGVIVE1MRG9jdW1lbnRXaXRoU3R5bGU6ZnJhbWU6cHJlZmVyZW5jZXM6Z3JvdXBOYW1l
Ol0pOgorCisyMDE3LTAxLTI1ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29t
PgorCiAgICAgICAgIEFkZCBzdXBwb3J0IGZvciBuYW1lZCBwYXN0ZWJvYXJkcywgcGFzdGVib2Fy
ZCBzdHJhdGVnaWVzIGFuZCBwbGF0Zm9ybSBwYXN0ZWJvYXJkcwogICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY3NDA0CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAzODJk
ZDY4MTcwMzA2MzE2YjQxMGYxZjVjNGFjYmU2MWEwN2FhYmU3Li4yMjllNTIyN2E3ZDNjYjBjMmJh
Yjk2MTA0MjFmMDE1YTdjNzQ1YzUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTct
MDEtMjUgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAg
UmVmYWN0b3IgZHJhZyBhbmQgZHJvcCBpbXBsZW1lbnRhdGlvbiBvbiBNYWMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NzQyNworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNlZSBXZWJDb3JlIENoYW5nZUxv
ZyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENv
ZGVycy5jcHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8RHJhZ0RhdGE+OjplbmNvZGUp
OgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPERyYWdEYXRhPjo6ZGVjb2RlKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW06CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0NsaWVudE1hYy5tbToKKwogMjAxNy0w
MS0yNSAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAgICAgICAgW1F1aWNrTG9v
a10gRGlzcGxheSBhIFdLUGFzc3dvcmRWaWV3IHdoZW4gYSBkb2N1bWVudCBpcyBwYXNzd29yZC1w
cm90ZWN0ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlci5jcHAKaW5kZXggNTYxZWI0MjA0MDll
N2UxYjYyYzJjNmE1Y2ZjN2UwNjJiNGNmY2JkNi4uOWVjYjM1MWQzY2E0NzczYWFiZWNjODdhNTQ0
ZmI2ODcwNjM2NzlhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlci5jcHAKQEAgLTI5MCw3
ICsyOTAsNyBAQCB2b2lkIERhdGFUcmFuc2Zlcjo6dXBkYXRlRHJhZ0ltYWdlKCkKICAgICBtX3Bh
c3RlYm9hcmQtPnNldERyYWdJbWFnZShjb21wdXRlZEltYWdlLCBjb21wdXRlZEhvdFNwb3QpOwog
fQogCi0jaWYgIVBMQVRGT1JNKENPQ09BKQorI2lmICFQTEFURk9STShNQUMpCiAKIERyYWdJbWFn
ZVJlZiBEYXRhVHJhbnNmZXI6OmNyZWF0ZURyYWdJbWFnZShJbnRQb2ludCYgbG9jYXRpb24pIGNv
bnN0CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggNWE1YTM1ZTY4YTdj
ODk4OGI2ZTEzMDRlNDg5YTIxMmFiZDljNzNjNC4uYTBhMjI2NWRiYzY2ZmVhMmEyYjY0M2ZmMDgx
MGUzYThlYzE2YTAwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMTMx
LDYgKzEzMSw3IEBAIGNvbnN0IGludCBMaW5rRHJhZ0h5c3RlcmVzaXMgPSA0MDsKIGNvbnN0IGlu
dCBJbWFnZURyYWdIeXN0ZXJlc2lzID0gNTsKIGNvbnN0IGludCBUZXh0RHJhZ0h5c3RlcmVzaXMg
PSAzOwogY29uc3QgaW50IEdlbmVyYWxEcmFnSHlzdGVyZXNpcyA9IDM7Citjb25zdCBkb3VibGUg
RXZlbnRIYW5kbGVyOjpUZXh0RHJhZ0RlbGF5ID0gMC4xNTsKICNlbmRpZiAvLyBFTkFCTEUoRFJB
R19TVVBQT1JUKQogCiAjaWYgRU5BQkxFKElPU19HRVNUVVJFX0VWRU5UUykgfHwgRU5BQkxFKE1B
Q19HRVNUVVJFX0VWRU5UUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL0V2
ZW50SGFuZGxlcklPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL0V2ZW50SGFuZGxlcklP
Uy5tbQppbmRleCAyOWJhZGVmNTk1NTg0YTNmY2U1M2NhMmY4MjQxZTRmNmVmZDc1NGQ1Li41M2Q5
Y2MwNTBkOGYxMjNlNzgxNjM5MDMyMTYxOGMwNWRlMjQyYjI2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2lvcy9FdmVudEhhbmRsZXJJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9pb3MvRXZlbnRIYW5kbGVySU9TLm1tCkBAIC00OSw2ICs0OSwxMCBAQAogI2ltcG9ydCA8
V2ViS2l0QWRkaXRpb25zL0V2ZW50SGFuZGxlcklPU1RvdWNoLmNwcD4KICNlbmRpZgogCisjaWYg
VVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9FdmVudEhh
bmRsZXJBZGRpdGlvbnMubW0+CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0
aWMgUmV0YWluUHRyPFdlYkV2ZW50PiYgY3VycmVudEV2ZW50U2xvdCgpCkBAIC01NTAsNiArNTU0
LDExIEBAIE9wdGlvblNldDxQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcj4gRXZlbnRIYW5kbGVyOjph
Y2Nlc3NLZXlNb2RpZmllcnMoKQogICAgIHJldHVybiB7IFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVy
OjpDdHJsS2V5LCBQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcjo6QWx0S2V5IH07CiB9CiAKK2Jvb2wg
RXZlbnRIYW5kbGVyOjpldmVudExvb3BIYW5kbGVNb3VzZURyYWdnZWQoY29uc3QgTW91c2VFdmVu
dFdpdGhIaXRUZXN0UmVzdWx0cyYpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiBQbGF0Zm9y
bU1vdXNlRXZlbnQgRXZlbnRIYW5kbGVyOjpjdXJyZW50UGxhdGZvcm1Nb3VzZUV2ZW50KCkgY29u
c3QKIHsKICAgICByZXR1cm4gUGxhdGZvcm1FdmVudEZhY3Rvcnk6OmNyZWF0ZVBsYXRmb3JtTW91
c2VFdmVudChjdXJyZW50RXZlbnQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L21hYy9FdmVudEhhbmRsZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhh
bmRsZXJNYWMubW0KaW5kZXggYWQ3YTU5ZTMxZTA5NWIwYmM1MjA1MDcyZmRmMTgzOWYwZjRmNjgz
ZS4uNmM0NDRhYTM0NmY3ZjJjMjNkNmExYWJlNjk4N2JjYjU5YzQ2NjhjZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbQpAQCAtNzQsMTAgKzc0LDYgQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi0jaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKLWNvbnN0IGRv
dWJsZSBFdmVudEhhbmRsZXI6OlRleHREcmFnRGVsYXkgPSAwLjE1OwotI2VuZGlmCi0KIGNvbnN0
IGRvdWJsZSByZXNldExhdGNoZWRTdGF0ZVRpbWVvdXQgPSAwLjE7CiAKIHN0YXRpYyBSZXRhaW5Q
dHI8TlNFdmVudD4mIGN1cnJlbnROU0V2ZW50U2xvdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9EcmFnSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJh
Z0ltYWdlLmNwcAppbmRleCBhYTU2NmFmMzM4NGZhZTBjMTMwMzJjZDNjYjFjMDUzZTJkMzdjMmU0
Li5kOGI1ZGVhN2M2YmRkOTVjYTMxMjc4NjZkMjVjNDVkOTA5NGFiNGQxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0RyYWdJbWFnZS5jcHAKQEAgLTEyMCwxMiArMTIwLDE2IEBAIERyYWdJbWFnZVJl
ZiBjcmVhdGVEcmFnSW1hZ2VGb3JOb2RlKEZyYW1lJiBmcmFtZSwgTm9kZSYgbm9kZSkKICAgICBy
ZXR1cm4gY3JlYXRlRHJhZ0ltYWdlRnJvbVNuYXBzaG90KHNuYXBzaG90Tm9kZShmcmFtZSwgbm9k
ZSksICZub2RlKTsKIH0KIAorI2lmICFFTkFCTEUoREFUQV9JTlRFUkFDVElPTikKKwogRHJhZ0lt
YWdlUmVmIGNyZWF0ZURyYWdJbWFnZUZvclNlbGVjdGlvbihGcmFtZSYgZnJhbWUsIGJvb2wgZm9y
Y2VCbGFja1RleHQpCiB7CiAgICAgU25hcHNob3RPcHRpb25zIG9wdGlvbnMgPSBmb3JjZUJsYWNr
VGV4dCA/IFNuYXBzaG90T3B0aW9uc0ZvcmNlQmxhY2tUZXh0IDogU25hcHNob3RPcHRpb25zTm9u
ZTsKICAgICByZXR1cm4gY3JlYXRlRHJhZ0ltYWdlRnJvbVNuYXBzaG90KHNuYXBzaG90U2VsZWN0
aW9uKGZyYW1lLCBvcHRpb25zKSwgbnVsbHB0cik7CiB9CiAKKyNlbmRpZgorCiBzdHJ1Y3QgU2Nv
cGVkRnJhbWVTZWxlY3Rpb25TdGF0ZSB7CiAgICAgU2NvcGVkRnJhbWVTZWxlY3Rpb25TdGF0ZShG
cmFtZSYgZnJhbWUpCiAgICAgICAgIDogZnJhbWUoZnJhbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Q
YXN0ZWJvYXJkLmgKaW5kZXggYmFjMWY4ZjJmNDc5MWM1ODdiNDYwNTY5MWMyODYyYTU0NjlkNTJl
OC4uMDZjM2RlNzVlYmNhZWM1NjFiOTE4ZGVkNTEwODVjOGU0YWViN2I3NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Bhc3RlYm9hcmQuaApAQCAtMTI5LDcgKzEyOSw3IEBAIHB1YmxpYzoKIAogc3Ry
dWN0IFBhc3RlYm9hcmRQbGFpblRleHQgewogICAgIFN0cmluZyB0ZXh0OwotI2lmIFBMQVRGT1JN
KE1BQykKKyNpZiBQTEFURk9STShDT0NPQSkKICAgICBib29sIGlzVVJMOwogI2VuZGlmCiB9OwpA
QCAtMTc5LDggKzE3OSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgd3JpdGVQYXN0ZWJv
YXJkKGNvbnN0IFBhc3RlYm9hcmQmIHNvdXJjZVBhc3RlYm9hcmQpOwogCiAjaWYgRU5BQkxFKERS
QUdfU1VQUE9SVCkKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9hcmQ+IGNyZWF0
ZUZvckRyYWdBbmREcm9wKCk7Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJk
PiBjcmVhdGVGb3JEcmFnQW5kRHJvcChjb25zdCBEcmFnRGF0YSYpOworICAgIFdFQkNPUkVfRVhQ
T1JUIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gY3JlYXRlRm9yRHJhZ0FuZERy
b3AoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9h
cmQ+IGNyZWF0ZUZvckRyYWdBbmREcm9wKGNvbnN0IERyYWdEYXRhJik7CiAKICAgICB2aXJ0dWFs
IHZvaWQgc2V0RHJhZ0ltYWdlKERyYWdJbWFnZVJlZiwgY29uc3QgSW50UG9pbnQmIGhvdFNwb3Qp
OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvRHJhZ0lt
YWdlSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0RyYWdJbWFnZUlPUy5tbQpp
bmRleCAxY2NjZmJhY2Q2ZWQ4N2JjMzMwY2Q0MDgxZTBmOGEwNTE5OWU2N2RhLi4xZGI5ZDMzMjZk
OTc1NTE1N2VjY2FmOWU4MmVmNWY2YWZkNzkyZTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvRHJhZ0ltYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2lvcy9EcmFnSW1hZ2VJT1MubW0KQEAgLTI4LDYgKzI4LDE1IEBACiAKICNpbXBvcnQgPENv
cmVHcmFwaGljcy9Db3JlR3JhcGhpY3MuaD4KIAorI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREsp
CisKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgaWdub3JlZCAiLVdudWxsYWJpbGl0eS1jb21wbGV0ZW5lc3MiCisjaW1wb3J0IDxXZWJLaXRB
ZGRpdGlvbnMvRHJhZ0ltYWdlQWRkaXRpb25zLm1tPgorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorCisjZWxzZQorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIC8vIEZJWE1FOiBmaXggc2ln
bmF0dXJlIG9mIGRyYWdJbWFnZVNpemUoKSB0byBhdm9pZCBjb3B5aW5nIHRoZSBhcmd1bWVudC4K
QEAgLTQ5LDMgKzU4LDUgQEAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGNyZWF0ZURyYWdJbWFnZUZy
b21JbWFnZShJbWFnZSosIEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGkKIH0KIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gVVNFKEFQUExFX0lOVEVSTkFMX1NESykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QYXN0ZWJvYXJkSU9TLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1Bhc3RlYm9hcmRJT1MubW0KaW5kZXggOTZjNzJkMDFj
NzUzMDQ1OTBjMzcwYzYzYjg2NDk2MWJiNmNmMzAxOC4uZTI2NGQ0NDBlMjM5NDdiOTJkZGNkNWJj
Y2FiMjY1MDc1NmJlYzZkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L1Bhc3RlYm9hcmRJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1Bhc3Rl
Ym9hcmRJT1MubW0KQEAgLTU4LDYgKzU4LDEwIEBACiAtIChCT09MKWNvbnRhaW5zQXR0YWNobWVu
dHM7CiBAZW5kCiAKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorI2ltcG9ydCA8V2ViS2l0
QWRkaXRpb25zL1Bhc3RlYm9hcmRBZGRpdGlvbnMubW0+CisjZW5kaWYKKwogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiAvLyBGSVhNRTogRG9lcyB0aGlzIG5lZWQgdG8gYmUgZGVjbGFyZWQgaW4gdGhl
IGhlYWRlciBmaWxlPwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0Ry
YWdEYXRhTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdEYXRhTWFjLm1t
CmluZGV4IDc1ZDUwYmNlYjMwYWM5OWVkOWM4NmIzMWM2NjMwNTllMDUyZGM4ZjIuLjAyZDE0ZThh
MTJmMDNlMDY2NjA5NGY4NTBmOTU2Y2ZkMDM1Y2U4ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9EcmFnRGF0YU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvRHJhZ0RhdGFNYWMubW0KQEAgLTMzLDYgKzMzLDU0IEBACiAjaW1wb3J0ICJQbGF0
Zm9ybVN0cmF0ZWdpZXMuaCIKICNpbXBvcnQgIldlYkNvcmVOU1VSTEV4dHJhcy5oIgogCisjaWYg
VVNFKEFQUExFX0lOVEVSTkFMX1NESykKKworI2ltcG9ydCA8V2ViS2l0QWRkaXRpb25zL0RyYWdE
YXRhQWRkaXRpb25zLm1tPgorCisjZWxzZQorCitzdGF0aWMgaW5saW5lIFN0cmluZyBydGZQYXN0
ZWJvYXJkVHlwZSgpCit7CisgICAgcmV0dXJuIFN0cmluZyhfTlNSVEZQYm9hcmRUeXBlKTsKK30K
Kworc3RhdGljIGlubGluZSBTdHJpbmcgcnRmZFBhc3RlYm9hcmRUeXBlKCkKK3sKKyAgICByZXR1
cm4gU3RyaW5nKF9OU1JURkRQYm9hcmRUeXBlKTsKK30KKworc3RhdGljIGlubGluZSBTdHJpbmcg
c3RyaW5nUGFzdGVib2FyZFR5cGUoKQoreworICAgIHJldHVybiBTdHJpbmcoX05TU3RyaW5nUGJv
YXJkVHlwZSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgU3RyaW5nIHVybFBhc3RlYm9hcmRUeXBlKCkK
K3sKKyAgICByZXR1cm4gU3RyaW5nKF9OU1VSTFBib2FyZFR5cGUpOworfQorCitzdGF0aWMgaW5s
aW5lIFN0cmluZyBodG1sUGFzdGVib2FyZFR5cGUoKQoreworICAgIHJldHVybiBTdHJpbmcoX05T
SFRNTFBib2FyZFR5cGUpOworfQorCitzdGF0aWMgaW5saW5lIFN0cmluZyBjb2xvclBhc3RlYm9h
cmRUeXBlKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nKF9OU0NvbG9yUGJvYXJkVHlwZSk7Cit9CisK
K3N0YXRpYyBpbmxpbmUgU3RyaW5nIHBkZlBhc3RlYm9hcmRUeXBlKCkKK3sKKyAgICByZXR1cm4g
U3RyaW5nKF9OU1BERlBib2FyZFR5cGUpOworfQorCitzdGF0aWMgaW5saW5lIFN0cmluZyB0aWZm
UGFzdGVib2FyZFR5cGUoKQoreworICAgIHJldHVybiBTdHJpbmcoX05TVElGRlBib2FyZFR5cGUp
OworfQorCisjZW5kaWYgLy8gVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKwogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBEcmFnRGF0YTo6RHJhZ0RhdGEoRHJhZ0RhdGFSZWYgZGF0YSwgY29uc3QgSW50
UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIApA
QCAtNDIsNyArOTAsMTEgQEAgRHJhZ0RhdGE6OkRyYWdEYXRhKERyYWdEYXRhUmVmIGRhdGEsIGNv
bnN0IEludFBvaW50JiBjbGllbnRQb3NpdGlvbiwgY29uc3QgSW50UG8KICAgICAsIG1fcGxhdGZv
cm1EcmFnRGF0YShkYXRhKQogICAgICwgbV9kcmFnZ2luZ1NvdXJjZU9wZXJhdGlvbk1hc2soc291
cmNlT3BlcmF0aW9uTWFzaykKICAgICAsIG1fYXBwbGljYXRpb25GbGFncyhmbGFncykKKyNpZiBQ
TEFURk9STShNQUMpCiAgICAgLCBtX3Bhc3RlYm9hcmROYW1lKFtbbV9wbGF0Zm9ybURyYWdEYXRh
IGRyYWdnaW5nUGFzdGVib2FyZF0gbmFtZV0pCisjZWxzZQorICAgICwgbV9wYXN0ZWJvYXJkTmFt
ZSgiZGF0YSBpbnRlcmFjdGlvbiBwYXN0ZWJvYXJkIikKKyNlbmRpZgogewogfQogCkBAIC02Niwz
MCArMTE4LDQwIEBAIGJvb2wgRHJhZ0RhdGE6OmNvbnRhaW5zQ29sb3IoKSBjb25zdAogewogICAg
IFZlY3RvcjxTdHJpbmc+IHR5cGVzOwogICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJv
YXJkU3RyYXRlZ3koKS0+Z2V0VHlwZXModHlwZXMsIG1fcGFzdGVib2FyZE5hbWUpOwotICAgIHJl
dHVybiB0eXBlcy5jb250YWlucyhTdHJpbmcoTlNDb2xvclBib2FyZFR5cGUpKTsKKyAgICByZXR1
cm4gdHlwZXMuY29udGFpbnMoY29sb3JQYXN0ZWJvYXJkVHlwZSgpKTsKIH0KIAogYm9vbCBEcmFn
RGF0YTo6Y29udGFpbnNGaWxlcygpIGNvbnN0CiB7CisjaWYgUExBVEZPUk0oTUFDKQogICAgIFZl
Y3RvcjxTdHJpbmc+IHR5cGVzOwogICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJk
U3RyYXRlZ3koKS0+Z2V0VHlwZXModHlwZXMsIG1fcGFzdGVib2FyZE5hbWUpOwogICAgIHJldHVy
biB0eXBlcy5jb250YWlucyhTdHJpbmcoTlNGaWxlbmFtZXNQYm9hcmRUeXBlKSkgfHwgdHlwZXMu
Y29udGFpbnMoU3RyaW5nKE5TRmlsZXNQcm9taXNlUGJvYXJkVHlwZSkpOworI2Vsc2UKKyAgICBy
ZXR1cm4gZmFsc2U7CisjZW5kaWYKIH0KIAogdW5zaWduZWQgRHJhZ0RhdGE6Om51bWJlck9mRmls
ZXMoKSBjb25zdAogewogICAgIFZlY3RvcjxTdHJpbmc+IGZpbGVzOworI2lmIFBMQVRGT1JNKE1B
QykKICAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPmdldFBh
dGhuYW1lc0ZvclR5cGUoZmlsZXMsIFN0cmluZyhOU0ZpbGVuYW1lc1Bib2FyZFR5cGUpLCBtX3Bh
c3RlYm9hcmROYW1lKTsKICAgICBpZiAoIWZpbGVzLnNpemUoKSkKICAgICAgICAgcGxhdGZvcm1T
dHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT5nZXRQYXRobmFtZXNGb3JUeXBlKGZp
bGVzLCBTdHJpbmcoTlNGaWxlc1Byb21pc2VQYm9hcmRUeXBlKSwgbV9wYXN0ZWJvYXJkTmFtZSk7
CisjZW5kaWYKICAgICByZXR1cm4gZmlsZXMuc2l6ZSgpOwogfQogCiB2b2lkIERyYWdEYXRhOjph
c0ZpbGVuYW1lcyhWZWN0b3I8U3RyaW5nPiYgcmVzdWx0KSBjb25zdAogeworI2lmIFBMQVRGT1JN
KE1BQykKICAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPmdl
dFBhdGhuYW1lc0ZvclR5cGUocmVzdWx0LCBTdHJpbmcoTlNGaWxlbmFtZXNQYm9hcmRUeXBlKSwg
bV9wYXN0ZWJvYXJkTmFtZSk7CiAgICAgaWYgKCFyZXN1bHQuc2l6ZSgpKQogICAgICAgICByZXN1
bHQgPSBmaWxlTmFtZXMoKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHJlc3VsdCk7CisjZW5k
aWYKIH0KIAogYm9vbCBEcmFnRGF0YTo6Y29udGFpbnNQbGFpblRleHQoKSBjb25zdApAQCAtOTcs
MTEgKzE1OSwxMyBAQCBib29sIERyYWdEYXRhOjpjb250YWluc1BsYWluVGV4dCgpIGNvbnN0CiAg
ICAgVmVjdG9yPFN0cmluZz4gdHlwZXM7CiAgICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBhc3Rl
Ym9hcmRTdHJhdGVneSgpLT5nZXRUeXBlcyh0eXBlcywgbV9wYXN0ZWJvYXJkTmFtZSk7CiAKLSAg
ICByZXR1cm4gdHlwZXMuY29udGFpbnMoU3RyaW5nKE5TU3RyaW5nUGJvYXJkVHlwZSkpCi0gICAg
ICAgIHx8IHR5cGVzLmNvbnRhaW5zKFN0cmluZyhOU1JURkRQYm9hcmRUeXBlKSkKLSAgICAgICAg
fHwgdHlwZXMuY29udGFpbnMoU3RyaW5nKE5TUlRGUGJvYXJkVHlwZSkpCisgICAgcmV0dXJuIHR5
cGVzLmNvbnRhaW5zKHN0cmluZ1Bhc3RlYm9hcmRUeXBlKCkpCisgICAgICAgIHx8IHR5cGVzLmNv
bnRhaW5zKHJ0ZmRQYXN0ZWJvYXJkVHlwZSgpKQorICAgICAgICB8fCB0eXBlcy5jb250YWlucyhy
dGZQYXN0ZWJvYXJkVHlwZSgpKQorI2lmIFBMQVRGT1JNKE1BQykKICAgICAgICAgfHwgdHlwZXMu
Y29udGFpbnMoU3RyaW5nKE5TRmlsZW5hbWVzUGJvYXJkVHlwZSkpCi0gICAgICAgIHx8IHBsYXRm
b3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+c3RyaW5nRm9yVHlwZShTdHJp
bmcoTlNVUkxQYm9hcmRUeXBlKSwgbV9wYXN0ZWJvYXJkTmFtZSkubGVuZ3RoKCk7CisjZW5kaWYK
KyAgICAgICAgfHwgcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT5z
dHJpbmdGb3JUeXBlKHVybFBhc3RlYm9hcmRUeXBlKCksIG1fcGFzdGVib2FyZE5hbWUpLmxlbmd0
aCgpOwogfQogCiBTdHJpbmcgRHJhZ0RhdGE6OmFzUGxhaW5UZXh0KCkgY29uc3QKQEAgLTEzMCwy
MyArMTk0LDI3IEBAIGJvb2wgRHJhZ0RhdGE6OmNvbnRhaW5zQ29tcGF0aWJsZUNvbnRlbnQoKSBj
b25zdAogICAgIFZlY3RvcjxTdHJpbmc+IHR5cGVzOwogICAgIHBsYXRmb3JtU3RyYXRlZ2llcygp
LT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+Z2V0VHlwZXModHlwZXMsIG1fcGFzdGVib2FyZE5hbWUp
OwogICAgIHJldHVybiB0eXBlcy5jb250YWlucyhTdHJpbmcoV2ViQXJjaGl2ZVBib2FyZFR5cGUp
KQotICAgICAgICB8fCB0eXBlcy5jb250YWlucyhTdHJpbmcoTlNIVE1MUGJvYXJkVHlwZSkpCisg
ICAgICAgIHx8IHR5cGVzLmNvbnRhaW5zKGh0bWxQYXN0ZWJvYXJkVHlwZSgpKQorI2lmIFBMQVRG
T1JNKE1BQykKICAgICAgICAgfHwgdHlwZXMuY29udGFpbnMoU3RyaW5nKE5TRmlsZW5hbWVzUGJv
YXJkVHlwZSkpCiAgICAgICAgIHx8IHR5cGVzLmNvbnRhaW5zKFN0cmluZyhOU0ZpbGVzUHJvbWlz
ZVBib2FyZFR5cGUpKQotICAgICAgICB8fCB0eXBlcy5jb250YWlucyhTdHJpbmcoTlNUSUZGUGJv
YXJkVHlwZSkpCi0gICAgICAgIHx8IHR5cGVzLmNvbnRhaW5zKFN0cmluZyhOU1BERlBib2FyZFR5
cGUpKQotICAgICAgICB8fCB0eXBlcy5jb250YWlucyhTdHJpbmcoTlNVUkxQYm9hcmRUeXBlKSkK
LSAgICAgICAgfHwgdHlwZXMuY29udGFpbnMoU3RyaW5nKE5TUlRGRFBib2FyZFR5cGUpKQotICAg
ICAgICB8fCB0eXBlcy5jb250YWlucyhTdHJpbmcoTlNSVEZQYm9hcmRUeXBlKSkKLSAgICAgICAg
fHwgdHlwZXMuY29udGFpbnMoU3RyaW5nKE5TU3RyaW5nUGJvYXJkVHlwZSkpCi0gICAgICAgIHx8
IHR5cGVzLmNvbnRhaW5zKFN0cmluZyhOU0NvbG9yUGJvYXJkVHlwZSkpCisjZW5kaWYKKyAgICAg
ICAgfHwgdHlwZXMuY29udGFpbnModGlmZlBhc3RlYm9hcmRUeXBlKCkpCisgICAgICAgIHx8IHR5
cGVzLmNvbnRhaW5zKHBkZlBhc3RlYm9hcmRUeXBlKCkpCisgICAgICAgIHx8IHR5cGVzLmNvbnRh
aW5zKHVybFBhc3RlYm9hcmRUeXBlKCkpCisgICAgICAgIHx8IHR5cGVzLmNvbnRhaW5zKHJ0ZmRQ
YXN0ZWJvYXJkVHlwZSgpKQorICAgICAgICB8fCB0eXBlcy5jb250YWlucyhydGZQYXN0ZWJvYXJk
VHlwZSgpKQorICAgICAgICB8fCB0eXBlcy5jb250YWlucyhzdHJpbmdQYXN0ZWJvYXJkVHlwZSgp
KQorICAgICAgICB8fCB0eXBlcy5jb250YWlucyhjb2xvclBhc3RlYm9hcmRUeXBlKCkpCiAgICAg
ICAgIHx8IHR5cGVzLmNvbnRhaW5zKFN0cmluZyhrVVRUeXBlUE5HKSk7CiB9CiAKIGJvb2wgRHJh
Z0RhdGE6OmNvbnRhaW5zUHJvbWlzZSgpIGNvbnN0CiB7CiAgICAgVmVjdG9yPFN0cmluZz4gZmls
ZXM7CisjaWYgUExBVEZPUk0oTUFDKQogICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJv
YXJkU3RyYXRlZ3koKS0+Z2V0UGF0aG5hbWVzRm9yVHlwZShmaWxlcywgU3RyaW5nKE5TRmlsZXNQ
cm9taXNlUGJvYXJkVHlwZSksIG1fcGFzdGVib2FyZE5hbWUpOworI2VuZGlmCiAgICAgcmV0dXJu
IGZpbGVzLnNpemUoKSA9PSAxOwogfQogCkBAIC0xNjAsMjQgKzIyOCwyNiBAQCBTdHJpbmcgRHJh
Z0RhdGE6OmFzVVJMKEZpbGVuYW1lQ29udmVyc2lvblBvbGljeSwgU3RyaW5nKiB0aXRsZSkgY29u
c3QKICAgICAvLyBGSVhNRTogVXNlIGZpbGVuYW1lUG9saWN5LgogCiAgICAgaWYgKHRpdGxlKSB7
CisjaWYgUExBVEZPUk0oTUFDKQogICAgICAgICBTdHJpbmcgVVJMVGl0bGVTdHJpbmcgPSBwbGF0
Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPnN0cmluZ0ZvclR5cGUoU3Ry
aW5nKFdlYlVSTE5hbWVQYm9hcmRUeXBlKSwgbV9wYXN0ZWJvYXJkTmFtZSk7CiAgICAgICAgIGlm
ICghVVJMVGl0bGVTdHJpbmcuaXNFbXB0eSgpKQogICAgICAgICAgICAgKnRpdGxlID0gVVJMVGl0
bGVTdHJpbmc7CisjZW5kaWYKICAgICB9CiAgICAgCiAgICAgVmVjdG9yPFN0cmluZz4gdHlwZXM7
CiAgICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT5nZXRUeXBl
cyh0eXBlcywgbV9wYXN0ZWJvYXJkTmFtZSk7CiAKLSAgICBpZiAodHlwZXMuY29udGFpbnMoU3Ry
aW5nKE5TVVJMUGJvYXJkVHlwZSkpKSB7Ci0gICAgICAgIE5TVVJMICpVUkxGcm9tUGFzdGVib2Fy
ZCA9IFtOU1VSTCBVUkxXaXRoU3RyaW5nOnBsYXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJk
U3RyYXRlZ3koKS0+c3RyaW5nRm9yVHlwZShTdHJpbmcoTlNVUkxQYm9hcmRUeXBlKSwgbV9wYXN0
ZWJvYXJkTmFtZSldOworICAgIGlmICh0eXBlcy5jb250YWlucyh1cmxQYXN0ZWJvYXJkVHlwZSgp
KSkgeworICAgICAgICBOU1VSTCAqVVJMRnJvbVBhc3RlYm9hcmQgPSBbTlNVUkwgVVJMV2l0aFN0
cmluZzpwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPnN0cmluZ0Zv
clR5cGUodXJsUGFzdGVib2FyZFR5cGUoKSwgbV9wYXN0ZWJvYXJkTmFtZSldOwogICAgICAgICBO
U1N0cmluZyAqc2NoZW1lID0gW1VSTEZyb21QYXN0ZWJvYXJkIHNjaGVtZV07CiAgICAgICAgIC8v
IENhbm5vdCBkcm9wIG90aGVyIHNjaGVtZXMgdW5sZXNzIDxyZGFyOi8vcHJvYmxlbS8xMDU2MjY2
Mj4gYW5kIDxyZGFyOi8vcHJvYmxlbS8xMTE4NzMxNT4gYXJlIGZpeGVkLgogICAgICAgICBpZiAo
W3NjaGVtZSBpc0VxdWFsVG9TdHJpbmc6QCJodHRwIl0gfHwgW3NjaGVtZSBpc0VxdWFsVG9TdHJp
bmc6QCJodHRwcyJdKQogICAgICAgICAgICAgcmV0dXJuIFtVUkxCeUNhbm9uaWNhbGl6aW5nVVJM
KFVSTEZyb21QYXN0ZWJvYXJkKSBhYnNvbHV0ZVN0cmluZ107CiAgICAgfQogICAgIAotICAgIGlm
ICh0eXBlcy5jb250YWlucyhTdHJpbmcoTlNTdHJpbmdQYm9hcmRUeXBlKSkpIHsKLSAgICAgICAg
TlNVUkwgKlVSTEZyb21QYXN0ZWJvYXJkID0gW05TVVJMIFVSTFdpdGhTdHJpbmc6cGxhdGZvcm1T
dHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT5zdHJpbmdGb3JUeXBlKFN0cmluZyhO
U1N0cmluZ1Bib2FyZFR5cGUpLCBtX3Bhc3RlYm9hcmROYW1lKV07CisgICAgaWYgKHR5cGVzLmNv
bnRhaW5zKHN0cmluZ1Bhc3RlYm9hcmRUeXBlKCkpKSB7CisgICAgICAgIE5TVVJMICpVUkxGcm9t
UGFzdGVib2FyZCA9IFtOU1VSTCBVUkxXaXRoU3RyaW5nOnBsYXRmb3JtU3RyYXRlZ2llcygpLT5w
YXN0ZWJvYXJkU3RyYXRlZ3koKS0+c3RyaW5nRm9yVHlwZShzdHJpbmdQYXN0ZWJvYXJkVHlwZSgp
LCBtX3Bhc3RlYm9hcmROYW1lKV07CiAgICAgICAgIE5TU3RyaW5nICpzY2hlbWUgPSBbVVJMRnJv
bVBhc3RlYm9hcmQgc2NoZW1lXTsKICAgICAgICAgLy8gUGFzdGVib2FyZCBjb250ZW50IGlzIG5v
dCB0cnVzdGVkLCBiZWNhdXNlIEphdmFTY3JpcHQgY29kZSBjYW4gbW9kaWZ5IGl0LiBXZSBjYW4g
c2FuaXRpemUgaXQgZm9yIFVSTHMgYW5kIG90aGVyIHR5cGVkIGNvbnRlbnQsIGJ1dCBub3QgZm9y
IHN0cmluZ3MuCiAgICAgICAgIC8vIFRoZSByZXN1bHQgb2YgdGhpcyBmdW5jdGlvbiBpcyB1c2Vk
IHRvIGluaXRpYXRlIG5hdmlnYXRpb24sIHNvIHdlIHNob3VsZG4ndCBhbGxvdyBhcmJpdHJhcnkg
ZmlsZSBVUkxzLgpAQCAtMTg2LDYgKzI1Niw3IEBAIFN0cmluZyBEcmFnRGF0YTo6YXNVUkwoRmls
ZW5hbWVDb252ZXJzaW9uUG9saWN5LCBTdHJpbmcqIHRpdGxlKSBjb25zdAogICAgICAgICAgICAg
cmV0dXJuIFtVUkxCeUNhbm9uaWNhbGl6aW5nVVJMKFVSTEZyb21QYXN0ZWJvYXJkKSBhYnNvbHV0
ZVN0cmluZ107CiAgICAgfQogICAgIAorI2lmIFBMQVRGT1JNKE1BQykKICAgICBpZiAodHlwZXMu
Y29udGFpbnMoU3RyaW5nKE5TRmlsZW5hbWVzUGJvYXJkVHlwZSkpKSB7CiAgICAgICAgIFZlY3Rv
cjxTdHJpbmc+IGZpbGVzOwogICAgICAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2Fy
ZFN0cmF0ZWd5KCktPmdldFBhdGhuYW1lc0ZvclR5cGUoZmlsZXMsIFN0cmluZyhOU0ZpbGVuYW1l
c1Bib2FyZFR5cGUpLCBtX3Bhc3RlYm9hcmROYW1lKTsKQEAgLTE5OSw2ICsyNzAsNyBAQCBTdHJp
bmcgRHJhZ0RhdGE6OmFzVVJMKEZpbGVuYW1lQ29udmVyc2lvblBvbGljeSwgU3RyaW5nKiB0aXRs
ZSkgY29uc3QKIAogICAgIGlmICh0eXBlcy5jb250YWlucyhTdHJpbmcoTlNGaWxlc1Byb21pc2VQ
Ym9hcmRUeXBlKSkgJiYgZmlsZU5hbWVzKCkuc2l6ZSgpID09IDEpCiAgICAgICAgIHJldHVybiBb
VVJMQnlDYW5vbmljYWxpemluZ1VSTChbTlNVUkwgZmlsZVVSTFdpdGhQYXRoOmZpbGVOYW1lcygp
WzBdXSkgYWJzb2x1dGVTdHJpbmddOworI2VuZGlmCiAKICAgICByZXR1cm4gU3RyaW5nKCk7ICAg
ICAgICAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EcmFnSW1h
Z2VNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tCmlu
ZGV4IGQyZjhmNzA4MDNjY2RmOWM1MmJkYjZhMTdiZDgwMTg1NTFkYzNjMzguLjBlOWRjYTFiYTZj
OWE2OGE4YTkwYmY1NTFhNGI0ZmJjNzQ4ZTVhY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9EcmFnSW1hZ2VNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL0RyYWdJbWFnZU1hYy5tbQpAQCAtMjYsNyArMjYsNyBAQAogI2ltcG9ydCAiY29uZmln
LmgiCiAjaW1wb3J0ICJEcmFnSW1hZ2UuaCIKIAotI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCisj
aWYgRU5BQkxFKERSQUdfU1VQUE9SVCkgJiYgUExBVEZPUk0oTUFDKQogCiAjaW1wb3J0ICJCaXRt
YXBJbWFnZS5oIgogI2ltcG9ydCAiQ29yZUdyYXBoaWNzU1BJLmgiCkBAIC0zNDgsNCArMzQ4LDQg
QEAgRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUZvckxpbmsoVVJMJiB1cmwsIGNvbnN0IFN0
cmluZyYgdGl0bGUsIEZvbnRSZW5kZXJpbmcKICAgIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
Ci0jZW5kaWYgLy8gRU5BQkxFKERSQUdfU1VQUE9SVCkKKyNlbmRpZiAvLyBFTkFCTEUoRFJBR19T
VVBQT1JUKSAmJiBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9N
aXNjL1dlYk5TUGFzdGVib2FyZEV4dHJhcy5oIGIvU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJO
U1Bhc3RlYm9hcmRFeHRyYXMuaAppbmRleCA5MTVjZDEwYTQ1YWFkYmMxOGM5MTNjOGJiYjYxYjk5
ZDk2ZWFjYjdlLi5hOTNiZDliNDc0YmMwZGRhMjMwNDUwOWJkZTQ3MTJjOTIxMmY5Y2FlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYk5TUGFzdGVib2FyZEV4dHJhcy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViTlNQYXN0ZWJvYXJkRXh0cmFzLmgKQEAgLTI4
LDYgKzI4LDggQEAKIAogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CiAKKyNpZiBQ
TEFURk9STShNQUMpCisKIEBjbGFzcyBET01FbGVtZW50OwogQGNsYXNzIFdlYkFyY2hpdmU7CiBA
Y2xhc3MgV2ViSFRNTFZpZXc7CkBAIC04NywzICs4OSw1IEBAIGV4dGVybiBOU1N0cmluZyAqV2Vi
VVJMTmFtZVBib2FyZFR5cGU7CiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KICNlbmRpZgorCisjZW5k
aWYgLy8gUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkRyYWdDbGllbnQubW0KaW5kZXggZmY5MGQ1OTdlZWVkZGVmNzhjZGVkNjVhMjhmMjli
MDU2NjdkYTJkZS4uZTIzM2RkMTIwNjM0NGY5NTdkZjQzODRmYTVlYzRhNDRhYjE4MjFkMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50Lm1t
CkBAIC0yNSw3ICsyNSw3IEBACiAKICNpbXBvcnQgIldlYkRyYWdDbGllbnQuaCIKIAotI2lmIEVO
QUJMRShEUkFHX1NVUFBPUlQpCisjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkgJiYgUExBVEZPUk0o
TUFDKQogCiAjaW1wb3J0ICJET01FbGVtZW50SW50ZXJuYWwuaCIKICNpbXBvcnQgIldlYkFyY2hp
dmUuaCIKQEAgLTE0Myw0ICsxNDMsNCBAQCB2b2lkIFdlYkRyYWdDbGllbnQ6OmRyYWdDb250cm9s
bGVyRGVzdHJveWVkKCkKICAgICBkZWxldGUgdGhpczsKIH0KIAotI2VuZGlmIC8vIEVOQUJMRShE
UkFHX1NVUFBPUlQpCisjZW5kaWYgLy8gRU5BQkxFKERSQUdfU1VQUE9SVCkgJiYgUExBVEZPUk0o
TUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbSBi
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KaW5kZXggYmQ4YTRkNTA2YjM5
OTJiYWU5MjhkNjg3NmU2YTA0NDYxOTczMDliNy4uZmVjNGM2MGVkMjYzNjBlMjBhOWE2ZDI2YzRj
ZTA2ZDg3ZDBlMTg2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJG
cmFtZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCkBAIC05
MzMsNyArOTMzLDcgQEAgc3RhdGljIGlubGluZSBXZWJEYXRhU291cmNlICpkYXRhU291cmNlKERv
Y3VtZW50TG9hZGVyKiBsb2FkZXIpCiAgICAgX3ByaXZhdGUtPmNvcmVGcmFtZS0+ZWRpdG9yKCku
Y29tcHV0ZUFuZFNldFR5cGluZ1N0eWxlKHByb3BlcnRpZXMuZ2V0KCksIHVuZG9BY3Rpb24pOwog
fQogCi0jaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKKyNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKSAm
JiBQTEFURk9STShNQUMpCiAtICh2b2lkKV9kcmFnU291cmNlRW5kZWRBdDooTlNQb2ludCl3aW5k
b3dMb2Mgb3BlcmF0aW9uOihOU0RyYWdPcGVyYXRpb24pb3BlcmF0aW9uCiB7CiAgICAgaWYgKCFf
cHJpdmF0ZS0+Y29yZUZyYW1lKQpAQCAtOTQ2LDcgKzk0Niw3IEBAIHN0YXRpYyBpbmxpbmUgV2Vi
RGF0YVNvdXJjZSAqZGF0YVNvdXJjZShEb2N1bWVudExvYWRlciogbG9hZGVyKQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVk
LCAwLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgY3VycmVudFRpbWUoKSwgV2ViQ29yZTo6
Rm9yY2VBdENsaWNrLCBXZWJDb3JlOjpOb1RhcCk7CiAgICAgX3ByaXZhdGUtPmNvcmVGcmFtZS0+
ZXZlbnRIYW5kbGVyKCkuZHJhZ1NvdXJjZUVuZGVkQXQoZXZlbnQsIChEcmFnT3BlcmF0aW9uKW9w
ZXJhdGlvbik7CiB9Ci0jZW5kaWYKKyNlbmRpZiAvLyBFTkFCTEUoRFJBR19TVVBQT1JUKSAmJiBQ
TEFURk9STShNQUMpCiAKIC0gKEJPT0wpX2NhblByb3ZpZGVEb2N1bWVudFNvdXJjZQogewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZUludGVybmFsLmggYi9T
b3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lSW50ZXJuYWwuaAppbmRleCA1NTNjMjMw
OGJhZThlNDRhNzYyZDNmODcwYzliMTc5NDdhODlmZTc0Li41YzcyZDI4N2ZhNTc3MDg5Y2Q0NDBm
MDY3YzFjZGEzYWMxY2Y2MTlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYkZyYW1lSW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZy
YW1lSW50ZXJuYWwuaApAQCAtMTc5LDcgKzE3OSw3IEBAIFdlYlZpZXcgKmdldFdlYlZpZXcoV2Vi
RnJhbWUgKndlYkZyYW1lKTsKIC0gKERPTUNTU1N0eWxlRGVjbGFyYXRpb24gKilfdHlwaW5nU3R5
bGU7CiAtICh2b2lkKV9zZXRUeXBpbmdTdHlsZTooRE9NQ1NTU3R5bGVEZWNsYXJhdGlvbiAqKXN0
eWxlIHdpdGhVbmRvQWN0aW9uOihXZWJDb3JlOjpFZGl0QWN0aW9uKXVuZG9BY3Rpb247CiAKLSNp
ZiBFTkFCTEUoRFJBR19TVVBQT1JUKQorI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpICYmIFBMQVRG
T1JNKE1BQykKIC0gKHZvaWQpX2RyYWdTb3VyY2VFbmRlZEF0OihOU1BvaW50KXdpbmRvd0xvYyBv
cGVyYXRpb246KE5TRHJhZ09wZXJhdGlvbilvcGVyYXRpb247CiAjZW5kaWYKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbSBiL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KaW5kZXggMDIwOWQ4MTNlOGZjYjk3NTc0OGU5
Yzg5NWZkZTc4MjcwMGIxNDg0YS4uNjRlNjNlMjkwMDZkNTZlYjM3Mzc4NWI4NmQwN2JjOTY1Nzc2
NzA0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCkBAIC00NTQ0
LDcgKzQ1NDQsNyBAQCBzdGF0aWMgQk9PTCBjdXJyZW50U2Nyb2xsSXNCbGl0KE5TVmlldyAqY2xp
cFZpZXcpCiB9CiAjZW5kaWYKIAotI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCisjaWYgRU5BQkxF
KERSQUdfU1VQUE9SVCkgJiYgUExBVEZPUk0oTUFDKQogLSAodm9pZClkcmFnSW1hZ2U6KE5TSW1h
Z2UgKilkcmFnSW1hZ2UKICAgICAgICAgICAgICAgIGF0OihOU1BvaW50KWF0CiAgICAgICAgICAg
IG9mZnNldDooTlNTaXplKW9mZnNldApAQCAtNDY4OCw3ICs0Njg4LDcgQEAgc3RhdGljIGJvb2wg
bWF0Y2hlc0V4dGVuc2lvbk9yRXF1aXZhbGVudChOU1N0cmluZyAqZmlsZW5hbWUsIE5TU3RyaW5n
ICpleHRlbnNpb24KICAgICAKICAgICByZXR1cm4gW05TQXJyYXkgYXJyYXlXaXRoT2JqZWN0Oltw
YXRoIGxhc3RQYXRoQ29tcG9uZW50XV07CiB9Ci0jZW5kaWYKKyNlbmRpZiAvLyBFTkFCTEUoRFJB
R19TVVBQT1JUKSAmJiBQTEFURk9STShNQUMpCiAKICNpZiAhUExBVEZPUk0oSU9TKQogLSAodm9p
ZCltb3VzZVVwOihOU0V2ZW50ICopZXZlbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5t
bQppbmRleCA1N2JhYTU0ZTM0MmViY2MyMTdiNTBjODEzNDBlOWU0NmI3MWM2NWRmLi45ZTEzZjZh
YjM2ZGU4N2Q4MWJkMTg0YTIxNzI1MTQxODQyNTVlODM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJWaWV3Lm1tCkBAIC0xNjA4LDcgKzE2MDgsNyBAQCBzdGF0aWMgdm9pZCBXZWJLaXRJbml0
aWFsaXplR2FtZXBhZFByb3ZpZGVySWZOZWNlc3NhcnkoKQogICAgICAgICBtYWtlVW5pcXVlUmVm
PFdlYkNvcmU6OkxpYldlYlJUQ1Byb3ZpZGVyPigpCiAgICAgKTsKICAgICBwYWdlQ29uZmlndXJh
dGlvbi5jaHJvbWVDbGllbnQgPSBuZXcgV2ViQ2hyb21lQ2xpZW50SU9TKHNlbGYpOwotI2lmIEVO
QUJMRShEUkFHX1NVUFBPUlQpCisjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkgJiYgUExBVEZPUk0o
TUFDKQogICAgIHBhZ2VDb25maWd1cmF0aW9uLmRyYWdDbGllbnQgPSBuZXcgV2ViRHJhZ0NsaWVu
dChzZWxmKTsKICNlbmRpZgogCkBAIC02NDc1LDcgKzY0NzUsNyBAQCBzdGF0aWMgTlNTdHJpbmcg
KiBjb25zdCBiYWNraW5nUHJvcGVydHlPbGRTY2FsZUZhY3RvcktleSA9IEAiTlNCYWNraW5nUHJv
cGVydHlPbAogICAgIHJldHVybiBbc2VsZiBfZWxlbWVudEF0V2luZG93UG9pbnQ6W3NlbGYgY29u
dmVydFBvaW50OnBvaW50IHRvVmlldzpuaWxdXTsKIH0KIAotI2lmIEVOQUJMRShEUkFHX1NVUFBP
UlQpCisjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkgJiYgUExBVEZPUk0oTUFDKQogLy8gVGhlIGZv
bGxvd2luZyAyIGludGVybmFsIE5TVmlldyBtZXRob2RzIGFyZSBjYWxsZWQgb24gdGhlIGRyYWcg
ZGVzdGluYXRpb24gdG8gbWFrZSBzY3JvbGxpbmcgd2hpbGUgZHJhZ2dpbmcgd29yay4KIC8vIFNj
cm9sbGluZyB3aGlsZSBkcmFnZ2luZyB3aWxsIG9ubHkgd29yayBpZiB0aGUgZHJhZyBkZXN0aW5h
dGlvbiBpcyBpbiBhIHNjcm9sbCB2aWV3LiBUaGUgV2ViVmlldyBpcyB0aGUgZHJhZyBkZXN0aW5h
dGlvbi4gCiAvLyBXaGVuIGRyYWdnaW5nIHRvIGEgV2ViVmlldywgdGhlIGRvY3VtZW50IHN1YnZp
ZXcgc2hvdWxkIHNjcm9sbCwgYnV0IGl0IGRvZXNuJ3QgYmVjYXVzZSBpdCBpcyBub3QgdGhlIGRy
YWcgZGVzdGluYXRpb24uIApAQCAtNjU5Niw3ICs2NTk2LDcgQEAgc3RhdGljIE5TU3RyaW5nICog
Y29uc3QgYmFja2luZ1Byb3BlcnR5T2xkU2NhbGVGYWN0b3JLZXkgPSBAIk5TQmFja2luZ1Byb3Bl
cnR5T2wKICAgICAgICAgcmV0dXJuIHNlbGY7CiAgICAgcmV0dXJuIGhpdFZpZXc7CiB9Ci0jZW5k
aWYKKyNlbmRpZiAvLyBFTkFCTEUoRFJBR19TVVBQT1JUKSAmJiBQTEFURk9STShNQUMpCiAKIC0g
KEJPT0wpYWNjZXB0c0ZpcnN0UmVzcG9uZGVyCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4IGM2YTg1NzE5N2Q1ZTFhMmVhYzA2NzA5
MDY4NTViMzA4ODhiYzc0OTMuLjljZDVlMmJiNDU1ZmFlMjhhYTJlYTMyZmE4MTk2ZjZjNTk4YTY1
MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2Rl
cnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
Y3BwCkBAIC0xMjIzLDggKzEyMjMsOCBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8RHJhZ0RhdGE+Ojpl
bmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgRHJhZ0RhdGEmIGRyYWdEYXRhKQogICAgIGVu
Y29kZXIgPDwgZHJhZ0RhdGEuZ2xvYmFsUG9zaXRpb24oKTsKICAgICBlbmNvZGVyLmVuY29kZUVu
dW0oZHJhZ0RhdGEuZHJhZ2dpbmdTb3VyY2VPcGVyYXRpb25NYXNrKCkpOwogICAgIGVuY29kZXIu
ZW5jb2RlRW51bShkcmFnRGF0YS5mbGFncygpKTsKLSNpZiBQTEFURk9STShNQUMpCiAgICAgZW5j
b2RlciA8PCBkcmFnRGF0YS5wYXN0ZWJvYXJkTmFtZSgpOworI2lmIFBMQVRGT1JNKE1BQykKICAg
ICBlbmNvZGVyIDw8IGRyYWdEYXRhLmZpbGVOYW1lcygpOwogI2VuZGlmCiB9CkBAIC0xMjQ4LDE2
ICsxMjQ4LDE4IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxEcmFnRGF0YT46OmRlY29kZShEZWNvZGVy
JiBkZWNvZGVyLCBEcmFnRGF0YSYgZHJhZ0RhdGEpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAog
ICAgIFN0cmluZyBwYXN0ZWJvYXJkTmFtZTsKLSNpZiBQTEFURk9STShNQUMpCiAgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShwYXN0ZWJvYXJkTmFtZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSNl
bmRpZgorI2lmIFBMQVRGT1JNKE1BQykKICAgICBWZWN0b3I8U3RyaW5nPiBmaWxlTmFtZXM7CiAg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShmaWxlTmFtZXMpKQogICAgICAgICByZXR1cm4gZmFsc2U7
CisjZW5kaWYKIAogICAgIGRyYWdEYXRhID0gRHJhZ0RhdGEocGFzdGVib2FyZE5hbWUsIGNsaWVu
dFBvc2l0aW9uLCBnbG9iYWxQb3NpdGlvbiwgZHJhZ2dpbmdTb3VyY2VPcGVyYXRpb25NYXNrLCBh
cHBsaWNhdGlvbkZsYWdzKTsKKyNpZiBQTEFURk9STShNQUMpCiAgICAgZHJhZ0RhdGEuc2V0Rmls
ZU5hbWVzKGZpbGVOYW1lcyk7CisjZW5kaWYKIAogICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1t
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tCmlu
ZGV4IGJhN2Y3Zjc5ZmZhYmEyNjM5ZGU4MjEzNGJhZWU3YzU1YjEzNjdhZmMuLmY1YTcxYTdkZjQz
ZWVjMDhjNjMxY2Q0YTdhNTQ4MzJkY2U2MTdhZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0KQEAgLTM0LDYgKzM0LDEwIEBA
CiAjaW1wb3J0IDxXZWJDb3JlL1ZhbGlkYXRpb25CdWJibGUuaD4KICNpbXBvcnQgPHd0Zi9jZi9U
eXBlQ2FzdHNDRi5oPgogCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyNpbXBvcnQgPFdl
YktpdEFkZGl0aW9ucy9XZWJQYWdlUHJveHlBZGRpdGlvbnMubW0+CisjZW5kaWYKKwogbmFtZXNw
YWNlIFdlYktpdCB7CiAKICNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJEcmFnQ2xpZW50
TWFjLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2Vi
RHJhZ0NsaWVudE1hYy5tbQppbmRleCA4OGFkNWRjYzQxNjBkYzExYjVlYmZlMjBjMmQwZmVmODNi
ZDg0Yjc4Li5iZGVhOWE4ZTIwZmRhMDM5YTc1MjRlOGMxYTkzMjE5NGVlOTVlNmYxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJEcmFn
Q2xpZW50TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvbWFjL1dlYkRyYWdDbGllbnRNYWMubW0KQEAgLTUxLDYgKzUxLDEyIEBACiB1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKKyNpZiBVU0UoQVBQTEVf
SU5URVJOQUxfU0RLKQorI2ltcG9ydCA8V2ViS2l0QWRkaXRpb25zL1dlYkRyYWdDbGllbnRBZGRp
dGlvbnMubW0+CisjZW5kaWYKKworI2lmIFBMQVRGT1JNKE1BQykKKwogbmFtZXNwYWNlIFdlYktp
dCB7CiAKIHN0YXRpYyBQYXNzUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4gY29udmVydEltYWdlVG9C
aXRtYXAoTlNJbWFnZSAqaW1hZ2UsIGNvbnN0IEludFNpemUmIHNpemUsIEZyYW1lJiBmcmFtZSkK
QEAgLTE2MCw0ICsxNjYsNiBAQCB2b2lkIFdlYkRyYWdDbGllbnQ6OmRlY2xhcmVBbmRXcml0ZURy
YWdJbWFnZShjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lLCBFbGVtZQogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKIAorI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKKwogI2VuZGlmIC8vIEVOQUJM
RShEUkFHX1NVUFBPUlQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>299759</attachid>
            <date>2017-01-25 16:08:14 -0800</date>
            <delta_ts>2017-01-25 16:09:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-167427-20170125160613.patch</filename>
            <type>text/plain</type>
            <size>47454</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExMTY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDZhMzhmMzVjYWIwNGVlZmU2ZThhZDZl
NGEyMTg5YzI5NDliNzlkYzcuLjA1OGJjN2VlN2JlOWJkMmI2NDkyMTgwZDY1NzcxMjM1ZTFhNTE4
OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTctMDEtMjUgIFdlbnNvbiBIc2llaCAgPHdlbnNv
bl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgSW50cm9kdWNlIGFuIGl0ZW0tcHJvdmlkZXIt
YmFzZWQgcGFzdGVib2FyZCB3cmFwcGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNjc0MTAKKworICAgICAgICBSZXZpZXdlZCBieSBFbnJpY2EgQ2Fz
dWNjaS4KKworICAgICAgICBBZGRzIGFuIGFkZGl0aW9uYWwgZmVhdHVyZSBmbGFnLgorCisgICAg
ICAgICogd3RmL0ZlYXR1cmVEZWZpbmVzLmg6CisKIDIwMTctMDEtMjUgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBEaXNhYmxlIERvd25sb2FkIGF0dHJpYnV0ZSBz
dXBwb3J0IG9uIGlPUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDYxNjZmYTE3Y2ZiMDMyZWI5ZmUwMDlmYTJlNWMz
ZDI3MjIwYjI5YjcuLjY5NWI2OTdmZWNkYTI1MTZjZDUyZTQ4NWRjZThmZTAyNDllY2Y4NDEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw3NCBAQAorMjAxNy0wMS0yNSAgV2Vuc29uIEhzaWVoICA8d2Vu
c29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBSZWZhY3RvciBkcmFnIGFuZCBkcm9wIGlt
cGxlbWVudGF0aW9uIG9uIE1hYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTY3NDI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgUmVmYWN0b3JzIHNvbWUgY29kZSBhcm91bmQgZHJhZyBhbmQgZHJvcCBvbiBN
YWMsIGFuZCBjbGVhbnMgdXAgc29tZSBvdGhlciByZWxhdGVkIGNvZGUgYXMgbmVlZGVkLiBUaGlz
IHBhdGNoCisgICAgICAgIHNob3VsZCByZXN1bHQgaW4gbm8gYmVoYXZpb3IgY2hhbmdlLgorCisg
ICAgICAgICogZG9tL0RhdGFUcmFuc2Zlci5jcHA6CisgICAgICAgICogcGFnZS9FdmVudEhhbmRs
ZXIuY3BwOgorICAgICAgICAqIHBhZ2UvaW9zL0V2ZW50SGFuZGxlcklPUy5tbToKKyAgICAgICAg
KFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6ZXZlbnRMb29wSGFuZGxlTW91c2VEcmFnZ2VkKToKKyAg
ICAgICAgKiBwYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW06CisgICAgICAgICogcGxhdGZvcm0v
RHJhZ0ltYWdlLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9QYXN0ZWJvYXJkLmg6CisgICAgICAg
ICogcGxhdGZvcm0vaW9zL0RyYWdJbWFnZUlPUy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mv
UGFzdGVib2FyZElPUy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvRHJhZ0RhdGFNYWMubW06
CisgICAgICAgIChydGZQYXN0ZWJvYXJkVHlwZSk6CisgICAgICAgIChydGZkUGFzdGVib2FyZFR5
cGUpOgorICAgICAgICAoc3RyaW5nUGFzdGVib2FyZFR5cGUpOgorICAgICAgICAodXJsUGFzdGVi
b2FyZFR5cGUpOgorICAgICAgICAoaHRtbFBhc3RlYm9hcmRUeXBlKToKKyAgICAgICAgKGNvbG9y
UGFzdGVib2FyZFR5cGUpOgorICAgICAgICAocGRmUGFzdGVib2FyZFR5cGUpOgorICAgICAgICAo
dGlmZlBhc3RlYm9hcmRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdEYXRhOjpEcmFnRGF0
YSk6CisgICAgICAgIChXZWJDb3JlOjpEcmFnRGF0YTo6Y29udGFpbnNDb2xvcik6CisgICAgICAg
IChXZWJDb3JlOjpEcmFnRGF0YTo6Y29udGFpbnNGaWxlcyk6CisgICAgICAgIChXZWJDb3JlOjpE
cmFnRGF0YTo6bnVtYmVyT2ZGaWxlcyk6CisgICAgICAgIChXZWJDb3JlOjpEcmFnRGF0YTo6YXNG
aWxlbmFtZXMpOgorICAgICAgICAoV2ViQ29yZTo6RHJhZ0RhdGE6OmNvbnRhaW5zUGxhaW5UZXh0
KToKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdEYXRhOjpjb250YWluc0NvbXBhdGlibGVDb250ZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdEYXRhOjpjb250YWluc1Byb21pc2UpOgorICAgICAg
ICAoV2ViQ29yZTo6RHJhZ0RhdGE6OmFzVVJMKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvRHJh
Z0ltYWdlTWFjLm1tOgorCisyMDE3LTAxLTI1ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhA
YXBwbGUuY29tPgorCisgICAgICAgIEludHJvZHVjZSBhbiBpdGVtLXByb3ZpZGVyLWJhc2VkIHBh
c3RlYm9hcmQgd3JhcHBlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTY3NDEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRW5yaWNhIENhc3VjY2kuCisK
KyAgICAgICAgSW50cm9kdWNlcyBXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkLCBhIHBhc3RlYm9h
cmQtbGlrZSBvYmplY3QgYmFja2VkIGJ5IGEgbnVtYmVyIG9mIGl0ZW0gcHJvdmlkZXJzLiBObyBu
ZXcKKyAgICAgICAgdGVzdHMsIHNpbmNlIHRoZXJlIGlzIG5vIGJlaGF2aW9yIGNoYW5nZS4KKwor
ICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBw
bGF0Zm9ybS9pb3MvQWJzdHJhY3RQYXN0ZWJvYXJkLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3NwaS9pb3MvVUlLaXRTUEkuaC4KKyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mv
V2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmguCisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYkl0
ZW1Qcm92aWRlclBhc3RlYm9hcmQubW06IEFkZGVkLgorICAgICAgICAoaXNSaWNoVGV4dFR5cGUp
OgorICAgICAgICAoaXNTdHJpbmdUeXBlKToKKyAgICAgICAgKGlzVVJMVHlwZSk6CisgICAgICAg
IChpc0NvbG9yVHlwZSk6CisgICAgICAgIChpc0ltYWdlVHlwZSk6CisgICAgICAgICgrW1dlYkl0
ZW1Qcm92aWRlclBhc3RlYm9hcmQgc2hhcmVkSW5zdGFuY2VdKToKKyAgICAgICAgKC1bV2ViSXRl
bVByb3ZpZGVyUGFzdGVib2FyZCBpbml0XSk6CisgICAgICAgICgtW1dlYkl0ZW1Qcm92aWRlclBh
c3RlYm9hcmQgZGVhbGxvY10pOgorICAgICAgICAoLVtXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJk
IHBhc3RlYm9hcmRUeXBlc10pOgorICAgICAgICAoLVtXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJk
IHNldEl0ZW1Qcm92aWRlcnM6XSk6CisgICAgICAgICgtW1dlYkl0ZW1Qcm92aWRlclBhc3RlYm9h
cmQgbnVtYmVyT2ZJdGVtc10pOgorICAgICAgICAoLVtXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJk
IHNldEl0ZW1zOl0pOgorICAgICAgICAoLVtXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkIGRhdGFG
b3JQYXN0ZWJvYXJkVHlwZTppbkl0ZW1TZXQ6XSk6CisgICAgICAgICgtW1dlYkl0ZW1Qcm92aWRl
clBhc3RlYm9hcmQgdmFsdWVzRm9yUGFzdGVib2FyZFR5cGU6aW5JdGVtU2V0Ol0pOgorICAgICAg
ICAoLVtXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkIGNoYW5nZUNvdW50XSk6CisgICAgICAgICgt
W1dlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQgaXRlbVByb3ZpZGVyQXRJbmRleDpdKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmg6CisKIDIwMTctMDEtMjUgIFNpbW9uIEZy
YXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2ZXJ0IHIyMTA4ODIs
IHJlbW92aW5nIHN1cHBvcnQgZm9yIGJhY2tncm91bmQtcmVwZWF0LXgveQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9n
CmluZGV4IDgwYzcyOTQxY2ZhMzQ2ZTEzNzFkYzU5NjlmNjE5OWMyMTkxYWUyNGYuLjY1OGZlZGVh
NjhhYmEzZWRlNGQ5YTQ1YWE0YWJlMjQ5MzI1NTUxMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMCBAQAorMjAxNy0wMS0yNSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxl
LmNvbT4KKworICAgICAgICBSZWZhY3RvciBkcmFnIGFuZCBkcm9wIGltcGxlbWVudGF0aW9uIG9u
IE1hYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY3
NDI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVm
YWN0b3Igc29tZSBXZWJLaXQxIGNvZGUgb24gdGhlIE1hYyBwZXJ0YWluaW5nIHRvIGRyYWcgYW5k
IGRyb3AuIFNlZSBXZWJDb3JlIENoYW5nZUxvZyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAg
ICogTWlzYy9XZWJOU1Bhc3RlYm9hcmRFeHRyYXMuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9XZWJEcmFnQ2xpZW50Lm1tOgorICAgICAgICAqIFdlYlZpZXcvV2ViRnJhbWUubW06CisgICAg
ICAgICogV2ViVmlldy9XZWJGcmFtZUludGVybmFsLmg6CisgICAgICAgICogV2ViVmlldy9XZWJI
VE1MVmlldy5tbToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dl
YlZpZXcgaW5pdFNpbXBsZUhUTUxEb2N1bWVudFdpdGhTdHlsZTpmcmFtZTpwcmVmZXJlbmNlczpn
cm91cE5hbWU6XSk6CisKIDIwMTctMDEtMjQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5mQGdtYWls
LmNvbT4KIAogICAgICAgICBbV2ViUlRDXSBJbnRyb2R1Y2UgbGlid2VicnRjIGFic3RyYWN0aW9u
IGZvciBXSzEvV0syIGltcGxlbWVudGF0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDM4MmRkNjgxNzAzMDYz
MTZiNDEwZjFmNWM0YWNiZTYxYTA3YWFiZTcuLjIyOWU1MjI3YTdkM2NiMGMyYmFiOTYxMDQyMWYw
MTVhN2M3NDVjNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxNy0wMS0yNSAgV2Vu
c29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBSZWZhY3RvciBk
cmFnIGFuZCBkcm9wIGltcGxlbWVudGF0aW9uIG9uIE1hYworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY3NDI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2VlIFdlYkNvcmUgQ2hhbmdlTG9nIGZvciBtb3Jl
IGRldGFpbHMuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcDoK
KyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxEcmFnRGF0YT46OmVuY29kZSk6CisgICAgICAg
IChJUEM6OkFyZ3VtZW50Q29kZXI8RHJhZ0RhdGE+OjpkZWNvZGUpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L21hYy9XZWJEcmFnQ2xpZW50TWFjLm1tOgorCiAyMDE3LTAxLTI1ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBbUXVpY2tMb29rXSBEaXNwbGF5
IGEgV0tQYXNzd29yZFZpZXcgd2hlbiBhIGRvY3VtZW50IGlzIHBhc3N3b3JkLXByb3RlY3RlZApk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRmVhdHVyZURlZmluZXMuaCBiL1NvdXJjZS9XVEYv
d3RmL0ZlYXR1cmVEZWZpbmVzLmgKaW5kZXggOTFhMDhkYmIxNDU5NGMwNjQyZjBjMzMyMWI1OThl
OWRjMTcwYjM1My4uMTAzZWExMDdlMDE5MDQ3YmI5YTlkMmE1MWVlMTNkY2Y2NmFlOWFkOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi93dGYvRmVhdHVyZURlZmluZXMuaAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9GZWF0dXJlRGVmaW5lcy5oCkBAIC03ODMsNiArNzgzLDEwIEBAIHRoZSBwdWJsaWMgaU9T
IFNESy4gV2Ugd2lsbCBhbHNvIG5lZWQgdG8gdXBkYXRlIHRoZSBGZWF0dXJlRGVmaW5lcy54Y2Nv
bmZpZyBmaWxlCiAjZGVmaW5lIEVOQUJMRV9LRVlCT0FSRF9DT0RFX0FUVFJJQlVURSAwCiAjZW5k
aWYKIAorI2lmICFkZWZpbmVkKEVOQUJMRV9EQVRBX0lOVEVSQUNUSU9OKQorI2RlZmluZSBFTkFC
TEVfREFUQV9JTlRFUkFDVElPTiAwCisjZW5kaWYKKwogLyogQXNzZXJ0cywgaW52YXJpYW50cyBm
b3IgbWFjcm8gZGVmaW5pdGlvbnMgKi8KIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykgJiYgIUVO
QUJMRShWSURFTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCBiZmMyOThhM2JhMzc2MTg5MzBkMWUyMGY4NzA4NmUxODIxN2U1ZGI2
Li41NTcxYTExYmNhNDE0YTZiY2NmMTFhZGM0MmU3ODFmZDEwZTZlM2VjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02NTA2LDYg
KzY1MDYsOSBAQAogCQlGNDc4NzU1NTE5OTgzQUZGMDAyNEEyODcgLyogU2Nyb2xsU25hcEFuaW1h
dG9yU3RhdGUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNDc4NzU1MzE5OTgzQUZGMDAyNEEyODcgLyogU2Nyb2xsU25hcEFuaW1hdG9yU3RhdGUubW0g
Ki87IH07CiAJCUY0N0E1RTNFMTk1QjhDOEEwMDQ4MzEwMCAvKiBTdHlsZVNjcm9sbFNuYXBQb2lu
dHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0N0E1
RTNCMTk1QjhDOEEwMDQ4MzEwMCAvKiBTdHlsZVNjcm9sbFNuYXBQb2ludHMuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGNDdBNUUzRjE5NUI4RTQ4
MDA0ODMxMDAgLyogU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0N0E1RTNBMTk1QjhDOEEwMDQ4MzEwMCAvKiBT
dHlsZVNjcm9sbFNuYXBQb2ludHMuY3BwICovOyB9OworCQlGNDgyMjMxMDFFMzg2OUI4MDA2NkZD
NzkgLyogV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0ODIyMzBFMUUzODY5QjgwMDY2RkM3OSAvKiBXZWJJ
dGVtUHJvdmlkZXJQYXN0ZWJvYXJkLm1tICovOyB9OworCQlGNDgyMjMxMTFFMzg2OUI4MDA2NkZD
NzkgLyogV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ4MjIzMEYxRTM4NjlCODAwNjZGQzc5IC8qIFdlYkl0
ZW1Qcm92aWRlclBhc3RlYm9hcmQuaCAqLzsgfTsKKwkJRjQ4MjIzMTMxRTM4NkUyNDAwNjZGQzc5
IC8qIEFic3RyYWN0UGFzdGVib2FyZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjQ4MjIzMTIxRTM4NkUyNDAwNjZGQzc5IC8qIEFic3RyYWN0UGFzdGVi
b2FyZC5oICovOyB9OwogCQlGNEJGQjk4NTFFMURERjlCMDA4NjJDMjQgLyogRHVtcEVkaXRpbmdI
aXN0b3J5LmpzIGluIENvcHkgU2NyaXB0cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNDgzODk4MzFFMURERjJCMDA3NkI3RUEgLyogRHVtcEVkaXRpbmdIaXN0b3J5LmpzICov
OyB9OwogCQlGNEJGQjk4NjFFMURERjlCMDA4NjJDMjQgLyogRWRpdGluZ0hpc3RvcnlVdGlsLmpz
IGluIENvcHkgU2NyaXB0cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDgz
ODk4NDFFMURERjJCMDA3NkI3RUEgLyogRWRpdGluZ0hpc3RvcnlVdGlsLmpzICovOyB9OwogCQlG
NTA2NjRGNzE1N0Y1MkRDMDBBQzIyNkYgLyogRm9ybUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjUwNjY0RjUxNTdGNTJEQzAwQUMy
MjZGIC8qIEZvcm1Db250cm9sbGVyLmNwcCAqLzsgfTsKQEAgLTE0NTU4LDYgKzE0NTYxLDkgQEAK
IAkJRjQ3ODc1NTMxOTk4M0FGRjAwMjRBMjg3IC8qIFNjcm9sbFNuYXBBbmltYXRvclN0YXRlLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gU2Nyb2xsU25hcEFuaW1h
dG9yU3RhdGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0N0E1RTNBMTk1QjhD
OEEwMDQ4MzEwMCAvKiBTdHlsZVNjcm9sbFNuYXBQb2ludHMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ3QTVFM0IxOTVCOEM4QTAwNDgzMTAwIC8qIFN0eWxlU2Ny
b2xsU25hcFBvaW50cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHlsZVNj
cm9sbFNuYXBQb2ludHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjQ4MjIzMEUx
RTM4NjlCODAwNjZGQzc5IC8qIFdlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJk
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNDgyMjMwRjFFMzg2OUI4MDA2NkZD
NzkgLyogV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUY0ODIyMzEyMUUzODZFMjQwMDY2RkM3OSAvKiBBYnN0cmFjdFBhc3RlYm9h
cmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQWJzdHJhY3RQYXN0ZWJvYXJk
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0ODM4OTgzMUUxRERGMkIwMDc2QjdF
QSAvKiBEdW1wRWRpdGluZ0hpc3RvcnkuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3Jp
cHQ7IG5hbWUgPSBEdW1wRWRpdGluZ0hpc3RvcnkuanM7IHBhdGggPSBTY3JpcHRzL0R1bXBFZGl0
aW5nSGlzdG9yeS5qczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ4Mzg5ODQxRTFE
REYyQjAwNzZCN0VBIC8qIEVkaXRpbmdIaXN0b3J5VXRpbC5qcyAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuamF2YXNjcmlwdDsgbmFtZSA9IEVkaXRpbmdIaXN0b3J5VXRpbC5qczsgcGF0aCA9IFNjcmlw
dHMvRWRpdGluZ0hpc3RvcnlVdGlsLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlG
NTA2NjRGNTE1N0Y1MkRDMDBBQzIyNkYgLyogRm9ybUNvbnRyb2xsZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRm9ybUNvbnRyb2xsZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTk3NzIsNiArMTk3NzgsNyBAQAogCQlBNTlFM0MxQjExNTgw
RjM0MDA3MjkyOEUgLyogaW9zICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJl
biA9ICgKKwkJCQlGNDgyMjMxMjFFMzg2RTI0MDA2NkZDNzkgLyogQWJzdHJhY3RQYXN0ZWJvYXJk
LmggKi8sCiAJCQkJQTE0ODMyOEIxODdGNTA2ODAwREE2M0E2IC8qIHdhayAqLywKIAkJCQkyNjU1
NDE0QjE0ODlBQTJCMDAwREZDNUQgLyogQ3Vyc29ySU9TLmNwcCAqLywKIAkJCQlBMUVENzc4QTFC
RTMyOTNGMDBEQzE3OTEgLyogRGV2aWNlLmNwcCAqLywKQEAgLTE5ODM2LDYgKzE5ODQzLDggQEAK
IAkJCQkzRkJDNEFGMjE4OTg4MTU2MDA0NkVFMzggLyogV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlQVZLaXQuaCAqLywKIAkJCQkzRkJDNEFGMTE4OTg4MTU2MDA0NkVFMzggLyogV2ViVmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0gKi8sCiAJCQkJRTQ1MzkwM0MwRUFGRDYzNzAwMzY5
NUM4IC8qIFdpZGdldElPUy5tbSAqLywKKwkJCQlGNDgyMjMwRTFFMzg2OUI4MDA2NkZDNzkgLyog
V2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZC5tbSAqLywKKwkJCQlGNDgyMjMwRjFFMzg2OUI4MDA2
NkZDNzkgLyogV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZC5oICovLAogCQkJKTsKIAkJCXBhdGgg
PSBpb3M7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMjUyMzMsNiArMjUyNDIsNyBA
QAogCQkJCUNFNzk5RkE4MUM2QTUwNTcwMDk3QjUxOCAvKiBDb250ZW50U2VjdXJpdHlQb2xpY3lN
ZWRpYUxpc3REaXJlY3RpdmUuaCBpbiBIZWFkZXJzICovLAogCQkJCUNFNkRBREZBMUM1OTFFNkEw
MDNGNkE4OCAvKiBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUNFNzk5RkEwMUM2QTRDMTYwMDk3QjUxOCAvKiBDb250ZW50U2VjdXJpdHlQ
b2xpY3lTb3VyY2UuaCBpbiBIZWFkZXJzICovLAorCQkJCUY0ODIyMzEzMUUzODZFMjQwMDY2RkM3
OSAvKiBBYnN0cmFjdFBhc3RlYm9hcmQuaCBpbiBIZWFkZXJzICovLAogCQkJCUNFNzk5Rjk4MUM2
QTQ2QkMwMDk3QjUxOCAvKiBDb250ZW50U2VjdXJpdHlQb2xpY3lTb3VyY2VMaXN0LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlDRTc5OUZBQzFDNkE1MDY2MDA5N0I1MTggLyogQ29udGVudFNlY3VyaXR5
UG9saWN5U291cmNlTGlzdERpcmVjdGl2ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFEMDE1Q0Ew
RjRCNUM3MTAwNEE2NjJGIC8qIENvbnRlbnRUeXBlLmggaW4gSGVhZGVycyAqLywKQEAgLTI3NzY3
LDYgKzI3Nzc3LDcgQEAKIAkJCQk0MTRCODIwNTFENkRGMEU1MDA3N0VCRTMgLyogU3RydWN0dXJl
ZENsb25lLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzVFQjZBMzBFODFEQzRGMDBCMjU5NjUgLyog
U3R5bGVCYWNrZ3JvdW5kRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1RUI2N0IwRTgxRDNC
RTAwQjI1OTY1IC8qIFN0eWxlQm94RGF0YS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjQ4MjIzMTEx
RTM4NjlCODAwNjZGQzc5IC8qIFdlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTgzODZBOTZEMTlGNjFCMkUwMEUxRUM0QSAvKiBTdHlsZUJ1aWxkZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTgzQjk2ODdCMTlGOEFCODMwMDRFRjdBRiAvKiBTdHlsZUJ1aWxkZXJD
b252ZXJ0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzNUQzNjM3MTlGRjYxOTMwMDRDOTNBQiAv
KiBTdHlsZUJ1aWxkZXJDdXN0b20uaCBpbiBIZWFkZXJzICovLApAQCAtMjkyMjcsNiArMjkyMzgs
NyBAQAogCQkJCTk0MTgyNzhFMUQ4Q0FGOTIwMDQ5Mjc2NCAvKiBDU1NQZW5kaW5nU3Vic3RpdHV0
aW9uVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTc3QjM4NjIxMjI4ODNFOTAwQjgxRkY4
IC8qIENTU1ByZWxvYWRTY2FubmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4MEU2RDA1MEEx
OTg5Q0EwMDdGQjhDNSAvKiBDU1NQcmltaXRpdmVWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlGNDgyMjMxMDFFMzg2OUI4MDA2NkZDNzkgLyogV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZC5t
bSBpbiBTb3VyY2VzICovLAogCQkJCUE4MEU2Q0Y3MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NQcm9w
ZXJ0eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3OEQwMkJDNTE1NEExOERGMDBCNjJEMDUgLyog
Q1NTUHJvcGVydHlBbmltYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFCQTc2Q0ExMUQy
MEU1MDAwNEMyMDFDIC8qIENTU1Byb3BlcnR5TmFtZXMuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9EYXRhVHJhbnNmZXIuY3BwCmluZGV4IDU2MWViNDIwNDA5ZTdlMWI2MmMyYzZhNWNm
YzdlMDYyYjRjZmNiZDYuLjllY2IzNTFkM2NhNDc3M2FhYmVjYzg3YTU0NGZiNjg3MDYzNjc5YTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXIuY3BwCkBAIC0yOTAsNyArMjkwLDcgQEAgdm9p
ZCBEYXRhVHJhbnNmZXI6OnVwZGF0ZURyYWdJbWFnZSgpCiAgICAgbV9wYXN0ZWJvYXJkLT5zZXRE
cmFnSW1hZ2UoY29tcHV0ZWRJbWFnZSwgY29tcHV0ZWRIb3RTcG90KTsKIH0KIAotI2lmICFQTEFU
Rk9STShDT0NPQSkKKyNpZiAhUExBVEZPUk0oTUFDKQogCiBEcmFnSW1hZ2VSZWYgRGF0YVRyYW5z
ZmVyOjpjcmVhdGVEcmFnSW1hZ2UoSW50UG9pbnQmIGxvY2F0aW9uKSBjb25zdAogewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDVhNWEzNWU2OGE3Yzg5ODhiNmUxMzA0ZTQ4
OWEyMTJhYmQ5YzczYzQuLmEwYTIyNjVkYmM2NmZlYTJhMmI2NDNmZjA4MTBlM2E4ZWMxNmEwMDcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTEzMSw2ICsxMzEsNyBAQCBj
b25zdCBpbnQgTGlua0RyYWdIeXN0ZXJlc2lzID0gNDA7CiBjb25zdCBpbnQgSW1hZ2VEcmFnSHlz
dGVyZXNpcyA9IDU7CiBjb25zdCBpbnQgVGV4dERyYWdIeXN0ZXJlc2lzID0gMzsKIGNvbnN0IGlu
dCBHZW5lcmFsRHJhZ0h5c3RlcmVzaXMgPSAzOworY29uc3QgZG91YmxlIEV2ZW50SGFuZGxlcjo6
VGV4dERyYWdEZWxheSA9IDAuMTU7CiAjZW5kaWYgLy8gRU5BQkxFKERSQUdfU1VQUE9SVCkKIAog
I2lmIEVOQUJMRShJT1NfR0VTVFVSRV9FVkVOVFMpIHx8IEVOQUJMRShNQUNfR0VTVFVSRV9FVkVO
VFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9FdmVudEhhbmRsZXJJT1Mu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9FdmVudEhhbmRsZXJJT1MubW0KaW5kZXggMjli
YWRlZjU5NTU4NGEzZmNlNTNjYTJmODI0MWU0ZjZlZmQ3NTRkNS4uYjA5ZjllOTBmZTA0YTlkZTg5
MTg5M2U2MTAzNGFmNWViZTNjMzIxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9p
b3MvRXZlbnRIYW5kbGVySU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL0V2ZW50
SGFuZGxlcklPUy5tbQpAQCAtNDksNiArNDksMTAgQEAKICNpbXBvcnQgPFdlYktpdEFkZGl0aW9u
cy9FdmVudEhhbmRsZXJJT1NUb3VjaC5jcHA+CiAjZW5kaWYKIAorI2lmIFVTRShBUFBMRV9JTlRF
Uk5BTF9TREspCisjaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvRXZlbnRIYW5kbGVyQWRkaXRpb25z
Lm1tPgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIFJldGFpblB0cjxX
ZWJFdmVudD4mIGN1cnJlbnRFdmVudFNsb3QoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRXZl
bnRIYW5kbGVyTWFjLm1tCmluZGV4IGFkN2E1OWUzMWUwOTViMGJjNTIwNTA3MmZkZjE4MzlmMGY0
ZjY4M2UuLjZjNDQ0YWEzNDZmN2YyYzIzZDZhMWFiZTY5ODdiY2I1OWM0NjY4Y2UgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0KQEAgLTc0LDEwICs3NCw2IEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi1jb25z
dCBkb3VibGUgRXZlbnRIYW5kbGVyOjpUZXh0RHJhZ0RlbGF5ID0gMC4xNTsKLSNlbmRpZgotCiBj
b25zdCBkb3VibGUgcmVzZXRMYXRjaGVkU3RhdGVUaW1lb3V0ID0gMC4xOwogCiBzdGF0aWMgUmV0
YWluUHRyPE5TRXZlbnQ+JiBjdXJyZW50TlNFdmVudFNsb3QoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0ltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0RyYWdJbWFnZS5jcHAKaW5kZXggYWE1NjZhZjMzODRmYWUwYzEzMDMyY2QzY2IxYzA1M2UyZDM3
YzJlNC4uZDhiNWRlYTdjNmJkZDk1Y2EzMTI3ODY2ZDI1YzQ1ZDkwOTRhYjRkMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0ltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9EcmFnSW1hZ2UuY3BwCkBAIC0xMjAsMTIgKzEyMCwxNiBAQCBEcmFnSW1h
Z2VSZWYgY3JlYXRlRHJhZ0ltYWdlRm9yTm9kZShGcmFtZSYgZnJhbWUsIE5vZGUmIG5vZGUpCiAg
ICAgcmV0dXJuIGNyZWF0ZURyYWdJbWFnZUZyb21TbmFwc2hvdChzbmFwc2hvdE5vZGUoZnJhbWUs
IG5vZGUpLCAmbm9kZSk7CiB9CiAKKyNpZiAhRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCisKIERy
YWdJbWFnZVJlZiBjcmVhdGVEcmFnSW1hZ2VGb3JTZWxlY3Rpb24oRnJhbWUmIGZyYW1lLCBib29s
IGZvcmNlQmxhY2tUZXh0KQogewogICAgIFNuYXBzaG90T3B0aW9ucyBvcHRpb25zID0gZm9yY2VC
bGFja1RleHQgPyBTbmFwc2hvdE9wdGlvbnNGb3JjZUJsYWNrVGV4dCA6IFNuYXBzaG90T3B0aW9u
c05vbmU7CiAgICAgcmV0dXJuIGNyZWF0ZURyYWdJbWFnZUZyb21TbmFwc2hvdChzbmFwc2hvdFNl
bGVjdGlvbihmcmFtZSwgb3B0aW9ucyksIG51bGxwdHIpOwogfQogCisjZW5kaWYKKwogc3RydWN0
IFNjb3BlZEZyYW1lU2VsZWN0aW9uU3RhdGUgewogICAgIFNjb3BlZEZyYW1lU2VsZWN0aW9uU3Rh
dGUoRnJhbWUmIGZyYW1lKQogICAgICAgICA6IGZyYW1lKGZyYW1lKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUGFzdGVib2FyZC5oCmluZGV4IGJhYzFmOGYyZjQ3OTFjNTg3YjQ2MDU2OTFjMjg2MmE1NDY5
ZDUyZTguLjA2YzNkZTc1ZWJjYWVjNTYxYjkxOGRlZDUxMDg1YzhlNGFlYjdiNzcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmgKQEAgLTEyOSw3ICsxMjksNyBAQCBwdWJsaWM6CiAK
IHN0cnVjdCBQYXN0ZWJvYXJkUGxhaW5UZXh0IHsKICAgICBTdHJpbmcgdGV4dDsKLSNpZiBQTEFU
Rk9STShNQUMpCisjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgYm9vbCBpc1VSTDsKICNlbmRpZgog
fTsKQEAgLTE3OSw4ICsxNzksOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHdyaXRlUGFz
dGVib2FyZChjb25zdCBQYXN0ZWJvYXJkJiBzb3VyY2VQYXN0ZWJvYXJkKTsKIAogI2lmIEVOQUJM
RShEUkFHX1NVUFBPUlQpCi0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBj
cmVhdGVGb3JEcmFnQW5kRHJvcCgpOwotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVi
b2FyZD4gY3JlYXRlRm9yRHJhZ0FuZERyb3AoY29uc3QgRHJhZ0RhdGEmKTsKKyAgICBXRUJDT1JF
X0VYUE9SVCBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9hcmQ+IGNyZWF0ZUZvckRyYWdB
bmREcm9wKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxQYXN0
ZWJvYXJkPiBjcmVhdGVGb3JEcmFnQW5kRHJvcChjb25zdCBEcmFnRGF0YSYpOwogCiAgICAgdmly
dHVhbCB2b2lkIHNldERyYWdJbWFnZShEcmFnSW1hZ2VSZWYsIGNvbnN0IEludFBvaW50JiBob3RT
cG90KTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0Fi
c3RyYWN0UGFzdGVib2FyZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0Fic3RyYWN0
UGFzdGVib2FyZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmExZmUwNDA1NDg2ZTQ2MjhjMjZjMWQ2NmU3ZTQ1NTM1
MDIwNzE4ZjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mv
QWJzdHJhY3RQYXN0ZWJvYXJkLmgKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBv
cnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgorCitAcHJvdG9jb2wgQWJzdHJhY3RQYXN0ZWJv
YXJkIDxOU09iamVjdD4KK0ByZXF1aXJlZAorCitAcHJvcGVydHkgKHJlYWRvbmx5LCBub25hdG9t
aWMpIE5TSW50ZWdlciBudW1iZXJPZkl0ZW1zOworCistIChOU0FycmF5PE5TU3RyaW5nICo+ICop
cGFzdGVib2FyZFR5cGVzOworLSAodm9pZClzZXRJdGVtczooTlNBcnJheSAqKWl0ZW1zOworLSAo
TlNBcnJheSAqKWRhdGFGb3JQYXN0ZWJvYXJkVHlwZTooTlNTdHJpbmcgKilwYXN0ZWJvYXJkVHlw
ZSBpbkl0ZW1TZXQ6KE5TSW5kZXhTZXQgKilpdGVtU2V0OworLSAoTlNBcnJheSAqKXZhbHVlc0Zv
clBhc3RlYm9hcmRUeXBlOihOU1N0cmluZyAqKXBhc3RlYm9hcmRUeXBlIGluSXRlbVNldDooTlNJ
bmRleFNldCAqKWl0ZW1TZXQ7CistIChOU0ludGVnZXIpY2hhbmdlQ291bnQ7CisKK0BlbmQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9EcmFnSW1hZ2VJT1MubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvRHJhZ0ltYWdlSU9TLm1tCmluZGV4IDFjY2NmYmFj
ZDZlZDg3YmMzMzBjZDQwODFlMGY4YTA1MTk5ZTY3ZGEuLjFkYjlkMzMyNmQ5NzU1MTU3ZWNjYWY5
ZTgyZWY1ZjZhZmQ3OTJlNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9EcmFnSW1hZ2VJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0RyYWdJ
bWFnZUlPUy5tbQpAQCAtMjgsNiArMjgsMTUgQEAKIAogI2ltcG9ydCA8Q29yZUdyYXBoaWNzL0Nv
cmVHcmFwaGljcy5oPgogCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKworI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V251bGxhYmlsaXR5LWNvbXBsZXRlbmVzcyIKKyNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9EcmFn
SW1hZ2VBZGRpdGlvbnMubW0+CisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisKKyNlbHNl
CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogLy8gRklYTUU6IGZpeCBzaWduYXR1cmUgb2YgZHJh
Z0ltYWdlU2l6ZSgpIHRvIGF2b2lkIGNvcHlpbmcgdGhlIGFyZ3VtZW50LgpAQCAtNDksMyArNTgs
NSBAQCBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gY3JlYXRlRHJhZ0ltYWdlRnJvbUltYWdlKEltYWdl
KiwgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aQogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZiAvLyBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vaW9zL1Bhc3RlYm9hcmRJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3MvUGFzdGVib2FyZElPUy5tbQppbmRleCA5NmM3MmQwMWM3NTMwNDU5MGMzNzBj
NjNiODY0OTYxYmI2Y2YzMDE4Li5lMjY0ZDQ0MGUyMzk0N2I5MmRkY2Q1YmNjYWIyNjUwNzU2YmVj
NmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGFzdGVib2FyZElP
Uy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGFzdGVib2FyZElPUy5tbQpA
QCAtNTgsNiArNTgsMTAgQEAKIC0gKEJPT0wpY29udGFpbnNBdHRhY2htZW50czsKIEBlbmQKIAor
I2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisjaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvUGFz
dGVib2FyZEFkZGl0aW9ucy5tbT4KKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIC8v
IEZJWE1FOiBEb2VzIHRoaXMgbmVlZCB0byBiZSBkZWNsYXJlZCBpbiB0aGUgaGVhZGVyIGZpbGU/
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViSXRlbVByb3ZpZGVy
UGFzdGVib2FyZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkl0ZW1Qcm92aWRl
clBhc3RlYm9hcmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYTdmYWRmZjk2MjJmZmRlNmUzMDI5MGRmYzE3MGE1
YWNjZTExZTI3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L1dlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQuaApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2ltcG9ydCAiQWJzdHJhY3RQYXN0ZWJvYXJkLmgiCisKKyNpZiBFTkFCTEUoREFUQV9JTlRF
UkFDVElPTikKKworT0JKQ19DTEFTUyBVSUl0ZW1Qcm92aWRlcjsKKworTlNfQVNTVU1FX05PTk5V
TExfQkVHSU4KKworV0VCQ09SRV9FWFBPUlQgQGludGVyZmFjZSBXZWJJdGVtUHJvdmlkZXJQYXN0
ZWJvYXJkIDogTlNPYmplY3Q8QWJzdHJhY3RQYXN0ZWJvYXJkPgorCisrIChpbnN0YW5jZXR5cGUp
c2hhcmVkSW5zdGFuY2U7CisKKy0gKFVJSXRlbVByb3ZpZGVyICopaXRlbVByb3ZpZGVyQXRJbmRl
eDooTlNJbnRlZ2VyKWluZGV4OworCitAcHJvcGVydHkgKGNvcHksIG5vbmF0b21pYywgbnVsbGFi
bGUpIE5TQXJyYXk8VUlJdGVtUHJvdmlkZXIgKj4gKml0ZW1Qcm92aWRlcnM7CitAcHJvcGVydHkg
KHJlYWRvbmx5LCBub25hdG9taWMpIE5TSW50ZWdlciBudW1iZXJPZkl0ZW1zOworQHByb3BlcnR5
IChyZWFkb25seSwgbm9uYXRvbWljKSBOU0ludGVnZXIgY2hhbmdlQ291bnQ7CisKK0BlbmQKKwor
TlNfQVNTVU1FX05PTk5VTExfRU5ECisKKyNlbmRpZiAvLyBFTkFCTEUoREFUQV9JTlRFUkFDVElP
TikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJJdGVtUHJvdmlk
ZXJQYXN0ZWJvYXJkLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkl0ZW1Qcm92
aWRlclBhc3RlYm9hcmQubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTYwNzcwZjY0ZTMxMTM0MDEzYWU1ZjJkZDI0
YmM0NDZjMzdjOGQ0OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9XZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkLm1tCkBAIC0wLDAgKzEsMjEwIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2ltcG9ydCAiV2ViSXRlbVByb3ZpZGVyUGFz
dGVib2FyZC5oIgorCisjaWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCisKKyNpbXBvcnQgIlNv
ZnRMaW5raW5nLmgiCisjaW1wb3J0ICJVSUtpdFNQSS5oIgorI2ltcG9ydCA8TW9iaWxlQ29yZVNl
cnZpY2VzL01vYmlsZUNvcmVTZXJ2aWNlcy5oPgorI2ltcG9ydCA8VUlLaXQvVUlDb2xvci5oPgor
I2ltcG9ydCA8VUlLaXQvVUlJbWFnZS5oPgorCitTT0ZUX0xJTktfRlJBTUVXT1JLKFVJS2l0KQor
U09GVF9MSU5LX0NMQVNTKFVJS2l0LCBVSUNvbG9yKQorU09GVF9MSU5LX0NMQVNTKFVJS2l0LCBV
SUltYWdlKQorU09GVF9MSU5LX0NMQVNTKFVJS2l0LCBVSUl0ZW1Qcm92aWRlcikKKworI2RlZmlu
ZSBNQVRDSEVTX1VUSV9UWVBFKHR5cGUsIHN1ZmZpeCkgW3R5cGUgaXNFcXVhbFRvU3RyaW5nOihf
X2JyaWRnZSBOU1N0cmluZyAqKWtVVFR5cGUgIyMgc3VmZml4XQorI2RlZmluZSBNQVRDSEVTX1VJ
S0lUX1RZUEUodHlwZSwgc3VmZml4KSBbdHlwZSBpc0VxdWFsVG9TdHJpbmc6QCJjb20uYXBwbGUu
dWlraXQuICMjIHN1ZmZpeCAjIyJdCisKK3N0YXRpYyBCT09MIGlzUmljaFRleHRUeXBlKE5TU3Ry
aW5nICp0eXBlKQoreworICAgIHJldHVybiBNQVRDSEVTX1VUSV9UWVBFKHR5cGUsIFJURikgfHwg
TUFUQ0hFU19VVElfVFlQRSh0eXBlLCBSVEZEKSB8fCBNQVRDSEVTX1VUSV9UWVBFKHR5cGUsIEhU
TUwpOworfQorCitzdGF0aWMgQk9PTCBpc1N0cmluZ1R5cGUoTlNTdHJpbmcgKnR5cGUpCit7Cisg
ICAgcmV0dXJuIE1BVENIRVNfVVRJX1RZUEUodHlwZSwgVGV4dCkgfHwgTUFUQ0hFU19VVElfVFlQ
RSh0eXBlLCBVVEY4UGxhaW5UZXh0KSB8fCBNQVRDSEVTX1VUSV9UWVBFKHR5cGUsIFVURjE2UGxh
aW5UZXh0KTsKK30KKworc3RhdGljIEJPT0wgaXNVUkxUeXBlKE5TU3RyaW5nICp0eXBlKQorewor
ICAgIHJldHVybiBNQVRDSEVTX1VUSV9UWVBFKHR5cGUsIFVSTCk7Cit9CisKK3N0YXRpYyBCT09M
IGlzQ29sb3JUeXBlKE5TU3RyaW5nICp0eXBlKQoreworICAgIHJldHVybiBNQVRDSEVTX1VJS0lU
X1RZUEUodHlwZSwgY29sb3IpOworfQorCitzdGF0aWMgQk9PTCBpc0ltYWdlVHlwZShOU1N0cmlu
ZyAqdHlwZSkKK3sKKyAgICByZXR1cm4gTUFUQ0hFU19VVElfVFlQRSh0eXBlLCBQTkcpIHx8IE1B
VENIRVNfVVRJX1RZUEUodHlwZSwgSlBFRykgfHwgTUFUQ0hFU19VVElfVFlQRSh0eXBlLCBHSUYp
IHx8IE1BVENIRVNfVUlLSVRfVFlQRSh0eXBlLCBpbWFnZSk7Cit9CisKK0BpbnRlcmZhY2UgV2Vi
SXRlbVByb3ZpZGVyUGFzdGVib2FyZCAoKQorCitAcHJvcGVydHkgKG5vbmF0b21pYykgTlNJbnRl
Z2VyIG51bWJlck9mSXRlbXM7CitAcHJvcGVydHkgKG5vbmF0b21pYykgTlNJbnRlZ2VyIGNoYW5n
ZUNvdW50OworCitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBXZWJJdGVtUHJvdmlkZXJQYXN0ZWJv
YXJkCisKKysgKGluc3RhbmNldHlwZSlzaGFyZWRJbnN0YW5jZQoreworICAgIHN0YXRpYyBXZWJJ
dGVtUHJvdmlkZXJQYXN0ZWJvYXJkICpzaGFyZWRQYXN0ZWJvYXJkID0gbmlsOworICAgIHN0YXRp
YyBkaXNwYXRjaF9vbmNlX3Qgb25jZVRva2VuOworICAgIGRpc3BhdGNoX29uY2UoJm9uY2VUb2tl
biwgXigpIHsKKyAgICAgICAgc2hhcmVkUGFzdGVib2FyZCA9IFtbV2ViSXRlbVByb3ZpZGVyUGFz
dGVib2FyZCBhbGxvY10gaW5pdF07CisgICAgfSk7CisgICAgcmV0dXJuIHNoYXJlZFBhc3RlYm9h
cmQ7Cit9CisKKy0gKGluc3RhbmNldHlwZSlpbml0Cit7CisgICAgaWYgKHNlbGYgPSBbc3VwZXIg
aW5pdF0pIHsKKyAgICAgICAgX2l0ZW1Qcm92aWRlcnMgPSBbW05TQXJyYXkgYWxsb2NdIGluaXRd
OworICAgICAgICBfY2hhbmdlQ291bnQgPSAwOworICAgIH0KKyAgICByZXR1cm4gc2VsZjsKK30K
KworLSAodm9pZClkZWFsbG9jCit7CisgICAgW3N1cGVyIGRlYWxsb2NdOworICAgIFtfaXRlbVBy
b3ZpZGVycyByZWxlYXNlXTsKK30KKworLSAoTlNBcnJheTxOU1N0cmluZyAqPiAqKXBhc3RlYm9h
cmRUeXBlcworeworICAgIE5TTXV0YWJsZVNldDxOU1N0cmluZyAqPiAqYWxsVHlwZXMgPSBbTlNN
dXRhYmxlU2V0IHNldF07CisgICAgZm9yIChVSUl0ZW1Qcm92aWRlciAqcHJvdmlkZXIgaW4gX2l0
ZW1Qcm92aWRlcnMpCisgICAgICAgIFthbGxUeXBlcyBhZGRPYmplY3RzRnJvbUFycmF5OnByb3Zp
ZGVyLnJlZ2lzdGVyZWRUeXBlSWRlbnRpZmllcnNdOworICAgIHJldHVybiBhbGxUeXBlcy5hbGxP
YmplY3RzOworfQorCistICh2b2lkKXNldEl0ZW1Qcm92aWRlcnM6KE5TQXJyYXk8VUlJdGVtUHJv
dmlkZXIgKj4gKilpdGVtUHJvdmlkZXJzCit7CisgICAgaXRlbVByb3ZpZGVycyA9IGl0ZW1Qcm92
aWRlcnMgPzogW05TQXJyYXkgYXJyYXldOworICAgIGlmIChfaXRlbVByb3ZpZGVycyA9PSBpdGVt
UHJvdmlkZXJzIHx8IFtfaXRlbVByb3ZpZGVycyBpc0VxdWFsVG9BcnJheTppdGVtUHJvdmlkZXJz
XSkKKyAgICAgICAgcmV0dXJuOworICAgIF9pdGVtUHJvdmlkZXJzID0gW2l0ZW1Qcm92aWRlcnMg
Y29weV07CisgICAgX2NoYW5nZUNvdW50Kys7Cit9CisKKy0gKE5TSW50ZWdlciludW1iZXJPZkl0
ZW1zCit7CisgICAgcmV0dXJuIF9pdGVtUHJvdmlkZXJzLmNvdW50OworfQorCistICh2b2lkKXNl
dEl0ZW1zOihOU0FycmF5ICopaXRlbXMKK3sKKyAgICBOU011dGFibGVBcnJheSAqcHJvdmlkZXJz
ID0gW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdF07CisgICAgZm9yIChOU0RpY3Rpb25hcnkg
Kml0ZW0gaW4gaXRlbXMpIHsKKyAgICAgICAgaWYgKCFpdGVtLmNvdW50KQorICAgICAgICAgICAg
Y29udGludWU7CisgICAgICAgIFVJSXRlbVByb3ZpZGVyICppdGVtUHJvdmlkZXIgPSBbW2dldFVJ
SXRlbVByb3ZpZGVyQ2xhc3MoKSBhbGxvY10gaW5pdF07CisgICAgICAgIGZvciAoTlNTdHJpbmcg
KnR5cGVJZGVudGlmaWVyIGluIGl0ZW0pIHsKKyAgICAgICAgICAgIFtpdGVtUHJvdmlkZXIgcmVn
aXN0ZXJEYXRhUmVwcmVzZW50YXRpb25Gb3JUeXBlSWRlbnRpZmllcjp0eXBlSWRlbnRpZmllciBs
b2FkSGFuZGxlcjpeKFVJSXRlbVByb3ZpZGVyRGF0YUxvYWRDb21wbGV0aW9uQmxvY2sgY29tcGxl
dGlvbkJsb2NrLCBOU0RpY3Rpb25hcnkgKikgeworICAgICAgICAgICAgICAgIGNvbXBsZXRpb25C
bG9jayhpdGVtW3R5cGVJZGVudGlmaWVyXSwgbmlsKTsKKyAgICAgICAgICAgIH1dOworICAgICAg
ICB9CisgICAgICAgIFtwcm92aWRlcnMgYWRkT2JqZWN0Oml0ZW1Qcm92aWRlcl07CisgICAgfQor
ICAgIF9jaGFuZ2VDb3VudCsrOworICAgIF9pdGVtUHJvdmlkZXJzID0gcHJvdmlkZXJzOworfQor
CistIChOU0FycmF5ICopZGF0YUZvclBhc3RlYm9hcmRUeXBlOihOU1N0cmluZyAqKXBhc3RlYm9h
cmRUeXBlIGluSXRlbVNldDooTlNJbmRleFNldCAqKWl0ZW1TZXQKK3sKKyAgICBfX2Jsb2NrIE5T
TXV0YWJsZUFycmF5ICp2YWx1ZXMgPSBbTlNNdXRhYmxlQXJyYXkgYXJyYXldOworICAgIFtpdGVt
U2V0IGVudW1lcmF0ZUluZGV4ZXNVc2luZ0Jsb2NrOl4oTlNVSW50ZWdlciBpbmRleCwgQk9PTCAq
KSB7CisgICAgICAgIFVJSXRlbVByb3ZpZGVyICpwcm92aWRlciA9IFtzZWxmIGl0ZW1Qcm92aWRl
ckF0SW5kZXg6aW5kZXhdOworICAgICAgICBpZiAoIXByb3ZpZGVyKQorICAgICAgICAgICAgcmV0
dXJuOworCisgICAgICAgIE5TRGF0YSAqZGF0YSA9IFtwcm92aWRlciBjb3B5RGF0YVJlcHJlc2Vu
dGF0aW9uRm9yVHlwZUlkZW50aWZpZXI6cGFzdGVib2FyZFR5cGUgb3B0aW9uczpuaWwgZXJyb3I6
bmlsXTsKKyAgICAgICAgaWYgKGRhdGEpCisgICAgICAgICAgICBbdmFsdWVzIGFkZE9iamVjdDpk
YXRhXTsKKyAgICB9XTsKKworICAgIHJldHVybiB2YWx1ZXM7Cit9CisKKy0gKE5TQXJyYXkgKil2
YWx1ZXNGb3JQYXN0ZWJvYXJkVHlwZTooTlNTdHJpbmcgKilwYXN0ZWJvYXJkVHlwZSBpbkl0ZW1T
ZXQ6KE5TSW5kZXhTZXQgKilpdGVtU2V0Cit7CisgICAgX19ibG9jayBOU011dGFibGVBcnJheSAq
dmFsdWVzID0gW05TTXV0YWJsZUFycmF5IGFycmF5XTsKKyAgICBbaXRlbVNldCBlbnVtZXJhdGVJ
bmRleGVzVXNpbmdCbG9jazpeKE5TVUludGVnZXIgaW5kZXgsIEJPT0wgKikgeworICAgICAgICBV
SUl0ZW1Qcm92aWRlciAqcHJvdmlkZXIgPSBbc2VsZiBpdGVtUHJvdmlkZXJBdEluZGV4OmluZGV4
XTsKKyAgICAgICAgaWYgKCFwcm92aWRlcikKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAg
ICBpZiAoaXNSaWNoVGV4dFR5cGUocGFzdGVib2FyZFR5cGUpICYmIFtwcm92aWRlciBjYW5JbnN0
YW50aWF0ZU9iamVjdE9mQ2xhc3M6W05TQXR0cmlidXRlZFN0cmluZyBjbGFzc11dKSB7CisgICAg
ICAgICAgICBbdmFsdWVzIGFkZE9iamVjdDpbcHJvdmlkZXIgaW5zdGFudGlhdGVPYmplY3RPZkNs
YXNzOltOU0F0dHJpYnV0ZWRTdHJpbmcgY2xhc3NdIG9wdGlvbnM6bmlsIGVycm9yOm5pbF1dOwor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGlzU3RyaW5nVHlw
ZShwYXN0ZWJvYXJkVHlwZSkgJiYgW3Byb3ZpZGVyIGNhbkluc3RhbnRpYXRlT2JqZWN0T2ZDbGFz
czpbTlNTdHJpbmcgY2xhc3NdXSkgeworICAgICAgICAgICAgW3ZhbHVlcyBhZGRPYmplY3Q6W3By
b3ZpZGVyIGluc3RhbnRpYXRlT2JqZWN0T2ZDbGFzczpbTlNTdHJpbmcgY2xhc3NdIG9wdGlvbnM6
bmlsIGVycm9yOm5pbF1dOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAg
ICAgaWYgKGlzQ29sb3JUeXBlKHBhc3RlYm9hcmRUeXBlKSAmJiBbcHJvdmlkZXIgY2FuSW5zdGFu
dGlhdGVPYmplY3RPZkNsYXNzOltnZXRVSUNvbG9yQ2xhc3MoKSBjbGFzc11dKSB7CisgICAgICAg
ICAgICBbdmFsdWVzIGFkZE9iamVjdDpbcHJvdmlkZXIgaW5zdGFudGlhdGVPYmplY3RPZkNsYXNz
OltnZXRVSUNvbG9yQ2xhc3MoKSBjbGFzc10gb3B0aW9uczpuaWwgZXJyb3I6bmlsXV07CisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAoaXNVUkxUeXBlKHBhc3Rl
Ym9hcmRUeXBlKSAmJiBbcHJvdmlkZXIgY2FuSW5zdGFudGlhdGVPYmplY3RPZkNsYXNzOltOU1VS
TCBjbGFzc11dKSB7CisgICAgICAgICAgICBbdmFsdWVzIGFkZE9iamVjdDpbcHJvdmlkZXIgaW5z
dGFudGlhdGVPYmplY3RPZkNsYXNzOltOU1VSTCBjbGFzc10gb3B0aW9uczpuaWwgZXJyb3I6bmls
XV07CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAoaXNJbWFn
ZVR5cGUocGFzdGVib2FyZFR5cGUpICYmIFtwcm92aWRlciBjYW5JbnN0YW50aWF0ZU9iamVjdE9m
Q2xhc3M6W2dldFVJSW1hZ2VDbGFzcygpIGNsYXNzXV0pIHsKKyAgICAgICAgICAgIFt2YWx1ZXMg
YWRkT2JqZWN0Oltwcm92aWRlciBpbnN0YW50aWF0ZU9iamVjdE9mQ2xhc3M6W2dldFVJSW1hZ2VD
bGFzcygpIGNsYXNzXSBvcHRpb25zOm5pbCBlcnJvcjpuaWxdXTsKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgfQorCisgICAgICAgIFdURkxvZ0Fsd2F5cygiRmFpbGVkIHRvIGluc3RhbnRp
YXRlIG9iamVjdCBmb3IgdHlwZTogJyVzJyBhdCBpbmRleDogJXR1IiwgcGFzdGVib2FyZFR5cGUu
VVRGOFN0cmluZywgaW5kZXgpOworICAgIH1dOworICAgIHJldHVybiB2YWx1ZXM7Cit9CisKKy0g
KE5TSW50ZWdlciljaGFuZ2VDb3VudAoreworICAgIHJldHVybiBfY2hhbmdlQ291bnQ7Cit9CisK
Ky0gKFVJSXRlbVByb3ZpZGVyICopaXRlbVByb3ZpZGVyQXRJbmRleDooTlNJbnRlZ2VyKWluZGV4
Cit7CisgICAgcmV0dXJuIDAgPD0gaW5kZXggJiYgaW5kZXggPCAoTlNJbnRlZ2VyKV9pdGVtUHJv
dmlkZXJzLmNvdW50ID8gX2l0ZW1Qcm92aWRlcnNbaW5kZXhdIDogbmlsOworfQorCitAZW5kCisK
KyNlbmRpZiAvLyBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9EcmFnRGF0YU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9EcmFnRGF0YU1hYy5tbQppbmRleCA3NWQ1MGJjZWIzMGFjOTllZDljODZiMzFjNjYz
MDU5ZTA1MmRjOGYyLi5hYzNjNWIwNTI1OWI2NTEzZjc1NjI4ZmZjYTIxYWNkOWVlNWVjNDk3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0RhdGFNYWMubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdEYXRhTWFjLm1tCkBAIC0zMyw2ICsz
Myw1NCBAQAogI2ltcG9ydCAiUGxhdGZvcm1TdHJhdGVnaWVzLmgiCiAjaW1wb3J0ICJXZWJDb3Jl
TlNVUkxFeHRyYXMuaCIKIAorI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisKKyNpbXBvcnQg
PFdlYktpdEFkZGl0aW9ucy9EcmFnRGF0YUFkZGl0aW9ucy5tbT4KKworI2Vsc2UKKworc3RhdGlj
IGlubGluZSBTdHJpbmcgcnRmUGFzdGVib2FyZFR5cGUoKQoreworICAgIHJldHVybiBTdHJpbmco
TlNSVEZQYm9hcmRUeXBlKTsKK30KKworc3RhdGljIGlubGluZSBTdHJpbmcgcnRmZFBhc3RlYm9h
cmRUeXBlKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nKE5TUlRGRFBib2FyZFR5cGUpOworfQorCitz
dGF0aWMgaW5saW5lIFN0cmluZyBzdHJpbmdQYXN0ZWJvYXJkVHlwZSgpCit7CisgICAgcmV0dXJu
IFN0cmluZyhOU1N0cmluZ1Bib2FyZFR5cGUpOworfQorCitzdGF0aWMgaW5saW5lIFN0cmluZyB1
cmxQYXN0ZWJvYXJkVHlwZSgpCit7CisgICAgcmV0dXJuIFN0cmluZyhOU1VSTFBib2FyZFR5cGUp
OworfQorCitzdGF0aWMgaW5saW5lIFN0cmluZyBodG1sUGFzdGVib2FyZFR5cGUoKQoreworICAg
IHJldHVybiBTdHJpbmcoTlNIVE1MUGJvYXJkVHlwZSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgU3Ry
aW5nIGNvbG9yUGFzdGVib2FyZFR5cGUoKQoreworICAgIHJldHVybiBTdHJpbmcoTlNDb2xvclBi
b2FyZFR5cGUpOworfQorCitzdGF0aWMgaW5saW5lIFN0cmluZyBwZGZQYXN0ZWJvYXJkVHlwZSgp
Cit7CisgICAgcmV0dXJuIFN0cmluZyhOU1BERlBib2FyZFR5cGUpOworfQorCitzdGF0aWMgaW5s
aW5lIFN0cmluZyB0aWZmUGFzdGVib2FyZFR5cGUoKQoreworICAgIHJldHVybiBTdHJpbmcoTlNU
SUZGUGJvYXJkVHlwZSk7Cit9CisKKyNlbmRpZiAvLyBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQor
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIERyYWdEYXRhOjpEcmFnRGF0YShEcmFnRGF0YVJlZiBk
YXRhLCBjb25zdCBJbnRQb2ludCYgY2xpZW50UG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBnbG9i
YWxQb3NpdGlvbiwgCkBAIC00Miw3ICs5MCwxMSBAQCBEcmFnRGF0YTo6RHJhZ0RhdGEoRHJhZ0Rh
dGFSZWYgZGF0YSwgY29uc3QgSW50UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBjb25zdCBJbnRQbwog
ICAgICwgbV9wbGF0Zm9ybURyYWdEYXRhKGRhdGEpCiAgICAgLCBtX2RyYWdnaW5nU291cmNlT3Bl
cmF0aW9uTWFzayhzb3VyY2VPcGVyYXRpb25NYXNrKQogICAgICwgbV9hcHBsaWNhdGlvbkZsYWdz
KGZsYWdzKQorI2lmIFBMQVRGT1JNKE1BQykKICAgICAsIG1fcGFzdGVib2FyZE5hbWUoW1ttX3Bs
YXRmb3JtRHJhZ0RhdGEgZHJhZ2dpbmdQYXN0ZWJvYXJkXSBuYW1lXSkKKyNlbHNlCisgICAgLCBt
X3Bhc3RlYm9hcmROYW1lKCJkYXRhIGludGVyYWN0aW9uIHBhc3RlYm9hcmQiKQorI2VuZGlmCiB7
CiB9CiAKQEAgLTY2LDMwICsxMTgsNDAgQEAgYm9vbCBEcmFnRGF0YTo6Y29udGFpbnNDb2xvcigp
IGNvbnN0CiB7CiAgICAgVmVjdG9yPFN0cmluZz4gdHlwZXM7CiAgICAgcGxhdGZvcm1TdHJhdGVn
aWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT5nZXRUeXBlcyh0eXBlcywgbV9wYXN0ZWJvYXJk
TmFtZSk7Ci0gICAgcmV0dXJuIHR5cGVzLmNvbnRhaW5zKFN0cmluZyhOU0NvbG9yUGJvYXJkVHlw
ZSkpOworICAgIHJldHVybiB0eXBlcy5jb250YWlucyhjb2xvclBhc3RlYm9hcmRUeXBlKCkpOwog
fQogCiBib29sIERyYWdEYXRhOjpjb250YWluc0ZpbGVzKCkgY29uc3QKIHsKKyNpZiBQTEFURk9S
TShNQUMpCiAgICAgVmVjdG9yPFN0cmluZz4gdHlwZXM7CiAgICAgcGxhdGZvcm1TdHJhdGVnaWVz
KCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT5nZXRUeXBlcyh0eXBlcywgbV9wYXN0ZWJvYXJkTmFt
ZSk7CiAgICAgcmV0dXJuIHR5cGVzLmNvbnRhaW5zKFN0cmluZyhOU0ZpbGVuYW1lc1Bib2FyZFR5
cGUpKSB8fCB0eXBlcy5jb250YWlucyhTdHJpbmcoTlNGaWxlc1Byb21pc2VQYm9hcmRUeXBlKSk7
CisjZWxzZQorICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgogfQogCiB1bnNpZ25lZCBEcmFnRGF0
YTo6bnVtYmVyT2ZGaWxlcygpIGNvbnN0CiB7CiAgICAgVmVjdG9yPFN0cmluZz4gZmlsZXM7Cisj
aWYgUExBVEZPUk0oTUFDKQogICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJkU3Ry
YXRlZ3koKS0+Z2V0UGF0aG5hbWVzRm9yVHlwZShmaWxlcywgU3RyaW5nKE5TRmlsZW5hbWVzUGJv
YXJkVHlwZSksIG1fcGFzdGVib2FyZE5hbWUpOwogICAgIGlmICghZmlsZXMuc2l6ZSgpKQogICAg
ICAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPmdldFBhdGhu
YW1lc0ZvclR5cGUoZmlsZXMsIFN0cmluZyhOU0ZpbGVzUHJvbWlzZVBib2FyZFR5cGUpLCBtX3Bh
c3RlYm9hcmROYW1lKTsKKyNlbmRpZgogICAgIHJldHVybiBmaWxlcy5zaXplKCk7CiB9CiAKIHZv
aWQgRHJhZ0RhdGE6OmFzRmlsZW5hbWVzKFZlY3RvcjxTdHJpbmc+JiByZXN1bHQpIGNvbnN0CiB7
CisjaWYgUExBVEZPUk0oTUFDKQogICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJk
U3RyYXRlZ3koKS0+Z2V0UGF0aG5hbWVzRm9yVHlwZShyZXN1bHQsIFN0cmluZyhOU0ZpbGVuYW1l
c1Bib2FyZFR5cGUpLCBtX3Bhc3RlYm9hcmROYW1lKTsKICAgICBpZiAoIXJlc3VsdC5zaXplKCkp
CiAgICAgICAgIHJlc3VsdCA9IGZpbGVOYW1lcygpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0o
cmVzdWx0KTsKKyNlbmRpZgogfQogCiBib29sIERyYWdEYXRhOjpjb250YWluc1BsYWluVGV4dCgp
IGNvbnN0CkBAIC05NywxMSArMTU5LDEzIEBAIGJvb2wgRHJhZ0RhdGE6OmNvbnRhaW5zUGxhaW5U
ZXh0KCkgY29uc3QKICAgICBWZWN0b3I8U3RyaW5nPiB0eXBlczsKICAgICBwbGF0Zm9ybVN0cmF0
ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPmdldFR5cGVzKHR5cGVzLCBtX3Bhc3RlYm9h
cmROYW1lKTsKIAotICAgIHJldHVybiB0eXBlcy5jb250YWlucyhTdHJpbmcoTlNTdHJpbmdQYm9h
cmRUeXBlKSkKLSAgICAgICAgfHwgdHlwZXMuY29udGFpbnMoU3RyaW5nKE5TUlRGRFBib2FyZFR5
cGUpKQotICAgICAgICB8fCB0eXBlcy5jb250YWlucyhTdHJpbmcoTlNSVEZQYm9hcmRUeXBlKSkK
KyAgICByZXR1cm4gdHlwZXMuY29udGFpbnMoc3RyaW5nUGFzdGVib2FyZFR5cGUoKSkKKyAgICAg
ICAgfHwgdHlwZXMuY29udGFpbnMocnRmZFBhc3RlYm9hcmRUeXBlKCkpCisgICAgICAgIHx8IHR5
cGVzLmNvbnRhaW5zKHJ0ZlBhc3RlYm9hcmRUeXBlKCkpCisjaWYgUExBVEZPUk0oTUFDKQogICAg
ICAgICB8fCB0eXBlcy5jb250YWlucyhTdHJpbmcoTlNGaWxlbmFtZXNQYm9hcmRUeXBlKSkKLSAg
ICAgICAgfHwgcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT5zdHJp
bmdGb3JUeXBlKFN0cmluZyhOU1VSTFBib2FyZFR5cGUpLCBtX3Bhc3RlYm9hcmROYW1lKS5sZW5n
dGgoKTsKKyNlbmRpZgorICAgICAgICB8fCBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2Fy
ZFN0cmF0ZWd5KCktPnN0cmluZ0ZvclR5cGUodXJsUGFzdGVib2FyZFR5cGUoKSwgbV9wYXN0ZWJv
YXJkTmFtZSkubGVuZ3RoKCk7CiB9CiAKIFN0cmluZyBEcmFnRGF0YTo6YXNQbGFpblRleHQoKSBj
b25zdApAQCAtMTMwLDIzICsxOTQsMjcgQEAgYm9vbCBEcmFnRGF0YTo6Y29udGFpbnNDb21wYXRp
YmxlQ29udGVudCgpIGNvbnN0CiAgICAgVmVjdG9yPFN0cmluZz4gdHlwZXM7CiAgICAgcGxhdGZv
cm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT5nZXRUeXBlcyh0eXBlcywgbV9w
YXN0ZWJvYXJkTmFtZSk7CiAgICAgcmV0dXJuIHR5cGVzLmNvbnRhaW5zKFN0cmluZyhXZWJBcmNo
aXZlUGJvYXJkVHlwZSkpCi0gICAgICAgIHx8IHR5cGVzLmNvbnRhaW5zKFN0cmluZyhOU0hUTUxQ
Ym9hcmRUeXBlKSkKKyAgICAgICAgfHwgdHlwZXMuY29udGFpbnMoaHRtbFBhc3RlYm9hcmRUeXBl
KCkpCisjaWYgUExBVEZPUk0oTUFDKQogICAgICAgICB8fCB0eXBlcy5jb250YWlucyhTdHJpbmco
TlNGaWxlbmFtZXNQYm9hcmRUeXBlKSkKICAgICAgICAgfHwgdHlwZXMuY29udGFpbnMoU3RyaW5n
KE5TRmlsZXNQcm9taXNlUGJvYXJkVHlwZSkpCi0gICAgICAgIHx8IHR5cGVzLmNvbnRhaW5zKFN0
cmluZyhOU1RJRkZQYm9hcmRUeXBlKSkKLSAgICAgICAgfHwgdHlwZXMuY29udGFpbnMoU3RyaW5n
KE5TUERGUGJvYXJkVHlwZSkpCi0gICAgICAgIHx8IHR5cGVzLmNvbnRhaW5zKFN0cmluZyhOU1VS
TFBib2FyZFR5cGUpKQotICAgICAgICB8fCB0eXBlcy5jb250YWlucyhTdHJpbmcoTlNSVEZEUGJv
YXJkVHlwZSkpCi0gICAgICAgIHx8IHR5cGVzLmNvbnRhaW5zKFN0cmluZyhOU1JURlBib2FyZFR5
cGUpKQotICAgICAgICB8fCB0eXBlcy5jb250YWlucyhTdHJpbmcoTlNTdHJpbmdQYm9hcmRUeXBl
KSkKLSAgICAgICAgfHwgdHlwZXMuY29udGFpbnMoU3RyaW5nKE5TQ29sb3JQYm9hcmRUeXBlKSkK
KyNlbmRpZgorICAgICAgICB8fCB0eXBlcy5jb250YWlucyh0aWZmUGFzdGVib2FyZFR5cGUoKSkK
KyAgICAgICAgfHwgdHlwZXMuY29udGFpbnMocGRmUGFzdGVib2FyZFR5cGUoKSkKKyAgICAgICAg
fHwgdHlwZXMuY29udGFpbnModXJsUGFzdGVib2FyZFR5cGUoKSkKKyAgICAgICAgfHwgdHlwZXMu
Y29udGFpbnMocnRmZFBhc3RlYm9hcmRUeXBlKCkpCisgICAgICAgIHx8IHR5cGVzLmNvbnRhaW5z
KHJ0ZlBhc3RlYm9hcmRUeXBlKCkpCisgICAgICAgIHx8IHR5cGVzLmNvbnRhaW5zKHN0cmluZ1Bh
c3RlYm9hcmRUeXBlKCkpCisgICAgICAgIHx8IHR5cGVzLmNvbnRhaW5zKGNvbG9yUGFzdGVib2Fy
ZFR5cGUoKSkKICAgICAgICAgfHwgdHlwZXMuY29udGFpbnMoU3RyaW5nKGtVVFR5cGVQTkcpKTsK
IH0KIAogYm9vbCBEcmFnRGF0YTo6Y29udGFpbnNQcm9taXNlKCkgY29uc3QKIHsKICAgICBWZWN0
b3I8U3RyaW5nPiBmaWxlczsKKyNpZiBQTEFURk9STShNQUMpCiAgICAgcGxhdGZvcm1TdHJhdGVn
aWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT5nZXRQYXRobmFtZXNGb3JUeXBlKGZpbGVzLCBT
dHJpbmcoTlNGaWxlc1Byb21pc2VQYm9hcmRUeXBlKSwgbV9wYXN0ZWJvYXJkTmFtZSk7CisjZW5k
aWYKICAgICByZXR1cm4gZmlsZXMuc2l6ZSgpID09IDE7CiB9CiAKQEAgLTE2MCwyNCArMjI4LDI2
IEBAIFN0cmluZyBEcmFnRGF0YTo6YXNVUkwoRmlsZW5hbWVDb252ZXJzaW9uUG9saWN5LCBTdHJp
bmcqIHRpdGxlKSBjb25zdAogICAgIC8vIEZJWE1FOiBVc2UgZmlsZW5hbWVQb2xpY3kuCiAKICAg
ICBpZiAodGl0bGUpIHsKKyNpZiBQTEFURk9STShNQUMpCiAgICAgICAgIFN0cmluZyBVUkxUaXRs
ZVN0cmluZyA9IHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+c3Ry
aW5nRm9yVHlwZShTdHJpbmcoV2ViVVJMTmFtZVBib2FyZFR5cGUpLCBtX3Bhc3RlYm9hcmROYW1l
KTsKICAgICAgICAgaWYgKCFVUkxUaXRsZVN0cmluZy5pc0VtcHR5KCkpCiAgICAgICAgICAgICAq
dGl0bGUgPSBVUkxUaXRsZVN0cmluZzsKKyNlbmRpZgogICAgIH0KICAgICAKICAgICBWZWN0b3I8
U3RyaW5nPiB0eXBlczsKICAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0
ZWd5KCktPmdldFR5cGVzKHR5cGVzLCBtX3Bhc3RlYm9hcmROYW1lKTsKIAotICAgIGlmICh0eXBl
cy5jb250YWlucyhTdHJpbmcoTlNVUkxQYm9hcmRUeXBlKSkpIHsKLSAgICAgICAgTlNVUkwgKlVS
TEZyb21QYXN0ZWJvYXJkID0gW05TVVJMIFVSTFdpdGhTdHJpbmc6cGxhdGZvcm1TdHJhdGVnaWVz
KCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT5zdHJpbmdGb3JUeXBlKFN0cmluZyhOU1VSTFBib2Fy
ZFR5cGUpLCBtX3Bhc3RlYm9hcmROYW1lKV07CisgICAgaWYgKHR5cGVzLmNvbnRhaW5zKHVybFBh
c3RlYm9hcmRUeXBlKCkpKSB7CisgICAgICAgIE5TVVJMICpVUkxGcm9tUGFzdGVib2FyZCA9IFtO
U1VSTCBVUkxXaXRoU3RyaW5nOnBsYXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJkU3RyYXRl
Z3koKS0+c3RyaW5nRm9yVHlwZSh1cmxQYXN0ZWJvYXJkVHlwZSgpLCBtX3Bhc3RlYm9hcmROYW1l
KV07CiAgICAgICAgIE5TU3RyaW5nICpzY2hlbWUgPSBbVVJMRnJvbVBhc3RlYm9hcmQgc2NoZW1l
XTsKICAgICAgICAgLy8gQ2Fubm90IGRyb3Agb3RoZXIgc2NoZW1lcyB1bmxlc3MgPHJkYXI6Ly9w
cm9ibGVtLzEwNTYyNjYyPiBhbmQgPHJkYXI6Ly9wcm9ibGVtLzExMTg3MzE1PiBhcmUgZml4ZWQu
CiAgICAgICAgIGlmIChbc2NoZW1lIGlzRXF1YWxUb1N0cmluZzpAImh0dHAiXSB8fCBbc2NoZW1l
IGlzRXF1YWxUb1N0cmluZzpAImh0dHBzIl0pCiAgICAgICAgICAgICByZXR1cm4gW1VSTEJ5Q2Fu
b25pY2FsaXppbmdVUkwoVVJMRnJvbVBhc3RlYm9hcmQpIGFic29sdXRlU3RyaW5nXTsKICAgICB9
CiAgICAgCi0gICAgaWYgKHR5cGVzLmNvbnRhaW5zKFN0cmluZyhOU1N0cmluZ1Bib2FyZFR5cGUp
KSkgewotICAgICAgICBOU1VSTCAqVVJMRnJvbVBhc3RlYm9hcmQgPSBbTlNVUkwgVVJMV2l0aFN0
cmluZzpwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPnN0cmluZ0Zv
clR5cGUoU3RyaW5nKE5TU3RyaW5nUGJvYXJkVHlwZSksIG1fcGFzdGVib2FyZE5hbWUpXTsKKyAg
ICBpZiAodHlwZXMuY29udGFpbnMoc3RyaW5nUGFzdGVib2FyZFR5cGUoKSkpIHsKKyAgICAgICAg
TlNVUkwgKlVSTEZyb21QYXN0ZWJvYXJkID0gW05TVVJMIFVSTFdpdGhTdHJpbmc6cGxhdGZvcm1T
dHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT5zdHJpbmdGb3JUeXBlKHN0cmluZ1Bh
c3RlYm9hcmRUeXBlKCksIG1fcGFzdGVib2FyZE5hbWUpXTsKICAgICAgICAgTlNTdHJpbmcgKnNj
aGVtZSA9IFtVUkxGcm9tUGFzdGVib2FyZCBzY2hlbWVdOwogICAgICAgICAvLyBQYXN0ZWJvYXJk
IGNvbnRlbnQgaXMgbm90IHRydXN0ZWQsIGJlY2F1c2UgSmF2YVNjcmlwdCBjb2RlIGNhbiBtb2Rp
ZnkgaXQuIFdlIGNhbiBzYW5pdGl6ZSBpdCBmb3IgVVJMcyBhbmQgb3RoZXIgdHlwZWQgY29udGVu
dCwgYnV0IG5vdCBmb3Igc3RyaW5ncy4KICAgICAgICAgLy8gVGhlIHJlc3VsdCBvZiB0aGlzIGZ1
bmN0aW9uIGlzIHVzZWQgdG8gaW5pdGlhdGUgbmF2aWdhdGlvbiwgc28gd2Ugc2hvdWxkbid0IGFs
bG93IGFyYml0cmFyeSBmaWxlIFVSTHMuCkBAIC0xODYsNiArMjU2LDcgQEAgU3RyaW5nIERyYWdE
YXRhOjphc1VSTChGaWxlbmFtZUNvbnZlcnNpb25Qb2xpY3ksIFN0cmluZyogdGl0bGUpIGNvbnN0
CiAgICAgICAgICAgICByZXR1cm4gW1VSTEJ5Q2Fub25pY2FsaXppbmdVUkwoVVJMRnJvbVBhc3Rl
Ym9hcmQpIGFic29sdXRlU3RyaW5nXTsKICAgICB9CiAgICAgCisjaWYgUExBVEZPUk0oTUFDKQog
ICAgIGlmICh0eXBlcy5jb250YWlucyhTdHJpbmcoTlNGaWxlbmFtZXNQYm9hcmRUeXBlKSkpIHsK
ICAgICAgICAgVmVjdG9yPFN0cmluZz4gZmlsZXM7CiAgICAgICAgIHBsYXRmb3JtU3RyYXRlZ2ll
cygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+Z2V0UGF0aG5hbWVzRm9yVHlwZShmaWxlcywgU3Ry
aW5nKE5TRmlsZW5hbWVzUGJvYXJkVHlwZSksIG1fcGFzdGVib2FyZE5hbWUpOwpAQCAtMTk5LDYg
KzI3MCw3IEBAIFN0cmluZyBEcmFnRGF0YTo6YXNVUkwoRmlsZW5hbWVDb252ZXJzaW9uUG9saWN5
LCBTdHJpbmcqIHRpdGxlKSBjb25zdAogCiAgICAgaWYgKHR5cGVzLmNvbnRhaW5zKFN0cmluZyhO
U0ZpbGVzUHJvbWlzZVBib2FyZFR5cGUpKSAmJiBmaWxlTmFtZXMoKS5zaXplKCkgPT0gMSkKICAg
ICAgICAgcmV0dXJuIFtVUkxCeUNhbm9uaWNhbGl6aW5nVVJMKFtOU1VSTCBmaWxlVVJMV2l0aFBh
dGg6ZmlsZU5hbWVzKClbMF1dKSBhYnNvbHV0ZVN0cmluZ107CisjZW5kaWYKIAogICAgIHJldHVy
biBTdHJpbmcoKTsgICAgICAgIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL0RyYWdJbWFnZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EcmFn
SW1hZ2VNYWMubW0KaW5kZXggZDJmOGY3MDgwM2NjZGY5YzUyYmRiNmExN2JkODAxODU1MWRjM2Mz
OC4uMGU5ZGNhMWJhNmM5YTY4YThhOTBiZjU1MWE0YjRmYmM3NDhlNWFjYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdJbWFnZU1hYy5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tCkBAIC0yNiw3ICsyNiw3IEBACiAj
aW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIkRyYWdJbWFnZS5oIgogCi0jaWYgRU5BQkxFKERS
QUdfU1VQUE9SVCkKKyNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKSAmJiBQTEFURk9STShNQUMpCiAK
ICNpbXBvcnQgIkJpdG1hcEltYWdlLmgiCiAjaW1wb3J0ICJDb3JlR3JhcGhpY3NTUEkuaCIKQEAg
LTM0OCw0ICszNDgsNCBAQCBEcmFnSW1hZ2VSZWYgY3JlYXRlRHJhZ0ltYWdlRm9yTGluayhVUkwm
IHVybCwgY29uc3QgU3RyaW5nJiB0aXRsZSwgRm9udFJlbmRlcmluZwogICAgCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyBFTkFCTEUoRFJBR19TVVBQT1JUKQorI2VuZGlmIC8v
IEVOQUJMRShEUkFHX1NVUFBPUlQpICYmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9pb3MvVUlLaXRTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3NwaS9pb3MvVUlLaXRTUEkuaAppbmRleCA2MjI3Y2RkNzNhOTA5MDE4NWYyMjY4OTYx
MGU4YmViZDk2MjM4Mzg4Li5mMGE0YjY4Zjg0ODI2YTQwNzY0OTQwMWM0MTdkYzkyMzRkY2YxMGYy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oCkBAIC0zMCw2
ICszMCwxMCBAQAogI2ltcG9ydCA8VUlLaXQvVUlTY3JlZW5fUHJpdmF0ZS5oPgogI2ltcG9ydCA8
VUlLaXQvVUlWaWV3Q29udHJvbGxlcl9Qcml2YXRlLmg+CiAKKyNpZiBFTkFCTEUoREFUQV9JTlRF
UkFDVElPTikKKyNpbXBvcnQgPFVJS2l0L1VJSXRlbVByb3ZpZGVyX1ByaXZhdGUuaD4KKyNlbmRp
ZgorCiAjZWxzZQogCiAjaW1wb3J0IDxVSUtpdC9VSUtpdC5oPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvTWlzYy9XZWJOU1Bhc3RlYm9hcmRFeHRyYXMuaCBiL1NvdXJjZS9XZWJLaXQv
bWFjL01pc2MvV2ViTlNQYXN0ZWJvYXJkRXh0cmFzLmgKaW5kZXggOTE1Y2QxMGE0NWFhZGJjMThj
OTEzYzhiYmI2MWI5OWQ5NmVhY2I3ZS4uYTkzYmQ5YjQ3NGJjMGRkYTIzMDQ1MDliZGU0NzEyYzky
MTJmOWNhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJOU1Bhc3RlYm9h
cmRFeHRyYXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYk5TUGFzdGVib2FyZEV4
dHJhcy5oCkBAIC0yOCw2ICsyOCw4IEBACiAKICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlv
bi5oPgogCisjaWYgUExBVEZPUk0oTUFDKQorCiBAY2xhc3MgRE9NRWxlbWVudDsKIEBjbGFzcyBX
ZWJBcmNoaXZlOwogQGNsYXNzIFdlYkhUTUxWaWV3OwpAQCAtODcsMyArODksNSBAQCBleHRlcm4g
TlNTdHJpbmcgKldlYlVSTE5hbWVQYm9hcmRUeXBlOwogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CiAj
ZW5kaWYKKworI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50Lm1tCmluZGV4IGZmOTBkNTk3ZWVlZGRlZjc4
Y2RlZDY1YTI4ZjI5YjA1NjY3ZGEyZGUuLmUyMzNkZDEyMDYzNDRmOTU3ZGY0Mzg0ZmE1ZWM0YTQ0
YWIxODIxZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkRyYWdDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
RHJhZ0NsaWVudC5tbQpAQCAtMjUsNyArMjUsNyBAQAogCiAjaW1wb3J0ICJXZWJEcmFnQ2xpZW50
LmgiCiAKLSNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQorI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQp
ICYmIFBMQVRGT1JNKE1BQykKIAogI2ltcG9ydCAiRE9NRWxlbWVudEludGVybmFsLmgiCiAjaW1w
b3J0ICJXZWJBcmNoaXZlLmgiCkBAIC0xNDMsNCArMTQzLDQgQEAgdm9pZCBXZWJEcmFnQ2xpZW50
OjpkcmFnQ29udHJvbGxlckRlc3Ryb3llZCgpCiAgICAgZGVsZXRlIHRoaXM7CiB9CiAKLSNlbmRp
ZiAvLyBFTkFCTEUoRFJBR19TVVBQT1JUKQorI2VuZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBPUlQp
ICYmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViRnJhbWUubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCmluZGV4
IGJkOGE0ZDUwNmIzOTkyYmFlOTI4ZDY4NzZlNmEwNDQ2MTk3MzA5YjcuLmZlYzRjNjBlZDI2MzYw
ZTIwYTlhNmQyNmM0Y2UwNmQ4N2QwZTE4NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViRnJhbWUubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJG
cmFtZS5tbQpAQCAtOTMzLDcgKzkzMyw3IEBAIHN0YXRpYyBpbmxpbmUgV2ViRGF0YVNvdXJjZSAq
ZGF0YVNvdXJjZShEb2N1bWVudExvYWRlciogbG9hZGVyKQogICAgIF9wcml2YXRlLT5jb3JlRnJh
bWUtPmVkaXRvcigpLmNvbXB1dGVBbmRTZXRUeXBpbmdTdHlsZShwcm9wZXJ0aWVzLmdldCgpLCB1
bmRvQWN0aW9uKTsKIH0KIAotI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCisjaWYgRU5BQkxFKERS
QUdfU1VQUE9SVCkgJiYgUExBVEZPUk0oTUFDKQogLSAodm9pZClfZHJhZ1NvdXJjZUVuZGVkQXQ6
KE5TUG9pbnQpd2luZG93TG9jIG9wZXJhdGlvbjooTlNEcmFnT3BlcmF0aW9uKW9wZXJhdGlvbgog
ewogICAgIGlmICghX3ByaXZhdGUtPmNvcmVGcmFtZSkKQEAgLTk0Niw3ICs5NDYsNyBAQCBzdGF0
aWMgaW5saW5lIFdlYkRhdGFTb3VyY2UgKmRhdGFTb3VyY2UoRG9jdW1lbnRMb2FkZXIqIGxvYWRl
cikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVu
dDo6TW91c2VNb3ZlZCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJlbnRUaW1l
KCksIFdlYkNvcmU6OkZvcmNlQXRDbGljaywgV2ViQ29yZTo6Tm9UYXApOwogICAgIF9wcml2YXRl
LT5jb3JlRnJhbWUtPmV2ZW50SGFuZGxlcigpLmRyYWdTb3VyY2VFbmRlZEF0KGV2ZW50LCAoRHJh
Z09wZXJhdGlvbilvcGVyYXRpb24pOwogfQotI2VuZGlmCisjZW5kaWYgLy8gRU5BQkxFKERSQUdf
U1VQUE9SVCkgJiYgUExBVEZPUk0oTUFDKQogCiAtIChCT09MKV9jYW5Qcm92aWRlRG9jdW1lbnRT
b3VyY2UKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVJ
bnRlcm5hbC5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZUludGVybmFsLmgK
aW5kZXggNTUzYzIzMDhiYWU4ZTQ0YTc2MmQzZjg3MGM5YjE3OTQ3YTg5ZmU3NC4uNWM3MmQyODdm
YTU3NzA4OWNkNDQwZjA2N2MxY2RhM2FjMWNmNjE5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJGcmFtZUludGVybmFsLmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJGcmFtZUludGVybmFsLmgKQEAgLTE3OSw3ICsxNzksNyBAQCBXZWJWaWV3ICpn
ZXRXZWJWaWV3KFdlYkZyYW1lICp3ZWJGcmFtZSk7CiAtIChET01DU1NTdHlsZURlY2xhcmF0aW9u
ICopX3R5cGluZ1N0eWxlOwogLSAodm9pZClfc2V0VHlwaW5nU3R5bGU6KERPTUNTU1N0eWxlRGVj
bGFyYXRpb24gKilzdHlsZSB3aXRoVW5kb0FjdGlvbjooV2ViQ29yZTo6RWRpdEFjdGlvbil1bmRv
QWN0aW9uOwogCi0jaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKKyNpZiBFTkFCTEUoRFJBR19TVVBQ
T1JUKSAmJiBQTEFURk9STShNQUMpCiAtICh2b2lkKV9kcmFnU291cmNlRW5kZWRBdDooTlNQb2lu
dCl3aW5kb3dMb2Mgb3BlcmF0aW9uOihOU0RyYWdPcGVyYXRpb24pb3BlcmF0aW9uOwogI2VuZGlm
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0g
Yi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCmluZGV4IDAyMDlkODEz
ZThmY2I5NzU3NDhlOWM4OTVmZGU3ODI3MDBiMTQ4NGEuLjY0ZTYzZTI5MDA2ZDU2ZWIzNzM3ODVi
ODZkMDdiYzk2NTc3NjcwNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViSFRNTFZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmll
dy5tbQpAQCAtNDU0NCw3ICs0NTQ0LDcgQEAgc3RhdGljIEJPT0wgY3VycmVudFNjcm9sbElzQmxp
dChOU1ZpZXcgKmNsaXBWaWV3KQogfQogI2VuZGlmCiAKLSNpZiBFTkFCTEUoRFJBR19TVVBQT1JU
KQorI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpICYmIFBMQVRGT1JNKE1BQykKIC0gKHZvaWQpZHJh
Z0ltYWdlOihOU0ltYWdlICopZHJhZ0ltYWdlCiAgICAgICAgICAgICAgICBhdDooTlNQb2ludClh
dAogICAgICAgICAgICBvZmZzZXQ6KE5TU2l6ZSlvZmZzZXQKQEAgLTQ2ODgsNyArNDY4OCw3IEBA
IHN0YXRpYyBib29sIG1hdGNoZXNFeHRlbnNpb25PckVxdWl2YWxlbnQoTlNTdHJpbmcgKmZpbGVu
YW1lLCBOU1N0cmluZyAqZXh0ZW5zaW9uCiAgICAgCiAgICAgcmV0dXJuIFtOU0FycmF5IGFycmF5
V2l0aE9iamVjdDpbcGF0aCBsYXN0UGF0aENvbXBvbmVudF1dOwogfQotI2VuZGlmCisjZW5kaWYg
Ly8gRU5BQkxFKERSQUdfU1VQUE9SVCkgJiYgUExBVEZPUk0oTUFDKQogCiAjaWYgIVBMQVRGT1JN
KElPUykKIC0gKHZvaWQpbW91c2VVcDooTlNFdmVudCAqKWV2ZW50CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYlZpZXcubW0KaW5kZXggNTdiYWE1NGUzNDJlYmNjMjE3YjUwYzgxMzQwZTllNDZiNzFj
NjVkZi4uOWUxM2Y2YWIzNmRlODdkODFiZDE4NGEyMTcyNTE0MTg0MjU1ZTgzNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMTYwOCw3ICsxNjA4LDcgQEAgc3RhdGljIHZv
aWQgV2ViS2l0SW5pdGlhbGl6ZUdhbWVwYWRQcm92aWRlcklmTmVjZXNzYXJ5KCkKICAgICAgICAg
bWFrZVVuaXF1ZVJlZjxXZWJDb3JlOjpMaWJXZWJSVENQcm92aWRlcj4oKQogICAgICk7CiAgICAg
cGFnZUNvbmZpZ3VyYXRpb24uY2hyb21lQ2xpZW50ID0gbmV3IFdlYkNocm9tZUNsaWVudElPUyhz
ZWxmKTsKLSNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQorI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQp
ICYmIFBMQVRGT1JNKE1BQykKICAgICBwYWdlQ29uZmlndXJhdGlvbi5kcmFnQ2xpZW50ID0gbmV3
IFdlYkRyYWdDbGllbnQoc2VsZik7CiAjZW5kaWYKIApAQCAtNjQ3NSw3ICs2NDc1LDcgQEAgc3Rh
dGljIE5TU3RyaW5nICogY29uc3QgYmFja2luZ1Byb3BlcnR5T2xkU2NhbGVGYWN0b3JLZXkgPSBA
Ik5TQmFja2luZ1Byb3BlcnR5T2wKICAgICByZXR1cm4gW3NlbGYgX2VsZW1lbnRBdFdpbmRvd1Bv
aW50OltzZWxmIGNvbnZlcnRQb2ludDpwb2ludCB0b1ZpZXc6bmlsXV07CiB9CiAKLSNpZiBFTkFC
TEUoRFJBR19TVVBQT1JUKQorI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpICYmIFBMQVRGT1JNKE1B
QykKIC8vIFRoZSBmb2xsb3dpbmcgMiBpbnRlcm5hbCBOU1ZpZXcgbWV0aG9kcyBhcmUgY2FsbGVk
IG9uIHRoZSBkcmFnIGRlc3RpbmF0aW9uIHRvIG1ha2Ugc2Nyb2xsaW5nIHdoaWxlIGRyYWdnaW5n
IHdvcmsuCiAvLyBTY3JvbGxpbmcgd2hpbGUgZHJhZ2dpbmcgd2lsbCBvbmx5IHdvcmsgaWYgdGhl
IGRyYWcgZGVzdGluYXRpb24gaXMgaW4gYSBzY3JvbGwgdmlldy4gVGhlIFdlYlZpZXcgaXMgdGhl
IGRyYWcgZGVzdGluYXRpb24uIAogLy8gV2hlbiBkcmFnZ2luZyB0byBhIFdlYlZpZXcsIHRoZSBk
b2N1bWVudCBzdWJ2aWV3IHNob3VsZCBzY3JvbGwsIGJ1dCBpdCBkb2Vzbid0IGJlY2F1c2UgaXQg
aXMgbm90IHRoZSBkcmFnIGRlc3RpbmF0aW9uLiAKQEAgLTY1OTYsNyArNjU5Niw3IEBAIHN0YXRp
YyBOU1N0cmluZyAqIGNvbnN0IGJhY2tpbmdQcm9wZXJ0eU9sZFNjYWxlRmFjdG9yS2V5ID0gQCJO
U0JhY2tpbmdQcm9wZXJ0eU9sCiAgICAgICAgIHJldHVybiBzZWxmOwogICAgIHJldHVybiBoaXRW
aWV3OwogfQotI2VuZGlmCisjZW5kaWYgLy8gRU5BQkxFKERSQUdfU1VQUE9SVCkgJiYgUExBVEZP
Uk0oTUFDKQogCiAtIChCT09MKWFjY2VwdHNGaXJzdFJlc3BvbmRlcgogewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCBjNmE4NTcxOTdk
NWUxYTJlYWMwNjcwOTA2ODU1YjMwODg4YmM3NDkzLi5iZjA2YzBjMjM0NGUwNjQwOTg3NGIwMDIz
MDVmOWZjNGJlMzI0N2FhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmNwcApAQCAtMTIyMyw4ICsxMjIzLDEwIEBAIHZvaWQgQXJndW1lbnRDb2Rl
cjxEcmFnRGF0YT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBEcmFnRGF0YSYgZHJh
Z0RhdGEpCiAgICAgZW5jb2RlciA8PCBkcmFnRGF0YS5nbG9iYWxQb3NpdGlvbigpOwogICAgIGVu
Y29kZXIuZW5jb2RlRW51bShkcmFnRGF0YS5kcmFnZ2luZ1NvdXJjZU9wZXJhdGlvbk1hc2soKSk7
CiAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKGRyYWdEYXRhLmZsYWdzKCkpOwotI2lmIFBMQVRGT1JN
KE1BQykKKyNpZiBQTEFURk9STShDT0NPQSkKICAgICBlbmNvZGVyIDw8IGRyYWdEYXRhLnBhc3Rl
Ym9hcmROYW1lKCk7CisjZW5kaWYKKyNpZiBQTEFURk9STShNQUMpCiAgICAgZW5jb2RlciA8PCBk
cmFnRGF0YS5maWxlTmFtZXMoKTsKICNlbmRpZgogfQpAQCAtMTI0OCwxMyArMTI1MCwxNSBAQCBi
b29sIEFyZ3VtZW50Q29kZXI8RHJhZ0RhdGE+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgRHJh
Z0RhdGEmIGRyYWdEYXRhKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBTdHJpbmcgcGFz
dGVib2FyZE5hbWU7Ci0jaWYgUExBVEZPUk0oTUFDKQorI2lmIFBMQVRGT1JNKENPQ09BKQogICAg
IGlmICghZGVjb2Rlci5kZWNvZGUocGFzdGVib2FyZE5hbWUpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAjZW5kaWYKICAgICBWZWN0b3I8U3RyaW5nPiBmaWxlTmFtZXM7CisjaWYgUExBVEZPUk0o
TUFDKQogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoZmlsZU5hbWVzKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOworI2VuZGlmCiAKICAgICBkcmFnRGF0YSA9IERyYWdEYXRhKHBhc3RlYm9hcmROYW1l
LCBjbGllbnRQb3NpdGlvbiwgZ2xvYmFsUG9zaXRpb24sIGRyYWdnaW5nU291cmNlT3BlcmF0aW9u
TWFzaywgYXBwbGljYXRpb25GbGFncyk7CiAgICAgZHJhZ0RhdGEuc2V0RmlsZU5hbWVzKGZpbGVO
YW1lcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViUGFn
ZVByb3h5Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVBy
b3h5Q29jb2EubW0KaW5kZXggYmE3ZjdmNzlmZmFiYTI2MzlkZTgyMTM0YmFlZTdjNTViMTM2N2Fm
Yy4uZjVhNzFhN2RmNDNlZWMwOGM2MzFjZDRhN2E1NDgzMmRjZTYxN2FlYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQpAQCAt
MzQsNiArMzQsMTAgQEAKICNpbXBvcnQgPFdlYkNvcmUvVmFsaWRhdGlvbkJ1YmJsZS5oPgogI2lt
cG9ydCA8d3RmL2NmL1R5cGVDYXN0c0NGLmg+CiAKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RL
KQorI2ltcG9ydCA8V2ViS2l0QWRkaXRpb25zL1dlYlBhZ2VQcm94eUFkZGl0aW9ucy5tbT4KKyNl
bmRpZgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFj
L1dlYkRyYWdDbGllbnRNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L21hYy9XZWJEcmFnQ2xpZW50TWFjLm1tCmluZGV4IDg4YWQ1ZGNjNDE2MGRjMTFiNWVi
ZmUyMGMyZDBmZWY4M2JkODRiNzguLmJkZWE5YThlMjBmZGEwMzlhNzUyNGU4YzFhOTMyMTk0ZWU5
NWU2ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvbWFjL1dlYkRyYWdDbGllbnRNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0NsaWVudE1hYy5tbQpAQCAtNTEsNiArNTEsMTIg
QEAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAor
I2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisjaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvV2Vi
RHJhZ0NsaWVudEFkZGl0aW9ucy5tbT4KKyNlbmRpZgorCisjaWYgUExBVEZPUk0oTUFDKQorCiBu
YW1lc3BhY2UgV2ViS2l0IHsKIAogc3RhdGljIFBhc3NSZWZQdHI8U2hhcmVhYmxlQml0bWFwPiBj
b252ZXJ0SW1hZ2VUb0JpdG1hcChOU0ltYWdlICppbWFnZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSwg
RnJhbWUmIGZyYW1lKQpAQCAtMTYwLDQgKzE2Niw2IEBAIHZvaWQgV2ViRHJhZ0NsaWVudDo6ZGVj
bGFyZUFuZFdyaXRlRHJhZ0ltYWdlKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUsIEVsZW1l
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCisjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQorCiAj
ZW5kaWYgLy8gRU5BQkxFKERSQUdfU1VQUE9SVCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>299760</attachid>
            <date>2017-01-25 16:09:51 -0800</date>
            <delta_ts>2017-01-25 16:36:17 -0800</delta_ts>
            <desc>Address build failures.</desc>
            <filename>bug-167427-20170125160750.patch</filename>
            <type>text/plain</type>
            <size>26111</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExMTY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWVmOWM4ZTA5ZTU5ZjBk
NTYyODQyZDZlYjUyNmM1ZjQzYWE1ZWQyYi4uNjk1YjY5N2ZlY2RhMjUxNmNkNTJlNDg1ZGNlOGZl
MDI0OWVjZjg0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ0IEBACiAyMDE3LTAxLTI1ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCisgICAgICAgIFJlZmFjdG9yIGRy
YWcgYW5kIGRyb3AgaW1wbGVtZW50YXRpb24gb24gTWFjCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjc0MjcKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWZhY3RvcnMgc29tZSBjb2RlIGFyb3VuZCBkcmFn
IGFuZCBkcm9wIG9uIE1hYywgYW5kIGNsZWFucyB1cCBzb21lIG90aGVyIHJlbGF0ZWQgY29kZSBh
cyBuZWVkZWQuIFRoaXMgcGF0Y2gKKyAgICAgICAgc2hvdWxkIHJlc3VsdCBpbiBubyBiZWhhdmlv
ciBjaGFuZ2UuCisKKyAgICAgICAgKiBkb20vRGF0YVRyYW5zZmVyLmNwcDoKKyAgICAgICAgKiBw
YWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgICogcGFnZS9pb3MvRXZlbnRIYW5kbGVySU9T
Lm1tOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpldmVudExvb3BIYW5kbGVNb3Vz
ZURyYWdnZWQpOgorICAgICAgICAqIHBhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9EcmFnSW1hZ2UuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL1Bhc3RlYm9h
cmQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvRHJhZ0ltYWdlSU9TLm1tOgorICAgICAgICAq
IHBsYXRmb3JtL2lvcy9QYXN0ZWJvYXJkSU9TLm1tOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9E
cmFnRGF0YU1hYy5tbToKKyAgICAgICAgKHJ0ZlBhc3RlYm9hcmRUeXBlKToKKyAgICAgICAgKHJ0
ZmRQYXN0ZWJvYXJkVHlwZSk6CisgICAgICAgIChzdHJpbmdQYXN0ZWJvYXJkVHlwZSk6CisgICAg
ICAgICh1cmxQYXN0ZWJvYXJkVHlwZSk6CisgICAgICAgIChodG1sUGFzdGVib2FyZFR5cGUpOgor
ICAgICAgICAoY29sb3JQYXN0ZWJvYXJkVHlwZSk6CisgICAgICAgIChwZGZQYXN0ZWJvYXJkVHlw
ZSk6CisgICAgICAgICh0aWZmUGFzdGVib2FyZFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6RHJh
Z0RhdGE6OkRyYWdEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdEYXRhOjpjb250YWluc0Nv
bG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdEYXRhOjpjb250YWluc0ZpbGVzKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRyYWdEYXRhOjpudW1iZXJPZkZpbGVzKToKKyAgICAgICAgKFdlYkNvcmU6
OkRyYWdEYXRhOjphc0ZpbGVuYW1lcyk6CisgICAgICAgIChXZWJDb3JlOjpEcmFnRGF0YTo6Y29u
dGFpbnNQbGFpblRleHQpOgorICAgICAgICAoV2ViQ29yZTo6RHJhZ0RhdGE6OmNvbnRhaW5zQ29t
cGF0aWJsZUNvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RHJhZ0RhdGE6OmNvbnRhaW5zUHJv
bWlzZSk6CisgICAgICAgIChXZWJDb3JlOjpEcmFnRGF0YTo6YXNVUkwpOgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9EcmFnSW1hZ2VNYWMubW06CisKKzIwMTctMDEtMjUgIFdlbnNvbiBIc2llaCAg
PHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKICAgICAgICAgSW50cm9kdWNlIGFuIGl0ZW0tcHJv
dmlkZXItYmFzZWQgcGFzdGVib2FyZCB3cmFwcGVyCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjc0MTAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDgwYzcy
OTQxY2ZhMzQ2ZTEzNzFkYzU5NjlmNjE5OWMyMTkxYWUyNGYuLjY1OGZlZGVhNjhhYmEzZWRlNGQ5
YTQ1YWE0YWJlMjQ5MzI1NTUxMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAor
MjAxNy0wMS0yNSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAg
ICAgICBSZWZhY3RvciBkcmFnIGFuZCBkcm9wIGltcGxlbWVudGF0aW9uIG9uIE1hYworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY3NDI3CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVmYWN0b3Igc29tZSBX
ZWJLaXQxIGNvZGUgb24gdGhlIE1hYyBwZXJ0YWluaW5nIHRvIGRyYWcgYW5kIGRyb3AuIFNlZSBX
ZWJDb3JlIENoYW5nZUxvZyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAgICogTWlzYy9XZWJO
U1Bhc3RlYm9hcmRFeHRyYXMuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xp
ZW50Lm1tOgorICAgICAgICAqIFdlYlZpZXcvV2ViRnJhbWUubW06CisgICAgICAgICogV2ViVmll
dy9XZWJGcmFtZUludGVybmFsLmg6CisgICAgICAgICogV2ViVmlldy9XZWJIVE1MVmlldy5tbToK
KyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgaW5pdFNp
bXBsZUhUTUxEb2N1bWVudFdpdGhTdHlsZTpmcmFtZTpwcmVmZXJlbmNlczpncm91cE5hbWU6XSk6
CisKIDIwMTctMDEtMjQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5mQGdtYWlsLmNvbT4KIAogICAg
ICAgICBbV2ViUlRDXSBJbnRyb2R1Y2UgbGlid2VicnRjIGFic3RyYWN0aW9uIGZvciBXSzEvV0sy
IGltcGxlbWVudGF0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDM4MmRkNjgxNzAzMDYzMTZiNDEwZjFmNWM0
YWNiZTYxYTA3YWFiZTcuLjIyOWU1MjI3YTdkM2NiMGMyYmFiOTYxMDQyMWYwMTVhN2M3NDVjNTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxNy0wMS0yNSAgV2Vuc29uIEhzaWVoICA8
d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBSZWZhY3RvciBkcmFnIGFuZCBkcm9w
IGltcGxlbWVudGF0aW9uIG9uIE1hYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTY3NDI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgU2VlIFdlYkNvcmUgQ2hhbmdlTG9nIGZvciBtb3JlIGRldGFpbHMuCisK
KyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKElQ
Qzo6QXJndW1lbnRDb2RlcjxEcmFnRGF0YT46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3Vt
ZW50Q29kZXI8RHJhZ0RhdGE+OjpkZWNvZGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9X
ZWJQYWdlUHJveHlDb2NvYS5tbToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L21hYy9XZWJEcmFnQ2xpZW50TWFjLm1tOgorCiAyMDE3LTAxLTI1ICBBbmR5IEVzdGVzICA8YWVz
dGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBbUXVpY2tMb29rXSBEaXNwbGF5IGEgV0tQYXNzd29y
ZFZpZXcgd2hlbiBhIGRvY3VtZW50IGlzIHBhc3N3b3JkLXByb3RlY3RlZApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RGF0YVRyYW5zZmVyLmNwcAppbmRleCA1NjFlYjQyMDQwOWU3ZTFiNjJjMmM2YTVjZmM3ZTA2MmI0
Y2ZjYmQ2Li45ZWNiMzUxZDNjYTQ3NzNhYWJlY2M4N2E1NDRmYjY4NzA2MzY3OWEwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRGF0YVRyYW5zZmVyLmNwcApAQCAtMjkwLDcgKzI5MCw3IEBAIHZvaWQgRGF0YVRy
YW5zZmVyOjp1cGRhdGVEcmFnSW1hZ2UoKQogICAgIG1fcGFzdGVib2FyZC0+c2V0RHJhZ0ltYWdl
KGNvbXB1dGVkSW1hZ2UsIGNvbXB1dGVkSG90U3BvdCk7CiB9CiAKLSNpZiAhUExBVEZPUk0oQ09D
T0EpCisjaWYgIVBMQVRGT1JNKE1BQykKIAogRHJhZ0ltYWdlUmVmIERhdGFUcmFuc2Zlcjo6Y3Jl
YXRlRHJhZ0ltYWdlKEludFBvaW50JiBsb2NhdGlvbikgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RXZlbnRIYW5kbGVyLmNwcAppbmRleCA1YTVhMzVlNjhhN2M4OTg4YjZlMTMwNGU0ODlhMjEyYWJk
OWM3M2M0Li5hMGEyMjY1ZGJjNjZmZWEyYTJiNjQzZmYwODEwZTNhOGVjMTZhMDA3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0xMzEsNiArMTMxLDcgQEAgY29uc3QgaW50
IExpbmtEcmFnSHlzdGVyZXNpcyA9IDQwOwogY29uc3QgaW50IEltYWdlRHJhZ0h5c3RlcmVzaXMg
PSA1OwogY29uc3QgaW50IFRleHREcmFnSHlzdGVyZXNpcyA9IDM7CiBjb25zdCBpbnQgR2VuZXJh
bERyYWdIeXN0ZXJlc2lzID0gMzsKK2NvbnN0IGRvdWJsZSBFdmVudEhhbmRsZXI6OlRleHREcmFn
RGVsYXkgPSAwLjE1OwogI2VuZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBPUlQpCiAKICNpZiBFTkFC
TEUoSU9TX0dFU1RVUkVfRVZFTlRTKSB8fCBFTkFCTEUoTUFDX0dFU1RVUkVfRVZFTlRTKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvRXZlbnRIYW5kbGVySU9TLm1tIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9pb3MvRXZlbnRIYW5kbGVySU9TLm1tCmluZGV4IDI5YmFkZWY1OTU1
ODRhM2ZjZTUzY2EyZjgyNDFlNGY2ZWZkNzU0ZDUuLmIwOWY5ZTkwZmUwNGE5ZGU4OTE4OTNlNjEw
MzRhZjVlYmUzYzMyMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL0V2ZW50
SGFuZGxlcklPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9FdmVudEhhbmRsZXJJ
T1MubW0KQEAgLTQ5LDYgKzQ5LDEwIEBACiAjaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvRXZlbnRI
YW5kbGVySU9TVG91Y2guY3BwPgogI2VuZGlmCiAKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RL
KQorI2ltcG9ydCA8V2ViS2l0QWRkaXRpb25zL0V2ZW50SGFuZGxlckFkZGl0aW9ucy5tbT4KKyNl
bmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBSZXRhaW5QdHI8V2ViRXZlbnQ+
JiBjdXJyZW50RXZlbnRTbG90KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFj
L0V2ZW50SGFuZGxlck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxl
ck1hYy5tbQppbmRleCBhZDdhNTllMzFlMDk1YjBiYzUyMDUwNzJmZGYxODM5ZjBmNGY2ODNlLi42
YzQ0NGFhMzQ2ZjdmMmMyM2Q2YTFhYmU2OTg3YmNiNTljNDY2OGNlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tCkBAIC03NCwxMCArNzQsNiBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLSNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotY29uc3QgZG91Ymxl
IEV2ZW50SGFuZGxlcjo6VGV4dERyYWdEZWxheSA9IDAuMTU7Ci0jZW5kaWYKLQogY29uc3QgZG91
YmxlIHJlc2V0TGF0Y2hlZFN0YXRlVGltZW91dCA9IDAuMTsKIAogc3RhdGljIFJldGFpblB0cjxO
U0V2ZW50PiYgY3VycmVudE5TRXZlbnRTbG90KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0RyYWdJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnSW1h
Z2UuY3BwCmluZGV4IGFhNTY2YWYzMzg0ZmFlMGMxMzAzMmNkM2NiMWMwNTNlMmQzN2MyZTQuLmQ4
YjVkZWE3YzZiZGQ5NWNhMzEyNzg2NmQyNWM0NWQ5MDk0YWI0ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vRHJhZ0ltYWdlLmNwcApAQCAtMTIwLDEyICsxMjAsMTYgQEAgRHJhZ0ltYWdlUmVmIGNy
ZWF0ZURyYWdJbWFnZUZvck5vZGUoRnJhbWUmIGZyYW1lLCBOb2RlJiBub2RlKQogICAgIHJldHVy
biBjcmVhdGVEcmFnSW1hZ2VGcm9tU25hcHNob3Qoc25hcHNob3ROb2RlKGZyYW1lLCBub2RlKSwg
Jm5vZGUpOwogfQogCisjaWYgIUVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQorCiBEcmFnSW1hZ2VS
ZWYgY3JlYXRlRHJhZ0ltYWdlRm9yU2VsZWN0aW9uKEZyYW1lJiBmcmFtZSwgYm9vbCBmb3JjZUJs
YWNrVGV4dCkKIHsKICAgICBTbmFwc2hvdE9wdGlvbnMgb3B0aW9ucyA9IGZvcmNlQmxhY2tUZXh0
ID8gU25hcHNob3RPcHRpb25zRm9yY2VCbGFja1RleHQgOiBTbmFwc2hvdE9wdGlvbnNOb25lOwog
ICAgIHJldHVybiBjcmVhdGVEcmFnSW1hZ2VGcm9tU25hcHNob3Qoc25hcHNob3RTZWxlY3Rpb24o
ZnJhbWUsIG9wdGlvbnMpLCBudWxscHRyKTsKIH0KIAorI2VuZGlmCisKIHN0cnVjdCBTY29wZWRG
cmFtZVNlbGVjdGlvblN0YXRlIHsKICAgICBTY29wZWRGcmFtZVNlbGVjdGlvblN0YXRlKEZyYW1l
JiBmcmFtZSkKICAgICAgICAgOiBmcmFtZShmcmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3Rl
Ym9hcmQuaAppbmRleCBiYWMxZjhmMmY0NzkxYzU4N2I0NjA1NjkxYzI4NjJhNTQ2OWQ1MmU4Li4w
NmMzZGU3NWViY2FlYzU2MWI5MThkZWQ1MTA4NWM4ZTRhZWI3Yjc3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vUGFzdGVib2FyZC5oCkBAIC0xMjksNyArMTI5LDcgQEAgcHVibGljOgogCiBzdHJ1Y3Qg
UGFzdGVib2FyZFBsYWluVGV4dCB7CiAgICAgU3RyaW5nIHRleHQ7Ci0jaWYgUExBVEZPUk0oTUFD
KQorI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGJvb2wgaXNVUkw7CiAjZW5kaWYKIH07CkBAIC0x
NzksOCArMTc5LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB3cml0ZVBhc3RlYm9hcmQo
Y29uc3QgUGFzdGVib2FyZCYgc291cmNlUGFzdGVib2FyZCk7CiAKICNpZiBFTkFCTEUoRFJBR19T
VVBQT1JUKQotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gY3JlYXRlRm9y
RHJhZ0FuZERyb3AoKTsKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9hcmQ+IGNy
ZWF0ZUZvckRyYWdBbmREcm9wKGNvbnN0IERyYWdEYXRhJik7CisgICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBjcmVhdGVGb3JEcmFnQW5kRHJvcCgp
OworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4g
Y3JlYXRlRm9yRHJhZ0FuZERyb3AoY29uc3QgRHJhZ0RhdGEmKTsKIAogICAgIHZpcnR1YWwgdm9p
ZCBzZXREcmFnSW1hZ2UoRHJhZ0ltYWdlUmVmLCBjb25zdCBJbnRQb2ludCYgaG90U3BvdCk7CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9EcmFnSW1hZ2VJ
T1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvRHJhZ0ltYWdlSU9TLm1tCmluZGV4
IDFjY2NmYmFjZDZlZDg3YmMzMzBjZDQwODFlMGY4YTA1MTk5ZTY3ZGEuLjFkYjlkMzMyNmQ5NzU1
MTU3ZWNjYWY5ZTgyZWY1ZjZhZmQ3OTJlNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9EcmFnSW1hZ2VJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW9zL0RyYWdJbWFnZUlPUy5tbQpAQCAtMjgsNiArMjgsMTUgQEAKIAogI2ltcG9ydCA8Q29yZUdy
YXBoaWNzL0NvcmVHcmFwaGljcy5oPgogCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKwor
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV251bGxhYmlsaXR5LWNvbXBsZXRlbmVzcyIKKyNpbXBvcnQgPFdlYktpdEFkZGl0
aW9ucy9EcmFnSW1hZ2VBZGRpdGlvbnMubW0+CisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CisKKyNlbHNlCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogLy8gRklYTUU6IGZpeCBzaWduYXR1
cmUgb2YgZHJhZ0ltYWdlU2l6ZSgpIHRvIGF2b2lkIGNvcHlpbmcgdGhlIGFyZ3VtZW50LgpAQCAt
NDksMyArNTgsNSBAQCBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gY3JlYXRlRHJhZ0ltYWdlRnJvbUlt
YWdlKEltYWdlKiwgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aQogfQogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1Bhc3RlYm9hcmRJT1MubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGFzdGVib2FyZElPUy5tbQppbmRleCA5NmM3MmQwMWM3NTMw
NDU5MGMzNzBjNjNiODY0OTYxYmI2Y2YzMDE4Li5lMjY0ZDQ0MGUyMzk0N2I5MmRkY2Q1YmNjYWIy
NjUwNzU2YmVjNmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGFz
dGVib2FyZElPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGFzdGVib2Fy
ZElPUy5tbQpAQCAtNTgsNiArNTgsMTAgQEAKIC0gKEJPT0wpY29udGFpbnNBdHRhY2htZW50czsK
IEBlbmQKIAorI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisjaW1wb3J0IDxXZWJLaXRBZGRp
dGlvbnMvUGFzdGVib2FyZEFkZGl0aW9ucy5tbT4KKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIC8vIEZJWE1FOiBEb2VzIHRoaXMgbmVlZCB0byBiZSBkZWNsYXJlZCBpbiB0aGUgaGVh
ZGVyIGZpbGU/CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0Rh
dGFNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0RhdGFNYWMubW0KaW5k
ZXggNzVkNTBiY2ViMzBhYzk5ZWQ5Yzg2YjMxYzY2MzA1OWUwNTJkYzhmMi4uYWMzYzViMDUyNTli
NjUxM2Y3NTYyOGZmY2EyMWFjZDllZTVlYzQ5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL0RyYWdEYXRhTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9EcmFnRGF0YU1hYy5tbQpAQCAtMzMsNiArMzMsNTQgQEAKICNpbXBvcnQgIlBsYXRmb3Jt
U3RyYXRlZ2llcy5oIgogI2ltcG9ydCAiV2ViQ29yZU5TVVJMRXh0cmFzLmgiCiAKKyNpZiBVU0Uo
QVBQTEVfSU5URVJOQUxfU0RLKQorCisjaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvRHJhZ0RhdGFB
ZGRpdGlvbnMubW0+CisKKyNlbHNlCisKK3N0YXRpYyBpbmxpbmUgU3RyaW5nIHJ0ZlBhc3RlYm9h
cmRUeXBlKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nKE5TUlRGUGJvYXJkVHlwZSk7Cit9CisKK3N0
YXRpYyBpbmxpbmUgU3RyaW5nIHJ0ZmRQYXN0ZWJvYXJkVHlwZSgpCit7CisgICAgcmV0dXJuIFN0
cmluZyhOU1JURkRQYm9hcmRUeXBlKTsKK30KKworc3RhdGljIGlubGluZSBTdHJpbmcgc3RyaW5n
UGFzdGVib2FyZFR5cGUoKQoreworICAgIHJldHVybiBTdHJpbmcoTlNTdHJpbmdQYm9hcmRUeXBl
KTsKK30KKworc3RhdGljIGlubGluZSBTdHJpbmcgdXJsUGFzdGVib2FyZFR5cGUoKQoreworICAg
IHJldHVybiBTdHJpbmcoTlNVUkxQYm9hcmRUeXBlKTsKK30KKworc3RhdGljIGlubGluZSBTdHJp
bmcgaHRtbFBhc3RlYm9hcmRUeXBlKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nKE5TSFRNTFBib2Fy
ZFR5cGUpOworfQorCitzdGF0aWMgaW5saW5lIFN0cmluZyBjb2xvclBhc3RlYm9hcmRUeXBlKCkK
K3sKKyAgICByZXR1cm4gU3RyaW5nKE5TQ29sb3JQYm9hcmRUeXBlKTsKK30KKworc3RhdGljIGlu
bGluZSBTdHJpbmcgcGRmUGFzdGVib2FyZFR5cGUoKQoreworICAgIHJldHVybiBTdHJpbmcoTlNQ
REZQYm9hcmRUeXBlKTsKK30KKworc3RhdGljIGlubGluZSBTdHJpbmcgdGlmZlBhc3RlYm9hcmRU
eXBlKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nKE5TVElGRlBib2FyZFR5cGUpOworfQorCisjZW5k
aWYgLy8gVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBE
cmFnRGF0YTo6RHJhZ0RhdGEoRHJhZ0RhdGFSZWYgZGF0YSwgY29uc3QgSW50UG9pbnQmIGNsaWVu
dFBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIApAQCAtNDIsNyArOTAs
MTEgQEAgRHJhZ0RhdGE6OkRyYWdEYXRhKERyYWdEYXRhUmVmIGRhdGEsIGNvbnN0IEludFBvaW50
JiBjbGllbnRQb3NpdGlvbiwgY29uc3QgSW50UG8KICAgICAsIG1fcGxhdGZvcm1EcmFnRGF0YShk
YXRhKQogICAgICwgbV9kcmFnZ2luZ1NvdXJjZU9wZXJhdGlvbk1hc2soc291cmNlT3BlcmF0aW9u
TWFzaykKICAgICAsIG1fYXBwbGljYXRpb25GbGFncyhmbGFncykKKyNpZiBQTEFURk9STShNQUMp
CiAgICAgLCBtX3Bhc3RlYm9hcmROYW1lKFtbbV9wbGF0Zm9ybURyYWdEYXRhIGRyYWdnaW5nUGFz
dGVib2FyZF0gbmFtZV0pCisjZWxzZQorICAgICwgbV9wYXN0ZWJvYXJkTmFtZSgiZGF0YSBpbnRl
cmFjdGlvbiBwYXN0ZWJvYXJkIikKKyNlbmRpZgogewogfQogCkBAIC02NiwzMCArMTE4LDQwIEBA
IGJvb2wgRHJhZ0RhdGE6OmNvbnRhaW5zQ29sb3IoKSBjb25zdAogewogICAgIFZlY3RvcjxTdHJp
bmc+IHR5cGVzOwogICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3ko
KS0+Z2V0VHlwZXModHlwZXMsIG1fcGFzdGVib2FyZE5hbWUpOwotICAgIHJldHVybiB0eXBlcy5j
b250YWlucyhTdHJpbmcoTlNDb2xvclBib2FyZFR5cGUpKTsKKyAgICByZXR1cm4gdHlwZXMuY29u
dGFpbnMoY29sb3JQYXN0ZWJvYXJkVHlwZSgpKTsKIH0KIAogYm9vbCBEcmFnRGF0YTo6Y29udGFp
bnNGaWxlcygpIGNvbnN0CiB7CisjaWYgUExBVEZPUk0oTUFDKQogICAgIFZlY3RvcjxTdHJpbmc+
IHR5cGVzOwogICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+
Z2V0VHlwZXModHlwZXMsIG1fcGFzdGVib2FyZE5hbWUpOwogICAgIHJldHVybiB0eXBlcy5jb250
YWlucyhTdHJpbmcoTlNGaWxlbmFtZXNQYm9hcmRUeXBlKSkgfHwgdHlwZXMuY29udGFpbnMoU3Ry
aW5nKE5TRmlsZXNQcm9taXNlUGJvYXJkVHlwZSkpOworI2Vsc2UKKyAgICByZXR1cm4gZmFsc2U7
CisjZW5kaWYKIH0KIAogdW5zaWduZWQgRHJhZ0RhdGE6Om51bWJlck9mRmlsZXMoKSBjb25zdAog
ewogICAgIFZlY3RvcjxTdHJpbmc+IGZpbGVzOworI2lmIFBMQVRGT1JNKE1BQykKICAgICBwbGF0
Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPmdldFBhdGhuYW1lc0ZvclR5
cGUoZmlsZXMsIFN0cmluZyhOU0ZpbGVuYW1lc1Bib2FyZFR5cGUpLCBtX3Bhc3RlYm9hcmROYW1l
KTsKICAgICBpZiAoIWZpbGVzLnNpemUoKSkKICAgICAgICAgcGxhdGZvcm1TdHJhdGVnaWVzKCkt
PnBhc3RlYm9hcmRTdHJhdGVneSgpLT5nZXRQYXRobmFtZXNGb3JUeXBlKGZpbGVzLCBTdHJpbmco
TlNGaWxlc1Byb21pc2VQYm9hcmRUeXBlKSwgbV9wYXN0ZWJvYXJkTmFtZSk7CisjZW5kaWYKICAg
ICByZXR1cm4gZmlsZXMuc2l6ZSgpOwogfQogCiB2b2lkIERyYWdEYXRhOjphc0ZpbGVuYW1lcyhW
ZWN0b3I8U3RyaW5nPiYgcmVzdWx0KSBjb25zdAogeworI2lmIFBMQVRGT1JNKE1BQykKICAgICBw
bGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPmdldFBhdGhuYW1lc0Zv
clR5cGUocmVzdWx0LCBTdHJpbmcoTlNGaWxlbmFtZXNQYm9hcmRUeXBlKSwgbV9wYXN0ZWJvYXJk
TmFtZSk7CiAgICAgaWYgKCFyZXN1bHQuc2l6ZSgpKQogICAgICAgICByZXN1bHQgPSBmaWxlTmFt
ZXMoKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHJlc3VsdCk7CisjZW5kaWYKIH0KIAogYm9v
bCBEcmFnRGF0YTo6Y29udGFpbnNQbGFpblRleHQoKSBjb25zdApAQCAtOTcsMTEgKzE1OSwxMyBA
QCBib29sIERyYWdEYXRhOjpjb250YWluc1BsYWluVGV4dCgpIGNvbnN0CiAgICAgVmVjdG9yPFN0
cmluZz4gdHlwZXM7CiAgICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVn
eSgpLT5nZXRUeXBlcyh0eXBlcywgbV9wYXN0ZWJvYXJkTmFtZSk7CiAKLSAgICByZXR1cm4gdHlw
ZXMuY29udGFpbnMoU3RyaW5nKE5TU3RyaW5nUGJvYXJkVHlwZSkpCi0gICAgICAgIHx8IHR5cGVz
LmNvbnRhaW5zKFN0cmluZyhOU1JURkRQYm9hcmRUeXBlKSkKLSAgICAgICAgfHwgdHlwZXMuY29u
dGFpbnMoU3RyaW5nKE5TUlRGUGJvYXJkVHlwZSkpCisgICAgcmV0dXJuIHR5cGVzLmNvbnRhaW5z
KHN0cmluZ1Bhc3RlYm9hcmRUeXBlKCkpCisgICAgICAgIHx8IHR5cGVzLmNvbnRhaW5zKHJ0ZmRQ
YXN0ZWJvYXJkVHlwZSgpKQorICAgICAgICB8fCB0eXBlcy5jb250YWlucyhydGZQYXN0ZWJvYXJk
VHlwZSgpKQorI2lmIFBMQVRGT1JNKE1BQykKICAgICAgICAgfHwgdHlwZXMuY29udGFpbnMoU3Ry
aW5nKE5TRmlsZW5hbWVzUGJvYXJkVHlwZSkpCi0gICAgICAgIHx8IHBsYXRmb3JtU3RyYXRlZ2ll
cygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+c3RyaW5nRm9yVHlwZShTdHJpbmcoTlNVUkxQYm9h
cmRUeXBlKSwgbV9wYXN0ZWJvYXJkTmFtZSkubGVuZ3RoKCk7CisjZW5kaWYKKyAgICAgICAgfHwg
cGxhdGZvcm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT5zdHJpbmdGb3JUeXBl
KHVybFBhc3RlYm9hcmRUeXBlKCksIG1fcGFzdGVib2FyZE5hbWUpLmxlbmd0aCgpOwogfQogCiBT
dHJpbmcgRHJhZ0RhdGE6OmFzUGxhaW5UZXh0KCkgY29uc3QKQEAgLTEzMCwyMyArMTk0LDI3IEBA
IGJvb2wgRHJhZ0RhdGE6OmNvbnRhaW5zQ29tcGF0aWJsZUNvbnRlbnQoKSBjb25zdAogICAgIFZl
Y3RvcjxTdHJpbmc+IHR5cGVzOwogICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJk
U3RyYXRlZ3koKS0+Z2V0VHlwZXModHlwZXMsIG1fcGFzdGVib2FyZE5hbWUpOwogICAgIHJldHVy
biB0eXBlcy5jb250YWlucyhTdHJpbmcoV2ViQXJjaGl2ZVBib2FyZFR5cGUpKQotICAgICAgICB8
fCB0eXBlcy5jb250YWlucyhTdHJpbmcoTlNIVE1MUGJvYXJkVHlwZSkpCisgICAgICAgIHx8IHR5
cGVzLmNvbnRhaW5zKGh0bWxQYXN0ZWJvYXJkVHlwZSgpKQorI2lmIFBMQVRGT1JNKE1BQykKICAg
ICAgICAgfHwgdHlwZXMuY29udGFpbnMoU3RyaW5nKE5TRmlsZW5hbWVzUGJvYXJkVHlwZSkpCiAg
ICAgICAgIHx8IHR5cGVzLmNvbnRhaW5zKFN0cmluZyhOU0ZpbGVzUHJvbWlzZVBib2FyZFR5cGUp
KQotICAgICAgICB8fCB0eXBlcy5jb250YWlucyhTdHJpbmcoTlNUSUZGUGJvYXJkVHlwZSkpCi0g
ICAgICAgIHx8IHR5cGVzLmNvbnRhaW5zKFN0cmluZyhOU1BERlBib2FyZFR5cGUpKQotICAgICAg
ICB8fCB0eXBlcy5jb250YWlucyhTdHJpbmcoTlNVUkxQYm9hcmRUeXBlKSkKLSAgICAgICAgfHwg
dHlwZXMuY29udGFpbnMoU3RyaW5nKE5TUlRGRFBib2FyZFR5cGUpKQotICAgICAgICB8fCB0eXBl
cy5jb250YWlucyhTdHJpbmcoTlNSVEZQYm9hcmRUeXBlKSkKLSAgICAgICAgfHwgdHlwZXMuY29u
dGFpbnMoU3RyaW5nKE5TU3RyaW5nUGJvYXJkVHlwZSkpCi0gICAgICAgIHx8IHR5cGVzLmNvbnRh
aW5zKFN0cmluZyhOU0NvbG9yUGJvYXJkVHlwZSkpCisjZW5kaWYKKyAgICAgICAgfHwgdHlwZXMu
Y29udGFpbnModGlmZlBhc3RlYm9hcmRUeXBlKCkpCisgICAgICAgIHx8IHR5cGVzLmNvbnRhaW5z
KHBkZlBhc3RlYm9hcmRUeXBlKCkpCisgICAgICAgIHx8IHR5cGVzLmNvbnRhaW5zKHVybFBhc3Rl
Ym9hcmRUeXBlKCkpCisgICAgICAgIHx8IHR5cGVzLmNvbnRhaW5zKHJ0ZmRQYXN0ZWJvYXJkVHlw
ZSgpKQorICAgICAgICB8fCB0eXBlcy5jb250YWlucyhydGZQYXN0ZWJvYXJkVHlwZSgpKQorICAg
ICAgICB8fCB0eXBlcy5jb250YWlucyhzdHJpbmdQYXN0ZWJvYXJkVHlwZSgpKQorICAgICAgICB8
fCB0eXBlcy5jb250YWlucyhjb2xvclBhc3RlYm9hcmRUeXBlKCkpCiAgICAgICAgIHx8IHR5cGVz
LmNvbnRhaW5zKFN0cmluZyhrVVRUeXBlUE5HKSk7CiB9CiAKIGJvb2wgRHJhZ0RhdGE6OmNvbnRh
aW5zUHJvbWlzZSgpIGNvbnN0CiB7CiAgICAgVmVjdG9yPFN0cmluZz4gZmlsZXM7CisjaWYgUExB
VEZPUk0oTUFDKQogICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3ko
KS0+Z2V0UGF0aG5hbWVzRm9yVHlwZShmaWxlcywgU3RyaW5nKE5TRmlsZXNQcm9taXNlUGJvYXJk
VHlwZSksIG1fcGFzdGVib2FyZE5hbWUpOworI2VuZGlmCiAgICAgcmV0dXJuIGZpbGVzLnNpemUo
KSA9PSAxOwogfQogCkBAIC0xNjAsMjQgKzIyOCwyNiBAQCBTdHJpbmcgRHJhZ0RhdGE6OmFzVVJM
KEZpbGVuYW1lQ29udmVyc2lvblBvbGljeSwgU3RyaW5nKiB0aXRsZSkgY29uc3QKICAgICAvLyBG
SVhNRTogVXNlIGZpbGVuYW1lUG9saWN5LgogCiAgICAgaWYgKHRpdGxlKSB7CisjaWYgUExBVEZP
Uk0oTUFDKQogICAgICAgICBTdHJpbmcgVVJMVGl0bGVTdHJpbmcgPSBwbGF0Zm9ybVN0cmF0ZWdp
ZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPnN0cmluZ0ZvclR5cGUoU3RyaW5nKFdlYlVSTE5h
bWVQYm9hcmRUeXBlKSwgbV9wYXN0ZWJvYXJkTmFtZSk7CiAgICAgICAgIGlmICghVVJMVGl0bGVT
dHJpbmcuaXNFbXB0eSgpKQogICAgICAgICAgICAgKnRpdGxlID0gVVJMVGl0bGVTdHJpbmc7Cisj
ZW5kaWYKICAgICB9CiAgICAgCiAgICAgVmVjdG9yPFN0cmluZz4gdHlwZXM7CiAgICAgcGxhdGZv
cm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT5nZXRUeXBlcyh0eXBlcywgbV9w
YXN0ZWJvYXJkTmFtZSk7CiAKLSAgICBpZiAodHlwZXMuY29udGFpbnMoU3RyaW5nKE5TVVJMUGJv
YXJkVHlwZSkpKSB7Ci0gICAgICAgIE5TVVJMICpVUkxGcm9tUGFzdGVib2FyZCA9IFtOU1VSTCBV
UkxXaXRoU3RyaW5nOnBsYXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+
c3RyaW5nRm9yVHlwZShTdHJpbmcoTlNVUkxQYm9hcmRUeXBlKSwgbV9wYXN0ZWJvYXJkTmFtZSld
OworICAgIGlmICh0eXBlcy5jb250YWlucyh1cmxQYXN0ZWJvYXJkVHlwZSgpKSkgeworICAgICAg
ICBOU1VSTCAqVVJMRnJvbVBhc3RlYm9hcmQgPSBbTlNVUkwgVVJMV2l0aFN0cmluZzpwbGF0Zm9y
bVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPnN0cmluZ0ZvclR5cGUodXJsUGFz
dGVib2FyZFR5cGUoKSwgbV9wYXN0ZWJvYXJkTmFtZSldOwogICAgICAgICBOU1N0cmluZyAqc2No
ZW1lID0gW1VSTEZyb21QYXN0ZWJvYXJkIHNjaGVtZV07CiAgICAgICAgIC8vIENhbm5vdCBkcm9w
IG90aGVyIHNjaGVtZXMgdW5sZXNzIDxyZGFyOi8vcHJvYmxlbS8xMDU2MjY2Mj4gYW5kIDxyZGFy
Oi8vcHJvYmxlbS8xMTE4NzMxNT4gYXJlIGZpeGVkLgogICAgICAgICBpZiAoW3NjaGVtZSBpc0Vx
dWFsVG9TdHJpbmc6QCJodHRwIl0gfHwgW3NjaGVtZSBpc0VxdWFsVG9TdHJpbmc6QCJodHRwcyJd
KQogICAgICAgICAgICAgcmV0dXJuIFtVUkxCeUNhbm9uaWNhbGl6aW5nVVJMKFVSTEZyb21QYXN0
ZWJvYXJkKSBhYnNvbHV0ZVN0cmluZ107CiAgICAgfQogICAgIAotICAgIGlmICh0eXBlcy5jb250
YWlucyhTdHJpbmcoTlNTdHJpbmdQYm9hcmRUeXBlKSkpIHsKLSAgICAgICAgTlNVUkwgKlVSTEZy
b21QYXN0ZWJvYXJkID0gW05TVVJMIFVSTFdpdGhTdHJpbmc6cGxhdGZvcm1TdHJhdGVnaWVzKCkt
PnBhc3RlYm9hcmRTdHJhdGVneSgpLT5zdHJpbmdGb3JUeXBlKFN0cmluZyhOU1N0cmluZ1Bib2Fy
ZFR5cGUpLCBtX3Bhc3RlYm9hcmROYW1lKV07CisgICAgaWYgKHR5cGVzLmNvbnRhaW5zKHN0cmlu
Z1Bhc3RlYm9hcmRUeXBlKCkpKSB7CisgICAgICAgIE5TVVJMICpVUkxGcm9tUGFzdGVib2FyZCA9
IFtOU1VSTCBVUkxXaXRoU3RyaW5nOnBsYXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJkU3Ry
YXRlZ3koKS0+c3RyaW5nRm9yVHlwZShzdHJpbmdQYXN0ZWJvYXJkVHlwZSgpLCBtX3Bhc3RlYm9h
cmROYW1lKV07CiAgICAgICAgIE5TU3RyaW5nICpzY2hlbWUgPSBbVVJMRnJvbVBhc3RlYm9hcmQg
c2NoZW1lXTsKICAgICAgICAgLy8gUGFzdGVib2FyZCBjb250ZW50IGlzIG5vdCB0cnVzdGVkLCBi
ZWNhdXNlIEphdmFTY3JpcHQgY29kZSBjYW4gbW9kaWZ5IGl0LiBXZSBjYW4gc2FuaXRpemUgaXQg
Zm9yIFVSTHMgYW5kIG90aGVyIHR5cGVkIGNvbnRlbnQsIGJ1dCBub3QgZm9yIHN0cmluZ3MuCiAg
ICAgICAgIC8vIFRoZSByZXN1bHQgb2YgdGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIGluaXRpYXRl
IG5hdmlnYXRpb24sIHNvIHdlIHNob3VsZG4ndCBhbGxvdyBhcmJpdHJhcnkgZmlsZSBVUkxzLgpA
QCAtMTg2LDYgKzI1Niw3IEBAIFN0cmluZyBEcmFnRGF0YTo6YXNVUkwoRmlsZW5hbWVDb252ZXJz
aW9uUG9saWN5LCBTdHJpbmcqIHRpdGxlKSBjb25zdAogICAgICAgICAgICAgcmV0dXJuIFtVUkxC
eUNhbm9uaWNhbGl6aW5nVVJMKFVSTEZyb21QYXN0ZWJvYXJkKSBhYnNvbHV0ZVN0cmluZ107CiAg
ICAgfQogICAgIAorI2lmIFBMQVRGT1JNKE1BQykKICAgICBpZiAodHlwZXMuY29udGFpbnMoU3Ry
aW5nKE5TRmlsZW5hbWVzUGJvYXJkVHlwZSkpKSB7CiAgICAgICAgIFZlY3RvcjxTdHJpbmc+IGZp
bGVzOwogICAgICAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCkt
PmdldFBhdGhuYW1lc0ZvclR5cGUoZmlsZXMsIFN0cmluZyhOU0ZpbGVuYW1lc1Bib2FyZFR5cGUp
LCBtX3Bhc3RlYm9hcmROYW1lKTsKQEAgLTE5OSw2ICsyNzAsNyBAQCBTdHJpbmcgRHJhZ0RhdGE6
OmFzVVJMKEZpbGVuYW1lQ29udmVyc2lvblBvbGljeSwgU3RyaW5nKiB0aXRsZSkgY29uc3QKIAog
ICAgIGlmICh0eXBlcy5jb250YWlucyhTdHJpbmcoTlNGaWxlc1Byb21pc2VQYm9hcmRUeXBlKSkg
JiYgZmlsZU5hbWVzKCkuc2l6ZSgpID09IDEpCiAgICAgICAgIHJldHVybiBbVVJMQnlDYW5vbmlj
YWxpemluZ1VSTChbTlNVUkwgZmlsZVVSTFdpdGhQYXRoOmZpbGVOYW1lcygpWzBdXSkgYWJzb2x1
dGVTdHJpbmddOworI2VuZGlmCiAKICAgICByZXR1cm4gU3RyaW5nKCk7ICAgICAgICAKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EcmFnSW1hZ2VNYWMubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tCmluZGV4IGQyZjhmNzA4
MDNjY2RmOWM1MmJkYjZhMTdiZDgwMTg1NTFkYzNjMzguLjBlOWRjYTFiYTZjOWE2OGE4YTkwYmY1
NTFhNGI0ZmJjNzQ4ZTVhY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9EcmFnSW1hZ2VNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdJ
bWFnZU1hYy5tbQpAQCAtMjYsNyArMjYsNyBAQAogI2ltcG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0
ICJEcmFnSW1hZ2UuaCIKIAotI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCisjaWYgRU5BQkxFKERS
QUdfU1VQUE9SVCkgJiYgUExBVEZPUk0oTUFDKQogCiAjaW1wb3J0ICJCaXRtYXBJbWFnZS5oIgog
I2ltcG9ydCAiQ29yZUdyYXBoaWNzU1BJLmgiCkBAIC0zNDgsNCArMzQ4LDQgQEAgRHJhZ0ltYWdl
UmVmIGNyZWF0ZURyYWdJbWFnZUZvckxpbmsoVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdGl0bGUs
IEZvbnRSZW5kZXJpbmcKICAgIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5kaWYgLy8g
RU5BQkxFKERSQUdfU1VQUE9SVCkKKyNlbmRpZiAvLyBFTkFCTEUoRFJBR19TVVBQT1JUKSAmJiBQ
TEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYk5TUGFz
dGVib2FyZEV4dHJhcy5oIGIvU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJOU1Bhc3RlYm9hcmRF
eHRyYXMuaAppbmRleCA5MTVjZDEwYTQ1YWFkYmMxOGM5MTNjOGJiYjYxYjk5ZDk2ZWFjYjdlLi5h
OTNiZDliNDc0YmMwZGRhMjMwNDUwOWJkZTQ3MTJjOTIxMmY5Y2FlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9NaXNjL1dlYk5TUGFzdGVib2FyZEV4dHJhcy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvbWFjL01pc2MvV2ViTlNQYXN0ZWJvYXJkRXh0cmFzLmgKQEAgLTI4LDYgKzI4LDggQEAK
IAogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CiAKKyNpZiBQTEFURk9STShNQUMp
CisKIEBjbGFzcyBET01FbGVtZW50OwogQGNsYXNzIFdlYkFyY2hpdmU7CiBAY2xhc3MgV2ViSFRN
TFZpZXc7CkBAIC04NywzICs4OSw1IEBAIGV4dGVybiBOU1N0cmluZyAqV2ViVVJMTmFtZVBib2Fy
ZFR5cGU7CiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KICNlbmRpZgorCisjZW5kaWYgLy8gUExBVEZP
Uk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
RHJhZ0NsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdD
bGllbnQubW0KaW5kZXggZmY5MGQ1OTdlZWVkZGVmNzhjZGVkNjVhMjhmMjliMDU2NjdkYTJkZS4u
ZTIzM2RkMTIwNjM0NGY5NTdkZjQzODRmYTVlYzRhNDRhYjE4MjFkMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50Lm1tCkBAIC0yNSw3ICsy
NSw3IEBACiAKICNpbXBvcnQgIldlYkRyYWdDbGllbnQuaCIKIAotI2lmIEVOQUJMRShEUkFHX1NV
UFBPUlQpCisjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkgJiYgUExBVEZPUk0oTUFDKQogCiAjaW1w
b3J0ICJET01FbGVtZW50SW50ZXJuYWwuaCIKICNpbXBvcnQgIldlYkFyY2hpdmUuaCIKQEAgLTE0
Myw0ICsxNDMsNCBAQCB2b2lkIFdlYkRyYWdDbGllbnQ6OmRyYWdDb250cm9sbGVyRGVzdHJveWVk
KCkKICAgICBkZWxldGUgdGhpczsKIH0KIAotI2VuZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBPUlQp
CisjZW5kaWYgLy8gRU5BQkxFKERSQUdfU1VQUE9SVCkgJiYgUExBVEZPUk0oTUFDKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbSBiL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KaW5kZXggYmQ4YTRkNTA2YjM5OTJiYWU5MjhkNjg3
NmU2YTA0NDYxOTczMDliNy4uZmVjNGM2MGVkMjYzNjBlMjBhOWE2ZDI2YzRjZTA2ZDg3ZDBlMTg2
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCkBAIC05MzMsNyArOTMzLDcg
QEAgc3RhdGljIGlubGluZSBXZWJEYXRhU291cmNlICpkYXRhU291cmNlKERvY3VtZW50TG9hZGVy
KiBsb2FkZXIpCiAgICAgX3ByaXZhdGUtPmNvcmVGcmFtZS0+ZWRpdG9yKCkuY29tcHV0ZUFuZFNl
dFR5cGluZ1N0eWxlKHByb3BlcnRpZXMuZ2V0KCksIHVuZG9BY3Rpb24pOwogfQogCi0jaWYgRU5B
QkxFKERSQUdfU1VQUE9SVCkKKyNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKSAmJiBQTEFURk9STShN
QUMpCiAtICh2b2lkKV9kcmFnU291cmNlRW5kZWRBdDooTlNQb2ludCl3aW5kb3dMb2Mgb3BlcmF0
aW9uOihOU0RyYWdPcGVyYXRpb24pb3BlcmF0aW9uCiB7CiAgICAgaWYgKCFfcHJpdmF0ZS0+Y29y
ZUZyYW1lKQpAQCAtOTQ2LDcgKzk0Niw3IEBAIHN0YXRpYyBpbmxpbmUgV2ViRGF0YVNvdXJjZSAq
ZGF0YVNvdXJjZShEb2N1bWVudExvYWRlciogbG9hZGVyKQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkLCAwLCBmYWxzZSwg
ZmFsc2UsIGZhbHNlLCBmYWxzZSwgY3VycmVudFRpbWUoKSwgV2ViQ29yZTo6Rm9yY2VBdENsaWNr
LCBXZWJDb3JlOjpOb1RhcCk7CiAgICAgX3ByaXZhdGUtPmNvcmVGcmFtZS0+ZXZlbnRIYW5kbGVy
KCkuZHJhZ1NvdXJjZUVuZGVkQXQoZXZlbnQsIChEcmFnT3BlcmF0aW9uKW9wZXJhdGlvbik7CiB9
Ci0jZW5kaWYKKyNlbmRpZiAvLyBFTkFCTEUoRFJBR19TVVBQT1JUKSAmJiBQTEFURk9STShNQUMp
CiAKIC0gKEJPT0wpX2NhblByb3ZpZGVEb2N1bWVudFNvdXJjZQogewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZUludGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYkZyYW1lSW50ZXJuYWwuaAppbmRleCA1NTNjMjMwOGJhZThlNDRhNzYy
ZDNmODcwYzliMTc5NDdhODlmZTc0Li41YzcyZDI4N2ZhNTc3MDg5Y2Q0NDBmMDY3YzFjZGEzYWMx
Y2Y2MTlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lSW50
ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lSW50ZXJuYWwu
aApAQCAtMTc5LDcgKzE3OSw3IEBAIFdlYlZpZXcgKmdldFdlYlZpZXcoV2ViRnJhbWUgKndlYkZy
YW1lKTsKIC0gKERPTUNTU1N0eWxlRGVjbGFyYXRpb24gKilfdHlwaW5nU3R5bGU7CiAtICh2b2lk
KV9zZXRUeXBpbmdTdHlsZTooRE9NQ1NTU3R5bGVEZWNsYXJhdGlvbiAqKXN0eWxlIHdpdGhVbmRv
QWN0aW9uOihXZWJDb3JlOjpFZGl0QWN0aW9uKXVuZG9BY3Rpb247CiAKLSNpZiBFTkFCTEUoRFJB
R19TVVBQT1JUKQorI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpICYmIFBMQVRGT1JNKE1BQykKIC0g
KHZvaWQpX2RyYWdTb3VyY2VFbmRlZEF0OihOU1BvaW50KXdpbmRvd0xvYyBvcGVyYXRpb246KE5T
RHJhZ09wZXJhdGlvbilvcGVyYXRpb247CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViSFRNTFZpZXcubW0KaW5kZXggMDIwOWQ4MTNlOGZjYjk3NTc0OGU5Yzg5NWZkZTc4Mjcw
MGIxNDg0YS4uNjRlNjNlMjkwMDZkNTZlYjM3Mzc4NWI4NmQwN2JjOTY1Nzc2NzA0ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCkBAIC00NTQ0LDcgKzQ1NDQsNyBA
QCBzdGF0aWMgQk9PTCBjdXJyZW50U2Nyb2xsSXNCbGl0KE5TVmlldyAqY2xpcFZpZXcpCiB9CiAj
ZW5kaWYKIAotI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCisjaWYgRU5BQkxFKERSQUdfU1VQUE9S
VCkgJiYgUExBVEZPUk0oTUFDKQogLSAodm9pZClkcmFnSW1hZ2U6KE5TSW1hZ2UgKilkcmFnSW1h
Z2UKICAgICAgICAgICAgICAgIGF0OihOU1BvaW50KWF0CiAgICAgICAgICAgIG9mZnNldDooTlNT
aXplKW9mZnNldApAQCAtNDY4OCw3ICs0Njg4LDcgQEAgc3RhdGljIGJvb2wgbWF0Y2hlc0V4dGVu
c2lvbk9yRXF1aXZhbGVudChOU1N0cmluZyAqZmlsZW5hbWUsIE5TU3RyaW5nICpleHRlbnNpb24K
ICAgICAKICAgICByZXR1cm4gW05TQXJyYXkgYXJyYXlXaXRoT2JqZWN0OltwYXRoIGxhc3RQYXRo
Q29tcG9uZW50XV07CiB9Ci0jZW5kaWYKKyNlbmRpZiAvLyBFTkFCTEUoRFJBR19TVVBQT1JUKSAm
JiBQTEFURk9STShNQUMpCiAKICNpZiAhUExBVEZPUk0oSU9TKQogLSAodm9pZCltb3VzZVVwOihO
U0V2ZW50ICopZXZlbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
Vmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCA1N2Jh
YTU0ZTM0MmViY2MyMTdiNTBjODEzNDBlOWU0NmI3MWM2NWRmLi45ZTEzZjZhYjM2ZGU4N2Q4MWJk
MTg0YTIxNzI1MTQxODQyNTVlODM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1t
CkBAIC0xNjA4LDcgKzE2MDgsNyBAQCBzdGF0aWMgdm9pZCBXZWJLaXRJbml0aWFsaXplR2FtZXBh
ZFByb3ZpZGVySWZOZWNlc3NhcnkoKQogICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkNvcmU6Okxp
YldlYlJUQ1Byb3ZpZGVyPigpCiAgICAgKTsKICAgICBwYWdlQ29uZmlndXJhdGlvbi5jaHJvbWVD
bGllbnQgPSBuZXcgV2ViQ2hyb21lQ2xpZW50SU9TKHNlbGYpOwotI2lmIEVOQUJMRShEUkFHX1NV
UFBPUlQpCisjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkgJiYgUExBVEZPUk0oTUFDKQogICAgIHBh
Z2VDb25maWd1cmF0aW9uLmRyYWdDbGllbnQgPSBuZXcgV2ViRHJhZ0NsaWVudChzZWxmKTsKICNl
bmRpZgogCkBAIC02NDc1LDcgKzY0NzUsNyBAQCBzdGF0aWMgTlNTdHJpbmcgKiBjb25zdCBiYWNr
aW5nUHJvcGVydHlPbGRTY2FsZUZhY3RvcktleSA9IEAiTlNCYWNraW5nUHJvcGVydHlPbAogICAg
IHJldHVybiBbc2VsZiBfZWxlbWVudEF0V2luZG93UG9pbnQ6W3NlbGYgY29udmVydFBvaW50OnBv
aW50IHRvVmlldzpuaWxdXTsKIH0KIAotI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCisjaWYgRU5B
QkxFKERSQUdfU1VQUE9SVCkgJiYgUExBVEZPUk0oTUFDKQogLy8gVGhlIGZvbGxvd2luZyAyIGlu
dGVybmFsIE5TVmlldyBtZXRob2RzIGFyZSBjYWxsZWQgb24gdGhlIGRyYWcgZGVzdGluYXRpb24g
dG8gbWFrZSBzY3JvbGxpbmcgd2hpbGUgZHJhZ2dpbmcgd29yay4KIC8vIFNjcm9sbGluZyB3aGls
ZSBkcmFnZ2luZyB3aWxsIG9ubHkgd29yayBpZiB0aGUgZHJhZyBkZXN0aW5hdGlvbiBpcyBpbiBh
IHNjcm9sbCB2aWV3LiBUaGUgV2ViVmlldyBpcyB0aGUgZHJhZyBkZXN0aW5hdGlvbi4gCiAvLyBX
aGVuIGRyYWdnaW5nIHRvIGEgV2ViVmlldywgdGhlIGRvY3VtZW50IHN1YnZpZXcgc2hvdWxkIHNj
cm9sbCwgYnV0IGl0IGRvZXNuJ3QgYmVjYXVzZSBpdCBpcyBub3QgdGhlIGRyYWcgZGVzdGluYXRp
b24uIApAQCAtNjU5Niw3ICs2NTk2LDcgQEAgc3RhdGljIE5TU3RyaW5nICogY29uc3QgYmFja2lu
Z1Byb3BlcnR5T2xkU2NhbGVGYWN0b3JLZXkgPSBAIk5TQmFja2luZ1Byb3BlcnR5T2wKICAgICAg
ICAgcmV0dXJuIHNlbGY7CiAgICAgcmV0dXJuIGhpdFZpZXc7CiB9Ci0jZW5kaWYKKyNlbmRpZiAv
LyBFTkFCTEUoRFJBR19TVVBQT1JUKSAmJiBQTEFURk9STShNQUMpCiAKIC0gKEJPT0wpYWNjZXB0
c0ZpcnN0UmVzcG9uZGVyCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJn
dW1lbnRDb2RlcnMuY3BwCmluZGV4IGM2YTg1NzE5N2Q1ZTFhMmVhYzA2NzA5MDY4NTViMzA4ODhi
Yzc0OTMuLmJmMDZjMGMyMzQ0ZTA2NDA5ODc0YjAwMjMwNWY5ZmM0YmUzMjQ3YWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCkBAIC0xMjIz
LDggKzEyMjMsMTAgQEAgdm9pZCBBcmd1bWVudENvZGVyPERyYWdEYXRhPjo6ZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIsIGNvbnN0IERyYWdEYXRhJiBkcmFnRGF0YSkKICAgICBlbmNvZGVyIDw8IGRy
YWdEYXRhLmdsb2JhbFBvc2l0aW9uKCk7CiAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKGRyYWdEYXRh
LmRyYWdnaW5nU291cmNlT3BlcmF0aW9uTWFzaygpKTsKICAgICBlbmNvZGVyLmVuY29kZUVudW0o
ZHJhZ0RhdGEuZmxhZ3MoKSk7Ci0jaWYgUExBVEZPUk0oTUFDKQorI2lmIFBMQVRGT1JNKENPQ09B
KQogICAgIGVuY29kZXIgPDwgZHJhZ0RhdGEucGFzdGVib2FyZE5hbWUoKTsKKyNlbmRpZgorI2lm
IFBMQVRGT1JNKE1BQykKICAgICBlbmNvZGVyIDw8IGRyYWdEYXRhLmZpbGVOYW1lcygpOwogI2Vu
ZGlmCiB9CkBAIC0xMjQ4LDEzICsxMjUwLDE1IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxEcmFnRGF0
YT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBEcmFnRGF0YSYgZHJhZ0RhdGEpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAogICAgIFN0cmluZyBwYXN0ZWJvYXJkTmFtZTsKLSNpZiBQTEFURk9S
TShNQUMpCisjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXN0
ZWJvYXJkTmFtZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgogICAgIFZlY3RvcjxT
dHJpbmc+IGZpbGVOYW1lczsKKyNpZiBQTEFURk9STShNQUMpCiAgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShmaWxlTmFtZXMpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKIAogICAgIGRy
YWdEYXRhID0gRHJhZ0RhdGEocGFzdGVib2FyZE5hbWUsIGNsaWVudFBvc2l0aW9uLCBnbG9iYWxQ
b3NpdGlvbiwgZHJhZ2dpbmdTb3VyY2VPcGVyYXRpb25NYXNrLCBhcHBsaWNhdGlvbkZsYWdzKTsK
ICAgICBkcmFnRGF0YS5zZXRGaWxlTmFtZXMoZmlsZU5hbWVzKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbSBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQppbmRleCBiYTdmN2Y3
OWZmYWJhMjYzOWRlODIxMzRiYWVlN2M1NWIxMzY3YWZjLi5mNWE3MWE3ZGY0M2VlYzA4YzYzMWNk
NGE3YTU0ODMyZGNlNjE3YWViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Q29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tCkBAIC0zNCw2ICszNCwxMCBAQAogI2ltcG9ydCA8
V2ViQ29yZS9WYWxpZGF0aW9uQnViYmxlLmg+CiAjaW1wb3J0IDx3dGYvY2YvVHlwZUNhc3RzQ0Yu
aD4KIAorI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisjaW1wb3J0IDxXZWJLaXRBZGRpdGlv
bnMvV2ViUGFnZVByb3h5QWRkaXRpb25zLm1tPgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJLaXQg
ewogCiAjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0NsaWVudE1hYy5tbSBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkRyYWdDbGllbnRN
YWMubW0KaW5kZXggODhhZDVkY2M0MTYwZGMxMWI1ZWJmZTIwYzJkMGZlZjgzYmQ4NGI3OC4uYmRl
YTlhOGUyMGZkYTAzOWE3NTI0ZThjMWE5MzIxOTRlZTk1ZTZmMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0NsaWVudE1hYy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJE
cmFnQ2xpZW50TWFjLm1tCkBAIC01MSw2ICs1MSwxMiBAQAogdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NE
SykKKyNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9XZWJEcmFnQ2xpZW50QWRkaXRpb25zLm1tPgor
I2VuZGlmCisKKyNpZiBQTEFURk9STShNQUMpCisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBzdGF0
aWMgUGFzc1JlZlB0cjxTaGFyZWFibGVCaXRtYXA+IGNvbnZlcnRJbWFnZVRvQml0bWFwKE5TSW1h
Z2UgKmltYWdlLCBjb25zdCBJbnRTaXplJiBzaXplLCBGcmFtZSYgZnJhbWUpCkBAIC0xNjAsNCAr
MTY2LDYgQEAgdm9pZCBXZWJEcmFnQ2xpZW50OjpkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UoY29u
c3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwgRWxlbWUKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CiAKKyNlbmRpZiAvLyBQTEFURk9STShNQUMpCisKICNlbmRpZiAvLyBFTkFCTEUoRFJBR19TVVBQ
T1JUKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>299765</attachid>
            <date>2017-01-25 16:36:21 -0800</date>
            <delta_ts>2017-01-25 16:57:41 -0800</delta_ts>
            <desc>Another attempt to address build failures</desc>
            <filename>bug-167427-20170125163419.patch</filename>
            <type>text/plain</type>
            <size>25575</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExMTY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWVmOWM4ZTA5ZTU5ZjBk
NTYyODQyZDZlYjUyNmM1ZjQzYWE1ZWQyYi4uNjk1YjY5N2ZlY2RhMjUxNmNkNTJlNDg1ZGNlOGZl
MDI0OWVjZjg0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ0IEBACiAyMDE3LTAxLTI1ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCisgICAgICAgIFJlZmFjdG9yIGRy
YWcgYW5kIGRyb3AgaW1wbGVtZW50YXRpb24gb24gTWFjCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjc0MjcKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWZhY3RvcnMgc29tZSBjb2RlIGFyb3VuZCBkcmFn
IGFuZCBkcm9wIG9uIE1hYywgYW5kIGNsZWFucyB1cCBzb21lIG90aGVyIHJlbGF0ZWQgY29kZSBh
cyBuZWVkZWQuIFRoaXMgcGF0Y2gKKyAgICAgICAgc2hvdWxkIHJlc3VsdCBpbiBubyBiZWhhdmlv
ciBjaGFuZ2UuCisKKyAgICAgICAgKiBkb20vRGF0YVRyYW5zZmVyLmNwcDoKKyAgICAgICAgKiBw
YWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgICogcGFnZS9pb3MvRXZlbnRIYW5kbGVySU9T
Lm1tOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpldmVudExvb3BIYW5kbGVNb3Vz
ZURyYWdnZWQpOgorICAgICAgICAqIHBhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9EcmFnSW1hZ2UuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL1Bhc3RlYm9h
cmQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvRHJhZ0ltYWdlSU9TLm1tOgorICAgICAgICAq
IHBsYXRmb3JtL2lvcy9QYXN0ZWJvYXJkSU9TLm1tOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9E
cmFnRGF0YU1hYy5tbToKKyAgICAgICAgKHJ0ZlBhc3RlYm9hcmRUeXBlKToKKyAgICAgICAgKHJ0
ZmRQYXN0ZWJvYXJkVHlwZSk6CisgICAgICAgIChzdHJpbmdQYXN0ZWJvYXJkVHlwZSk6CisgICAg
ICAgICh1cmxQYXN0ZWJvYXJkVHlwZSk6CisgICAgICAgIChodG1sUGFzdGVib2FyZFR5cGUpOgor
ICAgICAgICAoY29sb3JQYXN0ZWJvYXJkVHlwZSk6CisgICAgICAgIChwZGZQYXN0ZWJvYXJkVHlw
ZSk6CisgICAgICAgICh0aWZmUGFzdGVib2FyZFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6RHJh
Z0RhdGE6OkRyYWdEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdEYXRhOjpjb250YWluc0Nv
bG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdEYXRhOjpjb250YWluc0ZpbGVzKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRyYWdEYXRhOjpudW1iZXJPZkZpbGVzKToKKyAgICAgICAgKFdlYkNvcmU6
OkRyYWdEYXRhOjphc0ZpbGVuYW1lcyk6CisgICAgICAgIChXZWJDb3JlOjpEcmFnRGF0YTo6Y29u
dGFpbnNQbGFpblRleHQpOgorICAgICAgICAoV2ViQ29yZTo6RHJhZ0RhdGE6OmNvbnRhaW5zQ29t
cGF0aWJsZUNvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RHJhZ0RhdGE6OmNvbnRhaW5zUHJv
bWlzZSk6CisgICAgICAgIChXZWJDb3JlOjpEcmFnRGF0YTo6YXNVUkwpOgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9EcmFnSW1hZ2VNYWMubW06CisKKzIwMTctMDEtMjUgIFdlbnNvbiBIc2llaCAg
PHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKICAgICAgICAgSW50cm9kdWNlIGFuIGl0ZW0tcHJv
dmlkZXItYmFzZWQgcGFzdGVib2FyZCB3cmFwcGVyCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjc0MTAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDgwYzcy
OTQxY2ZhMzQ2ZTEzNzFkYzU5NjlmNjE5OWMyMTkxYWUyNGYuLjY1OGZlZGVhNjhhYmEzZWRlNGQ5
YTQ1YWE0YWJlMjQ5MzI1NTUxMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAor
MjAxNy0wMS0yNSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAg
ICAgICBSZWZhY3RvciBkcmFnIGFuZCBkcm9wIGltcGxlbWVudGF0aW9uIG9uIE1hYworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY3NDI3CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVmYWN0b3Igc29tZSBX
ZWJLaXQxIGNvZGUgb24gdGhlIE1hYyBwZXJ0YWluaW5nIHRvIGRyYWcgYW5kIGRyb3AuIFNlZSBX
ZWJDb3JlIENoYW5nZUxvZyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAgICogTWlzYy9XZWJO
U1Bhc3RlYm9hcmRFeHRyYXMuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xp
ZW50Lm1tOgorICAgICAgICAqIFdlYlZpZXcvV2ViRnJhbWUubW06CisgICAgICAgICogV2ViVmll
dy9XZWJGcmFtZUludGVybmFsLmg6CisgICAgICAgICogV2ViVmlldy9XZWJIVE1MVmlldy5tbToK
KyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgaW5pdFNp
bXBsZUhUTUxEb2N1bWVudFdpdGhTdHlsZTpmcmFtZTpwcmVmZXJlbmNlczpncm91cE5hbWU6XSk6
CisKIDIwMTctMDEtMjQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5mQGdtYWlsLmNvbT4KIAogICAg
ICAgICBbV2ViUlRDXSBJbnRyb2R1Y2UgbGlid2VicnRjIGFic3RyYWN0aW9uIGZvciBXSzEvV0sy
IGltcGxlbWVudGF0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDM4MmRkNjgxNzAzMDYzMTZiNDEwZjFmNWM0
YWNiZTYxYTA3YWFiZTcuLjIyOWU1MjI3YTdkM2NiMGMyYmFiOTYxMDQyMWYwMTVhN2M3NDVjNTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxNy0wMS0yNSAgV2Vuc29uIEhzaWVoICA8
d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBSZWZhY3RvciBkcmFnIGFuZCBkcm9w
IGltcGxlbWVudGF0aW9uIG9uIE1hYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTY3NDI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgU2VlIFdlYkNvcmUgQ2hhbmdlTG9nIGZvciBtb3JlIGRldGFpbHMuCisK
KyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKElQ
Qzo6QXJndW1lbnRDb2RlcjxEcmFnRGF0YT46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3Vt
ZW50Q29kZXI8RHJhZ0RhdGE+OjpkZWNvZGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9X
ZWJQYWdlUHJveHlDb2NvYS5tbToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L21hYy9XZWJEcmFnQ2xpZW50TWFjLm1tOgorCiAyMDE3LTAxLTI1ICBBbmR5IEVzdGVzICA8YWVz
dGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBbUXVpY2tMb29rXSBEaXNwbGF5IGEgV0tQYXNzd29y
ZFZpZXcgd2hlbiBhIGRvY3VtZW50IGlzIHBhc3N3b3JkLXByb3RlY3RlZApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RGF0YVRyYW5zZmVyLmNwcAppbmRleCA1NjFlYjQyMDQwOWU3ZTFiNjJjMmM2YTVjZmM3ZTA2MmI0
Y2ZjYmQ2Li45ZWNiMzUxZDNjYTQ3NzNhYWJlY2M4N2E1NDRmYjY4NzA2MzY3OWEwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRGF0YVRyYW5zZmVyLmNwcApAQCAtMjkwLDcgKzI5MCw3IEBAIHZvaWQgRGF0YVRy
YW5zZmVyOjp1cGRhdGVEcmFnSW1hZ2UoKQogICAgIG1fcGFzdGVib2FyZC0+c2V0RHJhZ0ltYWdl
KGNvbXB1dGVkSW1hZ2UsIGNvbXB1dGVkSG90U3BvdCk7CiB9CiAKLSNpZiAhUExBVEZPUk0oQ09D
T0EpCisjaWYgIVBMQVRGT1JNKE1BQykKIAogRHJhZ0ltYWdlUmVmIERhdGFUcmFuc2Zlcjo6Y3Jl
YXRlRHJhZ0ltYWdlKEludFBvaW50JiBsb2NhdGlvbikgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RXZlbnRIYW5kbGVyLmNwcAppbmRleCA1YTVhMzVlNjhhN2M4OTg4YjZlMTMwNGU0ODlhMjEyYWJk
OWM3M2M0Li42ZDU3NzdjNjkxMzZiODg1NzIxODkyZDI4MWQ2MWVjNWE5MTc3Y2ZlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0xMzEsNiArMTMxLDkgQEAgY29uc3QgaW50
IExpbmtEcmFnSHlzdGVyZXNpcyA9IDQwOwogY29uc3QgaW50IEltYWdlRHJhZ0h5c3RlcmVzaXMg
PSA1OwogY29uc3QgaW50IFRleHREcmFnSHlzdGVyZXNpcyA9IDM7CiBjb25zdCBpbnQgR2VuZXJh
bERyYWdIeXN0ZXJlc2lzID0gMzsKKyNpZiBQTEFURk9STShDT0NPQSkKK2NvbnN0IGRvdWJsZSBF
dmVudEhhbmRsZXI6OlRleHREcmFnRGVsYXkgPSAwLjE1OworI2VuZGlmCiAjZW5kaWYgLy8gRU5B
QkxFKERSQUdfU1VQUE9SVCkKIAogI2lmIEVOQUJMRShJT1NfR0VTVFVSRV9FVkVOVFMpIHx8IEVO
QUJMRShNQUNfR0VTVFVSRV9FVkVOVFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L2lvcy9FdmVudEhhbmRsZXJJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9FdmVudEhh
bmRsZXJJT1MubW0KaW5kZXggMjliYWRlZjU5NTU4NGEzZmNlNTNjYTJmODI0MWU0ZjZlZmQ3NTRk
NS4uYjA5ZjllOTBmZTA0YTlkZTg5MTg5M2U2MTAzNGFmNWViZTNjMzIxMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9pb3MvRXZlbnRIYW5kbGVySU9TLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvaW9zL0V2ZW50SGFuZGxlcklPUy5tbQpAQCAtNDksNiArNDksMTAgQEAKICNp
bXBvcnQgPFdlYktpdEFkZGl0aW9ucy9FdmVudEhhbmRsZXJJT1NUb3VjaC5jcHA+CiAjZW5kaWYK
IAorI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisjaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMv
RXZlbnRIYW5kbGVyQWRkaXRpb25zLm1tPgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogc3RhdGljIFJldGFpblB0cjxXZWJFdmVudD4mIGN1cnJlbnRFdmVudFNsb3QoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tCmluZGV4IGFkN2E1OWUzMWUwOTVi
MGJjNTIwNTA3MmZkZjE4MzlmMGY0ZjY4M2UuLjZjNDQ0YWEzNDZmN2YyYzIzZDZhMWFiZTY5ODdi
Y2I1OWM0NjY4Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFu
ZGxlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRsZXJNYWMu
bW0KQEAgLTc0LDEwICs3NCw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotI2lmIEVOQUJM
RShEUkFHX1NVUFBPUlQpCi1jb25zdCBkb3VibGUgRXZlbnRIYW5kbGVyOjpUZXh0RHJhZ0RlbGF5
ID0gMC4xNTsKLSNlbmRpZgotCiBjb25zdCBkb3VibGUgcmVzZXRMYXRjaGVkU3RhdGVUaW1lb3V0
ID0gMC4xOwogCiBzdGF0aWMgUmV0YWluUHRyPE5TRXZlbnQ+JiBjdXJyZW50TlNFdmVudFNsb3Qo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0ltYWdlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdJbWFnZS5jcHAKaW5kZXggYWE1NjZhZjMzODRmYWUw
YzEzMDMyY2QzY2IxYzA1M2UyZDM3YzJlNC4uZDhiNWRlYTdjNmJkZDk1Y2EzMTI3ODY2ZDI1YzQ1
ZDkwOTRhYjRkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0ltYWdl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnSW1hZ2UuY3BwCkBAIC0xMjAs
MTIgKzEyMCwxNiBAQCBEcmFnSW1hZ2VSZWYgY3JlYXRlRHJhZ0ltYWdlRm9yTm9kZShGcmFtZSYg
ZnJhbWUsIE5vZGUmIG5vZGUpCiAgICAgcmV0dXJuIGNyZWF0ZURyYWdJbWFnZUZyb21TbmFwc2hv
dChzbmFwc2hvdE5vZGUoZnJhbWUsIG5vZGUpLCAmbm9kZSk7CiB9CiAKKyNpZiAhRU5BQkxFKERB
VEFfSU5URVJBQ1RJT04pCisKIERyYWdJbWFnZVJlZiBjcmVhdGVEcmFnSW1hZ2VGb3JTZWxlY3Rp
b24oRnJhbWUmIGZyYW1lLCBib29sIGZvcmNlQmxhY2tUZXh0KQogewogICAgIFNuYXBzaG90T3B0
aW9ucyBvcHRpb25zID0gZm9yY2VCbGFja1RleHQgPyBTbmFwc2hvdE9wdGlvbnNGb3JjZUJsYWNr
VGV4dCA6IFNuYXBzaG90T3B0aW9uc05vbmU7CiAgICAgcmV0dXJuIGNyZWF0ZURyYWdJbWFnZUZy
b21TbmFwc2hvdChzbmFwc2hvdFNlbGVjdGlvbihmcmFtZSwgb3B0aW9ucyksIG51bGxwdHIpOwog
fQogCisjZW5kaWYKKwogc3RydWN0IFNjb3BlZEZyYW1lU2VsZWN0aW9uU3RhdGUgewogICAgIFNj
b3BlZEZyYW1lU2VsZWN0aW9uU3RhdGUoRnJhbWUmIGZyYW1lKQogICAgICAgICA6IGZyYW1lKGZy
YW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZC5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZC5oCmluZGV4IGJhYzFmOGYyZjQ3OTFj
NTg3YjQ2MDU2OTFjMjg2MmE1NDY5ZDUyZTguLjA2YzNkZTc1ZWJjYWVjNTYxYjkxOGRlZDUxMDg1
YzhlNGFlYjdiNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9h
cmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmgKQEAgLTEyOSw3
ICsxMjksNyBAQCBwdWJsaWM6CiAKIHN0cnVjdCBQYXN0ZWJvYXJkUGxhaW5UZXh0IHsKICAgICBT
dHJpbmcgdGV4dDsKLSNpZiBQTEFURk9STShNQUMpCisjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAg
Ym9vbCBpc1VSTDsKICNlbmRpZgogfTsKQEAgLTE3OSw4ICsxNzksOCBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIHdyaXRlUGFzdGVib2FyZChjb25zdCBQYXN0ZWJvYXJkJiBzb3VyY2VQYXN0
ZWJvYXJkKTsKIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi0gICAgc3RhdGljIHN0ZDo6dW5p
cXVlX3B0cjxQYXN0ZWJvYXJkPiBjcmVhdGVGb3JEcmFnQW5kRHJvcCgpOwotICAgIHN0YXRpYyBz
dGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gY3JlYXRlRm9yRHJhZ0FuZERyb3AoY29uc3QgRHJh
Z0RhdGEmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFBhc3Rl
Ym9hcmQ+IGNyZWF0ZUZvckRyYWdBbmREcm9wKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IHN0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBjcmVhdGVGb3JEcmFnQW5kRHJvcChjb25zdCBE
cmFnRGF0YSYpOwogCiAgICAgdmlydHVhbCB2b2lkIHNldERyYWdJbWFnZShEcmFnSW1hZ2VSZWYs
IGNvbnN0IEludFBvaW50JiBob3RTcG90KTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW9zL0RyYWdJbWFnZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2lvcy9EcmFnSW1hZ2VJT1MubW0KaW5kZXggMWNjY2ZiYWNkNmVkODdiYzMzMGNkNDA4MWUw
ZjhhMDUxOTllNjdkYS4uMWRiOWQzMzI2ZDk3NTUxNTdlY2NhZjllODJlZjVmNmFmZDc5MmU3NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0RyYWdJbWFnZUlPUy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvRHJhZ0ltYWdlSU9TLm1tCkBAIC0yOCw2
ICsyOCwxNSBAQAogCiAjaW1wb3J0IDxDb3JlR3JhcGhpY3MvQ29yZUdyYXBoaWNzLmg+CiAKKyNp
ZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XbnVsbGFiaWxpdHktY29tcGxl
dGVuZXNzIgorI2ltcG9ydCA8V2ViS2l0QWRkaXRpb25zL0RyYWdJbWFnZUFkZGl0aW9ucy5tbT4K
KyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKworI2Vsc2UKKwogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiAvLyBGSVhNRTogZml4IHNpZ25hdHVyZSBvZiBkcmFnSW1hZ2VTaXplKCkgdG8gYXZv
aWQgY29weWluZyB0aGUgYXJndW1lbnQuCkBAIC00OSwzICs1OCw1IEBAIFJldGFpblB0cjxDR0lt
YWdlUmVmPiBjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UoSW1hZ2UqLCBJbWFnZU9yaWVudGF0aW9u
RGVzY3JpcHRpCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFVTRShB
UFBMRV9JTlRFUk5BTF9TREspCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3MvUGFzdGVib2FyZElPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QYXN0ZWJv
YXJkSU9TLm1tCmluZGV4IDk2YzcyZDAxYzc1MzA0NTkwYzM3MGM2M2I4NjQ5NjFiYjZjZjMwMTgu
LmUyNjRkNDQwZTIzOTQ3YjkyZGRjZDViY2NhYjI2NTA3NTZiZWM2ZDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QYXN0ZWJvYXJkSU9TLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy9QYXN0ZWJvYXJkSU9TLm1tCkBAIC01OCw2ICs1OCwxMCBAQAog
LSAoQk9PTCljb250YWluc0F0dGFjaG1lbnRzOwogQGVuZAogCisjaWYgVVNFKEFQUExFX0lOVEVS
TkFMX1NESykKKyNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9QYXN0ZWJvYXJkQWRkaXRpb25zLm1t
PgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogLy8gRklYTUU6IERvZXMgdGhpcyBu
ZWVkIHRvIGJlIGRlY2xhcmVkIGluIHRoZSBoZWFkZXIgZmlsZT8KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EcmFnRGF0YU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9EcmFnRGF0YU1hYy5tbQppbmRleCA3NWQ1MGJjZWIzMGFjOTllZDljODZiMzFj
NjYzMDU5ZTA1MmRjOGYyLi5hYzNjNWIwNTI1OWI2NTEzZjc1NjI4ZmZjYTIxYWNkOWVlNWVjNDk3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0RhdGFNYWMubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdEYXRhTWFjLm1tCkBAIC0zMyw2
ICszMyw1NCBAQAogI2ltcG9ydCAiUGxhdGZvcm1TdHJhdGVnaWVzLmgiCiAjaW1wb3J0ICJXZWJD
b3JlTlNVUkxFeHRyYXMuaCIKIAorI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisKKyNpbXBv
cnQgPFdlYktpdEFkZGl0aW9ucy9EcmFnRGF0YUFkZGl0aW9ucy5tbT4KKworI2Vsc2UKKworc3Rh
dGljIGlubGluZSBTdHJpbmcgcnRmUGFzdGVib2FyZFR5cGUoKQoreworICAgIHJldHVybiBTdHJp
bmcoTlNSVEZQYm9hcmRUeXBlKTsKK30KKworc3RhdGljIGlubGluZSBTdHJpbmcgcnRmZFBhc3Rl
Ym9hcmRUeXBlKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nKE5TUlRGRFBib2FyZFR5cGUpOworfQor
CitzdGF0aWMgaW5saW5lIFN0cmluZyBzdHJpbmdQYXN0ZWJvYXJkVHlwZSgpCit7CisgICAgcmV0
dXJuIFN0cmluZyhOU1N0cmluZ1Bib2FyZFR5cGUpOworfQorCitzdGF0aWMgaW5saW5lIFN0cmlu
ZyB1cmxQYXN0ZWJvYXJkVHlwZSgpCit7CisgICAgcmV0dXJuIFN0cmluZyhOU1VSTFBib2FyZFR5
cGUpOworfQorCitzdGF0aWMgaW5saW5lIFN0cmluZyBodG1sUGFzdGVib2FyZFR5cGUoKQorewor
ICAgIHJldHVybiBTdHJpbmcoTlNIVE1MUGJvYXJkVHlwZSk7Cit9CisKK3N0YXRpYyBpbmxpbmUg
U3RyaW5nIGNvbG9yUGFzdGVib2FyZFR5cGUoKQoreworICAgIHJldHVybiBTdHJpbmcoTlNDb2xv
clBib2FyZFR5cGUpOworfQorCitzdGF0aWMgaW5saW5lIFN0cmluZyBwZGZQYXN0ZWJvYXJkVHlw
ZSgpCit7CisgICAgcmV0dXJuIFN0cmluZyhOU1BERlBib2FyZFR5cGUpOworfQorCitzdGF0aWMg
aW5saW5lIFN0cmluZyB0aWZmUGFzdGVib2FyZFR5cGUoKQoreworICAgIHJldHVybiBTdHJpbmco
TlNUSUZGUGJvYXJkVHlwZSk7Cit9CisKKyNlbmRpZiAvLyBVU0UoQVBQTEVfSU5URVJOQUxfU0RL
KQorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIERyYWdEYXRhOjpEcmFnRGF0YShEcmFnRGF0YVJl
ZiBkYXRhLCBjb25zdCBJbnRQb2ludCYgY2xpZW50UG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBn
bG9iYWxQb3NpdGlvbiwgCkBAIC00Miw3ICs5MCwxMSBAQCBEcmFnRGF0YTo6RHJhZ0RhdGEoRHJh
Z0RhdGFSZWYgZGF0YSwgY29uc3QgSW50UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBjb25zdCBJbnRQ
bwogICAgICwgbV9wbGF0Zm9ybURyYWdEYXRhKGRhdGEpCiAgICAgLCBtX2RyYWdnaW5nU291cmNl
T3BlcmF0aW9uTWFzayhzb3VyY2VPcGVyYXRpb25NYXNrKQogICAgICwgbV9hcHBsaWNhdGlvbkZs
YWdzKGZsYWdzKQorI2lmIFBMQVRGT1JNKE1BQykKICAgICAsIG1fcGFzdGVib2FyZE5hbWUoW1tt
X3BsYXRmb3JtRHJhZ0RhdGEgZHJhZ2dpbmdQYXN0ZWJvYXJkXSBuYW1lXSkKKyNlbHNlCisgICAg
LCBtX3Bhc3RlYm9hcmROYW1lKCJkYXRhIGludGVyYWN0aW9uIHBhc3RlYm9hcmQiKQorI2VuZGlm
CiB7CiB9CiAKQEAgLTY2LDMwICsxMTgsNDAgQEAgYm9vbCBEcmFnRGF0YTo6Y29udGFpbnNDb2xv
cigpIGNvbnN0CiB7CiAgICAgVmVjdG9yPFN0cmluZz4gdHlwZXM7CiAgICAgcGxhdGZvcm1TdHJh
dGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT5nZXRUeXBlcyh0eXBlcywgbV9wYXN0ZWJv
YXJkTmFtZSk7Ci0gICAgcmV0dXJuIHR5cGVzLmNvbnRhaW5zKFN0cmluZyhOU0NvbG9yUGJvYXJk
VHlwZSkpOworICAgIHJldHVybiB0eXBlcy5jb250YWlucyhjb2xvclBhc3RlYm9hcmRUeXBlKCkp
OwogfQogCiBib29sIERyYWdEYXRhOjpjb250YWluc0ZpbGVzKCkgY29uc3QKIHsKKyNpZiBQTEFU
Rk9STShNQUMpCiAgICAgVmVjdG9yPFN0cmluZz4gdHlwZXM7CiAgICAgcGxhdGZvcm1TdHJhdGVn
aWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT5nZXRUeXBlcyh0eXBlcywgbV9wYXN0ZWJvYXJk
TmFtZSk7CiAgICAgcmV0dXJuIHR5cGVzLmNvbnRhaW5zKFN0cmluZyhOU0ZpbGVuYW1lc1Bib2Fy
ZFR5cGUpKSB8fCB0eXBlcy5jb250YWlucyhTdHJpbmcoTlNGaWxlc1Byb21pc2VQYm9hcmRUeXBl
KSk7CisjZWxzZQorICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgogfQogCiB1bnNpZ25lZCBEcmFn
RGF0YTo6bnVtYmVyT2ZGaWxlcygpIGNvbnN0CiB7CiAgICAgVmVjdG9yPFN0cmluZz4gZmlsZXM7
CisjaWYgUExBVEZPUk0oTUFDKQogICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJk
U3RyYXRlZ3koKS0+Z2V0UGF0aG5hbWVzRm9yVHlwZShmaWxlcywgU3RyaW5nKE5TRmlsZW5hbWVz
UGJvYXJkVHlwZSksIG1fcGFzdGVib2FyZE5hbWUpOwogICAgIGlmICghZmlsZXMuc2l6ZSgpKQog
ICAgICAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPmdldFBh
dGhuYW1lc0ZvclR5cGUoZmlsZXMsIFN0cmluZyhOU0ZpbGVzUHJvbWlzZVBib2FyZFR5cGUpLCBt
X3Bhc3RlYm9hcmROYW1lKTsKKyNlbmRpZgogICAgIHJldHVybiBmaWxlcy5zaXplKCk7CiB9CiAK
IHZvaWQgRHJhZ0RhdGE6OmFzRmlsZW5hbWVzKFZlY3RvcjxTdHJpbmc+JiByZXN1bHQpIGNvbnN0
CiB7CisjaWYgUExBVEZPUk0oTUFDKQogICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJv
YXJkU3RyYXRlZ3koKS0+Z2V0UGF0aG5hbWVzRm9yVHlwZShyZXN1bHQsIFN0cmluZyhOU0ZpbGVu
YW1lc1Bib2FyZFR5cGUpLCBtX3Bhc3RlYm9hcmROYW1lKTsKICAgICBpZiAoIXJlc3VsdC5zaXpl
KCkpCiAgICAgICAgIHJlc3VsdCA9IGZpbGVOYW1lcygpOworI2Vsc2UKKyAgICBVTlVTRURfUEFS
QU0ocmVzdWx0KTsKKyNlbmRpZgogfQogCiBib29sIERyYWdEYXRhOjpjb250YWluc1BsYWluVGV4
dCgpIGNvbnN0CkBAIC05NywxMSArMTU5LDEzIEBAIGJvb2wgRHJhZ0RhdGE6OmNvbnRhaW5zUGxh
aW5UZXh0KCkgY29uc3QKICAgICBWZWN0b3I8U3RyaW5nPiB0eXBlczsKICAgICBwbGF0Zm9ybVN0
cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPmdldFR5cGVzKHR5cGVzLCBtX3Bhc3Rl
Ym9hcmROYW1lKTsKIAotICAgIHJldHVybiB0eXBlcy5jb250YWlucyhTdHJpbmcoTlNTdHJpbmdQ
Ym9hcmRUeXBlKSkKLSAgICAgICAgfHwgdHlwZXMuY29udGFpbnMoU3RyaW5nKE5TUlRGRFBib2Fy
ZFR5cGUpKQotICAgICAgICB8fCB0eXBlcy5jb250YWlucyhTdHJpbmcoTlNSVEZQYm9hcmRUeXBl
KSkKKyAgICByZXR1cm4gdHlwZXMuY29udGFpbnMoc3RyaW5nUGFzdGVib2FyZFR5cGUoKSkKKyAg
ICAgICAgfHwgdHlwZXMuY29udGFpbnMocnRmZFBhc3RlYm9hcmRUeXBlKCkpCisgICAgICAgIHx8
IHR5cGVzLmNvbnRhaW5zKHJ0ZlBhc3RlYm9hcmRUeXBlKCkpCisjaWYgUExBVEZPUk0oTUFDKQog
ICAgICAgICB8fCB0eXBlcy5jb250YWlucyhTdHJpbmcoTlNGaWxlbmFtZXNQYm9hcmRUeXBlKSkK
LSAgICAgICAgfHwgcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT5z
dHJpbmdGb3JUeXBlKFN0cmluZyhOU1VSTFBib2FyZFR5cGUpLCBtX3Bhc3RlYm9hcmROYW1lKS5s
ZW5ndGgoKTsKKyNlbmRpZgorICAgICAgICB8fCBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVi
b2FyZFN0cmF0ZWd5KCktPnN0cmluZ0ZvclR5cGUodXJsUGFzdGVib2FyZFR5cGUoKSwgbV9wYXN0
ZWJvYXJkTmFtZSkubGVuZ3RoKCk7CiB9CiAKIFN0cmluZyBEcmFnRGF0YTo6YXNQbGFpblRleHQo
KSBjb25zdApAQCAtMTMwLDIzICsxOTQsMjcgQEAgYm9vbCBEcmFnRGF0YTo6Y29udGFpbnNDb21w
YXRpYmxlQ29udGVudCgpIGNvbnN0CiAgICAgVmVjdG9yPFN0cmluZz4gdHlwZXM7CiAgICAgcGxh
dGZvcm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT5nZXRUeXBlcyh0eXBlcywg
bV9wYXN0ZWJvYXJkTmFtZSk7CiAgICAgcmV0dXJuIHR5cGVzLmNvbnRhaW5zKFN0cmluZyhXZWJB
cmNoaXZlUGJvYXJkVHlwZSkpCi0gICAgICAgIHx8IHR5cGVzLmNvbnRhaW5zKFN0cmluZyhOU0hU
TUxQYm9hcmRUeXBlKSkKKyAgICAgICAgfHwgdHlwZXMuY29udGFpbnMoaHRtbFBhc3RlYm9hcmRU
eXBlKCkpCisjaWYgUExBVEZPUk0oTUFDKQogICAgICAgICB8fCB0eXBlcy5jb250YWlucyhTdHJp
bmcoTlNGaWxlbmFtZXNQYm9hcmRUeXBlKSkKICAgICAgICAgfHwgdHlwZXMuY29udGFpbnMoU3Ry
aW5nKE5TRmlsZXNQcm9taXNlUGJvYXJkVHlwZSkpCi0gICAgICAgIHx8IHR5cGVzLmNvbnRhaW5z
KFN0cmluZyhOU1RJRkZQYm9hcmRUeXBlKSkKLSAgICAgICAgfHwgdHlwZXMuY29udGFpbnMoU3Ry
aW5nKE5TUERGUGJvYXJkVHlwZSkpCi0gICAgICAgIHx8IHR5cGVzLmNvbnRhaW5zKFN0cmluZyhO
U1VSTFBib2FyZFR5cGUpKQotICAgICAgICB8fCB0eXBlcy5jb250YWlucyhTdHJpbmcoTlNSVEZE
UGJvYXJkVHlwZSkpCi0gICAgICAgIHx8IHR5cGVzLmNvbnRhaW5zKFN0cmluZyhOU1JURlBib2Fy
ZFR5cGUpKQotICAgICAgICB8fCB0eXBlcy5jb250YWlucyhTdHJpbmcoTlNTdHJpbmdQYm9hcmRU
eXBlKSkKLSAgICAgICAgfHwgdHlwZXMuY29udGFpbnMoU3RyaW5nKE5TQ29sb3JQYm9hcmRUeXBl
KSkKKyNlbmRpZgorICAgICAgICB8fCB0eXBlcy5jb250YWlucyh0aWZmUGFzdGVib2FyZFR5cGUo
KSkKKyAgICAgICAgfHwgdHlwZXMuY29udGFpbnMocGRmUGFzdGVib2FyZFR5cGUoKSkKKyAgICAg
ICAgfHwgdHlwZXMuY29udGFpbnModXJsUGFzdGVib2FyZFR5cGUoKSkKKyAgICAgICAgfHwgdHlw
ZXMuY29udGFpbnMocnRmZFBhc3RlYm9hcmRUeXBlKCkpCisgICAgICAgIHx8IHR5cGVzLmNvbnRh
aW5zKHJ0ZlBhc3RlYm9hcmRUeXBlKCkpCisgICAgICAgIHx8IHR5cGVzLmNvbnRhaW5zKHN0cmlu
Z1Bhc3RlYm9hcmRUeXBlKCkpCisgICAgICAgIHx8IHR5cGVzLmNvbnRhaW5zKGNvbG9yUGFzdGVi
b2FyZFR5cGUoKSkKICAgICAgICAgfHwgdHlwZXMuY29udGFpbnMoU3RyaW5nKGtVVFR5cGVQTkcp
KTsKIH0KIAogYm9vbCBEcmFnRGF0YTo6Y29udGFpbnNQcm9taXNlKCkgY29uc3QKIHsKICAgICBW
ZWN0b3I8U3RyaW5nPiBmaWxlczsKKyNpZiBQTEFURk9STShNQUMpCiAgICAgcGxhdGZvcm1TdHJh
dGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT5nZXRQYXRobmFtZXNGb3JUeXBlKGZpbGVz
LCBTdHJpbmcoTlNGaWxlc1Byb21pc2VQYm9hcmRUeXBlKSwgbV9wYXN0ZWJvYXJkTmFtZSk7Cisj
ZW5kaWYKICAgICByZXR1cm4gZmlsZXMuc2l6ZSgpID09IDE7CiB9CiAKQEAgLTE2MCwyNCArMjI4
LDI2IEBAIFN0cmluZyBEcmFnRGF0YTo6YXNVUkwoRmlsZW5hbWVDb252ZXJzaW9uUG9saWN5LCBT
dHJpbmcqIHRpdGxlKSBjb25zdAogICAgIC8vIEZJWE1FOiBVc2UgZmlsZW5hbWVQb2xpY3kuCiAK
ICAgICBpZiAodGl0bGUpIHsKKyNpZiBQTEFURk9STShNQUMpCiAgICAgICAgIFN0cmluZyBVUkxU
aXRsZVN0cmluZyA9IHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+
c3RyaW5nRm9yVHlwZShTdHJpbmcoV2ViVVJMTmFtZVBib2FyZFR5cGUpLCBtX3Bhc3RlYm9hcmRO
YW1lKTsKICAgICAgICAgaWYgKCFVUkxUaXRsZVN0cmluZy5pc0VtcHR5KCkpCiAgICAgICAgICAg
ICAqdGl0bGUgPSBVUkxUaXRsZVN0cmluZzsKKyNlbmRpZgogICAgIH0KICAgICAKICAgICBWZWN0
b3I8U3RyaW5nPiB0eXBlczsKICAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0
cmF0ZWd5KCktPmdldFR5cGVzKHR5cGVzLCBtX3Bhc3RlYm9hcmROYW1lKTsKIAotICAgIGlmICh0
eXBlcy5jb250YWlucyhTdHJpbmcoTlNVUkxQYm9hcmRUeXBlKSkpIHsKLSAgICAgICAgTlNVUkwg
KlVSTEZyb21QYXN0ZWJvYXJkID0gW05TVVJMIFVSTFdpdGhTdHJpbmc6cGxhdGZvcm1TdHJhdGVn
aWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT5zdHJpbmdGb3JUeXBlKFN0cmluZyhOU1VSTFBi
b2FyZFR5cGUpLCBtX3Bhc3RlYm9hcmROYW1lKV07CisgICAgaWYgKHR5cGVzLmNvbnRhaW5zKHVy
bFBhc3RlYm9hcmRUeXBlKCkpKSB7CisgICAgICAgIE5TVVJMICpVUkxGcm9tUGFzdGVib2FyZCA9
IFtOU1VSTCBVUkxXaXRoU3RyaW5nOnBsYXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJkU3Ry
YXRlZ3koKS0+c3RyaW5nRm9yVHlwZSh1cmxQYXN0ZWJvYXJkVHlwZSgpLCBtX3Bhc3RlYm9hcmRO
YW1lKV07CiAgICAgICAgIE5TU3RyaW5nICpzY2hlbWUgPSBbVVJMRnJvbVBhc3RlYm9hcmQgc2No
ZW1lXTsKICAgICAgICAgLy8gQ2Fubm90IGRyb3Agb3RoZXIgc2NoZW1lcyB1bmxlc3MgPHJkYXI6
Ly9wcm9ibGVtLzEwNTYyNjYyPiBhbmQgPHJkYXI6Ly9wcm9ibGVtLzExMTg3MzE1PiBhcmUgZml4
ZWQuCiAgICAgICAgIGlmIChbc2NoZW1lIGlzRXF1YWxUb1N0cmluZzpAImh0dHAiXSB8fCBbc2No
ZW1lIGlzRXF1YWxUb1N0cmluZzpAImh0dHBzIl0pCiAgICAgICAgICAgICByZXR1cm4gW1VSTEJ5
Q2Fub25pY2FsaXppbmdVUkwoVVJMRnJvbVBhc3RlYm9hcmQpIGFic29sdXRlU3RyaW5nXTsKICAg
ICB9CiAgICAgCi0gICAgaWYgKHR5cGVzLmNvbnRhaW5zKFN0cmluZyhOU1N0cmluZ1Bib2FyZFR5
cGUpKSkgewotICAgICAgICBOU1VSTCAqVVJMRnJvbVBhc3RlYm9hcmQgPSBbTlNVUkwgVVJMV2l0
aFN0cmluZzpwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPnN0cmlu
Z0ZvclR5cGUoU3RyaW5nKE5TU3RyaW5nUGJvYXJkVHlwZSksIG1fcGFzdGVib2FyZE5hbWUpXTsK
KyAgICBpZiAodHlwZXMuY29udGFpbnMoc3RyaW5nUGFzdGVib2FyZFR5cGUoKSkpIHsKKyAgICAg
ICAgTlNVUkwgKlVSTEZyb21QYXN0ZWJvYXJkID0gW05TVVJMIFVSTFdpdGhTdHJpbmc6cGxhdGZv
cm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT5zdHJpbmdGb3JUeXBlKHN0cmlu
Z1Bhc3RlYm9hcmRUeXBlKCksIG1fcGFzdGVib2FyZE5hbWUpXTsKICAgICAgICAgTlNTdHJpbmcg
KnNjaGVtZSA9IFtVUkxGcm9tUGFzdGVib2FyZCBzY2hlbWVdOwogICAgICAgICAvLyBQYXN0ZWJv
YXJkIGNvbnRlbnQgaXMgbm90IHRydXN0ZWQsIGJlY2F1c2UgSmF2YVNjcmlwdCBjb2RlIGNhbiBt
b2RpZnkgaXQuIFdlIGNhbiBzYW5pdGl6ZSBpdCBmb3IgVVJMcyBhbmQgb3RoZXIgdHlwZWQgY29u
dGVudCwgYnV0IG5vdCBmb3Igc3RyaW5ncy4KICAgICAgICAgLy8gVGhlIHJlc3VsdCBvZiB0aGlz
IGZ1bmN0aW9uIGlzIHVzZWQgdG8gaW5pdGlhdGUgbmF2aWdhdGlvbiwgc28gd2Ugc2hvdWxkbid0
IGFsbG93IGFyYml0cmFyeSBmaWxlIFVSTHMuCkBAIC0xODYsNiArMjU2LDcgQEAgU3RyaW5nIERy
YWdEYXRhOjphc1VSTChGaWxlbmFtZUNvbnZlcnNpb25Qb2xpY3ksIFN0cmluZyogdGl0bGUpIGNv
bnN0CiAgICAgICAgICAgICByZXR1cm4gW1VSTEJ5Q2Fub25pY2FsaXppbmdVUkwoVVJMRnJvbVBh
c3RlYm9hcmQpIGFic29sdXRlU3RyaW5nXTsKICAgICB9CiAgICAgCisjaWYgUExBVEZPUk0oTUFD
KQogICAgIGlmICh0eXBlcy5jb250YWlucyhTdHJpbmcoTlNGaWxlbmFtZXNQYm9hcmRUeXBlKSkp
IHsKICAgICAgICAgVmVjdG9yPFN0cmluZz4gZmlsZXM7CiAgICAgICAgIHBsYXRmb3JtU3RyYXRl
Z2llcygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+Z2V0UGF0aG5hbWVzRm9yVHlwZShmaWxlcywg
U3RyaW5nKE5TRmlsZW5hbWVzUGJvYXJkVHlwZSksIG1fcGFzdGVib2FyZE5hbWUpOwpAQCAtMTk5
LDYgKzI3MCw3IEBAIFN0cmluZyBEcmFnRGF0YTo6YXNVUkwoRmlsZW5hbWVDb252ZXJzaW9uUG9s
aWN5LCBTdHJpbmcqIHRpdGxlKSBjb25zdAogCiAgICAgaWYgKHR5cGVzLmNvbnRhaW5zKFN0cmlu
ZyhOU0ZpbGVzUHJvbWlzZVBib2FyZFR5cGUpKSAmJiBmaWxlTmFtZXMoKS5zaXplKCkgPT0gMSkK
ICAgICAgICAgcmV0dXJuIFtVUkxCeUNhbm9uaWNhbGl6aW5nVVJMKFtOU1VSTCBmaWxlVVJMV2l0
aFBhdGg6ZmlsZU5hbWVzKClbMF1dKSBhYnNvbHV0ZVN0cmluZ107CisjZW5kaWYKIAogICAgIHJl
dHVybiBTdHJpbmcoKTsgICAgICAgIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL0RyYWdJbWFnZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9E
cmFnSW1hZ2VNYWMubW0KaW5kZXggZDJmOGY3MDgwM2NjZGY5YzUyYmRiNmExN2JkODAxODU1MWRj
M2MzOC4uMGU5ZGNhMWJhNmM5YTY4YThhOTBiZjU1MWE0YjRmYmM3NDhlNWFjYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdJbWFnZU1hYy5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tCkBAIC0yNiw3ICsyNiw3IEBA
CiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIkRyYWdJbWFnZS5oIgogCi0jaWYgRU5BQkxF
KERSQUdfU1VQUE9SVCkKKyNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKSAmJiBQTEFURk9STShNQUMp
CiAKICNpbXBvcnQgIkJpdG1hcEltYWdlLmgiCiAjaW1wb3J0ICJDb3JlR3JhcGhpY3NTUEkuaCIK
QEAgLTM0OCw0ICszNDgsNCBAQCBEcmFnSW1hZ2VSZWYgY3JlYXRlRHJhZ0ltYWdlRm9yTGluayhV
UkwmIHVybCwgY29uc3QgU3RyaW5nJiB0aXRsZSwgRm9udFJlbmRlcmluZwogICAgCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyBFTkFCTEUoRFJBR19TVVBQT1JUKQorI2VuZGlm
IC8vIEVOQUJMRShEUkFHX1NVUFBPUlQpICYmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQubW0gYi9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50Lm1tCmluZGV4IGZmOTBkNTk3
ZWVlZGRlZjc4Y2RlZDY1YTI4ZjI5YjA1NjY3ZGEyZGUuLmUyMzNkZDEyMDYzNDRmOTU3ZGY0Mzg0
ZmE1ZWM0YTQ0YWIxODIxZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkRyYWdDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViRHJhZ0NsaWVudC5tbQpAQCAtMjUsNyArMjUsNyBAQAogCiAjaW1wb3J0ICJXZWJE
cmFnQ2xpZW50LmgiCiAKLSNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQorI2lmIEVOQUJMRShEUkFH
X1NVUFBPUlQpICYmIFBMQVRGT1JNKE1BQykKIAogI2ltcG9ydCAiRE9NRWxlbWVudEludGVybmFs
LmgiCiAjaW1wb3J0ICJXZWJBcmNoaXZlLmgiCkBAIC0xNDMsNCArMTQzLDQgQEAgdm9pZCBXZWJE
cmFnQ2xpZW50OjpkcmFnQ29udHJvbGxlckRlc3Ryb3llZCgpCiAgICAgZGVsZXRlIHRoaXM7CiB9
CiAKLSNlbmRpZiAvLyBFTkFCTEUoRFJBR19TVVBQT1JUKQorI2VuZGlmIC8vIEVOQUJMRShEUkFH
X1NVUFBPUlQpICYmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViRnJhbWUubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1l
Lm1tCmluZGV4IGJkOGE0ZDUwNmIzOTkyYmFlOTI4ZDY4NzZlNmEwNDQ2MTk3MzA5YjcuLmZlYzRj
NjBlZDI2MzYwZTIwYTlhNmQyNmM0Y2UwNmQ4N2QwZTE4NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJGcmFtZS5tbQpAQCAtOTMzLDcgKzkzMyw3IEBAIHN0YXRpYyBpbmxpbmUgV2ViRGF0
YVNvdXJjZSAqZGF0YVNvdXJjZShEb2N1bWVudExvYWRlciogbG9hZGVyKQogICAgIF9wcml2YXRl
LT5jb3JlRnJhbWUtPmVkaXRvcigpLmNvbXB1dGVBbmRTZXRUeXBpbmdTdHlsZShwcm9wZXJ0aWVz
LmdldCgpLCB1bmRvQWN0aW9uKTsKIH0KIAotI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCisjaWYg
RU5BQkxFKERSQUdfU1VQUE9SVCkgJiYgUExBVEZPUk0oTUFDKQogLSAodm9pZClfZHJhZ1NvdXJj
ZUVuZGVkQXQ6KE5TUG9pbnQpd2luZG93TG9jIG9wZXJhdGlvbjooTlNEcmFnT3BlcmF0aW9uKW9w
ZXJhdGlvbgogewogICAgIGlmICghX3ByaXZhdGUtPmNvcmVGcmFtZSkKQEAgLTk0Niw3ICs5NDYs
NyBAQCBzdGF0aWMgaW5saW5lIFdlYkRhdGFTb3VyY2UgKmRhdGFTb3VyY2UoRG9jdW1lbnRMb2Fk
ZXIqIGxvYWRlcikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGVmdEJ1dHRvbiwgUGxh
dGZvcm1FdmVudDo6TW91c2VNb3ZlZCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGN1
cnJlbnRUaW1lKCksIFdlYkNvcmU6OkZvcmNlQXRDbGljaywgV2ViQ29yZTo6Tm9UYXApOwogICAg
IF9wcml2YXRlLT5jb3JlRnJhbWUtPmV2ZW50SGFuZGxlcigpLmRyYWdTb3VyY2VFbmRlZEF0KGV2
ZW50LCAoRHJhZ09wZXJhdGlvbilvcGVyYXRpb24pOwogfQotI2VuZGlmCisjZW5kaWYgLy8gRU5B
QkxFKERSQUdfU1VQUE9SVCkgJiYgUExBVEZPUk0oTUFDKQogCiAtIChCT09MKV9jYW5Qcm92aWRl
RG9jdW1lbnRTb3VyY2UKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViRnJhbWVJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZUlu
dGVybmFsLmgKaW5kZXggNTUzYzIzMDhiYWU4ZTQ0YTc2MmQzZjg3MGM5YjE3OTQ3YTg5ZmU3NC4u
NWM3MmQyODdmYTU3NzA4OWNkNDQwZjA2N2MxY2RhM2FjMWNmNjE5YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZUludGVybmFsLmgKKysrIGIvU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZUludGVybmFsLmgKQEAgLTE3OSw3ICsxNzksNyBAQCBX
ZWJWaWV3ICpnZXRXZWJWaWV3KFdlYkZyYW1lICp3ZWJGcmFtZSk7CiAtIChET01DU1NTdHlsZURl
Y2xhcmF0aW9uICopX3R5cGluZ1N0eWxlOwogLSAodm9pZClfc2V0VHlwaW5nU3R5bGU6KERPTUNT
U1N0eWxlRGVjbGFyYXRpb24gKilzdHlsZSB3aXRoVW5kb0FjdGlvbjooV2ViQ29yZTo6RWRpdEFj
dGlvbil1bmRvQWN0aW9uOwogCi0jaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKKyNpZiBFTkFCTEUo
RFJBR19TVVBQT1JUKSAmJiBQTEFURk9STShNQUMpCiAtICh2b2lkKV9kcmFnU291cmNlRW5kZWRB
dDooTlNQb2ludCl3aW5kb3dMb2Mgb3BlcmF0aW9uOihOU0RyYWdPcGVyYXRpb24pb3BlcmF0aW9u
OwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRN
TFZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCmluZGV4
IDAyMDlkODEzZThmY2I5NzU3NDhlOWM4OTVmZGU3ODI3MDBiMTQ4NGEuLjY0ZTYzZTI5MDA2ZDU2
ZWIzNzM3ODViODZkMDdiYzk2NTc3NjcwNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJIVE1MVmlldy5tbQpAQCAtNDU0NCw3ICs0NTQ0LDcgQEAgc3RhdGljIEJPT0wgY3VycmVudFNj
cm9sbElzQmxpdChOU1ZpZXcgKmNsaXBWaWV3KQogfQogI2VuZGlmCiAKLSNpZiBFTkFCTEUoRFJB
R19TVVBQT1JUKQorI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpICYmIFBMQVRGT1JNKE1BQykKIC0g
KHZvaWQpZHJhZ0ltYWdlOihOU0ltYWdlICopZHJhZ0ltYWdlCiAgICAgICAgICAgICAgICBhdDoo
TlNQb2ludClhdAogICAgICAgICAgICBvZmZzZXQ6KE5TU2l6ZSlvZmZzZXQKQEAgLTQ2ODgsNyAr
NDY4OCw3IEBAIHN0YXRpYyBib29sIG1hdGNoZXNFeHRlbnNpb25PckVxdWl2YWxlbnQoTlNTdHJp
bmcgKmZpbGVuYW1lLCBOU1N0cmluZyAqZXh0ZW5zaW9uCiAgICAgCiAgICAgcmV0dXJuIFtOU0Fy
cmF5IGFycmF5V2l0aE9iamVjdDpbcGF0aCBsYXN0UGF0aENvbXBvbmVudF1dOwogfQotI2VuZGlm
CisjZW5kaWYgLy8gRU5BQkxFKERSQUdfU1VQUE9SVCkgJiYgUExBVEZPUk0oTUFDKQogCiAjaWYg
IVBMQVRGT1JNKElPUykKIC0gKHZvaWQpbW91c2VVcDooTlNFdmVudCAqKWV2ZW50CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggNTdiYWE1NGUzNDJlYmNjMjE3YjUwYzgxMzQw
ZTllNDZiNzFjNjVkZi4uOWUxM2Y2YWIzNmRlODdkODFiZDE4NGEyMTcyNTE0MTg0MjU1ZTgzNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMTYwOCw3ICsxNjA4LDcgQEAg
c3RhdGljIHZvaWQgV2ViS2l0SW5pdGlhbGl6ZUdhbWVwYWRQcm92aWRlcklmTmVjZXNzYXJ5KCkK
ICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJDb3JlOjpMaWJXZWJSVENQcm92aWRlcj4oKQogICAg
ICk7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uY2hyb21lQ2xpZW50ID0gbmV3IFdlYkNocm9tZUNs
aWVudElPUyhzZWxmKTsKLSNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQorI2lmIEVOQUJMRShEUkFH
X1NVUFBPUlQpICYmIFBMQVRGT1JNKE1BQykKICAgICBwYWdlQ29uZmlndXJhdGlvbi5kcmFnQ2xp
ZW50ID0gbmV3IFdlYkRyYWdDbGllbnQoc2VsZik7CiAjZW5kaWYKIApAQCAtNjQ3NSw3ICs2NDc1
LDcgQEAgc3RhdGljIE5TU3RyaW5nICogY29uc3QgYmFja2luZ1Byb3BlcnR5T2xkU2NhbGVGYWN0
b3JLZXkgPSBAIk5TQmFja2luZ1Byb3BlcnR5T2wKICAgICByZXR1cm4gW3NlbGYgX2VsZW1lbnRB
dFdpbmRvd1BvaW50OltzZWxmIGNvbnZlcnRQb2ludDpwb2ludCB0b1ZpZXc6bmlsXV07CiB9CiAK
LSNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQorI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpICYmIFBM
QVRGT1JNKE1BQykKIC8vIFRoZSBmb2xsb3dpbmcgMiBpbnRlcm5hbCBOU1ZpZXcgbWV0aG9kcyBh
cmUgY2FsbGVkIG9uIHRoZSBkcmFnIGRlc3RpbmF0aW9uIHRvIG1ha2Ugc2Nyb2xsaW5nIHdoaWxl
IGRyYWdnaW5nIHdvcmsuCiAvLyBTY3JvbGxpbmcgd2hpbGUgZHJhZ2dpbmcgd2lsbCBvbmx5IHdv
cmsgaWYgdGhlIGRyYWcgZGVzdGluYXRpb24gaXMgaW4gYSBzY3JvbGwgdmlldy4gVGhlIFdlYlZp
ZXcgaXMgdGhlIGRyYWcgZGVzdGluYXRpb24uIAogLy8gV2hlbiBkcmFnZ2luZyB0byBhIFdlYlZp
ZXcsIHRoZSBkb2N1bWVudCBzdWJ2aWV3IHNob3VsZCBzY3JvbGwsIGJ1dCBpdCBkb2Vzbid0IGJl
Y2F1c2UgaXQgaXMgbm90IHRoZSBkcmFnIGRlc3RpbmF0aW9uLiAKQEAgLTY1OTYsNyArNjU5Niw3
IEBAIHN0YXRpYyBOU1N0cmluZyAqIGNvbnN0IGJhY2tpbmdQcm9wZXJ0eU9sZFNjYWxlRmFjdG9y
S2V5ID0gQCJOU0JhY2tpbmdQcm9wZXJ0eU9sCiAgICAgICAgIHJldHVybiBzZWxmOwogICAgIHJl
dHVybiBoaXRWaWV3OwogfQotI2VuZGlmCisjZW5kaWYgLy8gRU5BQkxFKERSQUdfU1VQUE9SVCkg
JiYgUExBVEZPUk0oTUFDKQogCiAtIChCT09MKWFjY2VwdHNGaXJzdFJlc3BvbmRlcgogewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCBj
NmE4NTcxOTdkNWUxYTJlYWMwNjcwOTA2ODU1YjMwODg4YmM3NDkzLi5iZjA2YzBjMjM0NGUwNjQw
OTg3NGIwMDIzMDVmOWZjNGJlMzI0N2FhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApAQCAtMTIyMyw4ICsxMjIzLDEwIEBAIHZvaWQgQXJn
dW1lbnRDb2RlcjxEcmFnRGF0YT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBEcmFn
RGF0YSYgZHJhZ0RhdGEpCiAgICAgZW5jb2RlciA8PCBkcmFnRGF0YS5nbG9iYWxQb3NpdGlvbigp
OwogICAgIGVuY29kZXIuZW5jb2RlRW51bShkcmFnRGF0YS5kcmFnZ2luZ1NvdXJjZU9wZXJhdGlv
bk1hc2soKSk7CiAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKGRyYWdEYXRhLmZsYWdzKCkpOwotI2lm
IFBMQVRGT1JNKE1BQykKKyNpZiBQTEFURk9STShDT0NPQSkKICAgICBlbmNvZGVyIDw8IGRyYWdE
YXRhLnBhc3RlYm9hcmROYW1lKCk7CisjZW5kaWYKKyNpZiBQTEFURk9STShNQUMpCiAgICAgZW5j
b2RlciA8PCBkcmFnRGF0YS5maWxlTmFtZXMoKTsKICNlbmRpZgogfQpAQCAtMTI0OCwxMyArMTI1
MCwxNSBAQCBib29sIEFyZ3VtZW50Q29kZXI8RHJhZ0RhdGE+OjpkZWNvZGUoRGVjb2RlciYgZGVj
b2RlciwgRHJhZ0RhdGEmIGRyYWdEYXRhKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBT
dHJpbmcgcGFzdGVib2FyZE5hbWU7Ci0jaWYgUExBVEZPUk0oTUFDKQorI2lmIFBMQVRGT1JNKENP
Q09BKQogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFzdGVib2FyZE5hbWUpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAjZW5kaWYKICAgICBWZWN0b3I8U3RyaW5nPiBmaWxlTmFtZXM7CisjaWYg
UExBVEZPUk0oTUFDKQogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoZmlsZU5hbWVzKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCiAKICAgICBkcmFnRGF0YSA9IERyYWdEYXRhKHBhc3Rl
Ym9hcmROYW1lLCBjbGllbnRQb3NpdGlvbiwgZ2xvYmFsUG9zaXRpb24sIGRyYWdnaW5nU291cmNl
T3BlcmF0aW9uTWFzaywgYXBwbGljYXRpb25GbGFncyk7CiAgICAgZHJhZ0RhdGEuc2V0RmlsZU5h
bWVzKGZpbGVOYW1lcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29j
b2EvV2ViUGFnZVByb3h5Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2Ev
V2ViUGFnZVByb3h5Q29jb2EubW0KaW5kZXggYmE3ZjdmNzlmZmFiYTI2MzlkZTgyMTM0YmFlZTdj
NTViMTM2N2FmYy4uZjVhNzFhN2RmNDNlZWMwOGM2MzFjZDRhN2E1NDgzMmRjZTYxN2FlYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29h
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2Nv
YS5tbQpAQCAtMzQsNiArMzQsMTAgQEAKICNpbXBvcnQgPFdlYkNvcmUvVmFsaWRhdGlvbkJ1YmJs
ZS5oPgogI2ltcG9ydCA8d3RmL2NmL1R5cGVDYXN0c0NGLmg+CiAKKyNpZiBVU0UoQVBQTEVfSU5U
RVJOQUxfU0RLKQorI2ltcG9ydCA8V2ViS2l0QWRkaXRpb25zL1dlYlBhZ2VQcm94eUFkZGl0aW9u
cy5tbT4KKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogI2lmIEVOQUJMRShEQVRBX0RF
VEVDVElPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvbWFjL1dlYkRyYWdDbGllbnRNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L21hYy9XZWJEcmFnQ2xpZW50TWFjLm1tCmluZGV4IDg4YWQ1ZGNjNDE2
MGRjMTFiNWViZmUyMGMyZDBmZWY4M2JkODRiNzguLmJkZWE5YThlMjBmZGEwMzlhNzUyNGU4YzFh
OTMyMTk0ZWU5NWU2ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvbWFjL1dlYkRyYWdDbGllbnRNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0NsaWVudE1hYy5tbQpAQCAtNTEs
NiArNTEsMTIgQEAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNlIFdl
YktpdDsKIAorI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisjaW1wb3J0IDxXZWJLaXRBZGRp
dGlvbnMvV2ViRHJhZ0NsaWVudEFkZGl0aW9ucy5tbT4KKyNlbmRpZgorCisjaWYgUExBVEZPUk0o
TUFDKQorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogc3RhdGljIFBhc3NSZWZQdHI8U2hhcmVhYmxl
Qml0bWFwPiBjb252ZXJ0SW1hZ2VUb0JpdG1hcChOU0ltYWdlICppbWFnZSwgY29uc3QgSW50U2l6
ZSYgc2l6ZSwgRnJhbWUmIGZyYW1lKQpAQCAtMTYwLDQgKzE2Niw2IEBAIHZvaWQgV2ViRHJhZ0Ns
aWVudDo6ZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5h
bWUsIEVsZW1lCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCisjZW5kaWYgLy8gUExBVEZPUk0o
TUFDKQorCiAjZW5kaWYgLy8gRU5BQkxFKERSQUdfU1VQUE9SVCkK
</data>
<flag name="review"
          id="321697"
          type_id="1"
          status="+"
          setter="enrica"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>299776</attachid>
            <date>2017-01-25 17:22:05 -0800</date>
            <delta_ts>2017-01-25 17:25:13 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-167427-20170125172003.patch</filename>
            <type>text/plain</type>
            <size>48461</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExMTY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDZhMzhmMzVjYWIwNGVlZmU2ZThhZDZl
NGEyMTg5YzI5NDliNzlkYzcuLjA1OGJjN2VlN2JlOWJkMmI2NDkyMTgwZDY1NzcxMjM1ZTFhNTE4
OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTctMDEtMjUgIFdlbnNvbiBIc2llaCAgPHdlbnNv
bl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgSW50cm9kdWNlIGFuIGl0ZW0tcHJvdmlkZXIt
YmFzZWQgcGFzdGVib2FyZCB3cmFwcGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNjc0MTAKKworICAgICAgICBSZXZpZXdlZCBieSBFbnJpY2EgQ2Fz
dWNjaS4KKworICAgICAgICBBZGRzIGFuIGFkZGl0aW9uYWwgZmVhdHVyZSBmbGFnLgorCisgICAg
ICAgICogd3RmL0ZlYXR1cmVEZWZpbmVzLmg6CisKIDIwMTctMDEtMjUgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBEaXNhYmxlIERvd25sb2FkIGF0dHJpYnV0ZSBz
dXBwb3J0IG9uIGlPUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDYxNjZmYTE3Y2ZiMDMyZWI5ZmUwMDlmYTJlNWMz
ZDI3MjIwYjI5YjcuLjNkYWE2NTY5MGExYzdhYTdkNWQ4YjRhMmQzNjRlZTNmY2I5NTlkMmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw3NCBAQAorMjAxNy0wMS0yNSAgV2Vuc29uIEhzaWVoICA8d2Vu
c29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBSZWZhY3RvciBkcmFnIGFuZCBkcm9wIGlt
cGxlbWVudGF0aW9uIG9uIE1hYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTY3NDI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRW5yaWNhIENhc3VjY2ku
CisKKyAgICAgICAgUmVmYWN0b3JzIHNvbWUgY29kZSBhcm91bmQgZHJhZyBhbmQgZHJvcCBvbiBN
YWMsIGFuZCBjbGVhbnMgdXAgc29tZSBvdGhlciByZWxhdGVkIGNvZGUgYXMgbmVlZGVkLiBUaGlz
IHBhdGNoCisgICAgICAgIHNob3VsZCByZXN1bHQgaW4gbm8gYmVoYXZpb3IgY2hhbmdlLgorCisg
ICAgICAgICogZG9tL0RhdGFUcmFuc2Zlci5jcHA6CisgICAgICAgICogcGFnZS9FdmVudEhhbmRs
ZXIuY3BwOgorICAgICAgICAqIHBhZ2UvaW9zL0V2ZW50SGFuZGxlcklPUy5tbToKKyAgICAgICAg
KFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6ZXZlbnRMb29wSGFuZGxlTW91c2VEcmFnZ2VkKToKKyAg
ICAgICAgKiBwYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW06CisgICAgICAgICogcGxhdGZvcm0v
RHJhZ0ltYWdlLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9QYXN0ZWJvYXJkLmg6CisgICAgICAg
ICogcGxhdGZvcm0vaW9zL0RyYWdJbWFnZUlPUy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mv
UGFzdGVib2FyZElPUy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvRHJhZ0RhdGFNYWMubW06
CisgICAgICAgIChydGZQYXN0ZWJvYXJkVHlwZSk6CisgICAgICAgIChydGZkUGFzdGVib2FyZFR5
cGUpOgorICAgICAgICAoc3RyaW5nUGFzdGVib2FyZFR5cGUpOgorICAgICAgICAodXJsUGFzdGVi
b2FyZFR5cGUpOgorICAgICAgICAoaHRtbFBhc3RlYm9hcmRUeXBlKToKKyAgICAgICAgKGNvbG9y
UGFzdGVib2FyZFR5cGUpOgorICAgICAgICAocGRmUGFzdGVib2FyZFR5cGUpOgorICAgICAgICAo
dGlmZlBhc3RlYm9hcmRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdEYXRhOjpEcmFnRGF0
YSk6CisgICAgICAgIChXZWJDb3JlOjpEcmFnRGF0YTo6Y29udGFpbnNDb2xvcik6CisgICAgICAg
IChXZWJDb3JlOjpEcmFnRGF0YTo6Y29udGFpbnNGaWxlcyk6CisgICAgICAgIChXZWJDb3JlOjpE
cmFnRGF0YTo6bnVtYmVyT2ZGaWxlcyk6CisgICAgICAgIChXZWJDb3JlOjpEcmFnRGF0YTo6YXNG
aWxlbmFtZXMpOgorICAgICAgICAoV2ViQ29yZTo6RHJhZ0RhdGE6OmNvbnRhaW5zUGxhaW5UZXh0
KToKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdEYXRhOjpjb250YWluc0NvbXBhdGlibGVDb250ZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdEYXRhOjpjb250YWluc1Byb21pc2UpOgorICAgICAg
ICAoV2ViQ29yZTo6RHJhZ0RhdGE6OmFzVVJMKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvRHJh
Z0ltYWdlTWFjLm1tOgorCisyMDE3LTAxLTI1ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhA
YXBwbGUuY29tPgorCisgICAgICAgIEludHJvZHVjZSBhbiBpdGVtLXByb3ZpZGVyLWJhc2VkIHBh
c3RlYm9hcmQgd3JhcHBlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTY3NDEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRW5yaWNhIENhc3VjY2kuCisK
KyAgICAgICAgSW50cm9kdWNlcyBXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkLCBhIHBhc3RlYm9h
cmQtbGlrZSBvYmplY3QgYmFja2VkIGJ5IGEgbnVtYmVyIG9mIGl0ZW0gcHJvdmlkZXJzLiBObyBu
ZXcKKyAgICAgICAgdGVzdHMsIHNpbmNlIHRoZXJlIGlzIG5vIGJlaGF2aW9yIGNoYW5nZS4KKwor
ICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBw
bGF0Zm9ybS9pb3MvQWJzdHJhY3RQYXN0ZWJvYXJkLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3NwaS9pb3MvVUlLaXRTUEkuaC4KKyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mv
V2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmguCisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYkl0
ZW1Qcm92aWRlclBhc3RlYm9hcmQubW06IEFkZGVkLgorICAgICAgICAoaXNSaWNoVGV4dFR5cGUp
OgorICAgICAgICAoaXNTdHJpbmdUeXBlKToKKyAgICAgICAgKGlzVVJMVHlwZSk6CisgICAgICAg
IChpc0NvbG9yVHlwZSk6CisgICAgICAgIChpc0ltYWdlVHlwZSk6CisgICAgICAgICgrW1dlYkl0
ZW1Qcm92aWRlclBhc3RlYm9hcmQgc2hhcmVkSW5zdGFuY2VdKToKKyAgICAgICAgKC1bV2ViSXRl
bVByb3ZpZGVyUGFzdGVib2FyZCBpbml0XSk6CisgICAgICAgICgtW1dlYkl0ZW1Qcm92aWRlclBh
c3RlYm9hcmQgZGVhbGxvY10pOgorICAgICAgICAoLVtXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJk
IHBhc3RlYm9hcmRUeXBlc10pOgorICAgICAgICAoLVtXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJk
IHNldEl0ZW1Qcm92aWRlcnM6XSk6CisgICAgICAgICgtW1dlYkl0ZW1Qcm92aWRlclBhc3RlYm9h
cmQgbnVtYmVyT2ZJdGVtc10pOgorICAgICAgICAoLVtXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJk
IHNldEl0ZW1zOl0pOgorICAgICAgICAoLVtXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkIGRhdGFG
b3JQYXN0ZWJvYXJkVHlwZTppbkl0ZW1TZXQ6XSk6CisgICAgICAgICgtW1dlYkl0ZW1Qcm92aWRl
clBhc3RlYm9hcmQgdmFsdWVzRm9yUGFzdGVib2FyZFR5cGU6aW5JdGVtU2V0Ol0pOgorICAgICAg
ICAoLVtXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkIGNoYW5nZUNvdW50XSk6CisgICAgICAgICgt
W1dlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQgaXRlbVByb3ZpZGVyQXRJbmRleDpdKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmg6CisKIDIwMTctMDEtMjUgIFNpbW9uIEZy
YXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2ZXJ0IHIyMTA4ODIs
IHJlbW92aW5nIHN1cHBvcnQgZm9yIGJhY2tncm91bmQtcmVwZWF0LXgveQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9n
CmluZGV4IDgwYzcyOTQxY2ZhMzQ2ZTEzNzFkYzU5NjlmNjE5OWMyMTkxYWUyNGYuLmY0NmZmYWVh
MmUwYWI1MGU4NzU0MzBkYzUzMDNjZDY1OGY1MDk2ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMCBAQAorMjAxNy0wMS0yNSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxl
LmNvbT4KKworICAgICAgICBSZWZhY3RvciBkcmFnIGFuZCBkcm9wIGltcGxlbWVudGF0aW9uIG9u
IE1hYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY3
NDI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRW5yaWNhIENhc3VjY2kuCisKKyAgICAgICAgUmVm
YWN0b3Igc29tZSBXZWJLaXQxIGNvZGUgb24gdGhlIE1hYyBwZXJ0YWluaW5nIHRvIGRyYWcgYW5k
IGRyb3AuIFNlZSBXZWJDb3JlIENoYW5nZUxvZyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAg
ICogTWlzYy9XZWJOU1Bhc3RlYm9hcmRFeHRyYXMuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9XZWJEcmFnQ2xpZW50Lm1tOgorICAgICAgICAqIFdlYlZpZXcvV2ViRnJhbWUubW06CisgICAg
ICAgICogV2ViVmlldy9XZWJGcmFtZUludGVybmFsLmg6CisgICAgICAgICogV2ViVmlldy9XZWJI
VE1MVmlldy5tbToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dl
YlZpZXcgaW5pdFNpbXBsZUhUTUxEb2N1bWVudFdpdGhTdHlsZTpmcmFtZTpwcmVmZXJlbmNlczpn
cm91cE5hbWU6XSk6CisKIDIwMTctMDEtMjQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5mQGdtYWls
LmNvbT4KIAogICAgICAgICBbV2ViUlRDXSBJbnRyb2R1Y2UgbGlid2VicnRjIGFic3RyYWN0aW9u
IGZvciBXSzEvV0syIGltcGxlbWVudGF0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDM4MmRkNjgxNzAzMDYz
MTZiNDEwZjFmNWM0YWNiZTYxYTA3YWFiZTcuLjYxNzZhMjNmYjYxNmZlMjJlNmQ1MTMwOGYyOTQ3
NmJiOGFmMWFhNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxNy0wMS0yNSAgV2Vu
c29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBSZWZhY3RvciBk
cmFnIGFuZCBkcm9wIGltcGxlbWVudGF0aW9uIG9uIE1hYworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY3NDI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
RW5yaWNhIENhc3VjY2kuCisKKyAgICAgICAgU2VlIFdlYkNvcmUgQ2hhbmdlTG9nIGZvciBtb3Jl
IGRldGFpbHMuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcDoK
KyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxEcmFnRGF0YT46OmVuY29kZSk6CisgICAgICAg
IChJUEM6OkFyZ3VtZW50Q29kZXI8RHJhZ0RhdGE+OjpkZWNvZGUpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L21hYy9XZWJEcmFnQ2xpZW50TWFjLm1tOgorCiAyMDE3LTAxLTI1ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBbUXVpY2tMb29rXSBEaXNwbGF5
IGEgV0tQYXNzd29yZFZpZXcgd2hlbiBhIGRvY3VtZW50IGlzIHBhc3N3b3JkLXByb3RlY3RlZApk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRmVhdHVyZURlZmluZXMuaCBiL1NvdXJjZS9XVEYv
d3RmL0ZlYXR1cmVEZWZpbmVzLmgKaW5kZXggOTFhMDhkYmIxNDU5NGMwNjQyZjBjMzMyMWI1OThl
OWRjMTcwYjM1My4uMTAzZWExMDdlMDE5MDQ3YmI5YTlkMmE1MWVlMTNkY2Y2NmFlOWFkOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi93dGYvRmVhdHVyZURlZmluZXMuaAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9GZWF0dXJlRGVmaW5lcy5oCkBAIC03ODMsNiArNzgzLDEwIEBAIHRoZSBwdWJsaWMgaU9T
IFNESy4gV2Ugd2lsbCBhbHNvIG5lZWQgdG8gdXBkYXRlIHRoZSBGZWF0dXJlRGVmaW5lcy54Y2Nv
bmZpZyBmaWxlCiAjZGVmaW5lIEVOQUJMRV9LRVlCT0FSRF9DT0RFX0FUVFJJQlVURSAwCiAjZW5k
aWYKIAorI2lmICFkZWZpbmVkKEVOQUJMRV9EQVRBX0lOVEVSQUNUSU9OKQorI2RlZmluZSBFTkFC
TEVfREFUQV9JTlRFUkFDVElPTiAwCisjZW5kaWYKKwogLyogQXNzZXJ0cywgaW52YXJpYW50cyBm
b3IgbWFjcm8gZGVmaW5pdGlvbnMgKi8KIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykgJiYgIUVO
QUJMRShWSURFTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCBiZmMyOThhM2JhMzc2MTg5MzBkMWUyMGY4NzA4NmUxODIxN2U1ZGI2
Li41NTcxYTExYmNhNDE0YTZiY2NmMTFhZGM0MmU3ODFmZDEwZTZlM2VjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02NTA2LDYg
KzY1MDYsOSBAQAogCQlGNDc4NzU1NTE5OTgzQUZGMDAyNEEyODcgLyogU2Nyb2xsU25hcEFuaW1h
dG9yU3RhdGUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNDc4NzU1MzE5OTgzQUZGMDAyNEEyODcgLyogU2Nyb2xsU25hcEFuaW1hdG9yU3RhdGUubW0g
Ki87IH07CiAJCUY0N0E1RTNFMTk1QjhDOEEwMDQ4MzEwMCAvKiBTdHlsZVNjcm9sbFNuYXBQb2lu
dHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0N0E1
RTNCMTk1QjhDOEEwMDQ4MzEwMCAvKiBTdHlsZVNjcm9sbFNuYXBQb2ludHMuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGNDdBNUUzRjE5NUI4RTQ4
MDA0ODMxMDAgLyogU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0N0E1RTNBMTk1QjhDOEEwMDQ4MzEwMCAvKiBT
dHlsZVNjcm9sbFNuYXBQb2ludHMuY3BwICovOyB9OworCQlGNDgyMjMxMDFFMzg2OUI4MDA2NkZD
NzkgLyogV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0ODIyMzBFMUUzODY5QjgwMDY2RkM3OSAvKiBXZWJJ
dGVtUHJvdmlkZXJQYXN0ZWJvYXJkLm1tICovOyB9OworCQlGNDgyMjMxMTFFMzg2OUI4MDA2NkZD
NzkgLyogV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ4MjIzMEYxRTM4NjlCODAwNjZGQzc5IC8qIFdlYkl0
ZW1Qcm92aWRlclBhc3RlYm9hcmQuaCAqLzsgfTsKKwkJRjQ4MjIzMTMxRTM4NkUyNDAwNjZGQzc5
IC8qIEFic3RyYWN0UGFzdGVib2FyZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjQ4MjIzMTIxRTM4NkUyNDAwNjZGQzc5IC8qIEFic3RyYWN0UGFzdGVi
b2FyZC5oICovOyB9OwogCQlGNEJGQjk4NTFFMURERjlCMDA4NjJDMjQgLyogRHVtcEVkaXRpbmdI
aXN0b3J5LmpzIGluIENvcHkgU2NyaXB0cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNDgzODk4MzFFMURERjJCMDA3NkI3RUEgLyogRHVtcEVkaXRpbmdIaXN0b3J5LmpzICov
OyB9OwogCQlGNEJGQjk4NjFFMURERjlCMDA4NjJDMjQgLyogRWRpdGluZ0hpc3RvcnlVdGlsLmpz
IGluIENvcHkgU2NyaXB0cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDgz
ODk4NDFFMURERjJCMDA3NkI3RUEgLyogRWRpdGluZ0hpc3RvcnlVdGlsLmpzICovOyB9OwogCQlG
NTA2NjRGNzE1N0Y1MkRDMDBBQzIyNkYgLyogRm9ybUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjUwNjY0RjUxNTdGNTJEQzAwQUMy
MjZGIC8qIEZvcm1Db250cm9sbGVyLmNwcCAqLzsgfTsKQEAgLTE0NTU4LDYgKzE0NTYxLDkgQEAK
IAkJRjQ3ODc1NTMxOTk4M0FGRjAwMjRBMjg3IC8qIFNjcm9sbFNuYXBBbmltYXRvclN0YXRlLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gU2Nyb2xsU25hcEFuaW1h
dG9yU3RhdGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0N0E1RTNBMTk1QjhD
OEEwMDQ4MzEwMCAvKiBTdHlsZVNjcm9sbFNuYXBQb2ludHMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ3QTVFM0IxOTVCOEM4QTAwNDgzMTAwIC8qIFN0eWxlU2Ny
b2xsU25hcFBvaW50cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHlsZVNj
cm9sbFNuYXBQb2ludHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjQ4MjIzMEUx
RTM4NjlCODAwNjZGQzc5IC8qIFdlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJk
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNDgyMjMwRjFFMzg2OUI4MDA2NkZD
NzkgLyogV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUY0ODIyMzEyMUUzODZFMjQwMDY2RkM3OSAvKiBBYnN0cmFjdFBhc3RlYm9h
cmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQWJzdHJhY3RQYXN0ZWJvYXJk
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0ODM4OTgzMUUxRERGMkIwMDc2QjdF
QSAvKiBEdW1wRWRpdGluZ0hpc3RvcnkuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3Jp
cHQ7IG5hbWUgPSBEdW1wRWRpdGluZ0hpc3RvcnkuanM7IHBhdGggPSBTY3JpcHRzL0R1bXBFZGl0
aW5nSGlzdG9yeS5qczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ4Mzg5ODQxRTFE
REYyQjAwNzZCN0VBIC8qIEVkaXRpbmdIaXN0b3J5VXRpbC5qcyAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuamF2YXNjcmlwdDsgbmFtZSA9IEVkaXRpbmdIaXN0b3J5VXRpbC5qczsgcGF0aCA9IFNjcmlw
dHMvRWRpdGluZ0hpc3RvcnlVdGlsLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlG
NTA2NjRGNTE1N0Y1MkRDMDBBQzIyNkYgLyogRm9ybUNvbnRyb2xsZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRm9ybUNvbnRyb2xsZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTk3NzIsNiArMTk3NzgsNyBAQAogCQlBNTlFM0MxQjExNTgw
RjM0MDA3MjkyOEUgLyogaW9zICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJl
biA9ICgKKwkJCQlGNDgyMjMxMjFFMzg2RTI0MDA2NkZDNzkgLyogQWJzdHJhY3RQYXN0ZWJvYXJk
LmggKi8sCiAJCQkJQTE0ODMyOEIxODdGNTA2ODAwREE2M0E2IC8qIHdhayAqLywKIAkJCQkyNjU1
NDE0QjE0ODlBQTJCMDAwREZDNUQgLyogQ3Vyc29ySU9TLmNwcCAqLywKIAkJCQlBMUVENzc4QTFC
RTMyOTNGMDBEQzE3OTEgLyogRGV2aWNlLmNwcCAqLywKQEAgLTE5ODM2LDYgKzE5ODQzLDggQEAK
IAkJCQkzRkJDNEFGMjE4OTg4MTU2MDA0NkVFMzggLyogV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlQVZLaXQuaCAqLywKIAkJCQkzRkJDNEFGMTE4OTg4MTU2MDA0NkVFMzggLyogV2ViVmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0gKi8sCiAJCQkJRTQ1MzkwM0MwRUFGRDYzNzAwMzY5
NUM4IC8qIFdpZGdldElPUy5tbSAqLywKKwkJCQlGNDgyMjMwRTFFMzg2OUI4MDA2NkZDNzkgLyog
V2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZC5tbSAqLywKKwkJCQlGNDgyMjMwRjFFMzg2OUI4MDA2
NkZDNzkgLyogV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZC5oICovLAogCQkJKTsKIAkJCXBhdGgg
PSBpb3M7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMjUyMzMsNiArMjUyNDIsNyBA
QAogCQkJCUNFNzk5RkE4MUM2QTUwNTcwMDk3QjUxOCAvKiBDb250ZW50U2VjdXJpdHlQb2xpY3lN
ZWRpYUxpc3REaXJlY3RpdmUuaCBpbiBIZWFkZXJzICovLAogCQkJCUNFNkRBREZBMUM1OTFFNkEw
MDNGNkE4OCAvKiBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUNFNzk5RkEwMUM2QTRDMTYwMDk3QjUxOCAvKiBDb250ZW50U2VjdXJpdHlQ
b2xpY3lTb3VyY2UuaCBpbiBIZWFkZXJzICovLAorCQkJCUY0ODIyMzEzMUUzODZFMjQwMDY2RkM3
OSAvKiBBYnN0cmFjdFBhc3RlYm9hcmQuaCBpbiBIZWFkZXJzICovLAogCQkJCUNFNzk5Rjk4MUM2
QTQ2QkMwMDk3QjUxOCAvKiBDb250ZW50U2VjdXJpdHlQb2xpY3lTb3VyY2VMaXN0LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlDRTc5OUZBQzFDNkE1MDY2MDA5N0I1MTggLyogQ29udGVudFNlY3VyaXR5
UG9saWN5U291cmNlTGlzdERpcmVjdGl2ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFEMDE1Q0Ew
RjRCNUM3MTAwNEE2NjJGIC8qIENvbnRlbnRUeXBlLmggaW4gSGVhZGVycyAqLywKQEAgLTI3NzY3
LDYgKzI3Nzc3LDcgQEAKIAkJCQk0MTRCODIwNTFENkRGMEU1MDA3N0VCRTMgLyogU3RydWN0dXJl
ZENsb25lLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzVFQjZBMzBFODFEQzRGMDBCMjU5NjUgLyog
U3R5bGVCYWNrZ3JvdW5kRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1RUI2N0IwRTgxRDNC
RTAwQjI1OTY1IC8qIFN0eWxlQm94RGF0YS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjQ4MjIzMTEx
RTM4NjlCODAwNjZGQzc5IC8qIFdlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTgzODZBOTZEMTlGNjFCMkUwMEUxRUM0QSAvKiBTdHlsZUJ1aWxkZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTgzQjk2ODdCMTlGOEFCODMwMDRFRjdBRiAvKiBTdHlsZUJ1aWxkZXJD
b252ZXJ0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzNUQzNjM3MTlGRjYxOTMwMDRDOTNBQiAv
KiBTdHlsZUJ1aWxkZXJDdXN0b20uaCBpbiBIZWFkZXJzICovLApAQCAtMjkyMjcsNiArMjkyMzgs
NyBAQAogCQkJCTk0MTgyNzhFMUQ4Q0FGOTIwMDQ5Mjc2NCAvKiBDU1NQZW5kaW5nU3Vic3RpdHV0
aW9uVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTc3QjM4NjIxMjI4ODNFOTAwQjgxRkY4
IC8qIENTU1ByZWxvYWRTY2FubmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4MEU2RDA1MEEx
OTg5Q0EwMDdGQjhDNSAvKiBDU1NQcmltaXRpdmVWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlGNDgyMjMxMDFFMzg2OUI4MDA2NkZDNzkgLyogV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZC5t
bSBpbiBTb3VyY2VzICovLAogCQkJCUE4MEU2Q0Y3MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NQcm9w
ZXJ0eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3OEQwMkJDNTE1NEExOERGMDBCNjJEMDUgLyog
Q1NTUHJvcGVydHlBbmltYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFCQTc2Q0ExMUQy
MEU1MDAwNEMyMDFDIC8qIENTU1Byb3BlcnR5TmFtZXMuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9EYXRhVHJhbnNmZXIuY3BwCmluZGV4IDU2MWViNDIwNDA5ZTdlMWI2MmMyYzZhNWNm
YzdlMDYyYjRjZmNiZDYuLjllY2IzNTFkM2NhNDc3M2FhYmVjYzg3YTU0NGZiNjg3MDYzNjc5YTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXIuY3BwCkBAIC0yOTAsNyArMjkwLDcgQEAgdm9p
ZCBEYXRhVHJhbnNmZXI6OnVwZGF0ZURyYWdJbWFnZSgpCiAgICAgbV9wYXN0ZWJvYXJkLT5zZXRE
cmFnSW1hZ2UoY29tcHV0ZWRJbWFnZSwgY29tcHV0ZWRIb3RTcG90KTsKIH0KIAotI2lmICFQTEFU
Rk9STShDT0NPQSkKKyNpZiAhUExBVEZPUk0oTUFDKQogCiBEcmFnSW1hZ2VSZWYgRGF0YVRyYW5z
ZmVyOjpjcmVhdGVEcmFnSW1hZ2UoSW50UG9pbnQmIGxvY2F0aW9uKSBjb25zdAogewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDVhNWEzNWU2OGE3Yzg5ODhiNmUxMzA0ZTQ4
OWEyMTJhYmQ5YzczYzQuLmVlNGU3NzIwMjg2M2FhMjBiZGM2YmE2NzI0NmUzYWRmNGQwYTQ3OWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTEzMSw2ICsxMzEsOSBAQCBj
b25zdCBpbnQgTGlua0RyYWdIeXN0ZXJlc2lzID0gNDA7CiBjb25zdCBpbnQgSW1hZ2VEcmFnSHlz
dGVyZXNpcyA9IDU7CiBjb25zdCBpbnQgVGV4dERyYWdIeXN0ZXJlc2lzID0gMzsKIGNvbnN0IGlu
dCBHZW5lcmFsRHJhZ0h5c3RlcmVzaXMgPSAzOworI2lmIFBMQVRGT1JNKENPQ09BKQorY29uc3Qg
ZG91YmxlIEV2ZW50SGFuZGxlcjo6VGV4dERyYWdEZWxheSA9IDAuMTU7CisjZW5kaWYKICNlbmRp
ZiAvLyBFTkFCTEUoRFJBR19TVVBQT1JUKQogCiAjaWYgRU5BQkxFKElPU19HRVNUVVJFX0VWRU5U
UykgfHwgRU5BQkxFKE1BQ19HRVNUVVJFX0VWRU5UUykKQEAgLTgwNiwxNCArODA5LDE0IEBAIGJv
b2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZVByZXNzRXZlbnQoY29uc3QgTW91c2VFdmVudFdp
dGhIaXRUZXN0UmVzdWx0cyYgZXZlCiB9CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotYm9v
bCBFdmVudEhhbmRsZXI6OmhhbmRsZU1vdXNlRHJhZ2dlZEV2ZW50KGNvbnN0IE1vdXNlRXZlbnRX
aXRoSGl0VGVzdFJlc3VsdHMmIGV2ZW50KQorYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZU1vdXNl
RHJhZ2dlZEV2ZW50KGNvbnN0IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmIGV2ZW50LCBD
aGVja0RyYWdIeXN0ZXJlc2lzIGNoZWNrRHJhZ0h5c3RlcmVzaXMpCiB7CiAgICAgaWYgKCFtX21v
dXNlUHJlc3NlZCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgUmVmPEZyYW1lPiBwcm90
ZWN0ZWRGcmFtZShtX2ZyYW1lKTsKIAotICAgIGlmIChoYW5kbGVEcmFnKGV2ZW50LCBTaG91bGRD
aGVja0RyYWdIeXN0ZXJlc2lzKSkKKyAgICBpZiAoaGFuZGxlRHJhZyhldmVudCwgY2hlY2tEcmFn
SHlzdGVyZXNpcykpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgTm9kZSogdGFyZ2V0Tm9k
ZSA9IGV2ZW50LnRhcmdldE5vZGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RXZlbnRIYW5kbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCmluZGV4
IDZlZDdhZTMzOTVjODAyNjNkNGE3NzAwZmNhMGFmMGY2ZWY5MThjMmQuLjljNzU3NjVmZjI0NTA3
NjA4Njc1NTQ3MWVjMGMxZTJkNGY2ZmVlZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRXZlbnRIYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIu
aApAQCAtMzM4LDcgKzMzOCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBoYW5kbGVNb3VzZVByZXNz
RXZlbnRUcmlwbGVDbGljayhjb25zdCBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJik7CiAK
ICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotICAgIGJvb2wgaGFuZGxlTW91c2VEcmFnZ2VkRXZl
bnQoY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYpOworICAgIGJvb2wgaGFuZGxl
TW91c2VEcmFnZ2VkRXZlbnQoY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYsIENo
ZWNrRHJhZ0h5c3RlcmVzaXMgPSBTaG91bGRDaGVja0RyYWdIeXN0ZXJlc2lzKTsKICNlbmRpZgog
CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBoYW5kbGVNb3VzZVJlbGVhc2VFdmVudChjb25zdCBN
b3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL2lvcy9FdmVudEhhbmRsZXJJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9F
dmVudEhhbmRsZXJJT1MubW0KaW5kZXggMjliYWRlZjU5NTU4NGEzZmNlNTNjYTJmODI0MWU0ZjZl
ZmQ3NTRkNS4uZDNmNzVkOTQwZmIxMTM0MDllMTgwZTBhZWUwY2QyMmNkOGRhZWViNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvRXZlbnRIYW5kbGVySU9TLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvaW9zL0V2ZW50SGFuZGxlcklPUy5tbQpAQCAtNDksNiArNDksMTAg
QEAKICNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9FdmVudEhhbmRsZXJJT1NUb3VjaC5jcHA+CiAj
ZW5kaWYKIAorI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspICYmIF9faGFzX2luY2x1ZGUoPFdl
YktpdEFkZGl0aW9ucy9FdmVudEhhbmRsZXJBZGRpdGlvbnMubW0+KQorI2ltcG9ydCA8V2ViS2l0
QWRkaXRpb25zL0V2ZW50SGFuZGxlckFkZGl0aW9ucy5tbT4KKyNlbmRpZgorCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIHN0YXRpYyBSZXRhaW5QdHI8V2ViRXZlbnQ+JiBjdXJyZW50RXZlbnRTbG90
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbQppbmRleCBhZDdh
NTllMzFlMDk1YjBiYzUyMDUwNzJmZGYxODM5ZjBmNGY2ODNlLi42YzQ0NGFhMzQ2ZjdmMmMyM2Q2
YTFhYmU2OTg3YmNiNTljNDY2OGNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21h
Yy9FdmVudEhhbmRsZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRXZlbnRI
YW5kbGVyTWFjLm1tCkBAIC03NCwxMCArNzQsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LSNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotY29uc3QgZG91YmxlIEV2ZW50SGFuZGxlcjo6VGV4
dERyYWdEZWxheSA9IDAuMTU7Ci0jZW5kaWYKLQogY29uc3QgZG91YmxlIHJlc2V0TGF0Y2hlZFN0
YXRlVGltZW91dCA9IDAuMTsKIAogc3RhdGljIFJldGFpblB0cjxOU0V2ZW50PiYgY3VycmVudE5T
RXZlbnRTbG90KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdJbWFn
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnSW1hZ2UuY3BwCmluZGV4IGFhNTY2
YWYzMzg0ZmFlMGMxMzAzMmNkM2NiMWMwNTNlMmQzN2MyZTQuLmQ4YjVkZWE3YzZiZGQ5NWNhMzEy
Nzg2NmQyNWM0NWQ5MDk0YWI0ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0RyYWdJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0ltYWdlLmNw
cApAQCAtMTIwLDEyICsxMjAsMTYgQEAgRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUZvck5v
ZGUoRnJhbWUmIGZyYW1lLCBOb2RlJiBub2RlKQogICAgIHJldHVybiBjcmVhdGVEcmFnSW1hZ2VG
cm9tU25hcHNob3Qoc25hcHNob3ROb2RlKGZyYW1lLCBub2RlKSwgJm5vZGUpOwogfQogCisjaWYg
IUVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQorCiBEcmFnSW1hZ2VSZWYgY3JlYXRlRHJhZ0ltYWdl
Rm9yU2VsZWN0aW9uKEZyYW1lJiBmcmFtZSwgYm9vbCBmb3JjZUJsYWNrVGV4dCkKIHsKICAgICBT
bmFwc2hvdE9wdGlvbnMgb3B0aW9ucyA9IGZvcmNlQmxhY2tUZXh0ID8gU25hcHNob3RPcHRpb25z
Rm9yY2VCbGFja1RleHQgOiBTbmFwc2hvdE9wdGlvbnNOb25lOwogICAgIHJldHVybiBjcmVhdGVE
cmFnSW1hZ2VGcm9tU25hcHNob3Qoc25hcHNob3RTZWxlY3Rpb24oZnJhbWUsIG9wdGlvbnMpLCBu
dWxscHRyKTsKIH0KIAorI2VuZGlmCisKIHN0cnVjdCBTY29wZWRGcmFtZVNlbGVjdGlvblN0YXRl
IHsKICAgICBTY29wZWRGcmFtZVNlbGVjdGlvblN0YXRlKEZyYW1lJiBmcmFtZSkKICAgICAgICAg
OiBmcmFtZShmcmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3Rl
Ym9hcmQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQuaAppbmRleCBiYWMx
ZjhmMmY0NzkxYzU4N2I0NjA1NjkxYzI4NjJhNTQ2OWQ1MmU4Li4wNmMzZGU3NWViY2FlYzU2MWI5
MThkZWQ1MTA4NWM4ZTRhZWI3Yjc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9QYXN0ZWJvYXJkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZC5o
CkBAIC0xMjksNyArMTI5LDcgQEAgcHVibGljOgogCiBzdHJ1Y3QgUGFzdGVib2FyZFBsYWluVGV4
dCB7CiAgICAgU3RyaW5nIHRleHQ7Ci0jaWYgUExBVEZPUk0oTUFDKQorI2lmIFBMQVRGT1JNKENP
Q09BKQogICAgIGJvb2wgaXNVUkw7CiAjZW5kaWYKIH07CkBAIC0xNzksOCArMTc5LDggQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCB3cml0ZVBhc3RlYm9hcmQoY29uc3QgUGFzdGVib2FyZCYg
c291cmNlUGFzdGVib2FyZCk7CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotICAgIHN0YXRp
YyBzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gY3JlYXRlRm9yRHJhZ0FuZERyb3AoKTsKLSAg
ICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9hcmQ+IGNyZWF0ZUZvckRyYWdBbmREcm9w
KGNvbnN0IERyYWdEYXRhJik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHN0ZDo6dW5pcXVl
X3B0cjxQYXN0ZWJvYXJkPiBjcmVhdGVGb3JEcmFnQW5kRHJvcCgpOworICAgIFdFQkNPUkVfRVhQ
T1JUIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gY3JlYXRlRm9yRHJhZ0FuZERy
b3AoY29uc3QgRHJhZ0RhdGEmKTsKIAogICAgIHZpcnR1YWwgdm9pZCBzZXREcmFnSW1hZ2UoRHJh
Z0ltYWdlUmVmLCBjb25zdCBJbnRQb2ludCYgaG90U3BvdCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9BYnN0cmFjdFBhc3RlYm9hcmQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9BYnN0cmFjdFBhc3RlYm9hcmQuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5h
MWZlMDQwNTQ4NmU0NjI4YzI2YzFkNjZlN2U0NTUzNTAyMDcxOGYwCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0Fic3RyYWN0UGFzdGVib2FyZC5oCkBAIC0w
LDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24u
aD4KKworQHByb3RvY29sIEFic3RyYWN0UGFzdGVib2FyZCA8TlNPYmplY3Q+CitAcmVxdWlyZWQK
KworQHByb3BlcnR5IChyZWFkb25seSwgbm9uYXRvbWljKSBOU0ludGVnZXIgbnVtYmVyT2ZJdGVt
czsKKworLSAoTlNBcnJheTxOU1N0cmluZyAqPiAqKXBhc3RlYm9hcmRUeXBlczsKKy0gKHZvaWQp
c2V0SXRlbXM6KE5TQXJyYXkgKilpdGVtczsKKy0gKE5TQXJyYXkgKilkYXRhRm9yUGFzdGVib2Fy
ZFR5cGU6KE5TU3RyaW5nICopcGFzdGVib2FyZFR5cGUgaW5JdGVtU2V0OihOU0luZGV4U2V0ICop
aXRlbVNldDsKKy0gKE5TQXJyYXkgKil2YWx1ZXNGb3JQYXN0ZWJvYXJkVHlwZTooTlNTdHJpbmcg
KilwYXN0ZWJvYXJkVHlwZSBpbkl0ZW1TZXQ6KE5TSW5kZXhTZXQgKilpdGVtU2V0OworLSAoTlNJ
bnRlZ2VyKWNoYW5nZUNvdW50OworCitAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3MvRHJhZ0ltYWdlSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L0RyYWdJbWFnZUlPUy5tbQppbmRleCAxY2NjZmJhY2Q2ZWQ4N2JjMzMwY2Q0MDgxZTBmOGEwNTE5
OWU2N2RhLi45NjRhZDZlYmEyMWU5ZDBjMTUxYWNiNDQ1OTRlYmJmMDFkNjdlYzA2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvRHJhZ0ltYWdlSU9TLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9EcmFnSW1hZ2VJT1MubW0KQEAgLTI4LDYgKzI4LDEy
IEBACiAKICNpbXBvcnQgPENvcmVHcmFwaGljcy9Db3JlR3JhcGhpY3MuaD4KIAorI2lmIFVTRShB
UFBMRV9JTlRFUk5BTF9TREspICYmIF9faGFzX2luY2x1ZGUoPFdlYktpdEFkZGl0aW9ucy9EcmFn
SW1hZ2VBZGRpdGlvbnMubW0+KQorCisjaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvRHJhZ0ltYWdl
QWRkaXRpb25zLm1tPgorCisjZWxzZQorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIC8vIEZJWE1F
OiBmaXggc2lnbmF0dXJlIG9mIGRyYWdJbWFnZVNpemUoKSB0byBhdm9pZCBjb3B5aW5nIHRoZSBh
cmd1bWVudC4KQEAgLTQ5LDMgKzU1LDUgQEAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGNyZWF0ZURy
YWdJbWFnZUZyb21JbWFnZShJbWFnZSosIEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGkKIH0KIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gVVNFKEFQUExFX0lOVEVSTkFMX1NE
SykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QYXN0ZWJvYXJkSU9T
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1Bhc3RlYm9hcmRJT1MubW0KaW5kZXgg
OTZjNzJkMDFjNzUzMDQ1OTBjMzcwYzYzYjg2NDk2MWJiNmNmMzAxOC4uNTg2MTM5M2Q3YWZiOWVl
MDQ2MjhjNDUxNDI5NmY5YzYxYmY2MDkxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL1Bhc3RlYm9hcmRJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW9zL1Bhc3RlYm9hcmRJT1MubW0KQEAgLTU4LDYgKzU4LDEwIEBACiAtIChCT09MKWNvbnRhaW5z
QXR0YWNobWVudHM7CiBAZW5kCiAKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKSAmJiBfX2hh
c19pbmNsdWRlKDxXZWJLaXRBZGRpdGlvbnMvUGFzdGVib2FyZEFkZGl0aW9ucy5tbT4pCisjaW1w
b3J0IDxXZWJLaXRBZGRpdGlvbnMvUGFzdGVib2FyZEFkZGl0aW9ucy5tbT4KKyNlbmRpZgorCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIC8vIEZJWE1FOiBEb2VzIHRoaXMgbmVlZCB0byBiZSBkZWNs
YXJlZCBpbiB0aGUgaGVhZGVyIGZpbGU/CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3MvV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZC5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL1dlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYTdmYWRm
Zjk2MjJmZmRlNmUzMDI5MGRmYzE3MGE1YWNjZTExZTI3Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQuaApAQCAt
MCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiQWJzdHJhY3RQYXN0ZWJvYXJkLmgi
CisKKyNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikKKworT0JKQ19DTEFTUyBVSUl0ZW1Qcm92
aWRlcjsKKworTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KKworV0VCQ09SRV9FWFBPUlQgQGludGVy
ZmFjZSBXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkIDogTlNPYmplY3Q8QWJzdHJhY3RQYXN0ZWJv
YXJkPgorCisrIChpbnN0YW5jZXR5cGUpc2hhcmVkSW5zdGFuY2U7CisKKy0gKFVJSXRlbVByb3Zp
ZGVyICopaXRlbVByb3ZpZGVyQXRJbmRleDooTlNJbnRlZ2VyKWluZGV4OworCitAcHJvcGVydHkg
KGNvcHksIG5vbmF0b21pYywgbnVsbGFibGUpIE5TQXJyYXk8VUlJdGVtUHJvdmlkZXIgKj4gKml0
ZW1Qcm92aWRlcnM7CitAcHJvcGVydHkgKHJlYWRvbmx5LCBub25hdG9taWMpIE5TSW50ZWdlciBu
dW1iZXJPZkl0ZW1zOworQHByb3BlcnR5IChyZWFkb25seSwgbm9uYXRvbWljKSBOU0ludGVnZXIg
Y2hhbmdlQ291bnQ7CisKK0BlbmQKKworTlNfQVNTVU1FX05PTk5VTExfRU5ECisKKyNlbmRpZiAv
LyBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9XZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL1dlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQubW0KbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTYw
NzcwZjY0ZTMxMTM0MDEzYWU1ZjJkZDI0YmM0NDZjMzdjOGQ0OQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkLm1t
CkBAIC0wLDAgKzEsMjEwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lt
cG9ydCAiV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZC5oIgorCisjaWYgRU5BQkxFKERBVEFfSU5U
RVJBQ1RJT04pCisKKyNpbXBvcnQgIlNvZnRMaW5raW5nLmgiCisjaW1wb3J0ICJVSUtpdFNQSS5o
IgorI2ltcG9ydCA8TW9iaWxlQ29yZVNlcnZpY2VzL01vYmlsZUNvcmVTZXJ2aWNlcy5oPgorI2lt
cG9ydCA8VUlLaXQvVUlDb2xvci5oPgorI2ltcG9ydCA8VUlLaXQvVUlJbWFnZS5oPgorCitTT0ZU
X0xJTktfRlJBTUVXT1JLKFVJS2l0KQorU09GVF9MSU5LX0NMQVNTKFVJS2l0LCBVSUNvbG9yKQor
U09GVF9MSU5LX0NMQVNTKFVJS2l0LCBVSUltYWdlKQorU09GVF9MSU5LX0NMQVNTKFVJS2l0LCBV
SUl0ZW1Qcm92aWRlcikKKworI2RlZmluZSBNQVRDSEVTX1VUSV9UWVBFKHR5cGUsIHN1ZmZpeCkg
W3R5cGUgaXNFcXVhbFRvU3RyaW5nOihfX2JyaWRnZSBOU1N0cmluZyAqKWtVVFR5cGUgIyMgc3Vm
Zml4XQorI2RlZmluZSBNQVRDSEVTX1VJS0lUX1RZUEUodHlwZSwgc3VmZml4KSBbdHlwZSBpc0Vx
dWFsVG9TdHJpbmc6QCJjb20uYXBwbGUudWlraXQuICMjIHN1ZmZpeCAjIyJdCisKK3N0YXRpYyBC
T09MIGlzUmljaFRleHRUeXBlKE5TU3RyaW5nICp0eXBlKQoreworICAgIHJldHVybiBNQVRDSEVT
X1VUSV9UWVBFKHR5cGUsIFJURikgfHwgTUFUQ0hFU19VVElfVFlQRSh0eXBlLCBSVEZEKSB8fCBN
QVRDSEVTX1VUSV9UWVBFKHR5cGUsIEhUTUwpOworfQorCitzdGF0aWMgQk9PTCBpc1N0cmluZ1R5
cGUoTlNTdHJpbmcgKnR5cGUpCit7CisgICAgcmV0dXJuIE1BVENIRVNfVVRJX1RZUEUodHlwZSwg
VGV4dCkgfHwgTUFUQ0hFU19VVElfVFlQRSh0eXBlLCBVVEY4UGxhaW5UZXh0KSB8fCBNQVRDSEVT
X1VUSV9UWVBFKHR5cGUsIFVURjE2UGxhaW5UZXh0KTsKK30KKworc3RhdGljIEJPT0wgaXNVUkxU
eXBlKE5TU3RyaW5nICp0eXBlKQoreworICAgIHJldHVybiBNQVRDSEVTX1VUSV9UWVBFKHR5cGUs
IFVSTCk7Cit9CisKK3N0YXRpYyBCT09MIGlzQ29sb3JUeXBlKE5TU3RyaW5nICp0eXBlKQorewor
ICAgIHJldHVybiBNQVRDSEVTX1VJS0lUX1RZUEUodHlwZSwgY29sb3IpOworfQorCitzdGF0aWMg
Qk9PTCBpc0ltYWdlVHlwZShOU1N0cmluZyAqdHlwZSkKK3sKKyAgICByZXR1cm4gTUFUQ0hFU19V
VElfVFlQRSh0eXBlLCBQTkcpIHx8IE1BVENIRVNfVVRJX1RZUEUodHlwZSwgSlBFRykgfHwgTUFU
Q0hFU19VVElfVFlQRSh0eXBlLCBHSUYpIHx8IE1BVENIRVNfVUlLSVRfVFlQRSh0eXBlLCBpbWFn
ZSk7Cit9CisKK0BpbnRlcmZhY2UgV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZCAoKQorCitAcHJv
cGVydHkgKG5vbmF0b21pYykgTlNJbnRlZ2VyIG51bWJlck9mSXRlbXM7CitAcHJvcGVydHkgKG5v
bmF0b21pYykgTlNJbnRlZ2VyIGNoYW5nZUNvdW50OworCitAZW5kCisKK0BpbXBsZW1lbnRhdGlv
biBXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkCisKKysgKGluc3RhbmNldHlwZSlzaGFyZWRJbnN0
YW5jZQoreworICAgIHN0YXRpYyBXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkICpzaGFyZWRQYXN0
ZWJvYXJkID0gbmlsOworICAgIHN0YXRpYyBkaXNwYXRjaF9vbmNlX3Qgb25jZVRva2VuOworICAg
IGRpc3BhdGNoX29uY2UoJm9uY2VUb2tlbiwgXigpIHsKKyAgICAgICAgc2hhcmVkUGFzdGVib2Fy
ZCA9IFtbV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZCBhbGxvY10gaW5pdF07CisgICAgfSk7Cisg
ICAgcmV0dXJuIHNoYXJlZFBhc3RlYm9hcmQ7Cit9CisKKy0gKGluc3RhbmNldHlwZSlpbml0Cit7
CisgICAgaWYgKHNlbGYgPSBbc3VwZXIgaW5pdF0pIHsKKyAgICAgICAgX2l0ZW1Qcm92aWRlcnMg
PSBbW05TQXJyYXkgYWxsb2NdIGluaXRdOworICAgICAgICBfY2hhbmdlQ291bnQgPSAwOworICAg
IH0KKyAgICByZXR1cm4gc2VsZjsKK30KKworLSAodm9pZClkZWFsbG9jCit7CisgICAgW3N1cGVy
IGRlYWxsb2NdOworICAgIFtfaXRlbVByb3ZpZGVycyByZWxlYXNlXTsKK30KKworLSAoTlNBcnJh
eTxOU1N0cmluZyAqPiAqKXBhc3RlYm9hcmRUeXBlcworeworICAgIE5TTXV0YWJsZVNldDxOU1N0
cmluZyAqPiAqYWxsVHlwZXMgPSBbTlNNdXRhYmxlU2V0IHNldF07CisgICAgZm9yIChVSUl0ZW1Q
cm92aWRlciAqcHJvdmlkZXIgaW4gX2l0ZW1Qcm92aWRlcnMpCisgICAgICAgIFthbGxUeXBlcyBh
ZGRPYmplY3RzRnJvbUFycmF5OnByb3ZpZGVyLnJlZ2lzdGVyZWRUeXBlSWRlbnRpZmllcnNdOwor
ICAgIHJldHVybiBhbGxUeXBlcy5hbGxPYmplY3RzOworfQorCistICh2b2lkKXNldEl0ZW1Qcm92
aWRlcnM6KE5TQXJyYXk8VUlJdGVtUHJvdmlkZXIgKj4gKilpdGVtUHJvdmlkZXJzCit7CisgICAg
aXRlbVByb3ZpZGVycyA9IGl0ZW1Qcm92aWRlcnMgPzogW05TQXJyYXkgYXJyYXldOworICAgIGlm
IChfaXRlbVByb3ZpZGVycyA9PSBpdGVtUHJvdmlkZXJzIHx8IFtfaXRlbVByb3ZpZGVycyBpc0Vx
dWFsVG9BcnJheTppdGVtUHJvdmlkZXJzXSkKKyAgICAgICAgcmV0dXJuOworICAgIF9pdGVtUHJv
dmlkZXJzID0gW2l0ZW1Qcm92aWRlcnMgY29weV07CisgICAgX2NoYW5nZUNvdW50Kys7Cit9CisK
Ky0gKE5TSW50ZWdlciludW1iZXJPZkl0ZW1zCit7CisgICAgcmV0dXJuIF9pdGVtUHJvdmlkZXJz
LmNvdW50OworfQorCistICh2b2lkKXNldEl0ZW1zOihOU0FycmF5ICopaXRlbXMKK3sKKyAgICBO
U011dGFibGVBcnJheSAqcHJvdmlkZXJzID0gW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdF07
CisgICAgZm9yIChOU0RpY3Rpb25hcnkgKml0ZW0gaW4gaXRlbXMpIHsKKyAgICAgICAgaWYgKCFp
dGVtLmNvdW50KQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIFVJSXRlbVByb3ZpZGVy
ICppdGVtUHJvdmlkZXIgPSBbW2dldFVJSXRlbVByb3ZpZGVyQ2xhc3MoKSBhbGxvY10gaW5pdF07
CisgICAgICAgIGZvciAoTlNTdHJpbmcgKnR5cGVJZGVudGlmaWVyIGluIGl0ZW0pIHsKKyAgICAg
ICAgICAgIFtpdGVtUHJvdmlkZXIgcmVnaXN0ZXJEYXRhUmVwcmVzZW50YXRpb25Gb3JUeXBlSWRl
bnRpZmllcjp0eXBlSWRlbnRpZmllciBsb2FkSGFuZGxlcjpeKFVJSXRlbVByb3ZpZGVyRGF0YUxv
YWRDb21wbGV0aW9uQmxvY2sgY29tcGxldGlvbkJsb2NrLCBOU0RpY3Rpb25hcnkgKikgeworICAg
ICAgICAgICAgICAgIGNvbXBsZXRpb25CbG9jayhpdGVtW3R5cGVJZGVudGlmaWVyXSwgbmlsKTsK
KyAgICAgICAgICAgIH1dOworICAgICAgICB9CisgICAgICAgIFtwcm92aWRlcnMgYWRkT2JqZWN0
Oml0ZW1Qcm92aWRlcl07CisgICAgfQorICAgIF9jaGFuZ2VDb3VudCsrOworICAgIF9pdGVtUHJv
dmlkZXJzID0gcHJvdmlkZXJzOworfQorCistIChOU0FycmF5ICopZGF0YUZvclBhc3RlYm9hcmRU
eXBlOihOU1N0cmluZyAqKXBhc3RlYm9hcmRUeXBlIGluSXRlbVNldDooTlNJbmRleFNldCAqKWl0
ZW1TZXQKK3sKKyAgICBfX2Jsb2NrIE5TTXV0YWJsZUFycmF5ICp2YWx1ZXMgPSBbTlNNdXRhYmxl
QXJyYXkgYXJyYXldOworICAgIFtpdGVtU2V0IGVudW1lcmF0ZUluZGV4ZXNVc2luZ0Jsb2NrOl4o
TlNVSW50ZWdlciBpbmRleCwgQk9PTCAqKSB7CisgICAgICAgIFVJSXRlbVByb3ZpZGVyICpwcm92
aWRlciA9IFtzZWxmIGl0ZW1Qcm92aWRlckF0SW5kZXg6aW5kZXhdOworICAgICAgICBpZiAoIXBy
b3ZpZGVyKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIE5TRGF0YSAqZGF0YSA9IFtw
cm92aWRlciBjb3B5RGF0YVJlcHJlc2VudGF0aW9uRm9yVHlwZUlkZW50aWZpZXI6cGFzdGVib2Fy
ZFR5cGUgb3B0aW9uczpuaWwgZXJyb3I6bmlsXTsKKyAgICAgICAgaWYgKGRhdGEpCisgICAgICAg
ICAgICBbdmFsdWVzIGFkZE9iamVjdDpkYXRhXTsKKyAgICB9XTsKKworICAgIHJldHVybiB2YWx1
ZXM7Cit9CisKKy0gKE5TQXJyYXkgKil2YWx1ZXNGb3JQYXN0ZWJvYXJkVHlwZTooTlNTdHJpbmcg
KilwYXN0ZWJvYXJkVHlwZSBpbkl0ZW1TZXQ6KE5TSW5kZXhTZXQgKilpdGVtU2V0Cit7CisgICAg
X19ibG9jayBOU011dGFibGVBcnJheSAqdmFsdWVzID0gW05TTXV0YWJsZUFycmF5IGFycmF5XTsK
KyAgICBbaXRlbVNldCBlbnVtZXJhdGVJbmRleGVzVXNpbmdCbG9jazpeKE5TVUludGVnZXIgaW5k
ZXgsIEJPT0wgKikgeworICAgICAgICBVSUl0ZW1Qcm92aWRlciAqcHJvdmlkZXIgPSBbc2VsZiBp
dGVtUHJvdmlkZXJBdEluZGV4OmluZGV4XTsKKyAgICAgICAgaWYgKCFwcm92aWRlcikKKyAgICAg
ICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAoaXNSaWNoVGV4dFR5cGUocGFzdGVib2FyZFR5
cGUpICYmIFtwcm92aWRlciBjYW5JbnN0YW50aWF0ZU9iamVjdE9mQ2xhc3M6W05TQXR0cmlidXRl
ZFN0cmluZyBjbGFzc11dKSB7CisgICAgICAgICAgICBbdmFsdWVzIGFkZE9iamVjdDpbcHJvdmlk
ZXIgaW5zdGFudGlhdGVPYmplY3RPZkNsYXNzOltOU0F0dHJpYnV0ZWRTdHJpbmcgY2xhc3NdIG9w
dGlvbnM6bmlsIGVycm9yOm5pbF1dOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisK
KyAgICAgICAgaWYgKGlzU3RyaW5nVHlwZShwYXN0ZWJvYXJkVHlwZSkgJiYgW3Byb3ZpZGVyIGNh
bkluc3RhbnRpYXRlT2JqZWN0T2ZDbGFzczpbTlNTdHJpbmcgY2xhc3NdXSkgeworICAgICAgICAg
ICAgW3ZhbHVlcyBhZGRPYmplY3Q6W3Byb3ZpZGVyIGluc3RhbnRpYXRlT2JqZWN0T2ZDbGFzczpb
TlNTdHJpbmcgY2xhc3NdIG9wdGlvbnM6bmlsIGVycm9yOm5pbF1dOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGlzQ29sb3JUeXBlKHBhc3RlYm9hcmRUeXBl
KSAmJiBbcHJvdmlkZXIgY2FuSW5zdGFudGlhdGVPYmplY3RPZkNsYXNzOltnZXRVSUNvbG9yQ2xh
c3MoKSBjbGFzc11dKSB7CisgICAgICAgICAgICBbdmFsdWVzIGFkZE9iamVjdDpbcHJvdmlkZXIg
aW5zdGFudGlhdGVPYmplY3RPZkNsYXNzOltnZXRVSUNvbG9yQ2xhc3MoKSBjbGFzc10gb3B0aW9u
czpuaWwgZXJyb3I6bmlsXV07CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAg
ICAgICBpZiAoaXNVUkxUeXBlKHBhc3RlYm9hcmRUeXBlKSAmJiBbcHJvdmlkZXIgY2FuSW5zdGFu
dGlhdGVPYmplY3RPZkNsYXNzOltOU1VSTCBjbGFzc11dKSB7CisgICAgICAgICAgICBbdmFsdWVz
IGFkZE9iamVjdDpbcHJvdmlkZXIgaW5zdGFudGlhdGVPYmplY3RPZkNsYXNzOltOU1VSTCBjbGFz
c10gb3B0aW9uczpuaWwgZXJyb3I6bmlsXV07CisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IH0KKworICAgICAgICBpZiAoaXNJbWFnZVR5cGUocGFzdGVib2FyZFR5cGUpICYmIFtwcm92aWRl
ciBjYW5JbnN0YW50aWF0ZU9iamVjdE9mQ2xhc3M6W2dldFVJSW1hZ2VDbGFzcygpIGNsYXNzXV0p
IHsKKyAgICAgICAgICAgIFt2YWx1ZXMgYWRkT2JqZWN0Oltwcm92aWRlciBpbnN0YW50aWF0ZU9i
amVjdE9mQ2xhc3M6W2dldFVJSW1hZ2VDbGFzcygpIGNsYXNzXSBvcHRpb25zOm5pbCBlcnJvcjpu
aWxdXTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIFdURkxvZ0Fs
d2F5cygiRmFpbGVkIHRvIGluc3RhbnRpYXRlIG9iamVjdCBmb3IgdHlwZTogJyVzJyBhdCBpbmRl
eDogJXR1IiwgcGFzdGVib2FyZFR5cGUuVVRGOFN0cmluZywgaW5kZXgpOworICAgIH1dOworICAg
IHJldHVybiB2YWx1ZXM7Cit9CisKKy0gKE5TSW50ZWdlciljaGFuZ2VDb3VudAoreworICAgIHJl
dHVybiBfY2hhbmdlQ291bnQ7Cit9CisKKy0gKFVJSXRlbVByb3ZpZGVyICopaXRlbVByb3ZpZGVy
QXRJbmRleDooTlNJbnRlZ2VyKWluZGV4Cit7CisgICAgcmV0dXJuIDAgPD0gaW5kZXggJiYgaW5k
ZXggPCAoTlNJbnRlZ2VyKV9pdGVtUHJvdmlkZXJzLmNvdW50ID8gX2l0ZW1Qcm92aWRlcnNbaW5k
ZXhdIDogbmlsOworfQorCitAZW5kCisKKyNlbmRpZiAvLyBFTkFCTEUoREFUQV9JTlRFUkFDVElP
TikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EcmFnRGF0YU1hYy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EcmFnRGF0YU1hYy5tbQppbmRleCA3NWQ1
MGJjZWIzMGFjOTllZDljODZiMzFjNjYzMDU5ZTA1MmRjOGYyLi4wZmZlZDZjYTU2OWIwM2EwNDlh
MmYxMmVkZjUxYWZhZmVlODBhOWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvRHJhZ0RhdGFNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0Ry
YWdEYXRhTWFjLm1tCkBAIC0zMyw2ICszMyw1NCBAQAogI2ltcG9ydCAiUGxhdGZvcm1TdHJhdGVn
aWVzLmgiCiAjaW1wb3J0ICJXZWJDb3JlTlNVUkxFeHRyYXMuaCIKIAorI2lmIFVTRShBUFBMRV9J
TlRFUk5BTF9TREspICYmIF9faGFzX2luY2x1ZGUoPFdlYktpdEFkZGl0aW9ucy9EcmFnRGF0YUFk
ZGl0aW9ucy5tbT4pCisKKyNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9EcmFnRGF0YUFkZGl0aW9u
cy5tbT4KKworI2Vsc2UKKworc3RhdGljIGlubGluZSBTdHJpbmcgcnRmUGFzdGVib2FyZFR5cGUo
KQoreworICAgIHJldHVybiBTdHJpbmcoTlNSVEZQYm9hcmRUeXBlKTsKK30KKworc3RhdGljIGlu
bGluZSBTdHJpbmcgcnRmZFBhc3RlYm9hcmRUeXBlKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nKE5T
UlRGRFBib2FyZFR5cGUpOworfQorCitzdGF0aWMgaW5saW5lIFN0cmluZyBzdHJpbmdQYXN0ZWJv
YXJkVHlwZSgpCit7CisgICAgcmV0dXJuIFN0cmluZyhOU1N0cmluZ1Bib2FyZFR5cGUpOworfQor
CitzdGF0aWMgaW5saW5lIFN0cmluZyB1cmxQYXN0ZWJvYXJkVHlwZSgpCit7CisgICAgcmV0dXJu
IFN0cmluZyhOU1VSTFBib2FyZFR5cGUpOworfQorCitzdGF0aWMgaW5saW5lIFN0cmluZyBodG1s
UGFzdGVib2FyZFR5cGUoKQoreworICAgIHJldHVybiBTdHJpbmcoTlNIVE1MUGJvYXJkVHlwZSk7
Cit9CisKK3N0YXRpYyBpbmxpbmUgU3RyaW5nIGNvbG9yUGFzdGVib2FyZFR5cGUoKQoreworICAg
IHJldHVybiBTdHJpbmcoTlNDb2xvclBib2FyZFR5cGUpOworfQorCitzdGF0aWMgaW5saW5lIFN0
cmluZyBwZGZQYXN0ZWJvYXJkVHlwZSgpCit7CisgICAgcmV0dXJuIFN0cmluZyhOU1BERlBib2Fy
ZFR5cGUpOworfQorCitzdGF0aWMgaW5saW5lIFN0cmluZyB0aWZmUGFzdGVib2FyZFR5cGUoKQor
eworICAgIHJldHVybiBTdHJpbmcoTlNUSUZGUGJvYXJkVHlwZSk7Cit9CisKKyNlbmRpZiAvLyBV
U0UoQVBQTEVfSU5URVJOQUxfU0RLKQorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIERyYWdEYXRh
OjpEcmFnRGF0YShEcmFnRGF0YVJlZiBkYXRhLCBjb25zdCBJbnRQb2ludCYgY2xpZW50UG9zaXRp
b24sIGNvbnN0IEludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgCkBAIC00Miw3ICs5MCwxMSBAQCBE
cmFnRGF0YTo6RHJhZ0RhdGEoRHJhZ0RhdGFSZWYgZGF0YSwgY29uc3QgSW50UG9pbnQmIGNsaWVu
dFBvc2l0aW9uLCBjb25zdCBJbnRQbwogICAgICwgbV9wbGF0Zm9ybURyYWdEYXRhKGRhdGEpCiAg
ICAgLCBtX2RyYWdnaW5nU291cmNlT3BlcmF0aW9uTWFzayhzb3VyY2VPcGVyYXRpb25NYXNrKQog
ICAgICwgbV9hcHBsaWNhdGlvbkZsYWdzKGZsYWdzKQorI2lmIFBMQVRGT1JNKE1BQykKICAgICAs
IG1fcGFzdGVib2FyZE5hbWUoW1ttX3BsYXRmb3JtRHJhZ0RhdGEgZHJhZ2dpbmdQYXN0ZWJvYXJk
XSBuYW1lXSkKKyNlbHNlCisgICAgLCBtX3Bhc3RlYm9hcmROYW1lKCJkYXRhIGludGVyYWN0aW9u
IHBhc3RlYm9hcmQiKQorI2VuZGlmCiB7CiB9CiAKQEAgLTY2LDMwICsxMTgsNDAgQEAgYm9vbCBE
cmFnRGF0YTo6Y29udGFpbnNDb2xvcigpIGNvbnN0CiB7CiAgICAgVmVjdG9yPFN0cmluZz4gdHlw
ZXM7CiAgICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT5nZXRU
eXBlcyh0eXBlcywgbV9wYXN0ZWJvYXJkTmFtZSk7Ci0gICAgcmV0dXJuIHR5cGVzLmNvbnRhaW5z
KFN0cmluZyhOU0NvbG9yUGJvYXJkVHlwZSkpOworICAgIHJldHVybiB0eXBlcy5jb250YWlucyhj
b2xvclBhc3RlYm9hcmRUeXBlKCkpOwogfQogCiBib29sIERyYWdEYXRhOjpjb250YWluc0ZpbGVz
KCkgY29uc3QKIHsKKyNpZiBQTEFURk9STShNQUMpCiAgICAgVmVjdG9yPFN0cmluZz4gdHlwZXM7
CiAgICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT5nZXRUeXBl
cyh0eXBlcywgbV9wYXN0ZWJvYXJkTmFtZSk7CiAgICAgcmV0dXJuIHR5cGVzLmNvbnRhaW5zKFN0
cmluZyhOU0ZpbGVuYW1lc1Bib2FyZFR5cGUpKSB8fCB0eXBlcy5jb250YWlucyhTdHJpbmcoTlNG
aWxlc1Byb21pc2VQYm9hcmRUeXBlKSk7CisjZWxzZQorICAgIHJldHVybiBmYWxzZTsKKyNlbmRp
ZgogfQogCiB1bnNpZ25lZCBEcmFnRGF0YTo6bnVtYmVyT2ZGaWxlcygpIGNvbnN0CiB7CiAgICAg
VmVjdG9yPFN0cmluZz4gZmlsZXM7CisjaWYgUExBVEZPUk0oTUFDKQogICAgIHBsYXRmb3JtU3Ry
YXRlZ2llcygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+Z2V0UGF0aG5hbWVzRm9yVHlwZShmaWxl
cywgU3RyaW5nKE5TRmlsZW5hbWVzUGJvYXJkVHlwZSksIG1fcGFzdGVib2FyZE5hbWUpOwogICAg
IGlmICghZmlsZXMuc2l6ZSgpKQogICAgICAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVi
b2FyZFN0cmF0ZWd5KCktPmdldFBhdGhuYW1lc0ZvclR5cGUoZmlsZXMsIFN0cmluZyhOU0ZpbGVz
UHJvbWlzZVBib2FyZFR5cGUpLCBtX3Bhc3RlYm9hcmROYW1lKTsKKyNlbmRpZgogICAgIHJldHVy
biBmaWxlcy5zaXplKCk7CiB9CiAKIHZvaWQgRHJhZ0RhdGE6OmFzRmlsZW5hbWVzKFZlY3RvcjxT
dHJpbmc+JiByZXN1bHQpIGNvbnN0CiB7CisjaWYgUExBVEZPUk0oTUFDKQogICAgIHBsYXRmb3Jt
U3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+Z2V0UGF0aG5hbWVzRm9yVHlwZShy
ZXN1bHQsIFN0cmluZyhOU0ZpbGVuYW1lc1Bib2FyZFR5cGUpLCBtX3Bhc3RlYm9hcmROYW1lKTsK
ICAgICBpZiAoIXJlc3VsdC5zaXplKCkpCiAgICAgICAgIHJlc3VsdCA9IGZpbGVOYW1lcygpOwor
I2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ocmVzdWx0KTsKKyNlbmRpZgogfQogCiBib29sIERyYWdE
YXRhOjpjb250YWluc1BsYWluVGV4dCgpIGNvbnN0CkBAIC05NywxMSArMTU5LDEzIEBAIGJvb2wg
RHJhZ0RhdGE6OmNvbnRhaW5zUGxhaW5UZXh0KCkgY29uc3QKICAgICBWZWN0b3I8U3RyaW5nPiB0
eXBlczsKICAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPmdl
dFR5cGVzKHR5cGVzLCBtX3Bhc3RlYm9hcmROYW1lKTsKIAotICAgIHJldHVybiB0eXBlcy5jb250
YWlucyhTdHJpbmcoTlNTdHJpbmdQYm9hcmRUeXBlKSkKLSAgICAgICAgfHwgdHlwZXMuY29udGFp
bnMoU3RyaW5nKE5TUlRGRFBib2FyZFR5cGUpKQotICAgICAgICB8fCB0eXBlcy5jb250YWlucyhT
dHJpbmcoTlNSVEZQYm9hcmRUeXBlKSkKKyAgICByZXR1cm4gdHlwZXMuY29udGFpbnMoc3RyaW5n
UGFzdGVib2FyZFR5cGUoKSkKKyAgICAgICAgfHwgdHlwZXMuY29udGFpbnMocnRmZFBhc3RlYm9h
cmRUeXBlKCkpCisgICAgICAgIHx8IHR5cGVzLmNvbnRhaW5zKHJ0ZlBhc3RlYm9hcmRUeXBlKCkp
CisjaWYgUExBVEZPUk0oTUFDKQogICAgICAgICB8fCB0eXBlcy5jb250YWlucyhTdHJpbmcoTlNG
aWxlbmFtZXNQYm9hcmRUeXBlKSkKLSAgICAgICAgfHwgcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBh
c3RlYm9hcmRTdHJhdGVneSgpLT5zdHJpbmdGb3JUeXBlKFN0cmluZyhOU1VSTFBib2FyZFR5cGUp
LCBtX3Bhc3RlYm9hcmROYW1lKS5sZW5ndGgoKTsKKyNlbmRpZgorICAgICAgICB8fCBwbGF0Zm9y
bVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPnN0cmluZ0ZvclR5cGUodXJsUGFz
dGVib2FyZFR5cGUoKSwgbV9wYXN0ZWJvYXJkTmFtZSkubGVuZ3RoKCk7CiB9CiAKIFN0cmluZyBE
cmFnRGF0YTo6YXNQbGFpblRleHQoKSBjb25zdApAQCAtMTMwLDIzICsxOTQsMjcgQEAgYm9vbCBE
cmFnRGF0YTo6Y29udGFpbnNDb21wYXRpYmxlQ29udGVudCgpIGNvbnN0CiAgICAgVmVjdG9yPFN0
cmluZz4gdHlwZXM7CiAgICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVn
eSgpLT5nZXRUeXBlcyh0eXBlcywgbV9wYXN0ZWJvYXJkTmFtZSk7CiAgICAgcmV0dXJuIHR5cGVz
LmNvbnRhaW5zKFN0cmluZyhXZWJBcmNoaXZlUGJvYXJkVHlwZSkpCi0gICAgICAgIHx8IHR5cGVz
LmNvbnRhaW5zKFN0cmluZyhOU0hUTUxQYm9hcmRUeXBlKSkKKyAgICAgICAgfHwgdHlwZXMuY29u
dGFpbnMoaHRtbFBhc3RlYm9hcmRUeXBlKCkpCisjaWYgUExBVEZPUk0oTUFDKQogICAgICAgICB8
fCB0eXBlcy5jb250YWlucyhTdHJpbmcoTlNGaWxlbmFtZXNQYm9hcmRUeXBlKSkKICAgICAgICAg
fHwgdHlwZXMuY29udGFpbnMoU3RyaW5nKE5TRmlsZXNQcm9taXNlUGJvYXJkVHlwZSkpCi0gICAg
ICAgIHx8IHR5cGVzLmNvbnRhaW5zKFN0cmluZyhOU1RJRkZQYm9hcmRUeXBlKSkKLSAgICAgICAg
fHwgdHlwZXMuY29udGFpbnMoU3RyaW5nKE5TUERGUGJvYXJkVHlwZSkpCi0gICAgICAgIHx8IHR5
cGVzLmNvbnRhaW5zKFN0cmluZyhOU1VSTFBib2FyZFR5cGUpKQotICAgICAgICB8fCB0eXBlcy5j
b250YWlucyhTdHJpbmcoTlNSVEZEUGJvYXJkVHlwZSkpCi0gICAgICAgIHx8IHR5cGVzLmNvbnRh
aW5zKFN0cmluZyhOU1JURlBib2FyZFR5cGUpKQotICAgICAgICB8fCB0eXBlcy5jb250YWlucyhT
dHJpbmcoTlNTdHJpbmdQYm9hcmRUeXBlKSkKLSAgICAgICAgfHwgdHlwZXMuY29udGFpbnMoU3Ry
aW5nKE5TQ29sb3JQYm9hcmRUeXBlKSkKKyNlbmRpZgorICAgICAgICB8fCB0eXBlcy5jb250YWlu
cyh0aWZmUGFzdGVib2FyZFR5cGUoKSkKKyAgICAgICAgfHwgdHlwZXMuY29udGFpbnMocGRmUGFz
dGVib2FyZFR5cGUoKSkKKyAgICAgICAgfHwgdHlwZXMuY29udGFpbnModXJsUGFzdGVib2FyZFR5
cGUoKSkKKyAgICAgICAgfHwgdHlwZXMuY29udGFpbnMocnRmZFBhc3RlYm9hcmRUeXBlKCkpCisg
ICAgICAgIHx8IHR5cGVzLmNvbnRhaW5zKHJ0ZlBhc3RlYm9hcmRUeXBlKCkpCisgICAgICAgIHx8
IHR5cGVzLmNvbnRhaW5zKHN0cmluZ1Bhc3RlYm9hcmRUeXBlKCkpCisgICAgICAgIHx8IHR5cGVz
LmNvbnRhaW5zKGNvbG9yUGFzdGVib2FyZFR5cGUoKSkKICAgICAgICAgfHwgdHlwZXMuY29udGFp
bnMoU3RyaW5nKGtVVFR5cGVQTkcpKTsKIH0KIAogYm9vbCBEcmFnRGF0YTo6Y29udGFpbnNQcm9t
aXNlKCkgY29uc3QKIHsKICAgICBWZWN0b3I8U3RyaW5nPiBmaWxlczsKKyNpZiBQTEFURk9STShN
QUMpCiAgICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT5nZXRQ
YXRobmFtZXNGb3JUeXBlKGZpbGVzLCBTdHJpbmcoTlNGaWxlc1Byb21pc2VQYm9hcmRUeXBlKSwg
bV9wYXN0ZWJvYXJkTmFtZSk7CisjZW5kaWYKICAgICByZXR1cm4gZmlsZXMuc2l6ZSgpID09IDE7
CiB9CiAKQEAgLTE2MCwyNCArMjI4LDI2IEBAIFN0cmluZyBEcmFnRGF0YTo6YXNVUkwoRmlsZW5h
bWVDb252ZXJzaW9uUG9saWN5LCBTdHJpbmcqIHRpdGxlKSBjb25zdAogICAgIC8vIEZJWE1FOiBV
c2UgZmlsZW5hbWVQb2xpY3kuCiAKICAgICBpZiAodGl0bGUpIHsKKyNpZiBQTEFURk9STShNQUMp
CiAgICAgICAgIFN0cmluZyBVUkxUaXRsZVN0cmluZyA9IHBsYXRmb3JtU3RyYXRlZ2llcygpLT5w
YXN0ZWJvYXJkU3RyYXRlZ3koKS0+c3RyaW5nRm9yVHlwZShTdHJpbmcoV2ViVVJMTmFtZVBib2Fy
ZFR5cGUpLCBtX3Bhc3RlYm9hcmROYW1lKTsKICAgICAgICAgaWYgKCFVUkxUaXRsZVN0cmluZy5p
c0VtcHR5KCkpCiAgICAgICAgICAgICAqdGl0bGUgPSBVUkxUaXRsZVN0cmluZzsKKyNlbmRpZgog
ICAgIH0KICAgICAKICAgICBWZWN0b3I8U3RyaW5nPiB0eXBlczsKICAgICBwbGF0Zm9ybVN0cmF0
ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPmdldFR5cGVzKHR5cGVzLCBtX3Bhc3RlYm9h
cmROYW1lKTsKIAotICAgIGlmICh0eXBlcy5jb250YWlucyhTdHJpbmcoTlNVUkxQYm9hcmRUeXBl
KSkpIHsKLSAgICAgICAgTlNVUkwgKlVSTEZyb21QYXN0ZWJvYXJkID0gW05TVVJMIFVSTFdpdGhT
dHJpbmc6cGxhdGZvcm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT5zdHJpbmdG
b3JUeXBlKFN0cmluZyhOU1VSTFBib2FyZFR5cGUpLCBtX3Bhc3RlYm9hcmROYW1lKV07CisgICAg
aWYgKHR5cGVzLmNvbnRhaW5zKHVybFBhc3RlYm9hcmRUeXBlKCkpKSB7CisgICAgICAgIE5TVVJM
ICpVUkxGcm9tUGFzdGVib2FyZCA9IFtOU1VSTCBVUkxXaXRoU3RyaW5nOnBsYXRmb3JtU3RyYXRl
Z2llcygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+c3RyaW5nRm9yVHlwZSh1cmxQYXN0ZWJvYXJk
VHlwZSgpLCBtX3Bhc3RlYm9hcmROYW1lKV07CiAgICAgICAgIE5TU3RyaW5nICpzY2hlbWUgPSBb
VVJMRnJvbVBhc3RlYm9hcmQgc2NoZW1lXTsKICAgICAgICAgLy8gQ2Fubm90IGRyb3Agb3RoZXIg
c2NoZW1lcyB1bmxlc3MgPHJkYXI6Ly9wcm9ibGVtLzEwNTYyNjYyPiBhbmQgPHJkYXI6Ly9wcm9i
bGVtLzExMTg3MzE1PiBhcmUgZml4ZWQuCiAgICAgICAgIGlmIChbc2NoZW1lIGlzRXF1YWxUb1N0
cmluZzpAImh0dHAiXSB8fCBbc2NoZW1lIGlzRXF1YWxUb1N0cmluZzpAImh0dHBzIl0pCiAgICAg
ICAgICAgICByZXR1cm4gW1VSTEJ5Q2Fub25pY2FsaXppbmdVUkwoVVJMRnJvbVBhc3RlYm9hcmQp
IGFic29sdXRlU3RyaW5nXTsKICAgICB9CiAgICAgCi0gICAgaWYgKHR5cGVzLmNvbnRhaW5zKFN0
cmluZyhOU1N0cmluZ1Bib2FyZFR5cGUpKSkgewotICAgICAgICBOU1VSTCAqVVJMRnJvbVBhc3Rl
Ym9hcmQgPSBbTlNVUkwgVVJMV2l0aFN0cmluZzpwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVi
b2FyZFN0cmF0ZWd5KCktPnN0cmluZ0ZvclR5cGUoU3RyaW5nKE5TU3RyaW5nUGJvYXJkVHlwZSks
IG1fcGFzdGVib2FyZE5hbWUpXTsKKyAgICBpZiAodHlwZXMuY29udGFpbnMoc3RyaW5nUGFzdGVi
b2FyZFR5cGUoKSkpIHsKKyAgICAgICAgTlNVUkwgKlVSTEZyb21QYXN0ZWJvYXJkID0gW05TVVJM
IFVSTFdpdGhTdHJpbmc6cGxhdGZvcm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgp
LT5zdHJpbmdGb3JUeXBlKHN0cmluZ1Bhc3RlYm9hcmRUeXBlKCksIG1fcGFzdGVib2FyZE5hbWUp
XTsKICAgICAgICAgTlNTdHJpbmcgKnNjaGVtZSA9IFtVUkxGcm9tUGFzdGVib2FyZCBzY2hlbWVd
OwogICAgICAgICAvLyBQYXN0ZWJvYXJkIGNvbnRlbnQgaXMgbm90IHRydXN0ZWQsIGJlY2F1c2Ug
SmF2YVNjcmlwdCBjb2RlIGNhbiBtb2RpZnkgaXQuIFdlIGNhbiBzYW5pdGl6ZSBpdCBmb3IgVVJM
cyBhbmQgb3RoZXIgdHlwZWQgY29udGVudCwgYnV0IG5vdCBmb3Igc3RyaW5ncy4KICAgICAgICAg
Ly8gVGhlIHJlc3VsdCBvZiB0aGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gaW5pdGlhdGUgbmF2aWdh
dGlvbiwgc28gd2Ugc2hvdWxkbid0IGFsbG93IGFyYml0cmFyeSBmaWxlIFVSTHMuCkBAIC0xODYs
NiArMjU2LDcgQEAgU3RyaW5nIERyYWdEYXRhOjphc1VSTChGaWxlbmFtZUNvbnZlcnNpb25Qb2xp
Y3ksIFN0cmluZyogdGl0bGUpIGNvbnN0CiAgICAgICAgICAgICByZXR1cm4gW1VSTEJ5Q2Fub25p
Y2FsaXppbmdVUkwoVVJMRnJvbVBhc3RlYm9hcmQpIGFic29sdXRlU3RyaW5nXTsKICAgICB9CiAg
ICAgCisjaWYgUExBVEZPUk0oTUFDKQogICAgIGlmICh0eXBlcy5jb250YWlucyhTdHJpbmcoTlNG
aWxlbmFtZXNQYm9hcmRUeXBlKSkpIHsKICAgICAgICAgVmVjdG9yPFN0cmluZz4gZmlsZXM7CiAg
ICAgICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+Z2V0UGF0
aG5hbWVzRm9yVHlwZShmaWxlcywgU3RyaW5nKE5TRmlsZW5hbWVzUGJvYXJkVHlwZSksIG1fcGFz
dGVib2FyZE5hbWUpOwpAQCAtMTk5LDYgKzI3MCw3IEBAIFN0cmluZyBEcmFnRGF0YTo6YXNVUkwo
RmlsZW5hbWVDb252ZXJzaW9uUG9saWN5LCBTdHJpbmcqIHRpdGxlKSBjb25zdAogCiAgICAgaWYg
KHR5cGVzLmNvbnRhaW5zKFN0cmluZyhOU0ZpbGVzUHJvbWlzZVBib2FyZFR5cGUpKSAmJiBmaWxl
TmFtZXMoKS5zaXplKCkgPT0gMSkKICAgICAgICAgcmV0dXJuIFtVUkxCeUNhbm9uaWNhbGl6aW5n
VVJMKFtOU1VSTCBmaWxlVVJMV2l0aFBhdGg6ZmlsZU5hbWVzKClbMF1dKSBhYnNvbHV0ZVN0cmlu
Z107CisjZW5kaWYKIAogICAgIHJldHVybiBTdHJpbmcoKTsgICAgICAgIAogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdJbWFnZU1hYy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9EcmFnSW1hZ2VNYWMubW0KaW5kZXggZDJmOGY3MDgwM2NjZGY5
YzUyYmRiNmExN2JkODAxODU1MWRjM2MzOC4uMGU5ZGNhMWJhNmM5YTY4YThhOTBiZjU1MWE0YjRm
YmM3NDhlNWFjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdJ
bWFnZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFj
Lm1tCkBAIC0yNiw3ICsyNiw3IEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIkRyYWdJ
bWFnZS5oIgogCi0jaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKKyNpZiBFTkFCTEUoRFJBR19TVVBQ
T1JUKSAmJiBQTEFURk9STShNQUMpCiAKICNpbXBvcnQgIkJpdG1hcEltYWdlLmgiCiAjaW1wb3J0
ICJDb3JlR3JhcGhpY3NTUEkuaCIKQEAgLTM0OCw0ICszNDgsNCBAQCBEcmFnSW1hZ2VSZWYgY3Jl
YXRlRHJhZ0ltYWdlRm9yTGluayhVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB0aXRsZSwgRm9udFJl
bmRlcmluZwogICAgCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyBFTkFCTEUo
RFJBR19TVVBQT1JUKQorI2VuZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBPUlQpICYmIFBMQVRGT1JN
KE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9pb3MvVUlLaXRT
UEkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9pb3MvVUlLaXRTUEkuaAppbmRleCA2
MjI3Y2RkNzNhOTA5MDE4NWYyMjY4OTYxMGU4YmViZDk2MjM4Mzg4Li5mMGE0YjY4Zjg0ODI2YTQw
NzY0OTQwMWM0MTdkYzkyMzRkY2YxMGYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3Bp
L2lvcy9VSUtpdFNQSS5oCkBAIC0zMCw2ICszMCwxMCBAQAogI2ltcG9ydCA8VUlLaXQvVUlTY3Jl
ZW5fUHJpdmF0ZS5oPgogI2ltcG9ydCA8VUlLaXQvVUlWaWV3Q29udHJvbGxlcl9Qcml2YXRlLmg+
CiAKKyNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikKKyNpbXBvcnQgPFVJS2l0L1VJSXRlbVBy
b3ZpZGVyX1ByaXZhdGUuaD4KKyNlbmRpZgorCiAjZWxzZQogCiAjaW1wb3J0IDxVSUtpdC9VSUtp
dC5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRHJh
Z0NsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGll
bnQubW0KaW5kZXggZmY5MGQ1OTdlZWVkZGVmNzhjZGVkNjVhMjhmMjliMDU2NjdkYTJkZS4uZTIz
M2RkMTIwNjM0NGY5NTdkZjQzODRmYTVlYzRhNDRhYjE4MjFkMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50Lm1tCkBAIC0yNSw3ICsyNSw3
IEBACiAKICNpbXBvcnQgIldlYkRyYWdDbGllbnQuaCIKIAotI2lmIEVOQUJMRShEUkFHX1NVUFBP
UlQpCisjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkgJiYgUExBVEZPUk0oTUFDKQogCiAjaW1wb3J0
ICJET01FbGVtZW50SW50ZXJuYWwuaCIKICNpbXBvcnQgIldlYkFyY2hpdmUuaCIKQEAgLTE0Myw0
ICsxNDMsNCBAQCB2b2lkIFdlYkRyYWdDbGllbnQ6OmRyYWdDb250cm9sbGVyRGVzdHJveWVkKCkK
ICAgICBkZWxldGUgdGhpczsKIH0KIAotI2VuZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBPUlQpCisj
ZW5kaWYgLy8gRU5BQkxFKERSQUdfU1VQUE9SVCkgJiYgUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbSBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KaW5kZXggYmQ4YTRkNTA2YjM5OTJiYWU5MjhkNjg3NmU2
YTA0NDYxOTczMDliNy4uZmVjNGM2MGVkMjYzNjBlMjBhOWE2ZDI2YzRjZTA2ZDg3ZDBlMTg2YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCkBAIC05MzMsNyArOTMzLDcgQEAg
c3RhdGljIGlubGluZSBXZWJEYXRhU291cmNlICpkYXRhU291cmNlKERvY3VtZW50TG9hZGVyKiBs
b2FkZXIpCiAgICAgX3ByaXZhdGUtPmNvcmVGcmFtZS0+ZWRpdG9yKCkuY29tcHV0ZUFuZFNldFR5
cGluZ1N0eWxlKHByb3BlcnRpZXMuZ2V0KCksIHVuZG9BY3Rpb24pOwogfQogCi0jaWYgRU5BQkxF
KERSQUdfU1VQUE9SVCkKKyNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKSAmJiBQTEFURk9STShNQUMp
CiAtICh2b2lkKV9kcmFnU291cmNlRW5kZWRBdDooTlNQb2ludCl3aW5kb3dMb2Mgb3BlcmF0aW9u
OihOU0RyYWdPcGVyYXRpb24pb3BlcmF0aW9uCiB7CiAgICAgaWYgKCFfcHJpdmF0ZS0+Y29yZUZy
YW1lKQpAQCAtOTQ2LDcgKzk0Niw3IEBAIHN0YXRpYyBpbmxpbmUgV2ViRGF0YVNvdXJjZSAqZGF0
YVNvdXJjZShEb2N1bWVudExvYWRlciogbG9hZGVyKQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkLCAwLCBmYWxzZSwgZmFs
c2UsIGZhbHNlLCBmYWxzZSwgY3VycmVudFRpbWUoKSwgV2ViQ29yZTo6Rm9yY2VBdENsaWNrLCBX
ZWJDb3JlOjpOb1RhcCk7CiAgICAgX3ByaXZhdGUtPmNvcmVGcmFtZS0+ZXZlbnRIYW5kbGVyKCku
ZHJhZ1NvdXJjZUVuZGVkQXQoZXZlbnQsIChEcmFnT3BlcmF0aW9uKW9wZXJhdGlvbik7CiB9Ci0j
ZW5kaWYKKyNlbmRpZiAvLyBFTkFCTEUoRFJBR19TVVBQT1JUKSAmJiBQTEFURk9STShNQUMpCiAK
IC0gKEJPT0wpX2NhblByb3ZpZGVEb2N1bWVudFNvdXJjZQogewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZUludGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYkZyYW1lSW50ZXJuYWwuaAppbmRleCA1NTNjMjMwOGJhZThlNDRhNzYyZDNm
ODcwYzliMTc5NDdhODlmZTc0Li41YzcyZDI4N2ZhNTc3MDg5Y2Q0NDBmMDY3YzFjZGEzYWMxY2Y2
MTlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lSW50ZXJu
YWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lSW50ZXJuYWwuaApA
QCAtMTc5LDcgKzE3OSw3IEBAIFdlYlZpZXcgKmdldFdlYlZpZXcoV2ViRnJhbWUgKndlYkZyYW1l
KTsKIC0gKERPTUNTU1N0eWxlRGVjbGFyYXRpb24gKilfdHlwaW5nU3R5bGU7CiAtICh2b2lkKV9z
ZXRUeXBpbmdTdHlsZTooRE9NQ1NTU3R5bGVEZWNsYXJhdGlvbiAqKXN0eWxlIHdpdGhVbmRvQWN0
aW9uOihXZWJDb3JlOjpFZGl0QWN0aW9uKXVuZG9BY3Rpb247CiAKLSNpZiBFTkFCTEUoRFJBR19T
VVBQT1JUKQorI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpICYmIFBMQVRGT1JNKE1BQykKIC0gKHZv
aWQpX2RyYWdTb3VyY2VFbmRlZEF0OihOU1BvaW50KXdpbmRvd0xvYyBvcGVyYXRpb246KE5TRHJh
Z09wZXJhdGlvbilvcGVyYXRpb247CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViSFRNTFZpZXcubW0KaW5kZXggMDIwOWQ4MTNlOGZjYjk3NTc0OGU5Yzg5NWZkZTc4MjcwMGIx
NDg0YS4uNjRlNjNlMjkwMDZkNTZlYjM3Mzc4NWI4NmQwN2JjOTY1Nzc2NzA0ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCkBAIC00NTQ0LDcgKzQ1NDQsNyBAQCBz
dGF0aWMgQk9PTCBjdXJyZW50U2Nyb2xsSXNCbGl0KE5TVmlldyAqY2xpcFZpZXcpCiB9CiAjZW5k
aWYKIAotI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCisjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkg
JiYgUExBVEZPUk0oTUFDKQogLSAodm9pZClkcmFnSW1hZ2U6KE5TSW1hZ2UgKilkcmFnSW1hZ2UK
ICAgICAgICAgICAgICAgIGF0OihOU1BvaW50KWF0CiAgICAgICAgICAgIG9mZnNldDooTlNTaXpl
KW9mZnNldApAQCAtNDY4OCw3ICs0Njg4LDcgQEAgc3RhdGljIGJvb2wgbWF0Y2hlc0V4dGVuc2lv
bk9yRXF1aXZhbGVudChOU1N0cmluZyAqZmlsZW5hbWUsIE5TU3RyaW5nICpleHRlbnNpb24KICAg
ICAKICAgICByZXR1cm4gW05TQXJyYXkgYXJyYXlXaXRoT2JqZWN0OltwYXRoIGxhc3RQYXRoQ29t
cG9uZW50XV07CiB9Ci0jZW5kaWYKKyNlbmRpZiAvLyBFTkFCTEUoRFJBR19TVVBQT1JUKSAmJiBQ
TEFURk9STShNQUMpCiAKICNpZiAhUExBVEZPUk0oSU9TKQogLSAodm9pZCltb3VzZVVwOihOU0V2
ZW50ICopZXZlbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmll
dy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCA1N2JhYTU0
ZTM0MmViY2MyMTdiNTBjODEzNDBlOWU0NmI3MWM2NWRmLi45ZTEzZjZhYjM2ZGU4N2Q4MWJkMTg0
YTIxNzI1MTQxODQyNTVlODM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBA
IC0xNjA4LDcgKzE2MDgsNyBAQCBzdGF0aWMgdm9pZCBXZWJLaXRJbml0aWFsaXplR2FtZXBhZFBy
b3ZpZGVySWZOZWNlc3NhcnkoKQogICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkNvcmU6OkxpYldl
YlJUQ1Byb3ZpZGVyPigpCiAgICAgKTsKICAgICBwYWdlQ29uZmlndXJhdGlvbi5jaHJvbWVDbGll
bnQgPSBuZXcgV2ViQ2hyb21lQ2xpZW50SU9TKHNlbGYpOwotI2lmIEVOQUJMRShEUkFHX1NVUFBP
UlQpCisjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkgJiYgUExBVEZPUk0oTUFDKQogICAgIHBhZ2VD
b25maWd1cmF0aW9uLmRyYWdDbGllbnQgPSBuZXcgV2ViRHJhZ0NsaWVudChzZWxmKTsKICNlbmRp
ZgogCkBAIC02NDc1LDcgKzY0NzUsNyBAQCBzdGF0aWMgTlNTdHJpbmcgKiBjb25zdCBiYWNraW5n
UHJvcGVydHlPbGRTY2FsZUZhY3RvcktleSA9IEAiTlNCYWNraW5nUHJvcGVydHlPbAogICAgIHJl
dHVybiBbc2VsZiBfZWxlbWVudEF0V2luZG93UG9pbnQ6W3NlbGYgY29udmVydFBvaW50OnBvaW50
IHRvVmlldzpuaWxdXTsKIH0KIAotI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCisjaWYgRU5BQkxF
KERSQUdfU1VQUE9SVCkgJiYgUExBVEZPUk0oTUFDKQogLy8gVGhlIGZvbGxvd2luZyAyIGludGVy
bmFsIE5TVmlldyBtZXRob2RzIGFyZSBjYWxsZWQgb24gdGhlIGRyYWcgZGVzdGluYXRpb24gdG8g
bWFrZSBzY3JvbGxpbmcgd2hpbGUgZHJhZ2dpbmcgd29yay4KIC8vIFNjcm9sbGluZyB3aGlsZSBk
cmFnZ2luZyB3aWxsIG9ubHkgd29yayBpZiB0aGUgZHJhZyBkZXN0aW5hdGlvbiBpcyBpbiBhIHNj
cm9sbCB2aWV3LiBUaGUgV2ViVmlldyBpcyB0aGUgZHJhZyBkZXN0aW5hdGlvbi4gCiAvLyBXaGVu
IGRyYWdnaW5nIHRvIGEgV2ViVmlldywgdGhlIGRvY3VtZW50IHN1YnZpZXcgc2hvdWxkIHNjcm9s
bCwgYnV0IGl0IGRvZXNuJ3QgYmVjYXVzZSBpdCBpcyBub3QgdGhlIGRyYWcgZGVzdGluYXRpb24u
IApAQCAtNjU5Niw3ICs2NTk2LDcgQEAgc3RhdGljIE5TU3RyaW5nICogY29uc3QgYmFja2luZ1By
b3BlcnR5T2xkU2NhbGVGYWN0b3JLZXkgPSBAIk5TQmFja2luZ1Byb3BlcnR5T2wKICAgICAgICAg
cmV0dXJuIHNlbGY7CiAgICAgcmV0dXJuIGhpdFZpZXc7CiB9Ci0jZW5kaWYKKyNlbmRpZiAvLyBF
TkFCTEUoRFJBR19TVVBQT1JUKSAmJiBQTEFURk9STShNQUMpCiAKIC0gKEJPT0wpYWNjZXB0c0Zp
cnN0UmVzcG9uZGVyCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1l
bnRDb2RlcnMuY3BwCmluZGV4IGM2YTg1NzE5N2Q1ZTFhMmVhYzA2NzA5MDY4NTViMzA4ODhiYzc0
OTMuLmJmMDZjMGMyMzQ0ZTA2NDA5ODc0YjAwMjMwNWY5ZmM0YmUzMjQ3YWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCkBAIC0xMjIzLDgg
KzEyMjMsMTAgQEAgdm9pZCBBcmd1bWVudENvZGVyPERyYWdEYXRhPjo6ZW5jb2RlKEVuY29kZXIm
IGVuY29kZXIsIGNvbnN0IERyYWdEYXRhJiBkcmFnRGF0YSkKICAgICBlbmNvZGVyIDw8IGRyYWdE
YXRhLmdsb2JhbFBvc2l0aW9uKCk7CiAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKGRyYWdEYXRhLmRy
YWdnaW5nU291cmNlT3BlcmF0aW9uTWFzaygpKTsKICAgICBlbmNvZGVyLmVuY29kZUVudW0oZHJh
Z0RhdGEuZmxhZ3MoKSk7Ci0jaWYgUExBVEZPUk0oTUFDKQorI2lmIFBMQVRGT1JNKENPQ09BKQog
ICAgIGVuY29kZXIgPDwgZHJhZ0RhdGEucGFzdGVib2FyZE5hbWUoKTsKKyNlbmRpZgorI2lmIFBM
QVRGT1JNKE1BQykKICAgICBlbmNvZGVyIDw8IGRyYWdEYXRhLmZpbGVOYW1lcygpOwogI2VuZGlm
CiB9CkBAIC0xMjQ4LDEzICsxMjUwLDE1IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxEcmFnRGF0YT46
OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBEcmFnRGF0YSYgZHJhZ0RhdGEpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAogICAgIFN0cmluZyBwYXN0ZWJvYXJkTmFtZTsKLSNpZiBQTEFURk9STShN
QUMpCisjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXN0ZWJv
YXJkTmFtZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgogICAgIFZlY3RvcjxTdHJp
bmc+IGZpbGVOYW1lczsKKyNpZiBQTEFURk9STShNQUMpCiAgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShmaWxlTmFtZXMpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKIAogICAgIGRyYWdE
YXRhID0gRHJhZ0RhdGEocGFzdGVib2FyZE5hbWUsIGNsaWVudFBvc2l0aW9uLCBnbG9iYWxQb3Np
dGlvbiwgZHJhZ2dpbmdTb3VyY2VPcGVyYXRpb25NYXNrLCBhcHBsaWNhdGlvbkZsYWdzKTsKICAg
ICBkcmFnRGF0YS5zZXRGaWxlTmFtZXMoZmlsZU5hbWVzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQppbmRleCBiYTdmN2Y3OWZm
YWJhMjYzOWRlODIxMzRiYWVlN2M1NWIxMzY3YWZjLi41ZmY4OTNiZWU2ZWY3MGU4NjViYmUzMjE0
YWQ4ODJjNGQ0NWI4NTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29j
b2EvV2ViUGFnZVByb3h5Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nv
Y29hL1dlYlBhZ2VQcm94eUNvY29hLm1tCkBAIC0zNCw2ICszNCwxMCBAQAogI2ltcG9ydCA8V2Vi
Q29yZS9WYWxpZGF0aW9uQnViYmxlLmg+CiAjaW1wb3J0IDx3dGYvY2YvVHlwZUNhc3RzQ0YuaD4K
IAorI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspICYmIF9faGFzX2luY2x1ZGUoPFdlYktpdEFk
ZGl0aW9ucy9XZWJQYWdlUHJveHlBZGRpdGlvbnMubW0+KQorI2ltcG9ydCA8V2ViS2l0QWRkaXRp
b25zL1dlYlBhZ2VQcm94eUFkZGl0aW9ucy5tbT4KKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViS2l0
IHsKIAogI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkRyYWdDbGllbnRNYWMubW0gYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJEcmFnQ2xpZW50
TWFjLm1tCmluZGV4IDg4YWQ1ZGNjNDE2MGRjMTFiNWViZmUyMGMyZDBmZWY4M2JkODRiNzguLjlh
ODQ1MjhhN2QwMWY2MzE3NWMwMGJlODRjMjZmOGI1ZmEyMTIyYzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkRyYWdDbGllbnRNYWMu
bW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2Vi
RHJhZ0NsaWVudE1hYy5tbQpAQCAtNTEsNiArNTEsMTIgQEAKIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAorI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9T
REspICYmIF9faGFzX2luY2x1ZGUoPFdlYktpdEFkZGl0aW9ucy9XZWJEcmFnQ2xpZW50QWRkaXRp
b25zLm1tPikKKyNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9XZWJEcmFnQ2xpZW50QWRkaXRpb25z
Lm1tPgorI2VuZGlmCisKKyNpZiBQTEFURk9STShNQUMpCisKIG5hbWVzcGFjZSBXZWJLaXQgewog
CiBzdGF0aWMgUGFzc1JlZlB0cjxTaGFyZWFibGVCaXRtYXA+IGNvbnZlcnRJbWFnZVRvQml0bWFw
KE5TSW1hZ2UgKmltYWdlLCBjb25zdCBJbnRTaXplJiBzaXplLCBGcmFtZSYgZnJhbWUpCkBAIC0x
NjAsNCArMTY2LDYgQEAgdm9pZCBXZWJEcmFnQ2xpZW50OjpkZWNsYXJlQW5kV3JpdGVEcmFnSW1h
Z2UoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwgRWxlbWUKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CiAKKyNlbmRpZiAvLyBQTEFURk9STShNQUMpCisKICNlbmRpZiAvLyBFTkFCTEUoRFJB
R19TVVBQT1JUKQo=
</data>
<flag name="commit-queue"
          id="321710"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>299777</attachid>
            <date>2017-01-25 17:24:33 -0800</date>
            <delta_ts>2017-01-25 18:02:48 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-167427-20170125172232.patch</filename>
            <type>text/plain</type>
            <size>27118</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExMTY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWVmOWM4ZTA5ZTU5ZjBk
NTYyODQyZDZlYjUyNmM1ZjQzYWE1ZWQyYi4uM2RhYTY1NjkwYTFjN2FhN2Q1ZDhiNGEyZDM2NGVl
M2ZjYjk1OWQyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ0IEBACiAyMDE3LTAxLTI1ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCisgICAgICAgIFJlZmFjdG9yIGRy
YWcgYW5kIGRyb3AgaW1wbGVtZW50YXRpb24gb24gTWFjCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjc0MjcKKworICAgICAgICBSZXZpZXdlZCBieSBF
bnJpY2EgQ2FzdWNjaS4KKworICAgICAgICBSZWZhY3RvcnMgc29tZSBjb2RlIGFyb3VuZCBkcmFn
IGFuZCBkcm9wIG9uIE1hYywgYW5kIGNsZWFucyB1cCBzb21lIG90aGVyIHJlbGF0ZWQgY29kZSBh
cyBuZWVkZWQuIFRoaXMgcGF0Y2gKKyAgICAgICAgc2hvdWxkIHJlc3VsdCBpbiBubyBiZWhhdmlv
ciBjaGFuZ2UuCisKKyAgICAgICAgKiBkb20vRGF0YVRyYW5zZmVyLmNwcDoKKyAgICAgICAgKiBw
YWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgICogcGFnZS9pb3MvRXZlbnRIYW5kbGVySU9T
Lm1tOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpldmVudExvb3BIYW5kbGVNb3Vz
ZURyYWdnZWQpOgorICAgICAgICAqIHBhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9EcmFnSW1hZ2UuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL1Bhc3RlYm9h
cmQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvRHJhZ0ltYWdlSU9TLm1tOgorICAgICAgICAq
IHBsYXRmb3JtL2lvcy9QYXN0ZWJvYXJkSU9TLm1tOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9E
cmFnRGF0YU1hYy5tbToKKyAgICAgICAgKHJ0ZlBhc3RlYm9hcmRUeXBlKToKKyAgICAgICAgKHJ0
ZmRQYXN0ZWJvYXJkVHlwZSk6CisgICAgICAgIChzdHJpbmdQYXN0ZWJvYXJkVHlwZSk6CisgICAg
ICAgICh1cmxQYXN0ZWJvYXJkVHlwZSk6CisgICAgICAgIChodG1sUGFzdGVib2FyZFR5cGUpOgor
ICAgICAgICAoY29sb3JQYXN0ZWJvYXJkVHlwZSk6CisgICAgICAgIChwZGZQYXN0ZWJvYXJkVHlw
ZSk6CisgICAgICAgICh0aWZmUGFzdGVib2FyZFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6RHJh
Z0RhdGE6OkRyYWdEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdEYXRhOjpjb250YWluc0Nv
bG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdEYXRhOjpjb250YWluc0ZpbGVzKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRyYWdEYXRhOjpudW1iZXJPZkZpbGVzKToKKyAgICAgICAgKFdlYkNvcmU6
OkRyYWdEYXRhOjphc0ZpbGVuYW1lcyk6CisgICAgICAgIChXZWJDb3JlOjpEcmFnRGF0YTo6Y29u
dGFpbnNQbGFpblRleHQpOgorICAgICAgICAoV2ViQ29yZTo6RHJhZ0RhdGE6OmNvbnRhaW5zQ29t
cGF0aWJsZUNvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RHJhZ0RhdGE6OmNvbnRhaW5zUHJv
bWlzZSk6CisgICAgICAgIChXZWJDb3JlOjpEcmFnRGF0YTo6YXNVUkwpOgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9EcmFnSW1hZ2VNYWMubW06CisKKzIwMTctMDEtMjUgIFdlbnNvbiBIc2llaCAg
PHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKICAgICAgICAgSW50cm9kdWNlIGFuIGl0ZW0tcHJv
dmlkZXItYmFzZWQgcGFzdGVib2FyZCB3cmFwcGVyCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjc0MTAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDgwYzcy
OTQxY2ZhMzQ2ZTEzNzFkYzU5NjlmNjE5OWMyMTkxYWUyNGYuLmY0NmZmYWVhMmUwYWI1MGU4NzU0
MzBkYzUzMDNjZDY1OGY1MDk2ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAor
MjAxNy0wMS0yNSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAg
ICAgICBSZWZhY3RvciBkcmFnIGFuZCBkcm9wIGltcGxlbWVudGF0aW9uIG9uIE1hYworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY3NDI3CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgRW5yaWNhIENhc3VjY2kuCisKKyAgICAgICAgUmVmYWN0b3Igc29tZSBX
ZWJLaXQxIGNvZGUgb24gdGhlIE1hYyBwZXJ0YWluaW5nIHRvIGRyYWcgYW5kIGRyb3AuIFNlZSBX
ZWJDb3JlIENoYW5nZUxvZyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAgICogTWlzYy9XZWJO
U1Bhc3RlYm9hcmRFeHRyYXMuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xp
ZW50Lm1tOgorICAgICAgICAqIFdlYlZpZXcvV2ViRnJhbWUubW06CisgICAgICAgICogV2ViVmll
dy9XZWJGcmFtZUludGVybmFsLmg6CisgICAgICAgICogV2ViVmlldy9XZWJIVE1MVmlldy5tbToK
KyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgaW5pdFNp
bXBsZUhUTUxEb2N1bWVudFdpdGhTdHlsZTpmcmFtZTpwcmVmZXJlbmNlczpncm91cE5hbWU6XSk6
CisKIDIwMTctMDEtMjQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5mQGdtYWlsLmNvbT4KIAogICAg
ICAgICBbV2ViUlRDXSBJbnRyb2R1Y2UgbGlid2VicnRjIGFic3RyYWN0aW9uIGZvciBXSzEvV0sy
IGltcGxlbWVudGF0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDM4MmRkNjgxNzAzMDYzMTZiNDEwZjFmNWM0
YWNiZTYxYTA3YWFiZTcuLjYxNzZhMjNmYjYxNmZlMjJlNmQ1MTMwOGYyOTQ3NmJiOGFmMWFhNzcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxNy0wMS0yNSAgV2Vuc29uIEhzaWVoICA8
d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBSZWZhY3RvciBkcmFnIGFuZCBkcm9w
IGltcGxlbWVudGF0aW9uIG9uIE1hYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTY3NDI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRW5yaWNhIENhc3Vj
Y2kuCisKKyAgICAgICAgU2VlIFdlYkNvcmUgQ2hhbmdlTG9nIGZvciBtb3JlIGRldGFpbHMuCisK
KyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKElQ
Qzo6QXJndW1lbnRDb2RlcjxEcmFnRGF0YT46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3Vt
ZW50Q29kZXI8RHJhZ0RhdGE+OjpkZWNvZGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9X
ZWJQYWdlUHJveHlDb2NvYS5tbToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L21hYy9XZWJEcmFnQ2xpZW50TWFjLm1tOgorCiAyMDE3LTAxLTI1ICBBbmR5IEVzdGVzICA8YWVz
dGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBbUXVpY2tMb29rXSBEaXNwbGF5IGEgV0tQYXNzd29y
ZFZpZXcgd2hlbiBhIGRvY3VtZW50IGlzIHBhc3N3b3JkLXByb3RlY3RlZApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RGF0YVRyYW5zZmVyLmNwcAppbmRleCA1NjFlYjQyMDQwOWU3ZTFiNjJjMmM2YTVjZmM3ZTA2MmI0
Y2ZjYmQ2Li45ZWNiMzUxZDNjYTQ3NzNhYWJlY2M4N2E1NDRmYjY4NzA2MzY3OWEwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRGF0YVRyYW5zZmVyLmNwcApAQCAtMjkwLDcgKzI5MCw3IEBAIHZvaWQgRGF0YVRy
YW5zZmVyOjp1cGRhdGVEcmFnSW1hZ2UoKQogICAgIG1fcGFzdGVib2FyZC0+c2V0RHJhZ0ltYWdl
KGNvbXB1dGVkSW1hZ2UsIGNvbXB1dGVkSG90U3BvdCk7CiB9CiAKLSNpZiAhUExBVEZPUk0oQ09D
T0EpCisjaWYgIVBMQVRGT1JNKE1BQykKIAogRHJhZ0ltYWdlUmVmIERhdGFUcmFuc2Zlcjo6Y3Jl
YXRlRHJhZ0ltYWdlKEludFBvaW50JiBsb2NhdGlvbikgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RXZlbnRIYW5kbGVyLmNwcAppbmRleCA1YTVhMzVlNjhhN2M4OTg4YjZlMTMwNGU0ODlhMjEyYWJk
OWM3M2M0Li5lZTRlNzcyMDI4NjNhYTIwYmRjNmJhNjcyNDZlM2FkZjRkMGE0NzlhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0xMzEsNiArMTMxLDkgQEAgY29uc3QgaW50
IExpbmtEcmFnSHlzdGVyZXNpcyA9IDQwOwogY29uc3QgaW50IEltYWdlRHJhZ0h5c3RlcmVzaXMg
PSA1OwogY29uc3QgaW50IFRleHREcmFnSHlzdGVyZXNpcyA9IDM7CiBjb25zdCBpbnQgR2VuZXJh
bERyYWdIeXN0ZXJlc2lzID0gMzsKKyNpZiBQTEFURk9STShDT0NPQSkKK2NvbnN0IGRvdWJsZSBF
dmVudEhhbmRsZXI6OlRleHREcmFnRGVsYXkgPSAwLjE1OworI2VuZGlmCiAjZW5kaWYgLy8gRU5B
QkxFKERSQUdfU1VQUE9SVCkKIAogI2lmIEVOQUJMRShJT1NfR0VTVFVSRV9FVkVOVFMpIHx8IEVO
QUJMRShNQUNfR0VTVFVSRV9FVkVOVFMpCkBAIC04MDYsMTQgKzgwOSwxNCBAQCBib29sIEV2ZW50
SGFuZGxlcjo6aGFuZGxlTW91c2VQcmVzc0V2ZW50KGNvbnN0IE1vdXNlRXZlbnRXaXRoSGl0VGVz
dFJlc3VsdHMmIGV2ZQogfQogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKLWJvb2wgRXZlbnRI
YW5kbGVyOjpoYW5kbGVNb3VzZURyYWdnZWRFdmVudChjb25zdCBNb3VzZUV2ZW50V2l0aEhpdFRl
c3RSZXN1bHRzJiBldmVudCkKK2Jvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZURyYWdnZWRF
dmVudChjb25zdCBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJiBldmVudCwgQ2hlY2tEcmFn
SHlzdGVyZXNpcyBjaGVja0RyYWdIeXN0ZXJlc2lzKQogewogICAgIGlmICghbV9tb3VzZVByZXNz
ZWQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIFJlZjxGcmFtZT4gcHJvdGVjdGVkRnJh
bWUobV9mcmFtZSk7CiAKLSAgICBpZiAoaGFuZGxlRHJhZyhldmVudCwgU2hvdWxkQ2hlY2tEcmFn
SHlzdGVyZXNpcykpCisgICAgaWYgKGhhbmRsZURyYWcoZXZlbnQsIGNoZWNrRHJhZ0h5c3RlcmVz
aXMpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIE5vZGUqIHRhcmdldE5vZGUgPSBldmVu
dC50YXJnZXROb2RlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFu
ZGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAppbmRleCA2ZWQ3YWUz
Mzk1YzgwMjYzZDRhNzcwMGZjYTBhZjBmNmVmOTE4YzJkLi45Yzc1NzY1ZmYyNDUwNzYwODY3NTU0
NzFlYzBjMWUyZDRmNmZlZWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50
SGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKQEAgLTMz
OCw3ICszMzgsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgaGFuZGxlTW91c2VQcmVzc0V2ZW50VHJp
cGxlQ2xpY2soY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYpOwogCiAjaWYgRU5B
QkxFKERSQUdfU1VQUE9SVCkKLSAgICBib29sIGhhbmRsZU1vdXNlRHJhZ2dlZEV2ZW50KGNvbnN0
IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmKTsKKyAgICBib29sIGhhbmRsZU1vdXNlRHJh
Z2dlZEV2ZW50KGNvbnN0IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmLCBDaGVja0RyYWdI
eXN0ZXJlc2lzID0gU2hvdWxkQ2hlY2tEcmFnSHlzdGVyZXNpcyk7CiAjZW5kaWYKIAogICAgIFdF
QkNPUkVfRVhQT1JUIGJvb2wgaGFuZGxlTW91c2VSZWxlYXNlRXZlbnQoY29uc3QgTW91c2VFdmVu
dFdpdGhIaXRUZXN0UmVzdWx0cyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9p
b3MvRXZlbnRIYW5kbGVySU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvRXZlbnRIYW5k
bGVySU9TLm1tCmluZGV4IDI5YmFkZWY1OTU1ODRhM2ZjZTUzY2EyZjgyNDFlNGY2ZWZkNzU0ZDUu
LmQzZjc1ZDk0MGZiMTEzNDA5ZTE4MGUwYWVlMGNkMjJjZDhkYWVlYjQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvaW9zL0V2ZW50SGFuZGxlcklPUy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL2lvcy9FdmVudEhhbmRsZXJJT1MubW0KQEAgLTQ5LDYgKzQ5LDEwIEBACiAjaW1w
b3J0IDxXZWJLaXRBZGRpdGlvbnMvRXZlbnRIYW5kbGVySU9TVG91Y2guY3BwPgogI2VuZGlmCiAK
KyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKSAmJiBfX2hhc19pbmNsdWRlKDxXZWJLaXRBZGRp
dGlvbnMvRXZlbnRIYW5kbGVyQWRkaXRpb25zLm1tPikKKyNpbXBvcnQgPFdlYktpdEFkZGl0aW9u
cy9FdmVudEhhbmRsZXJBZGRpdGlvbnMubW0+CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBzdGF0aWMgUmV0YWluUHRyPFdlYkV2ZW50PiYgY3VycmVudEV2ZW50U2xvdCgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0KaW5kZXggYWQ3YTU5ZTMxZTA5
NWIwYmM1MjA1MDcyZmRmMTgzOWYwZjRmNjgzZS4uNmM0NDRhYTM0NmY3ZjJjMjNkNmExYWJlNjk4
N2JjYjU5YzQ2NjhjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRXZlbnRI
YW5kbGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1h
Yy5tbQpAQCAtNzQsMTAgKzc0LDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0jaWYgRU5B
QkxFKERSQUdfU1VQUE9SVCkKLWNvbnN0IGRvdWJsZSBFdmVudEhhbmRsZXI6OlRleHREcmFnRGVs
YXkgPSAwLjE1OwotI2VuZGlmCi0KIGNvbnN0IGRvdWJsZSByZXNldExhdGNoZWRTdGF0ZVRpbWVv
dXQgPSAwLjE7CiAKIHN0YXRpYyBSZXRhaW5QdHI8TlNFdmVudD4mIGN1cnJlbnROU0V2ZW50U2xv
dCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnSW1hZ2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0ltYWdlLmNwcAppbmRleCBhYTU2NmFmMzM4NGZh
ZTBjMTMwMzJjZDNjYjFjMDUzZTJkMzdjMmU0Li5kOGI1ZGVhN2M2YmRkOTVjYTMxMjc4NjZkMjVj
NDVkOTA5NGFiNGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnSW1h
Z2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdJbWFnZS5jcHAKQEAgLTEy
MCwxMiArMTIwLDE2IEBAIERyYWdJbWFnZVJlZiBjcmVhdGVEcmFnSW1hZ2VGb3JOb2RlKEZyYW1l
JiBmcmFtZSwgTm9kZSYgbm9kZSkKICAgICByZXR1cm4gY3JlYXRlRHJhZ0ltYWdlRnJvbVNuYXBz
aG90KHNuYXBzaG90Tm9kZShmcmFtZSwgbm9kZSksICZub2RlKTsKIH0KIAorI2lmICFFTkFCTEUo
REFUQV9JTlRFUkFDVElPTikKKwogRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUZvclNlbGVj
dGlvbihGcmFtZSYgZnJhbWUsIGJvb2wgZm9yY2VCbGFja1RleHQpCiB7CiAgICAgU25hcHNob3RP
cHRpb25zIG9wdGlvbnMgPSBmb3JjZUJsYWNrVGV4dCA/IFNuYXBzaG90T3B0aW9uc0ZvcmNlQmxh
Y2tUZXh0IDogU25hcHNob3RPcHRpb25zTm9uZTsKICAgICByZXR1cm4gY3JlYXRlRHJhZ0ltYWdl
RnJvbVNuYXBzaG90KHNuYXBzaG90U2VsZWN0aW9uKGZyYW1lLCBvcHRpb25zKSwgbnVsbHB0cik7
CiB9CiAKKyNlbmRpZgorCiBzdHJ1Y3QgU2NvcGVkRnJhbWVTZWxlY3Rpb25TdGF0ZSB7CiAgICAg
U2NvcGVkRnJhbWVTZWxlY3Rpb25TdGF0ZShGcmFtZSYgZnJhbWUpCiAgICAgICAgIDogZnJhbWUo
ZnJhbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmgKaW5kZXggYmFjMWY4ZjJmNDc5
MWM1ODdiNDYwNTY5MWMyODYyYTU0NjlkNTJlOC4uMDZjM2RlNzVlYmNhZWM1NjFiOTE4ZGVkNTEw
ODVjOGU0YWViN2I3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVi
b2FyZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQuaApAQCAtMTI5
LDcgKzEyOSw3IEBAIHB1YmxpYzoKIAogc3RydWN0IFBhc3RlYm9hcmRQbGFpblRleHQgewogICAg
IFN0cmluZyB0ZXh0OwotI2lmIFBMQVRGT1JNKE1BQykKKyNpZiBQTEFURk9STShDT0NPQSkKICAg
ICBib29sIGlzVVJMOwogI2VuZGlmCiB9OwpAQCAtMTc5LDggKzE3OSw4IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgd3JpdGVQYXN0ZWJvYXJkKGNvbnN0IFBhc3RlYm9hcmQmIHNvdXJjZVBh
c3RlYm9hcmQpOwogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKLSAgICBzdGF0aWMgc3RkOjp1
bmlxdWVfcHRyPFBhc3RlYm9hcmQ+IGNyZWF0ZUZvckRyYWdBbmREcm9wKCk7Ci0gICAgc3RhdGlj
IHN0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBjcmVhdGVGb3JEcmFnQW5kRHJvcChjb25zdCBE
cmFnRGF0YSYpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UGFz
dGVib2FyZD4gY3JlYXRlRm9yRHJhZ0FuZERyb3AoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9hcmQ+IGNyZWF0ZUZvckRyYWdBbmREcm9wKGNvbnN0
IERyYWdEYXRhJik7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0RHJhZ0ltYWdlKERyYWdJbWFnZVJl
ZiwgY29uc3QgSW50UG9pbnQmIGhvdFNwb3QpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvRHJhZ0ltYWdlSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL0RyYWdJbWFnZUlPUy5tbQppbmRleCAxY2NjZmJhY2Q2ZWQ4N2JjMzMwY2Q0MDgx
ZTBmOGEwNTE5OWU2N2RhLi45NjRhZDZlYmEyMWU5ZDBjMTUxYWNiNDQ1OTRlYmJmMDFkNjdlYzA2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvRHJhZ0ltYWdlSU9TLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9EcmFnSW1hZ2VJT1MubW0KQEAgLTI4
LDYgKzI4LDEyIEBACiAKICNpbXBvcnQgPENvcmVHcmFwaGljcy9Db3JlR3JhcGhpY3MuaD4KIAor
I2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspICYmIF9faGFzX2luY2x1ZGUoPFdlYktpdEFkZGl0
aW9ucy9EcmFnSW1hZ2VBZGRpdGlvbnMubW0+KQorCisjaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMv
RHJhZ0ltYWdlQWRkaXRpb25zLm1tPgorCisjZWxzZQorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IC8vIEZJWE1FOiBmaXggc2lnbmF0dXJlIG9mIGRyYWdJbWFnZVNpemUoKSB0byBhdm9pZCBjb3B5
aW5nIHRoZSBhcmd1bWVudC4KQEAgLTQ5LDMgKzU1LDUgQEAgUmV0YWluUHRyPENHSW1hZ2VSZWY+
IGNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZShJbWFnZSosIEltYWdlT3JpZW50YXRpb25EZXNjcmlw
dGkKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gVVNFKEFQUExFX0lO
VEVSTkFMX1NESykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QYXN0
ZWJvYXJkSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1Bhc3RlYm9hcmRJT1Mu
bW0KaW5kZXggOTZjNzJkMDFjNzUzMDQ1OTBjMzcwYzYzYjg2NDk2MWJiNmNmMzAxOC4uNTg2MTM5
M2Q3YWZiOWVlMDQ2MjhjNDUxNDI5NmY5YzYxYmY2MDkxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW9zL1Bhc3RlYm9hcmRJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL1Bhc3RlYm9hcmRJT1MubW0KQEAgLTU4LDYgKzU4LDEwIEBACiAtIChCT09M
KWNvbnRhaW5zQXR0YWNobWVudHM7CiBAZW5kCiAKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RL
KSAmJiBfX2hhc19pbmNsdWRlKDxXZWJLaXRBZGRpdGlvbnMvUGFzdGVib2FyZEFkZGl0aW9ucy5t
bT4pCisjaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvUGFzdGVib2FyZEFkZGl0aW9ucy5tbT4KKyNl
bmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIC8vIEZJWE1FOiBEb2VzIHRoaXMgbmVlZCB0
byBiZSBkZWNsYXJlZCBpbiB0aGUgaGVhZGVyIGZpbGU/CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0RhdGFNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvRHJhZ0RhdGFNYWMubW0KaW5kZXggNzVkNTBiY2ViMzBhYzk5ZWQ5Yzg2YjMxYzY2MzA1
OWUwNTJkYzhmMi4uMGZmZWQ2Y2E1NjliMDNhMDQ5YTJmMTJlZGY1MWFmYWZlZTgwYTljZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdEYXRhTWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EcmFnRGF0YU1hYy5tbQpAQCAtMzMsNiArMzMs
NTQgQEAKICNpbXBvcnQgIlBsYXRmb3JtU3RyYXRlZ2llcy5oIgogI2ltcG9ydCAiV2ViQ29yZU5T
VVJMRXh0cmFzLmgiCiAKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKSAmJiBfX2hhc19pbmNs
dWRlKDxXZWJLaXRBZGRpdGlvbnMvRHJhZ0RhdGFBZGRpdGlvbnMubW0+KQorCisjaW1wb3J0IDxX
ZWJLaXRBZGRpdGlvbnMvRHJhZ0RhdGFBZGRpdGlvbnMubW0+CisKKyNlbHNlCisKK3N0YXRpYyBp
bmxpbmUgU3RyaW5nIHJ0ZlBhc3RlYm9hcmRUeXBlKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nKE5T
UlRGUGJvYXJkVHlwZSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgU3RyaW5nIHJ0ZmRQYXN0ZWJvYXJk
VHlwZSgpCit7CisgICAgcmV0dXJuIFN0cmluZyhOU1JURkRQYm9hcmRUeXBlKTsKK30KKworc3Rh
dGljIGlubGluZSBTdHJpbmcgc3RyaW5nUGFzdGVib2FyZFR5cGUoKQoreworICAgIHJldHVybiBT
dHJpbmcoTlNTdHJpbmdQYm9hcmRUeXBlKTsKK30KKworc3RhdGljIGlubGluZSBTdHJpbmcgdXJs
UGFzdGVib2FyZFR5cGUoKQoreworICAgIHJldHVybiBTdHJpbmcoTlNVUkxQYm9hcmRUeXBlKTsK
K30KKworc3RhdGljIGlubGluZSBTdHJpbmcgaHRtbFBhc3RlYm9hcmRUeXBlKCkKK3sKKyAgICBy
ZXR1cm4gU3RyaW5nKE5TSFRNTFBib2FyZFR5cGUpOworfQorCitzdGF0aWMgaW5saW5lIFN0cmlu
ZyBjb2xvclBhc3RlYm9hcmRUeXBlKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nKE5TQ29sb3JQYm9h
cmRUeXBlKTsKK30KKworc3RhdGljIGlubGluZSBTdHJpbmcgcGRmUGFzdGVib2FyZFR5cGUoKQor
eworICAgIHJldHVybiBTdHJpbmcoTlNQREZQYm9hcmRUeXBlKTsKK30KKworc3RhdGljIGlubGlu
ZSBTdHJpbmcgdGlmZlBhc3RlYm9hcmRUeXBlKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nKE5TVElG
RlBib2FyZFR5cGUpOworfQorCisjZW5kaWYgLy8gVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKwog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBEcmFnRGF0YTo6RHJhZ0RhdGEoRHJhZ0RhdGFSZWYgZGF0
YSwgY29uc3QgSW50UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFs
UG9zaXRpb24sIApAQCAtNDIsNyArOTAsMTEgQEAgRHJhZ0RhdGE6OkRyYWdEYXRhKERyYWdEYXRh
UmVmIGRhdGEsIGNvbnN0IEludFBvaW50JiBjbGllbnRQb3NpdGlvbiwgY29uc3QgSW50UG8KICAg
ICAsIG1fcGxhdGZvcm1EcmFnRGF0YShkYXRhKQogICAgICwgbV9kcmFnZ2luZ1NvdXJjZU9wZXJh
dGlvbk1hc2soc291cmNlT3BlcmF0aW9uTWFzaykKICAgICAsIG1fYXBwbGljYXRpb25GbGFncyhm
bGFncykKKyNpZiBQTEFURk9STShNQUMpCiAgICAgLCBtX3Bhc3RlYm9hcmROYW1lKFtbbV9wbGF0
Zm9ybURyYWdEYXRhIGRyYWdnaW5nUGFzdGVib2FyZF0gbmFtZV0pCisjZWxzZQorICAgICwgbV9w
YXN0ZWJvYXJkTmFtZSgiZGF0YSBpbnRlcmFjdGlvbiBwYXN0ZWJvYXJkIikKKyNlbmRpZgogewog
fQogCkBAIC02NiwzMCArMTE4LDQwIEBAIGJvb2wgRHJhZ0RhdGE6OmNvbnRhaW5zQ29sb3IoKSBj
b25zdAogewogICAgIFZlY3RvcjxTdHJpbmc+IHR5cGVzOwogICAgIHBsYXRmb3JtU3RyYXRlZ2ll
cygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+Z2V0VHlwZXModHlwZXMsIG1fcGFzdGVib2FyZE5h
bWUpOwotICAgIHJldHVybiB0eXBlcy5jb250YWlucyhTdHJpbmcoTlNDb2xvclBib2FyZFR5cGUp
KTsKKyAgICByZXR1cm4gdHlwZXMuY29udGFpbnMoY29sb3JQYXN0ZWJvYXJkVHlwZSgpKTsKIH0K
IAogYm9vbCBEcmFnRGF0YTo6Y29udGFpbnNGaWxlcygpIGNvbnN0CiB7CisjaWYgUExBVEZPUk0o
TUFDKQogICAgIFZlY3RvcjxTdHJpbmc+IHR5cGVzOwogICAgIHBsYXRmb3JtU3RyYXRlZ2llcygp
LT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+Z2V0VHlwZXModHlwZXMsIG1fcGFzdGVib2FyZE5hbWUp
OwogICAgIHJldHVybiB0eXBlcy5jb250YWlucyhTdHJpbmcoTlNGaWxlbmFtZXNQYm9hcmRUeXBl
KSkgfHwgdHlwZXMuY29udGFpbnMoU3RyaW5nKE5TRmlsZXNQcm9taXNlUGJvYXJkVHlwZSkpOwor
I2Vsc2UKKyAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKIH0KIAogdW5zaWduZWQgRHJhZ0RhdGE6
Om51bWJlck9mRmlsZXMoKSBjb25zdAogewogICAgIFZlY3RvcjxTdHJpbmc+IGZpbGVzOworI2lm
IFBMQVRGT1JNKE1BQykKICAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0
ZWd5KCktPmdldFBhdGhuYW1lc0ZvclR5cGUoZmlsZXMsIFN0cmluZyhOU0ZpbGVuYW1lc1Bib2Fy
ZFR5cGUpLCBtX3Bhc3RlYm9hcmROYW1lKTsKICAgICBpZiAoIWZpbGVzLnNpemUoKSkKICAgICAg
ICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT5nZXRQYXRobmFt
ZXNGb3JUeXBlKGZpbGVzLCBTdHJpbmcoTlNGaWxlc1Byb21pc2VQYm9hcmRUeXBlKSwgbV9wYXN0
ZWJvYXJkTmFtZSk7CisjZW5kaWYKICAgICByZXR1cm4gZmlsZXMuc2l6ZSgpOwogfQogCiB2b2lk
IERyYWdEYXRhOjphc0ZpbGVuYW1lcyhWZWN0b3I8U3RyaW5nPiYgcmVzdWx0KSBjb25zdAogewor
I2lmIFBMQVRGT1JNKE1BQykKICAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0
cmF0ZWd5KCktPmdldFBhdGhuYW1lc0ZvclR5cGUocmVzdWx0LCBTdHJpbmcoTlNGaWxlbmFtZXNQ
Ym9hcmRUeXBlKSwgbV9wYXN0ZWJvYXJkTmFtZSk7CiAgICAgaWYgKCFyZXN1bHQuc2l6ZSgpKQog
ICAgICAgICByZXN1bHQgPSBmaWxlTmFtZXMoKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHJl
c3VsdCk7CisjZW5kaWYKIH0KIAogYm9vbCBEcmFnRGF0YTo6Y29udGFpbnNQbGFpblRleHQoKSBj
b25zdApAQCAtOTcsMTEgKzE1OSwxMyBAQCBib29sIERyYWdEYXRhOjpjb250YWluc1BsYWluVGV4
dCgpIGNvbnN0CiAgICAgVmVjdG9yPFN0cmluZz4gdHlwZXM7CiAgICAgcGxhdGZvcm1TdHJhdGVn
aWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT5nZXRUeXBlcyh0eXBlcywgbV9wYXN0ZWJvYXJk
TmFtZSk7CiAKLSAgICByZXR1cm4gdHlwZXMuY29udGFpbnMoU3RyaW5nKE5TU3RyaW5nUGJvYXJk
VHlwZSkpCi0gICAgICAgIHx8IHR5cGVzLmNvbnRhaW5zKFN0cmluZyhOU1JURkRQYm9hcmRUeXBl
KSkKLSAgICAgICAgfHwgdHlwZXMuY29udGFpbnMoU3RyaW5nKE5TUlRGUGJvYXJkVHlwZSkpCisg
ICAgcmV0dXJuIHR5cGVzLmNvbnRhaW5zKHN0cmluZ1Bhc3RlYm9hcmRUeXBlKCkpCisgICAgICAg
IHx8IHR5cGVzLmNvbnRhaW5zKHJ0ZmRQYXN0ZWJvYXJkVHlwZSgpKQorICAgICAgICB8fCB0eXBl
cy5jb250YWlucyhydGZQYXN0ZWJvYXJkVHlwZSgpKQorI2lmIFBMQVRGT1JNKE1BQykKICAgICAg
ICAgfHwgdHlwZXMuY29udGFpbnMoU3RyaW5nKE5TRmlsZW5hbWVzUGJvYXJkVHlwZSkpCi0gICAg
ICAgIHx8IHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+c3RyaW5n
Rm9yVHlwZShTdHJpbmcoTlNVUkxQYm9hcmRUeXBlKSwgbV9wYXN0ZWJvYXJkTmFtZSkubGVuZ3Ro
KCk7CisjZW5kaWYKKyAgICAgICAgfHwgcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRT
dHJhdGVneSgpLT5zdHJpbmdGb3JUeXBlKHVybFBhc3RlYm9hcmRUeXBlKCksIG1fcGFzdGVib2Fy
ZE5hbWUpLmxlbmd0aCgpOwogfQogCiBTdHJpbmcgRHJhZ0RhdGE6OmFzUGxhaW5UZXh0KCkgY29u
c3QKQEAgLTEzMCwyMyArMTk0LDI3IEBAIGJvb2wgRHJhZ0RhdGE6OmNvbnRhaW5zQ29tcGF0aWJs
ZUNvbnRlbnQoKSBjb25zdAogICAgIFZlY3RvcjxTdHJpbmc+IHR5cGVzOwogICAgIHBsYXRmb3Jt
U3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+Z2V0VHlwZXModHlwZXMsIG1fcGFz
dGVib2FyZE5hbWUpOwogICAgIHJldHVybiB0eXBlcy5jb250YWlucyhTdHJpbmcoV2ViQXJjaGl2
ZVBib2FyZFR5cGUpKQotICAgICAgICB8fCB0eXBlcy5jb250YWlucyhTdHJpbmcoTlNIVE1MUGJv
YXJkVHlwZSkpCisgICAgICAgIHx8IHR5cGVzLmNvbnRhaW5zKGh0bWxQYXN0ZWJvYXJkVHlwZSgp
KQorI2lmIFBMQVRGT1JNKE1BQykKICAgICAgICAgfHwgdHlwZXMuY29udGFpbnMoU3RyaW5nKE5T
RmlsZW5hbWVzUGJvYXJkVHlwZSkpCiAgICAgICAgIHx8IHR5cGVzLmNvbnRhaW5zKFN0cmluZyhO
U0ZpbGVzUHJvbWlzZVBib2FyZFR5cGUpKQotICAgICAgICB8fCB0eXBlcy5jb250YWlucyhTdHJp
bmcoTlNUSUZGUGJvYXJkVHlwZSkpCi0gICAgICAgIHx8IHR5cGVzLmNvbnRhaW5zKFN0cmluZyhO
U1BERlBib2FyZFR5cGUpKQotICAgICAgICB8fCB0eXBlcy5jb250YWlucyhTdHJpbmcoTlNVUkxQ
Ym9hcmRUeXBlKSkKLSAgICAgICAgfHwgdHlwZXMuY29udGFpbnMoU3RyaW5nKE5TUlRGRFBib2Fy
ZFR5cGUpKQotICAgICAgICB8fCB0eXBlcy5jb250YWlucyhTdHJpbmcoTlNSVEZQYm9hcmRUeXBl
KSkKLSAgICAgICAgfHwgdHlwZXMuY29udGFpbnMoU3RyaW5nKE5TU3RyaW5nUGJvYXJkVHlwZSkp
Ci0gICAgICAgIHx8IHR5cGVzLmNvbnRhaW5zKFN0cmluZyhOU0NvbG9yUGJvYXJkVHlwZSkpCisj
ZW5kaWYKKyAgICAgICAgfHwgdHlwZXMuY29udGFpbnModGlmZlBhc3RlYm9hcmRUeXBlKCkpCisg
ICAgICAgIHx8IHR5cGVzLmNvbnRhaW5zKHBkZlBhc3RlYm9hcmRUeXBlKCkpCisgICAgICAgIHx8
IHR5cGVzLmNvbnRhaW5zKHVybFBhc3RlYm9hcmRUeXBlKCkpCisgICAgICAgIHx8IHR5cGVzLmNv
bnRhaW5zKHJ0ZmRQYXN0ZWJvYXJkVHlwZSgpKQorICAgICAgICB8fCB0eXBlcy5jb250YWlucyhy
dGZQYXN0ZWJvYXJkVHlwZSgpKQorICAgICAgICB8fCB0eXBlcy5jb250YWlucyhzdHJpbmdQYXN0
ZWJvYXJkVHlwZSgpKQorICAgICAgICB8fCB0eXBlcy5jb250YWlucyhjb2xvclBhc3RlYm9hcmRU
eXBlKCkpCiAgICAgICAgIHx8IHR5cGVzLmNvbnRhaW5zKFN0cmluZyhrVVRUeXBlUE5HKSk7CiB9
CiAKIGJvb2wgRHJhZ0RhdGE6OmNvbnRhaW5zUHJvbWlzZSgpIGNvbnN0CiB7CiAgICAgVmVjdG9y
PFN0cmluZz4gZmlsZXM7CisjaWYgUExBVEZPUk0oTUFDKQogICAgIHBsYXRmb3JtU3RyYXRlZ2ll
cygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+Z2V0UGF0aG5hbWVzRm9yVHlwZShmaWxlcywgU3Ry
aW5nKE5TRmlsZXNQcm9taXNlUGJvYXJkVHlwZSksIG1fcGFzdGVib2FyZE5hbWUpOworI2VuZGlm
CiAgICAgcmV0dXJuIGZpbGVzLnNpemUoKSA9PSAxOwogfQogCkBAIC0xNjAsMjQgKzIyOCwyNiBA
QCBTdHJpbmcgRHJhZ0RhdGE6OmFzVVJMKEZpbGVuYW1lQ29udmVyc2lvblBvbGljeSwgU3RyaW5n
KiB0aXRsZSkgY29uc3QKICAgICAvLyBGSVhNRTogVXNlIGZpbGVuYW1lUG9saWN5LgogCiAgICAg
aWYgKHRpdGxlKSB7CisjaWYgUExBVEZPUk0oTUFDKQogICAgICAgICBTdHJpbmcgVVJMVGl0bGVT
dHJpbmcgPSBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPnN0cmlu
Z0ZvclR5cGUoU3RyaW5nKFdlYlVSTE5hbWVQYm9hcmRUeXBlKSwgbV9wYXN0ZWJvYXJkTmFtZSk7
CiAgICAgICAgIGlmICghVVJMVGl0bGVTdHJpbmcuaXNFbXB0eSgpKQogICAgICAgICAgICAgKnRp
dGxlID0gVVJMVGl0bGVTdHJpbmc7CisjZW5kaWYKICAgICB9CiAgICAgCiAgICAgVmVjdG9yPFN0
cmluZz4gdHlwZXM7CiAgICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVn
eSgpLT5nZXRUeXBlcyh0eXBlcywgbV9wYXN0ZWJvYXJkTmFtZSk7CiAKLSAgICBpZiAodHlwZXMu
Y29udGFpbnMoU3RyaW5nKE5TVVJMUGJvYXJkVHlwZSkpKSB7Ci0gICAgICAgIE5TVVJMICpVUkxG
cm9tUGFzdGVib2FyZCA9IFtOU1VSTCBVUkxXaXRoU3RyaW5nOnBsYXRmb3JtU3RyYXRlZ2llcygp
LT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+c3RyaW5nRm9yVHlwZShTdHJpbmcoTlNVUkxQYm9hcmRU
eXBlKSwgbV9wYXN0ZWJvYXJkTmFtZSldOworICAgIGlmICh0eXBlcy5jb250YWlucyh1cmxQYXN0
ZWJvYXJkVHlwZSgpKSkgeworICAgICAgICBOU1VSTCAqVVJMRnJvbVBhc3RlYm9hcmQgPSBbTlNV
UkwgVVJMV2l0aFN0cmluZzpwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5
KCktPnN0cmluZ0ZvclR5cGUodXJsUGFzdGVib2FyZFR5cGUoKSwgbV9wYXN0ZWJvYXJkTmFtZSld
OwogICAgICAgICBOU1N0cmluZyAqc2NoZW1lID0gW1VSTEZyb21QYXN0ZWJvYXJkIHNjaGVtZV07
CiAgICAgICAgIC8vIENhbm5vdCBkcm9wIG90aGVyIHNjaGVtZXMgdW5sZXNzIDxyZGFyOi8vcHJv
YmxlbS8xMDU2MjY2Mj4gYW5kIDxyZGFyOi8vcHJvYmxlbS8xMTE4NzMxNT4gYXJlIGZpeGVkLgog
ICAgICAgICBpZiAoW3NjaGVtZSBpc0VxdWFsVG9TdHJpbmc6QCJodHRwIl0gfHwgW3NjaGVtZSBp
c0VxdWFsVG9TdHJpbmc6QCJodHRwcyJdKQogICAgICAgICAgICAgcmV0dXJuIFtVUkxCeUNhbm9u
aWNhbGl6aW5nVVJMKFVSTEZyb21QYXN0ZWJvYXJkKSBhYnNvbHV0ZVN0cmluZ107CiAgICAgfQog
ICAgIAotICAgIGlmICh0eXBlcy5jb250YWlucyhTdHJpbmcoTlNTdHJpbmdQYm9hcmRUeXBlKSkp
IHsKLSAgICAgICAgTlNVUkwgKlVSTEZyb21QYXN0ZWJvYXJkID0gW05TVVJMIFVSTFdpdGhTdHJp
bmc6cGxhdGZvcm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT5zdHJpbmdGb3JU
eXBlKFN0cmluZyhOU1N0cmluZ1Bib2FyZFR5cGUpLCBtX3Bhc3RlYm9hcmROYW1lKV07CisgICAg
aWYgKHR5cGVzLmNvbnRhaW5zKHN0cmluZ1Bhc3RlYm9hcmRUeXBlKCkpKSB7CisgICAgICAgIE5T
VVJMICpVUkxGcm9tUGFzdGVib2FyZCA9IFtOU1VSTCBVUkxXaXRoU3RyaW5nOnBsYXRmb3JtU3Ry
YXRlZ2llcygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+c3RyaW5nRm9yVHlwZShzdHJpbmdQYXN0
ZWJvYXJkVHlwZSgpLCBtX3Bhc3RlYm9hcmROYW1lKV07CiAgICAgICAgIE5TU3RyaW5nICpzY2hl
bWUgPSBbVVJMRnJvbVBhc3RlYm9hcmQgc2NoZW1lXTsKICAgICAgICAgLy8gUGFzdGVib2FyZCBj
b250ZW50IGlzIG5vdCB0cnVzdGVkLCBiZWNhdXNlIEphdmFTY3JpcHQgY29kZSBjYW4gbW9kaWZ5
IGl0LiBXZSBjYW4gc2FuaXRpemUgaXQgZm9yIFVSTHMgYW5kIG90aGVyIHR5cGVkIGNvbnRlbnQs
IGJ1dCBub3QgZm9yIHN0cmluZ3MuCiAgICAgICAgIC8vIFRoZSByZXN1bHQgb2YgdGhpcyBmdW5j
dGlvbiBpcyB1c2VkIHRvIGluaXRpYXRlIG5hdmlnYXRpb24sIHNvIHdlIHNob3VsZG4ndCBhbGxv
dyBhcmJpdHJhcnkgZmlsZSBVUkxzLgpAQCAtMTg2LDYgKzI1Niw3IEBAIFN0cmluZyBEcmFnRGF0
YTo6YXNVUkwoRmlsZW5hbWVDb252ZXJzaW9uUG9saWN5LCBTdHJpbmcqIHRpdGxlKSBjb25zdAog
ICAgICAgICAgICAgcmV0dXJuIFtVUkxCeUNhbm9uaWNhbGl6aW5nVVJMKFVSTEZyb21QYXN0ZWJv
YXJkKSBhYnNvbHV0ZVN0cmluZ107CiAgICAgfQogICAgIAorI2lmIFBMQVRGT1JNKE1BQykKICAg
ICBpZiAodHlwZXMuY29udGFpbnMoU3RyaW5nKE5TRmlsZW5hbWVzUGJvYXJkVHlwZSkpKSB7CiAg
ICAgICAgIFZlY3RvcjxTdHJpbmc+IGZpbGVzOwogICAgICAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMo
KS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPmdldFBhdGhuYW1lc0ZvclR5cGUoZmlsZXMsIFN0cmlu
ZyhOU0ZpbGVuYW1lc1Bib2FyZFR5cGUpLCBtX3Bhc3RlYm9hcmROYW1lKTsKQEAgLTE5OSw2ICsy
NzAsNyBAQCBTdHJpbmcgRHJhZ0RhdGE6OmFzVVJMKEZpbGVuYW1lQ29udmVyc2lvblBvbGljeSwg
U3RyaW5nKiB0aXRsZSkgY29uc3QKIAogICAgIGlmICh0eXBlcy5jb250YWlucyhTdHJpbmcoTlNG
aWxlc1Byb21pc2VQYm9hcmRUeXBlKSkgJiYgZmlsZU5hbWVzKCkuc2l6ZSgpID09IDEpCiAgICAg
ICAgIHJldHVybiBbVVJMQnlDYW5vbmljYWxpemluZ1VSTChbTlNVUkwgZmlsZVVSTFdpdGhQYXRo
OmZpbGVOYW1lcygpWzBdXSkgYWJzb2x1dGVTdHJpbmddOworI2VuZGlmCiAKICAgICByZXR1cm4g
U3RyaW5nKCk7ICAgICAgICAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9EcmFnSW1hZ2VNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0lt
YWdlTWFjLm1tCmluZGV4IGQyZjhmNzA4MDNjY2RmOWM1MmJkYjZhMTdiZDgwMTg1NTFkYzNjMzgu
LjBlOWRjYTFiYTZjOWE2OGE4YTkwYmY1NTFhNGI0ZmJjNzQ4ZTVhY2EgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EcmFnSW1hZ2VNYWMubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdJbWFnZU1hYy5tbQpAQCAtMjYsNyArMjYsNyBAQAogI2lt
cG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0ICJEcmFnSW1hZ2UuaCIKIAotI2lmIEVOQUJMRShEUkFH
X1NVUFBPUlQpCisjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkgJiYgUExBVEZPUk0oTUFDKQogCiAj
aW1wb3J0ICJCaXRtYXBJbWFnZS5oIgogI2ltcG9ydCAiQ29yZUdyYXBoaWNzU1BJLmgiCkBAIC0z
NDgsNCArMzQ4LDQgQEAgRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUZvckxpbmsoVVJMJiB1
cmwsIGNvbnN0IFN0cmluZyYgdGl0bGUsIEZvbnRSZW5kZXJpbmcKICAgIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCi0jZW5kaWYgLy8gRU5BQkxFKERSQUdfU1VQUE9SVCkKKyNlbmRpZiAvLyBF
TkFCTEUoRFJBR19TVVBQT1JUKSAmJiBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50Lm1tIGIvU291cmNlL1dlYktp
dC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5tbQppbmRleCBmZjkwZDU5N2VlZWRk
ZWY3OGNkZWQ2NWEyOGYyOWIwNTY2N2RhMmRlLi5lMjMzZGQxMjA2MzQ0Zjk1N2RmNDM4NGZhNWVj
NGE0NGFiMTgyMWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJEcmFnQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkRyYWdDbGllbnQubW0KQEAgLTI1LDcgKzI1LDcgQEAKIAogI2ltcG9ydCAiV2ViRHJhZ0Ns
aWVudC5oIgogCi0jaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKKyNpZiBFTkFCTEUoRFJBR19TVVBQ
T1JUKSAmJiBQTEFURk9STShNQUMpCiAKICNpbXBvcnQgIkRPTUVsZW1lbnRJbnRlcm5hbC5oIgog
I2ltcG9ydCAiV2ViQXJjaGl2ZS5oIgpAQCAtMTQzLDQgKzE0Myw0IEBAIHZvaWQgV2ViRHJhZ0Ns
aWVudDo6ZHJhZ0NvbnRyb2xsZXJEZXN0cm95ZWQoKQogICAgIGRlbGV0ZSB0aGlzOwogfQogCi0j
ZW5kaWYgLy8gRU5BQkxFKERSQUdfU1VQUE9SVCkKKyNlbmRpZiAvLyBFTkFCTEUoRFJBR19TVVBQ
T1JUKSAmJiBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYkZyYW1lLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQpp
bmRleCBiZDhhNGQ1MDZiMzk5MmJhZTkyOGQ2ODc2ZTZhMDQ0NjE5NzMwOWI3Li5mZWM0YzYwZWQy
NjM2MGUyMGE5YTZkMjZjNGNlMDZkODdkMGUxODZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViRnJhbWUubW0KQEAgLTkzMyw3ICs5MzMsNyBAQCBzdGF0aWMgaW5saW5lIFdlYkRhdGFTb3Vy
Y2UgKmRhdGFTb3VyY2UoRG9jdW1lbnRMb2FkZXIqIGxvYWRlcikKICAgICBfcHJpdmF0ZS0+Y29y
ZUZyYW1lLT5lZGl0b3IoKS5jb21wdXRlQW5kU2V0VHlwaW5nU3R5bGUocHJvcGVydGllcy5nZXQo
KSwgdW5kb0FjdGlvbik7CiB9CiAKLSNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQorI2lmIEVOQUJM
RShEUkFHX1NVUFBPUlQpICYmIFBMQVRGT1JNKE1BQykKIC0gKHZvaWQpX2RyYWdTb3VyY2VFbmRl
ZEF0OihOU1BvaW50KXdpbmRvd0xvYyBvcGVyYXRpb246KE5TRHJhZ09wZXJhdGlvbilvcGVyYXRp
b24KIHsKICAgICBpZiAoIV9wcml2YXRlLT5jb3JlRnJhbWUpCkBAIC05NDYsNyArOTQ2LDcgQEAg
c3RhdGljIGlubGluZSBXZWJEYXRhU291cmNlICpkYXRhU291cmNlKERvY3VtZW50TG9hZGVyKiBs
b2FkZXIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExlZnRCdXR0b24sIFBsYXRmb3Jt
RXZlbnQ6Ok1vdXNlTW92ZWQsIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBjdXJyZW50
VGltZSgpLCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2ssIFdlYkNvcmU6Ok5vVGFwKTsKICAgICBfcHJp
dmF0ZS0+Y29yZUZyYW1lLT5ldmVudEhhbmRsZXIoKS5kcmFnU291cmNlRW5kZWRBdChldmVudCwg
KERyYWdPcGVyYXRpb24pb3BlcmF0aW9uKTsKIH0KLSNlbmRpZgorI2VuZGlmIC8vIEVOQUJMRShE
UkFHX1NVUFBPUlQpICYmIFBMQVRGT1JNKE1BQykKIAogLSAoQk9PTClfY2FuUHJvdmlkZURvY3Vt
ZW50U291cmNlCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZy
YW1lSW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVJbnRlcm5h
bC5oCmluZGV4IDU1M2MyMzA4YmFlOGU0NGE3NjJkM2Y4NzBjOWIxNzk0N2E4OWZlNzQuLjVjNzJk
Mjg3ZmE1NzcwODljZDQ0MGYwNjdjMWNkYTNhYzFjZjYxOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViRnJhbWVJbnRlcm5hbC5oCkBAIC0xNzksNyArMTc5LDcgQEAgV2ViVmll
dyAqZ2V0V2ViVmlldyhXZWJGcmFtZSAqd2ViRnJhbWUpOwogLSAoRE9NQ1NTU3R5bGVEZWNsYXJh
dGlvbiAqKV90eXBpbmdTdHlsZTsKIC0gKHZvaWQpX3NldFR5cGluZ1N0eWxlOihET01DU1NTdHls
ZURlY2xhcmF0aW9uICopc3R5bGUgd2l0aFVuZG9BY3Rpb246KFdlYkNvcmU6OkVkaXRBY3Rpb24p
dW5kb0FjdGlvbjsKIAotI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCisjaWYgRU5BQkxFKERSQUdf
U1VQUE9SVCkgJiYgUExBVEZPUk0oTUFDKQogLSAodm9pZClfZHJhZ1NvdXJjZUVuZGVkQXQ6KE5T
UG9pbnQpd2luZG93TG9jIG9wZXJhdGlvbjooTlNEcmFnT3BlcmF0aW9uKW9wZXJhdGlvbjsKICNl
bmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3
Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQppbmRleCAwMjA5
ZDgxM2U4ZmNiOTc1NzQ4ZTljODk1ZmRlNzgyNzAwYjE0ODRhLi42NGU2M2UyOTAwNmQ1NmViMzcz
Nzg1Yjg2ZDA3YmM5NjU3NzY3MDRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYkhUTUxWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRN
TFZpZXcubW0KQEAgLTQ1NDQsNyArNDU0NCw3IEBAIHN0YXRpYyBCT09MIGN1cnJlbnRTY3JvbGxJ
c0JsaXQoTlNWaWV3ICpjbGlwVmlldykKIH0KICNlbmRpZgogCi0jaWYgRU5BQkxFKERSQUdfU1VQ
UE9SVCkKKyNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKSAmJiBQTEFURk9STShNQUMpCiAtICh2b2lk
KWRyYWdJbWFnZTooTlNJbWFnZSAqKWRyYWdJbWFnZQogICAgICAgICAgICAgICAgYXQ6KE5TUG9p
bnQpYXQKICAgICAgICAgICAgb2Zmc2V0OihOU1NpemUpb2Zmc2V0CkBAIC00Njg4LDcgKzQ2ODgs
NyBAQCBzdGF0aWMgYm9vbCBtYXRjaGVzRXh0ZW5zaW9uT3JFcXVpdmFsZW50KE5TU3RyaW5nICpm
aWxlbmFtZSwgTlNTdHJpbmcgKmV4dGVuc2lvbgogICAgIAogICAgIHJldHVybiBbTlNBcnJheSBh
cnJheVdpdGhPYmplY3Q6W3BhdGggbGFzdFBhdGhDb21wb25lbnRdXTsKIH0KLSNlbmRpZgorI2Vu
ZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBPUlQpICYmIFBMQVRGT1JNKE1BQykKIAogI2lmICFQTEFU
Rk9STShJT1MpCiAtICh2b2lkKW1vdXNlVXA6KE5TRXZlbnQgKilldmVudApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IDU3YmFhNTRlMzQyZWJjYzIxN2I1MGM4MTM0MGU5ZTQ2
YjcxYzY1ZGYuLjllMTNmNmFiMzZkZTg3ZDgxYmQxODRhMjE3MjUxNDE4NDI1NWU4MzQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTE2MDgsNyArMTYwOCw3IEBAIHN0YXRp
YyB2b2lkIFdlYktpdEluaXRpYWxpemVHYW1lcGFkUHJvdmlkZXJJZk5lY2Vzc2FyeSgpCiAgICAg
ICAgIG1ha2VVbmlxdWVSZWY8V2ViQ29yZTo6TGliV2ViUlRDUHJvdmlkZXI+KCkKICAgICApOwog
ICAgIHBhZ2VDb25maWd1cmF0aW9uLmNocm9tZUNsaWVudCA9IG5ldyBXZWJDaHJvbWVDbGllbnRJ
T1Moc2VsZik7Ci0jaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKKyNpZiBFTkFCTEUoRFJBR19TVVBQ
T1JUKSAmJiBQTEFURk9STShNQUMpCiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uZHJhZ0NsaWVudCA9
IG5ldyBXZWJEcmFnQ2xpZW50KHNlbGYpOwogI2VuZGlmCiAKQEAgLTY0NzUsNyArNjQ3NSw3IEBA
IHN0YXRpYyBOU1N0cmluZyAqIGNvbnN0IGJhY2tpbmdQcm9wZXJ0eU9sZFNjYWxlRmFjdG9yS2V5
ID0gQCJOU0JhY2tpbmdQcm9wZXJ0eU9sCiAgICAgcmV0dXJuIFtzZWxmIF9lbGVtZW50QXRXaW5k
b3dQb2ludDpbc2VsZiBjb252ZXJ0UG9pbnQ6cG9pbnQgdG9WaWV3Om5pbF1dOwogfQogCi0jaWYg
RU5BQkxFKERSQUdfU1VQUE9SVCkKKyNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKSAmJiBQTEFURk9S
TShNQUMpCiAvLyBUaGUgZm9sbG93aW5nIDIgaW50ZXJuYWwgTlNWaWV3IG1ldGhvZHMgYXJlIGNh
bGxlZCBvbiB0aGUgZHJhZyBkZXN0aW5hdGlvbiB0byBtYWtlIHNjcm9sbGluZyB3aGlsZSBkcmFn
Z2luZyB3b3JrLgogLy8gU2Nyb2xsaW5nIHdoaWxlIGRyYWdnaW5nIHdpbGwgb25seSB3b3JrIGlm
IHRoZSBkcmFnIGRlc3RpbmF0aW9uIGlzIGluIGEgc2Nyb2xsIHZpZXcuIFRoZSBXZWJWaWV3IGlz
IHRoZSBkcmFnIGRlc3RpbmF0aW9uLiAKIC8vIFdoZW4gZHJhZ2dpbmcgdG8gYSBXZWJWaWV3LCB0
aGUgZG9jdW1lbnQgc3VidmlldyBzaG91bGQgc2Nyb2xsLCBidXQgaXQgZG9lc24ndCBiZWNhdXNl
IGl0IGlzIG5vdCB0aGUgZHJhZyBkZXN0aW5hdGlvbi4gCkBAIC02NTk2LDcgKzY1OTYsNyBAQCBz
dGF0aWMgTlNTdHJpbmcgKiBjb25zdCBiYWNraW5nUHJvcGVydHlPbGRTY2FsZUZhY3RvcktleSA9
IEAiTlNCYWNraW5nUHJvcGVydHlPbAogICAgICAgICByZXR1cm4gc2VsZjsKICAgICByZXR1cm4g
aGl0VmlldzsKIH0KLSNlbmRpZgorI2VuZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBPUlQpICYmIFBM
QVRGT1JNKE1BQykKIAogLSAoQk9PTClhY2NlcHRzRmlyc3RSZXNwb25kZXIKIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKaW5kZXggYzZhODU3
MTk3ZDVlMWEyZWFjMDY3MDkwNjg1NWIzMDg4OGJjNzQ5My4uYmYwNmMwYzIzNDRlMDY0MDk4NzRi
MDAyMzA1ZjlmYzRiZTMyNDdhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNv
cmVBcmd1bWVudENvZGVycy5jcHAKQEAgLTEyMjMsOCArMTIyMywxMCBAQCB2b2lkIEFyZ3VtZW50
Q29kZXI8RHJhZ0RhdGE+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgRHJhZ0RhdGEm
IGRyYWdEYXRhKQogICAgIGVuY29kZXIgPDwgZHJhZ0RhdGEuZ2xvYmFsUG9zaXRpb24oKTsKICAg
ICBlbmNvZGVyLmVuY29kZUVudW0oZHJhZ0RhdGEuZHJhZ2dpbmdTb3VyY2VPcGVyYXRpb25NYXNr
KCkpOwogICAgIGVuY29kZXIuZW5jb2RlRW51bShkcmFnRGF0YS5mbGFncygpKTsKLSNpZiBQTEFU
Rk9STShNQUMpCisjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgZW5jb2RlciA8PCBkcmFnRGF0YS5w
YXN0ZWJvYXJkTmFtZSgpOworI2VuZGlmCisjaWYgUExBVEZPUk0oTUFDKQogICAgIGVuY29kZXIg
PDwgZHJhZ0RhdGEuZmlsZU5hbWVzKCk7CiAjZW5kaWYKIH0KQEAgLTEyNDgsMTMgKzEyNTAsMTUg
QEAgYm9vbCBBcmd1bWVudENvZGVyPERyYWdEYXRhPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIs
IERyYWdEYXRhJiBkcmFnRGF0YSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgU3RyaW5n
IHBhc3RlYm9hcmROYW1lOwotI2lmIFBMQVRGT1JNKE1BQykKKyNpZiBQTEFURk9STShDT0NPQSkK
ICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhc3RlYm9hcmROYW1lKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogI2VuZGlmCiAgICAgVmVjdG9yPFN0cmluZz4gZmlsZU5hbWVzOworI2lmIFBMQVRG
T1JNKE1BQykKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGZpbGVOYW1lcykpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyNlbmRpZgogCiAgICAgZHJhZ0RhdGEgPSBEcmFnRGF0YShwYXN0ZWJvYXJk
TmFtZSwgY2xpZW50UG9zaXRpb24sIGdsb2JhbFBvc2l0aW9uLCBkcmFnZ2luZ1NvdXJjZU9wZXJh
dGlvbk1hc2ssIGFwcGxpY2F0aW9uRmxhZ3MpOwogICAgIGRyYWdEYXRhLnNldEZpbGVOYW1lcyhm
aWxlTmFtZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dl
YlBhZ2VQcm94eUNvY29hLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlBh
Z2VQcm94eUNvY29hLm1tCmluZGV4IGJhN2Y3Zjc5ZmZhYmEyNjM5ZGU4MjEzNGJhZWU3YzU1YjEz
NjdhZmMuLjVmZjg5M2JlZTZlZjcwZTg2NWJiZTMyMTRhZDg4MmM0ZDQ1Yjg1MmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0K
QEAgLTM0LDYgKzM0LDEwIEBACiAjaW1wb3J0IDxXZWJDb3JlL1ZhbGlkYXRpb25CdWJibGUuaD4K
ICNpbXBvcnQgPHd0Zi9jZi9UeXBlQ2FzdHNDRi5oPgogCisjaWYgVVNFKEFQUExFX0lOVEVSTkFM
X1NESykgJiYgX19oYXNfaW5jbHVkZSg8V2ViS2l0QWRkaXRpb25zL1dlYlBhZ2VQcm94eUFkZGl0
aW9ucy5tbT4pCisjaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvV2ViUGFnZVByb3h5QWRkaXRpb25z
Lm1tPgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiAjaWYgRU5BQkxFKERBVEFfREVU
RUNUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9tYWMvV2ViRHJhZ0NsaWVudE1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvbWFjL1dlYkRyYWdDbGllbnRNYWMubW0KaW5kZXggODhhZDVkY2M0MTYw
ZGMxMWI1ZWJmZTIwYzJkMGZlZjgzYmQ4NGI3OC4uOWE4NDUyOGE3ZDAxZjYzMTc1YzAwYmU4NGMy
NmY4YjVmYTIxMjJjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0NsaWVudE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJEcmFnQ2xpZW50TWFjLm1tCkBAIC01MSw2
ICs1MSwxMiBAQAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB1c2luZyBuYW1lc3BhY2UgV2Vi
S2l0OwogCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykgJiYgX19oYXNfaW5jbHVkZSg8V2Vi
S2l0QWRkaXRpb25zL1dlYkRyYWdDbGllbnRBZGRpdGlvbnMubW0+KQorI2ltcG9ydCA8V2ViS2l0
QWRkaXRpb25zL1dlYkRyYWdDbGllbnRBZGRpdGlvbnMubW0+CisjZW5kaWYKKworI2lmIFBMQVRG
T1JNKE1BQykKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIHN0YXRpYyBQYXNzUmVmUHRyPFNoYXJl
YWJsZUJpdG1hcD4gY29udmVydEltYWdlVG9CaXRtYXAoTlNJbWFnZSAqaW1hZ2UsIGNvbnN0IElu
dFNpemUmIHNpemUsIEZyYW1lJiBmcmFtZSkKQEAgLTE2MCw0ICsxNjYsNiBAQCB2b2lkIFdlYkRy
YWdDbGllbnQ6OmRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZShjb25zdCBTdHJpbmcmIHBhc3RlYm9h
cmROYW1lLCBFbGVtZQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAorI2VuZGlmIC8vIFBMQVRG
T1JNKE1BQykKKwogI2VuZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBPUlQpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>