<?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>102487</bug_id>
          
          <creation_ts>2012-11-16 05:30:16 -0800</creation_ts>
          <short_desc>[V8] Rename $className to $v8InterfaceName</short_desc>
          <delta_ts>2012-11-18 17:12:54 -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>WebCore JavaScript</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kentaro Hara">haraken</reporter>
          <assigned_to name="Kentaro Hara">haraken</assigned_to>
          <cc>abarth</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>769147</commentid>
    <comment_count>0</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-11-16 05:30:16 -0800</bug_when>
    <thetext>In CodeGeneratorV8.pm, $className is always &quot;V8$interfaceName&quot;. We should rename $className to $v8InterfaceName. Also we can remove GetCallbackClassName().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>769163</commentid>
    <comment_count>1</comment_count>
      <attachid>174656</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-11-16 05:40:48 -0800</bug_when>
    <thetext>Created attachment 174656
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>770198</commentid>
    <comment_count>2</comment_count>
      <attachid>174656</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-18 15:28:42 -0800</bug_when>
    <thetext>Comment on attachment 174656
Patch

Rejecting attachment 174656 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
#29 succeeded at 3378 (offset -19 lines).
Hunk #30 succeeded at 3461 (offset -19 lines).
Hunk #31 succeeded at 3475 (offset -19 lines).
Hunk #32 succeeded at 4214 (offset -19 lines).
Hunk #33 succeeded at 4261 (offset -19 lines).
1 out of 33 hunks FAILED -- saving rejects to file Source/WebCore/bindings/scripts/CodeGeneratorV8.pm.rej

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--force&apos;, u&apos;--reviewer&apos;, u&apos;Adam Barth&apos;]&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue

Full output: http://queues.webkit.org/results/14868954</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>770226</commentid>
    <comment_count>3</comment_count>
      <attachid>174862</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-11-18 16:47:06 -0800</bug_when>
    <thetext>Created attachment 174862
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>770231</commentid>
    <comment_count>4</comment_count>
      <attachid>174862</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-18 17:12:50 -0800</bug_when>
    <thetext>Comment on attachment 174862
patch for landing

Clearing flags on attachment: 174862

Committed r135092: &lt;http://trac.webkit.org/changeset/135092&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>770232</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-18 17:12:54 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174656</attachid>
            <date>2012-11-16 05:40:48 -0800</date>
            <delta_ts>2012-11-18 16:47:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-102487-20121116223843.patch</filename>
            <type>text/plain</type>
            <size>20561</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0OTMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzRkMjE3MDkxZGI1YTgw
