<?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>121965</bug_id>
          
          <creation_ts>2013-09-26 11:03:38 -0700</creation_ts>
          <short_desc>REGRESSION(r156451): Broke two fast/multicol tests. (Requested by kling on #webkit).</short_desc>
          <delta_ts>2013-09-26 11:11:51 -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>120457</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>hyatt</cc>
    
    <cc>mmaerean</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>933595</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-09-26 11:03:38 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/156451 broke the build:
Broke two fast/multicol tests. (Requested by kling on #webkit).

This is an automatic bug report generated by webkitbot. 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 fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>933597</commentid>
    <comment_count>1</comment_count>
      <attachid>212725</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-09-26 11:04:10 -0700</bug_when>
    <thetext>Created attachment 212725
ROLLOUT of r156451

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>933601</commentid>
    <comment_count>2</comment_count>
      <attachid>212725</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-09-26 11:11:49 -0700</bug_when>
    <thetext>Comment on attachment 212725
ROLLOUT of r156451

Clearing flags on attachment: 212725

Committed r156478: &lt;http://trac.webkit.org/changeset/156478&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>933602</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-09-26 11:11:51 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>212725</attachid>
            <date>2013-09-26 11:04:10 -0700</date>
            <delta_ts>2013-09-26 11:11:49 -0700</delta_ts>
            <desc>ROLLOUT of r156451</desc>
            <filename>bug-121965-20130926110409.patch</filename>
            <type>text/plain</type>
            <size>83798</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU2NDc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDllZWEzNWIzN2ZiMmQ4
NWEwNzk2MzU5ODA3NmY4NjJhOTdiNDI5Zi4uNzcwMDU5NzA2NTlmYmI1ZGY3NTEyZjRiMzU3OGU4
NDA4YTRmMTIyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDEzLTA5LTI2ICBDb21t
aXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2Vk
LCByb2xsaW5nIG91dCByMTU2NDUxLgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2No
YW5nZXNldC8xNTY0NTEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEyMTk2NQorCisgICAgICAgIEJyb2tlIHR3byBmYXN0L211bHRpY29sIHRlc3RzLiAo
UmVxdWVzdGVkIGJ5IGtsaW5nIG9uCisgICAgICAgICN3ZWJraXQpLgorCisgICAgICAgICogcmVu
ZGVyaW5nL0Zsb3dUaHJlYWRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZsb3dU
aHJlYWRDb250cm9sbGVyOjp1cGRhdGVSZW5kZXJGbG93VGhyZWFkTGF5ZXJzSWZOZWVkZWQpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckVsZW1lbnQ6OnByb3BhZ2F0ZVN0eWxlVG9Bbm9ueW1vdXNDaGlsZHJlbik6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyRmxvd1RocmVhZDo6bGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZsb3dU
aHJlYWQ6OnJlZ2lvbkZvckNvbXBvc2l0ZWRMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJGbG93VGhyZWFkOjp1cGRhdGVSZWdpb25Gb3JSZW5kZXJMYXllcik6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJGbG93VGhyZWFkOjp1cGRhdGVMYXllclRvUmVnaW9uTWFwcGluZ3MpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmg6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckdlb21ldHJ5TWFwLmNwcDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyR2VvbWV0
cnlNYXAuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmNhbGN1bGF0ZUxheWVyQm91bmRzKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJC
YWNraW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6c2hvdWxk
Q2xpcENvbXBvc2l0ZWRCb3VuZHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNr
aW5nOjp1cGRhdGVHcmFwaGljc0xheWVyR2VvbWV0cnkpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJMYXllckJhY2tpbmcuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21w
b3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6Y29t
cHV0ZUNvbXBvc2l0aW5nUmVxdWlyZW1lbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyQ29tcG9zaXRvcjo6cmVidWlsZENvbXBvc2l0aW5nTGF5ZXJUcmVlKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6Y2FuQmVDb21wb3NpdGVkKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVxdWlyZXNDb21wb3NpdGluZ0Zvcklu
ZGlyZWN0UmVhc29uKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9y
Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uU2V0LmNwcDoKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5TZXQuaDoKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyUmVnaW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJlZ2lvbjo6c2V0
UmVxdWlyZXNMYXllckZvckNvbXBvc2l0aW5nKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
UmVnaW9uLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJlZ2lvblNldC5oOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ondy
aXRlTGF5ZXJzKToKKwogMjAxMy0wOS0yNiAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFw
cGxlLmNvbT4KIAogICAgICAgICBbTWVkaWFTdHJlYW1dIENsZWFudXAgcGxhdGZvcm0gaW50ZXJm
YWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmxvd1RocmVhZENvbnRy
b2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0Zsb3dUaHJlYWRDb250cm9sbGVy
LmNwcAppbmRleCA5NGUxMmFjOTA4YmVkZjVlNTg5MWFhNzM5NzJhY2VkNmQ4ZWM3ZTEyLi42OThk
MTUwZTZiYTUwYzAxNjI5OTNhNTAyNjQ2NGNjMGE0MjQwZjVmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvRmxvd1RocmVhZENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9GbG93VGhyZWFkQ29udHJvbGxlci5jcHAKQEAgLTI3MCw3ICsyNzAs
NyBAQCB2b2lkIEZsb3dUaHJlYWRDb250cm9sbGVyOjp1cGRhdGVSZW5kZXJGbG93VGhyZWFkTGF5
ZXJzSWZOZWVkZWQoKQogICAgIC8vIFdhbGsgdGhlIGZsb3cgY2hhaW4gaW4gcmV2ZXJzZSBvcmRl
ciBiZWNhdXNlIFJlbmRlclJlZ2lvbnMgbWlnaHQgYmVjb21lIFJlbmRlckxheWVycyBmb3IgdGhl
IGZvbGxvd2luZyBmbG93IHRocmVhZHMuCiAgICAgZm9yIChSZW5kZXJOYW1lZEZsb3dUaHJlYWRM
aXN0OjpyZXZlcnNlX2l0ZXJhdG9yIGl0ZXIgPSBtX3JlbmRlck5hbWVkRmxvd1RocmVhZExpc3Qt
PnJiZWdpbigpOyBpdGVyICE9IG1fcmVuZGVyTmFtZWRGbG93VGhyZWFkTGlzdC0+cmVuZCgpOyAr
K2l0ZXIpIHsKICAgICAgICAgUmVuZGVyTmFtZWRGbG93VGhyZWFkKiBmbG93UmVuZGVyZXIgPSAq
aXRlcjsKLSAgICAgICAgZmxvd1JlbmRlcmVyLT51cGRhdGVBbGxMYXllclRvUmVnaW9uTWFwcGlu
Z3NJZk5lZWRlZCgpOworICAgICAgICBmbG93UmVuZGVyZXItPnVwZGF0ZUxheWVyVG9SZWdpb25N
YXBwaW5nc0lmTmVlZGVkKCk7CiAgICAgfQogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKaW5kZXggOGI4N2Y3MjU1MmE0YzcyMThjY2YzMGJiMTEz
MjdjM2YwZDI4NjBhNS4uNGFmY2VhMTUzY2EwZDUyZWNjMmQyZjg1MTRjYTg5ZTZiYzliZmYzZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcApAQCAtNjcwLDEw
ICs2NzAsNiBAQCB2b2lkIFJlbmRlckVsZW1lbnQ6OnByb3BhZ2F0ZVN0eWxlVG9Bbm9ueW1vdXND
aGlsZHJlbihTdHlsZVByb3BhZ2F0aW9uVHlwZSBwcm9wYQogICAgICAgICAgICAgY29udGludWU7
CiAjZW5kaWYKIAotICAgICAgICAvLyBSZW5kZXJGbG93VGhyZWFkcyBhcmUgdXBkYXRlZCB0aHJv
dWdoIHRoZSBSZW5kZXJWaWV3OjpzdHlsZURpZENoYW5nZSBmdW5jdGlvbi4KLSAgICAgICAgaWYg
KGNoaWxkLT5pc1JlbmRlckZsb3dUaHJlYWQoKSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotCiAg
ICAgICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gbmV3U3R5bGUgPSBSZW5kZXJTdHlsZTo6Y3JlYXRl
QW5vbnltb3VzU3R5bGVXaXRoRGlzcGxheShzdHlsZSgpLCBjaGlsZC0+c3R5bGUoKS0+ZGlzcGxh
eSgpKTsKICAgICAgICAgaWYgKHN0eWxlKCktPnNwZWNpZmllc0NvbHVtbnMoKSkgewogICAgICAg
ICAgICAgaWYgKGNoaWxkLT5zdHlsZSgpLT5zcGVjaWZpZXNDb2x1bW5zKCkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHAKaW5kZXggMDI2OWIxMDdkZTEy
MzFhNzQxYjY4ZDIzNzI1NTE4ODVkNzliMjk0Yy4uZjE0ODE2NjRmYWYzOGYwODE4MzBlNjRmZmFk
NmZmYTc1NjllMTdkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckZsb3dUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93
VGhyZWFkLmNwcApAQCAtMjM2LDEwICsyMzYsOSBAQCB2b2lkIFJlbmRlckZsb3dUaHJlYWQ6Omxh
eW91dCgpCiAgICAgLy8gTm90ZSB0aGF0IHRoZXJlJ3Mgbm8gbmVlZCB0byBkbyBzbyBmb3IgdGhl
IGlubGluZSBtdWx0aS1jb2x1bW4gYXMgd2UgYXJlIG5vdCBtb3ZpbmcgbGF5ZXJzIGludG8gZGlm
ZmVyZW50CiAgICAgLy8gY29udGFpbmVycywgYnV0IGp1c3QgYWRqdXN0aW5nIHRoZSBwb3NpdGlv
biBvZiB0aGUgUmVuZGVyTGF5ZXJCYWNraW5nLgogICAgIGlmICghbV9uZWVkc1R3b1BoYXNlc0xh
eW91dCkgewotICAgICAgICAvLyBJZiB3ZSBoYXZlIGxheWVycyB0aGF0IG1vdmVkIGZyb20gb25l
IHJlZ2lvbiB0byBhbm90aGVyLCB3ZSB0cmlnZ2VyCisgICAgICAgIHVwZGF0ZUxheWVyVG9SZWdp
b25NYXBwaW5ncygpOworICAgICAgICAvLyBGSVhNRTogSWYgd2UgaGF2ZSBsYXllcnMgdGhhdCBt
b3ZlZCBmcm9tIG9uZSByZWdpb24gdG8gYW5vdGhlciwgd2Ugc2hvdWxkIHRyaWdnZXIKICAgICAg
ICAgLy8gYSBjb21wb3NpdGVkIGxheWVycyByZWJ1aWxkIGluIGhlcmUgdG8gbWFrZSBzdXJlIHRo
YXQgdGhlIHJlZ2lvbnMgd2lsbCBjb2xsZWN0IHRoZSByaWdodCBsYXllcnMuCi0gICAgICAgIGlm
IChpc091dE9mRmxvd1JlbmRlckZsb3dUaHJlYWQoKSAmJiB1cGRhdGVBbGxMYXllclRvUmVnaW9u
TWFwcGluZ3MoKSkKLSAgICAgICAgICAgIGxheWVyKCktPmNvbXBvc2l0b3IoKS5zZXRDb21wb3Np
dGluZ0xheWVyc05lZWRSZWJ1aWxkKCk7CiAgICAgfQogI2VuZGlmCiAKQEAgLTI1MSw3MyArMjUw
LDMyIEBAIHZvaWQgUmVuZGVyRmxvd1RocmVhZDo6bGF5b3V0KCkKIH0KIAogI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKLWJvb2wgUmVuZGVyRmxvd1RocmVhZDo6aGFzQ29tcG9zaXRp
bmdSZWdpb25EZXNjZW5kYW50KCkgY29uc3QKLXsKLSAgICBmb3IgKFJlbmRlclJlZ2lvbkxpc3Q6
OmNvbnN0X2l0ZXJhdG9yIGl0ZXIgPSBtX3JlZ2lvbkxpc3QuYmVnaW4oKTsgaXRlciAhPSBtX3Jl
Z2lvbkxpc3QuZW5kKCk7ICsraXRlcikgewotICAgICAgICBSZW5kZXJSZWdpb24qIHJlZ2lvbiA9
ICppdGVyOwotICAgICAgICBpZiAocmVnaW9uLT5oYXNMYXllcigpICYmIHJlZ2lvbi0+bGF5ZXIo
KS0+aGFzQ29tcG9zaXRpbmdEZXNjZW5kYW50KCkpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
LSAgICB9Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi1jb25zdCBSZW5kZXJMYXllckxpc3QqIFJl
bmRlckZsb3dUaHJlYWQ6OmdldExheWVyTGlzdEZvclJlZ2lvbihSZW5kZXJSZWdpb24qIHJlZ2lv
bikgY29uc3QKLXsKLSAgICBpZiAoIW1fcmVnaW9uVG9MYXllckxpc3RNYXApCi0gICAgICAgIHJl
dHVybiAwOwotICAgIEFTU0VSVCghbV9sYXllcnNUb1JlZ2lvbk1hcHBpbmdzRGlydHkpOwotICAg
IFJlZ2lvblRvTGF5ZXJMaXN0TWFwOjpjb25zdF9pdGVyYXRvciBpdGVyYXRvciA9IG1fcmVnaW9u
VG9MYXllckxpc3RNYXAtPmZpbmQocmVnaW9uKTsKLSAgICByZXR1cm4gaXRlcmF0b3IgPT0gbV9y
ZWdpb25Ub0xheWVyTGlzdE1hcC0+ZW5kKCkgPyAwIDogJml0ZXJhdG9yLT52YWx1ZTsKLX0KLQot
Ly8gRklYTUU6IG1ha2UgaXQgY29uc3Qgd2hlbiBpdCB3b24ndCBiZSBjYWxsaW5nIHJlZ2lvbkF0
QmxvY2tPZmZzZXQuCiBSZW5kZXJSZWdpb24qIFJlbmRlckZsb3dUaHJlYWQ6OnJlZ2lvbkZvckNv
bXBvc2l0ZWRMYXllcihSZW5kZXJMYXllciogY2hpbGRMYXllcikKIHsKLSAgICBpZiAoY2hpbGRM
YXllci0+cmVuZGVyQm94KCkpIHsKLSAgICAgICAgUmVuZGVyUmVnaW9uKiBzdGFydFJlZ2lvbiA9
IDA7Ci0gICAgICAgIFJlbmRlclJlZ2lvbiogZW5kUmVnaW9uID0gMDsKLSAgICAgICAgZ2V0UmVn
aW9uUmFuZ2VGb3JCb3goY2hpbGRMYXllci0+cmVuZGVyQm94KCksIHN0YXJ0UmVnaW9uLCBlbmRS
ZWdpb24pOwotICAgICAgICAvLyBUaGUgdmlkZW8gdGFnIGlzIHN1Y2ggYSBib3ggdGhhdCBkb2Vz
bid0IGhhdmUgYSByZWdpb24gcmFuZ2UgYmVjYXVzZSBpdCdzIGlubGluZSAoYnkgZGVmYXVsdCku
Ci0gICAgICAgIGlmIChzdGFydFJlZ2lvbikKLSAgICAgICAgICAgIHJldHVybiBzdGFydFJlZ2lv
bjsKLSAgICB9Ci0KLSAgICAvLyBGSVhNRTogcmVtb3ZlIHRoaXMgd2hlbiB3ZSdsbCBoYXZlIHJl
Z2lvbiByYW5nZXMgZm9yIGlubGluZXMgYXMgd2VsbC4KLSAgICBMYXlvdXRQb2ludCBmbG93VGhy
ZWFkT2Zmc2V0ID0gZmxvb3JlZExheW91dFBvaW50KGNoaWxkTGF5ZXItPnJlbmRlcmVyKCkubG9j
YWxUb0NvbnRhaW5lclBvaW50KExheW91dFBvaW50KCksIHRoaXMsIEFwcGx5Q29udGFpbmVyRmxp
cCkpOworICAgIExheW91dFBvaW50IGxlZnRUb3BMb2NhdGlvbiA9IGNoaWxkTGF5ZXItPnJlbmRl
ckJveCgpID8gY2hpbGRMYXllci0+cmVuZGVyQm94KCktPmZsaXBGb3JXcml0aW5nTW9kZShMYXlv
dXRQb2ludCgpKSA6IExheW91dFBvaW50KCk7CisgICAgTGF5b3V0UG9pbnQgZmxvd1RocmVhZE9m
ZnNldCA9IGZsb29yZWRMYXlvdXRQb2ludChjaGlsZExheWVyLT5yZW5kZXJlcigpLmxvY2FsVG9D
b250YWluZXJQb2ludChsZWZ0VG9wTG9jYXRpb24sIHRoaXMsIEFwcGx5Q29udGFpbmVyRmxpcCkp
OwogICAgIHJldHVybiByZWdpb25BdEJsb2NrT2Zmc2V0KDAsIGZsaXBGb3JXcml0aW5nTW9kZShp
c0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gZmxvd1RocmVhZE9mZnNldC55KCkgOiBmbG93VGhy
ZWFkT2Zmc2V0LngoKSksIHRydWUsIERpc2FsbG93UmVnaW9uQXV0b0dlbmVyYXRpb24pOwogfQog
Ci1SZW5kZXJSZWdpb24qIFJlbmRlckZsb3dUaHJlYWQ6OmNhY2hlZFJlZ2lvbkZvckNvbXBvc2l0
ZWRMYXllcihSZW5kZXJMYXllciogY2hpbGRMYXllcikgY29uc3QKLXsKLSAgICBpZiAoIW1fbGF5
ZXJUb1JlZ2lvbk1hcCkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgQVNTRVJUKCFtX2xheWVyc1Rv
UmVnaW9uTWFwcGluZ3NEaXJ0eSk7Ci0gICAgcmV0dXJuIG1fbGF5ZXJUb1JlZ2lvbk1hcC0+Z2V0
KGNoaWxkTGF5ZXIpOwotfQotCi0vLyBGSVhNRTogTWFrZSBpdCBjb25zdCB3aGVuIHJlZ2lvbkZv
ckNvbXBvc2l0ZWRMYXllciB3aWxsIGJlIGNvbnN0Lgotdm9pZCBSZW5kZXJGbG93VGhyZWFkOjp1
cGRhdGVMYXllclRvUmVnaW9uTWFwcGluZ3MoUmVuZGVyTGF5ZXIqIGxheWVyLCBMYXllclRvUmVn
aW9uTWFwJiBsYXllclRvUmVnaW9uTWFwLCBSZWdpb25Ub0xheWVyTGlzdE1hcCYgcmVnaW9uVG9M
YXllckxpc3RNYXAsIGJvb2wmIG5lZWRzTGF5ZXJVcGRhdGUpCit2b2lkIFJlbmRlckZsb3dUaHJl
YWQ6OnVwZGF0ZVJlZ2lvbkZvclJlbmRlckxheWVyKFJlbmRlckxheWVyKiBsYXllciwgTGF5ZXJU
b1JlZ2lvbk1hcCYgbGF5ZXJUb1JlZ2lvbk1hcCwgUmVnaW9uVG9MYXllckxpc3RNYXAmIHJlZ2lv
blRvTGF5ZXJMaXN0TWFwLCBib29sJiBuZWVkc0xheWVyVXBkYXRlKQogewogICAgIFJlbmRlclJl
Z2lvbiogcmVnaW9uID0gcmVnaW9uRm9yQ29tcG9zaXRlZExheWVyKGxheWVyKTsKICAgICBpZiAo
IW5lZWRzTGF5ZXJVcGRhdGUpIHsKKyAgICAgICAgQVNTRVJUKG1fbGF5ZXJUb1JlZ2lvbk1hcCk7
CiAgICAgICAgIC8vIEZpZ3VyZSBvdXQgaWYgd2UgbW92ZWQgdGhpcyBsYXllciBmcm9tIGEgcmVn
aW9uIHRvIHRoZSBvdGhlci4KLSAgICAgICAgUmVuZGVyUmVnaW9uKiBwcmV2aW91c1JlZ2lvbiA9
IGNhY2hlZFJlZ2lvbkZvckNvbXBvc2l0ZWRMYXllcihsYXllcik7CisgICAgICAgIFJlbmRlclJl
Z2lvbiogcHJldmlvdXNSZWdpb24gPSBtX2xheWVyVG9SZWdpb25NYXAtPmdldChsYXllcik7CiAg
ICAgICAgIGlmIChwcmV2aW91c1JlZ2lvbiAhPSByZWdpb24pCiAgICAgICAgICAgICBuZWVkc0xh
eWVyVXBkYXRlID0gdHJ1ZTsKICAgICB9Ci0KICAgICBpZiAoIXJlZ2lvbikKICAgICAgICAgcmV0
dXJuOwotCiAgICAgbGF5ZXJUb1JlZ2lvbk1hcC5zZXQobGF5ZXIsIHJlZ2lvbik7Ci0KICAgICBS
ZWdpb25Ub0xheWVyTGlzdE1hcDo6aXRlcmF0b3IgaXRlcmF0b3IgPSByZWdpb25Ub0xheWVyTGlz
dE1hcC5maW5kKHJlZ2lvbik7CiAgICAgUmVuZGVyTGF5ZXJMaXN0JiBsaXN0ID0gaXRlcmF0b3Ig
PT0gcmVnaW9uVG9MYXllckxpc3RNYXAuZW5kKCkgPyByZWdpb25Ub0xheWVyTGlzdE1hcC5zZXQo
cmVnaW9uLCBSZW5kZXJMYXllckxpc3QoKSkuaXRlcmF0b3ItPnZhbHVlIDogaXRlcmF0b3ItPnZh
bHVlOwotICAgIEFTU0VSVCghbGlzdC5jb250YWlucyhsYXllcikpOwogICAgIGxpc3QuYXBwZW5k
KGxheWVyKTsKIH0KIAotYm9vbCBSZW5kZXJGbG93VGhyZWFkOjp1cGRhdGVBbGxMYXllclRvUmVn
aW9uTWFwcGluZ3MoKQorYm9vbCBSZW5kZXJGbG93VGhyZWFkOjp1cGRhdGVMYXllclRvUmVnaW9u
TWFwcGluZ3MoKQogewogICAgIC8vIFdlIG9ubHkgbmVlZCB0byBtYXAgbGF5ZXJzIHRvIHJlZ2lv
bnMgZm9yIG5hbWVkIGZsb3cgdGhyZWFkcy4KICAgICAvLyBNdWx0aS1jb2x1bW4gdGhyZWFkcyBh
cmUgZGlzcGxheWVkIG9uIHRvcCBvZiB0aGUgcmVnaW9ucyBhbmQgZG8gbm90IHJlcXVpcmUKQEAg
LTMzMCwzMCArMjg4LDM4IEBAIGJvb2wgUmVuZGVyRmxvd1RocmVhZDo6dXBkYXRlQWxsTGF5ZXJU
b1JlZ2lvbk1hcHBpbmdzKCkKICAgICBDdXJyZW50UmVuZGVyRmxvd1RocmVhZERpc2FibGVyIGRp
c2FibGVyKCZ2aWV3KCkpOwogCiAgICAgLy8gSWYgdGhlIFJlbmRlckZsb3dUaHJlYWQgaGFkIGEg
ei1pbmRleCBsYXllciB1cGRhdGUsIHRoZW4gd2UgbmVlZCB0byB1cGRhdGUgdGhlIGNvbXBvc2l0
ZWQgbGF5ZXJzIHRvby4KLSAgICBib29sIG5lZWRzTGF5ZXJVcGRhdGUgPSBsYXllcigpLT5pc0Rp
cnR5UmVuZGVyRmxvd1RocmVhZCgpIHx8IG1fbGF5ZXJzVG9SZWdpb25NYXBwaW5nc0RpcnR5IHx8
ICFtX2xheWVyVG9SZWdpb25NYXAuZ2V0KCk7CisgICAgYm9vbCBuZWVkc0xheWVyVXBkYXRlID0g
bV9sYXllcnNUb1JlZ2lvbk1hcHBpbmdzRGlydHkgfHwgIW1fbGF5ZXJUb1JlZ2lvbk1hcC5nZXQo
KTsKICAgICBsYXllcigpLT51cGRhdGVMYXllckxpc3RzSWZOZWVkZWQoKTsKIAogICAgIExheWVy
VG9SZWdpb25NYXAgbGF5ZXJUb1JlZ2lvbk1hcDsKICAgICBSZWdpb25Ub0xheWVyTGlzdE1hcCBy
ZWdpb25Ub0xheWVyTGlzdE1hcDsKIAotICAgIFJlbmRlckxheWVyTGlzdCogbGlzdHNbXSA9IHsg
bGF5ZXIoKS0+bmVnWk9yZGVyTGlzdCgpLCBsYXllcigpLT5ub3JtYWxGbG93TGlzdCgpLCBsYXll
cigpLT5wb3NaT3JkZXJMaXN0KCl9OwotICAgIGZvciAoc2l6ZV90IGxpc3RJbmRleCA9IDA7IGxp
c3RJbmRleCA8IHNpemVvZihsaXN0cykgLyBzaXplb2YobGlzdHNbMF0pOyArK2xpc3RJbmRleCkK
LSAgICAgICAgaWYgKFJlbmRlckxheWVyTGlzdCogbGlzdCA9IGxpc3RzW2xpc3RJbmRleF0pCi0g
ICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMCwgbGlzdFNpemUgPSBsaXN0LT5zaXplKCk7IGkg
PCBsaXN0U2l6ZTsgKytpKQotICAgICAgICAgICAgICAgIHVwZGF0ZUxheWVyVG9SZWdpb25NYXBw
aW5ncyhsaXN0LT5hdChpKSwgbGF5ZXJUb1JlZ2lvbk1hcCwgcmVnaW9uVG9MYXllckxpc3RNYXAs
IG5lZWRzTGF5ZXJVcGRhdGUpOworICAgIGlmIChWZWN0b3I8UmVuZGVyTGF5ZXIqPiogbmVnWk9y
ZGVyTGlzdCA9IGxheWVyKCktPm5lZ1pPcmRlckxpc3QoKSkgeworICAgICAgICBzaXplX3QgbGlz
dFNpemUgPSBuZWdaT3JkZXJMaXN0LT5zaXplKCk7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgbGlzdFNpemU7ICsraSkKKyAgICAgICAgICAgIHVwZGF0ZVJlZ2lvbkZvclJlbmRlckxh
eWVyKG5lZ1pPcmRlckxpc3QtPmF0KGkpLCBsYXllclRvUmVnaW9uTWFwLCByZWdpb25Ub0xheWVy
TGlzdE1hcCwgbmVlZHNMYXllclVwZGF0ZSk7CisgICAgfQorCisgICAgaWYgKFZlY3RvcjxSZW5k
ZXJMYXllcio+KiBub3JtYWxGbG93TGlzdCA9IGxheWVyKCktPm5vcm1hbEZsb3dMaXN0KCkpIHsK
KyAgICAgICAgc2l6ZV90IGxpc3RTaXplID0gbm9ybWFsRmxvd0xpc3QtPnNpemUoKTsKKyAgICAg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsaXN0U2l6ZTsgKytpKQorICAgICAgICAgICAgdXBk
YXRlUmVnaW9uRm9yUmVuZGVyTGF5ZXIobm9ybWFsRmxvd0xpc3QtPmF0KGkpLCBsYXllclRvUmVn
aW9uTWFwLCByZWdpb25Ub0xheWVyTGlzdE1hcCwgbmVlZHNMYXllclVwZGF0ZSk7CisgICAgfQor
ICAgIAorICAgIGlmIChWZWN0b3I8UmVuZGVyTGF5ZXIqPiogcG9zWk9yZGVyTGlzdCA9IGxheWVy
KCktPnBvc1pPcmRlckxpc3QoKSkgeworICAgICAgICBzaXplX3QgbGlzdFNpemUgPSBwb3NaT3Jk
ZXJMaXN0LT5zaXplKCk7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGlzdFNpemU7
ICsraSkKKyAgICAgICAgICAgIHVwZGF0ZVJlZ2lvbkZvclJlbmRlckxheWVyKHBvc1pPcmRlckxp
c3QtPmF0KGkpLCBsYXllclRvUmVnaW9uTWFwLCByZWdpb25Ub0xheWVyTGlzdE1hcCwgbmVlZHNM
YXllclVwZGF0ZSk7CisgICAgfQogCiAgICAgaWYgKG5lZWRzTGF5ZXJVcGRhdGUpIHsKICAgICAg
ICAgaWYgKCFtX2xheWVyVG9SZWdpb25NYXApCiAgICAgICAgICAgICBtX2xheWVyVG9SZWdpb25N
YXAgPSBhZG9wdFB0cihuZXcgTGF5ZXJUb1JlZ2lvbk1hcCgpKTsKICAgICAgICAgbV9sYXllclRv
UmVnaW9uTWFwLT5zd2FwKGxheWVyVG9SZWdpb25NYXApOwogCi0gICAgICAgIGlmICghbV9yZWdp
b25Ub0xheWVyTGlzdE1hcCkKLSAgICAgICAgICAgIG1fcmVnaW9uVG9MYXllckxpc3RNYXAgPSBh
ZG9wdFB0cihuZXcgUmVnaW9uVG9MYXllckxpc3RNYXAoKSk7Ci0gICAgICAgIG1fcmVnaW9uVG9M
YXllckxpc3RNYXAtPnN3YXAocmVnaW9uVG9MYXllckxpc3RNYXApOwotCiAgICAgICAgIGZvciAo
UmVuZGVyUmVnaW9uTGlzdDo6aXRlcmF0b3IgaXRlciA9IG1fcmVnaW9uTGlzdC5iZWdpbigpOyBp
dGVyICE9IG1fcmVnaW9uTGlzdC5lbmQoKTsgKytpdGVyKSB7CiAgICAgICAgICAgICBSZW5kZXJS
ZWdpb24qIHJlZ2lvbiA9ICppdGVyOwotICAgICAgICAgICAgcmVnaW9uLT5zZXRSZXF1aXJlc0xh
eWVyRm9yQ29tcG9zaXRpbmcobV9yZWdpb25Ub0xheWVyTGlzdE1hcC0+Y29udGFpbnMocmVnaW9u
KSk7CisgICAgICAgICAgICByZWdpb24tPnNldFJlcXVpcmVzTGF5ZXJGb3JDb21wb3NpdGluZyhy
ZWdpb25Ub0xheWVyTGlzdE1hcC5jb250YWlucyhyZWdpb24pKTsKICAgICAgICAgfQogICAgIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmgKaW5kZXggMmVi
MTAwNDU3NzZlMWJhYjE3Nzg3YjJkZTk2YTFkNDg2YjkwNmJhMC4uMDkzMmVhODJjYzk0NWNkODY2
Mjg5YTM1ZDQ0ZjNiNzM5NTRkODk3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckZsb3dUaHJlYWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyRmxvd1RocmVhZC5oCkBAIC00NCwxMiArNDQsMTAgQEAgY2xhc3MgUmVuZGVyRmxvd1RocmVh
ZDsKIGNsYXNzIFJlbmRlclN0eWxlOwogY2xhc3MgUmVuZGVyUmVnaW9uOwogCi0jaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogdHlwZWRlZiBMaXN0SGFzaFNldDxSZW5kZXJSZWdpb24q
PiBSZW5kZXJSZWdpb25MaXN0OwogdHlwZWRlZiBWZWN0b3I8UmVuZGVyTGF5ZXIqPiBSZW5kZXJM
YXllckxpc3Q7CiB0eXBlZGVmIEhhc2hNYXA8UmVuZGVyUmVnaW9uKiwgUmVuZGVyTGF5ZXJMaXN0
PiBSZWdpb25Ub0xheWVyTGlzdE1hcDsKIHR5cGVkZWYgSGFzaE1hcDxSZW5kZXJMYXllciosIFJl
bmRlclJlZ2lvbio+IExheWVyVG9SZWdpb25NYXA7Ci0jZW5kaWYKIAogLy8gUmVuZGVyRmxvd1Ro
cmVhZCBpcyB1c2VkIHRvIGNvbGxlY3QgYWxsIHRoZSByZW5kZXIgb2JqZWN0cyB0aGF0IHBhcnRp
Y2lwYXRlIGluIGEKIC8vIGZsb3cgdGhyZWFkLiBJdCB3aWxsIGFsc28gaGVscCBpbiBkb2luZyB0
aGUgbGF5b3V0LiBIb3dldmVyLCBpdCB3aWxsIG5vdCByZW5kZXIKQEAgLTExOSw2ICsxMTcsOCBA
QCBwdWJsaWM6CiAKICAgICBSZW5kZXJSZWdpb24qIHJlZ2lvbkF0QmxvY2tPZmZzZXQoY29uc3Qg
UmVuZGVyQm94KiwgTGF5b3V0VW5pdCwgYm9vbCBleHRlbmRMYXN0UmVnaW9uID0gZmFsc2UsIFJl
Z2lvbkF1dG9HZW5lcmF0aW9uUG9saWN5ID0gQWxsb3dSZWdpb25BdXRvR2VuZXJhdGlvbik7CiAK
KyAgICBjb25zdCBSZW5kZXJMYXllckxpc3QqIGdldExheWVyTGlzdEZvclJlZ2lvbihSZW5kZXJS
ZWdpb24qKSBjb25zdDsKKwogICAgIGJvb2wgcmVnaW9uc0hhdmVVbmlmb3JtTG9naWNhbFdpZHRo
KCkgY29uc3QgeyByZXR1cm4gbV9yZWdpb25zSGF2ZVVuaWZvcm1Mb2dpY2FsV2lkdGg7IH0KICAg
ICBib29sIHJlZ2lvbnNIYXZlVW5pZm9ybUxvZ2ljYWxIZWlnaHQoKSBjb25zdCB7IHJldHVybiBt
X3JlZ2lvbnNIYXZlVW5pZm9ybUxvZ2ljYWxIZWlnaHQ7IH0KIApAQCAtMTgxLDIwICsxODEsMTIg
QEAgcHVibGljOgogICAgIHZvaWQgY2xlYXJOZWVkc1R3b1BoYXNlc0xheW91dCgpIHsgbV9uZWVk
c1R3b1BoYXNlc0xheW91dCA9IGZhbHNlOyB9CiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpCi0gICAgLy8gV2hldGhlciBhbnkgb2YgdGhlIHJlZ2lvbnMgaGFzIGEgY29tcG9zaXRp
bmcgZGVzY2VuZGFudC4KLSAgICBib29sIGhhc0NvbXBvc2l0aW5nUmVnaW9uRGVzY2VuZGFudCgp
IGNvbnN0OwotCiAgICAgdm9pZCBzZXROZWVkc0xheWVyVG9SZWdpb25NYXBwaW5nc1VwZGF0ZSgp
IHsgbV9sYXllcnNUb1JlZ2lvbk1hcHBpbmdzRGlydHkgPSB0cnVlOyB9Ci0gICAgdm9pZCB1cGRh
dGVBbGxMYXllclRvUmVnaW9uTWFwcGluZ3NJZk5lZWRlZCgpCisgICAgdm9pZCB1cGRhdGVMYXll
clRvUmVnaW9uTWFwcGluZ3NJZk5lZWRlZCgpCiAgICAgewogICAgICAgICBpZiAobV9sYXllcnNU
b1JlZ2lvbk1hcHBpbmdzRGlydHkpCi0gICAgICAgICAgICB1cGRhdGVBbGxMYXllclRvUmVnaW9u
TWFwcGluZ3MoKTsKKyAgICAgICAgICAgIHVwZGF0ZUxheWVyVG9SZWdpb25NYXBwaW5ncygpOwog
ICAgIH0KLQotICAgIGNvbnN0IFJlbmRlckxheWVyTGlzdCogZ2V0TGF5ZXJMaXN0Rm9yUmVnaW9u
KFJlbmRlclJlZ2lvbiopIGNvbnN0OwotCi0gICAgUmVuZGVyUmVnaW9uKiByZWdpb25Gb3JDb21w
b3NpdGVkTGF5ZXIoUmVuZGVyTGF5ZXIqKTsgLy8gQnkgbWVhbnMgb2YgZ2V0UmVnaW9uUmFuZ2VG
b3JCb3ggb3IgcmVnaW9uQXRCbG9ja09mZnNldC4KLSAgICBSZW5kZXJSZWdpb24qIGNhY2hlZFJl
Z2lvbkZvckNvbXBvc2l0ZWRMYXllcihSZW5kZXJMYXllciopIGNvbnN0OwogI2VuZGlmCiAKICAg
ICB2b2lkIHB1c2hGbG93VGhyZWFkTGF5b3V0U3RhdGUoY29uc3QgUmVuZGVyT2JqZWN0Kik7CkBA
IC0yMzAsMTAgKzIyMiw5IEBAIHByb3RlY3RlZDoKICAgICBMYXlvdXRSZWN0IGNvbXB1dGVSZWdp
b25DbGlwcGluZ1JlY3QoY29uc3QgTGF5b3V0UG9pbnQmLCBjb25zdCBMYXlvdXRSZWN0JiwgY29u
c3QgTGF5b3V0UmVjdCYpIGNvbnN0OwogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQotICAgIGJvb2wgdXBkYXRlQWxsTGF5ZXJUb1JlZ2lvbk1hcHBpbmdzKCk7Ci0KLSAgICAvLyBU
cmlnZ2VycyBhIGxheWVycycgdXBkYXRlIGlmIGEgbGF5ZXIgaGFzIG1vdmVkIGZyb20gYSByZWdp
b24gdG8gYW5vdGhlciBzaW5jZSB0aGUgbGFzdCB1cGRhdGUuCi0gICAgdm9pZCB1cGRhdGVMYXll
clRvUmVnaW9uTWFwcGluZ3MoUmVuZGVyTGF5ZXIqLCBMYXllclRvUmVnaW9uTWFwJiwgUmVnaW9u
VG9MYXllckxpc3RNYXAmLCBib29sJiBuZWVkc0xheWVyVXBkYXRlKTsKKyAgICBSZW5kZXJSZWdp
b24qIHJlZ2lvbkZvckNvbXBvc2l0ZWRMYXllcihSZW5kZXJMYXllciopOworICAgIGJvb2wgdXBk
YXRlTGF5ZXJUb1JlZ2lvbk1hcHBpbmdzKCk7CisgICAgdm9pZCB1cGRhdGVSZWdpb25Gb3JSZW5k
ZXJMYXllcihSZW5kZXJMYXllciosIExheWVyVG9SZWdpb25NYXAmLCBSZWdpb25Ub0xheWVyTGlz
dE1hcCYsIGJvb2wmIG5lZWRzTGF5ZXJVcGRhdGUpOwogI2VuZGlmCiAKICAgICB2b2lkIHNldERp
c3BhdGNoUmVnaW9uTGF5b3V0VXBkYXRlRXZlbnQoYm9vbCB2YWx1ZSkgeyBtX2Rpc3BhdGNoUmVn
aW9uTGF5b3V0VXBkYXRlRXZlbnQgPSB2YWx1ZTsgfQpAQCAtMzEzLDExICszMDQsNyBAQCBwcm90
ZWN0ZWQ6CiAgICAgfTsKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSAgICAv
LyBUbyBlYXNpbHkgZmluZCB0aGUgcmVnaW9uIHdoZXJlIGEgbGF5ZXIgc2hvdWxkIGJlIHBhaW50
ZWQuCiAgICAgT3duUHRyPExheWVyVG9SZWdpb25NYXA+IG1fbGF5ZXJUb1JlZ2lvbk1hcDsKLQot
ICAgIC8vIFRvIGVhc2lseSBmaW5kIHRoZSBsaXN0IG9mIGxheWVycyB0aGF0IHBhaW50IGluIGEg
cmVnaW9uLgotICAgIE93blB0cjxSZWdpb25Ub0xheWVyTGlzdE1hcD4gbV9yZWdpb25Ub0xheWVy
TGlzdE1hcDsKICNlbmRpZgogCiAgICAgLy8gQSBtYXBzIGZyb20gUmVuZGVyQm94CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR2VvbWV0cnlNYXAuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdlb21ldHJ5TWFwLmNwcAppbmRleCA2YmFlNDJh
MTBkMjgzNTUxMzlhM2FjYjNjYWJmNWQyZDZkZjQ3OGMwLi4xODYyYTk1Y2JkY2UxZTUyZTdlYmNm
NTNmMjE5ODY1MzNjY2Y0MzQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyR2VvbWV0cnlNYXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJHZW9tZXRyeU1hcC5jcHAKQEAgLTI2LDcgKzI2LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlICJSZW5kZXJHZW9tZXRyeU1hcC5oIgogCi0jaW5jbHVkZSAiUmVuZGVyRmxvd1Ro
cmVhZC5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5o
IgogI2luY2x1ZGUgIlRyYW5zZm9ybVN0YXRlLmgiCkBAIC0yNTIsMTIgKzI1MSw2IEBAIHZvaWQg
UmVuZGVyR2VvbWV0cnlNYXA6OnB1c2hWaWV3KGNvbnN0IFJlbmRlclZpZXcqIHZpZXcsIGNvbnN0
IExheW91dFNpemUmIHNjcm9sCiAgICAgc3RlcEluc2VydGVkKHN0ZXApOwogfQogCi12b2lkIFJl
bmRlckdlb21ldHJ5TWFwOjpwdXNoUmVuZGVyRmxvd1RocmVhZChjb25zdCBSZW5kZXJGbG93VGhy
ZWFkKiBmbG93VGhyZWFkKQotewotICAgIG1fbWFwcGluZy5hcHBlbmQoUmVuZGVyR2VvbWV0cnlN
YXBTdGVwKGZsb3dUaHJlYWQsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlKSk7Ci0gICAgc3Rl
cEluc2VydGVkKG1fbWFwcGluZy5sYXN0KCkpOwotfQotCiB2b2lkIFJlbmRlckdlb21ldHJ5TWFw
Ojpwb3BNYXBwaW5nc1RvQW5jZXN0b3IoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5j
ZXN0b3JSZW5kZXJlcikKIHsKICAgICBBU1NFUlQobV9tYXBwaW5nLnNpemUoKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR2VvbWV0cnlNYXAuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHZW9tZXRyeU1hcC5oCmluZGV4IDQ0ZmJiZTViYzY3
OTZkNTQxNTdlYWUzMGEwMTQ2YWE3ZGVmYTA5OGEuLjkyZDUyMDlmZmQyZWI0ZTRiNjg4MjQ4NjI1
YzZmNWYwZjI1NTNiNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJHZW9tZXRyeU1hcC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHZW9t
ZXRyeU1hcC5oCkBAIC0zNiw3ICszNiw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xh
c3MgUmVuZGVyRmxvd1RocmVhZDsKIGNsYXNzIFJlbmRlckxheWVyOwogY2xhc3MgUmVuZGVyTGF5
ZXJNb2RlbE9iamVjdDsKIGNsYXNzIFJlbmRlclZpZXc7CkBAIC0xMTEsNyArMTEwLDYgQEAgcHVi
bGljOgogCiAgICAgLy8gUmVuZGVyVmlldyBnZXRzIHNwZWNpYWwgdHJlYXRtZW50LCBiZWNhdXNl
IGl0IGFwcGxpZXMgdGhlIHNjcm9sbCBvZmZzZXQgb25seSBmb3IgZWxlbWVudHMgaW5zaWRlIGlu
IGZpeGVkIHBvc2l0aW9uLgogICAgIHZvaWQgcHVzaFZpZXcoY29uc3QgUmVuZGVyVmlldyosIGNv
bnN0IExheW91dFNpemUmIHNjcm9sbE9mZnNldCwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgq
ID0gMCk7Ci0gICAgdm9pZCBwdXNoUmVuZGVyRmxvd1RocmVhZChjb25zdCBSZW5kZXJGbG93VGhy
ZWFkKik7CiAKIHByaXZhdGU6CiAgICAgdm9pZCBtYXBUb0NvbnRhaW5lcihUcmFuc2Zvcm1TdGF0
ZSYsIGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGNvbnRhaW5lciA9IDApIGNvbnN0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXggYmE4YWM0ZTAwMjBm
YjljNjVkYzRjZmE3YjExMTJmNmJmZDczNDcwOC4uYmE0YjIzZmFkYmFkZjRhYTZlZWQ1MDZmMjhm
ODNlOTFmYjM3MmM3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3Bw
CkBAIC01NTM1LDggKzU1MzUsNyBAQCBMYXlvdXRSZWN0IFJlbmRlckxheWVyOjpjYWxjdWxhdGVM
YXllckJvdW5kcyhjb25zdCBSZW5kZXJMYXllciogYW5jZXN0b3JMYXllciwgYwogICAgICAgICBz
aXplX3QgbGlzdFNpemUgPSBwb3NaT3JkZXJMaXN0LT5zaXplKCk7CiAgICAgICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgbGlzdFNpemU7ICsraSkgewogICAgICAgICAgICAgUmVuZGVyTGF5ZXIq
IGN1ckxheWVyID0gcG9zWk9yZGVyTGlzdC0+YXQoaSk7Ci0gICAgICAgICAgICAvLyBUaGUgUmVu
ZGVyTmFtZWRGbG93VGhyZWFkIGlzIGlnbm9yZWQgd2hlbiB3ZSBjYWxjdWxhdGUgdGhlIGJvdW5k
cyBvZiB0aGUgUmVuZGVyVmlldy4KLSAgICAgICAgICAgIGlmICgoZmxhZ3MgJiBJbmNsdWRlQ29t
cG9zaXRlZERlc2NlbmRhbnRzIHx8ICFjdXJMYXllci0+aXNDb21wb3NpdGVkKCkpICYmICFjdXJM
YXllci0+aXNPdXRPZkZsb3dSZW5kZXJGbG93VGhyZWFkKCkpIHsKKyAgICAgICAgICAgIGlmIChm
bGFncyAmIEluY2x1ZGVDb21wb3NpdGVkRGVzY2VuZGFudHMgfHwgIWN1ckxheWVyLT5pc0NvbXBv
c2l0ZWQoKSkgewogICAgICAgICAgICAgICAgIExheW91dFJlY3QgY2hpbGRVbmlvbkJvdW5kcyA9
IGN1ckxheWVyLT5jYWxjdWxhdGVMYXllckJvdW5kcyh0aGlzLCAwLCBkZXNjZW5kYW50RmxhZ3Mp
OwogICAgICAgICAgICAgICAgIHVuaW9uQm91bmRzLnVuaXRlKGNoaWxkVW5pb25Cb3VuZHMpOwog
ICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAppbmRleCBk
NjA3ODQ5MzFhNWE5MDZiNWJkYzIwYjJiYjc1M2U3NDc4ZGFkM2Q5Li41ZTIzNTAzNmUzMWJmNDlm
ZDVhMWI0YTJiM2Q5NzZjMTdhM2RlMGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuaApAQCAtNzU3LDcgKzc1Nyw2IEBAIHB1YmxpYzoKIAogI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKICAgICBib29sIGlzQ29tcG9zaXRlZCgpIGNvbnN0IHsgcmV0dXJuIG1f
YmFja2luZyAhPSAwOyB9Ci0gICAgYm9vbCBoYXNDb21wb3NpdGluZ0Rlc2NlbmRhbnQoKSBjb25z
dCB7IHJldHVybiBtX2hhc0NvbXBvc2l0aW5nRGVzY2VuZGFudDsgfQogICAgIGJvb2wgaGFzQ29t
cG9zaXRlZE1hc2soKSBjb25zdDsKICAgICBSZW5kZXJMYXllckJhY2tpbmcqIGJhY2tpbmcoKSBj
b25zdCB7IHJldHVybiBtX2JhY2tpbmcuZ2V0KCk7IH0KICAgICBSZW5kZXJMYXllckJhY2tpbmcq
IGVuc3VyZUJhY2tpbmcoKTsKQEAgLTgyMSwxNSArODIwLDcgQEAgcHVibGljOgogICAgIFZpZXdw
b3J0Q29uc3RyYWluZWROb3RDb21wb3NpdGVkUmVhc29uIHZpZXdwb3J0Q29uc3RyYWluZWROb3RD
b21wb3NpdGVkUmVhc29uKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8Vmlld3BvcnRDb25z
dHJhaW5lZE5vdENvbXBvc2l0ZWRSZWFzb24+KG1fdmlld3BvcnRDb25zdHJhaW5lZE5vdENvbXBv
c2l0ZWRSZWFzb24pOyB9CiAjZW5kaWYKICAgICAKLSAgICBib29sIGlzUmVuZGVyRmxvd1RocmVh
ZCgpIGNvbnN0IHsgcmV0dXJuIHJlbmRlcmVyKCkuaXNSZW5kZXJGbG93VGhyZWFkKCk7IH0KICAg
ICBib29sIGlzT3V0T2ZGbG93UmVuZGVyRmxvd1RocmVhZCgpIGNvbnN0IHsgcmV0dXJuIHJlbmRl
cmVyKCkuaXNPdXRPZkZsb3dSZW5kZXJGbG93VGhyZWFkKCk7IH0KLSAgICBib29sIGlzSW5zaWRl
Rmxvd1RocmVhZCgpIGNvbnN0IHsgcmV0dXJuIHJlbmRlcmVyKCkuZmxvd1RocmVhZFN0YXRlKCkg
IT0gUmVuZGVyT2JqZWN0OjpOb3RJbnNpZGVGbG93VGhyZWFkOyB9Ci0gICAgYm9vbCBpc0luc2lk
ZU91dE9mRmxvd1RocmVhZCgpIGNvbnN0IHsgcmV0dXJuIHJlbmRlcmVyKCkuZmxvd1RocmVhZFN0
YXRlKCkgPT0gUmVuZGVyT2JqZWN0OjpJbnNpZGVPdXRPZkZsb3dUaHJlYWQ7IH0KLSAgICBib29s
IGlzRGlydHlSZW5kZXJGbG93VGhyZWFkKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChp
c1JlbmRlckZsb3dUaHJlYWQoKSk7Ci0gICAgICAgIHJldHVybiBtX3pPcmRlckxpc3RzRGlydHkg
fHwgbV9ub3JtYWxGbG93TGlzdERpcnR5OwotICAgIH0KIAogcHJpdmF0ZToKICAgICBlbnVtIENv
bGxlY3RMYXllcnNCZWhhdmlvciB7IFN0b3BBdFN0YWNraW5nQ29udGV4dHMsIFN0b3BBdFN0YWNr
aW5nQ29udGFpbmVycyB9OwpAQCAtMTEwMiw2ICsxMDkzLDcgQEAgcHJpdmF0ZToKICAgICBib29s
IHVzZVJlZ2lvbkJhc2VkQ29sdW1ucygpIGNvbnN0OwogICAgIAogI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykgICAgCisgICAgYm9vbCBoYXNDb21wb3NpdGluZ0Rlc2NlbmRhbnQoKSBj
b25zdCB7IHJldHVybiBtX2hhc0NvbXBvc2l0aW5nRGVzY2VuZGFudDsgfQogICAgIHZvaWQgc2V0
SGFzQ29tcG9zaXRpbmdEZXNjZW5kYW50KGJvb2wgYikgIHsgbV9oYXNDb21wb3NpdGluZ0Rlc2Nl
bmRhbnQgPSBiOyB9CiAgICAgCiAgICAgZW51bSBJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKaW5k
ZXggZDA5OWQ1ZDU3OGE0NDFlZWI5NGVjYjQwN2I4MjhkMTNmN2RkOWI4Ni4uNmU0ZDk2ZDFmMWRm
MzI1YjIzMGRhNWU5MDcxZjAzMmM5ZDZkYWYxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKQEAgLTQ3LDEyICs0NywxMCBAQAogI2luY2x1
ZGUgIktleWZyYW1lTGlzdC5oIgogI2luY2x1ZGUgIlBsdWdpblZpZXdCYXNlLmgiCiAjaW5jbHVk
ZSAiUHJvZ3Jlc3NUcmFja2VyLmgiCi0jaW5jbHVkZSAiUmVuZGVyRmxvd1RocmVhZC5oIiAKICNp
bmNsdWRlICJSZW5kZXJJRnJhbWUuaCIKICNpbmNsdWRlICJSZW5kZXJJbWFnZS5oIgogI2luY2x1
ZGUgIlJlbmRlckxheWVyQ29tcG9zaXRvci5oIgogI2luY2x1ZGUgIlJlbmRlckVtYmVkZGVkT2Jq
ZWN0LmgiCi0jaW5jbHVkZSAiUmVuZGVyUmVnaW9uLmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlkZW8u
aCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVkZSAiU2Nyb2xsaW5nQ29vcmRpbmF0
b3IuaCIKQEAgLTQwOSw5ICs0MDcsNiBAQCBib29sIFJlbmRlckxheWVyQmFja2luZzo6c2hvdWxk
Q2xpcENvbXBvc2l0ZWRCb3VuZHMoKSBjb25zdAogICAgIGlmIChsYXllck9yQW5jZXN0b3JJc1Ry
YW5zZm9ybWVkT3JVc2luZ0NvbXBvc2l0ZWRTY3JvbGxpbmcobV9vd25pbmdMYXllcikpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmIChtX293bmluZ0xheWVyLT5pc0luc2lkZU91dE9m
Rmxvd1RocmVhZCgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KICAgICByZXR1cm4gdHJ1ZTsK
IH0KIApAQCAtNjQ4LDggKzY0Myw2IEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVH
cmFwaGljc0xheWVyR2VvbWV0cnkoKQogICAgIEludFJlY3QgcmVsYXRpdmVDb21wb3NpdGluZ0Jv
dW5kcyhsb2NhbENvbXBvc2l0aW5nQm91bmRzKTsKICAgICByZWxhdGl2ZUNvbXBvc2l0aW5nQm91
bmRzLm1vdmVCeShkZWx0YSk7CiAKLSAgICBhZGp1c3RBbmNlc3RvckNvbXBvc2l0aW5nQm91bmRz
Rm9yRmxvd1RocmVhZChhbmNlc3RvckNvbXBvc2l0aW5nQm91bmRzLCBjb21wQW5jZXN0b3IpOwot
CiAgICAgSW50UG9pbnQgZ3JhcGhpY3NMYXllclBhcmVudExvY2F0aW9uOwogICAgIGlmIChjb21w
QW5jZXN0b3IgJiYgY29tcEFuY2VzdG9yLT5iYWNraW5nKCktPmhhc0NsaXBwaW5nTGF5ZXIoKSkg
ewogICAgICAgICAvLyBJZiB0aGUgY29tcG9zaXRpbmcgYW5jZXN0b3IgaGFzIGEgbGF5ZXIgdG8g
Y2xpcCBjaGlsZHJlbiwgd2UgcGFyZW50IGluIHRoYXQsIGFuZCB0aGVyZWZvcmUKQEAgLTg0Nyw1
MiArODQwLDYgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUdyYXBoaWNzTGF5ZXJH
ZW9tZXRyeSgpCiAgICAgcmVnaXN0ZXJTY3JvbGxpbmdMYXllcnMoKTsKIH0KIAotc3RhdGljIFJl
bmRlckxheWVyKiBlbmNsb3NpbmdGbG93VGhyZWFkQW5jZXN0b3IoUmVuZGVyTGF5ZXIqIGN1cnIp
Ci17Ci0gICAgZm9yIChjdXJyID0gY3Vyci0+cGFyZW50KCk7IGN1cnIgJiYgIWN1cnItPmlzUmVu
ZGVyRmxvd1RocmVhZCgpOyBjdXJyID0gY3Vyci0+cGFyZW50KCkpIHsKLSAgICAgICAgaWYgKGN1
cnItPmlzU3RhY2tpbmdDb250YWluZXIoKSAmJiBjdXJyLT5pc0NvbXBvc2l0ZWQoKSkgewotICAg
ICAgICAgICAgLy8gV2Ugb25seSBhZGp1c3QgdGhlIHBvc2l0aW9uIG9mIHRoZSBmaXJzdCBsZXZl
bCBvZiBsYXllcnMuCi0gICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgfQotICAgIH0KLSAg
ICByZXR1cm4gY3VycjsKLX0KLQotdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OmFkanVzdEFuY2Vz
dG9yQ29tcG9zaXRpbmdCb3VuZHNGb3JGbG93VGhyZWFkKEludFJlY3QmIGFuY2VzdG9yQ29tcG9z
aXRpbmdCb3VuZHMsIGNvbnN0IFJlbmRlckxheWVyKiBjb21wb3NpdGluZ0FuY2VzdG9yKSBjb25z
dAotewotICAgIGlmICghbV9vd25pbmdMYXllci0+aXNJbnNpZGVGbG93VGhyZWFkKCkpCi0gICAg
ICAgIHJldHVybjsKLQotICAgIFJlbmRlckxheWVyKiBmbG93VGhyZWFkTGF5ZXIgPSBtX293bmlu
Z0xheWVyLT5pc0luc2lkZU91dE9mRmxvd1RocmVhZCgpID8gbV9vd25pbmdMYXllci0+c3RhY2tp
bmdDb250YWluZXIoKSA6IGVuY2xvc2luZ0Zsb3dUaHJlYWRBbmNlc3RvcihtX293bmluZ0xheWVy
KTsKLSAgICBpZiAoZmxvd1RocmVhZExheWVyICYmIGZsb3dUaHJlYWRMYXllci0+aXNSZW5kZXJG
bG93VGhyZWFkKCkpIHsKLSAgICAgICAgUmVuZGVyRmxvd1RocmVhZCYgZmxvd1RocmVhZCA9IHRv
UmVuZGVyRmxvd1RocmVhZChmbG93VGhyZWFkTGF5ZXItPnJlbmRlcmVyKCkpOwotICAgICAgICBp
ZiAobV9vd25pbmdMYXllci0+aXNJbnNpZGVPdXRPZkZsb3dUaHJlYWQoKSkgewotICAgICAgICAg
ICAgLy8gVGhlIFJlbmRlck5hbWVkRmxvd1RocmVhZCBpcyBub3QgY29tcG9zaXRlZCwgYXMgd2Ug
bmVlZCBpdCB0byBwYWludCB0aGUgCi0gICAgICAgICAgICAvLyBiYWNrZ3JvdW5kIGxheWVyIG9m
IHRoZSByZWdpb25zLiBXZSBuZWVkIHRvIGNvbXBlbnNhdGUgZm9yIHRoYXQgYnkgbWFudWFsbHkK
LSAgICAgICAgICAgIC8vIHN1YnRyYWN0aW5nIHRoZSBwb3NpdGlvbiBvZiB0aGUgZmxvdy10aHJl
YWQuCi0gICAgICAgICAgICBJbnRQb2ludCBmbG93UG9zaXRpb247Ci0gICAgICAgICAgICBmbG93
VGhyZWFkTGF5ZXItPmNvbnZlcnRUb1BpeGVsU25hcHBlZExheWVyQ29vcmRzKGNvbXBvc2l0aW5n
QW5jZXN0b3IsIGZsb3dQb3NpdGlvbik7Ci0gICAgICAgICAgICBhbmNlc3RvckNvbXBvc2l0aW5n
Qm91bmRzLm1vdmVCeShmbG93UG9zaXRpb24pOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gTW92
ZSB0aGUgYW5jZXN0b3IgcG9zaXRpb24gYXQgdGhlIHRvcCBvZiB0aGUgcmVnaW9uIHdoZXJlIHRo
ZSBjb21wb3NpdGVkIGxheWVyIGlzIGdvaW5nIHRvIGRpc3BsYXkuCi0gICAgICAgIFJlbmRlclJl
Z2lvbiogcGFyZW50UmVnaW9uID0gZmxvd1RocmVhZC5jYWNoZWRSZWdpb25Gb3JDb21wb3NpdGVk
TGF5ZXIobV9vd25pbmdMYXllcik7Ci0gICAgICAgIGlmIChwYXJlbnRSZWdpb24pIHsKLSAgICAg
ICAgICAgIEludFBvaW50IGZsb3dEZWx0YTsKLSAgICAgICAgICAgIG1fb3duaW5nTGF5ZXItPmNv
bnZlcnRUb1BpeGVsU25hcHBlZExheWVyQ29vcmRzKGZsb3dUaHJlYWRMYXllciwgZmxvd0RlbHRh
KTsKLSAgICAgICAgICAgIHBhcmVudFJlZ2lvbi0+YWRqdXN0UmVnaW9uQm91bmRzRnJvbUZsb3dU
aHJlYWRQb3J0aW9uUmVjdChmbG93RGVsdGEsIGFuY2VzdG9yQ29tcG9zaXRpbmdCb3VuZHMpOwot
ICAgICAgICAgICAgaWYgKHBhcmVudFJlZ2lvbi0+aGFzTGF5ZXIoKSAmJiBwYXJlbnRSZWdpb24t
PmxheWVyKCktPmJhY2tpbmcoKSkgewotICAgICAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGF0
IHRoZSByZWdpb24gcHJvcGFnYXRlcyBpdHMgYm9yZGVycywgcGFkZGluZ3MsIG91dGxpbmVzIG9y
IGJveC1zaGFkb3dzIHRvIGxheWVycyBpbnNpZGUgaXQuCi0gICAgICAgICAgICAgICAgLy8gTm90
ZSB0aGF0IHRoZSBjb21wb3NpdGVkIGJvdW5kcyBvZiB0aGUgUmVuZGVyUmVnaW9uIGFyZSBhbHJl
YWR5IGNhbGN1bGF0ZWQKLSAgICAgICAgICAgICAgICAvLyBiZWNhdXNlIFJlbmRlckxheWVyQ29t
cG9zaXRvcjo6cmVidWlsZENvbXBvc2l0aW5nTGF5ZXJUcmVlIHdpbGwgb25seQotICAgICAgICAg
ICAgICAgIC8vIGl0ZXJhdGUgb24gdGhlIGNvbnRlbnQgb2YgdGhlIHJlZ2lvbiBhZnRlciB0aGUg
cmVnaW9uIGl0c2VsZiBpcyBjb21wdXRlZC4KLSAgICAgICAgICAgICAgICBhbmNlc3RvckNvbXBv
c2l0aW5nQm91bmRzLm1vdmVCeShyb3VuZGVkSW50UG9pbnQocGFyZW50UmVnaW9uLT5sYXllcigp
LT5iYWNraW5nKCktPmNvbXBvc2l0ZWRCb3VuZHMoKS5sb2NhdGlvbigpKSk7Ci0gICAgICAgICAg
ICAgICAgYW5jZXN0b3JDb21wb3NpdGluZ0JvdW5kcy5tb3ZlKC1wYXJlbnRSZWdpb24tPmJvcmRl
ckFuZFBhZGRpbmdTdGFydCgpLCAtcGFyZW50UmVnaW9uLT5ib3JkZXJBbmRQYWRkaW5nQmVmb3Jl
KCkpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotfQotCiB2b2lkIFJlbmRlckxh
eWVyQmFja2luZzo6dXBkYXRlRGlyZWN0bHlDb21wb3NpdGVkQ29udGVudHMoYm9vbCBpc1NpbXBs
ZUNvbnRhaW5lciwgYm9vbCYgZGlkVXBkYXRlQ29udGVudHNSZWN0KQogewogICAgIGlmICghbV9v
d25pbmdMYXllci0+aGFzVmlzaWJsZUNvbnRlbnQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllckJhY2tpbmcuaAppbmRleCBhN2YwNDFkNTllYTZjOWVjNDBkZDg2OWEz
ZDQ5MThiNDNiZjJmODg1Li41NmYxN2MwYTZmZTBjZjE3MjViMTU3MTg3ZjkwZmIwMjlhMTNiYjdm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5n
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCkBA
IC0yNzgsOSArMjc4LDYgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcGFpbnRJbnRvTGF5ZXIoY29u
c3QgR3JhcGhpY3NMYXllciosIEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEludFJlY3QmIHBhaW50
RGlydHlSZWN0LCBQYWludEJlaGF2aW9yLCBHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSk7CiAK
LSAgICAvLyBIZWxwZXIgZnVuY3Rpb24gZm9yIHVwZGF0ZUdyYXBoaWNzTGF5ZXJHZW9tZXRyeS4K
LSAgICB2b2lkIGFkanVzdEFuY2VzdG9yQ29tcG9zaXRpbmdCb3VuZHNGb3JGbG93VGhyZWFkKElu
dFJlY3QmIGFuY2VzdG9yQ29tcG9zaXRpbmdCb3VuZHMsIGNvbnN0IFJlbmRlckxheWVyKiBjb21w
b3NpdGluZ0FuY2VzdG9yKSBjb25zdDsKLQogICAgIHN0YXRpYyBDU1NQcm9wZXJ0eUlEIGdyYXBo
aWNzTGF5ZXJUb0NTU1Byb3BlcnR5KEFuaW1hdGVkUHJvcGVydHlJRCk7CiAgICAgc3RhdGljIEFu
aW1hdGVkUHJvcGVydHlJRCBjc3NUb0dyYXBoaWNzTGF5ZXJQcm9wZXJ0eShDU1NQcm9wZXJ0eUlE
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29t
cG9zaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3Np
dG9yLmNwcAppbmRleCAzZmZhOGQ1Y2I4OTcyNmFhZTY4ZTY4YjE3MjRmN2I3MWM4YTFlOGU5Li5m
MDRkMDU1NDcwMWNkZWEwZDY0MGFkYWY3Y2MzZDI4YWYwNWNjZmYwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtNDYsMTIg
KzQ2LDEwIEBACiAjaW5jbHVkZSAiTm9kZUxpc3QuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5j
bHVkZSAiUmVuZGVyRW1iZWRkZWRPYmplY3QuaCIKLSNpbmNsdWRlICJSZW5kZXJGbG93VGhyZWFk
LmgiCiAjaW5jbHVkZSAiUmVuZGVyRnVsbFNjcmVlbi5oIgogI2luY2x1ZGUgIlJlbmRlckdlb21l
dHJ5TWFwLmgiCiAjaW5jbHVkZSAiUmVuZGVySUZyYW1lLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5
ZXJCYWNraW5nLmgiCi0jaW5jbHVkZSAiUmVuZGVyUmVnaW9uLmgiCiAjaW5jbHVkZSAiUmVuZGVy
UmVwbGljYS5oIgogI2luY2x1ZGUgIlJlbmRlclZpZGVvLmgiCiAjaW5jbHVkZSAiUmVuZGVyVmll
dy5oIgpAQCAtOTQ4LDEwICs5NDYsOCBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6Y29t
cHV0ZUNvbXBvc2l0aW5nUmVxdWlyZW1lbnRzKFJlbmRlckxheWVyKiBhbmNlc3RvcgogICAgIGxh
eWVyLT51cGRhdGVEZXNjZW5kYW50RGVwZW5kZW50RmxhZ3MoKTsKICAgICBsYXllci0+dXBkYXRl
TGF5ZXJMaXN0c0lmTmVlZGVkKCk7CiAKLSAgICBpZiAobGF5ZXItPmlzT3V0T2ZGbG93UmVuZGVy
Rmxvd1RocmVhZCgpKSB7Ci0gICAgICAgIGxheWVyLT5zZXRIYXNDb21wb3NpdGluZ0Rlc2NlbmRh
bnQodG9SZW5kZXJGbG93VGhyZWFkKGxheWVyLT5yZW5kZXJlcigpKS5oYXNDb21wb3NpdGluZ1Jl
Z2lvbkRlc2NlbmRhbnQoKSk7CisgICAgaWYgKGxheWVyLT5pc091dE9mRmxvd1JlbmRlckZsb3dU
aHJlYWQoKSkKICAgICAgICAgcmV0dXJuOwotICAgIH0KIAogICAgIGlmIChvdmVybGFwTWFwKQog
ICAgICAgICBvdmVybGFwTWFwLT5nZW9tZXRyeU1hcCgpLnB1c2hNYXBwaW5nc1RvQW5jZXN0b3Io
bGF5ZXIsIGFuY2VzdG9yTGF5ZXIpOwpAQCAtMTAzNCwxNCArMTAzMCw2IEBAIHZvaWQgUmVuZGVy
TGF5ZXJDb21wb3NpdG9yOjpjb21wdXRlQ29tcG9zaXRpbmdSZXF1aXJlbWVudHMoUmVuZGVyTGF5
ZXIqIGFuY2VzdG9yCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9Ci0KLSAgICBpZiAo
bGF5ZXItPnJlbmRlcmVyKCkuaXNSZW5kZXJSZWdpb24oKSkgewotICAgICAgICAvLyBXZSBhcmUg
Z29pbmcgdG8gY29sbGVjdCBsYXllcnMgZnJvbSB0aGUgUmVuZGVyRmxvd1RocmVhZCBpbnRvIHRo
ZQotICAgICAgICAvLyBHcmFwaGljc0xheWVyIG9mIHRoZSBSZW5kZXJSZWdpb24sIGJ1dCBmaXJz
dCB3ZSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZQotICAgICAgICAvLyByZWdpb24gaXRzZWxm
IGlzIGdvaW5nIHRvIGhhdmUgYSBjb21wb3NpdGVkIGxheWVyLiBXZSBvbmx5IHdhbnQgdG8gbWFr
ZQotICAgICAgICAvLyByZWdpb25zIGNvbXBvc2l0ZWQgd2hlbiB0aGVyZSdzIGFuIGFjdHVhbCBs
YXllciB0aGF0IHdlIG5lZWQgdG8gbW92ZSB0byB0aGF0IHJlZ2lvbi4KLSAgICAgICAgY29tcHV0
ZVJlZ2lvbkNvbXBvc2l0aW5nUmVxdWlyZW1lbnRzKCZ0b1JlbmRlclJlZ2lvbihsYXllci0+cmVu
ZGVyZXIoKSksIG92ZXJsYXBNYXAsIGNoaWxkU3RhdGUsIGxheWVyc0NoYW5nZWQsIGFueURlc2Nl
bmRhbnRIYXMzRFRyYW5zZm9ybSk7Ci0gICAgfQogICAgIAogICAgIGlmIChWZWN0b3I8UmVuZGVy
TGF5ZXIqPiogbm9ybWFsRmxvd0xpc3QgPSBsYXllci0+bm9ybWFsRmxvd0xpc3QoKSkgewogICAg
ICAgICBzaXplX3QgbGlzdFNpemUgPSBub3JtYWxGbG93TGlzdC0+c2l6ZSgpOwpAQCAtMTE1MSwy
OCArMTEzOSw2IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjb21wdXRlQ29tcG9zaXRp
bmdSZXF1aXJlbWVudHMoUmVuZGVyTGF5ZXIqIGFuY2VzdG9yCiAgICAgICAgIG92ZXJsYXBNYXAt
Pmdlb21ldHJ5TWFwKCkucG9wTWFwcGluZ3NUb0FuY2VzdG9yKGFuY2VzdG9yTGF5ZXIpOwogfQog
Ci12b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6Y29tcHV0ZVJlZ2lvbkNvbXBvc2l0aW5nUmVx
dWlyZW1lbnRzKFJlbmRlclJlZ2lvbiogcmVnaW9uLCBPdmVybGFwTWFwKiBvdmVybGFwTWFwLCBD
b21wb3NpdGluZ1N0YXRlJiBjaGlsZFN0YXRlLCBib29sJiBsYXllcnNDaGFuZ2VkLCBib29sJiBh
bnlEZXNjZW5kYW50SGFzM0RUcmFuc2Zvcm0pCi17Ci0gICAgaWYgKCFyZWdpb24tPmlzVmFsaWQo
KSB8fCAhcmVnaW9uLT5mbG93VGhyZWFkKCkgfHwgIXJlZ2lvbi0+Zmxvd1RocmVhZCgpLT5pc091
dE9mRmxvd1JlbmRlckZsb3dUaHJlYWQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgUmVuZGVy
Rmxvd1RocmVhZCogZmxvd1RocmVhZCA9IHJlZ2lvbi0+Zmxvd1RocmVhZCgpOwotICAgIAotICAg
IGlmIChvdmVybGFwTWFwKQotICAgICAgICBvdmVybGFwTWFwLT5nZW9tZXRyeU1hcCgpLnB1c2hS
ZW5kZXJGbG93VGhyZWFkKGZsb3dUaHJlYWQpOwotCi0gICAgaWYgKGNvbnN0IFJlbmRlckxheWVy
TGlzdCogbGF5ZXJMaXN0ID0gZmxvd1RocmVhZC0+Z2V0TGF5ZXJMaXN0Rm9yUmVnaW9uKHJlZ2lv
bikpIHsKLSAgICAgICAgZm9yIChzaXplX3QgaSA9IDAsIGxpc3RTaXplID0gbGF5ZXJMaXN0LT5z
aXplKCk7IGkgPCBsaXN0U2l6ZTsgKytpKSB7Ci0gICAgICAgICAgICBSZW5kZXJMYXllciogY3Vy
TGF5ZXIgPSBsYXllckxpc3QtPmF0KGkpOwotICAgICAgICAgICAgQVNTRVJUKGZsb3dUaHJlYWQt
PnJlZ2lvbkZvckNvbXBvc2l0ZWRMYXllcihjdXJMYXllcikgPT0gcmVnaW9uKTsKLSAgICAgICAg
ICAgIGNvbXB1dGVDb21wb3NpdGluZ1JlcXVpcmVtZW50cyhmbG93VGhyZWFkLT5sYXllcigpLCBj
dXJMYXllciwgb3ZlcmxhcE1hcCwgY2hpbGRTdGF0ZSwgbGF5ZXJzQ2hhbmdlZCwgYW55RGVzY2Vu
ZGFudEhhczNEVHJhbnNmb3JtKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGlmIChvdmVybGFw
TWFwKQotICAgICAgICBvdmVybGFwTWFwLT5nZW9tZXRyeU1hcCgpLnBvcE1hcHBpbmdzVG9BbmNl
c3RvcihyZWdpb24pOwotfQotCiB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6c2V0Q29tcG9z
aXRpbmdQYXJlbnQoUmVuZGVyTGF5ZXIqIGNoaWxkTGF5ZXIsIFJlbmRlckxheWVyKiBwYXJlbnRM
YXllcikKIHsKICAgICBBU1NFUlQoIXBhcmVudExheWVyIHx8IGNoaWxkTGF5ZXItPmFuY2VzdG9y
Q29tcG9zaXRpbmdMYXllcigpID09IHBhcmVudExheWVyKTsKQEAgLTEyMTcsNyArMTE4Myw2IEBA
IHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyZWJ1aWxkQ29tcG9zaXRpbmdMYXllclRyZWUo
UmVuZGVyTGF5ZXIqIGxheWVyLCBWZWN0CiAgICAgLy8gTm90ZSB0aGF0IHdlIGNhbiBvbmx5IGRv
IHdvcmsgaGVyZSB0aGF0IGlzIGluZGVwZW5kZW50IG9mIHdoZXRoZXIgdGhlIGRlc2NlbmRhbnQg
bGF5ZXJzCiAgICAgLy8gaGF2ZSBiZWVuIHByb2Nlc3NlZC4gY29tcHV0ZUNvbXBvc2l0aW5nUmVx
dWlyZW1lbnRzKCkgd2lsbCBhbHJlYWR5IGhhdmUgZG9uZSB0aGUgcmVwYWludCBpZiBuZWNlc3Nh
cnkuCiAKLSAgICAvLyBEbyBub3QgaXRlcmF0ZSB0aGUgUmVuZGVyRmxvd1RocmVhZCBkaXJlY3Rs
eS4gV2UgYXJlIGdvaW5nIHRvIGNvbGxlY3QgY29tcG9zaXRlZCBsYXllcnMgYXMgcGFydCBvZiBy
ZWdpb25zLgogICAgIGlmIChsYXllci0+aXNPdXRPZkZsb3dSZW5kZXJGbG93VGhyZWFkKCkpCiAg
ICAgICAgIHJldHVybjsKICAgICAKQEAgLTEyNzIsMTMgKzEyMzcsNiBAQCB2b2lkIFJlbmRlckxh
eWVyQ29tcG9zaXRvcjo6cmVidWlsZENvbXBvc2l0aW5nTGF5ZXJUcmVlKFJlbmRlckxheWVyKiBs
YXllciwgVmVjdAogICAgICAgICAgICAgY2hpbGRMaXN0LmFwcGVuZChsYXllckJhY2tpbmctPmZv
cmVncm91bmRMYXllcigpKTsKICAgICB9CiAKLSAgICBpZiAobGF5ZXItPnJlbmRlcmVyKCkuaXNS
ZW5kZXJSZWdpb24oKSkgewotICAgICAgICBSZW5kZXJSZWdpb24mIHJlZ2lvbiA9IHRvUmVuZGVy
UmVnaW9uKGxheWVyLT5yZW5kZXJlcigpKTsKLSAgICAgICAgLy8gTm90ZSB0aGF0IGZvciByZWdp
b25zIHdlIGFsd2F5cyBjb2xsZWN0IGxheWVycyBhcyBpZgotICAgICAgICAvLyB0aGUgcmVnaW9u
IHdhcyBhIHN0YWNraW5nIGNvbnRleHQuCi0gICAgICAgIHJlYnVpbGRSZWdpb25Db21wb3NpdGlu
Z0xheWVyVHJlZSgmcmVnaW9uLCBsYXllckNoaWxkcmVuLCBkZXB0aCArIDEpOwotICAgIH0KLQog
ICAgIGlmIChWZWN0b3I8UmVuZGVyTGF5ZXIqPiogbm9ybWFsRmxvd0xpc3QgPSBsYXllci0+bm9y
bWFsRmxvd0xpc3QoKSkgewogICAgICAgICBzaXplX3QgbGlzdFNpemUgPSBub3JtYWxGbG93TGlz
dC0+c2l6ZSgpOwogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxpc3RTaXplOyArK2kp
IHsKQEAgLTEzMjgsMjQgKzEyODYsNiBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVi
dWlsZENvbXBvc2l0aW5nTGF5ZXJUcmVlKFJlbmRlckxheWVyKiBsYXllciwgVmVjdAogICAgIH0K
IH0KIAotdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlYnVpbGRSZWdpb25Db21wb3NpdGlu
Z0xheWVyVHJlZShSZW5kZXJSZWdpb24qIHJlZ2lvbiwgVmVjdG9yPEdyYXBoaWNzTGF5ZXIqPiYg
Y2hpbGRMaXN0LCBpbnQgZGVwdGgpCi17Ci0gICAgaWYgKCFyZWdpb24tPmlzVmFsaWQoKSB8fCBy
ZWdpb24tPmlzUmVuZGVyUmVnaW9uU2V0KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIFJlbmRl
ckZsb3dUaHJlYWQqIGZsb3dUaHJlYWQgPSByZWdpb24tPmZsb3dUaHJlYWQoKTsKLSAgICAvLyBU
aGVyZSdzIG5vIG5lZWQgdG8gbW92ZSBHcmFwaGljc0xheWVycyBmb3IgUmVnaW9ucyBiYXNlZCBt
dWx0aS1jb2x1bW5zLgotICAgIEFTU0VSVChmbG93VGhyZWFkLT5pc091dE9mRmxvd1JlbmRlckZs
b3dUaHJlYWQoKSk7Ci0gICAgaWYgKGNvbnN0IFZlY3RvcjxSZW5kZXJMYXllcio+KiBsYXllckxp
c3QgPSBmbG93VGhyZWFkLT5nZXRMYXllckxpc3RGb3JSZWdpb24ocmVnaW9uKSkgewotICAgICAg
ICBzaXplX3QgbGlzdFNpemUgPSBsYXllckxpc3QtPnNpemUoKTsKLSAgICAgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBsaXN0U2l6ZTsgKytpKSB7Ci0gICAgICAgICAgICBSZW5kZXJMYXllciog
Y3VyTGF5ZXIgPSBsYXllckxpc3QtPmF0KGkpOwotICAgICAgICAgICAgQVNTRVJUKGZsb3dUaHJl
YWQtPnJlZ2lvbkZvckNvbXBvc2l0ZWRMYXllcihjdXJMYXllcikgPT0gcmVnaW9uKTsKLSAgICAg
ICAgICAgIHJlYnVpbGRDb21wb3NpdGluZ0xheWVyVHJlZShjdXJMYXllciwgY2hpbGRMaXN0LCBk
ZXB0aCArIDEpOwotICAgICAgICB9Ci0gICAgfQotfQotCiB2b2lkIFJlbmRlckxheWVyQ29tcG9z
aXRvcjo6ZnJhbWVWaWV3RGlkQ2hhbmdlTG9jYXRpb24oY29uc3QgSW50UG9pbnQmIGNvbnRlbnRz
T2Zmc2V0KQogewogICAgIGlmIChtX292ZXJmbG93Q29udHJvbHNIb3N0TGF5ZXIpCkBAIC0xODY1
LDkgKzE4MDUsOSBAQCBib29sIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVxdWlyZXNDb21wb3Np
dGluZ0xheWVyKGNvbnN0IFJlbmRlckxheWVyKiBsYXllciwgUgogCiBib29sIFJlbmRlckxheWVy
Q29tcG9zaXRvcjo6Y2FuQmVDb21wb3NpdGVkKGNvbnN0IFJlbmRlckxheWVyKiBsYXllcikgY29u
c3QKIHsKLSAgICAvLyBDU1MgUmVnaW9ucyBmbG93IHRocmVhZHMgZG8gbm90IG5lZWQgdG8gYmUg
Y29tcG9zaXRlZCBhcyB3ZSB1c2UgY29tcG9zaXRlZCBSZW5kZXJSZWdpb25zCi0gICAgLy8gdG8g
cmVuZGVyIHRoZSBiYWNrZ3JvdW5kIG9mIHRoZSBSZW5kZXJGbG93VGhyZWFkLgotICAgIHJldHVy
biBtX2hhc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcgJiYgbGF5ZXItPmlzU2VsZlBhaW50aW5nTGF5
ZXIoKSAmJiAhbGF5ZXItPmlzUmVuZGVyRmxvd1RocmVhZCgpOworICAgIC8vIEZJWE1FOiBXZSBk
aXNhYmxlIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nIGZvciBlbGVtZW50cyBpbiBhIFJlbmRlckZs
b3dUaHJlYWQgYXMgaXQgZG9lc24ndCB3b3JrIHByb3Blcmx5LgorICAgIC8vIFNlZSBodHRwOi8v
d2Via2l0Lm9yZy9iLzg0OTAwIHRvIHJlLWVuYWJsZSBpdC4KKyAgICByZXR1cm4gbV9oYXNBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nICYmIGxheWVyLT5pc1NlbGZQYWludGluZ0xheWVyKCkgJiYgbGF5
ZXItPnJlbmRlcmVyKCkuZmxvd1RocmVhZFN0YXRlKCkgPT0gUmVuZGVyT2JqZWN0OjpOb3RJbnNp
ZGVGbG93VGhyZWFkOwogfQogCiBib29sIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVxdWlyZXNP
d25CYWNraW5nU3RvcmUoY29uc3QgUmVuZGVyTGF5ZXIqIGxheWVyLCBjb25zdCBSZW5kZXJMYXll
ciogY29tcG9zaXRpbmdBbmNlc3RvckxheWVyLCBjb25zdCBJbnRSZWN0JiBsYXllckNvbXBvc2l0
ZWRCb3VuZHNJbkFuY2VzdG9yLCBjb25zdCBJbnRSZWN0JiBhbmNlc3RvckNvbXBvc2l0ZWRCb3Vu
ZHMpIGNvbnN0CkBAIC0yMjUwLDcgKzIxOTAsNyBAQCBib29sIFJlbmRlckxheWVyQ29tcG9zaXRv
cjo6cmVxdWlyZXNDb21wb3NpdGluZ0ZvckluZGlyZWN0UmVhc29uKFJlbmRlck9iamVjdCogcgog
CiAgICAgLy8gV2hlbiBhIGxheWVyIGhhcyBjb21wb3NpdGVkIGRlc2NlbmRhbnRzLCBzb21lIGVm
ZmVjdHMsIGxpa2UgMmQgdHJhbnNmb3JtcywgZmlsdGVycywgbWFza3MgZXRjIG11c3QgYmUgaW1w
bGVtZW50ZWQKICAgICAvLyB2aWEgY29tcG9zaXRpbmcgc28gdGhhdCB0aGV5IGFsc28gYXBwbHkg
dG8gdGhvc2UgY29tcG9zaXRlZCBkZXNjZGVuZGFudHMuCi0gICAgaWYgKGhhc0NvbXBvc2l0ZWRE
ZXNjZW5kYW50cyAmJiAobGF5ZXItPnRyYW5zZm9ybSgpIHx8IHJlbmRlcmVyLT5jcmVhdGVzR3Jv
dXAoKSB8fCByZW5kZXJlci0+aGFzUmVmbGVjdGlvbigpIHx8IHJlbmRlcmVyLT5pc1JlbmRlclJl
Z2lvbigpKSkgeworICAgIGlmIChoYXNDb21wb3NpdGVkRGVzY2VuZGFudHMgJiYgKGxheWVyLT50
cmFuc2Zvcm0oKSB8fCByZW5kZXJlci0+Y3JlYXRlc0dyb3VwKCkgfHwgcmVuZGVyZXItPmhhc1Jl
ZmxlY3Rpb24oKSkpIHsKICAgICAgICAgcmVhc29uID0gUmVuZGVyTGF5ZXI6OkluZGlyZWN0Q29t
cG9zaXRpbmdGb3JHcmFwaGljYWxFZmZlY3Q7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0
b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaApp
bmRleCAxNzNlNDdkOTQ0ZDZkYzYyMmZmZWI5YjBiY2EwYjNkNmI5Yzk2ZjkyLi5jMmYzZDA3NjA2
NWVmOGU0ZWFiZGI3Y2FkMTg5ZDE1MTM0N2ZlMGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCkBAIC0zMjYsMTUgKzMyNiw5IEBAIHBy
aXZhdGU6CiAgICAgLy8gUmV0dXJucyB0cnVlIGlmIGFueSBsYXllcidzIGNvbXBvc2l0aW5nIGNo
YW5nZWQKICAgICB2b2lkIGNvbXB1dGVDb21wb3NpdGluZ1JlcXVpcmVtZW50cyhSZW5kZXJMYXll
ciogYW5jZXN0b3JMYXllciwgUmVuZGVyTGF5ZXIqLCBPdmVybGFwTWFwKiwgc3RydWN0IENvbXBv
c2l0aW5nU3RhdGUmLCBib29sJiBsYXllcnNDaGFuZ2VkLCBib29sJiBkZXNjZW5kYW50SGFzM0RU
cmFuc2Zvcm0pOwogICAgIAotICAgIHZvaWQgY29tcHV0ZVJlZ2lvbkNvbXBvc2l0aW5nUmVxdWly
ZW1lbnRzKFJlbmRlclJlZ2lvbiosIE92ZXJsYXBNYXAqLCBDb21wb3NpdGluZ1N0YXRlJiwgYm9v
bCYgbGF5ZXJzQ2hhbmdlZCwgYm9vbCYgYW55RGVzY2VuZGFudEhhczNEVHJhbnNmb3JtKTsKLQog
ICAgIC8vIFJlY3Vyc2VzIGRvd24gdGhlIHRyZWUsIHBhcmVudGluZyBkZXNjZW5kYW50IGNvbXBv
c2l0aW5nIGxheWVycyBhbmQgY29sbGVjdGluZyBhbiBhcnJheSBvZiBjaGlsZCBsYXllcnMgZm9y
IHRoZSBjdXJyZW50IGNvbXBvc2l0aW5nIGxheWVyLgogICAgIHZvaWQgcmVidWlsZENvbXBvc2l0
aW5nTGF5ZXJUcmVlKFJlbmRlckxheWVyKiwgVmVjdG9yPEdyYXBoaWNzTGF5ZXIqPiYgY2hpbGRH
cmFwaGljc0xheWVyc09mRW5jbG9zaW5nTGF5ZXIsIGludCBkZXB0aCk7CiAKLSAgICAvLyBSZWN1
cnNlcyBkb3duIHRoZSBSZW5kZXJGbG93VGhyZWFkIHRyZWUsIHBhcmVudGluZyBkZXNjZW5kYW50
IGNvbXBvc2l0aW5nIGxheWVycyBhbmQgY29sbGVjdGluZyBhbiBhcnJheSBvZiBjaGlsZCAKLSAg
ICAvLyBsYXllcnMgZm9yIHRoZSBjdXJyZW50IGNvbXBvc2l0aW5nIFJlbmRlclJlZ2lvbiBsYXll
ci4KLSAgICB2b2lkIHJlYnVpbGRSZWdpb25Db21wb3NpdGluZ0xheWVyVHJlZShSZW5kZXJSZWdp
b24qLCBWZWN0b3I8R3JhcGhpY3NMYXllcio+JiBjaGlsZExpc3QsIGludCBkZXB0aCk7Ci0KICAg
ICAvLyBSZWN1cnNlcyBkb3duIHRoZSB0cmVlLCB1cGRhdGluZyBsYXllciBnZW9tZXRyeSBvbmx5
LgogICAgIHZvaWQgdXBkYXRlTGF5ZXJUcmVlR2VvbWV0cnkoUmVuZGVyTGF5ZXIqLCBpbnQgZGVw
dGgpOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11
bHRpQ29sdW1uU2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNv
bHVtblNldC5jcHAKaW5kZXggOWM1MjAxMGVhOGRiMjcwZDk5OWI4MjA2OGQxODA4M2JlMmNhOGJi
ZS4uNzcwMzg1OWUzODdhZDQ0MDg2NGZiMDdiZGE0MjRkOTUxMDMyNzNlOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uU2V0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5TZXQuY3BwCkBAIC01MTYs
MzYgKzUxNiw2IEBAIHZvaWQgUmVuZGVyTXVsdGlDb2x1bW5TZXQ6OmNvbGxlY3RMYXllckZyYWdt
ZW50cyhMYXllckZyYWdtZW50cyYgZnJhZ21lbnRzLCBjb25zCiAgICAgfQogfQogCi12b2lkIFJl
bmRlck11bHRpQ29sdW1uU2V0OjphZGp1c3RSZWdpb25Cb3VuZHNGcm9tRmxvd1RocmVhZFBvcnRp
b25SZWN0KGNvbnN0IEludFBvaW50JiBsYXllck9mZnNldCwgSW50UmVjdCYgcmVnaW9uQm91bmRz
KQotewotICAgIExheW91dFVuaXQgbGF5ZXJMb2dpY2FsVG9wID0gaXNIb3Jpem9udGFsV3JpdGlu
Z01vZGUoKSA/IGxheWVyT2Zmc2V0LnkoKSA6IGxheWVyT2Zmc2V0LngoKTsKLSAgICB1bnNpZ25l
ZCBzdGFydENvbHVtbiA9IGNvbHVtbkluZGV4QXRPZmZzZXQobGF5ZXJMb2dpY2FsVG9wKTsKLSAg
ICAKLSAgICBMYXlvdXRVbml0IGNvbEdhcCA9IGNvbHVtbkdhcCgpOwotICAgIExheW91dFVuaXQg
Y29sTG9naWNhbFdpZHRoID0gY29tcHV0ZWRDb2x1bW5XaWR0aCgpOwotICAgIAotICAgIExheW91
dFJlY3QgZmxvd1RocmVhZFBvcnRpb24gPSBmbG93VGhyZWFkUG9ydGlvblJlY3RBdChzdGFydENv
bHVtbik7Ci0gICAgTGF5b3V0UG9pbnQgdHJhbnNsYXRpb25PZmZzZXQ7Ci0KLSAgICBMYXlvdXRV
bml0IGlubGluZU9mZnNldCA9IHN0YXJ0Q29sdW1uICogKGNvbExvZ2ljYWxXaWR0aCArIGNvbEdh
cCk7Ci0gICAgaWYgKCFzdHlsZSgpLT5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkpCi0gICAgICAg
IGlubGluZU9mZnNldCA9IC1pbmxpbmVPZmZzZXQ7Ci0gICAgdHJhbnNsYXRpb25PZmZzZXQuc2V0
WChpbmxpbmVPZmZzZXQpOwotICAgICAgICAKLSAgICBMYXlvdXRVbml0IGJsb2NrT2Zmc2V0ID0g
aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IC1mbG93VGhyZWFkUG9ydGlvbi55KCkgOiAtZmxv
d1RocmVhZFBvcnRpb24ueCgpOwotICAgIGlmIChpc0ZsaXBwZWRCbG9ja3NXcml0aW5nTW9kZShz
dHlsZSgpLT53cml0aW5nTW9kZSgpKSkKLSAgICAgICAgYmxvY2tPZmZzZXQgPSAtYmxvY2tPZmZz
ZXQ7Ci0gICAgdHJhbnNsYXRpb25PZmZzZXQuc2V0WShibG9ja09mZnNldCk7Ci0gICAgCi0gICAg
aWYgKCFpc0hvcml6b250YWxXcml0aW5nTW9kZSgpKQotICAgICAgICB0cmFuc2xhdGlvbk9mZnNl
dCA9IHRyYW5zbGF0aW9uT2Zmc2V0LnRyYW5zcG9zZWRQb2ludCgpOwotCi0gICAgLy8gRklYTUU6
IFRoZSB0cmFuc2xhdGlvbiBuZWVkcyB0byBpbmNsdWRlIHRoZSBtdWx0aWNvbHVtbiBzZXQncyBj
b250ZW50IG9mZnNldCB3aXRoaW4gdGhlCi0gICAgLy8gbXVsdGljb2x1bW4gYmxvY2sgYXMgd2Vs
bC4gVGhpcyB3b24ndCBiZSBhbiBpc3N1ZSB1bnRpbCB3ZSBzdGFydCBjcmVhdGluZyBtdWx0aXBs
ZSBtdWx0aWNvbHVtbiBzZXRzLgotICAgIAotICAgIHJlZ2lvbkJvdW5kcy5tb3ZlQnkocm91bmRl
ZEludFBvaW50KC10cmFuc2xhdGlvbk9mZnNldCkpOwotfQotCiBjb25zdCBjaGFyKiBSZW5kZXJN
dWx0aUNvbHVtblNldDo6cmVuZGVyTmFtZSgpIGNvbnN0CiB7ICAgIAogICAgIHJldHVybiAiUmVu
ZGVyTXVsdGlDb2x1bW5TZXQiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck11bHRpQ29sdW1uU2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TXVsdGlDb2x1bW5TZXQuaAppbmRleCBiZTk2ZmU2N2ZiM2M3ZmM2ZTIxYzBiNDFkOWQwYTgwNzIw
ODU0MGUwLi4yZjQ4OThmMGY4ZjQ1Yjc5NmFhNDRhY2JjNWEwZmJiNTAwNzViODg2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5TZXQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5TZXQuaApAQCAtMTIw
LDggKzEyMCw2IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIHZvaWQgY29sbGVjdExheWVyRnJh
Z21lbnRzKExheWVyRnJhZ21lbnRzJiwgY29uc3QgTGF5b3V0UmVjdCYgbGF5ZXJCb3VuZGluZ0Jv
eCwgY29uc3QgTGF5b3V0UmVjdCYgZGlydHlSZWN0KSBPVkVSUklERTsKIAotICAgIHZpcnR1YWwg
dm9pZCBhZGp1c3RSZWdpb25Cb3VuZHNGcm9tRmxvd1RocmVhZFBvcnRpb25SZWN0KGNvbnN0IElu
dFBvaW50JiBsYXllck9mZnNldCwgSW50UmVjdCYgcmVnaW9uQm91bmRzKSBPVkVSUklERTsKLQog
ICAgIHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0OwogICAgIAogICAgIHZv
aWQgcGFpbnRDb2x1bW5SdWxlcyhQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRP
ZmZzZXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lv
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmNwcAppbmRleCAy
NmQxODQwZmM0YzE1M2UxYTExZDE2MWJhNzhhNDQxNWYyMTM3MjM3Li4wOGM4ZmRlNjgzMzFmZGY2
NWViYjEwODU1NWNjYThmN2NiZDkxYzEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyUmVnaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyUmVnaW9uLmNwcApAQCAtNzI2LDI1ICs3MjYsMTUgQEAgdm9pZCBSZW5kZXJSZWdpb246OnNl
dFJlcXVpcmVzTGF5ZXJGb3JDb21wb3NpdGluZyhib29sIHJlcXVpcmVzTGF5ZXJGb3JDb21wb3Np
dGkKICAgICAvLyBiZWVuIGxhaWQgb3V0LCBhZnRlciB0aGUgZmxvdyB0aHJlYWQgZGVjaWRlcyB0
aGVyZSBhcmUgCiAgICAgLy8gY29tcG9zaXRlZCBsYXllcnMgdGhhdCB3aWxsIGRpc3BsYXkgaW4g
dGhpcyByZWdpb24uCiAgICAgQVNTRVJUKCFuZWVkc0xheW91dCgpKTsKLQogICAgIGlmIChtX3Jl
cXVpcmVzTGF5ZXJGb3JDb21wb3NpdGluZyA9PSByZXF1aXJlc0xheWVyRm9yQ29tcG9zaXRpbmcp
CiAgICAgICAgIHJldHVybjsKICAgICAKLSAgICBib29sIHJlcXVpcmVkTGF5ZXJCZWZvcmUgPSBy
ZXF1aXJlc0xheWVyKCk7CisgICAgYm9vbCByZXF1aXJlZExheWVyID0gcmVxdWlyZXNMYXllcigp
OwogICAgIG1fcmVxdWlyZXNMYXllckZvckNvbXBvc2l0aW5nID0gcmVxdWlyZXNMYXllckZvckNv
bXBvc2l0aW5nOwogCi0gICAgaWYgKHJlcXVpcmVkTGF5ZXJCZWZvcmUgIT0gcmVxdWlyZXNMYXll
cigpKQorICAgIGlmIChyZXF1aXJlZExheWVyICE9IHJlcXVpcmVzTGF5ZXIoKSkKICAgICAgICAg
dXBkYXRlTGF5ZXJJZk5lZWRlZCgpOwogfQotCi12b2lkIFJlbmRlclJlZ2lvbjo6YWRqdXN0UmVn
aW9uQm91bmRzRnJvbUZsb3dUaHJlYWRQb3J0aW9uUmVjdChjb25zdCBJbnRQb2ludCYgbGF5ZXJP
ZmZzZXQsIEludFJlY3QmIHJlZ2lvbkJvdW5kcykKLXsKLSAgICBMYXlvdXRSZWN0IGZsaXBwZWRG
bG93VGhyZWFkUG9ydGlvblJlY3QgPSBmbG93VGhyZWFkUG9ydGlvblJlY3QoKTsKLSAgICBmbG93
VGhyZWFkKCktPmZsaXBGb3JXcml0aW5nTW9kZShmbGlwcGVkRmxvd1RocmVhZFBvcnRpb25SZWN0
KTsKLSAgICByZWdpb25Cb3VuZHMubW92ZUJ5KHJvdW5kZWRJbnRQb2ludChmbGlwcGVkRmxvd1Ro
cmVhZFBvcnRpb25SZWN0LmxvY2F0aW9uKCkpKTsKLQotICAgIFVOVVNFRF9QQVJBTShsYXllck9m
ZnNldCk7Ci19CiAjZW5kaWYKIAogUmVuZGVyT3ZlcmZsb3cqIFJlbmRlclJlZ2lvbjo6ZW5zdXJl
T3ZlcmZsb3dGb3JCb3goY29uc3QgUmVuZGVyQm94KiBib3gpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyUmVnaW9uLmgKaW5kZXggOTk5MzhlODdmZTU2NWU4OGE4YzAyMDY0ZjhkMjgyNzg0
MTljNzYwMy4uZDcwYzFmY2Q3YTY1MTE1NTg5Y2FiNTIwZDRkOWVkMGQ4MTk2ZTQ1ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uaApAQCAtMTQyLDggKzE0Miw2IEBAIHB1
YmxpYzoKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgdm9pZCBzZXRSZXF1
aXJlc0xheWVyRm9yQ29tcG9zaXRpbmcoYm9vbCk7CiAgICAgdmlydHVhbCBib29sIHJlcXVpcmVz
TGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX3JlcXVpcmVzTGF5ZXJGb3JDb21wb3NpdGluZyB8fCBS
ZW5kZXJCbG9jazo6cmVxdWlyZXNMYXllcigpOyB9Ci0KLSAgICB2aXJ0dWFsIHZvaWQgYWRqdXN0
UmVnaW9uQm91bmRzRnJvbUZsb3dUaHJlYWRQb3J0aW9uUmVjdChjb25zdCBJbnRQb2ludCYgbGF5
ZXJPZmZzZXQsIEludFJlY3QmIHJlZ2lvbkJvdW5kcyk7IC8vIGxheWVyT2Zmc2V0IGlzIG5lZWRl
ZCBmb3IgbXVsdGktY29sdW1uLgogI2VuZGlmCiAKICAgICB2b2lkIGFkZExheW91dE92ZXJmbG93
Rm9yQm94KGNvbnN0IFJlbmRlckJveCosIGNvbnN0IExheW91dFJlY3QmKTsKQEAgLTI1NCwyMSAr
MjUyLDggQEAgaW5saW5lIGNvbnN0IFJlbmRlclJlZ2lvbiogdG9SZW5kZXJSZWdpb24oY29uc3Qg
UmVuZGVyT2JqZWN0KiBvYmplY3QpCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IFJlbmRl
clJlZ2lvbio+KG9iamVjdCk7CiB9CiAKLWlubGluZSBSZW5kZXJSZWdpb24mIHRvUmVuZGVyUmVn
aW9uKFJlbmRlck9iamVjdCYgb2JqZWN0KQotewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lN
UExJQ0FUSU9OKG9iamVjdC5pc1JlbmRlclJlZ2lvbigpKTsKLSAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8UmVuZGVyUmVnaW9uJj4ob2JqZWN0KTsKLX0KLQotaW5saW5lIGNvbnN0IFJlbmRlclJlZ2lv
biYgdG9SZW5kZXJSZWdpb24oY29uc3QgUmVuZGVyT2JqZWN0JiBvYmplY3QpCi17Ci0gICAgQVNT
RVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04ob2JqZWN0LmlzUmVuZGVyUmVnaW9uKCkpOwot
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBSZW5kZXJSZWdpb24mPihvYmplY3QpOwotfQot
CiAvLyBUaGlzIHdpbGwgY2F0Y2ggYW55b25lIGRvaW5nIGFuIHVubmVjZXNzYXJ5IGNhc3QuCiB2
b2lkIHRvUmVuZGVyUmVnaW9uKGNvbnN0IFJlbmRlclJlZ2lvbiopOwotdm9pZCB0b1JlbmRlclJl
Z2lvbihjb25zdCBSZW5kZXJSZWdpb24mKTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uU2V0LmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uU2V0LmgKaW5kZXggMDVlODI2NjVl
NmJhMzI4MTJmM2JlZTRkNDEwZWY0NzQwZjIyMTQxOS4uYTA5NjNmYmQwOWQzY2FiMTA3YTMzODhm
MDRjZTM0YTJmM2M5ODE4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclJlZ2lvblNldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdp
b25TZXQuaApAQCAtNjAsOCArNjAsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgY29uc3QgY2hh
ciogcmVuZGVyTmFtZSgpIGNvbnN0ID0gMDsKICAgICAKICAgICB2aXJ0dWFsIGJvb2wgaXNSZW5k
ZXJSZWdpb25TZXQoKSBjb25zdCBPVkVSUklERSBGSU5BTCB7IHJldHVybiB0cnVlOyB9Ci0KLSAg
ICB2aXJ0dWFsIGJvb2wgcmVxdWlyZXNMYXllcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVHJlZUFzVGV4dC5jcHAKaW5kZXggM2MyMTFkNTYzYjFjMTMyMDVkOWEzYmMzYzkwYmNj
OTM1YTUyODRkMS4uNzk4MDY5MGU0MjRlMGIwNTA5YTNkMWU5MTNhN2Q4Y2MyODJhMWZiYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcApAQCAtODAy
LDE4ICs4MDIsMTQgQEAgc3RhdGljIHZvaWQgd3JpdGVMYXllcnMoVGV4dFN0cmVhbSYgdHMsIGNv
bnN0IFJlbmRlckxheWVyKiByb290TGF5ZXIsIFJlbmRlckxheWUKICAgICAgICAgICAgICAgICAr
K2xheWVyQ291bnQ7CiAgICAgICAgIGlmIChsYXllckNvdW50KSB7CiAgICAgICAgICAgICBpbnQg
Y3VyckluZGVudCA9IGluZGVudDsKLSAgICAgICAgICAgIC8vIFdlIG9ubHkgcHJpbnQgdGhlIGhl
YWRlciBpZiB0aGVyZSdzIGF0IGxpc3QgYSBub24tUmVuZGVyTmFtZWRGbG93VGhyZWFkIHBhcnQg
b2YgdGhlIGxpc3QuCi0gICAgICAgICAgICBpZiAoIXBvc0xpc3QtPnNpemUoKSB8fCAhcG9zTGlz
dC0+YXQoMCktPmlzT3V0T2ZGbG93UmVuZGVyRmxvd1RocmVhZCgpKSB7Ci0gICAgICAgICAgICAg
ICAgaWYgKGJlaGF2aW9yICYgUmVuZGVyQXNUZXh0U2hvd0xheWVyTmVzdGluZykgewotICAgICAg
ICAgICAgICAgICAgICB3cml0ZUluZGVudCh0cywgaW5kZW50KTsKLSAgICAgICAgICAgICAgICAg
ICAgdHMgPDwgIiBwb3NpdGl2ZSB6LW9yZGVyIGxpc3QoIiA8PCBwb3NMaXN0LT5zaXplKCkgPDwg
IilcbiI7Ci0gICAgICAgICAgICAgICAgICAgICsrY3VyckluZGVudDsKLSAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSAhPSBwb3NMaXN0LT5z
aXplKCk7ICsraSkgewotICAgICAgICAgICAgICAgICAgICAvLyBEbyBub3QgcHJpbnQgbmFtZWQg
Zmxvd3MgdHdpY2UuCi0gICAgICAgICAgICAgICAgICAgIGlmICghcG9zTGlzdC0+YXQoaSktPmlz
T3V0T2ZGbG93UmVuZGVyRmxvd1RocmVhZCgpKQotICAgICAgICAgICAgICAgICAgICAgICAgd3Jp
dGVMYXllcnModHMsIHJvb3RMYXllciwgcG9zTGlzdC0+YXQoaSksIHBhaW50RGlydHlSZWN0LCBj
dXJySW5kZW50LCBiZWhhdmlvcik7Ci0gICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYg
KGJlaGF2aW9yICYgUmVuZGVyQXNUZXh0U2hvd0xheWVyTmVzdGluZykgeworICAgICAgICAgICAg
ICAgIHdyaXRlSW5kZW50KHRzLCBpbmRlbnQpOworICAgICAgICAgICAgICAgIHRzIDw8ICIgcG9z
aXRpdmUgei1vcmRlciBsaXN0KCIgPDwgbGF5ZXJDb3VudCA8PCAiKVxuIjsKKyAgICAgICAgICAg
ICAgICArK2N1cnJJbmRlbnQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpICE9IHBvc0xpc3QtPnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICAgICAg
aWYgKCFwb3NMaXN0LT5hdChpKS0+aXNPdXRPZkZsb3dSZW5kZXJGbG93VGhyZWFkKCkpCisgICAg
ICAgICAgICAgICAgICAgIHdyaXRlTGF5ZXJzKHRzLCByb290TGF5ZXIsIHBvc0xpc3QtPmF0KGkp
LCBwYWludERpcnR5UmVjdCwgY3VyckluZGVudCwgYmVoYXZpb3IpOwogICAgICAgICAgICAgfQog
ICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDRkOTI3MDQ4NjU0MTk2NGIyMWYwOWYzNjVmNTFmZWMz
NWIxNTNhYzAuLmMzZTViYmM5Y2Y0MmFmNWI2NDg4NzkwNTE2MjU0MDZiZGYzOTI3YzQgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwzMyBAQAorMjAxMy0wOS0yNiAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVl
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE1NjQ1MS4K
KyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTU2NDUxCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjE5NjUKKworICAgICAg
ICBCcm9rZSB0d28gZmFzdC9tdWx0aWNvbCB0ZXN0cy4gKFJlcXVlc3RlZCBieSBrbGluZyBvbgor
ICAgICAgICAjd2Via2l0KS4KKworICAgICAgICAqIGZhc3QvcmVnaW9ucy9sYXllcnMvYWNjZWxl
cmF0ZWQtY29tcG9zaXRpbmcvY3Jhc2gtdHJhbnNmb3JtLWluc2lkZS1yZWdpb24tZXhwZWN0ZWQu
aHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMvbGF5ZXJzL2FjY2VsZXJhdGVk
LWNvbXBvc2l0aW5nL2NyYXNoLXRyYW5zZm9ybS1pbnNpZGUtcmVnaW9uLmh0bWw6IFJlbW92ZWQu
CisgICAgICAgICogZmFzdC9yZWdpb25zL2xheWVycy9hY2NlbGVyYXRlZC1jb21wb3NpdGluZy9m
bG9hdGVkLXJlZ2lvbi13aXRoLXRyYW5zZm9ybWVkLWNoaWxkLWV4cGVjdGVkLmh0bWw6IFJlbW92
ZWQuCisgICAgICAgICogZmFzdC9yZWdpb25zL2xheWVycy9hY2NlbGVyYXRlZC1jb21wb3NpdGlu
Zy9mbG9hdGVkLXJlZ2lvbi13aXRoLXRyYW5zZm9ybWVkLWNoaWxkLmh0bWw6IFJlbW92ZWQuCisg
ICAgICAgICogZmFzdC9yZWdpb25zL2xheWVycy9hY2NlbGVyYXRlZC1jb21wb3NpdGluZy9tb3Zl
LWxheWVyLWZyb20tb25lLXJlZ2lvbi10by1hbm90aGVyLWV4cGVjdGVkLmh0bWw6IFJlbW92ZWQu
CisgICAgICAgICogZmFzdC9yZWdpb25zL2xheWVycy9hY2NlbGVyYXRlZC1jb21wb3NpdGluZy9t
b3ZlLWxheWVyLWZyb20tb25lLXJlZ2lvbi10by1hbm90aGVyLmh0bWw6IFJlbW92ZWQuCisgICAg
ICAgICogZmFzdC9yZWdpb25zL2xheWVycy9hY2NlbGVyYXRlZC1jb21wb3NpdGluZy9wcm9wYWdh
dGUtcmVnaW9uLWJveC1zaGFkb3ctYm9yZGVyLXBhZGRpbmctZXhwZWN0ZWQuaHRtbDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMvbGF5ZXJzL2FjY2VsZXJhdGVkLWNvbXBvc2l0aW5n
L3Byb3BhZ2F0ZS1yZWdpb24tYm94LXNoYWRvdy1ib3JkZXItcGFkZGluZy1mb3ItdmlkZW8tZXhw
ZWN0ZWQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMvbGF5ZXJzL2FjY2Vs
ZXJhdGVkLWNvbXBvc2l0aW5nL3Byb3BhZ2F0ZS1yZWdpb24tYm94LXNoYWRvdy1ib3JkZXItcGFk
ZGluZy1mb3ItdmlkZW8uaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMvbGF5
ZXJzL2FjY2VsZXJhdGVkLWNvbXBvc2l0aW5nL3Byb3BhZ2F0ZS1yZWdpb24tYm94LXNoYWRvdy1i
b3JkZXItcGFkZGluZy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9sYXll
cnMvYWNjZWxlcmF0ZWQtY29tcG9zaXRpbmcvcmVnaW9uLWFzLWxheWVyLWluLWFub3RoZXItZmxv
d3RocmVhZC1leHBlY3RlZC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9s
YXllcnMvYWNjZWxlcmF0ZWQtY29tcG9zaXRpbmcvcmVnaW9uLWFzLWxheWVyLWluLWFub3RoZXIt
Zmxvd3RocmVhZC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9sYXllcnMv
YWNjZWxlcmF0ZWQtY29tcG9zaXRpbmcvdHJhbnNmb3JtLXRyYW5zcGFyZW50LXBvc2l0aW9uZWQt
dmlkZW8taW5zaWRlLXJlZ2lvbi1leHBlY3RlZC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZh
c3QvcmVnaW9ucy9sYXllcnMvYWNjZWxlcmF0ZWQtY29tcG9zaXRpbmcvdHJhbnNmb3JtLXRyYW5z
cGFyZW50LXBvc2l0aW9uZWQtdmlkZW8taW5zaWRlLXJlZ2lvbi5odG1sOiBSZW1vdmVkLgorICAg
ICAgICAqIGZhc3QvcmVnaW9ucy9sYXllcnMvYWNjZWxlcmF0ZWQtY29tcG9zaXRpbmcvdHJhbnNm
b3JtZWQtbGF5ZXItaW5zaWRlLXRyYW5zZm9ybWVkLWxheWVyLWV4cGVjdGVkLmh0bWw6IFJlbW92
ZWQuCisgICAgICAgICogZmFzdC9yZWdpb25zL2xheWVycy9hY2NlbGVyYXRlZC1jb21wb3NpdGlu
Zy90cmFuc2Zvcm1lZC1sYXllci1pbnNpZGUtdHJhbnNmb3JtZWQtbGF5ZXIuaHRtbDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMvbGF5ZXJzL2FjY2VsZXJhdGVkLWNvbXBvc2l0aW5n
L3otaW5kZXgtZXhwZWN0ZWQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMv
bGF5ZXJzL2FjY2VsZXJhdGVkLWNvbXBvc2l0aW5nL3otaW5kZXgtdXBkYXRlLWV4cGVjdGVkLmh0
bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9yZWdpb25zL2xheWVycy9hY2NlbGVyYXRlZC1j
b21wb3NpdGluZy96LWluZGV4LXVwZGF0ZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3Qv
cmVnaW9ucy9sYXllcnMvYWNjZWxlcmF0ZWQtY29tcG9zaXRpbmcvei1pbmRleC5odG1sOiBSZW1v
dmVkLgorCiAyMDEzLTA5LTI2ICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxlLmNvbT4KIAog
ICAgICAgICBPbmUgbW9yZSBJbmRleGVkREIgcmViYXNlbGluZS4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvcmVnaW9ucy9sYXllcnMvYWNjZWxlcmF0ZWQtY29tcG9zaXRpbmcvY3Jhc2gt
dHJhbnNmb3JtLWluc2lkZS1yZWdpb24tZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
cmVnaW9ucy9sYXllcnMvYWNjZWxlcmF0ZWQtY29tcG9zaXRpbmcvY3Jhc2gtdHJhbnNmb3JtLWlu
c2lkZS1yZWdpb24tZXhwZWN0ZWQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
NTY5Nzc0NzY5ZjlkZmIxYmI1NjA3NTFiYjY2MjUzMjc2ZDRlNTcyMC4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMv
bGF5ZXJzL2FjY2VsZXJhdGVkLWNvbXBvc2l0aW5nL2NyYXNoLXRyYW5zZm9ybS1pbnNpZGUtcmVn
aW9uLWV4cGVjdGVkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNyArMCwwIEBACi08IWRvY3R5
cGUgaHRtbD4KLTxodG1sPgotCTxoZWFkPgotCQk8dGl0bGU+QnVnIDEyMDQ1NzogW0NTUyBSZWdp
b25zXSBUaGUgbGF5ZXJzIGZyb20gdGhlIGZsb3cgdGhyZWFkIHNob3VsZCBiZSBjb2xsZWN0ZWQg
dW5kZXIgdGhlIHJlZ2lvbnMnIGxheWVycy48L3RpdGxlPgotCQk8c3R5bGU+Ci0JCQlodG1sIHsK
LQkJCQktd2Via2l0LWZvbnQtc21vb3RoaW5nOiBub25lOwotCQkJfQotCQkJLnRyYW5zZm9ybWVk
IHsKLQkJCQktd2Via2l0LXRyYW5zZm9ybTpyb3RhdGVYKDE1ZGVnKSByb3RhdGVaKDE1ZGVnKTsK
LQkJCX0KLQkJCS5jb250ZW50IHsKLQkJCX0KLQkJCS5yZWdpb24gewotCQkJCS13ZWJraXQtdHJh
bnNmb3JtOnJvdGF0ZVooMGRlZyk7IC8qc28gdGhlIGRpdiBpcyBjb21wb3NpdGVkLCBqdXN0IGxp
a2UgdGhlIHJlZ2lvbiovCi0JCQl9Ci0JCTwvc3R5bGU+Ci0JCTxzY3JpcHQ+Ci0JCQl3aW5kb3cu
YWRkRXZlbnRMaXN0ZW5lciggImxvYWQiLCBmdW5jdGlvbiAoKSB7Ci0JCQkJdmFyIGRpdiA9IGRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiN0cmFuc2Zvcm1lZCIpOwotCQkJCWZvcih2YXIgaSA9IDA7
IGkgPCAxMDsgKytpICkgewotCQkJCQlkaXYuY2xhc3NOYW1lID0gInRyYW5zZm9ybWVkIGNvbnRl
bnQiOwotCQkJCQlkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKLQkJCQkJZGl2LmNsYXNzTmFtZSA9
ICJjb250ZW50IjsKLQkJCQkJZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7Ci0JCQkJfQotCQkJfSwg
ZmFsc2UpOwotCQk8L3NjcmlwdD4KLQk8L2hlYWQ+Ci0JPGJvZHk+Ci0JCTxkaXYgaWQ9InRyYW5z
Zm9ybWVkIiBjbGFzcz0idHJhbnNmb3JtZWQgY29udGVudCI+dHJhbnNmb3JtZWQgY29udGVudDwv
ZGl2PgotCQk8ZGl2IGlkPSJ0cmFuc2Zvcm1lZCIgY2xhc3M9InRyYW5zZm9ybWVkIGNvbnRlbnQi
PnRyYW5zZm9ybWVkIGNvbnRlbnQ8L2Rpdj4KLQkJPGRpdiBjbGFzcz0iY29udGVudCI+bm90IHRy
YW5zZm9ybWVkIGNvbnRlbnQ8L2Rpdj4KLQkJPGRpdiBjbGFzcz0icmVnaW9uIj48L2Rpdj4KLQkJ
PGRpdj5UZXN0IFBBU1NFUyBpZiBpdCBkb2Vzbid0IGNyYXNoIG9yIGFzc2VydDwvZGl2PgotCTwv
Ym9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvbGF5ZXJzL2FjY2VsZXJhdGVkLWNvbXBvc2l0aW5nL2Ny
YXNoLXRyYW5zZm9ybS1pbnNpZGUtcmVnaW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lv
bnMvbGF5ZXJzL2FjY2VsZXJhdGVkLWNvbXBvc2l0aW5nL2NyYXNoLXRyYW5zZm9ybS1pbnNpZGUt
cmVnaW9uLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDExMWUzZjVjY2YzOGYw
ZjE0MGViY2ZhYjkwNDk5ZTAxM2U4NDIyZDAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2xheWVycy9hY2NlbGVy
YXRlZC1jb21wb3NpdGluZy9jcmFzaC10cmFuc2Zvcm0taW5zaWRlLXJlZ2lvbi5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsMzggKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08aHRtbD4KLQk8aGVh
ZD4KLQkJPHRpdGxlPkJ1ZyAxMjA0NTc6IFtDU1MgUmVnaW9uc10gVGhlIGxheWVycyBmcm9tIHRo
ZSBmbG93IHRocmVhZCBzaG91bGQgYmUgY29sbGVjdGVkIHVuZGVyIHRoZSByZWdpb25zJyBsYXll
cnMuPC90aXRsZT4KLQkJPHN0eWxlPgotCQkJaHRtbCB7Ci0JCQkJLXdlYmtpdC1mb250LXNtb290
aGluZzogbm9uZTsKLQkJCX0KLQkJCS50cmFuc2Zvcm1lZCB7Ci0JCQkJLXdlYmtpdC10cmFuc2Zv
cm06cm90YXRlWCgxNWRlZykgcm90YXRlWigxNWRlZyk7Ci0JCQl9Ci0JCQkuY29udGVudCB7Ci0J
CQkJLXdlYmtpdC1mbG93LWludG86dGhlRmxvdzsKLQkJCX0KLQkJCS5yZWdpb24gewotCQkJCS13
ZWJraXQtZmxvdy1mcm9tOnRoZUZsb3c7Ci0JCQl9Ci0JCTwvc3R5bGU+Ci0JCTxzY3JpcHQ+Ci0J
CQl3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lciggImxvYWQiLCBmdW5jdGlvbiAoKSB7Ci0JCQkJdmFy
IGRpdiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiN0cmFuc2Zvcm1lZCIpOwotCQkJCWZvcih2
YXIgaSA9IDA7IGkgPCAxMDsgKytpICkgewotCQkJCQlkaXYuY2xhc3NOYW1lID0gInRyYW5zZm9y
bWVkIGNvbnRlbnQiOwotCQkJCQlkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKLQkJCQkJZGl2LmNs
YXNzTmFtZSA9ICJjb250ZW50IjsKLQkJCQkJZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7Ci0JCQkJ
fQotCQkJfSwgZmFsc2UpOwotCQk8L3NjcmlwdD4KLQk8L2hlYWQ+Ci0JPGJvZHk+Ci0JCTxkaXYg
aWQ9InRyYW5zZm9ybWVkIiBjbGFzcz0idHJhbnNmb3JtZWQgY29udGVudCI+dHJhbnNmb3JtZWQg
Y29udGVudDwvZGl2PgotCQk8ZGl2IGlkPSJ0cmFuc2Zvcm1lZCIgY2xhc3M9InRyYW5zZm9ybWVk
IGNvbnRlbnQiPnRyYW5zZm9ybWVkIGNvbnRlbnQ8L2Rpdj4KLQkJPGRpdiBjbGFzcz0iY29udGVu
dCI+bm90IHRyYW5zZm9ybWVkIGNvbnRlbnQ8L2Rpdj4KLQkJPGRpdiBjbGFzcz0icmVnaW9uIj48
L2Rpdj4KLQkJPGRpdj5UZXN0IFBBU1NFUyBpZiBpdCBkb2Vzbid0IGNyYXNoIG9yIGFzc2VydDwv
ZGl2PgotCTwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvbGF5ZXJzL2FjY2VsZXJhdGVkLWNvbXBv
c2l0aW5nL2Zsb2F0ZWQtcmVnaW9uLXdpdGgtdHJhbnNmb3JtZWQtY2hpbGQtZXhwZWN0ZWQuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9sYXllcnMvYWNjZWxlcmF0ZWQtY29tcG9zaXRp
bmcvZmxvYXRlZC1yZWdpb24td2l0aC10cmFuc2Zvcm1lZC1jaGlsZC1leHBlY3RlZC5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MzYzN2E0MjdmMWJhNWVmZTdjYmQ1MmUzMDg1
ZDkzYjIyMjU4OTYyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9sYXllcnMvYWNjZWxlcmF0ZWQtY29tcG9zaXRp
bmcvZmxvYXRlZC1yZWdpb24td2l0aC10cmFuc2Zvcm1lZC1jaGlsZC1leHBlY3RlZC5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsNTcgKzAsMCBAQAotPGh0bWw+Ci0JPGhlYWQ+Ci0JCTx0aXRsZT5C
dWcgIzwvdGl0bGU+Ci0JCTxzdHlsZT4KLQkJCWh0bWwgewotCQkJCS13ZWJraXQtZm9udC1zbW9v
dGhpbmc6IG5vbmU7Ci0JCQl9Ci0KLQkJCS5jb250ZW50IHsKLQkJCX0KLQkJCS50cmFuc2Zvcm1l
ZCB7Ci0JCQkJLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlWCgxNWRlZykgcm90YXRlWigxNWRlZyk7
Ci0JCQl9Ci0JCQkucmVnaW9uIHsKLQkJCQlkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Ci0JCQkJZmxv
YXQ6IHJpZ2h0OwotCQkJCXdpZHRoOiAyMTBweDsKLQkJCQloZWlnaHQ6IDExMHB4OwotCQkJCWJh
Y2tncm91bmQtY29sb3I6ICNlZWU7Ci0JCQkJLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlWigwZGVn
KTsgLypzbyB0aGUgZGl2IGlzIGNvbXBvc2l0ZWQsIGp1c3QgbGlrZSB0aGUgcmVnaW9uKi8KLQkJ
CX0KLQkJCS50ZXh0IHsKLQkJCQl3aWR0aDogNjAwcHg7Ci0JCQl9Ci0JCQkqIHsKLQkJCQlib3Jk
ZXI6c29saWQgMXB4ICM4ODg7Ci0JCQkJcGFkZGluZzogMnB4OwotCQkJCW1hcmdpbjogM3B4Owot
CQkJfQotCQk8L3N0eWxlPgotCQk8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vY29tcG9zaXRpbmcv
cmVzb3VyY2VzL21lZGlhLXRlc3RpbmcuanMiPjwvc2NyaXB0PgotCQk8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vLi4vbWVkaWEvbWVkaWEtZmlsZS5qcyI+PC9zY3JpcHQ+Ci0KLQkJPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4KLQkJCWZ1bmN0aW9uIHRlc3REb25l
KCkgewotCQkJCWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLQkJCQkJdGVzdFJ1bm5lci5ub3RpZnlE
b25lKCk7Ci0JCQl9Ci0KLQkJCXdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKLQkJCQl2YXIg
dmlkZW8gPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgndmlkZW8nKVswXTsKLQkJCQlz
ZXR1cFZpZGVvKHZpZGVvLCAnLi4vLi4vLi4vLi4vbWVkaWEvY29udGVudC9jb3VudGluZycsIG51
bGwsIHRlc3REb25lKTsKLQkJCX07Ci0JCTwvc2NyaXB0PgotCTwvaGVhZD4KLQk8Ym9keT4KLQkJ
PGRpdiBjbGFzcz0idGV4dCI+Ci0JCQlMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2Vj
dGV0dXIgYWRpcGlzaWNpbmcgZWxpdC4gTW9sbGl0aWEsIGN1cGlkaXRhdGUsIHBvcnJvLCBkaWdu
aXNzaW1vcyBmdWdhIGltcGVkaXQgY29ycnVwdGkgc3VzY2lwaXQgdGVtcG9yYSBlYXJ1bSBvZGl0
IGFzcGVyaW9yZXMgcXVpYSBuYW0gc29sdXRhIHJlcGVsbGF0IHBlcnNwaWNpYXRpcyBpc3RlIGV0
IHZvbHVwdGF0ZW0gbW9sZXN0aWFlIG1hZ25pIGEgdm9sdXB0YXMgbWF4aW1lIG9mZmljaWlzIGl1
c3RvIGRvbG9yIHV0IGRpY3RhLiAKLQkJCTxkaXYgY2xhc3M9InJlZ2lvbiI+Ci0JCQkJPGRpdiBj
bGFzcz0iY29udGVudCI+TG9uZyB0ZXh0IGluc2lkZSB0aGUgcmVnaW9uPC9kaXY+Ci0JCQkJPHZp
ZGVvIGNsYXNzPSJjb250ZW50IHRyYW5zZm9ybWVkIiBoZWlnaHQ9IjEwMCIgd2lkdGg9Ijk2IiBp
ZD0idmlkZW8iIGNvbnRyb2xzPjwvdmlkZW8+Ci0JCQkJPGRpdiBjbGFzcz0iY29udGVudCB0cmFu
c2Zvcm1lZCI+TG9uZyB0ZXh0IGluc2lkZSB0aGUgcmVnaW9uPC9kaXY+Ci0JCQk8L2Rpdj4KLQkJ
CSBFdCwgYWQgc2l0IHByYWVzZW50aXVtIHJlY3VzYW5kYWUgb21uaXMgcmVpY2llbmRpcyBpcHNh
IGV2ZW5pZXQgYWNjdXNhbnRpdW0gdmVybyByZXByZWhlbmRlcml0IGVuaW0gbWludXMgcGVyZmVy
ZW5kaXMgc2FwaWVudGUgbWF4aW1lIGZ1Z2lhdCBpdXJlIHNvbHV0YSBtaW5pbWEgc3VzY2lwaXQu
PC9kaXY+Ci0JCTxkaXYgY2xhc3M9InRleHQiPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBj
b25zZWN0ZXR1ciBhZGlwaXNpY2luZyBlbGl0LiBNb2xsaXRpYSwgY3VwaWRpdGF0ZSwgcG9ycm8s
IGRpZ25pc3NpbW9zIGZ1Z2EgaW1wZWRpdCBjb3JydXB0aSBzdXNjaXBpdCB0ZW1wb3JhIGVhcnVt
IG9kaXQgYXNwZXJpb3JlcyBxdWlhIG5hbSBzb2x1dGEgcmVwZWxsYXQgcGVyc3BpY2lhdGlzIGlz
dGUgZXQgdm9sdXB0YXRlbSBtb2xlc3RpYWUgbWFnbmkgYSB2b2x1cHRhcyBtYXhpbWUgb2ZmaWNp
aXMgaXVzdG8gZG9sb3IgdXQgZGljdGEuIEV0LCBhZCBzaXQgcHJhZXNlbnRpdW0gcmVjdXNhbmRh
ZSBvbW5pcyByZWljaWVuZGlzIGlwc2EgZXZlbmlldCBhY2N1c2FudGl1bSB2ZXJvIHJlcHJlaGVu
ZGVyaXQgZW5pbSBtaW51cyBwZXJmZXJlbmRpcyBzYXBpZW50ZSBtYXhpbWUgZnVnaWF0IGl1cmUg
c29sdXRhIG1pbmltYSBzdXNjaXBpdC48L2Rpdj4KLQk8L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25z
L2xheWVycy9hY2NlbGVyYXRlZC1jb21wb3NpdGluZy9mbG9hdGVkLXJlZ2lvbi13aXRoLXRyYW5z
Zm9ybWVkLWNoaWxkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvbGF5ZXJzL2FjY2Vs
ZXJhdGVkLWNvbXBvc2l0aW5nL2Zsb2F0ZWQtcmVnaW9uLXdpdGgtdHJhbnNmb3JtZWQtY2hpbGQu
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2JlZjg4NTIyMzgyZDM5YTRjMDY5
ZGI3NzI2YTIwNjM5ZDY1ZjBjNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvbGF5ZXJzL2FjY2VsZXJhdGVkLWNv
bXBvc2l0aW5nL2Zsb2F0ZWQtcmVnaW9uLXdpdGgtdHJhbnNmb3JtZWQtY2hpbGQuaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDU4ICswLDAgQEAKLTxodG1sPgotCTxoZWFkPgotCQk8dGl0bGU+QnVn
ICM8L3RpdGxlPgotCQk8c3R5bGU+Ci0JCQlodG1sIHsKLQkJCQktd2Via2l0LWZvbnQtc21vb3Ro
aW5nOiBub25lOwotCQkJfQotCi0JCQkuY29udGVudCB7Ci0JCQkJLXdlYmtpdC1mbG93LWludG86
IHRoZUZsb3c7Ci0JCQl9Ci0JCQkudHJhbnNmb3JtZWQgewotCQkJCS13ZWJraXQtdHJhbnNmb3Jt
OnJvdGF0ZVgoMTVkZWcpIHJvdGF0ZVooMTVkZWcpOwotCQkJfQotCQkJLnJlZ2lvbiB7Ci0JCQkJ
LXdlYmtpdC1mbG93LWZyb206IHRoZUZsb3c7Ci0JCQkJZGlzcGxheTogaW5saW5lLWJsb2NrOwot
CQkJCWZsb2F0OiByaWdodDsKLQkJCQl3aWR0aDogMjEwcHg7Ci0JCQkJaGVpZ2h0OiAxMTBweDsK
LQkJCQliYWNrZ3JvdW5kLWNvbG9yOiAjZWVlOwotCQkJfQotCQkJLnRleHQgewotCQkJCXdpZHRo
OiA2MDBweDsKLQkJCX0KLQkJCSogewotCQkJCWJvcmRlcjpzb2xpZCAxcHggIzg4ODsKLQkJCQlw
YWRkaW5nOiAycHg7Ci0JCQkJbWFyZ2luOiAzcHg7Ci0JCQl9Ci0JCTwvc3R5bGU+Ci0JCTxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi8uLi9jb21wb3NpdGluZy9yZXNvdXJjZXMvbWVkaWEtdGVzdGluZy5q
cyI+PC9zY3JpcHQ+Ci0JCTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9tZWRpYS9tZWRpYS1maWxl
LmpzIj48L3NjcmlwdD4KLQotCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNl
dD0idXRmLTgiPgotCQkJZnVuY3Rpb24gdGVzdERvbmUoKSB7Ci0JCQkJaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQotCQkJCQl0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKLQkJCX0KLQotCQkJd2luZG93
Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgewotCQkJCXZhciB2aWRlbyA9IGRvY3VtZW50LmdldEVsZW1l
bnRzQnlUYWdOYW1lKCd2aWRlbycpWzBdOwotCQkJCXNldHVwVmlkZW8odmlkZW8sICcuLi8uLi8u
Li8uLi9tZWRpYS9jb250ZW50L2NvdW50aW5nJywgbnVsbCwgdGVzdERvbmUpOwotCQkJfTsKLQkJ
PC9zY3JpcHQ+Ci0JPC9oZWFkPgotCTxib2R5PgotCQk8ZGl2IGNsYXNzPSJ0ZXh0Ij4KLQkJCUxv
cmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNpY2luZyBlbGl0LiBN
b2xsaXRpYSwgY3VwaWRpdGF0ZSwgcG9ycm8sIGRpZ25pc3NpbW9zIGZ1Z2EgaW1wZWRpdCBjb3Jy
dXB0aSBzdXNjaXBpdCB0ZW1wb3JhIGVhcnVtIG9kaXQgYXNwZXJpb3JlcyBxdWlhIG5hbSBzb2x1
dGEgcmVwZWxsYXQgcGVyc3BpY2lhdGlzIGlzdGUgZXQgdm9sdXB0YXRlbSBtb2xlc3RpYWUgbWFn
bmkgYSB2b2x1cHRhcyBtYXhpbWUgb2ZmaWNpaXMgaXVzdG8gZG9sb3IgdXQgZGljdGEuIAotCQkJ
PGRpdiBjbGFzcz0icmVnaW9uIj48L2Rpdj4KLQkJCUV0LCBhZCBzaXQgcHJhZXNlbnRpdW0gcmVj
dXNhbmRhZSBvbW5pcyByZWljaWVuZGlzIGlwc2EgZXZlbmlldCBhY2N1c2FudGl1bSB2ZXJvIHJl
cHJlaGVuZGVyaXQgZW5pbSBtaW51cyBwZXJmZXJlbmRpcyBzYXBpZW50ZSBtYXhpbWUgZnVnaWF0
IGl1cmUgc29sdXRhIG1pbmltYSBzdXNjaXBpdC4KLQkJPC9kaXY+Ci0JCTxkaXYgY2xhc3M9InRl
eHQiPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNpY2luZyBl
bGl0LiBNb2xsaXRpYSwgY3VwaWRpdGF0ZSwgcG9ycm8sIGRpZ25pc3NpbW9zIGZ1Z2EgaW1wZWRp
dCBjb3JydXB0aSBzdXNjaXBpdCB0ZW1wb3JhIGVhcnVtIG9kaXQgYXNwZXJpb3JlcyBxdWlhIG5h
bSBzb2x1dGEgcmVwZWxsYXQgcGVyc3BpY2lhdGlzIGlzdGUgZXQgdm9sdXB0YXRlbSBtb2xlc3Rp
YWUgbWFnbmkgYSB2b2x1cHRhcyBtYXhpbWUgb2ZmaWNpaXMgaXVzdG8gZG9sb3IgdXQgZGljdGEu
IEV0LCBhZCBzaXQgcHJhZXNlbnRpdW0gcmVjdXNhbmRhZSBvbW5pcyByZWljaWVuZGlzIGlwc2Eg
ZXZlbmlldCBhY2N1c2FudGl1bSB2ZXJvIHJlcHJlaGVuZGVyaXQgZW5pbSBtaW51cyBwZXJmZXJl
bmRpcyBzYXBpZW50ZSBtYXhpbWUgZnVnaWF0IGl1cmUgc29sdXRhIG1pbmltYSBzdXNjaXBpdC48
L2Rpdj4KLQkJPGRpdiBjbGFzcz0iY29udGVudCI+TG9uZyB0ZXh0IGluc2lkZSB0aGUgcmVnaW9u
PC9kaXY+Ci0JCTx2aWRlbyBjbGFzcz0iY29udGVudCB0cmFuc2Zvcm1lZCIgaGVpZ2h0PSIxMDAi
IHdpZHRoPSI5NiIgaWQ9InZpZGVvIiBjb250cm9scz48L3ZpZGVvPgotCQk8ZGl2IGNsYXNzPSJj
b250ZW50IHRyYW5zZm9ybWVkIj5Mb25nIHRleHQgaW5zaWRlIHRoZSByZWdpb248L2Rpdj4KLQk8
L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2xheWVycy9hY2NlbGVyYXRlZC1jb21wb3NpdGluZy9t
b3ZlLWxheWVyLWZyb20tb25lLXJlZ2lvbi10by1hbm90aGVyLWV4cGVjdGVkLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L3JlZ2lvbnMvbGF5ZXJzL2FjY2VsZXJhdGVkLWNvbXBvc2l0aW5nL21vdmUt
bGF5ZXItZnJvbS1vbmUtcmVnaW9uLXRvLWFub3RoZXItZXhwZWN0ZWQuaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggYzdhZTQxZDkwMDc1ODQyMTgxYWEzOWVmNTg3ZmY5NmUzZjU3
OWU3NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L3JlZ2lvbnMvbGF5ZXJzL2FjY2VsZXJhdGVkLWNvbXBvc2l0aW5nL21vdmUt
bGF5ZXItZnJvbS1vbmUtcmVnaW9uLXRvLWFub3RoZXItZXhwZWN0ZWQuaHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDY0ICswLDAgQEAKLTxodG1sPgotCTxoZWFkPgotCQk8dGl0bGU+QnVnIDEyMDQ1
NzogW0NTUyBSZWdpb25zXSBUaGUgbGF5ZXJzIGZyb20gdGhlIGZsb3cgdGhyZWFkIHNob3VsZCBi
ZSBjb2xsZWN0ZWQgdW5kZXIgdGhlIHJlZ2lvbnMnIGxheWVycy48L3RpdGxlPgotCQk8c3R5bGU+
Ci0JCQlodG1sIHsKLQkJCQktd2Via2l0LWZvbnQtc21vb3RoaW5nOiBub25lOwotCQkJfQotCi0J
CQkuY29udGVudCB7Ci0JCQkJd2lkdGg6IDE1MHB4OwotCQkJCWhlaWdodDogMTAwcHg7Ci0JCQkJ
YmFja2dyb3VuZC1jb2xvcjogWWVsbG93OwotCQkJfQotCi0JCQlib2R5IC5yZWdpb246bnRoLWNo
aWxkKDIpIC5jb250ZW50IHsKLQkJCQltYXJnaW4tdG9wOiAwcHg7IC8qbWFyZ2lucyBhcmUgY29s
bGFwc2VkIHdoZW4gZnJhZ21lbnRlZCovCi0JCQl9Ci0KLQkJCS5tb3Zlc1RoZUxheWVyVG9OZXh0
UmVnaW9uIHsKLQkJCQloZWlnaHQ6IDIyNXB4OwotCQkJfQotCi0JCQkjY2F1c2VzVGhlUmVnaW9u
VG9CZUNvbXBvc2l0ZWQgewotCQkJCS13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVooMXB4KTsg
LypzbyB0aGUgZGl2IGlzIGNvbXBvc2l0ZWQqLwotCQkJCXdpZHRoOiAxMDBweDsKLQkJCQloZWln
aHQ6IDQwcHg7Ci0JCQkJYmFja2dyb3VuZC1jb2xvcjogTGltZTsKLQkJCX0KLQotCQkJLnJlZ2lv
biB7Ci0JCQkJLXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWigxcHgpOyAvKnNvIHRoZSBkaXYg
aXMgY29tcG9zaXRlZCwganVzdCBsaWtlIHRoZSByZWdpb24qLwotCQkJCWhlaWdodDogMjMwcHg7
Ci0JCQkJYm9yZGVyOnNvbGlkIDFweCAjODg4OwotCQkJfQotCQk8L3N0eWxlPgotCTwvaGVhZD4K
LQk8Ym9keT4KLQkJc29tZSB0ZXh0IDEuCi0KLQkJPGRpdiBjbGFzcz0icmVnaW9uIj4KLQkJCTxk
aXYgaWQ9IndpbGxCZUFkZGVkVG9UaGVGbG93IiBjbGFzcz0iY29udGVudCBtb3Zlc1RoZUxheWVy
VG9OZXh0UmVnaW9uIj5nb2VzIGluIHRoZSAxc3QgcmVnaW9uLjwvZGl2PgotCQk8L2Rpdj4KLQot
CQlzb21lIHRleHQuCi0KLQkJPGRpdiBjbGFzcz0icmVnaW9uIj4KLQkJCTxkaXYgY2xhc3M9ImNv
bnRlbnQiPgotCQkJCXNvbWUgdGV4dCAyLgotCQkJCTxkaXYgaWQ9ImNhdXNlc1RoZVJlZ2lvblRv
QmVDb21wb3NpdGVkIj4KLQkJCQkJc29tZSB0ZXh0IDMuCi0JCQkJPC9kaXY+Ci0JCQkJc29tZSB0
ZXh0IDQuCi0JCQkJPGRpdj5zb21lIHRleHQuPC9kaXY+Ci0JCQkJPGRpdj5zb21lIHRleHQuPC9k
aXY+Ci0JCQkJPGRpdj5zb21lIHRleHQuPC9kaXY+Ci0JCQkJPGRpdj5zb21lIHRleHQuPC9kaXY+
Ci0JCQk8L2Rpdj4KLQkJPC9kaXY+Ci0KLQkJc29tZSB0ZXh0IDUuCi0KLQkJPHA+SWYgd2UgaGF2
ZSBsYXllcnMgdGhhdCBtb3ZlZCBmcm9tIG9uZSByZWdpb24gdG8gYW5vdGhlciwgd2UgdHJpZ2dl
ciBhIGNvbXBvc2l0ZWQgbGF5ZXJzIHJlYnVpbGQgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIHJlZ2lv
bnMgd2lsbCBjb2xsZWN0IHRoZSByaWdodCBsYXllcnMuPC9wPgotCTwvYm9keT4KLTwvaHRtbD4K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L3JlZ2lvbnMvbGF5ZXJzL2FjY2VsZXJhdGVkLWNvbXBvc2l0aW5nL21vdmUtbGF5ZXItZnJvbS1v
bmUtcmVnaW9uLXRvLWFub3RoZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9sYXll
cnMvYWNjZWxlcmF0ZWQtY29tcG9zaXRpbmcvbW92ZS1sYXllci1mcm9tLW9uZS1yZWdpb24tdG8t
YW5vdGhlci5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxZDZiNDgwY2EzMjdm
ZTNkOTc1NzM0NzQ2NjE0MzU4ZWYxZWFkZTJmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9sYXllcnMvYWNjZWxl
cmF0ZWQtY29tcG9zaXRpbmcvbW92ZS1sYXllci1mcm9tLW9uZS1yZWdpb24tdG8tYW5vdGhlci5o
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjUgKzAsMCBAQAotPGh0bWw+Ci0JPGhlYWQ+Ci0JCTx0
aXRsZT5CdWcgMTIwNDU3OiBbQ1NTIFJlZ2lvbnNdIFRoZSBsYXllcnMgZnJvbSB0aGUgZmxvdyB0
aHJlYWQgc2hvdWxkIGJlIGNvbGxlY3RlZCB1bmRlciB0aGUgcmVnaW9ucycgbGF5ZXJzLjwvdGl0
bGU+Ci0JCTxzdHlsZT4KLQkJCWh0bWwgewotCQkJCS13ZWJraXQtZm9udC1zbW9vdGhpbmc6IG5v
bmU7Ci0JCQl9Ci0KLQkJCS5jb250ZW50IHsKLQkJCQktd2Via2l0LWZsb3ctaW50bzogZmxvdzsK
LQkJCQl3aWR0aDogMTUwcHg7Ci0JCQkJaGVpZ2h0OiAxMDBweDsKLQkJCQliYWNrZ3JvdW5kLWNv
bG9yOiBZZWxsb3c7Ci0JCQl9Ci0KLQkJCSNjYXVzZXNUaGVSZWdpb25Ub0JlQ29tcG9zaXRlZCB7
Ci0JCQkJLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVooMXB4KTsKLQkJCQl3aWR0aDogMTAw
cHg7Ci0JCQkJaGVpZ2h0OiA0MHB4OwotCQkJCWJhY2tncm91bmQtY29sb3I6IExpbWU7Ci0JCQl9
Ci0KLQkJCS5tb3Zlc1RoZUxheWVyVG9OZXh0UmVnaW9uIHsKLQkJCQloZWlnaHQ6IDIyNXB4Owot
CQkJfQotCi0JCQkucmVnaW9uIHsKLQkJCQktd2Via2l0LWZsb3ctZnJvbTogZmxvdzsKLQkJCQlo
ZWlnaHQ6IDIzMHB4OwotCQkJCWJvcmRlcjpzb2xpZCAxcHggIzg4ODsKLQkJCX0KLQkJPC9zdHls
ZT4KLQk8L2hlYWQ+Ci0JPGJvZHk+Ci0JCXNvbWUgdGV4dCAxLgotCi0JCTxkaXYgY2xhc3M9ImNv
bnRlbnQiPmdvZXMgaW4gdGhlIDFzdCByZWdpb24uPC9kaXY+Ci0KLQkJPGRpdiBjbGFzcz0iY29u
dGVudCI+Ci0JCQlzb21lIHRleHQgMi4KLQkJCTxkaXYgaWQ9ImNhdXNlc1RoZVJlZ2lvblRvQmVD
b21wb3NpdGVkIj4KLQkJCQlzb21lIHRleHQgMy4KLQkJCTwvZGl2PgotCQkJc29tZSB0ZXh0IDQu
Ci0JCQk8ZGl2PnNvbWUgdGV4dC48L2Rpdj4KLQkJCTxkaXY+c29tZSB0ZXh0LjwvZGl2PgotCQkJ
PGRpdj5zb21lIHRleHQuPC9kaXY+Ci0JCQk8ZGl2PnNvbWUgdGV4dC48L2Rpdj4KLQkJPC9kaXY+
Ci0KLQkJPGRpdiBjbGFzcz0icmVnaW9uIiBpZD0icjEiPjwvZGl2PgotCi0JCXNvbWUgdGV4dC4K
LQotCQk8ZGl2IGNsYXNzPSJyZWdpb24iIGlkPSJyMiI+PC9kaXY+Ci0JCXNvbWUgdGV4dCA1Lgot
Ci0JCTxwPklmIHdlIGhhdmUgbGF5ZXJzIHRoYXQgbW92ZWQgZnJvbSBvbmUgcmVnaW9uIHRvIGFu
b3RoZXIsIHdlIHRyaWdnZXIgYSBjb21wb3NpdGVkIGxheWVycyByZWJ1aWxkIHRvIG1ha2Ugc3Vy
ZSB0aGF0IHRoZSByZWdpb25zIHdpbGwgY29sbGVjdCB0aGUgcmlnaHQgbGF5ZXJzLjwvcD4KLQot
CQk8c2NyaXB0PgotCQkJZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7IC8vIGRvIHRoZSBsYXlvdXQu
Ci0JCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJib2R5IC5jb250ZW50OmZpcnN0LWNoaWxkIiku
Y2xhc3NOYW1lID0gImNvbnRlbnQgbW92ZXNUaGVMYXllclRvTmV4dFJlZ2lvbiI7Ci0JCTwvc2Ny
aXB0PgotCTwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvbGF5ZXJzL2FjY2VsZXJhdGVkLWNvbXBv
c2l0aW5nL3Byb3BhZ2F0ZS1yZWdpb24tYm94LXNoYWRvdy1ib3JkZXItcGFkZGluZy1leHBlY3Rl
ZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2xheWVycy9hY2NlbGVyYXRlZC1jb21w
b3NpdGluZy9wcm9wYWdhdGUtcmVnaW9uLWJveC1zaGFkb3ctYm9yZGVyLXBhZGRpbmctZXhwZWN0
ZWQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDM5MGZiNDI2Nzg4MTk1NWRk
YjkzNGEyYmI2YzY0MTY4YTkyOTQzMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvbGF5ZXJzL2FjY2VsZXJhdGVk
LWNvbXBvc2l0aW5nL3Byb3BhZ2F0ZS1yZWdpb24tYm94LXNoYWRvdy1ib3JkZXItcGFkZGluZy1l
eHBlY3RlZC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTAgKzAsMCBAQAotPGh0bWw+Ci0JPGhl
YWQ+Ci0JCTx0aXRsZT5CdWcgMTIwNDU3OiBbQ1NTIFJlZ2lvbnNdIFRoZSBsYXllcnMgZnJvbSB0
aGUgZmxvdyB0aHJlYWQgc2hvdWxkIGJlIGNvbGxlY3RlZCB1bmRlciB0aGUgcmVnaW9ucycgbGF5
ZXJzLjwvdGl0bGU+Ci0JCTxzdHlsZT4KLQkJCWh0bWwgewotCQkJCS13ZWJraXQtZm9udC1zbW9v
dGhpbmc6IG5vbmU7Ci0JCQl9Ci0KLQkJCSNjb250ZW50IHsKLQkJCQl3aWR0aDogMTUwcHg7Ci0J
CQkJaGVpZ2h0OiAxMDBweDsKLQkJCQliYWNrZ3JvdW5kLWNvbG9yOiBZZWxsb3c7Ci0JCQkJcGFk
ZGluZzogMnB4IDNweCA0cHggNXB4OwotCQkJCW1hcmdpbjogM3B4IDRweCA1cHggNnB4OwotCQkJ
fQotCi0JCQkjY2F1c2VzVGhlUmVnaW9uVG9CZUNvbXBvc2l0ZWQgewotCQkJCS13ZWJraXQtdHJh
bnNmb3JtOiB0cmFuc2xhdGVaKC0zMHB4KSB0cmFuc2xhdGVYKC0zNXB4KTsKLQkJCQl3aWR0aDog
MTAwcHg7Ci0JCQkJaGVpZ2h0OiA0MHB4OwotCQkJCWJhY2tncm91bmQtY29sb3I6IExpbWU7Ci0J
CQkJcGFkZGluZzogNHB4IDVweCA2cHggN3B4OwotCQkJCW1hcmdpbjogNXB4IDZweCA3cHggOHB4
OwotCQkJfQotCi0JCQkjcmVnaW9uIHsKLQkJCQlib3gtc2hhZG93OiAycHggMnB4IDE1cHggQmxh
Y2s7Ci0JCQkJYm9yZGVyOiBkb3VibGUgM3B4IEdyZWVuOwotCQkJCWJvcmRlci13aWR0aDogM3B4
IDRweCA1cHggNnB4OwotCQkJCW91dGxpbmU6IGRvdWJsZSA1cHggQmx1ZTsKLQkJCQlwYWRkaW5n
OiA2cHggN3B4IDhweCA5cHg7Ci0JCQkJbWFyZ2luOiA3cHggOHB4IDlweCAxMHB4OwotCQkJfQot
CQk8L3N0eWxlPgotCTwvaGVhZD4KLQk8Ym9keT4KLQkJc29tZSB0ZXh0IDEuCi0JCTxkaXYgaWQ9
InJlZ2lvbiI+Ci0JCQk8ZGl2IGlkPSJjb250ZW50Ij4KLQkJCQlzb21lIHRleHQgMi4KLQkJCQk8
ZGl2IGlkPSJjYXVzZXNUaGVSZWdpb25Ub0JlQ29tcG9zaXRlZCI+Ci0JCQkJCXNvbWUgdGV4dCAz
LgotCQkJCTwvZGl2PgotCQkJCXNvbWUgdGV4dCA0LgotCQkJPC9kaXY+Ci0JCTwvZGl2PgotCQlz
b21lIHRleHQgNS4KLQkJPHA+TWFrZSBzdXJlIHRoYXQgdGhlIHJlZ2lvbiBwcm9wYWdhdGVzIGl0
cyBib3JkZXJzLCBwYWRkaW5ncywgb3V0bGluZXMgb3IgYm94LXNoYWRvd3MgdG8gbGF5ZXJzIGlu
c2lkZSBpdC48L3A+Ci0JPC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp
bGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9sYXllcnMvYWNjZWxlcmF0
ZWQtY29tcG9zaXRpbmcvcHJvcGFnYXRlLXJlZ2lvbi1ib3gtc2hhZG93LWJvcmRlci1wYWRkaW5n
LWZvci12aWRlby1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2xheWVy
cy9hY2NlbGVyYXRlZC1jb21wb3NpdGluZy9wcm9wYWdhdGUtcmVnaW9uLWJveC1zaGFkb3ctYm9y
ZGVyLXBhZGRpbmctZm9yLXZpZGVvLWV4cGVjdGVkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGE2ODliYjQxODU3YTkyZTcxMDA5Y2VmNTExYjUxZjAzYmU3YTgwNTkuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9yZWdpb25zL2xheWVycy9hY2NlbGVyYXRlZC1jb21wb3NpdGluZy9wcm9wYWdhdGUtcmVnaW9u
LWJveC1zaGFkb3ctYm9yZGVyLXBhZGRpbmctZm9yLXZpZGVvLWV4cGVjdGVkLmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSw1MyArMCwwIEBACi08aHRtbD4KLQk8aGVhZD4KLQkJPHRpdGxlPkJ1ZyAx
MjA0NTc6IFtDU1MgUmVnaW9uc10gVGhlIGxheWVycyBmcm9tIHRoZSBmbG93IHRocmVhZCBzaG91
bGQgYmUgY29sbGVjdGVkIHVuZGVyIHRoZSByZWdpb25zJyBsYXllcnMuPC90aXRsZT4KLQkJPHN0
eWxlPgotCQkJaHRtbCB7Ci0JCQkJLXdlYmtpdC1mb250LXNtb290aGluZzogbm9uZTsKLQkJCQli
YWNrZ3JvdW5kLWNvbG9yOiAjZjhmOGY4OwotCQkJfQotCi0JCQkjY29udGVudCB7Ci0JCQkJd2lk
dGg6IDE1MHB4OwotCQkJCWJhY2tncm91bmQtY29sb3I6IFllbGxvdzsKLQkJCQlwYWRkaW5nOiAy
cHggM3B4IDRweCA1cHg7Ci0JCQkJbWFyZ2luOiAzcHggNHB4IDVweCA2cHg7Ci0JCQl9Ci0KLQkJ
CSNyZWdpb24gewotCQkJCXdpZHRoOiA5MCU7Ci0JCQkJYm9yZGVyOiBkb3VibGUgM3B4IEdyZWVu
OwotCQkJCWJvcmRlci13aWR0aDogM3B4IDRweCA1cHggNnB4OwotCQkJCW91dGxpbmU6IGRvdWJs
ZSA1cHggQmx1ZTsKLQkJCQlwYWRkaW5nOiA2cHggN3B4IDhweCA5cHg7Ci0JCQkJbWFyZ2luOiA3
cHggOHB4IDlweCAxMHB4OwotCQkJfQotCQk8L3N0eWxlPgotCQk8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vLi4vY29tcG9zaXRpbmcvcmVzb3VyY2VzL21lZGlhLXRlc3RpbmcuanMiPjwvc2NyaXB0Pgot
CQk8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vbWVkaWEvbWVkaWEtZmlsZS5qcyI+PC9zY3JpcHQ+
Ci0KLQkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4KLQkJ
CWZ1bmN0aW9uIHRlc3REb25lKCkgewotCQkJCWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLQkJCQkJ
dGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Ci0JCQl9Ci0KLQkJCXdpbmRvdy5vbmxvYWQgPSBmdW5j
dGlvbigpIHsKLQkJCQl2YXIgdmlkZW8gPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgn
dmlkZW8nKVswXTsKLQkJCQlzZXR1cFZpZGVvKHZpZGVvLCAnLi4vLi4vLi4vLi4vbWVkaWEvY29u
dGVudC9jb3VudGluZycsIG51bGwsIHRlc3REb25lKTsKLQkJCX07Ci0JCTwvc2NyaXB0PgotCTwv
aGVhZD4KLQk8Ym9keT4KLQkJc29tZSB0ZXh0IDEuCi0JCTxkaXYgaWQ9InJlZ2lvbiI+Ci0JCQk8
ZGl2IGlkPSJjb250ZW50Ij4KLQkJCQlzb21lIHRleHQgMi4KLQkJCQk8dmlkZW8gaGVpZ2h0PSIy
NzAiIHdpZHRoPSI0ODAiIGlkPSJ2aWRlbyIgY29udHJvbHM+PC92aWRlbz4KLQkJCQlzb21lIHRl
eHQgNC4KLQkJCTwvZGl2PgotCQk8L2Rpdj4KLQkJc29tZSB0ZXh0IDUuCi0JCTxwPk1ha2Ugc3Vy
ZSB0aGF0IHRoZSByZWdpb24gcHJvcGFnYXRlcyBpdHMgYm9yZGVycywgcGFkZGluZ3MsIG91dGxp
bmVzIG9yIGJveC1zaGFkb3dzIHRvIHZpZGVvIGxheWVycyBpbnNpZGUgaXQuPC9wPgotCTwvYm9k
eT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L3JlZ2lvbnMvbGF5ZXJzL2FjY2VsZXJhdGVkLWNvbXBvc2l0aW5nL3Byb3Bh
Z2F0ZS1yZWdpb24tYm94LXNoYWRvdy1ib3JkZXItcGFkZGluZy1mb3ItdmlkZW8uaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9sYXllcnMvYWNjZWxlcmF0ZWQtY29tcG9zaXRpbmcvcHJv
cGFnYXRlLXJlZ2lvbi1ib3gtc2hhZG93LWJvcmRlci1wYWRkaW5nLWZvci12aWRlby5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2M2YzZDNhZDIyYWQxMDdhZTRkMTEwM2Y5MGQw
ZDZmYzNkMTM5NjVhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9sYXllcnMvYWNjZWxlcmF0ZWQtY29tcG9zaXRp
bmcvcHJvcGFnYXRlLXJlZ2lvbi1ib3gtc2hhZG93LWJvcmRlci1wYWRkaW5nLWZvci12aWRlby5o
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTQgKzAsMCBAQAotPGh0bWw+Ci0JPGhlYWQ+Ci0JCTx0
aXRsZT5CdWcgMTIwNDU3OiBbQ1NTIFJlZ2lvbnNdIFRoZSBsYXllcnMgZnJvbSB0aGUgZmxvdyB0
aHJlYWQgc2hvdWxkIGJlIGNvbGxlY3RlZCB1bmRlciB0aGUgcmVnaW9ucycgbGF5ZXJzLjwvdGl0
bGU+Ci0JCTxzdHlsZT4KLQkJCWh0bWwgewotCQkJCS13ZWJraXQtZm9udC1zbW9vdGhpbmc6IG5v
bmU7Ci0JCQkJYmFja2dyb3VuZC1jb2xvcjogI2Y4ZjhmODsKLQkJCX0KLQotCQkJI2NvbnRlbnQg
ewotCQkJCS13ZWJraXQtZmxvdy1pbnRvOiBmbG93OwotCQkJCXdpZHRoOiAxNTBweDsKLQkJCQli
YWNrZ3JvdW5kLWNvbG9yOiBZZWxsb3c7Ci0JCQkJcGFkZGluZzogMnB4IDNweCA0cHggNXB4Owot
CQkJCW1hcmdpbjogM3B4IDRweCA1cHggNnB4OwotCQkJfQotCi0JCQkjcmVnaW9uIHsKLQkJCQkt
d2Via2l0LWZsb3ctZnJvbTogZmxvdzsKLQkJCQl3aWR0aDogOTAlOwotCQkJCWJvcmRlcjogZG91
YmxlIDNweCBHcmVlbjsKLQkJCQlib3JkZXItd2lkdGg6IDNweCA0cHggNXB4IDZweDsKLQkJCQlv
dXRsaW5lOiBkb3VibGUgNXB4IEJsdWU7Ci0JCQkJcGFkZGluZzogNnB4IDdweCA4cHggOXB4Owot
CQkJCW1hcmdpbjogN3B4IDhweCA5cHggMTBweDsKLQkJCX0KLQkJPC9zdHlsZT4KLQkJPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uLy4uL2NvbXBvc2l0aW5nL3Jlc291cmNlcy9tZWRpYS10ZXN0aW5nLmpz
Ij48L3NjcmlwdD4KLQkJPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL21lZGlhL21lZGlhLWZpbGUu
anMiPjwvc2NyaXB0PgotCi0JCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0
PSJ1dGYtOCI+Ci0JCQlmdW5jdGlvbiB0ZXN0RG9uZSgpIHsKLQkJCQlpZiAod2luZG93LnRlc3RS
dW5uZXIpCi0JCQkJCXRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwotCQkJfQotCi0JCQl3aW5kb3cu
b25sb2FkID0gZnVuY3Rpb24oKSB7Ci0JCQkJdmFyIHZpZGVvID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dHNCeVRhZ05hbWUoJ3ZpZGVvJylbMF07Ci0JCQkJc2V0dXBWaWRlbyh2aWRlbywgJy4uLy4uLy4u
Ly4uL21lZGlhL2NvbnRlbnQvY291bnRpbmcnLCBudWxsLCB0ZXN0RG9uZSk7Ci0JCQl9OwotCQk8
L3NjcmlwdD4KLQk8L2hlYWQ+Ci0JPGJvZHk+Ci0JCXNvbWUgdGV4dCAxLgotCQk8ZGl2IGlkPSJj
b250ZW50Ij4KLQkJCXNvbWUgdGV4dCAyLgotCQkJPHZpZGVvIGhlaWdodD0iMjcwIiB3aWR0aD0i
NDgwIiBpZD0idmlkZW8iIGNvbnRyb2xzPjwvdmlkZW8+Ci0JCQlzb21lIHRleHQgNC4KLQkJPC9k
aXY+Ci0JCTxkaXYgaWQ9InJlZ2lvbiI+PC9kaXY+Ci0JCXNvbWUgdGV4dCA1LgotCQk8cD5NYWtl
IHN1cmUgdGhhdCB0aGUgcmVnaW9uIHByb3BhZ2F0ZXMgaXRzIGJvcmRlcnMsIHBhZGRpbmdzLCBv
dXRsaW5lcyBvciBib3gtc2hhZG93cyB0byB2aWRlbyBsYXllcnMgaW5zaWRlIGl0LjwvcD4KLQk8
L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2xheWVycy9hY2NlbGVyYXRlZC1jb21wb3NpdGluZy9w
cm9wYWdhdGUtcmVnaW9uLWJveC1zaGFkb3ctYm9yZGVyLXBhZGRpbmcuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvcmVnaW9ucy9sYXllcnMvYWNjZWxlcmF0ZWQtY29tcG9zaXRpbmcvcHJvcGFnYXRl
LXJlZ2lvbi1ib3gtc2hhZG93LWJvcmRlci1wYWRkaW5nLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDA4YzMzYzhmOTNlZmNhOTZkODdiYTdjNjUzMjU4ZTZmOWU5MDU5NjAuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9yZWdpb25zL2xheWVycy9hY2NlbGVyYXRlZC1jb21wb3NpdGluZy9wcm9wYWdhdGUtcmVn
aW9uLWJveC1zaGFkb3ctYm9yZGVyLXBhZGRpbmcuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDUx
ICswLDAgQEAKLTxodG1sPgotCTxoZWFkPgotCQk8dGl0bGU+QnVnIDEyMDQ1NzogW0NTUyBSZWdp
b25zXSBUaGUgbGF5ZXJzIGZyb20gdGhlIGZsb3cgdGhyZWFkIHNob3VsZCBiZSBjb2xsZWN0ZWQg
dW5kZXIgdGhlIHJlZ2lvbnMnIGxheWVycy48L3RpdGxlPgotCQk8c3R5bGU+Ci0JCQlodG1sIHsK
LQkJCQktd2Via2l0LWZvbnQtc21vb3RoaW5nOiBub25lOwotCQkJfQotCi0JCQkjY29udGVudCB7
Ci0JCQkJLXdlYmtpdC1mbG93LWludG86IGZsb3c7Ci0JCQkJd2lkdGg6IDE1MHB4OwotCQkJCWhl
aWdodDogMTAwcHg7Ci0JCQkJYmFja2dyb3VuZC1jb2xvcjogWWVsbG93OwotCQkJCXBhZGRpbmc6
IDJweCAzcHggNHB4IDVweDsKLQkJCQltYXJnaW46IDNweCA0cHggNXB4IDZweDsKLQkJCX0KLQot
CQkJI2NhdXNlc1RoZVJlZ2lvblRvQmVDb21wb3NpdGVkIHsKLQkJCQktd2Via2l0LXRyYW5zZm9y
bTogdHJhbnNsYXRlWigtMzBweCkgdHJhbnNsYXRlWCgtMzVweCk7Ci0JCQkJd2lkdGg6IDEwMHB4
OwotCQkJCWhlaWdodDogNDBweDsKLQkJCQliYWNrZ3JvdW5kLWNvbG9yOiBMaW1lOwotCQkJCXBh
ZGRpbmc6IDRweCA1cHggNnB4IDdweDsKLQkJCQltYXJnaW46IDVweCA2cHggN3B4IDhweDsKLQkJ
CX0KLQotCQkJI3JlZ2lvbiB7Ci0JCQkJLXdlYmtpdC1mbG93LWZyb206IGZsb3c7Ci0JCQkJYm94
LXNoYWRvdzogMnB4IDJweCAxNXB4IEJsYWNrOwotCQkJCWJvcmRlcjogZG91YmxlIDNweCBHcmVl
bjsKLQkJCQlib3JkZXItd2lkdGg6IDNweCA0cHggNXB4IDZweDsKLQkJCQlvdXRsaW5lOiBkb3Vi
bGUgNXB4IEJsdWU7Ci0JCQkJcGFkZGluZzogNnB4IDdweCA4cHggOXB4OwotCQkJCW1hcmdpbjog
N3B4IDhweCA5cHggMTBweDsKLQkJCX0KLQkJPC9zdHlsZT4KLQk8L2hlYWQ+Ci0JPGJvZHk+Ci0J
CXNvbWUgdGV4dCAxLgotCQk8ZGl2IGlkPSJjb250ZW50Ij4KLQkJCXNvbWUgdGV4dCAyLgotCQkJ
PGRpdiBpZD0iY2F1c2VzVGhlUmVnaW9uVG9CZUNvbXBvc2l0ZWQiPgotCQkJCXNvbWUgdGV4dCAz
LgotCQkJPC9kaXY+Ci0JCQlzb21lIHRleHQgNC4KLQkJPC9kaXY+Ci0JCTxkaXYgaWQ9InJlZ2lv
biI+PC9kaXY+Ci0JCXNvbWUgdGV4dCA1LgotCQk8cD5NYWtlIHN1cmUgdGhhdCB0aGUgcmVnaW9u
IHByb3BhZ2F0ZXMgaXRzIGJvcmRlcnMsIHBhZGRpbmdzLCBvdXRsaW5lcyBvciBib3gtc2hhZG93
cyB0byBsYXllcnMgaW5zaWRlIGl0LjwvcD4KLQk8L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2xh
eWVycy9hY2NlbGVyYXRlZC1jb21wb3NpdGluZy9yZWdpb24tYXMtbGF5ZXItaW4tYW5vdGhlci1m
bG93dGhyZWFkLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvbGF5ZXJz
L2FjY2VsZXJhdGVkLWNvbXBvc2l0aW5nL3JlZ2lvbi1hcy1sYXllci1pbi1hbm90aGVyLWZsb3d0
aHJlYWQtZXhwZWN0ZWQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDI5ZWU5
OGYyNmQzOGU2NWE2NDhlZjkyYTcxNWI0MThmMzA4MDhlMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvbGF5ZXJz
L2FjY2VsZXJhdGVkLWNvbXBvc2l0aW5nL3JlZ2lvbi1hcy1sYXllci1pbi1hbm90aGVyLWZsb3d0
aHJlYWQtZXhwZWN0ZWQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDU5ICswLDAgQEAKLTxodG1s
PgotCTxoZWFkPgotCQk8dGl0bGU+QnVnIDEyMDQ1NzogW0NTUyBSZWdpb25zXSBUaGUgbGF5ZXJz
IGZyb20gdGhlIGZsb3cgdGhyZWFkIHNob3VsZCBiZSBjb2xsZWN0ZWQgdW5kZXIgdGhlIHJlZ2lv
bnMnIGxheWVycy48L3RpdGxlPgotCQk8c3R5bGU+Ci0JCQlodG1sIHsKLQkJCQktd2Via2l0LWZv
bnQtc21vb3RoaW5nOiBub25lOwotCQkJfQotCi0JCQkjY29udGVudCB7Ci0JCQkJd2lkdGg6IDE1
MHB4OwotCQkJCWhlaWdodDogMTAwcHg7Ci0JCQkJYmFja2dyb3VuZC1jb2xvcjogWWVsbG93Owot
CQkJCXBhZGRpbmc6IDJweCAzcHggNHB4IDVweDsKLQkJCQltYXJnaW46IDNweCA0cHggNXB4IDZw
eDsKLQkJCX0KLQotCQkJI2NhdXNlc1RoZVJlZ2lvblRvQmVDb21wb3NpdGVkIHsKLQkJCQktd2Vi
a2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWigtMzBweCkgdHJhbnNsYXRlWCgtMzVweCk7Ci0JCQkJ
d2lkdGg6IDEwMHB4OwotCQkJCWhlaWdodDogNDBweDsKLQkJCQliYWNrZ3JvdW5kLWNvbG9yOiBM
aW1lOwotCQkJCXBhZGRpbmc6IDRweCA1cHggNnB4IDdweDsKLQkJCQltYXJnaW46IDVweCA2cHgg
N3B4IDhweDsKLQkJCX0KLQotCQkJI3JlZ2lvbiB7Ci0JCQkJYm94LXNoYWRvdzogMnB4IDJweCAx
NXB4IEJsYWNrOwotCQkJCWJvcmRlcjogZG91YmxlIDNweCBHcmVlbjsKLQkJCQlvdXRsaW5lOiBk
b3VibGUgNXB4IEJsdWU7Ci0JCQkJcGFkZGluZzogNnB4IDdweCA4cHggOXB4OwotCQkJCW1hcmdp
bjogN3B4IDhweCA5cHggMTBweDsKLQkJCX0KLQotCQkJI291dHRlclJlZ2lvbiB7Ci0JCQkJYm94
LXNoYWRvdzogMnB4IDJweCAxNXB4IEJsYWNrOwotCQkJCWJvcmRlcjogZG91YmxlIDNweCBHcmVl
bjsKLQkJCQlvdXRsaW5lOiBkb3VibGUgNXB4IEJsdWU7Ci0JCQkJcGFkZGluZzogN3B4IDhweCA5
cHggMTBweDsKLQkJCQltYXJnaW46IDhweCA5cHggMTBweCAxMXB4OwotCQkJfQotCQk8L3N0eWxl
PgotCTwvaGVhZD4KLQk8Ym9keT4KLQkJc29tZSB0ZXh0IDEuCi0JCTxkaXYgaWQ9Im91dHRlclJl
Z2lvbiI+Ci0JCQk8ZGl2IGlkPSJyZWdpb24iPgotCQkJCTxkaXYgaWQ9ImNvbnRlbnQiPgotCQkJ
CQlzb21lIHRleHQgMi4KLQkJCQkJPGRpdiBpZD0iY2F1c2VzVGhlUmVnaW9uVG9CZUNvbXBvc2l0
ZWQiPgotCQkJCQkJc29tZSB0ZXh0IDMuCi0JCQkJCTwvZGl2PgotCQkJCQlzb21lIHRleHQgNC4K
LQkJCQk8L2Rpdj4KLQkJCTwvZGl2PgotCQk8L2Rpdj4KLQkJc29tZSB0ZXh0IDUuCi0JCTxwPlJl
bmRlclJlZ2lvbnMgbWlnaHQgYmVjb21lIFJlbmRlckxheWVycyBmb3IgdGhlIGZvbGxvd2luZyBm
bG93IHRocmVhZHMuPC9wPgotCTwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvbGF5ZXJzL2FjY2Vs
ZXJhdGVkLWNvbXBvc2l0aW5nL3JlZ2lvbi1hcy1sYXllci1pbi1hbm90aGVyLWZsb3d0aHJlYWQu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9sYXllcnMvYWNjZWxlcmF0ZWQtY29tcG9z
aXRpbmcvcmVnaW9uLWFzLWxheWVyLWluLWFub3RoZXItZmxvd3RocmVhZC5odG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ODNiZmY5YWVmZTkyMTUyZmI0MjY0ODY1MTg2OWY3YzBk
MTFmNTVmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9sYXllcnMvYWNjZWxlcmF0ZWQtY29tcG9zaXRpbmcvcmVn
aW9uLWFzLWxheWVyLWluLWFub3RoZXItZmxvd3RocmVhZC5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsNzMgKzAsMCBAQAotPGh0bWw+Ci0JPGhlYWQ+Ci0JCTx0aXRsZT5CdWcgMTIwNDU3OiBbQ1NT
IFJlZ2lvbnNdIFRoZSBsYXllcnMgZnJvbSB0aGUgZmxvdyB0aHJlYWQgc2hvdWxkIGJlIGNvbGxl
Y3RlZCB1bmRlciB0aGUgcmVnaW9ucycgbGF5ZXJzLjwvdGl0bGU+Ci0JCTxzdHlsZT4KLQkJCWh0
bWwgewotCQkJCS13ZWJraXQtZm9udC1zbW9vdGhpbmc6IG5vbmU7Ci0JCQl9Ci0KLQkJCSNjb250
ZW50IHsKLQkJCQktd2Via2l0LWZsb3ctaW50bzogaW5uZXJGbG93OwotCQkJCXdpZHRoOiAxNTBw
eDsKLQkJCQloZWlnaHQ6IDEwMHB4OwotCQkJCWJhY2tncm91bmQtY29sb3I6IFllbGxvdzsKLQkJ
CQlwYWRkaW5nOiAycHggM3B4IDRweCA1cHg7Ci0JCQkJbWFyZ2luOiAzcHggNHB4IDVweCA2cHg7
Ci0JCQl9Ci0KLQkJCSNjYXVzZXNUaGVSZWdpb25Ub0JlQ29tcG9zaXRlZCB7Ci0JCQkJd2lkdGg6
IDEwMHB4OwotCQkJCWhlaWdodDogNDBweDsKLQkJCQliYWNrZ3JvdW5kLWNvbG9yOiBMaW1lOwot
CQkJCXBhZGRpbmc6IDRweCA1cHggNnB4IDdweDsKLQkJCQltYXJnaW46IDVweCA2cHggN3B4IDhw
eDsKLQkJCX0KLQotCQkJLnRyYW5zZm9ybWVkIHsKLQkJCQktd2Via2l0LXRyYW5zZm9ybTogdHJh
bnNsYXRlWigtMzBweCkgdHJhbnNsYXRlWCgtMzVweCk7Ci0JCQl9Ci0KLQkJCSNyZWdpb24gewot
CQkJCS13ZWJraXQtZmxvdy1mcm9tOiBpbm5lckZsb3c7Ci0JCQkJLXdlYmtpdC1mbG93LWludG86
IG91dHRlckZsb3c7Ci0JCQkJYm94LXNoYWRvdzogMnB4IDJweCAxNXB4IEJsYWNrOwotCQkJCWJv
cmRlcjogZG91YmxlIDNweCBHcmVlbjsKLQkJCQlvdXRsaW5lOiBkb3VibGUgNXB4IEJsdWU7Ci0J
CQkJcGFkZGluZzogNnB4IDdweCA4cHggOXB4OwotCQkJCW1hcmdpbjogN3B4IDhweCA5cHggMTBw
eDsKLQkJCX0KLQotCQkJI291dHRlclJlZ2lvbiB7Ci0JCQkJLXdlYmtpdC1mbG93LWZyb206IG91
dHRlckZsb3c7Ci0JCQkJYm94LXNoYWRvdzogMnB4IDJweCAxNXB4IEJsYWNrOwotCQkJCWJvcmRl
cjogZG91YmxlIDNweCBHcmVlbjsKLQkJCQlvdXRsaW5lOiBkb3VibGUgNXB4IEJsdWU7Ci0JCQkJ
cGFkZGluZzogN3B4IDhweCA5cHggMTBweDsKLQkJCQltYXJnaW46IDhweCA5cHggMTBweCAxMXB4
OwotCQkJfQotCQk8L3N0eWxlPgotCTwvaGVhZD4KLQk8Ym9keT4KLQkJc29tZSB0ZXh0IDEuCi0K
LQkJPGRpdiBpZD0ib3V0dGVyUmVnaW9uIj48L2Rpdj4KLQotCQk8ZGl2IGlkPSJjb250ZW50Ij4K
LQkJCXNvbWUgdGV4dCAyLgotCQkJPGRpdiBpZD0iY2F1c2VzVGhlUmVnaW9uVG9CZUNvbXBvc2l0
ZWQiPgotCQkJCXNvbWUgdGV4dCAzLgotCQkJPC9kaXY+Ci0JCQlzb21lIHRleHQgNC4KLQkJPC9k
aXY+Ci0JCTxkaXYgaWQ9InJlZ2lvbiI+PC9kaXY+Ci0KLQkJc29tZSB0ZXh0IDUuCi0KLQkJPHA+
UmVuZGVyUmVnaW9ucyBtaWdodCBiZWNvbWUgUmVuZGVyTGF5ZXJzIGZvciB0aGUgZm9sbG93aW5n
IGZsb3cgdGhyZWFkcy48L3A+Ci0KLQkJPHNjcmlwdD4KLQkJCWRvY3VtZW50LmJvZHkub2Zmc2V0
VG9wOwotCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2NhdXNlc1RoZVJlZ2lvblRvQmVDb21w
b3NpdGVkIikuY2xhc3NOYW1lID0gInRyYW5zZm9ybWVkIjsKLQkJPC9zY3JpcHQ+Ci0JPC9ib2R5
PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvcmVnaW9ucy9sYXllcnMvYWNjZWxlcmF0ZWQtY29tcG9zaXRpbmcvdHJhbnNm
b3JtLXRyYW5zcGFyZW50LXBvc2l0aW9uZWQtdmlkZW8taW5zaWRlLXJlZ2lvbi1leHBlY3RlZC5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2xheWVycy9hY2NlbGVyYXRlZC1jb21wb3Np
dGluZy90cmFuc2Zvcm0tdHJhbnNwYXJlbnQtcG9zaXRpb25lZC12aWRlby1pbnNpZGUtcmVnaW9u
LWV4cGVjdGVkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ3NTRmOGE5NjU0
NmEwYWVhZTg5M2I2M2NlNDhmMzkyMTk3YzMwMjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2xheWVycy9hY2Nl
bGVyYXRlZC1jb21wb3NpdGluZy90cmFuc2Zvcm0tdHJhbnNwYXJlbnQtcG9zaXRpb25lZC12aWRl
by1pbnNpZGUtcmVnaW9uLWV4cGVjdGVkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1NiArMCww
IEBACi08aHRtbD4KLQk8aGVhZD4KLQkJPHRpdGxlPkJ1ZyAjPC90aXRsZT4KLQkJPHN0eWxlPgot
CQkJLnRyYW5zZm9ybWVkIHsKLQkJCQktd2Via2l0LXRyYW5zZm9ybTpyb3RhdGVYKDE1ZGVnKSBy
b3RhdGVaKDE1ZGVnKTsKLQkJCX0KLQkJCS50cmFuc3BhcmVudCB7Ci0JCQkJb3BhY2l0eTogMC41
OwotCQkJfQotCQkJLnBvc2l0aW9uZWQgewotCQkJCXBvc2l0aW9uOiByZWxhdGl2ZTsKLQkJCX0K
LQkJCS5jb250ZW50IHsKLQkJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwotCQkJfQotCQkJLnJlZ2lv
biB7Ci0JCQkJd2lkdGg6MjAwcHg7Ci0JCQkJYm9yZGVyLWxlZnQtd2lkdGg6IDVweDsKLQkJCQli
b3JkZXItdG9wLXdpZHRoOiAxZW07Ci0JCQkJcGFkZGluZy1sZWZ0OiA0JTsKLQkJCQlwYWRkaW5n
LXRvcDogM3B0OwotCQkJCW1hcmdpbjogMjBweDsKLQkJCQktd2Via2l0LXRyYW5zZm9ybTpyb3Rh
dGVaKDBkZWcpOyAvKnNvIHRoZSBkaXYgaXMgY29tcG9zaXRlZCwganVzdCBsaWtlIHRoZSByZWdp
b24qLwotCQkJfQotCQkJKiB7Ci0JCQkJYm9yZGVyOnNvbGlkIDFweCAjODg4OwotCQkJCXBhZGRp
bmc6IDJweDsKLQkJCQltYXJnaW46IDNweDsKLQkJCX0KLQkJPC9zdHlsZT4KLQkJPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uLy4uL2NvbXBvc2l0aW5nL3Jlc291cmNlcy9tZWRpYS10ZXN0aW5nLmpzIj48
L3NjcmlwdD4KLQkJPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL21lZGlhL21lZGlhLWZpbGUuanMi
Pjwvc2NyaXB0PgotCi0JCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1
dGYtOCI+Ci0JCQlmdW5jdGlvbiB0ZXN0RG9uZSgpIHsKLQkJCQlpZiAod2luZG93LnRlc3RSdW5u
ZXIpCi0JCQkJCXRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwotCQkJfQotCi0JCQl3aW5kb3cub25s
b2FkID0gZnVuY3Rpb24oKSB7Ci0JCQkJdmFyIHZpZGVvID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNC
eVRhZ05hbWUoJ3ZpZGVvJylbMF07Ci0JCQkJc2V0dXBWaWRlbyh2aWRlbywgJy4uLy4uLy4uLy4u
L21lZGlhL2NvbnRlbnQvY291bnRpbmcnLCBudWxsLCB0ZXN0RG9uZSk7Ci0JCQl9OwotCQk8L3Nj
cmlwdD4KLQk8L2hlYWQ+Ci0JPGJvZHk+Ci0JCTxkaXYgY2xhc3M9InJlZ2lvbiI+Ci0JCQk8ZGl2
IGNsYXNzPSJ0cmFuc2Zvcm1lZCBjb250ZW50Ij50cmFuc2Zvcm1lZCBjb250ZW50PC9kaXY+Ci0J
CQk8ZGl2IGNsYXNzPSJ0cmFuc3BhcmVudCBjb250ZW50Ij50cmFuc3BhcmVudCBjb250ZW50PC9k
aXY+Ci0JCQk8ZGl2IGNsYXNzPSJwb3NpdGlvbmVkIGNvbnRlbnQiPnBvc2l0aW9uZWQgY29udGVu
dDwvZGl2PgotCQkJPHZpZGVvIGNsYXNzPSJjb250ZW50IiBoZWlnaHQ9IjI3MCIgd2lkdGg9IjQ4
MCIgaWQ9InZpZGVvIiBjb250cm9scz48L3ZpZGVvPgotCQkJPGRpdiBjbGFzcz0iY29udGVudCI+
bm90IHRyYW5zZm9ybWVkIGNvbnRlbnQ8L2Rpdj4KLQkJPC9kaXY+Ci0JPC9ib2R5PgotPC9odG1s
PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvcmVnaW9ucy9sYXllcnMvYWNjZWxlcmF0ZWQtY29tcG9zaXRpbmcvdHJhbnNmb3JtLXRyYW5z
cGFyZW50LXBvc2l0aW9uZWQtdmlkZW8taW5zaWRlLXJlZ2lvbi5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9yZWdpb25zL2xheWVycy9hY2NlbGVyYXRlZC1jb21wb3NpdGluZy90cmFuc2Zvcm0tdHJh
bnNwYXJlbnQtcG9zaXRpb25lZC12aWRlby1pbnNpZGUtcmVnaW9uLmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGY0Nzg2MGEzNTZlMjcyMmYxMDUwMWM4ODVlZjU0ODAzZWIxOTJj
NDAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9yZWdpb25zL2xheWVycy9hY2NlbGVyYXRlZC1jb21wb3NpdGluZy90cmFuc2Zv
cm0tdHJhbnNwYXJlbnQtcG9zaXRpb25lZC12aWRlby1pbnNpZGUtcmVnaW9uLmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSw1NiArMCwwIEBACi08aHRtbD4KLQk8aGVhZD4KLQkJPHRpdGxlPkJ1ZyAj
PC90aXRsZT4KLQkJPHN0eWxlPgotCQkJLnRyYW5zZm9ybWVkIHsKLQkJCQktd2Via2l0LXRyYW5z
Zm9ybTpyb3RhdGVYKDE1ZGVnKSByb3RhdGVaKDE1ZGVnKTsKLQkJCX0KLQkJCS50cmFuc3BhcmVu
dCB7Ci0JCQkJb3BhY2l0eTogMC41OwotCQkJfQotCQkJLnBvc2l0aW9uZWQgewotCQkJCXBvc2l0
aW9uOiByZWxhdGl2ZTsKLQkJCX0KLQkJCS5jb250ZW50IHsKLQkJCQktd2Via2l0LWZsb3ctaW50
bzp0aGVGbG93OwotCQkJCXdoaXRlLXNwYWNlOiBub3dyYXA7Ci0JCQl9Ci0JCQkucmVnaW9uIHsK
LQkJCQktd2Via2l0LWZsb3ctZnJvbTp0aGVGbG93OwotCQkJCXdpZHRoOjIwMHB4OwotCQkJCWJv
cmRlci1sZWZ0LXdpZHRoOiA1cHg7Ci0JCQkJYm9yZGVyLXRvcC13aWR0aDogMWVtOwotCQkJCXBh
ZGRpbmctbGVmdDogNCU7Ci0JCQkJcGFkZGluZy10b3A6IDNwdDsKLQkJCQltYXJnaW46IDIwcHg7
Ci0JCQl9Ci0JCQkqIHsKLQkJCQlib3JkZXI6c29saWQgMXB4ICM4ODg7Ci0JCQkJcGFkZGluZzog
MnB4OwotCQkJCW1hcmdpbjogM3B4OwotCQkJfQotCQk8L3N0eWxlPgotCQk8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vLi4vY29tcG9zaXRpbmcvcmVzb3VyY2VzL21lZGlhLXRlc3RpbmcuanMiPjwvc2Ny
aXB0PgotCQk8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vbWVkaWEvbWVkaWEtZmlsZS5qcyI+PC9z
Y3JpcHQ+Ci0KLQkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04
Ij4KLQkJCWZ1bmN0aW9uIHRlc3REb25lKCkgewotCQkJCWlmICh3aW5kb3cudGVzdFJ1bm5lcikK
LQkJCQkJdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Ci0JCQl9Ci0KLQkJCXdpbmRvdy5vbmxvYWQg
PSBmdW5jdGlvbigpIHsKLQkJCQl2YXIgdmlkZW8gPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFn
TmFtZSgndmlkZW8nKVswXTsKLQkJCQlzZXR1cFZpZGVvKHZpZGVvLCAnLi4vLi4vLi4vLi4vbWVk
aWEvY29udGVudC9jb3VudGluZycsIG51bGwsIHRlc3REb25lKTsKLQkJCX07Ci0JCTwvc2NyaXB0
PgotCTwvaGVhZD4KLQk8Ym9keT4KLQkJPGRpdiBjbGFzcz0idHJhbnNmb3JtZWQgY29udGVudCI+
dHJhbnNmb3JtZWQgY29udGVudDwvZGl2PgotCQk8ZGl2IGNsYXNzPSJ0cmFuc3BhcmVudCBjb250
ZW50Ij50cmFuc3BhcmVudCBjb250ZW50PC9kaXY+Ci0JCTxkaXYgY2xhc3M9InBvc2l0aW9uZWQg
Y29udGVudCI+cG9zaXRpb25lZCBjb250ZW50PC9kaXY+Ci0JCTx2aWRlbyBjbGFzcz0iY29udGVu
dCIgaGVpZ2h0PSIyNzAiIHdpZHRoPSI0ODAiIGlkPSJ2aWRlbyIgY29udHJvbHM+PC92aWRlbz4K
LQkJPGRpdiBjbGFzcz0iY29udGVudCI+bm90IHRyYW5zZm9ybWVkIGNvbnRlbnQ8L2Rpdj4KLQkJ
PGRpdiBjbGFzcz0icmVnaW9uIj48L2Rpdj4KLQk8L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2xh
eWVycy9hY2NlbGVyYXRlZC1jb21wb3NpdGluZy90cmFuc2Zvcm1lZC1sYXllci1pbnNpZGUtdHJh
bnNmb3JtZWQtbGF5ZXItZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9s
YXllcnMvYWNjZWxlcmF0ZWQtY29tcG9zaXRpbmcvdHJhbnNmb3JtZWQtbGF5ZXItaW5zaWRlLXRy
YW5zZm9ybWVkLWxheWVyLWV4cGVjdGVkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGExMmViYjY4M2FkZTJlNDczZjE4ZjE4MzU1Nzg1MDg4MzJhMTAxNTAuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdp
b25zL2xheWVycy9hY2NlbGVyYXRlZC1jb21wb3NpdGluZy90cmFuc2Zvcm1lZC1sYXllci1pbnNp
ZGUtdHJhbnNmb3JtZWQtbGF5ZXItZXhwZWN0ZWQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDU5
ICswLDAgQEAKLTxodG1sPgotCTxoZWFkPgotCQk8dGl0bGU+QnVnIDEyMDQ1NzogW0NTUyBSZWdp
b25zXSBUaGUgbGF5ZXJzIGZyb20gdGhlIGZsb3cgdGhyZWFkIHNob3VsZCBiZSBjb2xsZWN0ZWQg
dW5kZXIgdGhlIHJlZ2lvbnMnIGxheWVycy48L3RpdGxlPgotCQk8c3R5bGU+Ci0JCQlodG1sIHsK
LQkJCQktd2Via2l0LWZvbnQtc21vb3RoaW5nOiBub25lOwotCQkJfQotCi0JCQkjY29udGVudCB7
Ci0JCQkJd2lkdGg6IDE1MHB4OwotCQkJCWhlaWdodDogMTAwcHg7Ci0JCQkJYmFja2dyb3VuZC1j
b2xvcjogWWVsbG93OwotCQkJCXBhZGRpbmc6IDJweCAzcHggNHB4IDVweDsKLQkJCQltYXJnaW46
IDNweCA0cHggNXB4IDZweDsKLQkJCX0KLQotCQkJLnRyYW5zZm9ybWVkIHsKLQkJCQktd2Via2l0
LXRyYW5zZm9ybTogdHJhbnNsYXRlWigtMzBweCkgdHJhbnNsYXRlWCgtMzVweCk7Ci0JCQkJd2lk
dGg6IDEwMHB4OwotCQkJCWhlaWdodDogNDBweDsKLQkJCQliYWNrZ3JvdW5kLWNvbG9yOiBMaW1l
OwotCQkJCXBhZGRpbmc6IDRweCA1cHggNnB4IDdweDsKLQkJCQltYXJnaW46IDVweCA2cHggN3B4
IDhweDsKLQkJCX0KLQotCQkJLmlubmVyIHsKLQkJCQliYWNrZ3JvdW5kLWNvbG9yOiBDeWFuOwot
CQkJfQotCi0JCQkjcmVnaW9uIHsKLQkJCQktd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWigx
cHgpOyAvKnNvIHRoZSBkaXYgaXMgY29tcG9zaXRlZCwganVzdCBsaWtlIHRoZSByZWdpb24qLwot
CQkJCWJveC1zaGFkb3c6IDJweCAycHggMTVweCBCbGFjazsKLQkJCQlib3JkZXI6IGRvdWJsZSAz
cHggR3JlZW47Ci0JCQkJYm9yZGVyLXdpZHRoOiAzcHggNHB4IDVweCA2cHg7Ci0JCQkJb3V0bGlu
ZTogZG91YmxlIDVweCBCbHVlOwotCQkJCXBhZGRpbmc6IDZweCA3cHggOHB4IDlweDsKLQkJCQlt
YXJnaW46IDdweCA4cHggOXB4IDEwcHg7Ci0JCQl9Ci0JCTwvc3R5bGU+Ci0JPC9oZWFkPgotCTxi
b2R5PgotCQlzb21lIHRleHQgMS4KLQkJPGRpdiBpZD0icmVnaW9uIj4KLQkJCTxkaXYgaWQ9ImNv
bnRlbnQiPgotCQkJCXNvbWUgdGV4dCAyLgotCQkJCTxkaXYgY2xhc3M9InRyYW5zZm9ybWVkIj4K
LQkJCQkJc29tZSB0ZXh0IDMuCi0JCQkJCTxkaXYgY2xhc3M9InRyYW5zZm9ybWVkIGlubmVyIj4K
LQkJCQkJCXNvbWUgdGV4dCA0LgotCQkJCQk8L2Rpdj4KLQkJCQkJc29tZSB0ZXh0IDUuCi0JCQkJ
PC9kaXY+Ci0JCQkJc29tZSB0ZXh0IDYuCi0JCQk8L2Rpdj4KLQkJPC9kaXY+Ci0JCXNvbWUgdGV4
dCA3LgotCQk8cD5SZW5kZXJpbmcgYSB0cmFuc2Zvcm1lZCBsYXllciBpbnNpZGUgYW5vdGhlciB0
cmFuc2Zvcm1lZCBsYXllci48L3A+Ci0JPC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9sYXllcnMv
YWNjZWxlcmF0ZWQtY29tcG9zaXRpbmcvdHJhbnNmb3JtZWQtbGF5ZXItaW5zaWRlLXRyYW5zZm9y
bWVkLWxheWVyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvbGF5ZXJzL2FjY2VsZXJh
dGVkLWNvbXBvc2l0aW5nL3RyYW5zZm9ybWVkLWxheWVyLWluc2lkZS10cmFuc2Zvcm1lZC1sYXll
ci5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMTU4NzcyNWY0NTIxZTExODcy
MjA1YjZmYzZmMzg1MWQ5ZWVjMzVmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9sYXllcnMvYWNjZWxlcmF0ZWQt
Y29tcG9zaXRpbmcvdHJhbnNmb3JtZWQtbGF5ZXItaW5zaWRlLXRyYW5zZm9ybWVkLWxheWVyLmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1OSArMCwwIEBACi08aHRtbD4KLQk8aGVhZD4KLQkJPHRp
dGxlPkJ1ZyAxMjA0NTc6IFtDU1MgUmVnaW9uc10gVGhlIGxheWVycyBmcm9tIHRoZSBmbG93IHRo
cmVhZCBzaG91bGQgYmUgY29sbGVjdGVkIHVuZGVyIHRoZSByZWdpb25zJyBsYXllcnMuPC90aXRs
ZT4KLQkJPHN0eWxlPgotCQkJaHRtbCB7Ci0JCQkJLXdlYmtpdC1mb250LXNtb290aGluZzogbm9u
ZTsKLQkJCX0KLQotCQkJI2NvbnRlbnQgewotCQkJCS13ZWJraXQtZmxvdy1pbnRvOiBmbG93Owot
CQkJCXdpZHRoOiAxNTBweDsKLQkJCQloZWlnaHQ6IDEwMHB4OwotCQkJCWJhY2tncm91bmQtY29s
b3I6IFllbGxvdzsKLQkJCQlwYWRkaW5nOiAycHggM3B4IDRweCA1cHg7Ci0JCQkJbWFyZ2luOiAz
cHggNHB4IDVweCA2cHg7Ci0JCQl9Ci0KLQkJCS50cmFuc2Zvcm1lZCB7Ci0JCQkJLXdlYmtpdC10
cmFuc2Zvcm06IHRyYW5zbGF0ZVooLTMwcHgpIHRyYW5zbGF0ZVgoLTM1cHgpOwotCQkJCXdpZHRo
OiAxMDBweDsKLQkJCQloZWlnaHQ6IDQwcHg7Ci0JCQkJYmFja2dyb3VuZC1jb2xvcjogTGltZTsK
LQkJCQlwYWRkaW5nOiA0cHggNXB4IDZweCA3cHg7Ci0JCQkJbWFyZ2luOiA1cHggNnB4IDdweCA4
cHg7Ci0JCQl9Ci0KLQkJCS5pbm5lciB7Ci0JCQkJYmFja2dyb3VuZC1jb2xvcjogQ3lhbjsKLQkJ
CX0KLQotCQkJI3JlZ2lvbiB7Ci0JCQkJLXdlYmtpdC1mbG93LWZyb206IGZsb3c7Ci0JCQkJYm94
LXNoYWRvdzogMnB4IDJweCAxNXB4IEJsYWNrOwotCQkJCWJvcmRlcjogZG91YmxlIDNweCBHcmVl
bjsKLQkJCQlib3JkZXItd2lkdGg6IDNweCA0cHggNXB4IDZweDsKLQkJCQlvdXRsaW5lOiBkb3Vi
bGUgNXB4IEJsdWU7Ci0JCQkJcGFkZGluZzogNnB4IDdweCA4cHggOXB4OwotCQkJCW1hcmdpbjog
N3B4IDhweCA5cHggMTBweDsKLQkJCX0KLQkJPC9zdHlsZT4KLQk8L2hlYWQ+Ci0JPGJvZHk+Ci0J
CXNvbWUgdGV4dCAxLgotCQk8ZGl2IGlkPSJjb250ZW50Ij4KLQkJCXNvbWUgdGV4dCAyLgotCQkJ
PGRpdiBjbGFzcz0idHJhbnNmb3JtZWQiPgotCQkJCXNvbWUgdGV4dCAzLgotCQkJCTxkaXYgY2xh
c3M9InRyYW5zZm9ybWVkIGlubmVyIj4KLQkJCQkJc29tZSB0ZXh0IDQuCi0JCQkJPC9kaXY+Ci0J
CQkJc29tZSB0ZXh0IDUuCi0JCQk8L2Rpdj4KLQkJCXNvbWUgdGV4dCA2LgotCQk8L2Rpdj4KLQkJ
PGRpdiBpZD0icmVnaW9uIj48L2Rpdj4KLQkJc29tZSB0ZXh0IDcuCi0JCTxwPlJlbmRlcmluZyBh
IHRyYW5zZm9ybWVkIGxheWVyIGluc2lkZSBhbm90aGVyIHRyYW5zZm9ybWVkIGxheWVyLjwvcD4K
LQk8L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2xheWVycy9hY2NlbGVyYXRlZC1jb21wb3NpdGlu
Zy96LWluZGV4LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvbGF5ZXJz
L2FjY2VsZXJhdGVkLWNvbXBvc2l0aW5nL3otaW5kZXgtZXhwZWN0ZWQuaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMGVjZjc2YWRlNmQ5ZjkyMWE4YWE0ZWJmMjQyY2YzOGQ2Mjc5
ZWU1Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L3JlZ2lvbnMvbGF5ZXJzL2FjY2VsZXJhdGVkLWNvbXBvc2l0aW5nL3otaW5k
ZXgtZXhwZWN0ZWQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDY0ICswLDAgQEAKLTxodG1sPgot
CTxoZWFkPgotCQk8dGl0bGU+QnVnIDEyMDQ1NzogW0NTUyBSZWdpb25zXSBUaGUgbGF5ZXJzIGZy
b20gdGhlIGZsb3cgdGhyZWFkIHNob3VsZCBiZSBjb2xsZWN0ZWQgdW5kZXIgdGhlIHJlZ2lvbnMn
IGxheWVycy48L3RpdGxlPgotCQk8c3R5bGU+Ci0JCQlodG1sIHsKLQkJCQktd2Via2l0LWZvbnQt
c21vb3RoaW5nOiBub25lOwotCQkJfQotCi0JCQkjY29udGVudCB7Ci0JCQkJYmFja2dyb3VuZC1j
b2xvcjogWWVsbG93OwotCQkJCXBhZGRpbmc6IDJweCAzcHggNHB4IDVweDsKLQkJCQltYXJnaW46
IDNweCA0cHggNXB4IDZweDsKLQkJCX0KLQotCQkJLmNhdXNlc1RoZVJlZ2lvblRvQmVDb21wb3Np
dGVkIHsKLQkJCQktd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWigtMzBweCkgdHJhbnNsYXRl
WCgtMzVweCk7Ci0JCQkJYmFja2dyb3VuZC1jb2xvcjogTGltZTsKLQkJCQlwYWRkaW5nOiA0cHgg
NXB4IDZweCA3cHg7Ci0JCQkJbWFyZ2luOiA1cHggNnB4IDdweCA4cHg7Ci0JCQkJYm9yZGVyOiBz
b2xpZCAxcHggQmxhY2s7Ci0JCQl9Ci0KLQkJCS5zZWNvbmQgewotCQkJCS13ZWJraXQtdHJhbnNm
b3JtOiB0cmFuc2xhdGVaKC0zMHB4KSB0cmFuc2xhdGVYKC0yNXB4KTsKLQkJCQliYWNrZ3JvdW5k
LWNvbG9yOkN5YW47Ci0JCQkJbWFyZ2luLXRvcDotMWVtOwotCQkJfQotCi0JCQkuejEsIC56MiB7
Ci0JCQkJcG9zaXRpb246IHJlbGF0aXZlOwotCQkJfQotCi0JCQkuejEgewotCQkJCXotaW5kZXg6
IDE7Ci0JCQl9Ci0KLQkJCS56MiB7Ci0JCQkJei1pbmRleDogMjsKLQkJCX0KLQotCQkJI3JlZ2lv
biB7Ci0JCQkJYm94LXNoYWRvdzogMnB4IDJweCAxNXB4IEJsYWNrOwotCQkJCWJvcmRlcjogZG91
YmxlIDNweCBHcmVlbjsKLQkJCQlib3JkZXItd2lkdGg6IDNweCA0cHggNXB4IDZweDsKLQkJCQlv
dXRsaW5lOiBkb3VibGUgNXB4IEJsdWU7Ci0JCQkJcGFkZGluZzogNnB4IDdweCA4cHggOXB4Owot
CQkJCW1hcmdpbjogN3B4IDhweCA5cHggMTBweDsKLQkJCX0KLQkJPC9zdHlsZT4KLQk8L2hlYWQ+
Ci0JPGJvZHk+Ci0JCXNvbWUgdGV4dCAxLgotCQk8ZGl2IGlkPSJyZWdpb24iPgotCQkJPGRpdiBp
ZD0iY29udGVudCI+Ci0JCQkJc29tZSB0ZXh0IDIuCi0JCQkJPGRpdiBjbGFzcz0iY2F1c2VzVGhl
UmVnaW9uVG9CZUNvbXBvc2l0ZWQgejEiPnNvbWUgdGV4dCAzLjwvZGl2PgotCQkJCTxkaXYgY2xh
c3M9ImNhdXNlc1RoZVJlZ2lvblRvQmVDb21wb3NpdGVkIHNlY29uZCB6MiI+c29tZSB0ZXh0IDQu
PC9kaXY+Ci0JCQkJc29tZSB0ZXh0IDUuCi0JCQk8L2Rpdj4KLQkJPC9kaXY+Ci0JCXNvbWUgdGV4
dCA2LgotCQk8cD56LWluZGV4IHNob3VsZCB3b3JrIGFzIGV4cGVjdGVkLjwvcD4KLQk8L2JvZHk+
Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9yZWdpb25zL2xheWVycy9hY2NlbGVyYXRlZC1jb21wb3NpdGluZy96LWluZGV4
LXVwZGF0ZS1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2xheWVycy9h
Y2NlbGVyYXRlZC1jb21wb3NpdGluZy96LWluZGV4LXVwZGF0ZS1leHBlY3RlZC5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZmY5MWZjMDc3YzYzNDhmMjBmZWFiZTEyN2M0YzI2
OTFkYjQ0ZDU4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9sYXllcnMvYWNjZWxlcmF0ZWQtY29tcG9zaXRpbmcv
ei1pbmRleC11cGRhdGUtZXhwZWN0ZWQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDY0ICswLDAg
QEAKLTxodG1sPgotCTxoZWFkPgotCQk8dGl0bGU+QnVnIDEyMDQ1NzogW0NTUyBSZWdpb25zXSBU
aGUgbGF5ZXJzIGZyb20gdGhlIGZsb3cgdGhyZWFkIHNob3VsZCBiZSBjb2xsZWN0ZWQgdW5kZXIg
dGhlIHJlZ2lvbnMnIGxheWVycy48L3RpdGxlPgotCQk8c3R5bGU+Ci0JCQlodG1sIHsKLQkJCQkt
d2Via2l0LWZvbnQtc21vb3RoaW5nOiBub25lOwotCQkJfQotCi0JCQkjY29udGVudCB7Ci0JCQkJ
YmFja2dyb3VuZC1jb2xvcjogWWVsbG93OwotCQkJCXBhZGRpbmc6IDJweCAzcHggNHB4IDVweDsK
LQkJCQltYXJnaW46IDNweCA0cHggNXB4IDZweDsKLQkJCX0KLQotCQkJLmNhdXNlc1RoZVJlZ2lv
blRvQmVDb21wb3NpdGVkIHsKLQkJCQktd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWigtMzBw
eCkgdHJhbnNsYXRlWCgtMzVweCk7Ci0JCQkJYmFja2dyb3VuZC1jb2xvcjogTGltZTsKLQkJCQlw
YWRkaW5nOiA0cHggNXB4IDZweCA3cHg7Ci0JCQkJbWFyZ2luOiA1cHggNnB4IDdweCA4cHg7Ci0J
CQkJYm9yZGVyOiBzb2xpZCAxcHggQmxhY2s7Ci0JCQl9Ci0KLQkJCS5zZWNvbmQgewotCQkJCS13
ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVaKC0zMHB4KSB0cmFuc2xhdGVYKC0yNXB4KTsKLQkJ
CQliYWNrZ3JvdW5kLWNvbG9yOkN5YW47Ci0JCQkJbWFyZ2luLXRvcDotMWVtOwotCQkJfQotCi0J
CQkuejEsIC56MiB7Ci0JCQkJcG9zaXRpb246IHJlbGF0aXZlOwotCQkJfQotCi0JCQkuejEgewot
CQkJCXotaW5kZXg6IDE7Ci0JCQl9Ci0KLQkJCS56MiB7Ci0JCQkJei1pbmRleDogMjsKLQkJCX0K
LQotCQkJI3JlZ2lvbiB7Ci0JCQkJYm94LXNoYWRvdzogMnB4IDJweCAxNXB4IEJsYWNrOwotCQkJ
CWJvcmRlcjogZG91YmxlIDNweCBHcmVlbjsKLQkJCQlib3JkZXItd2lkdGg6IDNweCA0cHggNXB4
IDZweDsKLQkJCQlvdXRsaW5lOiBkb3VibGUgNXB4IEJsdWU7Ci0JCQkJcGFkZGluZzogNnB4IDdw
eCA4cHggOXB4OwotCQkJCW1hcmdpbjogN3B4IDhweCA5cHggMTBweDsKLQkJCX0KLQkJPC9zdHls
ZT4KLQk8L2hlYWQ+Ci0JPGJvZHk+Ci0JCXNvbWUgdGV4dCAxLgotCQk8ZGl2IGlkPSJyZWdpb24i
PgotCQkJPGRpdiBpZD0iY29udGVudCI+Ci0JCQkJc29tZSB0ZXh0IDIuCi0JCQkJPGRpdiBjbGFz
cz0iY2F1c2VzVGhlUmVnaW9uVG9CZUNvbXBvc2l0ZWQgejIiPnNvbWUgdGV4dCAzLjwvZGl2Pgot
CQkJCTxkaXYgY2xhc3M9ImNhdXNlc1RoZVJlZ2lvblRvQmVDb21wb3NpdGVkIHNlY29uZCB6MSI+
c29tZSB0ZXh0IDQuPC9kaXY+Ci0JCQkJc29tZSB0ZXh0IDUuCi0JCQk8L2Rpdj4KLQkJPC9kaXY+
Ci0JCXNvbWUgdGV4dCA2LgotCQk8cD56LWluZGV4IHNob3VsZCB3b3JrIGFzIGV4cGVjdGVkLjwv
cD4KLQk8L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2xheWVycy9hY2NlbGVyYXRlZC1jb21wb3Np
dGluZy96LWluZGV4LXVwZGF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2xheWVy
cy9hY2NlbGVyYXRlZC1jb21wb3NpdGluZy96LWluZGV4LXVwZGF0ZS5odG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBhMzgzNWVhYTRlMDM1ZjBlYWZjMWJmYTIyZmVjMWJkOTJmYmMw
YWEwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvcmVnaW9ucy9sYXllcnMvYWNjZWxlcmF0ZWQtY29tcG9zaXRpbmcvei1pbmRl
eC11cGRhdGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDcwICswLDAgQEAKLTxodG1sPgotCTxo
ZWFkPgotCQk8dGl0bGU+QnVnIDEyMDQ1NzogW0NTUyBSZWdpb25zXSBUaGUgbGF5ZXJzIGZyb20g
dGhlIGZsb3cgdGhyZWFkIHNob3VsZCBiZSBjb2xsZWN0ZWQgdW5kZXIgdGhlIHJlZ2lvbnMnIGxh
eWVycy48L3RpdGxlPgotCQk8c3R5bGU+Ci0JCQlodG1sIHsKLQkJCQktd2Via2l0LWZvbnQtc21v
b3RoaW5nOiBub25lOwotCQkJfQotCi0JCQkjY29udGVudCB7Ci0JCQkJLXdlYmtpdC1mbG93LWlu
dG86IGZsb3c7Ci0JCQkJYmFja2dyb3VuZC1jb2xvcjogWWVsbG93OwotCQkJCXBhZGRpbmc6IDJw
eCAzcHggNHB4IDVweDsKLQkJCQltYXJnaW46IDNweCA0cHggNXB4IDZweDsKLQkJCX0KLQotCQkJ
LmNhdXNlc1RoZVJlZ2lvblRvQmVDb21wb3NpdGVkIHsKLQkJCQktd2Via2l0LXRyYW5zZm9ybTog
dHJhbnNsYXRlWigtMzBweCkgdHJhbnNsYXRlWCgtMzVweCk7Ci0JCQkJYmFja2dyb3VuZC1jb2xv
cjogTGltZTsKLQkJCQlwYWRkaW5nOiA0cHggNXB4IDZweCA3cHg7Ci0JCQkJbWFyZ2luOiA1cHgg
NnB4IDdweCA4cHg7Ci0JCQkJYm9yZGVyOiBzb2xpZCAxcHggQmxhY2s7Ci0JCQl9Ci0KLQkJCS5z
ZWNvbmQgewotCQkJCS13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVaKC0zMHB4KSB0cmFuc2xh
dGVYKC0yNXB4KTsKLQkJCQliYWNrZ3JvdW5kLWNvbG9yOkN5YW47Ci0JCQkJbWFyZ2luLXRvcDot
MWVtOwotCQkJfQotCi0JCQkuejEsIC56MiB7Ci0JCQkJcG9zaXRpb246IHJlbGF0aXZlOwotCQkJ
fQotCi0JCQkuejEgewotCQkJCXotaW5kZXg6IDE7Ci0JCQl9Ci0KLQkJCS56MiB7Ci0JCQkJei1p
bmRleDogMjsKLQkJCX0KLQotCQkJI3JlZ2lvbiB7Ci0JCQkJLXdlYmtpdC1mbG93LWZyb206IGZs
b3c7Ci0JCQkJYm94LXNoYWRvdzogMnB4IDJweCAxNXB4IEJsYWNrOwotCQkJCWJvcmRlcjogZG91
YmxlIDNweCBHcmVlbjsKLQkJCQlib3JkZXItd2lkdGg6IDNweCA0cHggNXB4IDZweDsKLQkJCQlv
dXRsaW5lOiBkb3VibGUgNXB4IEJsdWU7Ci0JCQkJcGFkZGluZzogNnB4IDdweCA4cHggOXB4Owot
CQkJCW1hcmdpbjogN3B4IDhweCA5cHggMTBweDsKLQkJCX0KLQkJPC9zdHlsZT4KLQk8L2hlYWQ+
Ci0JPGJvZHk+Ci0JCXNvbWUgdGV4dCAxLgotCQk8ZGl2IGlkPSJjb250ZW50Ij4KLQkJCXNvbWUg
dGV4dCAyLgotCQkJPGRpdiBjbGFzcz0iY2F1c2VzVGhlUmVnaW9uVG9CZUNvbXBvc2l0ZWQgejEi
PnNvbWUgdGV4dCAzLjwvZGl2PgotCQkJPGRpdiBjbGFzcz0iY2F1c2VzVGhlUmVnaW9uVG9CZUNv
bXBvc2l0ZWQgc2Vjb25kIHoyIj5zb21lIHRleHQgNC48L2Rpdj4KLQkJCXNvbWUgdGV4dCA1Lgot
CQk8L2Rpdj4KLQkJPGRpdiBpZD0icmVnaW9uIj48L2Rpdj4KLQkJc29tZSB0ZXh0IDYuCi0JCTxw
PnotaW5kZXggc2hvdWxkIHdvcmsgYXMgZXhwZWN0ZWQuPC9wPgotCQk8c2NyaXB0PgotCQkJZG9j
dW1lbnQub2Zmc2V0VG9wOwotCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmNhdXNlc1RoZVJl
Z2lvblRvQmVDb21wb3NpdGVkIikuY2xhc3NOYW1lID0gImNhdXNlc1RoZVJlZ2lvblRvQmVDb21w
b3NpdGVkIHoyIjsKLQkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5zZWNvbmQiKS5jbGFzc05h
bWUgPSAiY2F1c2VzVGhlUmVnaW9uVG9CZUNvbXBvc2l0ZWQgc2Vjb25kIHoxIjsKLQkJPC9zY3Jp
cHQ+Ci0JPC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9sYXllcnMvYWNjZWxlcmF0ZWQtY29tcG9z
aXRpbmcvei1pbmRleC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2xheWVycy9hY2Nl
bGVyYXRlZC1jb21wb3NpdGluZy96LWluZGV4Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGEwYzhiNDE2MzIxZmMyNTI2MjI3MDViZjNmMTZmN2JhNzhmNTk0YjAuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9y
ZWdpb25zL2xheWVycy9hY2NlbGVyYXRlZC1jb21wb3NpdGluZy96LWluZGV4Lmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSw2NSArMCwwIEBACi08aHRtbD4KLQk8aGVhZD4KLQkJPHRpdGxlPkJ1ZyAx
MjA0NTc6IFtDU1MgUmVnaW9uc10gVGhlIGxheWVycyBmcm9tIHRoZSBmbG93IHRocmVhZCBzaG91
bGQgYmUgY29sbGVjdGVkIHVuZGVyIHRoZSByZWdpb25zJyBsYXllcnMuPC90aXRsZT4KLQkJPHN0
eWxlPgotCQkJaHRtbCB7Ci0JCQkJLXdlYmtpdC1mb250LXNtb290aGluZzogbm9uZTsKLQkJCX0K
LQotCQkJI2NvbnRlbnQgewotCQkJCS13ZWJraXQtZmxvdy1pbnRvOiBmbG93OwotCQkJCWJhY2tn
cm91bmQtY29sb3I6IFllbGxvdzsKLQkJCQlwYWRkaW5nOiAycHggM3B4IDRweCA1cHg7Ci0JCQkJ
bWFyZ2luOiAzcHggNHB4IDVweCA2cHg7Ci0JCQl9Ci0KLQkJCS5jYXVzZXNUaGVSZWdpb25Ub0Jl
Q29tcG9zaXRlZCB7Ci0JCQkJLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVooLTMwcHgpIHRy
YW5zbGF0ZVgoLTM1cHgpOwotCQkJCWJhY2tncm91bmQtY29sb3I6IExpbWU7Ci0JCQkJcGFkZGlu
ZzogNHB4IDVweCA2cHggN3B4OwotCQkJCW1hcmdpbjogNXB4IDZweCA3cHggOHB4OwotCQkJCWJv
cmRlcjogc29saWQgMXB4IEJsYWNrOwotCQkJfQotCi0JCQkuc2Vjb25kIHsKLQkJCQktd2Via2l0
LXRyYW5zZm9ybTogdHJhbnNsYXRlWigtMzBweCkgdHJhbnNsYXRlWCgtMjVweCk7Ci0JCQkJYmFj
a2dyb3VuZC1jb2xvcjpDeWFuOwotCQkJCW1hcmdpbi10b3A6LTFlbTsKLQkJCX0KLQotCQkJLnox
LCAuejIgewotCQkJCXBvc2l0aW9uOiByZWxhdGl2ZTsKLQkJCX0KLQotCQkJLnoxIHsKLQkJCQl6
LWluZGV4OiAxOwotCQkJfQotCi0JCQkuejIgewotCQkJCXotaW5kZXg6IDI7Ci0JCQl9Ci0KLQkJ
CSNyZWdpb24gewotCQkJCS13ZWJraXQtZmxvdy1mcm9tOiBmbG93OwotCQkJCWJveC1zaGFkb3c6
IDJweCAycHggMTVweCBCbGFjazsKLQkJCQlib3JkZXI6IGRvdWJsZSAzcHggR3JlZW47Ci0JCQkJ
Ym9yZGVyLXdpZHRoOiAzcHggNHB4IDVweCA2cHg7Ci0JCQkJb3V0bGluZTogZG91YmxlIDVweCBC
bHVlOwotCQkJCXBhZGRpbmc6IDZweCA3cHggOHB4IDlweDsKLQkJCQltYXJnaW46IDdweCA4cHgg
OXB4IDEwcHg7Ci0JCQl9Ci0JCTwvc3R5bGU+Ci0JPC9oZWFkPgotCTxib2R5PgotCQlzb21lIHRl
eHQgMS4KLQkJPGRpdiBpZD0iY29udGVudCI+Ci0JCQlzb21lIHRleHQgMi4KLQkJCTxkaXYgY2xh
c3M9ImNhdXNlc1RoZVJlZ2lvblRvQmVDb21wb3NpdGVkIHoxIj5zb21lIHRleHQgMy48L2Rpdj4K
LQkJCTxkaXYgY2xhc3M9ImNhdXNlc1RoZVJlZ2lvblRvQmVDb21wb3NpdGVkIHNlY29uZCB6MiI+
c29tZSB0ZXh0IDQuPC9kaXY+Ci0JCQlzb21lIHRleHQgNS4KLQkJPC9kaXY+Ci0JCTxkaXYgaWQ9
InJlZ2lvbiI+PC9kaXY+Ci0JCXNvbWUgdGV4dCA2LgotCQk8cD56LWluZGV4IHNob3VsZCB3b3Jr
IGFzIGV4cGVjdGVkLjwvcD4KLQk8L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>