<?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>116369</bug_id>
          
          <creation_ts>2013-05-17 17:47:39 -0700</creation_ts>
          <short_desc>REGRESSION(r150294): Caused 31 tests to fail (Requested by rniwa on #webkit).</short_desc>
          <delta_ts>2013-05-17 17:51:06 -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>528+ (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>
          
          <blocked>115977</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>kling</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>890750</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-05-17 17:47:39 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/150294 broke the build:
Caused 31 tests to fail (Requested by rniwa on #webkit).

This is an automatic bug report generated by the sheriff-bot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests case pain.

&quot;Only you can prevent forest fires.&quot; -- Smokey the Bear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890752</commentid>
    <comment_count>1</comment_count>
      <attachid>202176</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-05-17 17:48:02 -0700</bug_when>
    <thetext>Created attachment 202176
ROLLOUT of r150294

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890754</commentid>
    <comment_count>2</comment_count>
      <attachid>202176</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-05-17 17:51:05 -0700</bug_when>
    <thetext>Comment on attachment 202176
ROLLOUT of r150294

Clearing flags on attachment: 202176

Committed r150312: &lt;http://trac.webkit.org/changeset/150312&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890755</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-05-17 17:51:06 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>202176</attachid>
            <date>2013-05-17 17:48:02 -0700</date>
            <delta_ts>2013-05-17 17:51:04 -0700</delta_ts>
            <desc>ROLLOUT of r150294</desc>
            <filename>bug-116369-20130517174655.patch</filename>
            <type>text/plain</type>
            <size>137698</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUwMzExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDEyZDY2NTEwMzM4NzM3
YmM1NzM3ZDEyMDhkNDczNmJkZDQyMWM2NC4uMTBjMGE1N2VlM2QwYWNjY2I5YTE1OTk0NzEyNDU5
NTY0ZGU5NjFlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5OSBAQAorMjAxMy0wNS0xNyAgQ29t
bWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdl
ZCwgcm9sbGluZyBvdXQgcjE1MDI5NC4KKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9j
aGFuZ2VzZXQvMTUwMjk0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMTYzNjkKKworICAgICAgICBDYXVzZWQgMzEgdGVzdHMgdG8gZmFpbCAoUmVxdWVz
dGVkIGJ5IHJuaXdhIG9uICN3ZWJraXQpLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46Cisg
ICAgICAgICogcmVuZGVyaW5nL0lubGluZUZsb3dCb3guaDoKKyAgICAgICAgKiByZW5kZXJpbmcv
SW5saW5lVGV4dEJveC5oOgorICAgICAgICAoSW5saW5lVGV4dEJveCk6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckFwcGxldC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCUi5oOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9jay5oOgorICAgICAgICAoUmVuZGVyQmxvY2sp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OnZpcnR1YWxDb250aW51YXRpb24pOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckJveDo6Ym9yZGVyQm91bmRpbmdCb3gpOgorICAgICAgICAoUmVuZGVyQm94KToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckJveDo6bWFyZ2luTG9naWNhbExlZnQpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyQm94OjptYXJnaW5Mb2dpY2FsUmlnaHQpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJCb3hNb2RlbE9iamVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94TW9kZWxP
YmplY3Q6OmlzQm94TW9kZWxPYmplY3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCdXR0
b24uaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQ29tYmluZVRleHQuaDoKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyQ291bnRlci5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJE
ZXByZWNhdGVkRmxleGlibGVCb3guaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRGV0YWls
c01hcmtlci5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5oOgor
ICAgICAgICAoUmVuZGVyRW1iZWRkZWRPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
RW1iZWRkZWRPYmplY3Q6OmlzRW1iZWRkZWRPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyRW1iZWRkZWRPYmplY3Q6OnZpcnR1YWxDaGlsZHJlbik6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckZpZWxkc2V0Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRD
b250cm9sLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94Lmg6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyRnJhbWUuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRnJhbWVTZXQuaDoKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRnVsbFNjcmVlbi5jcHA6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckZ1bGxTY3JlZW4uaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyR3JpZC5o
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJIVE1MQ2FudmFzLmg6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlcklGcmFtZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbWFnZS5o
OgorICAgICAgICAoUmVuZGVySW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW1hZ2U6
OmlzUmVuZGVySW1hZ2UpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbmxpbmUuaDoKKyAg
ICAgICAgKFJlbmRlcklubGluZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJbmxpbmU6OnZp
cnR1YWxDb250aW51YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW5saW5lOjp2aXJ0
dWFsQ2hpbGRyZW4pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW5saW5lOjppc1JlbmRlcklu
bGluZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJbmxpbmU6OmxheW91dCk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJJbmxpbmU6OnJlcXVpcmVzTGF5ZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVySW5saW5lOjpvZmZzZXRXaWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJ
bmxpbmU6Om9mZnNldEhlaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJbmxpbmU6OmJv
cmRlckJvdW5kaW5nQm94KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlcklubGluZTo6ZGlydHlM
aW5lc0Zyb21DaGFuZ2VkQ2hpbGQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllck1v
ZGVsT2JqZWN0Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaDoKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyTGlzdEl0ZW0uaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyTGlzdE1hcmtlci5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZWRpYS5oOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTWVkaWE6OnZpcnR1YWxDaGlsZHJlbik6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJNZWRpYTo6Y2FuSGF2ZUNoaWxkcmVuKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlck1lZGlhOjppc01lZGlhKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1lZGlhOjpp
c0ltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1lZGlhOjpyZXF1aXJlc0ZvcmNlZFN0
eWxlUmVjYWxjUHJvcGFnYXRpb24pOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZWRpYUNv
bnRyb2xFbGVtZW50cy5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5oOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZXRlci5oOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJNdWx0aUNvbHVtbkJsb2NrLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck11bHRp
Q29sdW1uRmxvd1RocmVhZC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVt
blNldC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuaDoKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUGFydC5oOgorICAgICAgICAoUmVuZGVyUGFydCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJQYXJ0Ojppc1JlbmRlclBhcnQpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyUGFydDo6cmVuZGVyTmFtZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clByb2dyZXNzLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyUmVnaW9uOjppc1JlbmRlclJlZ2lvbik6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlclJlZ2lvblNldC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJSZXBs
YWNlZC5oOgorICAgICAgICAoUmVuZGVyUmVwbGFjZWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyUmVwbGFjZWQ6OnJlbmRlck5hbWUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJSZXBs
aWNhLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJ1YnkuaDoKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyUnVieUJhc2UuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUnVieVJ1
bi5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJSdWJ5VGV4dC5oOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJTY3JvbGxiYXJQYXJ0Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clNlYXJjaEZpZWxkLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNsaWRlci5oOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5oOgorICAgICAgICAoUmVu
ZGVyU25hcHNob3R0ZWRQbHVnSW4pOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUYWJsZS5o
OgorICAgICAgICAoUmVuZGVyVGFibGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGU6
OnJlbmRlck5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGU6OmlzVGFibGUpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGU6OmF2b2lkc0Zsb2F0cyk6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlclRhYmxlQ2FwdGlvbi5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJUYWJsZUNlbGwuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGVDb2wuaDoKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGVSb3cuaDoKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyVGFibGVTZWN0aW9uLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHQuaDoK
KyAgICAgICAgKFJlbmRlclRleHQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dDo6bWFy
Z2luTGVmdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0OjptYXJnaW5SaWdodCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0OjpzdHlsZVdpbGxDaGFuZ2UpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGV4dDo6bGVuZ3RoKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRl
eHQ6OnBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHQ6OmxheW91dCk6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmg6CisgICAgICAgIChSZW5kZXJUZXh0
Q29udHJvbCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbDo6cmVuZGVyTmFt
ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbDo6aXNUZXh0Q29udHJvbCk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbDo6YXZvaWRzRmxvYXRzKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuaDoKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmg6CisgICAgICAgIChSZW5k
ZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dENv
bnRyb2xTaW5nbGVMaW5lOjppc1RleHRGaWVsZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clRleHRGcmFnbWVudC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0VHJhY2tDdWUu
aDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVmlkZW8uaDoKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyVmlldy5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJXaWRnZXQuaDoKKyAg
ICAgICAgKFJlbmRlcldpZGdldCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJXaWRnZXQ6Omlz
V2lkZ2V0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyV29yZEJyZWFrLmg6CisgICAgICAg
ICogcmVuZGVyaW5nL1Jvb3RJbmxpbmVCb3guaDoKKyAgICAgICAgKFJvb3RJbmxpbmVCb3gpOgor
ICAgICAgICAqIHJlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MQmxvY2suaDoKKyAgICAgICAg
KiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0Jsb2NrLmg6CisgICAgICAgIChSZW5kZXJTVkdCbG9j
ayk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdDb250YWluZXIuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclNWR0NvbnRhaW5lcjo6c2V0TmVlZHNCb3VuZGFyaWVzVXBkYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR0NvbnRhaW5lcjo6dmlydHVhbENoaWxkcmVu
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR0NvbnRhaW5lcjo6aXNTVkdDb250YWluZXIp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHQ29udGFpbmVyOjpyZW5kZXJOYW1lKToKKyAg
ICAgICAgKFJlbmRlclNWR0NvbnRhaW5lcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdD
b250YWluZXI6Om9iamVjdEJvdW5kaW5nQm94KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNW
R0NvbnRhaW5lcjo6c3Ryb2tlQm91bmRpbmdCb3gpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
U1ZHQ29udGFpbmVyOjpyZXBhaW50UmVjdEluTG9jYWxDb29yZGluYXRlcyk6CisgICAgICAgICog
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdFbGxpcHNlLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdGb3JlaWduT2JqZWN0Lmg6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdHcmFkaWVudFN0b3AuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0hp
ZGRlbkNvbnRhaW5lci5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHSGlkZGVuQ29udGFp
bmVyOjpyZW5kZXJOYW1lKToKKyAgICAgICAgKFJlbmRlclNWR0hpZGRlbkNvbnRhaW5lcik6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdIaWRkZW5Db250YWluZXI6OmlzU1ZHSGlkZGVuQ29u
dGFpbmVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ltYWdlLmg6CisgICAg
ICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclNWR0lubGluZTo6cmVuZGVyTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJT
VkdJbmxpbmU6OnJlcXVpcmVzTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHSW5s
aW5lOjppc1NWR0lubGluZSk6CisgICAgICAgIChSZW5kZXJTVkdJbmxpbmUpOgorICAgICAgICAq
IHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lVGV4dC5oOgorICAgICAgICAqIHJlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNW
R01vZGVsT2JqZWN0OjpyZXF1aXJlc0xheWVyKToKKyAgICAgICAgKFJlbmRlclNWR01vZGVsT2Jq
ZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1BhdGguaDoKKyAgICAgICAg
KiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1JlY3QuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1Jlc291cmNlQ2xpcHBlci5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHUmVzb3VyY2VDb250YWluZXIuaDoKKyAgICAgICAgKFJlbmRlclNWR1Jlc291cmNlQ29u
dGFpbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jlc291cmNlQ29udGFpbmVyOjpp
c1NWR1Jlc291cmNlQ29udGFpbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jlc291
cmNlQ29udGFpbmVyOjp0b1JlbmRlclNWR1Jlc291cmNlQ29udGFpbmVyKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlRmlsdGVyLmg6CisgICAgICAgICogcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUZpbHRlclByaW1pdGl2ZS5oOgorICAgICAgICAqIHJl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VHcmFkaWVudC5oOgorICAgICAgICAoUmVuZGVy
U1ZHUmVzb3VyY2VHcmFkaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdSZXNvdXJj
ZUdyYWRpZW50OjpyZXNvdXJjZUJvdW5kaW5nQm94KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1Jlc291cmNlTGluZWFyR3JhZGllbnQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR1Jlc291cmNlTWFya2VyLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdSZXNvdXJjZU1hc2tlci5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHUmVzb3VyY2VQYXR0ZXJuLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdS
ZXNvdXJjZVJhZGlhbEdyYWRpZW50Lmg6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdSb290Lmg6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5oOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHU2hhcGU6OnNldE5lZWRzQm91bmRhcmllc1VwZGF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdTaGFwZTo6c2V0TmVlZHNUcmFuc2Zvcm1VcGRh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHU2hhcGU6OnJlcGFpbnRSZWN0SW5Mb2Nh
bENvb3JkaW5hdGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1NoYXBlOjpsb2NhbFRv
UGFyZW50VHJhbnNmb3JtKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1NoYXBlOjpsb2Nh
bFRyYW5zZm9ybSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdTaGFwZTo6aXNTVkdTaGFw
ZSk6CisgICAgICAgIChSZW5kZXJTVkdTaGFwZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJT
VkdTaGFwZTo6b2JqZWN0Qm91bmRpbmdCb3gpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZH
U2hhcGU6OnN0cm9rZUJvdW5kaW5nQm94KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR1RTcGFuLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0Lmg6Cisg
ICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0UGF0aC5oOgorICAgICAgICAqIHJl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lci5oOgorICAgICAgICAq
IHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXIuaDoKKwogMjAxMy0wNS0x
NyAgQ2hyaXN0b3BoZSBEdW1leiAgPGNoLmR1bWV6QHNpc2Euc2Ftc3VuZy5jb20+CiAKICAgICAg
ICAgR2V0IHJpZCBvZiBDdXN0b20gY29kZSBmb3IgQXVkaW8gZ2xvYmFsIGNvbnN0cnVjdG9yCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluCmluZGV4IGI1YzE3YjQ1NTAxMjlhZTExNTc5YTc1NmUyMjg3ZTY3MDRl
NzVhYjguLmI1Y2M3YTM4MjU5YjYxMDdhYzg3OWNhM2Q1YTYyYTFhNWUxY2Y5OGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZXhwLmluCkBAIC04MCw3ICs4MCw2IEBAIF9fWk43V2ViQ29yZTEwTW91c2VFdmVudDZj
cmVhdGVFUktOM1dURjEyQXRvbWljU3RyaW5nRWJiTlMxXzEwUGFzc1JlZlB0cklOU185RE9NCiBf
X1pON1dlYkNvcmUxME1vdXNlRXZlbnRDMUVSS04zV1RGMTJBdG9taWNTdHJpbmdFYmJOUzFfMTBQ
YXNzUmVmUHRySU5TXzlET01XaW5kb3dFRUVpaWlpaWJiYmJ0TlM1X0lOU18xMUV2ZW50VGFyZ2V0
RUVFTlM1X0lOU185Q2xpcGJvYXJkRUVFYgogX19aTjdXZWJDb3JlMTBQYXN0ZWJvYXJkMTR3cml0
ZVBsYWluVGV4dEVSS04zV1RGNlN0cmluZ0VOUzBfMThTbWFydFJlcGxhY2VPcHRpb25FCiBfX1pO
N1dlYkNvcmUxMFBhc3RlYm9hcmQxN2dlbmVyYWxQYXN0ZWJvYXJkRXYKLV9fWk43V2ViQ29yZTEw
UmVuZGVyUGFydDlzZXRXaWRnZXRFTjNXVEYxMFBhc3NSZWZQdHJJTlNfNldpZGdldEVFRQogX19a
TjdXZWJDb3JlMTBSZW5kZXJWaWV3MTBjb21wb3NpdG9yRXYKIF9fWk43V2ViQ29yZTEwUmVuZGVy
VmlldzdoaXRUZXN0RVJLTlNfMTRIaXRUZXN0UmVxdWVzdEVSTlNfMTNIaXRUZXN0UmVzdWx0RQog
X19aTjdXZWJDb3JlMTBTY3JvbGxWaWV3MTdzZXRVc2VGaXhlZExheW91dEViCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxvd0JveC5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guaAppbmRleCAyNWI2ZTZhOWU0NmUzMWM4Mzc3ODdj
M2E4NjlmZTBiZmI2NTYyNzJkLi5kM2ZkZDVlYzg5ZGJmMWM0OWQ3OTI1NzhmNWJiZTY5ZDRiYjZh
OGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxvd0JveC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmgKQEAgLTgwLDcg
KzgwLDcgQEAgcHVibGljOgogICAgIElubGluZUJveCogZmlyc3RDaGlsZCgpIGNvbnN0IHsgY2hl
Y2tDb25zaXN0ZW5jeSgpOyByZXR1cm4gbV9maXJzdENoaWxkOyB9CiAgICAgSW5saW5lQm94KiBs
YXN0Q2hpbGQoKSBjb25zdCB7IGNoZWNrQ29uc2lzdGVuY3koKTsgcmV0dXJuIG1fbGFzdENoaWxk
OyB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNMZWFmKCkgY29uc3QgT1ZFUlJJREUgRklOQUwgeyBy
ZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNMZWFmKCkgY29uc3QgRklOQUwgeyBy
ZXR1cm4gZmFsc2U7IH0KICAgICAKICAgICBJbmxpbmVCb3gqIGZpcnN0TGVhZkNoaWxkKCkgY29u
c3Q7CiAgICAgSW5saW5lQm94KiBsYXN0TGVhZkNoaWxkKCkgY29uc3Q7CkBAIC04OCw3ICs4OCw3
IEBAIHB1YmxpYzoKICAgICB0eXBlZGVmIHZvaWQgKCpDdXN0b21JbmxpbmVCb3hSYW5nZVJldmVy
c2UpKHZvaWQqIHVzZXJEYXRhLCBWZWN0b3I8SW5saW5lQm94Kj46Oml0ZXJhdG9yIGZpcnN0LCBW
ZWN0b3I8SW5saW5lQm94Kj46Oml0ZXJhdG9yIGxhc3QpOwogICAgIHZvaWQgY29sbGVjdExlYWZC
b3hlc0luTG9naWNhbE9yZGVyKFZlY3RvcjxJbmxpbmVCb3gqPiYsIEN1c3RvbUlubGluZUJveFJh
bmdlUmV2ZXJzZSBjdXN0b21SZXZlcnNlSW1wbGVtZW50YXRpb24gPSAwLCB2b2lkKiB1c2VyRGF0
YSA9IDApIGNvbnN0OwogCi0gICAgdmlydHVhbCB2b2lkIHNldENvbnN0cnVjdGVkKCkgT1ZFUlJJ
REUgRklOQUwKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q29uc3RydWN0ZWQoKSBGSU5BTAogICAgIHsK
ICAgICAgICAgSW5saW5lQm94OjpzZXRDb25zdHJ1Y3RlZCgpOwogICAgICAgICBmb3IgKElubGlu
ZUJveCogY2hpbGQgPSBmaXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0T25M
aW5lKCkpCkBAIC05Niw5ICs5Niw5IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICB2b2lkIGFkZFRv
TGluZShJbmxpbmVCb3gqIGNoaWxkKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlTGluZShSZW5k
ZXJBcmVuYSopIE9WRVJSSURFIEZJTkFMOwotICAgIHZpcnR1YWwgdm9pZCBleHRyYWN0TGluZSgp
IE9WRVJSSURFIEZJTkFMOwotICAgIHZpcnR1YWwgdm9pZCBhdHRhY2hMaW5lKCkgT1ZFUlJJREUg
RklOQUw7CisgICAgdmlydHVhbCB2b2lkIGRlbGV0ZUxpbmUoUmVuZGVyQXJlbmEqKSBGSU5BTDsK
KyAgICB2aXJ0dWFsIHZvaWQgZXh0cmFjdExpbmUoKSBGSU5BTDsKKyAgICB2aXJ0dWFsIHZvaWQg
YXR0YWNoTGluZSgpIEZJTkFMOwogICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RQb3NpdGlvbihmbG9h
dCBkeCwgZmxvYXQgZHkpOwogCiAgICAgdmlydHVhbCB2b2lkIGV4dHJhY3RMaW5lQm94RnJvbVJl
bmRlck9iamVjdCgpOwpAQCAtMjk5LDcgKzI5OSw3IEBAIHByaXZhdGU6CiBwcm90ZWN0ZWQ6CiAg
ICAgT3duUHRyPFJlbmRlck92ZXJmbG93PiBtX292ZXJmbG93OwogCi0gICAgdmlydHVhbCBib29s
IGlzSW5saW5lRmxvd0JveCgpIGNvbnN0IE9WRVJSSURFIEZJTkFMIHsgcmV0dXJuIHRydWU7IH0K
KyAgICB2aXJ0dWFsIGJvb2wgaXNJbmxpbmVGbG93Qm94KCkgY29uc3QgRklOQUwgeyByZXR1cm4g
dHJ1ZTsgfQogCiAgICAgSW5saW5lQm94KiBtX2ZpcnN0Q2hpbGQ7CiAgICAgSW5saW5lQm94KiBt
X2xhc3RDaGlsZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVU
ZXh0Qm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5oCmluZGV4
IDBiOGQ2YjUwOWQ5ZjAxNDg3OWRkZDIwZjU5MmNiNDIzNDE4NWMwNjQuLjNmMWQ2MzlmY2NhMDVm
OTk0YzE4MjZhZDYxOGU2Y2JmOTFjYTE3ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9JbmxpbmVUZXh0Qm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lu
bGluZVRleHRCb3guaApAQCAtNTcsNyArNTcsNyBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAot
ICAgIHZpcnR1YWwgdm9pZCBkZXN0cm95KFJlbmRlckFyZW5hKikgT1ZFUlJJREUgRklOQUw7Cisg
ICAgdmlydHVhbCB2b2lkIGRlc3Ryb3koUmVuZGVyQXJlbmEqKSBGSU5BTDsKIAogICAgIElubGlu
ZVRleHRCb3gqIHByZXZUZXh0Qm94KCkgY29uc3QgeyByZXR1cm4gbV9wcmV2VGV4dEJveDsgfQog
ICAgIElubGluZVRleHRCb3gqIG5leHRUZXh0Qm94KCkgY29uc3QgeyByZXR1cm4gbV9uZXh0VGV4
dEJveDsgfQpAQCAtODUsOCArODUsOCBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgaW5saW5lIGJv
b2wgY29tcGFyZUJ5U3RhcnQoY29uc3QgSW5saW5lVGV4dEJveCogZmlyc3QsIGNvbnN0IElubGlu
ZVRleHRCb3gqIHNlY29uZCkgeyByZXR1cm4gZmlyc3QtPnN0YXJ0KCkgPCBzZWNvbmQtPnN0YXJ0
KCk7IH0KIAotICAgIHZpcnR1YWwgaW50IGJhc2VsaW5lUG9zaXRpb24oRm9udEJhc2VsaW5lKSBj
b25zdCBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIExheW91dFVuaXQgbGluZUhlaWdodCgp
IGNvbnN0IE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgaW50IGJhc2VsaW5lUG9zaXRpb24o
Rm9udEJhc2VsaW5lKSBjb25zdCBGSU5BTDsKKyAgICB2aXJ0dWFsIExheW91dFVuaXQgbGluZUhl
aWdodCgpIGNvbnN0IEZJTkFMOwogCiAgICAgYm9vbCBnZXRFbXBoYXNpc01hcmtQb3NpdGlvbihS
ZW5kZXJTdHlsZSosIFRleHRFbXBoYXNpc1Bvc2l0aW9uJikgY29uc3Q7CiAKQEAgLTEyNSwxOSAr
MTI1LDE5IEBAIHB1YmxpYzoKICAgICBSZW5kZXJUZXh0KiB0ZXh0UmVuZGVyZXIoKSBjb25zdDsK
IAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlTGluZShSZW5kZXJBcmVuYSopIE9W
RVJSSURFIEZJTkFMOwotICAgIHZpcnR1YWwgdm9pZCBleHRyYWN0TGluZSgpIE9WRVJSSURFIEZJ
TkFMOwotICAgIHZpcnR1YWwgdm9pZCBhdHRhY2hMaW5lKCkgT1ZFUlJJREUgRklOQUw7CisgICAg
dmlydHVhbCB2b2lkIGRlbGV0ZUxpbmUoUmVuZGVyQXJlbmEqKSBGSU5BTDsKKyAgICB2aXJ0dWFs
IHZvaWQgZXh0cmFjdExpbmUoKSBGSU5BTDsKKyAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoTGluZSgp
IEZJTkFMOwogCiBwdWJsaWM6Ci0gICAgdmlydHVhbCBSZW5kZXJPYmplY3Q6OlNlbGVjdGlvblN0
YXRlIHNlbGVjdGlvblN0YXRlKCkgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCBSZW5kZXJP
YmplY3Q6OlNlbGVjdGlvblN0YXRlIHNlbGVjdGlvblN0YXRlKCkgRklOQUw7CiAKIHByaXZhdGU6
Ci0gICAgdmlydHVhbCB2b2lkIGNsZWFyVHJ1bmNhdGlvbigpIE9WRVJSSURFIEZJTkFMIHsgbV90
cnVuY2F0aW9uID0gY05vVHJ1bmNhdGlvbjsgfQorICAgIHZpcnR1YWwgdm9pZCBjbGVhclRydW5j
YXRpb24oKSBGSU5BTCB7IG1fdHJ1bmNhdGlvbiA9IGNOb1RydW5jYXRpb247IH0KICAgICB2aXJ0
dWFsIGZsb2F0IHBsYWNlRWxsaXBzaXNCb3goYm9vbCBmbG93SXNMVFIsIGZsb2F0IHZpc2libGVM
ZWZ0RWRnZSwgZmxvYXQgdmlzaWJsZVJpZ2h0RWRnZSwgZmxvYXQgZWxsaXBzaXNXaWR0aCwgZmxv
YXQgJnRydW5jYXRlZFdpZHRoLCBib29sJiBmb3VuZEJveCkgT1ZFUlJJREUgRklOQUw7CiAKIHB1
YmxpYzoKLSAgICB2aXJ0dWFsIGJvb2wgaXNMaW5lQnJlYWsoKSBjb25zdCBPVkVSUklERSBGSU5B
TDsKKyAgICB2aXJ0dWFsIGJvb2wgaXNMaW5lQnJlYWsoKSBjb25zdCBGSU5BTDsKIAogICAgIHZv
aWQgc2V0RXhwYW5zaW9uKGludCBuZXdFeHBhbnNpb24pCiAgICAgewpAQCAtMTQ3LDExICsxNDcs
MTEgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIGJvb2wgaXNJbmxp
bmVUZXh0Qm94KCkgY29uc3QgT1ZFUlJJREUgRklOQUwgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZp
cnR1YWwgYm9vbCBpc0lubGluZVRleHRCb3goKSBjb25zdCBGSU5BTCB7IHJldHVybiB0cnVlOyB9
CiAKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIGludCBjYXJldE1pbk9mZnNldCgpIGNvbnN0IE9WRVJS
SURFIEZJTkFMOwotICAgIHZpcnR1YWwgaW50IGNhcmV0TWF4T2Zmc2V0KCkgY29uc3QgT1ZFUlJJ
REUgRklOQUw7CisgICAgdmlydHVhbCBpbnQgY2FyZXRNaW5PZmZzZXQoKSBjb25zdCBGSU5BTDsK
KyAgICB2aXJ0dWFsIGludCBjYXJldE1heE9mZnNldCgpIGNvbnN0IEZJTkFMOwogCiBwcml2YXRl
OgogICAgIGZsb2F0IHRleHRQb3MoKSBjb25zdDsgLy8gcmV0dXJucyB0aGUgeCBwb3NpdGlvbiBy
ZWxhdGl2ZSB0byB0aGUgbGVmdCBzdGFydCBvZiB0aGUgdGV4dCBsaW5lLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckFwcGxldC5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckFwcGxldC5oCmluZGV4IGQ5ZTI4OGJlZDA4NGFhMzE2OTE0NWFiYzBk
NmJjMDBkOWIyYzU2YmUuLjg4MWUyMWMwYjIzZTg5NGU2MzBjYTM2OTQ2MzBmOTIxMzdhM2VkMTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJBcHBsZXQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQXBwbGV0LmgKQEAgLTI4LDcgKzI4LDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBIVE1MQXBwbGV0RWxlbWVudDsKIAotY2xh
c3MgUmVuZGVyQXBwbGV0IEZJTkFMIDogcHVibGljIFJlbmRlckVtYmVkZGVkT2JqZWN0IHsKK2Ns
YXNzIFJlbmRlckFwcGxldCA6IHB1YmxpYyBSZW5kZXJFbWJlZGRlZE9iamVjdCB7CiBwdWJsaWM6
CiAgICAgZXhwbGljaXQgUmVuZGVyQXBwbGV0KEhUTUxBcHBsZXRFbGVtZW50Kik7CiAgICAgdmly
dHVhbCB+UmVuZGVyQXBwbGV0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQlIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCUi5oCmluZGV4
IGRjNGQ4MzIzNzBhYzFkZGMwZTBlMjY2Yjc3YWQ1NzMyMjM0OGIyNzUuLjkxNDg2ZjI5Y2VhZjgw
ODliNGQ5MWVkZGU2NzM1NTQ3YTA2ZWE3YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCUi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
Ui5oCkBAIC0zMSw3ICszMSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUG9zaXRp
b247CiAKLWNsYXNzIFJlbmRlckJSIEZJTkFMIDogcHVibGljIFJlbmRlclRleHQgeworY2xhc3Mg
UmVuZGVyQlIgOiBwdWJsaWMgUmVuZGVyVGV4dCB7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgUmVu
ZGVyQlIoTm9kZSopOwogICAgIHZpcnR1YWwgflJlbmRlckJSKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9jay5oCmluZGV4IDQ0NTY5YmQ5ZjgwNjFlMjEyNDhjNDFiMDZhZTdkMzM2
NGNiNzcyNTQuLjM3ZDhhOWNkMDdiOTgwZTQ0MzJiNGFlMDgzN2FjMWM1ODE0YjFhYmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCkBAIC0xMDQsNyArMTA0LDcgQEAgcHVi
bGljOgogICAgIGJvb2wgYmVpbmdEZXN0cm95ZWQoKSBjb25zdCB7IHJldHVybiBtX2JlaW5nRGVz
dHJveWVkOyB9CiAKICAgICAvLyBUaGVzZSB0d28gZnVuY3Rpb25zIGFyZSBvdmVycmlkZGVuIGZv
ciBpbmxpbmUtYmxvY2suCi0gICAgdmlydHVhbCBMYXlvdXRVbml0IGxpbmVIZWlnaHQoYm9vbCBm
aXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlID0gUG9zaXRpb25P
bkNvbnRhaW5pbmdMaW5lKSBjb25zdCBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIExheW91
dFVuaXQgbGluZUhlaWdodChib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUsIExpbmVQ
b3NpdGlvbk1vZGUgPSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0OwogICAgIHZpcnR1
YWwgaW50IGJhc2VsaW5lUG9zaXRpb24oRm9udEJhc2VsaW5lLCBib29sIGZpcnN0TGluZSwgTGlu
ZURpcmVjdGlvbk1vZGUsIExpbmVQb3NpdGlvbk1vZGUgPSBQb3NpdGlvbk9uQ29udGFpbmluZ0xp
bmUpIGNvbnN0OwogCiAgICAgUmVuZGVyTGluZUJveExpc3QqIGxpbmVCb3hlcygpIHsgcmV0dXJu
ICZtX2xpbmVCb3hlczsgfQpAQCAtMTYwLDcgKzE2MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIG1h
cmtBbGxEZXNjZW5kYW50c1dpdGhGbG9hdHNGb3JMYXlvdXQoUmVuZGVyQm94KiBmbG9hdFRvUmVt
b3ZlID0gMCwgYm9vbCBpbkxheW91dCA9IHRydWUpOwogICAgIHZvaWQgbWFya1NpYmxpbmdzV2l0
aEZsb2F0c0ZvckxheW91dChSZW5kZXJCb3gqIGZsb2F0VG9SZW1vdmUgPSAwKTsKICAgICB2b2lk
IG1hcmtQb3NpdGlvbmVkT2JqZWN0c0ZvckxheW91dCgpOwotICAgIHZpcnR1YWwgdm9pZCBtYXJr
Rm9yUGFnaW5hdGlvblJlbGF5b3V0SWZOZWVkZWQoKSBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0
dWFsIHZvaWQgbWFya0ZvclBhZ2luYXRpb25SZWxheW91dElmTmVlZGVkKCk7CiAgICAgCiAgICAg
Ym9vbCBjb250YWluc0Zsb2F0cygpIGNvbnN0IHsgcmV0dXJuIG1fZmxvYXRpbmdPYmplY3RzICYm
ICFtX2Zsb2F0aW5nT2JqZWN0cy0+c2V0KCkuaXNFbXB0eSgpOyB9CiAgICAgYm9vbCBjb250YWlu
c0Zsb2F0KFJlbmRlckJveCopIGNvbnN0OwpAQCAtMjMyLDcgKzIzMiw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIFZpc2libGVQb3NpdGlvbiBwb3NpdGlvbkZvclBvaW50KGNvbnN0IExheW91dFBv
aW50Jik7CiAgICAgCiAgICAgLy8gQmxvY2sgZmxvd3Mgc3ViY2xhc3MgYXZhaWxhYmxlV2lkdGgg
dG8gaGFuZGxlIG11bHRpIGNvbHVtbiBsYXlvdXQgKHNocmlua2luZyB0aGUgd2lkdGggYXZhaWxh
YmxlIHRvIGNoaWxkcmVuIHdoZW4gbGF5aW5nIG91dC4pCi0gICAgdmlydHVhbCBMYXlvdXRVbml0
IGF2YWlsYWJsZUxvZ2ljYWxXaWR0aCgpIGNvbnN0IE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1
YWwgTGF5b3V0VW5pdCBhdmFpbGFibGVMb2dpY2FsV2lkdGgoKSBjb25zdDsKIAogICAgIExheW91
dFBvaW50IGZsaXBGb3JXcml0aW5nTW9kZUluY2x1ZGluZ0NvbHVtbnMoY29uc3QgTGF5b3V0UG9p
bnQmKSBjb25zdDsKICAgICB2b2lkIGFkanVzdFN0YXJ0RWRnZUZvcldyaXRpbmdNb2RlSW5jbHVk
aW5nQ29sdW1ucyhMYXlvdXRSZWN0JikgY29uc3Q7CkBAIC0yNTksMTMgKzI1OSwxMyBAQCBwdWJs
aWM6CiAgICAgdm9pZCBjbGVhclRydW5jYXRpb24oKTsKIAogICAgIHZvaWQgYWRqdXN0UmVjdEZv
ckNvbHVtbnMoTGF5b3V0UmVjdCYpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RGb3JD
b2x1bW5zKExheW91dFNpemUmLCBjb25zdCBMYXlvdXRQb2ludCYpIGNvbnN0IE9WRVJSSURFIEZJ
TkFMOworICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RGb3JDb2x1bW5zKExheW91dFNpemUmLCBjb25z
dCBMYXlvdXRQb2ludCYpIGNvbnN0OwogICAgIHZvaWQgYWRqdXN0Rm9yQ29sdW1uUmVjdChMYXlv
dXRTaXplJiBvZmZzZXQsIGNvbnN0IExheW91dFBvaW50JiBsb2NhdGlvbkluQ29udGFpbmVyKSBj
b25zdDsKIAogICAgIHZvaWQgYWRkQ29udGludWF0aW9uV2l0aE91dGxpbmUoUmVuZGVySW5saW5l
Kik7CiAgICAgYm9vbCBwYWludHNDb250aW51YXRpb25PdXRsaW5lKFJlbmRlcklubGluZSopOwog
Ci0gICAgdmlydHVhbCBSZW5kZXJCb3hNb2RlbE9iamVjdCogdmlydHVhbENvbnRpbnVhdGlvbigp
IGNvbnN0IE9WRVJSSURFIEZJTkFMIHsgcmV0dXJuIGNvbnRpbnVhdGlvbigpOyB9CisgICAgdmly
dHVhbCBSZW5kZXJCb3hNb2RlbE9iamVjdCogdmlydHVhbENvbnRpbnVhdGlvbigpIGNvbnN0IHsg
cmV0dXJuIGNvbnRpbnVhdGlvbigpOyB9CiAgICAgYm9vbCBpc0Fub255bW91c0Jsb2NrQ29udGlu
dWF0aW9uKCkgY29uc3QgeyByZXR1cm4gY29udGludWF0aW9uKCkgJiYgaXNBbm9ueW1vdXNCbG9j
aygpOyB9CiAgICAgUmVuZGVySW5saW5lKiBpbmxpbmVFbGVtZW50Q29udGludWF0aW9uKCkgY29u
c3Q7CiAgICAgUmVuZGVyQmxvY2sqIGJsb2NrRWxlbWVudENvbnRpbnVhdGlvbigpIGNvbnN0OwpA
QCAtOTExLDcgKzkxMSw3IEBAIHByaXZhdGU6CiAgICAgTGF5b3V0VW5pdCBsb3dlc3RGbG9hdExv
Z2ljYWxCb3R0b20oRmxvYXRpbmdPYmplY3Q6OlR5cGUgPSBGbG9hdGluZ09iamVjdDo6RmxvYXRM
ZWZ0UmlnaHQpIGNvbnN0OyAKICAgICBMYXlvdXRVbml0IG5leHRGbG9hdExvZ2ljYWxCb3R0b21C
ZWxvdyhMYXlvdXRVbml0KSBjb25zdDsKICAgICAKLSAgICB2aXJ0dWFsIGJvb2wgaGl0VGVzdENv
bHVtbnMoY29uc3QgSGl0VGVzdFJlcXVlc3QmLCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgSGl0VGVz
dExvY2F0aW9uJiBsb2NhdGlvbkluQ29udGFpbmVyLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11
bGF0ZWRPZmZzZXQsIEhpdFRlc3RBY3Rpb24pIEZJTkFMOworICAgIHZpcnR1YWwgYm9vbCBoaXRU
ZXN0Q29sdW1ucyhjb25zdCBIaXRUZXN0UmVxdWVzdCYsIEhpdFRlc3RSZXN1bHQmLCBjb25zdCBI
aXRUZXN0TG9jYXRpb24mIGxvY2F0aW9uSW5Db250YWluZXIsIGNvbnN0IExheW91dFBvaW50JiBh
Y2N1bXVsYXRlZE9mZnNldCwgSGl0VGVzdEFjdGlvbik7CiAgICAgdmlydHVhbCBib29sIGhpdFRl
c3RDb250ZW50cyhjb25zdCBIaXRUZXN0UmVxdWVzdCYsIEhpdFRlc3RSZXN1bHQmLCBjb25zdCBI
aXRUZXN0TG9jYXRpb24mIGxvY2F0aW9uSW5Db250YWluZXIsIGNvbnN0IExheW91dFBvaW50JiBh
Y2N1bXVsYXRlZE9mZnNldCwgSGl0VGVzdEFjdGlvbik7CiAgICAgYm9vbCBoaXRUZXN0RmxvYXRz
KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IEhpdFRlc3RMb2Nh
dGlvbiYgbG9jYXRpb25JbkNvbnRhaW5lciwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVk
T2Zmc2V0KTsKIApAQCAtOTIzLDIwICs5MjMsMjAgQEAgcHJpdmF0ZToKIAogICAgIC8vIE9idGFp
bnMgdGhlIG5lYXJlc3QgZW5jbG9zaW5nIGJsb2NrIChpbmNsdWRpbmcgdGhpcyBibG9jaykgdGhh
dCBjb250cmlidXRlcyBhIGZpcnN0LWxpbmUgc3R5bGUgdG8gb3VyIGlubGluZQogICAgIC8vIGNo
aWxkcmVuLgotICAgIHZpcnR1YWwgUmVuZGVyQmxvY2sqIGZpcnN0TGluZUJsb2NrKCkgY29uc3Qg
T1ZFUlJJREU7CisgICAgdmlydHVhbCBSZW5kZXJCbG9jayogZmlyc3RMaW5lQmxvY2soKSBjb25z
dDsKIAotICAgIHZpcnR1YWwgTGF5b3V0UmVjdCByZWN0V2l0aE91dGxpbmVGb3JSZXBhaW50KGNv
bnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIExheW91dFVuaXQg
b3V0bGluZVdpZHRoKSBjb25zdCBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIFJlbmRlclN0
eWxlKiBvdXRsaW5lU3R5bGVGb3JSZXBhaW50KCkgY29uc3QgT1ZFUlJJREUgRklOQUw7CisgICAg
dmlydHVhbCBMYXlvdXRSZWN0IHJlY3RXaXRoT3V0bGluZUZvclJlcGFpbnQoY29uc3QgUmVuZGVy
TGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgTGF5b3V0VW5pdCBvdXRsaW5lV2lk
dGgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgUmVuZGVyU3R5bGUqIG91dGxpbmVTdHls
ZUZvclJlcGFpbnQoKSBjb25zdDsKICAgICAKLSAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogaG92
ZXJBbmNlc3RvcigpIGNvbnN0IE9WRVJSSURFIEZJTkFMOwotICAgIHZpcnR1YWwgdm9pZCB1cGRh
dGVEcmFnU3RhdGUoYm9vbCBkcmFnT24pIE9WRVJSSURFIEZJTkFMOwotICAgIHZpcnR1YWwgdm9p
ZCBjaGlsZEJlY2FtZU5vbklubGluZShSZW5kZXJPYmplY3QqIGNoaWxkKSBPVkVSUklERSBGSU5B
TDsKKyAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogaG92ZXJBbmNlc3RvcigpIGNvbnN0OworICAg
IHZpcnR1YWwgdm9pZCB1cGRhdGVEcmFnU3RhdGUoYm9vbCBkcmFnT24pOworICAgIHZpcnR1YWwg
dm9pZCBjaGlsZEJlY2FtZU5vbklubGluZShSZW5kZXJPYmplY3QqIGNoaWxkKTsKIAotICAgIHZp
cnR1YWwgTGF5b3V0UmVjdCBzZWxlY3Rpb25SZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXll
ck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29sIC8qY2xpcFRvVmlzaWJsZUNvbnRl
bnQqLykgT1ZFUlJJREUgRklOQUwKKyAgICB2aXJ0dWFsIExheW91dFJlY3Qgc2VsZWN0aW9uUmVj
dEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5l
ciwgYm9vbCAvKmNsaXBUb1Zpc2libGVDb250ZW50Ki8pIE9WRVJSSURFCiAgICAgewogICAgICAg
ICByZXR1cm4gc2VsZWN0aW9uR2FwUmVjdHNGb3JSZXBhaW50KHJlcGFpbnRDb250YWluZXIpOwog
ICAgIH0KLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUGFpbnRTZWxlY3Rpb25HYXBzKCkgY29uc3Qg
T1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCBib29sIHNob3VsZFBhaW50U2VsZWN0aW9uR2Fw
cygpIGNvbnN0OwogICAgIGJvb2wgaXNTZWxlY3Rpb25Sb290KCkgY29uc3Q7CiAgICAgR2FwUmVj
dHMgc2VsZWN0aW9uR2FwcyhSZW5kZXJCbG9jayogcm9vdEJsb2NrLCBjb25zdCBMYXlvdXRQb2lu
dCYgcm9vdEJsb2NrUGh5c2ljYWxQb3NpdGlvbiwgY29uc3QgTGF5b3V0U2l6ZSYgb2Zmc2V0RnJv
bVJvb3RCbG9jaywKICAgICAgICAgTGF5b3V0VW5pdCYgbGFzdExvZ2ljYWxUb3AsIExheW91dFVu
aXQmIGxhc3RMb2dpY2FsTGVmdCwgTGF5b3V0VW5pdCYgbGFzdExvZ2ljYWxSaWdodCwgY29uc3Qg
TG9naWNhbFNlbGVjdGlvbk9mZnNldENhY2hlcyYsIGNvbnN0IFBhaW50SW5mbyogPSAwKTsKQEAg
LTk1OSw3ICs5NTksNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBwYWludENvbnRpbnVhdGlvbk91
dGxpbmVzKFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50Jik7CiAKLSAgICB2aXJ0dWFsIExh
eW91dFJlY3QgbG9jYWxDYXJldFJlY3QoSW5saW5lQm94KiwgaW50IGNhcmV0T2Zmc2V0LCBMYXlv
dXRVbml0KiBleHRyYVdpZHRoVG9FbmRPZkxpbmUgPSAwKSBPVkVSUklERSBGSU5BTDsKKyAgICB2
aXJ0dWFsIExheW91dFJlY3QgbG9jYWxDYXJldFJlY3QoSW5saW5lQm94KiwgaW50IGNhcmV0T2Zm
c2V0LCBMYXlvdXRVbml0KiBleHRyYVdpZHRoVG9FbmRPZkxpbmUgPSAwKTsKIAogICAgIHZvaWQg
YWRqdXN0UG9pbnRUb0NvbHVtbkNvbnRlbnRzKExheW91dFBvaW50JikgY29uc3Q7CiAgICAgCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKaW5kZXggOTdmNWE1ZTIzZmI4NGNlYTM0NjJm
NTY3NDVkM2Q1NTAxZDZkMTY4My4uZjJhNzc3NGNjYjQ2NmQ2ZTU4ZmIzM2RlZmJkZTdjZDEwNDVi
OTg4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaApAQCAtNTEsNyArNTEsNyBA
QCBwdWJsaWM6CiAgICAgLy8gcG9zaXRpb246c3RhdGljIGVsZW1lbnRzIHRoYXQgYXJlIG5vdCBm
bGV4LWl0ZW1zIGdldCB0aGVpciB6LWluZGV4IGNvZXJjZWQgdG8gYXV0by4KICAgICB2aXJ0dWFs
IGJvb2wgcmVxdWlyZXNMYXllcigpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIGlzUm9vdCgpIHx8
IGlzUG9zaXRpb25lZCgpIHx8IGNyZWF0ZXNHcm91cCgpIHx8IGhhc0NsaXBQYXRoKCkgfHwgaGFz
T3ZlcmZsb3dDbGlwKCkgfHwgaGFzVHJhbnNmb3JtKCkgfHwgaGFzSGlkZGVuQmFja2ZhY2UoKSB8
fCBoYXNSZWZsZWN0aW9uKCkgfHwgc3R5bGUoKS0+c3BlY2lmaWVzQ29sdW1ucygpIHx8ICFzdHls
ZSgpLT5oYXNBdXRvWkluZGV4KCkgfHwgaXNGbG9hdGluZ1dpdGhTaGFwZU91dHNpZGUoKTsgfQog
Ci0gICAgdmlydHVhbCBib29sIGJhY2tncm91bmRJc0tub3duVG9CZU9wYXF1ZUluUmVjdChjb25z
dCBMYXlvdXRSZWN0JiBsb2NhbFJlY3QpIGNvbnN0IE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1
YWwgYm9vbCBiYWNrZ3JvdW5kSXNLbm93blRvQmVPcGFxdWVJblJlY3QoY29uc3QgTGF5b3V0UmVj
dCYgbG9jYWxSZWN0KSBjb25zdCBPVkVSUklERTsKIAogICAgIC8vIFVzZSB0aGlzIHdpdGggY2F1
dGlvbiEgTm8gdHlwZSBjaGVja2luZyBpcyBkb25lIQogICAgIFJlbmRlckJveCogZmlyc3RDaGls
ZEJveCgpIGNvbnN0OwpAQCAtMTQ5LDcgKzE0OSw3IEBAIHB1YmxpYzoKICAgICBMYXlvdXRSZWN0
IGJvcmRlckJveFJlY3QoKSBjb25zdCB7IHJldHVybiBMYXlvdXRSZWN0KExheW91dFBvaW50KCks
IHNpemUoKSk7IH0KICAgICBMYXlvdXRSZWN0IHBhZGRpbmdCb3hSZWN0KCkgY29uc3QgeyByZXR1
cm4gTGF5b3V0UmVjdChib3JkZXJMZWZ0KCksIGJvcmRlclRvcCgpLCBjb250ZW50V2lkdGgoKSAr
IHBhZGRpbmdMZWZ0KCkgKyBwYWRkaW5nUmlnaHQoKSwgY29udGVudEhlaWdodCgpICsgcGFkZGlu
Z1RvcCgpICsgcGFkZGluZ0JvdHRvbSgpKTsgfQogICAgIEludFJlY3QgcGl4ZWxTbmFwcGVkQm9y
ZGVyQm94UmVjdCgpIGNvbnN0IHsgcmV0dXJuIEludFJlY3QoSW50UG9pbnQoKSwgbV9mcmFtZVJl
Y3QucGl4ZWxTbmFwcGVkU2l6ZSgpKTsgfQotICAgIHZpcnR1YWwgSW50UmVjdCBib3JkZXJCb3Vu
ZGluZ0JveCgpIGNvbnN0IE9WRVJSSURFIEZJTkFMIHsgcmV0dXJuIHBpeGVsU25hcHBlZEJvcmRl
ckJveFJlY3QoKTsgfQorICAgIHZpcnR1YWwgSW50UmVjdCBib3JkZXJCb3VuZGluZ0JveCgpIGNv
bnN0IHsgcmV0dXJuIHBpeGVsU25hcHBlZEJvcmRlckJveFJlY3QoKTsgfSAKIAogICAgIC8vIFRo
ZSBjb250ZW50IGFyZWEgb2YgdGhlIGJveCAoZXhjbHVkZXMgcGFkZGluZyAtIGFuZCBpbnRyaW5z
aWMgcGFkZGluZyBmb3IgdGFibGUgY2VsbHMsIGV0Yy4uLiAtIGFuZCBib3JkZXIpLgogICAgIExh
eW91dFJlY3QgY29udGVudEJveFJlY3QoKSBjb25zdCB7IHJldHVybiBMYXlvdXRSZWN0KGJvcmRl
ckxlZnQoKSArIHBhZGRpbmdMZWZ0KCksIGJvcmRlclRvcCgpICsgcGFkZGluZ1RvcCgpLCBjb250
ZW50V2lkdGgoKSwgY29udGVudEhlaWdodCgpKTsgfQpAQCAtMTYzLDcgKzE2Myw3IEBAIHB1Ymxp
YzoKICAgICBMYXlvdXRSZWN0IGNvbXB1dGVkQ1NTQ29udGVudEJveFJlY3QoKSBjb25zdCB7IHJl
dHVybiBMYXlvdXRSZWN0KGJvcmRlckxlZnQoKSArIGNvbXB1dGVkQ1NTUGFkZGluZ0xlZnQoKSwg
Ym9yZGVyVG9wKCkgKyBjb21wdXRlZENTU1BhZGRpbmdUb3AoKSwgY2xpZW50V2lkdGgoKSAtIGNv
bXB1dGVkQ1NTUGFkZGluZ0xlZnQoKSAtIGNvbXB1dGVkQ1NTUGFkZGluZ1JpZ2h0KCksIGNsaWVu
dEhlaWdodCgpIC0gY29tcHV0ZWRDU1NQYWRkaW5nVG9wKCkgLSBjb21wdXRlZENTU1BhZGRpbmdC
b3R0b20oKSk7IH0KIAogICAgIC8vIEJvdW5kcyBvZiB0aGUgb3V0bGluZSBib3ggaW4gYWJzb2x1
dGUgY29vcmRzLiBSZXNwZWN0cyB0cmFuc2Zvcm1zCi0gICAgdmlydHVhbCBMYXlvdXRSZWN0IG91
dGxpbmVCb3VuZHNGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIC8qcmVw
YWludENvbnRhaW5lciovLCBjb25zdCBSZW5kZXJHZW9tZXRyeU1hcCopIGNvbnN0IE9WRVJSSURF
IEZJTkFMOworICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBvdXRsaW5lQm91bmRzRm9yUmVwYWludChj
b25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiAvKnJlcGFpbnRDb250YWluZXIqLywgY29uc3Qg
UmVuZGVyR2VvbWV0cnlNYXAqKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgYWRk
Rm9jdXNSaW5nUmVjdHMoVmVjdG9yPEludFJlY3Q+JiwgY29uc3QgTGF5b3V0UG9pbnQmIGFkZGl0
aW9uYWxPZmZzZXQsIGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHBhaW50Q29udGFpbmVy
ID0gMCkgT1ZFUlJJREU7CiAKICAgICAvLyBVc2UgdGhpcyB3aXRoIGNhdXRpb24hIE5vIHR5cGUg
Y2hlY2tpbmcgaXMgZG9uZSEKQEAgLTIwNSw4ICsyMDUsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCBMYXlvdXRVbml0IG9mZnNldFdpZHRoKCkgY29uc3QgeyByZXR1cm4gd2lkdGgoKTsgfQogICAg
IHZpcnR1YWwgTGF5b3V0VW5pdCBvZmZzZXRIZWlnaHQoKSBjb25zdCB7IHJldHVybiBoZWlnaHQo
KTsgfQogCi0gICAgdmlydHVhbCBpbnQgcGl4ZWxTbmFwcGVkT2Zmc2V0V2lkdGgoKSBjb25zdCBP
VkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIGludCBwaXhlbFNuYXBwZWRPZmZzZXRIZWlnaHQo
KSBjb25zdCBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIGludCBwaXhlbFNuYXBwZWRPZmZz
ZXRXaWR0aCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgaW50IHBpeGVsU25hcHBlZE9m
ZnNldEhlaWdodCgpIGNvbnN0IE9WRVJSSURFOwogCiAgICAgLy8gTW9yZSBJRSBleHRlbnNpb25z
LiAgY2xpZW50V2lkdGggYW5kIGNsaWVudEhlaWdodCByZXByZXNlbnQgdGhlIGludGVyaW9yIG9m
IGFuIG9iamVjdAogICAgIC8vIGV4Y2x1ZGluZyBib3JkZXIgYW5kIHNjcm9sbGJhci4gIGNsaWVu
dExlZnQvVG9wIGFyZSBqdXN0IHRoZSBib3JkZXJMZWZ0V2lkdGggYW5kIGJvcmRlclRvcFdpZHRo
LgpAQCAtMjQzLDE3ICsyNDMsMTcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0TWFyZ2luTGVmdChM
YXlvdXRVbml0IG1hcmdpbikgeyBtX21hcmdpbkJveC5zZXRMZWZ0KG1hcmdpbik7IH0KICAgICB2
b2lkIHNldE1hcmdpblJpZ2h0KExheW91dFVuaXQgbWFyZ2luKSB7IG1fbWFyZ2luQm94LnNldFJp
Z2h0KG1hcmdpbik7IH0KIAotICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBtYXJnaW5Mb2dpY2FsTGVm
dCgpIGNvbnN0IEZJTkFMIHsgcmV0dXJuIG1fbWFyZ2luQm94LmxvZ2ljYWxMZWZ0KHN0eWxlKCkt
PndyaXRpbmdNb2RlKCkpOyB9Ci0gICAgdmlydHVhbCBMYXlvdXRVbml0IG1hcmdpbkxvZ2ljYWxS
aWdodCgpIGNvbnN0IEZJTkFMIHsgcmV0dXJuIG1fbWFyZ2luQm94LmxvZ2ljYWxSaWdodChzdHls
ZSgpLT53cml0aW5nTW9kZSgpKTsgfQorICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBtYXJnaW5Mb2dp
Y2FsTGVmdCgpIGNvbnN0IHsgcmV0dXJuIG1fbWFyZ2luQm94LmxvZ2ljYWxMZWZ0KHN0eWxlKCkt
PndyaXRpbmdNb2RlKCkpOyB9CisgICAgdmlydHVhbCBMYXlvdXRVbml0IG1hcmdpbkxvZ2ljYWxS
aWdodCgpIGNvbnN0IHsgcmV0dXJuIG1fbWFyZ2luQm94LmxvZ2ljYWxSaWdodChzdHlsZSgpLT53
cml0aW5nTW9kZSgpKTsgfQogICAgIAotICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBtYXJnaW5CZWZv
cmUoY29uc3QgUmVuZGVyU3R5bGUqIG92ZXJyaWRlU3R5bGUgPSAwKSBjb25zdCBPVkVSUklERSBG
SU5BTCB7IHJldHVybiBtX21hcmdpbkJveC5iZWZvcmUoKG92ZXJyaWRlU3R5bGUgPyBvdmVycmlk
ZVN0eWxlIDogc3R5bGUoKSktPndyaXRpbmdNb2RlKCkpOyB9Ci0gICAgdmlydHVhbCBMYXlvdXRV
bml0IG1hcmdpbkFmdGVyKGNvbnN0IFJlbmRlclN0eWxlKiBvdmVycmlkZVN0eWxlID0gMCkgY29u
c3QgT1ZFUlJJREUgRklOQUwgeyByZXR1cm4gbV9tYXJnaW5Cb3guYWZ0ZXIoKG92ZXJyaWRlU3R5
bGUgPyBvdmVycmlkZVN0eWxlIDogc3R5bGUoKSktPndyaXRpbmdNb2RlKCkpOyB9Ci0gICAgdmly
dHVhbCBMYXlvdXRVbml0IG1hcmdpblN0YXJ0KGNvbnN0IFJlbmRlclN0eWxlKiBvdmVycmlkZVN0
eWxlID0gMCkgY29uc3QgT1ZFUlJJREUgRklOQUwKKyAgICB2aXJ0dWFsIExheW91dFVuaXQgbWFy
Z2luQmVmb3JlKGNvbnN0IFJlbmRlclN0eWxlKiBvdmVycmlkZVN0eWxlID0gMCkgY29uc3QgT1ZF
UlJJREUgeyByZXR1cm4gbV9tYXJnaW5Cb3guYmVmb3JlKChvdmVycmlkZVN0eWxlID8gb3ZlcnJp
ZGVTdHlsZSA6IHN0eWxlKCkpLT53cml0aW5nTW9kZSgpKTsgfQorICAgIHZpcnR1YWwgTGF5b3V0
VW5pdCBtYXJnaW5BZnRlcihjb25zdCBSZW5kZXJTdHlsZSogb3ZlcnJpZGVTdHlsZSA9IDApIGNv
bnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fbWFyZ2luQm94LmFmdGVyKChvdmVycmlkZVN0eWxlID8g
b3ZlcnJpZGVTdHlsZSA6IHN0eWxlKCkpLT53cml0aW5nTW9kZSgpKTsgfQorICAgIHZpcnR1YWwg
TGF5b3V0VW5pdCBtYXJnaW5TdGFydChjb25zdCBSZW5kZXJTdHlsZSogb3ZlcnJpZGVTdHlsZSA9
IDApIGNvbnN0IE9WRVJSSURFCiAgICAgewogICAgICAgICBjb25zdCBSZW5kZXJTdHlsZSogc3R5
bGVUb1VzZSA9IG92ZXJyaWRlU3R5bGUgPyBvdmVycmlkZVN0eWxlIDogc3R5bGUoKTsKICAgICAg
ICAgcmV0dXJuIG1fbWFyZ2luQm94LnN0YXJ0KHN0eWxlVG9Vc2UtPndyaXRpbmdNb2RlKCksIHN0
eWxlVG9Vc2UtPmRpcmVjdGlvbigpKTsKICAgICB9Ci0gICAgdmlydHVhbCBMYXlvdXRVbml0IG1h
cmdpbkVuZChjb25zdCBSZW5kZXJTdHlsZSogb3ZlcnJpZGVTdHlsZSA9IDApIGNvbnN0IE9WRVJS
SURFIEZJTkFMCisgICAgdmlydHVhbCBMYXlvdXRVbml0IG1hcmdpbkVuZChjb25zdCBSZW5kZXJT
dHlsZSogb3ZlcnJpZGVTdHlsZSA9IDApIGNvbnN0IE9WRVJSSURFCiAgICAgewogICAgICAgICBj
b25zdCBSZW5kZXJTdHlsZSogc3R5bGVUb1VzZSA9IG92ZXJyaWRlU3R5bGUgPyBvdmVycmlkZVN0
eWxlIDogc3R5bGUoKTsKICAgICAgICAgcmV0dXJuIG1fbWFyZ2luQm94LmVuZChzdHlsZVRvVXNl
LT53cml0aW5nTW9kZSgpLCBzdHlsZVRvVXNlLT5kaXJlY3Rpb24oKSk7CkBAIC01NDMsNyArNTQz
LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIGhhc1JlbGF0aXZlRGltZW5zaW9ucygp
IGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBoYXNSZWxhdGl2ZUxvZ2ljYWxIZWlnaHQoKSBjb25z
dDsKLSAgICB2aXJ0dWFsIGJvb2wgaGFzVmlld3BvcnRQZXJjZW50YWdlTG9naWNhbEhlaWdodCgp
IGNvbnN0IEZJTkFMOworICAgIHZpcnR1YWwgYm9vbCBoYXNWaWV3cG9ydFBlcmNlbnRhZ2VMb2dp
Y2FsSGVpZ2h0KCkgY29uc3Q7CiAKICAgICBib29sIGhhc0hvcml6b250YWxMYXlvdXRPdmVyZmxv
dygpIGNvbnN0CiAgICAgewpAQCAtNjY1LDcgKzY2NSw3IEBAIHByaXZhdGU6CiAgICAgLy8gVGhl
c2UgaW5jbHVkZSB0YWJsZXMsIHBvc2l0aW9uZWQgb2JqZWN0cywgZmxvYXRzIGFuZCBmbGV4aWJs
ZSBib3hlcy4KICAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMo
KSB7IHNldFByZWZlcnJlZExvZ2ljYWxXaWR0aHNEaXJ0eShmYWxzZSk7IH0KIAotICAgIHZpcnR1
YWwgTGF5b3V0UmVjdCBmcmFtZVJlY3RGb3JTdGlja3lQb3NpdGlvbmluZygpIGNvbnN0IE9WRVJS
SURFIEZJTkFMIHsgcmV0dXJuIGZyYW1lUmVjdCgpOyB9CisgICAgdmlydHVhbCBMYXlvdXRSZWN0
IGZyYW1lUmVjdEZvclN0aWNreVBvc2l0aW9uaW5nKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4g
ZnJhbWVSZWN0KCk7IH0KIAogcHJpdmF0ZToKICAgICAvLyBUaGUgd2lkdGgvaGVpZ2h0IG9mIHRo
ZSBjb250ZW50cyArIGJvcmRlcnMgKyBwYWRkaW5nLiAgVGhlIHgveSBsb2NhdGlvbiBpcyByZWxh
dGl2ZSB0byBvdXIgY29udGFpbmVyICh3aGljaCBpcyBub3QgYWx3YXlzIG91ciBwYXJlbnQpLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaAppbmRl
eCAxOGE4NGEzZGNiYzEwMGEyMzUwZjY1OWFiMTI4OGI2ZTQ2OWQyZDVkLi5lNjBlYjJiNWE0NGRm
MDgyMzc5NTk5ZGNlMDZmNDBhNzBiYTJlYTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaApAQCAtMjkyLDcgKzI5Miw3IEBAIHB1YmxpYzoK
IAogcHJpdmF0ZToKICAgICBMYXlvdXRVbml0IGNvbXB1dGVkQ1NTUGFkZGluZyhMZW5ndGgpIGNv
bnN0OwotICAgIHZpcnR1YWwgYm9vbCBpc0JveE1vZGVsT2JqZWN0KCkgY29uc3QgT1ZFUlJJREUg
RklOQUwgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc0JveE1vZGVsT2JqZWN0
KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogICAgIAogICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBm
cmFtZVJlY3RGb3JTdGlja3lQb3NpdGlvbmluZygpIGNvbnN0ID0gMDsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJ1dHRvbi5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJ1dHRvbi5oCmluZGV4IDRmMjBjZjUzYmQwMDA5MmY0Yjg5ZDNiNTMx
ZWNmMjE3Zjg1MDk3ZjcuLjliZGM0ODc1MTgzNjFkMzllM2FkZTRlZjEzMjJiMDUzODhhMjQ4OTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCdXR0b24uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQnV0dG9uLmgKQEAgLTMyLDcgKzMyLDcg
QEAgY2xhc3MgUmVuZGVyVGV4dEZyYWdtZW50OwogLy8gUmVuZGVyQnV0dG9ucyBhcmUganVzdCBs
aWtlIG5vcm1hbCBmbGV4Ym94ZXMgZXhjZXB0IHRoYXQgdGhleSB3aWxsIGdlbmVyYXRlIGFuIGFu
b255bW91cyBibG9jayBjaGlsZC4KIC8vIEZvciBpbnB1dHMsIHRoZXkgd2lsbCBhbHNvIGdlbmVy
YXRlIGFuIGFub255bW91cyBSZW5kZXJUZXh0IGFuZCBrZWVwIGl0cyBzdHlsZSBhbmQgY29udGVu
dCB1cAogLy8gdG8gZGF0ZSBhcyB0aGUgYnV0dG9uIGNoYW5nZXMuCi1jbGFzcyBSZW5kZXJCdXR0
b24gRklOQUwgOiBwdWJsaWMgUmVuZGVyRmxleGlibGVCb3ggeworY2xhc3MgUmVuZGVyQnV0dG9u
IDogcHVibGljIFJlbmRlckZsZXhpYmxlQm94IHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBSZW5k
ZXJCdXR0b24oRWxlbWVudCopOwogICAgIHZpcnR1YWwgflJlbmRlckJ1dHRvbigpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckNvbWJpbmVUZXh0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQ29tYmluZVRleHQuaAppbmRleCBhYjc3NTUwNjJi
YjMzNWVhYmNmZDMzNWM1MTE0ZGVkZmRhM2RhNmJiLi42ZWU5ZmYyN2ZjMzAyN2JiYjZlNmNiMTZi
ODgwM2UzODA0MDliZjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQ29tYmluZVRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQ29t
YmluZVRleHQuaApAQCAtMjYsNyArMjYsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNs
YXNzIFJlbmRlckNvbWJpbmVUZXh0IEZJTkFMIDogcHVibGljIFJlbmRlclRleHQgeworY2xhc3Mg
UmVuZGVyQ29tYmluZVRleHQgOiBwdWJsaWMgUmVuZGVyVGV4dCB7CiBwdWJsaWM6CiAgICAgUmVu
ZGVyQ29tYmluZVRleHQoTm9kZSosIFBhc3NSZWZQdHI8U3RyaW5nSW1wbD4pOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQ291bnRlci5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckNvdW50ZXIuaAppbmRleCA4YWU0MGE0NDY4ODEzOWVhNmVj
NjM2OTVhMTMzNjk3YWRhOWQzNmIxLi5lZDJmZGY1Y2YwYzZhOWUzY2VmZTAwZTRlZTNmNGZmNjM5
ZDk2YjlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQ291bnRl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJDb3VudGVyLmgKQEAgLTI5
LDcgKzI5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDb3VudGVyTm9kZTsKIAot
Y2xhc3MgUmVuZGVyQ291bnRlciBGSU5BTCA6IHB1YmxpYyBSZW5kZXJUZXh0IHsKK2NsYXNzIFJl
bmRlckNvdW50ZXIgOiBwdWJsaWMgUmVuZGVyVGV4dCB7CiBwdWJsaWM6CiAgICAgUmVuZGVyQ291
bnRlcihEb2N1bWVudCosIGNvbnN0IENvdW50ZXJDb250ZW50Jik7CiAgICAgdmlydHVhbCB+UmVu
ZGVyQ291bnRlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5oCmluZGV4IDkwNmIwMTkyZDJiMzYwMzZhNzY3Y2NkMzhl
M2Q5OTU1ODc0ZjNiNDYuLjVmMjIzY2Q0YmQzODdkMGVjMWFlOTk5NmExN2I1NGRlZDcxODgxYTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxl
eGlibGVCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRl
ZEZsZXhpYmxlQm94LmgKQEAgLTI5LDcgKzI5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBGbGV4Qm94SXRlcmF0b3I7CiAKLWNsYXNzIFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJv
eCBGSU5BTCA6IHB1YmxpYyBSZW5kZXJCbG9jayB7CitjbGFzcyBSZW5kZXJEZXByZWNhdGVkRmxl
eGlibGVCb3ggOiBwdWJsaWMgUmVuZGVyQmxvY2sgewogcHVibGljOgogICAgIFJlbmRlckRlcHJl
Y2F0ZWRGbGV4aWJsZUJveChFbGVtZW50Kik7CiAgICAgdmlydHVhbCB+UmVuZGVyRGVwcmVjYXRl
ZEZsZXhpYmxlQm94KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyRGV0YWlsc01hcmtlci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRldGFp
bHNNYXJrZXIuaAppbmRleCBkNjFmOTM2NzhiNjY5ZDgyNmQ3YzgwNmNlYWY4ODRkMjkzYjI4YTBh
Li5jZDkxYjAxM2VhODk1YTQwNGIzMDVlZjNjNmI1ZTdmZTkyNDVjZWFmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGV0YWlsc01hcmtlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXRhaWxzTWFya2VyLmgKQEAgLTI2LDcgKzI2LDcg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBSZW5kZXJEZXRhaWxzTWFya2VyIEZJ
TkFMIDogcHVibGljIFJlbmRlckJsb2NrIHsKK2NsYXNzIFJlbmRlckRldGFpbHNNYXJrZXIgOiBw
dWJsaWMgUmVuZGVyQmxvY2sgewogcHVibGljOgogICAgIFJlbmRlckRldGFpbHNNYXJrZXIoRWxl
bWVudCopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1i
ZWRkZWRPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9i
amVjdC5oCmluZGV4IDk4YTFmODcwZGRiMDZlYWQxYjcxNjI5MDk1YzRkNzNjYTY1YmIzNDIuLjMw
YjJiZTQ5MTcyOTRlZjc2MTNlNDZhYzU0MjFjNDgyYTczZTY1MTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5oCkBAIC01NCwxNCArNTQsMTQg
QEAgcHVibGljOgogICAgIHZvaWQgaGFuZGxlVW5hdmFpbGFibGVQbHVnaW5JbmRpY2F0b3JFdmVu
dChFdmVudCopOwogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotICAgIHZpcnR1
YWwgYm9vbCBhbGxvd3NBY2NlbGVyYXRlZENvbXBvc2l0aW5nKCkgY29uc3QgRklOQUw7CisgICAg
dmlydHVhbCBib29sIGFsbG93c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcoKSBjb25zdDsKICNlbmRp
ZgogCiBwcm90ZWN0ZWQ6Ci0gICAgdmlydHVhbCB2b2lkIHBhaW50UmVwbGFjZWQoUGFpbnRJbmZv
JiwgY29uc3QgTGF5b3V0UG9pbnQmKSBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIHZvaWQg
cGFpbnQoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIHZvaWQgcGFpbnRSZXBsYWNlZChQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpOwor
ICAgIHZpcnR1YWwgdm9pZCBwYWludChQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpOwog
Ci0gICAgdmlydHVhbCBDdXJzb3JEaXJlY3RpdmUgZ2V0Q3Vyc29yKGNvbnN0IExheW91dFBvaW50
JiwgQ3Vyc29yJikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBDdXJzb3JEaXJlY3RpdmUg
Z2V0Q3Vyc29yKGNvbnN0IExheW91dFBvaW50JiwgQ3Vyc29yJikgY29uc3Q7CiAKICAgICBjb25z
dCBSZW5kZXJPYmplY3RDaGlsZExpc3QqIGNoaWxkcmVuKCkgY29uc3QgeyByZXR1cm4gJm1fY2hp
bGRyZW47IH0KICAgICBSZW5kZXJPYmplY3RDaGlsZExpc3QqIGNoaWxkcmVuKCkgeyByZXR1cm4g
Jm1fY2hpbGRyZW47IH0KQEAgLTcxLDMwICs3MSwzMCBAQCBwcm90ZWN0ZWQ6CiAKIHByaXZhdGU6
CiAgICAgdmlydHVhbCBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3QgeyByZXR1cm4gIlJl
bmRlckVtYmVkZGVkT2JqZWN0IjsgfQotICAgIHZpcnR1YWwgYm9vbCBpc0VtYmVkZGVkT2JqZWN0
KCkgY29uc3QgT1ZFUlJJREUgRklOQUwgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9v
bCBpc0VtYmVkZGVkT2JqZWN0KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgdm9pZCBw
YWludFNuYXBzaG90SW1hZ2UoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmLCBJbWFnZSop
OwotICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzKFBhaW50SW5mbyYsIGNvbnN0IExheW91
dFBvaW50JikgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMo
UGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKSBPVkVSUklERTsKIAogI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKLSAgICB2aXJ0dWFsIGJvb2wgcmVxdWlyZXNMYXllcigpIGNv
bnN0IE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgYm9vbCByZXF1aXJlc0xheWVyKCkgY29u
c3Q7CiAjZW5kaWYKIAotICAgIHZpcnR1YWwgdm9pZCB2aWV3Q2xlYXJlZCgpIE9WRVJSSURFIEZJ
TkFMOworICAgIHZpcnR1YWwgdm9pZCB2aWV3Q2xlYXJlZCgpOwogCi0gICAgdmlydHVhbCBib29s
IG5vZGVBdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGNvbnN0
IEhpdFRlc3RMb2NhdGlvbiYgbG9jYXRpb25JbkNvbnRhaW5lciwgY29uc3QgTGF5b3V0UG9pbnQm
IGFjY3VtdWxhdGVkT2Zmc2V0LCBIaXRUZXN0QWN0aW9uKSBPVkVSUklERSBGSU5BTDsKKyAgICB2
aXJ0dWFsIGJvb2wgbm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmLCBIaXRUZXN0UmVz
dWx0JiwgY29uc3QgSGl0VGVzdExvY2F0aW9uJiBsb2NhdGlvbkluQ29udGFpbmVyLCBjb25zdCBM
YXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQsIEhpdFRlc3RBY3Rpb24pIE9WRVJSSURFOwog
Ci0gICAgdmlydHVhbCBib29sIHNjcm9sbChTY3JvbGxEaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFy
aXR5LCBmbG9hdCBtdWx0aXBsaWVyLCBOb2RlKiogc3RvcE5vZGUpIE9WRVJSSURFIEZJTkFMOwot
ICAgIHZpcnR1YWwgYm9vbCBsb2dpY2FsU2Nyb2xsKFNjcm9sbExvZ2ljYWxEaXJlY3Rpb24sIFNj
cm9sbEdyYW51bGFyaXR5LCBmbG9hdCBtdWx0aXBsaWVyLCBOb2RlKiogc3RvcE5vZGUpIE9WRVJS
SURFIEZJTkFMOworICAgIHZpcnR1YWwgYm9vbCBzY3JvbGwoU2Nyb2xsRGlyZWN0aW9uLCBTY3Jv
bGxHcmFudWxhcml0eSwgZmxvYXQgbXVsdGlwbGllciwgTm9kZSoqIHN0b3BOb2RlKTsKKyAgICB2
aXJ0dWFsIGJvb2wgbG9naWNhbFNjcm9sbChTY3JvbGxMb2dpY2FsRGlyZWN0aW9uLCBTY3JvbGxH
cmFudWxhcml0eSwgZmxvYXQgbXVsdGlwbGllciwgTm9kZSoqIHN0b3BOb2RlKTsKIAogICAgIHZv
aWQgc2V0VW5hdmFpbGFibGVQbHVnaW5JbmRpY2F0b3JJc1ByZXNzZWQoYm9vbCk7CiAgICAgYm9v
bCBpc0luVW5hdmFpbGFibGVQbHVnaW5JbmRpY2F0b3IoTW91c2VFdmVudCopIGNvbnN0OwogICAg
IGJvb2wgaXNJblVuYXZhaWxhYmxlUGx1Z2luSW5kaWNhdG9yKGNvbnN0IExheW91dFBvaW50Jikg
Y29uc3Q7CiAgICAgYm9vbCBnZXRSZXBsYWNlbWVudFRleHRHZW9tZXRyeShjb25zdCBMYXlvdXRQ
b2ludCYgYWNjdW11bGF0ZWRPZmZzZXQsIEZsb2F0UmVjdCYgY29udGVudFJlY3QsIFBhdGgmLCBG
bG9hdFJlY3QmIHJlcGxhY2VtZW50VGV4dFJlY3QsIEZvbnQmLCBUZXh0UnVuJiwgZmxvYXQmIHRl
eHRXaWR0aCkgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIGJvb2wgY2FuSGF2ZUNoaWxkcmVuKCkgY29u
c3QgT1ZFUlJJREUgRklOQUw7Ci0gICAgdmlydHVhbCBSZW5kZXJPYmplY3RDaGlsZExpc3QqIHZp
cnR1YWxDaGlsZHJlbigpIE9WRVJSSURFIEZJTkFMIHsgcmV0dXJuIGNoaWxkcmVuKCk7IH0KLSAg
ICB2aXJ0dWFsIGNvbnN0IFJlbmRlck9iamVjdENoaWxkTGlzdCogdmlydHVhbENoaWxkcmVuKCkg
Y29uc3QgT1ZFUlJJREUgRklOQUwgeyByZXR1cm4gY2hpbGRyZW4oKTsgfQorICAgIHZpcnR1YWwg
Ym9vbCBjYW5IYXZlQ2hpbGRyZW4oKSBjb25zdDsKKyAgICB2aXJ0dWFsIFJlbmRlck9iamVjdENo
aWxkTGlzdCogdmlydHVhbENoaWxkcmVuKCkgeyByZXR1cm4gY2hpbGRyZW4oKTsgfQorICAgIHZp
cnR1YWwgY29uc3QgUmVuZGVyT2JqZWN0Q2hpbGRMaXN0KiB2aXJ0dWFsQ2hpbGRyZW4oKSBjb25z
dCB7IHJldHVybiBjaGlsZHJlbigpOyB9CiAgICAgCiAgICAgdmlydHVhbCBib29sIGNhbkhhdmVX
aWRnZXQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJGaWVsZHNldC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckZpZWxkc2V0LmgKaW5kZXggNTQ1MTlhOGEyNzk2YWI5Zjg1OTQ2ZjVmYmM0YTlhZDc3
OGUyMmVlNy4uMzQ4MWM4N2FhZDE0YmFkYjc3MGE2YjAyY2QyOWExMDRkY2Y4NmRhNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpZWxkc2V0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpZWxkc2V0LmgKQEAgLTI4LDcgKzI4LDcgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBSZW5kZXJGaWVsZHNldCBGSU5BTCA6IHB1
YmxpYyBSZW5kZXJCbG9jayB7CitjbGFzcyBSZW5kZXJGaWVsZHNldCA6IHB1YmxpYyBSZW5kZXJC
bG9jayB7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgUmVuZGVyRmllbGRzZXQoRWxlbWVudCopOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENv
bnRyb2wuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJv
bC5oCmluZGV4IGIxOWJmZTVjZjNlNDM5OTFmYjcwNTA3ZTkwYmE0NGE0NTMxYjVjMzguLjM0ZDE2
MDQyMmZjN2IxNWVlMjFmNmQxNGE1MWZjOGQxMGFhYjEzNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5oCkBAIC0zMSw3ICszMSw3
IEBAIGNsYXNzIEhUTUxJbnB1dEVsZW1lbnQ7CiAvLyBzdWZmaWNpZW50IHNwYWNlIHRvIGRyYXcg
YSBmaWxlIGljb24gYW5kIGZpbGVuYW1lLiBUaGUgUmVuZGVyQnV0dG9uIGhhcyBhIHNoYWRvdyBu
b2RlCiAvLyBhc3NvY2lhdGVkIHdpdGggaXQgdG8gcmVjZWl2ZSBjbGljay9ob3ZlciBldmVudHMu
CiAKLWNsYXNzIFJlbmRlckZpbGVVcGxvYWRDb250cm9sIEZJTkFMIDogcHVibGljIFJlbmRlckJs
b2NrIHsKK2NsYXNzIFJlbmRlckZpbGVVcGxvYWRDb250cm9sIDogcHVibGljIFJlbmRlckJsb2Nr
IHsKIHB1YmxpYzoKICAgICBSZW5kZXJGaWxlVXBsb2FkQ29udHJvbChIVE1MSW5wdXRFbGVtZW50
Kik7CiAgICAgdmlydHVhbCB+UmVuZGVyRmlsZVVwbG9hZENvbnRyb2woKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmgKaW5kZXggMjE5MzY0NzhmYjNiMDMx
YjZjMDJiOGY2Yjg3MjdmYTk3NzJjYmVkMy4uYWQ3NzA3NTg1YjczNWQ4MTdlYzllZmMzZjJjMWM1
NzMxOWUzYjRlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZs
ZXhpYmxlQm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxl
Qm94LmgKQEAgLTQ0LDE2ICs0NCwxNiBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGNvbnN0IGNo
YXIqIHJlbmRlck5hbWUoKSBjb25zdCBPVkVSUklERTsKIAotICAgIHZpcnR1YWwgYm9vbCBpc0Zs
ZXhpYmxlQm94KCkgY29uc3QgT1ZFUlJJREUgRklOQUwgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZp
cnR1YWwgYm9vbCBhdm9pZHNGbG9hdHMoKSBjb25zdCBPVkVSUklERSBGSU5BTCB7IHJldHVybiB0
cnVlOyB9Ci0gICAgdmlydHVhbCBib29sIGNhbkNvbGxhcHNlQW5vbnltb3VzQmxvY2tDaGlsZCgp
IGNvbnN0IE9WRVJSSURFIEZJTkFMIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCB2b2lk
IGxheW91dEJsb2NrKGJvb2wgcmVsYXlvdXRDaGlsZHJlbiwgTGF5b3V0VW5pdCBwYWdlTG9naWNh
bEhlaWdodCA9IDApIE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgYm9vbCBpc0ZsZXhpYmxl
Qm94KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBh
dm9pZHNGbG9hdHMoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVh
bCBib29sIGNhbkNvbGxhcHNlQW5vbnltb3VzQmxvY2tDaGlsZCgpIGNvbnN0IE9WRVJSSURFIHsg
cmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCB2b2lkIGxheW91dEJsb2NrKGJvb2wgcmVsYXlv
dXRDaGlsZHJlbiwgTGF5b3V0VW5pdCBwYWdlTG9naWNhbEhlaWdodCA9IDApIE9WRVJSSURFOwog
CiAgICAgdmlydHVhbCBpbnQgYmFzZWxpbmVQb3NpdGlvbihGb250QmFzZWxpbmUsIGJvb2wgZmly
c3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSwgTGluZVBvc2l0aW9uTW9kZSA9IFBvc2l0aW9uT25D
b250YWluaW5nTGluZSkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBpbnQgZmlyc3RMaW5l
Qm94QmFzZWxpbmUoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGludCBpbmxpbmVCbG9j
a0Jhc2VsaW5lKExpbmVEaXJlY3Rpb25Nb2RlKSBjb25zdCBPVkVSUklERTsKIAotICAgIHZpcnR1
YWwgdm9pZCBwYWludENoaWxkcmVuKFBhaW50SW5mbyYgZm9yU2VsZiwgY29uc3QgTGF5b3V0UG9p
bnQmLCBQYWludEluZm8mIGZvckNoaWxkLCBib29sIHVzZVByaW50UmVjdCkgT1ZFUlJJREUgRklO
QUw7CisgICAgdmlydHVhbCB2b2lkIHBhaW50Q2hpbGRyZW4oUGFpbnRJbmZvJiBmb3JTZWxmLCBj
b25zdCBMYXlvdXRQb2ludCYsIFBhaW50SW5mbyYgZm9yQ2hpbGQsIGJvb2wgdXNlUHJpbnRSZWN0
KSBPVkVSUklERTsKIAogICAgIGJvb2wgaXNIb3Jpem9udGFsRmxvdygpIGNvbnN0OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuaAppbmRleCBiMGI4NGQ3OGY0
ODFmNDE1ODJmODg3YzI4MTFmODAwNTAzNzAxYjc0Li44ZGU4N2Q2NzBmNmQ0YmYxZjQ5OThmNTcw
M2ZhYzUyMWViZDJiYjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyRmxvd1RocmVhZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93
VGhyZWFkLmgKQEAgLTU3LDEzICs1NywxMyBAQCBwdWJsaWM6CiAgICAgUmVuZGVyRmxvd1RocmVh
ZCgpOwogICAgIHZpcnR1YWwgflJlbmRlckZsb3dUaHJlYWQoKSB7IH07CiAgICAgCi0gICAgdmly
dHVhbCBib29sIGlzUmVuZGVyRmxvd1RocmVhZCgpIGNvbnN0IE9WRVJSSURFIEZJTkFMIHsgcmV0
dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJGbG93VGhyZWFkKCkgY29uc3Qg
eyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgdmlydHVhbCB2b2lkIGxheW91dCgpIE9WRVJSSURFIEZJ
TkFMOworICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKTsKIAogICAgIC8vIEFsd2F5cyBjcmVhdGUg
YSBSZW5kZXJMYXllciBmb3IgdGhlIFJlbmRlckZsb3dUaHJlYWQgc28gdGhhdCB3ZSAKICAgICAv
LyBjYW4gZWFzaWx5IGF2b2lkIGRyYXdpbmcgdGhlIGNoaWxkcmVuIGRpcmVjdGx5LgotICAgIHZp
cnR1YWwgYm9vbCByZXF1aXJlc0xheWVyKCkgY29uc3QgT1ZFUlJJREUgRklOQUwgeyByZXR1cm4g
dHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCByZXF1aXJlc0xheWVyKCkgY29uc3QgeyByZXR1cm4g
dHJ1ZTsgfQogICAgIAogICAgIHZvaWQgcmVtb3ZlRmxvd0NoaWxkSW5mbyhSZW5kZXJPYmplY3Qq
KTsKICNpZm5kZWYgTkRFQlVHCkBAIC03NCw3ICs3NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHZvaWQgcmVtb3ZlUmVnaW9uRnJvbVRocmVhZChSZW5kZXJSZWdpb24qKTsKICAgICBjb25zdCBS
ZW5kZXJSZWdpb25MaXN0JiByZW5kZXJSZWdpb25MaXN0KCkgY29uc3QgeyByZXR1cm4gbV9yZWdp
b25MaXN0OyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlTG9naWNhbFdpZHRoKCkgT1ZFUlJJ
REUgRklOQUw7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUxvZ2ljYWxXaWR0aCgpIE9WRVJSSURF
OwogICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlTG9naWNhbEhlaWdodChMYXlvdXRVbml0IGxvZ2lj
YWxIZWlnaHQsIExheW91dFVuaXQgbG9naWNhbFRvcCwgTG9naWNhbEV4dGVudENvbXB1dGVkVmFs
dWVzJikgY29uc3QgT1ZFUlJJREU7CiAKICAgICB2b2lkIHBhaW50Rmxvd1RocmVhZFBvcnRpb25J
blJlZ2lvbihQYWludEluZm8mLCBSZW5kZXJSZWdpb24qLCBMYXlvdXRSZWN0IGZsb3dUaHJlYWRQ
b3J0aW9uUmVjdCwgTGF5b3V0UmVjdCBmbG93VGhyZWFkUG9ydGlvbk92ZXJmbG93UmVjdCwgY29u
c3QgTGF5b3V0UG9pbnQmKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJGcmFtZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZyYW1l
LmgKaW5kZXggMjI0OTZkZjNkMDRmMjM0MGZkYzExZTcwZWVhNDc2NDFjZDkwZmQ4Ny4uOWVhZGI5
MzkzYTg0YWMzOTEzMWE4MDY0MWRiNDhhNDYxMTcyNjhiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckZyYW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckZyYW1lLmgKQEAgLTMwLDcgKzMwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBIVE1MRnJhbWVFbGVtZW50OwogCi1jbGFzcyBSZW5kZXJGcmFtZSBGSU5BTCA6IHB1
YmxpYyBSZW5kZXJGcmFtZUJhc2UgeworY2xhc3MgUmVuZGVyRnJhbWUgOiBwdWJsaWMgUmVuZGVy
RnJhbWVCYXNlIHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBSZW5kZXJGcmFtZShIVE1MRnJhbWVF
bGVtZW50Kik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJG
cmFtZVNldC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZyYW1lU2V0LmgKaW5k
ZXggNjE3YmJiNGJhODQyNTYwZGVjYWM1YzRlMjE5ZmViZjI2N2FiOGY0MC4uMGNmY2U1MjkwYWFj
ZDk2ZDc5N2Y4MmVkZGE0ZTM4YmQxNjA1Y2I3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckZyYW1lU2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckZyYW1lU2V0LmgKQEAgLTUzLDcgKzUzLDcgQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8
Ym9vbD4gbV9hbGxvd0JvcmRlcjsKIH07CiAKLWNsYXNzIFJlbmRlckZyYW1lU2V0IEZJTkFMIDog
cHVibGljIFJlbmRlckJveCB7CitjbGFzcyBSZW5kZXJGcmFtZVNldCA6IHB1YmxpYyBSZW5kZXJC
b3ggewogcHVibGljOgogICAgIFJlbmRlckZyYW1lU2V0KEhUTUxGcmFtZVNldEVsZW1lbnQqKTsK
ICAgICB2aXJ0dWFsIH5SZW5kZXJGcmFtZVNldCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckZ1bGxTY3JlZW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckZ1bGxTY3JlZW4uY3BwCmluZGV4IDg1NzUxZTJiNmIwYWJhYzE2NWE5NGNiNTYz
ZGExMWYzYTY5ZjU0NWQuLmFmMTE5NzFjMTk0MmI1MDM5ZWQ1ZDgyZWIxNWQ2ZjFlYmZlYWE1YmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGdWxsU2NyZWVuLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnVsbFNjcmVlbi5jcHAKQEAg
LTM2LDcgKzM2LDcgQEAKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLWNsYXNzIFJlbmRl
ckZ1bGxTY3JlZW5QbGFjZWhvbGRlciBGSU5BTCA6IHB1YmxpYyBSZW5kZXJCbG9jayB7CitjbGFz
cyBSZW5kZXJGdWxsU2NyZWVuUGxhY2Vob2xkZXIgOiBwdWJsaWMgUmVuZGVyQmxvY2sgewogcHVi
bGljOgogICAgIFJlbmRlckZ1bGxTY3JlZW5QbGFjZWhvbGRlcihSZW5kZXJGdWxsU2NyZWVuKiBv
d25lcikgCiAgICAgICAgIDogUmVuZGVyQmxvY2soMCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJGdWxsU2NyZWVuLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyRnVsbFNjcmVlbi5oCmluZGV4IDhiZjYxYzk5NjM4ZTM4NmRjZWEwZjM4ZThkNDY2
NzAyN2M4Mzk2YzYuLjk3NmViY2VmYzFlZWVhNzRkMzkzMmRhNmEyODk1YzU3MmQwMGJmMDEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGdWxsU2NyZWVuLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZ1bGxTY3JlZW4uaApAQCAtMzIsNyAr
MzIsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFJlbmRlckZ1bGxTY3JlZW4g
RklOQUwgOiBwdWJsaWMgUmVuZGVyRmxleGlibGVCb3ggeworY2xhc3MgUmVuZGVyRnVsbFNjcmVl
biA6IHB1YmxpYyBSZW5kZXJGbGV4aWJsZUJveCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlbmRl
ckZ1bGxTY3JlZW4qIGNyZWF0ZUFub255bW91cyhEb2N1bWVudCopOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckdyaWQuaAppbmRleCAwZDE0YzgwY2YyOWIyMTMxYmQ1NTE3NGU1N2UzMmQ2
NjQxZjllNjFkLi5lYjJiMmFhZjJlZTRlZDJjZjQ3NjczZDc5YTNkZGQwY2VlMjE4NTRjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmgKQEAgLTMyLDcgKzMyLDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBHcmlkVHJhY2s7CiAKLWNsYXNzIFJlbmRlckdyaWQgRklO
QUwgOiBwdWJsaWMgUmVuZGVyQmxvY2sgeworY2xhc3MgUmVuZGVyR3JpZCA6IHB1YmxpYyBSZW5k
ZXJCbG9jayB7CiBwdWJsaWM6CiAgICAgUmVuZGVyR3JpZChFbGVtZW50Kik7CiAgICAgdmlydHVh
bCB+UmVuZGVyR3JpZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckhUTUxDYW52YXMuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJIVE1MQ2Fu
dmFzLmgKaW5kZXggOWI4ZTRkNzRlYzdkMTBjNjg3ZjM0YjMzY2YwNTYxZWEwY2EwN2NhYi4uZjRl
MDdjYzYzYWNiMDgwNDFiMjRjYTY1NmU4NmFjNGFkMWJhYzkzZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckhUTUxDYW52YXMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVySFRNTENhbnZhcy5oCkBAIC0zMiw3ICszMiw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgSFRNTENhbnZhc0VsZW1lbnQ7CiAKLWNsYXNzIFJlbmRlckhU
TUxDYW52YXMgRklOQUwgOiBwdWJsaWMgUmVuZGVyUmVwbGFjZWQgeworY2xhc3MgUmVuZGVySFRN
TENhbnZhcyA6IHB1YmxpYyBSZW5kZXJSZXBsYWNlZCB7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQg
UmVuZGVySFRNTENhbnZhcyhIVE1MQ2FudmFzRWxlbWVudCopOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySUZyYW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVySUZyYW1lLmgKaW5kZXggZmMzMDIxYmRmYTBlYjg3YTM3NTU0N2JmOGE3OTdl
ZmM4ZWUwOWQzYy4uYWFjMDY1NjBmNjA1YzYwNDFhYjE0MzYwOTIxYjc1NmJmYzMwYmY0MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklGcmFtZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJRnJhbWUuaApAQCAtMzIsNyArMzIsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJlbmRlclZpZXc7CiAKLWNsYXNzIFJlbmRlcklG
cmFtZSBGSU5BTCA6IHB1YmxpYyBSZW5kZXJGcmFtZUJhc2UgeworY2xhc3MgUmVuZGVySUZyYW1l
IDogcHVibGljIFJlbmRlckZyYW1lQmFzZSB7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgUmVuZGVy
SUZyYW1lKEVsZW1lbnQqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuaApp
bmRleCA0YjU2Yzg4NzcyYmNjYWYxN2E2YTBkZDRiMWU4ZmY0YWFlMzhjYjIwLi5hZmQ4ZTkwOGNi
Mzc3MDMzMzQwYjBiMmNlYzg3Yjk4MDBkYjc2NDA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVySW1hZ2UuaApAQCAtNjIsMTcgKzYyLDE3IEBAIHB1YmxpYzoKICAgICBTdHJpbmcgYWx0
VGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fYWx0VGV4dDsgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgdmly
dHVhbCBib29sIG5lZWRzUHJlZmVycmVkV2lkdGhzUmVjYWxjdWxhdGlvbigpIGNvbnN0IE9WRVJS
SURFIEZJTkFMOwotICAgIHZpcnR1YWwgUmVuZGVyQm94KiBlbWJlZGRlZENvbnRlbnRCb3goKSBj
b25zdCBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZUludHJpbnNpY1Jh
dGlvSW5mb3JtYXRpb24oRmxvYXRTaXplJiBpbnRyaW5zaWNTaXplLCBkb3VibGUmIGludHJpbnNp
Y1JhdGlvLCBib29sJiBpc1BlcmNlbnRhZ2VJbnRyaW5zaWNTaXplKSBjb25zdCBPVkVSUklERSBG
SU5BTDsKKyAgICB2aXJ0dWFsIGJvb2wgbmVlZHNQcmVmZXJyZWRXaWR0aHNSZWNhbGN1bGF0aW9u
KCkgY29uc3Q7CisgICAgdmlydHVhbCBSZW5kZXJCb3gqIGVtYmVkZGVkQ29udGVudEJveCgpIGNv
bnN0OworICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlSW50cmluc2ljUmF0aW9JbmZvcm1hdGlvbihG
bG9hdFNpemUmIGludHJpbnNpY1NpemUsIGRvdWJsZSYgaW50cmluc2ljUmF0aW8sIGJvb2wmIGlz
UGVyY2VudGFnZUludHJpbnNpY1NpemUpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBmb3JlZ3Jv
dW5kSXNLbm93blRvQmVPcGFxdWVJblJlY3QoY29uc3QgTGF5b3V0UmVjdCYgbG9jYWxSZWN0LCB1
bnNpZ25lZCBtYXhEZXB0aFRvVGVzdCkgY29uc3QgT1ZFUlJJREU7CiAKLSAgICB2aXJ0dWFsIHZv
aWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSopIE9W
RVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgdm9pZCBzdHlsZURpZENoYW5nZShTdHlsZURpZmZl
cmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKik7CiAKICAgICB2aXJ0dWFsIHZvaWQgaW1hZ2VDaGFu
Z2VkKFdyYXBwZWRJbWFnZVB0ciwgY29uc3QgSW50UmVjdCogPSAwKTsKIAotICAgIHZpcnR1YWwg
dm9pZCBwYWludEludG9SZWN0KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IExheW91dFJlY3QmKSBG
SU5BTDsKLSAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9p
bnQmKSBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIHZvaWQgcGFpbnRJbnRvUmVjdChHcmFw
aGljc0NvbnRleHQqLCBjb25zdCBMYXlvdXRSZWN0Jik7CisgICAgdmlydHVhbCB2b2lkIHBhaW50
KFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50Jik7CiAgICAgdmlydHVhbCB2b2lkIGxheW91
dCgpOwogCiAgICAgdmlydHVhbCB2b2lkIGludHJpbnNpY1NpemVDaGFuZ2VkKCkKQEAgLTg1LDE4
ICs4NSwxOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgp
IGNvbnN0IHsgcmV0dXJuICJSZW5kZXJJbWFnZSI7IH0KIAogICAgIHZpcnR1YWwgYm9vbCBpc0lt
YWdlKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRlcklt
YWdlKCkgY29uc3QgT1ZFUlJJREUgRklOQUwgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwg
Ym9vbCBpc1JlbmRlckltYWdlKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgdmlydHVh
bCB2b2lkIHBhaW50UmVwbGFjZWQoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKTsKIAot
ICAgIHZpcnR1YWwgYm9vbCBjb21wdXRlQmFja2dyb3VuZElzS25vd25Ub0JlT2JzY3VyZWQoKSBP
VkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIGJvb2wgY29tcHV0ZUJhY2tncm91bmRJc0tub3du
VG9CZU9ic2N1cmVkKCkgT1ZFUlJJREU7CiAKICAgICB2aXJ0dWFsIExheW91dFVuaXQgbWluaW11
bVJlcGxhY2VkSGVpZ2h0KCkgY29uc3QgT1ZFUlJJREU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgbm90
aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqKSBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFs
IGJvb2wgbm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmLCBIaXRUZXN0UmVzdWx0Jiwg
Y29uc3QgSGl0VGVzdExvY2F0aW9uJiBsb2NhdGlvbkluQ29udGFpbmVyLCBjb25zdCBMYXlvdXRQ
b2ludCYgYWNjdW11bGF0ZWRPZmZzZXQsIEhpdFRlc3RBY3Rpb24pIE9WRVJSSURFIEZJTkFMOwor
ICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSopOworICAgIHZp
cnR1YWwgYm9vbCBub2RlQXRQb2ludChjb25zdCBIaXRUZXN0UmVxdWVzdCYsIEhpdFRlc3RSZXN1
bHQmLCBjb25zdCBIaXRUZXN0TG9jYXRpb24mIGxvY2F0aW9uSW5Db250YWluZXIsIGNvbnN0IExh
eW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCwgSGl0VGVzdEFjdGlvbikgT1ZFUlJJREU7CiAK
LSAgICB2aXJ0dWFsIGJvb2wgYm94U2hhZG93U2hvdWxkQmVBcHBsaWVkVG9CYWNrZ3JvdW5kKEJh
Y2tncm91bmRCbGVlZEF2b2lkYW5jZSwgSW5saW5lRmxvd0JveCopIGNvbnN0IE9WRVJSSURFIEZJ
TkFMOworICAgIHZpcnR1YWwgYm9vbCBib3hTaGFkb3dTaG91bGRCZUFwcGxpZWRUb0JhY2tncm91
bmQoQmFja2dyb3VuZEJsZWVkQXZvaWRhbmNlLCBJbmxpbmVGbG93Qm94KikgY29uc3QgT1ZFUlJJ
REU7CiAKICAgICBJbnRTaXplIGltYWdlU2l6ZUZvckVycm9yKENhY2hlZEltYWdlKikgY29uc3Q7
CiAgICAgdm9pZCBpbWFnZURpbWVuc2lvbnNDaGFuZ2VkKGJvb2wgaW1hZ2VTaXplQ2hhbmdlZCwg
Y29uc3QgSW50UmVjdCogPSAwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJJbmxpbmUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUu
aAppbmRleCA1NDBlOWE5MjFjMjVkYjA4ZDVlY2NmYTI1OWU4NDdjNTc0NDU3Y2ViLi42NDA3ZGU0
MTIzM2IzNTJkMTE0ZTY2ZDQ5ZjkxNDBmMDMxYjA1MDgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlcklubGluZS5oCkBAIC00NCwxOSArNDQsMTkgQEAgcHVibGljOgogCiAgICAgRWxl
bWVudCogbm9kZSgpIGNvbnN0IHsgcmV0dXJuIHRvRWxlbWVudChSZW5kZXJCb3hNb2RlbE9iamVj
dDo6bm9kZSgpKTsgfQogCi0gICAgdmlydHVhbCBMYXlvdXRVbml0IG1hcmdpbkxlZnQoKSBjb25z
dCBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIExheW91dFVuaXQgbWFyZ2luUmlnaHQoKSBj
b25zdCBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIExheW91dFVuaXQgbWFyZ2luVG9wKCkg
Y29uc3QgT1ZFUlJJREUgRklOQUw7Ci0gICAgdmlydHVhbCBMYXlvdXRVbml0IG1hcmdpbkJvdHRv
bSgpIGNvbnN0IE9WRVJSSURFIEZJTkFMOwotICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBtYXJnaW5C
ZWZvcmUoY29uc3QgUmVuZGVyU3R5bGUqIG90aGVyU3R5bGUgPSAwKSBjb25zdCBPVkVSUklERSBG
SU5BTDsKLSAgICB2aXJ0dWFsIExheW91dFVuaXQgbWFyZ2luQWZ0ZXIoY29uc3QgUmVuZGVyU3R5
bGUqIG90aGVyU3R5bGUgPSAwKSBjb25zdCBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIExh
eW91dFVuaXQgbWFyZ2luU3RhcnQoY29uc3QgUmVuZGVyU3R5bGUqIG90aGVyU3R5bGUgPSAwKSBj
b25zdCBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIExheW91dFVuaXQgbWFyZ2luRW5kKGNv
bnN0IFJlbmRlclN0eWxlKiBvdGhlclN0eWxlID0gMCkgY29uc3QgT1ZFUlJJREUgRklOQUw7Ci0K
LSAgICB2aXJ0dWFsIHZvaWQgYWJzb2x1dGVSZWN0cyhWZWN0b3I8SW50UmVjdD4mLCBjb25zdCBM
YXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQpIGNvbnN0IE9WRVJSSURFIEZJTkFMOworICAg
IHZpcnR1YWwgTGF5b3V0VW5pdCBtYXJnaW5MZWZ0KCkgY29uc3Q7CisgICAgdmlydHVhbCBMYXlv
dXRVbml0IG1hcmdpblJpZ2h0KCkgY29uc3Q7CisgICAgdmlydHVhbCBMYXlvdXRVbml0IG1hcmdp
blRvcCgpIGNvbnN0OworICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBtYXJnaW5Cb3R0b20oKSBjb25z
dDsKKyAgICB2aXJ0dWFsIExheW91dFVuaXQgbWFyZ2luQmVmb3JlKGNvbnN0IFJlbmRlclN0eWxl
KiBvdGhlclN0eWxlID0gMCkgY29uc3Q7CisgICAgdmlydHVhbCBMYXlvdXRVbml0IG1hcmdpbkFm
dGVyKGNvbnN0IFJlbmRlclN0eWxlKiBvdGhlclN0eWxlID0gMCkgY29uc3Q7CisgICAgdmlydHVh
bCBMYXlvdXRVbml0IG1hcmdpblN0YXJ0KGNvbnN0IFJlbmRlclN0eWxlKiBvdGhlclN0eWxlID0g
MCkgY29uc3Q7CisgICAgdmlydHVhbCBMYXlvdXRVbml0IG1hcmdpbkVuZChjb25zdCBSZW5kZXJT
dHlsZSogb3RoZXJTdHlsZSA9IDApIGNvbnN0OworCisgICAgdmlydHVhbCB2b2lkIGFic29sdXRl
UmVjdHMoVmVjdG9yPEludFJlY3Q+JiwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zm
c2V0KSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgYWJzb2x1dGVRdWFkcyhWZWN0b3I8RmxvYXRR
dWFkPiYsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdDsKIAotICAgIHZpcnR1YWwgTGF5b3V0U2l6ZSBv
ZmZzZXRGcm9tQ29udGFpbmVyKFJlbmRlck9iamVjdCosIGNvbnN0IExheW91dFBvaW50JiwgYm9v
bCogb2Zmc2V0RGVwZW5kc09uUG9pbnQgPSAwKSBjb25zdCBPVkVSUklERSBGSU5BTDsKKyAgICB2
aXJ0dWFsIExheW91dFNpemUgb2Zmc2V0RnJvbUNvbnRhaW5lcihSZW5kZXJPYmplY3QqLCBjb25z
dCBMYXlvdXRQb2ludCYsIGJvb2wqIG9mZnNldERlcGVuZHNPblBvaW50ID0gMCkgY29uc3Q7CiAK
ICAgICBJbnRSZWN0IGxpbmVzQm91bmRpbmdCb3goKSBjb25zdDsKICAgICBMYXlvdXRSZWN0IGxp
bmVzVmlzdWFsT3ZlcmZsb3dCb3VuZGluZ0JveCgpIGNvbnN0OwpAQCAtNzQsMTQgKzc0LDE0IEBA
IHB1YmxpYzoKICAgICBJbmxpbmVCb3gqIGZpcnN0TGluZUJveEluY2x1ZGluZ0N1bGxpbmcoKSBj
b25zdCB7IHJldHVybiBhbHdheXNDcmVhdGVMaW5lQm94ZXMoKSA/IGZpcnN0TGluZUJveCgpIDog
Y3VsbGVkSW5saW5lRmlyc3RMaW5lQm94KCk7IH0KICAgICBJbmxpbmVCb3gqIGxhc3RMaW5lQm94
SW5jbHVkaW5nQ3VsbGluZygpIGNvbnN0IHsgcmV0dXJuIGFsd2F5c0NyZWF0ZUxpbmVCb3hlcygp
ID8gbGFzdExpbmVCb3goKSA6IGN1bGxlZElubGluZUxhc3RMaW5lQm94KCk7IH0KIAotICAgIHZp
cnR1YWwgUmVuZGVyQm94TW9kZWxPYmplY3QqIHZpcnR1YWxDb250aW51YXRpb24oKSBjb25zdCBP
VkVSUklERSBGSU5BTCB7IHJldHVybiBjb250aW51YXRpb24oKTsgfQorICAgIHZpcnR1YWwgUmVu
ZGVyQm94TW9kZWxPYmplY3QqIHZpcnR1YWxDb250aW51YXRpb24oKSBjb25zdCB7IHJldHVybiBj
b250aW51YXRpb24oKTsgfQogICAgIFJlbmRlcklubGluZSogaW5saW5lRWxlbWVudENvbnRpbnVh
dGlvbigpIGNvbnN0OwogCi0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZURyYWdTdGF0ZShib29sIGRy
YWdPbikgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZURyYWdTdGF0ZShi
b29sIGRyYWdPbik7CiAgICAgCiAgICAgTGF5b3V0U2l6ZSBvZmZzZXRGb3JJbkZsb3dQb3NpdGlv
bmVkSW5saW5lKGNvbnN0IFJlbmRlckJveCogY2hpbGQpIGNvbnN0OwogCi0gICAgdmlydHVhbCB2
b2lkIGFkZEZvY3VzUmluZ1JlY3RzKFZlY3RvcjxJbnRSZWN0PiYsIGNvbnN0IExheW91dFBvaW50
JiBhZGRpdGlvbmFsT2Zmc2V0LCBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBwYWludENv
bnRhaW5lciA9IDApIE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgdm9pZCBhZGRGb2N1c1Jp
bmdSZWN0cyhWZWN0b3I8SW50UmVjdD4mLCBjb25zdCBMYXlvdXRQb2ludCYgYWRkaXRpb25hbE9m
ZnNldCwgY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcGFpbnRDb250YWluZXIgPSAwKSBP
VkVSUklERTsKICAgICB2b2lkIHBhaW50T3V0bGluZShQYWludEluZm8mLCBjb25zdCBMYXlvdXRQ
b2ludCYpOwogCiAgICAgdXNpbmcgUmVuZGVyQm94TW9kZWxPYmplY3Q6OmNvbnRpbnVhdGlvbjsK
QEAgLTkxLDcgKzkxLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0QWx3YXlzQ3JlYXRlTGluZUJv
eGVzKCkgeyBtX2Fsd2F5c0NyZWF0ZUxpbmVCb3hlcyA9IHRydWU7IH0KICAgICB2b2lkIHVwZGF0
ZUFsd2F5c0NyZWF0ZUxpbmVCb3hlcyhib29sIGZ1bGxMYXlvdXQpOwogCi0gICAgdmlydHVhbCBM
YXlvdXRSZWN0IGxvY2FsQ2FyZXRSZWN0KElubGluZUJveCosIGludCwgTGF5b3V0VW5pdCogZXh0
cmFXaWR0aFRvRW5kT2ZMaW5lKSBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIExheW91dFJl
Y3QgbG9jYWxDYXJldFJlY3QoSW5saW5lQm94KiwgaW50LCBMYXlvdXRVbml0KiBleHRyYVdpZHRo
VG9FbmRPZkxpbmUpIE9WRVJSSURFOwogCiAgICAgYm9vbCBoaXRUZXN0Q3VsbGVkSW5saW5lKGNv
bnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IEhpdFRlc3RMb2NhdGlv
biYgbG9jYXRpb25JbkNvbnRhaW5lciwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zm
c2V0KTsKIApAQCAtMTAxLDE0ICsxMDEsMTQgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9p
ZCBzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRT
dHlsZSkgT1ZFUlJJREU7CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCBSZW5kZXJPYmplY3RDaGls
ZExpc3QqIHZpcnR1YWxDaGlsZHJlbigpIE9WRVJSSURFIEZJTkFMIHsgcmV0dXJuIGNoaWxkcmVu
KCk7IH0KLSAgICB2aXJ0dWFsIGNvbnN0IFJlbmRlck9iamVjdENoaWxkTGlzdCogdmlydHVhbENo
aWxkcmVuKCkgY29uc3QgT1ZFUlJJREUgRklOQUwgeyByZXR1cm4gY2hpbGRyZW4oKTsgfQorICAg
IHZpcnR1YWwgUmVuZGVyT2JqZWN0Q2hpbGRMaXN0KiB2aXJ0dWFsQ2hpbGRyZW4oKSB7IHJldHVy
biBjaGlsZHJlbigpOyB9CisgICAgdmlydHVhbCBjb25zdCBSZW5kZXJPYmplY3RDaGlsZExpc3Qq
IHZpcnR1YWxDaGlsZHJlbigpIGNvbnN0IHsgcmV0dXJuIGNoaWxkcmVuKCk7IH0KICAgICBjb25z
dCBSZW5kZXJPYmplY3RDaGlsZExpc3QqIGNoaWxkcmVuKCkgY29uc3QgeyByZXR1cm4gJm1fY2hp
bGRyZW47IH0KICAgICBSZW5kZXJPYmplY3RDaGlsZExpc3QqIGNoaWxkcmVuKCkgeyByZXR1cm4g
Jm1fY2hpbGRyZW47IH0KIAogICAgIHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNv
bnN0OwogCi0gICAgdmlydHVhbCBib29sIGlzUmVuZGVySW5saW5lKCkgY29uc3QgT1ZFUlJJREUg
RklOQUwgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRlcklubGluZSgp
IGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAogICAgIExheW91dFJlY3QgY3VsbGVkSW5saW5lVmlz
dWFsT3ZlcmZsb3dCb3VuZGluZ0JveCgpIGNvbnN0OwogICAgIElubGluZUJveCogY3VsbGVkSW5s
aW5lRmlyc3RMaW5lQm94KCkgY29uc3Q7CkBAIC0xMjAsMzggKzEyMCwzOCBAQCBwcml2YXRlOgog
ICAgIHZvaWQgZ2VuZXJhdGVDdWxsZWRMaW5lQm94UmVjdHMoR2VuZXJhdG9yQ29udGV4dCYgeWll
bGQsIGNvbnN0IFJlbmRlcklubGluZSogY29udGFpbmVyKSBjb25zdDsKIAogICAgIHZvaWQgYWRk
Q2hpbGRUb0NvbnRpbnVhdGlvbihSZW5kZXJPYmplY3QqIG5ld0NoaWxkLCBSZW5kZXJPYmplY3Qq
IGJlZm9yZUNoaWxkKTsKLSAgICB2aXJ0dWFsIHZvaWQgYWRkQ2hpbGRJZ25vcmluZ0NvbnRpbnVh
dGlvbihSZW5kZXJPYmplY3QqIG5ld0NoaWxkLCBSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkID0g
MCkgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCB2b2lkIGFkZENoaWxkSWdub3JpbmdDb250
aW51YXRpb24oUmVuZGVyT2JqZWN0KiBuZXdDaGlsZCwgUmVuZGVyT2JqZWN0KiBiZWZvcmVDaGls
ZCA9IDApOwogCiAgICAgdm9pZCBzcGxpdElubGluZXMoUmVuZGVyQmxvY2sqIGZyb21CbG9jaywg
UmVuZGVyQmxvY2sqIHRvQmxvY2ssIFJlbmRlckJsb2NrKiBtaWRkbGVCbG9jaywKICAgICAgICAg
ICAgICAgICAgICAgICBSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkLCBSZW5kZXJCb3hNb2RlbE9i
amVjdCogb2xkQ29udCk7CiAgICAgdm9pZCBzcGxpdEZsb3coUmVuZGVyT2JqZWN0KiBiZWZvcmVD
aGlsZCwgUmVuZGVyQmxvY2sqIG5ld0Jsb2NrQm94LAogICAgICAgICAgICAgICAgICAgIFJlbmRl
ck9iamVjdCogbmV3Q2hpbGQsIFJlbmRlckJveE1vZGVsT2JqZWN0KiBvbGRDb250KTsKIAotICAg
IHZpcnR1YWwgdm9pZCBsYXlvdXQoKSBPVkVSUklERSBGSU5BTCB7IEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOyB9IC8vIERvIG5vdGhpbmcgZm9yIGxheW91dCgpCisgICAgdmlydHVhbCB2b2lkIGxheW91
dCgpIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0gLy8gRG8gbm90aGluZyBmb3IgbGF5b3V0KCkK
IAotICAgIHZpcnR1YWwgdm9pZCBwYWludChQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYp
IE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgdm9pZCBwYWludChQYWludEluZm8mLCBjb25z
dCBMYXlvdXRQb2ludCYpOwogCi0gICAgdmlydHVhbCBib29sIG5vZGVBdFBvaW50KGNvbnN0IEhp
dFRlc3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYgbG9j
YXRpb25JbkNvbnRhaW5lciwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0LCBI
aXRUZXN0QWN0aW9uKSBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIGJvb2wgbm9kZUF0UG9p
bnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmLCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgSGl0VGVzdExv
Y2F0aW9uJiBsb2NhdGlvbkluQ29udGFpbmVyLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0
ZWRPZmZzZXQsIEhpdFRlc3RBY3Rpb24pIE9WRVJSSURFOwogCi0gICAgdmlydHVhbCBib29sIHJl
cXVpcmVzTGF5ZXIoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBpc0luRmxvd1Bvc2l0aW9uZWQo
KSB8fCBjcmVhdGVzR3JvdXAoKSB8fCBoYXNDbGlwUGF0aCgpOyB9CisgICAgdmlydHVhbCBib29s
IHJlcXVpcmVzTGF5ZXIoKSBjb25zdCB7IHJldHVybiBpc0luRmxvd1Bvc2l0aW9uZWQoKSB8fCBj
cmVhdGVzR3JvdXAoKSB8fCBoYXNDbGlwUGF0aCgpOyB9CiAKLSAgICB2aXJ0dWFsIExheW91dFVu
aXQgb2Zmc2V0TGVmdCgpIGNvbnN0IE9WRVJSSURFIEZJTkFMOwotICAgIHZpcnR1YWwgTGF5b3V0
VW5pdCBvZmZzZXRUb3AoKSBjb25zdCBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIExheW91
dFVuaXQgb2Zmc2V0V2lkdGgoKSBjb25zdCBPVkVSUklERSBGSU5BTCB7IHJldHVybiBsaW5lc0Jv
dW5kaW5nQm94KCkud2lkdGgoKTsgfQotICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBvZmZzZXRIZWln
aHQoKSBjb25zdCBPVkVSUklERSBGSU5BTCB7IHJldHVybiBsaW5lc0JvdW5kaW5nQm94KCkuaGVp
Z2h0KCk7IH0KKyAgICB2aXJ0dWFsIExheW91dFVuaXQgb2Zmc2V0TGVmdCgpIGNvbnN0OworICAg
IHZpcnR1YWwgTGF5b3V0VW5pdCBvZmZzZXRUb3AoKSBjb25zdDsKKyAgICB2aXJ0dWFsIExheW91
dFVuaXQgb2Zmc2V0V2lkdGgoKSBjb25zdCB7IHJldHVybiBsaW5lc0JvdW5kaW5nQm94KCkud2lk
dGgoKTsgfQorICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBvZmZzZXRIZWlnaHQoKSBjb25zdCB7IHJl
dHVybiBsaW5lc0JvdW5kaW5nQm94KCkuaGVpZ2h0KCk7IH0KIAogICAgIHZpcnR1YWwgTGF5b3V0
UmVjdCBjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVs
T2JqZWN0KiByZXBhaW50Q29udGFpbmVyKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIExh
eW91dFJlY3QgcmVjdFdpdGhPdXRsaW5lRm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVs
T2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBMYXlvdXRVbml0IG91dGxpbmVXaWR0aCkgY29uc3Qg
T1ZFUlJJREUgRklOQUw7Ci0gICAgdmlydHVhbCB2b2lkIGNvbXB1dGVSZWN0Rm9yUmVwYWludChj
b25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBMYXlvdXRSZWN0
JiwgYm9vbCBmaXhlZCkgY29uc3QgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCBMYXlvdXRS
ZWN0IHJlY3RXaXRoT3V0bGluZUZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVj
dCogcmVwYWludENvbnRhaW5lciwgTGF5b3V0VW5pdCBvdXRsaW5lV2lkdGgpIGNvbnN0IE9WRVJS
SURFOworICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlUmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVy
TGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgTGF5b3V0UmVjdCYsIGJvb2wgZml4
ZWQpIGNvbnN0IE9WRVJSSURFOwogCiAgICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWlu
ZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNm
b3JtU3RhdGUmLCBNYXBDb29yZGluYXRlc0ZsYWdzID0gQXBwbHlDb250YWluZXJGbGlwLCBib29s
KiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgUmVuZGVy
T2JqZWN0KiBwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmpl
Y3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJikgY29uc3QgT1ZFUlJJREU7
CiAKLSAgICB2aXJ0dWFsIFZpc2libGVQb3NpdGlvbiBwb3NpdGlvbkZvclBvaW50KGNvbnN0IExh
eW91dFBvaW50JikgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCBWaXNpYmxlUG9zaXRpb24g
cG9zaXRpb25Gb3JQb2ludChjb25zdCBMYXlvdXRQb2ludCYpOwogCi0gICAgdmlydHVhbCBMYXlv
dXRSZWN0IGZyYW1lUmVjdEZvclN0aWNreVBvc2l0aW9uaW5nKCkgY29uc3QgT1ZFUlJJREUgRklO
QUwgeyByZXR1cm4gbGluZXNCb3VuZGluZ0JveCgpOyB9CisgICAgdmlydHVhbCBMYXlvdXRSZWN0
IGZyYW1lUmVjdEZvclN0aWNreVBvc2l0aW9uaW5nKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4g
bGluZXNCb3VuZGluZ0JveCgpOyB9CiAKLSAgICB2aXJ0dWFsIEludFJlY3QgYm9yZGVyQm91bmRp
bmdCb3goKSBjb25zdCBPVkVSUklERSBGSU5BTAorICAgIHZpcnR1YWwgSW50UmVjdCBib3JkZXJC
b3VuZGluZ0JveCgpIGNvbnN0CiAgICAgewogICAgICAgICBJbnRSZWN0IGJvdW5kaW5nQm94ID0g
bGluZXNCb3VuZGluZ0JveCgpOwogICAgICAgICByZXR1cm4gSW50UmVjdCgwLCAwLCBib3VuZGlu
Z0JveC53aWR0aCgpLCBib3VuZGluZ0JveC5oZWlnaHQoKSk7CkBAIC0xNTksMjIgKzE1OSwyMiBA
QCBwcml2YXRlOgogCiAgICAgdmlydHVhbCBJbmxpbmVGbG93Qm94KiBjcmVhdGVJbmxpbmVGbG93
Qm94KCk7IC8vIFN1YmNsYXNzZWQgYnkgU1ZHIGFuZCBSdWJ5CiAKLSAgICB2aXJ0dWFsIHZvaWQg
ZGlydHlMaW5lc0Zyb21DaGFuZ2VkQ2hpbGQoUmVuZGVyT2JqZWN0KiBjaGlsZCkgT1ZFUlJJREUg
RklOQUwgeyBtX2xpbmVCb3hlcy5kaXJ0eUxpbmVzRnJvbUNoYW5nZWRDaGlsZCh0aGlzLCBjaGls
ZCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlydHlMaW5lc0Zyb21DaGFuZ2VkQ2hpbGQoUmVuZGVy
T2JqZWN0KiBjaGlsZCkgeyBtX2xpbmVCb3hlcy5kaXJ0eUxpbmVzRnJvbUNoYW5nZWRDaGlsZCh0
aGlzLCBjaGlsZCk7IH0KIAotICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBsaW5lSGVpZ2h0KGJvb2wg
Zmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSwgTGluZVBvc2l0aW9uTW9kZSA9IFBvc2l0aW9u
T25Db250YWluaW5nTGluZSkgY29uc3QgT1ZFUlJJREUgRklOQUw7Ci0gICAgdmlydHVhbCBpbnQg
YmFzZWxpbmVQb3NpdGlvbihGb250QmFzZWxpbmUsIGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0
aW9uTW9kZSwgTGluZVBvc2l0aW9uTW9kZSA9IFBvc2l0aW9uT25Db250YWluaW5nTGluZSkgY29u
c3QgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCBMYXlvdXRVbml0IGxpbmVIZWlnaHQoYm9v
bCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlID0gUG9zaXRp
b25PbkNvbnRhaW5pbmdMaW5lKSBjb25zdDsKKyAgICB2aXJ0dWFsIGludCBiYXNlbGluZVBvc2l0
aW9uKEZvbnRCYXNlbGluZSwgYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5l
UG9zaXRpb25Nb2RlID0gUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKSBjb25zdDsKICAgICAKLSAg
ICB2aXJ0dWFsIHZvaWQgY2hpbGRCZWNhbWVOb25JbmxpbmUoUmVuZGVyT2JqZWN0KiBjaGlsZCkg
T1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCB2b2lkIGNoaWxkQmVjYW1lTm9uSW5saW5lKFJl
bmRlck9iamVjdCogY2hpbGQpOwogCi0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZUhpdFRlc3RSZXN1
bHQoSGl0VGVzdFJlc3VsdCYsIGNvbnN0IExheW91dFBvaW50JikgT1ZFUlJJREUgRklOQUw7Cisg
ICAgdmlydHVhbCB2b2lkIHVwZGF0ZUhpdFRlc3RSZXN1bHQoSGl0VGVzdFJlc3VsdCYsIGNvbnN0
IExheW91dFBvaW50Jik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgaW1hZ2VDaGFuZ2VkKFdyYXBwZWRJ
bWFnZVB0ciwgY29uc3QgSW50UmVjdCogPSAwKSBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFs
IHZvaWQgaW1hZ2VDaGFuZ2VkKFdyYXBwZWRJbWFnZVB0ciwgY29uc3QgSW50UmVjdCogPSAwKTsK
IAogI2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQUE9SVCkgfHwgRU5BQkxFKERSQUdHQUJMRV9SRUdJ
T04pCi0gICAgdmlydHVhbCB2b2lkIGFkZEFubm90YXRlZFJlZ2lvbnMoVmVjdG9yPEFubm90YXRl
ZFJlZ2lvblZhbHVlPiYpIE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgdm9pZCBhZGRBbm5v
dGF0ZWRSZWdpb25zKFZlY3RvcjxBbm5vdGF0ZWRSZWdpb25WYWx1ZT4mKTsKICNlbmRpZgogICAg
IAotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVGcm9tU3R5bGUoKSBPVkVSUklERSBGSU5BTDsKKyAg
ICB2aXJ0dWFsIHZvaWQgdXBkYXRlRnJvbVN0eWxlKCkgT1ZFUlJJREU7CiAgICAgCiAgICAgUmVu
ZGVySW5saW5lKiBjbG9uZSgpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuaAppbmRleCA4YzE5OGIwMzE4M2U3NDIwNDFkMGM0
Nzg3NDk2YzUyY2I3MTQzZDkwLi4yYTc0Mzk2MDE0OWQ3MzE3OWU0MzM5OGRhZDU3OTVjNTRmMWUx
YTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2Rl
bE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVs
T2JqZWN0LmgKQEAgLTU5LDcgKzU5LDcgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCB3
aWxsQmVEZXN0cm95ZWQoKSBPVkVSUklERTsKIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIGJvb2wg
aXNMYXllck1vZGVsT2JqZWN0KCkgY29uc3QgT1ZFUlJJREUgRklOQUwgeyByZXR1cm4gdHJ1ZTsg
fQorICAgIHZpcnR1YWwgYm9vbCBpc0xheWVyTW9kZWxPYmplY3QoKSBjb25zdCBPVkVSUklERSB7
IHJldHVybiB0cnVlOyB9CiAKICAgICBSZW5kZXJMYXllciogbV9sYXllcjsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmgKaW5kZXggMTJlOTY4ZDkzMDI5MDkyNWQzNWFj
ODI3MmIyYzVlNjNhZTU1ZDAyNy4uZThlMDA1OWY1ZDI3OTg5MzAzMzJjMWJhMTE1N2IwNWZiMTkw
Y2YyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3gu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oCkBAIC0zOCw3
ICszOCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSFRNTFNlbGVjdEVsZW1lbnQ7
CiAKLWNsYXNzIFJlbmRlckxpc3RCb3ggRklOQUwgOiBwdWJsaWMgUmVuZGVyQmxvY2ssIHByaXZh
dGUgU2Nyb2xsYWJsZUFyZWEgeworY2xhc3MgUmVuZGVyTGlzdEJveCA6IHB1YmxpYyBSZW5kZXJC
bG9jaywgcHJpdmF0ZSBTY3JvbGxhYmxlQXJlYSB7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgUmVu
ZGVyTGlzdEJveChFbGVtZW50Kik7CiAgICAgdmlydHVhbCB+UmVuZGVyTGlzdEJveCgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RJdGVtLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEl0ZW0uaAppbmRleCA0M2YwODA1M2U3NDZl
ZGVjMmEzOTkwYzRmZmFhMzVhNWZkMWVkNjZhLi5mMzE5Y2ZkNzBlODFhNjUwOWQ5YzM3NTg4OGQ2
NTg2NzI0OTRmMjYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGlzdEl0ZW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEl0ZW0u
aApAQCAtMzAsNyArMzAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBIVE1MT0xpc3RF
bGVtZW50OwogY2xhc3MgUmVuZGVyTGlzdE1hcmtlcjsKIAotY2xhc3MgUmVuZGVyTGlzdEl0ZW0g
RklOQUwgOiBwdWJsaWMgUmVuZGVyQmxvY2sgeworY2xhc3MgUmVuZGVyTGlzdEl0ZW0gOiBwdWJs
aWMgUmVuZGVyQmxvY2sgewogcHVibGljOgogICAgIGV4cGxpY2l0IFJlbmRlckxpc3RJdGVtKEVs
ZW1lbnQqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxp
c3RNYXJrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmgK
aW5kZXggMTI1NTQ5ODhlZWRlZThjYjgwZTg4ZDQ2NmFjYzMwZDI0MGEwZDMzMS4uZmZhYzRmYmI3
YjFiZjdhMmJkYjYzZjBjNWViMjE4ZGRkNDhlMTk5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5oCkBAIC0zMyw3ICszMyw3IEBAIFN0cmluZyBsaXN0TWFy
a2VyVGV4dChFTGlzdFN0eWxlVHlwZSwgaW50IHZhbHVlKTsKIAogLy8gVXNlZCB0byByZW5kZXIg
dGhlIGxpc3QgaXRlbSdzIG1hcmtlci4KIC8vIFRoZSBSZW5kZXJMaXN0TWFya2VyIGFsd2F5cyBo
YXMgdG8gYmUgYSBjaGlsZCBvZiBhIFJlbmRlckxpc3RJdGVtLgotY2xhc3MgUmVuZGVyTGlzdE1h
cmtlciBGSU5BTCA6IHB1YmxpYyBSZW5kZXJCb3ggeworY2xhc3MgUmVuZGVyTGlzdE1hcmtlciA6
IHB1YmxpYyBSZW5kZXJCb3ggewogcHVibGljOgogICAgIHN0YXRpYyBSZW5kZXJMaXN0TWFya2Vy
KiBjcmVhdGVBbm9ueW1vdXMoUmVuZGVyTGlzdEl0ZW0qKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTWVkaWEuaAppbmRleCA0ZTYzZjk0N2ZkZTVmY2I3MzJjZmYyZDdlNmY0YmFkZTJl
NWFkMWMzLi40OGI4NTJlZGYxZTRkYTViMDAyYjI2MTQ3ZTA2OWExYWJiZTgwZGNjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWEuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWEuaApAQCAtNTIsMTYgKzUyLDE2IEBAIHByb3Rl
Y3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCk7CiAKIHByaXZhdGU6Ci0gICAgdmlydHVh
bCBSZW5kZXJPYmplY3RDaGlsZExpc3QqIHZpcnR1YWxDaGlsZHJlbigpIE9WRVJSSURFIEZJTkFM
IHsgcmV0dXJuIGNoaWxkcmVuKCk7IH0KLSAgICB2aXJ0dWFsIGNvbnN0IFJlbmRlck9iamVjdENo
aWxkTGlzdCogdmlydHVhbENoaWxkcmVuKCkgY29uc3QgT1ZFUlJJREUgRklOQUwgeyByZXR1cm4g
Y2hpbGRyZW4oKTsgfQotICAgIHZpcnR1YWwgYm9vbCBjYW5IYXZlQ2hpbGRyZW4oKSBjb25zdCBP
VkVSUklERSBGSU5BTCB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBSZW5kZXJPYmplY3RD
aGlsZExpc3QqIHZpcnR1YWxDaGlsZHJlbigpIHsgcmV0dXJuIGNoaWxkcmVuKCk7IH0KKyAgICB2
aXJ0dWFsIGNvbnN0IFJlbmRlck9iamVjdENoaWxkTGlzdCogdmlydHVhbENoaWxkcmVuKCkgY29u
c3QgeyByZXR1cm4gY2hpbGRyZW4oKTsgfQorICAgIHZpcnR1YWwgYm9vbCBjYW5IYXZlQ2hpbGRy
ZW4oKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJl
bmRlck5hbWUoKSBjb25zdCB7IHJldHVybiAiUmVuZGVyTWVkaWEiOyB9Ci0gICAgdmlydHVhbCBi
b29sIGlzTWVkaWEoKSBjb25zdCBPVkVSUklERSBGSU5BTCB7IHJldHVybiB0cnVlOyB9Ci0gICAg
dmlydHVhbCBib29sIGlzSW1hZ2UoKSBjb25zdCBPVkVSUklERSBGSU5BTCB7IHJldHVybiBmYWxz
ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc01lZGlhKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQor
ICAgIHZpcnR1YWwgYm9vbCBpc0ltYWdlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2
aXJ0dWFsIHZvaWQgcGFpbnRSZXBsYWNlZChQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYp
OwogCi0gICAgdmlydHVhbCBib29sIHJlcXVpcmVzRm9yY2VkU3R5bGVSZWNhbGNQcm9wYWdhdGlv
bigpIGNvbnN0IE9WRVJSSURFIEZJTkFMIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJv
b2wgcmVxdWlyZXNGb3JjZWRTdHlsZVJlY2FsY1Byb3BhZ2F0aW9uKCkgY29uc3QgeyByZXR1cm4g
dHJ1ZTsgfQogCiAgICAgUmVuZGVyT2JqZWN0Q2hpbGRMaXN0IG1fY2hpbGRyZW47CiB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbEVsZW1l
bnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWFDb250cm9sRWxlbWVu
dHMuaAppbmRleCBkMTU2YjYyYWE4OWEzNDVhODJiNDVmOTc5OGMxNDNjYmVhMjU2MTA3Li5hM2Rm
MzY0ZDIyNjg2ZmY4MTA3NWUwMjEzMTVlMDg3NGIwMzBjZmJmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWFDb250cm9sRWxlbWVudHMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWFDb250cm9sRWxlbWVudHMuaApAQCAtMzYs
NyArMzYsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFJlbmRlck1lZGlhVm9s
dW1lU2xpZGVyQ29udGFpbmVyIEZJTkFMIDogcHVibGljIFJlbmRlckJsb2NrIHsKK2NsYXNzIFJl
bmRlck1lZGlhVm9sdW1lU2xpZGVyQ29udGFpbmVyIDogcHVibGljIFJlbmRlckJsb2NrIHsKIHB1
YmxpYzoKICAgICBSZW5kZXJNZWRpYVZvbHVtZVNsaWRlckNvbnRhaW5lcihFbGVtZW50Kik7CiAK
QEAgLTQ2LDcgKzQ2LDcgQEAgcHJpdmF0ZToKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQogCi1jbGFzcyBSZW5kZXJNZWRpYUNvbnRyb2xUaW1lbGluZUNvbnRhaW5lciBGSU5BTCA6
IHB1YmxpYyBSZW5kZXJGbGV4aWJsZUJveCB7CitjbGFzcyBSZW5kZXJNZWRpYUNvbnRyb2xUaW1l
bGluZUNvbnRhaW5lciA6IHB1YmxpYyBSZW5kZXJGbGV4aWJsZUJveCB7CiBwdWJsaWM6CiAgICAg
UmVuZGVyTWVkaWFDb250cm9sVGltZWxpbmVDb250YWluZXIoRWxlbWVudCopOwogCkBAIC01OCw3
ICs1OCw3IEBAIHByaXZhdGU6CiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAKLWNsYXNzIFJl
bmRlclRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQgRklOQUwgOiBwdWJsaWMgUmVuZGVyQmxvY2sg
eworY2xhc3MgUmVuZGVyVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudCA6IHB1YmxpYyBSZW5kZXJC
bG9jayB7CiBwdWJsaWM6CiAgICAgUmVuZGVyVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudChFbGVt
ZW50Kik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51
TGlzdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmgKaW5kZXgg
MGMwNDc0ODBjMjgzMDY3YWIyODNkMGY1YjU3ZWUwODJmNTExOTVhNC4uMzUzYzJhODhlMDQzYWE4
MTkyMGU3YzM5NDM4ZTI0NDU3OWFlMDFiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck1lbnVMaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck1lbnVMaXN0LmgKQEAgLTQwLDcgKzQwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xh
c3MgSFRNTFNlbGVjdEVsZW1lbnQ7CiBjbGFzcyBSZW5kZXJUZXh0OwogCi1jbGFzcyBSZW5kZXJN
ZW51TGlzdCBGSU5BTCA6IHB1YmxpYyBSZW5kZXJGbGV4aWJsZUJveCwgcHJpdmF0ZSBQb3B1cE1l
bnVDbGllbnQgeworY2xhc3MgUmVuZGVyTWVudUxpc3QgOiBwdWJsaWMgUmVuZGVyRmxleGlibGVC
b3gsIHByaXZhdGUgUG9wdXBNZW51Q2xpZW50IHsKIAogcHVibGljOgogICAgIFJlbmRlck1lbnVM
aXN0KEVsZW1lbnQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJNZXRlci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1ldGVyLmgKaW5kZXgg
ODczMWY5MjM0MzMxNDNkMWMyNjNkMmU0NTRjNjVjYzNhNDU5Yzk3ZC4uYmMwOWQzZmQ2NThhNTZk
NDE1ZmUxMDQxMTI3YTI4NTQzYzRkODc2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck1ldGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck1ldGVyLmgKQEAgLTMwLDcgKzMwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBI
VE1MTWV0ZXJFbGVtZW50OwogCi1jbGFzcyBSZW5kZXJNZXRlciBGSU5BTCA6IHB1YmxpYyBSZW5k
ZXJCbG9jayB7CitjbGFzcyBSZW5kZXJNZXRlciA6IHB1YmxpYyBSZW5kZXJCbG9jayB7CiBwdWJs
aWM6CiAgICAgZXhwbGljaXQgUmVuZGVyTWV0ZXIoSFRNTEVsZW1lbnQqKTsKICAgICB2aXJ0dWFs
IH5SZW5kZXJNZXRlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck11bHRpQ29sdW1uQmxvY2suaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJN
dWx0aUNvbHVtbkJsb2NrLmgKaW5kZXggODdjYmUwZDA0NzU2Mzc2MzQ5MWVhYWY0OGE5YmY0OGYx
YjU4NWNlNC4uOWRhYjkyNDk3MDcwOGRmZTk2NjE2YTNlY2JiNzVhZDE0OTAyNjJmMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uQmxvY2suaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5CbG9jay5oCkBA
IC0zMyw3ICszMyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUmVuZGVyTXVsdGlD
b2x1bW5GbG93VGhyZWFkOwogCi1jbGFzcyBSZW5kZXJNdWx0aUNvbHVtbkJsb2NrIEZJTkFMIDog
cHVibGljIFJlbmRlckJsb2NrIHsKK2NsYXNzIFJlbmRlck11bHRpQ29sdW1uQmxvY2sgOiBwdWJs
aWMgUmVuZGVyQmxvY2sgewogcHVibGljOgogICAgIFJlbmRlck11bHRpQ29sdW1uQmxvY2soRWxl
bWVudCopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVs
dGlDb2x1bW5GbG93VGhyZWFkLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVs
dGlDb2x1bW5GbG93VGhyZWFkLmgKaW5kZXggYjAyYzA4ZTU4NThlZmM2YTQ2MmNmMWY1NTYwNjM1
NTljMzAwNGJmMy4uM2JhNDBiZDIyMGI1MDA0MmU3ZTZjN2M2ZDk2ZTQzOWU1NzEyOTVkZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uRmxvd1Ro
cmVhZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtbkZs
b3dUaHJlYWQuaApAQCAtMzEsNyArMzEsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNs
YXNzIFJlbmRlck11bHRpQ29sdW1uRmxvd1RocmVhZCBGSU5BTCA6IHB1YmxpYyBSZW5kZXJGbG93
VGhyZWFkIHsKK2NsYXNzIFJlbmRlck11bHRpQ29sdW1uRmxvd1RocmVhZCA6IHB1YmxpYyBSZW5k
ZXJGbG93VGhyZWFkIHsKIHB1YmxpYzoKICAgICB+UmVuZGVyTXVsdGlDb2x1bW5GbG93VGhyZWFk
KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNv
bHVtblNldC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uU2V0
LmgKaW5kZXggM2MxMDAxMzNhMWRiZTQxYTVmMzg0OThhZTk3NTNmZTNhY2VhOTQ4My4uMjA1YjZl
NWU2NmVjNzM2Y2ZiOTMzMTYzMjk2M2U2MjAwZjE1MjI2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uU2V0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uU2V0LmgKQEAgLTQxLDcgKzQxLDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogLy8KIC8vIENvbHVtbiBzcGFucyByZXN1bHQgaW4gdGhlIGNyZWF0
aW9uIG9mIG5ldyBjb2x1bW4gc2V0cyBhcyB3ZWxsLCBzaW5jZSBhIHNwYW5uaW5nIHJlZ2lvbiBo
YXMgdG8gYmUgcGxhY2VkIGluIGJldHdlZW4gdGhlIGNvbHVtbiBzZXRzIHRoYXQKIC8vIGNvbWUg
YmVmb3JlIGFuZCBhZnRlciB0aGUgc3Bhbi4KLWNsYXNzIFJlbmRlck11bHRpQ29sdW1uU2V0IEZJ
TkFMIDogcHVibGljIFJlbmRlclJlZ2lvblNldCB7CitjbGFzcyBSZW5kZXJNdWx0aUNvbHVtblNl
dCA6IHB1YmxpYyBSZW5kZXJSZWdpb25TZXQgewogcHVibGljOgogICAgIHN0YXRpYyBSZW5kZXJN
dWx0aUNvbHVtblNldCogY3JlYXRlQW5vbnltb3VzKFJlbmRlckZsb3dUaHJlYWQqKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd1RocmVhZC5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd1RocmVhZC5oCmluZGV4
IDFmNGI1ODZjMTUwZTdhMjAyZjhhZTk2NDBiMTRhMWIzNmJhODdhZTAuLjJjOGQ4MDExZThhM2Vi
ZjgzMmFiMTVhNjhjMzg1ZDZjZjNmNzQyNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTmFtZWRGbG93VGhyZWFkLmgKQEAgLTQzLDcgKzQzLDcgQEAgdHlwZWRlZiBM
aXN0SGFzaFNldDxSZW5kZXJOYW1lZEZsb3dUaHJlYWQqPiBSZW5kZXJOYW1lZEZsb3dUaHJlYWRM
aXN0OwogdHlwZWRlZiBIYXNoQ291bnRlZFNldDxSZW5kZXJOYW1lZEZsb3dUaHJlYWQqPiBSZW5k
ZXJOYW1lZEZsb3dUaHJlYWRDb3VudGVkU2V0OwogdHlwZWRlZiBMaXN0SGFzaFNldDxOb2RlKj4g
TmFtZWRGbG93Q29udGVudE5vZGVzOwogCi1jbGFzcyBSZW5kZXJOYW1lZEZsb3dUaHJlYWQgRklO
QUwgOiBwdWJsaWMgUmVuZGVyRmxvd1RocmVhZCB7CitjbGFzcyBSZW5kZXJOYW1lZEZsb3dUaHJl
YWQgOiBwdWJsaWMgUmVuZGVyRmxvd1RocmVhZCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+UmVu
ZGVyTmFtZWRGbG93VGhyZWFkKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJQYXJ0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUGFydC5o
CmluZGV4IGU0NmZhZmYyZTkyYzYxMzg0ZjRhYzQyOTA1NTllNDUyODBjOTY2MjQuLjUzOGIwZjk3
M2Q2OWYzYmU3ZWEzN2RhNmMxODdkN2Y2ODFiYzVlODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJQYXJ0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclBhcnQuaApAQCAtMzMsMjYgKzMzLDI2IEBAIHB1YmxpYzoKICAgICBleHBsaWNpdCBS
ZW5kZXJQYXJ0KEVsZW1lbnQqKTsKICAgICB2aXJ0dWFsIH5SZW5kZXJQYXJ0KCk7CiAKLSAgICB2
aXJ0dWFsIHZvaWQgc2V0V2lkZ2V0KFBhc3NSZWZQdHI8V2lkZ2V0PikgT1ZFUlJJREUgRklOQUw7
CisgICAgdmlydHVhbCB2b2lkIHNldFdpZGdldChQYXNzUmVmUHRyPFdpZGdldD4pOwogICAgIHZp
cnR1YWwgdm9pZCB2aWV3Q2xlYXJlZCgpOwogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKQogICAgIGJvb2wgcmVxdWlyZXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nKCkgY29uc3Q7CiAj
ZW5kaWYKIAotICAgIHZpcnR1YWwgYm9vbCBuZWVkc1ByZWZlcnJlZFdpZHRoc1JlY2FsY3VsYXRp
b24oKSBjb25zdCBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIFJlbmRlckJveCogZW1iZWRk
ZWRDb250ZW50Qm94KCkgY29uc3QgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCBib29sIG5l
ZWRzUHJlZmVycmVkV2lkdGhzUmVjYWxjdWxhdGlvbigpIGNvbnN0OworICAgIHZpcnR1YWwgUmVu
ZGVyQm94KiBlbWJlZGRlZENvbnRlbnRCb3goKSBjb25zdDsKIAogICAgIHZpcnR1YWwgYm9vbCBu
b2RlQXRQb2ludChjb25zdCBIaXRUZXN0UmVxdWVzdCYsIEhpdFRlc3RSZXN1bHQmLCBjb25zdCBI
aXRUZXN0TG9jYXRpb24mIGxvY2F0aW9uSW5Db250YWluZXIsIGNvbnN0IExheW91dFBvaW50JiBh
Y2N1bXVsYXRlZE9mZnNldCwgSGl0VGVzdEFjdGlvbikgT1ZFUlJJREU7CiAKIHByb3RlY3RlZDoK
ICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0gICAgdmlydHVhbCBib29sIHJlcXVp
cmVzTGF5ZXIoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgcmVxdWlyZXNMYXll
cigpIGNvbnN0OwogI2VuZGlmCiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCBib29sIGlzUmVuZGVy
UGFydCgpIGNvbnN0IE9WRVJSSURFIEZJTkFMIHsgcmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFs
IGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiAiUmVuZGVy
UGFydCI7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJQYXJ0KCkgY29uc3QgeyByZXR1cm4g
dHJ1ZTsgfQorICAgIHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IHsgcmV0
dXJuICJSZW5kZXJQYXJ0IjsgfQogfTsKIAogaW5saW5lIFJlbmRlclBhcnQqIHRvUmVuZGVyUGFy
dChSZW5kZXJPYmplY3QqIG9iamVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJQcm9ncmVzcy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclBy
b2dyZXNzLmgKaW5kZXggNzcyNWRiZGUxZTExYmYwODA0MTc0YjkzYTRjOTZiZTQ1ODAzZTg0Yi4u
MTQyOGQ4MzhiNDkxZmU2ZTE1NmFmMzQwMDBiYmI2NmZlYTc4ZDcxZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclByb2dyZXNzLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclByb2dyZXNzLmgKQEAgLTI4LDcgKzI4LDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBIVE1MUHJvZ3Jlc3NFbGVtZW50OwogCi1jbGFzcyBSZW5kZXJQ
cm9ncmVzcyBGSU5BTCA6IHB1YmxpYyBSZW5kZXJCbG9jayB7CitjbGFzcyBSZW5kZXJQcm9ncmVz
cyA6IHB1YmxpYyBSZW5kZXJCbG9jayB7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgUmVuZGVyUHJv
Z3Jlc3MoSFRNTEVsZW1lbnQqKTsKICAgICB2aXJ0dWFsIH5SZW5kZXJQcm9ncmVzcygpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oCmluZGV4IGI5M2MxMTVmN2MyNWM0Mjdm
ODdkYjY0Y2RlMTFmZmE2MDZkMjU1YWIuLmUyZjU1ZWUyNTRkNzNmYTU0NjhmN2Y1N2VjYzUxNTRl
YzBjNGM0YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdp
b24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmgKQEAgLTQ2
LDcgKzQ2LDcgQEAgY2xhc3MgUmVuZGVyUmVnaW9uIDogcHVibGljIFJlbmRlckJsb2NrIHsKIHB1
YmxpYzoKICAgICBleHBsaWNpdCBSZW5kZXJSZWdpb24oRWxlbWVudCosIFJlbmRlckZsb3dUaHJl
YWQqKTsKIAotICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRlclJlZ2lvbigpIGNvbnN0IE9WRVJSSURF
IEZJTkFMIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJSZWdpb24o
KSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKICAgICB2aXJ0dWFsIGJvb2wgaGl0VGVzdENvbnRl
bnRzKGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IEhpdFRlc3RM
b2NhdGlvbiYgbG9jYXRpb25JbkNvbnRhaW5lciwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxh
dGVkT2Zmc2V0LCBIaXRUZXN0QWN0aW9uKSBPVkVSUklERTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvblNldC5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclJlZ2lvblNldC5oCmluZGV4IGEwOTYzZmJkMDlkM2NhYjEwN2EzMzg4ZjA0
Y2UzNGEyZjNjOTgxODMuLmFhODk2OWQ2NzYzZjllMzA4ZTUyNTY2OTgzNTFjNDY0OGRkZmM3NWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb25TZXQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uU2V0LmgKQEAgLTUzLDEz
ICs1MywxMyBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBib29sIHNob3VsZEhhdmVBdXRvTG9n
aWNhbEhlaWdodCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIGZhbHNlOyB9CiAKIHByaXZhdGU6
Ci0gICAgdmlydHVhbCB2b2lkIGluc3RhbGxGbG93VGhyZWFkKCkgT1ZFUlJJREUgRklOQUw7Cisg
ICAgdmlydHVhbCB2b2lkIGluc3RhbGxGbG93VGhyZWFkKCkgT1ZFUlJJREU7CiAKLSAgICB2aXJ0
dWFsIHZvaWQgZXhwYW5kVG9FbmNvbXBhc3NGbG93VGhyZWFkQ29udGVudHNJZk5lZWRlZCgpIE9W
RVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgdm9pZCBleHBhbmRUb0VuY29tcGFzc0Zsb3dUaHJl
YWRDb250ZW50c0lmTmVlZGVkKCkgT1ZFUlJJREU7CiAKICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIq
IHJlbmRlck5hbWUoKSBjb25zdCA9IDA7CiAgICAgCi0gICAgdmlydHVhbCBib29sIGlzUmVuZGVy
UmVnaW9uU2V0KCkgY29uc3QgT1ZFUlJJREUgRklOQUwgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZp
cnR1YWwgYm9vbCBpc1JlbmRlclJlZ2lvblNldCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRy
dWU7IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclJlcGxhY2VkLmgKaW5kZXggNDU2Yzc2Yjc4OTJjYzAxZDBmYWMxYzZmMzc1ZDg0
ZDNmMmU2MDU1My4uYWU4NWU0NGI3N2NjYjRmZTdlNGFlMTJiNTkwMTBlNWNhODRjN2U1YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmgKQEAgLTQzLDEwICs0Mywx
MCBAQCBwcm90ZWN0ZWQ6CiAKICAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCk7CiAKLSAgICB2aXJ0
dWFsIExheW91dFNpemUgaW50cmluc2ljU2l6ZSgpIGNvbnN0IE9WRVJSSURFIEZJTkFMIHsgcmV0
dXJuIG1faW50cmluc2ljU2l6ZTsgfQorICAgIHZpcnR1YWwgTGF5b3V0U2l6ZSBpbnRyaW5zaWNT
aXplKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV9pbnRyaW5zaWNTaXplOyB9CiAgICAgdmly
dHVhbCB2b2lkIGNvbXB1dGVJbnRyaW5zaWNSYXRpb0luZm9ybWF0aW9uKEZsb2F0U2l6ZSYgaW50
cmluc2ljU2l6ZSwgZG91YmxlJiBpbnRyaW5zaWNSYXRpbywgYm9vbCYgaXNQZXJjZW50YWdlSW50
cmluc2ljU2l6ZSkgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZUludHJpbnNpY0xv
Z2ljYWxXaWR0aHMoTGF5b3V0VW5pdCYgbWluTG9naWNhbFdpZHRoLCBMYXlvdXRVbml0JiBtYXhM
b2dpY2FsV2lkdGgpIGNvbnN0IE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgdm9pZCBjb21w
dXRlSW50cmluc2ljTG9naWNhbFdpZHRocyhMYXlvdXRVbml0JiBtaW5Mb2dpY2FsV2lkdGgsIExh
eW91dFVuaXQmIG1heExvZ2ljYWxXaWR0aCkgY29uc3QgT1ZFUlJJREU7CiAKICAgICB2aXJ0dWFs
IExheW91dFVuaXQgbWluaW11bVJlcGxhY2VkSGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gTGF5b3V0
VW5pdCgpOyB9CiAKQEAgLTYwLDI2ICs2MCwyNiBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2
b2lkIGludHJpbnNpY1NpemVDaGFuZ2VkKCk7CiAgICAgdmlydHVhbCBib29sIGhhc1JlbGF0aXZl
SW50cmluc2ljTG9naWNhbFdpZHRoKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAotICAgIHZp
cnR1YWwgdm9pZCBwYWludChQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpIE9WRVJSSURF
OworICAgIHZpcnR1YWwgdm9pZCBwYWludChQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYp
OwogICAgIGJvb2wgc2hvdWxkUGFpbnQoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKTsK
ICAgICBMYXlvdXRSZWN0IGxvY2FsU2VsZWN0aW9uUmVjdChib29sIGNoZWNrV2hldGhlclNlbGVj
dGVkID0gdHJ1ZSkgY29uc3Q7IC8vIFRoaXMgaXMgaW4gbG9jYWwgY29vcmRpbmF0ZXMsIGJ1dCBp
dCdzIGEgcGh5c2ljYWwgcmVjdCAoc28gdGhlIHRvcCBsZWZ0IGNvcm5lciBpcyBwaHlzaWNhbCB0
b3AgbGVmdCkuCiAKIHByaXZhdGU6CiAgICAgdmlydHVhbCBSZW5kZXJCb3gqIGVtYmVkZGVkQ29u
dGVudEJveCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KLSAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJl
bmRlck5hbWUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiAiUmVuZGVyUmVwbGFjZWQiOyB9Cisg
ICAgdmlydHVhbCBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3QgeyByZXR1cm4gIlJlbmRl
clJlcGxhY2VkIjsgfQogCiAgICAgdmlydHVhbCBib29sIGNhbkhhdmVDaGlsZHJlbigpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZVByZWZlcnJlZExv
Z2ljYWxXaWR0aHMoKSBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZVBy
ZWZlcnJlZExvZ2ljYWxXaWR0aHMoKTsKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRSZXBsYWNlZChQ
YWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpIHsgfQogCiAgICAgdmlydHVhbCBMYXlvdXRS
ZWN0IGNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxP
YmplY3QqIHJlcGFpbnRDb250YWluZXIpIGNvbnN0IE9WRVJSSURFOwogCi0gICAgdmlydHVhbCBW
aXNpYmxlUG9zaXRpb24gcG9zaXRpb25Gb3JQb2ludChjb25zdCBMYXlvdXRQb2ludCYpIE9WRVJS
SURFIEZJTkFMOworICAgIHZpcnR1YWwgVmlzaWJsZVBvc2l0aW9uIHBvc2l0aW9uRm9yUG9pbnQo
Y29uc3QgTGF5b3V0UG9pbnQmKTsKICAgICAKICAgICB2aXJ0dWFsIGJvb2wgY2FuQmVTZWxlY3Rp
b25MZWFmKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgdmlydHVhbCBMYXlvdXRSZWN0
IHNlbGVjdGlvblJlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJl
cGFpbnRDb250YWluZXIsIGJvb2wgY2xpcFRvVmlzaWJsZUNvbnRlbnQgPSB0cnVlKSBPVkVSUklE
RSBGSU5BTDsKKyAgICB2aXJ0dWFsIExheW91dFJlY3Qgc2VsZWN0aW9uUmVjdEZvclJlcGFpbnQo
Y29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgYm9vbCBjbGlw
VG9WaXNpYmxlQ29udGVudCA9IHRydWUpIE9WRVJSSURFOwogICAgIHZvaWQgY29tcHV0ZUFzcGVj
dFJhdGlvSW5mb3JtYXRpb25Gb3JSZW5kZXJCb3goUmVuZGVyQm94KiwgRmxvYXRTaXplJiBjb25z
dHJhaW5lZFNpemUsIGRvdWJsZSYgaW50cmluc2ljUmF0aW8sIGJvb2wmIGlzUGVyY2VudGFnZUlu
dHJpbnNpY1NpemUpIGNvbnN0OwogCiAgICAgbXV0YWJsZSBMYXlvdXRTaXplIG1faW50cmluc2lj
U2l6ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsaWNh
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGljYS5oCmluZGV4IDJmZjI5
MjQ4NDVmNzc0MWVhOGM2MTNmNzVhMTVhYjVlMTBmYjZlOGEuLjQ2NjVlMTNmMTg4MTRlMWE5MGFi
YThkM2QwNDM1MjRiNmEzNGY5OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJSZXBsaWNhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJl
cGxpY2EuaApAQCAtMzMsNyArMzMsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNz
IFJlbmRlclJlcGxpY2EgRklOQUwgOiBwdWJsaWMgUmVuZGVyQm94IHsKK2NsYXNzIFJlbmRlclJl
cGxpY2EgOiBwdWJsaWMgUmVuZGVyQm94IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVuZGVyUmVw
bGljYSogY3JlYXRlQW5vbnltb3VzKERvY3VtZW50Kik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyUnVieS5oCmluZGV4IDQwNzM2NTNjYjBhZDEwZjJkYzgwMTg3ZWZhYmUyYjdmOTBjNGY3
N2YuLjI0OTQ2MzlmOWE1NGI2OTZiMzIzZDc3NWNhMzI1YTgxMTU1NmRlNDQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclJ1YnkuaApAQCAtNTEsNyArNTEsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAvLyBHZW5lcmF0ZWQgOmJlZm9yZS86YWZ0ZXIgY29udGVudCBpcyBzaHVudGVkIGlu
dG8gYW5vbnltb3VzIGlubGluZSBibG9ja3MKIAogLy8gPHJ1Ynk+IHdoZW4gdXNlZCBhcyAnZGlz
cGxheTppbmxpbmUnCi1jbGFzcyBSZW5kZXJSdWJ5QXNJbmxpbmUgRklOQUwgOiBwdWJsaWMgUmVu
ZGVySW5saW5lIHsKK2NsYXNzIFJlbmRlclJ1YnlBc0lubGluZSA6IHB1YmxpYyBSZW5kZXJJbmxp
bmUgewogcHVibGljOgogICAgIFJlbmRlclJ1YnlBc0lubGluZShFbGVtZW50Kik7CiAgICAgdmly
dHVhbCB+UmVuZGVyUnVieUFzSW5saW5lKCk7CkBAIC03MCw3ICs3MCw3IEBAIHByaXZhdGU6CiB9
OwogCiAvLyA8cnVieT4gd2hlbiB1c2VkIGFzICdkaXNwbGF5OmJsb2NrJyBvciAnZGlzcGxheTpp
bmxpbmUtYmxvY2snCi1jbGFzcyBSZW5kZXJSdWJ5QXNCbG9jayBGSU5BTCA6IHB1YmxpYyBSZW5k
ZXJCbG9jayB7CitjbGFzcyBSZW5kZXJSdWJ5QXNCbG9jayA6IHB1YmxpYyBSZW5kZXJCbG9jayB7
CiBwdWJsaWM6CiAgICAgUmVuZGVyUnVieUFzQmxvY2soRWxlbWVudCopOwogICAgIHZpcnR1YWwg
flJlbmRlclJ1YnlBc0Jsb2NrKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyUnVieUJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5
QmFzZS5oCmluZGV4IGE3NzQyZjdiMTUwZjIwZDQxNWYyN2UzOGM5YmVmNTkzZmFhMDkyYTEuLjM4
ODg2MDZiNDEwZmRmYTZkODYyM2EzZTA4ZGU0YzFiNDBhMGU4Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJSdWJ5QmFzZS5oCkBAIC0zNyw3ICszNyw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgUmVuZGVyUnVieVJ1bjsKIAotY2xhc3MgUmVuZGVyUnVieUJhc2Ug
RklOQUwgOiBwdWJsaWMgUmVuZGVyQmxvY2sgeworY2xhc3MgUmVuZGVyUnVieUJhc2UgOiBwdWJs
aWMgUmVuZGVyQmxvY2sgewogcHVibGljOgogICAgIHZpcnR1YWwgflJlbmRlclJ1YnlCYXNlKCk7
CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieVJ1
bi5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnlSdW4uaAppbmRleCBiYmFl
N2E1OTcxYWQ3YjI3MmRmY2JlMzg4YjI3ZWU4MjQyYzE3ZTE4Li4xZTU1M2E2YTAwOGQ2Y2VhNTYz
ZjgwYzcyZDM1YjFkYWQ2MzEwOTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyUnVieVJ1bi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJS
dWJ5UnVuLmgKQEAgLTQxLDcgKzQxLDcgQEAgY2xhc3MgUmVuZGVyUnVieVRleHQ7CiAvLyBSZW5k
ZXJSdWJ5UnVuIGFyZSAnaW5saW5lLWJsb2NrL3RhYmxlJyBsaWtlIG9iamVjdHMsYW5kIHdyYXAg
YSBzaW5nbGUgcGFpcmluZyBvZiBhIHJ1YnkgYmFzZSB3aXRoIGl0cyBydWJ5IHRleHQocykuCiAv
LyBTZWUgUmVuZGVyUnVieS5oIGZvciBmdXJ0aGVyIGNvbW1lbnRzIG9uIHRoZSBzdHJ1Y3R1cmUK
IAotY2xhc3MgUmVuZGVyUnVieVJ1biBGSU5BTCA6IHB1YmxpYyBSZW5kZXJCbG9jayB7CitjbGFz
cyBSZW5kZXJSdWJ5UnVuIDogcHVibGljIFJlbmRlckJsb2NrIHsKIHB1YmxpYzoKICAgICB2aXJ0
dWFsIH5SZW5kZXJSdWJ5UnVuKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJSdWJ5VGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1
YnlUZXh0LmgKaW5kZXggMDIyMDQ5MDAxZTA4ODE4ZWZiZmZhY2RiMWEyNjg1OTk0ZDI0MjdhOS4u
MGIwYmFlNTgyM2M3MWY0Y2JhOTNiZTA2MWQxMjU2YjQwYzliNjc1OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnlUZXh0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclJ1YnlUZXh0LmgKQEAgLTM1LDcgKzM1LDcgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1jbGFzcyBSZW5kZXJSdWJ5VGV4dCBGSU5BTCA6IHB1YmxpYyBSZW5k
ZXJCbG9jayB7CitjbGFzcyBSZW5kZXJSdWJ5VGV4dCA6IHB1YmxpYyBSZW5kZXJCbG9jayB7CiBw
dWJsaWM6CiAgICAgUmVuZGVyUnVieVRleHQoRWxlbWVudCopOwogICAgIHZpcnR1YWwgflJlbmRl
clJ1YnlUZXh0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
U2Nyb2xsYmFyUGFydC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNjcm9sbGJh
clBhcnQuaAppbmRleCA3OWViOTQ3ZGU2ZWUyMWY4YWI0MTllNTc2MGExYWM1Yzg0MjFiM2FhLi43
NWI3YjUxMDY0NGZhYTJmNTZmY2FkZTY1N2QzZjAyYjUwYTg0OTkyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2Nyb2xsYmFyUGFydC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTY3JvbGxiYXJQYXJ0LmgKQEAgLTMzLDcgKzMzLDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBSZW5kZXJTY3JvbGxiYXI7CiAKLWNsYXNzIFJl
bmRlclNjcm9sbGJhclBhcnQgRklOQUwgOiBwdWJsaWMgUmVuZGVyQmxvY2sgeworY2xhc3MgUmVu
ZGVyU2Nyb2xsYmFyUGFydCA6IHB1YmxpYyBSZW5kZXJCbG9jayB7CiBwdWJsaWM6CiAgICAgc3Rh
dGljIFJlbmRlclNjcm9sbGJhclBhcnQqIGNyZWF0ZUFub255bW91cyhEb2N1bWVudCosIFJlbmRl
clNjcm9sbGJhciogPSAwLCBTY3JvbGxiYXJQYXJ0ID0gTm9QYXJ0KTsKICAgICAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTZWFyY2hGaWVsZC5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNlYXJjaEZpZWxkLmgKaW5kZXggYzFiOTBkNTlmY2Vj
MjI1OTE2MWRiN2E1YTU1ZGNiM2M4Njc0MzI4YS4uYjBmZmFhOGMzMGFkOTYwZWExNTM0ZTNmYmEz
NjVkZDViYzk1YjI5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clNlYXJjaEZpZWxkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNlYXJj
aEZpZWxkLmgKQEAgLTMxLDcgKzMxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgSFRN
TElucHV0RWxlbWVudDsKIGNsYXNzIFNlYXJjaFBvcHVwTWVudTsKIAotY2xhc3MgUmVuZGVyU2Vh
cmNoRmllbGQgRklOQUwgOiBwdWJsaWMgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLCBwcml2
YXRlIFBvcHVwTWVudUNsaWVudCB7CitjbGFzcyBSZW5kZXJTZWFyY2hGaWVsZCA6IHB1YmxpYyBS
ZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUsIHByaXZhdGUgUG9wdXBNZW51Q2xpZW50IHsKIHB1
YmxpYzoKICAgICBSZW5kZXJTZWFyY2hGaWVsZChFbGVtZW50Kik7CiAgICAgdmlydHVhbCB+UmVu
ZGVyU2VhcmNoRmllbGQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJTbGlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuaApp
bmRleCA0ODUyM2E3NjcxNGY1YTFiNzNhYTYyZWVjZGFjN2I1ZGE5MjVmYWViLi44NjAzYTkwZTg0
MzgxYjA2YTJlYzhjZjA0ZTgyNjZmN2NhYWE2MzEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclNsaWRlci5oCkBAIC0yOSw3ICsyOSw3IEBAIGNsYXNzIEhUTUxJbnB1dEVsZW1lbnQ7
CiBjbGFzcyBNb3VzZUV2ZW50OwogY2xhc3MgU2xpZGVyVGh1bWJFbGVtZW50OwogCi1jbGFzcyBS
ZW5kZXJTbGlkZXIgRklOQUwgOiBwdWJsaWMgUmVuZGVyRmxleGlibGVCb3ggeworY2xhc3MgUmVu
ZGVyU2xpZGVyIDogcHVibGljIFJlbmRlckZsZXhpYmxlQm94IHsKIHB1YmxpYzoKICAgICBzdGF0
aWMgY29uc3QgaW50IGRlZmF1bHRUcmFja0xlbmd0aDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uaAppbmRleCA2ZTFjZjE1MWEyODcy
YmM1ZmUwNGQzMDBiNjQwN2QyZTE5NzAwMjkwLi5iZWFlMjU2ZmFjNjc1ZTA0MjViNDcyZjMyZTdl
ODg1MDUwMGIzOTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
U25hcHNob3R0ZWRQbHVnSW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
U25hcHNob3R0ZWRQbHVnSW4uaApAQCAtMzQsNyArMzQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ7CiAKLWNsYXNzIFJlbmRlclNuYXBzaG90
dGVkUGx1Z0luIEZJTkFMIDogcHVibGljIFJlbmRlckVtYmVkZGVkT2JqZWN0IHsKK2NsYXNzIFJl
bmRlclNuYXBzaG90dGVkUGx1Z0luIDogcHVibGljIFJlbmRlckVtYmVkZGVkT2JqZWN0IHsKIHB1
YmxpYzoKICAgICBleHBsaWNpdCBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbihIVE1MUGx1Z0luSW1h
Z2VFbGVtZW50Kik7CiAgICAgdmlydHVhbCB+UmVuZGVyU25hcHNob3R0ZWRQbHVnSW4oKTsKQEAg
LTQ3LDExICs0NywxMSBAQCBwcml2YXRlOgogICAgIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQqIHBs
dWdJbkltYWdlRWxlbWVudCgpIGNvbnN0OwogICAgIHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVy
TmFtZSgpIGNvbnN0IHsgcmV0dXJuICJSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbiI7IH0KIAotICAg
IHZpcnR1YWwgQ3Vyc29yRGlyZWN0aXZlIGdldEN1cnNvcihjb25zdCBMYXlvdXRQb2ludCYsIEN1
cnNvciYpIGNvbnN0IE9WRVJSSURFIEZJTkFMOwotICAgIHZpcnR1YWwgYm9vbCBpc1NuYXBzaG90
dGVkUGx1Z0luKCkgY29uc3QgT1ZFUlJJREUgRklOQUwgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZp
cnR1YWwgQ3Vyc29yRGlyZWN0aXZlIGdldEN1cnNvcihjb25zdCBMYXlvdXRQb2ludCYsIEN1cnNv
ciYpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBpc1NuYXBzaG90dGVkUGx1Z0lu
KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgdm9pZCBwYWlu
dChQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpIE9WRVJSSURFOwogICAgIAotICAgIHZp
cnR1YWwgYm9vbCBjYW5IYXZlV2lkZ2V0KCkgY29uc3QgT1ZFUlJJREUgRklOQUwgeyByZXR1cm4g
ZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgY2FuSGF2ZVdpZGdldCgpIGNvbnN0IE9WRVJSSURF
IHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICB2b2lkIHBhaW50U25hcHNob3QoUGFpbnRJbmZvJiwg
Y29uc3QgTGF5b3V0UG9pbnQmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRhYmxlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUu
aAppbmRleCAxYjBjODk5YzEyNTRlMzIzYzRhN2E0MzJlYTM2NWMyNjMzZWQyMDVhLi4zZTE4NzJk
NTk5NzNjNjZkYWQ2OTYwYjM0OTJkOTNmZGUxNTYzNGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGFibGUuaApAQCAtMTI0LDcgKzEyNCw3IEBAIHB1YmxpYzoKICAgICBpbnQgY2Fs
Y0JvcmRlckVuZCgpIGNvbnN0OwogICAgIHZvaWQgcmVjYWxjQm9yZGVyc0luUm93RGlyZWN0aW9u
KCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgYWRkQ2hpbGQoUmVuZGVyT2JqZWN0KiBjaGlsZCwgUmVu
ZGVyT2JqZWN0KiBiZWZvcmVDaGlsZCA9IDApIE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwg
dm9pZCBhZGRDaGlsZChSZW5kZXJPYmplY3QqIGNoaWxkLCBSZW5kZXJPYmplY3QqIGJlZm9yZUNo
aWxkID0gMCk7CiAKICAgICBzdHJ1Y3QgQ29sdW1uU3RydWN0IHsKICAgICAgICAgZXhwbGljaXQg
Q29sdW1uU3RydWN0KHVuc2lnbmVkIGluaXRpYWxTcGFuID0gMSkKQEAgLTE5NSw4ICsxOTUsOCBA
QCBwdWJsaWM6CiAgICAgfQogCiAgICAgLy8gT3ZlcnJpZGUgcGFkZGluZ1N0YXJ0L0VuZCB0byBy
ZXR1cm4gcGl4ZWwgdmFsdWVzIHRvIG1hdGNoIGJlaGF2b3Igb2YgUmVuZGVyVGFibGVDZWxsLgot
ICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBwYWRkaW5nRW5kKCkgY29uc3QgT1ZFUlJJREUgRklOQUwg
eyByZXR1cm4gc3RhdGljX2Nhc3Q8aW50PihSZW5kZXJCbG9jazo6cGFkZGluZ0VuZCgpKTsgfQot
ICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBwYWRkaW5nU3RhcnQoKSBjb25zdCBPVkVSUklERSBGSU5B
TCB7IHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+KFJlbmRlckJsb2NrOjpwYWRkaW5nU3RhcnQoKSk7
IH0KKyAgICB2aXJ0dWFsIExheW91dFVuaXQgcGFkZGluZ0VuZCgpIGNvbnN0IE9WRVJSSURFIHsg
cmV0dXJuIHN0YXRpY19jYXN0PGludD4oUmVuZGVyQmxvY2s6OnBhZGRpbmdFbmQoKSk7IH0KKyAg
ICB2aXJ0dWFsIExheW91dFVuaXQgcGFkZGluZ1N0YXJ0KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1
cm4gc3RhdGljX2Nhc3Q8aW50PihSZW5kZXJCbG9jazo6cGFkZGluZ1N0YXJ0KCkpOyB9CiAKICAg
ICBMYXlvdXRVbml0IGJvcmRlcnNQYWRkaW5nQW5kU3BhY2luZ0luUm93RGlyZWN0aW9uKCkgY29u
c3QKICAgICB7CkBAIC0yNjMsNDUgKzI2Myw0NSBAQCBwdWJsaWM6CiAgICAgdm9pZCByZW1vdmVD
b2x1bW4oY29uc3QgUmVuZGVyVGFibGVDb2wqKTsKIAogcHJvdGVjdGVkOgotICAgIHZpcnR1YWwg
dm9pZCBzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKiBv
bGRTdHlsZSkgT1ZFUlJJREUgRklOQUw7Ci0gICAgdmlydHVhbCB2b2lkIHNpbXBsaWZpZWROb3Jt
YWxGbG93TGF5b3V0KCkgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCB2b2lkIHN0eWxlRGlk
Q2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgc2ltcGxpZmllZE5vcm1hbEZsb3dMYXlvdXQoKTsKIAogcHJpdmF0ZToK
LSAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCBPVkVSUklERSB7IHJl
dHVybiAiUmVuZGVyVGFibGUiOyB9CisgICAgdmlydHVhbCBjb25zdCBjaGFyKiByZW5kZXJOYW1l
KCkgY29uc3QgeyByZXR1cm4gIlJlbmRlclRhYmxlIjsgfQogCi0gICAgdmlydHVhbCBib29sIGlz
VGFibGUoKSBjb25zdCBPVkVSUklERSBGSU5BTCB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVh
bCBib29sIGlzVGFibGUoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKLSAgICB2aXJ0dWFsIGJv
b2wgYXZvaWRzRmxvYXRzKCkgY29uc3QgT1ZFUlJJREUgRklOQUwgeyByZXR1cm4gdHJ1ZTsgfQor
ICAgIHZpcnR1YWwgYm9vbCBhdm9pZHNGbG9hdHMoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAK
LSAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKSBP
VkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIHZvaWQgcGFpbnRPYmplY3QoUGFpbnRJbmZvJiwg
Y29uc3QgTGF5b3V0UG9pbnQmKSBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIHZvaWQgcGFp
bnRCb3hEZWNvcmF0aW9ucyhQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpIE9WRVJSSURF
IEZJTkFMOwotICAgIHZpcnR1YWwgdm9pZCBwYWludE1hc2soUGFpbnRJbmZvJiwgY29uc3QgTGF5
b3V0UG9pbnQmKSBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCkgT1ZF
UlJJREUgRklOQUw7Ci0gICAgdmlydHVhbCB2b2lkIGNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lk
dGhzKExheW91dFVuaXQmIG1pbldpZHRoLCBMYXlvdXRVbml0JiBtYXhXaWR0aCkgY29uc3QgT1ZF
UlJJREUgRklOQUw7CisgICAgdmlydHVhbCB2b2lkIHBhaW50KFBhaW50SW5mbyYsIGNvbnN0IExh
eW91dFBvaW50Jik7CisgICAgdmlydHVhbCB2b2lkIHBhaW50T2JqZWN0KFBhaW50SW5mbyYsIGNv
bnN0IExheW91dFBvaW50Jik7CisgICAgdmlydHVhbCB2b2lkIHBhaW50Qm94RGVjb3JhdGlvbnMo
UGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFpbnRN
YXNrKFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50Jik7CisgICAgdmlydHVhbCB2b2lkIGxh
eW91dCgpOworICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlSW50cmluc2ljTG9naWNhbFdpZHRocyhM
YXlvdXRVbml0JiBtaW5XaWR0aCwgTGF5b3V0VW5pdCYgbWF4V2lkdGgpIGNvbnN0IE9WRVJSSURF
OwogICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocygpIE9WRVJS
SURFOwogICAgIHZpcnR1YWwgYm9vbCBub2RlQXRQb2ludChjb25zdCBIaXRUZXN0UmVxdWVzdCYs
IEhpdFRlc3RSZXN1bHQmLCBjb25zdCBIaXRUZXN0TG9jYXRpb24mIGxvY2F0aW9uSW5Db250YWlu
ZXIsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCwgSGl0VGVzdEFjdGlvbikg
T1ZFUlJJREU7CiAKLSAgICB2aXJ0dWFsIGludCBiYXNlbGluZVBvc2l0aW9uKEZvbnRCYXNlbGlu
ZSwgYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlID0g
UG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKSBjb25zdCBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0
dWFsIGludCBiYXNlbGluZVBvc2l0aW9uKEZvbnRCYXNlbGluZSwgYm9vbCBmaXJzdExpbmUsIExp
bmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlID0gUG9zaXRpb25PbkNvbnRhaW5pbmdM
aW5lKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGludCBmaXJzdExpbmVCb3hCYXNlbGlu
ZSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgaW50IGlubGluZUJsb2NrQmFzZWxpbmUo
TGluZURpcmVjdGlvbk1vZGUpIGNvbnN0IE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgaW50
IGlubGluZUJsb2NrQmFzZWxpbmUoTGluZURpcmVjdGlvbk1vZGUpIGNvbnN0IE9WRVJSSURFOwog
CiAgICAgUmVuZGVyVGFibGVDb2wqIHNsb3dDb2xFbGVtZW50KHVuc2lnbmVkIGNvbCwgYm9vbCog
c3RhcnRFZGdlLCBib29sKiBlbmRFZGdlKSBjb25zdDsKIAogICAgIHZvaWQgdXBkYXRlQ29sdW1u
Q2FjaGUoKSBjb25zdDsKICAgICB2b2lkIGludmFsaWRhdGVDYWNoZWRDb2x1bW5zKCk7CiAKLSAg
ICB2aXJ0dWFsIFJlbmRlckJsb2NrKiBmaXJzdExpbmVCbG9jaygpIGNvbnN0IE9WRVJSSURFIEZJ
TkFMOwotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVGaXJzdExldHRlcigpIE9WRVJSSURFIEZJTkFM
OworICAgIHZpcnR1YWwgUmVuZGVyQmxvY2sqIGZpcnN0TGluZUJsb2NrKCkgY29uc3Q7CisgICAg
dmlydHVhbCB2b2lkIHVwZGF0ZUZpcnN0TGV0dGVyKCk7CiAgICAgCi0gICAgdmlydHVhbCB2b2lk
IHVwZGF0ZUxvZ2ljYWxXaWR0aCgpIE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgdm9pZCB1
cGRhdGVMb2dpY2FsV2lkdGgoKSBPVkVSUklERTsKIAogICAgIExheW91dFVuaXQgY29udmVydFN0
eWxlTG9naWNhbFdpZHRoVG9Db21wdXRlZFdpZHRoKGNvbnN0IExlbmd0aCYgc3R5bGVMb2dpY2Fs
V2lkdGgsIExheW91dFVuaXQgYXZhaWxhYmxlV2lkdGgpOwogICAgIExheW91dFVuaXQgY29udmVy
dFN0eWxlTG9naWNhbEhlaWdodFRvQ29tcHV0ZWRIZWlnaHQoY29uc3QgTGVuZ3RoJiBzdHlsZUxv
Z2ljYWxIZWlnaHQpOwogCi0gICAgdmlydHVhbCBMYXlvdXRSZWN0IG92ZXJmbG93Q2xpcFJlY3Qo
Y29uc3QgTGF5b3V0UG9pbnQmIGxvY2F0aW9uLCBSZW5kZXJSZWdpb24qLCBPdmVybGF5U2Nyb2xs
YmFyU2l6ZVJlbGV2YW5jeSA9IElnbm9yZU92ZXJsYXlTY3JvbGxiYXJTaXplKSBPVkVSUklERSBG
SU5BTDsKKyAgICB2aXJ0dWFsIExheW91dFJlY3Qgb3ZlcmZsb3dDbGlwUmVjdChjb25zdCBMYXlv
dXRQb2ludCYgbG9jYXRpb24sIFJlbmRlclJlZ2lvbiosIE92ZXJsYXlTY3JvbGxiYXJTaXplUmVs
ZXZhbmN5ID0gSWdub3JlT3ZlcmxheVNjcm9sbGJhclNpemUpOwogCi0gICAgdmlydHVhbCB2b2lk
IGFkZE92ZXJmbG93RnJvbUNoaWxkcmVuKCkgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCB2
b2lkIGFkZE92ZXJmbG93RnJvbUNoaWxkcmVuKCk7CiAKICAgICB2b2lkIHN1YnRyYWN0Q2FwdGlv
blJlY3QoTGF5b3V0UmVjdCYpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGFibGVDYXB0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGFibGVDYXB0aW9uLmgKaW5kZXggMzEwN2E2YWE0ODcxZTI2ZDY0YzlhN2NlZTI3M2M3
M2U0YmExY2YzZS4uM2ZiNTFkYjMzNWVkZGQxNWQ4ZDBiNWVkZTM4OWQyNDAwOWY4OTE2MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2FwdGlvbi5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNhcHRpb24uaApAQCAtMjYs
NyArMjYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJlbmRlclRhYmxlOwogCi1j
bGFzcyBSZW5kZXJUYWJsZUNhcHRpb24gRklOQUwgOiBwdWJsaWMgUmVuZGVyQmxvY2sgeworY2xh
c3MgUmVuZGVyVGFibGVDYXB0aW9uIDogcHVibGljIFJlbmRlckJsb2NrIHsKIHB1YmxpYzoKICAg
ICBleHBsaWNpdCBSZW5kZXJUYWJsZUNhcHRpb24oRWxlbWVudCopOwogICAgIHZpcnR1YWwgflJl
bmRlclRhYmxlQ2FwdGlvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRhYmxlQ2VsbC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxl
Q2VsbC5oCmluZGV4IGNjM2M0OWExNzBiNTY1OWM3MjMxYTQyMDUwNDljMWY3N2I0ZDA0YzMuLmIx
ZmY1ZmM0ZDM5NTlhNTgzZGRiNjc1NmRmMTdjMWYwNzIwNmM3YmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmgKQEAgLTM1LDcgKzM1LDcgQEAgc3RhdGljIGNv
bnN0IHVuc2lnbmVkIG1heENvbHVtbkluZGV4ID0gMHgxRkZGRkZGRTsgLy8gNTM2LDg3MCw5MTAK
IAogZW51bSBJbmNsdWRlQm9yZGVyQ29sb3JPck5vdCB7IERvTm90SW5jbHVkZUJvcmRlckNvbG9y
LCBJbmNsdWRlQm9yZGVyQ29sb3IgfTsKIAotY2xhc3MgUmVuZGVyVGFibGVDZWxsIEZJTkFMIDog
cHVibGljIFJlbmRlckJsb2NrIHsKK2NsYXNzIFJlbmRlclRhYmxlQ2VsbCA6IHB1YmxpYyBSZW5k
ZXJCbG9jayB7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgUmVuZGVyVGFibGVDZWxsKEVsZW1lbnQq
KTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJs
ZUNvbC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ29sLmgKaW5kZXgg
NGY2NjZjMjA5ZGJhZTVlZjc1ZjViMTJjNjMwOWQyYzA2YTgyOWU2MS4uYzkzYjAxOTIyZDAxYTY5
NDMxOTkxODg2NDk3MTBhYmQ5MWU3N2ZlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRhYmxlQ29sLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRhYmxlQ29sLmgKQEAgLTMzLDcgKzMzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xh
c3MgUmVuZGVyVGFibGU7CiBjbGFzcyBSZW5kZXJUYWJsZUNlbGw7CiAKLWNsYXNzIFJlbmRlclRh
YmxlQ29sIEZJTkFMIDogcHVibGljIFJlbmRlckJveCB7CitjbGFzcyBSZW5kZXJUYWJsZUNvbCA6
IHB1YmxpYyBSZW5kZXJCb3ggewogcHVibGljOgogICAgIGV4cGxpY2l0IFJlbmRlclRhYmxlQ29s
KEVsZW1lbnQqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRhYmxlUm93LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVSb3cuaApp
bmRleCAzNTdiYTIwNzEyZDJlNzFmYWVhOWExMDY5NjE4NTNkNWExYWVkMzE1Li5kMmJmYmM2ZjYw
NjAxNzk3Y2U3YmYzNDUzNTE2MjY2OWY1MGVjYjdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVSb3cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGFibGVSb3cuaApAQCAtMzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiBzdGF0aWMgY29uc3QgdW5zaWduZWQgdW5zZXRSb3dJbmRleCA9IDB4N0ZGRkZGRkY7CiBzdGF0
aWMgY29uc3QgdW5zaWduZWQgbWF4Um93SW5kZXggPSAweDdGRkZGRkZFOyAvLyAyLDE0Nyw0ODMs
NjQ2CiAKLWNsYXNzIFJlbmRlclRhYmxlUm93IEZJTkFMIDogcHVibGljIFJlbmRlckJveCB7Citj
bGFzcyBSZW5kZXJUYWJsZVJvdyA6IHB1YmxpYyBSZW5kZXJCb3ggewogcHVibGljOgogICAgIGV4
cGxpY2l0IFJlbmRlclRhYmxlUm93KEVsZW1lbnQqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5oCmluZGV4IDZjMWUyNDNlMzM2ODI0NWIwNTM3N2M3
NjkxOTkzOWUzZWVmYzYyYjkuLjFlMTRiOWEyNjEwMmNiYTAzYWJhOWRiY2RjMjdjMzNkYjM0ODQx
NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rp
b24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmgK
QEAgLTYwLDcgKzYwLDcgQEAgcHJpdmF0ZToKIGNsYXNzIFJlbmRlclRhYmxlQ2VsbDsKIGNsYXNz
IFJlbmRlclRhYmxlUm93OwogCi1jbGFzcyBSZW5kZXJUYWJsZVNlY3Rpb24gRklOQUwgOiBwdWJs
aWMgUmVuZGVyQm94IHsKK2NsYXNzIFJlbmRlclRhYmxlU2VjdGlvbiA6IHB1YmxpYyBSZW5kZXJC
b3ggewogcHVibGljOgogICAgIFJlbmRlclRhYmxlU2VjdGlvbihFbGVtZW50Kik7CiAgICAgdmly
dHVhbCB+UmVuZGVyVGFibGVTZWN0aW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRl
eHQuaAppbmRleCBhZDFmMGY4OTUwMzU4NjQ1ZTQ2MzhlNzQzMWQzZmYyMWQ1MTRkNTFhLi42ZTQ0
ZTMyNmU2YjU5MDVkYzJhZmM3NjAyYjk5NWQ5MzU2MzY0ZWVkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUZXh0LmgKQEAgLTM4LDcgKzM4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
flJlbmRlclRleHQoKTsKICNlbmRpZgogCi0gICAgdmlydHVhbCBjb25zdCBjaGFyKiByZW5kZXJO
YW1lKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBjb25zdCBjaGFyKiByZW5kZXJOYW1l
KCkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNUZXh0RnJhZ21lbnQoKSBjb25zdDsKICAg
ICB2aXJ0dWFsIGJvb2wgaXNXb3JkQnJlYWsoKSBjb25zdDsKQEAgLTU1LDEwICs1NSwxMCBAQCBw
dWJsaWM6CiAgICAgSW5saW5lVGV4dEJveCogY3JlYXRlSW5saW5lVGV4dEJveCgpOwogICAgIHZv
aWQgZGlydHlMaW5lQm94ZXMoYm9vbCBmdWxsTGF5b3V0KTsKIAotICAgIHZpcnR1YWwgdm9pZCBh
YnNvbHV0ZVJlY3RzKFZlY3RvcjxJbnRSZWN0PiYsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVs
YXRlZE9mZnNldCkgY29uc3QgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCB2b2lkIGFic29s
dXRlUmVjdHMoVmVjdG9yPEludFJlY3Q+JiwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVk
T2Zmc2V0KSBjb25zdDsKICAgICB2b2lkIGFic29sdXRlUmVjdHNGb3JSYW5nZShWZWN0b3I8SW50
UmVjdD4mLCB1bnNpZ25lZCBzdGFydE9mZnNldCA9IDAsIHVuc2lnbmVkIGVuZE9mZnNldCA9IFVJ
TlRfTUFYLCBib29sIHVzZVNlbGVjdGlvbkhlaWdodCA9IGZhbHNlLCBib29sKiB3YXNGaXhlZCA9
IDApOwogCi0gICAgdmlydHVhbCB2b2lkIGFic29sdXRlUXVhZHMoVmVjdG9yPEZsb2F0UXVhZD4m
LCBib29sKiB3YXNGaXhlZCkgY29uc3QgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCB2b2lk
IGFic29sdXRlUXVhZHMoVmVjdG9yPEZsb2F0UXVhZD4mLCBib29sKiB3YXNGaXhlZCkgY29uc3Q7
CiAgICAgdm9pZCBhYnNvbHV0ZVF1YWRzRm9yUmFuZ2UoVmVjdG9yPEZsb2F0UXVhZD4mLCB1bnNp
Z25lZCBzdGFydE9mZnNldCA9IDAsIHVuc2lnbmVkIGVuZE9mZnNldCA9IFVJTlRfTUFYLCBib29s
IHVzZVNlbGVjdGlvbkhlaWdodCA9IGZhbHNlLCBib29sKiB3YXNGaXhlZCA9IDApOwogCiAgICAg
ZW51bSBDbGlwcGluZ09wdGlvbiB7IE5vQ2xpcHBpbmcsIENsaXBUb0VsbGlwc2lzIH07CkBAIC0x
MDEsMjUgKzEwMSwyNSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHRyYW5zZm9ybVRleHQo
KTsKIAogICAgIHZpcnR1YWwgYm9vbCBjYW5CZVNlbGVjdGlvbkxlYWYoKSBjb25zdCB7IHJldHVy
biB0cnVlOyB9Ci0gICAgdmlydHVhbCB2b2lkIHNldFNlbGVjdGlvblN0YXRlKFNlbGVjdGlvblN0
YXRlKSBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2VsZWN0aW9uU3RhdGUo
U2VsZWN0aW9uU3RhdGUgcyk7CiAgICAgdmlydHVhbCBMYXlvdXRSZWN0IHNlbGVjdGlvblJlY3RG
b3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIs
IGJvb2wgY2xpcFRvVmlzaWJsZUNvbnRlbnQgPSB0cnVlKSBPVkVSUklERTsKICAgICB2aXJ0dWFs
IExheW91dFJlY3QgbG9jYWxDYXJldFJlY3QoSW5saW5lQm94KiwgaW50IGNhcmV0T2Zmc2V0LCBM
YXlvdXRVbml0KiBleHRyYVdpZHRoVG9FbmRPZkxpbmUgPSAwKTsKIAotICAgIHZpcnR1YWwgTGF5
b3V0VW5pdCBtYXJnaW5MZWZ0KCkgY29uc3QgRklOQUwgeyByZXR1cm4gbWluaW11bVZhbHVlRm9y
TGVuZ3RoKHN0eWxlKCktPm1hcmdpbkxlZnQoKSwgMCwgdmlldygpKTsgfQotICAgIHZpcnR1YWwg
TGF5b3V0VW5pdCBtYXJnaW5SaWdodCgpIGNvbnN0IEZJTkFMIHsgcmV0dXJuIG1pbmltdW1WYWx1
ZUZvckxlbmd0aChzdHlsZSgpLT5tYXJnaW5SaWdodCgpLCAwLCB2aWV3KCkpOyB9CisgICAgdmly
dHVhbCBMYXlvdXRVbml0IG1hcmdpbkxlZnQoKSBjb25zdCB7IHJldHVybiBtaW5pbXVtVmFsdWVG
b3JMZW5ndGgoc3R5bGUoKS0+bWFyZ2luTGVmdCgpLCAwLCB2aWV3KCkpOyB9CisgICAgdmlydHVh
bCBMYXlvdXRVbml0IG1hcmdpblJpZ2h0KCkgY29uc3QgeyByZXR1cm4gbWluaW11bVZhbHVlRm9y
TGVuZ3RoKHN0eWxlKCktPm1hcmdpblJpZ2h0KCksIDAsIHZpZXcoKSk7IH0KIAotICAgIHZpcnR1
YWwgTGF5b3V0UmVjdCBjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJM
YXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyKSBjb25zdCBPVkVSUklERSBGSU5BTDsK
KyAgICB2aXJ0dWFsIExheW91dFJlY3QgY2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoY29u
c3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lcikgY29uc3QgT1ZFUlJJ
REU7CiAKICAgICBJbmxpbmVUZXh0Qm94KiBmaXJzdFRleHRCb3goKSBjb25zdCB7IHJldHVybiBt
X2ZpcnN0VGV4dEJveDsgfQogICAgIElubGluZVRleHRCb3gqIGxhc3RUZXh0Qm94KCkgY29uc3Qg
eyByZXR1cm4gbV9sYXN0VGV4dEJveDsgfQogCiAgICAgdmlydHVhbCBpbnQgY2FyZXRNaW5PZmZz
ZXQoKSBjb25zdDsKICAgICB2aXJ0dWFsIGludCBjYXJldE1heE9mZnNldCgpIGNvbnN0OwotICAg
IHZpcnR1YWwgdW5zaWduZWQgcmVuZGVyZWRUZXh0TGVuZ3RoKCkgY29uc3QgRklOQUw7CisgICAg
dmlydHVhbCB1bnNpZ25lZCByZW5kZXJlZFRleHRMZW5ndGgoKSBjb25zdDsKIAotICAgIHZpcnR1
YWwgaW50IHByZXZpb3VzT2Zmc2V0KGludCBjdXJyZW50KSBjb25zdCBPVkVSUklERSBGSU5BTDsK
LSAgICB2aXJ0dWFsIGludCBwcmV2aW91c09mZnNldEZvckJhY2t3YXJkRGVsZXRpb24oaW50IGN1
cnJlbnQpIGNvbnN0IE9WRVJSSURFIEZJTkFMOwotICAgIHZpcnR1YWwgaW50IG5leHRPZmZzZXQo
aW50IGN1cnJlbnQpIGNvbnN0IE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgaW50IHByZXZp
b3VzT2Zmc2V0KGludCBjdXJyZW50KSBjb25zdDsKKyAgICB2aXJ0dWFsIGludCBwcmV2aW91c09m
ZnNldEZvckJhY2t3YXJkRGVsZXRpb24oaW50IGN1cnJlbnQpIGNvbnN0OworICAgIHZpcnR1YWwg
aW50IG5leHRPZmZzZXQoaW50IGN1cnJlbnQpIGNvbnN0OwogCiAgICAgYm9vbCBjb250YWluc1Jl
dmVyc2VkVGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGFpbnNSZXZlcnNlZFRleHQ7IH0KIApA
QCAtMTQxLDcgKzE0MSw3IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZVBy
ZWZlcnJlZExvZ2ljYWxXaWR0aHMoZmxvYXQgbGVhZFdpZHRoKTsKICAgICB2aXJ0dWFsIHZvaWQg
d2lsbEJlRGVzdHJveWVkKCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc3R5bGVXaWxsQ2hhbmdlKFN0
eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqKSBPVkVSUklERSBGSU5BTCB7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgc3R5bGVXaWxsQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVu
ZGVyU3R5bGUqKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZm
ZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpOwogCiAgICAgdmlydHVhbCB2b2lk
IHNldFRleHRJbnRlcm5hbChQYXNzUmVmUHRyPFN0cmluZ0ltcGw+KTsKQEAgLTE1NywxMSArMTU3
LDExIEBAIHByaXZhdGU6CiAgICAgLy8gTWFrZSBsZW5ndGgoKSBwcml2YXRlIHNvIHRoYXQgY2Fs
bGVycyB0aGF0IGhhdmUgYSBSZW5kZXJUZXh0KgogICAgIC8vIHdpbGwgdXNlIHRoZSBtb3JlIGVm
ZmljaWVudCB0ZXh0TGVuZ3RoKCkgaW5zdGVhZCwgd2hpbGUKICAgICAvLyBjYWxsZXJzIHdpdGgg
YSBSZW5kZXJPYmplY3QqIGNhbiBjb250aW51ZSB0byB1c2UgbGVuZ3RoKCkuCi0gICAgdmlydHVh
bCB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdCBPVkVSUklERSBGSU5BTCB7IHJldHVybiB0ZXh0TGVu
Z3RoKCk7IH0KKyAgICB2aXJ0dWFsIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIHRl
eHRMZW5ndGgoKTsgfQogCi0gICAgdmlydHVhbCB2b2lkIHBhaW50KFBhaW50SW5mbyYsIGNvbnN0
IExheW91dFBvaW50JikgT1ZFUlJJREUgRklOQUwgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQot
ICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKSBPVkVSUklERSBGSU5BTCB7IEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOyB9Ci0gICAgdmlydHVhbCBib29sIG5vZGVBdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1
ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYsIGNvbnN0IExheW91
dFBvaW50JiwgSGl0VGVzdEFjdGlvbikgT1ZFUlJJREUgRklOQUwgeyBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCB2b2lkIHBhaW50KFBhaW50SW5mbyYs
IGNvbnN0IExheW91dFBvaW50JikgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorICAgIHZpcnR1
YWwgdm9pZCBsYXlvdXQoKSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisgICAgdmlydHVhbCBi
b29sIG5vZGVBdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGNv
bnN0IEhpdFRlc3RMb2NhdGlvbiYsIGNvbnN0IExheW91dFBvaW50JiwgSGl0VGVzdEFjdGlvbikg
T1ZFUlJJREUgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICB2
b2lkIGRlbGV0ZVRleHRCb3hlcygpOwogICAgIGJvb2wgY29udGFpbnNPbmx5V2hpdGVzcGFjZSh1
bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCBsZW4pIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuaAppbmRleCA0YTlkMjY1ODA1NTU3ZDZlZDE5N2Q0YTc5
NDk3MGU3NGI2ZWUxNjFiLi4xZjY2MzBjZWVkNTU4NzI3NTBkYzAxN2E2NzUyYjcxNzQ5ZWVkMGNk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuaApAQCAt
NDcsNyArNDcsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgaW50IHNjcm9sbGJhclRoaWNrbmVzcygpIGNv
bnN0OwogICAgIHZvaWQgYWRqdXN0SW5uZXJUZXh0U3R5bGUoY29uc3QgUmVuZGVyU3R5bGUqIHN0
YXJ0U3R5bGUsIFJlbmRlclN0eWxlKiB0ZXh0QmxvY2tTdHlsZSkgY29uc3Q7CiAKLSAgICB2aXJ0
dWFsIHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHls
ZSogb2xkU3R5bGUpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzdHlsZURpZENoYW5nZShT
dHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSk7CiAKICAgICB2b2lk
IGhpdElubmVyVGV4dEVsZW1lbnQoSGl0VGVzdFJlc3VsdCYsIGNvbnN0IExheW91dFBvaW50JiBw
b2ludEluQ29udGFpbmVyLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQpOwog
CkBAIC02NywxMiArNjcsMTIgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0
KiBsYXlvdXRTcGVjaWFsRXhjbHVkZWRDaGlsZChib29sIHJlbGF5b3V0Q2hpbGRyZW4pOwogCiBw
cml2YXRlOgotICAgIHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IE9WRVJS
SURFIHsgcmV0dXJuICJSZW5kZXJUZXh0Q29udHJvbCI7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNU
ZXh0Q29udHJvbCgpIGNvbnN0IE9WRVJSSURFIEZJTkFMIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2
aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCB7IHJldHVybiAiUmVuZGVyVGV4
dENvbnRyb2wiOyB9CisgICAgdmlydHVhbCBib29sIGlzVGV4dENvbnRyb2woKSBjb25zdCB7IHJl
dHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lk
dGhzKExheW91dFVuaXQmIG1pbkxvZ2ljYWxXaWR0aCwgTGF5b3V0VW5pdCYgbWF4TG9naWNhbFdp
ZHRoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZVByZWZlcnJlZExv
Z2ljYWxXaWR0aHMoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlTGVmdG92ZXJB
bm9ueW1vdXNCbG9jayhSZW5kZXJCbG9jayopIHsgfQotICAgIHZpcnR1YWwgYm9vbCBhdm9pZHNG
bG9hdHMoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29s
IGF2b2lkc0Zsb2F0cygpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIGJvb2wg
Y2FuSGF2ZUdlbmVyYXRlZENoaWxkcmVuKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7
IH0KICAgICB2aXJ0dWFsIGJvb2wgY2FuQmVSZXBsYWNlZFdpdGhJbmxpbmVSdW5JbigpIGNvbnN0
IE9WRVJSSURFOwogICAgIApAQCAtMTAyLDcgKzEwMiw3IEBAIHZvaWQgdG9SZW5kZXJUZXh0Q29u
dHJvbChjb25zdCBSZW5kZXJUZXh0Q29udHJvbCopOwogLy8gV2UgY2FuJ3QgdXNlIFJlbmRlckZs
ZXhpYmxlQm94IGRpcmVjdGx5LCBiZWNhdXNlIGZsZXhib3hlcyBoYXZlIGEgZGlmZmVyZW50CiAv
LyBiYXNlbGluZSBkZWZpbml0aW9uLCBhbmQgdGhlbiBpbnB1dHMgb2YgZGlmZmVyZW50IHR5cGVz
IHdvdWxkbid0IGxpbmUgdXAKIC8vIGFueW1vcmUuCi1jbGFzcyBSZW5kZXJUZXh0Q29udHJvbElu
bmVyQ29udGFpbmVyIEZJTkFMIDogcHVibGljIFJlbmRlckZsZXhpYmxlQm94IHsKK2NsYXNzIFJl
bmRlclRleHRDb250cm9sSW5uZXJDb250YWluZXIgOiBwdWJsaWMgUmVuZGVyRmxleGlibGVCb3gg
ewogcHVibGljOgogICAgIGV4cGxpY2l0IFJlbmRlclRleHRDb250cm9sSW5uZXJDb250YWluZXIo
RWxlbWVudCogZWxlbWVudCkKICAgICAgICAgOiBSZW5kZXJGbGV4aWJsZUJveChlbGVtZW50KQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sTXVs
dGlMaW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xNdWx0
aUxpbmUuaAppbmRleCAxNDk4MjhjMzM1NzUyNTIxMTZiMjljZDkzZWY5MGYwYmUyMTEzMjdiLi41
OTJhMTM3ZDllZTVkMDA2ZmZiYjdlZmIwMTUwN2YwYzg1MDNjZTQ3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuaApAQCAt
MjYsNyArMjYsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFJlbmRlclRleHRD
b250cm9sTXVsdGlMaW5lIEZJTkFMIDogcHVibGljIFJlbmRlclRleHRDb250cm9sIHsKK2NsYXNz
IFJlbmRlclRleHRDb250cm9sTXVsdGlMaW5lIDogcHVibGljIFJlbmRlclRleHRDb250cm9sIHsK
IHB1YmxpYzoKICAgICBSZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZShFbGVtZW50Kik7CiAgICAg
dmlydHVhbCB+UmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaAppbmRleCA3
YmNlNjQ4NWVkYTkwMzhmOWZkNGRiNTUxMDdhMTZmOGIwYzEwNDY5Li4xNDhhY2ZlNGEyMzE3ZTI1
YmMwMDYzM2RjZDAzNjA4NTU5ZWQ1Zjc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oCkBAIC00OSwzNSArNDksMzUg
QEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVGcm9tRWxlbWVudCgpIE9WRVJS
SURFOwogCiBwcml2YXRlOgotICAgIHZpcnR1YWwgYm9vbCBoYXNDb250cm9sQ2xpcCgpIGNvbnN0
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBjb250cm9sQ2xpcFJlY3QoY29uc3Qg
TGF5b3V0UG9pbnQmKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNUZXh0Rmll
bGQoKSBjb25zdCBPVkVSUklERSBGSU5BTCB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBi
b29sIGhhc0NvbnRyb2xDbGlwKCkgY29uc3Q7CisgICAgdmlydHVhbCBMYXlvdXRSZWN0IGNvbnRy
b2xDbGlwUmVjdChjb25zdCBMYXlvdXRQb2ludCYpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBp
c1RleHRGaWVsZCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBw
YWludChQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgdm9pZCBsYXlvdXQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoUGFpbnRJ
bmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKTsKKyAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCk7CiAK
ICAgICB2aXJ0dWFsIGJvb2wgbm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmLCBIaXRU
ZXN0UmVzdWx0JiwgY29uc3QgSGl0VGVzdExvY2F0aW9uJiBsb2NhdGlvbkluQ29udGFpbmVyLCBj
b25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQsIEhpdFRlc3RBY3Rpb24pIE9WRVJS
SURFOwogCi0gICAgdmlydHVhbCB2b2lkIGF1dG9zY3JvbGwoY29uc3QgSW50UG9pbnQmKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIHZvaWQgYXV0b3Njcm9sbChjb25zdCBJbnRQb2ludCYpOwogCiAg
ICAgLy8gU3ViY2xhc3NlZCB0byBmb3J3YXJkIHRvIG91ciBpbm5lciBkaXYuCi0gICAgdmlydHVh
bCBpbnQgc2Nyb2xsTGVmdCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgaW50IHNjcm9s
bFRvcCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgaW50IHNjcm9sbFdpZHRoKCkgY29u
c3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBpbnQgc2Nyb2xsSGVpZ2h0KCkgY29uc3QgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCB2b2lkIHNldFNjcm9sbExlZnQoaW50KSBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsVG9wKGludCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29s
IHNjcm9sbChTY3JvbGxEaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5LCBmbG9hdCBtdWx0aXBs
aWVyID0gMSwgTm9kZSoqIHN0b3BOb2RlID0gMCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29s
IGxvZ2ljYWxTY3JvbGwoU2Nyb2xsTG9naWNhbERpcmVjdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHks
IGZsb2F0IG11bHRpcGxpZXIgPSAxLCBOb2RlKiogc3RvcE5vZGUgPSAwKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIGludCBzY3JvbGxMZWZ0KCkgY29uc3Q7CisgICAgdmlydHVhbCBpbnQgc2Nyb2xs
VG9wKCkgY29uc3Q7CisgICAgdmlydHVhbCBpbnQgc2Nyb2xsV2lkdGgoKSBjb25zdDsKKyAgICB2
aXJ0dWFsIGludCBzY3JvbGxIZWlnaHQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2Ny
b2xsTGVmdChpbnQpOworICAgIHZpcnR1YWwgdm9pZCBzZXRTY3JvbGxUb3AoaW50KTsKKyAgICB2
aXJ0dWFsIGJvb2wgc2Nyb2xsKFNjcm9sbERpcmVjdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHksIGZs
b2F0IG11bHRpcGxpZXIgPSAxLCBOb2RlKiogc3RvcE5vZGUgPSAwKTsKKyAgICB2aXJ0dWFsIGJv
b2wgbG9naWNhbFNjcm9sbChTY3JvbGxMb2dpY2FsRGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0
eSwgZmxvYXQgbXVsdGlwbGllciA9IDEsIE5vZGUqKiBzdG9wTm9kZSA9IDApOwogCiAgICAgaW50
IHRleHRCbG9ja1dpZHRoKCkgY29uc3Q7Ci0gICAgdmlydHVhbCBmbG9hdCBnZXRBdmdDaGFyV2lk
dGgoQXRvbWljU3RyaW5nIGZhbWlseSkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBMYXlvdXRVbml0
IHByZWZlcnJlZENvbnRlbnRMb2dpY2FsV2lkdGgoZmxvYXQgY2hhcldpZHRoKSBjb25zdCBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIGZsb2F0IGdldEF2Z0NoYXJXaWR0aChBdG9taWNTdHJpbmcgZmFt
aWx5KTsKKyAgICB2aXJ0dWFsIExheW91dFVuaXQgcHJlZmVycmVkQ29udGVudExvZ2ljYWxXaWR0
aChmbG9hdCBjaGFyV2lkdGgpIGNvbnN0OwogICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBjb21wdXRl
Q29udHJvbExvZ2ljYWxIZWlnaHQoTGF5b3V0VW5pdCBsaW5lSGVpZ2h0LCBMYXlvdXRVbml0IG5v
bkNvbnRlbnRIZWlnaHQpIGNvbnN0IE9WRVJSSURFOwogICAgIAotICAgIHZpcnR1YWwgdm9pZCBz
dHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHls
ZSkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVy
ZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKTsKIAotICAgIHZpcnR1YWwgUmVuZGVy
U3R5bGUqIHRleHRCYXNlU3R5bGUoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFJlbmRl
clN0eWxlKiB0ZXh0QmFzZVN0eWxlKCkgY29uc3Q7CiAKICAgICBib29sIHRleHRTaG91bGRCZVRy
dW5jYXRlZCgpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGV4dEZyYWdtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4
dEZyYWdtZW50LmgKaW5kZXggOTQwZjIyZWVhYTYzYWIxZjBkODcxNmFhOGZhYWUxYWRhNWE3NTFh
NS4uM2Y4NjM1N2ZmYjEzM2ZlZGYxOTQyNjE3M2E2ZjhjNWM4OWY5OWYzOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRGcmFnbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0RnJhZ21lbnQuaApAQCAtMzEsNyArMzEsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAvLyBmaXJzdCBsZXR0ZXIgYW5kIHRoYXQgbXVzdCB0aGVy
ZWZvcmUgaGF2ZSBkaWZmZXJlbnQgc3R5bGVzIChhbmQgcG9zaXRpb25zIGluIHRoZSByZW5kZXIg
dHJlZSkuCiAvLyBXZSBjYWNoZSBvZmZzZXRzIHNvIHRoYXQgdGV4dCB0cmFuc2Zvcm1hdGlvbnMg
Y2FuIGJlIGFwcGxpZWQgaW4gc3VjaCBhIHdheSB0aGF0IHdlIGNhbiByZWNvdmVyCiAvLyB0aGUg
b3JpZ2luYWwgdW5hbHRlcmVkIHN0cmluZyBmcm9tIG91ciBjb3JyZXNwb25kaW5nIERPTSBub2Rl
LgotY2xhc3MgUmVuZGVyVGV4dEZyYWdtZW50IEZJTkFMIDogcHVibGljIFJlbmRlclRleHQgewor
Y2xhc3MgUmVuZGVyVGV4dEZyYWdtZW50IDogcHVibGljIFJlbmRlclRleHQgewogcHVibGljOgog
ICAgIFJlbmRlclRleHRGcmFnbWVudChOb2RlKiwgU3RyaW5nSW1wbCosIGludCBzdGFydE9mZnNl
dCwgaW50IGxlbmd0aCk7CiAgICAgUmVuZGVyVGV4dEZyYWdtZW50KE5vZGUqLCBTdHJpbmdJbXBs
Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dFRyYWNr
Q3VlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dFRyYWNrQ3VlLmgKaW5k
ZXggMWZlMDc3OThiY2FhMjM0YzRhMTc5ODliMGFlMGE4NjBiY2ZiZGI3OS4uOTgwODRhYjM4ZGQ1
Mzk1ODVlNmE5MTM5NzMwNzMxMWY2ODU2MDhmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRleHRUcmFja0N1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUZXh0VHJhY2tDdWUuaApAQCAtMzcsNyArMzcsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIFRleHRUcmFja0N1ZUJveDsKIAotY2xhc3MgUmVuZGVyVGV4dFRyYWNr
Q3VlIEZJTkFMIDogcHVibGljIFJlbmRlckJsb2NrIHsKK2NsYXNzIFJlbmRlclRleHRUcmFja0N1
ZSA6IHB1YmxpYyBSZW5kZXJCbG9jayB7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgUmVuZGVyVGV4
dFRyYWNrQ3VlKFRleHRUcmFja0N1ZUJveCopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVmlkZW8uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJWaWRlby5oCmluZGV4IGYyMTcyMDgwYmU3ZDdiOWU5MDA0NzhlMDNjMjBjMmJjZTJlYjczM2Iu
LjRhMjU2ZDE4ODk1Y2NjNGQ3YmU1MjhiYTI3ZWE0M2UwYzExOTRiODMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWRlby5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJWaWRlby5oCkBAIC0zNSw3ICszNSw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIGNsYXNzIEhUTUxNZWRpYUVsZW1lbnQ7CiBjbGFzcyBIVE1MVmlkZW9FbGVtZW50Owog
Ci1jbGFzcyBSZW5kZXJWaWRlbyBGSU5BTCA6IHB1YmxpYyBSZW5kZXJNZWRpYSB7CitjbGFzcyBS
ZW5kZXJWaWRlbyA6IHB1YmxpYyBSZW5kZXJNZWRpYSB7CiBwdWJsaWM6CiAgICAgUmVuZGVyVmlk
ZW8oSFRNTFZpZGVvRWxlbWVudCopOwogICAgIHZpcnR1YWwgflJlbmRlclZpZGVvKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaAppbmRleCA2OTI2OGNhNGM0YTM4ZGUzMWUxZTAy
ZTk3NzdhYzc0YzM2ZmVhMTE5Li4xNDI5NWY0YWEyNzQxYTUyNzAwY2NlYzc4YjRhODZjMzI2YTkz
MjA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmgKQEAgLTQyLDcgKzQyLDcg
QEAgY2xhc3MgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOwogY2xhc3MgQ3VzdG9tRmlsdGVyR2xvYmFs
Q29udGV4dDsKICNlbmRpZgogCi1jbGFzcyBSZW5kZXJWaWV3IEZJTkFMIDogcHVibGljIFJlbmRl
ckJsb2NrIHsKK2NsYXNzIFJlbmRlclZpZXcgOiBwdWJsaWMgUmVuZGVyQmxvY2sgewogcHVibGlj
OgogICAgIGV4cGxpY2l0IFJlbmRlclZpZXcoRG9jdW1lbnQqKTsKICAgICB2aXJ0dWFsIH5SZW5k
ZXJWaWV3KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lk
Z2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmgKaW5kZXggMTZh
ZmEwNzYwZDkyMzQ5YzUxMDZkMjBhNDllMWY2ZGU1NjhkYTMzMS4uZWY4ZjNiNzQxNzlkOGM1ODA0
ZTkwY2U3ODdjNTZmZDQ1OTg2YWY1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlcldpZGdldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJX
aWRnZXQuaApAQCAtNzksMjEgKzc5LDIxIEBAIHByb3RlY3RlZDoKIAogICAgIHZvaWQgY2xlYXJX
aWRnZXQoKTsKIAotICAgIHZpcnR1YWwgdm9pZCBzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVu
Y2UsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSkgT1ZFUlJJREUgRklOQUw7Ci0gICAgdmly
dHVhbCB2b2lkIGxheW91dCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBwYWludChQYWlu
dEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgQ3Vyc29y
RGlyZWN0aXZlIGdldEN1cnNvcihjb25zdCBMYXlvdXRQb2ludCYsIEN1cnNvciYpIGNvbnN0IE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2Us
IGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSk7CisgICAgdmlydHVhbCB2b2lkIGxheW91dCgp
OworICAgIHZpcnR1YWwgdm9pZCBwYWludChQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYp
OworICAgIHZpcnR1YWwgQ3Vyc29yRGlyZWN0aXZlIGdldEN1cnNvcihjb25zdCBMYXlvdXRQb2lu
dCYsIEN1cnNvciYpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBub2RlQXRQb2ludChjb25zdCBI
aXRUZXN0UmVxdWVzdCYsIEhpdFRlc3RSZXN1bHQmLCBjb25zdCBIaXRUZXN0TG9jYXRpb24mIGxv
Y2F0aW9uSW5Db250YWluZXIsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCwg
SGl0VGVzdEFjdGlvbikgT1ZFUlJJREU7CiAKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50
cyhQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpOwogCiBwcml2YXRlOgotICAgIHZpcnR1
YWwgYm9vbCBpc1dpZGdldCgpIGNvbnN0IE9WRVJSSURFIEZJTkFMIHsgcmV0dXJuIHRydWU7IH0K
KyAgICB2aXJ0dWFsIGJvb2wgaXNXaWRnZXQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKLSAg
ICB2aXJ0dWFsIHZvaWQgd2lsbEJlRGVzdHJveWVkKCkgT1ZFUlJJREUgRklOQUw7Ci0gICAgdmly
dHVhbCB2b2lkIGRlc3Ryb3koKSBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0
U2VsZWN0aW9uU3RhdGUoU2VsZWN0aW9uU3RhdGUpIE9WRVJSSURFIEZJTkFMOwotICAgIHZpcnR1
YWwgdm9pZCBzZXRPdmVybGFwVGVzdFJlc3VsdChib29sKSBPVkVSUklERSBGSU5BTDsKKyAgICB2
aXJ0dWFsIHZvaWQgd2lsbEJlRGVzdHJveWVkKCk7CisgICAgdmlydHVhbCB2b2lkIGRlc3Ryb3ko
KTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2VsZWN0aW9uU3RhdGUoU2VsZWN0aW9uU3RhdGUpOwor
ICAgIHZpcnR1YWwgdm9pZCBzZXRPdmVybGFwVGVzdFJlc3VsdChib29sKTsKIAogICAgIGJvb2wg
c2V0V2lkZ2V0R2VvbWV0cnkoY29uc3QgTGF5b3V0UmVjdCYpOwogICAgIGJvb2wgdXBkYXRlV2lk
Z2V0R2VvbWV0cnkoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJXb3JkQnJlYWsuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXb3JkQnJlYWsu
aAppbmRleCBlZWEzMTkzYTBiZDc4MWM2NmRiYzYyNDkxOGQ4YmE5N2NiOGQxNTgyLi5kYjMxZWVj
MTZlZmYyNTc2ODI3MjFlOWQ3MjQ1NmQ0Yzc5ZTZmYTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyV29yZEJyZWFrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlcldvcmRCcmVhay5oCkBAIC0zMyw3ICszMyw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogY2xhc3MgSFRNTEVsZW1lbnQ7CiAKLWNsYXNzIFJlbmRlcldvcmRCcmVhayBGSU5B
TCA6IHB1YmxpYyBSZW5kZXJUZXh0IHsKK2NsYXNzIFJlbmRlcldvcmRCcmVhayA6IHB1YmxpYyBS
ZW5kZXJUZXh0IHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBSZW5kZXJXb3JkQnJlYWsoSFRNTEVs
ZW1lbnQqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jvb3RJbmxp
bmVCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Sb290SW5saW5lQm94LmgKaW5kZXgg
ZjVlOGUwN2ZiMjQzNDIzYTA5M2I2ZTAyOTQ4MzUxZjVjNTgwODI0YS4uMDViMTczZjU2YWNjMTk2
OGFkNTkyOWIzZDJhZTkzZDI3ODE2OWU5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1Jvb3RJbmxpbmVCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUm9v
dElubGluZUJveC5oCkBAIC0zOCwxNiArMzgsMTYgQEAgY2xhc3MgUm9vdElubGluZUJveCA6IHB1
YmxpYyBJbmxpbmVGbG93Qm94IHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBSb290SW5saW5lQm94
KFJlbmRlckJsb2NrKik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveShSZW5kZXJBcmVuYSop
IE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgdm9pZCBkZXN0cm95KFJlbmRlckFyZW5hKikg
RklOQUw7CiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNSb290SW5saW5lQm94KCkgY29uc3QgT1ZFUlJJ
REUgRklOQUwgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1Jvb3RJbmxpbmVC
b3goKSBjb25zdCBGSU5BTCB7IHJldHVybiB0cnVlOyB9CiAKICAgICB2b2lkIGRldGFjaEVsbGlw
c2lzQm94KFJlbmRlckFyZW5hKik7CiAKICAgICBSb290SW5saW5lQm94KiBuZXh0Um9vdEJveCgp
IGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFJvb3RJbmxpbmVCb3gqPihtX25leHRMaW5lQm94
KTsgfQogICAgIFJvb3RJbmxpbmVCb3gqIHByZXZSb290Qm94KCkgY29uc3QgeyByZXR1cm4gc3Rh
dGljX2Nhc3Q8Um9vdElubGluZUJveCo+KG1fcHJldkxpbmVCb3gpOyB9CiAKLSAgICB2aXJ0dWFs
IHZvaWQgYWRqdXN0UG9zaXRpb24oZmxvYXQgZHgsIGZsb2F0IGR5KSBPVkVSUklERSBGSU5BTDsK
KyAgICB2aXJ0dWFsIHZvaWQgYWRqdXN0UG9zaXRpb24oZmxvYXQgZHgsIGZsb2F0IGR5KSBGSU5B
TDsKIAogICAgIExheW91dFVuaXQgbGluZVRvcCgpIGNvbnN0IHsgcmV0dXJuIG1fbGluZVRvcDsg
fQogICAgIExheW91dFVuaXQgbGluZUJvdHRvbSgpIGNvbnN0IHsgcmV0dXJuIG1fbGluZUJvdHRv
bTsgfQpAQCAtODUsNyArODUsNyBAQCBwdWJsaWM6CiAgICAgICAgIG1fbGluZUJvdHRvbVdpdGhM
ZWFkaW5nID0gYm90dG9tV2l0aExlYWRpbmc7CiAgICAgfQogCi0gICAgdmlydHVhbCBSZW5kZXJM
aW5lQm94TGlzdCogcmVuZGVyZXJMaW5lQm94ZXMoKSBjb25zdCBPVkVSUklERSBGSU5BTDsKKyAg
ICB2aXJ0dWFsIFJlbmRlckxpbmVCb3hMaXN0KiByZW5kZXJlckxpbmVCb3hlcygpIGNvbnN0IEZJ
TkFMOwogCiAgICAgUmVuZGVyT2JqZWN0KiBsaW5lQnJlYWtPYmooKSBjb25zdCB7IHJldHVybiBt
X2xpbmVCcmVha09iajsgfQogICAgIEJpZGlTdGF0dXMgbGluZUJyZWFrQmlkaVN0YXR1cygpIGNv
bnN0OwpAQCAtMTE0LDggKzExNCw4IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNIeXBoZW5hdGVk
KCkgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIGludCBiYXNlbGluZVBvc2l0aW9uKEZvbnRCYXNlbGlu
ZSBiYXNlbGluZVR5cGUpIGNvbnN0IE9WRVJSSURFIEZJTkFMOwotICAgIHZpcnR1YWwgTGF5b3V0
VW5pdCBsaW5lSGVpZ2h0KCkgY29uc3QgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCBpbnQg
YmFzZWxpbmVQb3NpdGlvbihGb250QmFzZWxpbmUgYmFzZWxpbmVUeXBlKSBjb25zdCBGSU5BTDsK
KyAgICB2aXJ0dWFsIExheW91dFVuaXQgbGluZUhlaWdodCgpIGNvbnN0IEZJTkFMOwogCiAjaWYg
UExBVEZPUk0oTUFDKQogICAgIHZvaWQgYWRkSGlnaGxpZ2h0T3ZlcmZsb3coKTsKQEAgLTEyOCw3
ICsxMjgsNyBAQCBwdWJsaWM6CiAgICAgdXNpbmcgSW5saW5lQm94OjpoYXNTZWxlY3RlZENoaWxk
cmVuOwogICAgIHVzaW5nIElubGluZUJveDo6c2V0SGFzU2VsZWN0ZWRDaGlsZHJlbjsKIAotICAg
IHZpcnR1YWwgUmVuZGVyT2JqZWN0OjpTZWxlY3Rpb25TdGF0ZSBzZWxlY3Rpb25TdGF0ZSgpIE9W
RVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0OjpTZWxlY3Rpb25TdGF0ZSBz
ZWxlY3Rpb25TdGF0ZSgpIEZJTkFMOwogICAgIElubGluZUJveCogZmlyc3RTZWxlY3RlZEJveCgp
OwogICAgIElubGluZUJveCogbGFzdFNlbGVjdGVkQm94KCk7CiAKQEAgLTE1MSw5ICsxNTEsOSBA
QCBwdWJsaWM6CiAKICAgICBWZWN0b3I8UmVuZGVyQm94Kj4qIGZsb2F0c1B0cigpIHsgQVNTRVJU
KCFpc0RpcnR5KCkpOyByZXR1cm4gbV9mbG9hdHMuZ2V0KCk7IH0KIAotICAgIHZpcnR1YWwgdm9p
ZCBleHRyYWN0TGluZUJveEZyb21SZW5kZXJPYmplY3QoKSBPVkVSUklERSBGSU5BTDsKLSAgICB2
aXJ0dWFsIHZvaWQgYXR0YWNoTGluZUJveFRvUmVuZGVyT2JqZWN0KCkgT1ZFUlJJREUgRklOQUw7
Ci0gICAgdmlydHVhbCB2b2lkIHJlbW92ZUxpbmVCb3hGcm9tUmVuZGVyT2JqZWN0KCkgT1ZFUlJJ
REUgRklOQUw7CisgICAgdmlydHVhbCB2b2lkIGV4dHJhY3RMaW5lQm94RnJvbVJlbmRlck9iamVj
dCgpIEZJTkFMOworICAgIHZpcnR1YWwgdm9pZCBhdHRhY2hMaW5lQm94VG9SZW5kZXJPYmplY3Qo
KSBGSU5BTDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlTGluZUJveEZyb21SZW5kZXJPYmplY3Qo
KSBGSU5BTDsKICAgICAKICAgICBGb250QmFzZWxpbmUgYmFzZWxpbmVUeXBlKCkgY29uc3QgeyBy
ZXR1cm4gc3RhdGljX2Nhc3Q8Rm9udEJhc2VsaW5lPihtX2Jhc2VsaW5lVHlwZSk7IH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxCbG9j
ay5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxCbG9jay5o
CmluZGV4IDNlZTgyOGRhMDNhYzEyNWRiMTNiOWE0MDdiOGYyZDRkZjdiNTk0N2QuLmNkOTNmOTli
ODM5MzNlYjE1YTUyYWI2NGE3MzA5NDAyZTdkMmVhOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MQmxvY2suaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEJsb2NrLmgKQEAgLTExNyw3ICsxMTcs
NyBAQCBpbmxpbmUgY29uc3QgUmVuZGVyTWF0aE1MQmxvY2sqIHRvUmVuZGVyTWF0aE1MQmxvY2so
Y29uc3QgUmVuZGVyT2JqZWN0KiBvYmplY3QpCiAvLyBUaGlzIHdpbGwgY2F0Y2ggYW55b25lIGRv
aW5nIGFuIHVubmVjZXNzYXJ5IGNhc3QuCiB2b2lkIHRvUmVuZGVyTWF0aE1MQmxvY2soY29uc3Qg
UmVuZGVyTWF0aE1MQmxvY2sqKTsKIAotY2xhc3MgUmVuZGVyTWF0aE1MVGFibGUgRklOQUwgOiBw
dWJsaWMgUmVuZGVyVGFibGUgeworY2xhc3MgUmVuZGVyTWF0aE1MVGFibGUgOiBwdWJsaWMgUmVu
ZGVyVGFibGUgewogcHVibGljOgogICAgIGV4cGxpY2l0IFJlbmRlck1hdGhNTFRhYmxlKEVsZW1l
bnQqIGVsZW1lbnQpIDogUmVuZGVyVGFibGUoZWxlbWVudCkgeyB9CiAgICAgCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0Jsb2NrLmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0Jsb2NrLmgKaW5kZXggYmFmM2NhODg4NTE4
NzQ3ZjUyOGZhMTM0NDU2ZTI3ZGE5MWJiNzhlNi4uMjIyZDVlZTIwMzUyMGE1MGZmN2M5MjQzNDli
NDIxYWEwMzc5OWI2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdCbG9jay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHQmxvY2suaApAQCAtMzIsMTkgKzMyLDE5IEBAIGNsYXNzIFJlbmRlclNWR0Jsb2NrIDogcHVi
bGljIFJlbmRlckJsb2NrIHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBSZW5kZXJTVkdCbG9jayhT
VkdFbGVtZW50Kik7CiAKLSAgICB2aXJ0dWFsIExheW91dFJlY3QgdmlzdWFsT3ZlcmZsb3dSZWN0
KCkgY29uc3QgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCBMYXlvdXRSZWN0IHZpc3VhbE92
ZXJmbG93UmVjdCgpIGNvbnN0OwogCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIHdpbGxC
ZURlc3Ryb3llZCgpIE9WRVJSSURFOwogCiBwcml2YXRlOgotICAgIHZpcnR1YWwgdm9pZCBzZXRT
dHlsZShQYXNzUmVmUHRyPFJlbmRlclN0eWxlPikgT1ZFUlJJREUgRklOQUw7Ci0gICAgdmlydHVh
bCB2b2lkIHVwZGF0ZUZyb21TdHlsZSgpIE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgdm9p
ZCBzZXRTdHlsZShQYXNzUmVmUHRyPFJlbmRlclN0eWxlPik7CisgICAgdmlydHVhbCB2b2lkIHVw
ZGF0ZUZyb21TdHlsZSgpIE9WRVJSSURFOwogCi0gICAgdmlydHVhbCB2b2lkIGFic29sdXRlUmVj
dHMoVmVjdG9yPEludFJlY3Q+JiwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0
KSBjb25zdCBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIHZvaWQgYWJzb2x1dGVSZWN0cyhW
ZWN0b3I8SW50UmVjdD4mLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQpIGNv
bnN0OwogCi0gICAgdmlydHVhbCB2b2lkIHN0eWxlV2lsbENoYW5nZShTdHlsZURpZmZlcmVuY2Us
IGNvbnN0IFJlbmRlclN0eWxlKiBuZXdTdHlsZSkgT1ZFUlJJREUgRklOQUw7Ci0gICAgdmlydHVh
bCB2b2lkIHN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUq
IG9sZFN0eWxlKSBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIHZvaWQgc3R5bGVXaWxsQ2hh
bmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG5ld1N0eWxlKTsKKyAgICB2
aXJ0dWFsIHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJT
dHlsZSogb2xkU3R5bGUpOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdDb250YWluZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHQ29udGFpbmVyLmgKaW5kZXggNDc0ZGRiNTE0MDhkODNkNTIzNjU2ZWM1
OTc5YTQ3OWExNGFkOGIwYS4uNzBlMWVjOGQ1Yjk1MWU2NGM5YjJhYjVhOTRlOGZiOTBhNTQ0ODdm
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdDb250
YWluZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0NvbnRh
aW5lci5oCkBAIC00MywyOSArNDMsMjkgQEAgcHVibGljOgogICAgIFJlbmRlck9iamVjdENoaWxk
TGlzdCogY2hpbGRyZW4oKSB7IHJldHVybiAmbV9jaGlsZHJlbjsgfQogCiAgICAgdmlydHVhbCB2
b2lkIHBhaW50KFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50Jik7Ci0gICAgdmlydHVhbCB2
b2lkIHNldE5lZWRzQm91bmRhcmllc1VwZGF0ZSgpIE9WRVJSSURFIEZJTkFMIHsgbV9uZWVkc0Jv
dW5kYXJpZXNVcGRhdGUgPSB0cnVlOyB9Ci0gICAgdmlydHVhbCBib29sIG5lZWRzQm91bmRhcmll
c1VwZGF0ZSgpIE9WRVJSSURFIEZJTkFMIHsgcmV0dXJuIG1fbmVlZHNCb3VuZGFyaWVzVXBkYXRl
OyB9CisgICAgdmlydHVhbCB2b2lkIHNldE5lZWRzQm91bmRhcmllc1VwZGF0ZSgpIHsgbV9uZWVk
c0JvdW5kYXJpZXNVcGRhdGUgPSB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIG5lZWRzQm91bmRh
cmllc1VwZGF0ZSgpIE9WRVJSSURFIHsgcmV0dXJuIG1fbmVlZHNCb3VuZGFyaWVzVXBkYXRlOyB9
CiAgICAgdmlydHVhbCBib29sIGRpZFRyYW5zZm9ybVRvUm9vdFVwZGF0ZSgpIHsgcmV0dXJuIGZh
bHNlOyB9CiAgICAgYm9vbCBpc09iamVjdEJvdW5kaW5nQm94VmFsaWQoKSBjb25zdCB7IHJldHVy
biBtX29iamVjdEJvdW5kaW5nQm94VmFsaWQ7IH0KIAogcHJvdGVjdGVkOgotICAgIHZpcnR1YWwg
UmVuZGVyT2JqZWN0Q2hpbGRMaXN0KiB2aXJ0dWFsQ2hpbGRyZW4oKSBPVkVSUklERSBGSU5BTCB7
IHJldHVybiBjaGlsZHJlbigpOyB9Ci0gICAgdmlydHVhbCBjb25zdCBSZW5kZXJPYmplY3RDaGls
ZExpc3QqIHZpcnR1YWxDaGlsZHJlbigpIGNvbnN0IE9WRVJSSURFIEZJTkFMIHsgcmV0dXJuIGNo
aWxkcmVuKCk7IH0KKyAgICB2aXJ0dWFsIFJlbmRlck9iamVjdENoaWxkTGlzdCogdmlydHVhbENo
aWxkcmVuKCkgeyByZXR1cm4gY2hpbGRyZW4oKTsgfQorICAgIHZpcnR1YWwgY29uc3QgUmVuZGVy
T2JqZWN0Q2hpbGRMaXN0KiB2aXJ0dWFsQ2hpbGRyZW4oKSBjb25zdCB7IHJldHVybiBjaGlsZHJl
bigpOyB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNTVkdDb250YWluZXIoKSBjb25zdCBPVkVSUklE
RSBGSU5BTCB7IHJldHVybiB0cnVlOyB9Ci0gICAgdmlydHVhbCBjb25zdCBjaGFyKiByZW5kZXJO
YW1lKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gIlJlbmRlclNWR0NvbnRhaW5lciI7IH0KKyAg
ICB2aXJ0dWFsIGJvb2wgaXNTVkdDb250YWluZXIoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Cisg
ICAgdmlydHVhbCBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3QgeyByZXR1cm4gIlJlbmRl
clNWR0NvbnRhaW5lciI7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKSBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgYWRkQ2hpbGQo
UmVuZGVyT2JqZWN0KiBjaGlsZCwgUmVuZGVyT2JqZWN0KiBiZWZvcmVDaGlsZCA9IDApIE9WRVJS
SURFIEZJTkFMOwotICAgIHZpcnR1YWwgdm9pZCByZW1vdmVDaGlsZChSZW5kZXJPYmplY3QqKSBP
VkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIHZvaWQgYWRkRm9jdXNSaW5nUmVjdHMoVmVjdG9y
PEludFJlY3Q+JiwgY29uc3QgTGF5b3V0UG9pbnQmIGFkZGl0aW9uYWxPZmZzZXQsIGNvbnN0IFJl
bmRlckxheWVyTW9kZWxPYmplY3QqIHBhaW50Q29udGFpbmVyID0gMCkgT1ZFUlJJREUgRklOQUw7
CisgICAgdmlydHVhbCB2b2lkIGFkZENoaWxkKFJlbmRlck9iamVjdCogY2hpbGQsIFJlbmRlck9i
amVjdCogYmVmb3JlQ2hpbGQgPSAwKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3Zl
Q2hpbGQoUmVuZGVyT2JqZWN0KikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGFkZEZvY3Vz
UmluZ1JlY3RzKFZlY3RvcjxJbnRSZWN0PiYsIGNvbnN0IExheW91dFBvaW50JiBhZGRpdGlvbmFs
T2Zmc2V0LCBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBwYWludENvbnRhaW5lciA9IDAp
IE9WRVJSSURFOwogCi0gICAgdmlydHVhbCBGbG9hdFJlY3Qgb2JqZWN0Qm91bmRpbmdCb3goKSBj
b25zdCBPVkVSUklERSBGSU5BTCB7IHJldHVybiBtX29iamVjdEJvdW5kaW5nQm94OyB9Ci0gICAg
dmlydHVhbCBGbG9hdFJlY3Qgc3Ryb2tlQm91bmRpbmdCb3goKSBjb25zdCBPVkVSUklERSBGSU5B
TCB7IHJldHVybiBtX3N0cm9rZUJvdW5kaW5nQm94OyB9Ci0gICAgdmlydHVhbCBGbG9hdFJlY3Qg
cmVwYWludFJlY3RJbkxvY2FsQ29vcmRpbmF0ZXMoKSBjb25zdCBPVkVSUklERSBGSU5BTCB7IHJl
dHVybiBtX3JlcGFpbnRCb3VuZGluZ0JveDsgfQorICAgIHZpcnR1YWwgRmxvYXRSZWN0IG9iamVj
dEJvdW5kaW5nQm94KCkgY29uc3QgeyByZXR1cm4gbV9vYmplY3RCb3VuZGluZ0JveDsgfQorICAg
IHZpcnR1YWwgRmxvYXRSZWN0IHN0cm9rZUJvdW5kaW5nQm94KCkgY29uc3QgeyByZXR1cm4gbV9z
dHJva2VCb3VuZGluZ0JveDsgfQorICAgIHZpcnR1YWwgRmxvYXRSZWN0IHJlcGFpbnRSZWN0SW5M
b2NhbENvb3JkaW5hdGVzKCkgY29uc3QgeyByZXR1cm4gbV9yZXBhaW50Qm91bmRpbmdCb3g7IH0K
IAotICAgIHZpcnR1YWwgYm9vbCBub2RlQXRGbG9hdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0
JiwgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50SW5QYXJlbnQsIEhpdFRl
c3RBY3Rpb24pIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBub2RlQXRGbG9hdFBvaW50KGNv
bnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IEZsb2F0UG9pbnQmIHBv
aW50SW5QYXJlbnQsIEhpdFRlc3RBY3Rpb24pOwogCiAgICAgLy8gQWxsb3cgUmVuZGVyU1ZHVHJh
bnNmb3JtYWJsZUNvbnRhaW5lciB0byBob29rIGluIGF0IHRoZSByaWdodCB0aW1lIGluIGxheW91
dCgpCiAgICAgdmlydHVhbCBib29sIGNhbGN1bGF0ZUxvY2FsVHJhbnNmb3JtKCkgeyByZXR1cm4g
ZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHRWxsaXBzZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdFbGxp
cHNlLmgKaW5kZXggMzMyMTNkYWZhYmE1Y2ViODY1MGVmNWMxNzhkMDcyM2IwMzA1YWFmMi4uZjUx
MjlkZjkwOGRhYzQ0MTNkNjlmMmRhODE4ZmY5N2ZhNzA1ZTI1YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdFbGxpcHNlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdFbGxpcHNlLmgKQEAgLTMzLDcgKzMzLDcgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBSZW5kZXJTVkdFbGxpcHNlIEZJTkFMIDog
cHVibGljIFJlbmRlclNWR1NoYXBlIHsKK2NsYXNzIFJlbmRlclNWR0VsbGlwc2UgOiBwdWJsaWMg
UmVuZGVyU1ZHU2hhcGUgewogcHVibGljOgogICAgIGV4cGxpY2l0IFJlbmRlclNWR0VsbGlwc2Uo
U1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQqKTsKICAgICB2aXJ0dWFsIH5SZW5kZXJTVkdF
bGxpcHNlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR0ZvcmVpZ25PYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHRm9yZWlnbk9iamVjdC5oCmluZGV4IDZlZDk0Mzg5Y2Y4MDk4OTRmOGM5OTEyMzZiMDY0Nzdh
MWMyOTExMDcuLjAyYzI5Y2MwNThkYTBlMTRkOGM2NjdmNzE3OTc0MzljMzRiZmUyZDMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9yZWlnbk9iamVj
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9yZWlnbk9i
amVjdC5oCkBAIC0zMSw3ICszMSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU1ZH
Rm9yZWlnbk9iamVjdEVsZW1lbnQ7CiAKLWNsYXNzIFJlbmRlclNWR0ZvcmVpZ25PYmplY3QgRklO
QUwgOiBwdWJsaWMgUmVuZGVyU1ZHQmxvY2sgeworY2xhc3MgUmVuZGVyU1ZHRm9yZWlnbk9iamVj
dCA6IHB1YmxpYyBSZW5kZXJTVkdCbG9jayB7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgUmVuZGVy
U1ZHRm9yZWlnbk9iamVjdChTVkdGb3JlaWduT2JqZWN0RWxlbWVudCopOwogICAgIHZpcnR1YWwg
flJlbmRlclNWR0ZvcmVpZ25PYmplY3QoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHR3JhZGllbnRTdG9wLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR0dyYWRpZW50U3RvcC5oCmluZGV4IDdlZDBjYTM5OWQyNzA5OGY5
ODU4Mzk1YmZmYTNmMWUxYjMwNzIzOGUuLjJlZWViZWRmOTJlNWUyZTU2M2EwZDE5ZmYyNzQ0ZTE2
YzRkZWNkYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHR3JhZGllbnRTdG9wLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdHcmFkaWVudFN0b3AuaApAQCAtMzAsNyArMzAsNyBAQCBjbGFzcyBTVkdHcmFkaWVudEVs
ZW1lbnQ7CiBjbGFzcyBTVkdTdG9wRWxlbWVudDsKIAogLy8gVGhpcyBjbGFzcyBleGlzdHMgbW9z
dGx5IHNvIHdlIGNhbiBoZWFyIGFib3V0IGdyYWRpZW50IHN0b3Agc3R5bGUgY2hhbmdlcwotY2xh
c3MgUmVuZGVyU1ZHR3JhZGllbnRTdG9wIEZJTkFMIDogcHVibGljIFJlbmRlck9iamVjdCB7Citj
bGFzcyBSZW5kZXJTVkdHcmFkaWVudFN0b3AgOiBwdWJsaWMgUmVuZGVyT2JqZWN0IHsKIHB1Ymxp
YzoKICAgICBSZW5kZXJTVkdHcmFkaWVudFN0b3AoU1ZHU3RvcEVsZW1lbnQqKTsKICAgICB2aXJ0
dWFsIH5SZW5kZXJTVkdHcmFkaWVudFN0b3AoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0hpZGRlbkNvbnRhaW5lci5oCmluZGV4IDI5OGNkM2M3
OTc4ZDlkMTA0Y2FjOTczNTU5M2UzYTY0OWJlNWZiYjIuLjk0ZmY4YzhhMGRlODc1MTUyOTQ5MmZi
MGFhMjBlYWNiNmMwYjA2YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdIaWRkZW5Db250YWluZXIuaApAQCAtMzMsMjAgKzMzLDIwIEBAIGNs
YXNzIFJlbmRlclNWR0hpZGRlbkNvbnRhaW5lciA6IHB1YmxpYyBSZW5kZXJTVkdDb250YWluZXIg
ewogcHVibGljOgogICAgIGV4cGxpY2l0IFJlbmRlclNWR0hpZGRlbkNvbnRhaW5lcihTVkdTdHls
ZWRFbGVtZW50Kik7CiAKLSAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25z
dCBPVkVSUklERSB7IHJldHVybiAiUmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyIjsgfQorICAgIHZp
cnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IHsgcmV0dXJuICJSZW5kZXJTVkdI
aWRkZW5Db250YWluZXIiOyB9CiAKIHByb3RlY3RlZDoKLSAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0
KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGxheW91dCgpOwogCiBwcml2YXRlOgotICAg
IHZpcnR1YWwgYm9vbCBpc1NWR0hpZGRlbkNvbnRhaW5lcigpIGNvbnN0IE9WRVJSSURFIEZJTkFM
IHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNTVkdIaWRkZW5Db250YWluZXIo
KSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoUGFpbnRJ
bmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKSBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIHZv
aWQgcGFpbnQoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKTsKICAgICAKLSAgICB2aXJ0
dWFsIExheW91dFJlY3QgY2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVy
TGF5ZXJNb2RlbE9iamVjdCopIGNvbnN0IE9WRVJSSURFIEZJTkFMIHsgcmV0dXJuIExheW91dFJl
Y3QoKTsgfQotICAgIHZpcnR1YWwgdm9pZCBhYnNvbHV0ZVF1YWRzKFZlY3RvcjxGbG9hdFF1YWQ+
JiwgYm9vbCogd2FzRml4ZWQpIGNvbnN0IE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgTGF5
b3V0UmVjdCBjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1v
ZGVsT2JqZWN0KikgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gTGF5b3V0UmVjdCgpOyB9CisgICAg
dmlydHVhbCB2b2lkIGFic29sdXRlUXVhZHMoVmVjdG9yPEZsb2F0UXVhZD4mLCBib29sKiB3YXNG
aXhlZCkgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIGJvb2wgbm9kZUF0RmxvYXRQb2ludChjb25zdCBI
aXRUZXN0UmVxdWVzdCYsIEhpdFRlc3RSZXN1bHQmLCBjb25zdCBGbG9hdFBvaW50JiBwb2ludElu
UGFyZW50LCBIaXRUZXN0QWN0aW9uKSBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIGJvb2wg
bm9kZUF0RmxvYXRQb2ludChjb25zdCBIaXRUZXN0UmVxdWVzdCYsIEhpdFRlc3RSZXN1bHQmLCBj
b25zdCBGbG9hdFBvaW50JiBwb2ludEluUGFyZW50LCBIaXRUZXN0QWN0aW9uKTsKIH07CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW1hZ2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW1hZ2UuaAppbmRleCBi
ODQ5YTBkN2FlMzc3ZjFjMjEwZTUyNTJmMmQ2MzdhMDM3YjQyODI4Li5hZjg1Yjg5NWIwNTQzNDQw
OWM0NDE4YTQzNDg4ODBjMDAxNGQwMzMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR0ltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdJbWFnZS5oCkBAIC0zNiw3ICszNiw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIGNsYXNzIFJlbmRlckltYWdlUmVzb3VyY2U7CiBjbGFzcyBTVkdJbWFnZUVsZW1lbnQ7CiAK
LWNsYXNzIFJlbmRlclNWR0ltYWdlIEZJTkFMIDogcHVibGljIFJlbmRlclNWR01vZGVsT2JqZWN0
IHsKK2NsYXNzIFJlbmRlclNWR0ltYWdlIDogcHVibGljIFJlbmRlclNWR01vZGVsT2JqZWN0IHsK
IHB1YmxpYzoKICAgICBSZW5kZXJTVkdJbWFnZShTVkdJbWFnZUVsZW1lbnQqKTsKICAgICB2aXJ0
dWFsIH5SZW5kZXJTVkdJbWFnZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHSW5saW5lLmgKaW5kZXggMzcxNGExYmI2OGE1ZTVkZDI1MGZiZjczMDIzM2MyM2Zk
MTFlZjJiNS4uZGJlYjBkM2VkMDUwM2YyMmM3NTFjN2Y2ZGI2NTE1NDZmNDQ0NDFlNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5oCkBAIC0zMiwz
NCArMzIsMzQgQEAgY2xhc3MgUmVuZGVyU1ZHSW5saW5lIDogcHVibGljIFJlbmRlcklubGluZSB7
CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgUmVuZGVyU1ZHSW5saW5lKEVsZW1lbnQqKTsKIAotICAg
IHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJu
ICJSZW5kZXJTVkdJbmxpbmUiOyB9Ci0gICAgdmlydHVhbCBib29sIHJlcXVpcmVzTGF5ZXIoKSBj
b25zdCBPVkVSUklERSBGSU5BTCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBp
c1NWR0lubGluZSgpIGNvbnN0IE9WRVJSSURFIEZJTkFMIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2
aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCB7IHJldHVybiAiUmVuZGVyU1ZH
SW5saW5lIjsgfQorICAgIHZpcnR1YWwgYm9vbCByZXF1aXJlc0xheWVyKCkgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNTVkdJbmxpbmUoKSBjb25zdCB7IHJldHVy
biB0cnVlOyB9CiAKICAgICAvLyBDaGFwdGVyIDEwLjQgb2YgdGhlIFNWRyBTcGVjaWZpY2F0aW9u
IHNheSB0aGF0IHdlIHNob3VsZCB1c2UgdGhlCiAgICAgLy8gb2JqZWN0IGJvdW5kaW5nIGJveCBv
ZiB0aGUgcGFyZW50IHRleHQgZWxlbWVudC4KICAgICAvLyBXZSBzZWFyY2ggZm9yIHRoZSByb290
IHRleHQgZWxlbWVudCBhbmQgdGFrZSBpdHMgYm91bmRpbmcgYm94LgogICAgIC8vIEl0IGlzIGFs
c28gbmVjZXNzYXJ5IHRvIHRha2UgdGhlIHN0cm9rZSBhbmQgcmVwYWludCByZWN0IG9mCiAgICAg
Ly8gdGhpcyBlbGVtZW50LCBzaW5jZSB3ZSBuZWVkIGl0IGZvciBmaWx0ZXJzLgotICAgIHZpcnR1
YWwgRmxvYXRSZWN0IG9iamVjdEJvdW5kaW5nQm94KCkgY29uc3QgT1ZFUlJJREUgRklOQUw7Ci0g
ICAgdmlydHVhbCBGbG9hdFJlY3Qgc3Ryb2tlQm91bmRpbmdCb3goKSBjb25zdCBPVkVSUklERSBG
SU5BTDsKLSAgICB2aXJ0dWFsIEZsb2F0UmVjdCByZXBhaW50UmVjdEluTG9jYWxDb29yZGluYXRl
cygpIGNvbnN0IE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgRmxvYXRSZWN0IG9iamVjdEJv
dW5kaW5nQm94KCkgY29uc3Q7CisgICAgdmlydHVhbCBGbG9hdFJlY3Qgc3Ryb2tlQm91bmRpbmdC
b3goKSBjb25zdDsKKyAgICB2aXJ0dWFsIEZsb2F0UmVjdCByZXBhaW50UmVjdEluTG9jYWxDb29y
ZGluYXRlcygpIGNvbnN0OwogCi0gICAgdmlydHVhbCBMYXlvdXRSZWN0IGNsaXBwZWRPdmVyZmxv
d1JlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250
YWluZXIpIGNvbnN0IE9WRVJSSURFIEZJTkFMOwotICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlRmxv
YXRSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29u
dGFpbmVyLCBGbG9hdFJlY3QmLCBib29sIGZpeGVkID0gZmFsc2UpIGNvbnN0IE9WRVJSSURFIEZJ
TkFMOwotICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxh
eWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29v
cmRpbmF0ZXNGbGFncyA9IEFwcGx5Q29udGFpbmVyRmxpcCwgYm9vbCogd2FzRml4ZWQgPSAwKSBj
b25zdCBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIGNvbnN0IFJlbmRlck9iamVjdCogcHVz
aE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBhbmNlc3Rv
clRvU3RvcEF0LCBSZW5kZXJHZW9tZXRyeU1hcCYpIGNvbnN0IE9WRVJSSURFIEZJTkFMOwotICAg
IHZpcnR1YWwgdm9pZCBhYnNvbHV0ZVF1YWRzKFZlY3RvcjxGbG9hdFF1YWQ+JiwgYm9vbCogd2Fz
Rml4ZWQpIGNvbnN0IE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBjbGlw
cGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBy
ZXBhaW50Q29udGFpbmVyKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgY29tcHV0
ZUZsb2F0UmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWlu
dENvbnRhaW5lciwgRmxvYXRSZWN0JiwgYm9vbCBmaXhlZCA9IGZhbHNlKSBjb25zdCBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXll
ck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3Jk
aW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5lckZsaXAsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29u
c3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBjb25zdCBSZW5kZXJPYmplY3QqIHB1c2hNYXBwaW5n
VG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5jZXN0b3JUb1N0b3BB
dCwgUmVuZGVyR2VvbWV0cnlNYXAmKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQg
YWJzb2x1dGVRdWFkcyhWZWN0b3I8RmxvYXRRdWFkPiYsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdDsK
IAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIElubGluZUZsb3dCb3gqIGNyZWF0ZUlubGluZUZsb3dC
b3goKSBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIElubGluZUZsb3dCb3gqIGNyZWF0ZUlu
bGluZUZsb3dCb3goKTsKIAotICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVEZXN0cm95ZWQoKSBPVkVS
UklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIHZvaWQgc3R5bGVXaWxsQ2hhbmdlKFN0eWxlRGlmZmVy
ZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG5ld1N0eWxlKSBPVkVSUklERSBGSU5BTDsKLSAgICB2
aXJ0dWFsIHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJT
dHlsZSogb2xkU3R5bGUpIE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVE
ZXN0cm95ZWQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgc3R5bGVXaWxsQ2hhbmdlKFN0eWxlRGlmZmVy
ZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG5ld1N0eWxlKTsKKyAgICB2aXJ0dWFsIHZvaWQgc3R5
bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUp
OwogCi0gICAgdmlydHVhbCB2b2lkIGFkZENoaWxkKFJlbmRlck9iamVjdCogY2hpbGQsIFJlbmRl
ck9iamVjdCogYmVmb3JlQ2hpbGQgPSAwKSBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIHZv
aWQgcmVtb3ZlQ2hpbGQoUmVuZGVyT2JqZWN0KikgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVh
bCB2b2lkIGFkZENoaWxkKFJlbmRlck9iamVjdCogY2hpbGQsIFJlbmRlck9iamVjdCogYmVmb3Jl
Q2hpbGQgPSAwKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlQ2hpbGQoUmVuZGVy
T2JqZWN0KikgT1ZFUlJJREU7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZVRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lVGV4dC5oCmluZGV4IDU0ZjAzMWE0YTVjYmM5NmNiNWZm
MDk0NjEyMmMzZjRmYzQ5N2UyZjUuLmI2ZmM4MzAwODkyZjQyYjVjNTgwNWUzODViYjAzMjVkY2Iw
NWIzMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
SW5saW5lVGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
SW5saW5lVGV4dC5oCkBAIC0zMSw3ICszMSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgU1ZHSW5saW5lVGV4dEJveDsKIAotY2xhc3MgUmVuZGVyU1ZHSW5saW5lVGV4dCBGSU5BTCA6
IHB1YmxpYyBSZW5kZXJUZXh0IHsKK2NsYXNzIFJlbmRlclNWR0lubGluZVRleHQgOiBwdWJsaWMg
UmVuZGVyVGV4dCB7CiBwdWJsaWM6CiAgICAgUmVuZGVyU1ZHSW5saW5lVGV4dChOb2RlKiwgUGFz
c1JlZlB0cjxTdHJpbmdJbXBsPik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuaAppbmRleCBlYjg3OTQ3NTdjZDhlMjk2ZThiYzdk
NDk2ODg4NmJmN2Y0ZDgzNzk0Li4wNTExZjI3NzJmZWViNjQ2ZGExZGViYzM3NTE3NzE4MTIwNGJh
Mjk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01v
ZGVsT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdN
b2RlbE9iamVjdC5oCkBAIC00OSwxNiArNDksMTggQEAgY2xhc3MgUmVuZGVyU1ZHTW9kZWxPYmpl
Y3QgOiBwdWJsaWMgUmVuZGVyT2JqZWN0IHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBSZW5kZXJT
VkdNb2RlbE9iamVjdChTVkdTdHlsZWRFbGVtZW50Kik7CiAKKyAgICB2aXJ0dWFsIGJvb2wgcmVx
dWlyZXNMYXllcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisKICAgICB2aXJ0dWFsIExheW91
dFJlY3QgY2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2Rl
bE9iamVjdCogcmVwYWludENvbnRhaW5lcikgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2
b2lkIGNvbXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmpl
Y3QqIHJlcGFpbnRDb250YWluZXIsIEZsb2F0UmVjdCYsIGJvb2wgZml4ZWQgPSBmYWxzZSkgY29u
c3QgT1ZFUlJJREUgRklOQUw7Ci0gICAgdmlydHVhbCBMYXlvdXRSZWN0IG91dGxpbmVCb3VuZHNG
b3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIs
IGNvbnN0IFJlbmRlckdlb21ldHJ5TWFwKikgY29uc3QgT1ZFUlJJREUgRklOQUw7CisgICAgdmly
dHVhbCB2b2lkIGNvbXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9k
ZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIEZsb2F0UmVjdCYsIGJvb2wgZml4ZWQgPSBmYWxz
ZSkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBMYXlvdXRSZWN0IG91dGxpbmVCb3VuZHNG
b3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIs
IGNvbnN0IFJlbmRlckdlb21ldHJ5TWFwKikgY29uc3QgT1ZFUlJJREU7CiAKLSAgICB2aXJ0dWFs
IHZvaWQgYWJzb2x1dGVSZWN0cyhWZWN0b3I8SW50UmVjdD4mLCBjb25zdCBMYXlvdXRQb2ludCYg
YWNjdW11bGF0ZWRPZmZzZXQpIGNvbnN0IE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgdm9p
ZCBhYnNvbHV0ZVJlY3RzKFZlY3RvcjxJbnRSZWN0PiYsIGNvbnN0IExheW91dFBvaW50JiBhY2N1
bXVsYXRlZE9mZnNldCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGFic29sdXRlUXVhZHMoVmVj
dG9yPEZsb2F0UXVhZD4mLCBib29sKiB3YXNGaXhlZCkgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIHZv
aWQgbWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBh
aW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgPSBBcHBs
eUNvbnRhaW5lckZsaXAsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3QgT1ZFUlJJREUgRklOQUw7
Ci0gICAgdmlydHVhbCBjb25zdCBSZW5kZXJPYmplY3QqIHB1c2hNYXBwaW5nVG9Db250YWluZXIo
Y29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5jZXN0b3JUb1N0b3BBdCwgUmVuZGVyR2Vv
bWV0cnlNYXAmKSBjb25zdCBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIHZvaWQgc3R5bGVX
aWxsQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG5ld1N0eWxlKSBP
VkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihjb25z
dCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0
ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5lckZsaXAsIGJvb2wqIHdhc0Zp
eGVkID0gMCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBjb25zdCBSZW5kZXJPYmplY3Qq
IHB1c2hNYXBwaW5nVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5j
ZXN0b3JUb1N0b3BBdCwgUmVuZGVyR2VvbWV0cnlNYXAmKSBjb25zdCBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIHZvaWQgc3R5bGVXaWxsQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVy
U3R5bGUqIG5ld1N0eWxlKTsKICAgICB2aXJ0dWFsIHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGVE
aWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpOwogCiAgICAgc3RhdGljIGJv
b2wgY2hlY2tJbnRlcnNlY3Rpb24oUmVuZGVyT2JqZWN0KiwgY29uc3QgRmxvYXRSZWN0Jik7CkBA
IC02OSwxMiArNzEsMTIgQEAgcHVibGljOgogICAgIHZvaWQgc2V0SGFzU1ZHU2hhZG93KGJvb2wg
aGFzU2hhZG93KSB7IG1faGFzU1ZHU2hhZG93ID0gaGFzU2hhZG93OyB9CiAKIHByb3RlY3RlZDoK
LSAgICB2aXJ0dWFsIHZvaWQgd2lsbEJlRGVzdHJveWVkKCkgT1ZFUlJJREU7CisgICAgdmlydHVh
bCB2b2lkIHdpbGxCZURlc3Ryb3llZCgpOwogCiBwcml2YXRlOgogICAgIC8vIFRoaXMgbWV0aG9k
IHNob3VsZCBuZXZlciBiZSBjYWxsZWQsIFNWRyB1c2VzIGEgZGlmZmVyZW50IG5vZGVBdFBvaW50
IG1ldGhvZAogICAgIGJvb2wgbm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmLCBIaXRU
ZXN0UmVzdWx0JiwgY29uc3QgSGl0VGVzdExvY2F0aW9uJiBsb2NhdGlvbkluQ29udGFpbmVyLCBj
b25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQsIEhpdFRlc3RBY3Rpb24pIE9WRVJS
SURFOwotICAgIHZpcnR1YWwgdm9pZCBhYnNvbHV0ZUZvY3VzUmluZ1F1YWRzKFZlY3RvcjxGbG9h
dFF1YWQ+JikgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCB2b2lkIGFic29sdXRlRm9jdXNS
aW5nUXVhZHMoVmVjdG9yPEZsb2F0UXVhZD4mKTsKICAgICBib29sIG1faGFzU1ZHU2hhZG93Owog
fTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdQ
YXRoLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1BhdGguaAppbmRl
eCA1NzMzMmM2YzA4Yjk4NWY0Zjc3ZWEyZTUzMzQ4Yjk3NDc0MjBmYjYwLi41NDE1NGNlMDAwNDk4
Yjg2OGU3ODE2M2RkZTdmZGNmOTQyZGEwNjJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1BhdGguaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR1BhdGguaApAQCAtMzEsNyArMzEsNyBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLWNsYXNzIFJlbmRlclNWR1BhdGggRklOQUwgOiBwdWJsaWMgUmVuZGVyU1ZHU2hh
cGUgeworY2xhc3MgUmVuZGVyU1ZHUGF0aCA6IHB1YmxpYyBSZW5kZXJTVkdTaGFwZSB7CiBwdWJs
aWM6CiAgICAgZXhwbGljaXQgUmVuZGVyU1ZHUGF0aChTVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxl
bWVudCopOwogICAgIHZpcnR1YWwgflJlbmRlclNWR1BhdGgoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVjdC5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZWN0LmgKaW5kZXggNjI4M2RlNWViODY3NjI4Y2M5OTQw
ODYwYzllZTg2ZDA0YzM5MWY3My4uNjMwNTU3OTBjZWU2ZDQ3OTU2NmQyM2IwNjdmOGNjMDRkOWY2
OTkzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdS
ZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZWN0LmgK
QEAgLTM0LDcgKzM0LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBSZW5kZXJT
VkdSZWN0IEZJTkFMIDogcHVibGljIFJlbmRlclNWR1NoYXBlIHsKK2NsYXNzIFJlbmRlclNWR1Jl
Y3QgOiBwdWJsaWMgUmVuZGVyU1ZHU2hhcGUgewogcHVibGljOgogICAgIGV4cGxpY2l0IFJlbmRl
clNWR1JlY3QoU1ZHUmVjdEVsZW1lbnQqKTsKICAgICB2aXJ0dWFsIH5SZW5kZXJTVkdSZWN0KCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291
cmNlQ2xpcHBlci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNv
dXJjZUNsaXBwZXIuaAppbmRleCBjNzIyMjI2ZDEwYzNkZTM4MjgyYzk4MjI4NDAxZDlkZjJiYzE4
NGVhLi41OTE1N2ZhNDYwMGEzMjVjZmVhYWQxNGMyZDc5OTMzODE2NmRhY2Q5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlQ2xpcHBlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VDbGlw
cGVyLmgKQEAgLTQxLDcgKzQxLDcgQEAgcHVibGljOgogICAgIE93blB0cjxJbWFnZUJ1ZmZlcj4g
Y2xpcE1hc2tJbWFnZTsKIH07CiAKLWNsYXNzIFJlbmRlclNWR1Jlc291cmNlQ2xpcHBlciBGSU5B
TCA6IHB1YmxpYyBSZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lciB7CitjbGFzcyBSZW5kZXJTVkdS
ZXNvdXJjZUNsaXBwZXIgOiBwdWJsaWMgUmVuZGVyU1ZHUmVzb3VyY2VDb250YWluZXIgewogcHVi
bGljOgogICAgIFJlbmRlclNWR1Jlc291cmNlQ2xpcHBlcihTVkdDbGlwUGF0aEVsZW1lbnQqKTsK
ICAgICB2aXJ0dWFsIH5SZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VDb250YWluZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VDb250YWluZXIu
aAppbmRleCBiMzRiNWUyY2EzNmMyMjk1ZjI4MmM3MWZhMWI3MzZkODQwOGEyOTU1Li4wZjQyNWNk
NDVhZGY2NzQzMzFkODg0NWQzNmM4YjVhYjM3MzQ2OWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlQ29udGFpbmVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lci5oCkBA
IC0zNCwxMSArMzQsMTEgQEAgcHVibGljOgogICAgIFJlbmRlclNWR1Jlc291cmNlQ29udGFpbmVy
KFNWR1N0eWxlZEVsZW1lbnQqKTsKICAgICB2aXJ0dWFsIH5SZW5kZXJTVkdSZXNvdXJjZUNvbnRh
aW5lcigpOwogCi0gICAgdmlydHVhbCB2b2lkIGxheW91dCgpIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgdm9pZCBzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxl
KiBvbGRTdHlsZSkgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCB2b2lkIGxheW91dCgpOwor
ICAgIHZpcnR1YWwgdm9pZCBzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJl
bmRlclN0eWxlKiBvbGRTdHlsZSk7CiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNTVkdSZXNvdXJjZUNv
bnRhaW5lcigpIGNvbnN0IE9WRVJSSURFIEZJTkFMIHsgcmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0
dWFsIFJlbmRlclNWR1Jlc291cmNlQ29udGFpbmVyKiB0b1JlbmRlclNWR1Jlc291cmNlQ29udGFp
bmVyKCkgT1ZFUlJJREUgRklOQUwgeyByZXR1cm4gdGhpczsgfQorICAgIHZpcnR1YWwgYm9vbCBp
c1NWR1Jlc291cmNlQ29udGFpbmVyKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1
YWwgUmVuZGVyU1ZHUmVzb3VyY2VDb250YWluZXIqIHRvUmVuZGVyU1ZHUmVzb3VyY2VDb250YWlu
ZXIoKSB7IHJldHVybiB0aGlzOyB9CiAKICAgICBzdGF0aWMgYm9vbCBzaG91bGRUcmFuc2Zvcm1P
blRleHRQYWludGluZyhSZW5kZXJPYmplY3QqLCBBZmZpbmVUcmFuc2Zvcm0mKTsKICAgICBzdGF0
aWMgQWZmaW5lVHJhbnNmb3JtIHRyYW5zZm9ybU9uTm9uU2NhbGluZ1N0cm9rZShSZW5kZXJPYmpl
Y3QqLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHJlc291cmNlVHJhbnNmb3JtKTsKQEAgLTY2LDcg
KzY2LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlbW92ZUNsaWVudChSZW5kZXJPYmplY3QqKTsK
IAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbEJlRGVzdHJveWVkKCkgT1ZFUlJJREUg
RklOQUw7CisgICAgdmlydHVhbCB2b2lkIHdpbGxCZURlc3Ryb3llZCgpOwogICAgIHZvaWQgcmVn
aXN0ZXJSZXNvdXJjZSgpOwogCiAgICAgQXRvbWljU3RyaW5nIG1faWQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlRmlsdGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlRmlsdGVyLmgKaW5k
ZXggYmY2NjI4NWZlMjA3N2FkYzE4NjMxNDBmOTZmNTE2NmMwZGFkMmZmMC4uYTY5MTFhYTA4MTli
YWVmNDkyYzIxYjJlZTgyN2E5ZTBlZjUwZjE1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUZpbHRlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIuaApAQCAtNjMsNyArNjMs
NyBAQCBwdWJsaWM6CiAKIGNsYXNzIEdyYXBoaWNzQ29udGV4dDsKIAotY2xhc3MgUmVuZGVyU1ZH
UmVzb3VyY2VGaWx0ZXIgRklOQUwgOiBwdWJsaWMgUmVuZGVyU1ZHUmVzb3VyY2VDb250YWluZXIg
eworY2xhc3MgUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIgOiBwdWJsaWMgUmVuZGVyU1ZHUmVzb3Vy
Y2VDb250YWluZXIgewogcHVibGljOgogICAgIFJlbmRlclNWR1Jlc291cmNlRmlsdGVyKFNWR0Zp
bHRlckVsZW1lbnQqKTsKICAgICB2aXJ0dWFsIH5SZW5kZXJTVkdSZXNvdXJjZUZpbHRlcigpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJj
ZUZpbHRlclByaW1pdGl2ZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdSZXNvdXJjZUZpbHRlclByaW1pdGl2ZS5oCmluZGV4IDEzOTdjN2ZhNTQ4Njc5MjczMTMzYjhj
Y2E2ZTc0NmE3OWIzOWJjN2UuLmU4ZTRlZmNiOTI3NTdmYTU0MmRjYjBkYWFhYjQzOGJhNDM2OTdk
M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVz
b3VyY2VGaWx0ZXJQcmltaXRpdmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1Jlc291cmNlRmlsdGVyUHJpbWl0aXZlLmgKQEAgLTM2LDcgKzM2LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBGaWx0ZXJFZmZlY3Q7CiAKLWNsYXNzIFJlbmRlclNW
R1Jlc291cmNlRmlsdGVyUHJpbWl0aXZlIEZJTkFMIDogcHVibGljIFJlbmRlclNWR0hpZGRlbkNv
bnRhaW5lciB7CitjbGFzcyBSZW5kZXJTVkdSZXNvdXJjZUZpbHRlclByaW1pdGl2ZSA6IHB1Ymxp
YyBSZW5kZXJTVkdIaWRkZW5Db250YWluZXIgewogcHVibGljOgogICAgIGV4cGxpY2l0IFJlbmRl
clNWR1Jlc291cmNlRmlsdGVyUHJpbWl0aXZlKFNWR1N0eWxlZEVsZW1lbnQqIGZpbHRlclByaW1p
dGl2ZUVsZW1lbnQpCiAgICAgICAgIDogUmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyKGZpbHRlclBy
aW1pdGl2ZUVsZW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1Jlc291cmNlR3JhZGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHUmVzb3VyY2VHcmFkaWVudC5oCmluZGV4IDRlZWZiNDk1YjRjODFjNzFkMGYy
NTQ4NjVhYWExMTVmMzc3MjNlNGUuLmQ3OTlmNzU2ZDc4Mjk5NmYzNWY2OTU0NDZlYTI1NDI3MjNk
MDRiNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
UmVzb3VyY2VHcmFkaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHUmVzb3VyY2VHcmFkaWVudC5oCkBAIC00NywxMiArNDcsMTIgQEAgY2xhc3MgUmVuZGVy
U1ZHUmVzb3VyY2VHcmFkaWVudCA6IHB1YmxpYyBSZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lciB7
CiBwdWJsaWM6CiAgICAgUmVuZGVyU1ZHUmVzb3VyY2VHcmFkaWVudChTVkdHcmFkaWVudEVsZW1l
bnQqKTsKIAotICAgIHZpcnR1YWwgdm9pZCByZW1vdmVBbGxDbGllbnRzRnJvbUNhY2hlKGJvb2wg
bWFya0ZvckludmFsaWRhdGlvbiA9IHRydWUpIE9WRVJSSURFIEZJTkFMOwotICAgIHZpcnR1YWwg
dm9pZCByZW1vdmVDbGllbnRGcm9tQ2FjaGUoUmVuZGVyT2JqZWN0KiwgYm9vbCBtYXJrRm9ySW52
YWxpZGF0aW9uID0gdHJ1ZSkgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCB2b2lkIHJlbW92
ZUFsbENsaWVudHNGcm9tQ2FjaGUoYm9vbCBtYXJrRm9ySW52YWxpZGF0aW9uID0gdHJ1ZSk7Cisg
ICAgdmlydHVhbCB2b2lkIHJlbW92ZUNsaWVudEZyb21DYWNoZShSZW5kZXJPYmplY3QqLCBib29s
IG1hcmtGb3JJbnZhbGlkYXRpb24gPSB0cnVlKTsKIAotICAgIHZpcnR1YWwgYm9vbCBhcHBseVJl
c291cmNlKFJlbmRlck9iamVjdCosIFJlbmRlclN0eWxlKiwgR3JhcGhpY3NDb250ZXh0KiYsIHVu
c2lnbmVkIHNob3J0IHJlc291cmNlTW9kZSkgT1ZFUlJJREUgRklOQUw7Ci0gICAgdmlydHVhbCB2
b2lkIHBvc3RBcHBseVJlc291cmNlKFJlbmRlck9iamVjdCosIEdyYXBoaWNzQ29udGV4dComLCB1
bnNpZ25lZCBzaG9ydCByZXNvdXJjZU1vZGUsIGNvbnN0IFBhdGgqLCBjb25zdCBSZW5kZXJTVkdT
aGFwZSopIE9WRVJSSURFIEZJTkFMOwotICAgIHZpcnR1YWwgRmxvYXRSZWN0IHJlc291cmNlQm91
bmRpbmdCb3goUmVuZGVyT2JqZWN0KikgT1ZFUlJJREUgRklOQUwgeyByZXR1cm4gRmxvYXRSZWN0
KCk7IH0KKyAgICB2aXJ0dWFsIGJvb2wgYXBwbHlSZXNvdXJjZShSZW5kZXJPYmplY3QqLCBSZW5k
ZXJTdHlsZSosIEdyYXBoaWNzQ29udGV4dComLCB1bnNpZ25lZCBzaG9ydCByZXNvdXJjZU1vZGUp
OworICAgIHZpcnR1YWwgdm9pZCBwb3N0QXBwbHlSZXNvdXJjZShSZW5kZXJPYmplY3QqLCBHcmFw
aGljc0NvbnRleHQqJiwgdW5zaWduZWQgc2hvcnQgcmVzb3VyY2VNb2RlLCBjb25zdCBQYXRoKiwg
Y29uc3QgUmVuZGVyU1ZHU2hhcGUqKTsKKyAgICB2aXJ0dWFsIEZsb2F0UmVjdCByZXNvdXJjZUJv
dW5kaW5nQm94KFJlbmRlck9iamVjdCopIHsgcmV0dXJuIEZsb2F0UmVjdCgpOyB9CiAKIHByb3Rl
Y3RlZDoKICAgICB2b2lkIGFkZFN0b3BzKEdyYWRpZW50RGF0YSosIGNvbnN0IFZlY3RvcjxHcmFk
aWVudDo6Q29sb3JTdG9wPiYpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUxpbmVhckdyYWRpZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlTGluZWFyR3JhZGllbnQuaAppbmRl
eCA2MmZhODNlYjg3NGY2NWViYTJiNWM3MmYwMDhmNDBhOWQ1N2ZlMDJiLi5mMGQzYzE4MGU2YWNm
YzhmZTYxYWJlMzBmN2FmYzY4MjJlMTA2Yjg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlTGluZWFyR3JhZGllbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlTGluZWFyR3JhZGllbnQu
aApAQCAtMjksNyArMjksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNWR0xpbmVh
ckdyYWRpZW50RWxlbWVudDsKIAotY2xhc3MgUmVuZGVyU1ZHUmVzb3VyY2VMaW5lYXJHcmFkaWVu
dCBGSU5BTCA6IHB1YmxpYyBSZW5kZXJTVkdSZXNvdXJjZUdyYWRpZW50IHsKK2NsYXNzIFJlbmRl
clNWR1Jlc291cmNlTGluZWFyR3JhZGllbnQgOiBwdWJsaWMgUmVuZGVyU1ZHUmVzb3VyY2VHcmFk
aWVudCB7CiBwdWJsaWM6CiAgICAgUmVuZGVyU1ZHUmVzb3VyY2VMaW5lYXJHcmFkaWVudChTVkdM
aW5lYXJHcmFkaWVudEVsZW1lbnQqKTsKICAgICB2aXJ0dWFsIH5SZW5kZXJTVkdSZXNvdXJjZUxp
bmVhckdyYWRpZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1Jlc291cmNlTWFya2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1Jlc291cmNlTWFya2VyLmgKaW5kZXggN2JmNWZlZGJkNjQzNmQ2NjdmODA4Nzhm
YWMyMmI0ZDUwOWZmMDU1Ni4uMjZmYmM2ZjkzYzY0ZDJjODU3ODVmY2I4NmNhNmE2YmJhOTIxOTQ1
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNv
dXJjZU1hcmtlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
UmVzb3VyY2VNYXJrZXIuaApAQCAtMzMsNyArMzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBj
bGFzcyBBZmZpbmVUcmFuc2Zvcm07CiBjbGFzcyBSZW5kZXJPYmplY3Q7CiAKLWNsYXNzIFJlbmRl
clNWR1Jlc291cmNlTWFya2VyIEZJTkFMIDogcHVibGljIFJlbmRlclNWR1Jlc291cmNlQ29udGFp
bmVyIHsKK2NsYXNzIFJlbmRlclNWR1Jlc291cmNlTWFya2VyIDogcHVibGljIFJlbmRlclNWR1Jl
c291cmNlQ29udGFpbmVyIHsKIHB1YmxpYzoKICAgICBSZW5kZXJTVkdSZXNvdXJjZU1hcmtlcihT
VkdNYXJrZXJFbGVtZW50Kik7CiAgICAgdmlydHVhbCB+UmVuZGVyU1ZHUmVzb3VyY2VNYXJrZXIo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVz
b3VyY2VNYXNrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVz
b3VyY2VNYXNrZXIuaAppbmRleCBjNjdmZmRhYzhiYTc1ODA3ZDBkNmI1NjNkZDY1ZWNmNmZkOTc4
MGNiLi45YzU3OTIzNGQyZmJmNWQ2MWZmMzY1YTMyNWJjNjAwZTU4ZmNkNTk5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlTWFza2VyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZU1hc2tl
ci5oCkBAIC0zOCw3ICszOCw3IEBAIHN0cnVjdCBNYXNrZXJEYXRhIHsKICAgICBPd25QdHI8SW1h
Z2VCdWZmZXI+IG1hc2tJbWFnZTsKIH07CiAKLWNsYXNzIFJlbmRlclNWR1Jlc291cmNlTWFza2Vy
IEZJTkFMIDogcHVibGljIFJlbmRlclNWR1Jlc291cmNlQ29udGFpbmVyIHsKK2NsYXNzIFJlbmRl
clNWR1Jlc291cmNlTWFza2VyIDogcHVibGljIFJlbmRlclNWR1Jlc291cmNlQ29udGFpbmVyIHsK
IHB1YmxpYzoKICAgICBSZW5kZXJTVkdSZXNvdXJjZU1hc2tlcihTVkdNYXNrRWxlbWVudCopOwog
ICAgIHZpcnR1YWwgflJlbmRlclNWR1Jlc291cmNlTWFza2VyKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlUGF0dGVybi5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZVBhdHRlcm4uaAppbmRl
eCAzN2RiMWZjNmQ5YjA2OTY5NmRiMWJjODdkNWM4NTNhNTA3NzRmZjJkLi5kNGRhNTM1Njc1ZTZk
Y2VkYjI4MmZlODBiMTFlNzM3YzZlY2RjNWIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlUGF0dGVybi5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VQYXR0ZXJuLmgKQEAgLTQzLDcgKzQz
LDcgQEAgcHVibGljOgogICAgIEFmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm07CiB9OwogCi1jbGFz
cyBSZW5kZXJTVkdSZXNvdXJjZVBhdHRlcm4gRklOQUwgOiBwdWJsaWMgUmVuZGVyU1ZHUmVzb3Vy
Y2VDb250YWluZXIgeworY2xhc3MgUmVuZGVyU1ZHUmVzb3VyY2VQYXR0ZXJuIDogcHVibGljIFJl
bmRlclNWR1Jlc291cmNlQ29udGFpbmVyIHsKIHB1YmxpYzoKICAgICBSZW5kZXJTVkdSZXNvdXJj
ZVBhdHRlcm4oU1ZHUGF0dGVybkVsZW1lbnQqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZVJhZGlhbEdyYWRpZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlUmFkaWFsR3JhZGllbnQu
aAppbmRleCBlMDkyZjg1MTA4YmQ5MGY3ZWNkNDhiZGZjYTlkNmViZjc0OGU3MjUwLi42YTc2ZTgw
YWEzNTJlODk3MThmZGNlNmM3YjJlYjcyYTI4OTZhNzlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlUmFkaWFsR3JhZGllbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlUmFkaWFsR3Jh
ZGllbnQuaApAQCAtMjksNyArMjksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNW
R1JhZGlhbEdyYWRpZW50RWxlbWVudDsKIAotY2xhc3MgUmVuZGVyU1ZHUmVzb3VyY2VSYWRpYWxH
cmFkaWVudCBGSU5BTCA6IHB1YmxpYyBSZW5kZXJTVkdSZXNvdXJjZUdyYWRpZW50IHsKK2NsYXNz
IFJlbmRlclNWR1Jlc291cmNlUmFkaWFsR3JhZGllbnQgOiBwdWJsaWMgUmVuZGVyU1ZHUmVzb3Vy
Y2VHcmFkaWVudCB7CiBwdWJsaWM6CiAgICAgUmVuZGVyU1ZHUmVzb3VyY2VSYWRpYWxHcmFkaWVu
dChTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQqKTsKICAgICB2aXJ0dWFsIH5SZW5kZXJTVkdSZXNv
dXJjZVJhZGlhbEdyYWRpZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR1Jvb3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHUm9vdC5oCmluZGV4IDM3OWNjYTM4NjVkNjIxOTQxNGE4ZmMxMTdkNzRjY2RmMmRiOTdj
YzguLmUyMThlMjkxZTNmODU0ZjI5MTQ4MzYxNDEwYjc0NWRmMzEzYjM5NzggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5oCkBAIC0zNCw3ICszNCw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEFmZmluZVRyYW5zZm9ybTsKIGNsYXNzIFNWR1N0
eWxlZEVsZW1lbnQ7CiAKLWNsYXNzIFJlbmRlclNWR1Jvb3QgRklOQUwgOiBwdWJsaWMgUmVuZGVy
UmVwbGFjZWQgeworY2xhc3MgUmVuZGVyU1ZHUm9vdCA6IHB1YmxpYyBSZW5kZXJSZXBsYWNlZCB7
CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgUmVuZGVyU1ZHUm9vdChTVkdTdHlsZWRFbGVtZW50Kik7
CiAgICAgdmlydHVhbCB+UmVuZGVyU1ZHUm9vdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5oCmluZGV4IDAxYWMyZjEyNmU5MmYyZWY1ZWM3ZDRhNjgx
ZGMyYjhkM2E2Y2YzNjIuLjQ3OWRhNjZlMzA2MTZkYmVjZmU1NzViZThjMjBlYTAyZGU4M2NmNDkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHU2hhcGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1NoYXBlLmgKQEAg
LTcxLDkgKzcxLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgflJlbmRlclNWR1NoYXBlKCk7CiAK
ICAgICB2b2lkIHNldE5lZWRzU2hhcGVVcGRhdGUoKSB7IG1fbmVlZHNTaGFwZVVwZGF0ZSA9IHRy
dWU7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNCb3VuZGFyaWVzVXBkYXRlKCkgT1ZFUlJJ
REUgRklOQUwgeyBtX25lZWRzQm91bmRhcmllc1VwZGF0ZSA9IHRydWU7IH0KLSAgICB2aXJ0dWFs
IGJvb2wgbmVlZHNCb3VuZGFyaWVzVXBkYXRlKCkgT1ZFUlJJREUgRklOQUwgeyByZXR1cm4gbV9u
ZWVkc0JvdW5kYXJpZXNVcGRhdGU7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNUcmFuc2Zv
cm1VcGRhdGUoKSBPVkVSUklERSBGSU5BTCB7IG1fbmVlZHNUcmFuc2Zvcm1VcGRhdGUgPSB0cnVl
OyB9CisgICAgdmlydHVhbCB2b2lkIHNldE5lZWRzQm91bmRhcmllc1VwZGF0ZSgpIHsgbV9uZWVk
c0JvdW5kYXJpZXNVcGRhdGUgPSB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIG5lZWRzQm91bmRh
cmllc1VwZGF0ZSgpIE9WRVJSSURFIHsgcmV0dXJuIG1fbmVlZHNCb3VuZGFyaWVzVXBkYXRlOyB9
CisgICAgdmlydHVhbCB2b2lkIHNldE5lZWRzVHJhbnNmb3JtVXBkYXRlKCkgeyBtX25lZWRzVHJh
bnNmb3JtVXBkYXRlID0gdHJ1ZTsgfQogICAgIHZpcnR1YWwgdm9pZCBmaWxsU2hhcGUoR3JhcGhp
Y3NDb250ZXh0KikgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHN0cm9rZVNoYXBlKEdyYXBoaWNz
Q29udGV4dCopIGNvbnN0OwogCkBAIC0xMDQsMjIgKzEwNCwyMiBAQCBwcml2YXRlOgogICAgIGJv
b2wgZmlsbENvbnRhaW5zKGNvbnN0IEZsb2F0UG9pbnQmLCBib29sIHJlcXVpcmVzRmlsbCA9IHRy
dWUsIGNvbnN0IFdpbmRSdWxlIGZpbGxSdWxlID0gUlVMRV9OT05aRVJPKTsKICAgICBib29sIHN0
cm9rZUNvbnRhaW5zKGNvbnN0IEZsb2F0UG9pbnQmLCBib29sIHJlcXVpcmVzU3Ryb2tlID0gdHJ1
ZSk7CiAKLSAgICB2aXJ0dWFsIEZsb2F0UmVjdCByZXBhaW50UmVjdEluTG9jYWxDb29yZGluYXRl
cygpIGNvbnN0IE9WRVJSSURFIEZJTkFMIHsgcmV0dXJuIG1fcmVwYWludEJvdW5kaW5nQm94OyB9
Ci0gICAgdmlydHVhbCBGbG9hdFJlY3QgcmVwYWludFJlY3RJbkxvY2FsQ29vcmRpbmF0ZXNFeGNs
dWRpbmdTVkdTaGFkb3coKSBjb25zdCBPVkVSUklERSBGSU5BTCB7IHJldHVybiBtX3JlcGFpbnRC
b3VuZGluZ0JveEV4Y2x1ZGluZ1NoYWRvdzsgfQotICAgIHZpcnR1YWwgY29uc3QgQWZmaW5lVHJh
bnNmb3JtJiBsb2NhbFRvUGFyZW50VHJhbnNmb3JtKCkgY29uc3QgT1ZFUlJJREUgRklOQUwgeyBy
ZXR1cm4gbV9sb2NhbFRyYW5zZm9ybTsgfQotICAgIHZpcnR1YWwgQWZmaW5lVHJhbnNmb3JtIGxv
Y2FsVHJhbnNmb3JtKCkgY29uc3QgT1ZFUlJJREUgRklOQUwgeyByZXR1cm4gbV9sb2NhbFRyYW5z
Zm9ybTsgfQorICAgIHZpcnR1YWwgRmxvYXRSZWN0IHJlcGFpbnRSZWN0SW5Mb2NhbENvb3JkaW5h
dGVzKCkgY29uc3QgeyByZXR1cm4gbV9yZXBhaW50Qm91bmRpbmdCb3g7IH0KKyAgICB2aXJ0dWFs
IEZsb2F0UmVjdCByZXBhaW50UmVjdEluTG9jYWxDb29yZGluYXRlc0V4Y2x1ZGluZ1NWR1NoYWRv
dygpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fcmVwYWludEJvdW5kaW5nQm94RXhjbHVkaW5n
U2hhZG93OyB9CisgICAgdmlydHVhbCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGxvY2FsVG9QYXJl
bnRUcmFuc2Zvcm0oKSBjb25zdCB7IHJldHVybiBtX2xvY2FsVHJhbnNmb3JtOyB9CisgICAgdmly
dHVhbCBBZmZpbmVUcmFuc2Zvcm0gbG9jYWxUcmFuc2Zvcm0oKSBjb25zdCB7IHJldHVybiBtX2xv
Y2FsVHJhbnNmb3JtOyB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNTVkdTaGFwZSgpIGNvbnN0IE9W
RVJSSURFIEZJTkFMIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNTVkdTaGFw
ZSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRl
ck5hbWUoKSBjb25zdCB7IHJldHVybiAiUmVuZGVyU1ZHU2hhcGUiOyB9CiAKLSAgICB2aXJ0dWFs
IHZvaWQgbGF5b3V0KCkgT1ZFUlJJREUgRklOQUw7Ci0gICAgdmlydHVhbCB2b2lkIHBhaW50KFBh
aW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50JikgT1ZFUlJJREUgRklOQUw7Ci0gICAgdmlydHVh
bCB2b2lkIGFkZEZvY3VzUmluZ1JlY3RzKFZlY3RvcjxJbnRSZWN0PiYsIGNvbnN0IExheW91dFBv
aW50JiBhZGRpdGlvbmFsT2Zmc2V0LCBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBwYWlu
dENvbnRhaW5lciA9IDApIE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQo
KTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQm
KTsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkRm9jdXNSaW5nUmVjdHMoVmVjdG9yPEludFJlY3Q+Jiwg
Y29uc3QgTGF5b3V0UG9pbnQmIGFkZGl0aW9uYWxPZmZzZXQsIGNvbnN0IFJlbmRlckxheWVyTW9k
ZWxPYmplY3QqIHBhaW50Q29udGFpbmVyID0gMCkgT1ZFUlJJREU7CiAKLSAgICB2aXJ0dWFsIGJv
b2wgbm9kZUF0RmxvYXRQb2ludChjb25zdCBIaXRUZXN0UmVxdWVzdCYsIEhpdFRlc3RSZXN1bHQm
LCBjb25zdCBGbG9hdFBvaW50JiBwb2ludEluUGFyZW50LCBIaXRUZXN0QWN0aW9uKSBPVkVSUklE
RSBGSU5BTDsKKyAgICB2aXJ0dWFsIGJvb2wgbm9kZUF0RmxvYXRQb2ludChjb25zdCBIaXRUZXN0
UmVxdWVzdCYsIEhpdFRlc3RSZXN1bHQmLCBjb25zdCBGbG9hdFBvaW50JiBwb2ludEluUGFyZW50
LCBIaXRUZXN0QWN0aW9uKTsKIAotICAgIHZpcnR1YWwgRmxvYXRSZWN0IG9iamVjdEJvdW5kaW5n
Qm94KCkgY29uc3QgT1ZFUlJJREUgRklOQUwgeyByZXR1cm4gbV9maWxsQm91bmRpbmdCb3g7IH0K
LSAgICB2aXJ0dWFsIEZsb2F0UmVjdCBzdHJva2VCb3VuZGluZ0JveCgpIGNvbnN0IE9WRVJSSURF
IEZJTkFMIHsgcmV0dXJuIG1fc3Ryb2tlQm91bmRpbmdCb3g7IH0KKyAgICB2aXJ0dWFsIEZsb2F0
UmVjdCBvYmplY3RCb3VuZGluZ0JveCgpIGNvbnN0IHsgcmV0dXJuIG1fZmlsbEJvdW5kaW5nQm94
OyB9CisgICAgdmlydHVhbCBGbG9hdFJlY3Qgc3Ryb2tlQm91bmRpbmdCb3goKSBjb25zdCB7IHJl
dHVybiBtX3N0cm9rZUJvdW5kaW5nQm94OyB9CiAgICAgRmxvYXRSZWN0IGNhbGN1bGF0ZU9iamVj
dEJvdW5kaW5nQm94KCkgY29uc3Q7CiAgICAgRmxvYXRSZWN0IGNhbGN1bGF0ZVN0cm9rZUJvdW5k
aW5nQm94KCkgY29uc3Q7CiAgICAgdm9pZCB1cGRhdGVSZXBhaW50Qm91bmRpbmdCb3goKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVFNwYW4uaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVFNwYW4uaAppbmRleCBmNzhh
ODUxOTUxYzI0MjUwMTEyZTY5ZGQ5N2FmMmYwOWMyMzU0ODI2Li5iZDljZTlhYmUwNjliMjYwNmY3
MDE0ODE5Njc5NmE1MzNmNWI0OWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR1RTcGFuLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdUU3Bhbi5oCkBAIC0yNiw3ICsyNiw3IEBACiAjaW5jbHVkZSAiUmVuZGVyU1ZH
SW5saW5lLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLWNsYXNzIFJlbmRlclNWR1RTcGFuIEZJ
TkFMIDogcHVibGljIFJlbmRlclNWR0lubGluZSB7CitjbGFzcyBSZW5kZXJTVkdUU3BhbiA6IHB1
YmxpYyBSZW5kZXJTVkdJbmxpbmUgewogcHVibGljOgogICAgIGV4cGxpY2l0IFJlbmRlclNWR1RT
cGFuKEVsZW1lbnQqKTsKICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25z
dCB7IHJldHVybiAiUmVuZGVyU1ZHVFNwYW4iOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHVGV4dC5oCmluZGV4IGFkZmE0NTZlNzAwOWEyM2NhODZkNWIzYjdmYTRj
OTY5NmNjM2VkNmQuLjRkNGY0YWUzZGNjNDkzYjAwNmY4Y2UzZjkyMzU5NjcyNTFjODBkMmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5oCkBAIC0zMyw3
ICszMyw3IEBAIGNsYXNzIFJlbmRlclNWR0lubGluZVRleHQ7CiBjbGFzcyBTVkdUZXh0RWxlbWVu
dDsKIGNsYXNzIFJlbmRlclNWR0lubGluZVRleHQ7CiAKLWNsYXNzIFJlbmRlclNWR1RleHQgRklO
QUwgOiBwdWJsaWMgUmVuZGVyU1ZHQmxvY2sgeworY2xhc3MgUmVuZGVyU1ZHVGV4dCA6IHB1Ymxp
YyBSZW5kZXJTVkdCbG9jayB7CiBwdWJsaWM6CiAgICAgUmVuZGVyU1ZHVGV4dChTVkdUZXh0RWxl
bWVudCopOwogICAgIHZpcnR1YWwgflJlbmRlclNWR1RleHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dFBhdGguaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dFBhdGguaAppbmRleCAzYTAyMWI4ZjM0M2Nj
ZmY0NzIyYjY4ZmI1NWUxNGMyN2JlZDE0ZGU5Li5mMWM4NzIxMzg2NTg0OWFiOWNlMjQ4NDZhYTk4
MGNiZDZmYTAwMGNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR1RleHRQYXRoLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdUZXh0UGF0aC5oCkBAIC0yNiw3ICsyNiw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotY2xhc3MgUmVuZGVyU1ZHVGV4dFBhdGggRklOQUwgOiBwdWJsaWMgUmVuZGVyU1ZHSW5saW5l
IHsKK2NsYXNzIFJlbmRlclNWR1RleHRQYXRoIDogcHVibGljIFJlbmRlclNWR0lubGluZSB7CiBw
dWJsaWM6CiAgICAgUmVuZGVyU1ZHVGV4dFBhdGgoRWxlbWVudCopOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWlu
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVHJhbnNmb3JtYWJs
ZUNvbnRhaW5lci5oCmluZGV4IDM2YWUzYWRkODUzOWY2YjllMDExOWM4ZmE5ZTNiNzgzNzQ1OWU2
YmQuLmMxMGEwOGRjMmFhMWI0OTY4YjVhZGY3NjUyZDY0MDViMDE3OTMwZTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRh
aW5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVHJhbnNm
b3JtYWJsZUNvbnRhaW5lci5oCkBAIC0yNyw3ICsyNyw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgCiBjbGFzcyBTVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudDsKLWNsYXNzIFJlbmRl
clNWR1RyYW5zZm9ybWFibGVDb250YWluZXIgRklOQUwgOiBwdWJsaWMgUmVuZGVyU1ZHQ29udGFp
bmVyIHsKK2NsYXNzIFJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIgOiBwdWJsaWMgUmVu
ZGVyU1ZHQ29udGFpbmVyIHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBSZW5kZXJTVkdUcmFuc2Zv
cm1hYmxlQ29udGFpbmVyKFNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50Kik7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVmlld3BvcnRDb250
YWluZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVmlld3BvcnRD
b250YWluZXIuaAppbmRleCBkN2M0M2U4MGY4ZjdiYTgxNDE3ZTViM2IzMmYzNmIwYjRlMDgwZjU5
Li40MjdlNDIzZGFhMmE1MjBlMWY5OTE4YWY4YTExMGNlYWFhNzg3YTc4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdWaWV3cG9ydENvbnRh
aW5lci5oCkBAIC0zMCw3ICszMCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogLy8gVGhpcyBp
cyB1c2VkIGZvciBub24tcm9vdCA8c3ZnPiBlbGVtZW50cyBhbmQgPG1hcmtlcj4gZWxlbWVudHMs
IG5laXRoZXIgb2Ygd2hpY2ggYXJlIFNWR1RyYW5zZm9ybWFibGUKIC8vIHRodXMgd2UgaW5oZXJp
dCBmcm9tIFJlbmRlclNWR0NvbnRhaW5lciBpbnN0ZWFkIG9mIFJlbmRlclNWR1RyYW5zZm9ybWFi
bGVDb250YWluZXIKLWNsYXNzIFJlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVyIEZJTkFMIDogcHVi
bGljIFJlbmRlclNWR0NvbnRhaW5lciB7CitjbGFzcyBSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5l
ciA6IHB1YmxpYyBSZW5kZXJTVkdDb250YWluZXIgewogcHVibGljOgogICAgIGV4cGxpY2l0IFJl
bmRlclNWR1ZpZXdwb3J0Q29udGFpbmVyKFNWR1N0eWxlZEVsZW1lbnQqKTsKICAgICBGbG9hdFJl
Y3Qgdmlld3BvcnQoKSBjb25zdCB7IHJldHVybiBtX3ZpZXdwb3J0OyB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>