<?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>156725</bug_id>
          
          <creation_ts>2016-04-18 19:53:37 -0700</creation_ts>
          <short_desc>allow jsc shell to dump sampling profiler data</short_desc>
          <delta_ts>2016-04-19 22:49:57 -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>JavaScriptCore</component>
          <version>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Saam Barati">saam</reporter>
          <assigned_to name="Saam Barati">saam</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>gskachkov</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
    
    <cc>ossy</cc>
    
    <cc>sukolsak</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1184880</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-04-18 19:53:37 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1184881</commentid>
    <comment_count>1</comment_count>
      <attachid>276685</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-04-18 19:53:53 -0700</bug_when>
    <thetext>Created attachment 276685
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185092</commentid>
    <comment_count>2</comment_count>
      <attachid>276737</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-04-19 11:47:48 -0700</bug_when>
    <thetext>Created attachment 276737
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185093</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-19 11:49:15 -0700</bug_when>
    <thetext>Attachment 276737 did not pass style-queue:


ERROR: Source/JavaScriptCore/runtime/SamplingProfiler.h:31:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/JavaScriptCore/runtime/SamplingProfiler.cpp:770:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 2 in 5 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185101</commentid>
    <comment_count>4</comment_count>
      <attachid>276739</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-04-19 12:00:29 -0700</bug_when>
    <thetext>Created attachment 276739
patch

Fix style</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185295</commentid>
    <comment_count>5</comment_count>
      <attachid>276739</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-19 19:24:36 -0700</bug_when>
    <thetext>Comment on attachment 276739
patch

Clearing flags on attachment: 276739

Committed r199754: &lt;http://trac.webkit.org/changeset/199754&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185296</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-19 19:24:41 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185338</commentid>
    <comment_count>7</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-04-19 22:28:06 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Comment on attachment 276739 [details]
&gt; patch
&gt; 
&gt; Clearing flags on attachment: 276739
&gt; 
&gt; Committed r199754: &lt;http://trac.webkit.org/changeset/199754&gt;

It broke the cloop build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185340</commentid>
    <comment_count>8</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-04-19 22:39:38 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #5)
&gt; &gt; Comment on attachment 276739 [details]
&gt; &gt; patch
&gt; &gt; 
&gt; &gt; Clearing flags on attachment: 276739
&gt; &gt; 
&gt; &gt; Committed r199754: &lt;http://trac.webkit.org/changeset/199754&gt;
&gt; 
&gt; It broke the cloop build.

Thanks. Will fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185345</commentid>
    <comment_count>9</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-04-19 22:49:57 -0700</bug_when>
    <thetext>build fix in:
http://trac.webkit.org/changeset/199763</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>276685</attachid>
            <date>2016-04-18 19:53:53 -0700</date>
            <delta_ts>2016-04-19 11:47:48 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>b-backup.diff</filename>
            <type>text/plain</type>
            <size>7115</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCShyZXZpc2lvbiAxOTk2OTgpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvanNjLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjYwLDYgKzY2MCw3IEBAIHB1
