<?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>168614</bug_id>
          
          <creation_ts>2017-02-20 15:26:48 -0800</creation_ts>
          <short_desc>[WebIDL] Add support for constructors that have variadic parameters</short_desc>
          <delta_ts>2017-02-20 17:46:30 -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>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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1279082</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-02-20 15:26:48 -0800</bug_when>
    <thetext>[WebIDL] Add support for constructors that have variadic parameters</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1279084</commentid>
    <comment_count>1</comment_count>
      <attachid>302181</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-02-20 15:32:43 -0800</bug_when>
    <thetext>Created attachment 302181
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1279161</commentid>
    <comment_count>2</comment_count>
      <attachid>302181</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-20 17:46:27 -0800</bug_when>
    <thetext>Comment on attachment 302181
Patch

Clearing flags on attachment: 302181

Committed r212689: &lt;http://trac.webkit.org/changeset/212689&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1279162</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-20 17:46:30 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>302181</attachid>
            <date>2017-02-20 15:32:43 -0800</date>
            <delta_ts>2017-02-20 17:46:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-168614-20170220152959.patch</filename>
            <type>text/plain</type>
            <size>30357</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxMjY3OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQwIEBACisyMDE3LTAyLTIwICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1dlYklETF0gQWRkIHN1cHBvcnQgZm9y
