<?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>160670</bug_id>
          
          <creation_ts>2016-08-08 15:36:32 -0700</creation_ts>
          <short_desc>Add a new PluginInfoProvider class, to replace PluginStrategy</short_desc>
          <delta_ts>2016-08-16 20:48:38 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>160775</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>hs85.jeong</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1218596</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-08-08 15:36:32 -0700</bug_when>
    <thetext>Add a new PluginInfoProvider class, to replace PluginStrategy</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1218597</commentid>
    <comment_count>1</comment_count>
      <attachid>285593</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-08-08 15:40:40 -0700</bug_when>
    <thetext>Created attachment 285593
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1218598</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-08 15:43:00 -0700</bug_when>
    <thetext>Attachment 285593 did not pass style-queue:


ERROR: Source/WebKit/mac/WebCoreSupport/WebPluginInfoProvider.mm:26:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
ERROR: Source/WebKit/win/WebCoreSupport/WebPluginInfoProvider.cpp:26:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
ERROR: Source/WebKit/win/WebCoreSupport/WebPluginInfoProvider.cpp:30:  Bad include order. Mixing system and custom headers.  [build/include_order] [4]
Total errors found: 3 in 29 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>1218599</commentid>
    <comment_count>3</comment_count>
      <attachid>285593</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2016-08-08 15:45:48 -0700</bug_when>
    <thetext>Comment on attachment 285593
Patch

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

&gt; Source/WebKit/win/WebCoreSupport/WebPluginInfoProvider.h:26
&gt; +#import &lt;WebCore/PluginInfoProvider.h&gt;

Missing #pragma once.

&gt; Source/WebKit2/WebProcess/Plugins/WebPluginInfoProvider.h:26
&gt; +#include &lt;WebCore/PluginInfoProvider.h&gt;

Missing #pragma once</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1218600</commentid>
    <comment_count>4</comment_count>
      <attachid>285594</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-08-08 15:48:00 -0700</bug_when>
    <thetext>Created attachment 285594
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1218601</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-08 15:49:47 -0700</bug_when>
    <thetext>Attachment 285594 did not pass style-queue:


ERROR: Source/WebKit/mac/WebCoreSupport/WebPluginInfoProvider.mm:26:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
ERROR: Source/WebKit/win/WebCoreSupport/WebPluginInfoProvider.cpp:26:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
ERROR: Source/WebKit/win/WebCoreSupport/WebPluginInfoProvider.cpp:30:  Bad include order. Mixing system and custom headers.  [build/include_order] [4]
Total errors found: 3 in 29 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>1218604</commentid>
    <comment_count>6</comment_count>
      <attachid>285596</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-08-08 16:03:40 -0700</bug_when>
    <thetext>Created attachment 285596
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1218606</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-08 16:04:51 -0700</bug_when>
    <thetext>Attachment 285596 did not pass style-queue:


ERROR: Source/WebKit/mac/WebCoreSupport/WebPluginInfoProvider.mm:26:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
ERROR: Source/WebKit/win/WebCoreSupport/WebPluginInfoProvider.cpp:26:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 2 in 31 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>1218623</commentid>
    <comment_count>8</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-08-08 16:45:19 -0700</bug_when>
    <thetext>Committed r204268: &lt;http://trac.webkit.org/changeset/204268&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1220754</commentid>
    <comment_count>9</comment_count>
    <who name="Hunseop Jeong">hs85.jeong</who>
    <bug_when>2016-08-16 20:48:38 -0700</bug_when>
    <thetext>CMake build fix
Committed r204548: &lt;http://trac.webkit.org/changeset/204548&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>285593</attachid>
            <date>2016-08-08 15:40:40 -0700</date>
            <delta_ts>2016-08-08 15:47:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160670-20160808153907.patch</filename>
            <type>text/plain</type>
            <size>58045</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0MjYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDg3OWRhNjcxNzFmNjVm