YmxpYzoKICAgICBWZWN0b3I8U3RyaW5nPiBtX2FyZ3VtZW50czsKICAgICBib29sIG1fcHJvZmls
ZSB7IGZhbHNlIH07CiAgICAgU3RyaW5nIG1fcHJvZmlsZXJPdXRwdXQ7CisgICAgYm9vbCBtX2R1
bXBTYW1wbGluZ1Byb2ZpbGVyRGF0YSB7IGZhbHNlIH07CiAKICAgICB2b2lkIHBhcnNlQXJndW1l
bnRzKGludCwgY2hhcioqKTsKIH07CkBAIC0yMTY2LDYgKzIxNjcsMTEgQEAgdm9pZCBDb21tYW5k
TGluZTo6cGFyc2VBcmd1bWVudHMoaW50IGFyZwogICAgICAgICAgICAgbmVlZFRvRHVtcE9wdGlv
bnMgPSB0cnVlOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KKyAgICAgICAgaWYg
KCFzdHJjbXAoYXJnLCAiLS1yZXBvcnRTYW1wbGluZ1Byb2ZpbGVyRGF0YSIpKSB7CisgICAgICAg
ICAgICBKU0M6Ok9wdGlvbnM6OnVzZVNhbXBsaW5nUHJvZmlsZXIoKSA9IHRydWU7CisgICAgICAg
ICAgICBtX2R1bXBTYW1wbGluZ1Byb2ZpbGVyRGF0YSA9IHRydWU7CisgICAgICAgICAgICBjb250
aW51ZTsKKyAgICAgICAgfQogCiAgICAgICAgIC8vIFNlZSBpZiB0aGUgLS0gb3B0aW9uIGlzIGEg
SlNDIFZNIG9wdGlvbi4KICAgICAgICAgaWYgKHN0cnN0cihhcmcsICItLSIpID09IGFyZykgewpA
QCAtMjI2Niw2ICsyMjcyLDExIEBAIGludCBqc2NtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikK
ICAgICAgICAgdm0tPmhlYXAuY29sbGVjdEFsbEdhcmJhZ2UoKTsKICAgICB9CiAKKyAgICBpZiAo
b3B0aW9ucy5tX2R1bXBTYW1wbGluZ1Byb2ZpbGVyRGF0YSkgeworICAgICAgICB2bS0+c2FtcGxp
bmdQcm9maWxlcigpLT5yZXBvcnRUb3BGdW5jdGlvbnMoKTsKKyAgICAgICAgdm0tPnNhbXBsaW5n
UHJvZmlsZXIoKS0+cmVwb3J0VG9wQnl0ZWNvZGVzKCk7CisgICAgfQorCiAgICAgcHJpbnRTdXBl
clNhbXBsZXJTdGF0ZSgpOwogCiAgICAgcmV0dXJuIHJlc3VsdDsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwCShyZXZpc2lv
biAxOTk2OTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2Zp
bGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzY2LDcgKzM2Niw5IEBAIHZvaWQgU2FtcGxpbmdQ
cm9maWxlcjo6cHJvY2Vzc1VudmVyaWZpZWQKICAgICAgICAgICAgICAgICBpbnQgZW5kT2Zmc2V0
OwogICAgICAgICAgICAgICAgIGNvZGVCbG9jay0+ZXhwcmVzc2lvblJhbmdlRm9yQnl0ZWNvZGVP
ZmZzZXQoYnl0ZWNvZGVJbmRleCwgZGl2b3QsIHN0YXJ0T2Zmc2V0LCBlbmRPZmZzZXQsCiAgICAg
ICAgICAgICAgICAgICAgIHN0YWNrVHJhY2UuZnJhbWVzLmxhc3QoKS5saW5lTnVtYmVyLCBzdGFj
a1RyYWNlLmZyYW1lcy5sYXN0KCkuY29sdW1uTnVtYmVyKTsKKyAgICAgICAgICAgICAgICBzdGFj
a1RyYWNlLmZyYW1lcy5sYXN0KCkuYnl0ZWNvZGVJbmRleCA9IGJ5dGVjb2RlSW5kZXg7CiAgICAg
ICAgICAgICB9CisgICAgICAgICAgICBzdGFja1RyYWNlLmZyYW1lcy5sYXN0KCkuY29kZUJsb2Nr
SGFzaCA9IGNvZGVCbG9jay0+aGFzaCgpOwogICAgICAgICB9OwogCiAgICAgICAgIGF1dG8gYXBw
ZW5kRW1wdHlGcmFtZSA9IFsmXSB7CkBAIC03NTUsNiArNzU3LDEwMiBAQCBTdHJpbmcgU2FtcGxp
bmdQcm9maWxlcjo6c3RhY2tUcmFjZXNBc0pTCiAgICAgcmV0dXJuIGpzb24udG9TdHJpbmcoKTsK
IH0KIAordm9pZCBTYW1wbGluZ1Byb2ZpbGVyOjpyZXBvcnRUb3BGdW5jdGlvbnMoKQoreworICAg
IExvY2tIb2xkZXIgbG9ja2VyKG1fbG9jayk7CisKKyAgICB7CisgICAgICAgIEhlYXBJdGVyYXRp
b25TY29wZSBoZWFwSXRlcmF0aW9uU2NvcGUobV92bS5oZWFwKTsKKyAgICAgICAgcHJvY2Vzc1Vu
dmVyaWZpZWRTdGFja1RyYWNlcygpOworICAgIH0KKworICAgICAKKyAgICBIYXNoTWFwPFN0cmlu
Zywgc2l6ZV90PiBmdW5jdGlvbkNvdW50czsKKyAgICBmb3IgKFN0YWNrVHJhY2UmIHN0YWNrVHJh
Y2UgOiBtX3N0YWNrVHJhY2VzKSB7CisgICAgICAgIGlmICghc3RhY2tUcmFjZS5mcmFtZXMuc2l6
ZSgpKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIFN0YWNrRnJhbWUmIGZyYW1lID0g
c3RhY2tUcmFjZS5mcmFtZXMuZmlyc3QoKTsKKyAgICAgICAgU3RyaW5nIGZyYW1lRGVzY3JpcHRp
b24gPSBtYWtlU3RyaW5nKGZyYW1lLmRpc3BsYXlOYW1lKG1fdm0pLCAiOiIsIFN0cmluZzo6bnVt
YmVyKGZyYW1lLnNvdXJjZUlEKCkpKTsKKyAgICAgICAgZnVuY3Rpb25Db3VudHMuYWRkKGZyYW1l
RGVzY3JpcHRpb24sIDApLml0ZXJhdG9yLT52YWx1ZSsrOworICAgIH0KKworICAgIGF1dG8gZ2V0
TWF4ID0gWyZdICgpIC0+IHN0ZDo6cGFpcjxTdHJpbmcsIHNpemVfdD4geworICAgICAgICBTdHJp
bmcgbWF4RnJhbWVEZXNjcmlwdGlvbjsKKyAgICAgICAgc2l6ZV90IG1heEZyYW1lQ291bnQgPSAw
OworICAgICAgICBmb3IgKGF1dG8gZW50cnkgOiBmdW5jdGlvbkNvdW50cykgeworICAgICAgICAg
ICAgaWYgKGVudHJ5LnZhbHVlID4gbWF4RnJhbWVDb3VudCkgeworICAgICAgICAgICAgICAgIG1h
eEZyYW1lQ291bnQgPSBlbnRyeS52YWx1ZTsKKyAgICAgICAgICAgICAgICBtYXhGcmFtZURlc2Ny
aXB0aW9uID0gZW50cnkua2V5OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlm
ICghbWF4RnJhbWVEZXNjcmlwdGlvbi5pc0VtcHR5KCkpCisgICAgICAgICAgICBmdW5jdGlvbkNv
dW50cy5yZW1vdmUobWF4RnJhbWVEZXNjcmlwdGlvbik7CisgICAgICAgIHJldHVybiBzdGQ6Om1h
a2VfcGFpcihtYXhGcmFtZURlc2NyaXB0aW9uLCBtYXhGcmFtZUNvdW50KTsKKyAgICB9OworCisg
ICAgZGF0YUxvZygiXG5Ib3R0ZXN0IGZ1bmN0aW9ucyBhcyA8bnVtU2FtcGxlcyAgJ2Z1bmN0aW9u
TmFtZTpzb3VyY2VJRCc+XG5cbiIpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgNDA7IGkr
KykgeworICAgICAgICBhdXRvIHBhaXIgPSBnZXRNYXgoKTsKKyAgICAgICAgaWYgKHBhaXIuZmly
c3QuaXNFbXB0eSgpKQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRhdGFMb2dGKCIlNnp1
ICIsIHBhaXIuc2Vjb25kKTsKKyAgICAgICAgZGF0YUxvZygiICAgJyIsIHBhaXIuZmlyc3QsICIn
XG4iKTsKKyAgICB9Cit9CisKK3ZvaWQgU2FtcGxpbmdQcm9maWxlcjo6cmVwb3J0VG9wQnl0ZWNv
ZGVzKCkKK3sKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2xvY2spOworCisgICAgeworICAgICAg
ICBIZWFwSXRlcmF0aW9uU2NvcGUgaGVhcEl0ZXJhdGlvblNjb3BlKG1fdm0uaGVhcCk7CisgICAg
ICAgIHByb2Nlc3NVbnZlcmlmaWVkU3RhY2tUcmFjZXMoKTsKKyAgICB9CisKKyAgICAgCisgICAg
SGFzaE1hcDxTdHJpbmcsIHNpemVfdD4gZnVuY3Rpb25Db3VudHM7CisgICAgZm9yIChTdGFja1Ry
YWNlJiBzdGFja1RyYWNlIDogbV9zdGFja1RyYWNlcykgeworICAgICAgICBpZiAoIXN0YWNrVHJh
Y2UuZnJhbWVzLnNpemUoKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBTdGFja0Zy
YW1lJiBmcmFtZSA9IHN0YWNrVHJhY2UuZnJhbWVzLmZpcnN0KCk7CisgICAgICAgIFN0cmluZyBi
eXRlY29kZUluZGV4OworICAgICAgICBTdHJpbmcgY29kZUJsb2NrSGFzaDsKKyAgICAgICAgaWYg
KGZyYW1lLmhhc0J5dGVjb2RlSW5kZXgoKSkKKyAgICAgICAgICAgIGJ5dGVjb2RlSW5kZXggPSBT
dHJpbmc6Om51bWJlcihmcmFtZS5ieXRlY29kZUluZGV4KTsKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgYnl0ZWNvZGVJbmRleCA9ICI8bmlsPiI7CisgICAgICAgIGlmIChmcmFtZS5oYXNDb2Rl
QmxvY2tIYXNoKCkpCisgICAgICAgICAgICBjb2RlQmxvY2tIYXNoID0gU3RyaW5nKGludGVnZXJU
b1NpeENoYXJhY3Rlckhhc2hTdHJpbmcoZnJhbWUuY29kZUJsb2NrSGFzaC5oYXNoKCkpLmRhdGEo
KSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGNvZGVCbG9ja0hhc2ggPSAiPG5pbD4iOwor
ICAgICAgICBTdHJpbmcgZnJhbWVEZXNjcmlwdGlvbiA9IG1ha2VTdHJpbmcoZnJhbWUuZGlzcGxh
eU5hbWUobV92bSksICIjIiwgY29kZUJsb2NrSGFzaCwgIjoiLCBieXRlY29kZUluZGV4KTsKKyAg
ICAgICAgZnVuY3Rpb25Db3VudHMuYWRkKGZyYW1lRGVzY3JpcHRpb24sIDApLml0ZXJhdG9yLT52
YWx1ZSsrOworICAgIH0KKworICAgIGF1dG8gZ2V0TWF4ID0gWyZdICgpIC0+IHN0ZDo6cGFpcjxT
dHJpbmcsIHNpemVfdD4geworICAgICAgICBTdHJpbmcgbWF4RnJhbWVEZXNjcmlwdGlvbjsKKyAg
ICAgICAgc2l6ZV90IG1heEZyYW1lQ291bnQgPSAwOworICAgICAgICBmb3IgKGF1dG8gZW50cnkg
OiBmdW5jdGlvbkNvdW50cykgeworICAgICAgICAgICAgaWYgKGVudHJ5LnZhbHVlID4gbWF4RnJh
bWVDb3VudCkgeworICAgICAgICAgICAgICAgIG1heEZyYW1lQ291bnQgPSBlbnRyeS52YWx1ZTsK
KyAgICAgICAgICAgICAgICBtYXhGcmFtZURlc2NyaXB0aW9uID0gZW50cnkua2V5OworICAgICAg
ICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmICghbWF4RnJhbWVEZXNjcmlwdGlvbi5pc0Vt
cHR5KCkpCisgICAgICAgICAgICBmdW5jdGlvbkNvdW50cy5yZW1vdmUobWF4RnJhbWVEZXNjcmlw
dGlvbik7CisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfcGFpcihtYXhGcmFtZURlc2NyaXB0aW9u
LCBtYXhGcmFtZUNvdW50KTsKKyAgICB9OworCisgICAgZGF0YUxvZygiXG5Ib3R0ZXN0IGJ5dGVj
b2RlcyBhcyA8bnVtU2FtcGxlcyAgICdmdW5jdGlvbk5hbWUjaGFzaDpieXRlY29kZUluZGV4Jz5c
blxuIik7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCA4MDsgaSsrKSB7CisgICAgICAgIGF1
dG8gcGFpciA9IGdldE1heCgpOworICAgICAgICBpZiAocGFpci5maXJzdC5pc0VtcHR5KCkpCisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGF0YUxvZ0YoIiU2enUgIiwgcGFpci5zZWNvbmQp
OworICAgICAgICBkYXRhTG9nKCIgICAnIiwgcGFpci5maXJzdCwgIidcbiIpOworICAgIH0KK30K
KwogfSAvLyBuYW1lc3BhY2UgSlNDCiAKIG5hbWVzcGFjZSBXVEYgewpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuaAkocmV2aXNpb24g
MTk5Njk4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxl
ci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoU0FNUExJ
TkdfUFJPRklMRVIpCiAKKyNpbmNsdWRlICJDb2RlQmxvY2tIYXNoLmgiCiAjaW5jbHVkZSAiQ2Fs
bEZyYW1lLmgiCiAjaW5jbHVkZSAiTWFjaGluZVN0YWNrTWFya2VyLmgiCiAjaW5jbHVkZSA8d3Rm
L0hhc2hTZXQuaD4KQEAgLTgzLDYgKzg0LDggQEAgcHVibGljOgogICAgICAgICAvLyBUaGVzZSBh
dHRlbXB0IHRvIGJlIGV4cHJlc3Npb24tbGV2ZWwgbGluZSBhbmQgY29sdW1uIG51bWJlci4KICAg
ICAgICAgdW5zaWduZWQgbGluZU51bWJlciB7IHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+
OjptYXgoKSB9OwogICAgICAgICB1bnNpZ25lZCBjb2x1bW5OdW1iZXIgeyBzdGQ6Om51bWVyaWNf
bGltaXRzPHVuc2lnbmVkPjo6bWF4KCkgfTsKKyAgICAgICAgdW5zaWduZWQgYnl0ZWNvZGVJbmRl
eCB7IHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgoKSB9OworICAgICAgICBDb2Rl
QmxvY2tIYXNoIGNvZGVCbG9ja0hhc2g7CiAKICAgICAgICAgYm9vbCBoYXNFeHByZXNzaW9uSW5m
bygpIGNvbnN0CiAgICAgICAgIHsKQEAgLTkwLDYgKzkzLDE2IEBAIHB1YmxpYzoKICAgICAgICAg
ICAgICAgICAmJiBjb2x1bW5OdW1iZXIgIT0gc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46
Om1heCgpOwogICAgICAgICB9CiAKKyAgICAgICAgYm9vbCBoYXNCeXRlY29kZUluZGV4KCkgY29u
c3QKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGJ5dGVjb2RlSW5kZXggIT0gc3RkOjpu
dW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpOworICAgICAgICB9CisKKyAgICAgICAgYm9v
bCBoYXNDb2RlQmxvY2tIYXNoKCkgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJu
IGNvZGVCbG9ja0hhc2guaXNTZXQoKTsKKyAgICAgICAgfQorCiAgICAgICAgIC8vIFRoZXNlIGFy
ZSBmdW5jdGlvbi1sZXZlbCBkYXRhLgogICAgICAgICBTdHJpbmcgbmFtZUZyb21DYWxsZWUoVk0m
KTsKICAgICAgICAgU3RyaW5nIGRpc3BsYXlOYW1lKFZNJik7CkBAIC0xMzcsNiArMTUwLDEwIEBA
IHB1YmxpYzoKICAgICB2b2lkIHNldFN0b3BXYXRjaChjb25zdCBMb2NrSG9sZGVyJiwgUmVmPFN0
b3B3YXRjaD4mJiBzdG9wd2F0Y2gpIHsgbV9zdG9wd2F0Y2ggPSBXVEZNb3ZlKHN0b3B3YXRjaCk7
IH0KICAgICB2b2lkIHBhdXNlKGNvbnN0IExvY2tIb2xkZXImKTsKIAorICAgIC8vIFVzZWQgZm9y
IGRlYnVnZ2luZy4KKyAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIHJlcG9ydFRvcEZ1bmN0aW9u
cygpOworICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgcmVwb3J0VG9wQnl0ZWNvZGVzKCk7CisK
IHByaXZhdGU6CiAgICAgdm9pZCBjbGVhckRhdGEoY29uc3QgTG9ja0hvbGRlciYpOwogICAgIHZv
aWQgY3JlYXRlVGhyZWFkSWZOZWNlc3NhcnkoY29uc3QgTG9ja0hvbGRlciYpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>276737</attachid>
            <date>2016-04-19 11:47:48 -0700</date>
            <delta_ts>2016-04-19 12:00:29 -0700</delta_ts>
            <desc>patch</desc>
            <filename>b-backup.diff</filename>
            <type>text/plain</type>
            <size>9838</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTk5NzM1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMyIEBA
CisyMDE2LTA0LTE5ICBTYWFtIGJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IGFsbG93IGpzYyBzaGVsbCB0byBkdW1wIHNhbXBsaW5nIHByb2ZpbGVyIGRhdGEKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NjcyNQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBh
ICctLXJlcG9ydFNhbXBsaW5nUHJvZmlsZXJEYXRhJyBvcHRpb24gdG8gdGhlCisgICAgICAgIEpT
QyBzaGVsbCB3aGljaCB3aWxsIGVuYWJsZSB0aGUgc2FtcGxpbmcgcHJvZmlsZXIgYW5kIGR1bXAK
KyAgICAgICAgaXRzIGRhdGEgYXQgdGhlIGVuZCBvZiBleGVjdXRpb24uIFRoZSBkdW1wIHdpbGwg
aW5jbHVkZSB0aGUKKyAgICAgICAgNDAgaG90dGVzdCBmdW5jdGlvbnMgYW5kIHRoZSA4MCBob3R0
ZXN0IGJ5dGVjb2RlIGxvY2F0aW9ucy4KKyAgICAgICAgSWYgeW91J3JlIHVzaW5nIHRoaXMgb3B0
aW9uIHRvIGRlYnVnLCBpdCdzIGVhc3kgdG8ganVzdCBoYWNrCisgICAgICAgIG9uIHRoZSBjb2Rl
IHRvIG1ha2UgaXQgZHVtcCBtb3JlIG9yIGxlc3MgaW5mb3JtYXRpb24uCisKKyAgICAgICAgKiBq
c2MuY3BwOgorICAgICAgICAoQ29tbWFuZExpbmU6OnBhcnNlQXJndW1lbnRzKToKKyAgICAgICAg
KGpzY21haW4pOgorICAgICAgICAqIHJ1bnRpbWUvT3B0aW9ucy5oOgorICAgICAgICAqIHJ1bnRp
bWUvU2FtcGxpbmdQcm9maWxlci5jcHA6CisgICAgICAgIChKU0M6OlNhbXBsaW5nUHJvZmlsZXI6
OnByb2Nlc3NVbnZlcmlmaWVkU3RhY2tUcmFjZXMpOgorICAgICAgICAoSlNDOjpTYW1wbGluZ1By
b2ZpbGVyOjpzdGFja1RyYWNlc0FzSlNPTik6CisgICAgICAgIChKU0M6OlNhbXBsaW5nUHJvZmls
ZXI6OnJlcG9ydFRvcEZ1bmN0aW9ucyk6CisgICAgICAgIChKU0M6OlNhbXBsaW5nUHJvZmlsZXI6
OnJlcG9ydFRvcEJ5dGVjb2Rlcyk6CisgICAgICAgICogcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVy
Lmg6CisgICAgICAgIChKU0M6OlNhbXBsaW5nUHJvZmlsZXI6OlN0YWNrRnJhbWU6Omhhc0V4cHJl
c3Npb25JbmZvKToKKyAgICAgICAgKEpTQzo6U2FtcGxpbmdQcm9maWxlcjo6U3RhY2tGcmFtZTo6
aGFzQnl0ZWNvZGVJbmRleCk6CisgICAgICAgIChKU0M6OlNhbXBsaW5nUHJvZmlsZXI6OlN0YWNr
RnJhbWU6Omhhc0NvZGVCbG9ja0hhc2gpOgorICAgICAgICAoSlNDOjpTYW1wbGluZ1Byb2ZpbGVy
OjpzZXRTdG9wV2F0Y2gpOgorCiAyMDE2LTA0LTE4ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBs
ZS5jb20+CiAKICAgICAgICAgRW5hYmxlIHNlcGFyYXRlZCBoZWFwIGJ5IGRlZmF1bHQgb24gaW9z
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAkocmV2aXNpb24gMTk5Njk4KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2pzYy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY2MCw2ICs2NjAsNyBAQCBw
dWJsaWM6CiAgICAgVmVjdG9yPFN0cmluZz4gbV9hcmd1bWVudHM7CiAgICAgYm9vbCBtX3Byb2Zp
bGUgeyBmYWxzZSB9OwogICAgIFN0cmluZyBtX3Byb2ZpbGVyT3V0cHV0OworICAgIGJvb2wgbV9k
dW1wU2FtcGxpbmdQcm9maWxlckRhdGEgeyBmYWxzZSB9OwogCiAgICAgdm9pZCBwYXJzZUFyZ3Vt
ZW50cyhpbnQsIGNoYXIqKik7CiB9OwpAQCAtMjE2Niw2ICsyMTY3LDEyIEBAIHZvaWQgQ29tbWFu
ZExpbmU6OnBhcnNlQXJndW1lbnRzKGludCBhcmcKICAgICAgICAgICAgIG5lZWRUb0R1bXBPcHRp
b25zID0gdHJ1ZTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CisgICAgICAgIGlm
ICghc3RyY21wKGFyZywgIi0tcmVwb3J0U2FtcGxpbmdQcm9maWxlckRhdGEiKSkgeworICAgICAg
ICAgICAgSlNDOjpPcHRpb25zOjp1c2VTYW1wbGluZ1Byb2ZpbGVyKCkgPSB0cnVlOworICAgICAg
ICAgICAgSlNDOjpPcHRpb25zOjpjb2xsZWN0U2FtcGxpbmdQcm9maWxlckRhdGFGb3JKU0NTaGVs
bCgpID0gdHJ1ZTsKKyAgICAgICAgICAgIG1fZHVtcFNhbXBsaW5nUHJvZmlsZXJEYXRhID0gdHJ1
ZTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CiAKICAgICAgICAgLy8gU2VlIGlm
IHRoZSAtLSBvcHRpb24gaXMgYSBKU0MgVk0gb3B0aW9uLgogICAgICAgICBpZiAoc3Ryc3RyKGFy
ZywgIi0tIikgPT0gYXJnKSB7CkBAIC0yMjY2LDYgKzIyNzMsMTEgQEAgaW50IGpzY21haW4oaW50
IGFyZ2MsIGNoYXIqKiBhcmd2KQogICAgICAgICB2bS0+aGVhcC5jb2xsZWN0QWxsR2FyYmFnZSgp
OwogICAgIH0KIAorICAgIGlmIChvcHRpb25zLm1fZHVtcFNhbXBsaW5nUHJvZmlsZXJEYXRhKSB7
CisgICAgICAgIHZtLT5zYW1wbGluZ1Byb2ZpbGVyKCktPnJlcG9ydFRvcEZ1bmN0aW9ucygpOwor
ICAgICAgICB2bS0+c2FtcGxpbmdQcm9maWxlcigpLT5yZXBvcnRUb3BCeXRlY29kZXMoKTsKKyAg
ICB9CisKICAgICBwcmludFN1cGVyU2FtcGxlclN0YXRlKCk7CiAKICAgICByZXR1cm4gcmVzdWx0
OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaAkocmV2aXNpb24g
MTk5Njk4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMTgsNiArMzE4LDcgQEAgdHlwZWRlZiBjb25zdCBjaGFyKiBvcHRpb25T
dHJpbmc7CiAgICAgdihib29sLCB1c2VUeXBlUHJvZmlsZXIsIGZhbHNlLCBudWxscHRyKSBcCiAg
ICAgdihib29sLCB1c2VDb250cm9sRmxvd1Byb2ZpbGVyLCBmYWxzZSwgbnVsbHB0cikgXAogICAg
IHYoYm9vbCwgdXNlU2FtcGxpbmdQcm9maWxlciwgZmFsc2UsIG51bGxwdHIpIFwKKyAgICB2KGJv
b2wsIGNvbGxlY3RTYW1wbGluZ1Byb2ZpbGVyRGF0YUZvckpTQ1NoZWxsLCBmYWxzZSwgIlRoaXMg
Y29ycmVzcG9uZHMgdG8gdGhlIEpTQyBzaGVsbCdzIC0tcmVwb3J0U2FtcGxpbmdQcm9maWxlckRh
dGEgb3B0aW9uLiIpIFwKICAgICB2KGJvb2wsIGFsd2F5c0dlbmVyYXRlUENUb0NvZGVPcmlnaW5N
YXAsIGZhbHNlLCAiVGhpcyB3aWxsIG1ha2Ugc3VyZSB3ZSBhbHdheXMgZ2VuZXJhdGUgYSBQQ1Rv
Q29kZU9yaWdpbk1hcCBmb3IgSklUZWQgY29kZS4iKSBcCiAgICAgXAogICAgIHYoYm9vbCwgdmVy
aWZ5SGVhcCwgZmFsc2UsIG51bGxwdHIpIFwKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwCShyZXZpc2lvbiAxOTk2OTgpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzY2LDcgKzM2NiwxMCBAQCB2b2lkIFNhbXBsaW5nUHJvZmlsZXI6OnBy
b2Nlc3NVbnZlcmlmaWVkCiAgICAgICAgICAgICAgICAgaW50IGVuZE9mZnNldDsKICAgICAgICAg
ICAgICAgICBjb2RlQmxvY2stPmV4cHJlc3Npb25SYW5nZUZvckJ5dGVjb2RlT2Zmc2V0KGJ5dGVj
b2RlSW5kZXgsIGRpdm90LCBzdGFydE9mZnNldCwgZW5kT2Zmc2V0LAogICAgICAgICAgICAgICAg
ICAgICBzdGFja1RyYWNlLmZyYW1lcy5sYXN0KCkubGluZU51bWJlciwgc3RhY2tUcmFjZS5mcmFt
ZXMubGFzdCgpLmNvbHVtbk51bWJlcik7CisgICAgICAgICAgICAgICAgc3RhY2tUcmFjZS5mcmFt
ZXMubGFzdCgpLmJ5dGVjb2RlSW5kZXggPSBieXRlY29kZUluZGV4OwogICAgICAgICAgICAgfQor
ICAgICAgICAgICAgaWYgKE9wdGlvbnM6OmNvbGxlY3RTYW1wbGluZ1Byb2ZpbGVyRGF0YUZvckpT
Q1NoZWxsKCkpCisgICAgICAgICAgICAgICAgc3RhY2tUcmFjZS5mcmFtZXMubGFzdCgpLmNvZGVC
bG9ja0hhc2ggPSBjb2RlQmxvY2stPmhhc2goKTsKICAgICAgICAgfTsKIAogICAgICAgICBhdXRv
IGFwcGVuZEVtcHR5RnJhbWUgPSBbJl0gewpAQCAtNzU1LDYgKzc1OCwxMDkgQEAgU3RyaW5nIFNh
bXBsaW5nUHJvZmlsZXI6OnN0YWNrVHJhY2VzQXNKUwogICAgIHJldHVybiBqc29uLnRvU3RyaW5n
KCk7CiB9CiAKK3ZvaWQgU2FtcGxpbmdQcm9maWxlcjo6cmVwb3J0VG9wRnVuY3Rpb25zKCkKK3sK
KyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2xvY2spOworCisgICAgeworICAgICAgICBIZWFwSXRl
cmF0aW9uU2NvcGUgaGVhcEl0ZXJhdGlvblNjb3BlKG1fdm0uaGVhcCk7CisgICAgICAgIHByb2Nl
c3NVbnZlcmlmaWVkU3RhY2tUcmFjZXMoKTsKKyAgICB9CisKKyAgICAgCisgICAgSGFzaE1hcDxT
dHJpbmcsIHNpemVfdD4gZnVuY3Rpb25Db3VudHM7CisgICAgZm9yIChTdGFja1RyYWNlJiBzdGFj
a1RyYWNlIDogbV9zdGFja1RyYWNlcykgeworICAgICAgICBpZiAoIXN0YWNrVHJhY2UuZnJhbWVz
LnNpemUoKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIFN0YWNrRnJhbWUmIGZy
YW1lID0gc3RhY2tUcmFjZS5mcmFtZXMuZmlyc3QoKTsKKyAgICAgICAgU3RyaW5nIGZyYW1lRGVz
Y3JpcHRpb24gPSBtYWtlU3RyaW5nKGZyYW1lLmRpc3BsYXlOYW1lKG1fdm0pLCAiOiIsIFN0cmlu
Zzo6bnVtYmVyKGZyYW1lLnNvdXJjZUlEKCkpKTsKKyAgICAgICAgZnVuY3Rpb25Db3VudHMuYWRk
KGZyYW1lRGVzY3JpcHRpb24sIDApLml0ZXJhdG9yLT52YWx1ZSsrOworICAgIH0KKworICAgIGF1
dG8gdGFrZU1heCA9IFsmXSAoKSAtPiBzdGQ6OnBhaXI8U3RyaW5nLCBzaXplX3Q+IHsKKyAgICAg
ICAgU3RyaW5nIG1heEZyYW1lRGVzY3JpcHRpb247CisgICAgICAgIHNpemVfdCBtYXhGcmFtZUNv
dW50ID0gMDsKKyAgICAgICAgZm9yIChhdXRvIGVudHJ5IDogZnVuY3Rpb25Db3VudHMpIHsKKyAg
ICAgICAgICAgIGlmIChlbnRyeS52YWx1ZSA+IG1heEZyYW1lQ291bnQpIHsKKyAgICAgICAgICAg
ICAgICBtYXhGcmFtZUNvdW50ID0gZW50cnkudmFsdWU7CisgICAgICAgICAgICAgICAgbWF4RnJh
bWVEZXNjcmlwdGlvbiA9IGVudHJ5LmtleTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAg
ICAgICBpZiAoIW1heEZyYW1lRGVzY3JpcHRpb24uaXNFbXB0eSgpKQorICAgICAgICAgICAgZnVu
Y3Rpb25Db3VudHMucmVtb3ZlKG1heEZyYW1lRGVzY3JpcHRpb24pOworICAgICAgICByZXR1cm4g
c3RkOjptYWtlX3BhaXIobWF4RnJhbWVEZXNjcmlwdGlvbiwgbWF4RnJhbWVDb3VudCk7CisgICAg
fTsKKworICAgIGRhdGFMb2coIlxuXG5TYW1wbGluZyByYXRlOiAiLCBtX3RpbWluZ0ludGVydmFs
LmNvdW50KCksICIgbWljcm9zZWNvbmRzXG4iKTsKKyAgICBkYXRhTG9nKCJIb3R0ZXN0IGZ1bmN0
aW9ucyBhcyA8bnVtU2FtcGxlcyAgJ2Z1bmN0aW9uTmFtZTpzb3VyY2VJRCc+XG4iKTsKKyAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IDQwOyBpKyspIHsKKyAgICAgICAgYXV0byBwYWlyID0gdGFr
ZU1heCgpOworICAgICAgICBpZiAocGFpci5maXJzdC5pc0VtcHR5KCkpCisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgZGF0YUxvZ0YoIiU2enUgIiwgcGFpci5zZWNvbmQpOworICAgICAgICBk
YXRhTG9nKCIgICAnIiwgcGFpci5maXJzdCwgIidcbiIpOworICAgIH0KK30KKwordm9pZCBTYW1w
bGluZ1Byb2ZpbGVyOjpyZXBvcnRUb3BCeXRlY29kZXMoKQoreworICAgIExvY2tIb2xkZXIgbG9j
a2VyKG1fbG9jayk7CisKKyAgICB7CisgICAgICAgIEhlYXBJdGVyYXRpb25TY29wZSBoZWFwSXRl
cmF0aW9uU2NvcGUobV92bS5oZWFwKTsKKyAgICAgICAgcHJvY2Vzc1VudmVyaWZpZWRTdGFja1Ry
YWNlcygpOworICAgIH0KKworICAgIEhhc2hNYXA8U3RyaW5nLCBzaXplX3Q+IGJ5dGVjb2RlQ291
bnRzOworICAgIGZvciAoU3RhY2tUcmFjZSYgc3RhY2tUcmFjZSA6IG1fc3RhY2tUcmFjZXMpIHsK
KyAgICAgICAgaWYgKCFzdGFja1RyYWNlLmZyYW1lcy5zaXplKCkpCisgICAgICAgICAgICBjb250
aW51ZTsKKworICAgICAgICBTdGFja0ZyYW1lJiBmcmFtZSA9IHN0YWNrVHJhY2UuZnJhbWVzLmZp
cnN0KCk7CisgICAgICAgIFN0cmluZyBieXRlY29kZUluZGV4OworICAgICAgICBTdHJpbmcgY29k
ZUJsb2NrSGFzaDsKKyAgICAgICAgaWYgKGZyYW1lLmhhc0J5dGVjb2RlSW5kZXgoKSkKKyAgICAg
ICAgICAgIGJ5dGVjb2RlSW5kZXggPSBTdHJpbmc6Om51bWJlcihmcmFtZS5ieXRlY29kZUluZGV4
KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgYnl0ZWNvZGVJbmRleCA9ICI8bmlsPiI7CisK
KyAgICAgICAgaWYgKGZyYW1lLmhhc0NvZGVCbG9ja0hhc2goKSkgeworICAgICAgICAgICAgU3Ry
aW5nUHJpbnRTdHJlYW0gc3RyZWFtOworICAgICAgICAgICAgZnJhbWUuY29kZUJsb2NrSGFzaC5k
dW1wKHN0cmVhbSk7CisgICAgICAgICAgICBjb2RlQmxvY2tIYXNoID0gc3RyZWFtLnRvU3RyaW5n
KCk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgY29kZUJsb2NrSGFzaCA9ICI8bmlsPiI7
CisKKyAgICAgICAgU3RyaW5nIGZyYW1lRGVzY3JpcHRpb24gPSBtYWtlU3RyaW5nKGZyYW1lLmRp
c3BsYXlOYW1lKG1fdm0pLCAiIyIsIGNvZGVCbG9ja0hhc2gsICI6IiwgYnl0ZWNvZGVJbmRleCk7
CisgICAgICAgIGJ5dGVjb2RlQ291bnRzLmFkZChmcmFtZURlc2NyaXB0aW9uLCAwKS5pdGVyYXRv
ci0+dmFsdWUrKzsKKyAgICB9CisKKyAgICBhdXRvIHRha2VNYXggPSBbJl0gKCkgLT4gc3RkOjpw
YWlyPFN0cmluZywgc2l6ZV90PiB7CisgICAgICAgIFN0cmluZyBtYXhGcmFtZURlc2NyaXB0aW9u
OworICAgICAgICBzaXplX3QgbWF4RnJhbWVDb3VudCA9IDA7CisgICAgICAgIGZvciAoYXV0byBl
bnRyeSA6IGJ5dGVjb2RlQ291bnRzKSB7CisgICAgICAgICAgICBpZiAoZW50cnkudmFsdWUgPiBt
YXhGcmFtZUNvdW50KSB7CisgICAgICAgICAgICAgICAgbWF4RnJhbWVDb3VudCA9IGVudHJ5LnZh
bHVlOworICAgICAgICAgICAgICAgIG1heEZyYW1lRGVzY3JpcHRpb24gPSBlbnRyeS5rZXk7Cisg
ICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFtYXhGcmFtZURlc2NyaXB0aW9u
LmlzRW1wdHkoKSkKKyAgICAgICAgICAgIGJ5dGVjb2RlQ291bnRzLnJlbW92ZShtYXhGcmFtZURl
c2NyaXB0aW9uKTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV9wYWlyKG1heEZyYW1lRGVzY3Jp
cHRpb24sIG1heEZyYW1lQ291bnQpOworICAgIH07CisKKyAgICBkYXRhTG9nKCJcblxuU2FtcGxp
bmcgcmF0ZTogIiwgbV90aW1pbmdJbnRlcnZhbC5jb3VudCgpLCAiIG1pY3Jvc2Vjb25kc1xuIik7
CisgICAgZGF0YUxvZygiSG90dGVzdCBieXRlY29kZXMgYXMgPG51bVNhbXBsZXMgICAnZnVuY3Rp
b25OYW1lI2hhc2g6Ynl0ZWNvZGVJbmRleCc+XG4iKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IDgwOyBpKyspIHsKKyAgICAgICAgYXV0byBwYWlyID0gdGFrZU1heCgpOworICAgICAgICBp
ZiAocGFpci5maXJzdC5pc0VtcHR5KCkpCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGF0
YUxvZ0YoIiU2enUgIiwgcGFpci5zZWNvbmQpOworICAgICAgICBkYXRhTG9nKCIgICAnIiwgcGFp
ci5maXJzdCwgIidcbiIpOworICAgIH0KK30KKwogfSAvLyBuYW1lc3BhY2UgSlNDCiAKIG5hbWVz
cGFjZSBXVEYgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQ
cm9maWxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Nh
bXBsaW5nUHJvZmlsZXIuaAkocmV2aXNpb24gMTk5Njk4KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsy
OCw3IEBACiAKICNpZiBFTkFCTEUoU0FNUExJTkdfUFJPRklMRVIpCiAKKyNpbmNsdWRlICJDb2Rl
QmxvY2tIYXNoLmgiCiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAiTWFjaGluZVN0
YWNrTWFya2VyLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KQEAgLTgzLDYgKzg0LDggQEAg
cHVibGljOgogICAgICAgICAvLyBUaGVzZSBhdHRlbXB0IHRvIGJlIGV4cHJlc3Npb24tbGV2ZWwg
bGluZSBhbmQgY29sdW1uIG51bWJlci4KICAgICAgICAgdW5zaWduZWQgbGluZU51bWJlciB7IHN0
ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgoKSB9OwogICAgICAgICB1bnNpZ25lZCBj
b2x1bW5OdW1iZXIgeyBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4KCkgfTsKKyAg
ICAgICAgdW5zaWduZWQgYnl0ZWNvZGVJbmRleCB7IHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWdu
ZWQ+OjptYXgoKSB9OworICAgICAgICBDb2RlQmxvY2tIYXNoIGNvZGVCbG9ja0hhc2g7CiAKICAg
ICAgICAgYm9vbCBoYXNFeHByZXNzaW9uSW5mbygpIGNvbnN0CiAgICAgICAgIHsKQEAgLTkwLDYg
KzkzLDE2IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICAmJiBjb2x1bW5OdW1iZXIgIT0gc3Rk
OjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpOwogICAgICAgICB9CiAKKyAgICAgICAg
Ym9vbCBoYXNCeXRlY29kZUluZGV4KCkgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgcmV0
dXJuIGJ5dGVjb2RlSW5kZXggIT0gc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgp
OworICAgICAgICB9CisKKyAgICAgICAgYm9vbCBoYXNDb2RlQmxvY2tIYXNoKCkgY29uc3QKKyAg
ICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGNvZGVCbG9ja0hhc2guaXNTZXQoKTsKKyAgICAg
ICAgfQorCiAgICAgICAgIC8vIFRoZXNlIGFyZSBmdW5jdGlvbi1sZXZlbCBkYXRhLgogICAgICAg
ICBTdHJpbmcgbmFtZUZyb21DYWxsZWUoVk0mKTsKICAgICAgICAgU3RyaW5nIGRpc3BsYXlOYW1l
KFZNJik7CkBAIC0xMzcsNiArMTUwLDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFN0b3BXYXRj
aChjb25zdCBMb2NrSG9sZGVyJiwgUmVmPFN0b3B3YXRjaD4mJiBzdG9wd2F0Y2gpIHsgbV9zdG9w
d2F0Y2ggPSBXVEZNb3ZlKHN0b3B3YXRjaCk7IH0KICAgICB2b2lkIHBhdXNlKGNvbnN0IExvY2tI
b2xkZXImKTsKIAorICAgIC8vIFVzZWQgZm9yIGRlYnVnZ2luZyBpbiB0aGUgSlNDIHNoZWxsLgor
ICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgcmVwb3J0VG9wRnVuY3Rpb25zKCk7CisgICAgSlNf
RVhQT1JUX1BSSVZBVEUgdm9pZCByZXBvcnRUb3BCeXRlY29kZXMoKTsKKwogcHJpdmF0ZToKICAg
ICB2b2lkIGNsZWFyRGF0YShjb25zdCBMb2NrSG9sZGVyJik7CiAgICAgdm9pZCBjcmVhdGVUaHJl
YWRJZk5lY2Vzc2FyeShjb25zdCBMb2NrSG9sZGVyJik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>276739</attachid>
            <date>2016-04-19 12:00:29 -0700</date>
            <delta_ts>2016-04-19 19:24:36 -0700</delta_ts>
            <desc>patch</desc>
            <filename>b-backup.diff</filename>
            <type>text/plain</type>
            <size>9854</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTk5NzM1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMyIEBA
CisyMDE2LTA0LTE5ICBTYWFtIGJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IGFsbG93IGpzYyBzaGVsbCB0byBkdW1wIHNhbXBsaW5nIHByb2ZpbGVyIGRhdGEKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NjcyNQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBh
ICctLXJlcG9ydFNhbXBsaW5nUHJvZmlsZXJEYXRhJyBvcHRpb24gdG8gdGhlCisgICAgICAgIEpT
QyBzaGVsbCB3aGljaCB3aWxsIGVuYWJsZSB0aGUgc2FtcGxpbmcgcHJvZmlsZXIgYW5kIGR1bXAK
KyAgICAgICAgaXRzIGRhdGEgYXQgdGhlIGVuZCBvZiBleGVjdXRpb24uIFRoZSBkdW1wIHdpbGwg
aW5jbHVkZSB0aGUKKyAgICAgICAgNDAgaG90dGVzdCBmdW5jdGlvbnMgYW5kIHRoZSA4MCBob3R0
ZXN0IGJ5dGVjb2RlIGxvY2F0aW9ucy4KKyAgICAgICAgSWYgeW91J3JlIHVzaW5nIHRoaXMgb3B0
aW9uIHRvIGRlYnVnLCBpdCdzIGVhc3kgdG8ganVzdCBoYWNrCisgICAgICAgIG9uIHRoZSBjb2Rl
IHRvIG1ha2UgaXQgZHVtcCBtb3JlIG9yIGxlc3MgaW5mb3JtYXRpb24uCisKKyAgICAgICAgKiBq
c2MuY3BwOgorICAgICAgICAoQ29tbWFuZExpbmU6OnBhcnNlQXJndW1lbnRzKToKKyAgICAgICAg
KGpzY21haW4pOgorICAgICAgICAqIHJ1bnRpbWUvT3B0aW9ucy5oOgorICAgICAgICAqIHJ1bnRp
bWUvU2FtcGxpbmdQcm9maWxlci5jcHA6CisgICAgICAgIChKU0M6OlNhbXBsaW5nUHJvZmlsZXI6
OnByb2Nlc3NVbnZlcmlmaWVkU3RhY2tUcmFjZXMpOgorICAgICAgICAoSlNDOjpTYW1wbGluZ1By
b2ZpbGVyOjpzdGFja1RyYWNlc0FzSlNPTik6CisgICAgICAgIChKU0M6OlNhbXBsaW5nUHJvZmls
ZXI6OnJlcG9ydFRvcEZ1bmN0aW9ucyk6CisgICAgICAgIChKU0M6OlNhbXBsaW5nUHJvZmlsZXI6
OnJlcG9ydFRvcEJ5dGVjb2Rlcyk6CisgICAgICAgICogcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVy
Lmg6CisgICAgICAgIChKU0M6OlNhbXBsaW5nUHJvZmlsZXI6OlN0YWNrRnJhbWU6Omhhc0V4cHJl
c3Npb25JbmZvKToKKyAgICAgICAgKEpTQzo6U2FtcGxpbmdQcm9maWxlcjo6U3RhY2tGcmFtZTo6
aGFzQnl0ZWNvZGVJbmRleCk6CisgICAgICAgIChKU0M6OlNhbXBsaW5nUHJvZmlsZXI6OlN0YWNr
RnJhbWU6Omhhc0NvZGVCbG9ja0hhc2gpOgorICAgICAgICAoSlNDOjpTYW1wbGluZ1Byb2ZpbGVy
OjpzZXRTdG9wV2F0Y2gpOgorCiAyMDE2LTA0LTE4ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBs
ZS5jb20+CiAKICAgICAgICAgRW5hYmxlIHNlcGFyYXRlZCBoZWFwIGJ5IGRlZmF1bHQgb24gaW9z
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAkocmV2aXNpb24gMTk5Njk4KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2pzYy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY2MCw2ICs2NjAsNyBAQCBw
dWJsaWM6CiAgICAgVmVjdG9yPFN0cmluZz4gbV9hcmd1bWVudHM7CiAgICAgYm9vbCBtX3Byb2Zp
bGUgeyBmYWxzZSB9OwogICAgIFN0cmluZyBtX3Byb2ZpbGVyT3V0cHV0OworICAgIGJvb2wgbV9k
dW1wU2FtcGxpbmdQcm9maWxlckRhdGEgeyBmYWxzZSB9OwogCiAgICAgdm9pZCBwYXJzZUFyZ3Vt
ZW50cyhpbnQsIGNoYXIqKik7CiB9OwpAQCAtMjE2Niw2ICsyMTY3LDEyIEBAIHZvaWQgQ29tbWFu
ZExpbmU6OnBhcnNlQXJndW1lbnRzKGludCBhcmcKICAgICAgICAgICAgIG5lZWRUb0R1bXBPcHRp
b25zID0gdHJ1ZTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CisgICAgICAgIGlm
ICghc3RyY21wKGFyZywgIi0tcmVwb3J0U2FtcGxpbmdQcm9maWxlckRhdGEiKSkgeworICAgICAg
ICAgICAgSlNDOjpPcHRpb25zOjp1c2VTYW1wbGluZ1Byb2ZpbGVyKCkgPSB0cnVlOworICAgICAg
ICAgICAgSlNDOjpPcHRpb25zOjpjb2xsZWN0U2FtcGxpbmdQcm9maWxlckRhdGFGb3JKU0NTaGVs
bCgpID0gdHJ1ZTsKKyAgICAgICAgICAgIG1fZHVtcFNhbXBsaW5nUHJvZmlsZXJEYXRhID0gdHJ1
ZTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CiAKICAgICAgICAgLy8gU2VlIGlm
IHRoZSAtLSBvcHRpb24gaXMgYSBKU0MgVk0gb3B0aW9uLgogICAgICAgICBpZiAoc3Ryc3RyKGFy
ZywgIi0tIikgPT0gYXJnKSB7CkBAIC0yMjY2LDYgKzIyNzMsMTEgQEAgaW50IGpzY21haW4oaW50
IGFyZ2MsIGNoYXIqKiBhcmd2KQogICAgICAgICB2bS0+aGVhcC5jb2xsZWN0QWxsR2FyYmFnZSgp
OwogICAgIH0KIAorICAgIGlmIChvcHRpb25zLm1fZHVtcFNhbXBsaW5nUHJvZmlsZXJEYXRhKSB7
CisgICAgICAgIHZtLT5zYW1wbGluZ1Byb2ZpbGVyKCktPnJlcG9ydFRvcEZ1bmN0aW9ucygpOwor
ICAgICAgICB2bS0+c2FtcGxpbmdQcm9maWxlcigpLT5yZXBvcnRUb3BCeXRlY29kZXMoKTsKKyAg
ICB9CisKICAgICBwcmludFN1cGVyU2FtcGxlclN0YXRlKCk7CiAKICAgICByZXR1cm4gcmVzdWx0
OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaAkocmV2aXNpb24g
MTk5Njk4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMTgsNiArMzE4LDcgQEAgdHlwZWRlZiBjb25zdCBjaGFyKiBvcHRpb25T
dHJpbmc7CiAgICAgdihib29sLCB1c2VUeXBlUHJvZmlsZXIsIGZhbHNlLCBudWxscHRyKSBcCiAg
ICAgdihib29sLCB1c2VDb250cm9sRmxvd1Byb2ZpbGVyLCBmYWxzZSwgbnVsbHB0cikgXAogICAg
IHYoYm9vbCwgdXNlU2FtcGxpbmdQcm9maWxlciwgZmFsc2UsIG51bGxwdHIpIFwKKyAgICB2KGJv
b2wsIGNvbGxlY3RTYW1wbGluZ1Byb2ZpbGVyRGF0YUZvckpTQ1NoZWxsLCBmYWxzZSwgIlRoaXMg
Y29ycmVzcG9uZHMgdG8gdGhlIEpTQyBzaGVsbCdzIC0tcmVwb3J0U2FtcGxpbmdQcm9maWxlckRh
dGEgb3B0aW9uLiIpIFwKICAgICB2KGJvb2wsIGFsd2F5c0dlbmVyYXRlUENUb0NvZGVPcmlnaW5N
YXAsIGZhbHNlLCAiVGhpcyB3aWxsIG1ha2Ugc3VyZSB3ZSBhbHdheXMgZ2VuZXJhdGUgYSBQQ1Rv
Q29kZU9yaWdpbk1hcCBmb3IgSklUZWQgY29kZS4iKSBcCiAgICAgXAogICAgIHYoYm9vbCwgdmVy
aWZ5SGVhcCwgZmFsc2UsIG51bGxwdHIpIFwKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwCShyZXZpc2lvbiAxOTk2OTgpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzY2LDcgKzM2NiwxMCBAQCB2b2lkIFNhbXBsaW5nUHJvZmlsZXI6OnBy
b2Nlc3NVbnZlcmlmaWVkCiAgICAgICAgICAgICAgICAgaW50IGVuZE9mZnNldDsKICAgICAgICAg
ICAgICAgICBjb2RlQmxvY2stPmV4cHJlc3Npb25SYW5nZUZvckJ5dGVjb2RlT2Zmc2V0KGJ5dGVj
b2RlSW5kZXgsIGRpdm90LCBzdGFydE9mZnNldCwgZW5kT2Zmc2V0LAogICAgICAgICAgICAgICAg
ICAgICBzdGFja1RyYWNlLmZyYW1lcy5sYXN0KCkubGluZU51bWJlciwgc3RhY2tUcmFjZS5mcmFt
ZXMubGFzdCgpLmNvbHVtbk51bWJlcik7CisgICAgICAgICAgICAgICAgc3RhY2tUcmFjZS5mcmFt
ZXMubGFzdCgpLmJ5dGVjb2RlSW5kZXggPSBieXRlY29kZUluZGV4OwogICAgICAgICAgICAgfQor
ICAgICAgICAgICAgaWYgKE9wdGlvbnM6OmNvbGxlY3RTYW1wbGluZ1Byb2ZpbGVyRGF0YUZvckpT
Q1NoZWxsKCkpCisgICAgICAgICAgICAgICAgc3RhY2tUcmFjZS5mcmFtZXMubGFzdCgpLmNvZGVC
bG9ja0hhc2ggPSBjb2RlQmxvY2stPmhhc2goKTsKICAgICAgICAgfTsKIAogICAgICAgICBhdXRv
IGFwcGVuZEVtcHR5RnJhbWUgPSBbJl0gewpAQCAtNzU1LDYgKzc1OCwxMDkgQEAgU3RyaW5nIFNh
bXBsaW5nUHJvZmlsZXI6OnN0YWNrVHJhY2VzQXNKUwogICAgIHJldHVybiBqc29uLnRvU3RyaW5n
KCk7CiB9CiAKK3ZvaWQgU2FtcGxpbmdQcm9maWxlcjo6cmVwb3J0VG9wRnVuY3Rpb25zKCkKK3sK
KyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2xvY2spOworCisgICAgeworICAgICAgICBIZWFwSXRl
cmF0aW9uU2NvcGUgaGVhcEl0ZXJhdGlvblNjb3BlKG1fdm0uaGVhcCk7CisgICAgICAgIHByb2Nl
c3NVbnZlcmlmaWVkU3RhY2tUcmFjZXMoKTsKKyAgICB9CisKKworICAgIEhhc2hNYXA8U3RyaW5n
LCBzaXplX3Q+IGZ1bmN0aW9uQ291bnRzOworICAgIGZvciAoU3RhY2tUcmFjZSYgc3RhY2tUcmFj
ZSA6IG1fc3RhY2tUcmFjZXMpIHsKKyAgICAgICAgaWYgKCFzdGFja1RyYWNlLmZyYW1lcy5zaXpl
KCkpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBTdGFja0ZyYW1lJiBmcmFtZSA9
IHN0YWNrVHJhY2UuZnJhbWVzLmZpcnN0KCk7CisgICAgICAgIFN0cmluZyBmcmFtZURlc2NyaXB0
aW9uID0gbWFrZVN0cmluZyhmcmFtZS5kaXNwbGF5TmFtZShtX3ZtKSwgIjoiLCBTdHJpbmc6Om51
bWJlcihmcmFtZS5zb3VyY2VJRCgpKSk7CisgICAgICAgIGZ1bmN0aW9uQ291bnRzLmFkZChmcmFt
ZURlc2NyaXB0aW9uLCAwKS5pdGVyYXRvci0+dmFsdWUrKzsKKyAgICB9CisKKyAgICBhdXRvIHRh
a2VNYXggPSBbJl0gKCkgLT4gc3RkOjpwYWlyPFN0cmluZywgc2l6ZV90PiB7CisgICAgICAgIFN0
cmluZyBtYXhGcmFtZURlc2NyaXB0aW9uOworICAgICAgICBzaXplX3QgbWF4RnJhbWVDb3VudCA9
IDA7CisgICAgICAgIGZvciAoYXV0byBlbnRyeSA6IGZ1bmN0aW9uQ291bnRzKSB7CisgICAgICAg
ICAgICBpZiAoZW50cnkudmFsdWUgPiBtYXhGcmFtZUNvdW50KSB7CisgICAgICAgICAgICAgICAg
bWF4RnJhbWVDb3VudCA9IGVudHJ5LnZhbHVlOworICAgICAgICAgICAgICAgIG1heEZyYW1lRGVz
Y3JpcHRpb24gPSBlbnRyeS5rZXk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAg
aWYgKCFtYXhGcmFtZURlc2NyaXB0aW9uLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIGZ1bmN0aW9u
Q291bnRzLnJlbW92ZShtYXhGcmFtZURlc2NyaXB0aW9uKTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6
bWFrZV9wYWlyKG1heEZyYW1lRGVzY3JpcHRpb24sIG1heEZyYW1lQ291bnQpOworICAgIH07CisK
KyAgICBkYXRhTG9nKCJcblxuU2FtcGxpbmcgcmF0ZTogIiwgbV90aW1pbmdJbnRlcnZhbC5jb3Vu
dCgpLCAiIG1pY3Jvc2Vjb25kc1xuIik7CisgICAgZGF0YUxvZygiSG90dGVzdCBmdW5jdGlvbnMg
YXMgPG51bVNhbXBsZXMgICdmdW5jdGlvbk5hbWU6c291cmNlSUQnPlxuIik7CisgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCA0MDsgaSsrKSB7CisgICAgICAgIGF1dG8gcGFpciA9IHRha2VNYXgo
KTsKKyAgICAgICAgaWYgKHBhaXIuZmlyc3QuaXNFbXB0eSgpKQorICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGRhdGFMb2dGKCIlNnp1ICIsIHBhaXIuc2Vjb25kKTsKKyAgICAgICAgZGF0YUxv
ZygiICAgJyIsIHBhaXIuZmlyc3QsICInXG4iKTsKKyAgICB9Cit9CisKK3ZvaWQgU2FtcGxpbmdQ
cm9maWxlcjo6cmVwb3J0VG9wQnl0ZWNvZGVzKCkKK3sKKyAgICBMb2NrSG9sZGVyIGxvY2tlciht
X2xvY2spOworCisgICAgeworICAgICAgICBIZWFwSXRlcmF0aW9uU2NvcGUgaGVhcEl0ZXJhdGlv
blNjb3BlKG1fdm0uaGVhcCk7CisgICAgICAgIHByb2Nlc3NVbnZlcmlmaWVkU3RhY2tUcmFjZXMo
KTsKKyAgICB9CisKKyAgICBIYXNoTWFwPFN0cmluZywgc2l6ZV90PiBieXRlY29kZUNvdW50czsK
KyAgICBmb3IgKFN0YWNrVHJhY2UmIHN0YWNrVHJhY2UgOiBtX3N0YWNrVHJhY2VzKSB7CisgICAg
ICAgIGlmICghc3RhY2tUcmFjZS5mcmFtZXMuc2l6ZSgpKQorICAgICAgICAgICAgY29udGludWU7
CisKKyAgICAgICAgU3RhY2tGcmFtZSYgZnJhbWUgPSBzdGFja1RyYWNlLmZyYW1lcy5maXJzdCgp
OworICAgICAgICBTdHJpbmcgYnl0ZWNvZGVJbmRleDsKKyAgICAgICAgU3RyaW5nIGNvZGVCbG9j
a0hhc2g7CisgICAgICAgIGlmIChmcmFtZS5oYXNCeXRlY29kZUluZGV4KCkpCisgICAgICAgICAg
ICBieXRlY29kZUluZGV4ID0gU3RyaW5nOjpudW1iZXIoZnJhbWUuYnl0ZWNvZGVJbmRleCk7Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIGJ5dGVjb2RlSW5kZXggPSAiPG5pbD4iOworCisgICAg
ICAgIGlmIChmcmFtZS5oYXNDb2RlQmxvY2tIYXNoKCkpIHsKKyAgICAgICAgICAgIFN0cmluZ1By
aW50U3RyZWFtIHN0cmVhbTsKKyAgICAgICAgICAgIGZyYW1lLmNvZGVCbG9ja0hhc2guZHVtcChz
dHJlYW0pOworICAgICAgICAgICAgY29kZUJsb2NrSGFzaCA9IHN0cmVhbS50b1N0cmluZygpOwor
ICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIGNvZGVCbG9ja0hhc2ggPSAiPG5pbD4iOworCisg
ICAgICAgIFN0cmluZyBmcmFtZURlc2NyaXB0aW9uID0gbWFrZVN0cmluZyhmcmFtZS5kaXNwbGF5
TmFtZShtX3ZtKSwgIiMiLCBjb2RlQmxvY2tIYXNoLCAiOiIsIGJ5dGVjb2RlSW5kZXgpOworICAg
ICAgICBieXRlY29kZUNvdW50cy5hZGQoZnJhbWVEZXNjcmlwdGlvbiwgMCkuaXRlcmF0b3ItPnZh
bHVlKys7CisgICAgfQorCisgICAgYXV0byB0YWtlTWF4ID0gWyZdICgpIC0+IHN0ZDo6cGFpcjxT
dHJpbmcsIHNpemVfdD4geworICAgICAgICBTdHJpbmcgbWF4RnJhbWVEZXNjcmlwdGlvbjsKKyAg
ICAgICAgc2l6ZV90IG1heEZyYW1lQ291bnQgPSAwOworICAgICAgICBmb3IgKGF1dG8gZW50cnkg
OiBieXRlY29kZUNvdW50cykgeworICAgICAgICAgICAgaWYgKGVudHJ5LnZhbHVlID4gbWF4RnJh
bWVDb3VudCkgeworICAgICAgICAgICAgICAgIG1heEZyYW1lQ291bnQgPSBlbnRyeS52YWx1ZTsK
KyAgICAgICAgICAgICAgICBtYXhGcmFtZURlc2NyaXB0aW9uID0gZW50cnkua2V5OworICAgICAg
ICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmICghbWF4RnJhbWVEZXNjcmlwdGlvbi5pc0Vt
cHR5KCkpCisgICAgICAgICAgICBieXRlY29kZUNvdW50cy5yZW1vdmUobWF4RnJhbWVEZXNjcmlw
dGlvbik7CisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfcGFpcihtYXhGcmFtZURlc2NyaXB0aW9u
LCBtYXhGcmFtZUNvdW50KTsKKyAgICB9OworCisgICAgZGF0YUxvZygiXG5cblNhbXBsaW5nIHJh
dGU6ICIsIG1fdGltaW5nSW50ZXJ2YWwuY291bnQoKSwgIiBtaWNyb3NlY29uZHNcbiIpOworICAg
IGRhdGFMb2coIkhvdHRlc3QgYnl0ZWNvZGVzIGFzIDxudW1TYW1wbGVzICAgJ2Z1bmN0aW9uTmFt
ZSNoYXNoOmJ5dGVjb2RlSW5kZXgnPlxuIik7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCA4
MDsgaSsrKSB7CisgICAgICAgIGF1dG8gcGFpciA9IHRha2VNYXgoKTsKKyAgICAgICAgaWYgKHBh
aXIuZmlyc3QuaXNFbXB0eSgpKQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRhdGFMb2dG
KCIlNnp1ICIsIHBhaXIuc2Vjb25kKTsKKyAgICAgICAgZGF0YUxvZygiICAgJyIsIHBhaXIuZmly
c3QsICInXG4iKTsKKyAgICB9Cit9CisKIH0gLy8gbmFtZXNwYWNlIEpTQwogCiBuYW1lc3BhY2Ug
V1RGIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmls
ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGlu
Z1Byb2ZpbGVyLmgJKHJldmlzaW9uIDE5OTY5OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMjksNiArMjksNyBA
QAogI2lmIEVOQUJMRShTQU1QTElOR19QUk9GSUxFUikKIAogI2luY2x1ZGUgIkNhbGxGcmFtZS5o
IgorI2luY2x1ZGUgIkNvZGVCbG9ja0hhc2guaCIKICNpbmNsdWRlICJNYWNoaW5lU3RhY2tNYXJr
ZXIuaCIKICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CkBA
IC04Myw2ICs4NCw4IEBAIHB1YmxpYzoKICAgICAgICAgLy8gVGhlc2UgYXR0ZW1wdCB0byBiZSBl
eHByZXNzaW9uLWxldmVsIGxpbmUgYW5kIGNvbHVtbiBudW1iZXIuCiAgICAgICAgIHVuc2lnbmVk
IGxpbmVOdW1iZXIgeyBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4KCkgfTsKICAg
ICAgICAgdW5zaWduZWQgY29sdW1uTnVtYmVyIHsgc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25l
ZD46Om1heCgpIH07CisgICAgICAgIHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXggeyBzdGQ6Om51bWVy
aWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4KCkgfTsKKyAgICAgICAgQ29kZUJsb2NrSGFzaCBjb2Rl
QmxvY2tIYXNoOwogCiAgICAgICAgIGJvb2wgaGFzRXhwcmVzc2lvbkluZm8oKSBjb25zdAogICAg
ICAgICB7CkBAIC05MCw2ICs5MywxNiBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgJiYgY29s
dW1uTnVtYmVyICE9IHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgoKTsKICAgICAg
ICAgfQogCisgICAgICAgIGJvb2wgaGFzQnl0ZWNvZGVJbmRleCgpIGNvbnN0CisgICAgICAgIHsK
KyAgICAgICAgICAgIHJldHVybiBieXRlY29kZUluZGV4ICE9IHN0ZDo6bnVtZXJpY19saW1pdHM8
dW5zaWduZWQ+OjptYXgoKTsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2wgaGFzQ29kZUJsb2Nr
SGFzaCgpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBjb2RlQmxvY2tIYXNo
LmlzU2V0KCk7CisgICAgICAgIH0KKwogICAgICAgICAvLyBUaGVzZSBhcmUgZnVuY3Rpb24tbGV2
ZWwgZGF0YS4KICAgICAgICAgU3RyaW5nIG5hbWVGcm9tQ2FsbGVlKFZNJik7CiAgICAgICAgIFN0
cmluZyBkaXNwbGF5TmFtZShWTSYpOwpAQCAtMTM3LDYgKzE1MCwxMCBAQCBwdWJsaWM6CiAgICAg
dm9pZCBzZXRTdG9wV2F0Y2goY29uc3QgTG9ja0hvbGRlciYsIFJlZjxTdG9wd2F0Y2g+JiYgc3Rv
cHdhdGNoKSB7IG1fc3RvcHdhdGNoID0gV1RGTW92ZShzdG9wd2F0Y2gpOyB9CiAgICAgdm9pZCBw
YXVzZShjb25zdCBMb2NrSG9sZGVyJik7CiAKKyAgICAvLyBVc2VkIGZvciBkZWJ1Z2dpbmcgaW4g
dGhlIEpTQyBzaGVsbC4KKyAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIHJlcG9ydFRvcEZ1bmN0
aW9ucygpOworICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgcmVwb3J0VG9wQnl0ZWNvZGVzKCk7
CisKIHByaXZhdGU6CiAgICAgdm9pZCBjbGVhckRhdGEoY29uc3QgTG9ja0hvbGRlciYpOwogICAg
IHZvaWQgY3JlYXRlVGhyZWFkSWZOZWNlc3NhcnkoY29uc3QgTG9ja0hvbGRlciYpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>