<?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>148349</bug_id>
          
          <creation_ts>2015-08-21 19:29:13 -0700</creation_ts>
          <short_desc>REGRESSION(r188807): lots of 32-bit build problems, better to resolve separately and try again (Requested by thorton on #webkit).</short_desc>
          <delta_ts>2015-08-21 19:32:53 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>143743</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>andersca</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1120049</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-21 19:29:13 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/188807 broke the build:
lots of 32-bit build problems, better to resolve separately and try again (Requested by thorton 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>1120051</commentid>
    <comment_count>1</comment_count>
      <attachid>259698</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-21 19:29:48 -0700</bug_when>
    <thetext>Created attachment 259698
ROLLOUT of r188807

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>1120053</commentid>
    <comment_count>2</comment_count>
      <attachid>259698</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-21 19:32:50 -0700</bug_when>
    <thetext>Comment on attachment 259698
ROLLOUT of r188807

Clearing flags on attachment: 259698

Committed r188817: &lt;http://trac.webkit.org/changeset/188817&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1120054</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-21 19:32:53 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>259698</attachid>
            <date>2015-08-21 19:29:48 -0700</date>
            <delta_ts>2015-08-21 19:32:50 -0700</delta_ts>
            <desc>ROLLOUT of r188807</desc>
            <filename>bug-148349-20150821192941.patch</filename>
            <type>text/plain</type>
            <size>55114</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg4ODE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggN2RjMmY5MzM5MzZmYzY2
MTZiNGFjNzcyODI5ZDE1NjM0ZDNjY2MyZS4uOTdlMmUxNTk4ZTBlOTBlOWM2Yjg2MjlkMTg0ZWUw
Mzc1ZjQ0MDljOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE1LTA4LTIxICBDb21t
aXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2Vk
LCByb2xsaW5nIG91dCByMTg4ODA3LCByMTg4ODEzLCBhbmQgcjE4ODgxNS4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODM0OQorCisgICAgICAgIGxv
dHMgb2YgMzItYml0IGJ1aWxkIHByb2JsZW1zLCBiZXR0ZXIgdG8gcmVzb2x2ZSBzZXBhcmF0ZWx5
CisgICAgICAgIGFuZCB0cnkgYWdhaW4gKFJlcXVlc3RlZCBieSB0aG9ydG9uIG9uICN3ZWJraXQp
LgorCisgICAgICAgIFJldmVydGVkIGNoYW5nZXNldHM6CisKKyAgICAgICAgIldlYktpdFRlc3RS
dW5uZXIgc2hvdWxkIHVzZSBXS1dlYlZpZXcgb24gT1MgWCBhbmQgaU9TIgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQzNzQzCisgICAgICAgIGh0dHA6
Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzE4ODgwNworCisgICAgICAgICJTdG9wIGJ1aWxk
aW5nIFdlYktpdFRlc3RSdW5uZXIgZm9yIDMyLWJpdCBwbGF0Zm9ybXMiCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDM3NDMKKyAgICAgICAgaHR0cDov
L3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTg4ODEzCisKKyAgICAgICAgIlN0b3AgYnVpbGRp
bmcgV2ViS2l0VGVzdFJ1bm5lciBmb3IgMzItYml0IHBsYXRmb3JtcyIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0Mzc0MworICAgICAgICBodHRwOi8v
dHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xODg4MTUKKwogMjAxNS0wOC0yMSAgVGltb3RoeSBI
b3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViS2l0VGVzdFJ1
bm5lciBzaG91bGQgdXNlIFdLV2ViVmlldyBvbiBPUyBYIGFuZCBpT1MKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oCmluZGV4IDA3MDk1ZTM5
OTcyNDkyNzgyYTUzNzA2NTdlNGRlYzZlMzZhMGVmMzkuLjE2ODUyYWY2YzY0ZmQ5M2E0NWFkOWU4
N2JjMjhhMmZkNjAyODA2ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQ
cmVmZXJlbmNlc0RlZmluaXRpb25zLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBy
ZWZlcmVuY2VzRGVmaW5pdGlvbnMuaApAQCAtMTgwLDYgKzE4MCw3IEBACiAgICAgbWFjcm8oVGhy
ZWFkZWRTY3JvbGxpbmdFbmFibGVkLCB0aHJlYWRlZFNjcm9sbGluZ0VuYWJsZWQsIEJvb2wsIGJv
b2wsIHRydWUpIFwKICAgICBtYWNybyhTaW1wbGVMaW5lTGF5b3V0RW5hYmxlZCwgc2ltcGxlTGlu
ZUxheW91dEVuYWJsZWQsIEJvb2wsIGJvb2wsIHRydWUpIFwKICAgICBtYWNybyhTdWJwaXhlbENT
U09NRWxlbWVudE1ldHJpY3NFbmFibGVkLCBzdWJwaXhlbENTU09NRWxlbWVudE1ldHJpY3NFbmFi
bGVkLCBCb29sLCBib29sLCBmYWxzZSkgXAorICAgIG1hY3JvKEJhY2tncm91bmRTaG91bGRFeHRl
bmRCZXlvbmRQYWdlLCBiYWNrZ3JvdW5kU2hvdWxkRXh0ZW5kQmV5b25kUGFnZSwgQm9vbCwgYm9v
bCwgZmFsc2UpIFwKICAgICBtYWNybyhNZWRpYVN0cmVhbUVuYWJsZWQsIG1lZGlhU3RyZWFtRW5h
YmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKICAgICBtYWNybyhVc2VMZWdhY3lUZXh0QWxpZ25Q
b3NpdGlvbmVkRWxlbWVudEJlaGF2aW9yLCB1c2VMZWdhY3lUZXh0QWxpZ25Qb3NpdGlvbmVkRWxl
bWVudEJlaGF2aW9yLCBCb29sLCBib29sLCBmYWxzZSkgXAogICAgIG1hY3JvKFNwYXRpYWxOYXZp
Z2F0aW9uRW5hYmxlZCwgc3BhdGlhbE5hdmlnYXRpb25FbmFibGVkLCBCb29sLCBib29sLCBmYWxz
ZSkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5t
bQppbmRleCAwZTAxZjg1OTU4YmZjNDFiNDEzMjliMTM0ZTI2MjIwNDJmNDlhYjdkLi4xNDFiZjFk
YmEwNGY5ZTJjMzJjNWU5MDU0MzQ5OTExYzAyNjA3NzQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtMzA4MywxNiArMzA4Myw2IEBA
IHN0YXRpYyBpbmxpbmUgV2ViS2l0OjpGaW5kT3B0aW9ucyB0b0ZpbmRPcHRpb25zKF9XS0ZpbmRP
cHRpb25zIHdrRmluZE9wdGlvbnMpCiAgICAgcmV0dXJuIFtfd2tWaWV3IF90b3BDb250ZW50SW5z
ZXRdOwogfQogCi0tIChCT09MKV93aW5kb3dPY2NsdXNpb25EZXRlY3Rpb25FbmFibGVkCi17Ci0g
ICAgcmV0dXJuIFtfd2tWaWV3IHdpbmRvd09jY2x1c2lvbkRldGVjdGlvbkVuYWJsZWRdOwotfQot
Ci0tICh2b2lkKV9zZXRXaW5kb3dPY2NsdXNpb25EZXRlY3Rpb25FbmFibGVkOihCT09MKWZsYWcK
LXsKLSAgICBbX3drVmlldyBzZXRXaW5kb3dPY2NsdXNpb25EZXRlY3Rpb25FbmFibGVkOmZsYWdd
OwotfQotCiAjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDAKIAog
LSAodm9pZClfc2V0QXV0b21hdGljYWxseUFkanVzdHNDb250ZW50SW5zZXRzOihCT09MKWF1dG9t
YXRpY2FsbHlBZGp1c3RzQ29udGVudEluc2V0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAppbmRleCBhMWVkZjhiMTdmMDhi
MzYwYThhNzkyODdhYWNkMjM5ZmJhZmVhNDU4Li43OWU5MGUxZDZmMzBjZjY0YTNlMWQxYWUzOTRi
MTVhNDY4OTU0NWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlld1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaApAQCAtMTczLDkgKzE3Myw2IEBAIFdLX0VYVEVSTiBO
U1N0cmluZyAqIGNvbnN0IF9XS1Nob3VsZE9wZW5FeHRlcm5hbFVSTHNLZXkgV0tfQVZBSUxBQkxF
KFdLX01BQ19UQkEsCiAKIC8vIERlZmF1bHQgdmFsdWUgaXMgMC4gQSB2YWx1ZSBvZiAwIG1lYW5z
IHRoZSB3aW5kb3cncyBiYWNraW5nIHNjYWxlIGZhY3RvciB3aWxsIGJlIHVzZWQgYW5kIGF1dG9t
YXRpY2FsbHkgdXBkYXRlIHdoZW4gdGhlIHdpbmRvdyBtb3ZlcyBzY3JlZW5zLgogQHByb3BlcnR5
IChub25hdG9taWMsIHNldHRlcj1fc2V0T3ZlcnJpZGVEZXZpY2VTY2FsZUZhY3RvcjopIENHRmxv
YXQgX292ZXJyaWRlRGV2aWNlU2NhbGVGYWN0b3IgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIE5B
KTsKLQotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0V2luZG93T2NjbHVzaW9uRGV0
ZWN0aW9uRW5hYmxlZDopIEJPT0wgX3dpbmRvd09jY2x1c2lvbkRldGVjdGlvbkVuYWJsZWQ7Ci0K
ICNlbmRpZgogCiAtICh2b2lkKV9raWxsV2ViQ29udGVudFByb2Nlc3NBbmRSZXNldFN0YXRlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Yy9XS0J1bmRsZVBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwCmluZGV4IGM1MjczMWUzNmMyMjQ3YjcyODI4ZWI5
MGUyYTU1MzYzZmY5MWYyNzcuLjUwZTA4Yzc3OTc4NTdiMjBhZGQzOWQxZDJhNmUwYWFlOTI3ZDhj
NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2MvV0tCdW5kbGVQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAKQEAgLTYxNSwxOCArNjE1LDMgQEAg
dm9pZCBXS0J1bmRsZVBhZ2VQb3N0U3luY2hyb25vdXNNZXNzYWdlRm9yVGVzdGluZyhXS0J1bmRs
ZVBhZ2VSZWYgcGFnZVJlZiwgV0tTdHIKICAgICBpZiAocmV0dXJuRGF0YVJlZikKICAgICAgICAg
KnJldHVybkRhdGFSZWYgPSB0b0FQSShyZXR1cm5EYXRhLnJlbGVhc2UoKS5sZWFrUmVmKCkpOwog
fQotCi12b2lkIFdLQnVuZGxlUGFnZUFkZFVzZXJTY3JpcHQoV0tCdW5kbGVQYWdlUmVmIHBhZ2VS
ZWYsIFdLU3RyaW5nUmVmIHNvdXJjZSwgX1dLVXNlclNjcmlwdEluamVjdGlvblRpbWUgaW5qZWN0
aW9uVGltZSwgV0tVc2VyQ29udGVudEluamVjdGVkRnJhbWVzIGluamVjdGVkRnJhbWVzKQotewot
ICAgIHRvSW1wbChwYWdlUmVmKS0+YWRkVXNlclNjcmlwdCh0b1dURlN0cmluZyhzb3VyY2UpLCB0
b1VzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMoaW5qZWN0ZWRGcmFtZXMpLCB0b1VzZXJTY3JpcHRJ
bmplY3Rpb25UaW1lKGluamVjdGlvblRpbWUpKTsKLX0KLQotdm9pZCBXS0J1bmRsZVBhZ2VBZGRV
c2VyU3R5bGVTaGVldChXS0J1bmRsZVBhZ2VSZWYgcGFnZVJlZiwgV0tTdHJpbmdSZWYgc291cmNl
LCBXS1VzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMgaW5qZWN0ZWRGcmFtZXMpCi17Ci0gICAgdG9J
bXBsKHBhZ2VSZWYpLT5hZGRVc2VyU3R5bGVTaGVldCh0b1dURlN0cmluZyhzb3VyY2UpLCB0b1Vz
ZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMoaW5qZWN0ZWRGcmFtZXMpKTsKLX0KLQotdm9pZCBXS0J1
bmRsZVBhZ2VSZW1vdmVBbGxVc2VyQ29udGVudChXS0J1bmRsZVBhZ2VSZWYgcGFnZVJlZikKLXsK
LSAgICB0b0ltcGwocGFnZVJlZiktPnJlbW92ZUFsbFVzZXJDb250ZW50KCk7Ci19CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVu
ZGxlUGFnZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2MvV0tCdW5kbGVQYWdlUHJpdmF0ZS5oCmluZGV4IGNkY2QxNTVkNTJhZDY2ZjRjNDEx
OTFiMGMxNGRlYjVlMzdjYjIzMTQuLmM2NmU3NGMwN2YwYmU3YWVjMGJhMTc0ZjEwMTQwMzAzNzFk
ZTA2NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2MvV0tCdW5kbGVQYWdlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlUHJpdmF0ZS5oCkBAIC0yOSw4
ICsyOSw2IEBACiAjaW5jbHVkZSA8V2ViS2l0L1dLQmFzZS5oPgogI2luY2x1ZGUgPFdlYktpdC9X
S0V2ZW50Lmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLR2VvbWV0cnkuaD4KLSNpbmNsdWRlIDxXZWJL
aXQvV0tVc2VyQ29udGVudEluamVjdGVkRnJhbWVzLmg+Ci0jaW5jbHVkZSA8V2ViS2l0L1dLVXNl
clNjcmlwdEluamVjdGlvblRpbWUuaD4KIAogI2lmZGVmIF9fY3BsdXNwbHVzCiBleHRlcm4gIkMi
IHsKQEAgLTk1LDExICs5Myw2IEBAIHR5cGVkZWYgdW5zaWduZWQgV0tSZW5kZXJpbmdTdXBwcmVz
c2lvblRva2VuOwogV0tfRVhQT1JUIFdLUmVuZGVyaW5nU3VwcHJlc3Npb25Ub2tlbiBXS0J1bmRs
ZVBhZ2VFeHRlbmRJbmNyZW1lbnRhbFJlbmRlcmluZ1N1cHByZXNzaW9uKFdLQnVuZGxlUGFnZVJl
Zik7CiBXS19FWFBPUlQgdm9pZCBXS0J1bmRsZVBhZ2VTdG9wRXh0ZW5kaW5nSW5jcmVtZW50YWxS
ZW5kZXJpbmdTdXBwcmVzc2lvbihXS0J1bmRsZVBhZ2VSZWYsIFdLUmVuZGVyaW5nU3VwcHJlc3Np
b25Ub2tlbik7CiAKLS8vIFVzZXJDb250ZW50IEFQSSAoY29tcGF0aWJsZSB3aXRoIE1vZGVybiBB
UEksIGZvciBXS1RSKQotV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVQYWdlQWRkVXNlclNjcmlwdChX
S0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgc291cmNlLCBfV0tVc2VyU2NyaXB0SW5q
ZWN0aW9uVGltZSBpbmplY3Rpb25UaW1lLCBXS1VzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMgaW5q
ZWN0ZWRGcmFtZXMpOwotV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVQYWdlQWRkVXNlclN0eWxlU2hl
ZXQoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIHNvdXJjZSwgV0tVc2VyQ29udGVu
dEluamVjdGVkRnJhbWVzIGluamVjdGVkRnJhbWVzKTsKLVdLX0VYUE9SVCB2b2lkIFdLQnVuZGxl
UGFnZVJlbW92ZUFsbFVzZXJDb250ZW50KFdLQnVuZGxlUGFnZVJlZiBwYWdlKTsKLQogI2lmIFRB
UkdFVF9PU19JUEhPTkUKIFdLX0VYUE9SVCB2b2lkIFdLQnVuZGxlUGFnZVNldFVzZVRlc3RpbmdW
aWV3cG9ydENvbmZpZ3VyYXRpb24oV0tCdW5kbGVQYWdlUmVmLCBib29sKTsKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDBkN2I5
ZGZmMzFlNDJiYTY5NGZiZDgzNzcxM2E5ODdjY2VjMDAzZjAuLjhjNjYxZjk2MzdiOWI1YjYwYTM1
Nzk2ZmNhZjY3Mzg3OTAwMDMwZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTUwMDYsMzAgKzUwMDYsNCBAQCB2b2lkIFdlYlBhZ2U6Omlt
YWdlT3JNZWRpYURvY3VtZW50U2l6ZUNoYW5nZWQoY29uc3QgSW50U2l6ZSYgbmV3U2l6ZSkKICAg
ICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkltYWdlT3JNZWRpYURvY3VtZW50U2l6ZUNo
YW5nZWQobmV3U2l6ZSkpOwogfQogCi12b2lkIFdlYlBhZ2U6OmFkZFVzZXJTY3JpcHQoY29uc3Qg
U3RyaW5nJiBzb3VyY2UsIFdlYkNvcmU6OlVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMgaW5qZWN0
ZWRGcmFtZXMsIFdlYkNvcmU6OlVzZXJTY3JpcHRJbmplY3Rpb25UaW1lIGluamVjdGlvblRpbWUp
Ci17Ci0gICAgQVNTRVJUKG1fdXNlckNvbnRlbnRDb250cm9sbGVyKTsKLQotICAgIFdlYkNvcmU6
OlVzZXJTY3JpcHQgdXNlclNjcmlwdChzb3VyY2UsIFdlYkNvcmU6OmJsYW5rVVJMKCksIFZlY3Rv
cjxTdHJpbmc+KCksIFZlY3RvcjxTdHJpbmc+KCksIGluamVjdGlvblRpbWUsIGluamVjdGVkRnJh
bWVzKTsKLQotICAgIG1fdXNlckNvbnRlbnRDb250cm9sbGVyLT51c2VyQ29udGVudENvbnRyb2xs
ZXIoKS5hZGRVc2VyU2NyaXB0KG1haW5UaHJlYWROb3JtYWxXb3JsZCgpLCBzdGQ6Om1ha2VfdW5p
cXVlPFdlYkNvcmU6OlVzZXJTY3JpcHQ+KHVzZXJTY3JpcHQpKTsKLX0KLQotdm9pZCBXZWJQYWdl
OjphZGRVc2VyU3R5bGVTaGVldChjb25zdCBTdHJpbmcmIHNvdXJjZSwgV2ViQ29yZTo6VXNlckNv
bnRlbnRJbmplY3RlZEZyYW1lcyBpbmplY3RlZEZyYW1lcykKLXsKLSAgICBBU1NFUlQobV91c2Vy
Q29udGVudENvbnRyb2xsZXIpOwotCi0gICAgV2ViQ29yZTo6VXNlclN0eWxlU2hlZXQgdXNlclN0
eWxlU2hlZXQoc291cmNlLCBXZWJDb3JlOjpibGFua1VSTCgpLCBWZWN0b3I8U3RyaW5nPigpLCBW
ZWN0b3I8U3RyaW5nPigpLCBpbmplY3RlZEZyYW1lcywgVXNlclN0eWxlVXNlckxldmVsKTsKLQot
ICAgIG1fdXNlckNvbnRlbnRDb250cm9sbGVyLT51c2VyQ29udGVudENvbnRyb2xsZXIoKS5hZGRV
c2VyU3R5bGVTaGVldChtYWluVGhyZWFkTm9ybWFsV29ybGQoKSwgc3RkOjptYWtlX3VuaXF1ZTxX
ZWJDb3JlOjpVc2VyU3R5bGVTaGVldD4odXNlclN0eWxlU2hlZXQpLCBJbmplY3RJbkV4aXN0aW5n
RG9jdW1lbnRzKTsKLX0KLQotdm9pZCBXZWJQYWdlOjpyZW1vdmVBbGxVc2VyQ29udGVudCgpCi17
Ci0gICAgaWYgKCFtX3VzZXJDb250ZW50Q29udHJvbGxlcikKLSAgICAgICAgcmV0dXJuOwotCi0g
ICAgbV91c2VyQ29udGVudENvbnRyb2xsZXItPnVzZXJDb250ZW50Q29udHJvbGxlcigpLnJlbW92
ZUFsbFVzZXJDb250ZW50KCk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggMDkwNzkyYzJiZGZiNzZj
NzM1MmE3ZGI1MjgyYmQ4OTgwMmFlYWIzMi4uYWVkMDQ5YWRhMWM0MTExYjNjYTQyY2Q5ZTAwYjY3
NTA4ZDA4ZTgzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oCkBAIC02Myw4ICs2Myw2IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9UZXh0Q2hlY2tpbmcuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1RleHRJbmRpY2F0b3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Vz
ZXJBY3Rpdml0eS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvVXNlckNvbnRlbnRUeXBlcy5oPgotI2lu
Y2x1ZGUgPFdlYkNvcmUvVXNlclNjcmlwdFR5cGVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9WaWV3
U3RhdGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1ZpZXdwb3J0Q29uZmlndXJhdGlvbi5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvV2ViQ29yZUtleWJvYXJkVUlNb2RlLmg+CkBAIC05MTYsMTAgKzkxNCw2
IEBAIHB1YmxpYzoKICNlbmRpZgogI2VuZGlmCiAKLSAgICB2b2lkIGFkZFVzZXJTY3JpcHQoY29u
c3QgU3RyaW5nJiBzb3VyY2UsIFdlYkNvcmU6OlVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMsIFdl
YkNvcmU6OlVzZXJTY3JpcHRJbmplY3Rpb25UaW1lKTsKLSAgICB2b2lkIGFkZFVzZXJTdHlsZVNo
ZWV0KGNvbnN0IFN0cmluZyYgc291cmNlLCBXZWJDb3JlOjpVc2VyQ29udGVudEluamVjdGVkRnJh
bWVzKTsKLSAgICB2b2lkIHJlbW92ZUFsbFVzZXJDb250ZW50KCk7Ci0KIHByaXZhdGU6CiAgICAg
V2ViUGFnZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMm
KTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4
IGUyZWUwZmYyZmY2NjU4YTBiMTEwMjI0NTdmYjY0ZTJjNTZkYzc5MTEuLmI5ZGEwNzJiYWFmNDFk
NGQyNzEwNmJlOWEyMzE5M2MyYzUzMzg3YjIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZwor
KysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxNS0wOC0yMSAgQ29tbWl0
IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwg
cm9sbGluZyBvdXQgcjE4ODgwNywgcjE4ODgxMywgYW5kIHIxODg4MTUuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDgzNDkKKworICAgICAgICBsb3Rz
IG9mIDMyLWJpdCBidWlsZCBwcm9ibGVtcywgYmV0dGVyIHRvIHJlc29sdmUgc2VwYXJhdGVseQor
ICAgICAgICBhbmQgdHJ5IGFnYWluIChSZXF1ZXN0ZWQgYnkgdGhvcnRvbiBvbiAjd2Via2l0KS4K
KworICAgICAgICBSZXZlcnRlZCBjaGFuZ2VzZXRzOgorCisgICAgICAgICJXZWJLaXRUZXN0UnVu
bmVyIHNob3VsZCB1c2UgV0tXZWJWaWV3IG9uIE9TIFggYW5kIGlPUyIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0Mzc0MworICAgICAgICBodHRwOi8v
dHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xODg4MDcKKworICAgICAgICAiU3RvcCBidWlsZGlu
ZyBXZWJLaXRUZXN0UnVubmVyIGZvciAzMi1iaXQgcGxhdGZvcm1zIgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQzNzQzCisgICAgICAgIGh0dHA6Ly90
cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzE4ODgxMworCisgICAgICAgICJTdG9wIGJ1aWxkaW5n
IFdlYktpdFRlc3RSdW5uZXIgZm9yIDMyLWJpdCBwbGF0Zm9ybXMiCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDM3NDMKKyAgICAgICAgaHR0cDovL3Ry
YWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTg4ODE1CisKIDIwMTUtMDgtMjEgIFRpbSBIb3J0b24g
IDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgU3RvcCBidWlsZGluZyBXZWJL
aXRUZXN0UnVubmVyIGZvciAzMi1iaXQgcGxhdGZvcm1zCmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0NvbmZpZ3VyYXRpb25zL0RlYnVnUmVsZWFzZS54Y2NvbmZpZyBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvQ29uZmlndXJhdGlvbnMvRGVidWdSZWxlYXNlLnhjY29uZmlnCmlu
ZGV4IDM3YTNjZTAzZTM0N2VjMjUyZmFjODE0ZDA2NjljZDQxYTc1OWIwYzAuLmFkYWM4NDlhMjNm
ODgxZDZiOWFkZmVlMzM3NDBhYTkwOTcxMzA5YzkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvQ29uZmlndXJhdGlvbnMvRGVidWdSZWxlYXNlLnhjY29uZmlnCisrKyBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvQ29uZmlndXJhdGlvbnMvRGVidWdSZWxlYXNlLnhjY29uZmlnCkBA
IC0yNCw3ICsyNCw3IEBACiAjaW5jbHVkZSAiLi4vLi4vLi4vLi4vSW50ZXJuYWwvQ29uZmlndXJh
dGlvbnMvSGF2ZUludGVybmFsU0RLLnhjY29uZmlnIgogI2luY2x1ZGUgIkJhc2UueGNjb25maWci
CiAKLVZBTElEX0FSQ0hTW3Nkaz1tYWNvc3gqXSA9ICQoQVJDSFNfU1RBTkRBUkRfNjRfQklUKTsK
K0FSQ0hTID0gJChBUkNIU19TVEFOREFSRF8zMl82NF9CSVQpOwogCiBPTkxZX0FDVElWRV9BUkNI
ID0gWUVTOwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCmluZGV4IDA1NzFhMzVkZjllZmI5YzdhN2FiMjhlODkz
MmNjMWYwMTBiYWI1OWMuLjk5Yzg2NDVhMDE1MmI4OWZjMjFkZGUzNzIzOWViYTIyY2IyNWEzYWQg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0
ZWRCdW5kbGUuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
SW5qZWN0ZWRCdW5kbGUuY3BwCkBAIC0yNjEsNyArMjYxLDcgQEAgdm9pZCBJbmplY3RlZEJ1bmRs
ZTo6YmVnaW5UZXN0aW5nKFdLRGljdGlvbmFyeVJlZiBzZXR0aW5ncykKICAgICBXS0J1bmRsZVNl
dFBsdWdpbnNFbmFibGVkKG1fYnVuZGxlLCBtX3BhZ2VHcm91cCwgdHJ1ZSk7CiAgICAgV0tCdW5k
bGVTZXRQb3B1cEJsb2NraW5nRW5hYmxlZChtX2J1bmRsZSwgbV9wYWdlR3JvdXAsIGZhbHNlKTsK
IAotICAgIFdLQnVuZGxlUGFnZVJlbW92ZUFsbFVzZXJDb250ZW50KHBhZ2UoKS0+cGFnZSgpKTsK
KyAgICBXS0J1bmRsZVJlbW92ZUFsbFVzZXJDb250ZW50KG1fYnVuZGxlLCBtX3BhZ2VHcm91cCk7
CiAKICAgICBtX3Rlc3RSdW5uZXItPnNldFNob3VsZER1bXBGcmFtZUxvYWRDYWxsYmFja3MoYm9v
bGVhbkZvcktleShzZXR0aW5ncywgIkR1bXBGcmFtZUxvYWREZWxlZ2F0ZXMiKSk7CiAgICAgbV90
ZXN0UnVubmVyLT5zZXRVc2VyU3R5bGVTaGVldEVuYWJsZWQoZmFsc2UpOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcCBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKaW5kZXgg
MjA4NTYwNzVmMWRhMzk2OWIzNDEwMzEyZDYwNzI5Mjk5ODQ4N2ZkYy4uMDEwMGEzYjFkMzBkNWIx
ZTQwYWUyZDY2M2FlNWViZGYzM2UzYzdlNCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCkBAIC0xNzIsOCArMTcyLDEwIEBA
IHZvaWQgVGVzdFJ1bm5lcjo6bm90aWZ5RG9uZSgpCiB2b2lkIFRlc3RSdW5uZXI6OmFkZFVzZXJT
Y3JpcHQoSlNTdHJpbmdSZWYgc291cmNlLCBib29sIHJ1bkF0U3RhcnQsIGJvb2wgYWxsRnJhbWVz
KQogewogICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBzb3VyY2VXSyA9IHRvV0soc291cmNl
KTsKKyAgICBXS1JldGFpblB0cjxXS0J1bmRsZVNjcmlwdFdvcmxkUmVmPiBzY3JpcHRXb3JsZChB
ZG9wdFdLLCBXS0J1bmRsZVNjcmlwdFdvcmxkQ3JlYXRlV29ybGQoKSk7CiAKLSAgICBXS0J1bmRs
ZVBhZ2VBZGRVc2VyU2NyaXB0KEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBh
Z2UoKSwgc291cmNlV0suZ2V0KCksCisgICAgYXV0byYgaW5qZWN0ZWRCdW5kbGUgPSBJbmplY3Rl
ZEJ1bmRsZTo6c2luZ2xldG9uKCk7CisgICAgV0tCdW5kbGVBZGRVc2VyU2NyaXB0KGluamVjdGVk
QnVuZGxlLmJ1bmRsZSgpLCBpbmplY3RlZEJ1bmRsZS5wYWdlR3JvdXAoKSwgc2NyaXB0V29ybGQu
Z2V0KCksIHNvdXJjZVdLLmdldCgpLCAwLCAwLCAwLAogICAgICAgICAocnVuQXRTdGFydCA/IGtX
S0luamVjdEF0RG9jdW1lbnRTdGFydCA6IGtXS0luamVjdEF0RG9jdW1lbnRFbmQpLAogICAgICAg
ICAoYWxsRnJhbWVzID8ga1dLSW5qZWN0SW5BbGxGcmFtZXMgOiBrV0tJbmplY3RJblRvcEZyYW1l
T25seSkpOwogfQpAQCAtMTgxLDggKzE4MywxMCBAQCB2b2lkIFRlc3RSdW5uZXI6OmFkZFVzZXJT
Y3JpcHQoSlNTdHJpbmdSZWYgc291cmNlLCBib29sIHJ1bkF0U3RhcnQsIGJvb2wgYWxsRnJhbQog
dm9pZCBUZXN0UnVubmVyOjphZGRVc2VyU3R5bGVTaGVldChKU1N0cmluZ1JlZiBzb3VyY2UsIGJv
b2wgYWxsRnJhbWVzKQogewogICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBzb3VyY2VXSyA9
IHRvV0soc291cmNlKTsKKyAgICBXS1JldGFpblB0cjxXS0J1bmRsZVNjcmlwdFdvcmxkUmVmPiBz
Y3JpcHRXb3JsZChBZG9wdFdLLCBXS0J1bmRsZVNjcmlwdFdvcmxkQ3JlYXRlV29ybGQoKSk7CiAK
LSAgICBXS0J1bmRsZVBhZ2VBZGRVc2VyU3R5bGVTaGVldChJbmplY3RlZEJ1bmRsZTo6c2luZ2xl
dG9uKCkucGFnZSgpLT5wYWdlKCksIHNvdXJjZVdLLmdldCgpLAorICAgIGF1dG8mIGluamVjdGVk
QnVuZGxlID0gSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpOworICAgIFdLQnVuZGxlQWRkVXNl
clN0eWxlU2hlZXQoaW5qZWN0ZWRCdW5kbGUuYnVuZGxlKCksIGluamVjdGVkQnVuZGxlLnBhZ2VH
cm91cCgpLCBzY3JpcHRXb3JsZC5nZXQoKSwgc291cmNlV0suZ2V0KCksIDAsIDAsIDAsCiAgICAg
ICAgIChhbGxGcmFtZXMgPyBrV0tJbmplY3RJbkFsbEZyYW1lcyA6IGtXS0luamVjdEluVG9wRnJh
bWVPbmx5KSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZv
cm1XZWJWaWV3LmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV2ViVmlldy5oCmlu
ZGV4IDM2Zjc1MzVhZGNiYzdhODg1NDQ2MmViYTg3YjdjODBjYmZiZGY1MjQuLmExMzA4OWJjOGVj
YmRhZjhhYjY0NzA3Yjk4Y2M3N2JmMTRjMTQ5YWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvUGxhdGZvcm1XZWJWaWV3LmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Q
bGF0Zm9ybVdlYlZpZXcuaApAQCAtMjksMTQgKzI5LDE1IEBACiAjaW5jbHVkZSAiVmlld09wdGlv
bnMuaCIKICNpbmNsdWRlIDxXZWJLaXQvV0tSZXRhaW5QdHIuaD4KIAotI2lmIFBMQVRGT1JNKENP
Q09BKQotT0JKQ19DTEFTUyBOU1ZpZXc7Ci1PQkpDX0NMQVNTIFVJVmlldzsKLU9CSkNfQ0xBU1Mg
V0tXZWJWaWV3OwotT0JKQ19DTEFTUyBXS1dlYlZpZXdDb25maWd1cmF0aW9uOwotT0JKQ19DTEFT
UyBXZWJLaXRUZXN0UnVubmVyV2luZG93OwotCi10eXBlZGVmIFdLV2ViVmlldyogUGxhdGZvcm1X
S1ZpZXc7CisjaWYgZGVmaW5lZChfX0FQUExFX18pICYmIF9fQVBQTEVfXworI2lmZGVmIF9fT0JK
Q19fCitAY2xhc3MgV0tWaWV3OworQGNsYXNzIFdlYktpdFRlc3RSdW5uZXJXaW5kb3c7CisjZWxz
ZQorY2xhc3MgV0tWaWV3OworY2xhc3MgV2ViS2l0VGVzdFJ1bm5lcldpbmRvdzsKKyNlbmRpZgor
dHlwZWRlZiBXS1ZpZXcqIFBsYXRmb3JtV0tWaWV3OwogdHlwZWRlZiBXZWJLaXRUZXN0UnVubmVy
V2luZG93KiBQbGF0Zm9ybVdpbmRvdzsKICNlbGlmIGRlZmluZWQoQlVJTERJTkdfR1RLX18pCiB0
eXBlZGVmIHN0cnVjdCBfR3RrV2lkZ2V0IEd0a1dpZGdldDsKQEAgLTUxLDExICs1Miw3IEBAIG5h
bWVzcGFjZSBXVFIgewogCiBjbGFzcyBQbGF0Zm9ybVdlYlZpZXcgewogcHVibGljOgotI2lmIFBM
QVRGT1JNKENPQ09BKQotICAgIFBsYXRmb3JtV2ViVmlldyhXS1dlYlZpZXdDb25maWd1cmF0aW9u
KiwgY29uc3QgVmlld09wdGlvbnMmKTsKLSNlbHNlCiAgICAgUGxhdGZvcm1XZWJWaWV3KFdLUGFn
ZUNvbmZpZ3VyYXRpb25SZWYsIGNvbnN0IFZpZXdPcHRpb25zJik7Ci0jZW5kaWYKICAgICB+UGxh
dGZvcm1XZWJWaWV3KCk7CiAKICAgICBXS1BhZ2VSZWYgcGFnZSgpOwpAQCAtNjQsNiArNjEsOSBA
QCBwdWJsaWM6CiAgICAgdm9pZCByZXNpemVUbyh1bnNpZ25lZCB3aWR0aCwgdW5zaWduZWQgaGVp
Z2h0KTsKICAgICB2b2lkIGZvY3VzKCk7CiAKKyAgICAvLyBXaW5kb3cgc25hcHNob3QgaXMgYWx3
YXlzIGVuYWJsZWQgYnkgZGVmYXVsdCBvbiBhbGwgb3RoZXIgcGxhdGZvcm0uCisgICAgc3RhdGlj
IGJvb2wgd2luZG93U25hcHNob3RFbmFibGVkKCkgeyByZXR1cm4gdHJ1ZTsgfQorCiAgICAgV0tS
ZWN0IHdpbmRvd0ZyYW1lKCk7CiAgICAgdm9pZCBzZXRXaW5kb3dGcmFtZShXS1JlY3QpOwogCmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDYzMjI4YjA0ZTYz
NDUxNzcxNGU1YmY1MDYzYTQxYzljYWU2ODc3N2EuLmIyZjc3ZmIwNjlmYWNmMzBjYzNmMTgxMmUw
NTc5NjA1ODYwYzI1MjIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENv
bnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIu
Y3BwCkBAIC0xOTcsMTEgKzE5NywxMSBAQCBzdGF0aWMgdm9pZCBkZWNpZGVQb2xpY3lGb3JVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFdLUwogICAgIFRl
c3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5oYW5kbGVVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dChwZXJtaXNzaW9uUmVxdWVzdCk7CiB9CiAKLVdLUGFnZVJlZiBUZXN0Q29udHJvbGxlcjo6Y3Jl
YXRlT3RoZXJQYWdlKFdLUGFnZVJlZiBvbGRQYWdlLCBXS1BhZ2VDb25maWd1cmF0aW9uUmVmIGNv
bmZpZ3VyYXRpb24sIFdLTmF2aWdhdGlvbkFjdGlvblJlZiBuYXZpZ2F0aW9uQWN0aW9uLCBXS1dp
bmRvd0ZlYXR1cmVzUmVmIHdpbmRvd0ZlYXR1cmVzLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQor
V0tQYWdlUmVmIFRlc3RDb250cm9sbGVyOjpjcmVhdGVPdGhlclBhZ2UoV0tQYWdlUmVmIG9sZFBw
YWdlLCBXS1BhZ2VDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24sIFdLTmF2aWdhdGlvbkFj
dGlvblJlZiBuYXZpZ2F0aW9uQWN0aW9uLCBXS1dpbmRvd0ZlYXR1cmVzUmVmIHdpbmRvd0ZlYXR1
cmVzLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQogewogICAgIFBsYXRmb3JtV2ViVmlldyogcGFy
ZW50VmlldyA9IHN0YXRpY19jYXN0PFBsYXRmb3JtV2ViVmlldyo+KGNvbnN0X2Nhc3Q8dm9pZCo+
KGNsaWVudEluZm8pKTsKIAotICAgIFBsYXRmb3JtV2ViVmlldyogdmlldyA9IHBsYXRmb3JtQ3Jl
YXRlT3RoZXJQYWdlKHBhcmVudFZpZXcsIGNvbmZpZ3VyYXRpb24sIHBhcmVudFZpZXctPm9wdGlv
bnMoKSk7CisgICAgUGxhdGZvcm1XZWJWaWV3KiB2aWV3ID0gbmV3IFBsYXRmb3JtV2ViVmlldyhj
b25maWd1cmF0aW9uLCBwYXJlbnRWaWV3LT5vcHRpb25zKCkpOwogICAgIFdLUGFnZVJlZiBuZXdQ
YWdlID0gdmlldy0+cGFnZSgpOwogCiAgICAgdmlldy0+cmVzaXplVG8oODAwLCA2MDApOwpAQCAt
MzEwLDYgKzMxMCw3IEBAIGNvbnN0IGNoYXIqIFRlc3RDb250cm9sbGVyOjpsaWJyYXJ5UGF0aEZv
clRlc3RpbmcoKQogICAgIHJldHVybiBwbGF0Zm9ybUxpYnJhcnlQYXRoRm9yVGVzdGluZygpOwog
fQogCisKIHZvaWQgVGVzdENvbnRyb2xsZXI6OmluaXRpYWxpemUoaW50IGFyZ2MsIGNvbnN0IGNo
YXIqIGFyZ3ZbXSkKIHsKICAgICBwbGF0Zm9ybUluaXRpYWxpemUoKTsKQEAgLTM3MSw4ICszNzIs
OCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjppbml0aWFsaXplKGludCBhcmdjLCBjb25zdCBjaGFy
KiBhcmd2W10pCiAgICAgICAgIFdLQ29udGV4dENvbmZpZ3VyYXRpb25TZXRXZWJTUUxEYXRhYmFz
ZURpcmVjdG9yeShjb25maWd1cmF0aW9uLmdldCgpLCB0b1dLKHRlbXBvcmFyeUZvbGRlciArIHNl
cGFyYXRvciArICJEYXRhYmFzZXMiICsgc2VwYXJhdG9yICsgIldlYlNRTCIpLmdldCgpKTsKICAg
ICAgICAgV0tDb250ZXh0Q29uZmlndXJhdGlvblNldE1lZGlhS2V5c1N0b3JhZ2VEaXJlY3Rvcnko
Y29uZmlndXJhdGlvbi5nZXQoKSwgdG9XSyh0ZW1wb3JhcnlGb2xkZXIgKyBzZXBhcmF0b3IgKyAi
TWVkaWFLZXlzIikuZ2V0KCkpOwogICAgIH0KLSAgICBtX2NvbnRleHQgPSBwbGF0Zm9ybUFkanVz
dENvbnRleHQoYWRvcHRXSyhXS0NvbnRleHRDcmVhdGVXaXRoQ29uZmlndXJhdGlvbihjb25maWd1
cmF0aW9uLmdldCgpKSkuZ2V0KCksIGNvbmZpZ3VyYXRpb24uZ2V0KCkpOwogCisgICAgbV9jb250
ZXh0ID0gYWRvcHRXSyhXS0NvbnRleHRDcmVhdGVXaXRoQ29uZmlndXJhdGlvbihjb25maWd1cmF0
aW9uLmdldCgpKSk7CiAgICAgbV9nZW9sb2NhdGlvblByb3ZpZGVyID0gc3RkOjptYWtlX3VuaXF1
ZTxHZW9sb2NhdGlvblByb3ZpZGVyTW9jaz4obV9jb250ZXh0LmdldCgpKTsKIAogI2lmIFBMQVRG
T1JNKEVGTCkKQEAgLTQzNCw3ICs0MzUsNiBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjppbml0aWFs
aXplKGludCBhcmdjLCBjb25zdCBjaGFyKiBhcmd2W10pCiAgICAgbV9jb25maWd1cmF0aW9uID0g
YWRvcHRXSyhXS1BhZ2VDb25maWd1cmF0aW9uQ3JlYXRlKCkpOwogICAgIFdLUGFnZUNvbmZpZ3Vy
YXRpb25TZXRDb250ZXh0KG1fY29uZmlndXJhdGlvbi5nZXQoKSwgbV9jb250ZXh0LmdldCgpKTsK
ICAgICBXS1BhZ2VDb25maWd1cmF0aW9uU2V0UGFnZUdyb3VwKG1fY29uZmlndXJhdGlvbi5nZXQo
KSwgbV9wYWdlR3JvdXAuZ2V0KCkpOwotICAgIFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRVc2VyQ29u
dGVudENvbnRyb2xsZXIobV9jb25maWd1cmF0aW9uLmdldCgpLCBhZG9wdFdLKFdLVXNlckNvbnRl
bnRDb250cm9sbGVyQ3JlYXRlKCkpLmdldCgpKTsKIAogICAgIC8vIFNvbWUgcHJlZmVyZW5jZXMg
KG5vdGFibHkgbW9jayBzY3JvbGwgYmFycyBzZXR0aW5nKSBjdXJyZW50bHkgY2Fubm90IGJlIHJl
LWFwcGxpZWQgdG8gYW4gZXhpc3Rpbmcgdmlldywgc28gd2UgbmVlZCB0byBzZXQgdGhlbSBub3cu
CiAgICAgcmVzZXRQcmVmZXJlbmNlc1RvQ29uc2lzdGVudFZhbHVlcygpOwpAQCAtNDQyLDcgKzQ0
Miw3IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmluaXRpYWxpemUoaW50IGFyZ2MsIGNvbnN0IGNo
YXIqIGFyZ3ZbXSkKIAogdm9pZCBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlV2ViVmlld1dpdGhPcHRp
b25zKGNvbnN0IFZpZXdPcHRpb25zJiBvcHRpb25zKQogewotICAgIHBsYXRmb3JtQ3JlYXRlV2Vi
VmlldyhtX2NvbmZpZ3VyYXRpb24uZ2V0KCksIG9wdGlvbnMpOworICAgIG1fbWFpbldlYlZpZXcg
PSBzdGQ6Om1ha2VfdW5pcXVlPFBsYXRmb3JtV2ViVmlldz4obV9jb25maWd1cmF0aW9uLmdldCgp
LCBvcHRpb25zKTsKICAgICBXS1BhZ2VVSUNsaWVudFY2IHBhZ2VVSUNsaWVudCA9IHsKICAgICAg
ICAgeyA2LCBtX21haW5XZWJWaWV3LmdldCgpIH0sCiAgICAgICAgIDAsIC8vIGNyZWF0ZU5ld1Bh
Z2VfZGVwcmVjYXRlZEZvclVzZVdpdGhWMApAQCAtNTY4LDcgKzU2OCw3IEBAIHZvaWQgVGVzdENv
bnRyb2xsZXI6OmVuc3VyZVZpZXdTdXBwb3J0c09wdGlvbnNGb3JUZXN0KGNvbnN0IFRlc3RJbnZv
Y2F0aW9uJiB0ZXN0CiB2b2lkIFRlc3RDb250cm9sbGVyOjpyZXNldFByZWZlcmVuY2VzVG9Db25z
aXN0ZW50VmFsdWVzKCkKIHsKICAgICAvLyBSZXNldCBwcmVmZXJlbmNlcwotICAgIFdLUHJlZmVy
ZW5jZXNSZWYgcHJlZmVyZW5jZXMgPSBwbGF0Zm9ybVByZWZlcmVuY2VzKCk7CisgICAgV0tQcmVm
ZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyA9IFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMobV9wYWdl
R3JvdXAuZ2V0KCkpOwogICAgIFdLUHJlZmVyZW5jZXNSZXNldFRlc3RSdW5uZXJPdmVycmlkZXMo
cHJlZmVyZW5jZXMpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRQYWdlVmlzaWJpbGl0eUJhc2VkUHJv
Y2Vzc1N1cHByZXNzaW9uRW5hYmxlZChwcmVmZXJlbmNlcywgZmFsc2UpOwogICAgIFdLUHJlZmVy
ZW5jZXNTZXRPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQocHJlZmVyZW5jZXMsIHRy
dWUpOwpAQCAtNjIyLDggKzYyMiw2IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnJlc2V0UHJlZmVy
ZW5jZXNUb0NvbnNpc3RlbnRWYWx1ZXMoKQogICAgIFdLUHJlZmVyZW5jZXNTZXRIaWRkZW5QYWdl
Q1NTQW5pbWF0aW9uU3VzcGVuc2lvbkVuYWJsZWQocHJlZmVyZW5jZXMsIGZhbHNlKTsKIAogICAg
IFdLUHJlZmVyZW5jZXNTZXRBY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkKHByZWZlcmVuY2VzLCBt
X3Nob3VsZFVzZUFjY2VsZXJhdGVkRHJhd2luZyk7Ci0gICAgLy8gRklYTUU6IFdlIHNob3VsZCBi
ZSB0ZXN0aW5nIHRoZSBkZWZhdWx0LgotICAgIFdLUHJlZmVyZW5jZXNTZXRTdG9yYWdlQmxvY2tp
bmdQb2xpY3kocHJlZmVyZW5jZXMsIGtXS0FsbG93QWxsU3RvcmFnZSk7CiAKICAgICBXS0Nvb2tp
ZU1hbmFnZXJEZWxldGVBbGxDb29raWVzKFdLQ29udGV4dEdldENvb2tpZU1hbmFnZXIobV9jb250
ZXh0LmdldCgpKSk7CiAKQEAgLTYzNiwxMSArNjM0LDYgQEAgYm9vbCBUZXN0Q29udHJvbGxlcjo6
cmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVlcygpCiAKICAgICBtX2JlZm9yZVVubG9hZFJldHVy
blZhbHVlID0gdHJ1ZTsKIAotICAgIC8vIFRoaXMgc2V0dGluZyBkaWZmZXJzIGJldHdlZW4gdGhl
IGFudGlxdWUgYW5kIG1vZGVybiBNYWMgV2ViS2l0MiBBUEkuCi0gICAgLy8gRm9yIG5vdywgbWFp
bnRhaW4gdGhlIGFudGlxdWUgYmVoYXZpb3IsIGJlY2F1c2Ugc29tZSB0ZXN0cyBkZXBlbmQgb24g
aXQhCi0gICAgLy8gRklYTUU6IFdlIHNob3VsZCBiZSB0ZXN0aW5nIHRoZSBkZWZhdWx0LgotICAg
IFdLUGFnZVNldEJhY2tncm91bmRFeHRlbmRzQmV5b25kUGFnZShtX21haW5XZWJWaWV3LT5wYWdl
KCksIGZhbHNlKTsKLQogICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdlTmFtZSA9
IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlJlc2V0IikpOwogICAgIFdL
UmV0YWluUHRyPFdLTXV0YWJsZURpY3Rpb25hcnlSZWY+IHJlc2V0TWVzc2FnZUJvZHkgPSBhZG9w
dFdLKFdLTXV0YWJsZURpY3Rpb25hcnlDcmVhdGUoKSk7CiAKQEAgLTY3NSw3ICs2NjgsNyBAQCBi
b29sIFRlc3RDb250cm9sbGVyOjpyZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKCkKICAgICBX
S1RleHRDaGVja2VyQ29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkU3RhdGVDaGFuZ2VkKHRy
dWUpOwogI2VuZGlmCiAKLSAgICAvLyBJbiB0aGUgY2FzZSB0aGF0IGEgdGVzdCB1c2luZyB0aGUg
Y2hyb21lIGlucHV0IGZpZWxkIGZhaWxlZCwgYmUgc3VyZSB0byBjbGVhbiB1cCBmb3IgdGhlIG5l
eHQgdGVzdC4KKyAgICAvLyBpbiB0aGUgY2FzZSB0aGF0IGEgdGVzdCB1c2luZyB0aGUgY2hyb21l
IGlucHV0IGZpZWxkIGZhaWxlZCwgYmUgc3VyZSB0byBjbGVhbiB1cCBmb3IgdGhlIG5leHQgdGVz
dAogICAgIG1fbWFpbldlYlZpZXctPnJlbW92ZUNocm9tZUlucHV0RmllbGQoKTsKICAgICBtX21h
aW5XZWJWaWV3LT5mb2N1cygpOwogCkBAIC03MTcsOSArNzEwLDkgQEAgYm9vbCBUZXN0Q29udHJv
bGxlcjo6cmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVlcygpCiAKICAgICBtX3Nob3VsZExvZ0hp
c3RvcnlDbGllbnRDYWxsYmFja3MgPSBmYWxzZTsKIAotICAgIHNldEhpZGRlbihmYWxzZSk7Cisg
ICAgV0tQYWdlR3JvdXBSZW1vdmVBbGxVc2VyQ29udGVudEZpbHRlcnMoV0tQYWdlR2V0UGFnZUdy
b3VwKG1fbWFpbldlYlZpZXctPnBhZ2UoKSkpOwogCi0gICAgcGxhdGZvcm1SZXNldFN0YXRlVG9D
b25zaXN0ZW50VmFsdWVzKCk7CisgICAgc2V0SGlkZGVuKGZhbHNlKTsKIAogICAgIC8vIFJlc2V0
IG1haW4gcGFnZSBiYWNrIHRvIGFib3V0OmJsYW5rCiAgICAgbV9kb25lUmVzZXR0aW5nID0gZmFs
c2U7CkBAIC0xNjAwLDM2ICsxNTkzLDQgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6ZGlkVXBkYXRl
SGlzdG9yeVRpdGxlKFdLU3RyaW5nUmVmIHRpdGxlLCBXS1VSTFJlZiBVUkwsIFdLRnIKICAgICBt
X2N1cnJlbnRJbnZvY2F0aW9uLT5vdXRwdXRUZXh0KFN0cmluZzo6Zm9ybWF0KCJXZWJWaWV3IHVw
ZGF0ZWQgdGhlIHRpdGxlIGZvciBoaXN0b3J5IFVSTCBcIiVzXCIgdG8gXCIlc1wiLlxuIiwgdG9T
VEQodXJsU3RyaW5nV0spLmNfc3RyKCksIHRvU1REKHRpdGxlKS5jX3N0cigpKSk7CiB9CiAKLSNp
ZiAhUExBVEZPUk0oQ09DT0EpCi12b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybVdpbGxSdW5U
ZXN0KGNvbnN0IFRlc3RJbnZvY2F0aW9uJikKLXsKLX0KLQotV0tQcmVmZXJlbmNlc1JlZiBUZXN0
Q29udHJvbGxlcjo6cGxhdGZvcm1QcmVmZXJlbmNlcygpCi17Ci0gICAgV0tSZXRhaW5QdHI8V0tQ
YWdlQ29uZmlndXJhdGlvblJlZj4gY29uZmlndXJhdGlvbiA9IGFkb3B0V0soV0tQYWdlQ29weVBh
Z2VDb25maWd1cmF0aW9uKG1fbWFpbldlYlZpZXctPnBhZ2UoKSkpOyAKLSAgICByZXR1cm4gV0tQ
YWdlQ29uZmlndXJhdGlvbkdldFByZWZlcmVuY2VzKGNvbmZpZ3VyYXRpb24uZ2V0KCkpOwotfQot
Ci12b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUNyZWF0ZVdlYlZpZXcoV0tQYWdlQ29uZmln
dXJhdGlvblJlZiBjb25maWd1cmF0aW9uLCBjb25zdCBWaWV3T3B0aW9ucyYgb3B0aW9ucykKLXsK
LSAgICBtX21haW5XZWJWaWV3ID0gc3RkOjptYWtlX3VuaXF1ZTxQbGF0Zm9ybVdlYlZpZXc+KGNv
bmZpZ3VyYXRpb24sIG9wdGlvbnMpOwotfQotCi1QbGF0Zm9ybVdlYlZpZXcqIFRlc3RDb250cm9s
bGVyOjpwbGF0Zm9ybUNyZWF0ZU90aGVyUGFnZShQbGF0Zm9ybVdlYlZpZXcqIHBhcmVudFZpZXcs
IFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbiwgY29uc3QgVmlld09wdGlvbnMm
IG9wdGlvbnMpCi17Ci0gICAgcmV0dXJuIG5ldyBQbGF0Zm9ybVdlYlZpZXcoY29uZmlndXJhdGlv
biwgb3B0aW9ucyk7Ci19Ci0KLVdLQ29udGV4dFJlZiBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1B
ZGp1c3RDb250ZXh0KFdLQ29udGV4dFJlZiBjb250ZXh0LCBXS0NvbnRleHRDb25maWd1cmF0aW9u
UmVmIGNvbnRleHRDb25maWd1cmF0aW9uKQotewotICAgIHJldHVybiBjb250ZXh0OwotfQotCi12
b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybVJlc2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMo
KQotewotCi19Ci0jZW5kaWYKLQogfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RDb250cm9sbGVyLmgKaW5kZXggZGQ3ZjgwOGQ1MDY0ZjgwYWUxYTRhYjhlMWNlZGM0
NmE5MTJhNjNhNS4uMTUyYjc4YzNiNWQ0ZGUxODk0ZmUxY2NiYzlhN2RhY2E5ZDFkZTg0MyAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCisrKyBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaApAQCAtMzQsOCArMzQsNiBAQAog
I2luY2x1ZGUgPHZlY3Rvcj4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKLU9CSkNfQ0xBU1Mg
V0tXZWJWaWV3Q29uZmlndXJhdGlvbjsKLQogbmFtZXNwYWNlIFdUUiB7CiAKIGNsYXNzIFRlc3RJ
bnZvY2F0aW9uOwpAQCAtMTM0LDE3ICsxMzIsMTIgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcGxh
dGZvcm1Jbml0aWFsaXplKCk7CiAgICAgdm9pZCBwbGF0Zm9ybURlc3Ryb3koKTsKLSAgICBXS0Nv
bnRleHRSZWYgcGxhdGZvcm1BZGp1c3RDb250ZXh0KFdLQ29udGV4dFJlZiwgV0tDb250ZXh0Q29u
ZmlndXJhdGlvblJlZik7CiAgICAgdm9pZCBwbGF0Zm9ybUluaXRpYWxpemVDb250ZXh0KCk7Ci0g
ICAgdm9pZCBwbGF0Zm9ybUNyZWF0ZVdlYlZpZXcoV0tQYWdlQ29uZmlndXJhdGlvblJlZiwgY29u
c3QgVmlld09wdGlvbnMmKTsKLSAgICBzdGF0aWMgUGxhdGZvcm1XZWJWaWV3KiBwbGF0Zm9ybUNy
ZWF0ZU90aGVyUGFnZShQbGF0Zm9ybVdlYlZpZXcqIHBhcmVudFZpZXcsIFdLUGFnZUNvbmZpZ3Vy
YXRpb25SZWYsIGNvbnN0IFZpZXdPcHRpb25zJik7CiAgICAgdm9pZCBwbGF0Zm9ybVJlc2V0UHJl
ZmVyZW5jZXNUb0NvbnNpc3RlbnRWYWx1ZXMoKTsKLSAgICB2b2lkIHBsYXRmb3JtUmVzZXRTdGF0
ZVRvQ29uc2lzdGVudFZhbHVlcygpOwogICAgIHZvaWQgcGxhdGZvcm1Db25maWd1cmVWaWV3Rm9y
VGVzdChjb25zdCBUZXN0SW52b2NhdGlvbiYpOwogICAgIHZvaWQgcGxhdGZvcm1XaWxsUnVuVGVz
dChjb25zdCBUZXN0SW52b2NhdGlvbiYpOwogICAgIHZvaWQgcGxhdGZvcm1SdW5VbnRpbChib29s
JiBkb25lLCBkb3VibGUgdGltZW91dCk7CiAgICAgdm9pZCBwbGF0Zm9ybURpZENvbW1pdExvYWRG
b3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYpOwotICAgIFdLUHJlZmVyZW5jZXNSZWYgcGxh
dGZvcm1QcmVmZXJlbmNlcygpOwogICAgIHZvaWQgaW5pdGlhbGl6ZUluamVjdGVkQnVuZGxlUGF0
aCgpOwogICAgIHZvaWQgaW5pdGlhbGl6ZVRlc3RQbHVnaW5EaXJlY3RvcnkoKTsKIApkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAppbmRleCBmMTU0Yzk4MWM1Y2VmMmFm
NDE2NmY5MDJkMDhiY2YxZjBlNjQzNmI0Li43YTM2ZDQ5ZTY5ZjRlZGY4ODU0Yjk5NDZhYzZjMDlk
OTE5NDFjM2Y4IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0
aW9uLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcApA
QCAtMjY4LDEzICsyNjgsMTUgQEAgdm9pZCBUZXN0SW52b2NhdGlvbjo6ZHVtcFJlc3VsdHMoKQog
ICAgICAgICBkdW1wQXVkaW8obV9hdWRpb1Jlc3VsdC5nZXQoKSk7CiAKICAgICBpZiAobV9kdW1w
UGl4ZWxzICYmIG1fcGl4ZWxSZXN1bHQpIHsKLSAgICAgICAgbV9nb3RSZXBhaW50ID0gZmFsc2U7
Ci0gICAgICAgIFdLUGFnZUZvcmNlUmVwYWludChUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCku
bWFpbldlYlZpZXcoKS0+cGFnZSgpLCB0aGlzLCBUZXN0SW52b2NhdGlvbjo6Zm9yY2VSZXBhaW50
RG9uZUNhbGxiYWNrKTsKLSAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnJ1blVu
dGlsKG1fZ290UmVwYWludCwgVGVzdENvbnRyb2xsZXI6OnNob3J0VGltZW91dCk7Ci0gICAgICAg
IGlmICghbV9nb3RSZXBhaW50KSB7Ci0gICAgICAgICAgICBtX2Vycm9yTWVzc2FnZSA9ICJUaW1l
ZCBvdXQgd2FpdGluZyBmb3IgcHJlLXBpeGVsIGR1bXAgcmVwYWludFxuIjsKLSAgICAgICAgICAg
IG1fd2ViUHJvY2Vzc0lzVW5yZXNwb25zaXZlID0gdHJ1ZTsKLSAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgaWYgKFBsYXRmb3JtV2ViVmlldzo6d2luZG93U25hcHNob3RFbmFibGVkKCkpIHsK
KyAgICAgICAgICAgIG1fZ290UmVwYWludCA9IGZhbHNlOworICAgICAgICAgICAgV0tQYWdlRm9y
Y2VSZXBhaW50KFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5tYWluV2ViVmlldygpLT5wYWdl
KCksIHRoaXMsIFRlc3RJbnZvY2F0aW9uOjpmb3JjZVJlcGFpbnREb25lQ2FsbGJhY2spOworICAg
ICAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnJ1blVudGlsKG1fZ290UmVwYWlu
dCwgVGVzdENvbnRyb2xsZXI6OnNob3J0VGltZW91dCk7CisgICAgICAgICAgICBpZiAoIW1fZ290
UmVwYWludCkgeworICAgICAgICAgICAgICAgIG1fZXJyb3JNZXNzYWdlID0gIlRpbWVkIG91dCB3
YWl0aW5nIGZvciBwcmUtcGl4ZWwgZHVtcCByZXBhaW50XG4iOworICAgICAgICAgICAgICAgIG1f
d2ViUHJvY2Vzc0lzVW5yZXNwb25zaXZlID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICByZXR1cm47
CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgZHVtcFBpeGVsc0FuZENvbXBhcmVX
aXRoRXhwZWN0ZWQobV9waXhlbFJlc3VsdC5nZXQoKSwgbV9yZXBhaW50UmVjdHMuZ2V0KCkpOwog
ICAgIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5l
ci54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJL
aXRUZXN0UnVubmVyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZjExYzQzZDFmNDk5
ZmZhMGQ5NTFmZGEzZjAzOGExNGE2ZjA3MGY1NC4uMGVkNWEwMzE0ZWUxZDg5OThkZGNmMDc1NjM2
ZWI1MDdlMmM5NzQ4YiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRU
ZXN0UnVubmVyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQw
LDggKzQwLDYgQEAKIAkJMjlBOEZDREQxNDVGMDMzNzAwOTA0NUE2IC8qIEpTQWNjZXNzaWJpbGl0
eVRleHRNYXJrZXJSYW5nZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAyOUE4RkNFMTM0NUU3MDIxMDA2QUE1QTYgLyogSlNBY2Nlc3NpYmlsaXR5VGV4
dE1hcmtlclJhbmdlLmNwcCAqLzsgfTsKIAkJMjlBOEZDRTIxNDVGMDM3QjAwOTA0NUE2IC8qIEFj
Y2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMjlBOEZDRTExNDVGMDM3QjAwOTA0NUE2IC8qIEFjY2Vzc2li
aWxpdHlUZXh0TWFya2VyUmFuZ2UuY3BwICovOyB9OwogCQkyOUE4RkNFNTE0NUYwNDY0MDA5MDQ1
QTYgLyogQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZU1hYy5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5QThGQ0U0MTQ1RjA0NjQwMDkwNDVBNiAv
KiBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlTWFjLm1tICovOyB9OwotCQkyRENFMkNEMzFC
ODQ1MkY4MDBDN0Y4MzIgLyogVGVzdENvbnRyb2xsZXJDb2NvYS5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEQ0UyQ0QxMUI4NDUyNDUwMEM3RjgzMiAv
KiBUZXN0Q29udHJvbGxlckNvY29hLm1tICovOyB9OwotCQkyRENFMkNENDFCODQ1MzBBMDBDN0Y4
MzIgLyogVGVzdENvbnRyb2xsZXJDb2NvYS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDJEQ0UyQ0QxMUI4NDUyNDUwMEM3RjgzMiAvKiBUZXN0Q29udHJv
bGxlckNvY29hLm1tICovOyB9OwogCQkyRTM0QzkwMDE4QjY4ODA4MDAwMDY3QkIgLyogV2ViS2l0
VGVzdFJ1bm5lckluamVjdGVkQnVuZGxlLmJ1bmRsZSBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMyNTE4NjIxMUQxNUQ1NDAwMkVCQzAxIC8qIFdlYktp
dFRlc3RSdW5uZXJJbmplY3RlZEJ1bmRsZS5idW5kbGUgKi87IH07CiAJCTJFNjNFRDhBMTg5MUFE
N0UwMDJBN0FGQyAvKiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcklPUy5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFNjNFRDc1MTg5MUFDRTkwMDJBN0FG
QyAvKiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcklPUy5tbSAqLzsgfTsKIAkJMkU2M0VEOEIxODkx
QUQ3RTAwMkE3QUZDIC8qIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VySU9TLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkU2M0VENzcxODkxQUNFOTAwMkE3
QUZDIC8qIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VySU9TLm1tICovOyB9OwpAQCAtMTczLDcgKzE3
MSw2IEBACiAJCTI5QThGQ0UxMzQ1RTcwMjEwMDZBQTVBNiAvKiBKU0FjY2Vzc2liaWxpdHlUZXh0
TWFya2VyUmFuZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gSlNB
Y2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dl
YktpdFRlc3RSdW5uZXIvSlNBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlLmNwcDsgc291cmNl
VHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJMjlBOEZDRTEzNDVFNzAyMTAwNkFBNUE3
IC8qIEpTQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBKU0FjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2UuaDsgcGF0aCA9IERl
cml2ZWRTb3VyY2VzL1dlYktpdFRlc3RSdW5uZXIvSlNBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJh
bmdlLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTI5QThGQ0U0MTQ1
RjA0NjQwMDkwNDVBNiAvKiBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlTWFjLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQWNjZXNzaWJpbGl0eVRleHRNYXJr
ZXJSYW5nZU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMkRDRTJDRDExQjg0
NTI0NTAwQzdGODMyIC8qIFRlc3RDb250cm9sbGVyQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBUZXN0Q29udHJvbGxlckNvY29hLm1tOyBwYXRoID0gY29j
b2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MkU2M0VENzUxODkxQUNFOTAwMkE3QUZDIC8qIEFjY2Vzc2liaWxpdHlDb250cm9sbGVySU9TLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXJJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFNjNFRDc2MTg5
MUFDRTkwMDJBN0FGQyAvKiBBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFu
ZGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRTYzRUQ3NzE4OTFBQ0U5MDAy
QTdBRkMgLyogQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJJT1MubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcklPUy5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQwMCw3ICszOTcsNiBAQAogCQkJY2hpbGRyZW4g
PSAoCiAJCQkJMEZFQjkwQTIxOTA1QkM2QTAwMEZEQkYzIC8qIENyYXNoUmVwb3J0ZXJJbmZvLmgg
Ki8sCiAJCQkJMEZFQjkwQTMxOTA1QkM2QTAwMEZEQkYzIC8qIENyYXNoUmVwb3J0ZXJJbmZvLm1t
ICovLAotCQkJCTJEQ0UyQ0QxMUI4NDUyNDUwMEM3RjgzMiAvKiBUZXN0Q29udHJvbGxlckNvY29h
Lm1tICovLAogCQkJKTsKIAkJCW5hbWUgPSBjb2NvYTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7CkBAIC03OTAsNyArNzg2LDYgQEAKIAkJCQkyRTYzRUQ5NzE4OTFBREM3MDAyQTdBRkMgLyog
UGl4ZWxEdW1wU3VwcG9ydC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRTYzRUQ5ODE4OTFBREM3
MDAyQTdBRkMgLyogVGVzdENvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkU2M0VE
OTIxODkxQURBRDAwMkE3QUZDIC8qIFRlc3RDb250cm9sbGVySU9TLm1tIGluIFNvdXJjZXMgKi8s
Ci0JCQkJMkRDRTJDRDMxQjg0NTJGODAwQzdGODMyIC8qIFRlc3RDb250cm9sbGVyQ29jb2EubW0g
aW4gU291cmNlcyAqLywKIAkJCQkwRkVCOTBBODE5MDVDNTM3MDAwRkRCRjMgLyogQ3Jhc2hSZXBv
cnRlckluZm8ubW0gaW4gU291cmNlcyAqLywKIAkJCQkyRTYzRUQ5OTE4OTFBREM3MDAyQTdBRkMg
LyogVGVzdEludm9jYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkU2M0VEQTUxODkxQkQ4
RTAwMkE3QUZDIC8qIFRlc3RJbnZvY2F0aW9uQ0cuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC04MTAs
NyArODA1LDYgQEAKIAkJCQlFMUM2NDJDMzE3Q0JDQzczMDBENjZBM0MgLyogUG9zZUFzQ2xhc3Mu
bW0gaW4gU291cmNlcyAqLywKIAkJCQlFMTMyQUEzRDE3Q0U3NzZGMDA2MTFERjAgLyogV2ViS2l0
VGVzdFJ1bm5lckV2ZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTY3MEI4MjgxMzg2RkNBNTAw
MkVCMzU1IC8qIEV2ZW50U2VuZGVyUHJveHkubW0gaW4gU291cmNlcyAqLywKLQkJCQkyRENFMkNE
NDFCODQ1MzBBMDBDN0Y4MzIgLyogVGVzdENvbnRyb2xsZXJDb2NvYS5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTI2RDc1OEU3MTYwQkVDREQwMDI2ODQ3MiAvKiBHZW9sb2NhdGlvblByb3ZpZGVyTW9j
ay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzc5MzQwMDExOEY3Qzg0MDA1RUE4RTIgLyogbWFp
bi5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUzMjJGQjQ2MTNGREEwRUEwMDQxQUJDQyAvKiBQaXhl
bER1bXBTdXBwb3J0LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBhZTJkZjUwYjI0ZTRmOTdjOWJkOTFjMzY1ZjM3ODhjODUxYjhjMTA2Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbQorKysgL2Rldi9udWxsCkBAIC0x
LDExMCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2ltcG9ydCAiY29uZmlnLmgiCi0jaW1wb3J0ICJU
ZXN0Q29udHJvbGxlci5oIgotCi0jaW1wb3J0ICJDcmFzaFJlcG9ydGVySW5mby5oIgotI2ltcG9y
dCAiUGxhdGZvcm1XZWJWaWV3LmgiCi0jaW1wb3J0ICJUZXN0SW52b2NhdGlvbi5oIgotI2ltcG9y
dCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+Ci0jaW1wb3J0IDxXZWJLaXQvV0tDb250ZXh0Q29u
ZmlndXJhdGlvblJlZi5oPgotI2ltcG9ydCA8V2ViS2l0L1dLUHJlZmVyZW5jZXNSZWZQcml2YXRl
Lmg+Ci0jaW1wb3J0IDxXZWJLaXQvV0tQcm9jZXNzUG9vbFByaXZhdGUuaD4KLSNpbXBvcnQgPFdl
YktpdC9XS1N0cmluZ0NGLmg+Ci0jaW1wb3J0IDxXZWJLaXQvV0tVc2VyQ29udGVudENvbnRyb2xs
ZXJQcml2YXRlLmg+Ci0jaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3Lmg+Ci0jaW1wb3J0IDxXZWJL
aXQvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5oPgotI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld0Nv
bmZpZ3VyYXRpb25Qcml2YXRlLmg+Ci0jaW1wb3J0IDxXZWJLaXQvX1dLUHJvY2Vzc1Bvb2xDb25m
aWd1cmF0aW9uLmg+Ci0jaW1wb3J0IDxXZWJLaXQvX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9y
ZS5oPgotI2ltcG9ydCA8V2ViS2l0L19XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmVQcml2YXRl
Lmg+Ci0jaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgotCi1uYW1lc3BhY2UgV1RSIHsKLQotc3Rh
dGljIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKmdsb2JhbFdlYlZpZXdDb25maWd1cmF0aW9uOwot
Ci12b2lkIGluaXRpYWxpemVXZWJWaWV3Q29uZmlndXJhdGlvbihjb25zdCBjaGFyKiBsaWJyYXJ5
UGF0aCwgV0tTdHJpbmdSZWYgaW5qZWN0ZWRCdW5kbGVQYXRoLCBXS0NvbnRleHRSZWYgY29udGV4
dCwgV0tDb250ZXh0Q29uZmlndXJhdGlvblJlZiBjb250ZXh0Q29uZmlndXJhdGlvbikKLXsKLSAg
ICBBU1NFUlQoIWdsb2JhbFdlYlZpZXdDb25maWd1cmF0aW9uKTsKLSAgICBnbG9iYWxXZWJWaWV3
Q29uZmlndXJhdGlvbiA9IFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF07Ci0K
LSAgICBnbG9iYWxXZWJWaWV3Q29uZmlndXJhdGlvbi5wcm9jZXNzUG9vbCA9IFtbV0tQcm9jZXNz
UG9vbCBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjooX1dLUHJvY2Vzc1Bvb2xDb25maWd1
cmF0aW9uICopY29udGV4dENvbmZpZ3VyYXRpb25dOwotICAgIGdsb2JhbFdlYlZpZXdDb25maWd1
cmF0aW9uLndlYnNpdGVEYXRhU3RvcmUgPSAoV0tXZWJzaXRlRGF0YVN0b3JlICopV0tDb250ZXh0
R2V0V2Vic2l0ZURhdGFTdG9yZShjb250ZXh0KTsKLX0KLQotV0tQcmVmZXJlbmNlc1JlZiBUZXN0
Q29udHJvbGxlcjo6cGxhdGZvcm1QcmVmZXJlbmNlcygpCi17Ci0gICAgcmV0dXJuIChXS1ByZWZl
cmVuY2VzUmVmKWdsb2JhbFdlYlZpZXdDb25maWd1cmF0aW9uLnByZWZlcmVuY2VzOwotfQotCi12
b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUNyZWF0ZVdlYlZpZXcoV0tQYWdlQ29uZmlndXJh
dGlvblJlZiwgY29uc3QgVmlld09wdGlvbnMmIG9wdGlvbnMpCi17Ci0gICAgbV9tYWluV2ViVmll
dyA9IHN0ZDo6bWFrZV91bmlxdWU8UGxhdGZvcm1XZWJWaWV3PihnbG9iYWxXZWJWaWV3Q29uZmln
dXJhdGlvbiwgb3B0aW9ucyk7Ci19Ci0KLVBsYXRmb3JtV2ViVmlldyogVGVzdENvbnRyb2xsZXI6
OnBsYXRmb3JtQ3JlYXRlT3RoZXJQYWdlKFBsYXRmb3JtV2ViVmlldyogcGFyZW50VmlldywgV0tQ
YWdlQ29uZmlndXJhdGlvblJlZiwgY29uc3QgVmlld09wdGlvbnMmIG9wdGlvbnMpCi17Ci0gICAg
V0tXZWJWaWV3Q29uZmlndXJhdGlvbiAqbmV3Q29uZmlndXJhdGlvbiA9IFtbZ2xvYmFsV2ViVmll
d0NvbmZpZ3VyYXRpb24gY29weV0gYXV0b3JlbGVhc2VdOwotICAgIG5ld0NvbmZpZ3VyYXRpb24u
X3JlbGF0ZWRXZWJWaWV3ID0gc3RhdGljX2Nhc3Q8V0tXZWJWaWV3Kj4ocGFyZW50Vmlldy0+cGxh
dGZvcm1WaWV3KCkpOwotICAgIHJldHVybiBuZXcgUGxhdGZvcm1XZWJWaWV3KG5ld0NvbmZpZ3Vy
YXRpb24sIG9wdGlvbnMpOwotfQotCi1XS0NvbnRleHRSZWYgVGVzdENvbnRyb2xsZXI6OnBsYXRm
b3JtQWRqdXN0Q29udGV4dChXS0NvbnRleHRSZWYgY29udGV4dCwgV0tDb250ZXh0Q29uZmlndXJh
dGlvblJlZiBjb250ZXh0Q29uZmlndXJhdGlvbikKLXsKLSAgICBpbml0aWFsaXplV2ViVmlld0Nv
bmZpZ3VyYXRpb24obGlicmFyeVBhdGhGb3JUZXN0aW5nKCksIGluamVjdGVkQnVuZGxlUGF0aCgp
LCBjb250ZXh0LCBjb250ZXh0Q29uZmlndXJhdGlvbik7Ci0gICAgcmV0dXJuIChXS0NvbnRleHRS
ZWYpZ2xvYmFsV2ViVmlld0NvbmZpZ3VyYXRpb24ucHJvY2Vzc1Bvb2w7Ci19Ci0KLXZvaWQgVGVz
dENvbnRyb2xsZXI6OnBsYXRmb3JtUnVuVW50aWwoYm9vbCYgZG9uZSwgZG91YmxlIHRpbWVvdXQp
Ci17Ci0gICAgTlNEYXRlICplbmREYXRlID0gKHRpbWVvdXQgPiAwKSA/IFtOU0RhdGUgZGF0ZVdp
dGhUaW1lSW50ZXJ2YWxTaW5jZU5vdzp0aW1lb3V0XSA6IFtOU0RhdGUgZGlzdGFudEZ1dHVyZV07
Ci0KLSAgICB3aGlsZSAoIWRvbmUgJiYgW2VuZERhdGUgY29tcGFyZTpbTlNEYXRlIGRhdGVdXSA9
PSBOU09yZGVyZWREZXNjZW5kaW5nKQotICAgICAgICBbW05TUnVuTG9vcCBjdXJyZW50UnVuTG9v
cF0gcnVuTW9kZTpOU0RlZmF1bHRSdW5Mb29wTW9kZSBiZWZvcmVEYXRlOmVuZERhdGVdOwotfQot
Ci12b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybVJlc2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1
ZXMoKQotewotI2lmIFdLX0FQSV9FTkFCTEVECi0gICAgX19ibG9jayBib29sIGRvbmVSZW1vdmlu
ZyA9IGZhbHNlOwotICAgIFtbX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZSBkZWZhdWx0U3Rv
cmVdIHJlbW92ZUNvbnRlbnRFeHRlbnNpb25Gb3JJZGVudGlmaWVyOkAiVGVzdENvbnRlbnRFeHRl
bnNpb25zIiBjb21wbGV0aW9uSGFuZGxlcjpeKE5TRXJyb3IgKmVycm9yKSB7Ci0gICAgICAgIGRv
bmVSZW1vdmluZyA9IHRydWU7Ci0gICAgfV07Ci0gICAgcGxhdGZvcm1SdW5VbnRpbChkb25lUmVt
b3ZpbmcsIDApOwotICAgIFtbX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZSBkZWZhdWx0U3Rv
cmVdIF9yZW1vdmVBbGxDb250ZW50RXh0ZW5zaW9uc107Ci0jZW5kaWYKLQotICAgIGlmIChQbGF0
Zm9ybVdlYlZpZXcqIHdlYlZpZXcgPSBtYWluV2ViVmlldygpKQotICAgICAgICBbd2ViVmlldy0+
cGxhdGZvcm1WaWV3KCkuY29uZmlndXJhdGlvbi51c2VyQ29udGVudENvbnRyb2xsZXIgX3JlbW92
ZUFsbFVzZXJDb250ZW50RmlsdGVyc107Ci19Ci0KLXZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRm
b3JtV2lsbFJ1blRlc3QoY29uc3QgVGVzdEludm9jYXRpb24mIHRlc3RJbnZvY2F0aW9uKQotewot
ICAgIHNldENyYXNoUmVwb3J0QXBwbGljYXRpb25TcGVjaWZpY0luZm9ybWF0aW9uVG9VUkwodGVz
dEludm9jYXRpb24udXJsKCkpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZWZsL1Rlc3RDb250cm9sbGVyRWZsLmNwcCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvZWZsL1Rlc3RDb250cm9sbGVyRWZsLmNwcAppbmRleCA2OTNlYTc1
Yjk0ZjljNDllYTNiZTk5OWJkNGJkZGFiNDlkYTM3MjNhLi45MWM2MThhYzk2MGNhNzVlZTQ5YTdk
YTMyNjdkOTA4Y2RmOTNiNGQ1IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2Vm
bC9UZXN0Q29udHJvbGxlckVmbC5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9lZmwv
VGVzdENvbnRyb2xsZXJFZmwuY3BwCkBAIC02NCw2ICs2NCwxMCBAQCB2b2lkIFRlc3RDb250cm9s
bGVyOjpwbGF0Zm9ybURlc3Ryb3koKQogewogfQogCit2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0
Zm9ybVdpbGxSdW5UZXN0KGNvbnN0IFRlc3RJbnZvY2F0aW9uJikKK3sKK30KKwogdm9pZCBUZXN0
Q29udHJvbGxlcjo6cGxhdGZvcm1SdW5VbnRpbChib29sJiBjb25kaXRpb24sIGRvdWJsZSB0aW1l
b3V0KQogewogICAgIGlmICh0aW1lb3V0IDw9IDApIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvZ3RrL1Rlc3RDb250cm9sbGVyR3RrLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvZ3RrL1Rlc3RDb250cm9sbGVyR3RrLmNwcAppbmRleCBhYWY3ODAxZmRhZWIzNjE3ODQw
NzdjN2ZlZjc0YzQzZDA5NjJiZTUzLi42NjU1MzBlMjVmNWIwNDJhMjU2NmE1YTJhN2FiNGM5ZmQy
NDZkYjExIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2d0ay9UZXN0Q29udHJv
bGxlckd0ay5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9ndGsvVGVzdENvbnRyb2xs
ZXJHdGsuY3BwCkBAIC01Miw2ICs1MiwxMCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9y
bURlc3Ryb3koKQogewogfQogCit2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybVdpbGxSdW5U
ZXN0KGNvbnN0IFRlc3RJbnZvY2F0aW9uJikKK3sKK30KKwogdm9pZCBUZXN0Q29udHJvbGxlcjo6
cGxhdGZvcm1SdW5VbnRpbChib29sJiwgZG91YmxlIHRpbWVvdXQpCiB7CiAgICAgaWYgKHRpbWVv
dXQgPiAwKSB7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9QbGF0Zm9y
bVdlYlZpZXdJT1MubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9QbGF0Zm9ybVdlYlZp
ZXdJT1MubW0KaW5kZXggMzJkM2RlYzNhMmZmMmI3MzY3NjY2NDg4YTg0OWE0N2E5NGQyMjA5MC4u
NjA4ZjlmNGYxZjViOTEzMWEyOGRjNzJhZTljYmNmMjQ1MmVhYjhkNCAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvUGxhdGZvcm1XZWJWaWV3SU9TLm1tCisrKyBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvaW9zL1BsYXRmb3JtV2ViVmlld0lPUy5tbQpAQCAtMjgsMTUgKzI4
LDEwIEBACiAjaW5jbHVkZSAiVGVzdENvbnRyb2xsZXIuaCIKIAogI2ltcG9ydCA8V2ViS2l0L1dL
SW1hZ2VDRy5oPgorI2ltcG9ydCA8V2ViS2l0L1dLVmlld1ByaXZhdGUuaD4KICNpbXBvcnQgPFdl
YktpdC9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oPgotI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld0Nv
bmZpZ3VyYXRpb24uaD4KLSNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRlLmg+CiAjaW1w
b3J0IDx3dGYvUmV0YWluUHRyLmg+CiAKLUBpbnRlcmZhY2UgV0tXZWJWaWV3IChEZXRhaWxzKQot
LSAoV0tQYWdlUmVmKV9wYWdlRm9yVGVzdGluZzsKLUBlbmQKLQogQGludGVyZmFjZSBXZWJLaXRU
ZXN0UnVubmVyV2luZG93IDogVUlXaW5kb3cgewogICAgIFdUUjo6UGxhdGZvcm1XZWJWaWV3KiBf
cGxhdGZvcm1XZWJWaWV3OwogICAgIENHUG9pbnQgX2Zha2VPcmlnaW47CkBAIC00NSw2ICs0MCwz
MyBAQAogQHByb3BlcnR5IChub25hdG9taWMsIGFzc2lnbikgV1RSOjpQbGF0Zm9ybVdlYlZpZXcq
IHBsYXRmb3JtV2ViVmlldzsKIEBlbmQKIAorQGludGVyZmFjZSBUZXN0UnVubmVyV0tWaWV3IDog
V0tWaWV3IHsKKyAgICBCT09MIF91c2VUaWxlZERyYXdpbmc7Cit9CisKK0Bwcm9wZXJ0eSAobm9u
YXRvbWljLCBhc3NpZ24pIEJPT0wgdXNlVGlsZWREcmF3aW5nOworQGVuZAorCitAaW1wbGVtZW50
YXRpb24gVGVzdFJ1bm5lcldLVmlldworCitAc3ludGhlc2l6ZSB1c2VUaWxlZERyYXdpbmcgPSBf
dXNlVGlsZWREcmF3aW5nOworCistIChpZClpbml0V2l0aEZyYW1lOihDR1JlY3QpZnJhbWUgY29u
ZmlndXJhdGlvblJlZjooV0tQYWdlQ29uZmlndXJhdGlvblJlZiljb25maWd1cmF0aW9uIHVzZVRp
bGVkRHJhd2luZzooQk9PTCl1c2VUaWxlZERyYXdpbmcKK3sKKyAgICBpZiAoIShzZWxmID0gW3N1
cGVyIGluaXRXaXRoRnJhbWU6ZnJhbWUgY29uZmlndXJhdGlvblJlZjpjb25maWd1cmF0aW9uXSkp
CisgICAgICAgIHJldHVybiBuaWw7CisKKyAgICBfdXNlVGlsZWREcmF3aW5nID0gdXNlVGlsZWRE
cmF3aW5nOworICAgIHJldHVybiBzZWxmOworfQorCistIChCT09MKV9zaG91bGRVc2VUaWxlZERy
YXdpbmdBcmVhCit7CisgICAgcmV0dXJuIF91c2VUaWxlZERyYXdpbmc7Cit9CisKK0BlbmQKKwog
QGltcGxlbWVudGF0aW9uIFdlYktpdFRlc3RSdW5uZXJXaW5kb3cKIEBzeW50aGVzaXplIHBsYXRm
b3JtV2ViVmlldyA9IF9wbGF0Zm9ybVdlYlZpZXc7CiAKQEAgLTEwMCwxMiArMTIyLDE3IEBACiAK
IG5hbWVzcGFjZSBXVFIgewogCi1QbGF0Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyhXS1dl
YlZpZXdDb25maWd1cmF0aW9uKiBjb25maWd1cmF0aW9uLCBjb25zdCBWaWV3T3B0aW9ucyYgb3B0
aW9ucykKK1BsYXRmb3JtV2ViVmlldzo6UGxhdGZvcm1XZWJWaWV3KFdLUGFnZUNvbmZpZ3VyYXRp
b25SZWYgY29uZmlndXJhdGlvbiwgY29uc3QgVmlld09wdGlvbnMmIG9wdGlvbnMpCiAgICAgOiBt
X3dpbmRvd0lzS2V5KHRydWUpCiAgICAgLCBtX29wdGlvbnMob3B0aW9ucykKIHsKICAgICBDR1Jl
Y3QgcmVjdCA9IENHUmVjdE1ha2UoMCwgMCwgVGVzdENvbnRyb2xsZXI6OnZpZXdXaWR0aCwgVGVz
dENvbnRyb2xsZXI6OnZpZXdIZWlnaHQpOwotICAgIG1fdmlldyA9IFtbV0tXZWJWaWV3IGFsbG9j
XSBpbml0V2l0aEZyYW1lOnJlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXTsKKyAgICBt
X3ZpZXcgPSBbW1Rlc3RSdW5uZXJXS1ZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6cmVjdCBjb25m
aWd1cmF0aW9uUmVmOmNvbmZpZ3VyYXRpb24gdXNlVGlsZWREcmF3aW5nOm1fb3B0aW9ucy51c2VU
aWxlZERyYXdpbmddOworCisgICAgV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwUmVmID0gV0tQYWdl
Q29uZmlndXJhdGlvbkdldFBhZ2VHcm91cChjb25maWd1cmF0aW9uKTsKKworICAgIFdLUHJlZmVy
ZW5jZXNTZXRDb21wb3NpdGluZ0JvcmRlcnNWaXNpYmxlKFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5j
ZXMocGFnZUdyb3VwUmVmKSwgWUVTKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0Q29tcG9zaXRpbmdS
ZXBhaW50Q291bnRlcnNWaXNpYmxlKFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMocGFnZUdyb3Vw
UmVmKSwgWUVTKTsKIAogICAgIENHUmVjdCB3aW5kb3dSZWN0ID0gcmVjdDsKICAgICBtX3dpbmRv
dyA9IFtbV2ViS2l0VGVzdFJ1bm5lcldpbmRvdyBhbGxvY10gaW5pdFdpdGhGcmFtZTp3aW5kb3dS
ZWN0XTsKQEAgLTEyNiwxOCArMTUzLDE5IEBAIHZvaWQgUGxhdGZvcm1XZWJWaWV3OjpyZXNpemVU
byh1bnNpZ25lZCB3aWR0aCwgdW5zaWduZWQgaGVpZ2h0KQogUGxhdGZvcm1XZWJWaWV3Ojp+UGxh
dGZvcm1XZWJWaWV3KCkKIHsKICAgICBtX3dpbmRvdy5wbGF0Zm9ybVdlYlZpZXcgPSAwOworLy8g
ICAgW21fd2luZG93IGNsb3NlXTsKICAgICBbbV92aWV3IHJlbGVhc2VdOwogICAgIFttX3dpbmRv
dyByZWxlYXNlXTsKIH0KIAogV0tQYWdlUmVmIFBsYXRmb3JtV2ViVmlldzo6cGFnZSgpCiB7Ci0g
ICAgcmV0dXJuIFttX3ZpZXcgX3BhZ2VGb3JUZXN0aW5nXTsKKyAgICByZXR1cm4gW21fdmlldyBw
YWdlUmVmXTsKIH0KIAogdm9pZCBQbGF0Zm9ybVdlYlZpZXc6OmZvY3VzKCkKIHsKLSAgICBtYWtl
V2ViVmlld0ZpcnN0UmVzcG9uZGVyKCk7CisvLyAgICBbbV93aW5kb3cgbWFrZUZpcnN0UmVzcG9u
ZGVyOm1fdmlld107IC8vIEZJWE1FOiBpT1MgZXF1aXZhbGVudD8KICAgICBzZXRXaW5kb3dJc0tl
eSh0cnVlKTsKIH0KIApAQCAtMTU2LDcgKzE4NCw3IEBAIFdLUmVjdCBQbGF0Zm9ybVdlYlZpZXc6
OndpbmRvd0ZyYW1lKCkKIHZvaWQgUGxhdGZvcm1XZWJWaWV3OjpzZXRXaW5kb3dGcmFtZShXS1Jl
Y3QgZnJhbWUpCiB7CiAgICAgW21fd2luZG93IHNldEZyYW1lOkNHUmVjdE1ha2UoZnJhbWUub3Jp
Z2luLngsIGZyYW1lLm9yaWdpbi55LCBmcmFtZS5zaXplLndpZHRoLCBmcmFtZS5zaXplLmhlaWdo
dCldOwotICAgIFtwbGF0Zm9ybVZpZXcoKSBzZXRGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIGZyYW1l
LnNpemUud2lkdGgsIGZyYW1lLnNpemUuaGVpZ2h0KV07CisgICAgW21fdmlldyBzZXRGcmFtZTpD
R1JlY3RNYWtlKDAsIDAsIGZyYW1lLnNpemUud2lkdGgsIGZyYW1lLnNpemUuaGVpZ2h0KV07CiB9
CiAKIHZvaWQgUGxhdGZvcm1XZWJWaWV3OjpkaWRJbml0aWFsaXplQ2xpZW50cygpCkBAIC0xODcs
OCArMjE1LDcgQEAgdm9pZCBQbGF0Zm9ybVdlYlZpZXc6OnJlbW92ZUNocm9tZUlucHV0RmllbGQo
KQogCiB2b2lkIFBsYXRmb3JtV2ViVmlldzo6bWFrZVdlYlZpZXdGaXJzdFJlc3BvbmRlcigpCiB7
Ci0gICAgLy8gRklYTUU6IGlPUyBlcXVpdmFsZW50PwotICAgIC8vIFttX3dpbmRvdyBtYWtlRmly
c3RSZXNwb25kZXI6bV92aWV3XTsKKy8vICAgIFttX3dpbmRvdyBtYWtlRmlyc3RSZXNwb25kZXI6
bV92aWV3XTsKIH0KIAogdm9pZCBQbGF0Zm9ybVdlYlZpZXc6OmNoYW5nZVdpbmRvd1NjYWxlSWZO
ZWVkZWQoZmxvYXQpCkBAIC0xOTgsMTIgKzIyNSwxNCBAQCB2b2lkIFBsYXRmb3JtV2ViVmlldzo6
Y2hhbmdlV2luZG93U2NhbGVJZk5lZWRlZChmbG9hdCkKIAogV0tSZXRhaW5QdHI8V0tJbWFnZVJl
Zj4gUGxhdGZvcm1XZWJWaWV3Ojp3aW5kb3dTbmFwc2hvdEltYWdlKCkKIHsKLSAgICAvLyBGSVhN
RTogTmVlZCBhbiBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzLCBvciB3ZSdyZSBkZXBlbmRpbmcgb24g
c29mdHdhcmUgcGFpbnRzIQotICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiAwOyAvLyBG
SVhNRSBmb3IgaU9TPwogfQogCiBib29sIFBsYXRmb3JtV2ViVmlldzo6dmlld1N1cHBvcnRzT3B0
aW9ucyhjb25zdCBWaWV3T3B0aW9ucyYgb3B0aW9ucykgY29uc3QKIHsKKyAgICBpZiAobV9vcHRp
b25zLnVzZVRpbGVkRHJhd2luZyAhPSBvcHRpb25zLnVzZVRpbGVkRHJhd2luZykKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvaW9zL1Rlc3RDb250cm9sbGVySU9TLm1tIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9pb3MvVGVzdENvbnRyb2xsZXJJT1MubW0KaW5kZXggNjQ1M2Q0MjJhZmU4MjUw
ZmVkNDRkZTAzMDUyMmJmN2FmMzZjMmFhNC4uMmFjMzg0Yzc3OTA0M2EwNjc2ODU4ZmYyYThkMzYx
ZjVjNmI1Zjg3YyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVGVzdENv
bnRyb2xsZXJJT1MubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVGVzdENvbnRy
b2xsZXJJT1MubW0KQEAgLTI2LDE2ICsyNiwxMiBAQAogI2ltcG9ydCAiY29uZmlnLmgiCiAjaW1w
b3J0ICJUZXN0Q29udHJvbGxlci5oIgogCisjaW1wb3J0ICJDcmFzaFJlcG9ydGVySW5mby5oIgor
I2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CiAjaW1wb3J0ICJQbGF0Zm9ybVdlYlZp
ZXcuaCIKICNpbXBvcnQgIlRlc3RJbnZvY2F0aW9uLmgiCi0jaW1wb3J0IDxGb3VuZGF0aW9uL0Zv
dW5kYXRpb24uaD4KICNpbXBvcnQgPFdlYktpdC9XS1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oPgot
I2ltcG9ydCA8V2ViS2l0L1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQv
V0tTdHJpbmdDRi5oPgotI2ltcG9ydCA8V2ViS2l0L1dLVXNlckNvbnRlbnRDb250cm9sbGVyUHJp
dmF0ZS5oPgotI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlldy5oPgotI2ltcG9ydCA8V2ViS2l0L1dL
V2ViVmlld0NvbmZpZ3VyYXRpb24uaD4KLSNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdDb25maWd1
cmF0aW9uUHJpdmF0ZS5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KIAogbmFtZXNwYWNl
IFdUUiB7CkBAIC03NCw2ICs3MCwxMSBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjppbml0aWFsaXpl
VGVzdFBsdWdpbkRpcmVjdG9yeSgpCiAgICAgbV90ZXN0UGx1Z2luRGlyZWN0b3J5LmFkb3B0KFdL
U3RyaW5nQ3JlYXRlV2l0aENGU3RyaW5nKChDRlN0cmluZ1JlZilbW05TQnVuZGxlIG1haW5CdW5k
bGVdIGJ1bmRsZVBhdGhdKSk7CiB9CiAKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtV2ls
bFJ1blRlc3QoY29uc3QgVGVzdEludm9jYXRpb24mIHRlc3RJbnZvY2F0aW9uKQoreworICAgIHNl
dENyYXNoUmVwb3J0QXBwbGljYXRpb25TcGVjaWZpY0luZm9ybWF0aW9uVG9VUkwodGVzdEludm9j
YXRpb24udXJsKCkpOworfQorCiBzdGF0aWMgYm9vbCBzaG91bGRNYWtlVmlld3BvcnRGbGV4aWJs
ZShjb25zdCBUZXN0SW52b2NhdGlvbiYgdGVzdCkKIHsKICAgICByZXR1cm4gdGVzdC51cmxDb250
YWlucygidmlld3BvcnQvIik7CkBAIC04MSw3ICs4Miw3IEBAIHN0YXRpYyBib29sIHNob3VsZE1h
a2VWaWV3cG9ydEZsZXhpYmxlKGNvbnN0IFRlc3RJbnZvY2F0aW9uJiB0ZXN0KQogCiB2b2lkIFRl
c3RDb250cm9sbGVyOjpwbGF0Zm9ybVJlc2V0UHJlZmVyZW5jZXNUb0NvbnNpc3RlbnRWYWx1ZXMo
KQogewotICAgIFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMgPSBwbGF0Zm9ybVByZWZlcmVu
Y2VzKCk7CisgICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyA9IFdLUGFnZUdyb3VwR2V0
UHJlZmVyZW5jZXMobV9wYWdlR3JvdXAuZ2V0KCkpOwogICAgIC8vIE5vdGUgdGhhdCBXS1ByZWZl
cmVuY2VzU2V0VGV4dEF1dG9zaXppbmdFbmFibGVkIGhhcyBubyBlZmZlY3Qgb24gaU9TLgogICAg
IFdLUHJlZmVyZW5jZXNTZXRNaW5pbXVtWm9vbUZvbnRTaXplKHByZWZlcmVuY2VzLCAwKTsKIH0K
QEAgLTEwMSw2ICsxMDIsMTQgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6dXBkYXRlUGxhdGZvcm1T
cGVjaWZpY1ZpZXdPcHRpb25zRm9yVGVzdChWaWV3T3B0aW9ucyYsIGNvbnMKIHsKIH0KIAordm9p
ZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1SdW5VbnRpbChib29sJiBkb25lLCBkb3VibGUgdGlt
ZW91dCkKK3sKKyAgICBOU0RhdGUgKmVuZERhdGUgPSAodGltZW91dCA+IDApID8gW05TRGF0ZSBk
YXRlV2l0aFRpbWVJbnRlcnZhbFNpbmNlTm93OnRpbWVvdXRdIDogW05TRGF0ZSBkaXN0YW50RnV0
dXJlXTsKKworICAgIHdoaWxlICghZG9uZSAmJiBbZW5kRGF0ZSBjb21wYXJlOltOU0RhdGUgZGF0
ZV1dID09IE5TT3JkZXJlZERlc2NlbmRpbmcpCisgICAgICAgIFtbTlNSdW5Mb29wIGN1cnJlbnRS
dW5Mb29wXSBydW5Nb2RlOk5TRGVmYXVsdFJ1bkxvb3BNb2RlIGJlZm9yZURhdGU6ZW5kRGF0ZV07
Cit9CisKIHZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtSW5pdGlhbGl6ZUNvbnRleHQoKQog
ewogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvRXZlbnRTZW5kZXJQ
cm94eS5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL0V2ZW50U2VuZGVyUHJveHkubW0K
aW5kZXggNmIxYjc3Yjg2YmMyMzU4ZGRiY2QyOGNhMTk3MTMzOTkxMjc5NjkzOC4uYWIwZGY4NGE4
NzA5OWJlNTFmMTVmZDA5ZmM3ZDY4MzI0OWJlNDQ5NyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9tYWMvRXZlbnRTZW5kZXJQcm94eS5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL21hYy9FdmVudFNlbmRlclByb3h5Lm1tCkBAIC0zMyw3ICszMyw2IEBACiAjaW1wb3J0
IDxDYXJib24vQ2FyYm9uLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tTdHJpbmcuaD4KICNpbXBvcnQg
PFdlYktpdC9XS1BhZ2VQcml2YXRlLmg+Ci0jaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3Lmg+CiAj
aW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAKIEBpbnRlcmZhY2UgTlNBcHBsaWNhdGlvbiAoRGV0
YWlscykKQEAgLTI2OSwxNyArMjY4LDcgQEAgdm9pZCBFdmVudFNlbmRlclByb3h5Ojptb3VzZVVw
KHVuc2lnbmVkIGJ1dHRvbk51bWJlciwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMKICAgICAv
LyBGSVhNRTogU2lsbHkgaGFjayB0byB0ZWFjaCBXS1RSIHRvIHJlc3BlY3QgY2FwdHVyaW5nIG1v
dXNlIGV2ZW50cyBvdXRzaWRlIHRoZSBXS1ZpZXcuCiAgICAgLy8gVGhlIHJpZ2h0IHNvbHV0aW9u
IGlzIGp1c3QgdG8gdXNlIE5TQXBwbGljYXRpb24ncyBidWlsdC1pbiBldmVudCBzZW5kaW5nIG1l
dGhvZHMsIAogICAgIC8vIGluc3RlYWQgb2Ygcm9sbGluZyBvdXIgb3duIGFsZ29yaXRobSBmb3Ig
c2VsZWN0aW5nIGFuIGV2ZW50IHRhcmdldC4KLSAgICAvLyBGSVhNRTogVGhpcyBpcyBldmVuIHdv
cnNlIG5vdywgYmVjYXVzZSB3ZSBuZWVkIHRvIGhpdCB0aGUgV0tXZWJWaWV3J3MgaW5uZXIgV0tW
aWV3Ci0gICAgLy8gd2hlbiB1c2luZyB0aGUgbW9kZXJuIEFQSSwgc28gdGhlIGxldmVsIG9mIGZh
a2VyeSBhbmQgaG9ycm9yIGluY3JlYXNlcy4KLSAgICBpZiAoIXRhcmdldFZpZXcpIHsKLSAgICAg
ICAgdGFyZ2V0VmlldyA9IG1fdGVzdENvbnRyb2xsZXItPm1haW5XZWJWaWV3KCktPnBsYXRmb3Jt
VmlldygpOwotICAgICAgICBmb3IgKE5TVmlldyAqd2tXZWJWaWV3Q2hpbGQgaW4gdGFyZ2V0Vmll
dy5zdWJ2aWV3cykgewotICAgICAgICAgICAgaWYgKFt3a1dlYlZpZXdDaGlsZCBpc0tpbmRPZkNs
YXNzOltXS1ZpZXcgY2xhc3NdXSkgewotICAgICAgICAgICAgICAgIHRhcmdldFZpZXcgPSB3a1dl
YlZpZXdDaGlsZDsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgfQotICAgIH0KKyAgICB0YXJnZXRWaWV3ID0gdGFyZ2V0VmlldyA/IHRhcmdldFZpZXcgOiBt
X3Rlc3RDb250cm9sbGVyLT5tYWluV2ViVmlldygpLT5wbGF0Zm9ybVZpZXcoKTsKICAgICBBU1NF
UlQodGFyZ2V0Vmlldyk7CiAgICAgW05TQXBwIF9zZXRDdXJyZW50RXZlbnQ6ZXZlbnRdOwogICAg
IFt0YXJnZXRWaWV3IG1vdXNlVXA6ZXZlbnRdOwpAQCAtNDEyLDI3ICs0MDEsMjggQEAgdm9pZCBF
dmVudFNlbmRlclByb3h5Ojptb3VzZUZvcmNlQ2hhbmdlZChmbG9hdCkKIHZvaWQgRXZlbnRTZW5k
ZXJQcm94eTo6bW91c2VNb3ZlVG8oZG91YmxlIHgsIGRvdWJsZSB5KQogewogICAgIE5TVmlldyAq
dmlldyA9IG1fdGVzdENvbnRyb2xsZXItPm1haW5XZWJWaWV3KCktPnBsYXRmb3JtVmlldygpOwot
ICAgIE5TUG9pbnQgcG9zaXRpb24gPSBbdmlldyBjb252ZXJ0UG9pbnQ6TlNNYWtlUG9pbnQoeCwg
dmlldy5mcmFtZS5zaXplLmhlaWdodCAtIHkpIHRvVmlldzpuaWxdOworICAgIE5TUG9pbnQgcG9z
aXRpb24gPSBbdmlldyBjb252ZXJ0UG9pbnQ6TlNNYWtlUG9pbnQoeCwgeSkgdG9WaWV3Om5pbF07
CiAgICAgbV9wb3NpdGlvbi54ID0gcG9zaXRpb24ueDsKICAgICBtX3Bvc2l0aW9uLnkgPSBwb3Np
dGlvbi55OwogICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBl
OihtX2xlZnRNb3VzZUJ1dHRvbkRvd24gPyBOU0xlZnRNb3VzZURyYWdnZWQgOiBOU01vdXNlTW92
ZWQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246cG9z
aXRpb24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJGbGFnczow
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOmFic29s
dXRlVGltZUZvckV2ZW50VGltZShjdXJyZW50RXZlbnRUaW1lKCkpCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB3aW5kb3dOdW1iZXI6dmlldy53aW5kb3cud2luZG93TnVtYmVy
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3dOdW1iZXI6W1t2aWV3
IHdpbmRvd10gd2luZG93TnVtYmVyXSAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29udGV4dDpbTlNHcmFwaGljc0NvbnRleHQgY3VycmVudENvbnRleHRdIAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50TnVtYmVyOisrZXZlbnROdW1i
ZXIgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWNrQ291bnQ6KG1f
bGVmdE1vdXNlQnV0dG9uRG93biA/IG1fY2xpY2tDb3VudCA6IDApIAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHByZXNzdXJlOjBdOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHByZXNzdXJlOjAuMF07CiAKLSAgICBOU1BvaW50IHdpbmRv
d0xvY2F0aW9uID0gZXZlbnQubG9jYXRpb25JbldpbmRvdzsKLSAgICBOU1ZpZXcgKnRhcmdldFZp
ZXcgPSBbbV90ZXN0Q29udHJvbGxlci0+bWFpbldlYlZpZXcoKS0+cGxhdGZvcm1WaWV3KCkgaGl0
VGVzdDp3aW5kb3dMb2NhdGlvbl07CisgICAgTlNWaWV3ICp0YXJnZXRWaWV3ID0gW21fdGVzdENv
bnRyb2xsZXItPm1haW5XZWJWaWV3KCktPnBsYXRmb3JtVmlldygpIGhpdFRlc3Q6W2V2ZW50IGxv
Y2F0aW9uSW5XaW5kb3ddXTsKICAgICBpZiAodGFyZ2V0VmlldykgewogICAgICAgICBbTlNBcHAg
X3NldEN1cnJlbnRFdmVudDpldmVudF07CiAgICAgICAgIFt0YXJnZXRWaWV3IG1vdXNlTW92ZWQ6
ZXZlbnRdOwogICAgICAgICBbTlNBcHAgX3NldEN1cnJlbnRFdmVudDpuaWxdOwotICAgIH0gZWxz
ZQorICAgIH0gZWxzZSB7CisgICAgICAgIE5TUG9pbnQgd2luZG93TG9jYXRpb24gPSBbZXZlbnQg
bG9jYXRpb25JbldpbmRvd107CiAgICAgICAgIFdURkxvZ0Fsd2F5cygibW91c2VNb3ZlVG8gZmFp
bGVkIHRvIGZpbmQgYSB0YXJnZXQgdmlldyBhdCAlZiwlZlxuIiwgd2luZG93TG9jYXRpb24ueCwg
d2luZG93TG9jYXRpb24ueSk7CisgICAgfQogfQogCiB2b2lkIEV2ZW50U2VuZGVyUHJveHk6Omxl
YXBGb3J3YXJkKGludCBtaWxsaXNlY29uZHMpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL21hYy9QbGF0Zm9ybVdlYlZpZXdNYWMubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L21hYy9QbGF0Zm9ybVdlYlZpZXdNYWMubW0KaW5kZXggMTc4YTQ0OTg2NzViZThjZGUzZDMzMGFh
ZDU4NDgwZWY5MzkxODMzYi4uNTgxNWJlOWNiMjUxNWZkYjFkNTllNGM1NzdjYjg0NDI2ODgwYTg1
ZiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvUGxhdGZvcm1XZWJWaWV3
TWFjLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1BsYXRmb3JtV2ViVmlld01h
Yy5tbQpAQCAtMzAsMTQgKzMwLDkgQEAKICNpbXBvcnQgIldlYktpdFRlc3RSdW5uZXJEcmFnZ2lu
Z0luZm8uaCIKICNpbXBvcnQgPFdlYktpdC9XS0ltYWdlQ0cuaD4KICNpbXBvcnQgPFdlYktpdC9X
S1ByZWZlcmVuY2VzUHJpdmF0ZS5oPgotI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld0NvbmZpZ3Vy
YXRpb24uaD4KLSNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRlLmg+CisjaW1wb3J0IDxX
ZWJLaXQvV0tWaWV3UHJpdmF0ZS5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogCi1AaW50
ZXJmYWNlIFdLV2ViVmlldyAoRGV0YWlscykKLS0gKFdLUGFnZVJlZilfcGFnZUZvclRlc3Rpbmc7
Ci1AZW5kCi0KIHVzaW5nIG5hbWVzcGFjZSBXVFI7CiAKIGVudW0gewpAQCAtNTEsMTAgKzQ2LDI1
IEBAIGVudW0gewogQHByb3BlcnR5IChub25hdG9taWMsIGFzc2lnbikgUGxhdGZvcm1XZWJWaWV3
KiBwbGF0Zm9ybVdlYlZpZXc7CiBAZW5kCiAKLUBpbnRlcmZhY2UgVGVzdFJ1bm5lcldLV2ViVmll
dyA6IFdLV2ViVmlldworQGludGVyZmFjZSBUZXN0UnVubmVyV0tWaWV3IDogV0tWaWV3IHsKKyAg
ICBCT09MIF91c2VUaHJlYWRlZFNjcm9sbGluZzsKK30KKworQHByb3BlcnR5IChub25hdG9taWMs
IGFzc2lnbikgQk9PTCB1c2VUaHJlYWRlZFNjcm9sbGluZzsKIEBlbmQKIAotQGltcGxlbWVudGF0
aW9uIFRlc3RSdW5uZXJXS1dlYlZpZXcKK0BpbXBsZW1lbnRhdGlvbiBUZXN0UnVubmVyV0tWaWV3
CisKK0BzeW50aGVzaXplIHVzZVRocmVhZGVkU2Nyb2xsaW5nID0gX3VzZVRocmVhZGVkU2Nyb2xs
aW5nOworCistIChpZClpbml0V2l0aEZyYW1lOihOU1JlY3QpZnJhbWUgY29uZmlndXJhdGlvblJl
ZjooV0tQYWdlQ29uZmlndXJhdGlvblJlZiljb25maWd1cmF0aW9uIHVzZVRocmVhZGVkU2Nyb2xs
aW5nOihCT09MKXVzZVRocmVhZGVkU2Nyb2xsaW5nCit7CisgICAgaWYgKCEoc2VsZiA9IFtzdXBl
ciBpbml0V2l0aEZyYW1lOmZyYW1lIGNvbmZpZ3VyYXRpb25SZWY6Y29uZmlndXJhdGlvbl0pKQor
ICAgICAgICByZXR1cm4gbmlsOworCisgICAgX3VzZVRocmVhZGVkU2Nyb2xsaW5nID0gdXNlVGhy
ZWFkZWRTY3JvbGxpbmc7CisgICAgcmV0dXJuIHNlbGY7Cit9CiAKIC0gKHZvaWQpZHJhZ0ltYWdl
OihOU0ltYWdlICopYW5JbWFnZSBhdDooTlNQb2ludCl2aWV3TG9jYXRpb24gb2Zmc2V0OihOU1Np
emUpaW5pdGlhbE9mZnNldCBldmVudDooTlNFdmVudCAqKWV2ZW50IHBhc3RlYm9hcmQ6KE5TUGFz
dGVib2FyZCAqKXBib2FyZCBzb3VyY2U6KGlkKXNvdXJjZU9iaiBzbGlkZUJhY2s6KEJPT0wpc2xp
ZGVGbGFnCiB7CkBAIC0xMTAsMjAgKzEyMCwyMyBAQCBlbnVtIHsKIAogbmFtZXNwYWNlIFdUUiB7
CiAKLVBsYXRmb3JtV2ViVmlldzo6UGxhdGZvcm1XZWJWaWV3KFdLV2ViVmlld0NvbmZpZ3VyYXRp
b24qIGNvbmZpZ3VyYXRpb24sIGNvbnN0IFZpZXdPcHRpb25zJiBvcHRpb25zKQorUGxhdGZvcm1X
ZWJWaWV3OjpQbGF0Zm9ybVdlYlZpZXcoV0tQYWdlQ29uZmlndXJhdGlvblJlZiBjb25maWd1cmF0
aW9uLCBjb25zdCBWaWV3T3B0aW9ucyYgb3B0aW9ucykKICAgICA6IG1fd2luZG93SXNLZXkodHJ1
ZSkKICAgICAsIG1fb3B0aW9ucyhvcHRpb25zKQogeworICAgIFdLUGFnZUdyb3VwUmVmIHBhZ2VH
cm91cFJlZiA9IFdLUGFnZUNvbmZpZ3VyYXRpb25HZXRQYWdlR3JvdXAoY29uZmlndXJhdGlvbik7
CisKKyAgICAvLyBUaGUgdGlsZWQgZHJhd2luZyBzcGVjaWZpYyB0ZXN0cyBhbHNvIGRlcGVuZCBv
biB0aHJlYWRlZCBzY3JvbGxpbmcuCisgICAgV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyA9
IFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMocGFnZUdyb3VwUmVmKTsKKyAgICBXS1ByZWZlcmVu
Y2VzU2V0VGhyZWFkZWRTY3JvbGxpbmdFbmFibGVkKHByZWZlcmVuY2VzLCBtX29wdGlvbnMudXNl
VGhyZWFkZWRTY3JvbGxpbmcpOworCiAgICAgLy8gRklYTUU6IE5vdCBzdXJlIHRoaXMgaXMgdGhl
IGJlc3QgcGxhY2UgZm9yIHRoaXM7IG1heWJlIHdlIHNob3VsZCBoYXZlIEFQSSB0byBzZXQgdGhp
cyBzbyB3ZSBjYW4gZG8gaXQgZnJvbSBUZXN0Q29udHJvbGxlcj8KICAgICBpZiAobV9vcHRpb25z
LnVzZVJlbW90ZUxheWVyVHJlZSkKICAgICAgICAgW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVz
ZXJEZWZhdWx0c10gc2V0VmFsdWU6QFlFUyBmb3JLZXk6QCJXZWJLaXQyVXNlUmVtb3RlTGF5ZXJU
cmVlRHJhd2luZ0FyZWEiXTsKIAotICAgIFJldGFpblB0cjxXS1dlYlZpZXdDb25maWd1cmF0aW9u
PiBjb3BpZWRDb25maWd1cmF0aW9uID0gYWRvcHROUyhbY29uZmlndXJhdGlvbiBjb3B5XSk7Ci0g
ICAgV0tQcmVmZXJlbmNlc1NldFRocmVhZGVkU2Nyb2xsaW5nRW5hYmxlZCgoV0tQcmVmZXJlbmNl
c1JlZilbY29waWVkQ29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10sIG1fb3B0aW9ucy51c2VUaHJl
YWRlZFNjcm9sbGluZyk7Ci0KICAgICBOU1JlY3QgcmVjdCA9IE5TTWFrZVJlY3QoMCwgMCwgVGVz
dENvbnRyb2xsZXI6OnZpZXdXaWR0aCwgVGVzdENvbnRyb2xsZXI6OnZpZXdIZWlnaHQpOwotICAg
IG1fdmlldyA9IFtbVGVzdFJ1bm5lcldLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpyZWN0
IGNvbmZpZ3VyYXRpb246Y29waWVkQ29uZmlndXJhdGlvbi5nZXQoKV07Ci0gICAgW21fdmlldyBf
c2V0V2luZG93T2NjbHVzaW9uRGV0ZWN0aW9uRW5hYmxlZDpOT107CisgICAgbV92aWV3ID0gW1tU
ZXN0UnVubmVyV0tWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOnJlY3QgY29uZmlndXJhdGlvblJl
Zjpjb25maWd1cmF0aW9uIHVzZVRocmVhZGVkU2Nyb2xsaW5nOm9wdGlvbnMudXNlVGhyZWFkZWRT
Y3JvbGxpbmddOworICAgIFttX3ZpZXcgc2V0V2luZG93T2NjbHVzaW9uRGV0ZWN0aW9uRW5hYmxl
ZDpOT107CiAKICAgICBOU1NjcmVlbiAqZmlyc3RTY3JlZW4gPSBbW05TU2NyZWVuIHNjcmVlbnNd
IG9iamVjdEF0SW5kZXg6MF07CiAgICAgTlNSZWN0IHdpbmRvd1JlY3QgPSBtX29wdGlvbnMuc2hv
dWxkU2hvd1dlYlZpZXcgPyBOU09mZnNldFJlY3QocmVjdCwgMTAwLCAxMDApIDogTlNPZmZzZXRS
ZWN0KHJlY3QsIC0xMDAwMCwgW2ZpcnN0U2NyZWVuIGZyYW1lXS5zaXplLmhlaWdodCAtIHJlY3Qu
c2l6ZS5oZWlnaHQgKyAxMDAwMCk7CkBAIC0xNTcsMTIgKzE3MCwxMiBAQCBQbGF0Zm9ybVdlYlZp
ZXc6On5QbGF0Zm9ybVdlYlZpZXcoKQogCiBXS1BhZ2VSZWYgUGxhdGZvcm1XZWJWaWV3OjpwYWdl
KCkKIHsKLSAgICByZXR1cm4gW21fdmlldyBfcGFnZUZvclRlc3RpbmddOworICAgIHJldHVybiBb
bV92aWV3IHBhZ2VSZWZdOwogfQogCiB2b2lkIFBsYXRmb3JtV2ViVmlldzo6Zm9jdXMoKQogewot
ICAgIFttX3dpbmRvdyBtYWtlRmlyc3RSZXNwb25kZXI6cGxhdGZvcm1WaWV3KCldOworICAgIFtt
X3dpbmRvdyBtYWtlRmlyc3RSZXNwb25kZXI6bV92aWV3XTsKICAgICBzZXRXaW5kb3dJc0tleSh0
cnVlKTsKIH0KIApAQCAtMTgxLDcgKzE5NCw3IEBAIFdLUmVjdCBQbGF0Zm9ybVdlYlZpZXc6Ondp
bmRvd0ZyYW1lKCkKIHZvaWQgUGxhdGZvcm1XZWJWaWV3OjpzZXRXaW5kb3dGcmFtZShXS1JlY3Qg
ZnJhbWUpCiB7CiAgICAgW21fd2luZG93IHNldEZyYW1lOk5TTWFrZVJlY3QoZnJhbWUub3JpZ2lu
LngsIGZyYW1lLm9yaWdpbi55LCBmcmFtZS5zaXplLndpZHRoLCBmcmFtZS5zaXplLmhlaWdodCkg
ZGlzcGxheTpZRVNdOwotICAgIFtwbGF0Zm9ybVZpZXcoKSBzZXRGcmFtZTpOU01ha2VSZWN0KDAs
IDAsIGZyYW1lLnNpemUud2lkdGgsIGZyYW1lLnNpemUuaGVpZ2h0KV07CisgICAgW21fdmlldyBz
ZXRGcmFtZTpOU01ha2VSZWN0KDAsIDAsIGZyYW1lLnNpemUud2lkdGgsIGZyYW1lLnNpemUuaGVp
Z2h0KV07CiB9CiAKIHZvaWQgUGxhdGZvcm1XZWJWaWV3OjpkaWRJbml0aWFsaXplQ2xpZW50cygp
CkBAIC0xOTIsMTkgKzIwNSwxOCBAQCB2b2lkIFBsYXRmb3JtV2ViVmlldzo6ZGlkSW5pdGlhbGl6
ZUNsaWVudHMoKQogCiB2b2lkIFBsYXRmb3JtV2ViVmlldzo6YWRkQ2hyb21lSW5wdXRGaWVsZCgp
CiB7Ci0gICAgTlNUZXh0RmllbGQgKnRleHRGaWVsZCA9IFtbTlNUZXh0RmllbGQgYWxsb2NdIGlu
aXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCAxMDAsIDIwKV07CisgICAgTlNUZXh0RmllbGQq
IHRleHRGaWVsZCA9IFtbTlNUZXh0RmllbGQgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVj
dCgwLCAwLCAxMDAsIDIwKV07CiAgICAgdGV4dEZpZWxkLnRhZyA9IDE7CiAgICAgW1ttX3dpbmRv
dyBjb250ZW50Vmlld10gYWRkU3Vidmlldzp0ZXh0RmllbGRdOwogICAgIFt0ZXh0RmllbGQgcmVs
ZWFzZV07CiAKLSAgICBOU1ZpZXcgKnZpZXcgPSBwbGF0Zm9ybVZpZXcoKTsKLSAgICBbdGV4dEZp
ZWxkIHNldE5leHRLZXlWaWV3OnZpZXddOwotICAgIFt2aWV3IHNldE5leHRLZXlWaWV3OnRleHRG
aWVsZF07CisgICAgW3RleHRGaWVsZCBzZXROZXh0S2V5VmlldzptX3ZpZXddOworICAgIFttX3Zp
ZXcgc2V0TmV4dEtleVZpZXc6dGV4dEZpZWxkXTsKIH0KIAogdm9pZCBQbGF0Zm9ybVdlYlZpZXc6
OnJlbW92ZUNocm9tZUlucHV0RmllbGQoKQogewotICAgIE5TVmlldyAqdGV4dEZpZWxkID0gW1tt
X3dpbmRvdyBjb250ZW50Vmlld10gdmlld1dpdGhUYWc6MV07CisgICAgTlNWaWV3KiB0ZXh0Rmll
bGQgPSBbW21fd2luZG93IGNvbnRlbnRWaWV3XSB2aWV3V2l0aFRhZzoxXTsKICAgICBpZiAodGV4
dEZpZWxkKSB7CiAgICAgICAgIFt0ZXh0RmllbGQgcmVtb3ZlRnJvbVN1cGVydmlld107CiAgICAg
ICAgIG1ha2VXZWJWaWV3Rmlyc3RSZXNwb25kZXIoKTsKQEAgLTIxMywxMiArMjI1LDEyIEBAIHZv
aWQgUGxhdGZvcm1XZWJWaWV3OjpyZW1vdmVDaHJvbWVJbnB1dEZpZWxkKCkKIAogdm9pZCBQbGF0
Zm9ybVdlYlZpZXc6Om1ha2VXZWJWaWV3Rmlyc3RSZXNwb25kZXIoKQogewotICAgIFttX3dpbmRv
dyBtYWtlRmlyc3RSZXNwb25kZXI6cGxhdGZvcm1WaWV3KCldOworICAgIFttX3dpbmRvdyBtYWtl
Rmlyc3RSZXNwb25kZXI6bV92aWV3XTsKIH0KIAogV0tSZXRhaW5QdHI8V0tJbWFnZVJlZj4gUGxh
dGZvcm1XZWJWaWV3Ojp3aW5kb3dTbmFwc2hvdEltYWdlKCkKIHsKLSAgICBbcGxhdGZvcm1WaWV3
KCkgZGlzcGxheV07CisgICAgW21fdmlldyBkaXNwbGF5XTsKICAgICBDR1dpbmRvd0ltYWdlT3B0
aW9uIG9wdGlvbnMgPSBrQ0dXaW5kb3dJbWFnZUJvdW5kc0lnbm9yZUZyYW1pbmcgfCBrQ0dXaW5k
b3dJbWFnZVNob3VsZEJlT3BhcXVlOwogCiAgICAgaWYgKFttX3dpbmRvdyBiYWNraW5nU2NhbGVG
YWN0b3JdID09IDEpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9UZXN0
Q29udHJvbGxlck1hYy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1Rlc3RDb250cm9s
bGVyTWFjLm1tCmluZGV4IDcxYWFhNmViNWFmODJkMDA5MjM2ZTlhM2JkZDc3Mjk5MDZmZmU3NTcu
LjU1NmE3N2M4MmNiZDgxNzVlZjEwMmU5YmJlNTgwZDMxOWIzNmM2ZDYgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1Rlc3RDb250cm9sbGVyTWFjLm1tCisrKyBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvbWFjL1Rlc3RDb250cm9sbGVyTWFjLm1tCkBAIC0yNiwxOSArMjYs
MTUgQEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAiVGVzdENvbnRyb2xsZXIuaCIKIAor
I2ltcG9ydCAiQ3Jhc2hSZXBvcnRlckluZm8uaCIKICNpbXBvcnQgIlBsYXRmb3JtV2ViVmlldy5o
IgogI2ltcG9ydCAiUG9zZUFzQ2xhc3MuaCIKICNpbXBvcnQgIlRlc3RJbnZvY2F0aW9uLmgiCiAj
aW1wb3J0ICJXZWJLaXRUZXN0UnVubmVyUGFzdGVib2FyZC5oIgogI2ltcG9ydCA8V2ViS2l0L1dL
Q29udGV4dFByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1BhZ2VHcm91cC5oPgotI2ltcG9y
dCA8V2ViS2l0L1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tTdHJp
bmdDRi5oPgogI2ltcG9ydCA8V2ViS2l0L1dLVVJMQ0YuaD4KLSNpbXBvcnQgPFdlYktpdC9XS1Vz
ZXJDb250ZW50Q29udHJvbGxlclByaXZhdGUuaD4KLSNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXcu
aD4KLSNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdDb25maWd1cmF0aW9uLmg+Ci0jaW1wb3J0IDxX
ZWJLaXQvV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9f
V0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlLmg+CiAjaW1wb3J0IDxXZWJLaXQvX1dLVXNlckNv
bnRlbnRFeHRlbnNpb25TdG9yZVByaXZhdGUuaD4KICNpbXBvcnQgPG1hY2gtby9keWxkLmg+CkBA
IC03Nyw2ICs3MywxMSBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjppbml0aWFsaXplVGVzdFBsdWdp
bkRpcmVjdG9yeSgpCiAgICAgbV90ZXN0UGx1Z2luRGlyZWN0b3J5LmFkb3B0KFdLU3RyaW5nQ3Jl
YXRlV2l0aENGU3RyaW5nKChDRlN0cmluZ1JlZilbW05TQnVuZGxlIG1haW5CdW5kbGVdIGJ1bmRs
ZVBhdGhdKSk7CiB9CiAKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtV2lsbFJ1blRlc3Qo
Y29uc3QgVGVzdEludm9jYXRpb24mIHRlc3RJbnZvY2F0aW9uKQoreworICAgIHNldENyYXNoUmVw
b3J0QXBwbGljYXRpb25TcGVjaWZpY0luZm9ybWF0aW9uVG9VUkwodGVzdEludm9jYXRpb24udXJs
KCkpOworfQorCiBzdGF0aWMgYm9vbCBzaG91bGRVc2VUaHJlYWRlZFNjcm9sbGluZyhjb25zdCBU
ZXN0SW52b2NhdGlvbiYgdGVzdCkKIHsKICAgICByZXR1cm4gdGVzdC51cmxDb250YWlucygidGls
ZWQtZHJhd2luZy8iKTsKQEAgLTg0LDYgKzg1LDE1IEBAIHN0YXRpYyBib29sIHNob3VsZFVzZVRo
cmVhZGVkU2Nyb2xsaW5nKGNvbnN0IFRlc3RJbnZvY2F0aW9uJiB0ZXN0KQogCiB2b2lkIFRlc3RD
b250cm9sbGVyOjpwbGF0Zm9ybVJlc2V0UHJlZmVyZW5jZXNUb0NvbnNpc3RlbnRWYWx1ZXMoKQog
eworI2lmIFdLX0FQSV9FTkFCTEVECisgICAgX19ibG9jayBib29sIGRvbmVSZW1vdmluZyA9IGZh
bHNlOworICAgIFtbX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZSBkZWZhdWx0U3RvcmVdIHJl
bW92ZUNvbnRlbnRFeHRlbnNpb25Gb3JJZGVudGlmaWVyOkAiVGVzdENvbnRlbnRFeHRlbnNpb25z
IiBjb21wbGV0aW9uSGFuZGxlcjpeKE5TRXJyb3IgKmVycm9yKQorICAgIHsKKyAgICAgICAgZG9u
ZVJlbW92aW5nID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBwbGF0Zm9ybVJ1blVudGlsKGRvbmVSZW1v
dmluZywgMCk7CisgICAgW1tfV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlIGRlZmF1bHRTdG9y
ZV0gX3JlbW92ZUFsbENvbnRlbnRFeHRlbnNpb25zXTsKKyNlbmRpZgogfQogCiB2b2lkIFRlc3RD
b250cm9sbGVyOjp1cGRhdGVQbGF0Zm9ybVNwZWNpZmljVmlld09wdGlvbnNGb3JUZXN0KFZpZXdP
cHRpb25zJiB2aWV3T3B0aW9ucywgY29uc3QgVGVzdEludm9jYXRpb24mIHRlc3QpIGNvbnN0CkBA
IC0xMTEsNyArMTIxLDcgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1Db25maWd1cmVW
aWV3Rm9yVGVzdChjb25zdCBUZXN0SW52b2NhdGlvbiYgdGVzdCkKICAgICBbW19XS1VzZXJDb250
ZW50RXh0ZW5zaW9uU3RvcmUgZGVmYXVsdFN0b3JlXSBjb21waWxlQ29udGVudEV4dGVuc2lvbkZv
cklkZW50aWZpZXI6QCJUZXN0Q29udGVudEV4dGVuc2lvbnMiIGVuY29kZWRDb250ZW50RXh0ZW5z
aW9uOmNvbnRlbnRFeHRlbnNpb25TdHJpbmcgY29tcGxldGlvbkhhbmRsZXI6XihfV0tVc2VyQ29u
dGVudEZpbHRlciAqZmlsdGVyLCBOU0Vycm9yICplcnJvcikKICAgICB7CiAgICAgICAgIGlmICgh
ZXJyb3IpCi0gICAgICAgICAgICBbbWFpbldlYlZpZXcoKS0+cGxhdGZvcm1WaWV3KCkuY29uZmln
dXJhdGlvbi51c2VyQ29udGVudENvbnRyb2xsZXIgX2FkZFVzZXJDb250ZW50RmlsdGVyOmZpbHRl
cl07CisgICAgICAgICAgICBXS1BhZ2VHcm91cEFkZFVzZXJDb250ZW50RmlsdGVyKFdLUGFnZUdl
dFBhZ2VHcm91cChUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkubWFpbldlYlZpZXcoKS0+cGFn
ZSgpKSwgKF9fYnJpZGdlIFdLVXNlckNvbnRlbnRGaWx0ZXJSZWYpZmlsdGVyKTsKICAgICAgICAg
ZWxzZQogICAgICAgICAgICAgTlNMb2coQCIlQCIsIFtlcnJvciBoZWxwQW5jaG9yXSk7CiAgICAg
ICAgIGRvbmVDb21waWxpbmcgPSB0cnVlOwpAQCAtMTIwLDYgKzEzMCwxNCBAQCB2b2lkIFRlc3RD
b250cm9sbGVyOjpwbGF0Zm9ybUNvbmZpZ3VyZVZpZXdGb3JUZXN0KGNvbnN0IFRlc3RJbnZvY2F0
aW9uJiB0ZXN0KQogI2VuZGlmCiB9CiAKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtUnVu
VW50aWwoYm9vbCYgZG9uZSwgZG91YmxlIHRpbWVvdXQpCit7CisgICAgTlNEYXRlICplbmREYXRl
ID0gKHRpbWVvdXQgPiAwKSA/IFtOU0RhdGUgZGF0ZVdpdGhUaW1lSW50ZXJ2YWxTaW5jZU5vdzp0
aW1lb3V0XSA6IFtOU0RhdGUgZGlzdGFudEZ1dHVyZV07CisKKyAgICB3aGlsZSAoIWRvbmUgJiYg
W2VuZERhdGUgY29tcGFyZTpbTlNEYXRlIGRhdGVdXSA9PSBOU09yZGVyZWREZXNjZW5kaW5nKQor
ICAgICAgICBbW05TUnVuTG9vcCBjdXJyZW50UnVuTG9vcF0gcnVuTW9kZTpOU0RlZmF1bHRSdW5M
b29wTW9kZSBiZWZvcmVEYXRlOmVuZERhdGVdOworfQorCiAjaWYgRU5BQkxFKFBMQVRGT1JNX0ZP
TlRfTE9PS1VQKQogc3RhdGljIE5TU2V0ICphbGxvd2VkRm9udEZhbWlseVNldCgpCiB7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>