Yzc2OWIxOGM2YmM2OTc1NmE4YmMzMmQzYS4uMWZkMGY4ZTY4YzNhYTI3NGE2ZTEzNTExZDYzMjA4
Njg4MjU5ZDhlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDE2LTA4LTA4ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGEgbmV3IFBs
dWdpbkluZm9Qcm92aWRlciBjbGFzcywgdG8gcmVwbGFjZSBQbHVnaW5TdHJhdGVneQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwNjcwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgcGVyIHBhZ2Ug
UGx1Z2luSW5mb1Byb3ZpZGVyIGNsYXNzIHRoYXQncyBnb2luZyB0byB1bHRpbWF0ZWx5IHJlcGxh
Y2UgdGhlIHBsdWctaW4gc3RyYXRlZ3kuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpmaWxsV2l0aEVtcHR5Q2xpZW50cyk6CisgICAgICAgICogcGFnZS9QYWdl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6
UGFnZTo6flBhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6cmVmcmVzaFBsdWdpbnMpOgor
ICAgICAgICAoV2ViQ29yZTo6UGFnZTo6cGx1Z2luRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpQ
YWdlOjpwbHVnaW5JbmZvUHJvdmlkZXIpOgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAgICAg
ICAqIHBhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwOgorICAgICAgICAqIHBhZ2UvUGFnZUNvbmZp
Z3VyYXRpb24uaDoKKyAgICAgICAgKiBwbHVnaW5zL0RPTVBsdWdpbkFycmF5LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRPTVBsdWdpbkFycmF5OjpyZWZyZXNoKToKKyAgICAgICAgKiBwbHVnaW5z
L0RPTVBsdWdpbkFycmF5Lmg6CisgICAgICAgICogcGx1Z2lucy9QbHVnaW5EYXRhLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlBsdWdpbkRhdGE6OlBsdWdpbkRhdGEpOgorICAgICAgICAoV2ViQ29y
ZTo6UGx1Z2luRGF0YTo6d2ViVmlzaWJsZVBsdWdpbnMpOgorICAgICAgICAoV2ViQ29yZTo6UGx1
Z2luRGF0YTo6cHVibGljbHlWaXNpYmxlUGx1Z2lucyk6CisgICAgICAgIChXZWJDb3JlOjpQbHVn
aW5EYXRhOjppbml0UGx1Z2lucyk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5EYXRhOjpyZWZy
ZXNoKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpbkRhdGEuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlBsdWdpbkRhdGE6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5E
YXRhOjpQbHVnaW5EYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpbkluZm9Q
cm92aWRlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luSW5mb1Byb3ZpZGVy
Ojp+UGx1Z2luSW5mb1Byb3ZpZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpbkluZm9Qcm92
aWRlcjo6YWRkUGFnZSk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5JbmZvUHJvdmlkZXI6OnJl
bW92ZVBhZ2UpOgorICAgICAgICAqIHBsdWdpbnMvUGx1Z2luSW5mb1Byb3ZpZGVyLmg6IEFkZGVk
LgorICAgICAgICAqIHJlcGxheS9TZXJpYWxpemF0aW9uTWV0aG9kcy5jcHA6CisgICAgICAgIChK
U0M6OkVuY29kaW5nVHJhaXRzPFBsdWdpbkRhdGE+OjpkZWNvZGVWYWx1ZSk6CisgICAgICAgIChK
U0M6OkRlc2VyaWFsaXplZFBsdWdpbkRhdGE6OkRlc2VyaWFsaXplZFBsdWdpbkRhdGEpOiBEZWxl
dGVkLgorCiAyMDE2LTA4LTA4ICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgog
CiAgICAgICAgIERvbid0IHNldCBkb2N1bWVudC5kb21haW4gdG8gYW4gSVAgYWRkcmVzcyBmcmFn
bWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCBhZjlkNTBjZDVjYTJmMmQzOWExZWNkNjg2NmE0YzU0YjZiYmIzNjMz
Li4zYmQ4YzY5ODdjYjkyNTRkMmMyMzI5NmIyZmQ3OTFmZDJiOWVmNDU1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE1IEBACisyMDE2LTA4LTA4ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBs
ZS5jb20+CisKKyAgICAgICAgQWRkIGEgbmV3IFBsdWdpbkluZm9Qcm92aWRlciBjbGFzcywgdG8g
cmVwbGFjZSBQbHVnaW5TdHJhdGVneQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTYwNjcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkIG5ldyBmaWxlcy4KKworICAgICAgICAqIFBsYXRmb3JtV2luLmNt
YWtlOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDE2
LTA4LTA0ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgW01hY11bY21ha2VdIEZpeCB0aGUgYnVpbGQgYWZ0ZXIgT2JqZWN0aXZlLUMgYmluZGlu
Z3MgZ2VuZXJhdG9yIHJlbW92YWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCAxZTUxNDM4ODQ0YjZkOGY2
OGY0MDcyYTY2ZTY3YTMzNWUyZjZlN2IyLi5iNWNiODFhM2RkMDc4NTY3YzE2ZDZlZWIzOTQ0YTZl
OTZjYWFmYjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTYtMDgtMDgg
IEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYSBu
ZXcgUGx1Z2luSW5mb1Byb3ZpZGVyIGNsYXNzLCB0byByZXBsYWNlIFBsdWdpblN0cmF0ZWd5Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA2NzAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBuZXcg
V2ViUGx1Z2luSW5mb1Byb3ZpZGVyIC0gaXQganVzdCBjYWxscyB0aHJvdWdoIHRvIHRoZSBwbHVn
LWluIHN0cmF0ZWd5IGZvciBub3cuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQbHVn
aW5JbmZvUHJvdmlkZXIuaDogQWRkZWQuCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUGx1
Z2luSW5mb1Byb3ZpZGVyLm1tOiBBZGRlZC4KKyAgICAgICAgKFdlYlBsdWdpbkluZm9Qcm92aWRl
cjo6c2luZ2xldG9uKToKKyAgICAgICAgKFdlYlBsdWdpbkluZm9Qcm92aWRlcjo6V2ViUGx1Z2lu
SW5mb1Byb3ZpZGVyKToKKyAgICAgICAgKFdlYlBsdWdpbkluZm9Qcm92aWRlcjo6fldlYlBsdWdp
bkluZm9Qcm92aWRlcik6CisgICAgICAgIChXZWJQbHVnaW5JbmZvUHJvdmlkZXI6OnJlZnJlc2hQ
bHVnaW5zKToKKyAgICAgICAgKFdlYlBsdWdpbkluZm9Qcm92aWRlcjo6Z2V0UGx1Z2luSW5mbyk6
CisgICAgICAgIChXZWJQbHVnaW5JbmZvUHJvdmlkZXI6OmdldFdlYlZpc2libGVQbHVnaW5JbmZv
KToKKyAgICAgICAgKFdlYlBsdWdpbkluZm9Qcm92aWRlcjo6c2V0UGx1Z2luTG9hZENsaWVudFBv
bGljeSk6CisgICAgICAgIChXZWJQbHVnaW5JbmZvUHJvdmlkZXI6OmNsZWFyUGx1Z2luQ2xpZW50
UG9saWNpZXMpOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2Vi
VmlldyBfY29tbW9uSW5pdGlhbGl6YXRpb25XaXRoRnJhbWVOYW1lOmdyb3VwTmFtZTpdKToKKwog
MjAxNi0wOC0wMiAgRW5yaWNhIENhc3VjY2kgIDxlbnJpY2FAYXBwbGUuY29tPgogCiAgICAgICAg
IEFsbG93IGJ1aWxkaW5nIHdpdGggY29udGVudCBmaWx0ZXJpbmcgZGlzYWJsZWQuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFu
Z2VMb2cKaW5kZXggZDQ2N2M0ZmEzM2Q5YzhhNWFmMWI5Y2VkM2NhMThlNDJjNzFlMDU3NS4uY2Fh
NDhlYTFmMTk4OTAzMjM1ODBjMDFlMTUxZjc1OTliMTJiYzAzNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIxIEBACisyMDE2LTA4LTA4ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBh
cHBsZS5jb20+CisKKyAgICAgICAgQWRkIGEgbmV3IFBsdWdpbkluZm9Qcm92aWRlciBjbGFzcywg
dG8gcmVwbGFjZSBQbHVnaW5TdHJhdGVneQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTYwNjcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQWRkIGEgbmV3IFdlYlBsdWdpbkluZm9Qcm92aWRlciAtIGl0IGp1
c3QgY2FsbHMgdGhyb3VnaCB0byB0aGUgcGx1Zy1pbiBzdHJhdGVneSBmb3Igbm93LgorCisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJQbHVnaW5JbmZvUHJvdmlkZXI6OnNpbmdsZXRvbik6CisgICAgICAgIChXZWJQ
bHVnaW5JbmZvUHJvdmlkZXI6OldlYlBsdWdpbkluZm9Qcm92aWRlcik6CisgICAgICAgIChXZWJQ
bHVnaW5JbmZvUHJvdmlkZXI6On5XZWJQbHVnaW5JbmZvUHJvdmlkZXIpOgorICAgICAgICAoV2Vi
UGx1Z2luSW5mb1Byb3ZpZGVyOjpyZWZyZXNoUGx1Z2lucyk6CisgICAgICAgIChXZWJQbHVnaW5J
bmZvUHJvdmlkZXI6OmdldFBsdWdpbkluZm8pOgorICAgICAgICAoV2ViUGx1Z2luSW5mb1Byb3Zp
ZGVyOjpnZXRXZWJWaXNpYmxlUGx1Z2luSW5mbyk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
V2ViUGx1Z2luSW5mb1Byb3ZpZGVyLmg6IEFkZGVkLgorCiAyMDE2LTA3LTI5ICBDc2FiYSBPc3p0
cm9nb27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVtb3ZlIFBhc3NSZWYuaCBh
ZnRlciByMTc3MjU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZGZkMGZmM2ZiNjEwNWFhZDNmMTgwY2M4MmQyMWU2
NTJmY2JiYTZjMy4uYzA2YjI4NzVhMGI5NjdmYzlhMjMzY2JkM2M0Y2U3ODAxYjM4NmQ0YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE2LTA4LTA4ICBBbmRlcnMgQ2FybHNzb24gIDxh
bmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGEgbmV3IFBsdWdpbkluZm9Qcm92aWRl
ciBjbGFzcywgdG8gcmVwbGFjZSBQbHVnaW5TdHJhdGVneQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwNjcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgbmV3IFdlYlBsdWdpbkluZm9Qcm92aWRl
ciAtIGl0IGp1c3QgY2FsbHMgdGhyb3VnaCB0byB0aGUgcGx1Zy1pbiBzdHJhdGVneSBmb3Igbm93
LgorCisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9XZWJQbHVnaW5JbmZvUHJvdmlkZXIuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYktpdDo6V2ViUGx1Z2luSW5mb1Byb3ZpZGVyOjpzaW5nbGV0b24pOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQbHVnaW5JbmZvUHJvdmlkZXI6OldlYlBsdWdpbkluZm9Qcm92aWRl
cik6CisgICAgICAgIChXZWJLaXQ6OldlYlBsdWdpbkluZm9Qcm92aWRlcjo6fldlYlBsdWdpbklu
Zm9Qcm92aWRlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlBsdWdpbkluZm9Qcm92aWRlcjo6cmVm
cmVzaFBsdWdpbnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbHVnaW5JbmZvUHJvdmlkZXI6Omdl
dFBsdWdpbkluZm8pOgorICAgICAgICAoV2ViS2l0OjpXZWJQbHVnaW5JbmZvUHJvdmlkZXI6Omdl
dFdlYlZpc2libGVQbHVnaW5JbmZvKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGx1Z2luSW5mb1By
b3ZpZGVyOjpzZXRQbHVnaW5Mb2FkQ2xpZW50UG9saWN5KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGx1Z2luSW5mb1Byb3ZpZGVyOjpjbGVhclBsdWdpbkNsaWVudFBvbGljaWVzKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1BsdWdpbnMvV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLmg6IEFkZGVkLgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
bV91c2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uKToKKwogMjAxNi0wOC0wOCAgQnJhZHkgRWlk
c29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkcmVzc2luZyBsYXRlIHJldmll
dyBmZWVkYmFjayBpbiBidWcgMTYwNjA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMzRhMjg3NzU4YzgxMzNjMDdiZDI1YzFmYjQ3
NmJmZDQ5YjAwZTEwOS4uMjdjMmY4OTc2YTBmMWU5MTNlNjI4NTQzNjViZDAyMDkyY2U5YjJhMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtNjY2LDYgKzY2Niw4IEBACiAJCTE5QkZGNjRGMTFDMEYyQUMwMEI4QzA0RCAvKiBKU1NW
R0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxOUJGRjY0QTExQzBGMkFDMDBCOEMwNEQgLyogSlNTVkdGRUNvbnZv
bHZlTWF0cml4RWxlbWVudC5oICovOyB9OwogCQkxQTA0MDlEQzFBNDM2MEI1MDA5RTQ3RjMgLyog
TWFjaFNlbmRSaWdodC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMUEwNDA5REIxQTQzNjBCNTAwOUU0N0YzIC8qIE1hY2hTZW5kUmlnaHQuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxQTA0MDlGMzFBNDM2
NzVDMDA5RTQ3RjMgLyogTWFjaFNlbmRSaWdodC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTA0MDlGMjFBNDM2NzVDMDA5RTQ3RjMgLyogTWFjaFNl
bmRSaWdodC5jcHAgKi87IH07CisJCTFBMDhGRURDMUQ1OTJCOEIwMDhCQThDQiAvKiBQbHVnaW5J
bmZvUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMUEwOEZFREExRDU5MkI4QjAwOEJBOENCIC8qIFBsdWdpbkluZm9Qcm92aWRlci5jcHAg
Ki87IH07CisJCTFBMDhGRUREMUQ1OTJCOEIwMDhCQThDQiAvKiBQbHVnaW5JbmZvUHJvdmlkZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBMDhGRURC
MUQ1OTJCOEIwMDhCQThDQiAvKiBQbHVnaW5JbmZvUHJvdmlkZXIuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxQTBENTczNjBBNUM3N0ZFMDA3RURE
NEMgLyogT3ZlcmZsb3dFdmVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxQTBENTczNDBBNUM3N0ZFMDA3RURENEMgLyogT3ZlcmZsb3dFdmVudC5j
cHAgKi87IH07CiAJCTFBMEQ1NzM3MEE1Qzc3RkUwMDdFREQ0QyAvKiBPdmVyZmxvd0V2ZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTBENTczNTBB
NUM3N0ZFMDA3RURENEMgLyogT3ZlcmZsb3dFdmVudC5oICovOyB9OwogCQkxQTBENTc0MDBBNUM3
ODY3MDA3RURENEMgLyogSlNPdmVyZmxvd0V2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBMEQ1NzNFMEE1Qzc4NjcwMDdFREQ0QyAvKiBKU092
ZXJmbG93RXZlbnQuY3BwICovOyB9OwpAQCAtNzg4Niw2ICs3ODg4LDggQEAKIAkJMTlCRkY2NEEx
MUMwRjJBQzAwQjhDMDREIC8qIEpTU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTA0MDlEQjFBNDM2MEI1MDA5RTQ3RjMg
LyogTWFjaFNlbmRSaWdodC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNYWNo
U2VuZFJpZ2h0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBMDQwOUYyMUE0MzY3
NUMwMDlFNDdGMyAvKiBNYWNoU2VuZFJpZ2h0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IE1hY2hTZW5kUmlnaHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkxQTA4RkVEQTFENTkyQjhCMDA4QkE4Q0IgLyogUGx1Z2luSW5mb1Byb3ZpZGVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBsdWdpbkluZm9Qcm92aWRlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFBMDhGRURCMUQ1OTJCOEIwMDhCQThD
QiAvKiBQbHVnaW5JbmZvUHJvdmlkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUGx1Z2luSW5mb1Byb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFB
MEQ1NzM0MEE1Qzc3RkUwMDdFREQ0QyAvKiBPdmVyZmxvd0V2ZW50LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBPdmVyZmxvd0V2ZW50LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMUEwRDU3MzUwQTVDNzdGRTAwN0VERDRDIC8qIE92ZXJmbG93RXZl
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE92ZXJmbG93RXZlbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUEwRDU3MzgwQTVDNzgxMjAwN0VERDRDIC8q
IE92ZXJmbG93RXZlbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBPdmVyZmxvd0V2ZW50
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3NjkwLDYgKzE3Njk0LDggQEAK
IAkJCQkxQTkyN0ZEMTE0MTZBMTVCMDAzQTgzQzggLyogbnB0eXBlcy5oICovLAogCQkJCUE5QzZF
NEYxMEQ3NDVFNDgwMDY0NDJFOSAvKiBQbHVnaW5EYXRhLmNwcCAqLywKIAkJCQlBOUM2RTRGMjBE
NzQ1RTQ4MDA2NDQyRTkgLyogUGx1Z2luRGF0YS5oICovLAorCQkJCTFBMDhGRURBMUQ1OTJCOEIw
MDhCQThDQiAvKiBQbHVnaW5JbmZvUHJvdmlkZXIuY3BwICovLAorCQkJCTFBMDhGRURCMUQ1OTJC
OEIwMDhCQThDQiAvKiBQbHVnaW5JbmZvUHJvdmlkZXIuaCAqLywKIAkJCQkxQUE4Nzk4RjExQ0JF
ODQ2MDAzQzY2NEYgLyogUGx1Z2luU3RyYXRlZ3kuaCAqLywKIAkJCQkwQUZEQUMzQzEwRjU0NDhD
MDBFMUYzRDIgLyogUGx1Z2luVmlld0Jhc2UuaCAqLywKIAkJCSk7CkBAIC0yNzc2Miw2ICsyNzc2
OCw3IEBACiAJCQkJQjIyMjdBMkQwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0ltYWdlRWxlbWVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMDhGODU5RDUxNDYzRjlDRDAwNjdEOTM0IC8qIFNWR0ltYWdl
Rm9yQ29udGFpbmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjhDNkEyQTBEMDBDNDQ4MDAzMzRB
QTQgLyogU1ZHSW1hZ2VMb2FkZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTFBMDhGRUREMUQ1OTJC
OEIwMDhCQThDQiAvKiBQbHVnaW5JbmZvUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4
NTRCMDFGMTI1NUU0RTYwMEI5Q0REMCAvKiBTVkdJbmxpbmVGbG93Qm94LmggaW4gSGVhZGVycyAq
LywKIAkJCQkwODU0QjAyMTEyNTVFNEU2MDBCOUNERDAgLyogU1ZHSW5saW5lVGV4dEJveC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBMzAwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0xhbmdTcGFj
ZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMDMyMCw2ICszMDMyNyw3IEBACiAJCQkJQjJGQTNEREMw
QUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHUGF0aFNlZ01vdmV0b0Ficy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlCMkZBM0RERTBBQjc1QTZGMDAwRTVBQzQgLyogSlNTVkdQYXRoU2VnTW92ZXRvUmVs
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyRkEzREUwMEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NW
R1BhdHRlcm5FbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFBMDhGRURDMUQ1OTJCOEIw
MDhCQThDQiAvKiBQbHVnaW5JbmZvUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODU0
MkE3OTYwQUU1Qzk0MjAwREY1OERGIC8qIEpTU1ZHUG9pbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQjJGQTNERTIwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHUG9pbnRMaXN0LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUIyRkEzREU1MEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR1BvbHlnb25FbGVt
ZW50LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0VtcHR5Q2xpZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNw
cAppbmRleCA0MDgxZGU2MjJlMDQ0YzlmMWJlZTFlODg3M2QzN2ZjN2U4MzhjYjY3Li5iMDFmMjQ1
MGJiODAyMjllODBjZjJmMmY5NGI5ZGFkOWQwNzIzNDM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RW1wdHlDbGllbnRzLmNwcApAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUgIlBhZ2UuaCIKICNp
bmNsdWRlICJQYWdlQ29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgIlBheW1lbnRDb29yZGluYXRv
ckNsaWVudC5oIgorI2luY2x1ZGUgIlBsdWdpbkluZm9Qcm92aWRlci5oIgogI2luY2x1ZGUgIlN0
b3JhZ2VBcmVhLmgiCiAjaW5jbHVkZSAiU3RvcmFnZU5hbWVzcGFjZS5oIgogI2luY2x1ZGUgIlN0
b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5oIgpAQCAtNzgsNiArNzksMTYgQEAgY2xhc3MgRW1wdHlE
YXRhYmFzZVByb3ZpZGVyIGZpbmFsIDogcHVibGljIERhdGFiYXNlUHJvdmlkZXIgewogI2VuZGlm
CiB9OwogCitjbGFzcyBFbXB0eVBsdWdpbkluZm9Qcm92aWRlciBmaW5hbCA6IHB1YmxpYyBQbHVn
aW5JbmZvUHJvdmlkZXIgeworICAgIHZvaWQgcmVmcmVzaFBsdWdpbnMoKSBvdmVycmlkZSB7IH07
CisgICAgdm9pZCBnZXRQbHVnaW5JbmZvKFBhZ2UmLCBWZWN0b3I8UGx1Z2luSW5mbz4mKSBvdmVy
cmlkZSB7IH0KKyAgICB2b2lkIGdldFdlYlZpc2libGVQbHVnaW5JbmZvKFBhZ2UmLCBWZWN0b3I8
UGx1Z2luSW5mbz4mKSBvdmVycmlkZSB7IH0KKyNpZiBQTEFURk9STShNQUMpCisgICAgdm9pZCBz
ZXRQbHVnaW5Mb2FkQ2xpZW50UG9saWN5KFBsdWdpbkxvYWRDbGllbnRQb2xpY3ksIGNvbnN0IFN0
cmluZyYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlIHsgfQorICAgIHZv
aWQgY2xlYXJQbHVnaW5DbGllbnRQb2xpY2llcygpIG92ZXJyaWRlIHsgfQorI2VuZGlmCit9Owor
CiBjbGFzcyBFbXB0eVN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlciBmaW5hbCA6IHB1YmxpYyBTdG9y
YWdlTmFtZXNwYWNlUHJvdmlkZXIgewogICAgIHN0cnVjdCBFbXB0eVN0b3JhZ2VBcmVhIDogcHVi
bGljIFN0b3JhZ2VBcmVhIHsKICAgICAgICAgdW5zaWduZWQgbGVuZ3RoKCkgb3ZlcnJpZGUgeyBy
ZXR1cm4gMDsgfQpAQCAtMTYzLDYgKzE3NCw3IEBAIHZvaWQgZmlsbFdpdGhFbXB0eUNsaWVudHMo
UGFnZUNvbmZpZ3VyYXRpb24mIHBhZ2VDb25maWd1cmF0aW9uKQogCiAgICAgcGFnZUNvbmZpZ3Vy
YXRpb24uYXBwbGljYXRpb25DYWNoZVN0b3JhZ2UgPSBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6
Y3JlYXRlKFN0cmluZygpLCBTdHJpbmcoKSk7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uZGF0YWJh
c2VQcm92aWRlciA9IGFkb3B0UmVmKG5ldyBFbXB0eURhdGFiYXNlUHJvdmlkZXIpOworICAgIHBh
Z2VDb25maWd1cmF0aW9uLnBsdWdpbkluZm9Qcm92aWRlciA9IGFkb3B0UmVmKG5ldyBFbXB0eVBs
dWdpbkluZm9Qcm92aWRlcik7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uc3RvcmFnZU5hbWVzcGFj
ZVByb3ZpZGVyID0gYWRvcHRSZWYobmV3IEVtcHR5U3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyKTsK
ICAgICBwYWdlQ29uZmlndXJhdGlvbi51c2VyQ29udGVudFByb3ZpZGVyID0gYWRvcHRSZWYobmV3
IEVtcHR5VXNlckNvbnRlbnRQcm92aWRlcik7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24udmlzaXRl
ZExpbmtTdG9yZSA9IGFkb3B0UmVmKG5ldyBFbXB0eVZpc2l0ZWRMaW5rU3RvcmUpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5jcHAKaW5kZXggYmEwODk2MDQ5NTQxZDQwOTAyODBiYjgxMzU1ZTkwMGU0MTllNjA3OS4u
Yzk0NDkzZDBmMDExM2YwNmRjMjg2YjIwNDRjMjU2Mjc2YTJiZjI0NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2Uu
Y3BwCkBAIC02OSw2ICs2OSw3IEBACiAjaW5jbHVkZSAiUGFnZVRocm90dGxlci5oIgogI2luY2x1
ZGUgIlBsdWdJbkNsaWVudC5oIgogI2luY2x1ZGUgIlBsdWdpbkRhdGEuaCIKKyNpbmNsdWRlICJQ
bHVnaW5JbmZvUHJvdmlkZXIuaCIKICNpbmNsdWRlICJQbHVnaW5WaWV3QmFzZS5oIgogI2luY2x1
ZGUgIlBvaW50ZXJMb2NrQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIlByb2dyZXNzVHJhY2tlci5o
IgpAQCAtMjMzLDYgKzIzNCw3IEBAIFBhZ2U6OlBhZ2UoUGFnZUNvbmZpZ3VyYXRpb24mJiBwYWdl
Q29uZmlndXJhdGlvbikKICAgICAsIG1fc29ja2V0UHJvdmlkZXIoV1RGTW92ZShwYWdlQ29uZmln
dXJhdGlvbi5zb2NrZXRQcm92aWRlcikpCiAgICAgLCBtX2FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdl
KCpXVEZNb3ZlKHBhZ2VDb25maWd1cmF0aW9uLmFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlKSkKICAg
ICAsIG1fZGF0YWJhc2VQcm92aWRlcigqV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbi5kYXRhYmFz
ZVByb3ZpZGVyKSkKKyAgICAsIG1fcGx1Z2luSW5mb1Byb3ZpZGVyKCpXVEZNb3ZlKHBhZ2VDb25m
aWd1cmF0aW9uLnBsdWdpbkluZm9Qcm92aWRlcikpCiAgICAgLCBtX3N0b3JhZ2VOYW1lc3BhY2VQ
cm92aWRlcigqV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbi5zdG9yYWdlTmFtZXNwYWNlUHJvdmlk
ZXIpKQogICAgICwgbV91c2VyQ29udGVudFByb3ZpZGVyKCpXVEZNb3ZlKHBhZ2VDb25maWd1cmF0
aW9uLnVzZXJDb250ZW50UHJvdmlkZXIpKQogICAgICwgbV92aXNpdGVkTGlua1N0b3JlKCpXVEZN
b3ZlKHBhZ2VDb25maWd1cmF0aW9uLnZpc2l0ZWRMaW5rU3RvcmUpKQpAQCAtMjQxLDggKzI0Myw4
IEBAIFBhZ2U6OlBhZ2UoUGFnZUNvbmZpZ3VyYXRpb24mJiBwYWdlQ29uZmlndXJhdGlvbikKIHsK
ICAgICB1cGRhdGVUaW1lclRocm90dGxpbmdTdGF0ZSgpOwogCisgICAgbV9wbHVnaW5JbmZvUHJv
dmlkZXItPmFkZFBhZ2UoKnRoaXMpOwogICAgIG1fc3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyLT5h
ZGRQYWdlKCp0aGlzKTsKLQogICAgIG1fdXNlckNvbnRlbnRQcm92aWRlci0+YWRkUGFnZSgqdGhp
cyk7CiAgICAgbV92aXNpdGVkTGlua1N0b3JlLT5hZGRQYWdlKCp0aGlzKTsKIApAQCAtMjk4LDYg
KzMwMCw3IEBAIFBhZ2U6On5QYWdlKCkKICAgICBwYWdlQ291bnRlci5kZWNyZW1lbnQoKTsKICNl
bmRpZgogCisgICAgbV9wbHVnaW5JbmZvUHJvdmlkZXItPnJlbW92ZVBhZ2UoKnRoaXMpOwogICAg
IG1fc3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyLT5yZW1vdmVQYWdlKCp0aGlzKTsKICAgICBtX3Vz
ZXJDb250ZW50UHJvdmlkZXItPnJlbW92ZVBhZ2UoKnRoaXMpOwogICAgIG1fdmlzaXRlZExpbmtT
dG9yZS0+cmVtb3ZlUGFnZSgqdGhpcyk7CkBAIC01MDcsMTEgKzUxMCwxMiBAQCB2b2lkIFBhZ2U6
OnJlZnJlc2hQbHVnaW5zKGJvb2wgcmVsb2FkKQogICAgIGlmICghYWxsUGFnZXMpCiAgICAgICAg
IHJldHVybjsKIAotICAgIFBsdWdpbkRhdGE6OnJlZnJlc2goKTsKKyAgICBIYXNoU2V0PFBsdWdp
bkluZm9Qcm92aWRlcio+IHBsdWdpbkluZm9Qcm92aWRlcnM7CiAKICAgICBWZWN0b3I8UmVmPEZy
YW1lPj4gZnJhbWVzTmVlZGluZ1JlbG9hZDsKIAogICAgIGZvciAoYXV0byYgcGFnZSA6ICphbGxQ
YWdlcykgeworICAgICAgICBwbHVnaW5JbmZvUHJvdmlkZXJzLmFkZCgmcGFnZS0+cGx1Z2luSW5m
b1Byb3ZpZGVyKCkpOwogICAgICAgICBwYWdlLT5tX3BsdWdpbkRhdGEgPSBudWxscHRyOwogCiAg
ICAgICAgIGlmICghcmVsb2FkKQpAQCAtNTIzLDE0ICs1MjcsMTcgQEAgdm9pZCBQYWdlOjpyZWZy
ZXNoUGx1Z2lucyhib29sIHJlbG9hZCkKICAgICAgICAgfQogICAgIH0KIAorICAgIGZvciAoYXV0
byYgcGx1Z2luSW5mb1Byb3ZpZGVyIDogcGx1Z2luSW5mb1Byb3ZpZGVycykKKyAgICAgICAgcGx1
Z2luSW5mb1Byb3ZpZGVyLT5yZWZyZXNoUGx1Z2lucygpOworCiAgICAgZm9yIChhdXRvJiBmcmFt
ZSA6IGZyYW1lc05lZWRpbmdSZWxvYWQpCiAgICAgICAgIGZyYW1lLT5sb2FkZXIoKS5yZWxvYWQo
KTsKIH0KIAotUGx1Z2luRGF0YSYgUGFnZTo6cGx1Z2luRGF0YSgpIGNvbnN0CitQbHVnaW5EYXRh
JiBQYWdlOjpwbHVnaW5EYXRhKCkKIHsKICAgICBpZiAoIW1fcGx1Z2luRGF0YSkKLSAgICAgICAg
bV9wbHVnaW5EYXRhID0gUGx1Z2luRGF0YTo6Y3JlYXRlKHRoaXMpOworICAgICAgICBtX3BsdWdp
bkRhdGEgPSBQbHVnaW5EYXRhOjpjcmVhdGUoKnRoaXMpOwogICAgIHJldHVybiAqbV9wbHVnaW5E
YXRhOwogfQogCkBAIC0xODQ3LDYgKzE4NTQsMTEgQEAgYm9vbCBQYWdlOjphcmVQcm9tcHRzQWxs
b3dlZCgpCiAgICAgcmV0dXJuICFtX2ZvcmJpZFByb21wdHNEZXB0aDsKIH0KIAorUGx1Z2luSW5m
b1Byb3ZpZGVyJiBQYWdlOjpwbHVnaW5JbmZvUHJvdmlkZXIoKQoreworICAgIHJldHVybiBtX3Bs
dWdpbkluZm9Qcm92aWRlcjsKK30KKwogVXNlckNvbnRlbnRQcm92aWRlciYgUGFnZTo6dXNlckNv
bnRlbnRQcm92aWRlcigpCiB7CiAgICAgcmV0dXJuIG1fdXNlckNvbnRlbnRQcm92aWRlcjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmgKaW5kZXggYzBjZmE0ODRhN2IzMjdhYTc2YjE4NDI5ZGUwMGFhNmViM2U3YzEwMi4u
ZjE1ZGE0MjhlOGQ1NjAwMDU4NTY1MDQxNDYzNmZlNDhiNjY2NDc5MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgK
QEAgLTEwOCw2ICsxMDgsNyBAQCBjbGFzcyBQYWdlR3JvdXA7CiBjbGFzcyBQYWdlVGhyb3R0bGVy
OwogY2xhc3MgUGx1Z0luQ2xpZW50OwogY2xhc3MgUGx1Z2luRGF0YTsKK2NsYXNzIFBsdWdpbklu
Zm9Qcm92aWRlcjsKIGNsYXNzIFBsdWdpblZpZXdCYXNlOwogY2xhc3MgUG9pbnRlckxvY2tDb250
cm9sbGVyOwogY2xhc3MgUHJvZ3Jlc3NUcmFja2VyOwpAQCAtMTU1LDcgKzE1Niw3IEBAIHB1Ymxp
YzoKICAgICBXRUJDT1JFX0VYUE9SVCBWaWV3cG9ydEFyZ3VtZW50cyB2aWV3cG9ydEFyZ3VtZW50
cygpIGNvbnN0OwogCiAgICAgc3RhdGljIHZvaWQgcmVmcmVzaFBsdWdpbnMoYm9vbCByZWxvYWQp
OwotICAgIFdFQkNPUkVfRVhQT1JUIFBsdWdpbkRhdGEmIHBsdWdpbkRhdGEoKSBjb25zdDsKKyAg
ICBXRUJDT1JFX0VYUE9SVCBQbHVnaW5EYXRhJiBwbHVnaW5EYXRhKCk7CiAKICAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHNldENhblN0YXJ0TWVkaWEoYm9vbCk7CiAgICAgYm9vbCBjYW5TdGFydE1l
ZGlhKCkgY29uc3QgeyByZXR1cm4gbV9jYW5TdGFydE1lZGlhOyB9CkBAIC00NjYsNiArNDY3LDgg
QEAgcHVibGljOgogICAgIFN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlciYgc3RvcmFnZU5hbWVzcGFj
ZVByb3ZpZGVyKCkgeyByZXR1cm4gbV9zdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIuZ2V0KCk7IH0K
ICAgICB2b2lkIHNldFN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlcihSZWY8U3RvcmFnZU5hbWVzcGFj
ZVByb3ZpZGVyPiYmKTsKIAorICAgIFBsdWdpbkluZm9Qcm92aWRlciYgcGx1Z2luSW5mb1Byb3Zp
ZGVyKCk7CisKICAgICBVc2VyQ29udGVudFByb3ZpZGVyJiB1c2VyQ29udGVudFByb3ZpZGVyKCk7
CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRVc2VyQ29udGVudFByb3ZpZGVyKFJlZjxVc2Vy
Q29udGVudFByb3ZpZGVyPiYmKTsKIApAQCAtNTg1LDcgKzU4OCw3IEBAIHByaXZhdGU6CiAgICAg
Y29uc3Qgc3RkOjp1bmlxdWVfcHRyPEJhY2tGb3J3YXJkQ29udHJvbGxlcj4gbV9iYWNrRm9yd2Fy
ZENvbnRyb2xsZXI7CiAgICAgUmVmPE1haW5GcmFtZT4gbV9tYWluRnJhbWU7CiAKLSAgICBtdXRh
YmxlIFJlZlB0cjxQbHVnaW5EYXRhPiBtX3BsdWdpbkRhdGE7CisgICAgUmVmUHRyPFBsdWdpbkRh
dGE+IG1fcGx1Z2luRGF0YTsKIAogICAgIFJlZlB0cjxSZW5kZXJUaGVtZT4gbV90aGVtZTsKIApA
QCAtNjk5LDYgKzcwMiw3IEBAIHByaXZhdGU6CiAgICAgUmVmPFNvY2tldFByb3ZpZGVyPiBtX3Nv
Y2tldFByb3ZpZGVyOwogICAgIFJlZjxBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZT4gbV9hcHBsaWNh
dGlvbkNhY2hlU3RvcmFnZTsKICAgICBSZWY8RGF0YWJhc2VQcm92aWRlcj4gbV9kYXRhYmFzZVBy
b3ZpZGVyOworICAgIFJlZjxQbHVnaW5JbmZvUHJvdmlkZXI+IG1fcGx1Z2luSW5mb1Byb3ZpZGVy
OwogICAgIFJlZjxTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXI+IG1fc3RvcmFnZU5hbWVzcGFjZVBy
b3ZpZGVyOwogICAgIFJlZjxVc2VyQ29udGVudFByb3ZpZGVyPiBtX3VzZXJDb250ZW50UHJvdmlk
ZXI7CiAgICAgUmVmPFZpc2l0ZWRMaW5rU3RvcmU+IG1fdmlzaXRlZExpbmtTdG9yZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAKaW5kZXggZWVmMzBhZjhiOGYzMmE3
Y2YzNGZiYjY2Yjk1ODRhMDBjZWQ3ZjI3MS4uOTVlNzkyNjVmZjA2MDZiZWZlZWU4MWQzZGFiN2Jk
M2FjNTlkYzBmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJh
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAK
QEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJEYXRhYmFzZVByb3ZpZGVyLmgiCiAjaW5jbHVk
ZSAiRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCIKICNpbmNsdWRlICJFZGl0b3JDbGllbnQuaCIK
KyNpbmNsdWRlICJQbHVnaW5JbmZvUHJvdmlkZXIuaCIKICNpbmNsdWRlICJTb2NrZXRQcm92aWRl
ci5oIgogI2luY2x1ZGUgIlN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5oIgogI2luY2x1ZGUgIlVz
ZXJDb250ZW50Q29udHJvbGxlci5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlv
bi5oCmluZGV4IGRhYzJlOTY1YWFmNzdmMmYyMzk3ZjAxODRkM2MwOGM3NjVkZTY0ZDQuLjIyYWVi
ODI4N2M5NTRjMGZjYTNmZWFhZTczMThjZjAxMTU2NmJkOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2VDb25maWd1cmF0aW9uLmgKQEAgLTQzLDYgKzQzLDcgQEAgY2xhc3MgRnJhbWVMb2FkZXJD
bGllbnQ7CiBjbGFzcyBJbnNwZWN0b3JDbGllbnQ7CiBjbGFzcyBQYXltZW50Q29vcmRpbmF0b3JD
bGllbnQ7CiBjbGFzcyBQbHVnSW5DbGllbnQ7CitjbGFzcyBQbHVnaW5JbmZvUHJvdmlkZXI7CiBj
bGFzcyBQcm9ncmVzc1RyYWNrZXJDbGllbnQ7CiBjbGFzcyBTb2NrZXRQcm92aWRlcjsKIGNsYXNz
IFN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlcjsKQEAgLTgyLDYgKzgzLDcgQEAgcHVibGljOgogCiAg
ICAgUmVmUHRyPEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlPiBhcHBsaWNhdGlvbkNhY2hlU3RvcmFn
ZTsKICAgICBSZWZQdHI8RGF0YWJhc2VQcm92aWRlcj4gZGF0YWJhc2VQcm92aWRlcjsKKyAgICBS
ZWZQdHI8UGx1Z2luSW5mb1Byb3ZpZGVyPiBwbHVnaW5JbmZvUHJvdmlkZXI7CiAgICAgUmVmUHRy
PFN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlcj4gc3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyOwogICAg
IFJlZlB0cjxVc2VyQ29udGVudFByb3ZpZGVyPiB1c2VyQ29udGVudFByb3ZpZGVyOwogICAgIFJl
ZlB0cjxWaXNpdGVkTGlua1N0b3JlPiB2aXNpdGVkTGlua1N0b3JlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGx1Z2lucy9ET01QbHVnaW5BcnJheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bHVnaW5zL0RPTVBsdWdpbkFycmF5LmNwcAppbmRleCAzODNiZTE2NDY1Nzc3ZTUzMTFkYmExYmZh
MDZhZjRmYzBlZWI4YzFkLi5jMWU0ZTZmYTljYjI5ZjVmYmIxNTkwNDU1M2YzOThkYzVjYWY0YmU0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL0RPTVBsdWdpbkFycmF5LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL0RPTVBsdWdpbkFycmF5LmNwcApAQCAtODMsOSAr
ODMsMTUgQEAgVmVjdG9yPEF0b21pY1N0cmluZz4gRE9NUGx1Z2luQXJyYXk6OnN1cHBvcnRlZFBy
b3BlcnR5TmFtZXMoKQogICAgIHJldHVybiBWZWN0b3I8QXRvbWljU3RyaW5nPigpOwogfQogCi12
b2lkIERPTVBsdWdpbkFycmF5OjpyZWZyZXNoKGJvb2wgcmVsb2FkKQordm9pZCBET01QbHVnaW5B
cnJheTo6cmVmcmVzaChib29sIHJlbG9hZFBhZ2VzKQogewotICAgIFBhZ2U6OnJlZnJlc2hQbHVn
aW5zKHJlbG9hZCk7CisgICAgaWYgKCFtX2ZyYW1lKQorICAgICAgICByZXR1cm47CisKKyAgICBp
ZiAoIW1fZnJhbWUtPnBhZ2UoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgUGFnZTo6cmVmcmVz
aFBsdWdpbnMocmVsb2FkUGFnZXMpOwogfQogCiBQbHVnaW5EYXRhKiBET01QbHVnaW5BcnJheTo6
cGx1Z2luRGF0YSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL0RP
TVBsdWdpbkFycmF5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL0RPTVBsdWdpbkFycmF5LmgK
aW5kZXggYzZmNzUyNDMyODYyOWQ0YmI5YjZlMGYyYzcwNjY5N2YyOGJiNzBiOC4uMzBjMGIwZmIz
MDBlYjAyYjNhMzg0ZjA1YThkZDEwYTJmMDQ5NWNkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGx1Z2lucy9ET01QbHVnaW5BcnJheS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMv
RE9NUGx1Z2luQXJyYXkuaApAQCAtNDEsNyArNDEsNyBAQCBwdWJsaWM6CiAgICAgUmVmUHRyPERP
TVBsdWdpbj4gbmFtZWRJdGVtKGNvbnN0IEF0b21pY1N0cmluZyYgcHJvcGVydHlOYW1lKTsKICAg
ICBWZWN0b3I8QXRvbWljU3RyaW5nPiBzdXBwb3J0ZWRQcm9wZXJ0eU5hbWVzKCk7CiAKLSAgICB2
b2lkIHJlZnJlc2goYm9vbCByZWxvYWQpOworICAgIHZvaWQgcmVmcmVzaChib29sIHJlbG9hZFBh
Z2VzKTsKIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBET01QbHVnaW5BcnJheShGcmFtZSopOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5EYXRhLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGF0YS5jcHAKaW5kZXggYzI1MzU4YTcxYTgzMTc4Zjg5
NDQ3ZjQ4OTlmOWVkZWFmODk0MzE4ZC4uYWU4YjRhYTNlZGEzMTY3ZTJhMDVkNGU4NTRiMGU3Yzdi
YTdhZTIzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5EYXRhLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkRhdGEuY3BwCkBAIC0yNiwyMyAr
MjYsMjAgQEAKIAogI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKICNpbmNsdWRlICJQYWdl
LmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1TdHJhdGVnaWVzLmgiCi0jaW5jbHVkZSAiUGx1Z2luU3Ry
YXRlZ3kuaCIKKyNpbmNsdWRlICJQbHVnaW5JbmZvUHJvdmlkZXIuaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1QbHVnaW5EYXRhOjpQbHVnaW5EYXRhKGNvbnN0IFBhZ2UqIHBhZ2UpCitQbHVn
aW5EYXRhOjpQbHVnaW5EYXRhKFBhZ2UmIHBhZ2UpCisgICAgOiBtX3BhZ2UocGFnZSkKIHsKLSAg
ICBBU1NFUlRfQVJHKHBhZ2UsIHBhZ2UpOwotCi0gICAgbV9wYWdlID0gcGFnZTsKICAgICBpbml0
UGx1Z2lucygpOwogfQogCiBWZWN0b3I8UGx1Z2luSW5mbz4gUGx1Z2luRGF0YTo6d2ViVmlzaWJs
ZVBsdWdpbnMoKSBjb25zdAogewogICAgIFZlY3RvcjxQbHVnaW5JbmZvPiBwbHVnaW5zOwotICAg
IHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wbHVnaW5TdHJhdGVneSgpLT5nZXRXZWJWaXNpYmxlUGx1
Z2luSW5mbyhtX3BhZ2UsIHBsdWdpbnMpOworICAgIG1fcGFnZS5wbHVnaW5JbmZvUHJvdmlkZXIo
KS5nZXRXZWJWaXNpYmxlUGx1Z2luSW5mbyhtX3BhZ2UsIHBsdWdpbnMpOwogICAgIHJldHVybiBw
bHVnaW5zOwogfQogCkBAIC03NiwxMSArNzMsMTEgQEAgc3RhdGljIGJvb2wgc2hvdWxkQmVQdWJs
aWNseVZpc2libGUoY29uc3QgUGx1Z2luSW5mbyYgcGx1Z2luKQogCiBWZWN0b3I8UGx1Z2luSW5m
bz4gUGx1Z2luRGF0YTo6cHVibGljbHlWaXNpYmxlUGx1Z2lucygpIGNvbnN0CiB7Ci0gICAgaWYg
KG1fcGFnZS0+c2hvd0FsbFBsdWdpbnMoKSkKKyAgICBpZiAobV9wYWdlLnNob3dBbGxQbHVnaW5z
KCkpCiAgICAgICAgIHJldHVybiB3ZWJWaXNpYmxlUGx1Z2lucygpOwogICAgIAogICAgIFZlY3Rv
cjxQbHVnaW5JbmZvPiBhbGxQbHVnaW5zOwotICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wbHVn
aW5TdHJhdGVneSgpLT5nZXRXZWJWaXNpYmxlUGx1Z2luSW5mbyhtX3BhZ2UsIGFsbFBsdWdpbnMp
OworICAgIG1fcGFnZS5wbHVnaW5JbmZvUHJvdmlkZXIoKS5nZXRXZWJWaXNpYmxlUGx1Z2luSW5m
byhtX3BhZ2UsIGFsbFBsdWdpbnMpOwogCiAgICAgVmVjdG9yPFBsdWdpbkluZm8+IHBsdWdpbnM7
CiAgICAgZm9yIChhdXRvJiYgcGx1Z2luIDogYWxsUGx1Z2lucykgewpAQCAtMTgxLDE2ICsxNzgs
MTEgQEAgYm9vbCBQbHVnaW5EYXRhOjpzdXBwb3J0c01pbWVUeXBlKGNvbnN0IFN0cmluZyYgbWlt
ZVR5cGUsIGNvbnN0IEFsbG93ZWRQbHVnaW5UeXAKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZv
aWQgUGx1Z2luRGF0YTo6cmVmcmVzaCgpCi17Ci0gICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBs
dWdpblN0cmF0ZWd5KCktPnJlZnJlc2hQbHVnaW5zKCk7Ci19Ci0KIHZvaWQgUGx1Z2luRGF0YTo6
aW5pdFBsdWdpbnMoKQogewogICAgIEFTU0VSVChtX3BsdWdpbnMuaXNFbXB0eSgpKTsKIAotICAg
IHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wbHVnaW5TdHJhdGVneSgpLT5nZXRQbHVnaW5JbmZvKG1f
cGFnZSwgbV9wbHVnaW5zKTsKKyAgICBtX3BhZ2UucGx1Z2luSW5mb1Byb3ZpZGVyKCkuZ2V0UGx1
Z2luSW5mbyhtX3BhZ2UsIG1fcGx1Z2lucyk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGF0YS5oIGIvU291cmNl
L1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5EYXRhLmgKaW5kZXggYjkyMjg5N2Y0YmIzYzUwMzAyZTFi
MGViZDc1N2VjYWY3OWExYTEwNy4uYjM2MzVhNDFjNmI1ZGM1ZjU5ODhlMTlmN2FjZmQzNjFkOWE4
YTY0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5EYXRhLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5EYXRhLmgKQEAgLTg2LDcgKzg2LDcgQEAg
aW5saW5lIGJvb2wgb3BlcmF0b3I9PShQbHVnaW5JbmZvJiBhLCBQbHVnaW5JbmZvJiBiKQogLy8g
RklYTUU6IG1lcmdlIHdpdGggUGx1Z2luRGF0YWJhc2UgaW4gdGhlIGZ1dHVyZQogY2xhc3MgUGx1
Z2luRGF0YSA6IHB1YmxpYyBSZWZDb3VudGVkPFBsdWdpbkRhdGE+IHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUmVmPFBsdWdpbkRhdGE+IGNyZWF0ZShjb25zdCBQYWdlKiBwYWdlKSB7IHJldHVybiBh
ZG9wdFJlZigqbmV3IFBsdWdpbkRhdGEocGFnZSkpOyB9CisgICAgc3RhdGljIFJlZjxQbHVnaW5E
YXRhPiBjcmVhdGUoUGFnZSYgcGFnZSkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBQbHVnaW5EYXRh
KHBhZ2UpKTsgfQogCiAgICAgY29uc3QgVmVjdG9yPFBsdWdpbkluZm8+JiBwbHVnaW5zKCkgY29u
c3QgeyByZXR1cm4gbV9wbHVnaW5zOyB9CiAgICAgVmVjdG9yPFBsdWdpbkluZm8+IHdlYlZpc2li
bGVQbHVnaW5zKCkgY29uc3Q7CkBAIC0xMDQsMjQgKzEwNCwxNSBAQCBwdWJsaWM6CiAKICAgICBX
RUJDT1JFX0VYUE9SVCBib29sIHN1cHBvcnRzTWltZVR5cGUoY29uc3QgU3RyaW5nJiBtaW1lVHlw
ZSwgY29uc3QgQWxsb3dlZFBsdWdpblR5cGVzKSBjb25zdDsKIAotICAgIHN0YXRpYyB2b2lkIHJl
ZnJlc2goKTsKLQogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBQbHVnaW5EYXRhKGNvbnN0IFBhZ2Uq
KTsKKyAgICBleHBsaWNpdCBQbHVnaW5EYXRhKFBhZ2UmKTsKICAgICB2b2lkIGluaXRQbHVnaW5z
KCk7CiAgICAgYm9vbCBnZXRQbHVnaW5JbmZvRm9yV2ViVmlzaWJsZU1pbWVUeXBlKGNvbnN0IFN0
cmluZyYgbWltZVR5cGUsIFBsdWdpbkluZm8mKSBjb25zdDsKICAgICB2b2lkIGdldE1pbWVzQW5k
UGx1Z2luSW5kaWNlcyhWZWN0b3I8TWltZUNsYXNzSW5mbz4mLCBWZWN0b3I8c2l6ZV90PiYpIGNv
bnN0OwogICAgIHZvaWQgZ2V0TWltZXNBbmRQbHVnaW5JbmRpY2llc0ZvclBsdWdpbnMoY29uc3Qg
VmVjdG9yPFBsdWdpbkluZm8+JiwgVmVjdG9yPE1pbWVDbGFzc0luZm8+JiwgVmVjdG9yPHNpemVf
dD4mKSBjb25zdDsKIAogcHJvdGVjdGVkOgotI2lmIGRlZmluZWQgRU5BQkxFX1dFQl9SRVBMQVkg
JiYgRU5BQkxFX1dFQl9SRVBMQVkKLSAgICBQbHVnaW5EYXRhKFZlY3RvcjxQbHVnaW5JbmZvPiBw
bHVnaW5zKQotICAgICAgICA6IG1fcGx1Z2lucyhwbHVnaW5zKQotICAgIHsKLSAgICB9Ci0jZW5k
aWYKLQotICAgIGNvbnN0IFBhZ2UqIG1fcGFnZTsKKyAgICBQYWdlJiBtX3BhZ2U7CiAgICAgVmVj
dG9yPFBsdWdpbkluZm8+IG1fcGx1Z2luczsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsdWdpbnMvUGx1Z2luSW5mb1Byb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsdWdp
bnMvUGx1Z2luSW5mb1Byb3ZpZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wOTMyYjkwMTFkZmY5MjljY2Rm
MzlmOWRiMjg3MDc5OTY2MDM5ZGU4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGx1Z2lucy9QbHVnaW5JbmZvUHJvdmlkZXIuY3BwCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGx1Z2luSW5mb1Byb3ZpZGVyLmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGx1Z2luSW5mb1Byb3ZpZGVyOjp+UGx1Z2luSW5m
b1Byb3ZpZGVyKCkKK3sKKyAgICBBU1NFUlQobV9wYWdlcy5pc0VtcHR5KCkpOworfQorCit2b2lk
IFBsdWdpbkluZm9Qcm92aWRlcjo6YWRkUGFnZShQYWdlJiBwYWdlKQoreworICAgIEFTU0VSVCgh
bV9wYWdlcy5jb250YWlucygmcGFnZSkpOworCisgICAgbV9wYWdlcy5hZGQoJnBhZ2UpOworfQor
Cit2b2lkIFBsdWdpbkluZm9Qcm92aWRlcjo6cmVtb3ZlUGFnZShQYWdlJiBwYWdlKQoreworICAg
IEFTU0VSVChtX3BhZ2VzLmNvbnRhaW5zKCZwYWdlKSk7CisKKyAgICBtX3BhZ2VzLnJlbW92ZSgm
cGFnZSk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2lu
SW5mb1Byb3ZpZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkluZm9Qcm92aWRl
ci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjBlY2ZjZTIxNjI4ZGMyMWE1YzVjYThlMWQ0OGY2NWQ3NjdmZTQ2YTQK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkluZm9Qcm92
aWRlci5oCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lu
Y2x1ZGUgIlBsdWdpbkRhdGEuaCIKKyNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2NsYXNzIFdFQkNPUkVfRVhQT1JUIFBsdWdpbkluZm9Qcm92aWRlciA6
IHB1YmxpYyBSZWZDb3VudGVkPFBsdWdpbkluZm9Qcm92aWRlcj4geworcHVibGljOgorICAgIFdF
QkNPUkVfRVhQT1JUIHZpcnR1YWwgflBsdWdpbkluZm9Qcm92aWRlcigpOworCisgICAgdm9pZCBy
ZWZyZXNoUGx1Z2lucyhib29sIHJlbG9hZFBhZ2VzKTsKKworICAgIHZvaWQgYWRkUGFnZShQYWdl
Jik7CisgICAgdm9pZCByZW1vdmVQYWdlKFBhZ2UmKTsKKworICAgIHZpcnR1YWwgdm9pZCByZWZy
ZXNoUGx1Z2lucygpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0UGx1Z2luSW5mbyhQYWdlJiwg
VmVjdG9yPFBsdWdpbkluZm8+JikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBnZXRXZWJWaXNpYmxl
UGx1Z2luSW5mbyhQYWdlJiwgVmVjdG9yPFBsdWdpbkluZm8+JikgPSAwOworI2lmIFBMQVRGT1JN
KE1BQykKKyAgICB2aXJ0dWFsIHZvaWQgc2V0UGx1Z2luTG9hZENsaWVudFBvbGljeShQbHVnaW5M
b2FkQ2xpZW50UG9saWN5LCBjb25zdCBTdHJpbmcmIGhvc3QsIGNvbnN0IFN0cmluZyYgYnVuZGxl
SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB2ZXJzaW9uU3RyaW5nKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIGNsZWFyUGx1Z2luQ2xpZW50UG9saWNpZXMoKSA9IDA7CisjZW5kaWYKKworcHJpdmF0
ZToKKyAgICBIYXNoU2V0PFBhZ2UqPiBtX3BhZ2VzOworfTsKKworfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVwbGF5L1NlcmlhbGl6YXRpb25NZXRob2RzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlcGxheS9TZXJpYWxpemF0aW9uTWV0aG9kcy5jcHAKaW5kZXggMzJiZDQ1MzI1ZDgwMGZm
ZmJlMWU3NTZhY2ZiN2MzYzc0M2IxMjdjZi4uNDg2MDViMjYxM2FlZTA4NmMxYjA4MzlhNzMwYTBj
YWQzOTUwYzI3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVwbGF5L1NlcmlhbGl6YXRp
b25NZXRob2RzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvU2VyaWFsaXphdGlvbk1l
dGhvZHMuY3BwCkBAIC00NDgsMjAgKzQ0OCwxMCBAQCBFbmNvZGVkVmFsdWUgRW5jb2RpbmdUcmFp
dHM8UGx1Z2luRGF0YT46OmVuY29kZVZhbHVlKFJlZlB0cjxQbHVnaW5EYXRhPiBpbnB1dCkKICAg
ICByZXR1cm4gZW5jb2RlZERhdGE7CiB9CiAKLWNsYXNzIERlc2VyaWFsaXplZFBsdWdpbkRhdGEg
OiBwdWJsaWMgUGx1Z2luRGF0YSB7Ci1wdWJsaWM6Ci0gICAgRGVzZXJpYWxpemVkUGx1Z2luRGF0
YShWZWN0b3I8UGx1Z2luSW5mbz4gcGx1Z2lucykKLSAgICAgICAgOiBQbHVnaW5EYXRhKHBsdWdp
bnMpCi0gICAgewotICAgIH0KLX07Ci0KLWJvb2wgRW5jb2RpbmdUcmFpdHM8UGx1Z2luRGF0YT46
OmRlY29kZVZhbHVlKEVuY29kZWRWYWx1ZSYgZW5jb2RlZERhdGEsIFJlZlB0cjxQbHVnaW5EYXRh
PiYgaW5wdXQpCitib29sIEVuY29kaW5nVHJhaXRzPFBsdWdpbkRhdGE+OjpkZWNvZGVWYWx1ZShF
bmNvZGVkVmFsdWUmIGVuY29kZWREYXRhLCBSZWZQdHI8UGx1Z2luRGF0YT4mKQogewotICAgIERF
Q09ERV9UWVBFX1dJVEhfS0VZKGVuY29kZWREYXRhLCBWZWN0b3I8UGx1Z2luSW5mbz4sIHBsdWdp
bnMpOwotCiAgICAgLy8gRklYTUU6IFRoaXMgbmVlZHMgdG8gd29yayBpbiB0ZXJtcyBvZiB3ZWIt
dmlzaWJsZSBwbHVnLWlucy4KLSAgICBpbnB1dCA9IGFkb3B0UmVmKG5ldyBEZXNlcmlhbGl6ZWRQ
bHVnaW5EYXRhKHBsdWdpbnMpKTsKKyAgICBERUNPREVfVFlQRV9XSVRIX0tFWShlbmNvZGVkRGF0
YSwgVmVjdG9yPFBsdWdpbkluZm8+LCBwbHVnaW5zKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybVdpbi5jbWFrZSBiL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm1XaW4uY21ha2UKaW5kZXggNjI4YjI3M2Y4MTcxODIyZDAxODZiNmUwNWE3NDZl
YTY4MzRlNzI2MC4uNDVmYTgyMDlkYWExMjI4ZmE2MmRjNmIxMWIyNDM1OTA0NTAzZjdkYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybVdpbi5jbWFrZQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1BsYXRmb3JtV2luLmNtYWtlCkBAIC0yNDYsNiArMjQ2LDggQEAgbGlzdChBUFBFTkQgV2Vi
S2l0X1NPVVJDRVNfV2ViQ29yZVN1cHBvcnQKICAgICB3aW4vV2ViQ29yZVN1cHBvcnQvV2ViSW5z
cGVjdG9yRGVsZWdhdGUuaAogICAgIHdpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0
ZWdpZXMuY3BwCiAgICAgd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5o
CisgICAgd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsdWdpbkluZm9Qcm92aWRlci5jcHAKKyAgICB3
aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLmgKICAgICB3aW4vV2ViQ29y
ZVN1cHBvcnQvV2ViVmlzaXRlZExpbmtTdG9yZS5jcHAKICAgICB3aW4vV2ViQ29yZVN1cHBvcnQv
V2ViVmlzaXRlZExpbmtTdG9yZS5oCiApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA5OTFjZTkyMTNlYjMyMTMzNTFhNWQzODY3OGY3NTM0
NGI2YjE1ODgzLi5kOTg4NDUxYWRhMGVmM2JlMjQwOTM3YmIyNTE1NGFjYjUxOGMwYTdlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE5
LDYgKzE5LDggQEAKIAkJMTQzMEMxMkQxQjJDNURGNzAwREVBMDFEIC8qIFdlYlZpZXdHcm91cC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQzMEMxMkIx
QjJDNURGNzAwREVBMDFEIC8qIFdlYlZpZXdHcm91cC5oICovOyB9OwogCQkxNEQ4MjUyRjBBRjk1
NTA5MDAwNEYwNTcgLyogV2ViQ2hyb21lQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNEQ4MjUyRDBBRjk1NTA5MDAwNEYwNTcgLyogV2ViQ2hy
b21lQ2xpZW50LmggKi87IH07CiAJCTE0RDgyNTMwMEFGOTU1MDkwMDA0RjA1NyAvKiBXZWJDaHJv
bWVDbGllbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxNEQ4MjUyRTBBRjk1NTA5MDAwNEYwNTcgLyogV2ViQ2hyb21lQ2xpZW50Lm1tICovOyB9Owor
CQkxQTA4RkVFMDFENTkzNzZFMDA4QkE4Q0IgLyogV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEwOEZFREUxRDU5
Mzc2RTAwOEJBOENCIC8qIFdlYlBsdWdpbkluZm9Qcm92aWRlci5tbSAqLzsgfTsKKwkJMUEwOEZF
RTExRDU5Mzc2RTAwOEJBOENCIC8qIFdlYlBsdWdpbkluZm9Qcm92aWRlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEwOEZFREYxRDU5Mzc2RTAwOEJB
OENCIC8qIFdlYlBsdWdpbkluZm9Qcm92aWRlci5oICovOyB9OwogCQkxQTJEQkU5RjBGMjUxRTNB
MDAzNkY4QTYgLyogUHJveHlJbnN0YW5jZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMUEyREJFOUQwRjI1MUUzQTAwMzZGOEE2IC8qIFByb3h5SW5zdGFu
Y2UuaCAqLzsgfTsKIAkJMUEyREJFQTAwRjI1MUUzQTAwMzZGOEE2IC8qIFByb3h5SW5zdGFuY2Uu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTJEQkU5
RTBGMjUxRTNBMDAzNkY4QTYgLyogUHJveHlJbnN0YW5jZS5tbSAqLzsgfTsKIAkJMUE0REY1MjIw
RUM4Qzc0RDAwNkJENEI0IC8qIFdlYk5ldHNjYXBlUGx1Z2luVmlldy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE0REY1MjAwRUM4Qzc0RDAwNkJENEI0
IC8qIFdlYk5ldHNjYXBlUGx1Z2luVmlldy5oICovOyB9OwpAQCAtNDc2LDYgKzQ3OCw4IEBACiAJ
CTE0MzBDMTJCMUIyQzVERjcwMERFQTAxRCAvKiBXZWJWaWV3R3JvdXAuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViVmlld0dyb3VwLmg7IHBhdGggPSBXZWJDb3JlU3VwcG9y
dC9XZWJWaWV3R3JvdXAuaDsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwogCQkxNEQ4MjUy
RDBBRjk1NTA5MDAwNEYwNTcgLyogV2ViQ2hyb21lQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXZWJDaHJvbWVDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMTREODI1MkUwQUY5NTUwOTAwMDRGMDU3IC8qIFdlYkNocm9tZUNsaWVudC5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkNocm9tZUNsaWVudC5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUEwOEZFREUxRDU5Mzc2RTAwOEJBOENC
IC8qIFdlYlBsdWdpbkluZm9Qcm92aWRlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFdlYlBsdWdpbkluZm9Qcm92aWRlci5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMUEwOEZFREYxRDU5Mzc2RTAwOEJBOENCIC8qIFdlYlBsdWdpbkluZm9Qcm92
aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJQbHVnaW5JbmZvUHJv
dmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUEyREJFOUQwRjI1MUUzQTAw
MzZGOEE2IC8qIFByb3h5SW5zdGFuY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUHJveHlJbnN0YW5jZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTJEQkU5
RTBGMjUxRTNBMDAzNkY4QTYgLyogUHJveHlJbnN0YW5jZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFByb3h5SW5zdGFuY2UubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTFBNERGNTIwMEVDOEM3NEQwMDZCRDRCNCAvKiBXZWJOZXRzY2FwZVBsdWdp
blZpZXcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViTmV0c2NhcGVQbHVn
aW5WaWV3Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTk3LDYgKzE2MDEsOCBA
QAogCQkJCTFBQjFGNzZEMUQxQjI2MEIwMDdDOUJEMSAvKiBXZWJQYXltZW50Q29vcmRpbmF0b3JD
bGllbnQubW0gKi8sCiAJCQkJMUFBODc5QjQxMUNCRTlCRjAwM0M2NjRGIC8qIFdlYlBsYXRmb3Jt
U3RyYXRlZ2llcy5oICovLAogCQkJCTFBQTg3OUI1MTFDQkU5QkYwMDNDNjY0RiAvKiBXZWJQbGF0
Zm9ybVN0cmF0ZWdpZXMubW0gKi8sCisJCQkJMUEwOEZFREUxRDU5Mzc2RTAwOEJBOENCIC8qIFdl
YlBsdWdpbkluZm9Qcm92aWRlci5tbSAqLywKKwkJCQkxQTA4RkVERjFENTkzNzZFMDA4QkE4Q0Ig
LyogV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLmggKi8sCiAJCQkJMUE2QTIwOEMxODg2MTU0NjAwRTUw
RjVGIC8qIFdlYlByb2dyZXNzVHJhY2tlckNsaWVudC5oICovLAogCQkJCTFBNkEyMDhCMTg4NjE1
NDYwMEU1MEY1RiAvKiBXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQubW0gKi8sCiAJCQkJRTRBRUY5
NzkxQzBERjRCQzAwQjAxNzI3IC8qIFdlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAgKi8sCkBA
IC0xNzk0LDYgKzE4MDAsNyBAQAogCQkJCTFDOENCMDdBMEFFOTgzMEMwMEIxRjZFOSAvKiBXZWJF
ZGl0aW5nRGVsZWdhdGVQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0QkY5OUY5MDBBRTA1
MEJDMDA4MTVDMkIgLyogV2ViRWRpdG9yQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlERDg5
NjgyMDA5QUE4NzI0MDA5N0U3RjAgLyogV2ViRWxlbWVudERpY3Rpb25hcnkuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTFBMDhGRUUxMUQ1OTM3NkUwMDhCQThDQiAvKiBXZWJQbHVnaW5JbmZvUHJvdmlk
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUExMEMxRDY4MTgyMDMwMEUwMDM2ODgzQSAvKiBXZWJG
aXhlZFBvc2l0aW9uQ29udGVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTEwQzFENkExODIwMzAw
RTAwMzY4ODNBIC8qIFdlYkZpeGVkUG9zaXRpb25Db250ZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTkzOTgxMDUyMDgyNEJGMDEwMDhERjAzOCAvKiBXZWJGb3JtRGVsZWdhdGUuaCBp
biBIZWFkZXJzICovLApAQCAtMjI2OSw2ICsyMjc2LDcgQEAKIAkJCQkxQUFGNUNGMTBFRERFNTg2
MDA4RDg4M0QgLyogV2ViS2l0UGx1Z2luSG9zdC5kZWZzIGluIFNvdXJjZXMgKi8sCiAJCQkJOTM5
ODEwQzUwODI0QkYwMTAwOERGMDM4IC8qIFdlYktpdFN0YXRpc3RpY3MubSBpbiBTb3VyY2VzICov
LAogCQkJCTFDMEQ0MDg4MEFDMUM4RjQwMDA5QzExMyAvKiBXZWJLaXRWZXJzaW9uQ2hlY2tzLm0g
aW4gU291cmNlcyAqLywKKwkJCQkxQTA4RkVFMDFENTkzNzZFMDA4QkE4Q0IgLyogV2ViUGx1Z2lu
SW5mb1Byb3ZpZGVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJRUQ1Qjk1MjQxMTFCNzI1QTAwNDcy
Mjk4IC8qIFdlYkxvY2FsaXphYmxlU3RyaW5ncy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDNDJE
MzREMTMxRUQzODgwMDc1RkE0QiAvKiBXZWJMb2NhbGl6YWJsZVN0cmluZ3NJbnRlcm5hbC5tbSBp
biBTb3VyY2VzICovLAogCQkJCTA3MkU1RjQ2MUFCRjg4NzUwMDAzQjE2NCAvKiBXZWJNZWRpYVBs
YXliYWNrVGFyZ2V0UGlja2VyLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbHVnaW5JbmZvUHJvdmlkZXIuaCBiL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsdWdpbkluZm9Qcm92aWRlci5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjc2OWY5NzYzODY0MGVjZDcyZWFiYjk1MzU2ODE3ZThlNTdhNDk0ZjAKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbHVnaW5JbmZv
UHJvdmlkZXIuaApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8V2ViQ29y
ZS9QbHVnaW5JbmZvUHJvdmlkZXIuaD4KKworY2xhc3MgV2ViUGx1Z2luSW5mb1Byb3ZpZGVyIGZp
bmFsIDogcHVibGljIFdlYkNvcmU6OlBsdWdpbkluZm9Qcm92aWRlciB7CisgICAgZnJpZW5kIGNs
YXNzIE5ldmVyRGVzdHJveWVkPFdlYlBsdWdpbkluZm9Qcm92aWRlcj47CisKK3B1YmxpYzoKKyAg
ICBzdGF0aWMgV2ViUGx1Z2luSW5mb1Byb3ZpZGVyJiBzaW5nbGV0b24oKTsKKyAgICB2aXJ0dWFs
IH5XZWJQbHVnaW5JbmZvUHJvdmlkZXIoKTsKKworcHJpdmF0ZToKKyAgICB2b2lkIHJlZnJlc2hQ
bHVnaW5zKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBnZXRQbHVnaW5JbmZvKFdlYkNvcmU6OlBhZ2Um
LCBWZWN0b3I8V2ViQ29yZTo6UGx1Z2luSW5mbz4mKSBvdmVycmlkZTsKKyAgICB2b2lkIGdldFdl
YlZpc2libGVQbHVnaW5JbmZvKFdlYkNvcmU6OlBhZ2UmLCBWZWN0b3I8V2ViQ29yZTo6UGx1Z2lu
SW5mbz4mKSBvdmVycmlkZTsKKyNpZiBQTEFURk9STShNQUMpCisgICAgdm9pZCBzZXRQbHVnaW5M
b2FkQ2xpZW50UG9saWN5KFdlYkNvcmU6OlBsdWdpbkxvYWRDbGllbnRQb2xpY3ksIGNvbnN0IFN0
cmluZyYgaG9zdCwgY29uc3QgU3RyaW5nJiBidW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcm
IHZlcnNpb25TdHJpbmcpIG92ZXJyaWRlOworICAgIHZvaWQgY2xlYXJQbHVnaW5DbGllbnRQb2xp
Y2llcygpIG92ZXJyaWRlOworI2VuZGlmCisKKyAgICBXZWJQbHVnaW5JbmZvUHJvdmlkZXIoKTsK
K307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbHVn
aW5JbmZvUHJvdmlkZXIubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQ
bHVnaW5JbmZvUHJvdmlkZXIubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOThkODA1YTFlNWVjNDlmYWE3MGM4Yzk5
YzBhOWQwMGNjNzBhNzAzMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYlBsdWdpbkluZm9Qcm92aWRlci5tbQpAQCAtMCwwICsxLDczIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2ltcG9ydCAiV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLmgiCisKKy8vIEZJWE1F
OiBXZSBzaG91bGRuJ3QgY2FsbCBvdXQgdG8gdGhlIHBsYXRmb3JtIHN0cmF0ZWd5IGZvciB0aGlz
LgorI2ltcG9ydCAiV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgiCisjaW1wb3J0IDxXZWJDb3JlL1Bs
dWdpblN0cmF0ZWd5Lmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitXZWJQbHVnaW5J
bmZvUHJvdmlkZXImIFdlYlBsdWdpbkluZm9Qcm92aWRlcjo6c2luZ2xldG9uKCkKK3sKKyAgICBz
dGF0aWMgV2ViUGx1Z2luSW5mb1Byb3ZpZGVyJiBwbHVnaW5JbmZvUHJvdmlkZXIgPSBhZG9wdFJl
ZigqbmV3IFdlYlBsdWdpbkluZm9Qcm92aWRlcikubGVha1JlZigpOworCisgICAgcmV0dXJuIHBs
dWdpbkluZm9Qcm92aWRlcjsKK30KKworV2ViUGx1Z2luSW5mb1Byb3ZpZGVyOjpXZWJQbHVnaW5J
bmZvUHJvdmlkZXIoKQoreworfQorCitXZWJQbHVnaW5JbmZvUHJvdmlkZXI6On5XZWJQbHVnaW5J
bmZvUHJvdmlkZXIoKQoreworfQorCit2b2lkIFdlYlBsdWdpbkluZm9Qcm92aWRlcjo6cmVmcmVz
aFBsdWdpbnMoKQoreworICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wbHVnaW5TdHJhdGVneSgp
LT5yZWZyZXNoUGx1Z2lucygpOworfQorCit2b2lkIFdlYlBsdWdpbkluZm9Qcm92aWRlcjo6Z2V0
UGx1Z2luSW5mbyhXZWJDb3JlOjpQYWdlJiBwYWdlLCBWZWN0b3I8V2ViQ29yZTo6UGx1Z2luSW5m
bz4mIHBsdWdpbnMpCit7CisgICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBsdWdpblN0cmF0ZWd5
KCktPmdldFBsdWdpbkluZm8oJnBhZ2UsIHBsdWdpbnMpOworfQorCit2b2lkIFdlYlBsdWdpbklu
Zm9Qcm92aWRlcjo6Z2V0V2ViVmlzaWJsZVBsdWdpbkluZm8oV2ViQ29yZTo6UGFnZSYgcGFnZSwg
VmVjdG9yPFdlYkNvcmU6OlBsdWdpbkluZm8+JiBwbHVnaW5zKQoreworICAgIHBsYXRmb3JtU3Ry
YXRlZ2llcygpLT5wbHVnaW5TdHJhdGVneSgpLT5nZXRXZWJWaXNpYmxlUGx1Z2luSW5mbygmcGFn
ZSwgcGx1Z2lucyk7Cit9CisKKyNpZiBQTEFURk9STShNQUMpCit2b2lkIFdlYlBsdWdpbkluZm9Q
cm92aWRlcjo6c2V0UGx1Z2luTG9hZENsaWVudFBvbGljeShXZWJDb3JlOjpQbHVnaW5Mb2FkQ2xp
ZW50UG9saWN5LCBjb25zdCBTdHJpbmcmIGhvc3QsIGNvbnN0IFN0cmluZyYgYnVuZGxlSWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiB2ZXJzaW9uU3RyaW5nKQoreworfQorCit2b2lkIFdlYlBsdWdp
bkluZm9Qcm92aWRlcjo6Y2xlYXJQbHVnaW5DbGllbnRQb2xpY2llcygpCit7Cit9CisjZW5kaWYK
KwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IDZmODdiNDA4MjVkYTY5Mzkw
MzE5NGE5MDY2YmY3NzE4OWMzNTE5NzcuLjM2NGNiNTQ0MjBjYTY1ZGIwNjZmNjg3MDYwMTEzZWM0
OWVkNDJiMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTkyLDYgKzky
LDcgQEAKICNpbXBvcnQgIldlYlBheW1lbnRDb29yZGluYXRvckNsaWVudC5oIgogI2ltcG9ydCAi
V2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgiCiAjaW1wb3J0ICJXZWJQbHVnaW5EYXRhYmFzZS5oIgor
I2ltcG9ydCAiV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLmgiCiAjaW1wb3J0ICJXZWJQb2xpY3lEZWxl
Z2F0ZS5oIgogI2ltcG9ydCAiV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgiCiAjaW1wb3J0ICJX
ZWJQcmVmZXJlbmNlc1ByaXZhdGUuaCIKQEAgLTEwMTgsNiArMTAxOSw3IEBAIHN0YXRpYyB2b2lk
IFdlYktpdEluaXRpYWxpemVHYW1lcGFkUHJvdmlkZXJJZk5lY2Vzc2FyeSgpCiAgICAgcGFnZUNv
bmZpZ3VyYXRpb24ucHJvZ3Jlc3NUcmFja2VyQ2xpZW50ID0gbmV3IFdlYlByb2dyZXNzVHJhY2tl
ckNsaWVudChzZWxmKTsKICAgICBwYWdlQ29uZmlndXJhdGlvbi5hcHBsaWNhdGlvbkNhY2hlU3Rv
cmFnZSA9ICZ3ZWJBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZSgpOwogICAgIHBhZ2VDb25maWd1cmF0
aW9uLmRhdGFiYXNlUHJvdmlkZXIgPSAmV2ViRGF0YWJhc2VQcm92aWRlcjo6c2luZ2xldG9uKCk7
CisgICAgcGFnZUNvbmZpZ3VyYXRpb24ucGx1Z2luSW5mb1Byb3ZpZGVyID0gJldlYlBsdWdpbklu
Zm9Qcm92aWRlcjo6c2luZ2xldG9uKCk7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uc3RvcmFnZU5h
bWVzcGFjZVByb3ZpZGVyID0gJl9wcml2YXRlLT5ncm91cC0+c3RvcmFnZU5hbWVzcGFjZVByb3Zp
ZGVyKCk7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24udXNlckNvbnRlbnRQcm92aWRlciA9ICZfcHJp
dmF0ZS0+Z3JvdXAtPnVzZXJDb250ZW50Q29udHJvbGxlcigpOwogICAgIHBhZ2VDb25maWd1cmF0
aW9uLnZpc2l0ZWRMaW5rU3RvcmUgPSAmX3ByaXZhdGUtPmdyb3VwLT52aXNpdGVkTGlua1N0b3Jl
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbHVn
aW5JbmZvUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2Vi
UGx1Z2luSW5mb1Byb3ZpZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYzQwNmU2MmE4NWM0MWEwMDE5MzA0
M2Q0YzgwODU0NzZkMTJiM2UxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC93aW4v
V2ViQ29yZVN1cHBvcnQvV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLmNwcApAQCAtMCwwICsxLDYyIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgIldlYlBsdWdpbkluZm9Qcm92aWRlci5oIgorCisvLyBG
SVhNRTogV2Ugc2hvdWxkbid0IGNhbGwgb3V0IHRvIHRoZSBwbGF0Zm9ybSBzdHJhdGVneSBmb3Ig
dGhpcy4KKyNpbmNsdWRlIDxXZWJDb3JlL1BsdWdpblN0cmF0ZWd5Lmg+CisjaW5jbHVkZSAiV2Vi
UGxhdGZvcm1TdHJhdGVnaWVzLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitXZWJQ
bHVnaW5JbmZvUHJvdmlkZXImIFdlYlBsdWdpbkluZm9Qcm92aWRlcjo6c2luZ2xldG9uKCkKK3sK
KyAgICBzdGF0aWMgV2ViUGx1Z2luSW5mb1Byb3ZpZGVyJiBwbHVnaW5JbmZvUHJvdmlkZXIgPSBh
ZG9wdFJlZigqbmV3IFdlYlBsdWdpbkluZm9Qcm92aWRlcikubGVha1JlZigpOworCisgICAgcmV0
dXJuIHBsdWdpbkluZm9Qcm92aWRlcjsKK30KKworV2ViUGx1Z2luSW5mb1Byb3ZpZGVyOjpXZWJQ
bHVnaW5JbmZvUHJvdmlkZXIoKQoreworfQorCitXZWJQbHVnaW5JbmZvUHJvdmlkZXI6On5XZWJQ
bHVnaW5JbmZvUHJvdmlkZXIoKQoreworfQorCit2b2lkIFdlYlBsdWdpbkluZm9Qcm92aWRlcjo6
cmVmcmVzaFBsdWdpbnMoKQoreworICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wbHVnaW5TdHJh
dGVneSgpLT5yZWZyZXNoUGx1Z2lucygpOworfQorCit2b2lkIFdlYlBsdWdpbkluZm9Qcm92aWRl
cjo6Z2V0UGx1Z2luSW5mbyhXZWJDb3JlOjpQYWdlJiBwYWdlLCBWZWN0b3I8V2ViQ29yZTo6UGx1
Z2luSW5mbz4mIHBsdWdpbnMpCit7CisgICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBsdWdpblN0
cmF0ZWd5KCktPmdldFBsdWdpbkluZm8oJnBhZ2UsIHBsdWdpbnMpOworfQorCit2b2lkIFdlYlBs
dWdpbkluZm9Qcm92aWRlcjo6Z2V0V2ViVmlzaWJsZVBsdWdpbkluZm8oV2ViQ29yZTo6UGFnZSYg
cGFnZSwgVmVjdG9yPFdlYkNvcmU6OlBsdWdpbkluZm8+JiBwbHVnaW5zKQoreworICAgIHBsYXRm
b3JtU3RyYXRlZ2llcygpLT5wbHVnaW5TdHJhdGVneSgpLT5nZXRXZWJWaXNpYmxlUGx1Z2luSW5m
bygmcGFnZSwgcGx1Z2lucyk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJD
b3JlU3VwcG9ydC9XZWJQbHVnaW5JbmZvUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQvd2luL1dl
YkNvcmVTdXBwb3J0L1dlYlBsdWdpbkluZm9Qcm92aWRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc2OWY5NzYz
ODY0MGVjZDcyZWFiYjk1MzU2ODE3ZThlNTdhNDk0ZjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbHVnaW5JbmZvUHJvdmlkZXIuaApAQCAt
MCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8V2ViQ29yZS9QbHVnaW5JbmZvUHJv
dmlkZXIuaD4KKworY2xhc3MgV2ViUGx1Z2luSW5mb1Byb3ZpZGVyIGZpbmFsIDogcHVibGljIFdl
YkNvcmU6OlBsdWdpbkluZm9Qcm92aWRlciB7CisgICAgZnJpZW5kIGNsYXNzIE5ldmVyRGVzdHJv
eWVkPFdlYlBsdWdpbkluZm9Qcm92aWRlcj47CisKK3B1YmxpYzoKKyAgICBzdGF0aWMgV2ViUGx1
Z2luSW5mb1Byb3ZpZGVyJiBzaW5nbGV0b24oKTsKKyAgICB2aXJ0dWFsIH5XZWJQbHVnaW5JbmZv
UHJvdmlkZXIoKTsKKworcHJpdmF0ZToKKyAgICB2b2lkIHJlZnJlc2hQbHVnaW5zKCkgb3ZlcnJp
ZGU7CisgICAgdm9pZCBnZXRQbHVnaW5JbmZvKFdlYkNvcmU6OlBhZ2UmLCBWZWN0b3I8V2ViQ29y
ZTo6UGx1Z2luSW5mbz4mKSBvdmVycmlkZTsKKyAgICB2b2lkIGdldFdlYlZpc2libGVQbHVnaW5J
bmZvKFdlYkNvcmU6OlBhZ2UmLCBWZWN0b3I8V2ViQ29yZTo6UGx1Z2luSW5mbz4mKSBvdmVycmlk
ZTsKKyNpZiBQTEFURk9STShNQUMpCisgICAgdm9pZCBzZXRQbHVnaW5Mb2FkQ2xpZW50UG9saWN5
KFdlYkNvcmU6OlBsdWdpbkxvYWRDbGllbnRQb2xpY3ksIGNvbnN0IFN0cmluZyYgaG9zdCwgY29u
c3QgU3RyaW5nJiBidW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHZlcnNpb25TdHJpbmcp
IG92ZXJyaWRlOworICAgIHZvaWQgY2xlYXJQbHVnaW5DbGllbnRQb2xpY2llcygpIG92ZXJyaWRl
OworI2VuZGlmCisKKyAgICBXZWJQbHVnaW5JbmZvUHJvdmlkZXIoKTsKK307CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMzQxZjQx
ZWYyODA2Yzc0YzVkZGFmZWU1NTI1ZjdkZGZjOTY0MGU4MS4uMmRjOGY5MGI5N2Y4NjBkZWYzODIz
OTVlOTQ3NTYxMTUzNGQ1MmFjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTM0LDYgKzEzNCw3IEBACiAJCTFBMDdEMkY5MTkx
OUIzQTkwMEVDREExNiAvKiBtZXNzYWdlcy5weSBpbiBDb3B5IE1lc3NhZ2UgR2VuZXJhdGlvbiBT
Y3JpcHRzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQzA4NTZGMTg3Q0Uw
QTkwMDc4MEQ4NiAvKiBtZXNzYWdlcy5weSAqLzsgfTsKIAkJMUEwN0QyRkExOTE5QjNBOTAwRUNE
QTE2IC8qIG1vZGVsLnB5IGluIENvcHkgTWVzc2FnZSBHZW5lcmF0aW9uIFNjcmlwdHMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZDMDg1NzAxODdDRTBBOTAwNzgwRDg2IC8q
IG1vZGVsLnB5ICovOyB9OwogCQkxQTA3RDJGQjE5MTlCM0E5MDBFQ0RBMTYgLyogcGFyc2VyLnB5
IGluIENvcHkgTWVzc2FnZSBHZW5lcmF0aW9uIFNjcmlwdHMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEZDMDg1NzExODdDRTBBOTAwNzgwRDg2IC8qIHBhcnNlci5weSAqLzsg
fTsKKwkJMUEwOEZFRTQxRDU5M0UyQTAwOEJBOENCIC8qIFdlYlBsdWdpbkluZm9Qcm92aWRlci5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTA4RkVF
MjFENTkzQ0YxMDA4QkE4Q0IgLyogV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLmNwcCAqLzsgfTsKIAkJ
MUEwRUM2MDMxMjRBOUYyQzAwN0VGNEE1IC8qIFBsdWdpblByb2Nlc3NNYW5hZ2VyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTBFQzYwMTEyNEE5RjJD
MDA3RUY0QTUgLyogUGx1Z2luUHJvY2Vzc01hbmFnZXIuaCAqLzsgfTsKIAkJMUEwRUM2MDQxMjRB
OUYyQzAwN0VGNEE1IC8qIFBsdWdpblByb2Nlc3NNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBMEVDNjAyMTI0QTlGMkMwMDdFRjRBNSAv
KiBQbHVnaW5Qcm9jZXNzTWFuYWdlci5jcHAgKi87IH07CiAJCTFBMEVDNkMwMTI0QkJEOUIwMDdF
RjRBNSAvKiBQbHVnaW5Qcm9jZXNzTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBMEVDNkJFMTI0QkJEOUIwMDdFRjRBNSAvKiBQbHVnaW5Q
cm9jZXNzTWVzc2FnZXMuaCAqLzsgfTsKQEAgLTIwOTIsNiArMjA5Myw4IEBACiAJCTFBMDQzRjY3
MTI1MTREOEIwMEZGQkZCNSAvKiBXZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJQcm9jZXNzQ29ubmVj
dGlvbk1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFB
MDQzRjY4MTI1MTREOEIwMEZGQkZCNSAvKiBXZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlByb2Nlc3NDb25uZWN0aW9uTWVz
c2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUEwNEY2MTcxQTRBM0E3QTAw
QTIxQjZFIC8qIFdlYlByb2Nlc3NQcm94eUNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gV2ViUHJvY2Vzc1Byb3h5Q29jb2EubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTFBMDhGRUUyMUQ1OTNDRjEwMDhCQThDQiAvKiBXZWJQbHVnaW5JbmZv
UHJvdmlkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViUGx1
Z2luSW5mb1Byb3ZpZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUEwOEZF
RTMxRDU5M0NGMTAwOEJBOENCIC8qIFdlYlBsdWdpbkluZm9Qcm92aWRlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJQbHVnaW5JbmZvUHJvdmlkZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUEwRUM2MDExMjRBOUYyQzAwN0VGNEE1IC8qIFBsdWdpblBy
b2Nlc3NNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsdWdpblBy
b2Nlc3NNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBMEVDNjAyMTI0
QTlGMkMwMDdFRjRBNSAvKiBQbHVnaW5Qcm9jZXNzTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQbHVnaW5Qcm9jZXNzTWFuYWdlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBMEVDNkIxMTI0QkJEMzYwMDdFRjRBNSAvKiBQbHVnaW5Q
cm9jZXNzLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFBsdWdpblByb2Nlc3Mu
bWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00MzcyLDYgKzQzNzUs
OCBAQAogCQkJCTFBOEVGQTVCMTI1MkI3Q0UwMEY3MDY3RiAvKiBQbHVnaW5Qcm94eS5tZXNzYWdl
cy5pbiAqLywKIAkJCQkxQTZGQjdBQzExRTY0QjY4MDBEQjEzNzEgLyogUGx1Z2luVmlldy5jcHAg
Ki8sCiAJCQkJMUE2RkI3QUQxMUU2NEI2ODAwREIxMzcxIC8qIFBsdWdpblZpZXcuaCAqLywKKwkJ
CQkxQTA4RkVFMjFENTkzQ0YxMDA4QkE4Q0IgLyogV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLmNwcCAq
LywKKwkJCQkxQTA4RkVFMzFENTkzQ0YxMDA4QkE4Q0IgLyogV2ViUGx1Z2luSW5mb1Byb3ZpZGVy
LmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IFBsdWdpbnM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOwpAQCAtOTEzMiw2ICs5MTM3LDcgQEAKIAkJCQkxQTJEODJBNjEyN0Y0RUFCMDAxRUI5NjIg
LyogTlBPYmplY3RQcm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTJEODJBODEyN0Y0RUFC
MDAxRUI5NjIgLyogTlBSZW1vdGVPYmplY3RNYXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEy
MTYxQjExMUYzNzY2NDAwOEFEMEY1IC8qIE5QUnVudGltZU9iamVjdE1hcC5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQkxQTA4RkVFNDFENTkzRTJBMDA4QkE4Q0IgLyogV2ViUGx1Z2luSW5mb1Byb3Zp
ZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBMjE2MkIwMTFGMzg5NzEwMDhBRDBGNSAvKiBO
UFJ1bnRpbWVVdGlsaXRpZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEyRDg0QTQxMjdGNkFE
MTAwMUVCOTYyIC8qIE5QVmFyaWFudERhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM4QUNB
MTQxNjY3MEQ4OTAwNEMxOTQxIC8qIE9iakNPYmplY3RHcmFwaC5tbSBpbiBTb3VyY2VzICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1dlYlBsdWdpbklu
Zm9Qcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvV2ViUGx1
Z2luSW5mb1Byb3ZpZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZjU2ZGRlMTBmOGFhMjk2NzllNTNiMjEy
MDM3YTA2MDU0OWM0ZTZlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9QbHVnaW5zL1dlYlBsdWdpbkluZm9Qcm92aWRlci5jcHAKQEAgLTAsMCArMSw3NyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJQbHVnaW5JbmZv
UHJvdmlkZXIuaCIKKworLy8gRklYTUU6IFdlIHNob3VsZG4ndCBjYWxsIG91dCB0byB0aGUgcGxh
dGZvcm0gc3RyYXRlZ3kgZm9yIHRoaXMuCisjaW5jbHVkZSAiV2ViUGxhdGZvcm1TdHJhdGVnaWVz
LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9QbHVnaW5TdHJhdGVneS5oPgorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworV2ViUGx1Z2luSW5mb1Byb3ZpZGVyJiBXZWJQbHVnaW5JbmZvUHJvdmlkZXI6OnNp
bmdsZXRvbigpCit7CisgICAgc3RhdGljIFdlYlBsdWdpbkluZm9Qcm92aWRlciYgcGx1Z2luSW5m
b1Byb3ZpZGVyID0gYWRvcHRSZWYoKm5ldyBXZWJQbHVnaW5JbmZvUHJvdmlkZXIpLmxlYWtSZWYo
KTsKKworICAgIHJldHVybiBwbHVnaW5JbmZvUHJvdmlkZXI7Cit9CisKK1dlYlBsdWdpbkluZm9Q
cm92aWRlcjo6V2ViUGx1Z2luSW5mb1Byb3ZpZGVyKCkKK3sKK30KKworV2ViUGx1Z2luSW5mb1By
b3ZpZGVyOjp+V2ViUGx1Z2luSW5mb1Byb3ZpZGVyKCkKK3sKK30KKwordm9pZCBXZWJQbHVnaW5J
bmZvUHJvdmlkZXI6OnJlZnJlc2hQbHVnaW5zKCkKK3sKKyAgICBXZWJDb3JlOjpwbGF0Zm9ybVN0
cmF0ZWdpZXMoKS0+cGx1Z2luU3RyYXRlZ3koKS0+cmVmcmVzaFBsdWdpbnMoKTsKK30KKwordm9p
ZCBXZWJQbHVnaW5JbmZvUHJvdmlkZXI6OmdldFBsdWdpbkluZm8oV2ViQ29yZTo6UGFnZSYgcGFn
ZSwgVmVjdG9yPFdlYkNvcmU6OlBsdWdpbkluZm8+JiBwbHVnaW5zKQoreworICAgIFdlYkNvcmU6
OnBsYXRmb3JtU3RyYXRlZ2llcygpLT5wbHVnaW5TdHJhdGVneSgpLT5nZXRQbHVnaW5JbmZvKCZw
YWdlLCBwbHVnaW5zKTsKK30KKwordm9pZCBXZWJQbHVnaW5JbmZvUHJvdmlkZXI6OmdldFdlYlZp
c2libGVQbHVnaW5JbmZvKFdlYkNvcmU6OlBhZ2UmIHBhZ2UsIFZlY3RvcjxXZWJDb3JlOjpQbHVn
aW5JbmZvPiYgcGx1Z2lucykKK3sKKyAgICBXZWJDb3JlOjpwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+
cGx1Z2luU3RyYXRlZ3koKS0+Z2V0V2ViVmlzaWJsZVBsdWdpbkluZm8oJnBhZ2UsIHBsdWdpbnMp
OworfQorCisjaWYgUExBVEZPUk0oTUFDKQordm9pZCBXZWJQbHVnaW5JbmZvUHJvdmlkZXI6OnNl
dFBsdWdpbkxvYWRDbGllbnRQb2xpY3koV2ViQ29yZTo6UGx1Z2luTG9hZENsaWVudFBvbGljeSBw
bHVnaW5Mb2FkQ2xpZW50UG9saWN5LCBjb25zdCBTdHJpbmcmIGhvc3QsIGNvbnN0IFN0cmluZyYg
YnVuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB2ZXJzaW9uU3RyaW5nKQoreworICAgIFdl
YkNvcmU6OnBsYXRmb3JtU3RyYXRlZ2llcygpLT5wbHVnaW5TdHJhdGVneSgpLT5zZXRQbHVnaW5M
b2FkQ2xpZW50UG9saWN5KHBsdWdpbkxvYWRDbGllbnRQb2xpY3ksIGhvc3QsIGJ1bmRsZUlkZW50
aWZpZXIsIHZlcnNpb25TdHJpbmcpOworfQorCit2b2lkIFdlYlBsdWdpbkluZm9Qcm92aWRlcjo6
Y2xlYXJQbHVnaW5DbGllbnRQb2xpY2llcygpCit7CisgICAgV2ViQ29yZTo6cGxhdGZvcm1TdHJh
dGVnaWVzKCktPnBsdWdpblN0cmF0ZWd5KCktPmNsZWFyUGx1Z2luQ2xpZW50UG9saWNpZXMoKTsK
K30KKyNlbmRpZgorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1BsdWdpbnMvV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTFiZTdhOGM2YTA3
ZjFiMDdmZTUxYzdhZTU0NjBmZTRiMzc2ZTJlNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9XZWJQbHVnaW5JbmZvUHJvdmlkZXIuaApAQCAtMCww
ICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgPFdlYkNvcmUvUGx1Z2luSW5mb1Byb3Zp
ZGVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQbHVnaW5JbmZvUHJvdmlk
ZXIgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6UGx1Z2luSW5mb1Byb3ZpZGVyIHsKKyAgICBmcmll
bmQgY2xhc3MgTmV2ZXJEZXN0cm95ZWQ8V2ViUGx1Z2luSW5mb1Byb3ZpZGVyPjsKKworcHVibGlj
OgorICAgIHN0YXRpYyBXZWJQbHVnaW5JbmZvUHJvdmlkZXImIHNpbmdsZXRvbigpOworICAgIHZp
cnR1YWwgfldlYlBsdWdpbkluZm9Qcm92aWRlcigpOworCitwcml2YXRlOgorICAgIHZvaWQgcmVm
cmVzaFBsdWdpbnMoKSBvdmVycmlkZTsKKyAgICB2b2lkIGdldFBsdWdpbkluZm8oV2ViQ29yZTo6
UGFnZSYsIFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiYpIG92ZXJyaWRlOworICAgIHZvaWQg
Z2V0V2ViVmlzaWJsZVBsdWdpbkluZm8oV2ViQ29yZTo6UGFnZSYsIFZlY3RvcjxXZWJDb3JlOjpQ
bHVnaW5JbmZvPiYpIG92ZXJyaWRlOworI2lmIFBMQVRGT1JNKE1BQykKKyAgICB2b2lkIHNldFBs
dWdpbkxvYWRDbGllbnRQb2xpY3koV2ViQ29yZTo6UGx1Z2luTG9hZENsaWVudFBvbGljeSwgY29u
c3QgU3RyaW5nJiBob3N0LCBjb25zdCBTdHJpbmcmIGJ1bmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0
cmluZyYgdmVyc2lvblN0cmluZykgb3ZlcnJpZGU7CisgICAgdm9pZCBjbGVhclBsdWdpbkNsaWVu
dFBvbGljaWVzKCkgb3ZlcnJpZGU7CisjZW5kaWYKKworICAgIFdlYlBsdWdpbkluZm9Qcm92aWRl
cigpOworfTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwCmluZGV4IDNiMzVlYWExOWEwNTJiNGMyMDkzMTU2NGUwYTVkNzZkOWM1OWY3YzQuLjk5
NjkwNjY3M2Q0ZTA1ZDQxZGI3OTI5ZTVmYjMwOTliNWYxMjAyOGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTk2LDYgKzk2LDcgQEAKICNp
bmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlBheW1lbnRDb29y
ZGluYXRvci5oIgogI2luY2x1ZGUgIldlYlBsdWdJbkNsaWVudC5oIgorI2luY2x1ZGUgIldlYlBs
dWdpbkluZm9Qcm92aWRlci5oIgogI2luY2x1ZGUgIldlYlBvcHVwTWVudS5oIgogI2luY2x1ZGUg
IldlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaCIKICNpbmNsdWRlICJXZWJQcmVmZXJlbmNlc0tl
eXMuaCIKQEAgLTQxMSw2ICs0MTIsNyBAQCBXZWJQYWdlOjpXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJ
RCwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKIAogICAgIHBh
Z2VDb25maWd1cmF0aW9uLmFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlID0gJldlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLmFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlKCk7CiAgICAgcGFnZUNvbmZpZ3VyYXRp
b24uZGF0YWJhc2VQcm92aWRlciA9IFdlYkRhdGFiYXNlUHJvdmlkZXI6OmdldE9yQ3JlYXRlKG1f
cGFnZUdyb3VwLT5wYWdlR3JvdXBJRCgpKTsKKyAgICBwYWdlQ29uZmlndXJhdGlvbi5wbHVnaW5J
bmZvUHJvdmlkZXIgPSAmV2ViUGx1Z2luSW5mb1Byb3ZpZGVyOjpzaW5nbGV0b24oKTsKICAgICBw
YWdlQ29uZmlndXJhdGlvbi5zdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIgPSBXZWJTdG9yYWdlTmFt
ZXNwYWNlUHJvdmlkZXI6OmdldE9yQ3JlYXRlKG1fcGFnZUdyb3VwLT5wYWdlR3JvdXBJRCgpKTsK
ICAgICBwYWdlQ29uZmlndXJhdGlvbi51c2VyQ29udGVudFByb3ZpZGVyID0gbV91c2VyQ29udGVu
dENvbnRyb2xsZXIucHRyKCk7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24udmlzaXRlZExpbmtTdG9y
ZSA9IFZpc2l0ZWRMaW5rVGFibGVDb250cm9sbGVyOjpnZXRPckNyZWF0ZShwYXJhbWV0ZXJzLnZp
c2l0ZWRMaW5rVGFibGVJRCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>285594</attachid>
            <date>2016-08-08 15:48:00 -0700</date>
            <delta_ts>2016-08-08 16:03:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160670-20160808154628.patch</filename>
            <type>text/plain</type>
            <size>58078</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0MjYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDg3OWRhNjcxNzFmNjVm
