<?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>55332</bug_id>
          
          <creation_ts>2011-02-27 14:24:01 -0800</creation_ts>
          <short_desc>Use String instead of CString as return value of openTemporaryFile</short_desc>
          <delta_ts>2011-03-28 22:47:37 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Patrick R. Gansterer">paroga</reporter>
          <assigned_to name="Patrick R. Gansterer">paroga</assigned_to>
          <cc>abarth</cc>
    
    <cc>andersca</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>eric</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>358781</commentid>
    <comment_count>0</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2011-02-27 14:24:01 -0800</bug_when>
    <thetext>Use String instead of CString as return value of openTemporaryFile</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>358782</commentid>
    <comment_count>1</comment_count>
      <attachid>83995</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2011-02-27 14:28:22 -0800</bug_when>
    <thetext>Created attachment 83995
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>358789</commentid>
    <comment_count>2</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-02-27 14:45:51 -0800</bug_when>
    <thetext>Attachment 83995 did not build on qt:
Build output: http://queues.webkit.org/results/8075093</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>358790</commentid>
    <comment_count>3</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-02-27 14:46:34 -0800</bug_when>
    <thetext>Attachment 83995 did not build on win:
Build output: http://queues.webkit.org/results/8023029</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>358796</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-27 15:10:28 -0800</bug_when>
    <thetext>Attachment 83995 did not build on mac:
Build output: http://queues.webkit.org/results/8070199</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>358799</commentid>
    <comment_count>5</comment_count>
      <attachid>83997</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2011-02-27 15:15:55 -0800</bug_when>
    <thetext>Created attachment 83997
Patch

Fixed EWS failures</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>358803</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-27 15:24:21 -0800</bug_when>
    <thetext>Attachment 83997 did not build on mac:
Build output: http://queues.webkit.org/results/8076073</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>358809</commentid>
    <comment_count>7</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-02-27 15:48:25 -0800</bug_when>
    <thetext>Attachment 83997 did not build on qt:
Build output: http://queues.webkit.org/results/8071163</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>358821</commentid>
    <comment_count>8</comment_count>
      <attachid>84005</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2011-02-27 17:08:44 -0800</bug_when>
    <thetext>Created attachment 84005
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>374581</commentid>
    <comment_count>9</comment_count>
      <attachid>84005</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-03-28 10:16:22 -0700</bug_when>
    <thetext>Comment on attachment 84005
Patch

Rejecting attachment 84005 from commit-queue.

