<?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>32098</bug_id>
          
          <creation_ts>2009-12-02 17:31:15 -0800</creation_ts>
          <short_desc>Web Inspector frontend heap allocates ScriptFunctionCall which is unsafe</short_desc>
          <delta_ts>2009-12-02 21:23:49 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Oliver Hunt">oliver</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>168223</commentid>
    <comment_count>0</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-12-02 17:31:15 -0800</bug_when>
    <thetext>The Web Inspector heap allocates ScriptFunctionCall, which is unsafe as the ScriptFunctionCall contains arguments that need to be protected from GC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>168242</commentid>
    <comment_count>1</comment_count>
      <attachid>44203</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-12-02 20:09:35 -0800</bug_when>
    <thetext>Created attachment 44203
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>168246</commentid>
    <comment_count>2</comment_count>
      <attachid>44203</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2009-12-02 20:27:00 -0800</bug_when>
    <thetext>Comment on attachment 44203
Patch

Please expand out the macro as discussed.

r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>168276</commentid>
    <comment_count>3</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-12-02 21:23:49 -0800</bug_when>
    <thetext>Committed r51621</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>44203</attachid>
            <date>2009-12-02 20:09:35 -0800</date>
            <delta_ts>2009-12-02 20:27:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-32098-20091202200934.patch</filename>
            <type>text/plain</type>
            <size>24988</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MTQ1MGExMi4uYjAzNmZlZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2NyBAQAorMjAwOS0xMi0wMiAgT2xpdmVyIEh1bnQg