Yzc2OWIxOGM2YmM2OTc1NmE4YmMzMmQzYS4uMWZkMGY4ZTY4YzNhYTI3NGE2ZTEzNTExZDYzMjA4
Njg4MjU5ZDhlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDE2LTA4LTA4ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGEgbmV3IFBs
dWdpbkluZm9Qcm92aWRlciBjbGFzcywgdG8gcmVwbGFjZSBQbHVnaW5TdHJhdGVneQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwNjcwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgcGVyIHBhZ2Ug
UGx1Z2luSW5mb1Byb3ZpZGVyIGNsYXNzIHRoYXQncyBnb2luZyB0byB1bHRpbWF0ZWx5IHJlcGxh
Y2UgdGhlIHBsdWctaW4gc3RyYXRlZ3kuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpmaWxsV2l0aEVtcHR5Q2xpZW50cyk6CisgICAgICAgICogcGFnZS9QYWdl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6
UGFnZTo6flBhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6cmVmcmVzaFBsdWdpbnMpOgor
ICAgICAgICAoV2ViQ29yZTo6UGFnZTo6cGx1Z2luRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpQ
YWdlOjpwbHVnaW5JbmZvUHJvdmlkZXIpOgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAgICAg
ICAqIHBhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwOgorICAgICAgICAqIHBhZ2UvUGFnZUNvbmZp
Z3VyYXRpb24uaDoKKyAgICAgICAgKiBwbHVnaW5zL0RPTVBsdWdpbkFycmF5LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRPTVBsdWdpbkFycmF5OjpyZWZyZXNoKToKKyAgICAgICAgKiBwbHVnaW5z
L0RPTVBsdWdpbkFycmF5Lmg6CisgICAgICAgICogcGx1Z2lucy9QbHVnaW5EYXRhLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlBsdWdpbkRhdGE6OlBsdWdpbkRhdGEpOgorICAgICAgICAoV2ViQ29y
ZTo6UGx1Z2luRGF0YTo6d2ViVmlzaWJsZVBsdWdpbnMpOgorICAgICAgICAoV2ViQ29yZTo6UGx1
Z2luRGF0YTo6cHVibGljbHlWaXNpYmxlUGx1Z2lucyk6CisgICAgICAgIChXZWJDb3JlOjpQbHVn
aW5EYXRhOjppbml0UGx1Z2lucyk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5EYXRhOjpyZWZy
ZXNoKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpbkRhdGEuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlBsdWdpbkRhdGE6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5E
YXRhOjpQbHVnaW5EYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpbkluZm9Q
cm92aWRlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luSW5mb1Byb3ZpZGVy
Ojp+UGx1Z2luSW5mb1Byb3ZpZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpbkluZm9Qcm92
aWRlcjo6YWRkUGFnZSk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5JbmZvUHJvdmlkZXI6OnJl
bW92ZVBhZ2UpOgorICAgICAgICAqIHBsdWdpbnMvUGx1Z2luSW5mb1Byb3ZpZGVyLmg6IEFkZGVk
LgorICAgICAgICAqIHJlcGxheS9TZXJpYWxpemF0aW9uTWV0aG9kcy5jcHA6CisgICAgICAgIChK
U0M6OkVuY29kaW5nVHJhaXRzPFBsdWdpbkRhdGE+OjpkZWNvZGVWYWx1ZSk6CisgICAgICAgIChK
U0M6OkRlc2VyaWFsaXplZFBsdWdpbkRhdGE6OkRlc2VyaWFsaXplZFBsdWdpbkRhdGEpOiBEZWxl
dGVkLgorCiAyMDE2LTA4LTA4ICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgog
CiAgICAgICAgIERvbid0IHNldCBkb2N1bWVudC5kb21haW4gdG8gYW4gSVAgYWRkcmVzcyBmcmFn
bWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCBhZjlkNTBjZDVjYTJmMmQzOWExZWNkNjg2NmE0YzU0YjZiYmIzNjMz
Li4zYmQ4YzY5ODdjYjkyNTRkMmMyMzI5NmIyZmQ3OTFmZDJiOWVmNDU1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE1IEBACisyMDE2LTA4LTA4ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBs
ZS5jb20+CisKKyAgICAgICAgQWRkIGEgbmV3IFBsdWdpbkluZm9Qcm92aWRlciBjbGFzcywgdG8g
cmVwbGFjZSBQbHVnaW5TdHJhdGVneQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTYwNjcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkIG5ldyBmaWxlcy4KKworICAgICAgICAqIFBsYXRmb3JtV2luLmNt
YWtlOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDE2
LTA4LTA0ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgW01hY11bY21ha2VdIEZpeCB0aGUgYnVpbGQgYWZ0ZXIgT2JqZWN0aXZlLUMgYmluZGlu
Z3MgZ2VuZXJhdG9yIHJlbW92YWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCAxZTUxNDM4ODQ0YjZkOGY2
OGY0MDcyYTY2ZTY3YTMzNWUyZjZlN2IyLi5iNWNiODFhM2RkMDc4NTY3YzE2ZDZlZWIzOTQ0YTZl
OTZjYWFmYjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTYtMDgtMDgg
IEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYSBu
ZXcgUGx1Z2luSW5mb1Byb3ZpZGVyIGNsYXNzLCB0byByZXBsYWNlIFBsdWdpblN0cmF0ZWd5Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA2NzAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBuZXcg
V2ViUGx1Z2luSW5mb1Byb3ZpZGVyIC0gaXQganVzdCBjYWxscyB0aHJvdWdoIHRvIHRoZSBwbHVn
LWluIHN0cmF0ZWd5IGZvciBub3cuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQbHVn
aW5JbmZvUHJvdmlkZXIuaDogQWRkZWQuCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUGx1
Z2luSW5mb1Byb3ZpZGVyLm1tOiBBZGRlZC4KKyAgICAgICAgKFdlYlBsdWdpbkluZm9Qcm92aWRl
cjo6c2luZ2xldG9uKToKKyAgICAgICAgKFdlYlBsdWdpbkluZm9Qcm92aWRlcjo6V2ViUGx1Z2lu
SW5mb1Byb3ZpZGVyKToKKyAgICAgICAgKFdlYlBsdWdpbkluZm9Qcm92aWRlcjo6fldlYlBsdWdp
bkluZm9Qcm92aWRlcik6CisgICAgICAgIChXZWJQbHVnaW5JbmZvUHJvdmlkZXI6OnJlZnJlc2hQ
bHVnaW5zKToKKyAgICAgICAgKFdlYlBsdWdpbkluZm9Qcm92aWRlcjo6Z2V0UGx1Z2luSW5mbyk6
CisgICAgICAgIChXZWJQbHVnaW5JbmZvUHJvdmlkZXI6OmdldFdlYlZpc2libGVQbHVnaW5JbmZv
KToKKyAgICAgICAgKFdlYlBsdWdpbkluZm9Qcm92aWRlcjo6c2V0UGx1Z2luTG9hZENsaWVudFBv
bGljeSk6CisgICAgICAgIChXZWJQbHVnaW5JbmZvUHJvdmlkZXI6OmNsZWFyUGx1Z2luQ2xpZW50
UG9saWNpZXMpOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2Vi
VmlldyBfY29tbW9uSW5pdGlhbGl6YXRpb25XaXRoRnJhbWVOYW1lOmdyb3VwTmFtZTpdKToKKwog
MjAxNi0wOC0wMiAgRW5yaWNhIENhc3VjY2kgIDxlbnJpY2FAYXBwbGUuY29tPgogCiAgICAgICAg
IEFsbG93IGJ1aWxkaW5nIHdpdGggY29udGVudCBmaWx0ZXJpbmcgZGlzYWJsZWQuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFu
Z2VMb2cKaW5kZXggZDQ2N2M0ZmEzM2Q5YzhhNWFmMWI5Y2VkM2NhMThlNDJjNzFlMDU3NS4uY2Fh
NDhlYTFmMTk4OTAzMjM1ODBjMDFlMTUxZjc1OTliMTJiYzAzNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIxIEBACisyMDE2LTA4LTA4ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBh
cHBsZS5jb20+CisKKyAgICAgICAgQWRkIGEgbmV3IFBsdWdpbkluZm9Qcm92aWRlciBjbGFzcywg
dG8gcmVwbGFjZSBQbHVnaW5TdHJhdGVneQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTYwNjcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQWRkIGEgbmV3IFdlYlBsdWdpbkluZm9Qcm92aWRlciAtIGl0IGp1
c3QgY2FsbHMgdGhyb3VnaCB0byB0aGUgcGx1Zy1pbiBzdHJhdGVneSBmb3Igbm93LgorCisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJQbHVnaW5JbmZvUHJvdmlkZXI6OnNpbmdsZXRvbik6CisgICAgICAgIChXZWJQ
bHVnaW5JbmZvUHJvdmlkZXI6OldlYlBsdWdpbkluZm9Qcm92aWRlcik6CisgICAgICAgIChXZWJQ
bHVnaW5JbmZvUHJvdmlkZXI6On5XZWJQbHVnaW5JbmZvUHJvdmlkZXIpOgorICAgICAgICAoV2Vi
UGx1Z2luSW5mb1Byb3ZpZGVyOjpyZWZyZXNoUGx1Z2lucyk6CisgICAgICAgIChXZWJQbHVnaW5J
bmZvUHJvdmlkZXI6OmdldFBsdWdpbkluZm8pOgorICAgICAgICAoV2ViUGx1Z2luSW5mb1Byb3Zp
ZGVyOjpnZXRXZWJWaXNpYmxlUGx1Z2luSW5mbyk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
V2ViUGx1Z2luSW5mb1Byb3ZpZGVyLmg6IEFkZGVkLgorCiAyMDE2LTA3LTI5ICBDc2FiYSBPc3p0
cm9nb27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVtb3ZlIFBhc3NSZWYuaCBh
ZnRlciByMTc3MjU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZGZkMGZmM2ZiNjEwNWFhZDNmMTgwY2M4MmQyMWU2
NTJmY2JiYTZjMy4uYzA2YjI4NzVhMGI5NjdmYzlhMjMzY2JkM2M0Y2U3ODAxYjM4NmQ0YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE2LTA4LTA4ICBBbmRlcnMgQ2FybHNzb24gIDxh
bmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGEgbmV3IFBsdWdpbkluZm9Qcm92aWRl
ciBjbGFzcywgdG8gcmVwbGFjZSBQbHVnaW5TdHJhdGVneQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwNjcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgbmV3IFdlYlBsdWdpbkluZm9Qcm92aWRl
ciAtIGl0IGp1c3QgY2FsbHMgdGhyb3VnaCB0byB0aGUgcGx1Zy1pbiBzdHJhdGVneSBmb3Igbm93
LgorCisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9XZWJQbHVnaW5JbmZvUHJvdmlkZXIuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYktpdDo6V2ViUGx1Z2luSW5mb1Byb3ZpZGVyOjpzaW5nbGV0b24pOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQbHVnaW5JbmZvUHJvdmlkZXI6OldlYlBsdWdpbkluZm9Qcm92aWRl
cik6CisgICAgICAgIChXZWJLaXQ6OldlYlBsdWdpbkluZm9Qcm92aWRlcjo6fldlYlBsdWdpbklu
Zm9Qcm92aWRlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlBsdWdpbkluZm9Qcm92aWRlcjo6cmVm
cmVzaFBsdWdpbnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbHVnaW5JbmZvUHJvdmlkZXI6Omdl
dFBsdWdpbkluZm8pOgorICAgICAgICAoV2ViS2l0OjpXZWJQbHVnaW5JbmZvUHJvdmlkZXI6Omdl
dFdlYlZpc2libGVQbHVnaW5JbmZvKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGx1Z2luSW5mb1By
b3ZpZGVyOjpzZXRQbHVnaW5Mb2FkQ2xpZW50UG9saWN5KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGx1Z2luSW5mb1Byb3ZpZGVyOjpjbGVhclBsdWdpbkNsaWVudFBvbGljaWVzKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1BsdWdpbnMvV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLmg6IEFkZGVkLgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
bV91c2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uKToKKwogMjAxNi0wOC0wOCAgQnJhZHkgRWlk
c29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkcmVzc2luZyBsYXRlIHJldmll
dyBmZWVkYmFjayBpbiBidWcgMTYwNjA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMzRhMjg3NzU4YzgxMzNjMDdiZDI1YzFmYjQ3
NmJmZDQ5YjAwZTEwOS4uMjdjMmY4OTc2YTBmMWU5MTNlNjI4NTQzNjViZDAyMDkyY2U5YjJhMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtNjY2LDYgKzY2Niw4IEBACiAJCTE5QkZGNjRGMTFDMEYyQUMwMEI4QzA0RCAvKiBKU1NW
R0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxOUJGRjY0QTExQzBGMkFDMDBCOEMwNEQgLyogSlNTVkdGRUNvbnZv
bHZlTWF0cml4RWxlbWVudC5oICovOyB9OwogCQkxQTA0MDlEQzFBNDM2MEI1MDA5RTQ3RjMgLyog
TWFjaFNlbmRSaWdodC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMUEwNDA5REIxQTQzNjBCNTAwOUU0N0YzIC8qIE1hY2hTZW5kUmlnaHQuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxQTA0MDlGMzFBNDM2
NzVDMDA5RTQ3RjMgLyogTWFjaFNlbmRSaWdodC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTA0MDlGMjFBNDM2NzVDMDA5RTQ3RjMgLyogTWFjaFNl
bmRSaWdodC5jcHAgKi87IH07CisJCTFBMDhGRURDMUQ1OTJCOEIwMDhCQThDQiAvKiBQbHVnaW5J
bmZvUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMUEwOEZFREExRDU5MkI4QjAwOEJBOENCIC8qIFBsdWdpbkluZm9Qcm92aWRlci5jcHAg
Ki87IH07CisJCTFBMDhGRUREMUQ1OTJCOEIwMDhCQThDQiAvKiBQbHVnaW5JbmZvUHJvdmlkZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBMDhGRURC
MUQ1OTJCOEIwMDhCQThDQiAvKiBQbHVnaW5JbmZvUHJvdmlkZXIuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxQTBENTczNjBBNUM3N0ZFMDA3RURE
NEMgLyogT3ZlcmZsb3dFdmVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxQTBENTczNDBBNUM3N0ZFMDA3RURENEMgLyogT3ZlcmZsb3dFdmVudC5j
cHAgKi87IH07CiAJCTFBMEQ1NzM3MEE1Qzc3RkUwMDdFREQ0QyAvKiBPdmVyZmxvd0V2ZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTBENTczNTBB
NUM3N0ZFMDA3RURENEMgLyogT3ZlcmZsb3dFdmVudC5oICovOyB9OwogCQkxQTBENTc0MDBBNUM3
ODY3MDA3RURENEMgLyogSlNPdmVyZmxvd0V2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBMEQ1NzNFMEE1Qzc4NjcwMDdFREQ0QyAvKiBKU092
ZXJmbG93RXZlbnQuY3BwICovOyB9OwpAQCAtNzg4Niw2ICs3ODg4LDggQEAKIAkJMTlCRkY2NEEx
MUMwRjJBQzAwQjhDMDREIC8qIEpTU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTA0MDlEQjFBNDM2MEI1MDA5RTQ3RjMg
LyogTWFjaFNlbmRSaWdodC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNYWNo
U2VuZFJpZ2h0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBMDQwOUYyMUE0MzY3
NUMwMDlFNDdGMyAvKiBNYWNoU2VuZFJpZ2h0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IE1hY2hTZW5kUmlnaHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkxQTA4RkVEQTFENTkyQjhCMDA4QkE4Q0IgLyogUGx1Z2luSW5mb1Byb3ZpZGVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBsdWdpbkluZm9Qcm92aWRlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFBMDhGRURCMUQ1OTJCOEIwMDhCQThD
QiAvKiBQbHVnaW5JbmZvUHJvdmlkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUGx1Z2luSW5mb1Byb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFB
MEQ1NzM0MEE1Qzc3RkUwMDdFREQ0QyAvKiBPdmVyZmxvd0V2ZW50LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBPdmVyZmxvd0V2ZW50LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMUEwRDU3MzUwQTVDNzdGRTAwN0VERDRDIC8qIE92ZXJmbG93RXZl
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE92ZXJmbG93RXZlbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUEwRDU3MzgwQTVDNzgxMjAwN0VERDRDIC8q
IE92ZXJmbG93RXZlbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBPdmVyZmxvd0V2ZW50
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3NjkwLDYgKzE3Njk0LDggQEAK
IAkJCQkxQTkyN0ZEMTE0MTZBMTVCMDAzQTgzQzggLyogbnB0eXBlcy5oICovLAogCQkJCUE5QzZF
NEYxMEQ3NDVFNDgwMDY0NDJFOSAvKiBQbHVnaW5EYXRhLmNwcCAqLywKIAkJCQlBOUM2RTRGMjBE
NzQ1RTQ4MDA2NDQyRTkgLyogUGx1Z2luRGF0YS5oICovLAorCQkJCTFBMDhGRURBMUQ1OTJCOEIw
MDhCQThDQiAvKiBQbHVnaW5JbmZvUHJvdmlkZXIuY3BwICovLAorCQkJCTFBMDhGRURCMUQ1OTJC
OEIwMDhCQThDQiAvKiBQbHVnaW5JbmZvUHJvdmlkZXIuaCAqLywKIAkJCQkxQUE4Nzk4RjExQ0JF
ODQ2MDAzQzY2NEYgLyogUGx1Z2luU3RyYXRlZ3kuaCAqLywKIAkJCQkwQUZEQUMzQzEwRjU0NDhD
MDBFMUYzRDIgLyogUGx1Z2luVmlld0Jhc2UuaCAqLywKIAkJCSk7CkBAIC0yNzc2Miw2ICsyNzc2
OCw3IEBACiAJCQkJQjIyMjdBMkQwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0ltYWdlRWxlbWVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMDhGODU5RDUxNDYzRjlDRDAwNjdEOTM0IC8qIFNWR0ltYWdl
Rm9yQ29udGFpbmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjhDNkEyQTBEMDBDNDQ4MDAzMzRB
QTQgLyogU1ZHSW1hZ2VMb2FkZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTFBMDhGRUREMUQ1OTJC
OEIwMDhCQThDQiAvKiBQbHVnaW5JbmZvUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4
NTRCMDFGMTI1NUU0RTYwMEI5Q0REMCAvKiBTVkdJbmxpbmVGbG93Qm94LmggaW4gSGVhZGVycyAq
LywKIAkJCQkwODU0QjAyMTEyNTVFNEU2MDBCOUNERDAgLyogU1ZHSW5saW5lVGV4dEJveC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBMzAwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0xhbmdTcGFj
ZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMDMyMCw2ICszMDMyNyw3IEBACiAJCQkJQjJGQTNEREMw
QUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHUGF0aFNlZ01vdmV0b0Ficy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlCMkZBM0RERTBBQjc1QTZGMDAwRTVBQzQgLyogSlNTVkdQYXRoU2VnTW92ZXRvUmVs
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyRkEzREUwMEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NW
R1BhdHRlcm5FbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFBMDhGRURDMUQ1OTJCOEIw
MDhCQThDQiAvKiBQbHVnaW5JbmZvUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODU0
MkE3OTYwQUU1Qzk0MjAwREY1OERGIC8qIEpTU1ZHUG9pbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQjJGQTNERTIwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHUG9pbnRMaXN0LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUIyRkEzREU1MEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR1BvbHlnb25FbGVt
ZW50LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0VtcHR5Q2xpZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNw
cAppbmRleCA0MDgxZGU2MjJlMDQ0YzlmMWJlZTFlODg3M2QzN2ZjN2U4MzhjYjY3Li5iMDFmMjQ1
MGJiODAyMjllODBjZjJmMmY5NGI5ZGFkOWQwNzIzNDM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RW1wdHlDbGllbnRzLmNwcApAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUgIlBhZ2UuaCIKICNp
bmNsdWRlICJQYWdlQ29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgIlBheW1lbnRDb29yZGluYXRv
ckNsaWVudC5oIgorI2luY2x1ZGUgIlBsdWdpbkluZm9Qcm92aWRlci5oIgogI2luY2x1ZGUgIlN0
b3JhZ2VBcmVhLmgiCiAjaW5jbHVkZSAiU3RvcmFnZU5hbWVzcGFjZS5oIgogI2luY2x1ZGUgIlN0
b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5oIgpAQCAtNzgsNiArNzksMTYgQEAgY2xhc3MgRW1wdHlE
YXRhYmFzZVByb3ZpZGVyIGZpbmFsIDogcHVibGljIERhdGFiYXNlUHJvdmlkZXIgewogI2VuZGlm
CiB9OwogCitjbGFzcyBFbXB0eVBsdWdpbkluZm9Qcm92aWRlciBmaW5hbCA6IHB1YmxpYyBQbHVn
aW5JbmZvUHJvdmlkZXIgeworICAgIHZvaWQgcmVmcmVzaFBsdWdpbnMoKSBvdmVycmlkZSB7IH07
CisgICAgdm9pZCBnZXRQbHVnaW5JbmZvKFBhZ2UmLCBWZWN0b3I8UGx1Z2luSW5mbz4mKSBvdmVy
cmlkZSB7IH0KKyAgICB2b2lkIGdldFdlYlZpc2libGVQbHVnaW5JbmZvKFBhZ2UmLCBWZWN0b3I8
UGx1Z2luSW5mbz4mKSBvdmVycmlkZSB7IH0KKyNpZiBQTEFURk9STShNQUMpCisgICAgdm9pZCBz
ZXRQbHVnaW5Mb2FkQ2xpZW50UG9saWN5KFBsdWdpbkxvYWRDbGllbnRQb2xpY3ksIGNvbnN0IFN0
cmluZyYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlIHsgfQorICAgIHZv
aWQgY2xlYXJQbHVnaW5DbGllbnRQb2xpY2llcygpIG92ZXJyaWRlIHsgfQorI2VuZGlmCit9Owor
CiBjbGFzcyBFbXB0eVN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlciBmaW5hbCA6IHB1YmxpYyBTdG9y
YWdlTmFtZXNwYWNlUHJvdmlkZXIgewogICAgIHN0cnVjdCBFbXB0eVN0b3JhZ2VBcmVhIDogcHVi
bGljIFN0b3JhZ2VBcmVhIHsKICAgICAgICAgdW5zaWduZWQgbGVuZ3RoKCkgb3ZlcnJpZGUgeyBy
ZXR1cm4gMDsgfQpAQCAtMTYzLDYgKzE3NCw3IEBAIHZvaWQgZmlsbFdpdGhFbXB0eUNsaWVudHMo
UGFnZUNvbmZpZ3VyYXRpb24mIHBhZ2VDb25maWd1cmF0aW9uKQogCiAgICAgcGFnZUNvbmZpZ3Vy
YXRpb24uYXBwbGljYXRpb25DYWNoZVN0b3JhZ2UgPSBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6
Y3JlYXRlKFN0cmluZygpLCBTdHJpbmcoKSk7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uZGF0YWJh
c2VQcm92aWRlciA9IGFkb3B0UmVmKG5ldyBFbXB0eURhdGFiYXNlUHJvdmlkZXIpOworICAgIHBh
Z2VDb25maWd1cmF0aW9uLnBsdWdpbkluZm9Qcm92aWRlciA9IGFkb3B0UmVmKG5ldyBFbXB0eVBs
dWdpbkluZm9Qcm92aWRlcik7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uc3RvcmFnZU5hbWVzcGFj
ZVByb3ZpZGVyID0gYWRvcHRSZWYobmV3IEVtcHR5U3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyKTsK
ICAgICBwYWdlQ29uZmlndXJhdGlvbi51c2VyQ29udGVudFByb3ZpZGVyID0gYWRvcHRSZWYobmV3
IEVtcHR5VXNlckNvbnRlbnRQcm92aWRlcik7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24udmlzaXRl
ZExpbmtTdG9yZSA9IGFkb3B0UmVmKG5ldyBFbXB0eVZpc2l0ZWRMaW5rU3RvcmUpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5jcHAKaW5kZXggYmEwODk2MDQ5NTQxZDQwOTAyODBiYjgxMzU1ZTkwMGU0MTllNjA3OS4u
Yzk0NDkzZDBmMDExM2YwNmRjMjg2YjIwNDRjMjU2Mjc2YTJiZjI0NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2Uu
Y3BwCkBAIC02OSw2ICs2OSw3IEBACiAjaW5jbHVkZSAiUGFnZVRocm90dGxlci5oIgogI2luY2x1
ZGUgIlBsdWdJbkNsaWVudC5oIgogI2luY2x1ZGUgIlBsdWdpbkRhdGEuaCIKKyNpbmNsdWRlICJQ
bHVnaW5JbmZvUHJvdmlkZXIuaCIKICNpbmNsdWRlICJQbHVnaW5WaWV3QmFzZS5oIgogI2luY2x1
ZGUgIlBvaW50ZXJMb2NrQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIlByb2dyZXNzVHJhY2tlci5o
IgpAQCAtMjMzLDYgKzIzNCw3IEBAIFBhZ2U6OlBhZ2UoUGFnZUNvbmZpZ3VyYXRpb24mJiBwYWdl
Q29uZmlndXJhdGlvbikKICAgICAsIG1fc29ja2V0UHJvdmlkZXIoV1RGTW92ZShwYWdlQ29uZmln
dXJhdGlvbi5zb2NrZXRQcm92aWRlcikpCiAgICAgLCBtX2FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdl
KCpXVEZNb3ZlKHBhZ2VDb25maWd1cmF0aW9uLmFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlKSkKICAg
ICAsIG1fZGF0YWJhc2VQcm92aWRlcigqV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbi5kYXRhYmFz
ZVByb3ZpZGVyKSkKKyAgICAsIG1fcGx1Z2luSW5mb1Byb3ZpZGVyKCpXVEZNb3ZlKHBhZ2VDb25m
aWd1cmF0aW9uLnBsdWdpbkluZm9Qcm92aWRlcikpCiAgICAgLCBtX3N0b3JhZ2VOYW1lc3BhY2VQ
cm92aWRlcigqV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbi5zdG9yYWdlTmFtZXNwYWNlUHJvdmlk
ZXIpKQogICAgICwgbV91c2VyQ29udGVudFByb3ZpZGVyKCpXVEZNb3ZlKHBhZ2VDb25maWd1cmF0
aW9uLnVzZXJDb250ZW50UHJvdmlkZXIpKQogICAgICwgbV92aXNpdGVkTGlua1N0b3JlKCpXVEZN
b3ZlKHBhZ2VDb25maWd1cmF0aW9uLnZpc2l0ZWRMaW5rU3RvcmUpKQpAQCAtMjQxLDggKzI0Myw4
IEBAIFBhZ2U6OlBhZ2UoUGFnZUNvbmZpZ3VyYXRpb24mJiBwYWdlQ29uZmlndXJhdGlvbikKIHsK
ICAgICB1cGRhdGVUaW1lclRocm90dGxpbmdTdGF0ZSgpOwogCisgICAgbV9wbHVnaW5JbmZvUHJv
dmlkZXItPmFkZFBhZ2UoKnRoaXMpOwogICAgIG1fc3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyLT5h
ZGRQYWdlKCp0aGlzKTsKLQogICAgIG1fdXNlckNvbnRlbnRQcm92aWRlci0+YWRkUGFnZSgqdGhp
cyk7CiAgICAgbV92aXNpdGVkTGlua1N0b3JlLT5hZGRQYWdlKCp0aGlzKTsKIApAQCAtMjk4LDYg
KzMwMCw3IEBAIFBhZ2U6On5QYWdlKCkKICAgICBwYWdlQ291bnRlci5kZWNyZW1lbnQoKTsKICNl
bmRpZgogCisgICAgbV9wbHVnaW5JbmZvUHJvdmlkZXItPnJlbW92ZVBhZ2UoKnRoaXMpOwogICAg
IG1fc3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyLT5yZW1vdmVQYWdlKCp0aGlzKTsKICAgICBtX3Vz
ZXJDb250ZW50UHJvdmlkZXItPnJlbW92ZVBhZ2UoKnRoaXMpOwogICAgIG1fdmlzaXRlZExpbmtT
dG9yZS0+cmVtb3ZlUGFnZSgqdGhpcyk7CkBAIC01MDcsMTEgKzUxMCwxMiBAQCB2b2lkIFBhZ2U6
OnJlZnJlc2hQbHVnaW5zKGJvb2wgcmVsb2FkKQogICAgIGlmICghYWxsUGFnZXMpCiAgICAgICAg
IHJldHVybjsKIAotICAgIFBsdWdpbkRhdGE6OnJlZnJlc2goKTsKKyAgICBIYXNoU2V0PFBsdWdp
bkluZm9Qcm92aWRlcio+IHBsdWdpbkluZm9Qcm92aWRlcnM7CiAKICAgICBWZWN0b3I8UmVmPEZy
YW1lPj4gZnJhbWVzTmVlZGluZ1JlbG9hZDsKIAogICAgIGZvciAoYXV0byYgcGFnZSA6ICphbGxQ
YWdlcykgeworICAgICAgICBwbHVnaW5JbmZvUHJvdmlkZXJzLmFkZCgmcGFnZS0+cGx1Z2luSW5m
b1Byb3ZpZGVyKCkpOwogICAgICAgICBwYWdlLT5tX3BsdWdpbkRhdGEgPSBudWxscHRyOwogCiAg
ICAgICAgIGlmICghcmVsb2FkKQpAQCAtNTIzLDE0ICs1MjcsMTcgQEAgdm9pZCBQYWdlOjpyZWZy
ZXNoUGx1Z2lucyhib29sIHJlbG9hZCkKICAgICAgICAgfQogICAgIH0KIAorICAgIGZvciAoYXV0
byYgcGx1Z2luSW5mb1Byb3ZpZGVyIDogcGx1Z2luSW5mb1Byb3ZpZGVycykKKyAgICAgICAgcGx1
Z2luSW5mb1Byb3ZpZGVyLT5yZWZyZXNoUGx1Z2lucygpOworCiAgICAgZm9yIChhdXRvJiBmcmFt
ZSA6IGZyYW1lc05lZWRpbmdSZWxvYWQpCiAgICAgICAgIGZyYW1lLT5sb2FkZXIoKS5yZWxvYWQo
KTsKIH0KIAotUGx1Z2luRGF0YSYgUGFnZTo6cGx1Z2luRGF0YSgpIGNvbnN0CitQbHVnaW5EYXRh
JiBQYWdlOjpwbHVnaW5EYXRhKCkKIHsKICAgICBpZiAoIW1fcGx1Z2luRGF0YSkKLSAgICAgICAg
bV9wbHVnaW5EYXRhID0gUGx1Z2luRGF0YTo6Y3JlYXRlKHRoaXMpOworICAgICAgICBtX3BsdWdp
bkRhdGEgPSBQbHVnaW5EYXRhOjpjcmVhdGUoKnRoaXMpOwogICAgIHJldHVybiAqbV9wbHVnaW5E
YXRhOwogfQogCkBAIC0xODQ3LDYgKzE4NTQsMTEgQEAgYm9vbCBQYWdlOjphcmVQcm9tcHRzQWxs
b3dlZCgpCiAgICAgcmV0dXJuICFtX2ZvcmJpZFByb21wdHNEZXB0aDsKIH0KIAorUGx1Z2luSW5m
b1Byb3ZpZGVyJiBQYWdlOjpwbHVnaW5JbmZvUHJvdmlkZXIoKQoreworICAgIHJldHVybiBtX3Bs
dWdpbkluZm9Qcm92aWRlcjsKK30KKwogVXNlckNvbnRlbnRQcm92aWRlciYgUGFnZTo6dXNlckNv
bnRlbnRQcm92aWRlcigpCiB7CiAgICAgcmV0dXJuIG1fdXNlckNvbnRlbnRQcm92aWRlcjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmgKaW5kZXggYzBjZmE0ODRhN2IzMjdhYTc2YjE4NDI5ZGUwMGFhNmViM2U3YzEwMi4u
ZjE1ZGE0MjhlOGQ1NjAwMDU4NTY1MDQxNDYzNmZlNDhiNjY2NDc5MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgK
QEAgLTEwOCw2ICsxMDgsNyBAQCBjbGFzcyBQYWdlR3JvdXA7CiBjbGFzcyBQYWdlVGhyb3R0bGVy
OwogY2xhc3MgUGx1Z0luQ2xpZW50OwogY2xhc3MgUGx1Z2luRGF0YTsKK2NsYXNzIFBsdWdpbklu
Zm9Qcm92aWRlcjsKIGNsYXNzIFBsdWdpblZpZXdCYXNlOwogY2xhc3MgUG9pbnRlckxvY2tDb250
cm9sbGVyOwogY2xhc3MgUHJvZ3Jlc3NUcmFja2VyOwpAQCAtMTU1LDcgKzE1Niw3IEBAIHB1Ymxp
YzoKICAgICBXRUJDT1JFX0VYUE9SVCBWaWV3cG9ydEFyZ3VtZW50cyB2aWV3cG9ydEFyZ3VtZW50
cygpIGNvbnN0OwogCiAgICAgc3RhdGljIHZvaWQgcmVmcmVzaFBsdWdpbnMoYm9vbCByZWxvYWQp
OwotICAgIFdFQkNPUkVfRVhQT1JUIFBsdWdpbkRhdGEmIHBsdWdpbkRhdGEoKSBjb25zdDsKKyAg
ICBXRUJDT1JFX0VYUE9SVCBQbHVnaW5EYXRhJiBwbHVnaW5EYXRhKCk7CiAKICAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHNldENhblN0YXJ0TWVkaWEoYm9vbCk7CiAgICAgYm9vbCBjYW5TdGFydE1l
ZGlhKCkgY29uc3QgeyByZXR1cm4gbV9jYW5TdGFydE1lZGlhOyB9CkBAIC00NjYsNiArNDY3LDgg
QEAgcHVibGljOgogICAgIFN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlciYgc3RvcmFnZU5hbWVzcGFj
ZVByb3ZpZGVyKCkgeyByZXR1cm4gbV9zdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIuZ2V0KCk7IH0K
ICAgICB2b2lkIHNldFN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlcihSZWY8U3RvcmFnZU5hbWVzcGFj
ZVByb3ZpZGVyPiYmKTsKIAorICAgIFBsdWdpbkluZm9Qcm92aWRlciYgcGx1Z2luSW5mb1Byb3Zp
ZGVyKCk7CisKICAgICBVc2VyQ29udGVudFByb3ZpZGVyJiB1c2VyQ29udGVudFByb3ZpZGVyKCk7
CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRVc2VyQ29udGVudFByb3ZpZGVyKFJlZjxVc2Vy
Q29udGVudFByb3ZpZGVyPiYmKTsKIApAQCAtNTg1LDcgKzU4OCw3IEBAIHByaXZhdGU6CiAgICAg
Y29uc3Qgc3RkOjp1bmlxdWVfcHRyPEJhY2tGb3J3YXJkQ29udHJvbGxlcj4gbV9iYWNrRm9yd2Fy
ZENvbnRyb2xsZXI7CiAgICAgUmVmPE1haW5GcmFtZT4gbV9tYWluRnJhbWU7CiAKLSAgICBtdXRh
YmxlIFJlZlB0cjxQbHVnaW5EYXRhPiBtX3BsdWdpbkRhdGE7CisgICAgUmVmUHRyPFBsdWdpbkRh
dGE+IG1fcGx1Z2luRGF0YTsKIAogICAgIFJlZlB0cjxSZW5kZXJUaGVtZT4gbV90aGVtZTsKIApA
QCAtNjk5LDYgKzcwMiw3IEBAIHByaXZhdGU6CiAgICAgUmVmPFNvY2tldFByb3ZpZGVyPiBtX3Nv
Y2tldFByb3ZpZGVyOwogICAgIFJlZjxBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZT4gbV9hcHBsaWNh
dGlvbkNhY2hlU3RvcmFnZTsKICAgICBSZWY8RGF0YWJhc2VQcm92aWRlcj4gbV9kYXRhYmFzZVBy
b3ZpZGVyOworICAgIFJlZjxQbHVnaW5JbmZvUHJvdmlkZXI+IG1fcGx1Z2luSW5mb1Byb3ZpZGVy
OwogICAgIFJlZjxTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXI+IG1fc3RvcmFnZU5hbWVzcGFjZVBy
b3ZpZGVyOwogICAgIFJlZjxVc2VyQ29udGVudFByb3ZpZGVyPiBtX3VzZXJDb250ZW50UHJvdmlk
ZXI7CiAgICAgUmVmPFZpc2l0ZWRMaW5rU3RvcmU+IG1fdmlzaXRlZExpbmtTdG9yZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAKaW5kZXggZWVmMzBhZjhiOGYzMmE3
Y2YzNGZiYjY2Yjk1ODRhMDBjZWQ3ZjI3MS4uOTVlNzkyNjVmZjA2MDZiZWZlZWU4MWQzZGFiN2Jk
M2FjNTlkYzBmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJh
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAK
QEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJEYXRhYmFzZVByb3ZpZGVyLmgiCiAjaW5jbHVk
ZSAiRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCIKICNpbmNsdWRlICJFZGl0b3JDbGllbnQuaCIK
KyNpbmNsdWRlICJQbHVnaW5JbmZvUHJvdmlkZXIuaCIKICNpbmNsdWRlICJTb2NrZXRQcm92aWRl
ci5oIgogI2luY2x1ZGUgIlN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5oIgogI2luY2x1ZGUgIlVz
ZXJDb250ZW50Q29udHJvbGxlci5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlv
bi5oCmluZGV4IGRhYzJlOTY1YWFmNzdmMmYyMzk3ZjAxODRkM2MwOGM3NjVkZTY0ZDQuLjIyYWVi
ODI4N2M5NTRjMGZjYTNmZWFhZTczMThjZjAxMTU2NmJkOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2VDb25maWd1cmF0aW9uLmgKQEAgLTQzLDYgKzQzLDcgQEAgY2xhc3MgRnJhbWVMb2FkZXJD
bGllbnQ7CiBjbGFzcyBJbnNwZWN0b3JDbGllbnQ7CiBjbGFzcyBQYXltZW50Q29vcmRpbmF0b3JD
bGllbnQ7CiBjbGFzcyBQbHVnSW5DbGllbnQ7CitjbGFzcyBQbHVnaW5JbmZvUHJvdmlkZXI7CiBj
bGFzcyBQcm9ncmVzc1RyYWNrZXJDbGllbnQ7CiBjbGFzcyBTb2NrZXRQcm92aWRlcjsKIGNsYXNz
IFN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlcjsKQEAgLTgyLDYgKzgzLDcgQEAgcHVibGljOgogCiAg
ICAgUmVmUHRyPEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlPiBhcHBsaWNhdGlvbkNhY2hlU3RvcmFn
ZTsKICAgICBSZWZQdHI8RGF0YWJhc2VQcm92aWRlcj4gZGF0YWJhc2VQcm92aWRlcjsKKyAgICBS
ZWZQdHI8UGx1Z2luSW5mb1Byb3ZpZGVyPiBwbHVnaW5JbmZvUHJvdmlkZXI7CiAgICAgUmVmUHRy
PFN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlcj4gc3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyOwogICAg
IFJlZlB0cjxVc2VyQ29udGVudFByb3ZpZGVyPiB1c2VyQ29udGVudFByb3ZpZGVyOwogICAgIFJl
ZlB0cjxWaXNpdGVkTGlua1N0b3JlPiB2aXNpdGVkTGlua1N0b3JlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGx1Z2lucy9ET01QbHVnaW5BcnJheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bHVnaW5zL0RPTVBsdWdpbkFycmF5LmNwcAppbmRleCAzODNiZTE2NDY1Nzc3ZTUzMTFkYmExYmZh
MDZhZjRmYzBlZWI4YzFkLi5jMWU0ZTZmYTljYjI5ZjVmYmIxNTkwNDU1M2YzOThkYzVjYWY0YmU0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL0RPTVBsdWdpbkFycmF5LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL0RPTVBsdWdpbkFycmF5LmNwcApAQCAtODMsOSAr
ODMsMTUgQEAgVmVjdG9yPEF0b21pY1N0cmluZz4gRE9NUGx1Z2luQXJyYXk6OnN1cHBvcnRlZFBy
b3BlcnR5TmFtZXMoKQogICAgIHJldHVybiBWZWN0b3I8QXRvbWljU3RyaW5nPigpOwogfQogCi12
b2lkIERPTVBsdWdpbkFycmF5OjpyZWZyZXNoKGJvb2wgcmVsb2FkKQordm9pZCBET01QbHVnaW5B
cnJheTo6cmVmcmVzaChib29sIHJlbG9hZFBhZ2VzKQogewotICAgIFBhZ2U6OnJlZnJlc2hQbHVn
aW5zKHJlbG9hZCk7CisgICAgaWYgKCFtX2ZyYW1lKQorICAgICAgICByZXR1cm47CisKKyAgICBp
ZiAoIW1fZnJhbWUtPnBhZ2UoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgUGFnZTo6cmVmcmVz
aFBsdWdpbnMocmVsb2FkUGFnZXMpOwogfQogCiBQbHVnaW5EYXRhKiBET01QbHVnaW5BcnJheTo6
cGx1Z2luRGF0YSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL0RP
TVBsdWdpbkFycmF5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL0RPTVBsdWdpbkFycmF5LmgK
aW5kZXggYzZmNzUyNDMyODYyOWQ0YmI5YjZlMGYyYzcwNjY5N2YyOGJiNzBiOC4uMzBjMGIwZmIz
MDBlYjAyYjNhMzg0ZjA1YThkZDEwYTJmMDQ5NWNkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGx1Z2lucy9ET01QbHVnaW5BcnJheS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMv
RE9NUGx1Z2luQXJyYXkuaApAQCAtNDEsNyArNDEsNyBAQCBwdWJsaWM6CiAgICAgUmVmUHRyPERP
TVBsdWdpbj4gbmFtZWRJdGVtKGNvbnN0IEF0b21pY1N0cmluZyYgcHJvcGVydHlOYW1lKTsKICAg
ICBWZWN0b3I8QXRvbWljU3RyaW5nPiBzdXBwb3J0ZWRQcm9wZXJ0eU5hbWVzKCk7CiAKLSAgICB2
b2lkIHJlZnJlc2goYm9vbCByZWxvYWQpOworICAgIHZvaWQgcmVmcmVzaChib29sIHJlbG9hZFBh
Z2VzKTsKIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBET01QbHVnaW5BcnJheShGcmFtZSopOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5EYXRhLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGF0YS5jcHAKaW5kZXggYzI1MzU4YTcxYTgzMTc4Zjg5
NDQ3ZjQ4OTlmOWVkZWFmODk0MzE4ZC4uYWU4YjRhYTNlZGEzMTY3ZTJhMDVkNGU4NTRiMGU3Yzdi
YTdhZTIzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5EYXRhLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkRhdGEuY3BwCkBAIC0yNiwyMyAr
MjYsMjAgQEAKIAogI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKICNpbmNsdWRlICJQYWdl
LmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1TdHJhdGVnaWVzLmgiCi0jaW5jbHVkZSAiUGx1Z2luU3Ry
YXRlZ3kuaCIKKyNpbmNsdWRlICJQbHVnaW5JbmZvUHJvdmlkZXIuaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1QbHVnaW5EYXRhOjpQbHVnaW5EYXRhKGNvbnN0IFBhZ2UqIHBhZ2UpCitQbHVn
aW5EYXRhOjpQbHVnaW5EYXRhKFBhZ2UmIHBhZ2UpCisgICAgOiBtX3BhZ2UocGFnZSkKIHsKLSAg
ICBBU1NFUlRfQVJHKHBhZ2UsIHBhZ2UpOwotCi0gICAgbV9wYWdlID0gcGFnZTsKICAgICBpbml0
UGx1Z2lucygpOwogfQogCiBWZWN0b3I8UGx1Z2luSW5mbz4gUGx1Z2luRGF0YTo6d2ViVmlzaWJs
ZVBsdWdpbnMoKSBjb25zdAogewogICAgIFZlY3RvcjxQbHVnaW5JbmZvPiBwbHVnaW5zOwotICAg
IHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wbHVnaW5TdHJhdGVneSgpLT5nZXRXZWJWaXNpYmxlUGx1
Z2luSW5mbyhtX3BhZ2UsIHBsdWdpbnMpOworICAgIG1fcGFnZS5wbHVnaW5JbmZvUHJvdmlkZXIo
KS5nZXRXZWJWaXNpYmxlUGx1Z2luSW5mbyhtX3BhZ2UsIHBsdWdpbnMpOwogICAgIHJldHVybiBw
bHVnaW5zOwogfQogCkBAIC03NiwxMSArNzMsMTEgQEAgc3RhdGljIGJvb2wgc2hvdWxkQmVQdWJs
aWNseVZpc2libGUoY29uc3QgUGx1Z2luSW5mbyYgcGx1Z2luKQogCiBWZWN0b3I8UGx1Z2luSW5m
bz4gUGx1Z2luRGF0YTo6cHVibGljbHlWaXNpYmxlUGx1Z2lucygpIGNvbnN0CiB7Ci0gICAgaWYg
KG1fcGFnZS0+c2hvd0FsbFBsdWdpbnMoKSkKKyAgICBpZiAobV9wYWdlLnNob3dBbGxQbHVnaW5z
KCkpCiAgICAgICAgIHJldHVybiB3ZWJWaXNpYmxlUGx1Z2lucygpOwogICAgIAogICAgIFZlY3Rv
cjxQbHVnaW5JbmZvPiBhbGxQbHVnaW5zOwotICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wbHVn
aW5TdHJhdGVneSgpLT5nZXRXZWJWaXNpYmxlUGx1Z2luSW5mbyhtX3BhZ2UsIGFsbFBsdWdpbnMp
OworICAgIG1fcGFnZS5wbHVnaW5JbmZvUHJvdmlkZXIoKS5nZXRXZWJWaXNpYmxlUGx1Z2luSW5m
byhtX3BhZ2UsIGFsbFBsdWdpbnMpOwogCiAgICAgVmVjdG9yPFBsdWdpbkluZm8+IHBsdWdpbnM7
CiAgICAgZm9yIChhdXRvJiYgcGx1Z2luIDogYWxsUGx1Z2lucykgewpAQCAtMTgxLDE2ICsxNzgs
MTEgQEAgYm9vbCBQbHVnaW5EYXRhOjpzdXBwb3J0c01pbWVUeXBlKGNvbnN0IFN0cmluZyYgbWlt
ZVR5cGUsIGNvbnN0IEFsbG93ZWRQbHVnaW5UeXAKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZv
aWQgUGx1Z2luRGF0YTo6cmVmcmVzaCgpCi17Ci0gICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBs
dWdpblN0cmF0ZWd5KCktPnJlZnJlc2hQbHVnaW5zKCk7Ci19Ci0KIHZvaWQgUGx1Z2luRGF0YTo6
aW5pdFBsdWdpbnMoKQogewogICAgIEFTU0VSVChtX3BsdWdpbnMuaXNFbXB0eSgpKTsKIAotICAg
IHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wbHVnaW5TdHJhdGVneSgpLT5nZXRQbHVnaW5JbmZvKG1f
cGFnZSwgbV9wbHVnaW5zKTsKKyAgICBtX3BhZ2UucGx1Z2luSW5mb1Byb3ZpZGVyKCkuZ2V0UGx1
Z2luSW5mbyhtX3BhZ2UsIG1fcGx1Z2lucyk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGF0YS5oIGIvU291cmNl
L1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5EYXRhLmgKaW5kZXggYjkyMjg5N2Y0YmIzYzUwMzAyZTFi
MGViZDc1N2VjYWY3OWExYTEwNy4uYjM2MzVhNDFjNmI1ZGM1ZjU5ODhlMTlmN2FjZmQzNjFkOWE4
YTY0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5EYXRhLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5EYXRhLmgKQEAgLTg2LDcgKzg2LDcgQEAg
aW5saW5lIGJvb2wgb3BlcmF0b3I9PShQbHVnaW5JbmZvJiBhLCBQbHVnaW5JbmZvJiBiKQogLy8g
RklYTUU6IG1lcmdlIHdpdGggUGx1Z2luRGF0YWJhc2UgaW4gdGhlIGZ1dHVyZQogY2xhc3MgUGx1
Z2luRGF0YSA6IHB1YmxpYyBSZWZDb3VudGVkPFBsdWdpbkRhdGE+IHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUmVmPFBsdWdpbkRhdGE+IGNyZWF0ZShjb25zdCBQYWdlKiBwYWdlKSB7IHJldHVybiBh
ZG9wdFJlZigqbmV3IFBsdWdpbkRhdGEocGFnZSkpOyB9CisgICAgc3RhdGljIFJlZjxQbHVnaW5E
YXRhPiBjcmVhdGUoUGFnZSYgcGFnZSkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBQbHVnaW5EYXRh
KHBhZ2UpKTsgfQogCiAgICAgY29uc3QgVmVjdG9yPFBsdWdpbkluZm8+JiBwbHVnaW5zKCkgY29u
c3QgeyByZXR1cm4gbV9wbHVnaW5zOyB9CiAgICAgVmVjdG9yPFBsdWdpbkluZm8+IHdlYlZpc2li
bGVQbHVnaW5zKCkgY29uc3Q7CkBAIC0xMDQsMjQgKzEwNCwxNSBAQCBwdWJsaWM6CiAKICAgICBX
RUJDT1JFX0VYUE9SVCBib29sIHN1cHBvcnRzTWltZVR5cGUoY29uc3QgU3RyaW5nJiBtaW1lVHlw
ZSwgY29uc3QgQWxsb3dlZFBsdWdpblR5cGVzKSBjb25zdDsKIAotICAgIHN0YXRpYyB2b2lkIHJl
ZnJlc2goKTsKLQogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBQbHVnaW5EYXRhKGNvbnN0IFBhZ2Uq
KTsKKyAgICBleHBsaWNpdCBQbHVnaW5EYXRhKFBhZ2UmKTsKICAgICB2b2lkIGluaXRQbHVnaW5z
KCk7CiAgICAgYm9vbCBnZXRQbHVnaW5JbmZvRm9yV2ViVmlzaWJsZU1pbWVUeXBlKGNvbnN0IFN0
cmluZyYgbWltZVR5cGUsIFBsdWdpbkluZm8mKSBjb25zdDsKICAgICB2b2lkIGdldE1pbWVzQW5k
UGx1Z2luSW5kaWNlcyhWZWN0b3I8TWltZUNsYXNzSW5mbz4mLCBWZWN0b3I8c2l6ZV90PiYpIGNv
bnN0OwogICAgIHZvaWQgZ2V0TWltZXNBbmRQbHVnaW5JbmRpY2llc0ZvclBsdWdpbnMoY29uc3Qg
VmVjdG9yPFBsdWdpbkluZm8+JiwgVmVjdG9yPE1pbWVDbGFzc0luZm8+JiwgVmVjdG9yPHNpemVf
dD4mKSBjb25zdDsKIAogcHJvdGVjdGVkOgotI2lmIGRlZmluZWQgRU5BQkxFX1dFQl9SRVBMQVkg
JiYgRU5BQkxFX1dFQl9SRVBMQVkKLSAgICBQbHVnaW5EYXRhKFZlY3RvcjxQbHVnaW5JbmZvPiBw
bHVnaW5zKQotICAgICAgICA6IG1fcGx1Z2lucyhwbHVnaW5zKQotICAgIHsKLSAgICB9Ci0jZW5k
aWYKLQotICAgIGNvbnN0IFBhZ2UqIG1fcGFnZTsKKyAgICBQYWdlJiBtX3BhZ2U7CiAgICAgVmVj
dG9yPFBsdWdpbkluZm8+IG1fcGx1Z2luczsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsdWdpbnMvUGx1Z2luSW5mb1Byb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsdWdp
bnMvUGx1Z2luSW5mb1Byb3ZpZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wOTMyYjkwMTFkZmY5MjljY2Rm
MzlmOWRiMjg3MDc5OTY2MDM5ZGU4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGx1Z2lucy9QbHVnaW5JbmZvUHJvdmlkZXIuY3BwCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGx1Z2luSW5mb1Byb3ZpZGVyLmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGx1Z2luSW5mb1Byb3ZpZGVyOjp+UGx1Z2luSW5m
b1Byb3ZpZGVyKCkKK3sKKyAgICBBU1NFUlQobV9wYWdlcy5pc0VtcHR5KCkpOworfQorCit2b2lk
IFBsdWdpbkluZm9Qcm92aWRlcjo6YWRkUGFnZShQYWdlJiBwYWdlKQoreworICAgIEFTU0VSVCgh
bV9wYWdlcy5jb250YWlucygmcGFnZSkpOworCisgICAgbV9wYWdlcy5hZGQoJnBhZ2UpOworfQor
Cit2b2lkIFBsdWdpbkluZm9Qcm92aWRlcjo6cmVtb3ZlUGFnZShQYWdlJiBwYWdlKQoreworICAg
IEFTU0VSVChtX3BhZ2VzLmNvbnRhaW5zKCZwYWdlKSk7CisKKyAgICBtX3BhZ2VzLnJlbW92ZSgm
cGFnZSk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2lu
SW5mb1Byb3ZpZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkluZm9Qcm92aWRl
ci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjBlY2ZjZTIxNjI4ZGMyMWE1YzVjYThlMWQ0OGY2NWQ3NjdmZTQ2YTQK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkluZm9Qcm92
aWRlci5oCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lu
Y2x1ZGUgIlBsdWdpbkRhdGEuaCIKKyNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2NsYXNzIFdFQkNPUkVfRVhQT1JUIFBsdWdpbkluZm9Qcm92aWRlciA6
IHB1YmxpYyBSZWZDb3VudGVkPFBsdWdpbkluZm9Qcm92aWRlcj4geworcHVibGljOgorICAgIFdF
QkNPUkVfRVhQT1JUIHZpcnR1YWwgflBsdWdpbkluZm9Qcm92aWRlcigpOworCisgICAgdm9pZCBy
ZWZyZXNoUGx1Z2lucyhib29sIHJlbG9hZFBhZ2VzKTsKKworICAgIHZvaWQgYWRkUGFnZShQYWdl
Jik7CisgICAgdm9pZCByZW1vdmVQYWdlKFBhZ2UmKTsKKworICAgIHZpcnR1YWwgdm9pZCByZWZy
ZXNoUGx1Z2lucygpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0UGx1Z2luSW5mbyhQYWdlJiwg
VmVjdG9yPFBsdWdpbkluZm8+JikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBnZXRXZWJWaXNpYmxl
UGx1Z2luSW5mbyhQYWdlJiwgVmVjdG9yPFBsdWdpbkluZm8+JikgPSAwOworI2lmIFBMQVRGT1JN
KE1BQykKKyAgICB2aXJ0dWFsIHZvaWQgc2V0UGx1Z2luTG9hZENsaWVudFBvbGljeShQbHVnaW5M
b2FkQ2xpZW50UG9saWN5LCBjb25zdCBTdHJpbmcmIGhvc3QsIGNvbnN0IFN0cmluZyYgYnVuZGxl
SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB2ZXJzaW9uU3RyaW5nKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIGNsZWFyUGx1Z2luQ2xpZW50UG9saWNpZXMoKSA9IDA7CisjZW5kaWYKKworcHJpdmF0
ZToKKyAgICBIYXNoU2V0PFBhZ2UqPiBtX3BhZ2VzOworfTsKKworfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVwbGF5L1NlcmlhbGl6YXRpb25NZXRob2RzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlcGxheS9TZXJpYWxpemF0aW9uTWV0aG9kcy5jcHAKaW5kZXggMzJiZDQ1MzI1ZDgwMGZm
ZmJlMWU3NTZhY2ZiN2MzYzc0M2IxMjdjZi4uNDg2MDViMjYxM2FlZTA4NmMxYjA4MzlhNzMwYTBj
YWQzOTUwYzI3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVwbGF5L1NlcmlhbGl6YXRp
b25NZXRob2RzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvU2VyaWFsaXphdGlvbk1l
dGhvZHMuY3BwCkBAIC00NDgsMjAgKzQ0OCwxMCBAQCBFbmNvZGVkVmFsdWUgRW5jb2RpbmdUcmFp
dHM8UGx1Z2luRGF0YT46OmVuY29kZVZhbHVlKFJlZlB0cjxQbHVnaW5EYXRhPiBpbnB1dCkKICAg
ICByZXR1cm4gZW5jb2RlZERhdGE7CiB9CiAKLWNsYXNzIERlc2VyaWFsaXplZFBsdWdpbkRhdGEg
OiBwdWJsaWMgUGx1Z2luRGF0YSB7Ci1wdWJsaWM6Ci0gICAgRGVzZXJpYWxpemVkUGx1Z2luRGF0
YShWZWN0b3I8UGx1Z2luSW5mbz4gcGx1Z2lucykKLSAgICAgICAgOiBQbHVnaW5EYXRhKHBsdWdp
bnMpCi0gICAgewotICAgIH0KLX07Ci0KLWJvb2wgRW5jb2RpbmdUcmFpdHM8UGx1Z2luRGF0YT46
OmRlY29kZVZhbHVlKEVuY29kZWRWYWx1ZSYgZW5jb2RlZERhdGEsIFJlZlB0cjxQbHVnaW5EYXRh
PiYgaW5wdXQpCitib29sIEVuY29kaW5nVHJhaXRzPFBsdWdpbkRhdGE+OjpkZWNvZGVWYWx1ZShF
bmNvZGVkVmFsdWUmIGVuY29kZWREYXRhLCBSZWZQdHI8UGx1Z2luRGF0YT4mKQogewotICAgIERF
Q09ERV9UWVBFX1dJVEhfS0VZKGVuY29kZWREYXRhLCBWZWN0b3I8UGx1Z2luSW5mbz4sIHBsdWdp
bnMpOwotCiAgICAgLy8gRklYTUU6IFRoaXMgbmVlZHMgdG8gd29yayBpbiB0ZXJtcyBvZiB3ZWIt
dmlzaWJsZSBwbHVnLWlucy4KLSAgICBpbnB1dCA9IGFkb3B0UmVmKG5ldyBEZXNlcmlhbGl6ZWRQ
bHVnaW5EYXRhKHBsdWdpbnMpKTsKKyAgICBERUNPREVfVFlQRV9XSVRIX0tFWShlbmNvZGVkRGF0
YSwgVmVjdG9yPFBsdWdpbkluZm8+LCBwbHVnaW5zKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybVdpbi5jbWFrZSBiL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm1XaW4uY21ha2UKaW5kZXggNjI4YjI3M2Y4MTcxODIyZDAxODZiNmUwNWE3NDZl
YTY4MzRlNzI2MC4uNDVmYTgyMDlkYWExMjI4ZmE2MmRjNmIxMWIyNDM1OTA0NTAzZjdkYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybVdpbi5jbWFrZQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1BsYXRmb3JtV2luLmNtYWtlCkBAIC0yNDYsNiArMjQ2LDggQEAgbGlzdChBUFBFTkQgV2Vi
S2l0X1NPVVJDRVNfV2ViQ29yZVN1cHBvcnQKICAgICB3aW4vV2ViQ29yZVN1cHBvcnQvV2ViSW5z
cGVjdG9yRGVsZWdhdGUuaAogICAgIHdpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0
ZWdpZXMuY3BwCiAgICAgd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5o
CisgICAgd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsdWdpbkluZm9Qcm92aWRlci5jcHAKKyAgICB3
aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLmgKICAgICB3aW4vV2ViQ29y
ZVN1cHBvcnQvV2ViVmlzaXRlZExpbmtTdG9yZS5jcHAKICAgICB3aW4vV2ViQ29yZVN1cHBvcnQv
V2ViVmlzaXRlZExpbmtTdG9yZS5oCiApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA5OTFjZTkyMTNlYjMyMTMzNTFhNWQzODY3OGY3NTM0
NGI2YjE1ODgzLi5kOTg4NDUxYWRhMGVmM2JlMjQwOTM3YmIyNTE1NGFjYjUxOGMwYTdlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE5
LDYgKzE5LDggQEAKIAkJMTQzMEMxMkQxQjJDNURGNzAwREVBMDFEIC8qIFdlYlZpZXdHcm91cC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQzMEMxMkIx
QjJDNURGNzAwREVBMDFEIC8qIFdlYlZpZXdHcm91cC5oICovOyB9OwogCQkxNEQ4MjUyRjBBRjk1
NTA5MDAwNEYwNTcgLyogV2ViQ2hyb21lQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNEQ4MjUyRDBBRjk1NTA5MDAwNEYwNTcgLyogV2ViQ2hy
b21lQ2xpZW50LmggKi87IH07CiAJCTE0RDgyNTMwMEFGOTU1MDkwMDA0RjA1NyAvKiBXZWJDaHJv
bWVDbGllbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxNEQ4MjUyRTBBRjk1NTA5MDAwNEYwNTcgLyogV2ViQ2hyb21lQ2xpZW50Lm1tICovOyB9Owor
CQkxQTA4RkVFMDFENTkzNzZFMDA4QkE4Q0IgLyogV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEwOEZFREUxRDU5
Mzc2RTAwOEJBOENCIC8qIFdlYlBsdWdpbkluZm9Qcm92aWRlci5tbSAqLzsgfTsKKwkJMUEwOEZF
RTExRDU5Mzc2RTAwOEJBOENCIC8qIFdlYlBsdWdpbkluZm9Qcm92aWRlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEwOEZFREYxRDU5Mzc2RTAwOEJB
OENCIC8qIFdlYlBsdWdpbkluZm9Qcm92aWRlci5oICovOyB9OwogCQkxQTJEQkU5RjBGMjUxRTNB
MDAzNkY4QTYgLyogUHJveHlJbnN0YW5jZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMUEyREJFOUQwRjI1MUUzQTAwMzZGOEE2IC8qIFByb3h5SW5zdGFu
Y2UuaCAqLzsgfTsKIAkJMUEyREJFQTAwRjI1MUUzQTAwMzZGOEE2IC8qIFByb3h5SW5zdGFuY2Uu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTJEQkU5
RTBGMjUxRTNBMDAzNkY4QTYgLyogUHJveHlJbnN0YW5jZS5tbSAqLzsgfTsKIAkJMUE0REY1MjIw
RUM4Qzc0RDAwNkJENEI0IC8qIFdlYk5ldHNjYXBlUGx1Z2luVmlldy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE0REY1MjAwRUM4Qzc0RDAwNkJENEI0
IC8qIFdlYk5ldHNjYXBlUGx1Z2luVmlldy5oICovOyB9OwpAQCAtNDc2LDYgKzQ3OCw4IEBACiAJ
CTE0MzBDMTJCMUIyQzVERjcwMERFQTAxRCAvKiBXZWJWaWV3R3JvdXAuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViVmlld0dyb3VwLmg7IHBhdGggPSBXZWJDb3JlU3VwcG9y
dC9XZWJWaWV3R3JvdXAuaDsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwogCQkxNEQ4MjUy
RDBBRjk1NTA5MDAwNEYwNTcgLyogV2ViQ2hyb21lQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXZWJDaHJvbWVDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMTREODI1MkUwQUY5NTUwOTAwMDRGMDU3IC8qIFdlYkNocm9tZUNsaWVudC5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkNocm9tZUNsaWVudC5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUEwOEZFREUxRDU5Mzc2RTAwOEJBOENC
IC8qIFdlYlBsdWdpbkluZm9Qcm92aWRlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFdlYlBsdWdpbkluZm9Qcm92aWRlci5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMUEwOEZFREYxRDU5Mzc2RTAwOEJBOENCIC8qIFdlYlBsdWdpbkluZm9Qcm92
aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJQbHVnaW5JbmZvUHJv
dmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUEyREJFOUQwRjI1MUUzQTAw
MzZGOEE2IC8qIFByb3h5SW5zdGFuY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUHJveHlJbnN0YW5jZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTJEQkU5
RTBGMjUxRTNBMDAzNkY4QTYgLyogUHJveHlJbnN0YW5jZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFByb3h5SW5zdGFuY2UubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTFBNERGNTIwMEVDOEM3NEQwMDZCRDRCNCAvKiBXZWJOZXRzY2FwZVBsdWdp
blZpZXcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViTmV0c2NhcGVQbHVn
aW5WaWV3Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTk3LDYgKzE2MDEsOCBA
QAogCQkJCTFBQjFGNzZEMUQxQjI2MEIwMDdDOUJEMSAvKiBXZWJQYXltZW50Q29vcmRpbmF0b3JD
bGllbnQubW0gKi8sCiAJCQkJMUFBODc5QjQxMUNCRTlCRjAwM0M2NjRGIC8qIFdlYlBsYXRmb3Jt
U3RyYXRlZ2llcy5oICovLAogCQkJCTFBQTg3OUI1MTFDQkU5QkYwMDNDNjY0RiAvKiBXZWJQbGF0
Zm9ybVN0cmF0ZWdpZXMubW0gKi8sCisJCQkJMUEwOEZFREUxRDU5Mzc2RTAwOEJBOENCIC8qIFdl
YlBsdWdpbkluZm9Qcm92aWRlci5tbSAqLywKKwkJCQkxQTA4RkVERjFENTkzNzZFMDA4QkE4Q0Ig
LyogV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLmggKi8sCiAJCQkJMUE2QTIwOEMxODg2MTU0NjAwRTUw
RjVGIC8qIFdlYlByb2dyZXNzVHJhY2tlckNsaWVudC5oICovLAogCQkJCTFBNkEyMDhCMTg4NjE1
NDYwMEU1MEY1RiAvKiBXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQubW0gKi8sCiAJCQkJRTRBRUY5
NzkxQzBERjRCQzAwQjAxNzI3IC8qIFdlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAgKi8sCkBA
IC0xNzk0LDYgKzE4MDAsNyBAQAogCQkJCTFDOENCMDdBMEFFOTgzMEMwMEIxRjZFOSAvKiBXZWJF
ZGl0aW5nRGVsZWdhdGVQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0QkY5OUY5MDBBRTA1
MEJDMDA4MTVDMkIgLyogV2ViRWRpdG9yQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlERDg5
NjgyMDA5QUE4NzI0MDA5N0U3RjAgLyogV2ViRWxlbWVudERpY3Rpb25hcnkuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTFBMDhGRUUxMUQ1OTM3NkUwMDhCQThDQiAvKiBXZWJQbHVnaW5JbmZvUHJvdmlk
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUExMEMxRDY4MTgyMDMwMEUwMDM2ODgzQSAvKiBXZWJG
aXhlZFBvc2l0aW9uQ29udGVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTEwQzFENkExODIwMzAw
RTAwMzY4ODNBIC8qIFdlYkZpeGVkUG9zaXRpb25Db250ZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTkzOTgxMDUyMDgyNEJGMDEwMDhERjAzOCAvKiBXZWJGb3JtRGVsZWdhdGUuaCBp
biBIZWFkZXJzICovLApAQCAtMjI2OSw2ICsyMjc2LDcgQEAKIAkJCQkxQUFGNUNGMTBFRERFNTg2
MDA4RDg4M0QgLyogV2ViS2l0UGx1Z2luSG9zdC5kZWZzIGluIFNvdXJjZXMgKi8sCiAJCQkJOTM5
ODEwQzUwODI0QkYwMTAwOERGMDM4IC8qIFdlYktpdFN0YXRpc3RpY3MubSBpbiBTb3VyY2VzICov
LAogCQkJCTFDMEQ0MDg4MEFDMUM4RjQwMDA5QzExMyAvKiBXZWJLaXRWZXJzaW9uQ2hlY2tzLm0g
aW4gU291cmNlcyAqLywKKwkJCQkxQTA4RkVFMDFENTkzNzZFMDA4QkE4Q0IgLyogV2ViUGx1Z2lu
SW5mb1Byb3ZpZGVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJRUQ1Qjk1MjQxMTFCNzI1QTAwNDcy
Mjk4IC8qIFdlYkxvY2FsaXphYmxlU3RyaW5ncy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDNDJE
MzREMTMxRUQzODgwMDc1RkE0QiAvKiBXZWJMb2NhbGl6YWJsZVN0cmluZ3NJbnRlcm5hbC5tbSBp
biBTb3VyY2VzICovLAogCQkJCTA3MkU1RjQ2MUFCRjg4NzUwMDAzQjE2NCAvKiBXZWJNZWRpYVBs
YXliYWNrVGFyZ2V0UGlja2VyLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbHVnaW5JbmZvUHJvdmlkZXIuaCBiL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsdWdpbkluZm9Qcm92aWRlci5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjc2OWY5NzYzODY0MGVjZDcyZWFiYjk1MzU2ODE3ZThlNTdhNDk0ZjAKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbHVnaW5JbmZv
UHJvdmlkZXIuaApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8V2ViQ29y
ZS9QbHVnaW5JbmZvUHJvdmlkZXIuaD4KKworY2xhc3MgV2ViUGx1Z2luSW5mb1Byb3ZpZGVyIGZp
bmFsIDogcHVibGljIFdlYkNvcmU6OlBsdWdpbkluZm9Qcm92aWRlciB7CisgICAgZnJpZW5kIGNs
YXNzIE5ldmVyRGVzdHJveWVkPFdlYlBsdWdpbkluZm9Qcm92aWRlcj47CisKK3B1YmxpYzoKKyAg
ICBzdGF0aWMgV2ViUGx1Z2luSW5mb1Byb3ZpZGVyJiBzaW5nbGV0b24oKTsKKyAgICB2aXJ0dWFs
IH5XZWJQbHVnaW5JbmZvUHJvdmlkZXIoKTsKKworcHJpdmF0ZToKKyAgICB2b2lkIHJlZnJlc2hQ
bHVnaW5zKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBnZXRQbHVnaW5JbmZvKFdlYkNvcmU6OlBhZ2Um
LCBWZWN0b3I8V2ViQ29yZTo6UGx1Z2luSW5mbz4mKSBvdmVycmlkZTsKKyAgICB2b2lkIGdldFdl
YlZpc2libGVQbHVnaW5JbmZvKFdlYkNvcmU6OlBhZ2UmLCBWZWN0b3I8V2ViQ29yZTo6UGx1Z2lu
SW5mbz4mKSBvdmVycmlkZTsKKyNpZiBQTEFURk9STShNQUMpCisgICAgdm9pZCBzZXRQbHVnaW5M
b2FkQ2xpZW50UG9saWN5KFdlYkNvcmU6OlBsdWdpbkxvYWRDbGllbnRQb2xpY3ksIGNvbnN0IFN0
cmluZyYgaG9zdCwgY29uc3QgU3RyaW5nJiBidW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcm
IHZlcnNpb25TdHJpbmcpIG92ZXJyaWRlOworICAgIHZvaWQgY2xlYXJQbHVnaW5DbGllbnRQb2xp
Y2llcygpIG92ZXJyaWRlOworI2VuZGlmCisKKyAgICBXZWJQbHVnaW5JbmZvUHJvdmlkZXIoKTsK
K307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbHVn
aW5JbmZvUHJvdmlkZXIubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQ
bHVnaW5JbmZvUHJvdmlkZXIubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOThkODA1YTFlNWVjNDlmYWE3MGM4Yzk5
YzBhOWQwMGNjNzBhNzAzMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYlBsdWdpbkluZm9Qcm92aWRlci5tbQpAQCAtMCwwICsxLDczIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2ltcG9ydCAiV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLmgiCisKKy8vIEZJWE1F
OiBXZSBzaG91bGRuJ3QgY2FsbCBvdXQgdG8gdGhlIHBsYXRmb3JtIHN0cmF0ZWd5IGZvciB0aGlz
LgorI2ltcG9ydCAiV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgiCisjaW1wb3J0IDxXZWJDb3JlL1Bs
dWdpblN0cmF0ZWd5Lmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitXZWJQbHVnaW5J
bmZvUHJvdmlkZXImIFdlYlBsdWdpbkluZm9Qcm92aWRlcjo6c2luZ2xldG9uKCkKK3sKKyAgICBz
dGF0aWMgV2ViUGx1Z2luSW5mb1Byb3ZpZGVyJiBwbHVnaW5JbmZvUHJvdmlkZXIgPSBhZG9wdFJl
ZigqbmV3IFdlYlBsdWdpbkluZm9Qcm92aWRlcikubGVha1JlZigpOworCisgICAgcmV0dXJuIHBs
dWdpbkluZm9Qcm92aWRlcjsKK30KKworV2ViUGx1Z2luSW5mb1Byb3ZpZGVyOjpXZWJQbHVnaW5J
bmZvUHJvdmlkZXIoKQoreworfQorCitXZWJQbHVnaW5JbmZvUHJvdmlkZXI6On5XZWJQbHVnaW5J
bmZvUHJvdmlkZXIoKQoreworfQorCit2b2lkIFdlYlBsdWdpbkluZm9Qcm92aWRlcjo6cmVmcmVz
aFBsdWdpbnMoKQoreworICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wbHVnaW5TdHJhdGVneSgp
LT5yZWZyZXNoUGx1Z2lucygpOworfQorCit2b2lkIFdlYlBsdWdpbkluZm9Qcm92aWRlcjo6Z2V0
UGx1Z2luSW5mbyhXZWJDb3JlOjpQYWdlJiBwYWdlLCBWZWN0b3I8V2ViQ29yZTo6UGx1Z2luSW5m
bz4mIHBsdWdpbnMpCit7CisgICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBsdWdpblN0cmF0ZWd5
KCktPmdldFBsdWdpbkluZm8oJnBhZ2UsIHBsdWdpbnMpOworfQorCit2b2lkIFdlYlBsdWdpbklu
Zm9Qcm92aWRlcjo6Z2V0V2ViVmlzaWJsZVBsdWdpbkluZm8oV2ViQ29yZTo6UGFnZSYgcGFnZSwg
VmVjdG9yPFdlYkNvcmU6OlBsdWdpbkluZm8+JiBwbHVnaW5zKQoreworICAgIHBsYXRmb3JtU3Ry
YXRlZ2llcygpLT5wbHVnaW5TdHJhdGVneSgpLT5nZXRXZWJWaXNpYmxlUGx1Z2luSW5mbygmcGFn
ZSwgcGx1Z2lucyk7Cit9CisKKyNpZiBQTEFURk9STShNQUMpCit2b2lkIFdlYlBsdWdpbkluZm9Q
cm92aWRlcjo6c2V0UGx1Z2luTG9hZENsaWVudFBvbGljeShXZWJDb3JlOjpQbHVnaW5Mb2FkQ2xp
ZW50UG9saWN5LCBjb25zdCBTdHJpbmcmIGhvc3QsIGNvbnN0IFN0cmluZyYgYnVuZGxlSWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiB2ZXJzaW9uU3RyaW5nKQoreworfQorCit2b2lkIFdlYlBsdWdp
bkluZm9Qcm92aWRlcjo6Y2xlYXJQbHVnaW5DbGllbnRQb2xpY2llcygpCit7Cit9CisjZW5kaWYK
KwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IDZmODdiNDA4MjVkYTY5Mzkw
MzE5NGE5MDY2YmY3NzE4OWMzNTE5NzcuLjM2NGNiNTQ0MjBjYTY1ZGIwNjZmNjg3MDYwMTEzZWM0
OWVkNDJiMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTkyLDYgKzky
LDcgQEAKICNpbXBvcnQgIldlYlBheW1lbnRDb29yZGluYXRvckNsaWVudC5oIgogI2ltcG9ydCAi
V2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgiCiAjaW1wb3J0ICJXZWJQbHVnaW5EYXRhYmFzZS5oIgor
I2ltcG9ydCAiV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLmgiCiAjaW1wb3J0ICJXZWJQb2xpY3lEZWxl
Z2F0ZS5oIgogI2ltcG9ydCAiV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgiCiAjaW1wb3J0ICJX
ZWJQcmVmZXJlbmNlc1ByaXZhdGUuaCIKQEAgLTEwMTgsNiArMTAxOSw3IEBAIHN0YXRpYyB2b2lk
IFdlYktpdEluaXRpYWxpemVHYW1lcGFkUHJvdmlkZXJJZk5lY2Vzc2FyeSgpCiAgICAgcGFnZUNv
bmZpZ3VyYXRpb24ucHJvZ3Jlc3NUcmFja2VyQ2xpZW50ID0gbmV3IFdlYlByb2dyZXNzVHJhY2tl
ckNsaWVudChzZWxmKTsKICAgICBwYWdlQ29uZmlndXJhdGlvbi5hcHBsaWNhdGlvbkNhY2hlU3Rv
cmFnZSA9ICZ3ZWJBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZSgpOwogICAgIHBhZ2VDb25maWd1cmF0
aW9uLmRhdGFiYXNlUHJvdmlkZXIgPSAmV2ViRGF0YWJhc2VQcm92aWRlcjo6c2luZ2xldG9uKCk7
CisgICAgcGFnZUNvbmZpZ3VyYXRpb24ucGx1Z2luSW5mb1Byb3ZpZGVyID0gJldlYlBsdWdpbklu
Zm9Qcm92aWRlcjo6c2luZ2xldG9uKCk7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uc3RvcmFnZU5h
bWVzcGFjZVByb3ZpZGVyID0gJl9wcml2YXRlLT5ncm91cC0+c3RvcmFnZU5hbWVzcGFjZVByb3Zp
ZGVyKCk7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24udXNlckNvbnRlbnRQcm92aWRlciA9ICZfcHJp
dmF0ZS0+Z3JvdXAtPnVzZXJDb250ZW50Q29udHJvbGxlcigpOwogICAgIHBhZ2VDb25maWd1cmF0
aW9uLnZpc2l0ZWRMaW5rU3RvcmUgPSAmX3ByaXZhdGUtPmdyb3VwLT52aXNpdGVkTGlua1N0b3Jl
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbHVn
aW5JbmZvUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2Vi
UGx1Z2luSW5mb1Byb3ZpZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYzQwNmU2MmE4NWM0MWEwMDE5MzA0
M2Q0YzgwODU0NzZkMTJiM2UxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC93aW4v
V2ViQ29yZVN1cHBvcnQvV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLmNwcApAQCAtMCwwICsxLDYyIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgIldlYlBsdWdpbkluZm9Qcm92aWRlci5oIgorCisvLyBG
SVhNRTogV2Ugc2hvdWxkbid0IGNhbGwgb3V0IHRvIHRoZSBwbGF0Zm9ybSBzdHJhdGVneSBmb3Ig
dGhpcy4KKyNpbmNsdWRlIDxXZWJDb3JlL1BsdWdpblN0cmF0ZWd5Lmg+CisjaW5jbHVkZSAiV2Vi
UGxhdGZvcm1TdHJhdGVnaWVzLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitXZWJQ
bHVnaW5JbmZvUHJvdmlkZXImIFdlYlBsdWdpbkluZm9Qcm92aWRlcjo6c2luZ2xldG9uKCkKK3sK
KyAgICBzdGF0aWMgV2ViUGx1Z2luSW5mb1Byb3ZpZGVyJiBwbHVnaW5JbmZvUHJvdmlkZXIgPSBh
ZG9wdFJlZigqbmV3IFdlYlBsdWdpbkluZm9Qcm92aWRlcikubGVha1JlZigpOworCisgICAgcmV0
dXJuIHBsdWdpbkluZm9Qcm92aWRlcjsKK30KKworV2ViUGx1Z2luSW5mb1Byb3ZpZGVyOjpXZWJQ
bHVnaW5JbmZvUHJvdmlkZXIoKQoreworfQorCitXZWJQbHVnaW5JbmZvUHJvdmlkZXI6On5XZWJQ
bHVnaW5JbmZvUHJvdmlkZXIoKQoreworfQorCit2b2lkIFdlYlBsdWdpbkluZm9Qcm92aWRlcjo6
cmVmcmVzaFBsdWdpbnMoKQoreworICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wbHVnaW5TdHJh
dGVneSgpLT5yZWZyZXNoUGx1Z2lucygpOworfQorCit2b2lkIFdlYlBsdWdpbkluZm9Qcm92aWRl
cjo6Z2V0UGx1Z2luSW5mbyhXZWJDb3JlOjpQYWdlJiBwYWdlLCBWZWN0b3I8V2ViQ29yZTo6UGx1
Z2luSW5mbz4mIHBsdWdpbnMpCit7CisgICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBsdWdpblN0
cmF0ZWd5KCktPmdldFBsdWdpbkluZm8oJnBhZ2UsIHBsdWdpbnMpOworfQorCit2b2lkIFdlYlBs
dWdpbkluZm9Qcm92aWRlcjo6Z2V0V2ViVmlzaWJsZVBsdWdpbkluZm8oV2ViQ29yZTo6UGFnZSYg
cGFnZSwgVmVjdG9yPFdlYkNvcmU6OlBsdWdpbkluZm8+JiBwbHVnaW5zKQoreworICAgIHBsYXRm
b3JtU3RyYXRlZ2llcygpLT5wbHVnaW5TdHJhdGVneSgpLT5nZXRXZWJWaXNpYmxlUGx1Z2luSW5m
bygmcGFnZSwgcGx1Z2lucyk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJD
b3JlU3VwcG9ydC9XZWJQbHVnaW5JbmZvUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQvd2luL1dl
YkNvcmVTdXBwb3J0L1dlYlBsdWdpbkluZm9Qcm92aWRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE4MTVjYzg5
M2NiY2NjNmJlOWRhMGVjZjkwZGI4NTY0NjhiNGUyMTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbHVnaW5JbmZvUHJvdmlkZXIuaApAQCAt
MCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxXZWJD
b3JlL1BsdWdpbkluZm9Qcm92aWRlci5oPgorCitjbGFzcyBXZWJQbHVnaW5JbmZvUHJvdmlkZXIg
ZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6UGx1Z2luSW5mb1Byb3ZpZGVyIHsKKyAgICBmcmllbmQg
Y2xhc3MgTmV2ZXJEZXN0cm95ZWQ8V2ViUGx1Z2luSW5mb1Byb3ZpZGVyPjsKKworcHVibGljOgor
ICAgIHN0YXRpYyBXZWJQbHVnaW5JbmZvUHJvdmlkZXImIHNpbmdsZXRvbigpOworICAgIHZpcnR1
YWwgfldlYlBsdWdpbkluZm9Qcm92aWRlcigpOworCitwcml2YXRlOgorICAgIHZvaWQgcmVmcmVz
aFBsdWdpbnMoKSBvdmVycmlkZTsKKyAgICB2b2lkIGdldFBsdWdpbkluZm8oV2ViQ29yZTo6UGFn
ZSYsIFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiYpIG92ZXJyaWRlOworICAgIHZvaWQgZ2V0
V2ViVmlzaWJsZVBsdWdpbkluZm8oV2ViQ29yZTo6UGFnZSYsIFZlY3RvcjxXZWJDb3JlOjpQbHVn
aW5JbmZvPiYpIG92ZXJyaWRlOworI2lmIFBMQVRGT1JNKE1BQykKKyAgICB2b2lkIHNldFBsdWdp
bkxvYWRDbGllbnRQb2xpY3koV2ViQ29yZTo6UGx1Z2luTG9hZENsaWVudFBvbGljeSwgY29uc3Qg
U3RyaW5nJiBob3N0LCBjb25zdCBTdHJpbmcmIGJ1bmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmlu
ZyYgdmVyc2lvblN0cmluZykgb3ZlcnJpZGU7CisgICAgdm9pZCBjbGVhclBsdWdpbkNsaWVudFBv
bGljaWVzKCkgb3ZlcnJpZGU7CisjZW5kaWYKKworICAgIFdlYlBsdWdpbkluZm9Qcm92aWRlcigp
OworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCAzNDFmNDFlZjI4MDZjNzRjNWRkYWZlZTU1MjVmN2RkZmM5NjQwZTgxLi4yZGM4
ZjkwYjk3Zjg2MGRlZjM4MjM5NWU5NDc1NjExNTM0ZDUyYWNhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMzQsNiArMTM0LDcg
QEAKIAkJMUEwN0QyRjkxOTE5QjNBOTAwRUNEQTE2IC8qIG1lc3NhZ2VzLnB5IGluIENvcHkgTWVz
c2FnZSBHZW5lcmF0aW9uIFNjcmlwdHMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEZDMDg1NkYxODdDRTBBOTAwNzgwRDg2IC8qIG1lc3NhZ2VzLnB5ICovOyB9OwogCQkxQTA3
RDJGQTE5MTlCM0E5MDBFQ0RBMTYgLyogbW9kZWwucHkgaW4gQ29weSBNZXNzYWdlIEdlbmVyYXRp
b24gU2NyaXB0cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkMwODU3MDE4
N0NFMEE5MDA3ODBEODYgLyogbW9kZWwucHkgKi87IH07CiAJCTFBMDdEMkZCMTkxOUIzQTkwMEVD
REExNiAvKiBwYXJzZXIucHkgaW4gQ29weSBNZXNzYWdlIEdlbmVyYXRpb24gU2NyaXB0cyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkMwODU3MTE4N0NFMEE5MDA3ODBEODYg
LyogcGFyc2VyLnB5ICovOyB9OworCQkxQTA4RkVFNDFENTkzRTJBMDA4QkE4Q0IgLyogV2ViUGx1
Z2luSW5mb1Byb3ZpZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDFBMDhGRUUyMUQ1OTNDRjEwMDhCQThDQiAvKiBXZWJQbHVnaW5JbmZvUHJvdmlk
ZXIuY3BwICovOyB9OwogCQkxQTBFQzYwMzEyNEE5RjJDMDA3RUY0QTUgLyogUGx1Z2luUHJvY2Vz
c01hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDFBMEVDNjAxMTI0QTlGMkMwMDdFRjRBNSAvKiBQbHVnaW5Qcm9jZXNzTWFuYWdlci5oICovOyB9
OwogCQkxQTBFQzYwNDEyNEE5RjJDMDA3RUY0QTUgLyogUGx1Z2luUHJvY2Vzc01hbmFnZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEwRUM2MDIx
MjRBOUYyQzAwN0VGNEE1IC8qIFBsdWdpblByb2Nlc3NNYW5hZ2VyLmNwcCAqLzsgfTsKIAkJMUEw
RUM2QzAxMjRCQkQ5QjAwN0VGNEE1IC8qIFBsdWdpblByb2Nlc3NNZXNzYWdlcy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEwRUM2QkUxMjRCQkQ5QjAw
N0VGNEE1IC8qIFBsdWdpblByb2Nlc3NNZXNzYWdlcy5oICovOyB9OwpAQCAtMjA5Miw2ICsyMDkz
LDggQEAKIAkJMUEwNDNGNjcxMjUxNEQ4QjAwRkZCRkI1IC8qIFdlYlByb2Nlc3NDb25uZWN0aW9u
TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFdlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMUEwNDNGNjgxMjUxNEQ4QjAwRkZCRkI1IC8qIFdlYlByb2Nlc3NDb25u
ZWN0aW9uTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkx
QTA0RjYxNzFBNEEzQTdBMDBBMjFCNkUgLyogV2ViUHJvY2Vzc1Byb3h5Q29jb2EubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJQcm9jZXNzUHJveHlDb2NvYS5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUEwOEZFRTIxRDU5M0NGMTAwOEJBOENC
IC8qIFdlYlBsdWdpbkluZm9Qcm92aWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBXZWJQbHVnaW5JbmZvUHJvdmlkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkxQTA4RkVFMzFENTkzQ0YxMDA4QkE4Q0IgLyogV2ViUGx1Z2luSW5mb1Byb3Zp
ZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlBsdWdpbkluZm9Qcm92
aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTBFQzYwMTEyNEE5RjJDMDA3
RUY0QTUgLyogUGx1Z2luUHJvY2Vzc01hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUGx1Z2luUHJvY2Vzc01hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMUEwRUM2MDIxMjRBOUYyQzAwN0VGNEE1IC8qIFBsdWdpblByb2Nlc3NNYW5hZ2VyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBsdWdpblByb2Nlc3NNYW5h
Z2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUEwRUM2QjExMjRCQkQzNjAw
N0VGNEE1IC8qIFBsdWdpblByb2Nlc3MubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gUGx1Z2luUHJvY2Vzcy5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTQzNzIsNiArNDM3NSw4IEBACiAJCQkJMUE4RUZBNUIxMjUyQjdDRTAwRjcwNjdGIC8qIFBs
dWdpblByb3h5Lm1lc3NhZ2VzLmluICovLAogCQkJCTFBNkZCN0FDMTFFNjRCNjgwMERCMTM3MSAv
KiBQbHVnaW5WaWV3LmNwcCAqLywKIAkJCQkxQTZGQjdBRDExRTY0QjY4MDBEQjEzNzEgLyogUGx1
Z2luVmlldy5oICovLAorCQkJCTFBMDhGRUUyMUQ1OTNDRjEwMDhCQThDQiAvKiBXZWJQbHVnaW5J
bmZvUHJvdmlkZXIuY3BwICovLAorCQkJCTFBMDhGRUUzMUQ1OTNDRjEwMDhCQThDQiAvKiBXZWJQ
bHVnaW5JbmZvUHJvdmlkZXIuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gUGx1Z2luczsKIAkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC05MTMyLDYgKzkxMzcsNyBAQAogCQkJCTFBMkQ4MkE2
MTI3RjRFQUIwMDFFQjk2MiAvKiBOUE9iamVjdFByb3h5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTFBMkQ4MkE4MTI3RjRFQUIwMDFFQjk2MiAvKiBOUFJlbW90ZU9iamVjdE1hcC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkxQTIxNjFCMTExRjM3NjY0MDA4QUQwRjUgLyogTlBSdW50aW1lT2JqZWN0
TWFwLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFBMDhGRUU0MUQ1OTNFMkEwMDhCQThDQiAvKiBX
ZWJQbHVnaW5JbmZvUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEyMTYyQjAxMUYz
ODk3MTAwOEFEMEY1IC8qIE5QUnVudGltZVV0aWxpdGllcy5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkxQTJEODRBNDEyN0Y2QUQxMDAxRUI5NjIgLyogTlBWYXJpYW50RGF0YS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlCQzhBQ0ExNDE2NjcwRDg5MDA0QzE5NDEgLyogT2JqQ09iamVjdEdyYXBoLm1t
IGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvUGx1Z2lucy9XZWJQbHVnaW5JbmZvUHJvdmlkZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhmNTZkZGUx
MGY4YWEyOTY3OWU1M2IyMTIwMzdhMDYwNTQ5YzRlNmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLmNwcApA
QCAtMCwwICsxLDc3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIldlYlBsdWdpbkluZm9Qcm92aWRlci5oIgorCisvLyBGSVhNRTogV2Ugc2hvdWxkbid0IGNh
bGwgb3V0IHRvIHRoZSBwbGF0Zm9ybSBzdHJhdGVneSBmb3IgdGhpcy4KKyNpbmNsdWRlICJXZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1BsdWdpblN0cmF0ZWd5Lmg+
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJQbHVnaW5JbmZvUHJvdmlkZXImIFdlYlBsdWdp
bkluZm9Qcm92aWRlcjo6c2luZ2xldG9uKCkKK3sKKyAgICBzdGF0aWMgV2ViUGx1Z2luSW5mb1By
b3ZpZGVyJiBwbHVnaW5JbmZvUHJvdmlkZXIgPSBhZG9wdFJlZigqbmV3IFdlYlBsdWdpbkluZm9Q
cm92aWRlcikubGVha1JlZigpOworCisgICAgcmV0dXJuIHBsdWdpbkluZm9Qcm92aWRlcjsKK30K
KworV2ViUGx1Z2luSW5mb1Byb3ZpZGVyOjpXZWJQbHVnaW5JbmZvUHJvdmlkZXIoKQoreworfQor
CitXZWJQbHVnaW5JbmZvUHJvdmlkZXI6On5XZWJQbHVnaW5JbmZvUHJvdmlkZXIoKQoreworfQor
Cit2b2lkIFdlYlBsdWdpbkluZm9Qcm92aWRlcjo6cmVmcmVzaFBsdWdpbnMoKQoreworICAgIFdl
YkNvcmU6OnBsYXRmb3JtU3RyYXRlZ2llcygpLT5wbHVnaW5TdHJhdGVneSgpLT5yZWZyZXNoUGx1
Z2lucygpOworfQorCit2b2lkIFdlYlBsdWdpbkluZm9Qcm92aWRlcjo6Z2V0UGx1Z2luSW5mbyhX
ZWJDb3JlOjpQYWdlJiBwYWdlLCBWZWN0b3I8V2ViQ29yZTo6UGx1Z2luSW5mbz4mIHBsdWdpbnMp
Cit7CisgICAgV2ViQ29yZTo6cGxhdGZvcm1TdHJhdGVnaWVzKCktPnBsdWdpblN0cmF0ZWd5KCkt
PmdldFBsdWdpbkluZm8oJnBhZ2UsIHBsdWdpbnMpOworfQorCit2b2lkIFdlYlBsdWdpbkluZm9Q
cm92aWRlcjo6Z2V0V2ViVmlzaWJsZVBsdWdpbkluZm8oV2ViQ29yZTo6UGFnZSYgcGFnZSwgVmVj
dG9yPFdlYkNvcmU6OlBsdWdpbkluZm8+JiBwbHVnaW5zKQoreworICAgIFdlYkNvcmU6OnBsYXRm
b3JtU3RyYXRlZ2llcygpLT5wbHVnaW5TdHJhdGVneSgpLT5nZXRXZWJWaXNpYmxlUGx1Z2luSW5m
bygmcGFnZSwgcGx1Z2lucyk7Cit9CisKKyNpZiBQTEFURk9STShNQUMpCit2b2lkIFdlYlBsdWdp
bkluZm9Qcm92aWRlcjo6c2V0UGx1Z2luTG9hZENsaWVudFBvbGljeShXZWJDb3JlOjpQbHVnaW5M
b2FkQ2xpZW50UG9saWN5IHBsdWdpbkxvYWRDbGllbnRQb2xpY3ksIGNvbnN0IFN0cmluZyYgaG9z
dCwgY29uc3QgU3RyaW5nJiBidW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHZlcnNpb25T
dHJpbmcpCit7CisgICAgV2ViQ29yZTo6cGxhdGZvcm1TdHJhdGVnaWVzKCktPnBsdWdpblN0cmF0
ZWd5KCktPnNldFBsdWdpbkxvYWRDbGllbnRQb2xpY3kocGx1Z2luTG9hZENsaWVudFBvbGljeSwg
aG9zdCwgYnVuZGxlSWRlbnRpZmllciwgdmVyc2lvblN0cmluZyk7Cit9CisKK3ZvaWQgV2ViUGx1
Z2luSW5mb1Byb3ZpZGVyOjpjbGVhclBsdWdpbkNsaWVudFBvbGljaWVzKCkKK3sKKyAgICBXZWJD
b3JlOjpwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGx1Z2luU3RyYXRlZ3koKS0+Y2xlYXJQbHVnaW5D
bGllbnRQb2xpY2llcygpOworfQorI2VuZGlmCisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9XZWJQbHVnaW5JbmZvUHJvdmlkZXIuaCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9XZWJQbHVnaW5JbmZvUHJvdmlkZXIuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi43OWMwZGVkMGNmMmM1Yjc4NGY2ZmIxNWIzYTRlOTM4ODMwZWRhMzJiCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1dlYlBsdWdpbkluZm9Q
cm92aWRlci5oCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2luY2x1ZGUgPFdlYkNvcmUvUGx1Z2luSW5mb1Byb3ZpZGVyLmg+CisKK25hbWVzcGFjZSBXZWJL
aXQgeworCitjbGFzcyBXZWJQbHVnaW5JbmZvUHJvdmlkZXIgZmluYWwgOiBwdWJsaWMgV2ViQ29y
ZTo6UGx1Z2luSW5mb1Byb3ZpZGVyIHsKKyAgICBmcmllbmQgY2xhc3MgTmV2ZXJEZXN0cm95ZWQ8
V2ViUGx1Z2luSW5mb1Byb3ZpZGVyPjsKKworcHVibGljOgorICAgIHN0YXRpYyBXZWJQbHVnaW5J
bmZvUHJvdmlkZXImIHNpbmdsZXRvbigpOworICAgIHZpcnR1YWwgfldlYlBsdWdpbkluZm9Qcm92
aWRlcigpOworCitwcml2YXRlOgorICAgIHZvaWQgcmVmcmVzaFBsdWdpbnMoKSBvdmVycmlkZTsK
KyAgICB2b2lkIGdldFBsdWdpbkluZm8oV2ViQ29yZTo6UGFnZSYsIFZlY3RvcjxXZWJDb3JlOjpQ
bHVnaW5JbmZvPiYpIG92ZXJyaWRlOworICAgIHZvaWQgZ2V0V2ViVmlzaWJsZVBsdWdpbkluZm8o
V2ViQ29yZTo6UGFnZSYsIFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiYpIG92ZXJyaWRlOwor
I2lmIFBMQVRGT1JNKE1BQykKKyAgICB2b2lkIHNldFBsdWdpbkxvYWRDbGllbnRQb2xpY3koV2Vi
Q29yZTo6UGx1Z2luTG9hZENsaWVudFBvbGljeSwgY29uc3QgU3RyaW5nJiBob3N0LCBjb25zdCBT
dHJpbmcmIGJ1bmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdmVyc2lvblN0cmluZykgb3Zl
cnJpZGU7CisgICAgdm9pZCBjbGVhclBsdWdpbkNsaWVudFBvbGljaWVzKCkgb3ZlcnJpZGU7Cisj
ZW5kaWYKKworICAgIFdlYlBsdWdpbkluZm9Qcm92aWRlcigpOworfTsKKworfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDNiMzVlYWExOWEw
NTJiNGMyMDkzMTU2NGUwYTVkNzZkOWM1OWY3YzQuLjk5NjkwNjY3M2Q0ZTA1ZDQxZGI3OTI5ZTVm
YjMwOTliNWYxMjAyOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKQEAgLTk2LDYgKzk2LDcgQEAKICNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNz
YWdlcy5oIgogI2luY2x1ZGUgIldlYlBheW1lbnRDb29yZGluYXRvci5oIgogI2luY2x1ZGUgIldl
YlBsdWdJbkNsaWVudC5oIgorI2luY2x1ZGUgIldlYlBsdWdpbkluZm9Qcm92aWRlci5oIgogI2lu
Y2x1ZGUgIldlYlBvcHVwTWVudS5oIgogI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzRGVmaW5pdGlv
bnMuaCIKICNpbmNsdWRlICJXZWJQcmVmZXJlbmNlc0tleXMuaCIKQEAgLTQxMSw2ICs0MTIsNyBA
QCBXZWJQYWdlOjpXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgV2ViUGFnZUNyZWF0aW9u
UGFyYW1ldGVycyYgcGFyYW1ldGVycykKIAogICAgIHBhZ2VDb25maWd1cmF0aW9uLmFwcGxpY2F0
aW9uQ2FjaGVTdG9yYWdlID0gJldlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmFwcGxpY2F0aW9uQ2Fj
aGVTdG9yYWdlKCk7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uZGF0YWJhc2VQcm92aWRlciA9IFdl
YkRhdGFiYXNlUHJvdmlkZXI6OmdldE9yQ3JlYXRlKG1fcGFnZUdyb3VwLT5wYWdlR3JvdXBJRCgp
KTsKKyAgICBwYWdlQ29uZmlndXJhdGlvbi5wbHVnaW5JbmZvUHJvdmlkZXIgPSAmV2ViUGx1Z2lu
SW5mb1Byb3ZpZGVyOjpzaW5nbGV0b24oKTsKICAgICBwYWdlQ29uZmlndXJhdGlvbi5zdG9yYWdl
TmFtZXNwYWNlUHJvdmlkZXIgPSBXZWJTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXI6OmdldE9yQ3Jl
YXRlKG1fcGFnZUdyb3VwLT5wYWdlR3JvdXBJRCgpKTsKICAgICBwYWdlQ29uZmlndXJhdGlvbi51
c2VyQ29udGVudFByb3ZpZGVyID0gbV91c2VyQ29udGVudENvbnRyb2xsZXIucHRyKCk7CiAgICAg
cGFnZUNvbmZpZ3VyYXRpb24udmlzaXRlZExpbmtTdG9yZSA9IFZpc2l0ZWRMaW5rVGFibGVDb250
cm9sbGVyOjpnZXRPckNyZWF0ZShwYXJhbWV0ZXJzLnZpc2l0ZWRMaW5rVGFibGVJRCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>285596</attachid>
            <date>2016-08-08 16:03:40 -0700</date>
            <delta_ts>2016-08-08 20:28:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160670-20160808160207.patch</filename>
            <type>text/plain</type>
            <size>59119</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0MjYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDg3OWRhNjcxNzFmNjVm