YzhkN2Q0MjhhYzczODhiZDcxYWM4MDg3Zi4uZDg4ZTk0MTExYmRiNjEwYTc4Y2I5YjA2ZDZjNzNk
NTZlNjEyNWFiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEyLTExLTE2ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbVjhdIFJlbmFtZSAk
Y2xhc3NOYW1lIHRvICR2OEludGVyZmFjZU5hbWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMjQ4NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEluIENvZGVHZW5lcmF0b3JWOC5wbSwgJGNsYXNzTmFtZSBp
cyBhbHdheXMgIlY4JGludGVyZmFjZU5hbWUiLgorICAgICAgICBXZSBzaG91bGQgcmVuYW1lICRj
bGFzc05hbWUgdG8gJHY4SW50ZXJmYWNlTmFtZS4gQWxzbyB3ZSBjYW4KKyAgICAgICAgcmVtb3Zl
IEdldENhbGxiYWNrQ2xhc3NOYW1lKCkuCisKKyAgICAgICAgTm8gdGVzdHMuIE5vIGNoYW5nZSBp
biBiZWhhdmlvci4KKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4
LnBtOgorICAgICAgICAoR2VuZXJhdGVIZWFkZXIpOgorICAgICAgICAoR2V0SGVhZGVyQ2xhc3NJ
bmNsdWRlKToKKyAgICAgICAgKEdlbmVyYXRlRG9tYWluU2FmZUZ1bmN0aW9uR2V0dGVyKToKKyAg
ICAgICAgKEdlbmVyYXRlRG9tYWluU2FmZUZ1bmN0aW9uU2V0dGVyKToKKyAgICAgICAgKEdlbmVy
YXRlUGFyYW1ldGVyc0NoZWNrKToKKyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRpb24pOgor
ICAgICAgICAoR2VuZXJhdGVIZWFkZXJDb250ZW50SGVhZGVyKToKKyAgICAgICAgKEdlbmVyYXRl
SW1wbGVtZW50YXRpb25Db250ZW50SGVhZGVyKToKKyAgICAgICAgKEdlbmVyYXRlQ2FsbGJhY2tI
ZWFkZXIpOgorICAgICAgICAoR2VuZXJhdGVDYWxsYmFja0ltcGxlbWVudGF0aW9uKToKKyAgICAg
ICAgKEdlbmVyYXRlVG9WOENvbnZlcnRlcnMpOgorICAgICAgICAoR2V0UGFzc1JlZlB0clR5cGUp
OgorCiAyMDEyLTExLTE2ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNv
bT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTM0Njk0LgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0gYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQppbmRleCA0
NDcwOTA4ODZmZTc0ZTlkMzFlM2FhMzUzMzllYWNhMzg3YzdjMTI2Li5jNmFjMDk0ODNiMTQ3MTZj
MzI4YzdlMGU1ZmY4YmYyM2FiMGVmMWMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQpAQCAtMjg4LDcgKzI4OCw3IEBAIHN1YiBH
ZW5lcmF0ZUhlYWRlcgogICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OwogCiAgICAgbXkgJGludGVy
ZmFjZU5hbWUgPSAkZGF0YU5vZGUtPm5hbWU7Ci0gICAgbXkgJGNsYXNzTmFtZSA9ICJWOCRpbnRl
cmZhY2VOYW1lIjsKKyAgICBteSAkdjhJbnRlcmZhY2VOYW1lID0gIlY4JGludGVyZmFjZU5hbWUi
OwogCiAgICAgIyBDb3B5IGNvbnRlbnRzIG9mIHBhcmVudCBjbGFzc2VzIGV4Y2VwdCB0aGUgZmly
c3QgcGFyZW50LgogICAgICRjb2RlR2VuZXJhdG9yLT5BZGRNZXRob2RzQ29uc3RhbnRzQW5kQXR0
cmlidXRlc0Zyb21QYXJlbnRDbGFzc2VzKCRkYXRhTm9kZSwgXEBhbGxQYXJlbnRzLCAxKTsKQEAg
LTI5OCw3ICsyOTgsNyBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICBkaWUoIklzRE9NTm9kZVR5
cGUgaXMgb3V0IG9mIGRhdGUgd2l0aCByZXNwZWN0IHRvICRpbnRlcmZhY2VOYW1lIikgaWYgSXNE
T01Ob2RlVHlwZSgkaW50ZXJmYWNlTmFtZSkgIT0gSXNOb2RlU3ViVHlwZSgkZGF0YU5vZGUpOwog
CiAgICAgbXkgJGhhc0RlcGVuZGVudExpZmV0aW1lID0gJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiVjhEZXBlbmRlbnRMaWZldGltZSJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57IkFjdGl2ZURPTU9iamVjdCJ9Ci0gICAgICAgICB8fCBHZXRHZW5lcmF0ZUlzUmVh
Y2hhYmxlKCRkYXRhTm9kZSkgfHwgJGNsYXNzTmFtZSA9fiAvU1ZHLzsKKyAgICAgICAgIHx8IEdl
dEdlbmVyYXRlSXNSZWFjaGFibGUoJGRhdGFOb2RlKSB8fCAkdjhJbnRlcmZhY2VOYW1lID1+IC9T
VkcvOwogICAgIGlmICghJGhhc0RlcGVuZGVudExpZmV0aW1lKSB7CiAgICAgICAgIGZvcmVhY2gg
KEB7JGRhdGFOb2RlLT5wYXJlbnRzfSkgewogICAgICAgICAgICAgbXkgJHBhcmVudCA9ICRfOwpA
QCAtMzU1LDcgKzM1NSw3IEBAIHB1YmxpYzoKIEVORAogICAgIH0KIAotICAgIHB1c2goQGhlYWRl
ckNvbnRlbnQsICJjbGFzcyAkY2xhc3NOYW1lIHtcbiIpOworICAgIHB1c2goQGhlYWRlckNvbnRl
bnQsICJjbGFzcyAkdjhJbnRlcmZhY2VOYW1lIHtcbiIpOwogICAgIHB1c2goQGhlYWRlckNvbnRl
bnQsICJwdWJsaWM6XG4iKTsKIAogICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGlj
IGNvbnN0IGJvb2wgaGFzRGVwZW5kZW50TGlmZXRpbWUgPSAiKTsKQEAgLTU1Miw3ICs1NTIsNyBA
QCBFTkQKICAgICB9IGVsc2UgewogCiAgICAgICAgIG15ICRnZXRDYWNoZWRXcmFwcGVyID0gSXNO
b2RlU3ViVHlwZSgkZGF0YU5vZGUpID8gIlY4RE9NV3JhcHBlcjo6Z2V0Q2FjaGVkV3JhcHBlcihp
bXBsKSIgOiAiRE9NRGF0YVN0b3JlOjpjdXJyZW50KGlzb2xhdGUpLT5nZXQoaW1wbCkiOwotICAg
ICAgICBteSAkY3JlYXRlV3JhcHBlckNhbGwgPSAkY3VzdG9tV3JhcCA/ICIke2NsYXNzTmFtZX06
OndyYXAiIDogIiR7Y2xhc3NOYW1lfTo6Y3JlYXRlV3JhcHBlciI7CisgICAgICAgIG15ICRjcmVh
dGVXcmFwcGVyQ2FsbCA9ICRjdXN0b21XcmFwID8gIiR7djhJbnRlcmZhY2VOYW1lfTo6d3JhcCIg
OiAiJHt2OEludGVyZmFjZU5hbWV9OjpjcmVhdGVXcmFwcGVyIjsKIAogICAgICAgICBpZiAoJGN1
c3RvbVdyYXApIHsKICAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsIDw8RU5EKTsKQEAg
LTYyNiw3ICs2MjYsNyBAQCBFTkQKICAgICB9CiAKICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAi
XG59XG5cbiIpOwotICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIjZW5kaWYgLy8gJGNsYXNzTmFt
ZSIgLiAiX2hcbiIpOworICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIjZW5kaWYgLy8gJHY4SW50
ZXJmYWNlTmFtZSIgLiAiX2hcbiIpOwogCiAgICAgbXkgJGNvbmRpdGlvbmFsU3RyaW5nID0gJGNv
ZGVHZW5lcmF0b3ItPkdlbmVyYXRlQ29uZGl0aW9uYWxTdHJpbmcoJGRhdGFOb2RlKTsKICAgICBw
dXNoKEBoZWFkZXJDb250ZW50LCAiI2VuZGlmIC8vICR7Y29uZGl0aW9uYWxTdHJpbmd9XG5cbiIp
IGlmICRjb25kaXRpb25hbFN0cmluZzsKQEAgLTY1NSwxMyArNjU1LDEzIEBAIHN1YiBHZXRJbnRl
cm5hbEZpZWxkcwogCiBzdWIgR2V0SGVhZGVyQ2xhc3NJbmNsdWRlCiB7Ci0gICAgbXkgJGNsYXNz
TmFtZSA9IHNoaWZ0OwotICAgIGlmICgkY2xhc3NOYW1lID1+IC9TVkdQYXRoU2VnLykgewotICAg
ICAgICAkY2xhc3NOYW1lID1+IHMvQWJzfFJlbC8vOworICAgIG15ICR2OEludGVyZmFjZU5hbWUg
PSBzaGlmdDsKKyAgICBpZiAoJHY4SW50ZXJmYWNlTmFtZSA9fiAvU1ZHUGF0aFNlZy8pIHsKKyAg
ICAgICAgJHY4SW50ZXJmYWNlTmFtZSA9fiBzL0Fic3xSZWwvLzsKICAgICB9Ci0gICAgcmV0dXJu
ICJ3dGYvJHtjbGFzc05hbWV9LmgiIGlmICRjb2RlR2VuZXJhdG9yLT5Jc1R5cGVkQXJyYXlUeXBl
KCRjbGFzc05hbWUpOwotICAgIHJldHVybiAiIiBpZiAoJGNvZGVHZW5lcmF0b3ItPlNraXBJbmNs
dWRlSGVhZGVyKCRjbGFzc05hbWUpKTsKLSAgICByZXR1cm4gIiR7Y2xhc3NOYW1lfS5oIjsKKyAg
ICByZXR1cm4gInd0Zi8ke3Y4SW50ZXJmYWNlTmFtZX0uaCIgaWYgJGNvZGVHZW5lcmF0b3ItPklz
VHlwZWRBcnJheVR5cGUoJHY4SW50ZXJmYWNlTmFtZSk7CisgICAgcmV0dXJuICIiIGlmICgkY29k
ZUdlbmVyYXRvci0+U2tpcEluY2x1ZGVIZWFkZXIoJHY4SW50ZXJmYWNlTmFtZSkpOworICAgIHJl
dHVybiAiJHt2OEludGVyZmFjZU5hbWV9LmgiOwogfQogCiBzdWIgR2VuZXJhdGVIZWFkZXJDdXN0
b21JbnRlcm5hbEZpZWxkSW5kaWNlcwpAQCAtODE1LDEwICs4MTUsMTAgQEAgc3ViIEdlbmVyYXRl
RG9tYWluU2FmZUZ1bmN0aW9uR2V0dGVyCiAgICAgbXkgJGZ1bmN0aW9uID0gc2hpZnQ7CiAgICAg
bXkgJGludGVyZmFjZU5hbWUgPSBzaGlmdDsKIAotICAgIG15ICRjbGFzc05hbWUgPSAiVjgiIC4g
JGludGVyZmFjZU5hbWU7CisgICAgbXkgJHY4SW50ZXJmYWNlTmFtZSA9ICJWOCIgLiAkaW50ZXJm
YWNlTmFtZTsKICAgICBteSAkZnVuY05hbWUgPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+bmFtZTsK
IAotICAgIG15ICRzaWduYXR1cmUgPSAidjg6OlNpZ25hdHVyZTo6TmV3KCIgLiAkY2xhc3NOYW1l
IC4gIjo6R2V0UmF3VGVtcGxhdGUoKSkiOworICAgIG15ICRzaWduYXR1cmUgPSAidjg6OlNpZ25h
dHVyZTo6TmV3KCIgLiAkdjhJbnRlcmZhY2VOYW1lIC4gIjo6R2V0UmF3VGVtcGxhdGUoKSkiOwog
ICAgIGlmICgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlY4RG9O
b3RDaGVja1NpZ25hdHVyZSJ9KSB7CiAgICAgICAgICRzaWduYXR1cmUgPSAidjg6OkxvY2FsPHY4
OjpTaWduYXR1cmU+KCkiOwogICAgIH0KQEAgLTgzMSwxMyArODMxLDEzIEBAIHN0YXRpYyB2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4gJHtmdW5jTmFtZX1BdHRyR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3Ry
aW5nPiBuYW1lLCBjCiB7CiAgICAgSU5DX1NUQVRTKFwiRE9NLiRpbnRlcmZhY2VOYW1lLiRmdW5j
TmFtZS5fZ2V0XCIpOwogICAgIHN0YXRpYyB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1w
bGF0ZT4gcHJpdmF0ZVRlbXBsYXRlID0gdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxh
dGU+OjpOZXcoJG5ld1RlbXBsYXRlU3RyaW5nKTsKLSAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+
IGhvbGRlciA9IFY4RE9NV3JhcHBlcjo6bG9va3VwRE9NV3JhcHBlcigke2NsYXNzTmFtZX06Okdl
dFRlbXBsYXRlKCksIGluZm8uVGhpcygpKTsKKyAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGhv
bGRlciA9IFY4RE9NV3JhcHBlcjo6bG9va3VwRE9NV3JhcHBlcigke3Y4SW50ZXJmYWNlTmFtZX06
OkdldFRlbXBsYXRlKCksIGluZm8uVGhpcygpKTsKICAgICBpZiAoaG9sZGVyLklzRW1wdHkoKSkg
ewogICAgICAgICAvLyBjYW4gb25seSByZWFjaCBoZXJlIGJ5ICdvYmplY3QuX19wcm90b19fLmZ1
bmMnLCBhbmQgaXQgc2hvdWxkIHBhc3NlZAogICAgICAgICAvLyBkb21haW4gc2VjdXJpdHkgY2hl
Y2sgYWxyZWFkeQogICAgICAgICByZXR1cm4gcHJpdmF0ZVRlbXBsYXRlLT5HZXRGdW5jdGlvbigp
OwogICAgIH0KLSAgICAke2ludGVyZmFjZU5hbWV9KiBpbXAgPSAke2NsYXNzTmFtZX06OnRvTmF0
aXZlKGhvbGRlcik7CisgICAgJHtpbnRlcmZhY2VOYW1lfSogaW1wID0gJHt2OEludGVyZmFjZU5h
bWV9Ojp0b05hdGl2ZShob2xkZXIpOwogICAgIGlmICghQmluZGluZ1NlY3VyaXR5OjpzaG91bGRB
bGxvd0FjY2Vzc1RvRnJhbWUoQmluZGluZ1N0YXRlOjppbnN0YW5jZSgpLCBpbXAtPmZyYW1lKCks
IERvTm90UmVwb3J0U2VjdXJpdHlFcnJvcikpIHsKICAgICAgICAgc3RhdGljIHY4OjpQZXJzaXN0
ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiBzaGFyZWRUZW1wbGF0ZSA9IHY4OjpQZXJzaXN0ZW50
PHY4OjpGdW5jdGlvblRlbXBsYXRlPjo6TmV3KCRuZXdUZW1wbGF0ZVN0cmluZyk7CiAgICAgICAg
IHJldHVybiBzaGFyZWRUZW1wbGF0ZS0+R2V0RnVuY3Rpb24oKTsKQEAgLTg1NiwxNiArODU2LDE2
IEBAIEVORAogc3ViIEdlbmVyYXRlRG9tYWluU2FmZUZ1bmN0aW9uU2V0dGVyCiB7CiAgICAgbXkg
JGludGVyZmFjZU5hbWUgPSBzaGlmdDsKLSAgICBteSAkY2xhc3NOYW1lID0gIlY4IiAuICRpbnRl
cmZhY2VOYW1lOworICAgIG15ICR2OEludGVyZmFjZU5hbWUgPSAiVjgiIC4gJGludGVyZmFjZU5h
bWU7CiAKICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCA8PEVORCk7CiBzdGF0aWMgdm9pZCAk
e2ludGVyZmFjZU5hbWV9RG9tYWluU2FmZUZ1bmN0aW9uU2V0dGVyKHY4OjpMb2NhbDx2ODo6U3Ry
aW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwgY29uc3Qgdjg6OkFjY2Vzc29y
SW5mbyYgaW5mbykKIHsKICAgICBJTkNfU1RBVFMoIkRPTS4kaW50ZXJmYWNlTmFtZS5fc2V0Iik7
Ci0gICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBob2xkZXIgPSBWOERPTVdyYXBwZXI6Omxvb2t1
cERPTVdyYXBwZXIoJHtjbGFzc05hbWV9OjpHZXRUZW1wbGF0ZSgpLCBpbmZvLlRoaXMoKSk7Cisg
ICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBob2xkZXIgPSBWOERPTVdyYXBwZXI6Omxvb2t1cERP
TVdyYXBwZXIoJHt2OEludGVyZmFjZU5hbWV9OjpHZXRUZW1wbGF0ZSgpLCBpbmZvLlRoaXMoKSk7
CiAgICAgaWYgKGhvbGRlci5Jc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKLSAgICAke2ludGVy
ZmFjZU5hbWV9KiBpbXAgPSAke2NsYXNzTmFtZX06OnRvTmF0aXZlKGhvbGRlcik7CisgICAgJHtp
bnRlcmZhY2VOYW1lfSogaW1wID0gJHt2OEludGVyZmFjZU5hbWV9Ojp0b05hdGl2ZShob2xkZXIp
OwogICAgIGlmICghQmluZGluZ1NlY3VyaXR5OjpzaG91bGRBbGxvd0FjY2Vzc1RvRnJhbWUoQmlu
ZGluZ1N0YXRlOjppbnN0YW5jZSgpLCBpbXAtPmZyYW1lKCkpKQogICAgICAgICByZXR1cm47CiAK
QEAgLTE3NzYsMTkgKzE3NzYsMTkgQEAgc3ViIEdlbmVyYXRlUGFyYW1ldGVyc0NoZWNrCiAKICAg
ICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIkV4Y2VwdGlvbkNvZGUuaCIpOwogICAgICAgICBpZiAo
JHBhcmFtZXRlci0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNhbGxiYWNrIn0pIHsKLSAgICAgICAg
ICAgIG15ICRjbGFzc05hbWUgPSBHZXRDYWxsYmFja0NsYXNzTmFtZSgkcGFyYW1ldGVyLT50eXBl
KTsKLSAgICAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCIkY2xhc3NOYW1lLmgiKTsKKyAgICAg
ICAgICAgIG15ICR2OEludGVyZmFjZU5hbWUgPSAiVjgiIC4gJHBhcmFtZXRlci0+dHlwZTsKKyAg
ICAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCIkdjhJbnRlcmZhY2VOYW1lLmgiKTsKICAgICAg
ICAgICAgIGlmICgkb3B0aW9uYWwpIHsKICAgICAgICAgICAgICAgICAkcGFyYW1ldGVyQ2hlY2tT
dHJpbmcgLj0gIiAgICBSZWZQdHI8IiAuICRwYXJhbWV0ZXItPnR5cGUgLiAiPiAkcGFyYW1ldGVy
TmFtZTtcbiI7CiAgICAgICAgICAgICAgICAgJHBhcmFtZXRlckNoZWNrU3RyaW5nIC49ICIgICAg
aWYgKGFyZ3MuTGVuZ3RoKCkgPiAkcGFyYW1JbmRleCAmJiAhYXJnc1skcGFyYW1JbmRleF0tPklz
TnVsbCgpICYmICFhcmdzWyRwYXJhbUluZGV4XS0+SXNVbmRlZmluZWQoKSkge1xuIjsKICAgICAg
ICAgICAgICAgICAkcGFyYW1ldGVyQ2hlY2tTdHJpbmcgLj0gIiAgICAgICAgaWYgKCFhcmdzWyRw
YXJhbUluZGV4XS0+SXNGdW5jdGlvbigpKVxuIjsKICAgICAgICAgICAgICAgICAkcGFyYW1ldGVy
Q2hlY2tTdHJpbmcgLj0gIiAgICAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcigwLCBhcmdz
LkdldElzb2xhdGUoKSk7XG4iOwotICAgICAgICAgICAgICAgICRwYXJhbWV0ZXJDaGVja1N0cmlu
ZyAuPSAiICAgICAgICAkcGFyYW1ldGVyTmFtZSA9ICR7Y2xhc3NOYW1lfTo6Y3JlYXRlKGFyZ3Nb
JHBhcmFtSW5kZXhdLCBnZXRTY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpO1xuIjsKKyAgICAgICAg
ICAgICAgICAkcGFyYW1ldGVyQ2hlY2tTdHJpbmcgLj0gIiAgICAgICAgJHBhcmFtZXRlck5hbWUg
PSAke3Y4SW50ZXJmYWNlTmFtZX06OmNyZWF0ZShhcmdzWyRwYXJhbUluZGV4XSwgZ2V0U2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpKTtcbiI7CiAgICAgICAgICAgICAgICAgJHBhcmFtZXRlckNoZWNr
U3RyaW5nIC49ICIgICAgfVxuIjsKICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAg
ICAgJHBhcmFtZXRlckNoZWNrU3RyaW5nIC49ICIgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPD0gJHBh
cmFtSW5kZXggfHwgIWFyZ3NbJHBhcmFtSW5kZXhdLT5Jc0Z1bmN0aW9uKCkpXG4iOwogICAgICAg
ICAgICAgICAgICRwYXJhbWV0ZXJDaGVja1N0cmluZyAuPSAiICAgICAgICByZXR1cm4gdGhyb3dU
eXBlRXJyb3IoMCwgYXJncy5HZXRJc29sYXRlKCkpO1xuIjsKLSAgICAgICAgICAgICAgICAkcGFy
YW1ldGVyQ2hlY2tTdHJpbmcgLj0gIiAgICBSZWZQdHI8IiAuICRwYXJhbWV0ZXItPnR5cGUgLiAi
PiAkcGFyYW1ldGVyTmFtZSA9ICR7Y2xhc3NOYW1lfTo6Y3JlYXRlKGFyZ3NbJHBhcmFtSW5kZXhd
LCBnZXRTY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpO1xuIjsKKyAgICAgICAgICAgICAgICAkcGFy
YW1ldGVyQ2hlY2tTdHJpbmcgLj0gIiAgICBSZWZQdHI8IiAuICRwYXJhbWV0ZXItPnR5cGUgLiAi
PiAkcGFyYW1ldGVyTmFtZSA9ICR7djhJbnRlcmZhY2VOYW1lfTo6Y3JlYXRlKGFyZ3NbJHBhcmFt
SW5kZXhdLCBnZXRTY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpO1xuIjsKICAgICAgICAgICAgIH0K
ICAgICAgICAgfSBlbHNpZiAoJHBhcmFtZXRlci0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNsYW1w
In0pIHsKICAgICAgICAgICAgICAgICBteSAkbmF0aXZlVmFsdWUgPSAiJHtwYXJhbWV0ZXJOYW1l
fU5hdGl2ZVZhbHVlIjsKQEAgLTI2NjEsNyArMjY2MSw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVu
dGF0aW9uCiAgICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7CiAgICAgbXkgJGludGVyZmFjZU5hbWUg
PSAkZGF0YU5vZGUtPm5hbWU7CiAgICAgbXkgJHZpc2libGVJbnRlcmZhY2VOYW1lID0gJGNvZGVH
ZW5lcmF0b3ItPkdldFZpc2libGVJbnRlcmZhY2VOYW1lKCRkYXRhTm9kZSk7Ci0gICAgbXkgJGNs
YXNzTmFtZSA9ICJWOCRpbnRlcmZhY2VOYW1lIjsKKyAgICBteSAkdjhJbnRlcmZhY2VOYW1lID0g
IlY4JGludGVyZmFjZU5hbWUiOwogICAgIG15ICRuYXRpdmVUeXBlID0gR2V0TmF0aXZlVHlwZUZv
ckNvbnZlcnNpb25zKCRkYXRhTm9kZSk7CiAKICAgICAjIC0gQWRkIGRlZmF1bHQgaGVhZGVyIHRl
bXBsYXRlCkBAIC0yNjc1LDggKzI2NzUsOCBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgog
CiAgICAgQWRkSW5jbHVkZXNGb3JUeXBlKCRpbnRlcmZhY2VOYW1lKTsKIAotICAgIG15ICR0b0Fj
dGl2ZSA9ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkFjdGl2ZURPTU9iamVjdCJ9
ID8gIiR7Y2xhc3NOYW1lfTo6dG9BY3RpdmVET01PYmplY3QiIDogIjAiOwotICAgIG15ICRyb290
Rm9yR0MgPSBOZWVkc0N1c3RvbU9wYXF1ZVJvb3RGb3JHQygkZGF0YU5vZGUpID8gIiR7Y2xhc3NO
YW1lfTo6b3BhcXVlUm9vdEZvckdDIiA6ICIwIjsKKyAgICBteSAkdG9BY3RpdmUgPSAkZGF0YU5v
ZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJBY3RpdmVET01PYmplY3QifSA/ICIke3Y4SW50ZXJm
YWNlTmFtZX06OnRvQWN0aXZlRE9NT2JqZWN0IiA6ICIwIjsKKyAgICBteSAkcm9vdEZvckdDID0g
TmVlZHNDdXN0b21PcGFxdWVSb290Rm9yR0MoJGRhdGFOb2RlKSA/ICIke3Y4SW50ZXJmYWNlTmFt
ZX06Om9wYXF1ZVJvb3RGb3JHQyIgOiAiMCI7CiAKICAgICAjIEZpbmQgdGhlIHN1cGVyIGRlc2Ny
aXB0b3IuCiAgICAgbXkgJHBhcmVudENsYXNzID0gIiI7CkBAIC0yNjkzLDcgKzI2OTMsNyBAQCBz
dWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogCiAgICAgbXkgJFdyYXBwZXJUeXBlUHJvdG90eXBl
ID0gJGRhdGFOb2RlLT5pc0V4Y2VwdGlvbiA/ICJXcmFwcGVyVHlwZUVycm9yUHJvdG90eXBlIiA6
ICJXcmFwcGVyVHlwZU9iamVjdFByb3RvdHlwZSI7CiAKLSAgICBwdXNoKEBpbXBsQ29udGVudERl
Y2xzLCAiV3JhcHBlclR5cGVJbmZvICR7Y2xhc3NOYW1lfTo6aW5mbyA9IHsgJHtjbGFzc05hbWV9
OjpHZXRUZW1wbGF0ZSwgJHtjbGFzc05hbWV9OjpkZXJlZk9iamVjdCwgJHRvQWN0aXZlLCAkcm9v
dEZvckdDLCAke2NsYXNzTmFtZX06Omluc3RhbGxQZXJDb250ZXh0UHJvdG90eXBlUHJvcGVydGll
cywgJHBhcmVudENsYXNzSW5mbywgJFdyYXBwZXJUeXBlUHJvdG90eXBlIH07XG5cbiIpOworICAg
IHB1c2goQGltcGxDb250ZW50RGVjbHMsICJXcmFwcGVyVHlwZUluZm8gJHt2OEludGVyZmFjZU5h
bWV9OjppbmZvID0geyAke3Y4SW50ZXJmYWNlTmFtZX06OkdldFRlbXBsYXRlLCAke3Y4SW50ZXJm
YWNlTmFtZX06OmRlcmVmT2JqZWN0LCAkdG9BY3RpdmUsICRyb290Rm9yR0MsICR7djhJbnRlcmZh
Y2VOYW1lfTo6aW5zdGFsbFBlckNvbnRleHRQcm90b3R5cGVQcm9wZXJ0aWVzLCAkcGFyZW50Q2xh
c3NJbmZvLCAkV3JhcHBlclR5cGVQcm90b3R5cGUgfTtcblxuIik7CiAgICAgcHVzaChAaW1wbENv
bnRlbnREZWNscywgIm5hbWVzcGFjZSAke2ludGVyZmFjZU5hbWV9VjhJbnRlcm5hbCB7XG5cbiIp
OwogCiAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgInRlbXBsYXRlIDx0eXBlbmFtZSBUPiB2
b2lkIFY4X1VTRShUKSB7IH1cblxuIik7CkBAIC0yOTU2LDcgKzI5NTYsNyBAQCBFTkQKIAogICAg
ICMgR2VuZXJhdGUgdGhlIHRlbXBsYXRlIGNvbmZpZ3VyYXRpb24gbWV0aG9kCiAgICAgcHVzaChA
aW1wbENvbnRlbnQsICA8PEVORCk7Ci1zdGF0aWMgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9u
VGVtcGxhdGU+IENvbmZpZ3VyZSR7Y2xhc3NOYW1lfVRlbXBsYXRlKHY4OjpQZXJzaXN0ZW50PHY4
OjpGdW5jdGlvblRlbXBsYXRlPiBkZXNjKQorc3RhdGljIHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5j
dGlvblRlbXBsYXRlPiBDb25maWd1cmUke3Y4SW50ZXJmYWNlTmFtZX1UZW1wbGF0ZSh2ODo6UGVy
c2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gZGVzYykKIHsKICAgICBkZXNjLT5SZWFkT25s
eVByb3RvdHlwZSgpOwogCkBAIC0zMTA4LDcgKzMxMDgsNyBAQCBFTkQKICAgICByZXR1cm4gZGVz
YzsKIH0KIAotdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+ICR7Y2xhc3NOYW1l
fTo6R2V0UmF3VGVtcGxhdGUoKQordjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+
ICR7djhJbnRlcmZhY2VOYW1lfTo6R2V0UmF3VGVtcGxhdGUoKQogewogICAgIFY4UGVySXNvbGF0
ZURhdGEqIGRhdGEgPSBWOFBlcklzb2xhdGVEYXRhOjpjdXJyZW50KCk7CiAgICAgVjhQZXJJc29s
YXRlRGF0YTo6VGVtcGxhdGVNYXA6Oml0ZXJhdG9yIHJlc3VsdCA9IGRhdGEtPnJhd1RlbXBsYXRl
TWFwKCkuZmluZCgmaW5mbyk7CkBAIC0zMTIxLDcgKzMxMjEsNyBAQCB2ODo6UGVyc2lzdGVudDx2
ODo6RnVuY3Rpb25UZW1wbGF0ZT4gJHtjbGFzc05hbWV9OjpHZXRSYXdUZW1wbGF0ZSgpCiAgICAg
cmV0dXJuIHRlbXBsOwogfQogCi12ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4g
JHtjbGFzc05hbWV9OjpHZXRUZW1wbGF0ZSgpCit2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25U
ZW1wbGF0ZT4gJHt2OEludGVyZmFjZU5hbWV9OjpHZXRUZW1wbGF0ZSgpCiB7CiAgICAgVjhQZXJJ
c29sYXRlRGF0YSogZGF0YSA9IFY4UGVySXNvbGF0ZURhdGE6OmN1cnJlbnQoKTsKICAgICBWOFBl
cklzb2xhdGVEYXRhOjpUZW1wbGF0ZU1hcDo6aXRlcmF0b3IgcmVzdWx0ID0gZGF0YS0+dGVtcGxh
dGVNYXAoKS5maW5kKCZpbmZvKTsKQEAgLTMxMzAsMTIgKzMxMzAsMTIgQEAgdjg6OlBlcnNpc3Rl
bnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+ICR7Y2xhc3NOYW1lfTo6R2V0VGVtcGxhdGUoKQogCiAg
ICAgdjg6OkhhbmRsZVNjb3BlIGhhbmRsZVNjb3BlOwogICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpG
dW5jdGlvblRlbXBsYXRlPiB0ZW1wbCA9Ci0gICAgICAgIENvbmZpZ3VyZSR7Y2xhc3NOYW1lfVRl
bXBsYXRlKEdldFJhd1RlbXBsYXRlKCkpOworICAgICAgICBDb25maWd1cmUke3Y4SW50ZXJmYWNl
TmFtZX1UZW1wbGF0ZShHZXRSYXdUZW1wbGF0ZSgpKTsKICAgICBkYXRhLT50ZW1wbGF0ZU1hcCgp
LmFkZCgmaW5mbywgdGVtcGwpOwogICAgIHJldHVybiB0ZW1wbDsKIH0KIAotYm9vbCAke2NsYXNz
TmFtZX06Okhhc0luc3RhbmNlKHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2YWx1ZSkKK2Jvb2wgJHt2
OEludGVyZmFjZU5hbWV9OjpIYXNJbnN0YW5jZSh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdmFsdWUp
CiB7CiAgICAgcmV0dXJuIEdldFJhd1RlbXBsYXRlKCktPkhhc0luc3RhbmNlKHZhbHVlKTsKIH0K
QEAgLTMxNDQsNyArMzE0NCw3IEBAIEVORAogCiAgICAgaWYgKEBlbmFibGVkUGVyQ29udGV4dEF0
dHJpYnV0ZXMpIHsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsIDw8RU5EKTsKLXZvaWQgJHtj
bGFzc05hbWV9OjppbnN0YWxsUGVyQ29udGV4dFByb3BlcnRpZXModjg6OkhhbmRsZTx2ODo6T2Jq
ZWN0PiBpbnN0YW5jZSwgJHtuYXRpdmVUeXBlfSogaW1wbCkKK3ZvaWQgJHt2OEludGVyZmFjZU5h
bWV9OjppbnN0YWxsUGVyQ29udGV4dFByb3BlcnRpZXModjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBp
bnN0YW5jZSwgJHtuYXRpdmVUeXBlfSogaW1wbCkKIHsKICAgICB2ODo6TG9jYWw8djg6Ok9iamVj
dD4gcHJvdG8gPSB2ODo6TG9jYWw8djg6Ok9iamVjdD46OkNhc3QoaW5zdGFuY2UtPkdldFByb3Rv
dHlwZSgpKTsKICAgICAvLyBXaGVuIGJ1aWxkaW5nIFF0V2Via2l0IHdpdGggVjggdGhpcyB2YXJp
YWJsZSBpcyB1bnVzZWQgd2hlbiBub25lIG9mIHRoZSBmZWF0dXJlcyBhcmUgZW5hYmxlZC4KQEAg
LTMxNzIsNyArMzE3Miw3IEBAIEVORAogCiAgICAgaWYgKEBlbmFibGVkUGVyQ29udGV4dEZ1bmN0
aW9ucykgewogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgPDxFTkQpOwotdm9pZCAke2NsYXNz
TmFtZX06Omluc3RhbGxQZXJDb250ZXh0UHJvdG90eXBlUHJvcGVydGllcyh2ODo6SGFuZGxlPHY4
OjpPYmplY3Q+IHByb3RvKQordm9pZCAke3Y4SW50ZXJmYWNlTmFtZX06Omluc3RhbGxQZXJDb250
ZXh0UHJvdG90eXBlUHJvcGVydGllcyh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHByb3RvKQogewog
ICAgIFVOVVNFRF9QQVJBTShwcm90byk7CiBFTkQKQEAgLTMyMDgsNyArMzIwOCw3IEBAIEVORAog
ICAgICAgICAjIGZyb20gQWN0aXZlRE9NT2JqZWN0LCBzbyBkb24ndCB0cnkgdG8gY2FzdCBpdCB0
byBBY3RpdmVET01PYmplY3QuCiAgICAgICAgIG15ICRyZXR1cm5WYWx1ZSA9ICRpbnRlcmZhY2VO
YW1lIGVxICJNZXNzYWdlUG9ydCIgPyAiMCIgOiAidG9OYXRpdmUob2JqZWN0KSI7CiAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCA8PEVORCk7Ci1BY3RpdmVET01PYmplY3QqICR7Y2xhc3NOYW1l
fTo6dG9BY3RpdmVET01PYmplY3Qodjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBvYmplY3QpCitBY3Rp
dmVET01PYmplY3QqICR7djhJbnRlcmZhY2VOYW1lfTo6dG9BY3RpdmVET01PYmplY3Qodjg6Okhh
bmRsZTx2ODo6T2JqZWN0PiBvYmplY3QpCiB7CiAgICAgcmV0dXJuICR7cmV0dXJuVmFsdWV9Owog
fSAgICAgIApAQCAtMzIyOSwxMSArMzIyOSwxMSBAQCB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0
VGVtcGxhdGU+IFY4RE9NV2luZG93OjpHZXRTaGFkb3dPYmplY3RUZW1wbGF0ZSgpCiBFTkQKICAg
ICB9CiAKLSAgICBHZW5lcmF0ZVRvVjhDb252ZXJ0ZXJzKCRkYXRhTm9kZSwgJGNsYXNzTmFtZSwg
JG5hdGl2ZVR5cGUpOworICAgIEdlbmVyYXRlVG9WOENvbnZlcnRlcnMoJGRhdGFOb2RlLCAkdjhJ
bnRlcmZhY2VOYW1lLCAkbmF0aXZlVHlwZSk7CiAKICAgICBwdXNoKEBpbXBsQ29udGVudCwgPDxF
TkQpOwogCi12b2lkICR7Y2xhc3NOYW1lfTo6ZGVyZWZPYmplY3Qodm9pZCogb2JqZWN0KQordm9p
ZCAke3Y4SW50ZXJmYWNlTmFtZX06OmRlcmVmT2JqZWN0KHZvaWQqIG9iamVjdCkKIHsKICAgICBz
dGF0aWNfY2FzdDwke25hdGl2ZVR5cGV9Kj4ob2JqZWN0KS0+ZGVyZWYoKTsKIH0KQEAgLTMyNDYs
MzMgKzMyNDYsMzMgQEAgRU5ECiAgICAgCiAgICAgIyBXZSd2ZSBhbHJlYWR5IGFkZGVkIHRoZSBo
ZWFkZXIgZm9yIHRoaXMgZmlsZSBpbiBpbXBsRml4ZWRIZWFkZXIsIHNvIHJlbW92ZQogICAgICMg
aXQgZnJvbSBpbXBsSW5jbHVkZXMgdG8gZW5zdXJlIHdlIGRvbid0ICNpbmNsdWRlIGl0IHR3aWNl
LgotICAgIGRlbGV0ZSAkaW1wbEluY2x1ZGVzeyIke2NsYXNzTmFtZX0uaCJ9OworICAgIGRlbGV0
ZSAkaW1wbEluY2x1ZGVzeyIke3Y4SW50ZXJmYWNlTmFtZX0uaCJ9OwogfQogCiBzdWIgR2VuZXJh
dGVIZWFkZXJDb250ZW50SGVhZGVyCiB7CiAgICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7Ci0gICAg
bXkgJGNsYXNzTmFtZSA9ICJWOCIgLiAkZGF0YU5vZGUtPm5hbWU7CisgICAgbXkgJHY4SW50ZXJm
YWNlTmFtZSA9ICJWOCIgLiAkZGF0YU5vZGUtPm5hbWU7CiAgICAgbXkgJGNvbmRpdGlvbmFsU3Ry
aW5nID0gJGNvZGVHZW5lcmF0b3ItPkdlbmVyYXRlQ29uZGl0aW9uYWxTdHJpbmcoJGRhdGFOb2Rl
KTsKIAogICAgIG15IEBoZWFkZXJDb250ZW50SGVhZGVyID0gc3BsaXQoIlxyIiwgJGhlYWRlclRl
bXBsYXRlKTsKIAogICAgIHB1c2goQGhlYWRlckNvbnRlbnRIZWFkZXIsICJcbiNpZiAke2NvbmRp
dGlvbmFsU3RyaW5nfVxuIikgaWYgJGNvbmRpdGlvbmFsU3RyaW5nOwotICAgIHB1c2goQGhlYWRl
ckNvbnRlbnRIZWFkZXIsICJcbiNpZm5kZWYgJHtjbGFzc05hbWV9IiAuICJfaCIpOwotICAgIHB1
c2goQGhlYWRlckNvbnRlbnRIZWFkZXIsICJcbiNkZWZpbmUgJHtjbGFzc05hbWV9IiAuICJfaFxu
XG4iKTsKKyAgICBwdXNoKEBoZWFkZXJDb250ZW50SGVhZGVyLCAiXG4jaWZuZGVmICR7djhJbnRl
cmZhY2VOYW1lfSIgLiAiX2giKTsKKyAgICBwdXNoKEBoZWFkZXJDb250ZW50SGVhZGVyLCAiXG4j
ZGVmaW5lICR7djhJbnRlcmZhY2VOYW1lfSIgLiAiX2hcblxuIik7CiAgICAgcmV0dXJuIEBoZWFk
ZXJDb250ZW50SGVhZGVyOwogfQogCiBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbkNvbnRlbnRI
ZWFkZXIKIHsKICAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsKLSAgICBteSAkY2xhc3NOYW1lID0g
IlY4IiAuICRkYXRhTm9kZS0+bmFtZTsKKyAgICBteSAkdjhJbnRlcmZhY2VOYW1lID0gIlY4IiAu
ICRkYXRhTm9kZS0+bmFtZTsKICAgICBteSAkY29uZGl0aW9uYWxTdHJpbmcgPSAkY29kZUdlbmVy
YXRvci0+R2VuZXJhdGVDb25kaXRpb25hbFN0cmluZygkZGF0YU5vZGUpOwogCiAgICAgbXkgQGlt
cGxDb250ZW50SGVhZGVyID0gc3BsaXQoIlxyIiwgJGhlYWRlclRlbXBsYXRlKTsKIAogICAgIHB1
c2goQGltcGxDb250ZW50SGVhZGVyLCAiXG4jaW5jbHVkZSBcImNvbmZpZy5oXCJcbiIpOwotICAg
IHB1c2goQGltcGxDb250ZW50SGVhZGVyLCAiI2luY2x1ZGUgXCIke2NsYXNzTmFtZX0uaFwiXG5c
biIpOworICAgIHB1c2goQGltcGxDb250ZW50SGVhZGVyLCAiI2luY2x1ZGUgXCIke3Y4SW50ZXJm
YWNlTmFtZX0uaFwiXG5cbiIpOwogICAgIHB1c2goQGltcGxDb250ZW50SGVhZGVyLCAiI2lmICR7
Y29uZGl0aW9uYWxTdHJpbmd9XG5cbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKICAgICByZXR1
cm4gQGltcGxDb250ZW50SGVhZGVyOwogfQpAQCAtMzI4Myw3ICszMjgzLDcgQEAgc3ViIEdlbmVy
YXRlQ2FsbGJhY2tIZWFkZXIKICAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsKIAogICAgIG15ICRp
bnRlcmZhY2VOYW1lID0gJGRhdGFOb2RlLT5uYW1lOwotICAgIG15ICRjbGFzc05hbWUgPSAiVjgk
aW50ZXJmYWNlTmFtZSI7CisgICAgbXkgJHY4SW50ZXJmYWNlTmFtZSA9ICJWOCRpbnRlcmZhY2VO
YW1lIjsKIAogCiAgICAgIyAtIEFkZCBkZWZhdWx0IGhlYWRlciB0ZW1wbGF0ZQpAQCAtMzI5OSwx
OCArMzI5OSwxOCBAQCBzdWIgR2VuZXJhdGVDYWxsYmFja0hlYWRlcgogICAgIAogICAgIHB1c2go
QGhlYWRlckNvbnRlbnQsICJcblxubmFtZXNwYWNlIFdlYkNvcmUge1xuXG4iKTsKICAgICBwdXNo
KEBoZWFkZXJDb250ZW50LCAiY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDtcblxuIik7Ci0g
ICAgcHVzaChAaGVhZGVyQ29udGVudCwgImNsYXNzICRjbGFzc05hbWUgOiBwdWJsaWMgJGludGVy
ZmFjZU5hbWUsIHB1YmxpYyBBY3RpdmVET01DYWxsYmFjayB7XG4iKTsKKyAgICBwdXNoKEBoZWFk
ZXJDb250ZW50LCAiY2xhc3MgJHY4SW50ZXJmYWNlTmFtZSA6IHB1YmxpYyAkaW50ZXJmYWNlTmFt
ZSwgcHVibGljIEFjdGl2ZURPTUNhbGxiYWNrIHtcbiIpOwogCiAgICAgcHVzaChAaGVhZGVyQ29u
dGVudCwgPDxFTkQpOwogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPCR7Y2xhc3NOYW1l
fT4gY3JlYXRlKHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlLCBTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBjb250ZXh0KQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPCR7djhJbnRlcmZhY2VOYW1lfT4g
Y3JlYXRlKHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBjb250ZXh0KQogICAgIHsKICAgICAgICAgQVNTRVJUKHZhbHVlLT5Jc09iamVjdCgpKTsKICAg
ICAgICAgQVNTRVJUKGNvbnRleHQpOwotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3ICR7Y2xh
c3NOYW1lfSh2YWx1ZS0+VG9PYmplY3QoKSwgY29udGV4dCkpOworICAgICAgICByZXR1cm4gYWRv
cHRSZWYobmV3ICR7djhJbnRlcmZhY2VOYW1lfSh2YWx1ZS0+VG9PYmplY3QoKSwgY29udGV4dCkp
OwogICAgIH0KIAotICAgIHZpcnR1YWwgfiR7Y2xhc3NOYW1lfSgpOworICAgIHZpcnR1YWwgfiR7
djhJbnRlcmZhY2VOYW1lfSgpOwogCiBFTkQKIApAQCAtMzMzOSw3ICszMzM5LDcgQEAgRU5ECiAg
ICAgcHVzaChAaGVhZGVyQ29udGVudCwgPDxFTkQpOwogCiBwcml2YXRlOgotICAgICR7Y2xhc3NO
YW1lfSh2ODo6TG9jYWw8djg6Ok9iamVjdD4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKKyAg
ICAke3Y4SW50ZXJmYWNlTmFtZX0odjg6OkxvY2FsPHY4OjpPYmplY3Q+LCBTY3JpcHRFeGVjdXRp
b25Db250ZXh0Kik7CiAKICAgICB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiBtX2NhbGxiYWNr
OwogICAgIFdvcmxkQ29udGV4dEhhbmRsZSBtX3dvcmxkQ29udGV4dDsKQEAgLTMzNDgsNyArMzM0
OCw3IEBAIHByaXZhdGU6CiBFTkQKIAogICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJ9XG5cbiIp
OwotICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIjZW5kaWYgLy8gJGNsYXNzTmFtZSIgLiAiX2hc
blxuIik7CisgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiNlbmRpZiAvLyAkdjhJbnRlcmZhY2VO
YW1lIiAuICJfaFxuXG4iKTsKIAogICAgIG15ICRjb25kaXRpb25hbFN0cmluZyA9ICRjb2RlR2Vu
ZXJhdG9yLT5HZW5lcmF0ZUNvbmRpdGlvbmFsU3RyaW5nKCRkYXRhTm9kZSk7CiAgICAgcHVzaChA
aGVhZGVyQ29udGVudCwgIiNlbmRpZiAvLyAke2NvbmRpdGlvbmFsU3RyaW5nfVxuIikgaWYgJGNv
bmRpdGlvbmFsU3RyaW5nOwpAQCAtMzM1OSw3ICszMzU5LDcgQEAgc3ViIEdlbmVyYXRlQ2FsbGJh
Y2tJbXBsZW1lbnRhdGlvbgogICAgIG15ICRvYmplY3QgPSBzaGlmdDsKICAgICBteSAkZGF0YU5v
ZGUgPSBzaGlmdDsKICAgICBteSAkaW50ZXJmYWNlTmFtZSA9ICRkYXRhTm9kZS0+bmFtZTsKLSAg
ICBteSAkY2xhc3NOYW1lID0gIlY4JGludGVyZmFjZU5hbWUiOworICAgIG15ICR2OEludGVyZmFj
ZU5hbWUgPSAiVjgkaW50ZXJmYWNlTmFtZSI7CiAKICAgICAjIC0gQWRkIGRlZmF1bHQgaGVhZGVy
IHRlbXBsYXRlCiAgICAgcHVzaChAaW1wbEZpeGVkSGVhZGVyLCBHZW5lcmF0ZUltcGxlbWVudGF0
aW9uQ29udGVudEhlYWRlcigkZGF0YU5vZGUpKTsKQEAgLTMzNzEsMTQgKzMzNzEsMTQgQEAgc3Vi
IEdlbmVyYXRlQ2FsbGJhY2tJbXBsZW1lbnRhdGlvbgogICAgIHB1c2goQGltcGxDb250ZW50LCAi
I2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+XG5cbiIpOwogICAgIHB1c2goQGltcGxDb250ZW50
LCAibmFtZXNwYWNlIFdlYkNvcmUge1xuXG4iKTsKICAgICBwdXNoKEBpbXBsQ29udGVudCwgPDxF
TkQpOwotJHtjbGFzc05hbWV9Ojoke2NsYXNzTmFtZX0odjg6OkxvY2FsPHY4OjpPYmplY3Q+IGNh
bGxiYWNrLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQorJHt2OEludGVyZmFjZU5h
bWV9Ojoke3Y4SW50ZXJmYWNlTmFtZX0odjg6OkxvY2FsPHY4OjpPYmplY3Q+IGNhbGxiYWNrLCBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQogICAgIDogQWN0aXZlRE9NQ2FsbGJhY2so
Y29udGV4dCkKICAgICAsIG1fY2FsbGJhY2sodjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD46Ok5l
dyhjYWxsYmFjaykpCiAgICAgLCBtX3dvcmxkQ29udGV4dChVc2VDdXJyZW50V29ybGQpCiB7CiB9
CiAKLSR7Y2xhc3NOYW1lfTo6fiR7Y2xhc3NOYW1lfSgpCiske3Y4SW50ZXJmYWNlTmFtZX06On4k
e3Y4SW50ZXJmYWNlTmFtZX0oKQogewogICAgIG1fY2FsbGJhY2suRGlzcG9zZSgpOwogfQpAQCAt
MzM5Nyw3ICszMzk3LDcgQEAgRU5ECiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIEFkZElu
Y2x1ZGVzRm9yVHlwZSgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSk7Ci0gICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIlxuIiAuIEdldE5hdGl2ZVR5cGVGb3JDYWxsYmFja3MoJGZ1bmN0
aW9uLT5zaWduYXR1cmUtPnR5cGUpIC4gIiAke2NsYXNzTmFtZX06OiIgLiAkZnVuY3Rpb24tPnNp
Z25hdHVyZS0+bmFtZSAuICIoIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIlxu
IiAuIEdldE5hdGl2ZVR5cGVGb3JDYWxsYmFja3MoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5cGUp
IC4gIiAke3Y4SW50ZXJmYWNlTmFtZX06OiIgLiAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+bmFtZSAu
ICIoIik7CiAKICAgICAgICAgICAgIG15IEBhcmdzID0gKCk7CiAgICAgICAgICAgICBteSBAYXJn
c0NoZWNrID0gKCk7CkBAIC0zNDgwLDcgKzM0ODAsNyBAQCBzdWIgQmFzZUludGVyZmFjZU5hbWUK
IHN1YiBHZW5lcmF0ZVRvVjhDb252ZXJ0ZXJzCiB7CiAgICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7
Ci0gICAgbXkgJGNsYXNzTmFtZSA9IHNoaWZ0OworICAgIG15ICR2OEludGVyZmFjZU5hbWUgPSBz
aGlmdDsKICAgICBteSAkbmF0aXZlVHlwZSA9IHNoaWZ0OwogICAgIG15ICRpbnRlcmZhY2VOYW1l
ID0gJGRhdGFOb2RlLT5uYW1lOwogCkBAIC0zNDk0LDcgKzM0OTQsNyBAQCBzdWIgR2VuZXJhdGVU
b1Y4Q29udmVydGVycwogCiAgICAgcHVzaChAaW1wbENvbnRlbnQsIDw8RU5EKTsKIAotdjg6Okhh
bmRsZTx2ODo6T2JqZWN0PiAke2NsYXNzTmFtZX06OmNyZWF0ZVdyYXBwZXIoJHtjcmVhdGVXcmFw
cGVyQXJndW1lbnRUeXBlfSBpbXBsLCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGNyZWF0aW9uQ29u
dGV4dCwgdjg6Oklzb2xhdGUqIGlzb2xhdGUpCit2ODo6SGFuZGxlPHY4OjpPYmplY3Q+ICR7djhJ
bnRlcmZhY2VOYW1lfTo6Y3JlYXRlV3JhcHBlcigke2NyZWF0ZVdyYXBwZXJBcmd1bWVudFR5cGV9
IGltcGwsIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gY3JlYXRpb25Db250ZXh0LCB2ODo6SXNvbGF0
ZSogaXNvbGF0ZSkKIHsKICAgICBBU1NFUlQoaW1wbC5nZXQoKSk7CiAgICAgQVNTRVJUKCRnZXRD
YWNoZWRXcmFwcGVyLklzRW1wdHkoKSk7CkBAIC00MjMzLDEzICs0MjMzLDYgQEAgc3ViIFdyaXRl
RGF0YQogICAgIEBoZWFkZXJDb250ZW50ID0gKCk7CiB9CiAKLXN1YiBHZXRDYWxsYmFja0NsYXNz
TmFtZQotewotICAgIG15ICRpbnRlcmZhY2VOYW1lID0gc2hpZnQ7Ci0KLSAgICByZXR1cm4gIlY4
JGludGVyZmFjZU5hbWUiOwotfQotCiBzdWIgQ29udmVydFRvVjhQYXJhbWV0ZXIKIHsKICAgICBt
eSAkc2lnbmF0dXJlID0gc2hpZnQ7CkBAIC00Mjg3LDEwICs0MjgwLDEwIEBAIHN1YiBHZXRDb250
ZXh0RW5hYmxlRnVuY3Rpb24KIAogc3ViIEdldFBhc3NSZWZQdHJUeXBlCiB7Ci0gICAgbXkgJGNs
YXNzTmFtZSA9IHNoaWZ0OworICAgIG15ICR2OEludGVyZmFjZU5hbWUgPSBzaGlmdDsKIAotICAg
IG15ICRhbmdsZUJyYWNrZXRTcGFjZSA9ICRjbGFzc05hbWUgPX4gLz4kLyA/ICIgIiA6ICIiOwot
ICAgIHJldHVybiAiUGFzc1JlZlB0cjwke2NsYXNzTmFtZX0ke2FuZ2xlQnJhY2tldFNwYWNlfT4i
OworICAgIG15ICRhbmdsZUJyYWNrZXRTcGFjZSA9ICR2OEludGVyZmFjZU5hbWUgPX4gLz4kLyA/
ICIgIiA6ICIiOworICAgIHJldHVybiAiUGFzc1JlZlB0cjwke3Y4SW50ZXJmYWNlTmFtZX0ke2Fu
Z2xlQnJhY2tldFNwYWNlfT4iOwogfQogCiBzdWIgRGVidWdQcmludAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174862</attachid>
            <date>2012-11-18 16:47:06 -0800</date>
            <delta_ts>2012-11-18 17:12:50 -0800</delta_ts>
            <desc>patch for landing</desc>
            <filename>bug-102487-20121119094457.patch</filename>
            <type>text/plain</type>
            <size>20523</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1MDg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWMxZTM1ZjRmNDdhZmRk