IDxvbGl2ZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFdlYiBJbnNwZWN0b3IgZnJvbnRlbmQgaGVhcCBhbGxvY2F0ZXMgU2NyaXB0
RnVuY3Rpb25DYWxsIHdoaWNoIGlzIHVuc2FmZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzIwOTgKKworICAgICAgICBGaXggaXMgc2ltcGx5IHRvIG1h
a2UgdGhlIFNjcmlwdEZ1bmN0aW9uQ2FsbCBzdGFjayBhbGxvY2F0ZWQgYXMgbmF0dXJlIGludGVu
ZGVkLgorICAgICAgICBEb2luZyB0aGlzIHJlcXVpcmVkIGFkZGluZyBhbiBhcHBlbmRBcmd1bWVu
dChjaGFyKikgdG8gU2NyaXB0RnVuY3Rpb25DYWxsIHNvCisgICAgICAgIHRoYXQgYW4gZXhwbGlj
aXQgU3RyaW5nIGNhc3Qgd291bGQgbm90IGJlIG5lY2Vzc2FyeS4KKworICAgICAgICBUbyBwcmV2
ZW50IHNvbWV0aGluZyBsaWtlIHRoaXMgaGFwcGVuaW5nIGFnYWluIGluIGZ1dHVyZSBpJ3ZlIGFk
ZGVkIHByaXZhdGUKKyAgICAgICAgb3BlcmF0b3IgbmV3IGltcGxlbWVudGF0aW9ucyB0byBTY3Jp
cHRGdW5jdGlvbkNhbGwgbWFraW5nIHRoaXMgdHlwZSBvZiBtaXN0YWtlCisgICAgICAgIHByb2R1
Y2UgZXJyb3JzIHdoZW4gY29tcGlsaW5nLgorCisgICAgICAgIFRlc3QgY2FzZTogSW5zcGVjdG9y
IHRlc3RzIG5vdyBwYXNzIHdpdGggR0Mgb24gZXZlcnkgYWxsb2MgZW5hYmxlZC4KKworICAgICAg
ICAqIGJpbmRpbmdzL2pzL1NjcmlwdEZ1bmN0aW9uQ2FsbC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JpcHRGdW5jdGlvbkNhbGw6OmFwcGVuZEFyZ3VtZW50KToKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9TY3JpcHRGdW5jdGlvbkNhbGwuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEZ1bmN0
aW9uQ2FsbDo6b3BlcmF0b3IgbmV3KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEZ1bmN0aW9u
Q2FsbDo6b3BlcmF0b3IgbmV3W10pOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9u
dGVuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZDo6YWRkQ29uc29s
ZU1lc3NhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmQ6OnVwZGF0ZUNv
bnNvbGVNZXNzYWdlUmVwZWF0Q291bnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJv
bnRlbmQ6OmFkZFJlc291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5k
Ojp1cGRhdGVSZXNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZDo6
cmVtb3ZlUmVzb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmQ6OnVw
ZGF0ZUZvY3VzZWROb2RlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kOjpz
ZXRBdHRhY2hlZFdpbmRvdyk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZDo6
YWRkUmVjb3JkVG9UaW1lbGluZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVu
ZDo6cGFyc2VkU2NyaXB0U291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250
ZW5kOjpmYWlsZWRUb1BhcnNlU2NyaXB0U291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvckZyb250ZW5kOjphZGRQcm9maWxlSGVhZGVyKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvckZyb250ZW5kOjpzZXRSZWNvcmRpbmdQcm9maWxlKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvckZyb250ZW5kOjpkaWRHZXRQcm9maWxlSGVhZGVycyk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JGcm9udGVuZDo6ZGlkR2V0UHJvZmlsZSk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JGcm9udGVuZDo6cGF1c2VkU2NyaXB0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvckZyb250ZW5kOjpzZXREb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JG
cm9udGVuZDo6c2V0RGV0YWNoZWRSb290KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZy
b250ZW5kOjpzZXRDaGlsZE5vZGVzKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250
ZW5kOjpjaGlsZE5vZGVDb3VudFVwZGF0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
RnJvbnRlbmQ6OmNoaWxkTm9kZUluc2VydGVkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckZyb250ZW5kOjpjaGlsZE5vZGVSZW1vdmVkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckZyb250ZW5kOjphdHRyaWJ1dGVzVXBkYXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JGcm9udGVuZDo6ZGlkUmVtb3ZlTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JG
cm9udGVuZDo6ZGlkR2V0Q2hpbGROb2Rlcyk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JG
cm9udGVuZDo6ZGlkQXBwbHlEb21DaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
RnJvbnRlbmQ6OmRpZEdldEV2ZW50TGlzdGVuZXJzRm9yTm9kZSk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JGcm9udGVuZDo6ZGlkR2V0Q29va2llcyk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JGcm9udGVuZDo6ZGlkRGlzcGF0Y2hPbkluamVjdGVkU2NyaXB0KToKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kOjphZGREYXRhYmFzZSk6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JGcm9udGVuZDo6c2VsZWN0RGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yRnJvbnRlbmQ6OmRpZEdldERhdGFiYXNlVGFibGVOYW1lcyk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZDo6YWRkRE9NU3RvcmFnZSk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZDo6c2VsZWN0RE9NU3RvcmFnZSk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZDo6ZGlkR2V0RE9NU3RvcmFnZUVudHJpZXMpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmQ6OmRpZFNldERPTVN0b3JhZ2VJdGVtKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kOjpkaWRSZW1vdmVET01TdG9yYWdl
SXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZDo6dXBkYXRlRE9NU3Rv
cmFnZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZDo6YWRkTm9kZXNUb1Nl
YXJjaFJlc3VsdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZDo6ZXZhbHVh
dGVGb3JUZXN0SW5Gcm9udGVuZCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckZyb250
ZW5kLmg6CisKIDIwMDktMTItMDIgIERhdmUgSHlhdHQgIDxoeWF0dEBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NjcmlwdEZ1bmN0aW9uQ2FsbC5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL1Njcmlw
dEZ1bmN0aW9uQ2FsbC5jcHAKaW5kZXggM2JhYzA4OS4uZTM4YWNiOSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9TY3JpcHRGdW5jdGlvbkNhbGwuY3BwCisrKyBiL1dlYkNvcmUvYmlu
ZGluZ3MvanMvU2NyaXB0RnVuY3Rpb25DYWxsLmNwcApAQCAtNzIsNiArNzIsMTMgQEAgdm9pZCBT
Y3JpcHRGdW5jdGlvbkNhbGw6OmFwcGVuZEFyZ3VtZW50KGNvbnN0IFN0cmluZyYgYXJndW1lbnQp
CiAKIHZvaWQgU2NyaXB0RnVuY3Rpb25DYWxsOjphcHBlbmRBcmd1bWVudChjb25zdCBKU0M6OlVT
dHJpbmcmIGFyZ3VtZW50KQogeworICAgIEpTTG9jayBsb2NrKFNpbGVuY2VBc3NlcnRpb25zT25s
eSk7CisgICAgbV9hcmd1bWVudHMuYXBwZW5kKGpzU3RyaW5nKG1fZXhlYywgYXJndW1lbnQpKTsK
K30KKwordm9pZCBTY3JpcHRGdW5jdGlvbkNhbGw6OmFwcGVuZEFyZ3VtZW50KGNvbnN0IGNoYXIq
IGFyZ3VtZW50KQoreworICAgIEpTTG9jayBsb2NrKFNpbGVuY2VBc3NlcnRpb25zT25seSk7CiAg
ICAgbV9hcmd1bWVudHMuYXBwZW5kKGpzU3RyaW5nKG1fZXhlYywgYXJndW1lbnQpKTsKIH0KIApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRGdW5jdGlvbkNhbGwuaCBiL1dl
YkNvcmUvYmluZGluZ3MvanMvU2NyaXB0RnVuY3Rpb25DYWxsLmgKaW5kZXggZTEwYzc1OC4uN2M1
MDc0ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRGdW5jdGlvbkNhbGwu
aAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdEZ1bmN0aW9uQ2FsbC5oCkBAIC01NSw2
ICs1NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBhcHBlbmRBcmd1bWVu
dChjb25zdCBTY3JpcHRTdHJpbmcmKTsKICAgICAgICAgdm9pZCBhcHBlbmRBcmd1bWVudChjb25z
dCBTY3JpcHRWYWx1ZSYpOwogICAgICAgICB2b2lkIGFwcGVuZEFyZ3VtZW50KGNvbnN0IFN0cmlu
ZyYpOworICAgICAgICB2b2lkIGFwcGVuZEFyZ3VtZW50KGNvbnN0IGNoYXIqKTsKICAgICAgICAg
dm9pZCBhcHBlbmRBcmd1bWVudChjb25zdCBKU0M6OlVTdHJpbmcmKTsKICAgICAgICAgdm9pZCBh
cHBlbmRBcmd1bWVudChKU0M6OkpTVmFsdWUpOwogICAgICAgICB2b2lkIGFwcGVuZEFyZ3VtZW50
KGxvbmcpOwpAQCAtNzIsNiArNzMsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBT
Y3JpcHRPYmplY3QgbV90aGlzT2JqZWN0OwogICAgICAgICBTdHJpbmcgbV9uYW1lOwogICAgICAg
ICBKU0M6Ok1hcmtlZEFyZ3VtZW50QnVmZmVyIG1fYXJndW1lbnRzOworCisgICAgcHJpdmF0ZToK
KyAgICAgICAgLy8gTWFya2VkQXJndW1lbnRCdWZmZXIgbXVzdCBiZSBzdGFjayBhbGxvY2F0ZWQs
IHNvIHByZXZlbnQgaGVhcAorICAgICAgICAvLyBhbGxvYyBvZiBTY3JpcHRGdW5jdGlvbkNhbGwg
YXMgd2VsbC4KKyAgICAgICAgdm9pZCogb3BlcmF0b3IgbmV3KHNpemVfdCkgeyBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KDB4YmFkYmVlZik7IH0K
KyAgICAgICAgdm9pZCogb3BlcmF0b3IgbmV3W10oc2l6ZV90KSB7IEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oMHhiYWRiZWVmKTsgfQogICAgIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckZyb250ZW5kLmNwcCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250
ZW5kLmNwcAppbmRleCBiYWE4MzE4Li5lNjczMDVlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JGcm9udGVuZC5jcHAKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yRnJvbnRlbmQuY3BwCkBAIC01MCw2ICs1MCwxMCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKKyNkZWZpbmUgSW5zcGVjdG9yRnVuY3Rpb25DYWxsKGNhbGxOYW1lLCBmdW5jdGlvbk5hbWUp
IFwKKyAgICBTY3JpcHRGdW5jdGlvbkNhbGwgY2FsbE5hbWUobV9zY3JpcHRTdGF0ZSwgbV93ZWJJ
bnNwZWN0b3IsICJkaXNwYXRjaCIpOyBcCisgICAgY2FsbE5hbWUuYXBwZW5kQXJndW1lbnQoZnVu
Y3Rpb25OYW1lKTsKKwogSW5zcGVjdG9yRnJvbnRlbmQ6Okluc3BlY3RvckZyb250ZW5kKEluc3Bl
Y3RvckNvbnRyb2xsZXIqIGluc3BlY3RvckNvbnRyb2xsZXIsIFNjcmlwdFN0YXRlKiBzY3JpcHRT
dGF0ZSwgU2NyaXB0T2JqZWN0IHdlYkluc3BlY3RvcikKICAgICA6IG1faW5zcGVjdG9yQ29udHJv
bGxlcihpbnNwZWN0b3JDb250cm9sbGVyKQogICAgICwgbV9zY3JpcHRTdGF0ZShzY3JpcHRTdGF0
ZSkKQEAgLTc5LDI0ICs4MywyNCBAQCB2b2lkIEluc3BlY3RvckZyb250ZW5kOjpkaWRDb21taXRM
b2FkKCkKIAogdm9pZCBJbnNwZWN0b3JGcm9udGVuZDo6YWRkQ29uc29sZU1lc3NhZ2UoY29uc3Qg
U2NyaXB0T2JqZWN0JiBtZXNzYWdlT2JqLCBjb25zdCBWZWN0b3I8U2NyaXB0U3RyaW5nPiYgZnJh
bWVzLCBjb25zdCBWZWN0b3I8U2NyaXB0VmFsdWU+IHdyYXBwZWRBcmd1bWVudHMsIGNvbnN0IFN0
cmluZyYgbWVzc2FnZSkKIHsKLSAgICBPd25QdHI8U2NyaXB0RnVuY3Rpb25DYWxsPiBmdW5jdGlv
bihuZXdGdW5jdGlvbkNhbGwoImFkZENvbnNvbGVNZXNzYWdlIikpOwotICAgIGZ1bmN0aW9uLT5h
cHBlbmRBcmd1bWVudChtZXNzYWdlT2JqKTsKKyAgICBJbnNwZWN0b3JGdW5jdGlvbkNhbGwoZnVu
Y3Rpb24sICJhZGRDb25zb2xlTWVzc2FnZSIpOworICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50
KG1lc3NhZ2VPYmopOwogICAgIGlmICghZnJhbWVzLmlzRW1wdHkoKSkgewogICAgICAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgZnJhbWVzLnNpemUoKTsgKytpKQotICAgICAgICAgICAgZnVu
Y3Rpb24tPmFwcGVuZEFyZ3VtZW50KGZyYW1lc1tpXSk7CisgICAgICAgICAgICBmdW5jdGlvbi5h
cHBlbmRBcmd1bWVudChmcmFtZXNbaV0pOwogICAgIH0gZWxzZSBpZiAoIXdyYXBwZWRBcmd1bWVu
dHMuaXNFbXB0eSgpKSB7CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCB3cmFwcGVk
QXJndW1lbnRzLnNpemUoKTsgKytpKQotICAgICAgICAgICAgZnVuY3Rpb24tPmFwcGVuZEFyZ3Vt
ZW50KG1faW5zcGVjdG9yQ29udHJvbGxlci0+d3JhcE9iamVjdCh3cmFwcGVkQXJndW1lbnRzW2ld
LCAiY29uc29sZSIpKTsKKyAgICAgICAgICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KG1faW5z
cGVjdG9yQ29udHJvbGxlci0+d3JhcE9iamVjdCh3cmFwcGVkQXJndW1lbnRzW2ldLCAiY29uc29s
ZSIpKTsKICAgICB9IGVsc2UKLSAgICAgICAgZnVuY3Rpb24tPmFwcGVuZEFyZ3VtZW50KG1lc3Nh
Z2UpOwotICAgIGZ1bmN0aW9uLT5jYWxsKCk7CisgICAgICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3Vt
ZW50KG1lc3NhZ2UpOworICAgIGZ1bmN0aW9uLmNhbGwoKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JG
cm9udGVuZDo6dXBkYXRlQ29uc29sZU1lc3NhZ2VSZXBlYXRDb3VudChjb25zdCBpbnQgY291bnQp
CiB7Ci0gICAgT3duUHRyPFNjcmlwdEZ1bmN0aW9uQ2FsbD4gZnVuY3Rpb24obmV3RnVuY3Rpb25D
YWxsKCJ1cGRhdGVDb25zb2xlTWVzc2FnZVJlcGVhdENvdW50IikpOwotICAgIGZ1bmN0aW9uLT5h
cHBlbmRBcmd1bWVudChjb3VudCk7Ci0gICAgZnVuY3Rpb24tPmNhbGwoKTsKKyAgICBJbnNwZWN0
b3JGdW5jdGlvbkNhbGwoZnVuY3Rpb24sICJ1cGRhdGVDb25zb2xlTWVzc2FnZVJlcGVhdENvdW50
Iik7CisgICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQoY291bnQpOworICAgIGZ1bmN0aW9uLmNh
bGwoKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JGcm9udGVuZDo6Y2xlYXJDb25zb2xlTWVzc2FnZXMo
KQpAQCAtMTA2LDQzICsxMTAsNDMgQEAgdm9pZCBJbnNwZWN0b3JGcm9udGVuZDo6Y2xlYXJDb25z
b2xlTWVzc2FnZXMoKQogCiBib29sIEluc3BlY3RvckZyb250ZW5kOjphZGRSZXNvdXJjZSh1bnNp
Z25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFNjcmlwdE9iamVjdCYgcmVzb3VyY2VPYmopCiB7
Ci0gICAgT3duUHRyPFNjcmlwdEZ1bmN0aW9uQ2FsbD4gZnVuY3Rpb24obmV3RnVuY3Rpb25DYWxs
KCJhZGRSZXNvdXJjZSIpKTsKLSAgICBmdW5jdGlvbi0+YXBwZW5kQXJndW1lbnQoaWRlbnRpZmll
cik7Ci0gICAgZnVuY3Rpb24tPmFwcGVuZEFyZ3VtZW50KHJlc291cmNlT2JqKTsKKyAgICBJbnNw
ZWN0b3JGdW5jdGlvbkNhbGwoZnVuY3Rpb24sICJhZGRSZXNvdXJjZSIpOworICAgIGZ1bmN0aW9u
LmFwcGVuZEFyZ3VtZW50KGlkZW50aWZpZXIpOworICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50
KHJlc291cmNlT2JqKTsKICAgICBib29sIGhhZEV4Y2VwdGlvbiA9IGZhbHNlOwotICAgIGZ1bmN0
aW9uLT5jYWxsKGhhZEV4Y2VwdGlvbik7CisgICAgZnVuY3Rpb24uY2FsbChoYWRFeGNlcHRpb24p
OwogICAgIHJldHVybiAhaGFkRXhjZXB0aW9uOwogfQogCiBib29sIEluc3BlY3RvckZyb250ZW5k
Ojp1cGRhdGVSZXNvdXJjZSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFNjcmlwdE9i
amVjdCYgcmVzb3VyY2VPYmopCiB7Ci0gICAgT3duUHRyPFNjcmlwdEZ1bmN0aW9uQ2FsbD4gZnVu
Y3Rpb24obmV3RnVuY3Rpb25DYWxsKCJ1cGRhdGVSZXNvdXJjZSIpKTsKLSAgICBmdW5jdGlvbi0+
YXBwZW5kQXJndW1lbnQoaWRlbnRpZmllcik7Ci0gICAgZnVuY3Rpb24tPmFwcGVuZEFyZ3VtZW50
KHJlc291cmNlT2JqKTsKKyAgICBJbnNwZWN0b3JGdW5jdGlvbkNhbGwoZnVuY3Rpb24sICJ1cGRh
dGVSZXNvdXJjZSIpOworICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KGlkZW50aWZpZXIpOwor
ICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KHJlc291cmNlT2JqKTsKICAgICBib29sIGhhZEV4
Y2VwdGlvbiA9IGZhbHNlOwotICAgIGZ1bmN0aW9uLT5jYWxsKGhhZEV4Y2VwdGlvbik7CisgICAg
ZnVuY3Rpb24uY2FsbChoYWRFeGNlcHRpb24pOwogICAgIHJldHVybiAhaGFkRXhjZXB0aW9uOwog
fQogCiB2b2lkIEluc3BlY3RvckZyb250ZW5kOjpyZW1vdmVSZXNvdXJjZSh1bnNpZ25lZCBsb25n
IGlkZW50aWZpZXIpCiB7Ci0gICAgT3duUHRyPFNjcmlwdEZ1bmN0aW9uQ2FsbD4gZnVuY3Rpb24o
bmV3RnVuY3Rpb25DYWxsKCJyZW1vdmVSZXNvdXJjZSIpKTsKLSAgICBmdW5jdGlvbi0+YXBwZW5k
QXJndW1lbnQoaWRlbnRpZmllcik7Ci0gICAgZnVuY3Rpb24tPmNhbGwoKTsKKyAgICBJbnNwZWN0
b3JGdW5jdGlvbkNhbGwoZnVuY3Rpb24sICJyZW1vdmVSZXNvdXJjZSIpOworICAgIGZ1bmN0aW9u
LmFwcGVuZEFyZ3VtZW50KGlkZW50aWZpZXIpOworICAgIGZ1bmN0aW9uLmNhbGwoKTsKIH0KIAog
dm9pZCBJbnNwZWN0b3JGcm9udGVuZDo6dXBkYXRlRm9jdXNlZE5vZGUobG9uZyBub2RlSWQpCiB7
Ci0gICAgT3duUHRyPFNjcmlwdEZ1bmN0aW9uQ2FsbD4gZnVuY3Rpb24obmV3RnVuY3Rpb25DYWxs
KCJ1cGRhdGVGb2N1c2VkTm9kZSIpKTsKLSAgICBmdW5jdGlvbi0+YXBwZW5kQXJndW1lbnQobm9k
ZUlkKTsKLSAgICBmdW5jdGlvbi0+Y2FsbCgpOworICAgIEluc3BlY3RvckZ1bmN0aW9uQ2FsbChm
dW5jdGlvbiwgInVwZGF0ZUZvY3VzZWROb2RlIik7CisgICAgZnVuY3Rpb24uYXBwZW5kQXJndW1l
bnQobm9kZUlkKTsKKyAgICBmdW5jdGlvbi5jYWxsKCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yRnJv
bnRlbmQ6OnNldEF0dGFjaGVkV2luZG93KGJvb2wgYXR0YWNoZWQpCiB7Ci0gICAgT3duUHRyPFNj
cmlwdEZ1bmN0aW9uQ2FsbD4gZnVuY3Rpb24obmV3RnVuY3Rpb25DYWxsKCJzZXRBdHRhY2hlZFdp
bmRvdyIpKTsKLSAgICBmdW5jdGlvbi0+YXBwZW5kQXJndW1lbnQoYXR0YWNoZWQpOwotICAgIGZ1
bmN0aW9uLT5jYWxsKCk7CisgICAgSW5zcGVjdG9yRnVuY3Rpb25DYWxsKGZ1bmN0aW9uLCAic2V0
QXR0YWNoZWRXaW5kb3ciKTsKKyAgICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVudChhdHRhY2hlZCk7
CisgICAgZnVuY3Rpb24uY2FsbCgpOwogfQogCiB2b2lkIEluc3BlY3RvckZyb250ZW5kOjpzaG93
UGFuZWwoaW50IHBhbmVsKQpAQCAtMjExLDkgKzIxNSw5IEBAIHZvaWQgSW5zcGVjdG9yRnJvbnRl
bmQ6OnRpbWVsaW5lUHJvZmlsZXJXYXNTdG9wcGVkKCkKIAogdm9pZCBJbnNwZWN0b3JGcm9udGVu
ZDo6YWRkUmVjb3JkVG9UaW1lbGluZShjb25zdCBTY3JpcHRPYmplY3QmIHJlY29yZCkKIHsKLSAg
ICBPd25QdHI8U2NyaXB0RnVuY3Rpb25DYWxsPiBmdW5jdGlvbihuZXdGdW5jdGlvbkNhbGwoImFk
ZFJlY29yZFRvVGltZWxpbmUiKSk7Ci0gICAgZnVuY3Rpb24tPmFwcGVuZEFyZ3VtZW50KHJlY29y
ZCk7Ci0gICAgZnVuY3Rpb24tPmNhbGwoKTsKKyAgICBJbnNwZWN0b3JGdW5jdGlvbkNhbGwoZnVu
Y3Rpb24sICJhZGRSZWNvcmRUb1RpbWVsaW5lIik7CisgICAgZnVuY3Rpb24uYXBwZW5kQXJndW1l
bnQocmVjb3JkKTsKKyAgICBmdW5jdGlvbi5jYWxsKCk7CiB9CiAKICNpZiBFTkFCTEUoSkFWQVND
UklQVF9ERUJVR0dFUikKQEAgLTI0NCw2MCArMjQ4LDYwIEBAIHZvaWQgSW5zcGVjdG9yRnJvbnRl
bmQ6OnByb2ZpbGVyV2FzRGlzYWJsZWQoKQogCiB2b2lkIEluc3BlY3RvckZyb250ZW5kOjpwYXJz
ZWRTY3JpcHRTb3VyY2UoY29uc3QgSlNDOjpTb3VyY2VDb2RlJiBzb3VyY2UpCiB7Ci0gICAgT3du
UHRyPFNjcmlwdEZ1bmN0aW9uQ2FsbD4gZnVuY3Rpb24obmV3RnVuY3Rpb25DYWxsKCJwYXJzZWRT
Y3JpcHRTb3VyY2UiKSk7Ci0gICAgZnVuY3Rpb24tPmFwcGVuZEFyZ3VtZW50KEpTQzo6VVN0cmlu
ZyhKU0M6OlVTdHJpbmc6OmZyb20oc291cmNlLnByb3ZpZGVyKCktPmFzSUQoKSkpKTsKLSAgICBm
dW5jdGlvbi0+YXBwZW5kQXJndW1lbnQoc291cmNlLnByb3ZpZGVyKCktPnVybCgpKTsKLSAgICBm
dW5jdGlvbi0+YXBwZW5kQXJndW1lbnQoSlNDOjpVU3RyaW5nKHNvdXJjZS5kYXRhKCksIHNvdXJj
ZS5sZW5ndGgoKSkpOwotICAgIGZ1bmN0aW9uLT5hcHBlbmRBcmd1bWVudChzb3VyY2UuZmlyc3RM
aW5lKCkpOwotICAgIGZ1bmN0aW9uLT5jYWxsKCk7CisgICAgSW5zcGVjdG9yRnVuY3Rpb25DYWxs
KGZ1bmN0aW9uLCAicGFyc2VkU2NyaXB0U291cmNlIik7CisgICAgZnVuY3Rpb24uYXBwZW5kQXJn
dW1lbnQoSlNDOjpVU3RyaW5nKEpTQzo6VVN0cmluZzo6ZnJvbShzb3VyY2UucHJvdmlkZXIoKS0+
YXNJRCgpKSkpOworICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KHNvdXJjZS5wcm92aWRlcigp
LT51cmwoKSk7CisgICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQoSlNDOjpVU3RyaW5nKHNvdXJj
ZS5kYXRhKCksIHNvdXJjZS5sZW5ndGgoKSkpOworICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50
KHNvdXJjZS5maXJzdExpbmUoKSk7CisgICAgZnVuY3Rpb24uY2FsbCgpOwogfQogCiB2b2lkIElu
c3BlY3RvckZyb250ZW5kOjpmYWlsZWRUb1BhcnNlU2NyaXB0U291cmNlKGNvbnN0IEpTQzo6U291
cmNlQ29kZSYgc291cmNlLCBpbnQgZXJyb3JMaW5lLCBjb25zdCBKU0M6OlVTdHJpbmcmIGVycm9y
TWVzc2FnZSkKIHsKLSAgICBPd25QdHI8U2NyaXB0RnVuY3Rpb25DYWxsPiBmdW5jdGlvbihuZXdG
dW5jdGlvbkNhbGwoImZhaWxlZFRvUGFyc2VTY3JpcHRTb3VyY2UiKSk7Ci0gICAgZnVuY3Rpb24t
PmFwcGVuZEFyZ3VtZW50KHNvdXJjZS5wcm92aWRlcigpLT51cmwoKSk7Ci0gICAgZnVuY3Rpb24t
PmFwcGVuZEFyZ3VtZW50KEpTQzo6VVN0cmluZyhzb3VyY2UuZGF0YSgpLCBzb3VyY2UubGVuZ3Ro
KCkpKTsKLSAgICBmdW5jdGlvbi0+YXBwZW5kQXJndW1lbnQoc291cmNlLmZpcnN0TGluZSgpKTsK
LSAgICBmdW5jdGlvbi0+YXBwZW5kQXJndW1lbnQoZXJyb3JMaW5lKTsKLSAgICBmdW5jdGlvbi0+
YXBwZW5kQXJndW1lbnQoZXJyb3JNZXNzYWdlKTsKLSAgICBmdW5jdGlvbi0+Y2FsbCgpOworICAg
IEluc3BlY3RvckZ1bmN0aW9uQ2FsbChmdW5jdGlvbiwgImZhaWxlZFRvUGFyc2VTY3JpcHRTb3Vy
Y2UiKTsKKyAgICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVudChzb3VyY2UucHJvdmlkZXIoKS0+dXJs
KCkpOworICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KEpTQzo6VVN0cmluZyhzb3VyY2UuZGF0
YSgpLCBzb3VyY2UubGVuZ3RoKCkpKTsKKyAgICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVudChzb3Vy
Y2UuZmlyc3RMaW5lKCkpOworICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KGVycm9yTGluZSk7
CisgICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQoZXJyb3JNZXNzYWdlKTsKKyAgICBmdW5jdGlv
bi5jYWxsKCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yRnJvbnRlbmQ6OmFkZFByb2ZpbGVIZWFkZXIo
Y29uc3QgU2NyaXB0VmFsdWUmIHByb2ZpbGUpCiB7Ci0gICAgT3duUHRyPFNjcmlwdEZ1bmN0aW9u
Q2FsbD4gZnVuY3Rpb24obmV3RnVuY3Rpb25DYWxsKCJhZGRQcm9maWxlSGVhZGVyIikpOwotICAg
IGZ1bmN0aW9uLT5hcHBlbmRBcmd1bWVudChwcm9maWxlKTsKLSAgICBmdW5jdGlvbi0+Y2FsbCgp
OworICAgIEluc3BlY3RvckZ1bmN0aW9uQ2FsbChmdW5jdGlvbiwgImFkZFByb2ZpbGVIZWFkZXIi
KTsKKyAgICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVudChwcm9maWxlKTsKKyAgICBmdW5jdGlvbi5j
YWxsKCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yRnJvbnRlbmQ6OnNldFJlY29yZGluZ1Byb2ZpbGUo
Ym9vbCBpc1Byb2ZpbGluZykKIHsKLSAgICBPd25QdHI8U2NyaXB0RnVuY3Rpb25DYWxsPiBmdW5j
dGlvbihuZXdGdW5jdGlvbkNhbGwoInNldFJlY29yZGluZ1Byb2ZpbGUiKSk7Ci0gICAgZnVuY3Rp
b24tPmFwcGVuZEFyZ3VtZW50KGlzUHJvZmlsaW5nKTsKLSAgICBmdW5jdGlvbi0+Y2FsbCgpOwor
ICAgIEluc3BlY3RvckZ1bmN0aW9uQ2FsbChmdW5jdGlvbiwgInNldFJlY29yZGluZ1Byb2ZpbGUi
KTsKKyAgICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVudChpc1Byb2ZpbGluZyk7CisgICAgZnVuY3Rp
b24uY2FsbCgpOwogfQogCiB2b2lkIEluc3BlY3RvckZyb250ZW5kOjpkaWRHZXRQcm9maWxlSGVh
ZGVycyhpbnQgY2FsbElkLCBjb25zdCBTY3JpcHRBcnJheSYgaGVhZGVycykKIHsKLSAgICBPd25Q
dHI8U2NyaXB0RnVuY3Rpb25DYWxsPiBmdW5jdGlvbihuZXdGdW5jdGlvbkNhbGwoImRpZEdldFBy
b2ZpbGVIZWFkZXJzIikpOwotICAgIGZ1bmN0aW9uLT5hcHBlbmRBcmd1bWVudChjYWxsSWQpOwot
ICAgIGZ1bmN0aW9uLT5hcHBlbmRBcmd1bWVudChoZWFkZXJzKTsKLSAgICBmdW5jdGlvbi0+Y2Fs
bCgpOworICAgIEluc3BlY3RvckZ1bmN0aW9uQ2FsbChmdW5jdGlvbiwgImRpZEdldFByb2ZpbGVI
ZWFkZXJzIik7CisgICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQoY2FsbElkKTsKKyAgICBmdW5j
dGlvbi5hcHBlbmRBcmd1bWVudChoZWFkZXJzKTsKKyAgICBmdW5jdGlvbi5jYWxsKCk7CiB9CiAK
IHZvaWQgSW5zcGVjdG9yRnJvbnRlbmQ6OmRpZEdldFByb2ZpbGUoaW50IGNhbGxJZCwgY29uc3Qg
U2NyaXB0VmFsdWUmIHByb2ZpbGUpCiB7Ci0gICAgT3duUHRyPFNjcmlwdEZ1bmN0aW9uQ2FsbD4g
ZnVuY3Rpb24obmV3RnVuY3Rpb25DYWxsKCJkaWRHZXRQcm9maWxlIikpOwotICAgIGZ1bmN0aW9u
LT5hcHBlbmRBcmd1bWVudChjYWxsSWQpOwotICAgIGZ1bmN0aW9uLT5hcHBlbmRBcmd1bWVudChw
cm9maWxlKTsKLSAgICBmdW5jdGlvbi0+Y2FsbCgpOworICAgIEluc3BlY3RvckZ1bmN0aW9uQ2Fs
bChmdW5jdGlvbiwgImRpZEdldFByb2ZpbGUiKTsKKyAgICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVu
dChjYWxsSWQpOworICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KHByb2ZpbGUpOworICAgIGZ1
bmN0aW9uLmNhbGwoKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JGcm9udGVuZDo6cGF1c2VkU2NyaXB0
KGNvbnN0IFNjcmlwdFZhbHVlJiBjYWxsRnJhbWVzKQogewotICAgIE93blB0cjxTY3JpcHRGdW5j
dGlvbkNhbGw+IGZ1bmN0aW9uKG5ld0Z1bmN0aW9uQ2FsbCgicGF1c2VkU2NyaXB0IikpOwotICAg
IGZ1bmN0aW9uLT5hcHBlbmRBcmd1bWVudChjYWxsRnJhbWVzKTsKLSAgICBmdW5jdGlvbi0+Y2Fs
bCgpOworICAgIEluc3BlY3RvckZ1bmN0aW9uQ2FsbChmdW5jdGlvbiwgInBhdXNlZFNjcmlwdCIp
OworICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KGNhbGxGcmFtZXMpOworICAgIGZ1bmN0aW9u
LmNhbGwoKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JGcm9udGVuZDo6cmVzdW1lZFNjcmlwdCgpCkBA
IC0zMDgsMjAzICszMTIsMTk2IEBAIHZvaWQgSW5zcGVjdG9yRnJvbnRlbmQ6OnJlc3VtZWRTY3Jp
cHQoKQogCiB2b2lkIEluc3BlY3RvckZyb250ZW5kOjpzZXREb2N1bWVudChjb25zdCBTY3JpcHRP
YmplY3QmIHJvb3QpCiB7Ci0gICAgT3duUHRyPFNjcmlwdEZ1bmN0aW9uQ2FsbD4gZnVuY3Rpb24o
bmV3RnVuY3Rpb25DYWxsKCJzZXREb2N1bWVudCIpKTsKLSAgICBmdW5jdGlvbi0+YXBwZW5kQXJn
dW1lbnQocm9vdCk7Ci0gICAgZnVuY3Rpb24tPmNhbGwoKTsKKyAgICBJbnNwZWN0b3JGdW5jdGlv
bkNhbGwoZnVuY3Rpb24sICJzZXREb2N1bWVudCIpOworICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3Vt
ZW50KHJvb3QpOworICAgIGZ1bmN0aW9uLmNhbGwoKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JGcm9u
dGVuZDo6c2V0RGV0YWNoZWRSb290KGNvbnN0IFNjcmlwdE9iamVjdCYgcm9vdCkKIHsKLSAgICBP
d25QdHI8U2NyaXB0RnVuY3Rpb25DYWxsPiBmdW5jdGlvbihuZXdGdW5jdGlvbkNhbGwoInNldERl
dGFjaGVkUm9vdCIpKTsKLSAgICBmdW5jdGlvbi0+YXBwZW5kQXJndW1lbnQocm9vdCk7Ci0gICAg
ZnVuY3Rpb24tPmNhbGwoKTsKKyAgICBJbnNwZWN0b3JGdW5jdGlvbkNhbGwoZnVuY3Rpb24sICJz
ZXREZXRhY2hlZFJvb3QiKTsKKyAgICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVudChyb290KTsKKyAg
ICBmdW5jdGlvbi5jYWxsKCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yRnJvbnRlbmQ6OnNldENoaWxk
Tm9kZXMoaW50IHBhcmVudElkLCBjb25zdCBTY3JpcHRBcnJheSYgbm9kZXMpCiB7Ci0gICAgT3du
UHRyPFNjcmlwdEZ1bmN0aW9uQ2FsbD4gZnVuY3Rpb24obmV3RnVuY3Rpb25DYWxsKCJzZXRDaGls
ZE5vZGVzIikpOwotICAgIGZ1bmN0aW9uLT5hcHBlbmRBcmd1bWVudChwYXJlbnRJZCk7Ci0gICAg
ZnVuY3Rpb24tPmFwcGVuZEFyZ3VtZW50KG5vZGVzKTsKLSAgICBmdW5jdGlvbi0+Y2FsbCgpOwor
ICAgIEluc3BlY3RvckZ1bmN0aW9uQ2FsbChmdW5jdGlvbiwgInNldENoaWxkTm9kZXMiKTsKKyAg
ICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVudChwYXJlbnRJZCk7CisgICAgZnVuY3Rpb24uYXBwZW5k
QXJndW1lbnQobm9kZXMpOworICAgIGZ1bmN0aW9uLmNhbGwoKTsKIH0KIAogdm9pZCBJbnNwZWN0
b3JGcm9udGVuZDo6Y2hpbGROb2RlQ291bnRVcGRhdGVkKGludCBpZCwgaW50IG5ld1ZhbHVlKQog
ewotICAgIE93blB0cjxTY3JpcHRGdW5jdGlvbkNhbGw+IGZ1bmN0aW9uKG5ld0Z1bmN0aW9uQ2Fs
bCgiY2hpbGROb2RlQ291bnRVcGRhdGVkIikpOwotICAgIGZ1bmN0aW9uLT5hcHBlbmRBcmd1bWVu
dChpZCk7Ci0gICAgZnVuY3Rpb24tPmFwcGVuZEFyZ3VtZW50KG5ld1ZhbHVlKTsKLSAgICBmdW5j
dGlvbi0+Y2FsbCgpOworICAgIEluc3BlY3RvckZ1bmN0aW9uQ2FsbChmdW5jdGlvbiwgImNoaWxk
Tm9kZUNvdW50VXBkYXRlZCIpOworICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KGlkKTsKKyAg
ICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVudChuZXdWYWx1ZSk7CisgICAgZnVuY3Rpb24uY2FsbCgp
OwogfQogCiB2b2lkIEluc3BlY3RvckZyb250ZW5kOjpjaGlsZE5vZGVJbnNlcnRlZChpbnQgcGFy
ZW50SWQsIGludCBwcmV2SWQsIGNvbnN0IFNjcmlwdE9iamVjdCYgbm9kZSkKIHsKLSAgICBPd25Q
dHI8U2NyaXB0RnVuY3Rpb25DYWxsPiBmdW5jdGlvbihuZXdGdW5jdGlvbkNhbGwoImNoaWxkTm9k
ZUluc2VydGVkIikpOwotICAgIGZ1bmN0aW9uLT5hcHBlbmRBcmd1bWVudChwYXJlbnRJZCk7Ci0g
ICAgZnVuY3Rpb24tPmFwcGVuZEFyZ3VtZW50KHByZXZJZCk7Ci0gICAgZnVuY3Rpb24tPmFwcGVu
ZEFyZ3VtZW50KG5vZGUpOwotICAgIGZ1bmN0aW9uLT5jYWxsKCk7CisgICAgSW5zcGVjdG9yRnVu
Y3Rpb25DYWxsKGZ1bmN0aW9uLCAiY2hpbGROb2RlSW5zZXJ0ZWQiKTsKKyAgICBmdW5jdGlvbi5h
cHBlbmRBcmd1bWVudChwYXJlbnRJZCk7CisgICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQocHJl
dklkKTsKKyAgICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVudChub2RlKTsKKyAgICBmdW5jdGlvbi5j
YWxsKCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yRnJvbnRlbmQ6OmNoaWxkTm9kZVJlbW92ZWQoaW50
IHBhcmVudElkLCBpbnQgaWQpCiB7Ci0gICAgT3duUHRyPFNjcmlwdEZ1bmN0aW9uQ2FsbD4gZnVu
Y3Rpb24obmV3RnVuY3Rpb25DYWxsKCJjaGlsZE5vZGVSZW1vdmVkIikpOwotICAgIGZ1bmN0aW9u
LT5hcHBlbmRBcmd1bWVudChwYXJlbnRJZCk7Ci0gICAgZnVuY3Rpb24tPmFwcGVuZEFyZ3VtZW50
KGlkKTsKLSAgICBmdW5jdGlvbi0+Y2FsbCgpOworICAgIEluc3BlY3RvckZ1bmN0aW9uQ2FsbChm
dW5jdGlvbiwgImNoaWxkTm9kZVJlbW92ZWQiKTsKKyAgICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVu
dChwYXJlbnRJZCk7CisgICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQoaWQpOworICAgIGZ1bmN0
aW9uLmNhbGwoKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JGcm9udGVuZDo6YXR0cmlidXRlc1VwZGF0
ZWQoaW50IGlkLCBjb25zdCBTY3JpcHRBcnJheSYgYXR0cmlidXRlcykKIHsKLSAgICBPd25QdHI8
U2NyaXB0RnVuY3Rpb25DYWxsPiBmdW5jdGlvbihuZXdGdW5jdGlvbkNhbGwoImF0dHJpYnV0ZXNV
cGRhdGVkIikpOwotICAgIGZ1bmN0aW9uLT5hcHBlbmRBcmd1bWVudChpZCk7Ci0gICAgZnVuY3Rp
b24tPmFwcGVuZEFyZ3VtZW50KGF0dHJpYnV0ZXMpOwotICAgIGZ1bmN0aW9uLT5jYWxsKCk7Cisg
ICAgSW5zcGVjdG9yRnVuY3Rpb25DYWxsKGZ1bmN0aW9uLCAiYXR0cmlidXRlc1VwZGF0ZWQiKTsK
KyAgICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVudChpZCk7CisgICAgZnVuY3Rpb24uYXBwZW5kQXJn
dW1lbnQoYXR0cmlidXRlcyk7CisgICAgZnVuY3Rpb24uY2FsbCgpOwogfQogCiB2b2lkIEluc3Bl
Y3RvckZyb250ZW5kOjpkaWRSZW1vdmVOb2RlKGludCBjYWxsSWQsIGludCBub2RlSWQpCiB7Ci0g
ICAgT3duUHRyPFNjcmlwdEZ1bmN0aW9uQ2FsbD4gZnVuY3Rpb24obmV3RnVuY3Rpb25DYWxsKCJk
aWRSZW1vdmVOb2RlIikpOwotICAgIGZ1bmN0aW9uLT5hcHBlbmRBcmd1bWVudChjYWxsSWQpOwot
ICAgIGZ1bmN0aW9uLT5hcHBlbmRBcmd1bWVudChub2RlSWQpOwotICAgIGZ1bmN0aW9uLT5jYWxs
KCk7CisgICAgSW5zcGVjdG9yRnVuY3Rpb25DYWxsKGZ1bmN0aW9uLCAiZGlkUmVtb3ZlTm9kZSIp
OworICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KGNhbGxJZCk7CisgICAgZnVuY3Rpb24uYXBw
ZW5kQXJndW1lbnQobm9kZUlkKTsKKyAgICBmdW5jdGlvbi5jYWxsKCk7CiB9CiAKIHZvaWQgSW5z
cGVjdG9yRnJvbnRlbmQ6OmRpZEdldENoaWxkTm9kZXMoaW50IGNhbGxJZCkKIHsKLSAgICBPd25Q
dHI8U2NyaXB0RnVuY3Rpb25DYWxsPiBmdW5jdGlvbihuZXdGdW5jdGlvbkNhbGwoImRpZEdldENo
aWxkTm9kZXMiKSk7Ci0gICAgZnVuY3Rpb24tPmFwcGVuZEFyZ3VtZW50KGNhbGxJZCk7Ci0gICAg
ZnVuY3Rpb24tPmNhbGwoKTsKKyAgICBJbnNwZWN0b3JGdW5jdGlvbkNhbGwoZnVuY3Rpb24sICJk
aWRHZXRDaGlsZE5vZGVzIik7CisgICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQoY2FsbElkKTsK
KyAgICBmdW5jdGlvbi5jYWxsKCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yRnJvbnRlbmQ6OmRpZEFw
cGx5RG9tQ2hhbmdlKGludCBjYWxsSWQsIGJvb2wgc3VjY2VzcykKIHsKLSAgICBPd25QdHI8U2Ny
aXB0RnVuY3Rpb25DYWxsPiBmdW5jdGlvbihuZXdGdW5jdGlvbkNhbGwoImRpZEFwcGx5RG9tQ2hh
bmdlIikpOwotICAgIGZ1bmN0aW9uLT5hcHBlbmRBcmd1bWVudChjYWxsSWQpOwotICAgIGZ1bmN0
aW9uLT5hcHBlbmRBcmd1bWVudChzdWNjZXNzKTsKLSAgICBmdW5jdGlvbi0+Y2FsbCgpOworICAg
IEluc3BlY3RvckZ1bmN0aW9uQ2FsbChmdW5jdGlvbiwgImRpZEFwcGx5RG9tQ2hhbmdlIik7Cisg
ICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQoY2FsbElkKTsKKyAgICBmdW5jdGlvbi5hcHBlbmRB
cmd1bWVudChzdWNjZXNzKTsKKyAgICBmdW5jdGlvbi5jYWxsKCk7CiB9CiAKIHZvaWQgSW5zcGVj
dG9yRnJvbnRlbmQ6OmRpZEdldEV2ZW50TGlzdGVuZXJzRm9yTm9kZShpbnQgY2FsbElkLCBpbnQg
bm9kZUlkLCBTY3JpcHRBcnJheSYgbGlzdGVuZXJzQXJyYXkpCiB7Ci0gICAgT3duUHRyPFNjcmlw
dEZ1bmN0aW9uQ2FsbD4gZnVuY3Rpb24obmV3RnVuY3Rpb25DYWxsKCJkaWRHZXRFdmVudExpc3Rl
bmVyc0Zvck5vZGUiKSk7Ci0gICAgZnVuY3Rpb24tPmFwcGVuZEFyZ3VtZW50KGNhbGxJZCk7Ci0g
ICAgZnVuY3Rpb24tPmFwcGVuZEFyZ3VtZW50KG5vZGVJZCk7Ci0gICAgZnVuY3Rpb24tPmFwcGVu
ZEFyZ3VtZW50KGxpc3RlbmVyc0FycmF5KTsKLSAgICBmdW5jdGlvbi0+Y2FsbCgpOworICAgIElu
c3BlY3RvckZ1bmN0aW9uQ2FsbChmdW5jdGlvbiwgImRpZEdldEV2ZW50TGlzdGVuZXJzRm9yTm9k
ZSIpOworICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KGNhbGxJZCk7CisgICAgZnVuY3Rpb24u
YXBwZW5kQXJndW1lbnQobm9kZUlkKTsKKyAgICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVudChsaXN0
ZW5lcnNBcnJheSk7CisgICAgZnVuY3Rpb24uY2FsbCgpOwogfQogCiB2b2lkIEluc3BlY3RvckZy
b250ZW5kOjpkaWRHZXRDb29raWVzKGludCBjYWxsSWQsIGNvbnN0IFNjcmlwdEFycmF5JiBjb29r
aWVzLCBjb25zdCBTdHJpbmcmIGNvb2tpZXNTdHJpbmcpCiB7Ci0gICAgT3duUHRyPFNjcmlwdEZ1
bmN0aW9uQ2FsbD4gZnVuY3Rpb24obmV3RnVuY3Rpb25DYWxsKCJkaWRHZXRDb29raWVzIikpOwot
ICAgIGZ1bmN0aW9uLT5hcHBlbmRBcmd1bWVudChjYWxsSWQpOwotICAgIGZ1bmN0aW9uLT5hcHBl
bmRBcmd1bWVudChjb29raWVzKTsKLSAgICBmdW5jdGlvbi0+YXBwZW5kQXJndW1lbnQoY29va2ll
c1N0cmluZyk7Ci0gICAgZnVuY3Rpb24tPmNhbGwoKTsKKyAgICBJbnNwZWN0b3JGdW5jdGlvbkNh
bGwoZnVuY3Rpb24sICJkaWRHZXRDb29raWVzIik7CisgICAgZnVuY3Rpb24uYXBwZW5kQXJndW1l
bnQoY2FsbElkKTsKKyAgICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVudChjb29raWVzKTsKKyAgICBm
dW5jdGlvbi5hcHBlbmRBcmd1bWVudChjb29raWVzU3RyaW5nKTsKKyAgICBmdW5jdGlvbi5jYWxs
KCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yRnJvbnRlbmQ6OmRpZERpc3BhdGNoT25JbmplY3RlZFNj
cmlwdChpbnQgY2FsbElkLCBjb25zdCBTdHJpbmcmIHJlc3VsdCwgYm9vbCBpc0V4Y2VwdGlvbikK
IHsKLSAgICBPd25QdHI8U2NyaXB0RnVuY3Rpb25DYWxsPiBmdW5jdGlvbihuZXdGdW5jdGlvbkNh
bGwoImRpZERpc3BhdGNoT25JbmplY3RlZFNjcmlwdCIpKTsKLSAgICBmdW5jdGlvbi0+YXBwZW5k
QXJndW1lbnQoY2FsbElkKTsKLSAgICBmdW5jdGlvbi0+YXBwZW5kQXJndW1lbnQocmVzdWx0KTsK
LSAgICBmdW5jdGlvbi0+YXBwZW5kQXJndW1lbnQoaXNFeGNlcHRpb24pOwotICAgIGZ1bmN0aW9u
LT5jYWxsKCk7CisgICAgSW5zcGVjdG9yRnVuY3Rpb25DYWxsKGZ1bmN0aW9uLCAiZGlkRGlzcGF0
Y2hPbkluamVjdGVkU2NyaXB0Iik7CisgICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQoY2FsbElk
KTsKKyAgICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVudChyZXN1bHQpOworICAgIGZ1bmN0aW9uLmFw
cGVuZEFyZ3VtZW50KGlzRXhjZXB0aW9uKTsKKyAgICBmdW5jdGlvbi5jYWxsKCk7CiB9CiAKICNp
ZiBFTkFCTEUoREFUQUJBU0UpCiBib29sIEluc3BlY3RvckZyb250ZW5kOjphZGREYXRhYmFzZShj
b25zdCBTY3JpcHRPYmplY3QmIGRiT2JqZWN0KQogewotICAgIE93blB0cjxTY3JpcHRGdW5jdGlv
bkNhbGw+IGZ1bmN0aW9uKG5ld0Z1bmN0aW9uQ2FsbCgiYWRkRGF0YWJhc2UiKSk7Ci0gICAgZnVu
Y3Rpb24tPmFwcGVuZEFyZ3VtZW50KGRiT2JqZWN0KTsKKyAgICBJbnNwZWN0b3JGdW5jdGlvbkNh
bGwoZnVuY3Rpb24sICJhZGREYXRhYmFzZSIpOworICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50
KGRiT2JqZWN0KTsKICAgICBib29sIGhhZEV4Y2VwdGlvbiA9IGZhbHNlOwotICAgIGZ1bmN0aW9u
LT5jYWxsKGhhZEV4Y2VwdGlvbik7CisgICAgZnVuY3Rpb24uY2FsbChoYWRFeGNlcHRpb24pOwog
ICAgIHJldHVybiAhaGFkRXhjZXB0aW9uOwogfQogCiB2b2lkIEluc3BlY3RvckZyb250ZW5kOjpz
ZWxlY3REYXRhYmFzZShpbnQgZGF0YWJhc2VJZCkKIHsKLSAgICBPd25QdHI8U2NyaXB0RnVuY3Rp
b25DYWxsPiBmdW5jdGlvbihuZXdGdW5jdGlvbkNhbGwoInNlbGVjdERhdGFiYXNlIikpOwotICAg
IGZ1bmN0aW9uLT5hcHBlbmRBcmd1bWVudChkYXRhYmFzZUlkKTsKLSAgICBmdW5jdGlvbi0+Y2Fs
bCgpOworICAgIEluc3BlY3RvckZ1bmN0aW9uQ2FsbChmdW5jdGlvbiwgInNlbGVjdERhdGFiYXNl
Iik7CisgICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQoZGF0YWJhc2VJZCk7CisgICAgZnVuY3Rp
b24uY2FsbCgpOwogfQogdm9pZCBJbnNwZWN0b3JGcm9udGVuZDo6ZGlkR2V0RGF0YWJhc2VUYWJs
ZU5hbWVzKGludCBjYWxsSWQsIGNvbnN0IFNjcmlwdEFycmF5JiB0YWJsZU5hbWVzKQogewotICAg
IE93blB0cjxTY3JpcHRGdW5jdGlvbkNhbGw+IGZ1bmN0aW9uKG5ld0Z1bmN0aW9uQ2FsbCgiZGlk
R2V0RGF0YWJhc2VUYWJsZU5hbWVzIikpOwotICAgIGZ1bmN0aW9uLT5hcHBlbmRBcmd1bWVudChj
YWxsSWQpOwotICAgIGZ1bmN0aW9uLT5hcHBlbmRBcmd1bWVudCh0YWJsZU5hbWVzKTsKLSAgICBm
dW5jdGlvbi0+Y2FsbCgpOworICAgIEluc3BlY3RvckZ1bmN0aW9uQ2FsbChmdW5jdGlvbiwgImRp
ZEdldERhdGFiYXNlVGFibGVOYW1lcyIpOworICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KGNh
bGxJZCk7CisgICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQodGFibGVOYW1lcyk7CisgICAgZnVu
Y3Rpb24uY2FsbCgpOwogfQogI2VuZGlmCiAKICNpZiBFTkFCTEUoRE9NX1NUT1JBR0UpCiBib29s
IEluc3BlY3RvckZyb250ZW5kOjphZGRET01TdG9yYWdlKGNvbnN0IFNjcmlwdE9iamVjdCYgZG9t
U3RvcmFnZU9iaikKIHsKLSAgICBPd25QdHI8U2NyaXB0RnVuY3Rpb25DYWxsPiBmdW5jdGlvbihu
ZXdGdW5jdGlvbkNhbGwoImFkZERPTVN0b3JhZ2UiKSk7Ci0gICAgZnVuY3Rpb24tPmFwcGVuZEFy
Z3VtZW50KGRvbVN0b3JhZ2VPYmopOworICAgIEluc3BlY3RvckZ1bmN0aW9uQ2FsbChmdW5jdGlv
biwgImFkZERPTVN0b3JhZ2UiKTsKKyAgICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVudChkb21TdG9y
YWdlT2JqKTsKICAgICBib29sIGhhZEV4Y2VwdGlvbiA9IGZhbHNlOwotICAgIGZ1bmN0aW9uLT5j
YWxsKGhhZEV4Y2VwdGlvbik7CisgICAgZnVuY3Rpb24uY2FsbChoYWRFeGNlcHRpb24pOwogICAg
IHJldHVybiAhaGFkRXhjZXB0aW9uOwogfQogCiB2b2lkIEluc3BlY3RvckZyb250ZW5kOjpzZWxl
Y3RET01TdG9yYWdlKGludCBzdG9yYWdlSWQpCiB7Ci0gICAgT3duUHRyPFNjcmlwdEZ1bmN0aW9u
Q2FsbD4gZnVuY3Rpb24obmV3RnVuY3Rpb25DYWxsKCJzZWxlY3RET01TdG9yYWdlIikpOwotICAg
IGZ1bmN0aW9uLT5hcHBlbmRBcmd1bWVudChzdG9yYWdlSWQpOwotICAgIGZ1bmN0aW9uLT5jYWxs
KCk7CisgICAgSW5zcGVjdG9yRnVuY3Rpb25DYWxsKGZ1bmN0aW9uLCAic2VsZWN0RE9NU3RvcmFn
ZSIpOworICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KHN0b3JhZ2VJZCk7CisgICAgZnVuY3Rp
b24uY2FsbCgpOwogfQogCiB2b2lkIEluc3BlY3RvckZyb250ZW5kOjpkaWRHZXRET01TdG9yYWdl
RW50cmllcyhpbnQgY2FsbElkLCBjb25zdCBTY3JpcHRBcnJheSYgZW50cmllcykKIHsKLSAgICBP
d25QdHI8U2NyaXB0RnVuY3Rpb25DYWxsPiBmdW5jdGlvbihuZXdGdW5jdGlvbkNhbGwoImRpZEdl
dERPTVN0b3JhZ2VFbnRyaWVzIikpOwotICAgIGZ1bmN0aW9uLT5hcHBlbmRBcmd1bWVudChjYWxs
SWQpOwotICAgIGZ1bmN0aW9uLT5hcHBlbmRBcmd1bWVudChlbnRyaWVzKTsKLSAgICBmdW5jdGlv
bi0+Y2FsbCgpOworICAgIEluc3BlY3RvckZ1bmN0aW9uQ2FsbChmdW5jdGlvbiwgImRpZEdldERP
TVN0b3JhZ2VFbnRyaWVzIik7CisgICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQoY2FsbElkKTsK
KyAgICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVudChlbnRyaWVzKTsKKyAgICBmdW5jdGlvbi5jYWxs
KCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yRnJvbnRlbmQ6OmRpZFNldERPTVN0b3JhZ2VJdGVtKGlu
dCBjYWxsSWQsIGJvb2wgc3VjY2VzcykKIHsKLSAgICBPd25QdHI8U2NyaXB0RnVuY3Rpb25DYWxs
PiBmdW5jdGlvbihuZXdGdW5jdGlvbkNhbGwoImRpZFNldERPTVN0b3JhZ2VJdGVtIikpOwotICAg
IGZ1bmN0aW9uLT5hcHBlbmRBcmd1bWVudChjYWxsSWQpOwotICAgIGZ1bmN0aW9uLT5hcHBlbmRB
cmd1bWVudChzdWNjZXNzKTsKLSAgICBmdW5jdGlvbi0+Y2FsbCgpOworICAgIEluc3BlY3RvckZ1
bmN0aW9uQ2FsbChmdW5jdGlvbiwgImRpZFNldERPTVN0b3JhZ2VJdGVtIik7CisgICAgZnVuY3Rp
b24uYXBwZW5kQXJndW1lbnQoY2FsbElkKTsKKyAgICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVudChz
dWNjZXNzKTsKKyAgICBmdW5jdGlvbi5jYWxsKCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yRnJvbnRl
bmQ6OmRpZFJlbW92ZURPTVN0b3JhZ2VJdGVtKGludCBjYWxsSWQsIGJvb2wgc3VjY2VzcykKIHsK
LSAgICBPd25QdHI8U2NyaXB0RnVuY3Rpb25DYWxsPiBmdW5jdGlvbihuZXdGdW5jdGlvbkNhbGwo
ImRpZFJlbW92ZURPTVN0b3JhZ2VJdGVtIikpOwotICAgIGZ1bmN0aW9uLT5hcHBlbmRBcmd1bWVu
dChjYWxsSWQpOwotICAgIGZ1bmN0aW9uLT5hcHBlbmRBcmd1bWVudChzdWNjZXNzKTsKLSAgICBm
dW5jdGlvbi0+Y2FsbCgpOworICAgIEluc3BlY3RvckZ1bmN0aW9uQ2FsbChmdW5jdGlvbiwgImRp
ZFJlbW92ZURPTVN0b3JhZ2VJdGVtIik7CisgICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQoY2Fs
bElkKTsKKyAgICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVudChzdWNjZXNzKTsKKyAgICBmdW5jdGlv
bi5jYWxsKCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yRnJvbnRlbmQ6OnVwZGF0ZURPTVN0b3JhZ2Uo
aW50IHN0b3JhZ2VJZCkKIHsKLSAgICBPd25QdHI8U2NyaXB0RnVuY3Rpb25DYWxsPiBmdW5jdGlv
bihuZXdGdW5jdGlvbkNhbGwoInVwZGF0ZURPTVN0b3JhZ2UiKSk7Ci0gICAgZnVuY3Rpb24tPmFw
cGVuZEFyZ3VtZW50KHN0b3JhZ2VJZCk7Ci0gICAgZnVuY3Rpb24tPmNhbGwoKTsKKyAgICBJbnNw
ZWN0b3JGdW5jdGlvbkNhbGwoZnVuY3Rpb24sICJ1cGRhdGVET01TdG9yYWdlIik7CisgICAgZnVu
Y3Rpb24uYXBwZW5kQXJndW1lbnQoc3RvcmFnZUlkKTsKKyAgICBmdW5jdGlvbi5jYWxsKCk7CiB9
CiAjZW5kaWYKIAogdm9pZCBJbnNwZWN0b3JGcm9udGVuZDo6YWRkTm9kZXNUb1NlYXJjaFJlc3Vs
dChjb25zdCBTdHJpbmcmIG5vZGVJZHMpCiB7Ci0gICAgT3duUHRyPFNjcmlwdEZ1bmN0aW9uQ2Fs
bD4gZnVuY3Rpb24obmV3RnVuY3Rpb25DYWxsKCJhZGROb2Rlc1RvU2VhcmNoUmVzdWx0IikpOwot
ICAgIGZ1bmN0aW9uLT5hcHBlbmRBcmd1bWVudChub2RlSWRzKTsKLSAgICBmdW5jdGlvbi0+Y2Fs
bCgpOworICAgIEluc3BlY3RvckZ1bmN0aW9uQ2FsbChmdW5jdGlvbiwgImFkZE5vZGVzVG9TZWFy
Y2hSZXN1bHQiKTsKKyAgICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVudChub2RlSWRzKTsKKyAgICBm
dW5jdGlvbi5jYWxsKCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yRnJvbnRlbmQ6OmV2YWx1YXRlRm9y
VGVzdEluRnJvbnRlbmQoaW50IGNhbGxJZCwgY29uc3QgU3RyaW5nJiBzY3JpcHQpCiB7Ci0gICAg
T3duUHRyPFNjcmlwdEZ1bmN0aW9uQ2FsbD4gZnVuY3Rpb24obmV3RnVuY3Rpb25DYWxsKCJldmFs
dWF0ZUZvclRlc3RJbkZyb250ZW5kIikpOwotICAgIGZ1bmN0aW9uLT5hcHBlbmRBcmd1bWVudChj
YWxsSWQpOwotICAgIGZ1bmN0aW9uLT5hcHBlbmRBcmd1bWVudChzY3JpcHQpOwotICAgIGZ1bmN0
aW9uLT5jYWxsKCk7Ci19Ci0KLVBhc3NPd25QdHI8U2NyaXB0RnVuY3Rpb25DYWxsPiBJbnNwZWN0
b3JGcm9udGVuZDo6bmV3RnVuY3Rpb25DYWxsKGNvbnN0IFN0cmluZyYgZnVuY3Rpb25OYW1lKQot
ewotICAgIFNjcmlwdEZ1bmN0aW9uQ2FsbCogZnVuY3Rpb24gPSBuZXcgU2NyaXB0RnVuY3Rpb25D
YWxsKG1fc2NyaXB0U3RhdGUsIG1fd2ViSW5zcGVjdG9yLCAiZGlzcGF0Y2giKTsKLSAgICBmdW5j
dGlvbi0+YXBwZW5kQXJndW1lbnQoZnVuY3Rpb25OYW1lKTsKLSAgICByZXR1cm4gZnVuY3Rpb247
CisgICAgSW5zcGVjdG9yRnVuY3Rpb25DYWxsKGZ1bmN0aW9uLCAiZXZhbHVhdGVGb3JUZXN0SW5G
cm9udGVuZCIpOworICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KGNhbGxJZCk7CisgICAgZnVu
Y3Rpb24uYXBwZW5kQXJndW1lbnQoc2NyaXB0KTsKKyAgICBmdW5jdGlvbi5jYWxsKCk7CiB9CiAK
IHZvaWQgSW5zcGVjdG9yRnJvbnRlbmQ6OmNhbGxTaW1wbGVGdW5jdGlvbihjb25zdCBTdHJpbmcm
IGZ1bmN0aW9uTmFtZSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZy
b250ZW5kLmggYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZC5oCmluZGV4IGMz
MThmMDQuLjJjNTNjNTIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZy
b250ZW5kLmgKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQuaApAQCAt
MTM2LDcgKzEzNiw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2b2lkIGV2YWx1
YXRlRm9yVGVzdEluRnJvbnRlbmQoaW50IGNhbGxJZCwgY29uc3QgU3RyaW5nJiBzY3JpcHQpOwog
ICAgIHByaXZhdGU6Ci0gICAgICAgIFBhc3NPd25QdHI8U2NyaXB0RnVuY3Rpb25DYWxsPiBuZXdG
dW5jdGlvbkNhbGwoY29uc3QgU3RyaW5nJiBmdW5jdGlvbk5hbWUpOwogICAgICAgICB2b2lkIGNh
bGxTaW1wbGVGdW5jdGlvbihjb25zdCBTdHJpbmcmIGZ1bmN0aW9uTmFtZSk7CiAgICAgICAgIElu
c3BlY3RvckNvbnRyb2xsZXIqIG1faW5zcGVjdG9yQ29udHJvbGxlcjsKICAgICAgICAgU2NyaXB0
U3RhdGUqIG1fc2NyaXB0U3RhdGU7Cg==
</data>
<flag name="review"
          id="26001"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>