Yzc2OWIxOGM2YmM2OTc1NmE4YmMzMmQzYS4uMWZkMGY4ZTY4YzNhYTI3NGE2ZTEzNTExZDYzMjA4
Njg4MjU5ZDhlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDE2LTA4LTA4ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGEgbmV3IFBs
dWdpbkluZm9Qcm92aWRlciBjbGFzcywgdG8gcmVwbGFjZSBQbHVnaW5TdHJhdGVneQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwNjcwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgcGVyIHBhZ2Ug
UGx1Z2luSW5mb1Byb3ZpZGVyIGNsYXNzIHRoYXQncyBnb2luZyB0byB1bHRpbWF0ZWx5IHJlcGxh
Y2UgdGhlIHBsdWctaW4gc3RyYXRlZ3kuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpmaWxsV2l0aEVtcHR5Q2xpZW50cyk6CisgICAgICAgICogcGFnZS9QYWdl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6
UGFnZTo6flBhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6cmVmcmVzaFBsdWdpbnMpOgor
ICAgICAgICAoV2ViQ29yZTo6UGFnZTo6cGx1Z2luRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpQ
YWdlOjpwbHVnaW5JbmZvUHJvdmlkZXIpOgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAgICAg
ICAqIHBhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwOgorICAgICAgICAqIHBhZ2UvUGFnZUNvbmZp
Z3VyYXRpb24uaDoKKyAgICAgICAgKiBwbHVnaW5zL0RPTVBsdWdpbkFycmF5LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRPTVBsdWdpbkFycmF5OjpyZWZyZXNoKToKKyAgICAgICAgKiBwbHVnaW5z
L0RPTVBsdWdpbkFycmF5Lmg6CisgICAgICAgICogcGx1Z2lucy9QbHVnaW5EYXRhLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlBsdWdpbkRhdGE6OlBsdWdpbkRhdGEpOgorICAgICAgICAoV2ViQ29y
ZTo6UGx1Z2luRGF0YTo6d2ViVmlzaWJsZVBsdWdpbnMpOgorICAgICAgICAoV2ViQ29yZTo6UGx1
Z2luRGF0YTo6cHVibGljbHlWaXNpYmxlUGx1Z2lucyk6CisgICAgICAgIChXZWJDb3JlOjpQbHVn
aW5EYXRhOjppbml0UGx1Z2lucyk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5EYXRhOjpyZWZy
ZXNoKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpbkRhdGEuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlBsdWdpbkRhdGE6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5E
YXRhOjpQbHVnaW5EYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpbkluZm9Q
cm92aWRlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luSW5mb1Byb3ZpZGVy
Ojp+UGx1Z2luSW5mb1Byb3ZpZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpbkluZm9Qcm92
aWRlcjo6YWRkUGFnZSk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5JbmZvUHJvdmlkZXI6OnJl
bW92ZVBhZ2UpOgorICAgICAgICAqIHBsdWdpbnMvUGx1Z2luSW5mb1Byb3ZpZGVyLmg6IEFkZGVk
LgorICAgICAgICAqIHJlcGxheS9TZXJpYWxpemF0aW9uTWV0aG9kcy5jcHA6CisgICAgICAgIChK
U0M6OkVuY29kaW5nVHJhaXRzPFBsdWdpbkRhdGE+OjpkZWNvZGVWYWx1ZSk6CisgICAgICAgIChK
U0M6OkRlc2VyaWFsaXplZFBsdWdpbkRhdGE6OkRlc2VyaWFsaXplZFBsdWdpbkRhdGEpOiBEZWxl
dGVkLgorCiAyMDE2LTA4LTA4ICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgog
CiAgICAgICAgIERvbid0IHNldCBkb2N1bWVudC5kb21haW4gdG8gYW4gSVAgYWRkcmVzcyBmcmFn
bWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCBhZjlkNTBjZDVjYTJmMmQzOWExZWNkNjg2NmE0YzU0YjZiYmIzNjMz
Li4zYmQ4YzY5ODdjYjkyNTRkMmMyMzI5NmIyZmQ3OTFmZDJiOWVmNDU1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE1IEBACisyMDE2LTA4LTA4ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBs
ZS5jb20+CisKKyAgICAgICAgQWRkIGEgbmV3IFBsdWdpbkluZm9Qcm92aWRlciBjbGFzcywgdG8g
cmVwbGFjZSBQbHVnaW5TdHJhdGVneQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTYwNjcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkIG5ldyBmaWxlcy4KKworICAgICAgICAqIFBsYXRmb3JtV2luLmNt
YWtlOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDE2
LTA4LTA0ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgW01hY11bY21ha2VdIEZpeCB0aGUgYnVpbGQgYWZ0ZXIgT2JqZWN0aXZlLUMgYmluZGlu
Z3MgZ2VuZXJhdG9yIHJlbW92YWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCAxZTUxNDM4ODQ0YjZkOGY2
OGY0MDcyYTY2ZTY3YTMzNWUyZjZlN2IyLi5iNWNiODFhM2RkMDc4NTY3YzE2ZDZlZWIzOTQ0YTZl
OTZjYWFmYjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTYtMDgtMDgg
IEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYSBu
ZXcgUGx1Z2luSW5mb1Byb3ZpZGVyIGNsYXNzLCB0byByZXBsYWNlIFBsdWdpblN0cmF0ZWd5Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA2NzAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBuZXcg
V2ViUGx1Z2luSW5mb1Byb3ZpZGVyIC0gaXQganVzdCBjYWxscyB0aHJvdWdoIHRvIHRoZSBwbHVn
LWluIHN0cmF0ZWd5IGZvciBub3cuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQbHVn
aW5JbmZvUHJvdmlkZXIuaDogQWRkZWQuCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUGx1
Z2luSW5mb1Byb3ZpZGVyLm1tOiBBZGRlZC4KKyAgICAgICAgKFdlYlBsdWdpbkluZm9Qcm92aWRl
cjo6c2luZ2xldG9uKToKKyAgICAgICAgKFdlYlBsdWdpbkluZm9Qcm92aWRlcjo6V2ViUGx1Z2lu
SW5mb1Byb3ZpZGVyKToKKyAgICAgICAgKFdlYlBsdWdpbkluZm9Qcm92aWRlcjo6fldlYlBsdWdp
bkluZm9Qcm92aWRlcik6CisgICAgICAgIChXZWJQbHVnaW5JbmZvUHJvdmlkZXI6OnJlZnJlc2hQ
bHVnaW5zKToKKyAgICAgICAgKFdlYlBsdWdpbkluZm9Qcm92aWRlcjo6Z2V0UGx1Z2luSW5mbyk6
CisgICAgICAgIChXZWJQbHVnaW5JbmZvUHJvdmlkZXI6OmdldFdlYlZpc2libGVQbHVnaW5JbmZv
KToKKyAgICAgICAgKFdlYlBsdWdpbkluZm9Qcm92aWRlcjo6c2V0UGx1Z2luTG9hZENsaWVudFBv
bGljeSk6CisgICAgICAgIChXZWJQbHVnaW5JbmZvUHJvdmlkZXI6OmNsZWFyUGx1Z2luQ2xpZW50
UG9saWNpZXMpOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2Vi
VmlldyBfY29tbW9uSW5pdGlhbGl6YXRpb25XaXRoRnJhbWVOYW1lOmdyb3VwTmFtZTpdKToKKwog
MjAxNi0wOC0wMiAgRW5yaWNhIENhc3VjY2kgIDxlbnJpY2FAYXBwbGUuY29tPgogCiAgICAgICAg
IEFsbG93IGJ1aWxkaW5nIHdpdGggY29udGVudCBmaWx0ZXJpbmcgZGlzYWJsZWQuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFu
Z2VMb2cKaW5kZXggZDQ2N2M0ZmEzM2Q5YzhhNWFmMWI5Y2VkM2NhMThlNDJjNzFlMDU3NS4uY2Fh
NDhlYTFmMTk4OTAzMjM1ODBjMDFlMTUxZjc1OTliMTJiYzAzNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIxIEBACisyMDE2LTA4LTA4ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBh
cHBsZS5jb20+CisKKyAgICAgICAgQWRkIGEgbmV3IFBsdWdpbkluZm9Qcm92aWRlciBjbGFzcywg
dG8gcmVwbGFjZSBQbHVnaW5TdHJhdGVneQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTYwNjcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQWRkIGEgbmV3IFdlYlBsdWdpbkluZm9Qcm92aWRlciAtIGl0IGp1
c3QgY2FsbHMgdGhyb3VnaCB0byB0aGUgcGx1Zy1pbiBzdHJhdGVneSBmb3Igbm93LgorCisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJQbHVnaW5JbmZvUHJvdmlkZXI6OnNpbmdsZXRvbik6CisgICAgICAgIChXZWJQ
bHVnaW5JbmZvUHJvdmlkZXI6OldlYlBsdWdpbkluZm9Qcm92aWRlcik6CisgICAgICAgIChXZWJQ
bHVnaW5JbmZvUHJvdmlkZXI6On5XZWJQbHVnaW5JbmZvUHJvdmlkZXIpOgorICAgICAgICAoV2Vi
UGx1Z2luSW5mb1Byb3ZpZGVyOjpyZWZyZXNoUGx1Z2lucyk6CisgICAgICAgIChXZWJQbHVnaW5J
bmZvUHJvdmlkZXI6OmdldFBsdWdpbkluZm8pOgorICAgICAgICAoV2ViUGx1Z2luSW5mb1Byb3Zp
ZGVyOjpnZXRXZWJWaXNpYmxlUGx1Z2luSW5mbyk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
V2ViUGx1Z2luSW5mb1Byb3ZpZGVyLmg6IEFkZGVkLgorCiAyMDE2LTA3LTI5ICBDc2FiYSBPc3p0
cm9nb27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVtb3ZlIFBhc3NSZWYuaCBh
ZnRlciByMTc3MjU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZGZkMGZmM2ZiNjEwNWFhZDNmMTgwY2M4MmQyMWU2
NTJmY2JiYTZjMy4uYzA2YjI4NzVhMGI5NjdmYzlhMjMzY2JkM2M0Y2U3ODAxYjM4NmQ0YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE2LTA4LTA4ICBBbmRlcnMgQ2FybHNzb24gIDxh
bmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGEgbmV3IFBsdWdpbkluZm9Qcm92aWRl
ciBjbGFzcywgdG8gcmVwbGFjZSBQbHVnaW5TdHJhdGVneQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwNjcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgbmV3IFdlYlBsdWdpbkluZm9Qcm92aWRl
ciAtIGl0IGp1c3QgY2FsbHMgdGhyb3VnaCB0byB0aGUgcGx1Zy1pbiBzdHJhdGVneSBmb3Igbm93
LgorCisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9XZWJQbHVnaW5JbmZvUHJvdmlkZXIuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYktpdDo6V2ViUGx1Z2luSW5mb1Byb3ZpZGVyOjpzaW5nbGV0b24pOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQbHVnaW5JbmZvUHJvdmlkZXI6OldlYlBsdWdpbkluZm9Qcm92aWRl
cik6CisgICAgICAgIChXZWJLaXQ6OldlYlBsdWdpbkluZm9Qcm92aWRlcjo6fldlYlBsdWdpbklu
Zm9Qcm92aWRlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlBsdWdpbkluZm9Qcm92aWRlcjo6cmVm
cmVzaFBsdWdpbnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbHVnaW5JbmZvUHJvdmlkZXI6Omdl
dFBsdWdpbkluZm8pOgorICAgICAgICAoV2ViS2l0OjpXZWJQbHVnaW5JbmZvUHJvdmlkZXI6Omdl
dFdlYlZpc2libGVQbHVnaW5JbmZvKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGx1Z2luSW5mb1By
b3ZpZGVyOjpzZXRQbHVnaW5Mb2FkQ2xpZW50UG9saWN5KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGx1Z2luSW5mb1Byb3ZpZGVyOjpjbGVhclBsdWdpbkNsaWVudFBvbGljaWVzKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1BsdWdpbnMvV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLmg6IEFkZGVkLgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
bV91c2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uKToKKwogMjAxNi0wOC0wOCAgQnJhZHkgRWlk
c29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkcmVzc2luZyBsYXRlIHJldmll
dyBmZWVkYmFjayBpbiBidWcgMTYwNjA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGNhOGE4Yzk4
NGY1OWMyZGZlNzc3YzIwOTA4MDYxYjI0ZDNiN2JkZWQuLjYxNWZlYmI3OGU5MTA0MDdkM2VhZDM5
OTQ4YWUzMjFlYTdmOTBiMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0yNDAxLDYgKzI0MDEs
NyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGx1Z2lucy9ET01QbHVnaW4uY3BwCiAgICAg
cGx1Z2lucy9ET01QbHVnaW5BcnJheS5jcHAKICAgICBwbHVnaW5zL1BsdWdpbkRhdGEuY3BwCisg
ICAgcGx1Z2lucy9QbHVnaW5JbmZvUHJvdmlkZXIuY3BwCiAKICAgICByZW5kZXJpbmcvQXV0b1Rh
YmxlTGF5b3V0LmNwcAogICAgIHJlbmRlcmluZy9CaWRpUnVuLmNwcApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDM0YTI4Nzc1OGM4
MTMzYzA3YmQyNWMxZmI0NzZiZmQ0OWIwMGUxMDkuLjI3YzJmODk3NmEwZjFlOTEzZTYyODU0MzY1
YmQwMjA5MmNlOWIyYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTY2Niw2ICs2NjYsOCBAQAogCQkxOUJGRjY0RjExQzBGMkFD
MDBCOEMwNEQgLyogSlNTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTlCRkY2NEExMUMwRjJBQzAwQjhDMDRE
IC8qIEpTU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuaCAqLzsgfTsKIAkJMUEwNDA5REMxQTQz
NjBCNTAwOUU0N0YzIC8qIE1hY2hTZW5kUmlnaHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBMDQwOURCMUE0MzYwQjUwMDlFNDdGMyAvKiBNYWNoU2Vu
ZFJpZ2h0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJMUEwNDA5RjMxQTQzNjc1QzAwOUU0N0YzIC8qIE1hY2hTZW5kUmlnaHQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEwNDA5RjIxQTQzNjc1QzAw
OUU0N0YzIC8qIE1hY2hTZW5kUmlnaHQuY3BwICovOyB9OworCQkxQTA4RkVEQzFENTkyQjhCMDA4
QkE4Q0IgLyogUGx1Z2luSW5mb1Byb3ZpZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBMDhGRURBMUQ1OTJCOEIwMDhCQThDQiAvKiBQbHVnaW5J
bmZvUHJvdmlkZXIuY3BwICovOyB9OworCQkxQTA4RkVERDFENTkyQjhCMDA4QkE4Q0IgLyogUGx1
Z2luSW5mb1Byb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxQTA4RkVEQjFENTkyQjhCMDA4QkE4Q0IgLyogUGx1Z2luSW5mb1Byb3ZpZGVyLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUEwRDU3
MzYwQTVDNzdGRTAwN0VERDRDIC8qIE92ZXJmbG93RXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEwRDU3MzQwQTVDNzdGRTAwN0VERDRDIC8q
IE92ZXJmbG93RXZlbnQuY3BwICovOyB9OwogCQkxQTBENTczNzBBNUM3N0ZFMDA3RURENEMgLyog
T3ZlcmZsb3dFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMUEwRDU3MzUwQTVDNzdGRTAwN0VERDRDIC8qIE92ZXJmbG93RXZlbnQuaCAqLzsgfTsK
IAkJMUEwRDU3NDAwQTVDNzg2NzAwN0VERDRDIC8qIEpTT3ZlcmZsb3dFdmVudC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTBENTczRTBBNUM3ODY3
MDA3RURENEMgLyogSlNPdmVyZmxvd0V2ZW50LmNwcCAqLzsgfTsKQEAgLTc4ODYsNiArNzg4OCw4
IEBACiAJCTE5QkZGNjRBMTFDMEYyQUMwMEI4QzA0RCAvKiBKU1NWR0ZFQ29udm9sdmVNYXRyaXhF
bGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU1ZHRkVDb252b2x2
ZU1hdHJpeEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUEwNDA5REIx
QTQzNjBCNTAwOUU0N0YzIC8qIE1hY2hTZW5kUmlnaHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gTWFjaFNlbmRSaWdodC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkxQTA0MDlGMjFBNDM2NzVDMDA5RTQ3RjMgLyogTWFjaFNlbmRSaWdodC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNYWNoU2VuZFJpZ2h0LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUEwOEZFREExRDU5MkI4QjAwOEJBOENCIC8qIFBsdWdpbklu
Zm9Qcm92aWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQbHVn
aW5JbmZvUHJvdmlkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQTA4RkVE
QjFENTkyQjhCMDA4QkE4Q0IgLyogUGx1Z2luSW5mb1Byb3ZpZGVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFBsdWdpbkluZm9Qcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxQTBENTczNDBBNUM3N0ZFMDA3RURENEMgLyogT3ZlcmZsb3dFdmVudC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gT3ZlcmZsb3dFdmVudC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBMEQ1NzM1MEE1Qzc3RkUwMDdFREQ0
QyAvKiBPdmVyZmxvd0V2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBP
dmVyZmxvd0V2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBMEQ1NzM4MEE1
Qzc4MTIwMDdFREQ0QyAvKiBPdmVyZmxvd0V2ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gT3ZlcmZsb3dFdmVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzY5
MCw2ICsxNzY5NCw4IEBACiAJCQkJMUE5MjdGRDExNDE2QTE1QjAwM0E4M0M4IC8qIG5wdHlwZXMu
aCAqLywKIAkJCQlBOUM2RTRGMTBENzQ1RTQ4MDA2NDQyRTkgLyogUGx1Z2luRGF0YS5jcHAgKi8s
CiAJCQkJQTlDNkU0RjIwRDc0NUU0ODAwNjQ0MkU5IC8qIFBsdWdpbkRhdGEuaCAqLywKKwkJCQkx
QTA4RkVEQTFENTkyQjhCMDA4QkE4Q0IgLyogUGx1Z2luSW5mb1Byb3ZpZGVyLmNwcCAqLywKKwkJ
CQkxQTA4RkVEQjFENTkyQjhCMDA4QkE4Q0IgLyogUGx1Z2luSW5mb1Byb3ZpZGVyLmggKi8sCiAJ
CQkJMUFBODc5OEYxMUNCRTg0NjAwM0M2NjRGIC8qIFBsdWdpblN0cmF0ZWd5LmggKi8sCiAJCQkJ
MEFGREFDM0MxMEY1NDQ4QzAwRTFGM0QyIC8qIFBsdWdpblZpZXdCYXNlLmggKi8sCiAJCQkpOwpA
QCAtMjc3NjIsNiArMjc3NjgsNyBAQAogCQkJCUIyMjI3QTJEMEQwMEJGMjIwMDcxQjc4MiAvKiBT
VkdJbWFnZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4Rjg1OUQ1MTQ2M0Y5Q0QwMDY3
RDkzNCAvKiBTVkdJbWFnZUZvckNvbnRhaW5lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjI4QzZB
MkEwRDAwQzQ0ODAwMzM0QUE0IC8qIFNWR0ltYWdlTG9hZGVyLmggaW4gSGVhZGVycyAqLywKKwkJ
CQkxQTA4RkVERDFENTkyQjhCMDA4QkE4Q0IgLyogUGx1Z2luSW5mb1Byb3ZpZGVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwODU0QjAxRjEyNTVFNEU2MDBCOUNERDAgLyogU1ZHSW5saW5lRmxvd0Jv
eC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg1NEIwMjExMjU1RTRFNjAwQjlDREQwIC8qIFNWR0lu
bGluZVRleHRCb3guaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QTMwMEQwMEJGMjIwMDcxQjc4
MiAvKiBTVkdMYW5nU3BhY2UuaCBpbiBIZWFkZXJzICovLApAQCAtMzAzMjAsNiArMzAzMjcsNyBA
QAogCQkJCUIyRkEzRERDMEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR1BhdGhTZWdNb3ZldG9BYnMu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjJGQTNEREUwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZH
UGF0aFNlZ01vdmV0b1JlbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMkZBM0RFMDBBQjc1QTZG
MDAwRTVBQzQgLyogSlNTVkdQYXR0ZXJuRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkx
QTA4RkVEQzFENTkyQjhCMDA4QkE4Q0IgLyogUGx1Z2luSW5mb1Byb3ZpZGVyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTg1NDJBNzk2MEFFNUM5NDIwMERGNThERiAvKiBKU1NWR1BvaW50LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUIyRkEzREUyMEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR1BvaW50
TGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMkZBM0RFNTBBQjc1QTZGMDAwRTVBQzQgLyog
SlNTVkdQb2x5Z29uRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0VtcHR5Q2xpZW50cy5jcHAKaW5kZXggNDA4MWRlNjIyZTA0NGM5ZjFiZWUxZTg4NzNkMzdmYzdl
ODM4Y2I2Ny4uYjAxZjI0NTBiYjgwMjI5ZTgwY2YyZjJmOTRiOWRhZDlkMDcyMzQzOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNs
dWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGFnZUNvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlICJQ
YXltZW50Q29vcmRpbmF0b3JDbGllbnQuaCIKKyNpbmNsdWRlICJQbHVnaW5JbmZvUHJvdmlkZXIu
aCIKICNpbmNsdWRlICJTdG9yYWdlQXJlYS5oIgogI2luY2x1ZGUgIlN0b3JhZ2VOYW1lc3BhY2Uu
aCIKICNpbmNsdWRlICJTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIuaCIKQEAgLTc4LDYgKzc5LDE2
IEBAIGNsYXNzIEVtcHR5RGF0YWJhc2VQcm92aWRlciBmaW5hbCA6IHB1YmxpYyBEYXRhYmFzZVBy
b3ZpZGVyIHsKICNlbmRpZgogfTsKIAorY2xhc3MgRW1wdHlQbHVnaW5JbmZvUHJvdmlkZXIgZmlu
YWwgOiBwdWJsaWMgUGx1Z2luSW5mb1Byb3ZpZGVyIHsKKyAgICB2b2lkIHJlZnJlc2hQbHVnaW5z
KCkgb3ZlcnJpZGUgeyB9OworICAgIHZvaWQgZ2V0UGx1Z2luSW5mbyhQYWdlJiwgVmVjdG9yPFBs
dWdpbkluZm8+Jikgb3ZlcnJpZGUgeyB9CisgICAgdm9pZCBnZXRXZWJWaXNpYmxlUGx1Z2luSW5m
byhQYWdlJiwgVmVjdG9yPFBsdWdpbkluZm8+Jikgb3ZlcnJpZGUgeyB9CisjaWYgUExBVEZPUk0o
TUFDKQorICAgIHZvaWQgc2V0UGx1Z2luTG9hZENsaWVudFBvbGljeShQbHVnaW5Mb2FkQ2xpZW50
UG9saWN5LCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKSBvdmVy
cmlkZSB7IH0KKyAgICB2b2lkIGNsZWFyUGx1Z2luQ2xpZW50UG9saWNpZXMoKSBvdmVycmlkZSB7
IH0KKyNlbmRpZgorfTsKKwogY2xhc3MgRW1wdHlTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIgZmlu
YWwgOiBwdWJsaWMgU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyIHsKICAgICBzdHJ1Y3QgRW1wdHlT
dG9yYWdlQXJlYSA6IHB1YmxpYyBTdG9yYWdlQXJlYSB7CiAgICAgICAgIHVuc2lnbmVkIGxlbmd0
aCgpIG92ZXJyaWRlIHsgcmV0dXJuIDA7IH0KQEAgLTE2Myw2ICsxNzQsNyBAQCB2b2lkIGZpbGxX
aXRoRW1wdHlDbGllbnRzKFBhZ2VDb25maWd1cmF0aW9uJiBwYWdlQ29uZmlndXJhdGlvbikKIAog
ICAgIHBhZ2VDb25maWd1cmF0aW9uLmFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlID0gQXBwbGljYXRp
b25DYWNoZVN0b3JhZ2U6OmNyZWF0ZShTdHJpbmcoKSwgU3RyaW5nKCkpOwogICAgIHBhZ2VDb25m
aWd1cmF0aW9uLmRhdGFiYXNlUHJvdmlkZXIgPSBhZG9wdFJlZihuZXcgRW1wdHlEYXRhYmFzZVBy
b3ZpZGVyKTsKKyAgICBwYWdlQ29uZmlndXJhdGlvbi5wbHVnaW5JbmZvUHJvdmlkZXIgPSBhZG9w
dFJlZihuZXcgRW1wdHlQbHVnaW5JbmZvUHJvdmlkZXIpOwogICAgIHBhZ2VDb25maWd1cmF0aW9u
LnN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlciA9IGFkb3B0UmVmKG5ldyBFbXB0eVN0b3JhZ2VOYW1l
c3BhY2VQcm92aWRlcik7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24udXNlckNvbnRlbnRQcm92aWRl
ciA9IGFkb3B0UmVmKG5ldyBFbXB0eVVzZXJDb250ZW50UHJvdmlkZXIpOwogICAgIHBhZ2VDb25m
aWd1cmF0aW9uLnZpc2l0ZWRMaW5rU3RvcmUgPSBhZG9wdFJlZihuZXcgRW1wdHlWaXNpdGVkTGlu
a1N0b3JlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IGJhMDg5NjA0OTU0MWQ0MDkwMjgwYmI4MTM1
NWU5MDBlNDE5ZTYwNzkuLmM5NDQ5M2QwZjAxMTNmMDZkYzI4NmIyMDQ0YzI1NjI3NmEyYmYyNDcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtNjksNiArNjksNyBAQAogI2luY2x1ZGUgIlBhZ2VUaHJv
dHRsZXIuaCIKICNpbmNsdWRlICJQbHVnSW5DbGllbnQuaCIKICNpbmNsdWRlICJQbHVnaW5EYXRh
LmgiCisjaW5jbHVkZSAiUGx1Z2luSW5mb1Byb3ZpZGVyLmgiCiAjaW5jbHVkZSAiUGx1Z2luVmll
d0Jhc2UuaCIKICNpbmNsdWRlICJQb2ludGVyTG9ja0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJQ
cm9ncmVzc1RyYWNrZXIuaCIKQEAgLTIzMyw2ICsyMzQsNyBAQCBQYWdlOjpQYWdlKFBhZ2VDb25m
aWd1cmF0aW9uJiYgcGFnZUNvbmZpZ3VyYXRpb24pCiAgICAgLCBtX3NvY2tldFByb3ZpZGVyKFdU
Rk1vdmUocGFnZUNvbmZpZ3VyYXRpb24uc29ja2V0UHJvdmlkZXIpKQogICAgICwgbV9hcHBsaWNh
dGlvbkNhY2hlU3RvcmFnZSgqV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbi5hcHBsaWNhdGlvbkNh
Y2hlU3RvcmFnZSkpCiAgICAgLCBtX2RhdGFiYXNlUHJvdmlkZXIoKldURk1vdmUocGFnZUNvbmZp
Z3VyYXRpb24uZGF0YWJhc2VQcm92aWRlcikpCisgICAgLCBtX3BsdWdpbkluZm9Qcm92aWRlcigq
V1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbi5wbHVnaW5JbmZvUHJvdmlkZXIpKQogICAgICwgbV9z
dG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIoKldURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24uc3RvcmFn
ZU5hbWVzcGFjZVByb3ZpZGVyKSkKICAgICAsIG1fdXNlckNvbnRlbnRQcm92aWRlcigqV1RGTW92
ZShwYWdlQ29uZmlndXJhdGlvbi51c2VyQ29udGVudFByb3ZpZGVyKSkKICAgICAsIG1fdmlzaXRl
ZExpbmtTdG9yZSgqV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbi52aXNpdGVkTGlua1N0b3JlKSkK
QEAgLTI0MSw4ICsyNDMsOCBAQCBQYWdlOjpQYWdlKFBhZ2VDb25maWd1cmF0aW9uJiYgcGFnZUNv
bmZpZ3VyYXRpb24pCiB7CiAgICAgdXBkYXRlVGltZXJUaHJvdHRsaW5nU3RhdGUoKTsKIAorICAg
IG1fcGx1Z2luSW5mb1Byb3ZpZGVyLT5hZGRQYWdlKCp0aGlzKTsKICAgICBtX3N0b3JhZ2VOYW1l
c3BhY2VQcm92aWRlci0+YWRkUGFnZSgqdGhpcyk7Ci0KICAgICBtX3VzZXJDb250ZW50UHJvdmlk
ZXItPmFkZFBhZ2UoKnRoaXMpOwogICAgIG1fdmlzaXRlZExpbmtTdG9yZS0+YWRkUGFnZSgqdGhp
cyk7CiAKQEAgLTI5OCw2ICszMDAsNyBAQCBQYWdlOjp+UGFnZSgpCiAgICAgcGFnZUNvdW50ZXIu
ZGVjcmVtZW50KCk7CiAjZW5kaWYKIAorICAgIG1fcGx1Z2luSW5mb1Byb3ZpZGVyLT5yZW1vdmVQ
YWdlKCp0aGlzKTsKICAgICBtX3N0b3JhZ2VOYW1lc3BhY2VQcm92aWRlci0+cmVtb3ZlUGFnZSgq
dGhpcyk7CiAgICAgbV91c2VyQ29udGVudFByb3ZpZGVyLT5yZW1vdmVQYWdlKCp0aGlzKTsKICAg
ICBtX3Zpc2l0ZWRMaW5rU3RvcmUtPnJlbW92ZVBhZ2UoKnRoaXMpOwpAQCAtNTA3LDExICs1MTAs
MTIgQEAgdm9pZCBQYWdlOjpyZWZyZXNoUGx1Z2lucyhib29sIHJlbG9hZCkKICAgICBpZiAoIWFs
bFBhZ2VzKQogICAgICAgICByZXR1cm47CiAKLSAgICBQbHVnaW5EYXRhOjpyZWZyZXNoKCk7Cisg
ICAgSGFzaFNldDxQbHVnaW5JbmZvUHJvdmlkZXIqPiBwbHVnaW5JbmZvUHJvdmlkZXJzOwogCiAg
ICAgVmVjdG9yPFJlZjxGcmFtZT4+IGZyYW1lc05lZWRpbmdSZWxvYWQ7CiAKICAgICBmb3IgKGF1
dG8mIHBhZ2UgOiAqYWxsUGFnZXMpIHsKKyAgICAgICAgcGx1Z2luSW5mb1Byb3ZpZGVycy5hZGQo
JnBhZ2UtPnBsdWdpbkluZm9Qcm92aWRlcigpKTsKICAgICAgICAgcGFnZS0+bV9wbHVnaW5EYXRh
ID0gbnVsbHB0cjsKIAogICAgICAgICBpZiAoIXJlbG9hZCkKQEAgLTUyMywxNCArNTI3LDE3IEBA
IHZvaWQgUGFnZTo6cmVmcmVzaFBsdWdpbnMoYm9vbCByZWxvYWQpCiAgICAgICAgIH0KICAgICB9
CiAKKyAgICBmb3IgKGF1dG8mIHBsdWdpbkluZm9Qcm92aWRlciA6IHBsdWdpbkluZm9Qcm92aWRl
cnMpCisgICAgICAgIHBsdWdpbkluZm9Qcm92aWRlci0+cmVmcmVzaFBsdWdpbnMoKTsKKwogICAg
IGZvciAoYXV0byYgZnJhbWUgOiBmcmFtZXNOZWVkaW5nUmVsb2FkKQogICAgICAgICBmcmFtZS0+
bG9hZGVyKCkucmVsb2FkKCk7CiB9CiAKLVBsdWdpbkRhdGEmIFBhZ2U6OnBsdWdpbkRhdGEoKSBj
b25zdAorUGx1Z2luRGF0YSYgUGFnZTo6cGx1Z2luRGF0YSgpCiB7CiAgICAgaWYgKCFtX3BsdWdp
bkRhdGEpCi0gICAgICAgIG1fcGx1Z2luRGF0YSA9IFBsdWdpbkRhdGE6OmNyZWF0ZSh0aGlzKTsK
KyAgICAgICAgbV9wbHVnaW5EYXRhID0gUGx1Z2luRGF0YTo6Y3JlYXRlKCp0aGlzKTsKICAgICBy
ZXR1cm4gKm1fcGx1Z2luRGF0YTsKIH0KIApAQCAtMTg0Nyw2ICsxODU0LDExIEBAIGJvb2wgUGFn
ZTo6YXJlUHJvbXB0c0FsbG93ZWQoKQogICAgIHJldHVybiAhbV9mb3JiaWRQcm9tcHRzRGVwdGg7
CiB9CiAKK1BsdWdpbkluZm9Qcm92aWRlciYgUGFnZTo6cGx1Z2luSW5mb1Byb3ZpZGVyKCkKK3sK
KyAgICByZXR1cm4gbV9wbHVnaW5JbmZvUHJvdmlkZXI7Cit9CisKIFVzZXJDb250ZW50UHJvdmlk
ZXImIFBhZ2U6OnVzZXJDb250ZW50UHJvdmlkZXIoKQogewogICAgIHJldHVybiBtX3VzZXJDb250
ZW50UHJvdmlkZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IGMwY2ZhNDg0YTdiMzI3YWE3NmIxODQyOWRl
MDBhYTZlYjNlN2MxMDIuLmYxNWRhNDI4ZThkNTYwMDA1ODU2NTA0MTQ2MzZmZTQ4YjY2NjQ3OTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5oCkBAIC0xMDgsNiArMTA4LDcgQEAgY2xhc3MgUGFnZUdyb3VwOwogY2xh
c3MgUGFnZVRocm90dGxlcjsKIGNsYXNzIFBsdWdJbkNsaWVudDsKIGNsYXNzIFBsdWdpbkRhdGE7
CitjbGFzcyBQbHVnaW5JbmZvUHJvdmlkZXI7CiBjbGFzcyBQbHVnaW5WaWV3QmFzZTsKIGNsYXNz
IFBvaW50ZXJMb2NrQ29udHJvbGxlcjsKIGNsYXNzIFByb2dyZXNzVHJhY2tlcjsKQEAgLTE1NSw3
ICsxNTYsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgVmlld3BvcnRBcmd1bWVudHMg
dmlld3BvcnRBcmd1bWVudHMoKSBjb25zdDsKIAogICAgIHN0YXRpYyB2b2lkIHJlZnJlc2hQbHVn
aW5zKGJvb2wgcmVsb2FkKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBQbHVnaW5EYXRhJiBwbHVnaW5E
YXRhKCkgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgUGx1Z2luRGF0YSYgcGx1Z2luRGF0YSgp
OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRDYW5TdGFydE1lZGlhKGJvb2wpOwogICAg
IGJvb2wgY2FuU3RhcnRNZWRpYSgpIGNvbnN0IHsgcmV0dXJuIG1fY2FuU3RhcnRNZWRpYTsgfQpA
QCAtNDY2LDYgKzQ2Nyw4IEBAIHB1YmxpYzoKICAgICBTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIm
IHN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlcigpIHsgcmV0dXJuIG1fc3RvcmFnZU5hbWVzcGFjZVBy
b3ZpZGVyLmdldCgpOyB9CiAgICAgdm9pZCBzZXRTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIoUmVm
PFN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlcj4mJik7CiAKKyAgICBQbHVnaW5JbmZvUHJvdmlkZXIm
IHBsdWdpbkluZm9Qcm92aWRlcigpOworCiAgICAgVXNlckNvbnRlbnRQcm92aWRlciYgdXNlckNv
bnRlbnRQcm92aWRlcigpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0VXNlckNvbnRlbnRQ
cm92aWRlcihSZWY8VXNlckNvbnRlbnRQcm92aWRlcj4mJik7CiAKQEAgLTU4NSw3ICs1ODgsNyBA
QCBwcml2YXRlOgogICAgIGNvbnN0IHN0ZDo6dW5pcXVlX3B0cjxCYWNrRm9yd2FyZENvbnRyb2xs
ZXI+IG1fYmFja0ZvcndhcmRDb250cm9sbGVyOwogICAgIFJlZjxNYWluRnJhbWU+IG1fbWFpbkZy
YW1lOwogCi0gICAgbXV0YWJsZSBSZWZQdHI8UGx1Z2luRGF0YT4gbV9wbHVnaW5EYXRhOworICAg
IFJlZlB0cjxQbHVnaW5EYXRhPiBtX3BsdWdpbkRhdGE7CiAKICAgICBSZWZQdHI8UmVuZGVyVGhl
bWU+IG1fdGhlbWU7CiAKQEAgLTY5OSw2ICs3MDIsNyBAQCBwcml2YXRlOgogICAgIFJlZjxTb2Nr
ZXRQcm92aWRlcj4gbV9zb2NrZXRQcm92aWRlcjsKICAgICBSZWY8QXBwbGljYXRpb25DYWNoZVN0
b3JhZ2U+IG1fYXBwbGljYXRpb25DYWNoZVN0b3JhZ2U7CiAgICAgUmVmPERhdGFiYXNlUHJvdmlk
ZXI+IG1fZGF0YWJhc2VQcm92aWRlcjsKKyAgICBSZWY8UGx1Z2luSW5mb1Byb3ZpZGVyPiBtX3Bs
dWdpbkluZm9Qcm92aWRlcjsKICAgICBSZWY8U3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyPiBtX3N0
b3JhZ2VOYW1lc3BhY2VQcm92aWRlcjsKICAgICBSZWY8VXNlckNvbnRlbnRQcm92aWRlcj4gbV91
c2VyQ29udGVudFByb3ZpZGVyOwogICAgIFJlZjxWaXNpdGVkTGlua1N0b3JlPiBtX3Zpc2l0ZWRM
aW5rU3RvcmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwCmluZGV4
IGVlZjMwYWY4YjhmMzJhN2NmMzRmYmI2NmI5NTg0YTAwY2VkN2YyNzEuLjk1ZTc5MjY1ZmYwNjA2
YmVmZWVlODFkM2RhYjdiZDNhYzU5ZGMwZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNv
bmZpZ3VyYXRpb24uY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiRGF0YWJhc2VQcm92
aWRlci5oIgogI2luY2x1ZGUgIkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgiCiAjaW5jbHVkZSAi
RWRpdG9yQ2xpZW50LmgiCisjaW5jbHVkZSAiUGx1Z2luSW5mb1Byb3ZpZGVyLmgiCiAjaW5jbHVk
ZSAiU29ja2V0UHJvdmlkZXIuaCIKICNpbmNsdWRlICJTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIu
aCIKICNpbmNsdWRlICJVc2VyQ29udGVudENvbnRyb2xsZXIuaCIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZUNvbmZpZ3VyYXRpb24uaAppbmRleCBkYWMyZTk2NWFhZjc3ZjJmMjM5N2YwMTg0ZDNjMDhj
NzY1ZGU2NGQ0Li4yMmFlYjgyODdjOTU0YzBmY2EzZmVhYWU3MzE4Y2YwMTE1NjZiZDk0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCkBAIC00Myw2ICs0Myw3IEBAIGNs
YXNzIEZyYW1lTG9hZGVyQ2xpZW50OwogY2xhc3MgSW5zcGVjdG9yQ2xpZW50OwogY2xhc3MgUGF5
bWVudENvb3JkaW5hdG9yQ2xpZW50OwogY2xhc3MgUGx1Z0luQ2xpZW50OworY2xhc3MgUGx1Z2lu
SW5mb1Byb3ZpZGVyOwogY2xhc3MgUHJvZ3Jlc3NUcmFja2VyQ2xpZW50OwogY2xhc3MgU29ja2V0
UHJvdmlkZXI7CiBjbGFzcyBTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXI7CkBAIC04Miw2ICs4Myw3
IEBAIHB1YmxpYzoKIAogICAgIFJlZlB0cjxBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZT4gYXBwbGlj
YXRpb25DYWNoZVN0b3JhZ2U7CiAgICAgUmVmUHRyPERhdGFiYXNlUHJvdmlkZXI+IGRhdGFiYXNl
UHJvdmlkZXI7CisgICAgUmVmUHRyPFBsdWdpbkluZm9Qcm92aWRlcj4gcGx1Z2luSW5mb1Byb3Zp
ZGVyOwogICAgIFJlZlB0cjxTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXI+IHN0b3JhZ2VOYW1lc3Bh
Y2VQcm92aWRlcjsKICAgICBSZWZQdHI8VXNlckNvbnRlbnRQcm92aWRlcj4gdXNlckNvbnRlbnRQ
cm92aWRlcjsKICAgICBSZWZQdHI8VmlzaXRlZExpbmtTdG9yZT4gdmlzaXRlZExpbmtTdG9yZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvRE9NUGx1Z2luQXJyYXkuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGx1Z2lucy9ET01QbHVnaW5BcnJheS5jcHAKaW5kZXggMzgzYmUxNjQ2
NTc3N2U1MzExZGJhMWJmYTA2YWY0ZmMwZWViOGMxZC4uYzFlNGU2ZmE5Y2IyOWY1ZmJiMTU5MDQ1
NTNmMzk4ZGM1Y2FmNGJlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9ET01Q
bHVnaW5BcnJheS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9ET01QbHVnaW5BcnJh
eS5jcHAKQEAgLTgzLDkgKzgzLDE1IEBAIFZlY3RvcjxBdG9taWNTdHJpbmc+IERPTVBsdWdpbkFy
cmF5OjpzdXBwb3J0ZWRQcm9wZXJ0eU5hbWVzKCkKICAgICByZXR1cm4gVmVjdG9yPEF0b21pY1N0
cmluZz4oKTsKIH0KIAotdm9pZCBET01QbHVnaW5BcnJheTo6cmVmcmVzaChib29sIHJlbG9hZCkK
K3ZvaWQgRE9NUGx1Z2luQXJyYXk6OnJlZnJlc2goYm9vbCByZWxvYWRQYWdlcykKIHsKLSAgICBQ
YWdlOjpyZWZyZXNoUGx1Z2lucyhyZWxvYWQpOworICAgIGlmICghbV9mcmFtZSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgaWYgKCFtX2ZyYW1lLT5wYWdlKCkpCisgICAgICAgIHJldHVybjsKKwor
ICAgIFBhZ2U6OnJlZnJlc2hQbHVnaW5zKHJlbG9hZFBhZ2VzKTsKIH0KIAogUGx1Z2luRGF0YSog
RE9NUGx1Z2luQXJyYXk6OnBsdWdpbkRhdGEoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGx1Z2lucy9ET01QbHVnaW5BcnJheS5oIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9E
T01QbHVnaW5BcnJheS5oCmluZGV4IGM2Zjc1MjQzMjg2MjlkNGJiOWI2ZTBmMmM3MDY2OTdmMjhi
YjcwYjguLjMwYzBiMGZiMzAwZWIwMmIzYTM4NGYwNWE4ZGQxMGEyZjA0OTVjZDMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvRE9NUGx1Z2luQXJyYXkuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbHVnaW5zL0RPTVBsdWdpbkFycmF5LmgKQEAgLTQxLDcgKzQxLDcgQEAgcHVibGlj
OgogICAgIFJlZlB0cjxET01QbHVnaW4+IG5hbWVkSXRlbShjb25zdCBBdG9taWNTdHJpbmcmIHBy
b3BlcnR5TmFtZSk7CiAgICAgVmVjdG9yPEF0b21pY1N0cmluZz4gc3VwcG9ydGVkUHJvcGVydHlO
YW1lcygpOwogCi0gICAgdm9pZCByZWZyZXNoKGJvb2wgcmVsb2FkKTsKKyAgICB2b2lkIHJlZnJl
c2goYm9vbCByZWxvYWRQYWdlcyk7CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgRE9NUGx1Z2lu
QXJyYXkoRnJhbWUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2lu
RGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkRhdGEuY3BwCmluZGV4IGMy
NTM1OGE3MWE4MzE3OGY4OTQ0N2Y0ODk5ZjllZGVhZjg5NDMxOGQuLmFlOGI0YWEzZWRhMzE2N2Uy
YTA1ZDRlODU0YjBlN2M3YmE3YWUyMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsdWdp
bnMvUGx1Z2luRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5EYXRh
LmNwcApAQCAtMjYsMjMgKzI2LDIwIEBACiAKICNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgi
CiAjaW5jbHVkZSAiUGFnZS5oIgotI2luY2x1ZGUgIlBsYXRmb3JtU3RyYXRlZ2llcy5oIgotI2lu
Y2x1ZGUgIlBsdWdpblN0cmF0ZWd5LmgiCisjaW5jbHVkZSAiUGx1Z2luSW5mb1Byb3ZpZGVyLmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGx1Z2luRGF0YTo6UGx1Z2luRGF0YShjb25zdCBQ
YWdlKiBwYWdlKQorUGx1Z2luRGF0YTo6UGx1Z2luRGF0YShQYWdlJiBwYWdlKQorICAgIDogbV9w
YWdlKHBhZ2UpCiB7Ci0gICAgQVNTRVJUX0FSRyhwYWdlLCBwYWdlKTsKLQotICAgIG1fcGFnZSA9
IHBhZ2U7CiAgICAgaW5pdFBsdWdpbnMoKTsKIH0KIAogVmVjdG9yPFBsdWdpbkluZm8+IFBsdWdp
bkRhdGE6OndlYlZpc2libGVQbHVnaW5zKCkgY29uc3QKIHsKICAgICBWZWN0b3I8UGx1Z2luSW5m
bz4gcGx1Z2luczsKLSAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGx1Z2luU3RyYXRlZ3koKS0+
Z2V0V2ViVmlzaWJsZVBsdWdpbkluZm8obV9wYWdlLCBwbHVnaW5zKTsKKyAgICBtX3BhZ2UucGx1
Z2luSW5mb1Byb3ZpZGVyKCkuZ2V0V2ViVmlzaWJsZVBsdWdpbkluZm8obV9wYWdlLCBwbHVnaW5z
KTsKICAgICByZXR1cm4gcGx1Z2luczsKIH0KIApAQCAtNzYsMTEgKzczLDExIEBAIHN0YXRpYyBi
b29sIHNob3VsZEJlUHVibGljbHlWaXNpYmxlKGNvbnN0IFBsdWdpbkluZm8mIHBsdWdpbikKIAog
VmVjdG9yPFBsdWdpbkluZm8+IFBsdWdpbkRhdGE6OnB1YmxpY2x5VmlzaWJsZVBsdWdpbnMoKSBj
b25zdAogewotICAgIGlmIChtX3BhZ2UtPnNob3dBbGxQbHVnaW5zKCkpCisgICAgaWYgKG1fcGFn
ZS5zaG93QWxsUGx1Z2lucygpKQogICAgICAgICByZXR1cm4gd2ViVmlzaWJsZVBsdWdpbnMoKTsK
ICAgICAKICAgICBWZWN0b3I8UGx1Z2luSW5mbz4gYWxsUGx1Z2luczsKLSAgICBwbGF0Zm9ybVN0
cmF0ZWdpZXMoKS0+cGx1Z2luU3RyYXRlZ3koKS0+Z2V0V2ViVmlzaWJsZVBsdWdpbkluZm8obV9w
YWdlLCBhbGxQbHVnaW5zKTsKKyAgICBtX3BhZ2UucGx1Z2luSW5mb1Byb3ZpZGVyKCkuZ2V0V2Vi
VmlzaWJsZVBsdWdpbkluZm8obV9wYWdlLCBhbGxQbHVnaW5zKTsKIAogICAgIFZlY3RvcjxQbHVn
aW5JbmZvPiBwbHVnaW5zOwogICAgIGZvciAoYXV0byYmIHBsdWdpbiA6IGFsbFBsdWdpbnMpIHsK
QEAgLTE4MSwxNiArMTc4LDExIEBAIGJvb2wgUGx1Z2luRGF0YTo6c3VwcG9ydHNNaW1lVHlwZShj
b25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBBbGxvd2VkUGx1Z2luVHlwCiAgICAgcmV0dXJu
IGZhbHNlOwogfQogCi12b2lkIFBsdWdpbkRhdGE6OnJlZnJlc2goKQotewotICAgIHBsYXRmb3Jt
U3RyYXRlZ2llcygpLT5wbHVnaW5TdHJhdGVneSgpLT5yZWZyZXNoUGx1Z2lucygpOwotfQotCiB2
b2lkIFBsdWdpbkRhdGE6OmluaXRQbHVnaW5zKCkKIHsKICAgICBBU1NFUlQobV9wbHVnaW5zLmlz
RW1wdHkoKSk7CiAKLSAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGx1Z2luU3RyYXRlZ3koKS0+
Z2V0UGx1Z2luSW5mbyhtX3BhZ2UsIG1fcGx1Z2lucyk7CisgICAgbV9wYWdlLnBsdWdpbkluZm9Q
cm92aWRlcigpLmdldFBsdWdpbkluZm8obV9wYWdlLCBtX3BsdWdpbnMpOwogfQogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdp
bkRhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGF0YS5oCmluZGV4IGI5MjI4
OTdmNGJiM2M1MDMwMmUxYjBlYmQ3NTdlY2FmNzlhMWExMDcuLmIzNjM1YTQxYzZiNWRjNWY1OTg4
ZTE5ZjdhY2ZkMzYxZDlhOGE2NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMv
UGx1Z2luRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGF0YS5oCkBA
IC04Niw3ICs4Niw3IEBAIGlubGluZSBib29sIG9wZXJhdG9yPT0oUGx1Z2luSW5mbyYgYSwgUGx1
Z2luSW5mbyYgYikKIC8vIEZJWE1FOiBtZXJnZSB3aXRoIFBsdWdpbkRhdGFiYXNlIGluIHRoZSBm
dXR1cmUKIGNsYXNzIFBsdWdpbkRhdGEgOiBwdWJsaWMgUmVmQ291bnRlZDxQbHVnaW5EYXRhPiB7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxQbHVnaW5EYXRhPiBjcmVhdGUoY29uc3QgUGFnZSog
cGFnZSkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBQbHVnaW5EYXRhKHBhZ2UpKTsgfQorICAgIHN0
YXRpYyBSZWY8UGx1Z2luRGF0YT4gY3JlYXRlKFBhZ2UmIHBhZ2UpIHsgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgUGx1Z2luRGF0YShwYWdlKSk7IH0KIAogICAgIGNvbnN0IFZlY3RvcjxQbHVnaW5JbmZv
PiYgcGx1Z2lucygpIGNvbnN0IHsgcmV0dXJuIG1fcGx1Z2luczsgfQogICAgIFZlY3RvcjxQbHVn
aW5JbmZvPiB3ZWJWaXNpYmxlUGx1Z2lucygpIGNvbnN0OwpAQCAtMTA0LDI0ICsxMDQsMTUgQEAg
cHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzdXBwb3J0c01pbWVUeXBlKGNvbnN0
IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IEFsbG93ZWRQbHVnaW5UeXBlcykgY29uc3Q7CiAKLSAg
ICBzdGF0aWMgdm9pZCByZWZyZXNoKCk7Ci0KIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgUGx1Z2lu
RGF0YShjb25zdCBQYWdlKik7CisgICAgZXhwbGljaXQgUGx1Z2luRGF0YShQYWdlJik7CiAgICAg
dm9pZCBpbml0UGx1Z2lucygpOwogICAgIGJvb2wgZ2V0UGx1Z2luSW5mb0ZvcldlYlZpc2libGVN
aW1lVHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBQbHVnaW5JbmZvJikgY29uc3Q7CiAgICAg
dm9pZCBnZXRNaW1lc0FuZFBsdWdpbkluZGljZXMoVmVjdG9yPE1pbWVDbGFzc0luZm8+JiwgVmVj
dG9yPHNpemVfdD4mKSBjb25zdDsKICAgICB2b2lkIGdldE1pbWVzQW5kUGx1Z2luSW5kaWNpZXNG
b3JQbHVnaW5zKGNvbnN0IFZlY3RvcjxQbHVnaW5JbmZvPiYsIFZlY3RvcjxNaW1lQ2xhc3NJbmZv
PiYsIFZlY3RvcjxzaXplX3Q+JikgY29uc3Q7CiAKIHByb3RlY3RlZDoKLSNpZiBkZWZpbmVkIEVO
QUJMRV9XRUJfUkVQTEFZICYmIEVOQUJMRV9XRUJfUkVQTEFZCi0gICAgUGx1Z2luRGF0YShWZWN0
b3I8UGx1Z2luSW5mbz4gcGx1Z2lucykKLSAgICAgICAgOiBtX3BsdWdpbnMocGx1Z2lucykKLSAg
ICB7Ci0gICAgfQotI2VuZGlmCi0KLSAgICBjb25zdCBQYWdlKiBtX3BhZ2U7CisgICAgUGFnZSYg
bV9wYWdlOwogICAgIFZlY3RvcjxQbHVnaW5JbmZvPiBtX3BsdWdpbnM7CiB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkluZm9Qcm92aWRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkluZm9Qcm92aWRlci5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDkz
MmI5MDExZGZmOTI5Y2NkZjM5ZjlkYjI4NzA3OTk2NjAzOWRlOAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luSW5mb1Byb3ZpZGVyLmNwcApAQCAtMCwwICsx
LDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBsdWdp
bkluZm9Qcm92aWRlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1BsdWdpbkluZm9Qcm92
aWRlcjo6flBsdWdpbkluZm9Qcm92aWRlcigpCit7CisgICAgQVNTRVJUKG1fcGFnZXMuaXNFbXB0
eSgpKTsKK30KKwordm9pZCBQbHVnaW5JbmZvUHJvdmlkZXI6OmFkZFBhZ2UoUGFnZSYgcGFnZSkK
K3sKKyAgICBBU1NFUlQoIW1fcGFnZXMuY29udGFpbnMoJnBhZ2UpKTsKKworICAgIG1fcGFnZXMu
YWRkKCZwYWdlKTsKK30KKwordm9pZCBQbHVnaW5JbmZvUHJvdmlkZXI6OnJlbW92ZVBhZ2UoUGFn
ZSYgcGFnZSkKK3sKKyAgICBBU1NFUlQobV9wYWdlcy5jb250YWlucygmcGFnZSkpOworCisgICAg
bV9wYWdlcy5yZW1vdmUoJnBhZ2UpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbHVnaW5zL1BsdWdpbkluZm9Qcm92aWRlci5oIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9Q
bHVnaW5JbmZvUHJvdmlkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZWNmY2UyMTYyOGRjMjFhNWM1Y2E4ZTFk
NDhmNjVkNzY3ZmU0NmE0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lu
cy9QbHVnaW5JbmZvUHJvdmlkZXIuaApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpbmNsdWRlICJQbHVnaW5EYXRhLmgiCisjaW5jbHVkZSA8d3RmL0hhc2hT
ZXQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBXRUJDT1JFX0VYUE9SVCBQbHVn
aW5JbmZvUHJvdmlkZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxQbHVnaW5JbmZvUHJvdmlkZXI+IHsK
K3B1YmxpYzoKKyAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIH5QbHVnaW5JbmZvUHJvdmlkZXIo
KTsKKworICAgIHZvaWQgcmVmcmVzaFBsdWdpbnMoYm9vbCByZWxvYWRQYWdlcyk7CisKKyAgICB2
b2lkIGFkZFBhZ2UoUGFnZSYpOworICAgIHZvaWQgcmVtb3ZlUGFnZShQYWdlJik7CisKKyAgICB2
aXJ0dWFsIHZvaWQgcmVmcmVzaFBsdWdpbnMoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGdldFBs
dWdpbkluZm8oUGFnZSYsIFZlY3RvcjxQbHVnaW5JbmZvPiYpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgZ2V0V2ViVmlzaWJsZVBsdWdpbkluZm8oUGFnZSYsIFZlY3RvcjxQbHVnaW5JbmZvPiYpID0g
MDsKKyNpZiBQTEFURk9STShNQUMpCisgICAgdmlydHVhbCB2b2lkIHNldFBsdWdpbkxvYWRDbGll
bnRQb2xpY3koUGx1Z2luTG9hZENsaWVudFBvbGljeSwgY29uc3QgU3RyaW5nJiBob3N0LCBjb25z
dCBTdHJpbmcmIGJ1bmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdmVyc2lvblN0cmluZykg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBjbGVhclBsdWdpbkNsaWVudFBvbGljaWVzKCkgPSAwOwor
I2VuZGlmCisKK3ByaXZhdGU6CisgICAgSGFzaFNldDxQYWdlKj4gbV9wYWdlczsKK307CisKK30K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9TZXJpYWxpemF0aW9uTWV0aG9kcy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvU2VyaWFsaXphdGlvbk1ldGhvZHMuY3BwCmluZGV4
IDMyYmQ0NTMyNWQ4MDBmZmZiZTFlNzU2YWNmYjdjM2M3NDNiMTI3Y2YuLjQ4NjA1YjI2MTNhZWUw
ODZjMWIwODM5YTczMGEwY2FkMzk1MGMyN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
cGxheS9TZXJpYWxpemF0aW9uTWV0aG9kcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVwbGF5
L1NlcmlhbGl6YXRpb25NZXRob2RzLmNwcApAQCAtNDQ4LDIwICs0NDgsMTAgQEAgRW5jb2RlZFZh
bHVlIEVuY29kaW5nVHJhaXRzPFBsdWdpbkRhdGE+OjplbmNvZGVWYWx1ZShSZWZQdHI8UGx1Z2lu
RGF0YT4gaW5wdXQpCiAgICAgcmV0dXJuIGVuY29kZWREYXRhOwogfQogCi1jbGFzcyBEZXNlcmlh
bGl6ZWRQbHVnaW5EYXRhIDogcHVibGljIFBsdWdpbkRhdGEgewotcHVibGljOgotICAgIERlc2Vy
aWFsaXplZFBsdWdpbkRhdGEoVmVjdG9yPFBsdWdpbkluZm8+IHBsdWdpbnMpCi0gICAgICAgIDog
UGx1Z2luRGF0YShwbHVnaW5zKQotICAgIHsKLSAgICB9Ci19OwotCi1ib29sIEVuY29kaW5nVHJh
aXRzPFBsdWdpbkRhdGE+OjpkZWNvZGVWYWx1ZShFbmNvZGVkVmFsdWUmIGVuY29kZWREYXRhLCBS
ZWZQdHI8UGx1Z2luRGF0YT4mIGlucHV0KQorYm9vbCBFbmNvZGluZ1RyYWl0czxQbHVnaW5EYXRh
Pjo6ZGVjb2RlVmFsdWUoRW5jb2RlZFZhbHVlJiBlbmNvZGVkRGF0YSwgUmVmUHRyPFBsdWdpbkRh
dGE+JikKIHsKLSAgICBERUNPREVfVFlQRV9XSVRIX0tFWShlbmNvZGVkRGF0YSwgVmVjdG9yPFBs
dWdpbkluZm8+LCBwbHVnaW5zKTsKLQogICAgIC8vIEZJWE1FOiBUaGlzIG5lZWRzIHRvIHdvcmsg
aW4gdGVybXMgb2Ygd2ViLXZpc2libGUgcGx1Zy1pbnMuCi0gICAgaW5wdXQgPSBhZG9wdFJlZihu
ZXcgRGVzZXJpYWxpemVkUGx1Z2luRGF0YShwbHVnaW5zKSk7CisgICAgREVDT0RFX1RZUEVfV0lU
SF9LRVkoZW5jb2RlZERhdGEsIFZlY3RvcjxQbHVnaW5JbmZvPiwgcGx1Z2lucyk7CiAKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1XaW4uY21h
a2UgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtV2luLmNtYWtlCmluZGV4IDYyOGIyNzNmODE3MTgy
MmQwMTg2YjZlMDVhNzQ2ZWE2ODM0ZTcyNjAuLjQ1ZmE4MjA5ZGFhMTIyOGZhNjJkYzZiMTFiMjQz
NTkwNDUwM2Y3ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1XaW4uY21ha2UK
KysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybVdpbi5jbWFrZQpAQCAtMjQ2LDYgKzI0Niw4IEBA
IGxpc3QoQVBQRU5EIFdlYktpdF9TT1VSQ0VTX1dlYkNvcmVTdXBwb3J0CiAgICAgd2luL1dlYkNv
cmVTdXBwb3J0L1dlYkluc3BlY3RvckRlbGVnYXRlLmgKICAgICB3aW4vV2ViQ29yZVN1cHBvcnQv
V2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAogICAgIHdpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0
Zm9ybVN0cmF0ZWdpZXMuaAorICAgIHdpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbHVnaW5JbmZvUHJv
dmlkZXIuY3BwCisgICAgd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsdWdpbkluZm9Qcm92aWRlci5o
CiAgICAgd2luL1dlYkNvcmVTdXBwb3J0L1dlYlZpc2l0ZWRMaW5rU3RvcmUuY3BwCiAgICAgd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYlZpc2l0ZWRMaW5rU3RvcmUuaAogKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOTkxY2U5MjEzZWIzMjEz
MzUxYTVkMzg2NzhmNzUzNDRiNmIxNTg4My4uZDk4ODQ1MWFkYTBlZjNiZTI0MDkzN2JiMjUxNTRh
Y2I1MThjMGE3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC0xOSw2ICsxOSw4IEBACiAJCTE0MzBDMTJEMUIyQzVERjcwMERFQTAxRCAv
KiBXZWJWaWV3R3JvdXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDE0MzBDMTJCMUIyQzVERjcwMERFQTAxRCAvKiBXZWJWaWV3R3JvdXAuaCAqLzsgfTsK
IAkJMTREODI1MkYwQUY5NTUwOTAwMDRGMDU3IC8qIFdlYkNocm9tZUNsaWVudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTREODI1MkQwQUY5NTUwOTAw
MDRGMDU3IC8qIFdlYkNocm9tZUNsaWVudC5oICovOyB9OwogCQkxNEQ4MjUzMDBBRjk1NTA5MDAw
NEYwNTcgLyogV2ViQ2hyb21lQ2xpZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMTREODI1MkUwQUY5NTUwOTAwMDRGMDU3IC8qIFdlYkNocm9tZUNs
aWVudC5tbSAqLzsgfTsKKwkJMUEwOEZFRTAxRDU5Mzc2RTAwOEJBOENCIC8qIFdlYlBsdWdpbklu
Zm9Qcm92aWRlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDFBMDhGRURFMUQ1OTM3NkUwMDhCQThDQiAvKiBXZWJQbHVnaW5JbmZvUHJvdmlkZXIubW0g
Ki87IH07CisJCTFBMDhGRUUxMUQ1OTM3NkUwMDhCQThDQiAvKiBXZWJQbHVnaW5JbmZvUHJvdmlk
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBMDhG
RURGMUQ1OTM3NkUwMDhCQThDQiAvKiBXZWJQbHVnaW5JbmZvUHJvdmlkZXIuaCAqLzsgfTsKIAkJ
MUEyREJFOUYwRjI1MUUzQTAwMzZGOEE2IC8qIFByb3h5SW5zdGFuY2UuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBMkRCRTlEMEYyNTFFM0EwMDM2RjhB
NiAvKiBQcm94eUluc3RhbmNlLmggKi87IH07CiAJCTFBMkRCRUEwMEYyNTFFM0EwMDM2RjhBNiAv
KiBQcm94eUluc3RhbmNlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMUEyREJFOUUwRjI1MUUzQTAwMzZGOEE2IC8qIFByb3h5SW5zdGFuY2UubW0gKi87
IH07CiAJCTFBNERGNTIyMEVDOEM3NEQwMDZCRDRCNCAvKiBXZWJOZXRzY2FwZVBsdWdpblZpZXcu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBNERGNTIw
MEVDOEM3NEQwMDZCRDRCNCAvKiBXZWJOZXRzY2FwZVBsdWdpblZpZXcuaCAqLzsgfTsKQEAgLTQ3
Niw2ICs0NzgsOCBAQAogCQkxNDMwQzEyQjFCMkM1REY3MDBERUEwMUQgLyogV2ViVmlld0dyb3Vw
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYlZpZXdHcm91cC5oOyBwYXRo
ID0gV2ViQ29yZVN1cHBvcnQvV2ViVmlld0dyb3VwLmg7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9P
VDsgfTsKIAkJMTREODI1MkQwQUY5NTUwOTAwMDRGMDU3IC8qIFdlYkNocm9tZUNsaWVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ2hyb21lQ2xpZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0RDgyNTJFMEFGOTU1MDkwMDA0RjA1NyAvKiBXZWJD
aHJvbWVDbGllbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBX
ZWJDaHJvbWVDbGllbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFBMDhGRURF
MUQ1OTM3NkUwMDhCQThDQiAvKiBXZWJQbHVnaW5JbmZvUHJvdmlkZXIubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJQbHVnaW5JbmZvUHJvdmlkZXIubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFBMDhGRURGMUQ1OTM3NkUwMDhCQThDQiAvKiBX
ZWJQbHVnaW5JbmZvUHJvdmlkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViUGx1Z2luSW5mb1Byb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFB
MkRCRTlEMEYyNTFFM0EwMDM2RjhBNiAvKiBQcm94eUluc3RhbmNlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFByb3h5SW5zdGFuY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMUEyREJFOUUwRjI1MUUzQTAwMzZGOEE2IC8qIFByb3h5SW5zdGFuY2UubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQcm94eUluc3RhbmNlLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTRERjUyMDBFQzhDNzREMDA2QkQ0QjQgLyog
V2ViTmV0c2NhcGVQbHVnaW5WaWV3LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYk5ldHNjYXBlUGx1Z2luVmlldy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTU5Nyw2ICsxNjAxLDggQEAKIAkJCQkxQUIxRjc2RDFEMUIyNjBCMDA3QzlCRDEgLyogV2ViUGF5
bWVudENvb3JkaW5hdG9yQ2xpZW50Lm1tICovLAogCQkJCTFBQTg3OUI0MTFDQkU5QkYwMDNDNjY0
RiAvKiBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCAqLywKIAkJCQkxQUE4NzlCNTExQ0JFOUJGMDAz
QzY2NEYgLyogV2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1tICovLAorCQkJCTFBMDhGRURFMUQ1OTM3
NkUwMDhCQThDQiAvKiBXZWJQbHVnaW5JbmZvUHJvdmlkZXIubW0gKi8sCisJCQkJMUEwOEZFREYx
RDU5Mzc2RTAwOEJBOENCIC8qIFdlYlBsdWdpbkluZm9Qcm92aWRlci5oICovLAogCQkJCTFBNkEy
MDhDMTg4NjE1NDYwMEU1MEY1RiAvKiBXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQuaCAqLywKIAkJ
CQkxQTZBMjA4QjE4ODYxNTQ2MDBFNTBGNUYgLyogV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50Lm1t
ICovLAogCQkJCUU0QUVGOTc5MUMwREY0QkMwMEIwMTcyNyAvKiBXZWJSZXNvdXJjZUxvYWRTY2hl
ZHVsZXIuY3BwICovLApAQCAtMTc5NCw2ICsxODAwLDcgQEAKIAkJCQkxQzhDQjA3QTBBRTk4MzBD
MDBCMUY2RTkgLyogV2ViRWRpdGluZ0RlbGVnYXRlUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNEJGOTlGOTAwQUUwNTBCQzAwODE1QzJCIC8qIFdlYkVkaXRvckNsaWVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJREQ4OTY4MjAwOUFBODcyNDAwOTdFN0YwIC8qIFdlYkVsZW1lbnREaWN0aW9u
YXJ5LmggaW4gSGVhZGVycyAqLywKKwkJCQkxQTA4RkVFMTFENTkzNzZFMDA4QkE4Q0IgLyogV2Vi
UGx1Z2luSW5mb1Byb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTBDMUQ2ODE4MjAzMDBF
MDAzNjg4M0EgLyogV2ViRml4ZWRQb3NpdGlvbkNvbnRlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUExMEMxRDZBMTgyMDMwMEUwMDM2ODgzQSAvKiBXZWJGaXhlZFBvc2l0aW9uQ29udGVudEludGVy
bmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk5Mzk4MTA1MjA4MjRCRjAxMDA4REYwMzggLyogV2Vi
Rm9ybURlbGVnYXRlLmggaW4gSGVhZGVycyAqLywKQEAgLTIyNjksNiArMjI3Niw3IEBACiAJCQkJ
MUFBRjVDRjEwRURERTU4NjAwOEQ4ODNEIC8qIFdlYktpdFBsdWdpbkhvc3QuZGVmcyBpbiBTb3Vy
Y2VzICovLAogCQkJCTkzOTgxMEM1MDgyNEJGMDEwMDhERjAzOCAvKiBXZWJLaXRTdGF0aXN0aWNz
Lm0gaW4gU291cmNlcyAqLywKIAkJCQkxQzBENDA4ODBBQzFDOEY0MDAwOUMxMTMgLyogV2ViS2l0
VmVyc2lvbkNoZWNrcy5tIGluIFNvdXJjZXMgKi8sCisJCQkJMUEwOEZFRTAxRDU5Mzc2RTAwOEJB
OENCIC8qIFdlYlBsdWdpbkluZm9Qcm92aWRlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCUVENUI5
NTI0MTExQjcyNUEwMDQ3MjI5OCAvKiBXZWJMb2NhbGl6YWJsZVN0cmluZ3MubW0gaW4gU291cmNl
cyAqLywKIAkJCQlCQzQyRDM0RDEzMUVEMzg4MDA3NUZBNEIgLyogV2ViTG9jYWxpemFibGVTdHJp
bmdzSW50ZXJuYWwubW0gaW4gU291cmNlcyAqLywKIAkJCQkwNzJFNUY0NjFBQkY4ODc1MDAwM0Ix
NjQgLyogV2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlci5tbSBpbiBTb3VyY2VzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGx1Z2luSW5mb1By
b3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbHVnaW5JbmZv
UHJvdmlkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NjlmOTc2Mzg2NDBlY2Q3MmVhYmI5NTM1NjgxN2U4ZTU3
YTQ5NGYwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLmgKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbXBvcnQgPFdlYkNvcmUvUGx1Z2luSW5mb1Byb3ZpZGVyLmg+CisKK2NsYXNzIFdlYlBsdWdp
bkluZm9Qcm92aWRlciBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpQbHVnaW5JbmZvUHJvdmlkZXIg
eworICAgIGZyaWVuZCBjbGFzcyBOZXZlckRlc3Ryb3llZDxXZWJQbHVnaW5JbmZvUHJvdmlkZXI+
OworCitwdWJsaWM6CisgICAgc3RhdGljIFdlYlBsdWdpbkluZm9Qcm92aWRlciYgc2luZ2xldG9u
KCk7CisgICAgdmlydHVhbCB+V2ViUGx1Z2luSW5mb1Byb3ZpZGVyKCk7CisKK3ByaXZhdGU6Cisg
ICAgdm9pZCByZWZyZXNoUGx1Z2lucygpIG92ZXJyaWRlOworICAgIHZvaWQgZ2V0UGx1Z2luSW5m
byhXZWJDb3JlOjpQYWdlJiwgVmVjdG9yPFdlYkNvcmU6OlBsdWdpbkluZm8+Jikgb3ZlcnJpZGU7
CisgICAgdm9pZCBnZXRXZWJWaXNpYmxlUGx1Z2luSW5mbyhXZWJDb3JlOjpQYWdlJiwgVmVjdG9y
PFdlYkNvcmU6OlBsdWdpbkluZm8+Jikgb3ZlcnJpZGU7CisjaWYgUExBVEZPUk0oTUFDKQorICAg
IHZvaWQgc2V0UGx1Z2luTG9hZENsaWVudFBvbGljeShXZWJDb3JlOjpQbHVnaW5Mb2FkQ2xpZW50
UG9saWN5LCBjb25zdCBTdHJpbmcmIGhvc3QsIGNvbnN0IFN0cmluZyYgYnVuZGxlSWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiB2ZXJzaW9uU3RyaW5nKSBvdmVycmlkZTsKKyAgICB2b2lkIGNsZWFy
UGx1Z2luQ2xpZW50UG9saWNpZXMoKSBvdmVycmlkZTsKKyNlbmRpZgorCisgICAgV2ViUGx1Z2lu
SW5mb1Byb3ZpZGVyKCk7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk4ZDgwNWEx
ZTVlYzQ5ZmFhNzBjOGM5OWMwYTlkMDBjYzcwYTcwMzIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbHVnaW5JbmZvUHJvdmlkZXIubW0KQEAg
LTAsMCArMSw3MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgIldlYlBsdWdpbkluZm9Qcm92aWRl
ci5oIgorCisvLyBGSVhNRTogV2Ugc2hvdWxkbid0IGNhbGwgb3V0IHRvIHRoZSBwbGF0Zm9ybSBz
dHJhdGVneSBmb3IgdGhpcy4KKyNpbXBvcnQgIldlYlBsYXRmb3JtU3RyYXRlZ2llcy5oIgorI2lt
cG9ydCA8V2ViQ29yZS9QbHVnaW5TdHJhdGVneS5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKKworV2ViUGx1Z2luSW5mb1Byb3ZpZGVyJiBXZWJQbHVnaW5JbmZvUHJvdmlkZXI6OnNpbmds
ZXRvbigpCit7CisgICAgc3RhdGljIFdlYlBsdWdpbkluZm9Qcm92aWRlciYgcGx1Z2luSW5mb1By
b3ZpZGVyID0gYWRvcHRSZWYoKm5ldyBXZWJQbHVnaW5JbmZvUHJvdmlkZXIpLmxlYWtSZWYoKTsK
KworICAgIHJldHVybiBwbHVnaW5JbmZvUHJvdmlkZXI7Cit9CisKK1dlYlBsdWdpbkluZm9Qcm92
aWRlcjo6V2ViUGx1Z2luSW5mb1Byb3ZpZGVyKCkKK3sKK30KKworV2ViUGx1Z2luSW5mb1Byb3Zp
ZGVyOjp+V2ViUGx1Z2luSW5mb1Byb3ZpZGVyKCkKK3sKK30KKwordm9pZCBXZWJQbHVnaW5JbmZv
UHJvdmlkZXI6OnJlZnJlc2hQbHVnaW5zKCkKK3sKKyAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+
cGx1Z2luU3RyYXRlZ3koKS0+cmVmcmVzaFBsdWdpbnMoKTsKK30KKwordm9pZCBXZWJQbHVnaW5J
bmZvUHJvdmlkZXI6OmdldFBsdWdpbkluZm8oV2ViQ29yZTo6UGFnZSYgcGFnZSwgVmVjdG9yPFdl
YkNvcmU6OlBsdWdpbkluZm8+JiBwbHVnaW5zKQoreworICAgIHBsYXRmb3JtU3RyYXRlZ2llcygp
LT5wbHVnaW5TdHJhdGVneSgpLT5nZXRQbHVnaW5JbmZvKCZwYWdlLCBwbHVnaW5zKTsKK30KKwor
dm9pZCBXZWJQbHVnaW5JbmZvUHJvdmlkZXI6OmdldFdlYlZpc2libGVQbHVnaW5JbmZvKFdlYkNv
cmU6OlBhZ2UmIHBhZ2UsIFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiYgcGx1Z2lucykKK3sK
KyAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGx1Z2luU3RyYXRlZ3koKS0+Z2V0V2ViVmlzaWJs
ZVBsdWdpbkluZm8oJnBhZ2UsIHBsdWdpbnMpOworfQorCisjaWYgUExBVEZPUk0oTUFDKQordm9p
ZCBXZWJQbHVnaW5JbmZvUHJvdmlkZXI6OnNldFBsdWdpbkxvYWRDbGllbnRQb2xpY3koV2ViQ29y
ZTo6UGx1Z2luTG9hZENsaWVudFBvbGljeSwgY29uc3QgU3RyaW5nJiBob3N0LCBjb25zdCBTdHJp
bmcmIGJ1bmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdmVyc2lvblN0cmluZykKK3sKK30K
Kwordm9pZCBXZWJQbHVnaW5JbmZvUHJvdmlkZXI6OmNsZWFyUGx1Z2luQ2xpZW50UG9saWNpZXMo
KQoreworfQorI2VuZGlmCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCA2
Zjg3YjQwODI1ZGE2OTM5MDMxOTRhOTA2NmJmNzcxODljMzUxOTc3Li4zNjRjYjU0NDIwY2E2NWRi
MDY2ZjY4NzA2MDExM2VjNDllZDQyYjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3
Lm1tCkBAIC05Miw2ICs5Miw3IEBACiAjaW1wb3J0ICJXZWJQYXltZW50Q29vcmRpbmF0b3JDbGll
bnQuaCIKICNpbXBvcnQgIldlYlBsYXRmb3JtU3RyYXRlZ2llcy5oIgogI2ltcG9ydCAiV2ViUGx1
Z2luRGF0YWJhc2UuaCIKKyNpbXBvcnQgIldlYlBsdWdpbkluZm9Qcm92aWRlci5oIgogI2ltcG9y
dCAiV2ViUG9saWN5RGVsZWdhdGUuaCIKICNpbXBvcnQgIldlYlByZWZlcmVuY2VLZXlzUHJpdmF0
ZS5oIgogI2ltcG9ydCAiV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgiCkBAIC0xMDE4LDYgKzEwMTks
NyBAQCBzdGF0aWMgdm9pZCBXZWJLaXRJbml0aWFsaXplR2FtZXBhZFByb3ZpZGVySWZOZWNlc3Nh
cnkoKQogICAgIHBhZ2VDb25maWd1cmF0aW9uLnByb2dyZXNzVHJhY2tlckNsaWVudCA9IG5ldyBX
ZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQoc2VsZik7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uYXBw
bGljYXRpb25DYWNoZVN0b3JhZ2UgPSAmd2ViQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UoKTsKICAg
ICBwYWdlQ29uZmlndXJhdGlvbi5kYXRhYmFzZVByb3ZpZGVyID0gJldlYkRhdGFiYXNlUHJvdmlk
ZXI6OnNpbmdsZXRvbigpOworICAgIHBhZ2VDb25maWd1cmF0aW9uLnBsdWdpbkluZm9Qcm92aWRl
ciA9ICZXZWJQbHVnaW5JbmZvUHJvdmlkZXI6OnNpbmdsZXRvbigpOwogICAgIHBhZ2VDb25maWd1
cmF0aW9uLnN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlciA9ICZfcHJpdmF0ZS0+Z3JvdXAtPnN0b3Jh
Z2VOYW1lc3BhY2VQcm92aWRlcigpOwogICAgIHBhZ2VDb25maWd1cmF0aW9uLnVzZXJDb250ZW50
UHJvdmlkZXIgPSAmX3ByaXZhdGUtPmdyb3VwLT51c2VyQ29udGVudENvbnRyb2xsZXIoKTsKICAg
ICBwYWdlQ29uZmlndXJhdGlvbi52aXNpdGVkTGlua1N0b3JlID0gJl9wcml2YXRlLT5ncm91cC0+
dmlzaXRlZExpbmtTdG9yZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29y
ZVN1cHBvcnQvV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1dl
YkNvcmVTdXBwb3J0L1dlYlBsdWdpbkluZm9Qcm92aWRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTdmNzJk
YjQ1Y2E4ZTQ0YTY3OGVmOWFjMzU4ZDg3MTc0Y2U1MGI5MAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsdWdpbkluZm9Qcm92aWRlci5jcHAK
QEAgLTAsMCArMSw2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJXZWJQbHVnaW5JbmZvUHJv
dmlkZXIuaCIKKworLy8gRklYTUU6IFdlIHNob3VsZG4ndCBjYWxsIG91dCB0byB0aGUgcGxhdGZv
cm0gc3RyYXRlZ3kgZm9yIHRoaXMuCisjaW5jbHVkZSAiV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgi
CisjaW5jbHVkZSA8V2ViQ29yZS9QbHVnaW5TdHJhdGVneS5oPgorCit1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKKworV2ViUGx1Z2luSW5mb1Byb3ZpZGVyJiBXZWJQbHVnaW5JbmZvUHJvdmlkZXI6
OnNpbmdsZXRvbigpCit7CisgICAgc3RhdGljIFdlYlBsdWdpbkluZm9Qcm92aWRlciYgcGx1Z2lu
SW5mb1Byb3ZpZGVyID0gYWRvcHRSZWYoKm5ldyBXZWJQbHVnaW5JbmZvUHJvdmlkZXIpLmxlYWtS
ZWYoKTsKKworICAgIHJldHVybiBwbHVnaW5JbmZvUHJvdmlkZXI7Cit9CisKK1dlYlBsdWdpbklu
Zm9Qcm92aWRlcjo6V2ViUGx1Z2luSW5mb1Byb3ZpZGVyKCkKK3sKK30KKworV2ViUGx1Z2luSW5m
b1Byb3ZpZGVyOjp+V2ViUGx1Z2luSW5mb1Byb3ZpZGVyKCkKK3sKK30KKwordm9pZCBXZWJQbHVn
aW5JbmZvUHJvdmlkZXI6OnJlZnJlc2hQbHVnaW5zKCkKK3sKKyAgICBwbGF0Zm9ybVN0cmF0ZWdp
ZXMoKS0+cGx1Z2luU3RyYXRlZ3koKS0+cmVmcmVzaFBsdWdpbnMoKTsKK30KKwordm9pZCBXZWJQ
bHVnaW5JbmZvUHJvdmlkZXI6OmdldFBsdWdpbkluZm8oV2ViQ29yZTo6UGFnZSYgcGFnZSwgVmVj
dG9yPFdlYkNvcmU6OlBsdWdpbkluZm8+JiBwbHVnaW5zKQoreworICAgIHBsYXRmb3JtU3RyYXRl
Z2llcygpLT5wbHVnaW5TdHJhdGVneSgpLT5nZXRQbHVnaW5JbmZvKCZwYWdlLCBwbHVnaW5zKTsK
K30KKwordm9pZCBXZWJQbHVnaW5JbmZvUHJvdmlkZXI6OmdldFdlYlZpc2libGVQbHVnaW5JbmZv
KFdlYkNvcmU6OlBhZ2UmIHBhZ2UsIFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiYgcGx1Z2lu
cykKK3sKKyAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGx1Z2luU3RyYXRlZ3koKS0+Z2V0V2Vi
VmlzaWJsZVBsdWdpbkluZm8oJnBhZ2UsIHBsdWdpbnMpOworfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLmggYi9Tb3Vy
Y2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbHVnaW5JbmZvUHJvdmlkZXIuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hODE1Y2M4OTNjYmNjYzZiZTlkYTBlY2Y5MGRiODU2NDY4YjRlMjE2Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGx1Z2luSW5m
b1Byb3ZpZGVyLmgKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaW5jbHVkZSA8V2ViQ29yZS9QbHVnaW5JbmZvUHJvdmlkZXIuaD4KKworY2xhc3MgV2ViUGx1
Z2luSW5mb1Byb3ZpZGVyIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OlBsdWdpbkluZm9Qcm92aWRl
ciB7CisgICAgZnJpZW5kIGNsYXNzIE5ldmVyRGVzdHJveWVkPFdlYlBsdWdpbkluZm9Qcm92aWRl
cj47CisKK3B1YmxpYzoKKyAgICBzdGF0aWMgV2ViUGx1Z2luSW5mb1Byb3ZpZGVyJiBzaW5nbGV0
b24oKTsKKyAgICB2aXJ0dWFsIH5XZWJQbHVnaW5JbmZvUHJvdmlkZXIoKTsKKworcHJpdmF0ZToK
KyAgICB2b2lkIHJlZnJlc2hQbHVnaW5zKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBnZXRQbHVnaW5J
bmZvKFdlYkNvcmU6OlBhZ2UmLCBWZWN0b3I8V2ViQ29yZTo6UGx1Z2luSW5mbz4mKSBvdmVycmlk
ZTsKKyAgICB2b2lkIGdldFdlYlZpc2libGVQbHVnaW5JbmZvKFdlYkNvcmU6OlBhZ2UmLCBWZWN0
b3I8V2ViQ29yZTo6UGx1Z2luSW5mbz4mKSBvdmVycmlkZTsKKyNpZiBQTEFURk9STShNQUMpCisg
ICAgdm9pZCBzZXRQbHVnaW5Mb2FkQ2xpZW50UG9saWN5KFdlYkNvcmU6OlBsdWdpbkxvYWRDbGll
bnRQb2xpY3ksIGNvbnN0IFN0cmluZyYgaG9zdCwgY29uc3QgU3RyaW5nJiBidW5kbGVJZGVudGlm
aWVyLCBjb25zdCBTdHJpbmcmIHZlcnNpb25TdHJpbmcpIG92ZXJyaWRlOworICAgIHZvaWQgY2xl
YXJQbHVnaW5DbGllbnRQb2xpY2llcygpIG92ZXJyaWRlOworI2VuZGlmCisKKyAgICBXZWJQbHVn
aW5JbmZvUHJvdmlkZXIoKTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxp
c3RzLnR4dCBiL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0CmluZGV4IGE2ODQyNTU2ODhj
MjliMzY3NGM0Y2FlZmM0NjZjNzU0YTc3NzllMDguLjdiZjZjN2Y2OThjYmY4NzE0MWI0ZGU1YTg5
Yzk2ZjczNGIzYzM5NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0
CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0CkBAIC01OTAsNiArNTkwLDcgQEAg
c2V0KFdlYktpdDJfU09VUkNFUwogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNz
Q29ubmVjdGlvbk1hbmFnZXIuY3BwCiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb3h5
LmNwcAogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAorICAgIFdlYlByb2Nl
c3MvUGx1Z2lucy9XZWJQbHVnaW5JbmZvUHJvdmlkZXIuY3BwCiAKICAgICBXZWJQcm9jZXNzL1Bs
dWdpbnMvTmV0c2NhcGUvSlNOUE1ldGhvZC5jcHAKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0
c2NhcGUvSlNOUE9iamVjdC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAzNDFmNDFlZjI4MDZjNzRjNWRkYWZlZTU1MjVmN2Rk
ZmM5NjQwZTgxLi4yZGM4ZjkwYjk3Zjg2MGRlZjM4MjM5NWU5NDc1NjExNTM0ZDUyYWNhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC0xMzQsNiArMTM0LDcgQEAKIAkJMUEwN0QyRjkxOTE5QjNBOTAwRUNEQTE2IC8qIG1lc3NhZ2Vz
LnB5IGluIENvcHkgTWVzc2FnZSBHZW5lcmF0aW9uIFNjcmlwdHMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMEZDMDg1NkYxODdDRTBBOTAwNzgwRDg2IC8qIG1lc3NhZ2VzLnB5
ICovOyB9OwogCQkxQTA3RDJGQTE5MTlCM0E5MDBFQ0RBMTYgLyogbW9kZWwucHkgaW4gQ29weSBN
ZXNzYWdlIEdlbmVyYXRpb24gU2NyaXB0cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRkMwODU3MDE4N0NFMEE5MDA3ODBEODYgLyogbW9kZWwucHkgKi87IH07CiAJCTFBMDdE
MkZCMTkxOUIzQTkwMEVDREExNiAvKiBwYXJzZXIucHkgaW4gQ29weSBNZXNzYWdlIEdlbmVyYXRp
b24gU2NyaXB0cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkMwODU3MTE4
N0NFMEE5MDA3ODBEODYgLyogcGFyc2VyLnB5ICovOyB9OworCQkxQTA4RkVFNDFENTkzRTJBMDA4
QkE4Q0IgLyogV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBMDhGRUUyMUQ1OTNDRjEwMDhCQThDQiAvKiBXZWJQ
bHVnaW5JbmZvUHJvdmlkZXIuY3BwICovOyB9OwogCQkxQTBFQzYwMzEyNEE5RjJDMDA3RUY0QTUg
LyogUGx1Z2luUHJvY2Vzc01hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDFBMEVDNjAxMTI0QTlGMkMwMDdFRjRBNSAvKiBQbHVnaW5Qcm9jZXNz
TWFuYWdlci5oICovOyB9OwogCQkxQTBFQzYwNDEyNEE5RjJDMDA3RUY0QTUgLyogUGx1Z2luUHJv
Y2Vzc01hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMUEwRUM2MDIxMjRBOUYyQzAwN0VGNEE1IC8qIFBsdWdpblByb2Nlc3NNYW5hZ2VyLmNw
cCAqLzsgfTsKIAkJMUEwRUM2QzAxMjRCQkQ5QjAwN0VGNEE1IC8qIFBsdWdpblByb2Nlc3NNZXNz
YWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEw
RUM2QkUxMjRCQkQ5QjAwN0VGNEE1IC8qIFBsdWdpblByb2Nlc3NNZXNzYWdlcy5oICovOyB9OwpA
QCAtMjA5Miw2ICsyMDkzLDggQEAKIAkJMUEwNDNGNjcxMjUxNEQ4QjAwRkZCRkI1IC8qIFdlYlBy
b2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFdlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUEwNDNGNjgxMjUxNEQ4QjAwRkZCRkI1IC8q
IFdlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxQTA0RjYxNzFBNEEzQTdBMDBBMjFCNkUgLyogV2ViUHJvY2Vzc1Byb3h5
Q29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJQcm9j
ZXNzUHJveHlDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUEwOEZFRTIx
RDU5M0NGMTAwOEJBOENCIC8qIFdlYlBsdWdpbkluZm9Qcm92aWRlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJQbHVnaW5JbmZvUHJvdmlkZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQTA4RkVFMzFENTkzQ0YxMDA4QkE4Q0IgLyogV2Vi
UGx1Z2luSW5mb1Byb3ZpZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
YlBsdWdpbkluZm9Qcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTBF
QzYwMTEyNEE5RjJDMDA3RUY0QTUgLyogUGx1Z2luUHJvY2Vzc01hbmFnZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGx1Z2luUHJvY2Vzc01hbmFnZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUEwRUM2MDIxMjRBOUYyQzAwN0VGNEE1IC8qIFBsdWdpblBy
b2Nlc3NNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBs
dWdpblByb2Nlc3NNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUEw
RUM2QjExMjRCQkQzNjAwN0VGNEE1IC8qIFBsdWdpblByb2Nlc3MubWVzc2FnZXMuaW4gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gUGx1Z2luUHJvY2Vzcy5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTQzNzIsNiArNDM3NSw4IEBACiAJCQkJMUE4RUZBNUIxMjUyQjdD
RTAwRjcwNjdGIC8qIFBsdWdpblByb3h5Lm1lc3NhZ2VzLmluICovLAogCQkJCTFBNkZCN0FDMTFF
NjRCNjgwMERCMTM3MSAvKiBQbHVnaW5WaWV3LmNwcCAqLywKIAkJCQkxQTZGQjdBRDExRTY0QjY4
MDBEQjEzNzEgLyogUGx1Z2luVmlldy5oICovLAorCQkJCTFBMDhGRUUyMUQ1OTNDRjEwMDhCQThD
QiAvKiBXZWJQbHVnaW5JbmZvUHJvdmlkZXIuY3BwICovLAorCQkJCTFBMDhGRUUzMUQ1OTNDRjEw
MDhCQThDQiAvKiBXZWJQbHVnaW5JbmZvUHJvdmlkZXIuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0g
UGx1Z2luczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC05MTMyLDYgKzkxMzcsNyBA
QAogCQkJCTFBMkQ4MkE2MTI3RjRFQUIwMDFFQjk2MiAvKiBOUE9iamVjdFByb3h5LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTFBMkQ4MkE4MTI3RjRFQUIwMDFFQjk2MiAvKiBOUFJlbW90ZU9iamVj
dE1hcC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTIxNjFCMTExRjM3NjY0MDA4QUQwRjUgLyog
TlBSdW50aW1lT2JqZWN0TWFwLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFBMDhGRUU0MUQ1OTNF
MkEwMDhCQThDQiAvKiBXZWJQbHVnaW5JbmZvUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMUEyMTYyQjAxMUYzODk3MTAwOEFEMEY1IC8qIE5QUnVudGltZVV0aWxpdGllcy5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkxQTJEODRBNDEyN0Y2QUQxMDAxRUI5NjIgLyogTlBWYXJpYW50RGF0
YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzhBQ0ExNDE2NjcwRDg5MDA0QzE5NDEgLyogT2Jq
Q09iamVjdEdyYXBoLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1BsdWdpbnMvV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9XZWJQbHVnaW5JbmZvUHJvdmlkZXIuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjhmNTZkZGUxMGY4YWEyOTY3OWU1M2IyMTIwMzdhMDYwNTQ5YzRlNmUKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvV2ViUGx1Z2luSW5m
b1Byb3ZpZGVyLmNwcApAQCAtMCwwICsxLDc3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIldlYlBsdWdpbkluZm9Qcm92aWRlci5oIgorCisvLyBGSVhNRTog
V2Ugc2hvdWxkbid0IGNhbGwgb3V0IHRvIHRoZSBwbGF0Zm9ybSBzdHJhdGVneSBmb3IgdGhpcy4K
KyNpbmNsdWRlICJXZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1Bs
dWdpblN0cmF0ZWd5Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJQbHVnaW5JbmZvUHJv
dmlkZXImIFdlYlBsdWdpbkluZm9Qcm92aWRlcjo6c2luZ2xldG9uKCkKK3sKKyAgICBzdGF0aWMg
V2ViUGx1Z2luSW5mb1Byb3ZpZGVyJiBwbHVnaW5JbmZvUHJvdmlkZXIgPSBhZG9wdFJlZigqbmV3
IFdlYlBsdWdpbkluZm9Qcm92aWRlcikubGVha1JlZigpOworCisgICAgcmV0dXJuIHBsdWdpbklu
Zm9Qcm92aWRlcjsKK30KKworV2ViUGx1Z2luSW5mb1Byb3ZpZGVyOjpXZWJQbHVnaW5JbmZvUHJv
dmlkZXIoKQoreworfQorCitXZWJQbHVnaW5JbmZvUHJvdmlkZXI6On5XZWJQbHVnaW5JbmZvUHJv
dmlkZXIoKQoreworfQorCit2b2lkIFdlYlBsdWdpbkluZm9Qcm92aWRlcjo6cmVmcmVzaFBsdWdp
bnMoKQoreworICAgIFdlYkNvcmU6OnBsYXRmb3JtU3RyYXRlZ2llcygpLT5wbHVnaW5TdHJhdGVn
eSgpLT5yZWZyZXNoUGx1Z2lucygpOworfQorCit2b2lkIFdlYlBsdWdpbkluZm9Qcm92aWRlcjo6
Z2V0UGx1Z2luSW5mbyhXZWJDb3JlOjpQYWdlJiBwYWdlLCBWZWN0b3I8V2ViQ29yZTo6UGx1Z2lu
SW5mbz4mIHBsdWdpbnMpCit7CisgICAgV2ViQ29yZTo6cGxhdGZvcm1TdHJhdGVnaWVzKCktPnBs
dWdpblN0cmF0ZWd5KCktPmdldFBsdWdpbkluZm8oJnBhZ2UsIHBsdWdpbnMpOworfQorCit2b2lk
IFdlYlBsdWdpbkluZm9Qcm92aWRlcjo6Z2V0V2ViVmlzaWJsZVBsdWdpbkluZm8oV2ViQ29yZTo6
UGFnZSYgcGFnZSwgVmVjdG9yPFdlYkNvcmU6OlBsdWdpbkluZm8+JiBwbHVnaW5zKQoreworICAg
IFdlYkNvcmU6OnBsYXRmb3JtU3RyYXRlZ2llcygpLT5wbHVnaW5TdHJhdGVneSgpLT5nZXRXZWJW
aXNpYmxlUGx1Z2luSW5mbygmcGFnZSwgcGx1Z2lucyk7Cit9CisKKyNpZiBQTEFURk9STShNQUMp
Cit2b2lkIFdlYlBsdWdpbkluZm9Qcm92aWRlcjo6c2V0UGx1Z2luTG9hZENsaWVudFBvbGljeShX
ZWJDb3JlOjpQbHVnaW5Mb2FkQ2xpZW50UG9saWN5IHBsdWdpbkxvYWRDbGllbnRQb2xpY3ksIGNv
bnN0IFN0cmluZyYgaG9zdCwgY29uc3QgU3RyaW5nJiBidW5kbGVJZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmIHZlcnNpb25TdHJpbmcpCit7CisgICAgV2ViQ29yZTo6cGxhdGZvcm1TdHJhdGVnaWVz
KCktPnBsdWdpblN0cmF0ZWd5KCktPnNldFBsdWdpbkxvYWRDbGllbnRQb2xpY3kocGx1Z2luTG9h
ZENsaWVudFBvbGljeSwgaG9zdCwgYnVuZGxlSWRlbnRpZmllciwgdmVyc2lvblN0cmluZyk7Cit9
CisKK3ZvaWQgV2ViUGx1Z2luSW5mb1Byb3ZpZGVyOjpjbGVhclBsdWdpbkNsaWVudFBvbGljaWVz
KCkKK3sKKyAgICBXZWJDb3JlOjpwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGx1Z2luU3RyYXRlZ3ko
KS0+Y2xlYXJQbHVnaW5DbGllbnRQb2xpY2llcygpOworfQorI2VuZGlmCisKK30KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9XZWJQbHVnaW5JbmZvUHJvdmlk
ZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9XZWJQbHVnaW5JbmZvUHJv
dmlkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi43OWMwZGVkMGNmMmM1Yjc4NGY2ZmIxNWIzYTRlOTM4ODMwZWRh
MzJiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L1dlYlBsdWdpbkluZm9Qcm92aWRlci5oCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPFdlYkNvcmUvUGx1Z2luSW5mb1Byb3ZpZGVyLmg+CisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQbHVnaW5JbmZvUHJvdmlkZXIgZmluYWwg
OiBwdWJsaWMgV2ViQ29yZTo6UGx1Z2luSW5mb1Byb3ZpZGVyIHsKKyAgICBmcmllbmQgY2xhc3Mg
TmV2ZXJEZXN0cm95ZWQ8V2ViUGx1Z2luSW5mb1Byb3ZpZGVyPjsKKworcHVibGljOgorICAgIHN0
YXRpYyBXZWJQbHVnaW5JbmZvUHJvdmlkZXImIHNpbmdsZXRvbigpOworICAgIHZpcnR1YWwgfldl
YlBsdWdpbkluZm9Qcm92aWRlcigpOworCitwcml2YXRlOgorICAgIHZvaWQgcmVmcmVzaFBsdWdp
bnMoKSBvdmVycmlkZTsKKyAgICB2b2lkIGdldFBsdWdpbkluZm8oV2ViQ29yZTo6UGFnZSYsIFZl
Y3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiYpIG92ZXJyaWRlOworICAgIHZvaWQgZ2V0V2ViVmlz
aWJsZVBsdWdpbkluZm8oV2ViQ29yZTo6UGFnZSYsIFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZv
PiYpIG92ZXJyaWRlOworI2lmIFBMQVRGT1JNKE1BQykKKyAgICB2b2lkIHNldFBsdWdpbkxvYWRD
bGllbnRQb2xpY3koV2ViQ29yZTo6UGx1Z2luTG9hZENsaWVudFBvbGljeSwgY29uc3QgU3RyaW5n
JiBob3N0LCBjb25zdCBTdHJpbmcmIGJ1bmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdmVy
c2lvblN0cmluZykgb3ZlcnJpZGU7CisgICAgdm9pZCBjbGVhclBsdWdpbkNsaWVudFBvbGljaWVz
KCkgb3ZlcnJpZGU7CisjZW5kaWYKKworICAgIFdlYlBsdWdpbkluZm9Qcm92aWRlcigpOworfTsK
KworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmlu
ZGV4IDNiMzVlYWExOWEwNTJiNGMyMDkzMTU2NGUwYTVkNzZkOWM1OWY3YzQuLjk5NjkwNjY3M2Q0
ZTA1ZDQxZGI3OTI5ZTVmYjMwOTliNWYxMjAyOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTk2LDYgKzk2LDcgQEAKICNpbmNsdWRlICJX
ZWJQYWdlUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlBheW1lbnRDb29yZGluYXRvci5o
IgogI2luY2x1ZGUgIldlYlBsdWdJbkNsaWVudC5oIgorI2luY2x1ZGUgIldlYlBsdWdpbkluZm9Q
cm92aWRlci5oIgogI2luY2x1ZGUgIldlYlBvcHVwTWVudS5oIgogI2luY2x1ZGUgIldlYlByZWZl
cmVuY2VzRGVmaW5pdGlvbnMuaCIKICNpbmNsdWRlICJXZWJQcmVmZXJlbmNlc0tleXMuaCIKQEAg
LTQxMSw2ICs0MTIsNyBAQCBXZWJQYWdlOjpXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3Qg
V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKIAogICAgIHBhZ2VDb25maWd1
cmF0aW9uLmFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlID0gJldlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LmFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlKCk7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uZGF0YWJh
c2VQcm92aWRlciA9IFdlYkRhdGFiYXNlUHJvdmlkZXI6OmdldE9yQ3JlYXRlKG1fcGFnZUdyb3Vw
LT5wYWdlR3JvdXBJRCgpKTsKKyAgICBwYWdlQ29uZmlndXJhdGlvbi5wbHVnaW5JbmZvUHJvdmlk
ZXIgPSAmV2ViUGx1Z2luSW5mb1Byb3ZpZGVyOjpzaW5nbGV0b24oKTsKICAgICBwYWdlQ29uZmln
dXJhdGlvbi5zdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIgPSBXZWJTdG9yYWdlTmFtZXNwYWNlUHJv
dmlkZXI6OmdldE9yQ3JlYXRlKG1fcGFnZUdyb3VwLT5wYWdlR3JvdXBJRCgpKTsKICAgICBwYWdl
Q29uZmlndXJhdGlvbi51c2VyQ29udGVudFByb3ZpZGVyID0gbV91c2VyQ29udGVudENvbnRyb2xs
ZXIucHRyKCk7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24udmlzaXRlZExpbmtTdG9yZSA9IFZpc2l0
ZWRMaW5rVGFibGVDb250cm9sbGVyOjpnZXRPckNyZWF0ZShwYXJhbWV0ZXJzLnZpc2l0ZWRMaW5r
VGFibGVJRCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>