<?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>190972</bug_id>
          
          <creation_ts>2018-10-26 12:29:35 -0700</creation_ts>
          <short_desc>REGRESSION(r237445): Cause performance regression on iOS devices (Requested by yusukesuzuki on #webkit).</short_desc>
          <delta_ts>2018-10-26 12:35:37 -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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>190340</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1472541</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-10-26 12:29:35 -0700</bug_when>
    <thetext>https://trac.webkit.org/changeset/237445 broke the build:
Cause performance regression on iOS devices (Requested by yusukesuzuki 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>1472543</commentid>
    <comment_count>1</comment_count>
      <attachid>353200</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-10-26 12:29:48 -0700</bug_when>
    <thetext>Created attachment 353200
ROLLOUT of r237445

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>1472545</commentid>
    <comment_count>2</comment_count>
      <attachid>353200</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-10-26 12:34:02 -0700</bug_when>
    <thetext>Comment on attachment 353200
ROLLOUT of r237445

Clearing flags on attachment: 353200

Committed r237478: &lt;https://trac.webkit.org/changeset/237478&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1472546</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-10-26 12:34:04 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1472547</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-10-26 12:35:37 -0700</bug_when>
    <thetext>&lt;rdar://problem/45596105&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>353200</attachid>
            <date>2018-10-26 12:29:48 -0700</date>
            <delta_ts>2018-10-26 12:34:02 -0700</delta_ts>
            <desc>ROLLOUT of r237445</desc>
            <filename>bug-190972-20181026152947.patch</filename>
            <type>text/plain</type>
            <size>31934</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3NDc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
ZTY2NmQ0Yjk1N2EwYjcwZWQxZWYzZTczZTg1ODQ1MDBlNzZkNWJjLi5iNTViODMwMjNiMDgxNzE1
OTMwZDkwNzJkOWQ4OTM5NTRmODQ3NWI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAxOC0xMC0yNiAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjIzNzQ0NS4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MDk3MgorCisgICAg
ICAgIENhdXNlIHBlcmZvcm1hbmNlIHJlZ3Jlc3Npb24gb24gaU9TIGRldmljZXMgKFJlcXVlc3Rl
ZCBieQorICAgICAgICB5dXN1a2VzdXp1a2kgb24gI3dlYmtpdCkuCisKKyAgICAgICAgUmV2ZXJ0
ZWQgY2hhbmdlc2V0OgorCisgICAgICAgICJVbnJldmlld2VkLCBwYXJ0aWFsIHJvbGxpbmcgaW4g
cjIzNzI1NCIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE5MDM0MAorICAgICAgICBodHRwczovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjM3NDQ1
CisKIDIwMTgtMTAtMjYgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAg
IEZpeCBtaXNzaW5nIGVkZ2UgY2FzZXMgd2l0aCBKU0dsb2JhbE9iamVjdHMgaGF2aW5nIGEgYmFk
IHRpbWUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5r
ZWRGdW5jdGlvbkV4ZWN1dGFibGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L1VubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlLmNwcAppbmRleCA3MWIxMzc0OGRlZTAxYTVkOGQ5
Njk5YzlmNmY4MWNlNWJhM2YxYTI3Li5lNTQwYTI0MGQ4ZjNiOWFjNzI1OWYwMTBjZDJlMzQ1ZDM0
MDE1MzkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5r
ZWRGdW5jdGlvbkV4ZWN1dGFibGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9VbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZS5jcHAKQEAgLTE3NCwxNCArMTc0LDE0IEBA
IEZ1bmN0aW9uRXhlY3V0YWJsZSogVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGU6OmxpbmsoVk0m
IHZtLCBjb25zdCBTb3VyY2VDb2RlJiBwCiAKIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiBV
bmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZTo6ZnJvbUdsb2JhbENvZGUoCiAgICAgY29uc3QgSWRl
bnRpZmllciYgbmFtZSwgRXhlY1N0YXRlJiBleGVjLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2Us
IAotICAgIEpTT2JqZWN0KiYgZXhjZXB0aW9uLCBpbnQgb3ZlcnJpZGVMaW5lTnVtYmVyLCBzdGQ6
Om9wdGlvbmFsPGludD4gZnVuY3Rpb25Db25zdHJ1Y3RvclBhcmFtZXRlcnNFbmRQb3NpdGlvbikK
KyAgICBKU09iamVjdComIGV4Y2VwdGlvbiwgaW50IG92ZXJyaWRlTGluZU51bWJlcikKIHsKICAg
ICBQYXJzZXJFcnJvciBlcnJvcjsKICAgICBWTSYgdm0gPSBleGVjLnZtKCk7CiAgICAgYXV0byYg
Z2xvYmFsT2JqZWN0ID0gKmV4ZWMubGV4aWNhbEdsb2JhbE9iamVjdCgpOwogICAgIENvZGVDYWNo
ZSogY29kZUNhY2hlID0gdm0uY29kZUNhY2hlKCk7CiAgICAgRGVidWdnZXJNb2RlIGRlYnVnZ2Vy
TW9kZSA9IGdsb2JhbE9iamVjdC5oYXNJbnRlcmFjdGl2ZURlYnVnZ2VyKCkgPyBEZWJ1Z2dlck9u
IDogRGVidWdnZXJPZmY7Ci0gICAgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqIGV4ZWN1dGFi
bGUgPSBjb2RlQ2FjaGUtPmdldFVubGlua2VkR2xvYmFsRnVuY3Rpb25FeGVjdXRhYmxlKHZtLCBu
YW1lLCBzb3VyY2UsIGRlYnVnZ2VyTW9kZSwgZnVuY3Rpb25Db25zdHJ1Y3RvclBhcmFtZXRlcnNF
bmRQb3NpdGlvbiwgZXJyb3IpOworICAgIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiBleGVj
dXRhYmxlID0gY29kZUNhY2hlLT5nZXRVbmxpbmtlZEdsb2JhbEZ1bmN0aW9uRXhlY3V0YWJsZSh2
bSwgbmFtZSwgc291cmNlLCBkZWJ1Z2dlck1vZGUsIGVycm9yKTsKIAogICAgIGlmIChnbG9iYWxP
YmplY3QuaGFzRGVidWdnZXIoKSkKICAgICAgICAgZ2xvYmFsT2JqZWN0LmRlYnVnZ2VyKCktPnNv
dXJjZVBhcnNlZCgmZXhlYywgc291cmNlLnByb3ZpZGVyKCksIGVycm9yLmxpbmUoKSwgZXJyb3Iu
bWVzc2FnZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9V
bmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL1VubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlLmgKaW5kZXggMzEzZDY2NjA5NDM5ZDdiYzAw
ZGViMjEzMTY0YjI5MTM2Y2Q2MmQxNi4uZjllODkzOTk5MzExNDRjM2Q1NmMwNThiOTEyNzJlMmQ5
YmQ4OTI2MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlu
a2VkRnVuY3Rpb25FeGVjdXRhYmxlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL1VubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlLmgKQEAgLTEwNyw3ICsxMDcsNyBAQCBwdWJs
aWM6CiAKICAgICBzdGF0aWMgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqIGZyb21HbG9iYWxD
b2RlKAogICAgICAgICBjb25zdCBJZGVudGlmaWVyJiwgRXhlY1N0YXRlJiwgY29uc3QgU291cmNl
Q29kZSYsIEpTT2JqZWN0KiYgZXhjZXB0aW9uLCAKLSAgICAgICAgaW50IG92ZXJyaWRlTGluZU51
bWJlciwgc3RkOjpvcHRpb25hbDxpbnQ+IGZ1bmN0aW9uQ29uc3RydWN0b3JQYXJhbWV0ZXJzRW5k
UG9zaXRpb24pOworICAgICAgICBpbnQgb3ZlcnJpZGVMaW5lTnVtYmVyKTsKIAogICAgIEpTX0VY
UE9SVF9QUklWQVRFIEZ1bmN0aW9uRXhlY3V0YWJsZSogbGluayhWTSYsIGNvbnN0IFNvdXJjZUNv
ZGUmIHBhcmVudFNvdXJjZSwgc3RkOjpvcHRpb25hbDxpbnQ+IG92ZXJyaWRlTGluZU51bWJlciA9
IHN0ZDo6bnVsbG9wdCwgSW50cmluc2ljID0gTm9JbnRyaW5zaWMpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcGFyc2VyL1BhcnNlci5jcHAKaW5kZXggNjgzMmE1OGY0MmJmNjA0MDUyYzExZjlhMjRm
ZmZmYTYwZmE3YzJkNC4uM2YyZmMxZTM4ZjRhNGVkMzE5ZGJhODQ2NWRiZjhlOTkxNDUxOWM1MSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcApAQCAtMTk0LDcgKzE5NCw3
IEBAIFBhcnNlcjxMZXhlclR5cGU+Ojp+UGFyc2VyKCkKIH0KIAogdGVtcGxhdGUgPHR5cGVuYW1l
IExleGVyVHlwZT4KLVN0cmluZyBQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VJbm5lcihjb25zdCBJ
ZGVudGlmaWVyJiBjYWxsZWVOYW1lLCBTb3VyY2VQYXJzZU1vZGUgcGFyc2VNb2RlLCBQYXJzaW5n
Q29udGV4dCBwYXJzaW5nQ29udGV4dCwgc3RkOjpvcHRpb25hbDxpbnQ+IGZ1bmN0aW9uQ29uc3Ry
dWN0b3JQYXJhbWV0ZXJzRW5kUG9zaXRpb24pCitTdHJpbmcgUGFyc2VyPExleGVyVHlwZT46OnBh
cnNlSW5uZXIoY29uc3QgSWRlbnRpZmllciYgY2FsbGVlTmFtZSwgU291cmNlUGFyc2VNb2RlIHBh
cnNlTW9kZSkKIHsKICAgICBTdHJpbmcgcGFyc2VFcnJvciA9IFN0cmluZygpOwogCkBAIC0yMzgs
OCArMjM4LDYgQEAgU3RyaW5nIFBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZUlubmVyKGNvbnN0IElk
ZW50aWZpZXImIGNhbGxlZU5hbWUsIFNvdXJjZVBhcnNlTW8KICAgICAgICAgICAgIHNvdXJjZUVs
ZW1lbnRzID0gcGFyc2VHZW5lcmF0b3JGdW5jdGlvblNvdXJjZUVsZW1lbnRzKGNvbnRleHQsIGNh
bGxlZU5hbWUsIENoZWNrRm9yU3RyaWN0TW9kZSk7CiAgICAgICAgIGVsc2UgaWYgKGlzQXN5bmNH
ZW5lcmF0b3JXcmFwcGVyUGFyc2VNb2RlKHBhcnNlTW9kZSkpCiAgICAgICAgICAgICBzb3VyY2VF
bGVtZW50cyA9IHBhcnNlQXN5bmNHZW5lcmF0b3JGdW5jdGlvblNvdXJjZUVsZW1lbnRzKGNvbnRl
eHQsIHBhcnNlTW9kZSwgaXNBcnJvd0Z1bmN0aW9uQm9keUV4cHJlc3Npb24sIENoZWNrRm9yU3Ry
aWN0TW9kZSk7Ci0gICAgICAgIGVsc2UgaWYgKHBhcnNpbmdDb250ZXh0ID09IFBhcnNpbmdDb250
ZXh0OjpGdW5jdGlvbkNvbnN0cnVjdG9yKQotICAgICAgICAgICAgc291cmNlRWxlbWVudHMgPSBw
YXJzZVNpbmdsZUZ1bmN0aW9uKGNvbnRleHQsIGZ1bmN0aW9uQ29uc3RydWN0b3JQYXJhbWV0ZXJz
RW5kUG9zaXRpb24pOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBzb3VyY2VFbGVtZW50cyA9
IHBhcnNlU291cmNlRWxlbWVudHMoY29udGV4dCwgQ2hlY2tGb3JTdHJpY3RNb2RlKTsKICAgICB9
CkBAIC02MTIsMzggKzYxMCw2IEBAIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZVNv
dXJjZUVsZW1lbnRzIFBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZUFzeW5jR2VuCiAgICAgICAgIAog
ICAgIHJldHVybiBzb3VyY2VFbGVtZW50czsKIH0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIExleGVy
VHlwZT4KLXRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZVNvdXJjZUVsZW1lbnRzIFBh
cnNlcjxMZXhlclR5cGU+OjpwYXJzZVNpbmdsZUZ1bmN0aW9uKFRyZWVCdWlsZGVyJiBjb250ZXh0
LCBzdGQ6Om9wdGlvbmFsPGludD4gZnVuY3Rpb25Db25zdHJ1Y3RvclBhcmFtZXRlcnNFbmRQb3Np
dGlvbikKLXsKLSAgICBUcmVlU291cmNlRWxlbWVudHMgc291cmNlRWxlbWVudHMgPSBjb250ZXh0
LmNyZWF0ZVNvdXJjZUVsZW1lbnRzKCk7Ci0gICAgVHJlZVN0YXRlbWVudCBzdGF0ZW1lbnQgPSAw
OwotICAgIHN3aXRjaCAobV90b2tlbi5tX3R5cGUpIHsKLSAgICBjYXNlIEZVTkNUSU9OOgotICAg
ICAgICBzdGF0ZW1lbnQgPSBwYXJzZUZ1bmN0aW9uRGVjbGFyYXRpb24oY29udGV4dCwgRXhwb3J0
VHlwZTo6Tm90RXhwb3J0ZWQsIERlY2xhcmF0aW9uRGVmYXVsdENvbnRleHQ6OlN0YW5kYXJkLCBm
dW5jdGlvbkNvbnN0cnVjdG9yUGFyYW1ldGVyc0VuZFBvc2l0aW9uKTsKLSAgICAgICAgYnJlYWs7
Ci0gICAgY2FzZSBJREVOVDoKLSAgICAgICAgaWYgKCptX3Rva2VuLm1fZGF0YS5pZGVudCA9PSBt
X3ZtLT5wcm9wZXJ0eU5hbWVzLT5hc3luYyAmJiAhbV90b2tlbi5tX2RhdGEuZXNjYXBlZCkgewot
ICAgICAgICAgICAgbmV4dCgpOwotICAgICAgICAgICAgZmFpbElmRmFsc2UobWF0Y2goRlVOQ1RJ
T04pICYmICFtX2xleGVyLT5wcmV2VGVybWluYXRvcigpLCAiQ2Fubm90IHBhcnNlIHRoZSBhc3lu
YyBmdW5jdGlvbiIpOwotICAgICAgICAgICAgc3RhdGVtZW50ID0gcGFyc2VBc3luY0Z1bmN0aW9u
RGVjbGFyYXRpb24oY29udGV4dCwgRXhwb3J0VHlwZTo6Tm90RXhwb3J0ZWQsIERlY2xhcmF0aW9u
RGVmYXVsdENvbnRleHQ6OlN0YW5kYXJkLCBmdW5jdGlvbkNvbnN0cnVjdG9yUGFyYW1ldGVyc0Vu
ZFBvc2l0aW9uKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIEZBTExU
SFJPVUdIOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIGZhaWxEdWVUb1VuZXhwZWN0ZWRUb2tlbigp
OwotICAgICAgICBicmVhazsKLSAgICB9Ci0KLSAgICBpZiAoc3RhdGVtZW50KSB7Ci0gICAgICAg
IGNvbnRleHQuc2V0RW5kT2Zmc2V0KHN0YXRlbWVudCwgbV9sYXN0VG9rZW5FbmRQb3NpdGlvbi5v
ZmZzZXQpOwotICAgICAgICBjb250ZXh0LmFwcGVuZFN0YXRlbWVudChzb3VyY2VFbGVtZW50cywg
c3RhdGVtZW50KTsKLSAgICB9Ci0KLSAgICBwcm9wYWdhdGVFcnJvcigpOwotICAgIHJldHVybiBz
b3VyY2VFbGVtZW50czsKLX0KLQogICAgIAogdGVtcGxhdGUgPHR5cGVuYW1lIExleGVyVHlwZT4K
IHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZVN0YXRlbWVudCBQYXJzZXI8TGV4ZXJU
eXBlPjo6cGFyc2VTdGF0ZW1lbnRMaXN0SXRlbShUcmVlQnVpbGRlciYgY29udGV4dCwgY29uc3Qg
SWRlbnRpZmllciomIGRpcmVjdGl2ZSwgdW5zaWduZWQqIGRpcmVjdGl2ZUxpdGVyYWxMZW5ndGgp
CkBAIC0yMjk3LDcgKzIyNjMsNyBAQCB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IHR5cGVu
YW1lIFRyZWVCdWlsZGVyOjpGb3JtYWxQYXJhbWV0ZXJMaXN0IFBhcnNlcjxMZQogfQogCiB0ZW1w
bGF0ZSA8dHlwZW5hbWUgTGV4ZXJUeXBlPgotdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBi
b29sIFBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZUZ1bmN0aW9uSW5mbyhUcmVlQnVpbGRlciYgY29u
dGV4dCwgRnVuY3Rpb25OYW1lUmVxdWlyZW1lbnRzIHJlcXVpcmVtZW50cywgU291cmNlUGFyc2VN
b2RlIG1vZGUsIGJvb2wgbmFtZUlzSW5Db250YWluaW5nU2NvcGUsIENvbnN0cnVjdG9yS2luZCBj
b25zdHJ1Y3RvcktpbmQsIFN1cGVyQmluZGluZyBleHBlY3RlZFN1cGVyQmluZGluZywgaW50IGZ1
bmN0aW9uS2V5d29yZFN0YXJ0LCBQYXJzZXJGdW5jdGlvbkluZm88VHJlZUJ1aWxkZXI+JiBmdW5j
dGlvbkluZm8sIEZ1bmN0aW9uRGVmaW5pdGlvblR5cGUgZnVuY3Rpb25EZWZpbml0aW9uVHlwZSwg
c3RkOjpvcHRpb25hbDxpbnQ+IGZ1bmN0aW9uQ29uc3RydWN0b3JQYXJhbWV0ZXJzRW5kUG9zaXRp
b24pCit0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IGJvb2wgUGFyc2VyPExleGVyVHlwZT46
OnBhcnNlRnVuY3Rpb25JbmZvKFRyZWVCdWlsZGVyJiBjb250ZXh0LCBGdW5jdGlvbk5hbWVSZXF1
aXJlbWVudHMgcmVxdWlyZW1lbnRzLCBTb3VyY2VQYXJzZU1vZGUgbW9kZSwgYm9vbCBuYW1lSXNJ
bkNvbnRhaW5pbmdTY29wZSwgQ29uc3RydWN0b3JLaW5kIGNvbnN0cnVjdG9yS2luZCwgU3VwZXJC
aW5kaW5nIGV4cGVjdGVkU3VwZXJCaW5kaW5nLCBpbnQgZnVuY3Rpb25LZXl3b3JkU3RhcnQsIFBh
cnNlckZ1bmN0aW9uSW5mbzxUcmVlQnVpbGRlcj4mIGZ1bmN0aW9uSW5mbywgRnVuY3Rpb25EZWZp
bml0aW9uVHlwZSBmdW5jdGlvbkRlZmluaXRpb25UeXBlKQogewogICAgIFJFTEVBU0VfQVNTRVJU
KGlzRnVuY3Rpb25QYXJzZU1vZGUobW9kZSkpOwogCkBAIC0yNDkzLDEwICsyNDU5LDYgQEAgdGVt
cGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBib29sIFBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZUZ1
bmN0aW9uSW5mbyhUcmVlQnVpbGQKICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgbWF0Y2hP
ckZhaWwoT1BFTkJSQUNFLCAiRXhwZWN0ZWQgYW4gb3BlbmluZyAneycgYXQgdGhlIHN0YXJ0IG9m
IGEgIiwgc3RyaW5nRm9yRnVuY3Rpb25Nb2RlKG1vZGUpLCAiIGJvZHkiKTsKLQotICAgICAgICAv
LyBJZiB0aGUgY29kZSBpcyBpbnZva2VkIGZyb20gZnVuY3Rpb24gY29uc3RydWN0b3IsIHdlIG5l
ZWQgdG8gZW5zdXJlIHRoYXQgcGFyYW1ldGVycyBhcmUgb25seSBjb21wb3NlZCBieSB0aGUgc3Ry
aW5nIG9mZmVyZWQgYXMgcGFyYW1ldGVycy4KLSAgICAgICAgaWYgKFVOTElLRUxZKGZ1bmN0aW9u
Q29uc3RydWN0b3JQYXJhbWV0ZXJzRW5kUG9zaXRpb24pKQotICAgICAgICAgICAgc2VtYW50aWNG
YWlsSWZGYWxzZShsYXN0VG9rZW5FbmRQb3NpdGlvbigpLm9mZnNldCA9PSAqZnVuY3Rpb25Db25z
dHJ1Y3RvclBhcmFtZXRlcnNFbmRQb3NpdGlvbiwgIlBhcmFtZXRlcnMgc2hvdWxkIG1hdGNoIGFy
Z3VtZW50cyBvZmZlcmVkIGFzIHBhcmFtZXRlcnMgaW4gRnVuY3Rpb24gY29uc3RydWN0b3IiKTsK
ICAgICAgICAgCiAgICAgICAgIC8vIEJ5dGVjb2RlR2VuZXJhdG9yIGVtaXRzIGNvZGUgdG8gdGhy
b3cgVHlwZUVycm9yIHdoZW4gYSBjbGFzcyBjb25zdHJ1Y3RvciBpcyAiY2FsbCJlZC4KICAgICAg
ICAgLy8gU2V0IENvbnN0cnVjdG9yS2luZCB0byBOb25lIGZvciBub24tY29uc3RydWN0b3IgbWV0
aG9kcyBvZiBjbGFzc2VzLgpAQCAtMjYzMSw3ICsyNTkzLDcgQEAgc3RhdGljIE5PX1JFVFVSTl9E
VUVfVE9fQ1JBU0ggRnVuY3Rpb25NZXRhZGF0YU5vZGUqIGdldE1ldGFkYXRhKFBhcnNlckZ1bmN0
aW9uSW4KIHN0YXRpYyBGdW5jdGlvbk1ldGFkYXRhTm9kZSogZ2V0TWV0YWRhdGEoUGFyc2VyRnVu
Y3Rpb25JbmZvPEFTVEJ1aWxkZXI+JiBpbmZvKSB7IHJldHVybiBpbmZvLmJvZHk7IH0KIAogdGVt
cGxhdGUgPHR5cGVuYW1lIExleGVyVHlwZT4KLXRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4g
VHJlZVN0YXRlbWVudCBQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VGdW5jdGlvbkRlY2xhcmF0aW9u
KFRyZWVCdWlsZGVyJiBjb250ZXh0LCBFeHBvcnRUeXBlIGV4cG9ydFR5cGUsIERlY2xhcmF0aW9u
RGVmYXVsdENvbnRleHQgZGVjbGFyYXRpb25EZWZhdWx0Q29udGV4dCwgc3RkOjpvcHRpb25hbDxp
bnQ+IGZ1bmN0aW9uQ29uc3RydWN0b3JQYXJhbWV0ZXJzRW5kUG9zaXRpb24pCit0ZW1wbGF0ZSA8
Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVTdGF0ZW1lbnQgUGFyc2VyPExleGVyVHlwZT46OnBhcnNl
RnVuY3Rpb25EZWNsYXJhdGlvbihUcmVlQnVpbGRlciYgY29udGV4dCwgRXhwb3J0VHlwZSBleHBv
cnRUeXBlLCBEZWNsYXJhdGlvbkRlZmF1bHRDb250ZXh0IGRlY2xhcmF0aW9uRGVmYXVsdENvbnRl
eHQpCiB7CiAgICAgQVNTRVJUKG1hdGNoKEZVTkNUSU9OKSk7CiAgICAgSlNUb2tlbkxvY2F0aW9u
IGxvY2F0aW9uKHRva2VuTG9jYXRpb24oKSk7CkBAIC0yNjY4LDcgKzI2MzAsNyBAQCB0ZW1wbGF0
ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVTdGF0ZW1lbnQgUGFyc2VyPExleGVyVHlwZT46OnBh
cnNlRnVuY3Rpb25EZWNsYQogICAgICAgICBmdW5jdGlvbkluZm8ubmFtZSA9ICZtX3ZtLT5wcm9w
ZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5zdGFyRGVmYXVsdFByaXZhdGVOYW1lKCk7CiAgICAg
fQogCi0gICAgZmFpbElmRmFsc2UoKHBhcnNlRnVuY3Rpb25JbmZvKGNvbnRleHQsIHJlcXVpcmVt
ZW50cywgcGFyc2VNb2RlLCB0cnVlLCBDb25zdHJ1Y3RvcktpbmQ6Ok5vbmUsIFN1cGVyQmluZGlu
Zzo6Tm90TmVlZGVkLCBmdW5jdGlvbktleXdvcmRTdGFydCwgZnVuY3Rpb25JbmZvLCBGdW5jdGlv
bkRlZmluaXRpb25UeXBlOjpEZWNsYXJhdGlvbiwgZnVuY3Rpb25Db25zdHJ1Y3RvclBhcmFtZXRl
cnNFbmRQb3NpdGlvbikpLCAiQ2Fubm90IHBhcnNlIHRoaXMgZnVuY3Rpb24iKTsKKyAgICBmYWls
SWZGYWxzZSgocGFyc2VGdW5jdGlvbkluZm8oY29udGV4dCwgcmVxdWlyZW1lbnRzLCBwYXJzZU1v
ZGUsIHRydWUsIENvbnN0cnVjdG9yS2luZDo6Tm9uZSwgU3VwZXJCaW5kaW5nOjpOb3ROZWVkZWQs
IGZ1bmN0aW9uS2V5d29yZFN0YXJ0LCBmdW5jdGlvbkluZm8sIEZ1bmN0aW9uRGVmaW5pdGlvblR5
cGU6OkRlY2xhcmF0aW9uKSksICJDYW5ub3QgcGFyc2UgdGhpcyBmdW5jdGlvbiIpOwogICAgIEFT
U0VSVChmdW5jdGlvbkluZm8ubmFtZSk7CiAKICAgICBzdGQ6OnBhaXI8RGVjbGFyYXRpb25SZXN1
bHRNYXNrLCBTY29wZVJlZj4gZnVuY3Rpb25EZWNsYXJhdGlvbiA9IGRlY2xhcmVGdW5jdGlvbihm
dW5jdGlvbkluZm8ubmFtZSk7CkBAIC0yNjg5LDcgKzI2NTEsNyBAQCB0ZW1wbGF0ZSA8Y2xhc3Mg
VHJlZUJ1aWxkZXI+IFRyZWVTdGF0ZW1lbnQgUGFyc2VyPExleGVyVHlwZT46OnBhcnNlRnVuY3Rp
b25EZWNsYQogfQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgTGV4ZXJUeXBlPgotdGVtcGxhdGUgPGNs
YXNzIFRyZWVCdWlsZGVyPiBUcmVlU3RhdGVtZW50IFBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZUFz
eW5jRnVuY3Rpb25EZWNsYXJhdGlvbihUcmVlQnVpbGRlciYgY29udGV4dCwgRXhwb3J0VHlwZSBl
eHBvcnRUeXBlLCBEZWNsYXJhdGlvbkRlZmF1bHRDb250ZXh0IGRlY2xhcmF0aW9uRGVmYXVsdENv
bnRleHQsIHN0ZDo6b3B0aW9uYWw8aW50PiBmdW5jdGlvbkNvbnN0cnVjdG9yUGFyYW1ldGVyc0Vu
ZFBvc2l0aW9uKQordGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlU3RhdGVtZW50IFBh
cnNlcjxMZXhlclR5cGU+OjpwYXJzZUFzeW5jRnVuY3Rpb25EZWNsYXJhdGlvbihUcmVlQnVpbGRl
ciYgY29udGV4dCwgRXhwb3J0VHlwZSBleHBvcnRUeXBlLCBEZWNsYXJhdGlvbkRlZmF1bHRDb250
ZXh0IGRlY2xhcmF0aW9uRGVmYXVsdENvbnRleHQpCiB7CiAgICAgQVNTRVJUKG1hdGNoKEZVTkNU
SU9OKSk7CiAgICAgSlNUb2tlbkxvY2F0aW9uIGxvY2F0aW9uKHRva2VuTG9jYXRpb24oKSk7CkBA
IC0yNzI2LDcgKzI2ODgsNyBAQCB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVTdGF0
ZW1lbnQgUGFyc2VyPExleGVyVHlwZT46OnBhcnNlQXN5bmNGdW5jdGlvbgogICAgICAgICBmdW5j
dGlvbkluZm8ubmFtZSA9ICZtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5zdGFy
RGVmYXVsdFByaXZhdGVOYW1lKCk7CiAgICAgfQogCi0gICAgZmFpbElmRmFsc2UoKHBhcnNlRnVu
Y3Rpb25JbmZvKGNvbnRleHQsIHJlcXVpcmVtZW50cywgcGFyc2VNb2RlLCB0cnVlLCBDb25zdHJ1
Y3RvcktpbmQ6Ok5vbmUsIFN1cGVyQmluZGluZzo6Tm90TmVlZGVkLCBmdW5jdGlvbktleXdvcmRT
dGFydCwgZnVuY3Rpb25JbmZvLCBGdW5jdGlvbkRlZmluaXRpb25UeXBlOjpEZWNsYXJhdGlvbiwg
ZnVuY3Rpb25Db25zdHJ1Y3RvclBhcmFtZXRlcnNFbmRQb3NpdGlvbikpLCAiQ2Fubm90IHBhcnNl
IHRoaXMgYXN5bmMgZnVuY3Rpb24iKTsKKyAgICBmYWlsSWZGYWxzZSgocGFyc2VGdW5jdGlvbklu
Zm8oY29udGV4dCwgcmVxdWlyZW1lbnRzLCBwYXJzZU1vZGUsIHRydWUsIENvbnN0cnVjdG9yS2lu
ZDo6Tm9uZSwgU3VwZXJCaW5kaW5nOjpOb3ROZWVkZWQsIGZ1bmN0aW9uS2V5d29yZFN0YXJ0LCBm
dW5jdGlvbkluZm8sIEZ1bmN0aW9uRGVmaW5pdGlvblR5cGU6OkRlY2xhcmF0aW9uKSksICJDYW5u
b3QgcGFyc2UgdGhpcyBhc3luYyBmdW5jdGlvbiIpOwogICAgIGZhaWxJZkZhbHNlKGZ1bmN0aW9u
SW5mby5uYW1lLCAiQXN5bmMgZnVuY3Rpb24gc3RhdGVtZW50cyBtdXN0IGhhdmUgYSBuYW1lIik7
CiAKICAgICBzdGQ6OnBhaXI8RGVjbGFyYXRpb25SZXN1bHRNYXNrLCBTY29wZVJlZj4gZnVuY3Rp
b25EZWNsYXJhdGlvbiA9IGRlY2xhcmVGdW5jdGlvbihmdW5jdGlvbkluZm8ubmFtZSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuaAppbmRleCA2NTMzZWY5YmU4NjE3OWVlYjlhNWM1
ODFhZGJhN2UwNmJmNjQwODkyLi40YTZlZTI1OWM5NThhMjFiZjU0OTY0ZTViNGU5ZGE3Y2I0YWJi
YzJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmgKQEAgLTg1OSw4ICs4NTks
MTAgQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX2luZGV4OwogfTsKIAotZW51bSBjbGFzcyBB
cmd1bWVudFR5cGUgeyBOb3JtYWwsIFNwcmVhZCB9OwotZW51bSBjbGFzcyBQYXJzaW5nQ29udGV4
dCB7IFByb2dyYW0sIEZ1bmN0aW9uQ29uc3RydWN0b3IsIEV2YWwgfTsKK2VudW0gY2xhc3MgQXJn
dW1lbnRUeXBlIHsKKyAgICBOb3JtYWwsCisgICAgU3ByZWFkCit9OwogCiB0ZW1wbGF0ZSA8dHlw
ZW5hbWUgTGV4ZXJUeXBlPgogY2xhc3MgUGFyc2VyIHsKQEAgLTg3Miw3ICs4NzQsNyBAQCBwdWJs
aWM6CiAgICAgflBhcnNlcigpOwogCiAgICAgdGVtcGxhdGUgPGNsYXNzIFBhcnNlZE5vZGU+Ci0g
ICAgc3RkOjp1bmlxdWVfcHRyPFBhcnNlZE5vZGU+IHBhcnNlKFBhcnNlckVycm9yJiwgY29uc3Qg
SWRlbnRpZmllciYsIFNvdXJjZVBhcnNlTW9kZSwgUGFyc2luZ0NvbnRleHQsIHN0ZDo6b3B0aW9u
YWw8aW50PiBmdW5jdGlvbkNvbnN0cnVjdG9yUGFyYW1ldGVyc0VuZFBvc2l0aW9uID0gc3RkOjpu
dWxsb3B0KTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UGFyc2VkTm9kZT4gcGFyc2UoUGFyc2VyRXJy
b3ImLCBjb25zdCBJZGVudGlmaWVyJiwgU291cmNlUGFyc2VNb2RlKTsKIAogICAgIEpTVGV4dFBv
c2l0aW9uIHBvc2l0aW9uQmVmb3JlTGFzdE5ld2xpbmUoKSBjb25zdCB7IHJldHVybiBtX2xleGVy
LT5wb3NpdGlvbkJlZm9yZUxhc3ROZXdsaW5lKCk7IH0KICAgICBKU1Rva2VuTG9jYXRpb24gbG9j
YXRpb25CZWZvcmVMYXN0VG9rZW4oKSBjb25zdCB7IHJldHVybiBtX2xleGVyLT5sYXN0VG9rZW5M
b2NhdGlvbigpOyB9CkBAIC0xMzEwLDggKzEzMTIsNyBAQCBwcml2YXRlOgogICAgIH0KIAogICAg
IFBhcnNlcigpOwotCi0gICAgU3RyaW5nIHBhcnNlSW5uZXIoY29uc3QgSWRlbnRpZmllciYsIFNv
dXJjZVBhcnNlTW9kZSwgUGFyc2luZ0NvbnRleHQsIHN0ZDo6b3B0aW9uYWw8aW50PiBmdW5jdGlv
bkNvbnN0cnVjdG9yUGFyYW1ldGVyc0VuZFBvc2l0aW9uID0gc3RkOjpudWxsb3B0KTsKKyAgICBT
dHJpbmcgcGFyc2VJbm5lcihjb25zdCBJZGVudGlmaWVyJiwgU291cmNlUGFyc2VNb2RlKTsKIAog
ICAgIHZvaWQgZGlkRmluaXNoUGFyc2luZyhTb3VyY2VFbGVtZW50cyosIERlY2xhcmF0aW9uU3Rh
Y2tzOjpGdW5jdGlvblN0YWNrJiYsIFZhcmlhYmxlRW52aXJvbm1lbnQmLCBVbmlxdWVkU3RyaW5n
SW1wbFB0clNldCYmLCBDb2RlRmVhdHVyZXMsIGludCk7CiAKQEAgLTE1MjMsMTQgKzE1MjQsMTMg
QEAgcHJpdmF0ZToKICAgICB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVTb3VyY2VF
bGVtZW50cyBwYXJzZUdlbmVyYXRvckZ1bmN0aW9uU291cmNlRWxlbWVudHMoVHJlZUJ1aWxkZXIm
LCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBTb3VyY2VFbGVtZW50c01vZGUpOwogICAgIHRlbXBs
YXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZVNvdXJjZUVsZW1lbnRzIHBhcnNlQXN5bmNGdW5j
dGlvblNvdXJjZUVsZW1lbnRzKFRyZWVCdWlsZGVyJiwgU291cmNlUGFyc2VNb2RlLCBib29sIGlz
QXJyb3dGdW5jdGlvbkJvZHlFeHByZXNzaW9uLCBTb3VyY2VFbGVtZW50c01vZGUpOwogICAgIHRl
bXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZVNvdXJjZUVsZW1lbnRzIHBhcnNlQXN5bmNH
ZW5lcmF0b3JGdW5jdGlvblNvdXJjZUVsZW1lbnRzKFRyZWVCdWlsZGVyJiwgU291cmNlUGFyc2VN
b2RlLCBib29sIGlzQXJyb3dGdW5jdGlvbkJvZHlFeHByZXNzaW9uLCBTb3VyY2VFbGVtZW50c01v
ZGUpOwotICAgIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZVNvdXJjZUVsZW1lbnRz
IHBhcnNlU2luZ2xlRnVuY3Rpb24oVHJlZUJ1aWxkZXImLCBzdGQ6Om9wdGlvbmFsPGludD4gZnVu
Y3Rpb25Db25zdHJ1Y3RvclBhcmFtZXRlcnNFbmRQb3NpdGlvbik7CiAgICAgdGVtcGxhdGUgPGNs
YXNzIFRyZWVCdWlsZGVyPiBUcmVlU3RhdGVtZW50IHBhcnNlU3RhdGVtZW50TGlzdEl0ZW0oVHJl
ZUJ1aWxkZXImLCBjb25zdCBJZGVudGlmaWVyKiYgZGlyZWN0aXZlLCB1bnNpZ25lZCogZGlyZWN0
aXZlTGl0ZXJhbExlbmd0aCk7CiAgICAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVl
U3RhdGVtZW50IHBhcnNlU3RhdGVtZW50KFRyZWVCdWlsZGVyJiwgY29uc3QgSWRlbnRpZmllciom
IGRpcmVjdGl2ZSwgdW5zaWduZWQqIGRpcmVjdGl2ZUxpdGVyYWxMZW5ndGggPSAwKTsKICAgICBl
bnVtIGNsYXNzIEV4cG9ydFR5cGUgeyBFeHBvcnRlZCwgTm90RXhwb3J0ZWQgfTsKICAgICB0ZW1w
bGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVTdGF0ZW1lbnQgcGFyc2VDbGFzc0RlY2xhcmF0
aW9uKFRyZWVCdWlsZGVyJiwgRXhwb3J0VHlwZSA9IEV4cG9ydFR5cGU6Ok5vdEV4cG9ydGVkLCBE
ZWNsYXJhdGlvbkRlZmF1bHRDb250ZXh0ID0gRGVjbGFyYXRpb25EZWZhdWx0Q29udGV4dDo6U3Rh
bmRhcmQpOwotICAgIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZVN0YXRlbWVudCBw
YXJzZUZ1bmN0aW9uRGVjbGFyYXRpb24oVHJlZUJ1aWxkZXImLCBFeHBvcnRUeXBlID0gRXhwb3J0
VHlwZTo6Tm90RXhwb3J0ZWQsIERlY2xhcmF0aW9uRGVmYXVsdENvbnRleHQgPSBEZWNsYXJhdGlv
bkRlZmF1bHRDb250ZXh0OjpTdGFuZGFyZCwgc3RkOjpvcHRpb25hbDxpbnQ+IGZ1bmN0aW9uQ29u
c3RydWN0b3JQYXJhbWV0ZXJzRW5kUG9zaXRpb24gPSBzdGQ6Om51bGxvcHQpOworICAgIHRlbXBs
YXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZVN0YXRlbWVudCBwYXJzZUZ1bmN0aW9uRGVjbGFy
YXRpb24oVHJlZUJ1aWxkZXImLCBFeHBvcnRUeXBlID0gRXhwb3J0VHlwZTo6Tm90RXhwb3J0ZWQs
IERlY2xhcmF0aW9uRGVmYXVsdENvbnRleHQgPSBEZWNsYXJhdGlvbkRlZmF1bHRDb250ZXh0OjpT
dGFuZGFyZCk7CiAgICAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlU3RhdGVtZW50
IHBhcnNlRnVuY3Rpb25EZWNsYXJhdGlvblN0YXRlbWVudChUcmVlQnVpbGRlciYsIGJvb2wgaXNB
c3luYywgYm9vbCBwYXJlbnRBbGxvd3NGdW5jdGlvbkRlY2xhcmF0aW9uQXNTdGF0ZW1lbnQpOwot
ICAgIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZVN0YXRlbWVudCBwYXJzZUFzeW5j
RnVuY3Rpb25EZWNsYXJhdGlvbihUcmVlQnVpbGRlciYsIEV4cG9ydFR5cGUgPSBFeHBvcnRUeXBl
OjpOb3RFeHBvcnRlZCwgRGVjbGFyYXRpb25EZWZhdWx0Q29udGV4dCA9IERlY2xhcmF0aW9uRGVm
YXVsdENvbnRleHQ6OlN0YW5kYXJkLCBzdGQ6Om9wdGlvbmFsPGludD4gZnVuY3Rpb25Db25zdHJ1
Y3RvclBhcmFtZXRlcnNFbmRQb3NpdGlvbiA9IHN0ZDo6bnVsbG9wdCk7CisgICAgdGVtcGxhdGUg
PGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlU3RhdGVtZW50IHBhcnNlQXN5bmNGdW5jdGlvbkRlY2xh
cmF0aW9uKFRyZWVCdWlsZGVyJiwgRXhwb3J0VHlwZSA9IEV4cG9ydFR5cGU6Ok5vdEV4cG9ydGVk
LCBEZWNsYXJhdGlvbkRlZmF1bHRDb250ZXh0ID0gRGVjbGFyYXRpb25EZWZhdWx0Q29udGV4dDo6
U3RhbmRhcmQpOwogICAgIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gTkVWRVJfSU5MSU5F
IGJvb2wgbWF5YmVQYXJzZUFzeW5jRnVuY3Rpb25EZWNsYXJhdGlvblN0YXRlbWVudChUcmVlQnVp
bGRlciYgY29udGV4dCwgVHJlZVN0YXRlbWVudCYgcmVzdWx0LCBib29sIHBhcmVudEFsbG93c0Z1
bmN0aW9uRGVjbGFyYXRpb25Bc1N0YXRlbWVudCk7CiAgICAgdGVtcGxhdGUgPGNsYXNzIFRyZWVC
dWlsZGVyPiBUcmVlU3RhdGVtZW50IHBhcnNlVmFyaWFibGVEZWNsYXJhdGlvbihUcmVlQnVpbGRl
ciYsIERlY2xhcmF0aW9uVHlwZSwgRXhwb3J0VHlwZSA9IEV4cG9ydFR5cGU6Ok5vdEV4cG9ydGVk
KTsKICAgICB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVTdGF0ZW1lbnQgcGFyc2VE
b1doaWxlU3RhdGVtZW50KFRyZWVCdWlsZGVyJik7CkBAIC0xNTk5LDcgKzE1OTksNyBAQCBwcml2
YXRlOgogICAgIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gQUxXQVlTX0lOTElORSBUcmVl
RXhwcmVzc2lvbiBjcmVhdGVSZXNvbHZlQW5kVXNlVmFyaWFibGUoVHJlZUJ1aWxkZXImLCBjb25z
dCBJZGVudGlmaWVyKiwgYm9vbCBpc0V2YWwsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiwgY29uc3Qg
SlNUb2tlbkxvY2F0aW9uJik7CiAKICAgICBlbnVtIGNsYXNzIEZ1bmN0aW9uRGVmaW5pdGlvblR5
cGUgeyBFeHByZXNzaW9uLCBEZWNsYXJhdGlvbiwgTWV0aG9kIH07Ci0gICAgdGVtcGxhdGUgPGNs
YXNzIFRyZWVCdWlsZGVyPiBORVZFUl9JTkxJTkUgYm9vbCBwYXJzZUZ1bmN0aW9uSW5mbyhUcmVl
QnVpbGRlciYsIEZ1bmN0aW9uTmFtZVJlcXVpcmVtZW50cywgU291cmNlUGFyc2VNb2RlLCBib29s
IG5hbWVJc0luQ29udGFpbmluZ1Njb3BlLCBDb25zdHJ1Y3RvcktpbmQsIFN1cGVyQmluZGluZywg
aW50IGZ1bmN0aW9uS2V5d29yZFN0YXJ0LCBQYXJzZXJGdW5jdGlvbkluZm88VHJlZUJ1aWxkZXI+
JiwgRnVuY3Rpb25EZWZpbml0aW9uVHlwZSwgc3RkOjpvcHRpb25hbDxpbnQ+IGZ1bmN0aW9uQ29u
c3RydWN0b3JQYXJhbWV0ZXJzRW5kUG9zaXRpb24gPSBzdGQ6Om51bGxvcHQpOworICAgIHRlbXBs
YXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gTkVWRVJfSU5MSU5FIGJvb2wgcGFyc2VGdW5jdGlvbklu
Zm8oVHJlZUJ1aWxkZXImLCBGdW5jdGlvbk5hbWVSZXF1aXJlbWVudHMsIFNvdXJjZVBhcnNlTW9k
ZSwgYm9vbCBuYW1lSXNJbkNvbnRhaW5pbmdTY29wZSwgQ29uc3RydWN0b3JLaW5kLCBTdXBlckJp
bmRpbmcsIGludCBmdW5jdGlvbktleXdvcmRTdGFydCwgUGFyc2VyRnVuY3Rpb25JbmZvPFRyZWVC
dWlsZGVyPiYsIEZ1bmN0aW9uRGVmaW5pdGlvblR5cGUpOwogICAgIAogICAgIEFMV0FZU19JTkxJ
TkUgYm9vbCBpc0Fycm93RnVuY3Rpb25QYXJhbWV0ZXJzKCk7CiAgICAgCkBAIC0xODQ3LDcgKzE4
NDcsNyBAQCBwcml2YXRlOgogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgTGV4ZXJUeXBlPgogdGVtcGxh
dGUgPGNsYXNzIFBhcnNlZE5vZGU+Ci1zdGQ6OnVuaXF1ZV9wdHI8UGFyc2VkTm9kZT4gUGFyc2Vy
PExleGVyVHlwZT46OnBhcnNlKFBhcnNlckVycm9yJiBlcnJvciwgY29uc3QgSWRlbnRpZmllciYg
Y2FsbGVlTmFtZSwgU291cmNlUGFyc2VNb2RlIHBhcnNlTW9kZSwgUGFyc2luZ0NvbnRleHQgcGFy
c2luZ0NvbnRleHQsIHN0ZDo6b3B0aW9uYWw8aW50PiBmdW5jdGlvbkNvbnN0cnVjdG9yUGFyYW1l
dGVyc0VuZFBvc2l0aW9uKQorc3RkOjp1bmlxdWVfcHRyPFBhcnNlZE5vZGU+IFBhcnNlcjxMZXhl
clR5cGU+OjpwYXJzZShQYXJzZXJFcnJvciYgZXJyb3IsIGNvbnN0IElkZW50aWZpZXImIGNhbGxl
ZU5hbWUsIFNvdXJjZVBhcnNlTW9kZSBwYXJzZU1vZGUpCiB7CiAgICAgaW50IGVyckxpbmU7CiAg
ICAgU3RyaW5nIGVyck1zZzsKQEAgLTE4NjQsNyArMTg2NCw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxQ
YXJzZWROb2RlPiBQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2UoUGFyc2VyRXJyb3ImIGVycm9yLCBj
b25zdCBJCiAgICAgQVNTRVJUKG1fc291cmNlLT5zdGFydENvbHVtbigpID4gT3JkaW5hbE51bWJl
cjo6YmVmb3JlRmlyc3QoKSk7CiAgICAgdW5zaWduZWQgc3RhcnRDb2x1bW4gPSBtX3NvdXJjZS0+
c3RhcnRDb2x1bW4oKS56ZXJvQmFzZWRJbnQoKTsKIAotICAgIFN0cmluZyBwYXJzZUVycm9yID0g
cGFyc2VJbm5lcihjYWxsZWVOYW1lLCBwYXJzZU1vZGUsIHBhcnNpbmdDb250ZXh0LCBmdW5jdGlv
bkNvbnN0cnVjdG9yUGFyYW1ldGVyc0VuZFBvc2l0aW9uKTsKKyAgICBTdHJpbmcgcGFyc2VFcnJv
ciA9IHBhcnNlSW5uZXIoY2FsbGVlTmFtZSwgcGFyc2VNb2RlKTsKIAogICAgIGludCBsaW5lTnVt
YmVyID0gbV9sZXhlci0+bGluZU51bWJlcigpOwogICAgIGJvb2wgbGV4RXJyb3IgPSBtX2xleGVy
LT5zYXdFcnJvcigpOwpAQCAtMTk1OSw3ICsxOTU5LDcgQEAgc3RkOjp1bmlxdWVfcHRyPFBhcnNl
ZE5vZGU+IHBhcnNlKAogICAgIHN0ZDo6dW5pcXVlX3B0cjxQYXJzZWROb2RlPiByZXN1bHQ7CiAg
ICAgaWYgKHNvdXJjZS5wcm92aWRlcigpLT5zb3VyY2UoKS5pczhCaXQoKSkgewogICAgICAgICBQ
YXJzZXI8TGV4ZXI8TENoYXI+PiBwYXJzZXIodm0sIHNvdXJjZSwgYnVpbHRpbk1vZGUsIHN0cmlj
dE1vZGUsIHNjcmlwdE1vZGUsIHBhcnNlTW9kZSwgc3VwZXJCaW5kaW5nLCBkZWZhdWx0Q29uc3Ry
dWN0b3JLaW5kLCBkZXJpdmVkQ29udGV4dFR5cGUsIGlzRXZhbE5vZGU8UGFyc2VkTm9kZT4oKSwg
ZXZhbENvbnRleHRUeXBlLCBkZWJ1Z2dlclBhcnNlRGF0YSk7Ci0gICAgICAgIHJlc3VsdCA9IHBh
cnNlci5wYXJzZTxQYXJzZWROb2RlPihlcnJvciwgbmFtZSwgcGFyc2VNb2RlLCBpc0V2YWxOb2Rl
PFBhcnNlZE5vZGU+KCkgPyBQYXJzaW5nQ29udGV4dDo6RXZhbCA6IFBhcnNpbmdDb250ZXh0OjpQ
cm9ncmFtKTsKKyAgICAgICAgcmVzdWx0ID0gcGFyc2VyLnBhcnNlPFBhcnNlZE5vZGU+KGVycm9y
LCBuYW1lLCBwYXJzZU1vZGUpOwogICAgICAgICBpZiAocG9zaXRpb25CZWZvcmVMYXN0TmV3bGlu
ZSkKICAgICAgICAgICAgICpwb3NpdGlvbkJlZm9yZUxhc3ROZXdsaW5lID0gcGFyc2VyLnBvc2l0
aW9uQmVmb3JlTGFzdE5ld2xpbmUoKTsKICAgICAgICAgaWYgKGJ1aWx0aW5Nb2RlID09IEpTUGFy
c2VyQnVpbHRpbk1vZGU6OkJ1aWx0aW4pIHsKQEAgLTE5NzIsNyArMTk3Miw3IEBAIHN0ZDo6dW5p
cXVlX3B0cjxQYXJzZWROb2RlPiBwYXJzZSgKICAgICB9IGVsc2UgewogICAgICAgICBBU1NFUlRf
V0lUSF9NRVNTQUdFKGRlZmF1bHRDb25zdHJ1Y3RvcktpbmQgPT0gQ29uc3RydWN0b3JLaW5kOjpO
b25lLCAiQnVpbHRpbkV4ZWN1dGFibGVzOjpjcmVhdGVEZWZhdWx0Q29uc3RydWN0b3Igc2hvdWxk
IGFsd2F5cyB1c2UgYSA4LWJpdCBzdHJpbmciKTsKICAgICAgICAgUGFyc2VyPExleGVyPFVDaGFy
Pj4gcGFyc2VyKHZtLCBzb3VyY2UsIGJ1aWx0aW5Nb2RlLCBzdHJpY3RNb2RlLCBzY3JpcHRNb2Rl
LCBwYXJzZU1vZGUsIHN1cGVyQmluZGluZywgZGVmYXVsdENvbnN0cnVjdG9yS2luZCwgZGVyaXZl
ZENvbnRleHRUeXBlLCBpc0V2YWxOb2RlPFBhcnNlZE5vZGU+KCksIGV2YWxDb250ZXh0VHlwZSwg
ZGVidWdnZXJQYXJzZURhdGEpOwotICAgICAgICByZXN1bHQgPSBwYXJzZXIucGFyc2U8UGFyc2Vk
Tm9kZT4oZXJyb3IsIG5hbWUsIHBhcnNlTW9kZSwgaXNFdmFsTm9kZTxQYXJzZWROb2RlPigpID8g
UGFyc2luZ0NvbnRleHQ6OkV2YWwgOiBQYXJzaW5nQ29udGV4dDo6UHJvZ3JhbSk7CisgICAgICAg
IHJlc3VsdCA9IHBhcnNlci5wYXJzZTxQYXJzZWROb2RlPihlcnJvciwgbmFtZSwgcGFyc2VNb2Rl
KTsKICAgICAgICAgaWYgKHBvc2l0aW9uQmVmb3JlTGFzdE5ld2xpbmUpCiAgICAgICAgICAgICAq
cG9zaXRpb25CZWZvcmVMYXN0TmV3bGluZSA9IHBhcnNlci5wb3NpdGlvbkJlZm9yZUxhc3ROZXds
aW5lKCk7CiAgICAgfQpAQCAtMTk4NiwzNyArMTk4Niw0IEBAIHN0ZDo6dW5pcXVlX3B0cjxQYXJz
ZWROb2RlPiBwYXJzZSgKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1pbmxpbmUgc3RkOjp1bmlx
dWVfcHRyPFByb2dyYW1Ob2RlPiBwYXJzZUZ1bmN0aW9uRm9yRnVuY3Rpb25Db25zdHJ1Y3RvcihW
TSYgdm0sIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgUGFyc2VyRXJyb3ImIGVycm9yLCBKU1Rl
eHRQb3NpdGlvbiogcG9zaXRpb25CZWZvcmVMYXN0TmV3bGluZSwgc3RkOjpvcHRpb25hbDxpbnQ+
IGZ1bmN0aW9uQ29uc3RydWN0b3JQYXJhbWV0ZXJzRW5kUG9zaXRpb24pCi17Ci0gICAgQVNTRVJU
KCFzb3VyY2UucHJvdmlkZXIoKS0+c291cmNlKCkuaXNOdWxsKCkpOwotCi0gICAgTW9ub3Rvbmlj
VGltZSBiZWZvcmU7Ci0gICAgaWYgKFVOTElLRUxZKE9wdGlvbnM6OnJlcG9ydFBhcnNlVGltZXMo
KSkpCi0gICAgICAgIGJlZm9yZSA9IE1vbm90b25pY1RpbWU6Om5vdygpOwotCi0gICAgSWRlbnRp
ZmllciBuYW1lOwotICAgIGJvb2wgaXNFdmFsTm9kZSA9IGZhbHNlOwotICAgIHN0ZDo6dW5pcXVl
X3B0cjxQcm9ncmFtTm9kZT4gcmVzdWx0OwotICAgIGlmIChzb3VyY2UucHJvdmlkZXIoKS0+c291
cmNlKCkuaXM4Qml0KCkpIHsKLSAgICAgICAgUGFyc2VyPExleGVyPExDaGFyPj4gcGFyc2VyKCZ2
bSwgc291cmNlLCBKU1BhcnNlckJ1aWx0aW5Nb2RlOjpOb3RCdWlsdGluLCBKU1BhcnNlclN0cmlj
dE1vZGU6Ok5vdFN0cmljdCwgSlNQYXJzZXJTY3JpcHRNb2RlOjpDbGFzc2ljLCBTb3VyY2VQYXJz
ZU1vZGU6OlByb2dyYW1Nb2RlLCBTdXBlckJpbmRpbmc6Ok5vdE5lZWRlZCwgQ29uc3RydWN0b3JL
aW5kOjpOb25lLCBEZXJpdmVkQ29udGV4dFR5cGU6Ok5vbmUsIGlzRXZhbE5vZGUsIEV2YWxDb250
ZXh0VHlwZTo6Tm9uZSwgbnVsbHB0cik7Ci0gICAgICAgIHJlc3VsdCA9IHBhcnNlci5wYXJzZTxQ
cm9ncmFtTm9kZT4oZXJyb3IsIG5hbWUsIFNvdXJjZVBhcnNlTW9kZTo6UHJvZ3JhbU1vZGUsIFBh
cnNpbmdDb250ZXh0OjpGdW5jdGlvbkNvbnN0cnVjdG9yLCBmdW5jdGlvbkNvbnN0cnVjdG9yUGFy
YW1ldGVyc0VuZFBvc2l0aW9uKTsKLSAgICAgICAgaWYgKHBvc2l0aW9uQmVmb3JlTGFzdE5ld2xp
bmUpCi0gICAgICAgICAgICAqcG9zaXRpb25CZWZvcmVMYXN0TmV3bGluZSA9IHBhcnNlci5wb3Np
dGlvbkJlZm9yZUxhc3ROZXdsaW5lKCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgUGFyc2VyPExl
eGVyPFVDaGFyPj4gcGFyc2VyKCZ2bSwgc291cmNlLCBKU1BhcnNlckJ1aWx0aW5Nb2RlOjpOb3RC
dWlsdGluLCBKU1BhcnNlclN0cmljdE1vZGU6Ok5vdFN0cmljdCwgSlNQYXJzZXJTY3JpcHRNb2Rl
OjpDbGFzc2ljLCBTb3VyY2VQYXJzZU1vZGU6OlByb2dyYW1Nb2RlLCBTdXBlckJpbmRpbmc6Ok5v
dE5lZWRlZCwgQ29uc3RydWN0b3JLaW5kOjpOb25lLCBEZXJpdmVkQ29udGV4dFR5cGU6Ok5vbmUs
IGlzRXZhbE5vZGUsIEV2YWxDb250ZXh0VHlwZTo6Tm9uZSwgbnVsbHB0cik7Ci0gICAgICAgIHJl
c3VsdCA9IHBhcnNlci5wYXJzZTxQcm9ncmFtTm9kZT4oZXJyb3IsIG5hbWUsIFNvdXJjZVBhcnNl
TW9kZTo6UHJvZ3JhbU1vZGUsIFBhcnNpbmdDb250ZXh0OjpGdW5jdGlvbkNvbnN0cnVjdG9yLCBm
dW5jdGlvbkNvbnN0cnVjdG9yUGFyYW1ldGVyc0VuZFBvc2l0aW9uKTsKLSAgICAgICAgaWYgKHBv
c2l0aW9uQmVmb3JlTGFzdE5ld2xpbmUpCi0gICAgICAgICAgICAqcG9zaXRpb25CZWZvcmVMYXN0
TmV3bGluZSA9IHBhcnNlci5wb3NpdGlvbkJlZm9yZUxhc3ROZXdsaW5lKCk7Ci0gICAgfQotCi0g
ICAgaWYgKFVOTElLRUxZKE9wdGlvbnM6OnJlcG9ydFBhcnNlVGltZXMoKSkpIHsKLSAgICAgICAg
TW9ub3RvbmljVGltZSBhZnRlciA9IE1vbm90b25pY1RpbWU6Om5vdygpOwotICAgICAgICBQYXJz
ZUhhc2ggaGFzaChzb3VyY2UpOwotICAgICAgICBkYXRhTG9nTG4ocmVzdWx0ID8gIlBhcnNlZCAj
IiA6ICJGYWlsZWQgdG8gcGFyc2UgIyIsIGhhc2guaGFzaEZvckNhbGwoKSwgIi8jIiwgaGFzaC5o
YXNoRm9yQ29uc3RydWN0KCksICIgaW4gIiwgKGFmdGVyIC0gYmVmb3JlKS5taWxsaXNlY29uZHMo
KSwgIiBtcy4iKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi0KIH0gLy8gbmFt
ZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlck1v
ZGVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlck1vZGVzLmgKaW5kZXgg
OWU2MzdjNGFhMDk1MzdhNDU2ZWI3YWQzMGQ4MDU0N2IzYTJhYTAwMi4uNjk2MGU1MTUyY2YxY2U5
Y2VmMDNmYjQwNWYwZGQwNzAxZjc5N2MxNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3BhcnNlci9QYXJzZXJNb2Rlcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJz
ZXIvUGFyc2VyTW9kZXMuaApAQCAtMzMsNiArMzMsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIGVudW0g
Y2xhc3MgSlNQYXJzZXJTdHJpY3RNb2RlIHsgTm90U3RyaWN0LCBTdHJpY3QgfTsKIGVudW0gY2xh
c3MgSlNQYXJzZXJCdWlsdGluTW9kZSB7IE5vdEJ1aWx0aW4sIEJ1aWx0aW4gfTsKIGVudW0gY2xh
c3MgSlNQYXJzZXJTY3JpcHRNb2RlIHsgQ2xhc3NpYywgTW9kdWxlIH07CitlbnVtIGNsYXNzIEpT
UGFyc2VyQ29kZVR5cGUgeyBQcm9ncmFtLCBGdW5jdGlvbiwgTW9kdWxlIH07CiAKIGVudW0gY2xh
c3MgQ29uc3RydWN0b3JLaW5kIHsgTm9uZSwgQmFzZSwgRXh0ZW5kcyB9OwogZW51bSBjbGFzcyBT
dXBlckJpbmRpbmcgeyBOZWVkZWQsIE5vdE5lZWRlZCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJUb2tlbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9wYXJzZXIvUGFyc2VyVG9rZW5zLmgKaW5kZXggNTljYjBmYjRjODY4ZGUwY2NmYzJkYTgzZjU5
NDkyNTIzNTYwZmUwMi4uODY5MjYwMzZiM2UzZDA4ZDYxODAxMDBiOWY1NDQxNzkxMzEzNmVmNiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJUb2tlbnMuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlclRva2Vucy5oCkBAIC0xOTMs
NiArMTkzLDcgQEAgZW51bSBKU1Rva2VuVHlwZSB7CiBzdHJ1Y3QgSlNUZXh0UG9zaXRpb24gewog
ICAgIEpTVGV4dFBvc2l0aW9uKCkgPSBkZWZhdWx0OwogICAgIEpTVGV4dFBvc2l0aW9uKGludCBf
bGluZSwgaW50IF9vZmZzZXQsIGludCBfbGluZVN0YXJ0T2Zmc2V0KSA6IGxpbmUoX2xpbmUpLCBv
ZmZzZXQoX29mZnNldCksIGxpbmVTdGFydE9mZnNldChfbGluZVN0YXJ0T2Zmc2V0KSB7IH0KKyAg
ICBKU1RleHRQb3NpdGlvbihjb25zdCBKU1RleHRQb3NpdGlvbiYgb3RoZXIpIDogbGluZShvdGhl
ci5saW5lKSwgb2Zmc2V0KG90aGVyLm9mZnNldCksIGxpbmVTdGFydE9mZnNldChvdGhlci5saW5l
U3RhcnRPZmZzZXQpIHsgfQogCiAgICAgSlNUZXh0UG9zaXRpb24gb3BlcmF0b3IrKGludCBhZGp1
c3RtZW50KSBjb25zdCB7IHJldHVybiBKU1RleHRQb3NpdGlvbihsaW5lLCBvZmZzZXQgKyBhZGp1
c3RtZW50LCBsaW5lU3RhcnRPZmZzZXQpOyB9CiAgICAgSlNUZXh0UG9zaXRpb24gb3BlcmF0b3Ir
KHVuc2lnbmVkIGFkanVzdG1lbnQpIGNvbnN0IHsgcmV0dXJuICp0aGlzICsgc3RhdGljX2Nhc3Q8
aW50PihhZGp1c3RtZW50KTsgfQpAQCAtMjQ1LDYgKzI0NiwxMyBAQCB1bmlvbiBKU1Rva2VuRGF0
YSB7CiAKIHN0cnVjdCBKU1Rva2VuTG9jYXRpb24gewogICAgIEpTVG9rZW5Mb2NhdGlvbigpID0g
ZGVmYXVsdDsKKyAgICBKU1Rva2VuTG9jYXRpb24oY29uc3QgSlNUb2tlbkxvY2F0aW9uJiBsb2Nh
dGlvbikKKyAgICB7CisgICAgICAgIGxpbmUgPSBsb2NhdGlvbi5saW5lOworICAgICAgICBsaW5l
U3RhcnRPZmZzZXQgPSBsb2NhdGlvbi5saW5lU3RhcnRPZmZzZXQ7CisgICAgICAgIHN0YXJ0T2Zm
c2V0ID0gbG9jYXRpb24uc3RhcnRPZmZzZXQ7CisgICAgICAgIGVuZE9mZnNldCA9IGxvY2F0aW9u
LmVuZE9mZnNldDsKKyAgICB9CiAKICAgICBpbnQgbGluZSB7IDAgfTsKICAgICB1bnNpZ25lZCBs
aW5lU3RhcnRPZmZzZXQgeyAwIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cGFyc2VyL1NvdXJjZUNvZGVLZXkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291
cmNlQ29kZUtleS5oCmluZGV4IGIwZjA1NzUwMzljZTdkYTg0YjYwOWQ1MjU3NTkwZWY3MThmZDE2
MmYuLmFiZTQxODEyZDk5ZDI3Y2Y5MzJlM2EzMGQyZmVmYzA2YTU0ZmY5NDAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlQ29kZUtleS5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlQ29kZUtleS5oCkBAIC0yOSw3ICsyOSw2IEBA
CiAjaW5jbHVkZSAiUGFyc2VyTW9kZXMuaCIKICNpbmNsdWRlICJVbmxpbmtlZFNvdXJjZUNvZGUu
aCIKICNpbmNsdWRlIDx3dGYvSGFzaFRyYWl0cy5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoZXIuaD4K
IAogbmFtZXNwYWNlIEpTQyB7CiAKQEAgLTcyLDE3ICs3MSwxOCBAQCBwcml2YXRlOgogCiBjbGFz
cyBTb3VyY2VDb2RlS2V5IHsKIHB1YmxpYzoKLSAgICBTb3VyY2VDb2RlS2V5KCkgPSBkZWZhdWx0
OworICAgIFNvdXJjZUNvZGVLZXkoKQorICAgIHsKKyAgICB9CiAKICAgICBTb3VyY2VDb2RlS2V5
KAogICAgICAgICBjb25zdCBVbmxpbmtlZFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUsIGNvbnN0IFN0
cmluZyYgbmFtZSwgU291cmNlQ29kZVR5cGUgY29kZVR5cGUsIEpTUGFyc2VyU3RyaWN0TW9kZSBz
dHJpY3RNb2RlLCAKICAgICAgICAgSlNQYXJzZXJTY3JpcHRNb2RlIHNjcmlwdE1vZGUsIERlcml2
ZWRDb250ZXh0VHlwZSBkZXJpdmVkQ29udGV4dFR5cGUsIEV2YWxDb250ZXh0VHlwZSBldmFsQ29u
dGV4dFR5cGUsIGJvb2wgaXNBcnJvd0Z1bmN0aW9uQ29udGV4dCwKLSAgICAgICAgRGVidWdnZXJN
b2RlIGRlYnVnZ2VyTW9kZSwgVHlwZVByb2ZpbGVyRW5hYmxlZCB0eXBlUHJvZmlsZXJFbmFibGVk
LCBDb250cm9sRmxvd1Byb2ZpbGVyRW5hYmxlZCBjb250cm9sRmxvd1Byb2ZpbGVyRW5hYmxlZCwg
c3RkOjpvcHRpb25hbDxpbnQ+IGZ1bmN0aW9uQ29uc3RydWN0b3JQYXJhbWV0ZXJzRW5kUG9zaXRp
b24pCisgICAgICAgIERlYnVnZ2VyTW9kZSBkZWJ1Z2dlck1vZGUsIFR5cGVQcm9maWxlckVuYWJs
ZWQgdHlwZVByb2ZpbGVyRW5hYmxlZCwgQ29udHJvbEZsb3dQcm9maWxlckVuYWJsZWQgY29udHJv
bEZsb3dQcm9maWxlckVuYWJsZWQpCiAgICAgICAgICAgICA6IG1fc291cmNlQ29kZShzb3VyY2VD
b2RlKQogICAgICAgICAgICAgLCBtX25hbWUobmFtZSkKICAgICAgICAgICAgICwgbV9mbGFncyhj
b2RlVHlwZSwgc3RyaWN0TW9kZSwgc2NyaXB0TW9kZSwgZGVyaXZlZENvbnRleHRUeXBlLCBldmFs
Q29udGV4dFR5cGUsIGlzQXJyb3dGdW5jdGlvbkNvbnRleHQsIGRlYnVnZ2VyTW9kZSwgdHlwZVBy
b2ZpbGVyRW5hYmxlZCwgY29udHJvbEZsb3dQcm9maWxlckVuYWJsZWQpCi0gICAgICAgICAgICAs
IG1fZnVuY3Rpb25Db25zdHJ1Y3RvclBhcmFtZXRlcnNFbmRQb3NpdGlvbihmdW5jdGlvbkNvbnN0
cnVjdG9yUGFyYW1ldGVyc0VuZFBvc2l0aW9uLnZhbHVlX29yKC0xKSkKLSAgICAgICAgICAgICwg
bV9oYXNoKHNvdXJjZUNvZGUuaGFzaCgpIF4gY29tcHV0ZUhhc2gobV9mbGFncy5iaXRzKCksIG1f
ZnVuY3Rpb25Db25zdHJ1Y3RvclBhcmFtZXRlcnNFbmRQb3NpdGlvbikpCisgICAgICAgICAgICAs
IG1faGFzaChzb3VyY2VDb2RlLmhhc2goKSBeIG1fZmxhZ3MuYml0cygpKQogICAgIHsKICAgICB9
CiAKQEAgLTEwOCw3ICsxMDgsNiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBtX2hhc2ggPT0g
b3RoZXIubV9oYXNoCiAgICAgICAgICAgICAmJiBsZW5ndGgoKSA9PSBvdGhlci5sZW5ndGgoKQog
ICAgICAgICAgICAgJiYgbV9mbGFncyA9PSBvdGhlci5tX2ZsYWdzCi0gICAgICAgICAgICAmJiBt
X2Z1bmN0aW9uQ29uc3RydWN0b3JQYXJhbWV0ZXJzRW5kUG9zaXRpb24gPT0gb3RoZXIubV9mdW5j
dGlvbkNvbnN0cnVjdG9yUGFyYW1ldGVyc0VuZFBvc2l0aW9uCiAgICAgICAgICAgICAmJiBtX25h
bWUgPT0gb3RoZXIubV9uYW1lCiAgICAgICAgICAgICAmJiBzdHJpbmcoKSA9PSBvdGhlci5zdHJp
bmcoKTsKICAgICB9CkBAIC0xMjgsOCArMTI3LDcgQEAgcHJpdmF0ZToKICAgICBVbmxpbmtlZFNv
dXJjZUNvZGUgbV9zb3VyY2VDb2RlOwogICAgIFN0cmluZyBtX25hbWU7CiAgICAgU291cmNlQ29k
ZUZsYWdzIG1fZmxhZ3M7Ci0gICAgaW50IG1fZnVuY3Rpb25Db25zdHJ1Y3RvclBhcmFtZXRlcnNF
bmRQb3NpdGlvbiB7IC0xIH07Ci0gICAgdW5zaWduZWQgbV9oYXNoIHsgMCB9OworICAgIHVuc2ln
bmVkIG1faGFzaDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29kZUNhY2hlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0NvZGVDYWNoZS5jcHAKaW5kZXggNTAwMGE4NGI3Y2M5N2ViZTliYmRlNDlh
NmNkNzg5NmI1ZmI0OGZkNi4uMDBhODI3YTk4NmFjZDk5MzU2ZmZhZDFlYzExMzZkODE2ZDEwYWEy
YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29kZUNhY2hlLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db2RlQ2FjaGUuY3BwCkBAIC01
Nyw4ICs1Nyw3IEBAIFVubGlua2VkQ29kZUJsb2NrVHlwZSogQ29kZUNhY2hlOjpnZXRVbmxpbmtl
ZEdsb2JhbENvZGVCbG9jayhWTSYgdm0sIEV4ZWN1dGFibGVUCiAgICAgICAgIHNvdXJjZSwgU3Ry
aW5nKCksIENhY2hlVHlwZXM8VW5saW5rZWRDb2RlQmxvY2tUeXBlPjo6Y29kZVR5cGUsIHN0cmlj
dE1vZGUsIHNjcmlwdE1vZGUsIAogICAgICAgICBkZXJpdmVkQ29udGV4dFR5cGUsIGV2YWxDb250
ZXh0VHlwZSwgaXNBcnJvd0Z1bmN0aW9uQ29udGV4dCwgZGVidWdnZXJNb2RlLCAKICAgICAgICAg
dm0udHlwZVByb2ZpbGVyKCkgPyBUeXBlUHJvZmlsZXJFbmFibGVkOjpZZXMgOiBUeXBlUHJvZmls
ZXJFbmFibGVkOjpObywgCi0gICAgICAgIHZtLmNvbnRyb2xGbG93UHJvZmlsZXIoKSA/IENvbnRy
b2xGbG93UHJvZmlsZXJFbmFibGVkOjpZZXMgOiBDb250cm9sRmxvd1Byb2ZpbGVyRW5hYmxlZDo6
Tm8sCi0gICAgICAgIHN0ZDo6bnVsbG9wdCk7CisgICAgICAgIHZtLmNvbnRyb2xGbG93UHJvZmls
ZXIoKSA/IENvbnRyb2xGbG93UHJvZmlsZXJFbmFibGVkOjpZZXMgOiBDb250cm9sRmxvd1Byb2Zp
bGVyRW5hYmxlZDo6Tm8pOwogICAgIFNvdXJjZUNvZGVWYWx1ZSogY2FjaGUgPSBtX3NvdXJjZUNv
ZGUuZmluZENhY2hlQW5kVXBkYXRlQWdlKGtleSk7CiAgICAgaWYgKGNhY2hlICYmIE9wdGlvbnM6
OnVzZUNvZGVDYWNoZSgpKSB7CiAgICAgICAgIFVubGlua2VkQ29kZUJsb2NrVHlwZSogdW5saW5r
ZWRDb2RlQmxvY2sgPSBqc0Nhc3Q8VW5saW5rZWRDb2RlQmxvY2tUeXBlKj4oY2FjaGUtPmNlbGwu
Z2V0KCkpOwpAQCAtOTYsNyArOTUsNyBAQCBVbmxpbmtlZE1vZHVsZVByb2dyYW1Db2RlQmxvY2sq
IENvZGVDYWNoZTo6Z2V0VW5saW5rZWRNb2R1bGVQcm9ncmFtQ29kZUJsb2NrKFZNJgogICAgIHJl
dHVybiBnZXRVbmxpbmtlZEdsb2JhbENvZGVCbG9jazxVbmxpbmtlZE1vZHVsZVByb2dyYW1Db2Rl
QmxvY2s+KHZtLCBleGVjdXRhYmxlLCBzb3VyY2UsIEpTUGFyc2VyU3RyaWN0TW9kZTo6U3RyaWN0
LCBKU1BhcnNlclNjcmlwdE1vZGU6Ok1vZHVsZSwgZGVidWdnZXJNb2RlLCBlcnJvciwgRXZhbENv
bnRleHRUeXBlOjpOb25lKTsKIH0KIAotVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqIENvZGVD
YWNoZTo6Z2V0VW5saW5rZWRHbG9iYWxGdW5jdGlvbkV4ZWN1dGFibGUoVk0mIHZtLCBjb25zdCBJ
ZGVudGlmaWVyJiBuYW1lLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIERlYnVnZ2VyTW9kZSBk
ZWJ1Z2dlck1vZGUsIHN0ZDo6b3B0aW9uYWw8aW50PiBmdW5jdGlvbkNvbnN0cnVjdG9yUGFyYW1l
dGVyc0VuZFBvc2l0aW9uLCBQYXJzZXJFcnJvciYgZXJyb3IpCitVbmxpbmtlZEZ1bmN0aW9uRXhl
Y3V0YWJsZSogQ29kZUNhY2hlOjpnZXRVbmxpbmtlZEdsb2JhbEZ1bmN0aW9uRXhlY3V0YWJsZShW
TSYgdm0sIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwg
RGVidWdnZXJNb2RlIGRlYnVnZ2VyTW9kZSwgUGFyc2VyRXJyb3ImIGVycm9yKQogewogICAgIGJv
b2wgaXNBcnJvd0Z1bmN0aW9uQ29udGV4dCA9IGZhbHNlOwogICAgIFNvdXJjZUNvZGVLZXkga2V5
KApAQCAtMTA4LDggKzEwNyw3IEBAIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiBDb2RlQ2Fj
aGU6OmdldFVubGlua2VkR2xvYmFsRnVuY3Rpb25FeGVjdXRhYmxlKFZNJiB2CiAgICAgICAgIGlz
QXJyb3dGdW5jdGlvbkNvbnRleHQsCiAgICAgICAgIGRlYnVnZ2VyTW9kZSwgCiAgICAgICAgIHZt
LnR5cGVQcm9maWxlcigpID8gVHlwZVByb2ZpbGVyRW5hYmxlZDo6WWVzIDogVHlwZVByb2ZpbGVy
RW5hYmxlZDo6Tm8sIAotICAgICAgICB2bS5jb250cm9sRmxvd1Byb2ZpbGVyKCkgPyBDb250cm9s
Rmxvd1Byb2ZpbGVyRW5hYmxlZDo6WWVzIDogQ29udHJvbEZsb3dQcm9maWxlckVuYWJsZWQ6Ok5v
LAotICAgICAgICBmdW5jdGlvbkNvbnN0cnVjdG9yUGFyYW1ldGVyc0VuZFBvc2l0aW9uKTsKKyAg
ICAgICAgdm0uY29udHJvbEZsb3dQcm9maWxlcigpID8gQ29udHJvbEZsb3dQcm9maWxlckVuYWJs
ZWQ6OlllcyA6IENvbnRyb2xGbG93UHJvZmlsZXJFbmFibGVkOjpObyk7CiAgICAgU291cmNlQ29k
ZVZhbHVlKiBjYWNoZSA9IG1fc291cmNlQ29kZS5maW5kQ2FjaGVBbmRVcGRhdGVBZ2Uoa2V5KTsK
ICAgICBpZiAoY2FjaGUgJiYgT3B0aW9uczo6dXNlQ29kZUNhY2hlKCkpIHsKICAgICAgICAgVW5s
aW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqIGV4ZWN1dGFibGUgPSBqc0Nhc3Q8VW5saW5rZWRGdW5j
dGlvbkV4ZWN1dGFibGUqPihjYWNoZS0+Y2VsbC5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Db2RlQ2FjaGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0NvZGVDYWNoZS5oCmluZGV4IDUzZTNmZGE1MWUyZTM3ZDdlMGRkMDkyYzBmZGE5
NTc5ZmJhYzczZDQuLmFiNzBiNjUzOTdmYjMzNWQyYTEyM2IyYTZiM2FlM2FlNjNjODFkOWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvZGVDYWNoZS5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvZGVDYWNoZS5oCkBAIC0xOTQsNyArMTk0
LDcgQEAgcHVibGljOgogICAgIFVubGlua2VkUHJvZ3JhbUNvZGVCbG9jayogZ2V0VW5saW5rZWRQ
cm9ncmFtQ29kZUJsb2NrKFZNJiwgUHJvZ3JhbUV4ZWN1dGFibGUqLCBjb25zdCBTb3VyY2VDb2Rl
JiwgSlNQYXJzZXJTdHJpY3RNb2RlLCBEZWJ1Z2dlck1vZGUsIFBhcnNlckVycm9yJik7CiAgICAg
VW5saW5rZWRFdmFsQ29kZUJsb2NrKiBnZXRVbmxpbmtlZEV2YWxDb2RlQmxvY2soVk0mLCBJbmRp
cmVjdEV2YWxFeGVjdXRhYmxlKiwgY29uc3QgU291cmNlQ29kZSYsIEpTUGFyc2VyU3RyaWN0TW9k
ZSwgRGVidWdnZXJNb2RlLCBQYXJzZXJFcnJvciYsIEV2YWxDb250ZXh0VHlwZSk7CiAgICAgVW5s
aW5rZWRNb2R1bGVQcm9ncmFtQ29kZUJsb2NrKiBnZXRVbmxpbmtlZE1vZHVsZVByb2dyYW1Db2Rl
QmxvY2soVk0mLCBNb2R1bGVQcm9ncmFtRXhlY3V0YWJsZSosIGNvbnN0IFNvdXJjZUNvZGUmLCBE
ZWJ1Z2dlck1vZGUsIFBhcnNlckVycm9yJik7Ci0gICAgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFi
bGUqIGdldFVubGlua2VkR2xvYmFsRnVuY3Rpb25FeGVjdXRhYmxlKFZNJiwgY29uc3QgSWRlbnRp
ZmllciYsIGNvbnN0IFNvdXJjZUNvZGUmLCBEZWJ1Z2dlck1vZGUsIHN0ZDo6b3B0aW9uYWw8aW50
PiBmdW5jdGlvbkNvbnN0cnVjdG9yUGFyYW1ldGVyc0VuZFBvc2l0aW9uLCBQYXJzZXJFcnJvciYp
OworICAgIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiBnZXRVbmxpbmtlZEdsb2JhbEZ1bmN0
aW9uRXhlY3V0YWJsZShWTSYsIGNvbnN0IElkZW50aWZpZXImLCBjb25zdCBTb3VyY2VDb2RlJiwg
RGVidWdnZXJNb2RlLCBQYXJzZXJFcnJvciYpOwogCiAgICAgdm9pZCBjbGVhcigpIHsgbV9zb3Vy
Y2VDb2RlLmNsZWFyKCk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmNwcAppbmRleCBjNDI4YjBlZWJkYmNiZWJhYzgwZmUw
ZWM3NjA4ZTkxODczMDI5NDQxLi4yNjUwNDlmOTk0MDE4YTczOWEyYmZlOTA3ZmVkNGQxOTVlY2Zl
MzkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkNv
bnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlv
bkNvbnN0cnVjdG9yLmNwcApAQCAtMTY5LDcgKzE2OSw3IEBAIEpTT2JqZWN0KiBjb25zdHJ1Y3RG
dW5jdGlvblNraXBwaW5nRXZhbEVuYWJsZWRDaGVjaygKIAogICAgIFNvdXJjZUNvZGUgc291cmNl
ID0gbWFrZVNvdXJjZShwcm9ncmFtLCBzb3VyY2VPcmlnaW4sIHNvdXJjZVVSTCwgcG9zaXRpb24p
OwogICAgIEpTT2JqZWN0KiBleGNlcHRpb24gPSBudWxscHRyOwotICAgIEZ1bmN0aW9uRXhlY3V0
YWJsZSogZnVuY3Rpb24gPSBGdW5jdGlvbkV4ZWN1dGFibGU6OmZyb21HbG9iYWxDb2RlKGZ1bmN0
aW9uTmFtZSwgKmV4ZWMsIHNvdXJjZSwgZXhjZXB0aW9uLCBvdmVycmlkZUxpbmVOdW1iZXIsIHN0
ZDo6bnVsbG9wdCk7CisgICAgRnVuY3Rpb25FeGVjdXRhYmxlKiBmdW5jdGlvbiA9IEZ1bmN0aW9u
RXhlY3V0YWJsZTo6ZnJvbUdsb2JhbENvZGUoZnVuY3Rpb25OYW1lLCAqZXhlYywgc291cmNlLCBl
eGNlcHRpb24sIG92ZXJyaWRlTGluZU51bWJlcik7CiAgICAgaWYgKCFmdW5jdGlvbikgewogICAg
ICAgICBBU1NFUlQoZXhjZXB0aW9uKTsKICAgICAgICAgcmV0dXJuIHRocm93RXhjZXB0aW9uKGV4
ZWMsIHNjb3BlLCBleGNlcHRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvRnVuY3Rpb25FeGVjdXRhYmxlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0Z1bmN0aW9uRXhlY3V0YWJsZS5jcHAKaW5kZXggZWVkM2MyMTZjYTNiYjc5NjlmYTZm
ODg4NThkYzY5NWQ2NmU1ZDExNC4uZDU3NzBkNGEwNjQ5YzUwZDIwOTRiN2YxNmFlODk4ZmFiOTc3
ODQ3MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25F
eGVjdXRhYmxlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlv
bkV4ZWN1dGFibGUuY3BwCkBAIC05NCwxMSArOTQsMTEgQEAgdm9pZCBGdW5jdGlvbkV4ZWN1dGFi
bGU6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKIAog
RnVuY3Rpb25FeGVjdXRhYmxlKiBGdW5jdGlvbkV4ZWN1dGFibGU6OmZyb21HbG9iYWxDb2RlKAog
ICAgIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIEV4ZWNTdGF0ZSYgZXhlYywgY29uc3QgU291cmNl
Q29kZSYgc291cmNlLCAKLSAgICBKU09iamVjdComIGV4Y2VwdGlvbiwgaW50IG92ZXJyaWRlTGlu
ZU51bWJlciwgc3RkOjpvcHRpb25hbDxpbnQ+IGZ1bmN0aW9uQ29uc3RydWN0b3JQYXJhbWV0ZXJz
RW5kUG9zaXRpb24pCisgICAgSlNPYmplY3QqJiBleGNlcHRpb24sIGludCBvdmVycmlkZUxpbmVO
dW1iZXIpCiB7CiAgICAgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqIHVubGlua2VkRXhlY3V0
YWJsZSA9IAogICAgICAgICBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZTo6ZnJvbUdsb2JhbENv
ZGUoCi0gICAgICAgICAgICBuYW1lLCBleGVjLCBzb3VyY2UsIGV4Y2VwdGlvbiwgb3ZlcnJpZGVM
aW5lTnVtYmVyLCBmdW5jdGlvbkNvbnN0cnVjdG9yUGFyYW1ldGVyc0VuZFBvc2l0aW9uKTsKKyAg
ICAgICAgICAgIG5hbWUsIGV4ZWMsIHNvdXJjZSwgZXhjZXB0aW9uLCBvdmVycmlkZUxpbmVOdW1i
ZXIpOwogICAgIGlmICghdW5saW5rZWRFeGVjdXRhYmxlKQogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25F
eGVjdXRhYmxlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkV4ZWN1
dGFibGUuaAppbmRleCA2YmE4NWExNTJjNzc0ZTMxYzcxYzcxMmUyYjI2YjVlYWQzMGJmOTVlLi4z
YTkzYjU4NjcyNTA3ZTE0YWRjZWI0NjI1MDM3NTMyNmIyODY5NjljIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkV4ZWN1dGFibGUuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkV4ZWN1dGFibGUuaApAQCAtNTUsNyAr
NTUsNyBAQCBwdWJsaWM6CiAgICAgfQogICAgIHN0YXRpYyBGdW5jdGlvbkV4ZWN1dGFibGUqIGZy
b21HbG9iYWxDb2RlKAogICAgICAgICBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBFeGVjU3RhdGUm
LCBjb25zdCBTb3VyY2VDb2RlJiwgCi0gICAgICAgIEpTT2JqZWN0KiYgZXhjZXB0aW9uLCBpbnQg
b3ZlcnJpZGVMaW5lTnVtYmVyLCBzdGQ6Om9wdGlvbmFsPGludD4gZnVuY3Rpb25Db25zdHJ1Y3Rv
clBhcmFtZXRlcnNFbmRQb3NpdGlvbik7CisgICAgICAgIEpTT2JqZWN0KiYgZXhjZXB0aW9uLCBp
bnQgb3ZlcnJpZGVMaW5lTnVtYmVyKTsKIAogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDZWxs
Kik7CiAgICAgICAgIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>