Failed to run &quot;[&apos;./Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=cr-jail-4&apos;, &apos;apply-...&quot; exit_code: 1

Last 500 characters of output:
autoinstalled/mechanize/_urllib2_fork.py&quot;, line 332, in _call_chain
    result = func(*args)
  File &quot;/mnt/git/webkit-commit-queue/Tools/Scripts/webkitpy/thirdparty/autoinstalled/mechanize/_urllib2_fork.py&quot;, line 1170, in https_open
    return self.do_open(conn_factory, req)
  File &quot;/mnt/git/webkit-commit-queue/Tools/Scripts/webkitpy/thirdparty/autoinstalled/mechanize/_urllib2_fork.py&quot;, line 1118, in do_open
    raise URLError(err)
urllib2.URLError: &lt;urlopen error [Errno 60] Operation timed out&gt;

Full output: http://queues.webkit.org/results/8279048</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>375007</commentid>
    <comment_count>10</comment_count>
      <attachid>84005</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-03-28 22:29:37 -0700</bug_when>
    <thetext>Comment on attachment 84005
Patch

Clearing flags on attachment: 84005

Committed r82193: &lt;http://trac.webkit.org/changeset/82193&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>375008</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-03-28 22:29:43 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>375019</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-28 22:47:37 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/82193 might have broken WinCE Release (Build)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83995</attachid>
            <date>2011-02-27 14:28:22 -0800</date>
            <delta_ts>2011-02-27 15:15:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-55332-20110227232819.patch</filename>
            <type>text/plain</type>
            <size>19587</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzk4MjkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1ODBlZjlkOTYwZDEzMWNj
YjMxNGUzMWIxMjcyMzBkZmU5M2IxMmM4Li5iNGJhZDM4Zjg2N2Q1Yjc0MGE4Mzc4MjMzMTMwZDJh
NmIwZTNjMzAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTEtMDItMjcgIFBhdHJp
Y2sgR2Fuc3RlcmVyICA8cGFyb2dhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIFN0cmluZyBpbnN0ZWFkIG9mIENTdHJpbmcg
YXMgcmV0dXJuIHZhbHVlIG9mIG9wZW5UZW1wb3JhcnlGaWxlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NTMzMgorCisgICAgICAgIFdlIHVzdWFsbHkg
c3RvcmUgYWxsIHBhdGhzIGFzIFVURi0xNi4gRG8gdGhpcyBmb3IgdGVtcG9yYXJ5IGZpbGVzIHRv
by4KKworICAgICAgICAqIHBsYXRmb3JtL0ZpbGVTeXN0ZW0uaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9hbmRyb2lkL0ZpbGVTeXN0ZW1BbmRyb2lkLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9icmV3
L0ZpbGVTeXN0ZW1CcmV3LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvRmlsZVN5c3RlbUVm
bC5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL0ZpbGVTeXN0ZW1HdGsuY3BwOgorICAgICAg
ICAqIHBsYXRmb3JtL2hhaWt1L0ZpbGVTeXN0ZW1IYWlrdS5jcHA6CisgICAgICAgICogcGxhdGZv
cm0vbWFjL0ZpbGVTeXN0ZW1NYWMubW06CisgICAgICAgICogcGxhdGZvcm0vcXQvRmlsZVN5c3Rl
bVF0LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vRmlsZVN5c3RlbVdpbi5jcHA6CisgICAg
ICAgICogcGxhdGZvcm0vd2luY2UvRmlsZVN5c3RlbVdpbkNFLmNwcDoKKyAgICAgICAgKiBwbGF0
Zm9ybS93eC9GaWxlU3lzdGVtV3guY3BwOgorICAgICAgICAqIHBsdWdpbnMvUGx1Z2luU3RyZWFt
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblN0cmVhbTo6ZGVzdHJveVN0cmVhbSk6Cisg
ICAgICAgICogcGx1Z2lucy9QbHVnaW5TdHJlYW0uaDoKKwogMjAxMS0wMi0yNyAgQmVuamFtaW4g
UG91bGFpbiAgPGJlbmphbWluLnBvdWxhaW5Abm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IEFuZHJlYXMgS2xpbmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9G
aWxlU3lzdGVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmgKaW5kZXgg
OGI3ZDBmMDRkZWE1ODdmZTVmYTk4ZDZmNTc1MGExZjEyNThlYjEwZS4uNDlhNzhlOGQ4NjFiMzEy
OWEwYjUwMGQyNmYxZDQ3M2ZkNDhmZGY1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vRmlsZVN5c3RlbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0
ZW0uaApAQCAtMTcyLDcgKzE3Miw3IEBAIENTdHJpbmcgZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9u
KGNvbnN0IFN0cmluZyYpOwogaW5saW5lIGJvb2wgaXNIYW5kbGVWYWxpZChjb25zdCBQbGF0Zm9y
bUZpbGVIYW5kbGUmIGhhbmRsZSkgeyByZXR1cm4gaGFuZGxlICE9IGludmFsaWRQbGF0Zm9ybUZp
bGVIYW5kbGU7IH0KIAogLy8gUHJlZml4IGlzIHdoYXQgdGhlIGZpbGVuYW1lIHNob3VsZCBiZSBw
cmVmaXhlZCB3aXRoLCBub3QgdGhlIGZ1bGwgcGF0aC4KLUNTdHJpbmcgb3BlblRlbXBvcmFyeUZp
bGUoY29uc3QgY2hhciogcHJlZml4LCBQbGF0Zm9ybUZpbGVIYW5kbGUmKTsKK1N0cmluZyBvcGVu
VGVtcG9yYXJ5RmlsZShjb25zdCBTdHJpbmcmIHByZWZpeCwgUGxhdGZvcm1GaWxlSGFuZGxlJik7
CiBQbGF0Zm9ybUZpbGVIYW5kbGUgb3BlbkZpbGUoY29uc3QgU3RyaW5nJiBwYXRoLCBGaWxlT3Bl
bk1vZGUpOwogdm9pZCBjbG9zZUZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlJik7CiAvLyBSZXR1cm5z
IHRoZSByZXN1bHRpbmcgb2Zmc2V0IGZyb20gdGhlIGJlZ2lubmluZyBvZiB0aGUgZmlsZSBpZiBz
dWNjZXNzZnVsLCAtMSBvdGhlcndpc2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hbmRyb2lkL0ZpbGVTeXN0ZW1BbmRyb2lkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2FuZHJvaWQvRmlsZVN5c3RlbUFuZHJvaWQuY3BwCmluZGV4IGFjZTA1ZTQwMGM4ZjZjZTJj
OTc2ZjZlYjE2YmI1YjNmMTFhNjc4ZTcuLjlkYmE0MmE5YjYzNzllNzc0YTAyZmE5ZTI2ZTBmN2Qw
ZjI0NzVmMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2FuZHJvaWQvRmls
ZVN5c3RlbUFuZHJvaWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2FuZHJvaWQv
RmlsZVN5c3RlbUFuZHJvaWQuY3BwCkBAIC00OCwyNiArNDgsMjUgQEAgQ1N0cmluZyBmaWxlU3lz
dGVtUmVwcmVzZW50YXRpb24oY29uc3QgU3RyaW5nJiBwYXRoKQogICAgIHJldHVybiBwYXRoLnV0
ZjgoKTsKIH0KIAotQ1N0cmluZyBvcGVuVGVtcG9yYXJ5RmlsZShjb25zdCBjaGFyKiBwcmVmaXgs
IFBsYXRmb3JtRmlsZUhhbmRsZSYgaGFuZGxlKQorU3RyaW5nIG9wZW5UZW1wb3JhcnlGaWxlKGNv
bnN0IFN0cmluZyYgcHJlZml4LCBQbGF0Zm9ybUZpbGVIYW5kbGUmIGhhbmRsZSkKIHsKICAgICBp
bnQgbnVtYmVyID0gcmFuZCgpICUgMTAwMDAgKyAxOwotICAgIENTdHJpbmcgZmlsZW5hbWU7Cisg
ICAgU3RyaW5nIGZpbGVuYW1lOwogICAgIGRvIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWls
ZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChzUGx1Z2luUGF0aCk7CiAgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKCcvJyk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHByZWZpeCk7CiAgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKFN0cmluZzo6bnVtYmVyKG51bWJlcikpOwotICAgICAgICBmaWxlbmFt
ZSA9IGJ1aWxkZXIudG9TdHJpbmcoKS51dGY4KCk7Ci0gICAgICAgIGNvbnN0IGNoYXIqIGZzdHIg
PSBmaWxlbmFtZS5kYXRhKCk7Ci0gICAgICAgIGhhbmRsZSA9IG9wZW4oZmlsZW5hbWUuZGF0YSgp
LCBPX1dST05MWSB8IE9fQ1JFQVQgfCBPX0VYQ0wsIFNfSVJVU1IgfCBTX0lXVVNSKTsKKyAgICAg
ICAgZmlsZW5hbWUgPSBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgIGhhbmRsZSA9IG9wZW4o
ZmlsZW5hbWUudXRmOCgpLmRhdGEoKSwgT19XUk9OTFkgfCBPX0NSRUFUIHwgT19FWENMLCBTX0lS
VVNSIHwgU19JV1VTUik7CiAgICAgICAgIG51bWJlcisrOwogICAgICAgICAKICAgICAgICAgaWYg
KGhhbmRsZSAhPSAtMSkKICAgICAgICAgICAgIHJldHVybiBmaWxlbmFtZTsKICAgICB9IHdoaWxl
IChlcnJubyA9PSBFRVhJU1QpOwogICAgIAotICAgIHJldHVybiBDU3RyaW5nKCk7CisgICAgcmV0
dXJuIFN0cmluZygpOwogfQogCiBib29sIHVubG9hZE1vZHVsZShQbGF0Zm9ybU1vZHVsZSBtb2R1
bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9icmV3L0ZpbGVTeXN0ZW1C
cmV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2JyZXcvRmlsZVN5c3RlbUJyZXcuY3Bw
CmluZGV4IDYxZDU2OGQyZmQ0MWZlY2U5ZGFmNjM4ODE0MzdiMTRlMDU3YTVhMTAuLjI1MWMwMDRk
MDNkMzIyZmI1ZTE5MTJkYjc1MGNkYzM3ZDIzYWY2ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2JyZXcvRmlsZVN5c3RlbUJyZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2JyZXcvRmlsZVN5c3RlbUJyZXcuY3BwCkBAIC0xODYsNyArMTg2LDcgQEAgU3Ry
aW5nIGRpcmVjdG9yeU5hbWUoY29uc3QgU3RyaW5nJiBwYXRoKQogICAgIHJldHVybiBkaXJOYW1l
OwogfQogCi1DU3RyaW5nIG9wZW5UZW1wb3JhcnlGaWxlKGNvbnN0IGNoYXIqIHByZWZpeCwgUGxh
dGZvcm1GaWxlSGFuZGxlJiBoYW5kbGUpCitTdHJpbmcgb3BlblRlbXBvcmFyeUZpbGUoY29uc3Qg
U3RyaW5nJiBwcmVmaXgsIFBsYXRmb3JtRmlsZUhhbmRsZSYgaGFuZGxlKQogewogICAgIC8vIEJS
RVcgZG9lcyBub3QgaGF2ZSBhIHN5c3RlbS13aWRlIHRlbXBvcmFyeSBkaXJlY3RvcnksCiAgICAg
Ly8gdXNlICJmczovfi90bXAiIGFzIG91ciB0ZW1wb3JhcnkgZGlyZWN0b3J5LgpAQCAtMTk5LDI0
ICsxOTksMjQgQEAgQ1N0cmluZyBvcGVuVGVtcG9yYXJ5RmlsZShjb25zdCBjaGFyKiBwcmVmaXgs
IFBsYXRmb3JtRmlsZUhhbmRsZSYgaGFuZGxlKQogCiAgICAgLy8gTG9vcCB1bnRpbCB3ZSBmaW5k
IGEgdGVtcG9yYXJ5IGZpbGVuYW1lIHRoYXQgZG9lcyBub3QgZXhpc3QuCiAgICAgaW50IG51bWJl
ciA9IHN0YXRpY19jYXN0PGludD4ocmFuZG9tTnVtYmVyKCkgKiAxMDAwMCk7Ci0gICAgQ1N0cmlu
ZyBmaWxlbmFtZTsKKyAgICBTdHJpbmcgZmlsZW5hbWU7CiAgICAgZG8gewogICAgICAgICBTdHJp
bmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHRlbXBQYXRoKTsKICAg
ICAgICAgYnVpbGRlci5hcHBlbmQoJy8nKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQocHJlZml4
KTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nOjpudW1iZXIobnVtYmVyKSk7Ci0gICAg
ICAgIGZpbGVuYW1lID0gYnVpbGRlci50b1N0cmluZygpLnV0ZjgoKTsKKyAgICAgICAgZmlsZW5h
bWUgPSBidWlsZGVyLnRvU3RyaW5nKCk7CiAgICAgICAgIG51bWJlcisrOwotICAgIH0gd2hpbGUg
KElGSUxFTUdSX1Rlc3QoZmlsZU1nci5nZXQoKSwgZmlsZW5hbWUuZGF0YSgpKSA9PSBTVUNDRVNT
KTsKKyAgICB9IHdoaWxlIChJRklMRU1HUl9UZXN0KGZpbGVNZ3IuZ2V0KCksIGZpbGVuYW1lLnV0
ZjgoKS5kYXRhKCkpID09IFNVQ0NFU1MpOwogCi0gICAgSUZpbGUqIHRlbXBGaWxlID0gSUZJTEVN
R1JfT3BlbkZpbGUoZmlsZU1nci5nZXQoKSwgZmlsZW5hbWUuZGF0YSgpLCBfT0ZNX0NSRUFURSk7
CisgICAgSUZpbGUqIHRlbXBGaWxlID0gSUZJTEVNR1JfT3BlbkZpbGUoZmlsZU1nci5nZXQoKSwg
ZmlsZW5hbWUudXRmOCgpLmRhdGEoKSwgX09GTV9DUkVBVEUpOwogICAgIGlmICh0ZW1wRmlsZSkg
ewogICAgICAgICBoYW5kbGUgPSB0ZW1wRmlsZTsKICAgICAgICAgcmV0dXJuIGZpbGVuYW1lOwog
ICAgIH0KIAotICAgIHJldHVybiBDU3RyaW5nKCk7CisgICAgcmV0dXJuIFN0cmluZygpOwogfQog
CiB2b2lkIGNsb3NlRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUmIGhhbmRsZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9GaWxlU3lzdGVtRWZsLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2VmbC9GaWxlU3lzdGVtRWZsLmNwcAppbmRleCBjYjExN2JjM2NlYTA5
MjBhZDQ0Mzk3NGYwZjk0ZTc2MmI0NmViMzYwLi4wMWM2YzY3MjZjODM2NmU0Zjg1ZDg3N2I2N2Qw
ZDc2MzEwNTVmNTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvRmls
ZVN5c3RlbUVmbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0ZpbGVTeXN0
ZW1FZmwuY3BwCkBAIC02Nyw3ICs2Nyw3IEBAIENTdHJpbmcgZmlsZVN5c3RlbVJlcHJlc2VudGF0
aW9uKGNvbnN0IFN0cmluZyYgcGF0aCkKICNlbmRpZgogfQogCi1DU3RyaW5nIG9wZW5UZW1wb3Jh
cnlGaWxlKGNvbnN0IGNoYXIqIHByZWZpeCwgUGxhdGZvcm1GaWxlSGFuZGxlJiBoYW5kbGUpCitT
dHJpbmcgb3BlblRlbXBvcmFyeUZpbGUoY29uc3QgU3RyaW5nJiBwcmVmaXgsIFBsYXRmb3JtRmls
ZUhhbmRsZSYgaGFuZGxlKQogewogICAgIGNoYXIgYnVmZmVyW1BBVEhfTUFYXTsKICAgICBjb25z
dCBjaGFyKiB0bXBEaXIgPSBnZXRlbnYoIlRNUERJUiIpOwpAQCAtNzUsMTggKzc1LDE4IEBAIENT
dHJpbmcgb3BlblRlbXBvcmFyeUZpbGUoY29uc3QgY2hhciogcHJlZml4LCBQbGF0Zm9ybUZpbGVI
YW5kbGUmIGhhbmRsZSkKICAgICBpZiAoIXRtcERpcikKICAgICAgICAgdG1wRGlyID0gIi90bXAi
OwogCi0gICAgaWYgKHNucHJpbnRmKGJ1ZmZlciwgUEFUSF9NQVgsICIlcy8lc1hYWFhYWCIsIHRt
cERpciwgcHJlZml4KSA+PSBQQVRIX01BWCkKKyAgICBpZiAoc25wcmludGYoYnVmZmVyLCBQQVRI
X01BWCwgIiVzLyVzWFhYWFhYIiwgdG1wRGlyLCBwcmVmaXgudXRmOCgpLmRhdGEoKSkgPj0gUEFU
SF9NQVgpCiAgICAgICAgIGdvdG8gZW5kOwogCiAgICAgaGFuZGxlID0gbWtzdGVtcChidWZmZXIp
OwogICAgIGlmIChoYW5kbGUgPCAwKQogICAgICAgICBnb3RvIGVuZDsKIAotICAgIHJldHVybiBD
U3RyaW5nKGJ1ZmZlcik7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoYnVmZmVyKTsKIAog
ZW5kOgogICAgIGhhbmRsZSA9IGludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGU7Ci0gICAgcmV0dXJu
IENTdHJpbmcoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKIGJvb2wgdW5sb2FkTW9kdWxl
KFBsYXRmb3JtTW9kdWxlIG1vZHVsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9GaWxlU3lzdGVtR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9G
aWxlU3lzdGVtR3RrLmNwcAppbmRleCBiM2M0YzlmZGMyOWJmNmUzMTZjYTYwNTExYmJkOWVkZmJi
YjkxNzRkLi5lMmIxNjQyZGUzZjc4NTEzNGMyMTlhMDhkYzMyYTkxZmVjZGEyM2U0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvRmlsZVN5c3RlbUd0ay5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0ZpbGVTeXN0ZW1HdGsuY3BwCkBAIC0yMjcsMTYg
KzIyNywxNiBAQCBWZWN0b3I8U3RyaW5nPiBsaXN0RGlyZWN0b3J5KGNvbnN0IFN0cmluZyYgcGF0
aCwgY29uc3QgU3RyaW5nJiBmaWx0ZXIpCiAgICAgcmV0dXJuIGVudHJpZXM7CiB9CiAKLUNTdHJp
bmcgb3BlblRlbXBvcmFyeUZpbGUoY29uc3QgY2hhciogcHJlZml4LCBQbGF0Zm9ybUZpbGVIYW5k
bGUmIGhhbmRsZSkKK1N0cmluZyBvcGVuVGVtcG9yYXJ5RmlsZShjb25zdCBTdHJpbmcmIHByZWZp
eCwgUGxhdGZvcm1GaWxlSGFuZGxlJiBoYW5kbGUpCiB7Ci0gICAgR093blB0cjxnY2hhcj4gZmls
ZW5hbWUoZ19zdHJkdXBfcHJpbnRmKCIlcyVzIiwgcHJlZml4LCBjcmVhdGVDYW5vbmljYWxVVUlE
U3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOworICAgIEdPd25QdHI8Z2NoYXI+IGZpbGVuYW1lKGdf
c3RyZHVwX3ByaW50ZigiJXMlcyIsIHByZWZpeC51dGY4KCkuZGF0YSgpLCBjcmVhdGVDYW5vbmlj
YWxVVUlEU3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOwogICAgIEdPd25QdHI8Z2NoYXI+IHRlbXBQ
YXRoKGdfYnVpbGRfZmlsZW5hbWUoZ19nZXRfdG1wX2RpcigpLCBmaWxlbmFtZS5nZXQoKSwgTlVM
TCkpOwogICAgIEdSZWZQdHI8R0ZpbGU+IGZpbGUgPSBhZG9wdEdSZWYoZ19maWxlX25ld19mb3Jf
cGF0aCh0ZW1wUGF0aC5nZXQoKSkpOwogCiAgICAgaGFuZGxlID0gZ19maWxlX2NyZWF0ZV9yZWFk
d3JpdGUoZmlsZS5nZXQoKSwgR19GSUxFX0NSRUFURV9OT05FLCAwLCAwKTsKICAgICBpZiAoIWlz
SGFuZGxlVmFsaWQoaGFuZGxlKSkKLSAgICAgICAgcmV0dXJuIENTdHJpbmcoKTsKLSAgICByZXR1
cm4gdGVtcFBhdGguZ2V0KCk7CisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICByZXR1cm4g
U3RyaW5nOjpmcm9tVVRGOCh0ZW1wUGF0aC5nZXQoKSk7CiB9CiAKIFBsYXRmb3JtRmlsZUhhbmRs
ZSBvcGVuRmlsZShjb25zdCBTdHJpbmcmIHBhdGgsIEZpbGVPcGVuTW9kZSBtb2RlKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaGFpa3UvRmlsZVN5c3RlbUhhaWt1LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2hhaWt1L0ZpbGVTeXN0ZW1IYWlrdS5jcHAKaW5kZXgg
YjBkMzRmMjM4ZmI0NjJjYjA5YTBlNGIxZjNjZDMwODFiNjFjZGMyNS4uNzI0N2U5MmU1OWVkYjY1
ZTY3YmMxMzU5NDljNmU0NGY5NzAzY2ZiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaGFpa3UvRmlsZVN5c3RlbUhhaWt1LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9oYWlrdS9GaWxlU3lzdGVtSGFpa3UuY3BwCkBAIC01NiwxMSArNTYsMTEgQEAgU3RyaW5n
IGhvbWVEaXJlY3RvcnlQYXRoKCkKICAgICByZXR1cm4gU3RyaW5nKHBhdGguUGF0aCgpKTsKIH0K
IAotQ1N0cmluZyBvcGVuVGVtcG9yYXJ5RmlsZShjb25zdCBjaGFyKiBwcmVmaXgsIFBsYXRmb3Jt
RmlsZUhhbmRsZSYgaGFuZGxlKQorU3RyaW5nIG9wZW5UZW1wb3JhcnlGaWxlKGNvbnN0IFN0cmlu
ZyYgcHJlZml4LCBQbGF0Zm9ybUZpbGVIYW5kbGUmIGhhbmRsZSkKIHsKICAgICBub3RJbXBsZW1l
bnRlZCgpOwogICAgIGhhbmRsZSA9IGludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGU7Ci0gICAgcmV0
dXJuIENTdHJpbmcoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKIHZvaWQgY2xvc2VGaWxl
KFBsYXRmb3JtRmlsZUhhbmRsZSYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvRmlsZVN5c3RlbU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9GaWxl
U3lzdGVtTWFjLm1tCmluZGV4IDhjZGQzODI0NzJjNzM5MGQ3MmNjNTM4ZGJlYjgyMGRlOWE4OGI5
ZmMuLjMwNDkxYTIxMTAyZDFmNWUzNjI0ZjEyMTUxY2JkZTFiODQ5NWY0ZDQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9GaWxlU3lzdGVtTWFjLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9GaWxlU3lzdGVtTWFjLm1tCkBAIC00MSwyOCArNDEsMjgg
QEAgU3RyaW5nIGhvbWVEaXJlY3RvcnlQYXRoKCkKICAgICByZXR1cm4gTlNIb21lRGlyZWN0b3J5
KCk7CiB9CiAKLUNTdHJpbmcgb3BlblRlbXBvcmFyeUZpbGUoY29uc3QgY2hhciogcHJlZml4LCBQ
bGF0Zm9ybUZpbGVIYW5kbGUmIHBsYXRmb3JtRmlsZUhhbmRsZSkKK1N0cmluZyBvcGVuVGVtcG9y
YXJ5RmlsZShjb25zdCBTdHJpbmcmIHByZWZpeCwgUGxhdGZvcm1GaWxlSGFuZGxlJiBwbGF0Zm9y
bUZpbGVIYW5kbGUpCiB7CiAgICAgcGxhdGZvcm1GaWxlSGFuZGxlID0gaW52YWxpZFBsYXRmb3Jt
RmlsZUhhbmRsZTsKICAgICAKICAgICBWZWN0b3I8Y2hhcj4gdGVtcG9yYXJ5RmlsZVBhdGgoUEFU
SF9NQVgpOwogICAgIGlmICghY29uZnN0cihfQ1NfREFSV0lOX1VTRVJfVEVNUF9ESVIsIHRlbXBv
cmFyeUZpbGVQYXRoLmRhdGEoKSwgdGVtcG9yYXJ5RmlsZVBhdGguc2l6ZSgpKSkKLSAgICAgICAg
cmV0dXJuIENTdHJpbmcoKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOwogCiAgICAgLy8gU2hy
aW5rIHRoZSB2ZWN0b3IuICAgCiAgICAgdGVtcG9yYXJ5RmlsZVBhdGguc2hyaW5rKHN0cmxlbih0
ZW1wb3JhcnlGaWxlUGF0aC5kYXRhKCkpKTsKICAgICBBU1NFUlQodGVtcG9yYXJ5RmlsZVBhdGgu
bGFzdCgpID09ICcvJyk7CiAKICAgICAvLyBBcHBlbmQgdGhlIGZpbGUgbmFtZS4gICAgCi0gICAg
dGVtcG9yYXJ5RmlsZVBhdGguYXBwZW5kKHByZWZpeCwgc3RybGVuKHByZWZpeCkpOworICAgIHRl
bXBvcmFyeUZpbGVQYXRoLmFwcGVuZChwcmVmaXgudXRmOCgpKTsKICAgICB0ZW1wb3JhcnlGaWxl
UGF0aC5hcHBlbmQoIlhYWFhYWCIsIDYpOwogICAgIHRlbXBvcmFyeUZpbGVQYXRoLmFwcGVuZCgn
XDAnKTsKIAogICAgIHBsYXRmb3JtRmlsZUhhbmRsZSA9IG1rc3RlbXAodGVtcG9yYXJ5RmlsZVBh
dGguZGF0YSgpKTsKICAgICBpZiAocGxhdGZvcm1GaWxlSGFuZGxlID09IGludmFsaWRQbGF0Zm9y
bUZpbGVIYW5kbGUpCi0gICAgICAgIHJldHVybiBDU3RyaW5nKCk7CisgICAgICAgIHJldHVybiBT
dHJpbmcoKTsKIAotICAgIHJldHVybiBDU3RyaW5nKHRlbXBvcmFyeUZpbGVQYXRoLmRhdGEoKSk7
CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgodGVtcG9yYXJ5RmlsZVBhdGguZGF0YSgpKTsK
IH0KIAogYm9vbCBjYW5FeGNsdWRlRnJvbUJhY2t1cCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9xdC9GaWxlU3lzdGVtUXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vcXQvRmlsZVN5c3RlbVF0LmNwcAppbmRleCBkODhhOTY3ZWYzZjUyZTU2YTYxOGU3NmUzYTkw
MmM1ZDdhNDdmNGM4Li5lNWIwMmZmYzI3M2I5NjA1N2VlMmIxYzkxYmNkZjdiZTYwZWJjNmZiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9GaWxlU3lzdGVtUXQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0ZpbGVTeXN0ZW1RdC5jcHAKQEAgLTExNCwx
OSArMTE0LDE5IEBAIFZlY3RvcjxTdHJpbmc+IGxpc3REaXJlY3RvcnkoY29uc3QgU3RyaW5nJiBw
YXRoLCBjb25zdCBTdHJpbmcmIGZpbHRlcikKICAgICByZXR1cm4gZW50cmllczsKIH0KIAotQ1N0
cmluZyBvcGVuVGVtcG9yYXJ5RmlsZShjb25zdCBjaGFyKiBwcmVmaXgsIFBsYXRmb3JtRmlsZUhh
bmRsZSYgaGFuZGxlKQorU3RyaW5nIG9wZW5UZW1wb3JhcnlGaWxlKGNvbnN0IFN0cmluZyYgcHJl
Zml4LCBQbGF0Zm9ybUZpbGVIYW5kbGUmIGhhbmRsZSkKIHsKICNpZm5kZWYgUVRfTk9fVEVNUE9S
QVJZRklMRQotICAgIFFUZW1wb3JhcnlGaWxlKiB0ZW1wRmlsZSA9IG5ldyBRVGVtcG9yYXJ5Rmls
ZShRRGlyOjp0ZW1wUGF0aCgpICsgUUxhdGluMUNoYXIoJy8nKSArIFFMYXRpbjFTdHJpbmcocHJl
Zml4KSk7CisgICAgUVRlbXBvcmFyeUZpbGUqIHRlbXBGaWxlID0gbmV3IFFUZW1wb3JhcnlGaWxl
KFFEaXI6OnRlbXBQYXRoKCkgKyBRTGF0aW4xQ2hhcignLycpICsgcHJlZml4KTsKICAgICB0ZW1w
RmlsZS0+c2V0QXV0b1JlbW92ZShmYWxzZSk7CiAgICAgUUZpbGUqIHRlbXAgPSB0ZW1wRmlsZTsK
ICAgICBpZiAodGVtcC0+b3BlbihRSU9EZXZpY2U6OlJlYWRXcml0ZSkpIHsKICAgICAgICAgaGFu
ZGxlID0gdGVtcDsKLSAgICAgICAgcmV0dXJuIFN0cmluZyh0ZW1wLT5maWxlTmFtZSgpKS51dGY4
KCk7CisgICAgICAgIHJldHVybiB0ZW1wLT5maWxlTmFtZSgpOwogICAgIH0KICNlbmRpZgogICAg
IGhhbmRsZSA9IGludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGU7Ci0gICAgcmV0dXJuIENTdHJpbmco
KTsKKyAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKIFBsYXRmb3JtRmlsZUhhbmRsZSBvcGVuRmls
ZShjb25zdCBTdHJpbmcmIHBhdGgsIEZpbGVPcGVuTW9kZSBtb2RlKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0ZpbGVTeXN0ZW1XaW4uY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vd2luL0ZpbGVTeXN0ZW1XaW4uY3BwCmluZGV4IDVlZTNiOGVhMmU2ZGQzMDQw
NDUyNzhmMGI5YjM2NDFkYWFmZTJhOWMuLjc5YWZkMDg3NWU2YmZhNTU5MTRmYTUyYWMxN2M3ODMw
OTdhMzFmNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9GaWxlU3lz
dGVtV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vRmlsZVN5c3RlbVdp
bi5jcHAKQEAgLTE4NCw3ICsxODQsNyBAQCBzdGF0aWMgU3RyaW5nIGNhY2hlZFN0b3JhZ2VEaXJl
Y3RvcnkoRFdPUkQgcGF0aElkZW50aWZpZXIpCiAgICAgcmV0dXJuIGRpcmVjdG9yeTsKIH0KIAot
Q1N0cmluZyBvcGVuVGVtcG9yYXJ5RmlsZShjb25zdCBjaGFyKiwgUGxhdGZvcm1GaWxlSGFuZGxl
JiBoYW5kbGUpCitTdHJpbmcgb3BlblRlbXBvcmFyeUZpbGUoY29uc3QgU3RyaW5nJiwgUGxhdGZv
cm1GaWxlSGFuZGxlJiBoYW5kbGUpCiB7CiAgICAgaGFuZGxlID0gSU5WQUxJRF9IQU5ETEVfVkFM
VUU7CiAKQEAgLTE5NSw3ICsxOTUsNyBAQCBDU3RyaW5nIG9wZW5UZW1wb3JhcnlGaWxlKGNvbnN0
IGNoYXIqLCBQbGF0Zm9ybUZpbGVIYW5kbGUmIGhhbmRsZSkKIAogICAgIEhDUllQVFBST1YgaENy
eXB0UHJvdiA9IDA7CiAgICAgaWYgKCFDcnlwdEFjcXVpcmVDb250ZXh0KCZoQ3J5cHRQcm92LCAw
LCAwLCBQUk9WX1JTQV9GVUxMLCBDUllQVF9WRVJJRllDT05URVhUKSkKLSAgICAgICAgcmV0dXJu
IENTdHJpbmcoKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOwogCiAgICAgY2hhciBwcm9wb3Nl
ZFBhdGhbTUFYX1BBVEhdOwogICAgIHdoaWxlICgxKSB7CkBAIC0yMjYsOSArMjI2LDkgQEAgQ1N0
cmluZyBvcGVuVGVtcG9yYXJ5RmlsZShjb25zdCBjaGFyKiwgUGxhdGZvcm1GaWxlSGFuZGxlJiBo
YW5kbGUpCiAgICAgQ3J5cHRSZWxlYXNlQ29udGV4dChoQ3J5cHRQcm92LCAwKTsKIAogICAgIGlm
ICghaXNIYW5kbGVWYWxpZChoYW5kbGUpKQotICAgICAgICByZXR1cm4gQ1N0cmluZygpOworICAg
ICAgICByZXR1cm4gU3RyaW5nKCk7CiAKLSAgICByZXR1cm4gcHJvcG9zZWRQYXRoOworICAgIHJl
dHVybiBTdHJpbmc6OmZyb21VVEY4KHByb3Bvc2VkUGF0aCk7CiB9CiAKIHZvaWQgY2xvc2VGaWxl
KFBsYXRmb3JtRmlsZUhhbmRsZSYgaGFuZGxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vd2luY2UvRmlsZVN5c3RlbVdpbkNFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3dpbmNlL0ZpbGVTeXN0ZW1XaW5DRS5jcHAKaW5kZXggNDlhY2YxMjhjMDI4YWQ2MDc3Nzk4
Yzc0OTNjMTg1YzdmZDIwZDMyMi4uNjBlMDdhYTRlYTBhMTFmYjNjYTA1OGExYTNiYzBmMWU4MDY5
MDU1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luY2UvRmlsZVN5c3Rl
bVdpbkNFLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW5jZS9GaWxlU3lzdGVt
V2luQ0UuY3BwCkBAIC0xOTQsMTEgKzE5NCwxMSBAQCBDU3RyaW5nIG9wZW5UZW1wb3JhcnlGaWxl
KGNvbnN0IGNoYXIqLCBQbGF0Zm9ybUZpbGVIYW5kbGUmIGhhbmRsZSkKICAgICB3Y2hhcl90IHRl
bXBQYXRoW01BWF9QQVRIXTsKICAgICBpbnQgdGVtcFBhdGhMZW5ndGggPSA6OkdldFRlbXBQYXRo
KFdURl9BUlJBWV9MRU5HVEgodGVtcFBhdGgpLCB0ZW1wUGF0aCk7CiAgICAgaWYgKHRlbXBQYXRo
TGVuZ3RoIDw9IDAgfHwgdGVtcFBhdGhMZW5ndGggPiBXVEZfQVJSQVlfTEVOR1RIKHRlbXBQYXRo
KSkKLSAgICAgICAgcmV0dXJuIENTdHJpbmcoKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOwog
CiAgICAgSENSWVBUUFJPViBoQ3J5cHRQcm92ID0gMDsKICAgICBpZiAoIUNyeXB0QWNxdWlyZUNv
bnRleHQoJmhDcnlwdFByb3YsIDAsIDAsIFBST1ZfUlNBX0ZVTEwsIENSWVBUX1ZFUklGWUNPTlRF
WFQpKQotICAgICAgICByZXR1cm4gQ1N0cmluZygpOworICAgICAgICByZXR1cm4gU3RyaW5nKCk7
CiAKICAgICBTdHJpbmcgcHJvcG9zZWRQYXRoOwogICAgIHdoaWxlICgxKSB7CkBAIC0yMjksOSAr
MjI5LDkgQEAgQ1N0cmluZyBvcGVuVGVtcG9yYXJ5RmlsZShjb25zdCBjaGFyKiwgUGxhdGZvcm1G
aWxlSGFuZGxlJiBoYW5kbGUpCiAgICAgQ3J5cHRSZWxlYXNlQ29udGV4dChoQ3J5cHRQcm92LCAw
KTsKIAogICAgIGlmICghaXNIYW5kbGVWYWxpZChoYW5kbGUpKQotICAgICAgICByZXR1cm4gQ1N0
cmluZygpOworICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAKLSAgICByZXR1cm4gcHJvcG9zZWRQ
YXRoLmxhdGluMSgpOworICAgIHJldHVybiBwcm9wb3NlZFBhdGg7CiB9CiAKIHZvaWQgY2xvc2VG
aWxlKFBsYXRmb3JtRmlsZUhhbmRsZSYgaGFuZGxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vd3gvRmlsZVN5c3RlbVd4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3d4L0ZpbGVTeXN0ZW1XeC5jcHAKaW5kZXggYmZjYWY4OGE2ZWRjZTBiYzA0NTU3YTY1NTBjN2I5
MTA4YWJjMTI0My4uM2MyYjQ1MzBlOTBlZDlhNWU3ZjRjMDVhNGZiYTgzMTA2ZTdhYzJiYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3gvRmlsZVN5c3RlbVd4LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93eC9GaWxlU3lzdGVtV3guY3BwCkBAIC0xMDcsMTEg
KzEwNywxMSBAQCBTdHJpbmcgZGlyZWN0b3J5TmFtZShjb25zdCBTdHJpbmcmIHBhdGgpCiAgICAg
cmV0dXJuIHd4RmlsZU5hbWUocGF0aCkuR2V0UGF0aCgpOwogfQogCi1DU3RyaW5nIG9wZW5UZW1w
b3JhcnlGaWxlKGNvbnN0IGNoYXIqIHByZWZpeCwgUGxhdGZvcm1GaWxlSGFuZGxlJiBoYW5kbGUp
CitTdHJpbmcgb3BlblRlbXBvcmFyeUZpbGUoY29uc3QgU3RyaW5nJiwgUGxhdGZvcm1GaWxlSGFu
ZGxlJiBoYW5kbGUpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICBoYW5kbGUgPSBpbnZh
bGlkUGxhdGZvcm1GaWxlSGFuZGxlOwotICAgIHJldHVybiBDU3RyaW5nKCk7CisgICAgcmV0dXJu
IFN0cmluZygpOwogfQogCiB2b2lkIGNsb3NlRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUmKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5TdHJlYW0uY3BwIGIvU291cmNl
L1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5TdHJlYW0uY3BwCmluZGV4IDNiZmM1MzY5NDAzN2FiZGE1
NjcxOWQ5N2NlM2FkMzY1YTQ1OWQ2ODIuLjE4YjQ5MTdlMzhjZjFmZWE2YTZjYWIxZGQ2MDVlNjJh
ZmJmNjgxNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luU3RyZWFt
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblN0cmVhbS5jcHAKQEAgLTI1
Nyw3ICsyNTcsNyBAQCB2b2lkIFBsdWdpblN0cmVhbTo6ZGVzdHJveVN0cmVhbSgpCiAKICAgICAg
ICAgICAgIGlmIChtX2xvYWRlcikKICAgICAgICAgICAgICAgICBtX2xvYWRlci0+c2V0RGVmZXJz
TG9hZGluZyh0cnVlKTsKLSAgICAgICAgICAgIG1fcGx1Z2luRnVuY3MtPmFzZmlsZShtX2luc3Rh
bmNlLCAmbV9zdHJlYW0sIG1fcGF0aC5kYXRhKCkpOworICAgICAgICAgICAgbV9wbHVnaW5GdW5j
cy0+YXNmaWxlKG1faW5zdGFuY2UsICZtX3N0cmVhbSwgbV9wYXRoLnV0ZjgoKS5kYXRhKCkpOwog
ICAgICAgICAgICAgaWYgKG1fbG9hZGVyKQogICAgICAgICAgICAgICAgIG1fbG9hZGVyLT5zZXRE
ZWZlcnNMb2FkaW5nKGZhbHNlKTsKICAgICAgICAgfQpAQCAtMzA2LDEwICszMDYsOCBAQCB2b2lk
IFBsdWdpblN0cmVhbTo6ZGVzdHJveVN0cmVhbSgpCiAgICAgaWYgKCFtX2xvYWRNYW51YWxseSAm
JiBtX2NsaWVudCkKICAgICAgICAgbV9jbGllbnQtPnN0cmVhbURpZEZpbmlzaExvYWRpbmcodGhp
cyk7CiAKLSAgICBpZiAoIW1fcGF0aC5pc051bGwoKSkgewotICAgICAgICBTdHJpbmcgdGVtcEZp
bGVQYXRoID0gU3RyaW5nOjpmcm9tVVRGOChtX3BhdGguZGF0YSgpKTsKLSAgICAgICAgZGVsZXRl
RmlsZSh0ZW1wRmlsZVBhdGgpOwotICAgIH0KKyAgICBpZiAoIW1fcGF0aC5pc051bGwoKSkKKyAg
ICAgICAgZGVsZXRlRmlsZShtX3BhdGgpOwogfQogCiB2b2lkIFBsdWdpblN0cmVhbTo6ZGVsYXlE
ZWxpdmVyeVRpbWVyRmlyZWQoVGltZXI8UGx1Z2luU3RyZWFtPiogdGltZXIpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblN0cmVhbS5oIGIvU291cmNlL1dlYkNvcmUv
cGx1Z2lucy9QbHVnaW5TdHJlYW0uaAppbmRleCBiYjUxOTRiNWNkMDg2OGVjYmIwNjE3MDMxODgx
MDIxYWMwOWIxOGM5Li45YmMxMGM4ZjVjMjFlOTQ1M2Q0YTRkNTJiZjE0MWJjYTRmZTRiMGI2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblN0cmVhbS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luU3RyZWFtLmgKQEAgLTExMSw4ICsxMTEsOCBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIE5QUCBtX2luc3RhbmNlOwogICAgICAgICB1aW50
MTZfdCBtX3RyYW5zZmVyTW9kZTsKICAgICAgICAgaW50MzJfdCBtX29mZnNldDsKLSAgICAgICAg
V1RGOjpDU3RyaW5nIG1faGVhZGVyczsKLSAgICAgICAgV1RGOjpDU3RyaW5nIG1fcGF0aDsKKyAg
ICAgICAgQ1N0cmluZyBtX2hlYWRlcnM7CisgICAgICAgIFN0cmluZyBtX3BhdGg7CiAgICAgICAg
IE5QUmVhc29uIG1fcmVhc29uOwogICAgICAgICBOUFN0cmVhbSBtX3N0cmVhbTsKICAgICAgICAg
UGx1Z2luUXVpcmtTZXQgbV9xdWlya3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZWEyZDg2ZTA4MTA0NmY3Zjhh
NmQwMDU2NDQ1NzNjYTVkOTg1ZjY5Ny4uODBiNTBkODUwMTk1MjZkMmI5N2FiZThmNDc0Y2U0OWU0
ZTIyNjViZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDExLTAyLTI3ICBQYXRyaWNr
IEdhbnN0ZXJlciAgPHBhcm9nYUB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBTdHJpbmcgaW5zdGVhZCBvZiBDU3RyaW5nIGFz
IHJldHVybiB2YWx1ZSBvZiBvcGVuVGVtcG9yYXJ5RmlsZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTUzMzIKKworICAgICAgICAqIFNoYXJlZC9XZWJN
ZW1vcnlTYW1wbGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTWVtb3J5U2FtcGxlcjo6aW5p
dGlhbGl6ZVRlbXBMb2dGaWxlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2Nh
cGUvTmV0c2NhcGVQbHVnaW5TdHJlYW0uY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBs
dWdpblN0cmVhbTo6c3RvcCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBl
L05ldHNjYXBlUGx1Z2luU3RyZWFtLmg6CisKIDIwMTEtMDItMjcgIEFsZWphbmRybyBHLiBDYXN0
cm8gIDxhbGV4QGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgZml4ZWQgR1RLIGNv
bXBpbGF0aW9uIGFmdGVyIHI3OTgwNi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJNZW1vcnlTYW1wbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJNZW1vcnlT
YW1wbGVyLmNwcAppbmRleCA4MmIyYmU5NGFlZWRjYzJmMDUyMTkzYmI5NWM1MGNmM2I5Y2E1NTk0
Li5lZjE3YTJiYzdhMTEwMjA5OWJjNDQxZmIxNGMxNDE5NzgzMTRmZWQ1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTWVtb3J5U2FtcGxlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYk1lbW9yeVNhbXBsZXIuY3BwCkBAIC0xMTcsNyArMTE3LDcgQEAgYm9v
bCBXZWJNZW1vcnlTYW1wbGVyOjppc1J1bm5pbmcoKSBjb25zdAogICAgIAogdm9pZCBXZWJNZW1v
cnlTYW1wbGVyOjppbml0aWFsaXplVGVtcExvZ0ZpbGUoKQogewotICAgIG1fc2FtcGxlTG9nRmls
ZVBhdGggPSBTdHJpbmcoKG9wZW5UZW1wb3JhcnlGaWxlKHByb2Nlc3NOYW1lKCkudXRmOCgpLmRh
dGEoKSwgbV9zYW1wbGVMb2dGaWxlKSkuZGF0YSgpKTsKKyAgICBtX3NhbXBsZUxvZ0ZpbGVQYXRo
ID0gb3BlblRlbXBvcmFyeUZpbGUocHJvY2Vzc05hbWUoKSwgbV9zYW1wbGVMb2dGaWxlKTsKICAg
ICB3cml0ZUhlYWRlcnMoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luU3RyZWFtLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpblN0cmVhbS5j
cHAKaW5kZXggOTQ1MDMxN2U5MDMyMWE0MjE0NzBhNTExNDNkYmRmMTE3YmJhNmZkNy4uY2Y1YWZm
Y2U1YjljODU5NDhhZTk4ODM3YjNmMjg3MGFkZmMzZjdkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luU3RyZWFtLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2Nh
cGVQbHVnaW5TdHJlYW0uY3BwCkBAIC0zMDQsNyArMzA0LDcgQEAgdm9pZCBOZXRzY2FwZVBsdWdp
blN0cmVhbTo6c3RvcChOUFJlYXNvbiByZWFzb24pCiAgICAgICAgICAgICAKICAgICAgICAgICAg
IEFTU0VSVCghbV9maWxlUGF0aC5pc051bGwoKSk7CiAgICAgICAgICAgICAKLSAgICAgICAgICAg
IG1fcGx1Z2luLT5OUFBfU3RyZWFtQXNGaWxlKCZtX25wU3RyZWFtLCBtX2ZpbGVQYXRoLmRhdGEo
KSk7CisgICAgICAgICAgICBtX3BsdWdpbi0+TlBQX1N0cmVhbUFzRmlsZSgmbV9ucFN0cmVhbSwg
bV9maWxlUGF0aC51dGY4KCkuZGF0YSgpKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAg
IC8vIEp1c3QgY2xvc2UgdGhlIGZpbGUuCiAgICAgICAgICAgICBpZiAobV9maWxlSGFuZGxlICE9
IGludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUpCkBAIC0zMTUsOCArMzE1LDggQEAgdm9pZCBOZXRz
Y2FwZVBsdWdpblN0cmVhbTo6c3RvcChOUFJlYXNvbiByZWFzb24pCiAgICAgICAgIC8vIHRvIGRl
bGV0ZSB0aGUgZmlsZSBoZXJlIC0tIE5QUF9TdHJlYW1Bc0ZpbGUoKSBpcyBhbHdheXMgY2FsbGVk
IGltbWVkaWF0ZWx5IGJlZm9yZSBOUFBfRGVzdHJveVN0cmVhbSgpCiAgICAgICAgIC8vICh0aGUg
c3RyZWFtIGRlc3RydWN0aW9uIGZ1bmN0aW9uKSwgc28gdGhlcmUgY2FuIGJlIG5vIGV4cGVjdGF0
aW9uIHRoYXQgYSBwbHVnaW4gd2lsbCByZWFkIHRoZSBzdHJlYW0KICAgICAgICAgLy8gZmlsZSBh
c3luY2hyb25vdXNseSBhZnRlciBOUFBfU3RyZWFtQXNGaWxlKCkgaXMgY2FsbGVkLgotICAgICAg
ICBkZWxldGVGaWxlKFN0cmluZzo6ZnJvbVVURjgobV9maWxlUGF0aC5kYXRhKCkpKTsKLSAgICAg
ICAgbV9maWxlUGF0aCA9IENTdHJpbmcoKTsKKyAgICAgICAgZGVsZXRlRmlsZShtX2ZpbGVQYXRo
KTsKKyAgICAgICAgbV9maWxlUGF0aCA9IFN0cmluZygpOwogCiAgICAgICAgIC8vIE5QUF9TdHJl
YW1Bc0ZpbGUgY291bGQgY2FsbCBOUE5fRGVzdHJveVN0cmVhbSBhbmQgZGVzdHJveSB0aGUgc3Ry
ZWFtLgogICAgICAgICBpZiAoIW1faXNTdGFydGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luU3RyZWFtLmggYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW5T
dHJlYW0uaAppbmRleCA3NzU3MDAxYmU0OGRjODJhNDIxYzZmMDlmMDZhNjljYzUzYWU1MzJkLi5m
MjJhYjYxZDdlOGNjMjg0OTI2NDljOTQ5MjM0MDE5NGY0ZDFiYmNmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW5TdHJl
YW0uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0
c2NhcGVQbHVnaW5TdHJlYW0uaApAQCAtODgsNyArODgsNyBAQCBwcml2YXRlOgogICAgIHVpbnQx
Nl90IG1fdHJhbnNmZXJNb2RlOwogICAgIGludDMyX3QgbV9vZmZzZXQ7CiAKLSAgICBDU3RyaW5n
IG1fZmlsZVBhdGg7CisgICAgU3RyaW5nIG1fZmlsZVBhdGg7CiAgICAgV2ViQ29yZTo6UGxhdGZv
cm1GaWxlSGFuZGxlIG1fZmlsZUhhbmRsZTsKICAgICAKICAgICAvLyBXaGV0aGVyIE5QUF9OZXdT
dHJlYW0gaGFzIHN1Y2Nlc3NmdWxseSBiZWVuIGNhbGxlZC4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83997</attachid>
            <date>2011-02-27 15:15:55 -0800</date>
            <delta_ts>2011-02-27 17:08:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-55332-20110228001552.patch</filename>
            <type>text/plain</type>
            <size>19839</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzk4MjkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1ODBlZjlkOTYwZDEzMWNj
YjMxNGUzMWIxMjcyMzBkZmU5M2IxMmM4Li5iNGJhZDM4Zjg2N2Q1Yjc0MGE4Mzc4MjMzMTMwZDJh
NmIwZTNjMzAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTEtMDItMjcgIFBhdHJp
Y2sgR2Fuc3RlcmVyICA8cGFyb2dhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIFN0cmluZyBpbnN0ZWFkIG9mIENTdHJpbmcg
YXMgcmV0dXJuIHZhbHVlIG9mIG9wZW5UZW1wb3JhcnlGaWxlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NTMzMgorCisgICAgICAgIFdlIHVzdWFsbHkg
c3RvcmUgYWxsIHBhdGhzIGFzIFVURi0xNi4gRG8gdGhpcyBmb3IgdGVtcG9yYXJ5IGZpbGVzIHRv
by4KKworICAgICAgICAqIHBsYXRmb3JtL0ZpbGVTeXN0ZW0uaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9hbmRyb2lkL0ZpbGVTeXN0ZW1BbmRyb2lkLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9icmV3
L0ZpbGVTeXN0ZW1CcmV3LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvRmlsZVN5c3RlbUVm
bC5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL0ZpbGVTeXN0ZW1HdGsuY3BwOgorICAgICAg
ICAqIHBsYXRmb3JtL2hhaWt1L0ZpbGVTeXN0ZW1IYWlrdS5jcHA6CisgICAgICAgICogcGxhdGZv
cm0vbWFjL0ZpbGVTeXN0ZW1NYWMubW06CisgICAgICAgICogcGxhdGZvcm0vcXQvRmlsZVN5c3Rl
bVF0LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vRmlsZVN5c3RlbVdpbi5jcHA6CisgICAg
ICAgICogcGxhdGZvcm0vd2luY2UvRmlsZVN5c3RlbVdpbkNFLmNwcDoKKyAgICAgICAgKiBwbGF0
Zm9ybS93eC9GaWxlU3lzdGVtV3guY3BwOgorICAgICAgICAqIHBsdWdpbnMvUGx1Z2luU3RyZWFt
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblN0cmVhbTo6ZGVzdHJveVN0cmVhbSk6Cisg
ICAgICAgICogcGx1Z2lucy9QbHVnaW5TdHJlYW0uaDoKKwogMjAxMS0wMi0yNyAgQmVuamFtaW4g
UG91bGFpbiAgPGJlbmphbWluLnBvdWxhaW5Abm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IEFuZHJlYXMgS2xpbmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9G
aWxlU3lzdGVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmgKaW5kZXgg
OGI3ZDBmMDRkZWE1ODdmZTVmYTk4ZDZmNTc1MGExZjEyNThlYjEwZS4uNDlhNzhlOGQ4NjFiMzEy
OWEwYjUwMGQyNmYxZDQ3M2ZkNDhmZGY1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vRmlsZVN5c3RlbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0
ZW0uaApAQCAtMTcyLDcgKzE3Miw3IEBAIENTdHJpbmcgZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9u
KGNvbnN0IFN0cmluZyYpOwogaW5saW5lIGJvb2wgaXNIYW5kbGVWYWxpZChjb25zdCBQbGF0Zm9y
bUZpbGVIYW5kbGUmIGhhbmRsZSkgeyByZXR1cm4gaGFuZGxlICE9IGludmFsaWRQbGF0Zm9ybUZp
bGVIYW5kbGU7IH0KIAogLy8gUHJlZml4IGlzIHdoYXQgdGhlIGZpbGVuYW1lIHNob3VsZCBiZSBw
cmVmaXhlZCB3aXRoLCBub3QgdGhlIGZ1bGwgcGF0aC4KLUNTdHJpbmcgb3BlblRlbXBvcmFyeUZp
bGUoY29uc3QgY2hhciogcHJlZml4LCBQbGF0Zm9ybUZpbGVIYW5kbGUmKTsKK1N0cmluZyBvcGVu
VGVtcG9yYXJ5RmlsZShjb25zdCBTdHJpbmcmIHByZWZpeCwgUGxhdGZvcm1GaWxlSGFuZGxlJik7
CiBQbGF0Zm9ybUZpbGVIYW5kbGUgb3BlbkZpbGUoY29uc3QgU3RyaW5nJiBwYXRoLCBGaWxlT3Bl
bk1vZGUpOwogdm9pZCBjbG9zZUZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlJik7CiAvLyBSZXR1cm5z
IHRoZSByZXN1bHRpbmcgb2Zmc2V0IGZyb20gdGhlIGJlZ2lubmluZyBvZiB0aGUgZmlsZSBpZiBz
dWNjZXNzZnVsLCAtMSBvdGhlcndpc2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hbmRyb2lkL0ZpbGVTeXN0ZW1BbmRyb2lkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2FuZHJvaWQvRmlsZVN5c3RlbUFuZHJvaWQuY3BwCmluZGV4IGFjZTA1ZTQwMGM4ZjZjZTJj
OTc2ZjZlYjE2YmI1YjNmMTFhNjc4ZTcuLjlkYmE0MmE5YjYzNzllNzc0YTAyZmE5ZTI2ZTBmN2Qw
ZjI0NzVmMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2FuZHJvaWQvRmls
ZVN5c3RlbUFuZHJvaWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2FuZHJvaWQv
RmlsZVN5c3RlbUFuZHJvaWQuY3BwCkBAIC00OCwyNiArNDgsMjUgQEAgQ1N0cmluZyBmaWxlU3lz
dGVtUmVwcmVzZW50YXRpb24oY29uc3QgU3RyaW5nJiBwYXRoKQogICAgIHJldHVybiBwYXRoLnV0
ZjgoKTsKIH0KIAotQ1N0cmluZyBvcGVuVGVtcG9yYXJ5RmlsZShjb25zdCBjaGFyKiBwcmVmaXgs
IFBsYXRmb3JtRmlsZUhhbmRsZSYgaGFuZGxlKQorU3RyaW5nIG9wZW5UZW1wb3JhcnlGaWxlKGNv
bnN0IFN0cmluZyYgcHJlZml4LCBQbGF0Zm9ybUZpbGVIYW5kbGUmIGhhbmRsZSkKIHsKICAgICBp
bnQgbnVtYmVyID0gcmFuZCgpICUgMTAwMDAgKyAxOwotICAgIENTdHJpbmcgZmlsZW5hbWU7Cisg
ICAgU3RyaW5nIGZpbGVuYW1lOwogICAgIGRvIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBidWls
ZGVyOwogICAgICAgICBidWlsZGVyLmFwcGVuZChzUGx1Z2luUGF0aCk7CiAgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKCcvJyk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHByZWZpeCk7CiAgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKFN0cmluZzo6bnVtYmVyKG51bWJlcikpOwotICAgICAgICBmaWxlbmFt
ZSA9IGJ1aWxkZXIudG9TdHJpbmcoKS51dGY4KCk7Ci0gICAgICAgIGNvbnN0IGNoYXIqIGZzdHIg
PSBmaWxlbmFtZS5kYXRhKCk7Ci0gICAgICAgIGhhbmRsZSA9IG9wZW4oZmlsZW5hbWUuZGF0YSgp
LCBPX1dST05MWSB8IE9fQ1JFQVQgfCBPX0VYQ0wsIFNfSVJVU1IgfCBTX0lXVVNSKTsKKyAgICAg
ICAgZmlsZW5hbWUgPSBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgIGhhbmRsZSA9IG9wZW4o
ZmlsZW5hbWUudXRmOCgpLmRhdGEoKSwgT19XUk9OTFkgfCBPX0NSRUFUIHwgT19FWENMLCBTX0lS
VVNSIHwgU19JV1VTUik7CiAgICAgICAgIG51bWJlcisrOwogICAgICAgICAKICAgICAgICAgaWYg
KGhhbmRsZSAhPSAtMSkKICAgICAgICAgICAgIHJldHVybiBmaWxlbmFtZTsKICAgICB9IHdoaWxl
IChlcnJubyA9PSBFRVhJU1QpOwogICAgIAotICAgIHJldHVybiBDU3RyaW5nKCk7CisgICAgcmV0
dXJuIFN0cmluZygpOwogfQogCiBib29sIHVubG9hZE1vZHVsZShQbGF0Zm9ybU1vZHVsZSBtb2R1
bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9icmV3L0ZpbGVTeXN0ZW1C
cmV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2JyZXcvRmlsZVN5c3RlbUJyZXcuY3Bw
CmluZGV4IDYxZDU2OGQyZmQ0MWZlY2U5ZGFmNjM4ODE0MzdiMTRlMDU3YTVhMTAuLjI1MWMwMDRk
MDNkMzIyZmI1ZTE5MTJkYjc1MGNkYzM3ZDIzYWY2ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2JyZXcvRmlsZVN5c3RlbUJyZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2JyZXcvRmlsZVN5c3RlbUJyZXcuY3BwCkBAIC0xODYsNyArMTg2LDcgQEAgU3Ry
aW5nIGRpcmVjdG9yeU5hbWUoY29uc3QgU3RyaW5nJiBwYXRoKQogICAgIHJldHVybiBkaXJOYW1l
OwogfQogCi1DU3RyaW5nIG9wZW5UZW1wb3JhcnlGaWxlKGNvbnN0IGNoYXIqIHByZWZpeCwgUGxh
dGZvcm1GaWxlSGFuZGxlJiBoYW5kbGUpCitTdHJpbmcgb3BlblRlbXBvcmFyeUZpbGUoY29uc3Qg
U3RyaW5nJiBwcmVmaXgsIFBsYXRmb3JtRmlsZUhhbmRsZSYgaGFuZGxlKQogewogICAgIC8vIEJS
RVcgZG9lcyBub3QgaGF2ZSBhIHN5c3RlbS13aWRlIHRlbXBvcmFyeSBkaXJlY3RvcnksCiAgICAg
Ly8gdXNlICJmczovfi90bXAiIGFzIG91ciB0ZW1wb3JhcnkgZGlyZWN0b3J5LgpAQCAtMTk5LDI0
ICsxOTksMjQgQEAgQ1N0cmluZyBvcGVuVGVtcG9yYXJ5RmlsZShjb25zdCBjaGFyKiBwcmVmaXgs
IFBsYXRmb3JtRmlsZUhhbmRsZSYgaGFuZGxlKQogCiAgICAgLy8gTG9vcCB1bnRpbCB3ZSBmaW5k
IGEgdGVtcG9yYXJ5IGZpbGVuYW1lIHRoYXQgZG9lcyBub3QgZXhpc3QuCiAgICAgaW50IG51bWJl
ciA9IHN0YXRpY19jYXN0PGludD4ocmFuZG9tTnVtYmVyKCkgKiAxMDAwMCk7Ci0gICAgQ1N0cmlu
ZyBmaWxlbmFtZTsKKyAgICBTdHJpbmcgZmlsZW5hbWU7CiAgICAgZG8gewogICAgICAgICBTdHJp
bmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHRlbXBQYXRoKTsKICAg
ICAgICAgYnVpbGRlci5hcHBlbmQoJy8nKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQocHJlZml4
KTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nOjpudW1iZXIobnVtYmVyKSk7Ci0gICAg
ICAgIGZpbGVuYW1lID0gYnVpbGRlci50b1N0cmluZygpLnV0ZjgoKTsKKyAgICAgICAgZmlsZW5h
bWUgPSBidWlsZGVyLnRvU3RyaW5nKCk7CiAgICAgICAgIG51bWJlcisrOwotICAgIH0gd2hpbGUg
KElGSUxFTUdSX1Rlc3QoZmlsZU1nci5nZXQoKSwgZmlsZW5hbWUuZGF0YSgpKSA9PSBTVUNDRVNT
KTsKKyAgICB9IHdoaWxlIChJRklMRU1HUl9UZXN0KGZpbGVNZ3IuZ2V0KCksIGZpbGVuYW1lLnV0
ZjgoKS5kYXRhKCkpID09IFNVQ0NFU1MpOwogCi0gICAgSUZpbGUqIHRlbXBGaWxlID0gSUZJTEVN
R1JfT3BlbkZpbGUoZmlsZU1nci5nZXQoKSwgZmlsZW5hbWUuZGF0YSgpLCBfT0ZNX0NSRUFURSk7
CisgICAgSUZpbGUqIHRlbXBGaWxlID0gSUZJTEVNR1JfT3BlbkZpbGUoZmlsZU1nci5nZXQoKSwg
ZmlsZW5hbWUudXRmOCgpLmRhdGEoKSwgX09GTV9DUkVBVEUpOwogICAgIGlmICh0ZW1wRmlsZSkg
ewogICAgICAgICBoYW5kbGUgPSB0ZW1wRmlsZTsKICAgICAgICAgcmV0dXJuIGZpbGVuYW1lOwog
ICAgIH0KIAotICAgIHJldHVybiBDU3RyaW5nKCk7CisgICAgcmV0dXJuIFN0cmluZygpOwogfQog
CiB2b2lkIGNsb3NlRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUmIGhhbmRsZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9GaWxlU3lzdGVtRWZsLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2VmbC9GaWxlU3lzdGVtRWZsLmNwcAppbmRleCBjYjExN2JjM2NlYTA5
MjBhZDQ0Mzk3NGYwZjk0ZTc2MmI0NmViMzYwLi4wMWM2YzY3MjZjODM2NmU0Zjg1ZDg3N2I2N2Qw
ZDc2MzEwNTVmNTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvRmls
ZVN5c3RlbUVmbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0ZpbGVTeXN0
ZW1FZmwuY3BwCkBAIC02Nyw3ICs2Nyw3IEBAIENTdHJpbmcgZmlsZVN5c3RlbVJlcHJlc2VudGF0
aW9uKGNvbnN0IFN0cmluZyYgcGF0aCkKICNlbmRpZgogfQogCi1DU3RyaW5nIG9wZW5UZW1wb3Jh
cnlGaWxlKGNvbnN0IGNoYXIqIHByZWZpeCwgUGxhdGZvcm1GaWxlSGFuZGxlJiBoYW5kbGUpCitT
dHJpbmcgb3BlblRlbXBvcmFyeUZpbGUoY29uc3QgU3RyaW5nJiBwcmVmaXgsIFBsYXRmb3JtRmls
ZUhhbmRsZSYgaGFuZGxlKQogewogICAgIGNoYXIgYnVmZmVyW1BBVEhfTUFYXTsKICAgICBjb25z
dCBjaGFyKiB0bXBEaXIgPSBnZXRlbnYoIlRNUERJUiIpOwpAQCAtNzUsMTggKzc1LDE4IEBAIENT
dHJpbmcgb3BlblRlbXBvcmFyeUZpbGUoY29uc3QgY2hhciogcHJlZml4LCBQbGF0Zm9ybUZpbGVI
YW5kbGUmIGhhbmRsZSkKICAgICBpZiAoIXRtcERpcikKICAgICAgICAgdG1wRGlyID0gIi90bXAi
OwogCi0gICAgaWYgKHNucHJpbnRmKGJ1ZmZlciwgUEFUSF9NQVgsICIlcy8lc1hYWFhYWCIsIHRt
cERpciwgcHJlZml4KSA+PSBQQVRIX01BWCkKKyAgICBpZiAoc25wcmludGYoYnVmZmVyLCBQQVRI
X01BWCwgIiVzLyVzWFhYWFhYIiwgdG1wRGlyLCBwcmVmaXgudXRmOCgpLmRhdGEoKSkgPj0gUEFU
SF9NQVgpCiAgICAgICAgIGdvdG8gZW5kOwogCiAgICAgaGFuZGxlID0gbWtzdGVtcChidWZmZXIp
OwogICAgIGlmIChoYW5kbGUgPCAwKQogICAgICAgICBnb3RvIGVuZDsKIAotICAgIHJldHVybiBD
U3RyaW5nKGJ1ZmZlcik7CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoYnVmZmVyKTsKIAog
ZW5kOgogICAgIGhhbmRsZSA9IGludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGU7Ci0gICAgcmV0dXJu
IENTdHJpbmcoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKIGJvb2wgdW5sb2FkTW9kdWxl
KFBsYXRmb3JtTW9kdWxlIG1vZHVsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9GaWxlU3lzdGVtR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9G
aWxlU3lzdGVtR3RrLmNwcAppbmRleCBiM2M0YzlmZGMyOWJmNmUzMTZjYTYwNTExYmJkOWVkZmJi
YjkxNzRkLi5lMmIxNjQyZGUzZjc4NTEzNGMyMTlhMDhkYzMyYTkxZmVjZGEyM2U0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvRmlsZVN5c3RlbUd0ay5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0ZpbGVTeXN0ZW1HdGsuY3BwCkBAIC0yMjcsMTYg
KzIyNywxNiBAQCBWZWN0b3I8U3RyaW5nPiBsaXN0RGlyZWN0b3J5KGNvbnN0IFN0cmluZyYgcGF0
aCwgY29uc3QgU3RyaW5nJiBmaWx0ZXIpCiAgICAgcmV0dXJuIGVudHJpZXM7CiB9CiAKLUNTdHJp
bmcgb3BlblRlbXBvcmFyeUZpbGUoY29uc3QgY2hhciogcHJlZml4LCBQbGF0Zm9ybUZpbGVIYW5k
bGUmIGhhbmRsZSkKK1N0cmluZyBvcGVuVGVtcG9yYXJ5RmlsZShjb25zdCBTdHJpbmcmIHByZWZp
eCwgUGxhdGZvcm1GaWxlSGFuZGxlJiBoYW5kbGUpCiB7Ci0gICAgR093blB0cjxnY2hhcj4gZmls
ZW5hbWUoZ19zdHJkdXBfcHJpbnRmKCIlcyVzIiwgcHJlZml4LCBjcmVhdGVDYW5vbmljYWxVVUlE
U3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOworICAgIEdPd25QdHI8Z2NoYXI+IGZpbGVuYW1lKGdf
c3RyZHVwX3ByaW50ZigiJXMlcyIsIHByZWZpeC51dGY4KCkuZGF0YSgpLCBjcmVhdGVDYW5vbmlj
YWxVVUlEU3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOwogICAgIEdPd25QdHI8Z2NoYXI+IHRlbXBQ
YXRoKGdfYnVpbGRfZmlsZW5hbWUoZ19nZXRfdG1wX2RpcigpLCBmaWxlbmFtZS5nZXQoKSwgTlVM
TCkpOwogICAgIEdSZWZQdHI8R0ZpbGU+IGZpbGUgPSBhZG9wdEdSZWYoZ19maWxlX25ld19mb3Jf
cGF0aCh0ZW1wUGF0aC5nZXQoKSkpOwogCiAgICAgaGFuZGxlID0gZ19maWxlX2NyZWF0ZV9yZWFk
d3JpdGUoZmlsZS5nZXQoKSwgR19GSUxFX0NSRUFURV9OT05FLCAwLCAwKTsKICAgICBpZiAoIWlz
SGFuZGxlVmFsaWQoaGFuZGxlKSkKLSAgICAgICAgcmV0dXJuIENTdHJpbmcoKTsKLSAgICByZXR1
cm4gdGVtcFBhdGguZ2V0KCk7CisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICByZXR1cm4g
U3RyaW5nOjpmcm9tVVRGOCh0ZW1wUGF0aC5nZXQoKSk7CiB9CiAKIFBsYXRmb3JtRmlsZUhhbmRs
ZSBvcGVuRmlsZShjb25zdCBTdHJpbmcmIHBhdGgsIEZpbGVPcGVuTW9kZSBtb2RlKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaGFpa3UvRmlsZVN5c3RlbUhhaWt1LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2hhaWt1L0ZpbGVTeXN0ZW1IYWlrdS5jcHAKaW5kZXgg
YjBkMzRmMjM4ZmI0NjJjYjA5YTBlNGIxZjNjZDMwODFiNjFjZGMyNS4uNzk4NWM1NDM1NWRhNDI5
ZmMyNDQ2MzU2NDc2OTdiOGQ3YjZiZmVmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaGFpa3UvRmlsZVN5c3RlbUhhaWt1LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9oYWlrdS9GaWxlU3lzdGVtSGFpa3UuY3BwCkBAIC01NiwxMSArNTYsMTEgQEAgU3RyaW5n
IGhvbWVEaXJlY3RvcnlQYXRoKCkKICAgICByZXR1cm4gU3RyaW5nKHBhdGguUGF0aCgpKTsKIH0K
IAotQ1N0cmluZyBvcGVuVGVtcG9yYXJ5RmlsZShjb25zdCBjaGFyKiBwcmVmaXgsIFBsYXRmb3Jt
RmlsZUhhbmRsZSYgaGFuZGxlKQorU3RyaW5nIG9wZW5UZW1wb3JhcnlGaWxlKGNvbnN0IFN0cmlu
ZyYsIFBsYXRmb3JtRmlsZUhhbmRsZSYgaGFuZGxlKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7
CiAgICAgaGFuZGxlID0gaW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZTsKLSAgICByZXR1cm4gQ1N0
cmluZygpOworICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAogdm9pZCBjbG9zZUZpbGUoUGxhdGZv
cm1GaWxlSGFuZGxlJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9G
aWxlU3lzdGVtTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0ZpbGVTeXN0ZW1N
YWMubW0KaW5kZXggOGNkZDM4MjQ3MmM3MzkwZDcyY2M1MzhkYmViODIwZGU5YTg4YjlmYy4uYTlj
YmNmNDhiYTMzM2NkZmNjNGYyYTI5ZjNlNjQyYTk5MDJjN2FjYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL0ZpbGVTeXN0ZW1NYWMubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL0ZpbGVTeXN0ZW1NYWMubW0KQEAgLTQxLDI4ICs0MSwyOSBAQCBTdHJp
bmcgaG9tZURpcmVjdG9yeVBhdGgoKQogICAgIHJldHVybiBOU0hvbWVEaXJlY3RvcnkoKTsKIH0K
IAotQ1N0cmluZyBvcGVuVGVtcG9yYXJ5RmlsZShjb25zdCBjaGFyKiBwcmVmaXgsIFBsYXRmb3Jt
RmlsZUhhbmRsZSYgcGxhdGZvcm1GaWxlSGFuZGxlKQorU3RyaW5nIG9wZW5UZW1wb3JhcnlGaWxl
KGNvbnN0IFN0cmluZyYgcHJlZml4LCBQbGF0Zm9ybUZpbGVIYW5kbGUmIHBsYXRmb3JtRmlsZUhh
bmRsZSkKIHsKICAgICBwbGF0Zm9ybUZpbGVIYW5kbGUgPSBpbnZhbGlkUGxhdGZvcm1GaWxlSGFu
ZGxlOwogICAgIAogICAgIFZlY3RvcjxjaGFyPiB0ZW1wb3JhcnlGaWxlUGF0aChQQVRIX01BWCk7
CiAgICAgaWYgKCFjb25mc3RyKF9DU19EQVJXSU5fVVNFUl9URU1QX0RJUiwgdGVtcG9yYXJ5Rmls
ZVBhdGguZGF0YSgpLCB0ZW1wb3JhcnlGaWxlUGF0aC5zaXplKCkpKQotICAgICAgICByZXR1cm4g
Q1N0cmluZygpOworICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAKICAgICAvLyBTaHJpbmsgdGhl
IHZlY3Rvci4gICAKICAgICB0ZW1wb3JhcnlGaWxlUGF0aC5zaHJpbmsoc3RybGVuKHRlbXBvcmFy
eUZpbGVQYXRoLmRhdGEoKSkpOwogICAgIEFTU0VSVCh0ZW1wb3JhcnlGaWxlUGF0aC5sYXN0KCkg
PT0gJy8nKTsKIAotICAgIC8vIEFwcGVuZCB0aGUgZmlsZSBuYW1lLiAgICAKLSAgICB0ZW1wb3Jh
cnlGaWxlUGF0aC5hcHBlbmQocHJlZml4LCBzdHJsZW4ocHJlZml4KSk7CisgICAgLy8gQXBwZW5k
IHRoZSBmaWxlIG5hbWUuCisgICAgQ1N0cmluZyBwcmVmaXhVdGY4ID0gcHJlZml4LnV0ZjgoKTsK
KyAgICB0ZW1wb3JhcnlGaWxlUGF0aC5hcHBlbmQocHJlZml4VXRmOC5kYXRhKCksIHByZWZpeFV0
ZjgubGVuZ3RoKCkpOwogICAgIHRlbXBvcmFyeUZpbGVQYXRoLmFwcGVuZCgiWFhYWFhYIiwgNik7
CiAgICAgdGVtcG9yYXJ5RmlsZVBhdGguYXBwZW5kKCdcMCcpOwogCiAgICAgcGxhdGZvcm1GaWxl
SGFuZGxlID0gbWtzdGVtcCh0ZW1wb3JhcnlGaWxlUGF0aC5kYXRhKCkpOwogICAgIGlmIChwbGF0
Zm9ybUZpbGVIYW5kbGUgPT0gaW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSkKLSAgICAgICAgcmV0
dXJuIENTdHJpbmcoKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOwogCi0gICAgcmV0dXJuIENT
dHJpbmcodGVtcG9yYXJ5RmlsZVBhdGguZGF0YSgpKTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9t
VVRGOCh0ZW1wb3JhcnlGaWxlUGF0aC5kYXRhKCkpOwogfQogCiBib29sIGNhbkV4Y2x1ZGVGcm9t
QmFja3VwKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0ZpbGVTeXN0
ZW1RdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9GaWxlU3lzdGVtUXQuY3BwCmlu
ZGV4IGQ4OGE5NjdlZjNmNTJlNTZhNjE4ZTc2ZTNhOTAyYzVkN2E0N2Y0YzguLjUwODMwNjM3YjMx
NTVhZjMyNTRlYjNhNzBkY2JjM2I2NmQwY2RmZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3F0L0ZpbGVTeXN0ZW1RdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vcXQvRmlsZVN5c3RlbVF0LmNwcApAQCAtMTE0LDE5ICsxMTQsMTkgQEAgVmVjdG9yPFN0cmlu
Zz4gbGlzdERpcmVjdG9yeShjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFN0cmluZyYgZmlsdGVy
KQogICAgIHJldHVybiBlbnRyaWVzOwogfQogCi1DU3RyaW5nIG9wZW5UZW1wb3JhcnlGaWxlKGNv
bnN0IGNoYXIqIHByZWZpeCwgUGxhdGZvcm1GaWxlSGFuZGxlJiBoYW5kbGUpCitTdHJpbmcgb3Bl
blRlbXBvcmFyeUZpbGUoY29uc3QgU3RyaW5nJiBwcmVmaXgsIFBsYXRmb3JtRmlsZUhhbmRsZSYg
aGFuZGxlKQogewogI2lmbmRlZiBRVF9OT19URU1QT1JBUllGSUxFCi0gICAgUVRlbXBvcmFyeUZp
bGUqIHRlbXBGaWxlID0gbmV3IFFUZW1wb3JhcnlGaWxlKFFEaXI6OnRlbXBQYXRoKCkgKyBRTGF0
aW4xQ2hhcignLycpICsgUUxhdGluMVN0cmluZyhwcmVmaXgpKTsKKyAgICBRVGVtcG9yYXJ5Rmls
ZSogdGVtcEZpbGUgPSBuZXcgUVRlbXBvcmFyeUZpbGUoUURpcjo6dGVtcFBhdGgoKSArIFFMYXRp
bjFDaGFyKCcvJykgKyBRU3RpbmcocHJlZml4KSk7CiAgICAgdGVtcEZpbGUtPnNldEF1dG9SZW1v
dmUoZmFsc2UpOwogICAgIFFGaWxlKiB0ZW1wID0gdGVtcEZpbGU7CiAgICAgaWYgKHRlbXAtPm9w
ZW4oUUlPRGV2aWNlOjpSZWFkV3JpdGUpKSB7CiAgICAgICAgIGhhbmRsZSA9IHRlbXA7Ci0gICAg
ICAgIHJldHVybiBTdHJpbmcodGVtcC0+ZmlsZU5hbWUoKSkudXRmOCgpOworICAgICAgICByZXR1
cm4gdGVtcC0+ZmlsZU5hbWUoKTsKICAgICB9CiAjZW5kaWYKICAgICBoYW5kbGUgPSBpbnZhbGlk
UGxhdGZvcm1GaWxlSGFuZGxlOwotICAgIHJldHVybiBDU3RyaW5nKCk7CisgICAgcmV0dXJuIFN0
cmluZygpOwogfQogCiBQbGF0Zm9ybUZpbGVIYW5kbGUgb3BlbkZpbGUoY29uc3QgU3RyaW5nJiBw
YXRoLCBGaWxlT3Blbk1vZGUgbW9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3dpbi9GaWxlU3lzdGVtV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9G
aWxlU3lzdGVtV2luLmNwcAppbmRleCA1ZWUzYjhlYTJlNmRkMzA0MDQ1Mjc4ZjBiOWIzNjQxZGFh
ZmUyYTljLi42MTgzNzg1MThlYTNhZGMxM2Y3OWVkNTc0YTZhYjA2NWRkNjIzY2Q5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vRmlsZVN5c3RlbVdpbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0ZpbGVTeXN0ZW1XaW4uY3BwCkBAIC0xODQsMTgg
KzE4NCwxOCBAQCBzdGF0aWMgU3RyaW5nIGNhY2hlZFN0b3JhZ2VEaXJlY3RvcnkoRFdPUkQgcGF0
aElkZW50aWZpZXIpCiAgICAgcmV0dXJuIGRpcmVjdG9yeTsKIH0KIAotQ1N0cmluZyBvcGVuVGVt
cG9yYXJ5RmlsZShjb25zdCBjaGFyKiwgUGxhdGZvcm1GaWxlSGFuZGxlJiBoYW5kbGUpCitTdHJp
bmcgb3BlblRlbXBvcmFyeUZpbGUoY29uc3QgU3RyaW5nJiwgUGxhdGZvcm1GaWxlSGFuZGxlJiBo
YW5kbGUpCiB7CiAgICAgaGFuZGxlID0gSU5WQUxJRF9IQU5ETEVfVkFMVUU7CiAKICAgICBjaGFy
IHRlbXBQYXRoW01BWF9QQVRIXTsKICAgICBpbnQgdGVtcFBhdGhMZW5ndGggPSA6OkdldFRlbXBQ
YXRoQShXVEZfQVJSQVlfTEVOR1RIKHRlbXBQYXRoKSwgdGVtcFBhdGgpOwogICAgIGlmICh0ZW1w
UGF0aExlbmd0aCA8PSAwIHx8IHRlbXBQYXRoTGVuZ3RoID4gV1RGX0FSUkFZX0xFTkdUSCh0ZW1w
UGF0aCkpCi0gICAgICAgIHJldHVybiBDU3RyaW5nKCk7CisgICAgICAgIHJldHVybiBTdHJpbmco
KTsKIAogICAgIEhDUllQVFBST1YgaENyeXB0UHJvdiA9IDA7CiAgICAgaWYgKCFDcnlwdEFjcXVp
cmVDb250ZXh0KCZoQ3J5cHRQcm92LCAwLCAwLCBQUk9WX1JTQV9GVUxMLCBDUllQVF9WRVJJRllD
T05URVhUKSkKLSAgICAgICAgcmV0dXJuIENTdHJpbmcoKTsKKyAgICAgICAgcmV0dXJuIFN0cmlu
ZygpOwogCiAgICAgY2hhciBwcm9wb3NlZFBhdGhbTUFYX1BBVEhdOwogICAgIHdoaWxlICgxKSB7
CkBAIC0yMjYsOSArMjI2LDkgQEAgQ1N0cmluZyBvcGVuVGVtcG9yYXJ5RmlsZShjb25zdCBjaGFy
KiwgUGxhdGZvcm1GaWxlSGFuZGxlJiBoYW5kbGUpCiAgICAgQ3J5cHRSZWxlYXNlQ29udGV4dCho
Q3J5cHRQcm92LCAwKTsKIAogICAgIGlmICghaXNIYW5kbGVWYWxpZChoYW5kbGUpKQotICAgICAg
ICByZXR1cm4gQ1N0cmluZygpOworICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAKLSAgICByZXR1
cm4gcHJvcG9zZWRQYXRoOworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KHByb3Bvc2VkUGF0
aCk7CiB9CiAKIHZvaWQgY2xvc2VGaWxlKFBsYXRmb3JtRmlsZUhhbmRsZSYgaGFuZGxlKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luY2UvRmlsZVN5c3RlbVdpbkNFLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbmNlL0ZpbGVTeXN0ZW1XaW5DRS5jcHAKaW5k
ZXggNDlhY2YxMjhjMDI4YWQ2MDc3Nzk4Yzc0OTNjMTg1YzdmZDIwZDMyMi4uNjBlMDdhYTRlYTBh
MTFmYjNjYTA1OGExYTNiYzBmMWU4MDY5MDU1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vd2luY2UvRmlsZVN5c3RlbVdpbkNFLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS93aW5jZS9GaWxlU3lzdGVtV2luQ0UuY3BwCkBAIC0xOTQsMTEgKzE5NCwxMSBAQCBD
U3RyaW5nIG9wZW5UZW1wb3JhcnlGaWxlKGNvbnN0IGNoYXIqLCBQbGF0Zm9ybUZpbGVIYW5kbGUm
IGhhbmRsZSkKICAgICB3Y2hhcl90IHRlbXBQYXRoW01BWF9QQVRIXTsKICAgICBpbnQgdGVtcFBh
dGhMZW5ndGggPSA6OkdldFRlbXBQYXRoKFdURl9BUlJBWV9MRU5HVEgodGVtcFBhdGgpLCB0ZW1w
UGF0aCk7CiAgICAgaWYgKHRlbXBQYXRoTGVuZ3RoIDw9IDAgfHwgdGVtcFBhdGhMZW5ndGggPiBX
VEZfQVJSQVlfTEVOR1RIKHRlbXBQYXRoKSkKLSAgICAgICAgcmV0dXJuIENTdHJpbmcoKTsKKyAg
ICAgICAgcmV0dXJuIFN0cmluZygpOwogCiAgICAgSENSWVBUUFJPViBoQ3J5cHRQcm92ID0gMDsK
ICAgICBpZiAoIUNyeXB0QWNxdWlyZUNvbnRleHQoJmhDcnlwdFByb3YsIDAsIDAsIFBST1ZfUlNB
X0ZVTEwsIENSWVBUX1ZFUklGWUNPTlRFWFQpKQotICAgICAgICByZXR1cm4gQ1N0cmluZygpOwor
ICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAKICAgICBTdHJpbmcgcHJvcG9zZWRQYXRoOwogICAg
IHdoaWxlICgxKSB7CkBAIC0yMjksOSArMjI5LDkgQEAgQ1N0cmluZyBvcGVuVGVtcG9yYXJ5Rmls
ZShjb25zdCBjaGFyKiwgUGxhdGZvcm1GaWxlSGFuZGxlJiBoYW5kbGUpCiAgICAgQ3J5cHRSZWxl
YXNlQ29udGV4dChoQ3J5cHRQcm92LCAwKTsKIAogICAgIGlmICghaXNIYW5kbGVWYWxpZChoYW5k
bGUpKQotICAgICAgICByZXR1cm4gQ1N0cmluZygpOworICAgICAgICByZXR1cm4gU3RyaW5nKCk7
CiAKLSAgICByZXR1cm4gcHJvcG9zZWRQYXRoLmxhdGluMSgpOworICAgIHJldHVybiBwcm9wb3Nl
ZFBhdGg7CiB9CiAKIHZvaWQgY2xvc2VGaWxlKFBsYXRmb3JtRmlsZUhhbmRsZSYgaGFuZGxlKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3gvRmlsZVN5c3RlbVd4LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3d4L0ZpbGVTeXN0ZW1XeC5jcHAKaW5kZXggYmZjYWY4
OGE2ZWRjZTBiYzA0NTU3YTY1NTBjN2I5MTA4YWJjMTI0My4uM2MyYjQ1MzBlOTBlZDlhNWU3ZjRj
MDVhNGZiYTgzMTA2ZTdhYzJiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
d3gvRmlsZVN5c3RlbVd4LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93eC9GaWxl
U3lzdGVtV3guY3BwCkBAIC0xMDcsMTEgKzEwNywxMSBAQCBTdHJpbmcgZGlyZWN0b3J5TmFtZShj
b25zdCBTdHJpbmcmIHBhdGgpCiAgICAgcmV0dXJuIHd4RmlsZU5hbWUocGF0aCkuR2V0UGF0aCgp
OwogfQogCi1DU3RyaW5nIG9wZW5UZW1wb3JhcnlGaWxlKGNvbnN0IGNoYXIqIHByZWZpeCwgUGxh
dGZvcm1GaWxlSGFuZGxlJiBoYW5kbGUpCitTdHJpbmcgb3BlblRlbXBvcmFyeUZpbGUoY29uc3Qg
U3RyaW5nJiwgUGxhdGZvcm1GaWxlSGFuZGxlJiBoYW5kbGUpCiB7CiAgICAgbm90SW1wbGVtZW50
ZWQoKTsKICAgICBoYW5kbGUgPSBpbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlOwotICAgIHJldHVy
biBDU3RyaW5nKCk7CisgICAgcmV0dXJuIFN0cmluZygpOwogfQogCiB2b2lkIGNsb3NlRmlsZShQ
bGF0Zm9ybUZpbGVIYW5kbGUmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9Q
bHVnaW5TdHJlYW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5TdHJlYW0uY3Bw
CmluZGV4IDNiZmM1MzY5NDAzN2FiZGE1NjcxOWQ5N2NlM2FkMzY1YTQ1OWQ2ODIuLjE4YjQ5MTdl
MzhjZjFmZWE2YTZjYWIxZGQ2MDVlNjJhZmJmNjgxNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsdWdpbnMvUGx1Z2luU3RyZWFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5z
L1BsdWdpblN0cmVhbS5jcHAKQEAgLTI1Nyw3ICsyNTcsNyBAQCB2b2lkIFBsdWdpblN0cmVhbTo6
ZGVzdHJveVN0cmVhbSgpCiAKICAgICAgICAgICAgIGlmIChtX2xvYWRlcikKICAgICAgICAgICAg
ICAgICBtX2xvYWRlci0+c2V0RGVmZXJzTG9hZGluZyh0cnVlKTsKLSAgICAgICAgICAgIG1fcGx1
Z2luRnVuY3MtPmFzZmlsZShtX2luc3RhbmNlLCAmbV9zdHJlYW0sIG1fcGF0aC5kYXRhKCkpOwor
ICAgICAgICAgICAgbV9wbHVnaW5GdW5jcy0+YXNmaWxlKG1faW5zdGFuY2UsICZtX3N0cmVhbSwg
bV9wYXRoLnV0ZjgoKS5kYXRhKCkpOwogICAgICAgICAgICAgaWYgKG1fbG9hZGVyKQogICAgICAg
ICAgICAgICAgIG1fbG9hZGVyLT5zZXREZWZlcnNMb2FkaW5nKGZhbHNlKTsKICAgICAgICAgfQpA
QCAtMzA2LDEwICszMDYsOCBAQCB2b2lkIFBsdWdpblN0cmVhbTo6ZGVzdHJveVN0cmVhbSgpCiAg
ICAgaWYgKCFtX2xvYWRNYW51YWxseSAmJiBtX2NsaWVudCkKICAgICAgICAgbV9jbGllbnQtPnN0
cmVhbURpZEZpbmlzaExvYWRpbmcodGhpcyk7CiAKLSAgICBpZiAoIW1fcGF0aC5pc051bGwoKSkg
ewotICAgICAgICBTdHJpbmcgdGVtcEZpbGVQYXRoID0gU3RyaW5nOjpmcm9tVVRGOChtX3BhdGgu
ZGF0YSgpKTsKLSAgICAgICAgZGVsZXRlRmlsZSh0ZW1wRmlsZVBhdGgpOwotICAgIH0KKyAgICBp
ZiAoIW1fcGF0aC5pc051bGwoKSkKKyAgICAgICAgZGVsZXRlRmlsZShtX3BhdGgpOwogfQogCiB2
b2lkIFBsdWdpblN0cmVhbTo6ZGVsYXlEZWxpdmVyeVRpbWVyRmlyZWQoVGltZXI8UGx1Z2luU3Ry
ZWFtPiogdGltZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblN0
cmVhbS5oIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5TdHJlYW0uaAppbmRleCBiYjUx
OTRiNWNkMDg2OGVjYmIwNjE3MDMxODgxMDIxYWMwOWIxOGM5Li45YmMxMGM4ZjVjMjFlOTQ1M2Q0
YTRkNTJiZjE0MWJjYTRmZTRiMGI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5z
L1BsdWdpblN0cmVhbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luU3RyZWFt
LmgKQEAgLTExMSw4ICsxMTEsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIE5QUCBt
X2luc3RhbmNlOwogICAgICAgICB1aW50MTZfdCBtX3RyYW5zZmVyTW9kZTsKICAgICAgICAgaW50
MzJfdCBtX29mZnNldDsKLSAgICAgICAgV1RGOjpDU3RyaW5nIG1faGVhZGVyczsKLSAgICAgICAg
V1RGOjpDU3RyaW5nIG1fcGF0aDsKKyAgICAgICAgQ1N0cmluZyBtX2hlYWRlcnM7CisgICAgICAg
IFN0cmluZyBtX3BhdGg7CiAgICAgICAgIE5QUmVhc29uIG1fcmVhc29uOwogICAgICAgICBOUFN0
cmVhbSBtX3N0cmVhbTsKICAgICAgICAgUGx1Z2luUXVpcmtTZXQgbV9xdWlya3M7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
aW5kZXggZWEyZDg2ZTA4MTA0NmY3ZjhhNmQwMDU2NDQ1NzNjYTVkOTg1ZjY5Ny4uODBiNTBkODUw
MTk1MjZkMmI5N2FiZThmNDc0Y2U0OWU0ZTIyNjViZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2
IEBACisyMDExLTAyLTI3ICBQYXRyaWNrIEdhbnN0ZXJlciAgPHBhcm9nYUB3ZWJraXQub3JnPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBTdHJp
bmcgaW5zdGVhZCBvZiBDU3RyaW5nIGFzIHJldHVybiB2YWx1ZSBvZiBvcGVuVGVtcG9yYXJ5Rmls
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTUzMzIK
KworICAgICAgICAqIFNoYXJlZC9XZWJNZW1vcnlTYW1wbGVyLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViTWVtb3J5U2FtcGxlcjo6aW5pdGlhbGl6ZVRlbXBMb2dGaWxlKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW5TdHJlYW0uY3BwOgorICAg
ICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpblN0cmVhbTo6c3RvcCk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luU3RyZWFtLmg6CisKIDIwMTEt
MDItMjcgIEFsZWphbmRybyBHLiBDYXN0cm8gIDxhbGV4QGlnYWxpYS5jb20+CiAKICAgICAgICAg
VW5yZXZpZXdlZCwgZml4ZWQgR1RLIGNvbXBpbGF0aW9uIGFmdGVyIHI3OTgwNi4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJNZW1vcnlTYW1wbGVyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJNZW1vcnlTYW1wbGVyLmNwcAppbmRleCA4MmIyYmU5NGFlZWRjYzJm
MDUyMTkzYmI5NWM1MGNmM2I5Y2E1NTk0Li5lZjE3YTJiYzdhMTEwMjA5OWJjNDQxZmIxNGMxNDE5
NzgzMTRmZWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTWVtb3J5U2Ft
cGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYk1lbW9yeVNhbXBsZXIuY3Bw
CkBAIC0xMTcsNyArMTE3LDcgQEAgYm9vbCBXZWJNZW1vcnlTYW1wbGVyOjppc1J1bm5pbmcoKSBj
b25zdAogICAgIAogdm9pZCBXZWJNZW1vcnlTYW1wbGVyOjppbml0aWFsaXplVGVtcExvZ0ZpbGUo
KQogewotICAgIG1fc2FtcGxlTG9nRmlsZVBhdGggPSBTdHJpbmcoKG9wZW5UZW1wb3JhcnlGaWxl
KHByb2Nlc3NOYW1lKCkudXRmOCgpLmRhdGEoKSwgbV9zYW1wbGVMb2dGaWxlKSkuZGF0YSgpKTsK
KyAgICBtX3NhbXBsZUxvZ0ZpbGVQYXRoID0gb3BlblRlbXBvcmFyeUZpbGUocHJvY2Vzc05hbWUo
KSwgbV9zYW1wbGVMb2dGaWxlKTsKICAgICB3cml0ZUhlYWRlcnMoKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1
Z2luU3RyZWFtLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2Fw
ZS9OZXRzY2FwZVBsdWdpblN0cmVhbS5jcHAKaW5kZXggOTQ1MDMxN2U5MDMyMWE0MjE0NzBhNTEx
NDNkYmRmMTE3YmJhNmZkNy4uY2Y1YWZmY2U1YjljODU5NDhhZTk4ODM3YjNmMjg3MGFkZmMzZjdk
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBl
L05ldHNjYXBlUGx1Z2luU3RyZWFtLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW5TdHJlYW0uY3BwCkBAIC0zMDQsNyArMzA0
LDcgQEAgdm9pZCBOZXRzY2FwZVBsdWdpblN0cmVhbTo6c3RvcChOUFJlYXNvbiByZWFzb24pCiAg
ICAgICAgICAgICAKICAgICAgICAgICAgIEFTU0VSVCghbV9maWxlUGF0aC5pc051bGwoKSk7CiAg
ICAgICAgICAgICAKLSAgICAgICAgICAgIG1fcGx1Z2luLT5OUFBfU3RyZWFtQXNGaWxlKCZtX25w
U3RyZWFtLCBtX2ZpbGVQYXRoLmRhdGEoKSk7CisgICAgICAgICAgICBtX3BsdWdpbi0+TlBQX1N0
cmVhbUFzRmlsZSgmbV9ucFN0cmVhbSwgbV9maWxlUGF0aC51dGY4KCkuZGF0YSgpKTsKICAgICAg
ICAgfSBlbHNlIHsKICAgICAgICAgICAgIC8vIEp1c3QgY2xvc2UgdGhlIGZpbGUuCiAgICAgICAg
ICAgICBpZiAobV9maWxlSGFuZGxlICE9IGludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUpCkBAIC0z
MTUsOCArMzE1LDggQEAgdm9pZCBOZXRzY2FwZVBsdWdpblN0cmVhbTo6c3RvcChOUFJlYXNvbiBy
ZWFzb24pCiAgICAgICAgIC8vIHRvIGRlbGV0ZSB0aGUgZmlsZSBoZXJlIC0tIE5QUF9TdHJlYW1B
c0ZpbGUoKSBpcyBhbHdheXMgY2FsbGVkIGltbWVkaWF0ZWx5IGJlZm9yZSBOUFBfRGVzdHJveVN0
cmVhbSgpCiAgICAgICAgIC8vICh0aGUgc3RyZWFtIGRlc3RydWN0aW9uIGZ1bmN0aW9uKSwgc28g
dGhlcmUgY2FuIGJlIG5vIGV4cGVjdGF0aW9uIHRoYXQgYSBwbHVnaW4gd2lsbCByZWFkIHRoZSBz
dHJlYW0KICAgICAgICAgLy8gZmlsZSBhc3luY2hyb25vdXNseSBhZnRlciBOUFBfU3RyZWFtQXNG
aWxlKCkgaXMgY2FsbGVkLgotICAgICAgICBkZWxldGVGaWxlKFN0cmluZzo6ZnJvbVVURjgobV9m
aWxlUGF0aC5kYXRhKCkpKTsKLSAgICAgICAgbV9maWxlUGF0aCA9IENTdHJpbmcoKTsKKyAgICAg
ICAgZGVsZXRlRmlsZShtX2ZpbGVQYXRoKTsKKyAgICAgICAgbV9maWxlUGF0aCA9IFN0cmluZygp
OwogCiAgICAgICAgIC8vIE5QUF9TdHJlYW1Bc0ZpbGUgY291bGQgY2FsbCBOUE5fRGVzdHJveVN0
cmVhbSBhbmQgZGVzdHJveSB0aGUgc3RyZWFtLgogICAgICAgICBpZiAoIW1faXNTdGFydGVkKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05l
dHNjYXBlUGx1Z2luU3RyZWFtLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
TmV0c2NhcGUvTmV0c2NhcGVQbHVnaW5TdHJlYW0uaAppbmRleCA3NzU3MDAxYmU0OGRjODJhNDIx
YzZmMDlmMDZhNjljYzUzYWU1MzJkLi5mMjJhYjYxZDdlOGNjMjg0OTI2NDljOTQ5MjM0MDE5NGY0
ZDFiYmNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0
c2NhcGUvTmV0c2NhcGVQbHVnaW5TdHJlYW0uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW5TdHJlYW0uaApAQCAtODgsNyArODgs
NyBAQCBwcml2YXRlOgogICAgIHVpbnQxNl90IG1fdHJhbnNmZXJNb2RlOwogICAgIGludDMyX3Qg
bV9vZmZzZXQ7CiAKLSAgICBDU3RyaW5nIG1fZmlsZVBhdGg7CisgICAgU3RyaW5nIG1fZmlsZVBh
dGg7CiAgICAgV2ViQ29yZTo6UGxhdGZvcm1GaWxlSGFuZGxlIG1fZmlsZUhhbmRsZTsKICAgICAK
ICAgICAvLyBXaGV0aGVyIE5QUF9OZXdTdHJlYW0gaGFzIHN1Y2Nlc3NmdWxseSBiZWVuIGNhbGxl
ZC4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>84005</attachid>
            <date>2011-02-27 17:08:44 -0800</date>
            <delta_ts>2011-03-28 22:29:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-55332-20110228020841.patch</filename>
            <type>text/plain</type>
            <size>20655</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzk4MjkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1ODBlZjlkOTYwZDEzMWNj
YjMxNGUzMWIxMjcyMzBkZmU5M2IxMmM4Li45NjgyYzBmODExZDEwMGJjNDRkYjBlZDMwMjY4NWJj
ODg0YzdkNDc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTEtMDItMjcgIFBhdHJp
Y2sgR2Fuc3RlcmVyICA8cGFyb2dhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIFN0cmluZyBpbnN0ZWFkIG9mIENTdHJpbmcg
YXMgcmV0dXJuIHZhbHVlIG9mIG9wZW5UZW1wb3JhcnlGaWxlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NTMzMgorCisgICAgICAgIFdlIHVzdWFsbHkg
c3RvcmUgYWxsIHBhdGhzIGFzIFVURi0xNi4gRG8gdGhpcyBmb3IgdGVtcG9yYXJ5IGZpbGVzIHRv
by4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluCisgICAgICAgICogcGxhdGZvcm0vRmlsZVN5
c3RlbS5oOgorICAgICAgICAqIHBsYXRmb3JtL2FuZHJvaWQvRmlsZVN5c3RlbUFuZHJvaWQuY3Bw
OgorICAgICAgICAqIHBsYXRmb3JtL2JyZXcvRmlsZVN5c3RlbUJyZXcuY3BwOgorICAgICAgICAq
IHBsYXRmb3JtL2VmbC9GaWxlU3lzdGVtRWZsLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsv
RmlsZVN5c3RlbUd0ay5jcHA6CisgICAgICAgICogcGxhdGZvcm0vaGFpa3UvRmlsZVN5c3RlbUhh
aWt1LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvRmlsZVN5c3RlbU1hYy5tbToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9xdC9GaWxlU3lzdGVtUXQuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL3dp
bi9GaWxlU3lzdGVtV2luLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW5jZS9GaWxlU3lzdGVt
V2luQ0UuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL3d4L0ZpbGVTeXN0ZW1XeC5jcHA6CisgICAg
ICAgICogcGx1Z2lucy9QbHVnaW5TdHJlYW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2lu
U3RyZWFtOjpkZXN0cm95U3RyZWFtKToKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpblN0cmVhbS5o
OgorCiAyMDExLTAyLTI3ICBCZW5qYW1pbiBQb3VsYWluICA8YmVuamFtaW4ucG91bGFpbkBub2tp
YS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQW5kcmVhcyBLbGluZy4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5l
eHAuaW4KaW5kZXggZWZjYjdiZjM4MDA2NWMyMjU5MDZjZWY5ODI0MDkxYzJiNzA1MWViMi4uYTA4
ZTI0NmRjNTcwOTgxMDNmNDgwNTIzOTliNTNjMjM5OGY3ODA0OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAu
aW4KQEAgLTQ2Niw3ICs0NjYsNyBAQCBfX1pON1dlYkNvcmUxN0RldmljZU9yaWVudGF0aW9uNmNy
ZWF0ZUViZGJkYmQKIF9fWk43V2ViQ29yZTE3R2x5cGhQYWdlVHJlZU5vZGUxOHRyZWVHbHlwaFBh
Z2VDb3VudEV2CiBfX1pON1dlYkNvcmUxN0hpc3RvcnlDb250cm9sbGVyMjZzYXZlRG9jdW1lbnRB
bmRTY3JvbGxTdGF0ZUV2CiBfX1pON1dlYkNvcmUxN25hbWVGb3JDdXJzb3JUeXBlRU5TXzZDdXJz
b3I0VHlwZUUKLV9fWk43V2ViQ29yZTE3b3BlblRlbXBvcmFyeUZpbGVFUEtjUmkKK19fWk43V2Vi
Q29yZTE3b3BlblRlbXBvcmFyeUZpbGVFUktOM1dURjZTdHJpbmdFUmkKIF9fWk43V2ViQ29yZTE4
U2VhcmNoUG9wdXBNZW51TWFjQzFFUE5TXzE1UG9wdXBNZW51Q2xpZW50RQogX19aTjdXZWJDb3Jl
MThpc1N0YXJ0T2ZQYXJhZ3JhcGhFUktOU18xNVZpc2libGVQb3NpdGlvbkVOU18yN0VkaXRpbmdC
b3VuZGFyeUNyb3NzaW5nUnVsZUUKIF9fWk43V2ViQ29yZTE4cGx1Z2luU2NyaXB0T2JqZWN0RVBO
M0pTQzlFeGVjU3RhdGVFUE5TXzEzSlNIVE1MRWxlbWVudEUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Zp
bGVTeXN0ZW0uaAppbmRleCA4YjdkMGYwNGRlYTU4N2ZlNWZhOThkNmY1NzUwYTFmMTI1OGViMTBl
Li40OWE3OGU4ZDg2MWIzMTI5YTBiNTAwZDI2ZjFkNDczZmQ0OGZkZjU2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vRmlsZVN5c3RlbS5oCkBAIC0xNzIsNyArMTcyLDcgQEAgQ1N0cmluZyBmaWxlU3lz
dGVtUmVwcmVzZW50YXRpb24oY29uc3QgU3RyaW5nJik7CiBpbmxpbmUgYm9vbCBpc0hhbmRsZVZh
bGlkKGNvbnN0IFBsYXRmb3JtRmlsZUhhbmRsZSYgaGFuZGxlKSB7IHJldHVybiBoYW5kbGUgIT0g
aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZTsgfQogCiAvLyBQcmVmaXggaXMgd2hhdCB0aGUgZmls
ZW5hbWUgc2hvdWxkIGJlIHByZWZpeGVkIHdpdGgsIG5vdCB0aGUgZnVsbCBwYXRoLgotQ1N0cmlu
ZyBvcGVuVGVtcG9yYXJ5RmlsZShjb25zdCBjaGFyKiBwcmVmaXgsIFBsYXRmb3JtRmlsZUhhbmRs
ZSYpOworU3RyaW5nIG9wZW5UZW1wb3JhcnlGaWxlKGNvbnN0IFN0cmluZyYgcHJlZml4LCBQbGF0
Zm9ybUZpbGVIYW5kbGUmKTsKIFBsYXRmb3JtRmlsZUhhbmRsZSBvcGVuRmlsZShjb25zdCBTdHJp
bmcmIHBhdGgsIEZpbGVPcGVuTW9kZSk7CiB2b2lkIGNsb3NlRmlsZShQbGF0Zm9ybUZpbGVIYW5k
bGUmKTsKIC8vIFJldHVybnMgdGhlIHJlc3VsdGluZyBvZmZzZXQgZnJvbSB0aGUgYmVnaW5uaW5n
IG9mIHRoZSBmaWxlIGlmIHN1Y2Nlc3NmdWwsIC0xIG90aGVyd2lzZS4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2FuZHJvaWQvRmlsZVN5c3RlbUFuZHJvaWQuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYW5kcm9pZC9GaWxlU3lzdGVtQW5kcm9pZC5jcHAKaW5kZXgg
YWNlMDVlNDAwYzhmNmNlMmM5NzZmNmViMTZiYjViM2YxMWE2NzhlNy4uOWRiYTQyYTliNjM3OWU3
NzRhMDJmYTllMjZlMGY3ZDBmMjQ3NWYyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYW5kcm9pZC9GaWxlU3lzdGVtQW5kcm9pZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYW5kcm9pZC9GaWxlU3lzdGVtQW5kcm9pZC5jcHAKQEAgLTQ4LDI2ICs0OCwyNSBA
QCBDU3RyaW5nIGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihjb25zdCBTdHJpbmcmIHBhdGgpCiAg
ICAgcmV0dXJuIHBhdGgudXRmOCgpOwogfQogCi1DU3RyaW5nIG9wZW5UZW1wb3JhcnlGaWxlKGNv
bnN0IGNoYXIqIHByZWZpeCwgUGxhdGZvcm1GaWxlSGFuZGxlJiBoYW5kbGUpCitTdHJpbmcgb3Bl
blRlbXBvcmFyeUZpbGUoY29uc3QgU3RyaW5nJiBwcmVmaXgsIFBsYXRmb3JtRmlsZUhhbmRsZSYg
aGFuZGxlKQogewogICAgIGludCBudW1iZXIgPSByYW5kKCkgJSAxMDAwMCArIDE7Ci0gICAgQ1N0
cmluZyBmaWxlbmFtZTsKKyAgICBTdHJpbmcgZmlsZW5hbWU7CiAgICAgZG8gewogICAgICAgICBT
dHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHNQbHVnaW5QYXRo
KTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoJy8nKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQo
cHJlZml4KTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nOjpudW1iZXIobnVtYmVyKSk7
Ci0gICAgICAgIGZpbGVuYW1lID0gYnVpbGRlci50b1N0cmluZygpLnV0ZjgoKTsKLSAgICAgICAg
Y29uc3QgY2hhciogZnN0ciA9IGZpbGVuYW1lLmRhdGEoKTsKLSAgICAgICAgaGFuZGxlID0gb3Bl
bihmaWxlbmFtZS5kYXRhKCksIE9fV1JPTkxZIHwgT19DUkVBVCB8IE9fRVhDTCwgU19JUlVTUiB8
IFNfSVdVU1IpOworICAgICAgICBmaWxlbmFtZSA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAg
ICAgaGFuZGxlID0gb3BlbihmaWxlbmFtZS51dGY4KCkuZGF0YSgpLCBPX1dST05MWSB8IE9fQ1JF
QVQgfCBPX0VYQ0wsIFNfSVJVU1IgfCBTX0lXVVNSKTsKICAgICAgICAgbnVtYmVyKys7CiAgICAg
ICAgIAogICAgICAgICBpZiAoaGFuZGxlICE9IC0xKQogICAgICAgICAgICAgcmV0dXJuIGZpbGVu
YW1lOwogICAgIH0gd2hpbGUgKGVycm5vID09IEVFWElTVCk7CiAgICAgCi0gICAgcmV0dXJuIENT
dHJpbmcoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKIGJvb2wgdW5sb2FkTW9kdWxlKFBs
YXRmb3JtTW9kdWxlIG1vZHVsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2JyZXcvRmlsZVN5c3RlbUJyZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYnJldy9G
aWxlU3lzdGVtQnJldy5jcHAKaW5kZXggNjFkNTY4ZDJmZDQxZmVjZTlkYWY2Mzg4MTQzN2IxNGUw
NTdhNWExMC4uMjUxYzAwNGQwM2QzMjJmYjVlMTkxMmRiNzUwY2RjMzdkMjNhZjZlOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYnJldy9GaWxlU3lzdGVtQnJldy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYnJldy9GaWxlU3lzdGVtQnJldy5jcHAKQEAgLTE4
Niw3ICsxODYsNyBAQCBTdHJpbmcgZGlyZWN0b3J5TmFtZShjb25zdCBTdHJpbmcmIHBhdGgpCiAg
ICAgcmV0dXJuIGRpck5hbWU7CiB9CiAKLUNTdHJpbmcgb3BlblRlbXBvcmFyeUZpbGUoY29uc3Qg
Y2hhciogcHJlZml4LCBQbGF0Zm9ybUZpbGVIYW5kbGUmIGhhbmRsZSkKK1N0cmluZyBvcGVuVGVt
cG9yYXJ5RmlsZShjb25zdCBTdHJpbmcmIHByZWZpeCwgUGxhdGZvcm1GaWxlSGFuZGxlJiBoYW5k
bGUpCiB7CiAgICAgLy8gQlJFVyBkb2VzIG5vdCBoYXZlIGEgc3lzdGVtLXdpZGUgdGVtcG9yYXJ5
IGRpcmVjdG9yeSwKICAgICAvLyB1c2UgImZzOi9+L3RtcCIgYXMgb3VyIHRlbXBvcmFyeSBkaXJl
Y3RvcnkuCkBAIC0xOTksMjQgKzE5OSwyNCBAQCBDU3RyaW5nIG9wZW5UZW1wb3JhcnlGaWxlKGNv
bnN0IGNoYXIqIHByZWZpeCwgUGxhdGZvcm1GaWxlSGFuZGxlJiBoYW5kbGUpCiAKICAgICAvLyBM
b29wIHVudGlsIHdlIGZpbmQgYSB0ZW1wb3JhcnkgZmlsZW5hbWUgdGhhdCBkb2VzIG5vdCBleGlz
dC4KICAgICBpbnQgbnVtYmVyID0gc3RhdGljX2Nhc3Q8aW50PihyYW5kb21OdW1iZXIoKSAqIDEw
MDAwKTsKLSAgICBDU3RyaW5nIGZpbGVuYW1lOworICAgIFN0cmluZyBmaWxlbmFtZTsKICAgICBk
byB7CiAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgYnVpbGRlci5hcHBl
bmQodGVtcFBhdGgpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCgnLycpOwogICAgICAgICBidWls
ZGVyLmFwcGVuZChwcmVmaXgpOwogICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmc6Om51bWJl
cihudW1iZXIpKTsKLSAgICAgICAgZmlsZW5hbWUgPSBidWlsZGVyLnRvU3RyaW5nKCkudXRmOCgp
OworICAgICAgICBmaWxlbmFtZSA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKICAgICAgICAgbnVtYmVy
Kys7Ci0gICAgfSB3aGlsZSAoSUZJTEVNR1JfVGVzdChmaWxlTWdyLmdldCgpLCBmaWxlbmFtZS5k
YXRhKCkpID09IFNVQ0NFU1MpOworICAgIH0gd2hpbGUgKElGSUxFTUdSX1Rlc3QoZmlsZU1nci5n
ZXQoKSwgZmlsZW5hbWUudXRmOCgpLmRhdGEoKSkgPT0gU1VDQ0VTUyk7CiAKLSAgICBJRmlsZSog
dGVtcEZpbGUgPSBJRklMRU1HUl9PcGVuRmlsZShmaWxlTWdyLmdldCgpLCBmaWxlbmFtZS5kYXRh
KCksIF9PRk1fQ1JFQVRFKTsKKyAgICBJRmlsZSogdGVtcEZpbGUgPSBJRklMRU1HUl9PcGVuRmls
ZShmaWxlTWdyLmdldCgpLCBmaWxlbmFtZS51dGY4KCkuZGF0YSgpLCBfT0ZNX0NSRUFURSk7CiAg
ICAgaWYgKHRlbXBGaWxlKSB7CiAgICAgICAgIGhhbmRsZSA9IHRlbXBGaWxlOwogICAgICAgICBy
ZXR1cm4gZmlsZW5hbWU7CiAgICAgfQogCi0gICAgcmV0dXJuIENTdHJpbmcoKTsKKyAgICByZXR1
cm4gU3RyaW5nKCk7CiB9CiAKIHZvaWQgY2xvc2VGaWxlKFBsYXRmb3JtRmlsZUhhbmRsZSYgaGFu
ZGxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0ZpbGVTeXN0ZW1F
ZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0ZpbGVTeXN0ZW1FZmwuY3BwCmlu
ZGV4IGNiMTE3YmMzY2VhMDkyMGFkNDQzOTc0ZjBmOTRlNzYyYjQ2ZWIzNjAuLjAxYzZjNjcyNmM4
MzY2ZTRmODVkODc3YjY3ZDBkNzYzMTA1NWY1OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2VmbC9GaWxlU3lzdGVtRWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9lZmwvRmlsZVN5c3RlbUVmbC5jcHAKQEAgLTY3LDcgKzY3LDcgQEAgQ1N0cmluZyBmaWxl
U3lzdGVtUmVwcmVzZW50YXRpb24oY29uc3QgU3RyaW5nJiBwYXRoKQogI2VuZGlmCiB9CiAKLUNT
dHJpbmcgb3BlblRlbXBvcmFyeUZpbGUoY29uc3QgY2hhciogcHJlZml4LCBQbGF0Zm9ybUZpbGVI
YW5kbGUmIGhhbmRsZSkKK1N0cmluZyBvcGVuVGVtcG9yYXJ5RmlsZShjb25zdCBTdHJpbmcmIHBy
ZWZpeCwgUGxhdGZvcm1GaWxlSGFuZGxlJiBoYW5kbGUpCiB7CiAgICAgY2hhciBidWZmZXJbUEFU
SF9NQVhdOwogICAgIGNvbnN0IGNoYXIqIHRtcERpciA9IGdldGVudigiVE1QRElSIik7CkBAIC03
NSwxOCArNzUsMTggQEAgQ1N0cmluZyBvcGVuVGVtcG9yYXJ5RmlsZShjb25zdCBjaGFyKiBwcmVm
aXgsIFBsYXRmb3JtRmlsZUhhbmRsZSYgaGFuZGxlKQogICAgIGlmICghdG1wRGlyKQogICAgICAg
ICB0bXBEaXIgPSAiL3RtcCI7CiAKLSAgICBpZiAoc25wcmludGYoYnVmZmVyLCBQQVRIX01BWCwg
IiVzLyVzWFhYWFhYIiwgdG1wRGlyLCBwcmVmaXgpID49IFBBVEhfTUFYKQorICAgIGlmIChzbnBy
aW50ZihidWZmZXIsIFBBVEhfTUFYLCAiJXMvJXNYWFhYWFgiLCB0bXBEaXIsIHByZWZpeC51dGY4
KCkuZGF0YSgpKSA+PSBQQVRIX01BWCkKICAgICAgICAgZ290byBlbmQ7CiAKICAgICBoYW5kbGUg
PSBta3N0ZW1wKGJ1ZmZlcik7CiAgICAgaWYgKGhhbmRsZSA8IDApCiAgICAgICAgIGdvdG8gZW5k
OwogCi0gICAgcmV0dXJuIENTdHJpbmcoYnVmZmVyKTsKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9t
VVRGOChidWZmZXIpOwogCiBlbmQ6CiAgICAgaGFuZGxlID0gaW52YWxpZFBsYXRmb3JtRmlsZUhh
bmRsZTsKLSAgICByZXR1cm4gQ1N0cmluZygpOworICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAog
Ym9vbCB1bmxvYWRNb2R1bGUoUGxhdGZvcm1Nb2R1bGUgbW9kdWxlKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0ZpbGVTeXN0ZW1HdGsuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3RrL0ZpbGVTeXN0ZW1HdGsuY3BwCmluZGV4IGIzYzRjOWZkYzI5YmY2ZTMx
NmNhNjA1MTFiYmQ5ZWRmYmJiOTE3NGQuLmUyYjE2NDJkZTNmNzg1MTM0YzIxOWEwOGRjMzJhOTFm
ZWNkYTIzZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9GaWxlU3lz
dGVtR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvRmlsZVN5c3RlbUd0
ay5jcHAKQEAgLTIyNywxNiArMjI3LDE2IEBAIFZlY3RvcjxTdHJpbmc+IGxpc3REaXJlY3Rvcnko
Y29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBTdHJpbmcmIGZpbHRlcikKICAgICByZXR1cm4gZW50
cmllczsKIH0KIAotQ1N0cmluZyBvcGVuVGVtcG9yYXJ5RmlsZShjb25zdCBjaGFyKiBwcmVmaXgs
IFBsYXRmb3JtRmlsZUhhbmRsZSYgaGFuZGxlKQorU3RyaW5nIG9wZW5UZW1wb3JhcnlGaWxlKGNv
bnN0IFN0cmluZyYgcHJlZml4LCBQbGF0Zm9ybUZpbGVIYW5kbGUmIGhhbmRsZSkKIHsKLSAgICBH
T3duUHRyPGdjaGFyPiBmaWxlbmFtZShnX3N0cmR1cF9wcmludGYoIiVzJXMiLCBwcmVmaXgsIGNy
ZWF0ZUNhbm9uaWNhbFVVSURTdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAgR093blB0cjxn
Y2hhcj4gZmlsZW5hbWUoZ19zdHJkdXBfcHJpbnRmKCIlcyVzIiwgcHJlZml4LnV0ZjgoKS5kYXRh
KCksIGNyZWF0ZUNhbm9uaWNhbFVVSURTdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CiAgICAgR093
blB0cjxnY2hhcj4gdGVtcFBhdGgoZ19idWlsZF9maWxlbmFtZShnX2dldF90bXBfZGlyKCksIGZp
bGVuYW1lLmdldCgpLCBOVUxMKSk7CiAgICAgR1JlZlB0cjxHRmlsZT4gZmlsZSA9IGFkb3B0R1Jl
ZihnX2ZpbGVfbmV3X2Zvcl9wYXRoKHRlbXBQYXRoLmdldCgpKSk7CiAKICAgICBoYW5kbGUgPSBn
X2ZpbGVfY3JlYXRlX3JlYWR3cml0ZShmaWxlLmdldCgpLCBHX0ZJTEVfQ1JFQVRFX05PTkUsIDAs
IDApOwogICAgIGlmICghaXNIYW5kbGVWYWxpZChoYW5kbGUpKQotICAgICAgICByZXR1cm4gQ1N0
cmluZygpOwotICAgIHJldHVybiB0ZW1wUGF0aC5nZXQoKTsKKyAgICAgICAgcmV0dXJuIFN0cmlu
ZygpOworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KHRlbXBQYXRoLmdldCgpKTsKIH0KIAog
UGxhdGZvcm1GaWxlSGFuZGxlIG9wZW5GaWxlKGNvbnN0IFN0cmluZyYgcGF0aCwgRmlsZU9wZW5N
b2RlIG1vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9GaWxl
U3lzdGVtSGFpa3UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaGFpa3UvRmlsZVN5c3Rl
bUhhaWt1LmNwcAppbmRleCBiMGQzNGYyMzhmYjQ2MmNiMDlhMGU0YjFmM2NkMzA4MWI2MWNkYzI1
Li43OTg1YzU0MzU1ZGE0MjlmYzI0NDYzNTY0NzY5N2I4ZDdiNmJmZWY3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9GaWxlU3lzdGVtSGFpa3UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2hhaWt1L0ZpbGVTeXN0ZW1IYWlrdS5jcHAKQEAgLTU2LDEx
ICs1NiwxMSBAQCBTdHJpbmcgaG9tZURpcmVjdG9yeVBhdGgoKQogICAgIHJldHVybiBTdHJpbmco
cGF0aC5QYXRoKCkpOwogfQogCi1DU3RyaW5nIG9wZW5UZW1wb3JhcnlGaWxlKGNvbnN0IGNoYXIq
IHByZWZpeCwgUGxhdGZvcm1GaWxlSGFuZGxlJiBoYW5kbGUpCitTdHJpbmcgb3BlblRlbXBvcmFy
eUZpbGUoY29uc3QgU3RyaW5nJiwgUGxhdGZvcm1GaWxlSGFuZGxlJiBoYW5kbGUpCiB7CiAgICAg
bm90SW1wbGVtZW50ZWQoKTsKICAgICBoYW5kbGUgPSBpbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxl
OwotICAgIHJldHVybiBDU3RyaW5nKCk7CisgICAgcmV0dXJuIFN0cmluZygpOwogfQogCiB2b2lk
IGNsb3NlRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL0ZpbGVTeXN0ZW1NYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvRmlsZVN5c3RlbU1hYy5tbQppbmRleCA4Y2RkMzgyNDcyYzczOTBkNzJjYzUzOGRiZWI4
MjBkZTlhODhiOWZjLi5hOWNiY2Y0OGJhMzMzY2RmY2M0ZjJhMjlmM2U2NDJhOTkwMmM3YWNjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRmlsZVN5c3RlbU1hYy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRmlsZVN5c3RlbU1hYy5tbQpAQCAtNDEs
MjggKzQxLDI5IEBAIFN0cmluZyBob21lRGlyZWN0b3J5UGF0aCgpCiAgICAgcmV0dXJuIE5TSG9t
ZURpcmVjdG9yeSgpOwogfQogCi1DU3RyaW5nIG9wZW5UZW1wb3JhcnlGaWxlKGNvbnN0IGNoYXIq
IHByZWZpeCwgUGxhdGZvcm1GaWxlSGFuZGxlJiBwbGF0Zm9ybUZpbGVIYW5kbGUpCitTdHJpbmcg
b3BlblRlbXBvcmFyeUZpbGUoY29uc3QgU3RyaW5nJiBwcmVmaXgsIFBsYXRmb3JtRmlsZUhhbmRs
ZSYgcGxhdGZvcm1GaWxlSGFuZGxlKQogewogICAgIHBsYXRmb3JtRmlsZUhhbmRsZSA9IGludmFs
aWRQbGF0Zm9ybUZpbGVIYW5kbGU7CiAgICAgCiAgICAgVmVjdG9yPGNoYXI+IHRlbXBvcmFyeUZp
bGVQYXRoKFBBVEhfTUFYKTsKICAgICBpZiAoIWNvbmZzdHIoX0NTX0RBUldJTl9VU0VSX1RFTVBf
RElSLCB0ZW1wb3JhcnlGaWxlUGF0aC5kYXRhKCksIHRlbXBvcmFyeUZpbGVQYXRoLnNpemUoKSkp
Ci0gICAgICAgIHJldHVybiBDU3RyaW5nKCk7CisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKIAog
ICAgIC8vIFNocmluayB0aGUgdmVjdG9yLiAgIAogICAgIHRlbXBvcmFyeUZpbGVQYXRoLnNocmlu
ayhzdHJsZW4odGVtcG9yYXJ5RmlsZVBhdGguZGF0YSgpKSk7CiAgICAgQVNTRVJUKHRlbXBvcmFy
eUZpbGVQYXRoLmxhc3QoKSA9PSAnLycpOwogCi0gICAgLy8gQXBwZW5kIHRoZSBmaWxlIG5hbWUu
ICAgIAotICAgIHRlbXBvcmFyeUZpbGVQYXRoLmFwcGVuZChwcmVmaXgsIHN0cmxlbihwcmVmaXgp
KTsKKyAgICAvLyBBcHBlbmQgdGhlIGZpbGUgbmFtZS4KKyAgICBDU3RyaW5nIHByZWZpeFV0Zjgg
PSBwcmVmaXgudXRmOCgpOworICAgIHRlbXBvcmFyeUZpbGVQYXRoLmFwcGVuZChwcmVmaXhVdGY4
LmRhdGEoKSwgcHJlZml4VXRmOC5sZW5ndGgoKSk7CiAgICAgdGVtcG9yYXJ5RmlsZVBhdGguYXBw
ZW5kKCJYWFhYWFgiLCA2KTsKICAgICB0ZW1wb3JhcnlGaWxlUGF0aC5hcHBlbmQoJ1wwJyk7CiAK
ICAgICBwbGF0Zm9ybUZpbGVIYW5kbGUgPSBta3N0ZW1wKHRlbXBvcmFyeUZpbGVQYXRoLmRhdGEo
KSk7CiAgICAgaWYgKHBsYXRmb3JtRmlsZUhhbmRsZSA9PSBpbnZhbGlkUGxhdGZvcm1GaWxlSGFu
ZGxlKQotICAgICAgICByZXR1cm4gQ1N0cmluZygpOworICAgICAgICByZXR1cm4gU3RyaW5nKCk7
CiAKLSAgICByZXR1cm4gQ1N0cmluZyh0ZW1wb3JhcnlGaWxlUGF0aC5kYXRhKCkpOworICAgIHJl
dHVybiBTdHJpbmc6OmZyb21VVEY4KHRlbXBvcmFyeUZpbGVQYXRoLmRhdGEoKSk7CiB9CiAKIGJv
b2wgY2FuRXhjbHVkZUZyb21CYWNrdXAoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vcXQvRmlsZVN5c3RlbVF0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0Zp
bGVTeXN0ZW1RdC5jcHAKaW5kZXggZDg4YTk2N2VmM2Y1MmU1NmE2MThlNzZlM2E5MDJjNWQ3YTQ3
ZjRjOC4uMzI2NDRkMTc4YmJkNmUyYzllMGViYTNlZTE0YzU0MzhmMmM3NGIxZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRmlsZVN5c3RlbVF0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9GaWxlU3lzdGVtUXQuY3BwCkBAIC0xMTQsMTkgKzExNCwx
OSBAQCBWZWN0b3I8U3RyaW5nPiBsaXN0RGlyZWN0b3J5KGNvbnN0IFN0cmluZyYgcGF0aCwgY29u
c3QgU3RyaW5nJiBmaWx0ZXIpCiAgICAgcmV0dXJuIGVudHJpZXM7CiB9CiAKLUNTdHJpbmcgb3Bl
blRlbXBvcmFyeUZpbGUoY29uc3QgY2hhciogcHJlZml4LCBQbGF0Zm9ybUZpbGVIYW5kbGUmIGhh
bmRsZSkKK1N0cmluZyBvcGVuVGVtcG9yYXJ5RmlsZShjb25zdCBTdHJpbmcmIHByZWZpeCwgUGxh
dGZvcm1GaWxlSGFuZGxlJiBoYW5kbGUpCiB7CiAjaWZuZGVmIFFUX05PX1RFTVBPUkFSWUZJTEUK
LSAgICBRVGVtcG9yYXJ5RmlsZSogdGVtcEZpbGUgPSBuZXcgUVRlbXBvcmFyeUZpbGUoUURpcjo6
dGVtcFBhdGgoKSArIFFMYXRpbjFDaGFyKCcvJykgKyBRTGF0aW4xU3RyaW5nKHByZWZpeCkpOwor
ICAgIFFUZW1wb3JhcnlGaWxlKiB0ZW1wRmlsZSA9IG5ldyBRVGVtcG9yYXJ5RmlsZShRRGlyOjp0
ZW1wUGF0aCgpICsgUUxhdGluMUNoYXIoJy8nKSArIFFTdHJpbmcocHJlZml4KSk7CiAgICAgdGVt
cEZpbGUtPnNldEF1dG9SZW1vdmUoZmFsc2UpOwogICAgIFFGaWxlKiB0ZW1wID0gdGVtcEZpbGU7
CiAgICAgaWYgKHRlbXAtPm9wZW4oUUlPRGV2aWNlOjpSZWFkV3JpdGUpKSB7CiAgICAgICAgIGhh
bmRsZSA9IHRlbXA7Ci0gICAgICAgIHJldHVybiBTdHJpbmcodGVtcC0+ZmlsZU5hbWUoKSkudXRm
OCgpOworICAgICAgICByZXR1cm4gdGVtcC0+ZmlsZU5hbWUoKTsKICAgICB9CiAjZW5kaWYKICAg
ICBoYW5kbGUgPSBpbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlOwotICAgIHJldHVybiBDU3RyaW5n
KCk7CisgICAgcmV0dXJuIFN0cmluZygpOwogfQogCiBQbGF0Zm9ybUZpbGVIYW5kbGUgb3BlbkZp
bGUoY29uc3QgU3RyaW5nJiBwYXRoLCBGaWxlT3Blbk1vZGUgbW9kZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9GaWxlU3lzdGVtV2luLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3dpbi9GaWxlU3lzdGVtV2luLmNwcAppbmRleCA1ZWUzYjhlYTJlNmRkMzA0
MDQ1Mjc4ZjBiOWIzNjQxZGFhZmUyYTljLi42MTgzNzg1MThlYTNhZGMxM2Y3OWVkNTc0YTZhYjA2
NWRkNjIzY2Q5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vRmlsZVN5
c3RlbVdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0ZpbGVTeXN0ZW1X
aW4uY3BwCkBAIC0xODQsMTggKzE4NCwxOCBAQCBzdGF0aWMgU3RyaW5nIGNhY2hlZFN0b3JhZ2VE
aXJlY3RvcnkoRFdPUkQgcGF0aElkZW50aWZpZXIpCiAgICAgcmV0dXJuIGRpcmVjdG9yeTsKIH0K
IAotQ1N0cmluZyBvcGVuVGVtcG9yYXJ5RmlsZShjb25zdCBjaGFyKiwgUGxhdGZvcm1GaWxlSGFu
ZGxlJiBoYW5kbGUpCitTdHJpbmcgb3BlblRlbXBvcmFyeUZpbGUoY29uc3QgU3RyaW5nJiwgUGxh
dGZvcm1GaWxlSGFuZGxlJiBoYW5kbGUpCiB7CiAgICAgaGFuZGxlID0gSU5WQUxJRF9IQU5ETEVf
VkFMVUU7CiAKICAgICBjaGFyIHRlbXBQYXRoW01BWF9QQVRIXTsKICAgICBpbnQgdGVtcFBhdGhM
ZW5ndGggPSA6OkdldFRlbXBQYXRoQShXVEZfQVJSQVlfTEVOR1RIKHRlbXBQYXRoKSwgdGVtcFBh
dGgpOwogICAgIGlmICh0ZW1wUGF0aExlbmd0aCA8PSAwIHx8IHRlbXBQYXRoTGVuZ3RoID4gV1RG
X0FSUkFZX0xFTkdUSCh0ZW1wUGF0aCkpCi0gICAgICAgIHJldHVybiBDU3RyaW5nKCk7CisgICAg
ICAgIHJldHVybiBTdHJpbmcoKTsKIAogICAgIEhDUllQVFBST1YgaENyeXB0UHJvdiA9IDA7CiAg
ICAgaWYgKCFDcnlwdEFjcXVpcmVDb250ZXh0KCZoQ3J5cHRQcm92LCAwLCAwLCBQUk9WX1JTQV9G
VUxMLCBDUllQVF9WRVJJRllDT05URVhUKSkKLSAgICAgICAgcmV0dXJuIENTdHJpbmcoKTsKKyAg
ICAgICAgcmV0dXJuIFN0cmluZygpOwogCiAgICAgY2hhciBwcm9wb3NlZFBhdGhbTUFYX1BBVEhd
OwogICAgIHdoaWxlICgxKSB7CkBAIC0yMjYsOSArMjI2LDkgQEAgQ1N0cmluZyBvcGVuVGVtcG9y
YXJ5RmlsZShjb25zdCBjaGFyKiwgUGxhdGZvcm1GaWxlSGFuZGxlJiBoYW5kbGUpCiAgICAgQ3J5
cHRSZWxlYXNlQ29udGV4dChoQ3J5cHRQcm92LCAwKTsKIAogICAgIGlmICghaXNIYW5kbGVWYWxp
ZChoYW5kbGUpKQotICAgICAgICByZXR1cm4gQ1N0cmluZygpOworICAgICAgICByZXR1cm4gU3Ry
aW5nKCk7CiAKLSAgICByZXR1cm4gcHJvcG9zZWRQYXRoOworICAgIHJldHVybiBTdHJpbmc6OmZy
b21VVEY4KHByb3Bvc2VkUGF0aCk7CiB9CiAKIHZvaWQgY2xvc2VGaWxlKFBsYXRmb3JtRmlsZUhh
bmRsZSYgaGFuZGxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luY2Uv
RmlsZVN5c3RlbVdpbkNFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbmNlL0ZpbGVT
eXN0ZW1XaW5DRS5jcHAKaW5kZXggNDlhY2YxMjhjMDI4YWQ2MDc3Nzk4Yzc0OTNjMTg1YzdmZDIw
ZDMyMi4uNjBlMDdhYTRlYTBhMTFmYjNjYTA1OGExYTNiYzBmMWU4MDY5MDU1MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luY2UvRmlsZVN5c3RlbVdpbkNFLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW5jZS9GaWxlU3lzdGVtV2luQ0UuY3BwCkBAIC0x
OTQsMTEgKzE5NCwxMSBAQCBDU3RyaW5nIG9wZW5UZW1wb3JhcnlGaWxlKGNvbnN0IGNoYXIqLCBQ
bGF0Zm9ybUZpbGVIYW5kbGUmIGhhbmRsZSkKICAgICB3Y2hhcl90IHRlbXBQYXRoW01BWF9QQVRI
XTsKICAgICBpbnQgdGVtcFBhdGhMZW5ndGggPSA6OkdldFRlbXBQYXRoKFdURl9BUlJBWV9MRU5H
VEgodGVtcFBhdGgpLCB0ZW1wUGF0aCk7CiAgICAgaWYgKHRlbXBQYXRoTGVuZ3RoIDw9IDAgfHwg
dGVtcFBhdGhMZW5ndGggPiBXVEZfQVJSQVlfTEVOR1RIKHRlbXBQYXRoKSkKLSAgICAgICAgcmV0
dXJuIENTdHJpbmcoKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOwogCiAgICAgSENSWVBUUFJP
ViBoQ3J5cHRQcm92ID0gMDsKICAgICBpZiAoIUNyeXB0QWNxdWlyZUNvbnRleHQoJmhDcnlwdFBy
b3YsIDAsIDAsIFBST1ZfUlNBX0ZVTEwsIENSWVBUX1ZFUklGWUNPTlRFWFQpKQotICAgICAgICBy
ZXR1cm4gQ1N0cmluZygpOworICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAKICAgICBTdHJpbmcg
cHJvcG9zZWRQYXRoOwogICAgIHdoaWxlICgxKSB7CkBAIC0yMjksOSArMjI5LDkgQEAgQ1N0cmlu
ZyBvcGVuVGVtcG9yYXJ5RmlsZShjb25zdCBjaGFyKiwgUGxhdGZvcm1GaWxlSGFuZGxlJiBoYW5k
bGUpCiAgICAgQ3J5cHRSZWxlYXNlQ29udGV4dChoQ3J5cHRQcm92LCAwKTsKIAogICAgIGlmICgh
aXNIYW5kbGVWYWxpZChoYW5kbGUpKQotICAgICAgICByZXR1cm4gQ1N0cmluZygpOworICAgICAg
ICByZXR1cm4gU3RyaW5nKCk7CiAKLSAgICByZXR1cm4gcHJvcG9zZWRQYXRoLmxhdGluMSgpOwor
ICAgIHJldHVybiBwcm9wb3NlZFBhdGg7CiB9CiAKIHZvaWQgY2xvc2VGaWxlKFBsYXRmb3JtRmls
ZUhhbmRsZSYgaGFuZGxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3gv
RmlsZVN5c3RlbVd4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3d4L0ZpbGVTeXN0ZW1X
eC5jcHAKaW5kZXggYmZjYWY4OGE2ZWRjZTBiYzA0NTU3YTY1NTBjN2I5MTA4YWJjMTI0My4uM2My
YjQ1MzBlOTBlZDlhNWU3ZjRjMDVhNGZiYTgzMTA2ZTdhYzJiYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vd3gvRmlsZVN5c3RlbVd4LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS93eC9GaWxlU3lzdGVtV3guY3BwCkBAIC0xMDcsMTEgKzEwNywxMSBAQCBTdHJp
bmcgZGlyZWN0b3J5TmFtZShjb25zdCBTdHJpbmcmIHBhdGgpCiAgICAgcmV0dXJuIHd4RmlsZU5h
bWUocGF0aCkuR2V0UGF0aCgpOwogfQogCi1DU3RyaW5nIG9wZW5UZW1wb3JhcnlGaWxlKGNvbnN0
IGNoYXIqIHByZWZpeCwgUGxhdGZvcm1GaWxlSGFuZGxlJiBoYW5kbGUpCitTdHJpbmcgb3BlblRl
bXBvcmFyeUZpbGUoY29uc3QgU3RyaW5nJiwgUGxhdGZvcm1GaWxlSGFuZGxlJiBoYW5kbGUpCiB7
CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICBoYW5kbGUgPSBpbnZhbGlkUGxhdGZvcm1GaWxl
SGFuZGxlOwotICAgIHJldHVybiBDU3RyaW5nKCk7CisgICAgcmV0dXJuIFN0cmluZygpOwogfQog
CiB2b2lkIGNsb3NlRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUmKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5TdHJlYW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lu
cy9QbHVnaW5TdHJlYW0uY3BwCmluZGV4IDNiZmM1MzY5NDAzN2FiZGE1NjcxOWQ5N2NlM2FkMzY1
YTQ1OWQ2ODIuLjE4YjQ5MTdlMzhjZjFmZWE2YTZjYWIxZGQ2MDVlNjJhZmJmNjgxNWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luU3RyZWFtLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblN0cmVhbS5jcHAKQEAgLTI1Nyw3ICsyNTcsNyBAQCB2
b2lkIFBsdWdpblN0cmVhbTo6ZGVzdHJveVN0cmVhbSgpCiAKICAgICAgICAgICAgIGlmIChtX2xv
YWRlcikKICAgICAgICAgICAgICAgICBtX2xvYWRlci0+c2V0RGVmZXJzTG9hZGluZyh0cnVlKTsK
LSAgICAgICAgICAgIG1fcGx1Z2luRnVuY3MtPmFzZmlsZShtX2luc3RhbmNlLCAmbV9zdHJlYW0s
IG1fcGF0aC5kYXRhKCkpOworICAgICAgICAgICAgbV9wbHVnaW5GdW5jcy0+YXNmaWxlKG1faW5z
dGFuY2UsICZtX3N0cmVhbSwgbV9wYXRoLnV0ZjgoKS5kYXRhKCkpOwogICAgICAgICAgICAgaWYg
KG1fbG9hZGVyKQogICAgICAgICAgICAgICAgIG1fbG9hZGVyLT5zZXREZWZlcnNMb2FkaW5nKGZh
bHNlKTsKICAgICAgICAgfQpAQCAtMzA2LDEwICszMDYsOCBAQCB2b2lkIFBsdWdpblN0cmVhbTo6
ZGVzdHJveVN0cmVhbSgpCiAgICAgaWYgKCFtX2xvYWRNYW51YWxseSAmJiBtX2NsaWVudCkKICAg
ICAgICAgbV9jbGllbnQtPnN0cmVhbURpZEZpbmlzaExvYWRpbmcodGhpcyk7CiAKLSAgICBpZiAo
IW1fcGF0aC5pc051bGwoKSkgewotICAgICAgICBTdHJpbmcgdGVtcEZpbGVQYXRoID0gU3RyaW5n
Ojpmcm9tVVRGOChtX3BhdGguZGF0YSgpKTsKLSAgICAgICAgZGVsZXRlRmlsZSh0ZW1wRmlsZVBh
dGgpOwotICAgIH0KKyAgICBpZiAoIW1fcGF0aC5pc051bGwoKSkKKyAgICAgICAgZGVsZXRlRmls
ZShtX3BhdGgpOwogfQogCiB2b2lkIFBsdWdpblN0cmVhbTo6ZGVsYXlEZWxpdmVyeVRpbWVyRmly
ZWQoVGltZXI8UGx1Z2luU3RyZWFtPiogdGltZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbHVnaW5zL1BsdWdpblN0cmVhbS5oIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5T
dHJlYW0uaAppbmRleCBiYjUxOTRiNWNkMDg2OGVjYmIwNjE3MDMxODgxMDIxYWMwOWIxOGM5Li45
YmMxMGM4ZjVjMjFlOTQ1M2Q0YTRkNTJiZjE0MWJjYTRmZTRiMGI2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblN0cmVhbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
dWdpbnMvUGx1Z2luU3RyZWFtLmgKQEAgLTExMSw4ICsxMTEsOCBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgIE5QUCBtX2luc3RhbmNlOwogICAgICAgICB1aW50MTZfdCBtX3RyYW5zZmVy
TW9kZTsKICAgICAgICAgaW50MzJfdCBtX29mZnNldDsKLSAgICAgICAgV1RGOjpDU3RyaW5nIG1f
aGVhZGVyczsKLSAgICAgICAgV1RGOjpDU3RyaW5nIG1fcGF0aDsKKyAgICAgICAgQ1N0cmluZyBt
X2hlYWRlcnM7CisgICAgICAgIFN0cmluZyBtX3BhdGg7CiAgICAgICAgIE5QUmVhc29uIG1fcmVh
c29uOwogICAgICAgICBOUFN0cmVhbSBtX3N0cmVhbTsKICAgICAgICAgUGx1Z2luUXVpcmtTZXQg
bV9xdWlya3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZWEyZDg2ZTA4MTA0NmY3ZjhhNmQwMDU2NDQ1NzNjYTVk
OTg1ZjY5Ny4uODBiNTBkODUwMTk1MjZkMmI5N2FiZThmNDc0Y2U0OWU0ZTIyNjViZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDExLTAyLTI3ICBQYXRyaWNrIEdhbnN0ZXJlciAgPHBh
cm9nYUB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFVzZSBTdHJpbmcgaW5zdGVhZCBvZiBDU3RyaW5nIGFzIHJldHVybiB2YWx1ZSBv
ZiBvcGVuVGVtcG9yYXJ5RmlsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTUzMzIKKworICAgICAgICAqIFNoYXJlZC9XZWJNZW1vcnlTYW1wbGVyLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViTWVtb3J5U2FtcGxlcjo6aW5pdGlhbGl6ZVRlbXBMb2dG
aWxlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVn
aW5TdHJlYW0uY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpblN0cmVhbTo6c3Rv
cCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2lu
U3RyZWFtLmg6CisKIDIwMTEtMDItMjcgIEFsZWphbmRybyBHLiBDYXN0cm8gIDxhbGV4QGlnYWxp
YS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgZml4ZWQgR1RLIGNvbXBpbGF0aW9uIGFmdGVy
IHI3OTgwNi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJNZW1vcnlTYW1w
bGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJNZW1vcnlTYW1wbGVyLmNwcAppbmRl
eCA4MmIyYmU5NGFlZWRjYzJmMDUyMTkzYmI5NWM1MGNmM2I5Y2E1NTk0Li5lZjE3YTJiYzdhMTEw
MjA5OWJjNDQxZmIxNGMxNDE5NzgzMTRmZWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViTWVtb3J5U2FtcGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
Yk1lbW9yeVNhbXBsZXIuY3BwCkBAIC0xMTcsNyArMTE3LDcgQEAgYm9vbCBXZWJNZW1vcnlTYW1w
bGVyOjppc1J1bm5pbmcoKSBjb25zdAogICAgIAogdm9pZCBXZWJNZW1vcnlTYW1wbGVyOjppbml0
aWFsaXplVGVtcExvZ0ZpbGUoKQogewotICAgIG1fc2FtcGxlTG9nRmlsZVBhdGggPSBTdHJpbmco
KG9wZW5UZW1wb3JhcnlGaWxlKHByb2Nlc3NOYW1lKCkudXRmOCgpLmRhdGEoKSwgbV9zYW1wbGVM
b2dGaWxlKSkuZGF0YSgpKTsKKyAgICBtX3NhbXBsZUxvZ0ZpbGVQYXRoID0gb3BlblRlbXBvcmFy
eUZpbGUocHJvY2Vzc05hbWUoKSwgbV9zYW1wbGVMb2dGaWxlKTsKICAgICB3cml0ZUhlYWRlcnMo
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05l
dHNjYXBlL05ldHNjYXBlUGx1Z2luU3RyZWFtLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpblN0cmVhbS5jcHAKaW5kZXggOTQ1MDMx
N2U5MDMyMWE0MjE0NzBhNTExNDNkYmRmMTE3YmJhNmZkNy4uY2Y1YWZmY2U1YjljODU5NDhhZTk4
ODM3YjNmMjg3MGFkZmMzZjdkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luU3RyZWFtLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW5TdHJlYW0u
Y3BwCkBAIC0zMDQsNyArMzA0LDcgQEAgdm9pZCBOZXRzY2FwZVBsdWdpblN0cmVhbTo6c3RvcChO
UFJlYXNvbiByZWFzb24pCiAgICAgICAgICAgICAKICAgICAgICAgICAgIEFTU0VSVCghbV9maWxl
UGF0aC5pc051bGwoKSk7CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIG1fcGx1Z2luLT5OUFBf
U3RyZWFtQXNGaWxlKCZtX25wU3RyZWFtLCBtX2ZpbGVQYXRoLmRhdGEoKSk7CisgICAgICAgICAg
ICBtX3BsdWdpbi0+TlBQX1N0cmVhbUFzRmlsZSgmbV9ucFN0cmVhbSwgbV9maWxlUGF0aC51dGY4
KCkuZGF0YSgpKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIC8vIEp1c3QgY2xvc2Ug
dGhlIGZpbGUuCiAgICAgICAgICAgICBpZiAobV9maWxlSGFuZGxlICE9IGludmFsaWRQbGF0Zm9y
bUZpbGVIYW5kbGUpCkBAIC0zMTUsOCArMzE1LDggQEAgdm9pZCBOZXRzY2FwZVBsdWdpblN0cmVh
bTo6c3RvcChOUFJlYXNvbiByZWFzb24pCiAgICAgICAgIC8vIHRvIGRlbGV0ZSB0aGUgZmlsZSBo
ZXJlIC0tIE5QUF9TdHJlYW1Bc0ZpbGUoKSBpcyBhbHdheXMgY2FsbGVkIGltbWVkaWF0ZWx5IGJl
Zm9yZSBOUFBfRGVzdHJveVN0cmVhbSgpCiAgICAgICAgIC8vICh0aGUgc3RyZWFtIGRlc3RydWN0
aW9uIGZ1bmN0aW9uKSwgc28gdGhlcmUgY2FuIGJlIG5vIGV4cGVjdGF0aW9uIHRoYXQgYSBwbHVn
aW4gd2lsbCByZWFkIHRoZSBzdHJlYW0KICAgICAgICAgLy8gZmlsZSBhc3luY2hyb25vdXNseSBh
ZnRlciBOUFBfU3RyZWFtQXNGaWxlKCkgaXMgY2FsbGVkLgotICAgICAgICBkZWxldGVGaWxlKFN0
cmluZzo6ZnJvbVVURjgobV9maWxlUGF0aC5kYXRhKCkpKTsKLSAgICAgICAgbV9maWxlUGF0aCA9
IENTdHJpbmcoKTsKKyAgICAgICAgZGVsZXRlRmlsZShtX2ZpbGVQYXRoKTsKKyAgICAgICAgbV9m
aWxlUGF0aCA9IFN0cmluZygpOwogCiAgICAgICAgIC8vIE5QUF9TdHJlYW1Bc0ZpbGUgY291bGQg
Y2FsbCBOUE5fRGVzdHJveVN0cmVhbSBhbmQgZGVzdHJveSB0aGUgc3RyZWFtLgogICAgICAgICBp
ZiAoIW1faXNTdGFydGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Q
bHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luU3RyZWFtLmggYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW5TdHJlYW0uaAppbmRleCA3
NzU3MDAxYmU0OGRjODJhNDIxYzZmMDlmMDZhNjljYzUzYWU1MzJkLi5mMjJhYjYxZDdlOGNjMjg0
OTI2NDljOTQ5MjM0MDE5NGY0ZDFiYmNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW5TdHJlYW0uaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW5TdHJl
YW0uaApAQCAtODgsNyArODgsNyBAQCBwcml2YXRlOgogICAgIHVpbnQxNl90IG1fdHJhbnNmZXJN
b2RlOwogICAgIGludDMyX3QgbV9vZmZzZXQ7CiAKLSAgICBDU3RyaW5nIG1fZmlsZVBhdGg7Cisg
ICAgU3RyaW5nIG1fZmlsZVBhdGg7CiAgICAgV2ViQ29yZTo6UGxhdGZvcm1GaWxlSGFuZGxlIG1f
ZmlsZUhhbmRsZTsKICAgICAKICAgICAvLyBXaGV0aGVyIE5QUF9OZXdTdHJlYW0gaGFzIHN1Y2Nl
c3NmdWxseSBiZWVuIGNhbGxlZC4K
</data>

          </attachment>
      

    </bug>

</bugzilla>