IGNvbnN0cnVjdG9ycyB0aGF0IGhhdmUgdmFyaWFkaWMgcGFyYW1ldGVycworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY4NjE0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW4gcHJlcGFyYXRpb24gb2YgcmVt
b3Zpbmcgc29tZSBtb3JlIGN1c3RvbSBiaW5kaW5ncywgbW92ZSB0aGUgY29uc3RydWN0b3IgY2Fs
bGluZworICAgICAgICBjb2RlIG92ZXIgdG8gdXNpbmcgR2VuZXJhdGVQYXJhbWV0ZXJzQ2hlY2sg
Y29tcGxldGVseS4gVGhpcyByZXF1aXJlZAorICAgICAgICAtIFJlbW92aW5nIHNwZWNpYWwgY2Fz
ZSBvZiBOYW1lZENvbnN0cnVjdG9ycyBhdXRvbWF0aWNhbGx5IGdldHRpbmcgYSBEb2N1bWVudCBw
YXNzZWQKKyAgICAgICAgICB0byB0aGVtLiBUaGUgdGhyZWUgbmFtZWQgY29uc3RydWN0b3JzIHRo
YXQgZXhwZWN0ZWQgdGhpcyBoYXZlIGJlZW4gdXBkYXRlZCB0byBhZGQKKyAgICAgICAgICB0aGUg
cmVxdWlyZWQgYXR0cmlidXRlcy4KKyAgICAgICAgLSBBZGQgYSB2ZXJzaW9uIG9mIHRoZSBHZW5l
cmF0ZUNhbGxXaXRoIHByb2xvZ3VlIGZvciBjb25zdHJ1Y3RvcnMuCisgICAgICAgIC0gUmVtb3Zl
IG5vdyB1bm5lY2Vzc2FyeSBhcmd1bWVudENvdW50IHJldHVybiB2YWx1ZSBmcm9tIEdlbmVyYXRl
UGFyYW1ldGVyc0NoZWNrLgorCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9ySlMucG06CisgICAgICAgIChHZW5lcmF0ZUltcGxlbWVudGF0aW9uKToKKyAgICAgICAgKEdl
bmVyYXRlQ2FsbFdpdGhVc2luZ1JlZmVyZW5jZXMpOgorICAgICAgICAoR2VuZXJhdGVDYWxsV2l0
aFVzaW5nUG9pbnRlcnMpOgorICAgICAgICAoR2VuZXJhdGVDb25zdHJ1Y3RvckNhbGxXaXRoVXNp
bmdQb2ludGVycyk6CisgICAgICAgIChHZW5lcmF0ZUNhbGxXaXRoKToKKyAgICAgICAgKEdlbmVy
YXRlUGFyYW1ldGVyc0NoZWNrKToKKyAgICAgICAgKEdlbmVyYXRlQ29uc3RydWN0b3JEZWZpbml0
aW9uKToKKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZh
Y2UuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENv
bnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
T2JqLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3Zlcmxv
YWRlZENvbnN0cnVjdG9ycy5jcHA6CisgICAgICAgIFVwZGF0ZSByZXN1bHRzIGZvciBtb3JlIGNv
bnNpc3RlbnQgcGxhY2VtZW50IG9mIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQgYW5kIERvY3VtZW50
CisgICAgICAgIGFjY2Vzc29ycywgYWRkIFVOTElLRUxZIHRvIGNvbnRleHQgY2hlY2tzLCBhbmQg
cmVtb3ZlIGF1dG9tYXRpYyBEb2N1bWVudCBwYXNzaW5nCisgICAgICAgIGZvciBOYW1lZENvbnN0
cnVjdG9ycy4KKworICAgICAgICAqIGh0bWwvSFRNTEF1ZGlvRWxlbWVudC5pZGw6CisgICAgICAg
ICogaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxPcHRpb25F
bGVtZW50LmlkbDoKKyAgICAgICAgQWRkIENvbnN0cnVjdG9yQ2FsbFdpdGg9RG9jdW1lbnQuCisK
IDIwMTctMDItMjAgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAg
ICAgICAgQWRkIHBsdW1iaW5nIHRvIHRoZSBVSSBwcm9jZXNzIGZvciBUZXh0SW5kaWNhdG9yRGF0
YSB3aGVuIGNvbXB1dGluZyB0aGUgZHJhZyBpbWFnZQpJbmRleDogU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHJldmlzaW9uIDIxMjY2
MSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBt
CSh3b3JraW5nIGNvcHkpCkBAIC00MDM0LDcgKzQwMzQsNyBAQCBFTkQKIAogICAgICAgICAgICAg
ICAgICAgICBHZW5lcmF0ZUFyZ3VtZW50c0NvdW50Q2hlY2soXEBpbXBsQ29udGVudCwgJGZ1bmN0
aW9uLCAkaW50ZXJmYWNlKTsKIAotICAgICAgICAgICAgICAgICAgICBteSAoJGZ1bmN0aW9uU3Ry
aW5nLCAkZHVtbXkpID0gR2VuZXJhdGVQYXJhbWV0ZXJzQ2hlY2soXEBpbXBsQ29udGVudCwgJGZ1
bmN0aW9uLCAkaW50ZXJmYWNlLCAkZnVuY3Rpb25JbXBsZW1lbnRhdGlvbk5hbWUpOworICAgICAg
ICAgICAgICAgICAgICBteSAkZnVuY3Rpb25TdHJpbmcgPSBHZW5lcmF0ZVBhcmFtZXRlcnNDaGVj
ayhcQGltcGxDb250ZW50LCAkZnVuY3Rpb24sICRpbnRlcmZhY2UsICRmdW5jdGlvbkltcGxlbWVu
dGF0aW9uTmFtZSk7CiAgICAgICAgICAgICAgICAgICAgIEdlbmVyYXRlSW1wbGVtZW50YXRpb25G
dW5jdGlvbkNhbGwoJGZ1bmN0aW9uLCAkZnVuY3Rpb25TdHJpbmcsICIgICAgIiwgJGludGVyZmFj
ZSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSBlbHNlIHsKQEAgLTQwODQsNyAr
NDA4NCw3IEBAIEVORAogCiAgICAgICAgICAgICAgICAgICAgIEdlbmVyYXRlQXJndW1lbnRzQ291
bnRDaGVjayhcQGltcGxDb250ZW50LCAkZnVuY3Rpb24sICRpbnRlcmZhY2UpOwogCi0gICAgICAg
ICAgICAgICAgICAgIG15ICgkZnVuY3Rpb25TdHJpbmcsICRkdW1teSkgPSBHZW5lcmF0ZVBhcmFt
ZXRlcnNDaGVjayhcQGltcGxDb250ZW50LCAkZnVuY3Rpb24sICRpbnRlcmZhY2UsICRmdW5jdGlv
bkltcGxlbWVudGF0aW9uTmFtZSk7CisgICAgICAgICAgICAgICAgICAgIG15ICRmdW5jdGlvblN0
cmluZyA9IEdlbmVyYXRlUGFyYW1ldGVyc0NoZWNrKFxAaW1wbENvbnRlbnQsICRmdW5jdGlvbiwg
JGludGVyZmFjZSwgJGZ1bmN0aW9uSW1wbGVtZW50YXRpb25OYW1lKTsKICAgICAgICAgICAgICAg
ICAgICAgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbkZ1bmN0aW9uQ2FsbCgkZnVuY3Rpb24sICRmdW5j
dGlvblN0cmluZywgIiAgICAiLCAkaW50ZXJmYWNlKTsKICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICB9CkBAIC00NDgxLDcgKzQ0ODEsNyBAQCBzdWIgR2VuZXJhdGVDYWxsV2l0aFVzaW5n
UmVmZXJlbmNlcwogICAgIG15ICRzdGF0ZVJlZmVyZW5jZSA9ICJzdGF0ZSI7CiAgICAgbXkgJGds
b2JhbE9iamVjdCA9ICJqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihzdGF0ZS5sZXhpY2FsR2xv
YmFsT2JqZWN0KCkpIjsKIAotICAgIHJldHVybiBHZW5lcmF0ZUNhbGxXaXRoKCRjYWxsV2l0aCwg
JG91dHB1dEFycmF5LCAkcmV0dXJuVmFsdWUsICRmdW5jdGlvbiwgJHN0YXRlUG9pbnRlciwgJHN0
YXRlUmVmZXJlbmNlLCAkZ2xvYmFsT2JqZWN0KTsKKyAgICByZXR1cm4gR2VuZXJhdGVDYWxsV2l0
aCgkY2FsbFdpdGgsICRvdXRwdXRBcnJheSwgJHJldHVyblZhbHVlLCAkcmV0dXJuVmFsdWUsICRm
dW5jdGlvbiwgJHN0YXRlUG9pbnRlciwgJHN0YXRlUmVmZXJlbmNlLCAkZ2xvYmFsT2JqZWN0LCAk
Z2xvYmFsT2JqZWN0KTsKIH0KIAogIyBGSVhNRTogV2Ugc2hvdWxkIHJlbW92ZSBHZW5lcmF0ZUNh
bGxXaXRoVXNpbmdQb2ludGVycyBhbmQgY29tYmluZSBHZW5lcmF0ZUNhbGxXaXRoVXNpbmdSZWZl
cmVuY2VzIGFuZCBHZW5lcmF0ZUNhbGxXaXRoCkBAIC00NDkzLDEyICs0NDkzLDI1IEBAIHN1YiBH
ZW5lcmF0ZUNhbGxXaXRoVXNpbmdQb2ludGVycwogICAgIG15ICRzdGF0ZVJlZmVyZW5jZSA9ICIq
c3RhdGUiOwogICAgIG15ICRnbG9iYWxPYmplY3QgPSAianNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0
Kj4oc3RhdGUtPmxleGljYWxHbG9iYWxPYmplY3QoKSkiOwogCi0gICAgcmV0dXJuIEdlbmVyYXRl
Q2FsbFdpdGgoJGNhbGxXaXRoLCAkb3V0cHV0QXJyYXksICRyZXR1cm5WYWx1ZSwgJGZ1bmN0aW9u
LCAkc3RhdGVQb2ludGVyLCAkc3RhdGVSZWZlcmVuY2UsICRnbG9iYWxPYmplY3QpOworICAgIHJl
dHVybiBHZW5lcmF0ZUNhbGxXaXRoKCRjYWxsV2l0aCwgJG91dHB1dEFycmF5LCAkcmV0dXJuVmFs
dWUsICRyZXR1cm5WYWx1ZSwgJGZ1bmN0aW9uLCAkc3RhdGVQb2ludGVyLCAkc3RhdGVSZWZlcmVu
Y2UsICRnbG9iYWxPYmplY3QsICRnbG9iYWxPYmplY3QpOworfQorCitzdWIgR2VuZXJhdGVDb25z
dHJ1Y3RvckNhbGxXaXRoVXNpbmdQb2ludGVycworeworICAgIG15ICgkY2FsbFdpdGgsICRvdXRw
dXRBcnJheSwgJHZpc2libGVJbnRlcmZhY2VOYW1lLCAkZnVuY3Rpb24pID0gQF87CisKKyAgICBt
eSAkc3RhdGVQb2ludGVyID0gInN0YXRlIjsKKyAgICBteSAkc3RhdGVSZWZlcmVuY2UgPSAiKnN0
YXRlIjsKKyAgICBteSAkZ2xvYmFsT2JqZWN0ID0gImNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgp
IjsKKyAgICBteSAkY29udGV4dE1pc3NpbmcgPSAidGhyb3dDb25zdHJ1Y3RvclNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRVbmF2YWlsYWJsZUVycm9yKCpzdGF0ZSwgdGhyb3dTY29wZSwgXCIke3Zpc2li
bGVJbnRlcmZhY2VOYW1lfVwiKSI7CisgICAgbXkgJHNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBY2Nl
c3NvciA9ICJjYXN0ZWRUaGlzIjsKKworICAgIHJldHVybiBHZW5lcmF0ZUNhbGxXaXRoKCRjYWxs
V2l0aCwgJG91dHB1dEFycmF5LCAiIiwgJGNvbnRleHRNaXNzaW5nLCAkZnVuY3Rpb24sICRzdGF0
ZVBvaW50ZXIsICRzdGF0ZVJlZmVyZW5jZSwgJGdsb2JhbE9iamVjdCwgJHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRBY2Nlc3Nvcik7CiB9CiAKIHN1YiBHZW5lcmF0ZUNhbGxXaXRoCiB7Ci0gICAgbXkg
KCRjYWxsV2l0aCwgJG91dHB1dEFycmF5LCAkcmV0dXJuVmFsdWUsICRmdW5jdGlvbiwgJHN0YXRl
UG9pbnRlciwgJHN0YXRlUmVmZXJlbmNlLCAkZ2xvYmFsT2JqZWN0KSA9IEBfOworICAgIG15ICgk
Y2FsbFdpdGgsICRvdXRwdXRBcnJheSwgJHJldHVyblZhbHVlLCAkY29udGV4dE1pc3NpbmcsICRm
dW5jdGlvbiwgJHN0YXRlUG9pbnRlciwgJHN0YXRlUmVmZXJlbmNlLCAkZ2xvYmFsT2JqZWN0LCAk
c2NyaXB0RXhlY3V0aW9uQ29udGV4dEFjY2Vzc29yKSA9IEBfOwogCiAgICAgcmV0dXJuICgpIHVu
bGVzcyAkY2FsbFdpdGg7CiAKQEAgLTQ1MDYsMTYgKzQ1MTksMTYgQEAgc3ViIEdlbmVyYXRlQ2Fs
bFdpdGgKICAgICBwdXNoKEBjYWxsV2l0aEFyZ3MsICRzdGF0ZVJlZmVyZW5jZSkgaWYgJGNvZGVH
ZW5lcmF0b3ItPkV4dGVuZGVkQXR0cmlidXRlQ29udGFpbnMoJGNhbGxXaXRoLCAiU2NyaXB0U3Rh
dGUiKTsKICAgICBwdXNoKEBjYWxsV2l0aEFyZ3MsICIqJHtnbG9iYWxPYmplY3R9IikgaWYgJGNv
ZGVHZW5lcmF0b3ItPkV4dGVuZGVkQXR0cmlidXRlQ29udGFpbnMoJGNhbGxXaXRoLCAiR2xvYmFs
T2JqZWN0Iik7CiAgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5FeHRlbmRlZEF0dHJpYnV0ZUNvbnRh
aW5zKCRjYWxsV2l0aCwgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQiKSkgewotICAgICAgICBwdXNo
KEAkb3V0cHV0QXJyYXksICIgICAgYXV0byogY29udGV4dCA9ICRnbG9iYWxPYmplY3QtPnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKTtcbiIpOwotICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIg
ICAgaWYgKCFjb250ZXh0KVxuIik7Ci0gICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAg
ICAgcmV0dXJuIiAuICgkcmV0dXJuVmFsdWUgPyAiICIgLiAkcmV0dXJuVmFsdWUgOiAiIikgLiAi
O1xuIik7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBhdXRvKiBjb250ZXh0ID0g
JHtzY3JpcHRFeGVjdXRpb25Db250ZXh0QWNjZXNzb3J9LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0
KCk7XG4iKTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIGlmIChVTkxJS0VMWSgh
Y29udGV4dCkpXG4iKTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICByZXR1
cm4iIC4gKCRjb250ZXh0TWlzc2luZyA/ICIgIiAuICRjb250ZXh0TWlzc2luZyA6ICIiKSAuICI7
XG4iKTsKICAgICAgICAgcHVzaChAY2FsbFdpdGhBcmdzLCAiKmNvbnRleHQiKTsKICAgICB9CiAg
ICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5FeHRlbmRlZEF0dHJpYnV0ZUNvbnRhaW5zKCRjYWxsV2l0
aCwgIkRvY3VtZW50IikpIHsKICAgICAgICAgJGltcGxJbmNsdWRlc3siRG9jdW1lbnQuaCJ9ID0g
MTsKLSAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIGF1dG8qIGNvbnRleHQgPSAkZ2xv
YmFsT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7XG4iKTsKLSAgICAgICAgcHVzaChA
JG91dHB1dEFycmF5LCAiICAgIGlmICghY29udGV4dClcbiIpOwotICAgICAgICBwdXNoKEAkb3V0
cHV0QXJyYXksICIgICAgICAgIHJldHVybiIgLiAoJHJldHVyblZhbHVlID8gIiAiIC4gJHJldHVy
blZhbHVlIDogIiIpIC4gIjtcbiIpOworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAg
YXV0byogY29udGV4dCA9ICR7c2NyaXB0RXhlY3V0aW9uQ29udGV4dEFjY2Vzc29yfS0+c2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpO1xuIik7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAg
ICBpZiAoVU5MSUtFTFkoIWNvbnRleHQpKVxuIik7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJh
eSwgIiAgICAgICAgcmV0dXJuIiAuICgkY29udGV4dE1pc3NpbmcgPyAiICIgLiAkY29udGV4dE1p
c3NpbmcgOiAiIikgLiAiO1xuIik7CiAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBB
U1NFUlQoY29udGV4dC0+aXNEb2N1bWVudCgpKTtcbiIpOwogICAgICAgICBwdXNoKEAkb3V0cHV0
QXJyYXksICIgICAgYXV0byYgZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oKmNvbnRleHQp
O1xuIik7CiAgICAgICAgIHB1c2goQGNhbGxXaXRoQXJncywgImRvY3VtZW50Iik7CkBAIC00NTM3
LDE3ICs0NTUwLDE0IEBAIHN1YiBHZW5lcmF0ZUNhbGxXaXRoCiAgICAgaWYgKCRjb2RlR2VuZXJh
dG9yLT5FeHRlbmRlZEF0dHJpYnV0ZUNvbnRhaW5zKCRjYWxsV2l0aCwgIkFjdGl2ZVdpbmRvdyIp
KSB7CiAgICAgICAgICRpbXBsSW5jbHVkZXN7IkpTRE9NV2luZG93QmFzZS5oIn0gPSAxOwogICAg
ICAgICBwdXNoKEBjYWxsV2l0aEFyZ3MsICJhY3RpdmVET01XaW5kb3coJHN0YXRlUG9pbnRlciki
KTsKLSAgICAgICAgCiAgICAgfQogICAgIGlmICgkY29kZUdlbmVyYXRvci0+RXh0ZW5kZWRBdHRy
aWJ1dGVDb250YWlucygkY2FsbFdpdGgsICJGaXJzdFdpbmRvdyIpKSB7CiAgICAgICAgICRpbXBs
SW5jbHVkZXN7IkpTRE9NV2luZG93QmFzZS5oIn0gPSAxOwogICAgICAgICBwdXNoKEBjYWxsV2l0
aEFyZ3MsICJmaXJzdERPTVdpbmRvdygkc3RhdGVQb2ludGVyKSIpOwotICAgICAgICAKICAgICB9
CiAgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5FeHRlbmRlZEF0dHJpYnV0ZUNvbnRhaW5zKCRjYWxs
V2l0aCwgIkNhbGxlcldpbmRvdyIpKSB7CiAgICAgICAgICRpbXBsSW5jbHVkZXN7IkpTRE9NV2lu
ZG93QmFzZS5oIn0gPSAxOwogICAgICAgICBwdXNoKEBjYWxsV2l0aEFyZ3MsICJjYWxsZXJET01X
aW5kb3coJHN0YXRlUG9pbnRlcikiKTsKLSAgICAgICAgCiAgICAgfQogCiAgICAgcmV0dXJuIEBj
YWxsV2l0aEFyZ3M7CkBAIC00NjMyLDI5ICs0NjQyLDMyIEBAIHN1YiBHZW5lcmF0ZVBhcmFtZXRl
cnNDaGVjawogCiAgICAgbXkgJGludGVyZmFjZU5hbWUgPSAkaW50ZXJmYWNlLT50eXBlLT5uYW1l
OwogICAgIG15ICR2aXNpYmxlSW50ZXJmYWNlTmFtZSA9ICRjb2RlR2VuZXJhdG9yLT5HZXRWaXNp
YmxlSW50ZXJmYWNlTmFtZSgkaW50ZXJmYWNlKTsKLSAgICBteSBAYXJndW1lbnRzOwotICAgIG15
ICRmdW5jdGlvbk5hbWU7CiAgICAgbXkgJGltcGxlbWVudGVkQnkgPSAkZnVuY3Rpb24tPmV4dGVu
ZGVkQXR0cmlidXRlcy0+e0ltcGxlbWVudGVkQnl9OwogICAgIG15ICRudW1Bcmd1bWVudHMgPSBA
eyRmdW5jdGlvbi0+YXJndW1lbnRzfTsKICAgICBteSAkY29uZGl0aW9uYWwgPSAkZnVuY3Rpb24t
PmV4dGVuZGVkQXR0cmlidXRlcy0+e0NvbmRpdGlvbmFsfTsKKyAgICBteSAkaXNDb25zdHJ1Y3Rv
ciA9ICRmdW5jdGlvbi0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q29uc3RydWN0b3J9IHx8ICRmdW5j
dGlvbi0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57TmFtZWRDb25zdHJ1Y3Rvcn07CisKKyAgICBteSBA
YXJndW1lbnRzOworICAgIG15ICRmdW5jdGlvbk5hbWU7CiAKICAgICBpZiAoJGltcGxlbWVudGVk
QnkpIHsKICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIiR7aW1wbGVtZW50ZWRCeX0uaCIsICRj
b25kaXRpb25hbCk7CiAgICAgICAgIHVuc2hpZnQoQGFyZ3VtZW50cywgImltcGwiKSBpZiAhJGZ1
bmN0aW9uLT5pc1N0YXRpYzsKICAgICAgICAgJGZ1bmN0aW9uTmFtZSA9ICJXZWJDb3JlOjoke2lt
cGxlbWVudGVkQnl9Ojoke2Z1bmN0aW9uSW1wbGVtZW50YXRpb25OYW1lfSI7Ci0gICAgfSBlbHNp
ZiAoJGZ1bmN0aW9uLT5pc1N0YXRpYykgeworICAgIH0gZWxzaWYgKCRmdW5jdGlvbi0+aXNTdGF0
aWMgfHwgJGlzQ29uc3RydWN0b3IpIHsKICAgICAgICAgJGZ1bmN0aW9uTmFtZSA9ICIke2ludGVy
ZmFjZU5hbWV9Ojoke2Z1bmN0aW9uSW1wbGVtZW50YXRpb25OYW1lfSI7CiAgICAgfSBlbHNlIHsK
ICAgICAgICAgJGZ1bmN0aW9uTmFtZSA9ICJpbXBsLiR7ZnVuY3Rpb25JbXBsZW1lbnRhdGlvbk5h
bWV9IjsKICAgICB9CiAKICAgICBteSAkcXVvdGVkRnVuY3Rpb25OYW1lOwotICAgIGlmICghJGZ1
bmN0aW9uLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDb25zdHJ1Y3Rvcn0pIHsKKyAgICBpZiAoISRp
c0NvbnN0cnVjdG9yKSB7CiAgICAgICAgIG15ICRuYW1lID0gJGZ1bmN0aW9uLT5uYW1lOwogICAg
ICAgICAkcXVvdGVkRnVuY3Rpb25OYW1lID0gIlwiJG5hbWVcIiI7CiAgICAgICAgIHB1c2goQGFy
Z3VtZW50cywgR2VuZXJhdGVDYWxsV2l0aFVzaW5nUG9pbnRlcnMoJGZ1bmN0aW9uLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPntDYWxsV2l0aH0sIFxAJG91dHB1dEFycmF5LCAiSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpIiwgJGZ1bmN0aW9uKSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgJHF1
b3RlZEZ1bmN0aW9uTmFtZSA9ICJudWxscHRyIjsKKyAgICAgICAgcHVzaChAYXJndW1lbnRzLCBH
ZW5lcmF0ZUNvbnN0cnVjdG9yQ2FsbFdpdGhVc2luZ1BvaW50ZXJzKCRmdW5jdGlvbi0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57Q29uc3RydWN0b3JDYWxsV2l0aH0sIFxAJG91dHB1dEFycmF5LCAkdmlz
aWJsZUludGVyZmFjZU5hbWUsICRmdW5jdGlvbikpOwogICAgIH0KIAogICAgIG15ICRhcmd1bWVu
dEluZGV4ID0gMDsKQEAgLTQ3ODMsNyArNDc5Niw3IEBAIHN1YiBHZW5lcmF0ZVBhcmFtZXRlcnND
aGVjawogICAgIG15ICRmdW5jdGlvblN0cmluZyA9ICIkZnVuY3Rpb25OYW1lKCIgLiBqb2luKCIs
ICIsIEBhcmd1bWVudHMpIC4gIikiOwogICAgICRmdW5jdGlvblN0cmluZyA9ICJwcm9wYWdhdGVF
eGNlcHRpb24oKnN0YXRlLCB0aHJvd1Njb3BlLCAkZnVuY3Rpb25TdHJpbmcpIiBpZiBOZWVkc0V4
cGxpY2l0UHJvcGFnYXRlRXhjZXB0aW9uQ2FsbCgkZnVuY3Rpb24pOwogCi0gICAgcmV0dXJuICgk
ZnVuY3Rpb25TdHJpbmcsIHNjYWxhciBAYXJndW1lbnRzKTsKKyAgICByZXR1cm4gJGZ1bmN0aW9u
U3RyaW5nOwogfQogCiBzdWIgR2VuZXJhdGVEaWN0aW9uYXJ5SGVhZGVyCkBAIC02MDkyLDUzICs2
MTA1LDE0IEBAIHN1YiBHZW5lcmF0ZUNvbnN0cnVjdG9yRGVmaW5pdGlvbgogICAgICAgICAgICAg
cHVzaChAJG91dHB1dEFycmF5LCAiICAgIGF1dG8qIGNhc3RlZFRoaXMgPSBqc0Nhc3Q8JHtjb25z
dHJ1Y3RvckNsYXNzTmFtZX0qPihzdGF0ZS0+anNDYWxsZWUoKSk7XG4iKTsKICAgICAgICAgICAg
IHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBBU1NFUlQoY2FzdGVkVGhpcyk7XG4iKTsKIAotICAg
ICAgICAgICAgbXkgQGNvbnN0cnVjdG9yQXJnTGlzdDsKLQogICAgICAgICAgICAgJGltcGxJbmNs
dWRlc3siPHJ1bnRpbWUvRXJyb3IuaD4ifSA9IDE7CiAKICAgICAgICAgICAgIEdlbmVyYXRlQXJn
dW1lbnRzQ291bnRDaGVjaygkb3V0cHV0QXJyYXksICRmdW5jdGlvbiwgJGludGVyZmFjZSk7CiAK
LSAgICAgICAgICAgICMgRklYTUU6IEZvciBub3csIHdlIGRvIG5vdCBzdXBwb3J0IFNWRyBjb25z
dHJ1Y3RvcnMuCi0gICAgICAgICAgICAjIEZJWE1FOiBDdXJyZW50bHkgW0NvbnN0cnVjdG9yKC4u
LildIGRvZXMgbm90IHlldCBzdXBwb3J0IG9wdGlvbmFsIGFyZ3VtZW50cyB3aXRob3V0IFtEZWZh
dWx0PS4uLl0KLSAgICAgICAgICAgIG15ICgkZHVtbXksICRwYXJhbUluZGV4KSA9IEdlbmVyYXRl
UGFyYW1ldGVyc0NoZWNrKCRvdXRwdXRBcnJheSwgJGZ1bmN0aW9uLCAkaW50ZXJmYWNlLCAiY29u
c3RydWN0b3JDYWxsYmFjayIpOwotCi0gICAgICAgICAgICBwdXNoKEBjb25zdHJ1Y3RvckFyZ0xp
c3QsICIqc3RhdGUiKSBpZiAkY29kZUdlbmVyYXRvci0+RXh0ZW5kZWRBdHRyaWJ1dGVDb250YWlu
cygkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDb25zdHJ1Y3RvckNhbGxXaXRofSwg
IlNjcmlwdFN0YXRlIik7OwotCi0gICAgICAgICAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPkV4dGVu
ZGVkQXR0cmlidXRlQ29udGFpbnMoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q29u
c3RydWN0b3JDYWxsV2l0aH0sICJTY3JpcHRFeGVjdXRpb25Db250ZXh0IikpIHsKLSAgICAgICAg
ICAgICAgICBwdXNoKEBjb25zdHJ1Y3RvckFyZ0xpc3QsICIqY29udGV4dCIpOwotICAgICAgICAg
ICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0ID0gY2FzdGVkVGhpcy0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpO1xuIik7Ci0gICAg
ICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIGlmIChVTkxJS0VMWSghY29udGV4
dCkpXG4iKTsKLSAgICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgIHJl
dHVybiB0aHJvd0NvbnN0cnVjdG9yU2NyaXB0RXhlY3V0aW9uQ29udGV4dFVuYXZhaWxhYmxlRXJy
b3IoKnN0YXRlLCB0aHJvd1Njb3BlLCBcIiR7dmlzaWJsZUludGVyZmFjZU5hbWV9XCIpO1xuIik7
Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmICgkY29kZUdlbmVyYXRvci0+RXh0ZW5k
ZWRBdHRyaWJ1dGVDb250YWlucygkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDb25z
dHJ1Y3RvckNhbGxXaXRofSwgIkRvY3VtZW50IikpIHsKLSAgICAgICAgICAgICAgICAkaW1wbElu
Y2x1ZGVzeyJEb2N1bWVudC5oIn0gPSAxOwotICAgICAgICAgICAgICAgIHB1c2goQGNvbnN0cnVj
dG9yQXJnTGlzdCwgImRvY3VtZW50Iik7Ci0gICAgICAgICAgICAgICAgcHVzaChAJG91dHB1dEFy
cmF5LCAiICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQgPSBjYXN0ZWRUaGlzLT5z
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCk7XG4iKTsKLSAgICAgICAgICAgICAgICBwdXNoKEAkb3V0
cHV0QXJyYXksICIgICAgaWYgKFVOTElLRUxZKCFjb250ZXh0KSlcbiIpOwotICAgICAgICAgICAg
ICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgcmV0dXJuIHRocm93Q29uc3RydWN0b3JT
Y3JpcHRFeGVjdXRpb25Db250ZXh0VW5hdmFpbGFibGVFcnJvcigqc3RhdGUsIHRocm93U2NvcGUs
IFwiJHt2aXNpYmxlSW50ZXJmYWNlTmFtZX1cIik7XG4iKTsKLSAgICAgICAgICAgICAgICBwdXNo
KEAkb3V0cHV0QXJyYXksICIgICAgQVNTRVJUKGNvbnRleHQtPmlzRG9jdW1lbnQoKSk7XG4iKTsK
LSAgICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgYXV0byYgZG9jdW1lbnQg
PSBkb3duY2FzdDxEb2N1bWVudD4oKmNvbnRleHQpO1xuIik7Ci0gICAgICAgICAgICB9Ci0KLSAg
ICAgICAgICAgIHB1c2goQGNvbnN0cnVjdG9yQXJnTGlzdCwgIipjYXN0ZWRUaGlzLT5kb2N1bWVu
dCgpIikgaWYgJGdlbmVyYXRpbmdOYW1lZENvbnN0cnVjdG9yOwotCi0gICAgICAgICAgICBteSAk
aW5kZXggPSAwOwotICAgICAgICAgICAgZm9yZWFjaCBteSAkYXJndW1lbnQgKEB7JGZ1bmN0aW9u
LT5hcmd1bWVudHN9KSB7Ci0gICAgICAgICAgICAgICAgbGFzdCBpZiAkaW5kZXggZXEgJHBhcmFt
SW5kZXg7Ci0KLSAgICAgICAgICAgICAgICBwdXNoKEBjb25zdHJ1Y3RvckFyZ0xpc3QsIFBhc3NB
cmd1bWVudEV4cHJlc3Npb24oJGFyZ3VtZW50LT5uYW1lLCAkYXJndW1lbnQpKTsKLQotICAgICAg
ICAgICAgICAgICRpbmRleCsrOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBteSAkY29u
c3RydWN0b3JBcmcgPSBqb2luKCIsICIsIEBjb25zdHJ1Y3RvckFyZ0xpc3QpOwotICAgICAgICAg
ICAgaWYgKCRnZW5lcmF0aW5nTmFtZWRDb25zdHJ1Y3RvcikgewotICAgICAgICAgICAgICAgIHB1
c2goQCRvdXRwdXRBcnJheSwgIiAgICBhdXRvIG9iamVjdCA9ICR7aW50ZXJmYWNlTmFtZX06OmNy
ZWF0ZUZvckpTQ29uc3RydWN0b3IoJHtjb25zdHJ1Y3RvckFyZ30pO1xuIik7Ci0gICAgICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBhdXRv
IG9iamVjdCA9ICR7aW50ZXJmYWNlTmFtZX06OmNyZWF0ZSgke2NvbnN0cnVjdG9yQXJnfSk7XG4i
KTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG15ICRmdW5jdGlvbkltcGxlbWVudGF0aW9u
TmFtZSA9ICRnZW5lcmF0aW5nTmFtZWRDb25zdHJ1Y3RvciA/ICJjcmVhdGVGb3JKU0NvbnN0cnVj
dG9yIiA6ICJjcmVhdGUiOworICAgICAgICAgICAgbXkgJGZ1bmN0aW9uU3RyaW5nID0gR2VuZXJh
dGVQYXJhbWV0ZXJzQ2hlY2soJG91dHB1dEFycmF5LCAkZnVuY3Rpb24sICRpbnRlcmZhY2UsICRm
dW5jdGlvbkltcGxlbWVudGF0aW9uTmFtZSk7CiAKKyAgICAgICAgICAgIHB1c2goQCRvdXRwdXRB
cnJheSwgIiAgICBhdXRvIG9iamVjdCA9ICR7ZnVuY3Rpb25TdHJpbmd9O1xuIik7CiAgICAgICAg
ICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Nj
b3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTtcbiIpIGlmICRjb2RlR2VuZXJhdG9yLT5FeHRlbmRlZEF0
dHJpYnV0ZUNvbnRhaW5zKCRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0NvbnN0cnVj
dG9yQ2FsbFdpdGh9LCAiU2NyaXB0U3RhdGUiKTsKIAogICAgICAgICAgICAgbXkgJElETFR5cGUg
PSBHZXRJRExUeXBlKCRpbnRlcmZhY2UsICRpbnRlcmZhY2UtPnR5cGUpOwpJbmRleDogU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEludGVyZmFjZS5jcHAJKHJldmlzaW9uIDIxMjY2MSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yMjksMTMgKzIyOSwxMyBAQCB0ZW1wbGF0ZTw+IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgCiAgICAgQVNTRVJUKGNhc3RlZFRoaXMpOwogICAgIGlmIChVTkxJS0VMWShzdGF0ZS0+YXJn
dW1lbnRDb3VudCgpIDwgMSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3Ioc3RhdGUsIHRo
cm93U2NvcGUsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKHN0YXRlKSk7CisgICAgYXV0
byogY29udGV4dCA9IGNhc3RlZFRoaXMtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKKyAgICBp
ZiAoVU5MSUtFTFkoIWNvbnRleHQpKQorICAgICAgICByZXR1cm4gdGhyb3dDb25zdHJ1Y3RvclNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRVbmF2YWlsYWJsZUVycm9yKCpzdGF0ZSwgdGhyb3dTY29wZSwg
IlRlc3RJbnRlcmZhY2UiKTsKICAgICBhdXRvIHN0cjEgPSBjb252ZXJ0PElETERPTVN0cmluZz4o
KnN0YXRlLCBzdGF0ZS0+dW5jaGVja2VkQXJndW1lbnQoMCksIFN0cmluZ0NvbnZlcnNpb25Db25m
aWd1cmF0aW9uOjpOb3JtYWwpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwg
ZW5jb2RlZEpTVmFsdWUoKSk7CiAgICAgYXV0byBzdHIyID0gc3RhdGUtPmFyZ3VtZW50KDEpLmlz
VW5kZWZpbmVkKCkgPyBBU0NJSUxpdGVyYWwoImRlZmF1bHRTdHJpbmciKSA6IGNvbnZlcnQ8SURM
RE9NU3RyaW5nPigqc3RhdGUsIHN0YXRlLT51bmNoZWNrZWRBcmd1bWVudCgxKSwgU3RyaW5nQ29u
dmVyc2lvbkNvbmZpZ3VyYXRpb246Ok5vcm1hbCk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0
aHJvd1Njb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKLSAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBjb250ZXh0ID0gY2FzdGVkVGhpcy0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwotICAgIGlm
IChVTkxJS0VMWSghY29udGV4dCkpCi0gICAgICAgIHJldHVybiB0aHJvd0NvbnN0cnVjdG9yU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dFVuYXZhaWxhYmxlRXJyb3IoKnN0YXRlLCB0aHJvd1Njb3BlLCAi
VGVzdEludGVyZmFjZSIpOwogICAgIGF1dG8gb2JqZWN0ID0gVGVzdEludGVyZmFjZTo6Y3JlYXRl
KCpjb250ZXh0LCBXVEZNb3ZlKHN0cjEpLCBXVEZNb3ZlKHN0cjIpKTsKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKHRvSlNOZXdseUNyZWF0ZWQ8SURMSW50ZXJmYWNlPFRlc3RJbnRlcmZhY2U+
Pigqc3RhdGUsICpjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgV1RGTW92
ZShvYmplY3QpKSk7CiB9CkBAIC04NjcsNyArODY3LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIGlmIChVTkxJS0VMWShzdGF0ZS0+YXJndW1lbnRDb3Vu
dCgpIDwgMikpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3Ioc3RhdGUsIHRocm93U2NvcGUs
IGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKHN0YXRlKSk7CiAgICAgYXV0byogY29udGV4
dCA9IGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KHN0YXRlLT5sZXhpY2FsR2xvYmFsT2JqZWN0
KCkpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7Ci0gICAgaWYgKCFjb250ZXh0KQorICAgIGlm
IChVTkxJS0VMWSghY29udGV4dCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNV
bmRlZmluZWQoKSk7CiAgICAgYXV0byBzdHJBcmcgPSBjb252ZXJ0PElETERPTVN0cmluZz4oKnN0
YXRlLCBzdGF0ZS0+dW5jaGVja2VkQXJndW1lbnQoMCksIFN0cmluZ0NvbnZlcnNpb25Db25maWd1
cmF0aW9uOjpOb3JtYWwpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgZW5j
b2RlZEpTVmFsdWUoKSk7CkBAIC05NDIsNyArOTQyLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIGlmIChVTkxJS0VMWShzdGF0ZS0+YXJndW1lbnRDb3Vu
dCgpIDwgMikpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3Ioc3RhdGUsIHRocm93U2NvcGUs
IGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKHN0YXRlKSk7CiAgICAgYXV0byogY29udGV4
dCA9IGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KHN0YXRlLT5sZXhpY2FsR2xvYmFsT2JqZWN0
KCkpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7Ci0gICAgaWYgKCFjb250ZXh0KQorICAgIGlm
IChVTkxJS0VMWSghY29udGV4dCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNV
bmRlZmluZWQoKSk7CiAgICAgYXV0byBzdHJBcmcgPSBjb252ZXJ0PElETERPTVN0cmluZz4oKnN0
YXRlLCBzdGF0ZS0+dW5jaGVja2VkQXJndW1lbnQoMCksIFN0cmluZ0NvbnZlcnNpb25Db25maWd1
cmF0aW9uOjpOb3JtYWwpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgZW5j
b2RlZEpTVmFsdWUoKSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuY3Bw
CShyZXZpc2lvbiAyMTI2NjEpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk5LDcg
Kzk5LDcgQEAgdGVtcGxhdGU8PiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIAogICAgIFJF
VFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAgICAgYXV0
byBzdHIzID0gc3RhdGUtPmFyZ3VtZW50KDIpLmlzVW5kZWZpbmVkKCkgPyBTdHJpbmcoKSA6IGNv
bnZlcnQ8SURMRE9NU3RyaW5nPigqc3RhdGUsIHN0YXRlLT51bmNoZWNrZWRBcmd1bWVudCgyKSwg
U3RyaW5nQ29udmVyc2lvbkNvbmZpZ3VyYXRpb246Ok5vcm1hbCk7CiAgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTih0aHJvd1Njb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKLSAgICBhdXRvIG9iamVjdCA9
IFRlc3ROYW1lZENvbnN0cnVjdG9yOjpjcmVhdGVGb3JKU0NvbnN0cnVjdG9yKCpjYXN0ZWRUaGlz
LT5kb2N1bWVudCgpLCBXVEZNb3ZlKHN0cjEpLCBXVEZNb3ZlKHN0cjIpLCBXVEZNb3ZlKHN0cjMp
KTsKKyAgICBhdXRvIG9iamVjdCA9IFRlc3ROYW1lZENvbnN0cnVjdG9yOjpjcmVhdGVGb3JKU0Nv
bnN0cnVjdG9yKFdURk1vdmUoc3RyMSksIFdURk1vdmUoc3RyMiksIFdURk1vdmUoc3RyMykpOwog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodG9KU05ld2x5Q3JlYXRlZDxJRExJbnRlcmZhY2U8
VGVzdE5hbWVkQ29uc3RydWN0b3I+Pigqc3RhdGUsICpjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3Qo
KSwgdGhyb3dTY29wZSwgV1RGTW92ZShvYmplY3QpKSk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCShy
ZXZpc2lvbiAyMTI2NjEpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0T2JqLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU1MCwxNSArMTU1MCwxNSBAQCB0
ZW1wbGF0ZTw+IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgCiAgICAgQVNTRVJUKGNhc3Rl
ZFRoaXMpOwogICAgIGlmIChVTkxJS0VMWShzdGF0ZS0+YXJndW1lbnRDb3VudCgpIDwgMikpCiAg
ICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3Ioc3RhdGUsIHRocm93U2NvcGUsIGNyZWF0ZU5vdEVu
b3VnaEFyZ3VtZW50c0Vycm9yKHN0YXRlKSk7Ci0gICAgYXV0byB0ZXN0Q2FsbGJhY2sgPSBjb252
ZXJ0PElETENhbGxiYWNrSW50ZXJmYWNlPEpTVGVzdENhbGxiYWNrSW50ZXJmYWNlPj4oKnN0YXRl
LCBzdGF0ZS0+dW5jaGVja2VkQXJndW1lbnQoMCksICpjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3Qo
KSwgW10oSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBKU0M6OlRocm93U2NvcGUmIHNjb3BlKSB7IHRo
cm93QXJndW1lbnRNdXN0QmVGdW5jdGlvbkVycm9yKHN0YXRlLCBzY29wZSwgMCwgInRlc3RDYWxs
YmFjayIsICJUZXN0T2JqZWN0IiwgbnVsbHB0cik7IH0pOwotICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04odGhyb3dTY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7Ci0gICAgYXV0byB0ZXN0Q2FsbGJhY2tG
dW5jdGlvbiA9IGNvbnZlcnQ8SURMQ2FsbGJhY2tGdW5jdGlvbjxKU1Rlc3RDYWxsYmFja0Z1bmN0
aW9uPj4oKnN0YXRlLCBzdGF0ZS0+dW5jaGVja2VkQXJndW1lbnQoMSksICpjYXN0ZWRUaGlzLT5n
bG9iYWxPYmplY3QoKSwgW10oSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBKU0M6OlRocm93U2NvcGUm
IHNjb3BlKSB7IHRocm93QXJndW1lbnRNdXN0QmVGdW5jdGlvbkVycm9yKHN0YXRlLCBzY29wZSwg
MSwgInRlc3RDYWxsYmFja0Z1bmN0aW9uIiwgIlRlc3RPYmplY3QiLCBudWxscHRyKTsgfSk7Ci0g
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKLSAg
ICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0ID0gY2FzdGVkVGhpcy0+c2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpOworICAgIGF1dG8qIGNvbnRleHQgPSBjYXN0ZWRUaGlzLT5zY3JpcHRF
eGVjdXRpb25Db250ZXh0KCk7CiAgICAgaWYgKFVOTElLRUxZKCFjb250ZXh0KSkKICAgICAgICAg
cmV0dXJuIHRocm93Q29uc3RydWN0b3JTY3JpcHRFeGVjdXRpb25Db250ZXh0VW5hdmFpbGFibGVF
cnJvcigqc3RhdGUsIHRocm93U2NvcGUsICJUZXN0T2JqZWN0Iik7CiAgICAgQVNTRVJUKGNvbnRl
eHQtPmlzRG9jdW1lbnQoKSk7CiAgICAgYXV0byYgZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVu
dD4oKmNvbnRleHQpOworICAgIGF1dG8gdGVzdENhbGxiYWNrID0gY29udmVydDxJRExDYWxsYmFj
a0ludGVyZmFjZTxKU1Rlc3RDYWxsYmFja0ludGVyZmFjZT4+KCpzdGF0ZSwgc3RhdGUtPnVuY2hl
Y2tlZEFyZ3VtZW50KDApLCAqY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCksIFtdKEpTQzo6RXhl
Y1N0YXRlJiBzdGF0ZSwgSlNDOjpUaHJvd1Njb3BlJiBzY29wZSkgeyB0aHJvd0FyZ3VtZW50TXVz
dEJlRnVuY3Rpb25FcnJvcihzdGF0ZSwgc2NvcGUsIDAsICJ0ZXN0Q2FsbGJhY2siLCAiVGVzdE9i
amVjdCIsIG51bGxwdHIpOyB9KTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUs
IGVuY29kZWRKU1ZhbHVlKCkpOworICAgIGF1dG8gdGVzdENhbGxiYWNrRnVuY3Rpb24gPSBjb252
ZXJ0PElETENhbGxiYWNrRnVuY3Rpb248SlNUZXN0Q2FsbGJhY2tGdW5jdGlvbj4+KCpzdGF0ZSwg
c3RhdGUtPnVuY2hlY2tlZEFyZ3VtZW50KDEpLCAqY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCks
IFtdKEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgSlNDOjpUaHJvd1Njb3BlJiBzY29wZSkgeyB0aHJv
d0FyZ3VtZW50TXVzdEJlRnVuY3Rpb25FcnJvcihzdGF0ZSwgc2NvcGUsIDEsICJ0ZXN0Q2FsbGJh
Y2tGdW5jdGlvbiIsICJUZXN0T2JqZWN0IiwgbnVsbHB0cik7IH0pOworICAgIFJFVFVSTl9JRl9F
WENFUFRJT04odGhyb3dTY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAgICAgYXV0byBvYmplY3Qg
PSBUZXN0T2JqOjpjcmVhdGUoZG9jdW1lbnQsIHRlc3RDYWxsYmFjay5yZWxlYXNlTm9uTnVsbCgp
LCB0ZXN0Q2FsbGJhY2tGdW5jdGlvbi5yZWxlYXNlTm9uTnVsbCgpKTsKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKHRvSlNOZXdseUNyZWF0ZWQ8SURMSW50ZXJmYWNlPFRlc3RPYmo+Pigqc3Rh
dGUsICpjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgV1RGTW92ZShvYmplY3QpKSk7CiB9CkBA
IC0yOTI0LDcgKzI5MjQsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqV2l0aFNj
cmlwCiAgICAgVU5VU0VEX1BBUkFNKHRocm93U2NvcGUpOwogICAgIFVOVVNFRF9QQVJBTShzdGF0
ZSk7CiAgICAgYXV0byogY29udGV4dCA9IGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KHN0YXRl
LmxleGljYWxHbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKLSAgICBp
ZiAoIWNvbnRleHQpCisgICAgaWYgKFVOTElLRUxZKCFjb250ZXh0KSkKICAgICAgICAgcmV0dXJu
IGpzVW5kZWZpbmVkKCk7CiAgICAgYXV0byYgaW1wbCA9IHRoaXNPYmplY3Qud3JhcHBlZCgpOwog
ICAgIEpTVmFsdWUgcmVzdWx0ID0gdG9KUzxJRExJbnRlcmZhY2U8VGVzdE9iaj4+KHN0YXRlLCAq
dGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgaW1wbC53aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dEF0dHJpYnV0ZSgqY29udGV4dCkpOwpAQCAtMjk1OSw3ICsyOTU5LDcgQEAgc3RhdGljIGlubGlu
ZSBKU1ZhbHVlIGpzVGVzdE9ialdpdGhTY3JpcAogICAgIFVOVVNFRF9QQVJBTSh0aHJvd1Njb3Bl
KTsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwogICAgIGF1dG8qIGNvbnRleHQgPSBqc0Nhc3Q8
SlNET01HbG9iYWxPYmplY3QqPihzdGF0ZS5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpLT5zY3JpcHRF
eGVjdXRpb25Db250ZXh0KCk7Ci0gICAgaWYgKCFjb250ZXh0KQorICAgIGlmIChVTkxJS0VMWSgh
Y29udGV4dCkpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogICAgIGF1dG8mIGltcGwg
PSB0aGlzT2JqZWN0LndyYXBwZWQoKTsKICAgICBKU1ZhbHVlIHJlc3VsdCA9IHRvSlM8SURMSW50
ZXJmYWNlPFRlc3RPYmo+PihzdGF0ZSwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93
U2NvcGUsIGltcGwud2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVSYWlzZXMoKmNv
bnRleHQpKTsKQEAgLTI5NzgsNyArMjk3OCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rl
c3RPYmpXaXRoU2NyaXAKICAgICBVTlVTRURfUEFSQU0odGhyb3dTY29wZSk7CiAgICAgVU5VU0VE
X1BBUkFNKHN0YXRlKTsKICAgICBhdXRvKiBjb250ZXh0ID0ganNDYXN0PEpTRE9NR2xvYmFsT2Jq
ZWN0Kj4oc3RhdGUubGV4aWNhbEdsb2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpOwotICAgIGlmICghY29udGV4dCkKKyAgICBpZiAoVU5MSUtFTFkoIWNvbnRleHQpKQogICAg
ICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKICAgICBhdXRvJiBpbXBsID0gdGhpc09iamVjdC53
cmFwcGVkKCk7CiAgICAgSlNWYWx1ZSByZXN1bHQgPSB0b0pTPElETEludGVyZmFjZTxUZXN0T2Jq
Pj4oc3RhdGUsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCBpbXBsLndpdGhTY3JpcHRFeGVj
dXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGUoc3RhdGUsICpjb250ZXh0KSk7CkBA
IC0yOTk3LDcgKzI5OTcsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqV2l0aFNj
cmlwCiAgICAgVU5VU0VEX1BBUkFNKHRocm93U2NvcGUpOwogICAgIFVOVVNFRF9QQVJBTShzdGF0
ZSk7CiAgICAgYXV0byogY29udGV4dCA9IGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KHN0YXRl
LmxleGljYWxHbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKLSAgICBp
ZiAoIWNvbnRleHQpCisgICAgaWYgKFVOTElLRUxZKCFjb250ZXh0KSkKICAgICAgICAgcmV0dXJu
IGpzVW5kZWZpbmVkKCk7CiAgICAgYXV0byYgaW1wbCA9IHRoaXNPYmplY3Qud3JhcHBlZCgpOwog
ICAgIEpTVmFsdWUgcmVzdWx0ID0gdG9KUzxJRExJbnRlcmZhY2U8VGVzdE9iaj4+KHN0YXRlLCAq
dGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC53aXRoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKHN0YXRlLCAqY29udGV4
dCkpOwpAQCAtMzAxNiw3ICszMDE2LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9i
aldpdGhTY3JpcAogICAgIFVOVVNFRF9QQVJBTSh0aHJvd1Njb3BlKTsKICAgICBVTlVTRURfUEFS
QU0oc3RhdGUpOwogICAgIGF1dG8qIGNvbnRleHQgPSBqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3Qq
PihzdGF0ZS5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7
Ci0gICAgaWYgKCFjb250ZXh0KQorICAgIGlmIChVTkxJS0VMWSghY29udGV4dCkpCiAgICAgICAg
IHJldHVybiBqc1VuZGVmaW5lZCgpOwogICAgIGF1dG8mIGltcGwgPSB0aGlzT2JqZWN0LndyYXBw
ZWQoKTsKICAgICBKU1ZhbHVlIHJlc3VsdCA9IHRvSlM8SURMSW50ZXJmYWNlPFRlc3RPYmo+Pihz
dGF0ZSwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIGltcGwud2l0aFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRBbmRTY3JpcHRTdGF0ZVdpdGhTcGFjZXNBdHRyaWJ1dGUoc3RhdGUsICpjb250ZXh0
KSk7CkBAIC00NTg0LDcgKzQ1ODQsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2Jq
V2l0aFNjcmlwCiAgICAgYXV0byBuYXRpdmVWYWx1ZSA9IGNvbnZlcnQ8SURMSW50ZXJmYWNlPFRl
c3RPYmo+PihzdGF0ZSwgdmFsdWUsIFtdKEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgSlNDOjpUaHJv
d1Njb3BlJiBzY29wZSkgeyB0aHJvd0F0dHJpYnV0ZVR5cGVFcnJvcihzdGF0ZSwgc2NvcGUsICJU
ZXN0T2JqZWN0IiwgIndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlIiwgIlRlc3RP
YmoiKTsgfSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCBmYWxzZSk7CiAg
ICAgYXV0byogY29udGV4dCA9IGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KHN0YXRlLmxleGlj
YWxHbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKLSAgICBpZiAoIWNv
bnRleHQpCisgICAgaWYgKFVOTElLRUxZKCFjb250ZXh0KSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIGltcGwuc2V0V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGUoKmNvbnRl
eHQsICpuYXRpdmVWYWx1ZSk7CiAgICAgcmV0dXJuIHRydWU7CkBAIC00NjI1LDcgKzQ2MjUsNyBA
QCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqV2l0aFNjcmlwCiAgICAgYXV0byBuYXRp
dmVWYWx1ZSA9IGNvbnZlcnQ8SURMSW50ZXJmYWNlPFRlc3RPYmo+PihzdGF0ZSwgdmFsdWUsIFtd
KEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgSlNDOjpUaHJvd1Njb3BlJiBzY29wZSkgeyB0aHJvd0F0
dHJpYnV0ZVR5cGVFcnJvcihzdGF0ZSwgc2NvcGUsICJUZXN0T2JqZWN0IiwgIndpdGhTY3JpcHRF
eGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2VzIiwgIlRlc3RPYmoiKTsgfSk7CiAgICAgUkVU
VVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCBmYWxzZSk7CiAgICAgYXV0byogY29udGV4dCA9
IGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KHN0YXRlLmxleGljYWxHbG9iYWxPYmplY3QoKSkt
PnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKLSAgICBpZiAoIWNvbnRleHQpCisgICAgaWYgKFVO
TElLRUxZKCFjb250ZXh0KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGltcGwuc2V0V2l0
aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVSYWlzZXMoKmNvbnRleHQsICpuYXRpdmVW
YWx1ZSk7CiAgICAgcmV0dXJuIHRydWU7CkBAIC00NjQ3LDcgKzQ2NDcsNyBAQCBzdGF0aWMgaW5s
aW5lIGJvb2wgc2V0SlNUZXN0T2JqV2l0aFNjcmlwCiAgICAgYXV0byBuYXRpdmVWYWx1ZSA9IGNv
bnZlcnQ8SURMSW50ZXJmYWNlPFRlc3RPYmo+PihzdGF0ZSwgdmFsdWUsIFtdKEpTQzo6RXhlY1N0
YXRlJiBzdGF0ZSwgSlNDOjpUaHJvd1Njb3BlJiBzY29wZSkgeyB0aHJvd0F0dHJpYnV0ZVR5cGVF
cnJvcihzdGF0ZSwgc2NvcGUsICJUZXN0T2JqZWN0IiwgIndpdGhTY3JpcHRFeGVjdXRpb25Db250
ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGUiLCAiVGVzdE9iaiIpOyB9KTsKICAgICBSRVRVUk5f
SUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIGZhbHNlKTsKICAgICBhdXRvKiBjb250ZXh0ID0ganND
YXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oc3RhdGUubGV4aWNhbEdsb2JhbE9iamVjdCgpKS0+c2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpOwotICAgIGlmICghY29udGV4dCkKKyAgICBpZiAoVU5MSUtF
TFkoIWNvbnRleHQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaW1wbC5zZXRXaXRoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlKHN0YXRlLCAqY29udGV4
dCwgKm5hdGl2ZVZhbHVlKTsKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTQ2NjksNyArNDY2OSw3IEBA
IHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXAKICAgICBhdXRvIG5hdGl2
ZVZhbHVlID0gY29udmVydDxJRExJbnRlcmZhY2U8VGVzdE9iaj4+KHN0YXRlLCB2YWx1ZSwgW10o
SlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBKU0M6OlRocm93U2NvcGUmIHNjb3BlKSB7IHRocm93QXR0
cmlidXRlVHlwZUVycm9yKHN0YXRlLCBzY29wZSwgIlRlc3RPYmplY3QiLCAid2l0aFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyIsICJUZXN0T2JqIik7
IH0pOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgZmFsc2UpOwogICAgIGF1
dG8qIGNvbnRleHQgPSBqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihzdGF0ZS5sZXhpY2FsR2xv
YmFsT2JqZWN0KCkpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7Ci0gICAgaWYgKCFjb250ZXh0
KQorICAgIGlmIChVTkxJS0VMWSghY29udGV4dCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICBpbXBsLnNldFdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1
dGVSYWlzZXMoc3RhdGUsICpjb250ZXh0LCAqbmF0aXZlVmFsdWUpOwogICAgIHJldHVybiB0cnVl
OwpAQCAtNDY5MSw3ICs0NjkxLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9ialdp
dGhTY3JpcAogICAgIGF1dG8gbmF0aXZlVmFsdWUgPSBjb252ZXJ0PElETEludGVyZmFjZTxUZXN0
T2JqPj4oc3RhdGUsIHZhbHVlLCBbXShKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIEpTQzo6VGhyb3dT
Y29wZSYgc2NvcGUpIHsgdGhyb3dBdHRyaWJ1dGVUeXBlRXJyb3Ioc3RhdGUsIHNjb3BlLCAiVGVz
dE9iamVjdCIsICJ3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlV2l0aFNw
YWNlc0F0dHJpYnV0ZSIsICJUZXN0T2JqIik7IH0pOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04o
dGhyb3dTY29wZSwgZmFsc2UpOwogICAgIGF1dG8qIGNvbnRleHQgPSBqc0Nhc3Q8SlNET01HbG9i
YWxPYmplY3QqPihzdGF0ZS5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpLT5zY3JpcHRFeGVjdXRpb25D
b250ZXh0KCk7Ci0gICAgaWYgKCFjb250ZXh0KQorICAgIGlmIChVTkxJS0VMWSghY29udGV4dCkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpbXBsLnNldFdpdGhTY3JpcHRFeGVjdXRpb25D
b250ZXh0QW5kU2NyaXB0U3RhdGVXaXRoU3BhY2VzQXR0cmlidXRlKHN0YXRlLCAqY29udGV4dCwg
Km5hdGl2ZVZhbHVlKTsKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTYwMzksNyArNjAzOSw3IEBAIHN0
YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICBVTlVTRURfUEFSQU0o
dGhyb3dTY29wZSk7CiAgICAgYXV0byYgaW1wbCA9IGNhc3RlZFRoaXMtPndyYXBwZWQoKTsKICAg
ICBhdXRvKiBjb250ZXh0ID0ganNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oc3RhdGUtPmxleGlj
YWxHbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKLSAgICBpZiAoIWNv
bnRleHQpCisgICAgaWYgKFVOTElLRUxZKCFjb250ZXh0KSkKICAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBpbXBsLndpdGhTY3JpcHRFeGVjdXRpb25D
b250ZXh0KCpjb250ZXh0KTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVk
KCkpOwpAQCAtNjA1OCw3ICs2MDU4LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdAogICAgIFVOVVNFRF9QQVJBTSh0aHJvd1Njb3BlKTsKICAgICBhdXRvJiBpbXBs
ID0gY2FzdGVkVGhpcy0+d3JhcHBlZCgpOwogICAgIGF1dG8qIGNvbnRleHQgPSBqc0Nhc3Q8SlNE
T01HbG9iYWxPYmplY3QqPihzdGF0ZS0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKS0+c2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpOwotICAgIGlmICghY29udGV4dCkKKyAgICBpZiAoVU5MSUtFTFkoIWNv
bnRleHQpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwog
ICAgIGltcGwud2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZSgqc3RhdGUs
ICpjb250ZXh0KTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwpA
QCAtNjA3Nyw3ICs2MDc3LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdAogICAgIFVOVVNFRF9QQVJBTSh0aHJvd1Njb3BlKTsKICAgICBhdXRvJiBpbXBsID0gY2Fz
dGVkVGhpcy0+d3JhcHBlZCgpOwogICAgIGF1dG8qIGNvbnRleHQgPSBqc0Nhc3Q8SlNET01HbG9i
YWxPYmplY3QqPihzdGF0ZS0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpOwotICAgIGlmICghY29udGV4dCkKKyAgICBpZiAoVU5MSUtFTFkoIWNvbnRleHQp
KQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExJbnRlcmZhY2U8VGVzdE9iaj4+KCpzdGF0ZSwg
KmNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLndpdGhTY3JpcHRF
eGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVPYmpFeGNlcHRpb24oKnN0YXRlLCAqY29udGV4
dCkpKTsKIH0KQEAgLTYwOTUsNyArNjA5NSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3QKICAgICBVTlVTRURfUEFSQU0odGhyb3dTY29wZSk7CiAgICAgYXV0byYg
aW1wbCA9IGNhc3RlZFRoaXMtPndyYXBwZWQoKTsKICAgICBhdXRvKiBjb250ZXh0ID0ganNDYXN0
PEpTRE9NR2xvYmFsT2JqZWN0Kj4oc3RhdGUtPmxleGljYWxHbG9iYWxPYmplY3QoKSktPnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKTsKLSAgICBpZiAoIWNvbnRleHQpCisgICAgaWYgKFVOTElLRUxZ
KCFjb250ZXh0KSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgp
KTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMSW50ZXJmYWNlPFRlc3RPYmo+
Pigqc3RhdGUsICpjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgaW1wbC53aXRoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlV2l0aFNwYWNlcygqc3RhdGUsICpjb250ZXh0KSkp
OwogfQpAQCAtNjEzMCw3ICs2MTMwLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdAogICAgIFVOVVNFRF9QQVJBTSh0aHJvd1Njb3BlKTsKICAgICBhdXRvJiBpbXBs
ID0gY2FzdGVkVGhpcy0+d3JhcHBlZCgpOwogICAgIGF1dG8qIGNvbnRleHQgPSBqc0Nhc3Q8SlNE
T01HbG9iYWxPYmplY3QqPihzdGF0ZS0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKS0+c2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpOwotICAgIGlmICghY29udGV4dCkKKyAgICBpZiAoVU5MSUtFTFkoIWNv
bnRleHQpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwog
ICAgIEFTU0VSVChjb250ZXh0LT5pc0RvY3VtZW50KCkpOwogICAgIGF1dG8mIGRvY3VtZW50ID0g
ZG93bmNhc3Q8RG9jdW1lbnQ+KCpjb250ZXh0KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHAJKHJldmlzaW9uIDIxMjY2MSkKKysrIFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0
b3JzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTM4LDcgKzEzOCw3IEBAIHN0YXRpYyBpbmxpbmUg
RW5jb2RlZEpTVmFsdWUgY29uc3RydWN0SlMKICAgICBBU1NFUlQoY2FzdGVkVGhpcyk7CiAgICAg
YXV0byBsb25nQXJncyA9IGNvbnZlcnRWYXJpYWRpY0FyZ3VtZW50czxJRExMb25nPigqc3RhdGUs
IDApOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgZW5jb2RlZEpTVmFsdWUo
KSk7Ci0gICAgYXV0byBvYmplY3QgPSBUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yczo6Y3JlYXRl
KFdURk1vdmUobG9uZ0FyZ3MpKTsKKyAgICBhdXRvIG9iamVjdCA9IFRlc3RPdmVybG9hZGVkQ29u
c3RydWN0b3JzOjpjcmVhdGUoV1RGTW92ZShsb25nQXJncy5hcmd1bWVudHMudmFsdWUoKSkpOwog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodG9KU05ld2x5Q3JlYXRlZDxJRExJbnRlcmZhY2U8
VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnM+Pigqc3RhdGUsICpjYXN0ZWRUaGlzLT5nbG9iYWxP
YmplY3QoKSwgV1RGTW92ZShvYmplY3QpKSk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEF1ZGlvRWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQXVkaW9FbGVtZW50LmlkbAkocmV2aXNpb24gMjEyNjYxKQorKysgU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQXVkaW9FbGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYs
NyBAQAogWwogICAgIEVuYWJsZWRBdFJ1bnRpbWUsCiAgICAgQ29uZGl0aW9uYWw9VklERU8sCisg
ICAgQ29uc3RydWN0b3JDYWxsV2l0aD1Eb2N1bWVudCwKICAgICBOYW1lZENvbnN0cnVjdG9yPUF1
ZGlvKG9wdGlvbmFsIERPTVN0cmluZyBzcmMpCiBdIGludGVyZmFjZSBIVE1MQXVkaW9FbGVtZW50
IDogSFRNTE1lZGlhRWxlbWVudCB7CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
SW1hZ2VFbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJ
bWFnZUVsZW1lbnQuaWRsCShyZXZpc2lvbiAyMTI2NjEpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxJbWFnZUVsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yMSw2ICsyMSw3IEBACiBb
CiAgICAgRXhwb3J0TWFjcm89V0VCQ09SRV9FWFBPUlQsCiAgICAgSlNHZW5lcmF0ZVRvTmF0aXZl
T2JqZWN0LAorICAgIENvbnN0cnVjdG9yQ2FsbFdpdGg9RG9jdW1lbnQsCiAgICAgTmFtZWRDb25z
dHJ1Y3Rvcj1JbWFnZShvcHRpb25hbCB1bnNpZ25lZCBsb25nIHdpZHRoLCBvcHRpb25hbCB1bnNp
Z25lZCBsb25nIGhlaWdodCkKIF0gaW50ZXJmYWNlIEhUTUxJbWFnZUVsZW1lbnQgOiBIVE1MRWxl
bWVudCB7CiAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgbmFtZTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuaWRsCShyZXZpc2lvbiAyMTI2NjEp
CisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmlkbAkod29ya2luZyBj
b3B5KQpAQCAtMjEsNiArMjEsNyBAQAogWwogICAgIENvbnN0cnVjdG9yTWF5VGhyb3dFeGNlcHRp
b24sCiAgICAgSlNHZW5lcmF0ZVRvTmF0aXZlT2JqZWN0LAorICAgIENvbnN0cnVjdG9yQ2FsbFdp
dGg9RG9jdW1lbnQsCiAgICAgTmFtZWRDb25zdHJ1Y3Rvcj1PcHRpb24ob3B0aW9uYWwgRE9NU3Ry
aW5nIGRhdGEsIG9wdGlvbmFsIERPTVN0cmluZyB2YWx1ZSwgb3B0aW9uYWwgYm9vbGVhbiBkZWZh
dWx0U2VsZWN0ZWQgPSBmYWxzZSwgb3B0aW9uYWwgYm9vbGVhbiBzZWxlY3RlZCA9IGZhbHNlKSwK
IF0gaW50ZXJmYWNlIEhUTUxPcHRpb25FbGVtZW50IDogSFRNTEVsZW1lbnQgewogICAgIFtSZWZs
ZWN0XSBhdHRyaWJ1dGUgYm9vbGVhbiBkaXNhYmxlZDsK
</data>

          </attachment>
      

    </bug>

</bugzilla>