YjkyYTdkYWRlMjkyOWI2YTI0ZTI1NDQzYi4uNjhkNzRjYzNiOWRhOTBjMWU1MzY0NzI5Mjk1YWNj
OWI1ZmVjNmE3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEyLTExLTE2ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbVjhdIFJlbmFtZSAk
Y2xhc3NOYW1lIHRvICR2OEludGVyZmFjZU5hbWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMjQ4NworCisgICAgICAgIFJldmlld2VkIGJ5IEFkYW0g
QmFydGguCisKKyAgICAgICAgSW4gQ29kZUdlbmVyYXRvclY4LnBtLCAkY2xhc3NOYW1lIGlzIGFs
d2F5cyAiVjgkaW50ZXJmYWNlTmFtZSIuCisgICAgICAgIFdlIHNob3VsZCByZW5hbWUgJGNsYXNz
TmFtZSB0byAkdjhJbnRlcmZhY2VOYW1lLiBBbHNvIHdlIGNhbgorICAgICAgICByZW1vdmUgR2V0
Q2FsbGJhY2tDbGFzc05hbWUoKS4KKworICAgICAgICBObyB0ZXN0cy4gTm8gY2hhbmdlIGluIGJl
aGF2aW9yLgorCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG06
CisgICAgICAgIChHZW5lcmF0ZUhlYWRlcik6CisgICAgICAgIChHZXRIZWFkZXJDbGFzc0luY2x1
ZGUpOgorICAgICAgICAoR2VuZXJhdGVEb21haW5TYWZlRnVuY3Rpb25HZXR0ZXIpOgorICAgICAg
ICAoR2VuZXJhdGVEb21haW5TYWZlRnVuY3Rpb25TZXR0ZXIpOgorICAgICAgICAoR2VuZXJhdGVQ
YXJhbWV0ZXJzQ2hlY2spOgorICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6CisgICAg
ICAgIChHZW5lcmF0ZUhlYWRlckNvbnRlbnRIZWFkZXIpOgorICAgICAgICAoR2VuZXJhdGVJbXBs
ZW1lbnRhdGlvbkNvbnRlbnRIZWFkZXIpOgorICAgICAgICAoR2VuZXJhdGVDYWxsYmFja0hlYWRl
cik6CisgICAgICAgIChHZW5lcmF0ZUNhbGxiYWNrSW1wbGVtZW50YXRpb24pOgorICAgICAgICAo
R2VuZXJhdGVUb1Y4Q29udmVydGVycyk6CisgICAgICAgIChHZXRQYXNzUmVmUHRyVHlwZSk6CisK
IDIwMTItMTEtMTggIEtlbnRhcm8gSGFyYSAgPGhhcmFrZW5AY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFtWOF0gUmVtb3ZlIEdldFR5cGVGcm9tU2lnbmF0dXJlKCkgZnJvbSBDb2RlR2VuZXJhdG9y
VjgucG0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvclY4LnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9yVjgucG0KaW5kZXggNWFiMWE4MjcyOGRhMzg2ODk5ZmE2YjdjMGNjYTU1Y2E1NzE4ZTM1Ni4u
Y2MyNzY1NWEwY2IyNDVlNDE4NDJkNjQwYzU0MWE4ZTRjZTNjNTBhZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KQEAgLTI3NCw3
ICsyNzQsNyBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsK
IAogICAgIG15ICRpbnRlcmZhY2VOYW1lID0gJGRhdGFOb2RlLT5uYW1lOwotICAgIG15ICRjbGFz
c05hbWUgPSAiVjgkaW50ZXJmYWNlTmFtZSI7CisgICAgbXkgJHY4SW50ZXJmYWNlTmFtZSA9ICJW
OCRpbnRlcmZhY2VOYW1lIjsKIAogICAgICMgQ29weSBjb250ZW50cyBvZiBwYXJlbnQgY2xhc3Nl
cyBleGNlcHQgdGhlIGZpcnN0IHBhcmVudC4KICAgICBteSBAcGFyZW50czsKQEAgLTI4NSw3ICsy
ODUsNyBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICBkaWUoIklzRE9NTm9kZVR5cGUgaXMgb3V0
IG9mIGRhdGUgd2l0aCByZXNwZWN0IHRvICRpbnRlcmZhY2VOYW1lIikgaWYgSXNET01Ob2RlVHlw
ZSgkaW50ZXJmYWNlTmFtZSkgIT0gJGNvZGVHZW5lcmF0b3ItPklzU3ViVHlwZSgkZGF0YU5vZGUs
ICJOb2RlIik7CiAKICAgICBteSAkaGFzRGVwZW5kZW50TGlmZXRpbWUgPSAkZGF0YU5vZGUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJWOERlcGVuZGVudExpZmV0aW1lIn0gfHwgJGRhdGFOb2RlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiQWN0aXZlRE9NT2JqZWN0In0KLSAgICAgICAgIHx8IEdldEdl
bmVyYXRlSXNSZWFjaGFibGUoJGRhdGFOb2RlKSB8fCAkY2xhc3NOYW1lID1+IC9TVkcvOworICAg
ICAgICAgfHwgR2V0R2VuZXJhdGVJc1JlYWNoYWJsZSgkZGF0YU5vZGUpIHx8ICR2OEludGVyZmFj
ZU5hbWUgPX4gL1NWRy87CiAgICAgaWYgKCEkaGFzRGVwZW5kZW50TGlmZXRpbWUpIHsKICAgICAg
ICAgZm9yZWFjaCAoQHskZGF0YU5vZGUtPnBhcmVudHN9KSB7CiAgICAgICAgICAgICBteSAkcGFy
ZW50ID0gJF87CkBAIC0zNDIsNyArMzQyLDcgQEAgcHVibGljOgogRU5ECiAgICAgfQogCi0gICAg
cHVzaChAaGVhZGVyQ29udGVudCwgImNsYXNzICRjbGFzc05hbWUge1xuIik7CisgICAgcHVzaChA
aGVhZGVyQ29udGVudCwgImNsYXNzICR2OEludGVyZmFjZU5hbWUge1xuIik7CiAgICAgcHVzaChA
aGVhZGVyQ29udGVudCwgInB1YmxpYzpcbiIpOwogCiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwg
IiAgICBzdGF0aWMgY29uc3QgYm9vbCBoYXNEZXBlbmRlbnRMaWZldGltZSA9ICIpOwpAQCAtNTM5
LDcgKzUzOSw3IEBAIEVORAogICAgIH0gZWxzZSB7CiAKICAgICAgICAgbXkgJGdldENhY2hlZFdy
YXBwZXIgPSAkY29kZUdlbmVyYXRvci0+SXNTdWJUeXBlKCRkYXRhTm9kZSwgIk5vZGUiKSA/ICJW
OERPTVdyYXBwZXI6OmdldENhY2hlZFdyYXBwZXIoaW1wbCkiIDogIkRPTURhdGFTdG9yZTo6Y3Vy
cmVudChpc29sYXRlKS0+Z2V0KGltcGwpIjsKLSAgICAgICAgbXkgJGNyZWF0ZVdyYXBwZXJDYWxs
ID0gJGN1c3RvbVdyYXAgPyAiJHtjbGFzc05hbWV9Ojp3cmFwIiA6ICIke2NsYXNzTmFtZX06OmNy
ZWF0ZVdyYXBwZXIiOworICAgICAgICBteSAkY3JlYXRlV3JhcHBlckNhbGwgPSAkY3VzdG9tV3Jh
cCA/ICIke3Y4SW50ZXJmYWNlTmFtZX06OndyYXAiIDogIiR7djhJbnRlcmZhY2VOYW1lfTo6Y3Jl
YXRlV3JhcHBlciI7CiAKICAgICAgICAgaWYgKCRjdXN0b21XcmFwKSB7CiAgICAgICAgICAgICBw
dXNoKEBoZWFkZXJDb250ZW50LCA8PEVORCk7CkBAIC02MTMsNyArNjEzLDcgQEAgRU5ECiAgICAg
fQogCiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIlxufVxuXG4iKTsKLSAgICBwdXNoKEBoZWFk
ZXJDb250ZW50LCAiI2VuZGlmIC8vICRjbGFzc05hbWUiIC4gIl9oXG4iKTsKKyAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LCAiI2VuZGlmIC8vICR2OEludGVyZmFjZU5hbWUiIC4gIl9oXG4iKTsKIAog
ICAgIG15ICRjb25kaXRpb25hbFN0cmluZyA9ICRjb2RlR2VuZXJhdG9yLT5HZW5lcmF0ZUNvbmRp
dGlvbmFsU3RyaW5nKCRkYXRhTm9kZSk7CiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiNlbmRp
ZiAvLyAke2NvbmRpdGlvbmFsU3RyaW5nfVxuXG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7CkBA
IC02NDIsMTMgKzY0MiwxMyBAQCBzdWIgR2V0SW50ZXJuYWxGaWVsZHMKIAogc3ViIEdldEhlYWRl
ckNsYXNzSW5jbHVkZQogewotICAgIG15ICRjbGFzc05hbWUgPSBzaGlmdDsKLSAgICBpZiAoJGNs
YXNzTmFtZSA9fiAvU1ZHUGF0aFNlZy8pIHsKLSAgICAgICAgJGNsYXNzTmFtZSA9fiBzL0Fic3xS
ZWwvLzsKKyAgICBteSAkdjhJbnRlcmZhY2VOYW1lID0gc2hpZnQ7CisgICAgaWYgKCR2OEludGVy
ZmFjZU5hbWUgPX4gL1NWR1BhdGhTZWcvKSB7CisgICAgICAgICR2OEludGVyZmFjZU5hbWUgPX4g
cy9BYnN8UmVsLy87CiAgICAgfQotICAgIHJldHVybiAid3RmLyR7Y2xhc3NOYW1lfS5oIiBpZiAk
Y29kZUdlbmVyYXRvci0+SXNUeXBlZEFycmF5VHlwZSgkY2xhc3NOYW1lKTsKLSAgICByZXR1cm4g
IiIgaWYgKCRjb2RlR2VuZXJhdG9yLT5Ta2lwSW5jbHVkZUhlYWRlcigkY2xhc3NOYW1lKSk7Ci0g
ICAgcmV0dXJuICIke2NsYXNzTmFtZX0uaCI7CisgICAgcmV0dXJuICJ3dGYvJHt2OEludGVyZmFj
ZU5hbWV9LmgiIGlmICRjb2RlR2VuZXJhdG9yLT5Jc1R5cGVkQXJyYXlUeXBlKCR2OEludGVyZmFj
ZU5hbWUpOworICAgIHJldHVybiAiIiBpZiAoJGNvZGVHZW5lcmF0b3ItPlNraXBJbmNsdWRlSGVh
ZGVyKCR2OEludGVyZmFjZU5hbWUpKTsKKyAgICByZXR1cm4gIiR7djhJbnRlcmZhY2VOYW1lfS5o
IjsKIH0KIAogc3ViIEdlbmVyYXRlSGVhZGVyQ3VzdG9tSW50ZXJuYWxGaWVsZEluZGljZXMKQEAg
LTc3OCwxMCArNzc4LDEwIEBAIHN1YiBHZW5lcmF0ZURvbWFpblNhZmVGdW5jdGlvbkdldHRlcgog
ICAgIG15ICRmdW5jdGlvbiA9IHNoaWZ0OwogICAgIG15ICRpbnRlcmZhY2VOYW1lID0gc2hpZnQ7
CiAKLSAgICBteSAkY2xhc3NOYW1lID0gIlY4IiAuICRpbnRlcmZhY2VOYW1lOworICAgIG15ICR2
OEludGVyZmFjZU5hbWUgPSAiVjgiIC4gJGludGVyZmFjZU5hbWU7CiAgICAgbXkgJGZ1bmNOYW1l
ID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5hbWU7CiAKLSAgICBteSAkc2lnbmF0dXJlID0gInY4
OjpTaWduYXR1cmU6Ok5ldygiIC4gJGNsYXNzTmFtZSAuICI6OkdldFJhd1RlbXBsYXRlKCkpIjsK
KyAgICBteSAkc2lnbmF0dXJlID0gInY4OjpTaWduYXR1cmU6Ok5ldygiIC4gJHY4SW50ZXJmYWNl
TmFtZSAuICI6OkdldFJhd1RlbXBsYXRlKCkpIjsKICAgICBpZiAoJGZ1bmN0aW9uLT5zaWduYXR1
cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJWOERvTm90Q2hlY2tTaWduYXR1cmUifSkgewogICAg
ICAgICAkc2lnbmF0dXJlID0gInY4OjpMb2NhbDx2ODo6U2lnbmF0dXJlPigpIjsKICAgICB9CkBA
IC03OTUsMTMgKzc5NSwxMyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+ICR7ZnVuY05h
bWV9QXR0ckdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgYwogewogICAgIElOQ19T
VEFUUyhcIkRPTS4kaW50ZXJmYWNlTmFtZS4kZnVuY05hbWUuX2dldFwiKTsKICAgICBzdGF0aWMg
djg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IHByaXZhdGVUZW1wbGF0ZSA9IHY4
OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPjo6TmV3KCRuZXdUZW1wbGF0ZVN0cmlu
Zyk7Ci0gICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBob2xkZXIgPSBWOERPTVdyYXBwZXI6Omxv
b2t1cERPTVdyYXBwZXIoJHtjbGFzc05hbWV9OjpHZXRUZW1wbGF0ZSgpLCBpbmZvLlRoaXMoKSk7
CisgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBob2xkZXIgPSBWOERPTVdyYXBwZXI6Omxvb2t1
cERPTVdyYXBwZXIoJHt2OEludGVyZmFjZU5hbWV9OjpHZXRUZW1wbGF0ZSgpLCBpbmZvLlRoaXMo
KSk7CiAgICAgaWYgKGhvbGRlci5Jc0VtcHR5KCkpIHsKICAgICAgICAgLy8gY2FuIG9ubHkgcmVh
Y2ggaGVyZSBieSAnb2JqZWN0Ll9fcHJvdG9fXy5mdW5jJywgYW5kIGl0IHNob3VsZCBwYXNzZWQK
ICAgICAgICAgLy8gZG9tYWluIHNlY3VyaXR5IGNoZWNrIGFscmVhZHkKICAgICAgICAgcmV0dXJu
IHByaXZhdGVUZW1wbGF0ZS0+R2V0RnVuY3Rpb24oKTsKICAgICB9Ci0gICAgJHtpbnRlcmZhY2VO
YW1lfSogaW1wID0gJHtjbGFzc05hbWV9Ojp0b05hdGl2ZShob2xkZXIpOworICAgICR7aW50ZXJm
YWNlTmFtZX0qIGltcCA9ICR7djhJbnRlcmZhY2VOYW1lfTo6dG9OYXRpdmUoaG9sZGVyKTsKICAg
ICBpZiAoIUJpbmRpbmdTZWN1cml0eTo6c2hvdWxkQWxsb3dBY2Nlc3NUb0ZyYW1lKEJpbmRpbmdT
dGF0ZTo6aW5zdGFuY2UoKSwgaW1wLT5mcmFtZSgpLCBEb05vdFJlcG9ydFNlY3VyaXR5RXJyb3Ip
KSB7CiAgICAgICAgIHN0YXRpYyB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4g
c2hhcmVkVGVtcGxhdGUgPSB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT46Ok5l
dygkbmV3VGVtcGxhdGVTdHJpbmcpOwogICAgICAgICByZXR1cm4gc2hhcmVkVGVtcGxhdGUtPkdl
dEZ1bmN0aW9uKCk7CkBAIC04MjAsMTYgKzgyMCwxNiBAQCBFTkQKIHN1YiBHZW5lcmF0ZURvbWFp
blNhZmVGdW5jdGlvblNldHRlcgogewogICAgIG15ICRpbnRlcmZhY2VOYW1lID0gc2hpZnQ7Ci0g
ICAgbXkgJGNsYXNzTmFtZSA9ICJWOCIgLiAkaW50ZXJmYWNlTmFtZTsKKyAgICBteSAkdjhJbnRl
cmZhY2VOYW1lID0gIlY4IiAuICRpbnRlcmZhY2VOYW1lOwogCiAgICAgcHVzaChAaW1wbENvbnRl
bnREZWNscywgPDxFTkQpOwogc3RhdGljIHZvaWQgJHtpbnRlcmZhY2VOYW1lfURvbWFpblNhZmVG
dW5jdGlvblNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OjpW
YWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCiB7CiAgICAgSU5DX1NU
QVRTKCJET00uJGludGVyZmFjZU5hbWUuX3NldCIpOwotICAgIHY4OjpIYW5kbGU8djg6Ok9iamVj
dD4gaG9sZGVyID0gVjhET01XcmFwcGVyOjpsb29rdXBET01XcmFwcGVyKCR7Y2xhc3NOYW1lfTo6
R2V0VGVtcGxhdGUoKSwgaW5mby5UaGlzKCkpOworICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4g
aG9sZGVyID0gVjhET01XcmFwcGVyOjpsb29rdXBET01XcmFwcGVyKCR7djhJbnRlcmZhY2VOYW1l
fTo6R2V0VGVtcGxhdGUoKSwgaW5mby5UaGlzKCkpOwogICAgIGlmIChob2xkZXIuSXNFbXB0eSgp
KQogICAgICAgICByZXR1cm47Ci0gICAgJHtpbnRlcmZhY2VOYW1lfSogaW1wID0gJHtjbGFzc05h
bWV9Ojp0b05hdGl2ZShob2xkZXIpOworICAgICR7aW50ZXJmYWNlTmFtZX0qIGltcCA9ICR7djhJ
bnRlcmZhY2VOYW1lfTo6dG9OYXRpdmUoaG9sZGVyKTsKICAgICBpZiAoIUJpbmRpbmdTZWN1cml0
eTo6c2hvdWxkQWxsb3dBY2Nlc3NUb0ZyYW1lKEJpbmRpbmdTdGF0ZTo6aW5zdGFuY2UoKSwgaW1w
LT5mcmFtZSgpKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC0xNzMwLDE5ICsxNzMwLDE5IEBAIHN1
YiBHZW5lcmF0ZVBhcmFtZXRlcnNDaGVjawogCiAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJF
eGNlcHRpb25Db2RlLmgiKTsKICAgICAgICAgaWYgKCRwYXJhbWV0ZXItPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJDYWxsYmFjayJ9KSB7Ci0gICAgICAgICAgICBteSAkY2xhc3NOYW1lID0gR2V0Q2Fs
bGJhY2tDbGFzc05hbWUoJHBhcmFtZXRlci0+dHlwZSk7Ci0gICAgICAgICAgICBBZGRUb0ltcGxJ
bmNsdWRlcygiJGNsYXNzTmFtZS5oIik7CisgICAgICAgICAgICBteSAkdjhJbnRlcmZhY2VOYW1l
ID0gIlY4IiAuICRwYXJhbWV0ZXItPnR5cGU7CisgICAgICAgICAgICBBZGRUb0ltcGxJbmNsdWRl
cygiJHY4SW50ZXJmYWNlTmFtZS5oIik7CiAgICAgICAgICAgICBpZiAoJG9wdGlvbmFsKSB7CiAg
ICAgICAgICAgICAgICAgJHBhcmFtZXRlckNoZWNrU3RyaW5nIC49ICIgICAgUmVmUHRyPCIgLiAk
cGFyYW1ldGVyLT50eXBlIC4gIj4gJHBhcmFtZXRlck5hbWU7XG4iOwogICAgICAgICAgICAgICAg
ICRwYXJhbWV0ZXJDaGVja1N0cmluZyAuPSAiICAgIGlmIChhcmdzLkxlbmd0aCgpID4gJHBhcmFt
SW5kZXggJiYgIWFyZ3NbJHBhcmFtSW5kZXhdLT5Jc051bGwoKSAmJiAhYXJnc1skcGFyYW1JbmRl
eF0tPklzVW5kZWZpbmVkKCkpIHtcbiI7CiAgICAgICAgICAgICAgICAgJHBhcmFtZXRlckNoZWNr
U3RyaW5nIC49ICIgICAgICAgIGlmICghYXJnc1skcGFyYW1JbmRleF0tPklzRnVuY3Rpb24oKSlc
biI7CiAgICAgICAgICAgICAgICAgJHBhcmFtZXRlckNoZWNrU3RyaW5nIC49ICIgICAgICAgICAg
ICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoMCwgYXJncy5HZXRJc29sYXRlKCkpO1xuIjsKLSAgICAg
ICAgICAgICAgICAkcGFyYW1ldGVyQ2hlY2tTdHJpbmcgLj0gIiAgICAgICAgJHBhcmFtZXRlck5h
bWUgPSAke2NsYXNzTmFtZX06OmNyZWF0ZShhcmdzWyRwYXJhbUluZGV4XSwgZ2V0U2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpKTtcbiI7CisgICAgICAgICAgICAgICAgJHBhcmFtZXRlckNoZWNrU3Ry
aW5nIC49ICIgICAgICAgICRwYXJhbWV0ZXJOYW1lID0gJHt2OEludGVyZmFjZU5hbWV9OjpjcmVh
dGUoYXJnc1skcGFyYW1JbmRleF0sIGdldFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7XG4iOwog
ICAgICAgICAgICAgICAgICRwYXJhbWV0ZXJDaGVja1N0cmluZyAuPSAiICAgIH1cbiI7CiAgICAg
ICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICRwYXJhbWV0ZXJDaGVja1N0cmluZyAu
PSAiICAgIGlmIChhcmdzLkxlbmd0aCgpIDw9ICRwYXJhbUluZGV4IHx8ICFhcmdzWyRwYXJhbUlu
ZGV4XS0+SXNGdW5jdGlvbigpKVxuIjsKICAgICAgICAgICAgICAgICAkcGFyYW1ldGVyQ2hlY2tT
dHJpbmcgLj0gIiAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKDAsIGFyZ3MuR2V0SXNvbGF0
ZSgpKTtcbiI7Ci0gICAgICAgICAgICAgICAgJHBhcmFtZXRlckNoZWNrU3RyaW5nIC49ICIgICAg
UmVmUHRyPCIgLiAkcGFyYW1ldGVyLT50eXBlIC4gIj4gJHBhcmFtZXRlck5hbWUgPSAke2NsYXNz
TmFtZX06OmNyZWF0ZShhcmdzWyRwYXJhbUluZGV4XSwgZ2V0U2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpKTtcbiI7CisgICAgICAgICAgICAgICAgJHBhcmFtZXRlckNoZWNrU3RyaW5nIC49ICIgICAg
UmVmUHRyPCIgLiAkcGFyYW1ldGVyLT50eXBlIC4gIj4gJHBhcmFtZXRlck5hbWUgPSAke3Y4SW50
ZXJmYWNlTmFtZX06OmNyZWF0ZShhcmdzWyRwYXJhbUluZGV4XSwgZ2V0U2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpKTtcbiI7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzaWYgKCRwYXJhbWV0
ZXItPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDbGFtcCJ9KSB7CiAgICAgICAgICAgICAgICAgbXkg
JG5hdGl2ZVZhbHVlID0gIiR7cGFyYW1ldGVyTmFtZX1OYXRpdmVWYWx1ZSI7CkBAIC0yNjE1LDcg
KzI2MTUsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgIG15ICRkYXRhTm9kZSA9
IHNoaWZ0OwogICAgIG15ICRpbnRlcmZhY2VOYW1lID0gJGRhdGFOb2RlLT5uYW1lOwogICAgIG15
ICR2aXNpYmxlSW50ZXJmYWNlTmFtZSA9ICRjb2RlR2VuZXJhdG9yLT5HZXRWaXNpYmxlSW50ZXJm
YWNlTmFtZSgkZGF0YU5vZGUpOwotICAgIG15ICRjbGFzc05hbWUgPSAiVjgkaW50ZXJmYWNlTmFt
ZSI7CisgICAgbXkgJHY4SW50ZXJmYWNlTmFtZSA9ICJWOCRpbnRlcmZhY2VOYW1lIjsKICAgICBt
eSAkbmF0aXZlVHlwZSA9IEdldE5hdGl2ZVR5cGVGb3JDb252ZXJzaW9ucygkZGF0YU5vZGUpOwog
CiAgICAgIyAtIEFkZCBkZWZhdWx0IGhlYWRlciB0ZW1wbGF0ZQpAQCAtMjYyOSw4ICsyNjI5LDgg
QEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KIAogICAgIEFkZEluY2x1ZGVzRm9yVHlwZSgk
aW50ZXJmYWNlTmFtZSk7CiAKLSAgICBteSAkdG9BY3RpdmUgPSAkZGF0YU5vZGUtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJBY3RpdmVET01PYmplY3QifSA/ICIke2NsYXNzTmFtZX06OnRvQWN0aXZl
RE9NT2JqZWN0IiA6ICIwIjsKLSAgICBteSAkcm9vdEZvckdDID0gTmVlZHNDdXN0b21PcGFxdWVS
b290Rm9yR0MoJGRhdGFOb2RlKSA/ICIke2NsYXNzTmFtZX06Om9wYXF1ZVJvb3RGb3JHQyIgOiAi
MCI7CisgICAgbXkgJHRvQWN0aXZlID0gJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
QWN0aXZlRE9NT2JqZWN0In0gPyAiJHt2OEludGVyZmFjZU5hbWV9Ojp0b0FjdGl2ZURPTU9iamVj
dCIgOiAiMCI7CisgICAgbXkgJHJvb3RGb3JHQyA9IE5lZWRzQ3VzdG9tT3BhcXVlUm9vdEZvckdD
KCRkYXRhTm9kZSkgPyAiJHt2OEludGVyZmFjZU5hbWV9OjpvcGFxdWVSb290Rm9yR0MiIDogIjAi
OwogCiAgICAgIyBGaW5kIHRoZSBzdXBlciBkZXNjcmlwdG9yLgogICAgIG15ICRwYXJlbnRDbGFz
cyA9ICIiOwpAQCAtMjY0Nyw3ICsyNjQ3LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24K
IAogICAgIG15ICRXcmFwcGVyVHlwZVByb3RvdHlwZSA9ICRkYXRhTm9kZS0+aXNFeGNlcHRpb24g
PyAiV3JhcHBlclR5cGVFcnJvclByb3RvdHlwZSIgOiAiV3JhcHBlclR5cGVPYmplY3RQcm90b3R5
cGUiOwogCi0gICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIldyYXBwZXJUeXBlSW5mbyAke2Ns
YXNzTmFtZX06OmluZm8gPSB7ICR7Y2xhc3NOYW1lfTo6R2V0VGVtcGxhdGUsICR7Y2xhc3NOYW1l
fTo6ZGVyZWZPYmplY3QsICR0b0FjdGl2ZSwgJHJvb3RGb3JHQywgJHtjbGFzc05hbWV9OjppbnN0
YWxsUGVyQ29udGV4dFByb3RvdHlwZVByb3BlcnRpZXMsICRwYXJlbnRDbGFzc0luZm8sICRXcmFw
cGVyVHlwZVByb3RvdHlwZSB9O1xuXG4iKTsKKyAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAi
V3JhcHBlclR5cGVJbmZvICR7djhJbnRlcmZhY2VOYW1lfTo6aW5mbyA9IHsgJHt2OEludGVyZmFj
ZU5hbWV9OjpHZXRUZW1wbGF0ZSwgJHt2OEludGVyZmFjZU5hbWV9OjpkZXJlZk9iamVjdCwgJHRv
QWN0aXZlLCAkcm9vdEZvckdDLCAke3Y4SW50ZXJmYWNlTmFtZX06Omluc3RhbGxQZXJDb250ZXh0
UHJvdG90eXBlUHJvcGVydGllcywgJHBhcmVudENsYXNzSW5mbywgJFdyYXBwZXJUeXBlUHJvdG90
eXBlIH07XG5cbiIpOwogICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICJuYW1lc3BhY2UgJHtp
bnRlcmZhY2VOYW1lfVY4SW50ZXJuYWwge1xuXG4iKTsKIAogICAgIHB1c2goQGltcGxDb250ZW50
RGVjbHMsICJ0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gdm9pZCBWOF9VU0UoVCkgeyB9XG5cbiIpOwpA
QCAtMjkxMCw3ICsyOTEwLDcgQEAgRU5ECiAKICAgICAjIEdlbmVyYXRlIHRoZSB0ZW1wbGF0ZSBj
b25maWd1cmF0aW9uIG1ldGhvZAogICAgIHB1c2goQGltcGxDb250ZW50LCAgPDxFTkQpOwotc3Rh
dGljIHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiBDb25maWd1cmUke2NsYXNz
TmFtZX1UZW1wbGF0ZSh2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gZGVzYykK
K3N0YXRpYyB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gQ29uZmlndXJlJHt2
OEludGVyZmFjZU5hbWV9VGVtcGxhdGUodjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxh
dGU+IGRlc2MpCiB7CiAgICAgZGVzYy0+UmVhZE9ubHlQcm90b3R5cGUoKTsKIApAQCAtMzA2Miw3
ICszMDYyLDcgQEAgRU5ECiAgICAgcmV0dXJuIGRlc2M7CiB9CiAKLXY4OjpQZXJzaXN0ZW50PHY4
OjpGdW5jdGlvblRlbXBsYXRlPiAke2NsYXNzTmFtZX06OkdldFJhd1RlbXBsYXRlKCkKK3Y4OjpQ
ZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiAke3Y4SW50ZXJmYWNlTmFtZX06OkdldFJh
d1RlbXBsYXRlKCkKIHsKICAgICBWOFBlcklzb2xhdGVEYXRhKiBkYXRhID0gVjhQZXJJc29sYXRl
RGF0YTo6Y3VycmVudCgpOwogICAgIFY4UGVySXNvbGF0ZURhdGE6OlRlbXBsYXRlTWFwOjppdGVy
YXRvciByZXN1bHQgPSBkYXRhLT5yYXdUZW1wbGF0ZU1hcCgpLmZpbmQoJmluZm8pOwpAQCAtMzA3
NSw3ICszMDc1LDcgQEAgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+ICR7Y2xh
c3NOYW1lfTo6R2V0UmF3VGVtcGxhdGUoKQogICAgIHJldHVybiB0ZW1wbDsKIH0KIAotdjg6OlBl
cnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+ICR7Y2xhc3NOYW1lfTo6R2V0VGVtcGxhdGUo
KQordjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+ICR7djhJbnRlcmZhY2VOYW1l
fTo6R2V0VGVtcGxhdGUoKQogewogICAgIFY4UGVySXNvbGF0ZURhdGEqIGRhdGEgPSBWOFBlcklz
b2xhdGVEYXRhOjpjdXJyZW50KCk7CiAgICAgVjhQZXJJc29sYXRlRGF0YTo6VGVtcGxhdGVNYXA6
Oml0ZXJhdG9yIHJlc3VsdCA9IGRhdGEtPnRlbXBsYXRlTWFwKCkuZmluZCgmaW5mbyk7CkBAIC0z
MDg0LDEyICszMDg0LDEyIEBAIHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiAk
e2NsYXNzTmFtZX06OkdldFRlbXBsYXRlKCkKIAogICAgIHY4OjpIYW5kbGVTY29wZSBoYW5kbGVT
Y29wZTsKICAgICB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gdGVtcGwgPQot
ICAgICAgICBDb25maWd1cmUke2NsYXNzTmFtZX1UZW1wbGF0ZShHZXRSYXdUZW1wbGF0ZSgpKTsK
KyAgICAgICAgQ29uZmlndXJlJHt2OEludGVyZmFjZU5hbWV9VGVtcGxhdGUoR2V0UmF3VGVtcGxh
dGUoKSk7CiAgICAgZGF0YS0+dGVtcGxhdGVNYXAoKS5hZGQoJmluZm8sIHRlbXBsKTsKICAgICBy
ZXR1cm4gdGVtcGw7CiB9CiAKLWJvb2wgJHtjbGFzc05hbWV9OjpIYXNJbnN0YW5jZSh2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gdmFsdWUpCitib29sICR7djhJbnRlcmZhY2VOYW1lfTo6SGFzSW5zdGFu
Y2Uodjg6OkhhbmRsZTx2ODo6VmFsdWU+IHZhbHVlKQogewogICAgIHJldHVybiBHZXRSYXdUZW1w
bGF0ZSgpLT5IYXNJbnN0YW5jZSh2YWx1ZSk7CiB9CkBAIC0zMDk4LDcgKzMwOTgsNyBAQCBFTkQK
IAogICAgIGlmIChAZW5hYmxlZFBlckNvbnRleHRBdHRyaWJ1dGVzKSB7CiAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCA8PEVORCk7Ci12b2lkICR7Y2xhc3NOYW1lfTo6aW5zdGFsbFBlckNvbnRl
eHRQcm9wZXJ0aWVzKHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gaW5zdGFuY2UsICR7bmF0aXZlVHlw
ZX0qIGltcGwpCit2b2lkICR7djhJbnRlcmZhY2VOYW1lfTo6aW5zdGFsbFBlckNvbnRleHRQcm9w
ZXJ0aWVzKHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gaW5zdGFuY2UsICR7bmF0aXZlVHlwZX0qIGlt
cGwpCiB7CiAgICAgdjg6OkxvY2FsPHY4OjpPYmplY3Q+IHByb3RvID0gdjg6OkxvY2FsPHY4OjpP
YmplY3Q+OjpDYXN0KGluc3RhbmNlLT5HZXRQcm90b3R5cGUoKSk7CiAgICAgLy8gV2hlbiBidWls
ZGluZyBRdFdlYmtpdCB3aXRoIFY4IHRoaXMgdmFyaWFibGUgaXMgdW51c2VkIHdoZW4gbm9uZSBv
ZiB0aGUgZmVhdHVyZXMgYXJlIGVuYWJsZWQuCkBAIC0zMTI2LDcgKzMxMjYsNyBAQCBFTkQKIAog
ICAgIGlmIChAZW5hYmxlZFBlckNvbnRleHRGdW5jdGlvbnMpIHsKICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsIDw8RU5EKTsKLXZvaWQgJHtjbGFzc05hbWV9OjppbnN0YWxsUGVyQ29udGV4dFBy
b3RvdHlwZVByb3BlcnRpZXModjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBwcm90bykKK3ZvaWQgJHt2
OEludGVyZmFjZU5hbWV9OjppbnN0YWxsUGVyQ29udGV4dFByb3RvdHlwZVByb3BlcnRpZXModjg6
OkhhbmRsZTx2ODo6T2JqZWN0PiBwcm90bykKIHsKICAgICBVTlVTRURfUEFSQU0ocHJvdG8pOwog
RU5ECkBAIC0zMTYyLDcgKzMxNjIsNyBAQCBFTkQKICAgICAgICAgIyBmcm9tIEFjdGl2ZURPTU9i
amVjdCwgc28gZG9uJ3QgdHJ5IHRvIGNhc3QgaXQgdG8gQWN0aXZlRE9NT2JqZWN0LgogICAgICAg
ICBteSAkcmV0dXJuVmFsdWUgPSAkaW50ZXJmYWNlTmFtZSBlcSAiTWVzc2FnZVBvcnQiID8gIjAi
IDogInRvTmF0aXZlKG9iamVjdCkiOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgPDxFTkQp
OwotQWN0aXZlRE9NT2JqZWN0KiAke2NsYXNzTmFtZX06OnRvQWN0aXZlRE9NT2JqZWN0KHY4OjpI
YW5kbGU8djg6Ok9iamVjdD4gb2JqZWN0KQorQWN0aXZlRE9NT2JqZWN0KiAke3Y4SW50ZXJmYWNl
TmFtZX06OnRvQWN0aXZlRE9NT2JqZWN0KHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gb2JqZWN0KQog
ewogICAgIHJldHVybiAke3JldHVyblZhbHVlfTsKIH0gICAgICAKQEAgLTMxODMsMTEgKzMxODMs
MTEgQEAgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdFRlbXBsYXRlPiBWOERPTVdpbmRvdzo6R2V0
U2hhZG93T2JqZWN0VGVtcGxhdGUoKQogRU5ECiAgICAgfQogCi0gICAgR2VuZXJhdGVUb1Y4Q29u
dmVydGVycygkZGF0YU5vZGUsICRjbGFzc05hbWUsICRuYXRpdmVUeXBlKTsKKyAgICBHZW5lcmF0
ZVRvVjhDb252ZXJ0ZXJzKCRkYXRhTm9kZSwgJHY4SW50ZXJmYWNlTmFtZSwgJG5hdGl2ZVR5cGUp
OwogCiAgICAgcHVzaChAaW1wbENvbnRlbnQsIDw8RU5EKTsKIAotdm9pZCAke2NsYXNzTmFtZX06
OmRlcmVmT2JqZWN0KHZvaWQqIG9iamVjdCkKK3ZvaWQgJHt2OEludGVyZmFjZU5hbWV9OjpkZXJl
Zk9iamVjdCh2b2lkKiBvYmplY3QpCiB7CiAgICAgc3RhdGljX2Nhc3Q8JHtuYXRpdmVUeXBlfSo+
KG9iamVjdCktPmRlcmVmKCk7CiB9CkBAIC0zMjAwLDMzICszMjAwLDMzIEBAIEVORAogICAgIAog
ICAgICMgV2UndmUgYWxyZWFkeSBhZGRlZCB0aGUgaGVhZGVyIGZvciB0aGlzIGZpbGUgaW4gaW1w
bEZpeGVkSGVhZGVyLCBzbyByZW1vdmUKICAgICAjIGl0IGZyb20gaW1wbEluY2x1ZGVzIHRvIGVu
c3VyZSB3ZSBkb24ndCAjaW5jbHVkZSBpdCB0d2ljZS4KLSAgICBkZWxldGUgJGltcGxJbmNsdWRl
c3siJHtjbGFzc05hbWV9LmgifTsKKyAgICBkZWxldGUgJGltcGxJbmNsdWRlc3siJHt2OEludGVy
ZmFjZU5hbWV9LmgifTsKIH0KIAogc3ViIEdlbmVyYXRlSGVhZGVyQ29udGVudEhlYWRlcgogewog
ICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OwotICAgIG15ICRjbGFzc05hbWUgPSAiVjgiIC4gJGRh
dGFOb2RlLT5uYW1lOworICAgIG15ICR2OEludGVyZmFjZU5hbWUgPSAiVjgiIC4gJGRhdGFOb2Rl
LT5uYW1lOwogICAgIG15ICRjb25kaXRpb25hbFN0cmluZyA9ICRjb2RlR2VuZXJhdG9yLT5HZW5l
cmF0ZUNvbmRpdGlvbmFsU3RyaW5nKCRkYXRhTm9kZSk7CiAKICAgICBteSBAaGVhZGVyQ29udGVu
dEhlYWRlciA9IHNwbGl0KCJcciIsICRoZWFkZXJUZW1wbGF0ZSk7CiAKICAgICBwdXNoKEBoZWFk
ZXJDb250ZW50SGVhZGVyLCAiXG4jaWYgJHtjb25kaXRpb25hbFN0cmluZ31cbiIpIGlmICRjb25k
aXRpb25hbFN0cmluZzsKLSAgICBwdXNoKEBoZWFkZXJDb250ZW50SGVhZGVyLCAiXG4jaWZuZGVm
ICR7Y2xhc3NOYW1lfSIgLiAiX2giKTsKLSAgICBwdXNoKEBoZWFkZXJDb250ZW50SGVhZGVyLCAi
XG4jZGVmaW5lICR7Y2xhc3NOYW1lfSIgLiAiX2hcblxuIik7CisgICAgcHVzaChAaGVhZGVyQ29u
dGVudEhlYWRlciwgIlxuI2lmbmRlZiAke3Y4SW50ZXJmYWNlTmFtZX0iIC4gIl9oIik7CisgICAg
cHVzaChAaGVhZGVyQ29udGVudEhlYWRlciwgIlxuI2RlZmluZSAke3Y4SW50ZXJmYWNlTmFtZX0i
IC4gIl9oXG5cbiIpOwogICAgIHJldHVybiBAaGVhZGVyQ29udGVudEhlYWRlcjsKIH0KIAogc3Vi
IEdlbmVyYXRlSW1wbGVtZW50YXRpb25Db250ZW50SGVhZGVyCiB7CiAgICAgbXkgJGRhdGFOb2Rl
ID0gc2hpZnQ7Ci0gICAgbXkgJGNsYXNzTmFtZSA9ICJWOCIgLiAkZGF0YU5vZGUtPm5hbWU7Cisg
ICAgbXkgJHY4SW50ZXJmYWNlTmFtZSA9ICJWOCIgLiAkZGF0YU5vZGUtPm5hbWU7CiAgICAgbXkg
JGNvbmRpdGlvbmFsU3RyaW5nID0gJGNvZGVHZW5lcmF0b3ItPkdlbmVyYXRlQ29uZGl0aW9uYWxT
dHJpbmcoJGRhdGFOb2RlKTsKIAogICAgIG15IEBpbXBsQ29udGVudEhlYWRlciA9IHNwbGl0KCJc
ciIsICRoZWFkZXJUZW1wbGF0ZSk7CiAKICAgICBwdXNoKEBpbXBsQ29udGVudEhlYWRlciwgIlxu
I2luY2x1ZGUgXCJjb25maWcuaFwiXG4iKTsKLSAgICBwdXNoKEBpbXBsQ29udGVudEhlYWRlciwg
IiNpbmNsdWRlIFwiJHtjbGFzc05hbWV9LmhcIlxuXG4iKTsKKyAgICBwdXNoKEBpbXBsQ29udGVu
dEhlYWRlciwgIiNpbmNsdWRlIFwiJHt2OEludGVyZmFjZU5hbWV9LmhcIlxuXG4iKTsKICAgICBw
dXNoKEBpbXBsQ29udGVudEhlYWRlciwgIiNpZiAke2NvbmRpdGlvbmFsU3RyaW5nfVxuXG4iKSBp
ZiAkY29uZGl0aW9uYWxTdHJpbmc7CiAgICAgcmV0dXJuIEBpbXBsQ29udGVudEhlYWRlcjsKIH0K
QEAgLTMyMzcsNyArMzIzNyw3IEBAIHN1YiBHZW5lcmF0ZUNhbGxiYWNrSGVhZGVyCiAgICAgbXkg
JGRhdGFOb2RlID0gc2hpZnQ7CiAKICAgICBteSAkaW50ZXJmYWNlTmFtZSA9ICRkYXRhTm9kZS0+
bmFtZTsKLSAgICBteSAkY2xhc3NOYW1lID0gIlY4JGludGVyZmFjZU5hbWUiOworICAgIG15ICR2
OEludGVyZmFjZU5hbWUgPSAiVjgkaW50ZXJmYWNlTmFtZSI7CiAKIAogICAgICMgLSBBZGQgZGVm
YXVsdCBoZWFkZXIgdGVtcGxhdGUKQEAgLTMyNTMsMTggKzMyNTMsMTggQEAgc3ViIEdlbmVyYXRl
Q2FsbGJhY2tIZWFkZXIKICAgICAKICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiXG5cbm5hbWVz
cGFjZSBXZWJDb3JlIHtcblxuIik7CiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgImNsYXNzIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQ7XG5cbiIpOwotICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJj
bGFzcyAkY2xhc3NOYW1lIDogcHVibGljICRpbnRlcmZhY2VOYW1lLCBwdWJsaWMgQWN0aXZlRE9N
Q2FsbGJhY2sge1xuIik7CisgICAgcHVzaChAaGVhZGVyQ29udGVudCwgImNsYXNzICR2OEludGVy
ZmFjZU5hbWUgOiBwdWJsaWMgJGludGVyZmFjZU5hbWUsIHB1YmxpYyBBY3RpdmVET01DYWxsYmFj
ayB7XG4iKTsKIAogICAgIHB1c2goQGhlYWRlckNvbnRlbnQsIDw8RU5EKTsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUGFzc1JlZlB0cjwke2NsYXNzTmFtZX0+IGNyZWF0ZSh2ODo6TG9jYWw8djg6OlZh
bHVlPiB2YWx1ZSwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKKyAgICBzdGF0aWMg
UGFzc1JlZlB0cjwke3Y4SW50ZXJmYWNlTmFtZX0+IGNyZWF0ZSh2ODo6TG9jYWw8djg6OlZhbHVl
PiB2YWx1ZSwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKICAgICB7CiAgICAgICAg
IEFTU0VSVCh2YWx1ZS0+SXNPYmplY3QoKSk7CiAgICAgICAgIEFTU0VSVChjb250ZXh0KTsKLSAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyAke2NsYXNzTmFtZX0odmFsdWUtPlRvT2JqZWN0KCks
IGNvbnRleHQpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyAke3Y4SW50ZXJmYWNlTmFt
ZX0odmFsdWUtPlRvT2JqZWN0KCksIGNvbnRleHQpKTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIH4k
e2NsYXNzTmFtZX0oKTsKKyAgICB2aXJ0dWFsIH4ke3Y4SW50ZXJmYWNlTmFtZX0oKTsKIAogRU5E
CiAKQEAgLTMyOTMsNyArMzI5Myw3IEBAIEVORAogICAgIHB1c2goQGhlYWRlckNvbnRlbnQsIDw8
RU5EKTsKIAogcHJpdmF0ZToKLSAgICAke2NsYXNzTmFtZX0odjg6OkxvY2FsPHY4OjpPYmplY3Q+
LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CisgICAgJHt2OEludGVyZmFjZU5hbWV9KHY4OjpM
b2NhbDx2ODo6T2JqZWN0PiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwogCiAgICAgdjg6OlBl
cnNpc3RlbnQ8djg6Ok9iamVjdD4gbV9jYWxsYmFjazsKICAgICBXb3JsZENvbnRleHRIYW5kbGUg
bV93b3JsZENvbnRleHQ7CkBAIC0zMzAyLDcgKzMzMDIsNyBAQCBwcml2YXRlOgogRU5ECiAKICAg
ICBwdXNoKEBoZWFkZXJDb250ZW50LCAifVxuXG4iKTsKLSAgICBwdXNoKEBoZWFkZXJDb250ZW50
LCAiI2VuZGlmIC8vICRjbGFzc05hbWUiIC4gIl9oXG5cbiIpOworICAgIHB1c2goQGhlYWRlckNv
bnRlbnQsICIjZW5kaWYgLy8gJHY4SW50ZXJmYWNlTmFtZSIgLiAiX2hcblxuIik7CiAKICAgICBt
eSAkY29uZGl0aW9uYWxTdHJpbmcgPSAkY29kZUdlbmVyYXRvci0+R2VuZXJhdGVDb25kaXRpb25h
bFN0cmluZygkZGF0YU5vZGUpOwogICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIjZW5kaWYgLy8g
JHtjb25kaXRpb25hbFN0cmluZ31cbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKQEAgLTMzMTMs
NyArMzMxMyw3IEBAIHN1YiBHZW5lcmF0ZUNhbGxiYWNrSW1wbGVtZW50YXRpb24KICAgICBteSAk
b2JqZWN0ID0gc2hpZnQ7CiAgICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7CiAgICAgbXkgJGludGVy
ZmFjZU5hbWUgPSAkZGF0YU5vZGUtPm5hbWU7Ci0gICAgbXkgJGNsYXNzTmFtZSA9ICJWOCRpbnRl
cmZhY2VOYW1lIjsKKyAgICBteSAkdjhJbnRlcmZhY2VOYW1lID0gIlY4JGludGVyZmFjZU5hbWUi
OwogCiAgICAgIyAtIEFkZCBkZWZhdWx0IGhlYWRlciB0ZW1wbGF0ZQogICAgIHB1c2goQGltcGxG
aXhlZEhlYWRlciwgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbkNvbnRlbnRIZWFkZXIoJGRhdGFOb2Rl
KSk7CkBAIC0zMzI1LDE0ICszMzI1LDE0IEBAIHN1YiBHZW5lcmF0ZUNhbGxiYWNrSW1wbGVtZW50
YXRpb24KICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5o
PlxuXG4iKTsKICAgICBwdXNoKEBpbXBsQ29udGVudCwgIm5hbWVzcGFjZSBXZWJDb3JlIHtcblxu
Iik7CiAgICAgcHVzaChAaW1wbENvbnRlbnQsIDw8RU5EKTsKLSR7Y2xhc3NOYW1lfTo6JHtjbGFz
c05hbWV9KHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBjYWxsYmFjaywgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCkKKyR7djhJbnRlcmZhY2VOYW1lfTo6JHt2OEludGVyZmFjZU5hbWV9KHY4
OjpMb2NhbDx2ODo6T2JqZWN0PiBjYWxsYmFjaywgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4dCkKICAgICA6IEFjdGl2ZURPTUNhbGxiYWNrKGNvbnRleHQpCiAgICAgLCBtX2NhbGxiYWNr
KHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+OjpOZXcoY2FsbGJhY2spKQogICAgICwgbV93b3Js
ZENvbnRleHQoVXNlQ3VycmVudFdvcmxkKQogewogfQogCi0ke2NsYXNzTmFtZX06On4ke2NsYXNz
TmFtZX0oKQorJHt2OEludGVyZmFjZU5hbWV9Ojp+JHt2OEludGVyZmFjZU5hbWV9KCkKIHsKICAg
ICBtX2NhbGxiYWNrLkRpc3Bvc2UoKTsKIH0KQEAgLTMzNTEsNyArMzM1MSw3IEBAIEVORAogICAg
ICAgICAgICAgfQogCiAgICAgICAgICAgICBBZGRJbmNsdWRlc0ZvclR5cGUoJGZ1bmN0aW9uLT5z
aWduYXR1cmUtPnR5cGUpOwotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJcbiIgLiBH
ZXROYXRpdmVUeXBlRm9yQ2FsbGJhY2tzKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlKSAuICIg
JHtjbGFzc05hbWV9OjoiIC4gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5hbWUgLiAiKCIpOworICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJcbiIgLiBHZXROYXRpdmVUeXBlRm9yQ2FsbGJh
Y2tzKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlKSAuICIgJHt2OEludGVyZmFjZU5hbWV9Ojoi
IC4gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5hbWUgLiAiKCIpOwogCiAgICAgICAgICAgICBteSBA
YXJncyA9ICgpOwogICAgICAgICAgICAgbXkgQGFyZ3NDaGVjayA9ICgpOwpAQCAtMzQzNCw3ICsz
NDM0LDcgQEAgc3ViIEJhc2VJbnRlcmZhY2VOYW1lCiBzdWIgR2VuZXJhdGVUb1Y4Q29udmVydGVy
cwogewogICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OwotICAgIG15ICRjbGFzc05hbWUgPSBzaGlm
dDsKKyAgICBteSAkdjhJbnRlcmZhY2VOYW1lID0gc2hpZnQ7CiAgICAgbXkgJG5hdGl2ZVR5cGUg
PSBzaGlmdDsKICAgICBteSAkaW50ZXJmYWNlTmFtZSA9ICRkYXRhTm9kZS0+bmFtZTsKIApAQCAt
MzQ0OCw3ICszNDQ4LDcgQEAgc3ViIEdlbmVyYXRlVG9WOENvbnZlcnRlcnMKIAogICAgIHB1c2go
QGltcGxDb250ZW50LCA8PEVORCk7CiAKLXY4OjpIYW5kbGU8djg6Ok9iamVjdD4gJHtjbGFzc05h
bWV9OjpjcmVhdGVXcmFwcGVyKCR7Y3JlYXRlV3JhcHBlckFyZ3VtZW50VHlwZX0gaW1wbCwgdjg6
OkhhbmRsZTx2ODo6T2JqZWN0PiBjcmVhdGlvbkNvbnRleHQsIHY4OjpJc29sYXRlKiBpc29sYXRl
KQordjg6OkhhbmRsZTx2ODo6T2JqZWN0PiAke3Y4SW50ZXJmYWNlTmFtZX06OmNyZWF0ZVdyYXBw
ZXIoJHtjcmVhdGVXcmFwcGVyQXJndW1lbnRUeXBlfSBpbXBsLCB2ODo6SGFuZGxlPHY4OjpPYmpl
Y3Q+IGNyZWF0aW9uQ29udGV4dCwgdjg6Oklzb2xhdGUqIGlzb2xhdGUpCiB7CiAgICAgQVNTRVJU
KGltcGwuZ2V0KCkpOwogICAgIEFTU0VSVCgkZ2V0Q2FjaGVkV3JhcHBlci5Jc0VtcHR5KCkpOwpA
QCAtNDE3MiwxMyArNDE3Miw2IEBAIHN1YiBXcml0ZURhdGEKICAgICBAaGVhZGVyQ29udGVudCA9
ICgpOwogfQogCi1zdWIgR2V0Q2FsbGJhY2tDbGFzc05hbWUKLXsKLSAgICBteSAkaW50ZXJmYWNl
TmFtZSA9IHNoaWZ0OwotCi0gICAgcmV0dXJuICJWOCRpbnRlcmZhY2VOYW1lIjsKLX0KLQogc3Vi
IENvbnZlcnRUb1Y4UGFyYW1ldGVyCiB7CiAgICAgbXkgJHNpZ25hdHVyZSA9IHNoaWZ0OwpAQCAt
NDIyNiwxMCArNDIxOSwxMCBAQCBzdWIgR2V0Q29udGV4dEVuYWJsZUZ1bmN0aW9uCiAKIHN1YiBH
ZXRQYXNzUmVmUHRyVHlwZQogewotICAgIG15ICRjbGFzc05hbWUgPSBzaGlmdDsKKyAgICBteSAk
djhJbnRlcmZhY2VOYW1lID0gc2hpZnQ7CiAKLSAgICBteSAkYW5nbGVCcmFja2V0U3BhY2UgPSAk
Y2xhc3NOYW1lID1+IC8+JC8gPyAiICIgOiAiIjsKLSAgICByZXR1cm4gIlBhc3NSZWZQdHI8JHtj
bGFzc05hbWV9JHthbmdsZUJyYWNrZXRTcGFjZX0+IjsKKyAgICBteSAkYW5nbGVCcmFja2V0U3Bh
Y2UgPSAkdjhJbnRlcmZhY2VOYW1lID1+IC8+JC8gPyAiICIgOiAiIjsKKyAgICByZXR1cm4gIlBh
c3NSZWZQdHI8JHt2OEludGVyZmFjZU5hbWV9JHthbmdsZUJyYWNrZXRTcGFjZX0+IjsKIH0KIAog
MTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>