<?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>76277</bug_id>
          
          <creation_ts>2012-01-13 08:00:36 -0800</creation_ts>
          <short_desc>REGRESSION(r104935): Breaks AppleWin compilation (Requested by vsevik on #webkit).</short_desc>
          <delta_ts>2012-01-13 08:03:31 -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>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>
          
          <blocked>76264</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="WebKit Review Bot">webkit.review.bot</assigned_to>
          <cc>pfeldman</cc>
    
    <cc>vsevik</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>535681</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-13 08:00:36 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/104935 broke the build:
Breaks AppleWin compilation (Requested by vsevik on #webkit).

This is an automatic bug report generated by the sheriff-bot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests case pain.

&quot;Only you can prevent forest fires.&quot; -- Smokey the Bear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>535682</commentid>
    <comment_count>1</comment_count>
      <attachid>122429</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-13 08:01:05 -0800</bug_when>
    <thetext>Created attachment 122429
ROLLOUT of r104935

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>535684</commentid>
    <comment_count>2</comment_count>
      <attachid>122429</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-01-13 08:03:22 -0800</bug_when>
    <thetext>Comment on attachment 122429
ROLLOUT of r104935

Clearing flags on attachment: 122429

Committed r104938: &lt;http://trac.webkit.org/changeset/104938&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>535685</commentid>
    <comment_count>3</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-01-13 08:03:31 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122429</attachid>
            <date>2012-01-13 08:01:05 -0800</date>
            <delta_ts>2012-01-13 08:03:22 -0800</delta_ts>
            <desc>ROLLOUT of r104935</desc>
            <filename>bug-76277-20120113160200.patch</filename>
            <type>text/plain</type>
            <size>35727</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA0OTM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWZkNTUxNDU3OTI2MmY3
MWVhNzgzNDEyNTY3Y2IzMjZkOTM4ZDNlZS4uOGMwOGU3NDBmODQ4OGI2NmM4NDVkODRjZTM4NzA4
ZTg2MmM2MjBkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEyLTAxLTEzICBTaGVy
aWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KKworICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMTA0OTM1LgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3Jn
L2NoYW5nZXNldC8xMDQ5MzUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTc2Mjc3CisKKyAgICAgICAgQnJlYWtzIEFwcGxlV2luIGNvbXBpbGF0aW9uIChS
ZXF1ZXN0ZWQgYnkgdnNldmlrIG9uICN3ZWJraXQpLgorCisgICAgICAgICogQ01ha2VMaXN0cy50
eHQ6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qOgorICAgICAgICAqIGluc3BlY3Rvci9Db2RlR2VuZXJhdG9ySW5zcGVjdG9y
LnB5OgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3IuanNvbjoKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JDb250cm9sbGVyOjpJbnNwZWN0b3JDb250cm9sbGVyKToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5oOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFn
ZUFnZW50OjpidWlsZE9iamVjdEZvckZyYW1lKToKKyAgICAgICAgKiBpbnNwZWN0b3IvY29tcGls
ZS1mcm9udC1lbmQuc2g6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9JbmRleGVkREJN
b2RlbC5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNl
VHJlZU1vZGVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZUZyYW1lKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVGcmFtZS5wcm90b3R5cGUuX25hdmln
YXRlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmM6CisgICAgICAg
ICogaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbDoKKwogMjAxMi0wMS0xMyAgVnNl
dm9sb2QgVmxhc292ICA8dnNldmlrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVj
dG9yOiBbSW5zcGVjdG9ySW5kZXhlZERCXSBBZGQgSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQgYW5k
IEluZGV4ZWREQk1vZGVsLCBwYXNzIGRhdGFiYXNlIG5hbWVzIHRvIGluc3BlY3Rvci4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKaW5kZXggMGE2ZDNkM2JlYWEzZjFlNzA2OTRkNjc2ZjkzOGU4MmVjYTJiYjYy
My4uNjBiNTc4Y2YwMjBhNTQ1MGVkYjhkM2U1YTc0ODE2ZGRhNDBkMWU0NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQKQEAgLTg5NSw3ICs4OTUsNiBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgaW5z
cGVjdG9yL0luc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5jcHAKICAgICBpbnNwZWN0b3IvSW5zcGVj
dG9yRnJvbnRlbmRDbGllbnRMb2NhbC5jcHAKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRl
bmRIb3N0LmNwcAotICAgIGluc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAKICAg
ICBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAogICAgIGluc3BlY3Rvci9J
bnNwZWN0b3JNZW1vcnlBZ2VudC5jcHAKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJB
Z2VudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBmYjJiYmVjYjY0M2Q0MzNmNmMwMWRlZjQwMzVh
NTNhMzQxZWYwNTljLi4wZTg4YTM1ZDhkNDc2MjhkNjQ3NDA1ODhmMDUxOGYxN2ZkYzM3NDk3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpCkBAIC0yNzc4LDggKzI3NzgsNiBAQAogICAgICAgICAgICAgJ2luc3Bl
Y3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNwcCcsCiAgICAgICAgICAgICAnaW5z
cGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAnLAogICAgICAgICAgICAgJ2luc3BlY3Rv
ci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuaCcsCi0gICAgICAgICAgICAnaW5zcGVjdG9yL0luc3Bl
Y3RvckluZGV4ZWREQkFnZW50LmNwcCcsCi0gICAgICAgICAgICAnaW5zcGVjdG9yL0luc3BlY3Rv
ckluZGV4ZWREQkFnZW50LmgnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0
cnVtZW50YXRpb24uY3BwJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uLmgnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9JbnNwZWN0b3JNZW1vcnlBZ2Vu
dC5jcHAnLApAQCAtNjQ2OCw3ICs2NDY2LDYgQEAKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJv
bnQtZW5kL0hlYXBTbmFwc2hvdFdvcmtlckRpc3BhdGNoZXIuanMnLAogICAgICAgICAgICAgJ2lu
c3BlY3Rvci9mcm9udC1lbmQvSGVscFNjcmVlbi5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9y
L2Zyb250LWVuZC9JbWFnZVZpZXcuanMnLAotICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1l
bmQvSW5kZXhlZERCTW9kZWwuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQv
SW5zcGVjdG9yQmFja2VuZC5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9J
bnNwZWN0b3JGcm9udGVuZEFQSS5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVu
ZC9JbnNwZWN0b3JGcm9udGVuZEhvc3RTdHViLmpzJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggODZmOGQ4YzU2YzY5YzE0M2U4NjllNWEwZmE2
MTczYzZlNzQ5ZWQ4Yy4uYTJlOWZkMjllYjQ0YTI3YmY0OTRkM2Y3M2I2NmY4OThjMjM2ZjFhOCAx
MDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTcx
NDA2LDE0ICs3MTQwNiw2IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKLQkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAiCi0JCQkJ
PgotCQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3RvclxJ
bnNwZWN0b3JJbmRleGVkREJBZ2VudC5oIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCiAJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNw
cCIKIAkJCQk+CiAJCQk8L0ZpbGU+CkBAIC03MTkxMywxMCArNzE5MDUsNiBAQAogCQkJCQk+CiAJ
CQkJPC9GaWxlPgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXGZy
b250LWVuZFxJbmRleGVkREJNb2RlbC5qcyIKLQkJCQkJPgotCQkJCTwvRmlsZT4KLQkJCQk8Rmls
ZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3Rvclxmcm9udC1lbmRcSW5qZWN0ZWRGYWtl
V29ya2VyLmpzIgogCQkJCQk+CiAJCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0NvZGVHZW5lcmF0b3JJbnNwZWN0b3IucHkgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvQ29kZUdlbmVyYXRvckluc3BlY3Rvci5weQppbmRleCA1ZDE1N2FkZGFiMmZiMTFk
YzFjMzI5ZTljMzAxMzdmZDdjNjg3NWRlLi4xYjJkY2ZjMWYzMzQ4NjE5ODUyOGNhMTdlNDQ2Mjc3
ZDg0MDJjZTQwIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29kZUdlbmVy
YXRvckluc3BlY3Rvci5weQorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29kZUdlbmVy
YXRvckluc3BlY3Rvci5weQpAQCAtNDMsNyArNDMsNiBAQCBET01BSU5fREVGSU5FX05BTUVfTUFQ
ID0gewogICAgICJEZWJ1Z2dlciI6ICJKQVZBU0NSSVBUX0RFQlVHR0VSIiwKICAgICAiRE9NRGVi
dWdnZXIiOiAiSkFWQVNDUklQVF9ERUJVR0dFUiIsCiAgICAgIkZpbGVTeXN0ZW0iOiAiRklMRV9T
WVNURU0iLAotICAgICJJbmRleGVkREIiOiAiSU5ERVhFRF9EQVRBQkFTRSIsCiAgICAgIlByb2Zp
bGVyIjogIkpBVkFTQ1JJUFRfREVCVUdHRVIiLAogICAgICJXb3JrZXIiOiAiV09SS0VSUyIsCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24gYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KaW5kZXggMzA4YzFiMDY4MDJm
YmJlZWViMjQ3ZGVmYTkwMjYyZjNiYzlmZWZlYi4uODE0OTdjOTgxOTYwMGFkNWQzYzNhMGM4MDRh
YTI0ZjIwMWVhNjIyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3Rvci5qc29uCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgpA
QCAtMTA4LDcgKzEwOCw2IEBACiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibG9hZGVy
SWQiLCAiJHJlZiI6ICJOZXR3b3JrLkxvYWRlcklkIiwgImRlc2NyaXB0aW9uIjogIklkZW50aWZp
ZXIgb2YgdGhlIGxvYWRlciBhc3NvY2lhdGVkIHdpdGggdGhpcyBmcmFtZS4iIH0sCiAgICAgICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAibmFtZSIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25h
bCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJGcmFtZSdzIG5hbWUgYXMgc3BlY2lmaWVkIGluIHRo
ZSB0YWcuIiB9LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInVybCIsICJ0eXBlIjog
InN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJGcmFtZSBkb2N1bWVudCdzIFVSTC4iIH0sCi0gICAg
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic2VjdXJpdHlPcmlnaW4iLCAidHlwZSI6ICJzdHJp
bmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiRnJhbWUgZG9jdW1lbnQncyBz
ZWN1cml0eSBvcmlnaW4uIiB9LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm1pbWVU
eXBlIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIkZyYW1lIGRvY3VtZW50J3Mg
bWltZVR5cGUgYXMgZGV0ZXJtaW5lZCBieSB0aGUgYnJvd3Nlci4iIH0KICAgICAgICAgICAgICAg
ICBdLAogICAgICAgICAgICAgICAgICJoaWRkZW4iOiB0cnVlCkBAIC05MDIsNDcgKzkwMSw2IEBA
CiAgICAgICAgIF0KICAgICB9LAogICAgIHsKLSAgICAgICAgImRvbWFpbiI6ICJJbmRleGVkREIi
LAotICAgICAgICAiaGlkZGVuIjogdHJ1ZSwKLSAgICAgICAgInR5cGVzIjogWwotICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgICJpZCI6ICJGcmFtZVdpdGhEYXRhYmFzZU5hbWVzIiwKLSAg
ICAgICAgICAgICAgICAidHlwZSI6ICJvYmplY3QiLAotICAgICAgICAgICAgICAgICJkZXNjcmlw
dGlvbiI6ICJPcmlnaW4gd2l0aCBkYXRhYmFzZSBuYW1lcyBhbmQgZnJhbWUgaWRzLiIsCi0gICAg
ICAgICAgICAgICAgInByb3BlcnRpZXMiOiBbCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAiZnJhbWVJZCIsICIkcmVmIjogIk5ldHdvcmsuRnJhbWVJZCIsICJkZXNjcmlwdGlvbiI6ICJG
cmFtZSBpZC4iIH0sCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic2VjdXJpdHlPcmln
aW4iLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiU2VjdXJpdHkgb3JpZ2luLiIg
fSwKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJkYXRhYmFzZU5hbWVzIiwgInR5cGUi
OiAiYXJyYXkiLCAiaXRlbXMiOiB7ICJ0eXBlIjogInN0cmluZyIgfSwgImRlc2NyaXB0aW9uIjog
IkRhdGFiYXNlIG5hbWVzIGZvciB0aGlzIG9yaWdpbi4iIH0KLSAgICAgICAgICAgICAgICBdCi0g
ICAgICAgICAgICB9Ci0gICAgICAgIF0sCi0gICAgICAgICJjb21tYW5kcyI6IFsKLSAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICAibmFtZSI6ICJlbmFibGUiLAotICAgICAgICAgICAgICAg
ICJkZXNjcmlwdGlvbiI6ICJFbmFibGVzIGV2ZW50cyBmcm9tIGJhY2tlbmQuIgotICAgICAgICAg
ICAgfSwKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAibmFtZSI6ICJkaXNhYmxlIiwK
LSAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRGlzYWJsZXMgZXZlbnRzIGZyb20gYmFj
a2VuZC4iCi0gICAgICAgICAgICB9LAotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICJu
YW1lIjogInJlcXVlc3REYXRhYmFzZU5hbWVzRm9yRnJhbWUiLAotICAgICAgICAgICAgICAgICJw
YXJhbWV0ZXJzIjogWwotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImZyYW1lSWQiLCAi
JHJlZiI6ICJOZXR3b3JrLkZyYW1lSWQiIH0KLSAgICAgICAgICAgICAgICBdLAotICAgICAgICAg
ICAgICAgICJkZXNjcmlwdGlvbiI6ICJSZXF1ZXN0cyBkYXRhYmFzZSBuYW1lcyBmb3IgZ2l2ZW4g
ZnJhbWUncyBzZWN1cml0eSBvcmlnaW4uIgotICAgICAgICAgICAgfQotICAgICAgICBdLAotICAg
ICAgICAiZXZlbnRzIjogWwotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICJuYW1lIjog
ImRhdGFiYXNlTmFtZXNMb2FkZWQiLAotICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwot
ICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImZyYW1lV2l0aERhdGFiYXNlTmFtZXMiLCAi
JHJlZiI6ICJGcmFtZVdpdGhEYXRhYmFzZU5hbWVzIiwgImRlc2NyaXB0aW9uIjogIkZyYW1lIHdp
dGggZGF0YWJhc2UgbmFtZXMuIiB9Ci0gICAgICAgICAgICAgICAgXQotICAgICAgICAgICAgfQot
ICAgICAgICBdCi0gICAgfSwKLSAgICB7CiAgICAgICAgICJkb21haW4iOiAiRE9NU3RvcmFnZSIs
CiAgICAgICAgICJoaWRkZW4iOiB0cnVlLAogICAgICAgICAidHlwZXMiOiBbCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKaW5kZXggZDA4ZWU0
YzQ3ZjY3YTgzNjJjYTIxZmMwZTM2OTRhZWYwYjA5NGQ5Yi4uNzVkNmI0OWYxMmQ5NDI2Y2FkOTg1
MjJkODM5MDliM2RhNDFiYzIyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDb250cm9sbGVyLmNwcApAQCAtNTIsNyArNTIsNiBAQAogI2luY2x1ZGUgIkluc3Bl
Y3RvckZpbGVTeXN0ZW1BZ2VudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kLmgiCiAj
aW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQuaCIKLSNpbmNsdWRlICJJbnNwZWN0b3JJ
bmRleGVkREJBZ2VudC5oIgogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgog
I2luY2x1ZGUgIkluc3BlY3Rvck1lbW9yeUFnZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yUGFn
ZUFnZW50LmgiCkBAIC05OSwxMCArOTgsNiBAQCBJbnNwZWN0b3JDb250cm9sbGVyOjpJbnNwZWN0
b3JDb250cm9sbGVyKFBhZ2UqIHBhZ2UsIEluc3BlY3RvckNsaWVudCogaW5zcGVjdG9yQwogICAg
IG1fYWdlbnRzLmFwcGVuZChkYXRhYmFzZUFnZW50UHRyLnJlbGVhc2UoKSk7CiAjZW5kaWYKIAot
I2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQotICAgIG1fYWdlbnRzLmFwcGVuZChJbnNwZWN0
b3JJbmRleGVkREJBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9z
dGF0ZS5nZXQoKSwgcGFnZUFnZW50KSk7Ci0jZW5kaWYKLQogI2lmIEVOQUJMRShGSUxFX1NZU1RF
TSkKICAgICBtX2FnZW50cy5hcHBlbmQoSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50OjpjcmVhdGUo
bV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX3N0YXRlLmdldCgpKSk7CiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2Vu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQu
Y3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZWNkMjJjMjI2N2U3OTNiMzgxMGY1
MmFhNWE5NmU3MzM0Njc1MzhiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2Vu
dC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxOTUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0g
KiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAot
ICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIK
LQotI2luY2x1ZGUgIkluc3BlY3RvckluZGV4ZWREQkFnZW50LmgiCi0KLSNpZiBFTkFCTEUoSU5T
UEVDVE9SKSAmJiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKLQotI2luY2x1ZGUgIkRPTVN0cmlu
Z0xpc3QuaCIKLSNpbmNsdWRlICJET01XaW5kb3cuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgot
I2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKLSNpbmNsdWRlICJGcmFtZS5oIgotI2luY2x1ZGUg
Ikdyb3VwU2V0dGluZ3MuaCIKLSNpbmNsdWRlICJJREJDYWxsYmFja3MuaCIKLSNpbmNsdWRlICJJ
REJGYWN0b3J5QmFja2VuZEludGVyZmFjZS5oIgotI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5k
LmgiCi0jaW5jbHVkZSAiSW5zcGVjdG9yUGFnZUFnZW50LmgiCi0jaW5jbHVkZSAiSW5zcGVjdG9y
U3RhdGUuaCIKLSNpbmNsdWRlICJJbnNwZWN0b3JWYWx1ZXMuaCIKLSNpbmNsdWRlICJJbnN0cnVt
ZW50aW5nQWdlbnRzLmgiCi0jaW5jbHVkZSAiUGFnZS5oIgotI2luY2x1ZGUgIlBhZ2VHcm91cC5o
IgotI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCi0KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+
Ci0KLXVzaW5nIFdlYkNvcmU6OlR5cGVCdWlsZGVyOjpJbmRleGVkREI6OkZyYW1lV2l0aERhdGFi
YXNlTmFtZXM7Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotbmFtZXNwYWNlIEluZGV4ZWREQkFn
ZW50U3RhdGUgewotc3RhdGljIGNvbnN0IGNoYXIgaW5kZXhlZERCQWdlbnRFbmFibGVkW10gPSAi
aW5kZXhlZERCQWdlbnRFbmFibGVkIjsKLX07Ci0KLWNsYXNzIEluc3BlY3RvckluZGV4ZWREQkFn
ZW50OjpGcm9udGVuZFByb3ZpZGVyIDogcHVibGljIFJlZkNvdW50ZWQ8SW5zcGVjdG9ySW5kZXhl
ZERCQWdlbnQ6OkZyb250ZW5kUHJvdmlkZXI+IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxGcm9udGVuZFByb3ZpZGVyPiBjcmVhdGUoSW5zcGVjdG9yRnJvbnRlbmQqIGluc3BlY3Rv
ckZyb250ZW5kKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBGcm9udGVuZFBy
b3ZpZGVyKGluc3BlY3RvckZyb250ZW5kKSk7Ci0gICAgfQotCi0gICAgdmlydHVhbCB+RnJvbnRl
bmRQcm92aWRlcigpIHsgfQotCi0gICAgSW5zcGVjdG9yRnJvbnRlbmQ6OkluZGV4ZWREQiogZnJv
bnRlbmQoKSB7IHJldHVybiBtX2luc3BlY3RvckZyb250ZW5kOyB9Ci0gICAgdm9pZCBjbGVhckZy
b250ZW5kKCkgeyBtX2luc3BlY3RvckZyb250ZW5kID0gMDsgfQotcHJpdmF0ZToKLSAgICBGcm9u
dGVuZFByb3ZpZGVyKEluc3BlY3RvckZyb250ZW5kKiBpbnNwZWN0b3JGcm9udGVuZCkgOiBtX2lu
c3BlY3RvckZyb250ZW5kKGluc3BlY3RvckZyb250ZW5kLT5pbmRleGVkZGIoKSkgeyB9Ci0gICAg
SW5zcGVjdG9yRnJvbnRlbmQ6OkluZGV4ZWREQiogbV9pbnNwZWN0b3JGcm9udGVuZDsKLX07Ci0K
LW5hbWVzcGFjZSB7Ci0KLWNsYXNzIEluc3BlY3RvcklEQkNhbGxiYWNrIDogcHVibGljIElEQkNh
bGxiYWNrcyB7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCB+SW5zcGVjdG9ySURCQ2FsbGJhY2soKSB7
IH0KLQotICAgIHZpcnR1YWwgdm9pZCBvbkVycm9yKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VFcnJv
cj4pIHsgfQotICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxET01TdHJpbmdM
aXN0PikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkN1cnNv
ckJhY2tlbmRJbnRlcmZhY2U+KSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NS
ZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlPikgeyB9Ci0gICAgdmlydHVhbCB2b2lk
IG9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQktleT4pIHsgfQotICAgIHZpcnR1YWwgdm9pZCBvblN1
Y2Nlc3MoUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+KSB7IH0KLSAg
ICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVl
PikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzc1dpdGhDb250aW51YXRpb24oKSB7IH0K
LSAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzV2l0aFByZWZldGNoKGNvbnN0IFZlY3RvcjxSZWZQ
dHI8SURCS2V5PiA+JiBrZXlzLCBjb25zdCBWZWN0b3I8UmVmUHRyPElEQktleT4gPiYgcHJpbWFy
eUtleXMsIGNvbnN0IFZlY3RvcjxSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiA+JiB2YWx1
ZXMpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBvbkJsb2NrZWQoKSB7IH0KLX07Ci0KLWNsYXNzIEdl
dERhdGFiYXNlTmFtZXNDYWxsYmFjayA6IHB1YmxpYyBJbnNwZWN0b3JJREJDYWxsYmFjayB7Ci1w
dWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8R2V0RGF0YWJhc2VOYW1lc0NhbGxiYWNrPiBj
cmVhdGUoUGFzc1JlZlB0cjxJbnNwZWN0b3JJbmRleGVkREJBZ2VudDo6RnJvbnRlbmRQcm92aWRl
cj4gZnJvbnRlbmRQcm92aWRlciwgY29uc3QgU3RyaW5nJiBmcmFtZUlkLCBjb25zdCBTdHJpbmcm
IHNlY3VyaXR5T3JpZ2luKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBHZXRE
YXRhYmFzZU5hbWVzQ2FsbGJhY2soZnJvbnRlbmRQcm92aWRlciwgZnJhbWVJZCwgc2VjdXJpdHlP
cmlnaW4pKTsKLSAgICB9Ci0KLSAgICB2aXJ0dWFsIH5HZXREYXRhYmFzZU5hbWVzQ2FsbGJhY2so
KSB7IH0KLQotICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxET01TdHJpbmdM
aXN0PiBkYXRhYmFzZU5hbWVzTGlzdCkKLSAgICB7Ci0gICAgICAgIGlmICghbV9mcm9udGVuZFBy
b3ZpZGVyLT5mcm9udGVuZCgpKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIFJlZlB0
cjxJbnNwZWN0b3JBcnJheT4gZGF0YWJhc2VOYW1lcyA9IEluc3BlY3RvckFycmF5OjpjcmVhdGUo
KTsKLSAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBkYXRhYmFzZU5hbWVzTGlzdC0+bGVu
Z3RoKCk7ICsraSkKLSAgICAgICAgICAgIGRhdGFiYXNlTmFtZXMtPnB1c2hTdHJpbmcoZGF0YWJh
c2VOYW1lc0xpc3QtPml0ZW0oaSkpOwotCi0gICAgICAgIFJlZlB0cjxGcmFtZVdpdGhEYXRhYmFz
ZU5hbWVzPiByZXN1bHQgPSBGcmFtZVdpdGhEYXRhYmFzZU5hbWVzOjpjcmVhdGUoKQotICAgICAg
ICAgICAgLnNldEZyYW1lSWQobV9mcmFtZUlkKQotICAgICAgICAgICAgLnNldFNlY3VyaXR5T3Jp
Z2luKG1fc2VjdXJpdHlPcmlnaW4pCi0gICAgICAgICAgICAuc2V0RGF0YWJhc2VOYW1lcyhkYXRh
YmFzZU5hbWVzKTsKLQotICAgICAgICBtX2Zyb250ZW5kUHJvdmlkZXItPmZyb250ZW5kKCktPmRh
dGFiYXNlTmFtZXNMb2FkZWQocmVzdWx0KTsKLSAgICB9Ci0KLXByaXZhdGU6Ci0gICAgR2V0RGF0
YWJhc2VOYW1lc0NhbGxiYWNrKFBhc3NSZWZQdHI8SW5zcGVjdG9ySW5kZXhlZERCQWdlbnQ6OkZy
b250ZW5kUHJvdmlkZXI+IGZyb250ZW5kUHJvdmlkZXIsIGNvbnN0IFN0cmluZyYgZnJhbWVJZCwg
Y29uc3QgU3RyaW5nJiBzZWN1cml0eU9yaWdpbikKLSAgICAgICAgOiBtX2Zyb250ZW5kUHJvdmlk
ZXIoZnJvbnRlbmRQcm92aWRlcikKLSAgICAgICAgLCBtX2ZyYW1lSWQoZnJhbWVJZCkKLSAgICAg
ICAgLCBtX3NlY3VyaXR5T3JpZ2luKHNlY3VyaXR5T3JpZ2luKSB7IH0KLSAgICBSZWZQdHI8SW5z
cGVjdG9ySW5kZXhlZERCQWdlbnQ6OkZyb250ZW5kUHJvdmlkZXI+IG1fZnJvbnRlbmRQcm92aWRl
cjsKLSAgICBTdHJpbmcgbV9mcmFtZUlkOwotICAgIFN0cmluZyBtX3NlY3VyaXR5T3JpZ2luOwot
fTsKLQotfSAvLyBuYW1lc3BhY2UKLQotSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQ6Okluc3BlY3Rv
ckluZGV4ZWREQkFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMs
IEluc3BlY3RvclN0YXRlKiBzdGF0ZSwgSW5zcGVjdG9yUGFnZUFnZW50KiBwYWdlQWdlbnQpCi0g
ICAgOiBJbnNwZWN0b3JCYXNlQWdlbnQ8SW5zcGVjdG9ySW5kZXhlZERCQWdlbnQ+KCJJbmRleGVk
REIiLCBpbnN0cnVtZW50aW5nQWdlbnRzLCBzdGF0ZSkKLSAgICAsIG1fcGFnZUFnZW50KHBhZ2VB
Z2VudCkKLXsKLX0KLQotSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQ6On5JbnNwZWN0b3JJbmRleGVk
REJBZ2VudCgpCi17Ci19Ci0KLXZvaWQgSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQ6OnNldEZyb250
ZW5kKEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCkKLXsKLSAgICBtX2Zyb250ZW5kUHJvdmlk
ZXIgPSBGcm9udGVuZFByb3ZpZGVyOjpjcmVhdGUoZnJvbnRlbmQpOwotfQotCi12b2lkIEluc3Bl
Y3RvckluZGV4ZWREQkFnZW50OjpjbGVhckZyb250ZW5kKCkKLXsKLSAgICBtX2Zyb250ZW5kUHJv
dmlkZXItPmNsZWFyRnJvbnRlbmQoKTsKLSAgICBtX2Zyb250ZW5kUHJvdmlkZXIuY2xlYXIoKTsK
LSAgICBkaXNhYmxlKDApOwotfQotCi12b2lkIEluc3BlY3RvckluZGV4ZWREQkFnZW50OjpyZXN0
b3JlKCkKLXsKLSAgICBpZiAobV9zdGF0ZS0+Z2V0Qm9vbGVhbihJbmRleGVkREJBZ2VudFN0YXRl
OjppbmRleGVkREJBZ2VudEVuYWJsZWQpKSB7Ci0gICAgICAgIEVycm9yU3RyaW5nIGVycm9yOwot
ICAgICAgICBlbmFibGUoJmVycm9yKTsKLSAgICB9Ci19Ci0KLXZvaWQgSW5zcGVjdG9ySW5kZXhl
ZERCQWdlbnQ6OmVuYWJsZShFcnJvclN0cmluZyopCi17Ci0gICAgbV9zdGF0ZS0+c2V0Qm9vbGVh
bihJbmRleGVkREJBZ2VudFN0YXRlOjppbmRleGVkREJBZ2VudEVuYWJsZWQsIHRydWUpOwotfQot
Ci12b2lkIEluc3BlY3RvckluZGV4ZWREQkFnZW50OjpkaXNhYmxlKEVycm9yU3RyaW5nKikKLXsK
LSAgICBtX3N0YXRlLT5zZXRCb29sZWFuKEluZGV4ZWREQkFnZW50U3RhdGU6OmluZGV4ZWREQkFn
ZW50RW5hYmxlZCwgZmFsc2UpOwotfQotCi12b2lkIEluc3BlY3RvckluZGV4ZWREQkFnZW50Ojpy
ZXF1ZXN0RGF0YWJhc2VOYW1lc0ZvckZyYW1lKEVycm9yU3RyaW5nKiBlcnJvciwgY29uc3QgU3Ry
aW5nJiBmcmFtZUlkKQotewotICAgIEZyYW1lKiBmcmFtZSA9IG1fcGFnZUFnZW50LT5mcmFtZUZv
cklkKGZyYW1lSWQpOwotICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGZyYW1lID8gZnJhbWUtPmRv
Y3VtZW50KCkgOiAwOwotICAgIFBhZ2UqIHBhZ2UgPSBkb2N1bWVudCA/IGRvY3VtZW50LT5wYWdl
KCkgOiAwOwotICAgIElEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlKiBpZGJCYWNrZW5kID0gcGFn
ZSA/IHBhZ2UtPmdyb3VwKCkuaWRiRmFjdG9yeSgpIDogMDsKLQotICAgIGlmICghaWRiQmFja2Vu
ZCkgewotICAgICAgICAqZXJyb3IgPSAiTm8gSW5kZXhlZERCIGZhY3RvcnkgZm9yIGdpdmVuIGZy
YW1lIGZvdW5kIjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIFJlZlB0cjxHZXREYXRh
YmFzZU5hbWVzQ2FsbGJhY2s+IGNhbGxiYWNrID0gR2V0RGF0YWJhc2VOYW1lc0NhbGxiYWNrOjpj
cmVhdGUobV9mcm9udGVuZFByb3ZpZGVyLCBmcmFtZUlkLCBkb2N1bWVudC0+c2VjdXJpdHlPcmln
aW4oKS0+dG9TdHJpbmcoKSk7Ci0gICAgR3JvdXBTZXR0aW5ncyogZ3JvdXBTZXR0aW5ncyA9IGRv
Y3VtZW50LT5wYWdlKCktPmdyb3VwKCkuZ3JvdXBTZXR0aW5ncygpOwotICAgIGlkYkJhY2tlbmQt
PmdldERhdGFiYXNlTmFtZXMoY2FsbGJhY2suZ2V0KCksIGRvY3VtZW50LT5zZWN1cml0eU9yaWdp
bigpLCBkb2N1bWVudC0+ZnJhbWUoKSwgZ3JvdXBTZXR0aW5ncy0+aW5kZXhlZERCRGF0YWJhc2VQ
YXRoKCkpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUo
SU5TUEVDVE9SKSAmJiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5oIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmgKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGM2MDExZTAzMWI0ODFiNDhjOTk0ODQyNGNhNThmOWRkMWU0MDBhZDQu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmgKKysrIC9kZXYvbnVsbApA
QCAtMSw3MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0g
KiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0g
KiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAot
ICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0gKi8KLQotI2lmbmRlZiBJbnNwZWN0b3JJbmRleGVkREJBZ2VudF9oCi0jZGVmaW5l
IEluc3BlY3RvckluZGV4ZWREQkFnZW50X2gKLQotI2luY2x1ZGUgIkluc3BlY3RvckJhc2VBZ2Vu
dC5oIgotI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NPd25Q
dHIuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBJbnNwZWN0b3JQYWdlQWdlbnQ7
Ci0KLXR5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOwotCi1jbGFzcyBJbnNwZWN0b3JJbmRleGVk
REJBZ2VudCA6IHB1YmxpYyBJbnNwZWN0b3JCYXNlQWdlbnQ8SW5zcGVjdG9ySW5kZXhlZERCQWdl
bnQ+IHsKLXB1YmxpYzoKLSAgICBjbGFzcyBGcm9udGVuZFByb3ZpZGVyOwotCi0gICAgc3RhdGlj
IFBhc3NPd25QdHI8SW5zcGVjdG9ySW5kZXhlZERCQWdlbnQ+IGNyZWF0ZShJbnN0cnVtZW50aW5n
QWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JTdGF0ZSogc3RhdGUsIEluc3Bl
Y3RvclBhZ2VBZ2VudCogcGFnZUFnZW50KQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UHRy
KG5ldyBJbnNwZWN0b3JJbmRleGVkREJBZ2VudChpbnN0cnVtZW50aW5nQWdlbnRzLCBzdGF0ZSwg
cGFnZUFnZW50KSk7Ci0gICAgfQotICAgIH5JbnNwZWN0b3JJbmRleGVkREJBZ2VudCgpOwotCi0g
ICAgdmlydHVhbCB2b2lkIHNldEZyb250ZW5kKEluc3BlY3RvckZyb250ZW5kKik7Ci0gICAgdmly
dHVhbCB2b2lkIGNsZWFyRnJvbnRlbmQoKTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVzdG9yZSgpOwot
Ci0gICAgLy8gQ2FsbGVkIGZyb20gdGhlIGZyb250LWVuZC4KLSAgICB2b2lkIGVuYWJsZShFcnJv
clN0cmluZyopOwotICAgIHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyopOwotICAgIHZvaWQgcmVx
dWVzdERhdGFiYXNlTmFtZXNGb3JGcmFtZShFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgZnJh
bWVJZCk7Ci1wcml2YXRlOgotICAgIEluc3BlY3RvckluZGV4ZWREQkFnZW50KEluc3RydW1lbnRp
bmdBZ2VudHMqLCBJbnNwZWN0b3JTdGF0ZSosIEluc3BlY3RvclBhZ2VBZ2VudCopOwotCi0gICAg
SW5zcGVjdG9yUGFnZUFnZW50KiBtX3BhZ2VBZ2VudDsKLSAgICBSZWZQdHI8RnJvbnRlbmRQcm92
aWRlcj4gbV9mcm9udGVuZFByb3ZpZGVyOwotICAgIGJvb2wgbV9lbmFibGVkOwotfTsKLQotfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gIWRlZmluZWQoSW5zcGVjdG9ySW5kZXhl
ZERCQWdlbnRfaCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JQYWdlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VB
Z2VudC5jcHAKaW5kZXggNzEyZmE1MWZhODI3ZTcwNjZmZTAyMTFkZmE0MjhhMDNiYjI4ODVkMi4u
YjFjOWFjNGI1ZmUzMDY2Yzc3YjExMTg4ZWJjOTRkZmY3ZGNmZWU5MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKQEAgLTY5MSw3ICs2OTEs
NiBAQCBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gSW5zcGVjdG9yUGFnZUFnZW50OjpidWls
ZE9iamVjdEZvckZyYW1lKEZyYW1lKiBmcmFtZQogICAgIH0KICAgICBmcmFtZU9iamVjdC0+c2V0
U3RyaW5nKCJ1cmwiLCBmcmFtZS0+ZG9jdW1lbnQoKS0+dXJsKCkuc3RyaW5nKCkpOwogICAgIGZy
YW1lT2JqZWN0LT5zZXRTdHJpbmcoImxvYWRlcklkIiwgbG9hZGVySWQoZnJhbWUtPmxvYWRlcigp
LT5kb2N1bWVudExvYWRlcigpKSk7Ci0gICAgZnJhbWVPYmplY3QtPnNldFN0cmluZygic2VjdXJp
dHlPcmlnaW4iLCBmcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+dG9TdHJpbmco
KSk7CiAgICAgZnJhbWVPYmplY3QtPnNldFN0cmluZygibWltZVR5cGUiLCBmcmFtZS0+bG9hZGVy
KCktPmRvY3VtZW50TG9hZGVyKCktPnJlc3BvbnNlTUlNRVR5cGUoKSk7CiAKICAgICByZXR1cm4g
ZnJhbWVPYmplY3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvY29tcGls
ZS1mcm9udC1lbmQuc2ggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvY29tcGlsZS1mcm9udC1l
bmQuc2gKaW5kZXggYmQyNGRiM2RkOGU3NzI3MzIxNWNlZGY3Njc3MDM3N2NlZDNiNDI1My4uMWE3
NTcyOGQ1YjJmZjAzMzgxZWUwZmNiNjM2MjA0MDgzYTIxNTI3YiAxMDA3NTUKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2NvbXBpbGUtZnJvbnQtZW5kLnNoCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9jb21waWxlLWZyb250LWVuZC5zaApAQCAtNDUsNyArNDUsNyBAQCBqYXZh
IC1qYXIgfi9jbG9zdXJlL2NvbXBpbGVyLmphciAtLXN1bW1hcnlfZGV0YWlsX2xldmVsIDMgLS1j
b21waWxhdGlvbl9sZXZlbCBTSQogICAgICAgICAtLWpzIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvVXNlck1ldHJpY3MuanMgXAogICAgICAgICAtLWpzIFNvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvSGFuZGxlclJlZ2lzdHJ5LmpzIFwKICAgICAgICAgLS1qcyBT
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0luc3BlY3RvckZyb250ZW5kSG9zdFN0
dWIuanMgXAotICAgIC0tbW9kdWxlIGpzbW9kdWxlX3NkazozMDpqc21vZHVsZV9jb21tb24gXAor
ICAgIC0tbW9kdWxlIGpzbW9kdWxlX3NkazoyOTpqc21vZHVsZV9jb21tb24gXAogICAgICAgICAt
LWpzIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSW5zcGVjdG9yQmFja2VuZC5q
cyBcCiAgICAgICAgIC0tanMgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BcHBs
aWNhdGlvbkNhY2hlTW9kZWwuanMgXAogICAgICAgICAtLWpzIFNvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvQ29sb3IuanMgXApAQCAtNjMsNyArNjMsNiBAQCBqYXZhIC1qYXIgfi9j
bG9zdXJlL2NvbXBpbGVyLmphciAtLXN1bW1hcnlfZGV0YWlsX2xldmVsIDMgLS1jb21waWxhdGlv
bl9sZXZlbCBTSQogICAgICAgICAtLWpzIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvRGVidWdnZXJNb2RlbC5qcyBcCiAgICAgICAgIC0tanMgU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLmpzIFwKICAgICAgICAgLS1q
cyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0hBUkVudHJ5LmpzIFwKLSAgICAg
ICAgLS1qcyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0luZGV4ZWREQk1vZGVs
LmpzIFwKICAgICAgICAgLS1qcyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05l
dHdvcmtMb2cuanMgXAogICAgICAgICAtLWpzIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvUGxhY2FyZC5qcyBcCiAgICAgICAgIC0tanMgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9TY3JpcHQuanMgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9JbmRleGVkREJNb2RlbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvSW5kZXhlZERCTW9kZWwuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDFmZGEyYWEzYWVlZjg1YmUwMzg4ZDA3Yjk5NDdhNzZmNTc4OWE0MmIuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9JbmRleGVkREJNb2RlbC5qcworKysgL2Rldi9udWxsCkBAIC0xLDI1NyAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0g
KgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAq
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
Ci0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0g
Ki8KLQotLyoqCi0gKiBAY29uc3RydWN0b3IKLSAqIEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuT2Jq
ZWN0fQotICovCi1XZWJJbnNwZWN0b3IuSW5kZXhlZERCTW9kZWwgPSBmdW5jdGlvbigpCi17Ci0g
ICAgSW5kZXhlZERCQWdlbnQuZW5hYmxlKCk7Ci0gICAgSW5zcGVjdG9yQmFja2VuZC5yZWdpc3Rl
ckluZGV4ZWREQkRpc3BhdGNoZXIobmV3IFdlYkluc3BlY3Rvci5JbmRleGVkREJEaXNwYXRjaGVy
KHRoaXMpKTsKLSAgICAKLSAgICBXZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwuYWRkRXZl
bnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwuRXZlbnRUeXBlcy5GcmFt
ZU5hdmlnYXRlZCwgdGhpcy5fZnJhbWVOYXZpZ2F0ZWQsIHRoaXMpOwotICAgIFdlYkluc3BlY3Rv
ci5yZXNvdXJjZVRyZWVNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5SZXNvdXJj
ZVRyZWVNb2RlbC5FdmVudFR5cGVzLkZyYW1lRGV0YWNoZWQsIHRoaXMuX2ZyYW1lRGV0YWNoZWQs
IHRoaXMpOwotICAgIAotICAgIHRoaXMuX3NlY3VyaXR5T3JpZ2luQnlGcmFtZUlkID0ge307Ci0g
ICAgdGhpcy5fZnJhbWVJZHNCeVNlY3VyaXR5T3JpZ2luID0ge307Ci0gICAgdGhpcy5fZGF0YWJh
c2VOYW1lc0J5U2VjdXJpdHlPcmlnaW4gPSB7fTsKLQotICAgIHRoaXMucmVmcmVzaERhdGFiYXNl
TmFtZXMoKTsKLX0KLQotV2ViSW5zcGVjdG9yLkluZGV4ZWREQk1vZGVsLnByb3RvdHlwZSA9IHsK
LSAgICByZWZyZXNoRGF0YWJhc2VOYW1lczogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgdGhp
cy5fcmVzZXQoKTsKLSAgICAgICAgdGhpcy5fZnJhbWVzTmF2aWdhdGVkUmVjdXJzaXZlbHkoV2Vi
SW5zcGVjdG9yLnJlc291cmNlVHJlZU1vZGVsLm1haW5GcmFtZSk7Ci0gICAgfSwKLSAgICAKLSAg
ICAvKioKLSAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVGcmFtZX0gcmVz
b3VyY2VUcmVlRnJhbWUKLSAgICAgKi8KLSAgICBfZnJhbWVzTmF2aWdhdGVkUmVjdXJzaXZlbHk6
IGZ1bmN0aW9uKHJlc291cmNlVHJlZUZyYW1lKQotICAgIHsKLSAgICAgICAgdGhpcy5fcHJvY2Vz
c0ZyYW1lTmF2aWdhdGVkKHJlc291cmNlVHJlZUZyYW1lKTsKLSAgICAgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCByZXNvdXJjZVRyZWVGcmFtZS5jaGlsZEZyYW1lcy5sZW5ndGg7ICsraSkKLSAgICAg
ICAgICAgIHRoaXMuX2ZyYW1lc05hdmlnYXRlZFJlY3Vyc2l2ZWx5KHJlc291cmNlVHJlZUZyYW1l
LmNoaWxkRnJhbWVzW2ldKTsgICAgICAgICAgICAKLSAgICB9LAotICAgIAotICAgIC8qKgotICAg
ICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLkV2ZW50fSBldmVudAotICAgICAqLwotICAgIF9mcmFt
ZU5hdmlnYXRlZDogZnVuY3Rpb24oZXZlbnQpCi0gICAgewotICAgICAgICB2YXIgcmVzb3VyY2VU
cmVlRnJhbWUgPSAvKiogQHR5cGUge1dlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVGcmFtZX0gKi8g
ZXZlbnQuZGF0YTsKLSAgICAgICAgdGhpcy5fcHJvY2Vzc0ZyYW1lTmF2aWdhdGVkKHJlc291cmNl
VHJlZUZyYW1lKTsKLSAgICB9LAotICAgIAotICAgIC8qKgotICAgICAqIEBwYXJhbSB7V2ViSW5z
cGVjdG9yLkV2ZW50fSBldmVudAotICAgICAqLwotICAgIF9mcmFtZURldGFjaGVkOiBmdW5jdGlv
bihldmVudCkKLSAgICB7Ci0gICAgICAgIHZhciByZXNvdXJjZVRyZWVGcmFtZSA9IC8qKiBAdHlw
ZSB7V2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZUZyYW1lfSAqLyBldmVudC5kYXRhOwotICAgICAg
ICB0aGlzLl9vcmlnaW5SZW1vdmVkRnJvbUZyYW1lKHJlc291cmNlVHJlZUZyYW1lLmlkKTsKLSAg
ICB9LAotCi0gICAgX3Jlc2V0OiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICB0aGlzLl9zZWN1
cml0eU9yaWdpbkJ5RnJhbWVJZCA9IHt9OwotICAgICAgICB0aGlzLl9mcmFtZUlkc0J5U2VjdXJp
dHlPcmlnaW4gPSB7fTsKLSAgICAgICAgdGhpcy5fZGF0YWJhc2VOYW1lc0J5U2VjdXJpdHlPcmln
aW4gPSB7fTsKLSAgICAgICAgLy8gRklYTUU6IGRpc3BhdGNoIGV2ZW50cz8KLSAgICB9LAotICAg
IAotICAgIC8qKgotICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZUZyYW1l
fSByZXNvdXJjZVRyZWVGcmFtZQotICAgICAqLwotICAgIF9wcm9jZXNzRnJhbWVOYXZpZ2F0ZWQ6
IGZ1bmN0aW9uKHJlc291cmNlVHJlZUZyYW1lKQotICAgIHsKLSAgICAgICAgaWYgKHJlc291cmNl
VHJlZUZyYW1lLnNlY3VyaXR5T3JpZ2luID09PSAibnVsbCIpCi0gICAgICAgICAgICByZXR1cm47
Ci0gICAgICAgIGlmICh0aGlzLl9mcmFtZUlkc0J5U2VjdXJpdHlPcmlnaW5bcmVzb3VyY2VUcmVl
RnJhbWUuc2VjdXJpdHlPcmlnaW5dKQotICAgICAgICAgICAgdGhpcy5fb3JpZ2luQWRkZWRUb0Zy
YW1lKHJlc291cmNlVHJlZUZyYW1lLmlkLCByZXNvdXJjZVRyZWVGcmFtZS5zZWN1cml0eU9yaWdp
bik7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHRoaXMuX2xvYWREYXRhYmFzZU5hbWVzRm9y
RnJhbWUocmVzb3VyY2VUcmVlRnJhbWUuaWQpOwotICAgIH0sCi0gICAgCi0gICAgLyoqCi0gICAg
ICogQHBhcmFtIHtzdHJpbmd9IGZyYW1lSWQKLSAgICAgKiBAcGFyYW0ge3N0cmluZ30gc2VjdXJp
dHlPcmlnaW4KLSAgICAgKi8KLSAgICBfb3JpZ2luQWRkZWRUb0ZyYW1lOiBmdW5jdGlvbihmcmFt
ZUlkLCBzZWN1cml0eU9yaWdpbikKLSAgICB7Ci0gICAgICAgIGlmICghdGhpcy5fZnJhbWVJZHNC
eVNlY3VyaXR5T3JpZ2luW3NlY3VyaXR5T3JpZ2luXSkgewotICAgICAgICAgICAgdGhpcy5fZnJh
bWVJZHNCeVNlY3VyaXR5T3JpZ2luW3NlY3VyaXR5T3JpZ2luXSA9IFtdOwotICAgICAgICAgICAg
dGhpcy5fZnJhbWVJZHNCeVNlY3VyaXR5T3JpZ2luW3NlY3VyaXR5T3JpZ2luXS5wdXNoKGZyYW1l
SWQpOwotICAgICAgICAgICAgdGhpcy5fZGF0YWJhc2VOYW1lc0J5U2VjdXJpdHlPcmlnaW5bc2Vj
dXJpdHlPcmlnaW5dID0gW107Ci0gICAgICAgICAgICAvLyBGSVhNRTogZGlzcGF0Y2ggb3JpZ2lu
IGFkZGVkIGV2ZW50LgotICAgICAgICB9Ci0gICAgICAgIHRoaXMuX3NlY3VyaXR5T3JpZ2luQnlG
cmFtZUlkW2ZyYW1lSWRdID0gc2VjdXJpdHlPcmlnaW47Ci0gICAgfSwKLSAgICAKLSAgICAvKioK
LSAgICAgKiBAcGFyYW0ge3N0cmluZ30gZnJhbWVJZAotICAgICAqLwotICAgIF9vcmlnaW5SZW1v
dmVkRnJvbUZyYW1lOiBmdW5jdGlvbihmcmFtZUlkKQotICAgIHsKLSAgICAgICAgdmFyIGN1cnJl
bnRTZWN1cml0eU9yaWdpbiA9IHRoaXMuX3NlY3VyaXR5T3JpZ2luQnlGcmFtZUlkW2ZyYW1lSWRd
OwotICAgICAgICBpZiAoIWN1cnJlbnRTZWN1cml0eU9yaWdpbikKLSAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgCi0gICAgICAgIGRlbGV0ZSB0aGlzLl9zZWN1cml0eU9yaWdpbkJ5RnJhbWVJ
ZFtmcmFtZUlkXTsKLQotICAgICAgICB2YXIgZnJhbWVJZHNGb3JPcmlnaW4gPSB0aGlzLl9mcmFt
ZUlkc0J5U2VjdXJpdHlPcmlnaW5bY3VycmVudFNlY3VyaXR5T3JpZ2luXTsKLSAgICAgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCBmcmFtZUlkc0Zvck9yaWdpbjsgKytpKSB7Ci0gICAgICAgICAgICBp
ZiAoZnJhbWVJZHNGb3JPcmlnaW5baV0gPT09IGZyYW1lSWQpIHsKLSAgICAgICAgICAgICAgICBm
cmFtZUlkc0Zvck9yaWdpbi5zcGxpY2UoaSwgMSk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCFmcmFtZUlkc0Zvck9yaWdpbi5s
ZW5ndGgpCi0gICAgICAgICAgICB0aGlzLl9vcmlnaW5SZW1vdmVkKGN1cnJlbnRTZWN1cml0eU9y
aWdpbik7Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzZWN1cml0
eU9yaWdpbgotICAgICAqLwotICAgIF9vcmlnaW5SZW1vdmVkOiBmdW5jdGlvbihzZWN1cml0eU9y
aWdpbikKLSAgICB7Ci0gICAgICAgIHZhciBmcmFtZUlkc0Zvck9yaWdpbiA9IHRoaXMuX2ZyYW1l
SWRzQnlTZWN1cml0eU9yaWdpbltzZWN1cml0eU9yaWdpbl07Ci0gICAgICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgZnJhbWVJZHNGb3JPcmlnaW47ICsraSkKLSAgICAgICAgICAgIGRlbGV0ZSB0aGlz
Ll9zZWN1cml0eU9yaWdpbkJ5RnJhbWVJZFtmcmFtZUlkc0Zvck9yaWdpbltpXV0KLSAgICAgICAg
ZGVsZXRlIHRoaXMuX2ZyYW1lSWRzQnlTZWN1cml0eU9yaWdpbltzZWN1cml0eU9yaWdpbl07Ci0g
ICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5fZGF0YWJhc2VOYW1lc0J5U2VjdXJpdHlP
cmlnaW5bc2VjdXJpdHlPcmlnaW5dOyArK2kpCi0gICAgICAgICAgICB0aGlzLl9kYXRhYmFzZVJl
bW92ZWQoc2VjdXJpdHlPcmlnaW4sIHRoaXMuX2RhdGFiYXNlTmFtZXNCeVNlY3VyaXR5T3JpZ2lu
W3NlY3VyaXR5T3JpZ2luXVtpXSk7ICAgICAgICAgICAgICAgIAotICAgICAgICBkZWxldGUgdGhp
cy5fZGF0YWJhc2VOYW1lc0J5U2VjdXJpdHlPcmlnaW5bc2VjdXJpdHlPcmlnaW5dOwotICAgICAg
ICAvLyBGSVhNRTogZGlzcGF0Y2ggb3JpZ2luIHJlbW92ZWQgZXZlbnQuCi0gICAgfSwKLQotICAg
IC8qKgotICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzZWN1cml0eU9yaWdpbgotICAgICAqIEBwYXJh
bSB7QXJyYXkuPHN0cmluZz59IGRhdGFiYXNlTmFtZXMKLSAgICAgKi8KLSAgICBfdXBkYXRlT3Jp
Z2luRGF0YWJhc2VOYW1lczogZnVuY3Rpb24oc2VjdXJpdHlPcmlnaW4sIGRhdGFiYXNlTmFtZXMp
Ci0gICAgewotICAgICAgICB2YXIgbmV3RGF0YWJhc2VOYW1lcyA9IHt9OwotICAgICAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IGRhdGFiYXNlTmFtZXMubGVuZ3RoOyArK2kpCi0gICAgICAgICAgICBu
ZXdEYXRhYmFzZU5hbWVzW2RhdGFiYXNlTmFtZXNbaV1dID0gdHJ1ZTsKLSAgICAgICAgdmFyIG9s
ZERhdGFiYXNlTmFtZXMgPSB7fTsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLl9k
YXRhYmFzZU5hbWVzQnlTZWN1cml0eU9yaWdpbltzZWN1cml0eU9yaWdpbl0ubGVuZ3RoOyArK2kp
Ci0gICAgICAgICAgICBvbGREYXRhYmFzZU5hbWVzW2RhdGFiYXNlTmFtZXNbaV1dID0gdHJ1ZTsK
LSAgICAgICAgCi0gICAgICAgIHRoaXMuX2RhdGFiYXNlTmFtZXNCeVNlY3VyaXR5T3JpZ2luW3Nl
Y3VyaXR5T3JpZ2luXSA9IGRhdGFiYXNlTmFtZXM7Ci0gICAgICAgIAotICAgICAgICBmb3IgKHZh
ciBkYXRhYmFzZU5hbWUgaW4gb2xkRGF0YWJhc2VOYW1lcykgewotICAgICAgICAgICAgaWYgKCFu
ZXdEYXRhYmFzZU5hbWVzW2RhdGFiYXNlTmFtZV0pCi0gICAgICAgICAgICAgICAgdGhpcy5fZGF0
YWJhc2VSZW1vdmVkKHNlY3VyaXR5T3JpZ2luLCBkYXRhYmFzZU5hbWUpOwotICAgICAgICB9Ci0g
ICAgICAgIGZvciAodmFyIGRhdGFiYXNlTmFtZSBpbiBuZXdEYXRhYmFzZU5hbWVzKSB7Ci0gICAg
ICAgICAgICBpZiAoIW9sZERhdGFiYXNlTmFtZXNbZGF0YWJhc2VOYW1lXSkKLSAgICAgICAgICAg
ICAgICB0aGlzLl9kYXRhYmFzZUFkZGVkKHNlY3VyaXR5T3JpZ2luLCBkYXRhYmFzZU5hbWUpOwot
ICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBpZiAoIXRoaXMuX2RhdGFiYXNlTmFtZXNCeVNl
Y3VyaXR5T3JpZ2luW3NlY3VyaXR5T3JpZ2luXS5sZW5ndGgpCi0gICAgICAgICAgICB0aGlzLl9v
cmlnaW5SZW1vdmVkKHNlY3VyaXR5T3JpZ2luKTsKLSAgICB9LAotICAgIAotICAgIC8qKgotICAg
ICAqIEBwYXJhbSB7c3RyaW5nfSBzZWN1cml0eU9yaWdpbgotICAgICAqIEBwYXJhbSB7c3RyaW5n
fSBkYXRhYmFzZU5hbWUKLSAgICAgKi8KLSAgICBfZGF0YWJhc2VBZGRlZDogZnVuY3Rpb24oc2Vj
dXJpdHlPcmlnaW4sIGRhdGFiYXNlTmFtZSkKLSAgICB7Ci0gICAgICAgIC8vIEZJWE1FOiBkaXNw
YXRjaCBkYXRhYmFzZSBhZGRlZCBldmVudC4KLSAgICB9LAotICAgIAotICAgIC8qKgotICAgICAq
IEBwYXJhbSB7c3RyaW5nfSBzZWN1cml0eU9yaWdpbgotICAgICAqIEBwYXJhbSB7c3RyaW5nfSBk
YXRhYmFzZU5hbWUKLSAgICAgKi8KLSAgICBfZGF0YWJhc2VSZW1vdmVkOiBmdW5jdGlvbihzZWN1
cml0eU9yaWdpbiwgZGF0YWJhc2VOYW1lKQotICAgIHsKLSAgICAgICAgLy8gRklYTUU6IGRpc3Bh
dGNoIGRhdGFiYXNlIHJlbW92ZWQgZXZlbnQuCi0gICAgfSwKLQotICAgIC8qKgotICAgICAqIEBw
YXJhbSB7SW5kZXhlZERCQWdlbnQuRnJhbWVXaXRoRGF0YWJhc2VOYW1lc30gZnJhbWVXaXRoRGF0
YWJhc2VOYW1lcwotICAgICAqLwotICAgIF9kYXRhYmFzZU5hbWVzTG9hZGVkOiBmdW5jdGlvbihm
cmFtZVdpdGhEYXRhYmFzZU5hbWVzKQotICAgIHsKLSAgICAgICAgLy8gRklYTUU6IFdlIHNob3Vs
ZCBpbXBsZW1lbnQgZXZlbnRzIG9yZGVyLCBzbyB0aGF0IHdlIGNvdWxkIG5vdCB1cGRhdGUgZGF0
YWJhc2VOYW1lcyBmb3IgYSBmcmFtZSB0aGF0IHdhcyBhbHJlYWR5IGRldGFjaGVkLgotICAgICAg
ICAKLSAgICAgICAgdmFyIGRhdGFiYXNlTmFtZXMgPSBmcmFtZVdpdGhEYXRhYmFzZU5hbWVzLmRh
dGFiYXNlTmFtZXM7Ci0gICAgICAgIHZhciBvbGRTZWN1cml0eU9yaWdpbiA9IHRoaXMuX3NlY3Vy
aXR5T3JpZ2luQnlGcmFtZUlkW2ZyYW1lV2l0aERhdGFiYXNlTmFtZXMuZnJhbWVJZF07Ci0gICAg
ICAgIGlmIChvbGRTZWN1cml0eU9yaWdpbiAmJiBvbGRTZWN1cml0eU9yaWdpbiA9PT0gZnJhbWVX
aXRoRGF0YWJhc2VOYW1lcy5zZWN1cml0eU9yaWdpbikKLSAgICAgICAgICAgIHRoaXMuX3VwZGF0
ZU9yaWdpbkRhdGFiYXNlTmFtZXMoZnJhbWVXaXRoRGF0YWJhc2VOYW1lcy5zZWN1cml0eU9yaWdp
biwgZnJhbWVXaXRoRGF0YWJhc2VOYW1lcy5kYXRhYmFzZU5hbWVzKTsKLSAgICAgICAgZWxzZSB7
Ci0gICAgICAgICAgICB0aGlzLl9vcmlnaW5SZW1vdmVkRnJvbUZyYW1lKGZyYW1lV2l0aERhdGFi
YXNlTmFtZXMuZnJhbWVJZCk7Ci0gICAgICAgICAgICB0aGlzLl9vcmlnaW5BZGRlZFRvRnJhbWUo
ZnJhbWVXaXRoRGF0YWJhc2VOYW1lcy5mcmFtZUlkLCBmcmFtZVdpdGhEYXRhYmFzZU5hbWVzLnNl
Y3VyaXR5T3JpZ2luKTsKLSAgICAgICAgICAgIHRoaXMuX3VwZGF0ZU9yaWdpbkRhdGFiYXNlTmFt
ZXMoZnJhbWVXaXRoRGF0YWJhc2VOYW1lcy5zZWN1cml0eU9yaWdpbiwgZnJhbWVXaXRoRGF0YWJh
c2VOYW1lcy5kYXRhYmFzZU5hbWVzKTsKLSAgICAgICAgfQotICAgIH0sCi0KLSAgICBfbG9hZERh
dGFiYXNlTmFtZXNGb3JGcmFtZTogZnVuY3Rpb24oZnJhbWVJZCkKLSAgICB7Ci0gICAgICAgIGZ1
bmN0aW9uIGNhbGxiYWNrKGVycm9yKQotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoZXJyb3Ip
IHsKLSAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCJJbmRleGVkREJBZ2VudCBlcnJvcjog
IiArIGVycm9yKTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgIH0KLSAgICAgICAgCi0gICAgICAgIEluZGV4ZWREQkFnZW50LnJlcXVlc3REYXRhYmFzZU5h
bWVzRm9yRnJhbWUoZnJhbWVJZCwgY2FsbGJhY2spOwotICAgIH0KLX0KLQotV2ViSW5zcGVjdG9y
LkluZGV4ZWREQk1vZGVsLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuT2JqZWN0
LnByb3RvdHlwZTsKLQotLyoqCi0gKiBAY29uc3RydWN0b3IKLSAqIEBpbXBsZW1lbnRzIHtJbmRl
eGVkREJBZ2VudC5EaXNwYXRjaGVyfQotICovCi1XZWJJbnNwZWN0b3IuSW5kZXhlZERCRGlzcGF0
Y2hlciA9IGZ1bmN0aW9uKGluZGV4ZWREQk1vZGVsKQotewotICAgIHRoaXMuX2luZGV4ZWREQk1v
ZGVsID0gaW5kZXhlZERCTW9kZWw7Ci19Ci0KLVdlYkluc3BlY3Rvci5JbmRleGVkREJEaXNwYXRj
aGVyLl9jYWxsYmFja3MgPSB7fTsKLQotV2ViSW5zcGVjdG9yLkluZGV4ZWREQkRpc3BhdGNoZXIu
cHJvdG90eXBlID0gewotICAgIC8qKgotICAgICAqIEBwYXJhbSB7SW5kZXhlZERCQWdlbnQuRnJh
bWVXaXRoRGF0YWJhc2VOYW1lc30gZnJhbWVXaXRoRGF0YWJhc2VOYW1lcwotICAgICAqLwotICAg
IGRhdGFiYXNlTmFtZXNMb2FkZWQ6IGZ1bmN0aW9uKGZyYW1lV2l0aERhdGFiYXNlTmFtZXMpCi0g
ICAgewotICAgICAgICB0aGlzLl9pbmRleGVkREJNb2RlbC5fZGF0YWJhc2VOYW1lc0xvYWRlZChm
cmFtZVdpdGhEYXRhYmFzZU5hbWVzKTsKLSAgICB9Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlVHJlZU1vZGVsLmpzIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVRyZWVNb2RlbC5qcwppbmRleCA4OWMx
Zjg1Nzc5YzcyZTg4N2Y4NjMxZDYyYmFhMDZlODI2NWYzMmM1Li5hNjU1NDg0M2M0MjY4ODAzOWNl
YmJhNDEyNjBmM2QzMzA1NjM3MDFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1Jlc291cmNlVHJlZU1vZGVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VUcmVlTW9kZWwuanMKQEAgLTQxMSw3ICs0MTEsNiBA
QCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlRnJhbWUgPSBmdW5jdGlvbihtb2RlbCwgcGFyZW50
RnJhbWUsIHBheWxvYWQpCiAgICAgdGhpcy5fbG9hZGVySWQgPSBwYXlsb2FkLmxvYWRlcklkOwog
ICAgIHRoaXMuX25hbWUgPSBwYXlsb2FkLm5hbWU7CiAgICAgdGhpcy5fdXJsID0gcGF5bG9hZC51
cmw7Ci0gICAgdGhpcy5fc2VjdXJpdHlPcmlnaW4gPSBwYXlsb2FkLnNlY3VyaXR5T3JpZ2luOwog
ICAgIHRoaXMuX21pbWVUeXBlID0gcGF5bG9hZC5taW1lVHlwZTsKIAogICAgIC8qKgpAQCAtNDMw
LDcgKzQyOSw3IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVGcmFtZSA9IGZ1bmN0aW9uKG1v
ZGVsLCBwYXJlbnRGcmFtZSwgcGF5bG9hZCkKIAogV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZUZy
YW1lLnByb3RvdHlwZSA9IHsKICAgICAvKioKLSAgICAgKiBAdHlwZSB7c3RyaW5nfQorICAgICAq
IEByZXR1cm4ge3N0cmluZ30KICAgICAgKi8KICAgICBnZXQgaWQoKQogICAgIHsKQEAgLTQzOCw3
ICs0MzcsNyBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlRnJhbWUucHJvdG90eXBlID0gewog
ICAgIH0sCiAKICAgICAvKioKLSAgICAgKiBAdHlwZSB7c3RyaW5nfQorICAgICAqIEByZXR1cm4g
e3N0cmluZ30KICAgICAgKi8KICAgICBnZXQgbmFtZSgpCiAgICAgewpAQCAtNDQ2LDcgKzQ0NSw3
IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVGcmFtZS5wcm90b3R5cGUgPSB7CiAgICAgfSwK
IAogICAgIC8qKgotICAgICAqIEB0eXBlIHtzdHJpbmd9CisgICAgICogQHJldHVybiB7c3RyaW5n
fQogICAgICAqLwogICAgIGdldCB1cmwoKQogICAgIHsKQEAgLTQ1NCwxNSArNDUzLDcgQEAgV2Vi
SW5zcGVjdG9yLlJlc291cmNlVHJlZUZyYW1lLnByb3RvdHlwZSA9IHsKICAgICB9LAogCiAgICAg
LyoqCi0gICAgICogQHR5cGUge3N0cmluZ30KLSAgICAgKi8KLSAgICBnZXQgc2VjdXJpdHlPcmln
aW4oKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3NlY3VyaXR5T3JpZ2luOwotICAgIH0s
Ci0KLSAgICAvKioKLSAgICAgKiBAdHlwZSB7c3RyaW5nfQorICAgICAqIEByZXR1cm4ge3N0cmlu
Z30KICAgICAgKi8KICAgICBnZXQgbG9hZGVySWQoKQogICAgIHsKQEAgLTQ3MCw3ICs0NjEsNyBA
QCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlRnJhbWUucHJvdG90eXBlID0gewogICAgIH0sCiAK
ICAgICAvKioKLSAgICAgKiBAdHlwZSB7V2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZUZyYW1lfQor
ICAgICAqIEByZXR1cm4ge1dlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVGcmFtZX0KICAgICAgKi8K
ICAgICBnZXQgcGFyZW50RnJhbWUoKQogICAgIHsKQEAgLTQ3OCw3ICs0NjksNyBAQCBXZWJJbnNw
ZWN0b3IuUmVzb3VyY2VUcmVlRnJhbWUucHJvdG90eXBlID0gewogICAgIH0sCiAKICAgICAvKioK
LSAgICAgKiBAdHlwZSB7QXJyYXkuPFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVGcmFtZT59Cisg
ICAgICogQHJldHVybiB7QXJyYXkuPFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVGcmFtZT59CiAg
ICAgICovCiAgICAgZ2V0IGNoaWxkRnJhbWVzKCkKICAgICB7CkBAIC01MDEsNyArNDkyLDYgQEAg
V2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZUZyYW1lLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhp
cy5fbG9hZGVySWQgPSBmcmFtZVBheWxvYWQubG9hZGVySWQ7CiAgICAgICAgIHRoaXMuX25hbWUg
PSBmcmFtZVBheWxvYWQubmFtZTsKICAgICAgICAgdGhpcy5fdXJsID0gZnJhbWVQYXlsb2FkLnVy
bDsKLSAgICAgICAgdGhpcy5fc2VjdXJpdHlPcmlnaW4gPSBmcmFtZVBheWxvYWQuc2VjdXJpdHlP
cmlnaW47CiAgICAgICAgIHRoaXMuX21pbWVUeXBlID0gZnJhbWVQYXlsb2FkLm1pbWVUeXBlOwog
CiAgICAgICAgIHZhciBtYWluUmVzb3VyY2UgPSB0aGlzLl9yZXNvdXJjZXNNYXBbdGhpcy5fdXJs
XTsKQEAgLTUxMiw3ICs1MDIsNyBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlRnJhbWUucHJv
dG90eXBlID0gewogICAgIH0sCiAKICAgICAvKioKLSAgICAgKiBAdHlwZSB7V2ViSW5zcGVjdG9y
LlJlc291cmNlfQorICAgICAqIEByZXR1cm4ge1dlYkluc3BlY3Rvci5SZXNvdXJjZX0KICAgICAg
Ki8KICAgICBnZXQgbWFpblJlc291cmNlKCkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmMKaW5kZXggMTY3NmU4MTMyNjc2NGZhNDlmMDcyNGZj
NDNkNGZjYjU4ZTcyMmFjMy4uNjY0MjVjNzc3NTJmMjI0ZDE3OTAzMGVkOTg3MWZmOTg3NGZlZDBk
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XZWJLaXQu
cXJjCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV2ViS2l0LnFyYwpA
QCAtNjUsNyArNjUsNiBAQAogICAgIDxmaWxlPkhlYXBTbmFwc2hvdFdvcmtlckRpc3BhdGNoZXIu
anM8L2ZpbGU+CiAgICAgPGZpbGU+SGVscFNjcmVlbi5qczwvZmlsZT4KICAgICA8ZmlsZT5JbWFn
ZVZpZXcuanM8L2ZpbGU+Ci0gICAgPGZpbGU+SW5kZXhlZERCTW9kZWwuanM8L2ZpbGU+CiAgICAg
PGZpbGU+SW5qZWN0ZWRGYWtlV29ya2VyLmpzPC9maWxlPgogICAgIDxmaWxlPmluc3BlY3Rvci5q
czwvZmlsZT4KICAgICA8ZmlsZT5JbnNwZWN0b3JCYWNrZW5kLmpzPC9maWxlPgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0bWwKaW5kZXggYWQz
ODQ2NTFkMWU3OWRmODVhNTk2OTNjNjlmM2Y0MzFlNGQ5NDMyZS4uNTBlOTE5YWRkYjlkMGVhNjZk
YmFlNTRjNDNjNGZmZDRlMDUxNmFmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sCkBAIC04MSw3ICs4MSw2IEBAIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAg
ICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iQ29va2llSXRlbXNWaWV3Lmpz
Ij48L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJBcHBs
aWNhdGlvbkNhY2hlTW9kZWwuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBzcmM9IkFwcGxpY2F0aW9uQ2FjaGVJdGVtc1ZpZXcuanMiPjwvc2NyaXB0Pgot
ICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IkluZGV4ZWREQk1vZGVsLmpz
Ij48L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJTY3Jp
cHQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9
IlNpZGViYXJQYW5lLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCIgc3JjPSJFbGVtZW50c1RyZWVPdXRsaW5lLmpzIj48L3NjcmlwdD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>