<?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>95924</bug_id>
          
          <creation_ts>2012-09-05 19:00:11 -0700</creation_ts>
          <short_desc>Deploy StringBuilder in more places in WebKit2</short_desc>
          <delta_ts>2012-09-06 22:34:15 -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>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>0</everconfirmed>
          <reporter name="Jinwoo Song">jinwoo7.song</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>benjamin</cc>
    
    <cc>gtk-ews</cc>
    
    <cc>gustavo</cc>
    
    <cc>philn</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>712769</commentid>
    <comment_count>0</comment_count>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-09-05 19:00:11 -0700</bug_when>
    <thetext>Deploy StringBuilder to concatenate strings more efficiently.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712775</commentid>
    <comment_count>1</comment_count>
      <attachid>162394</attachid>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-09-05 19:03:58 -0700</bug_when>
    <thetext>Created attachment 162394
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712787</commentid>
    <comment_count>2</comment_count>
      <attachid>162394</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2012-09-05 19:18:35 -0700</bug_when>
    <thetext>Comment on attachment 162394
patch

Attachment 162394 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/13772121</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712789</commentid>
    <comment_count>3</comment_count>
      <attachid>162394</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-09-05 19:23:29 -0700</bug_when>
    <thetext>Comment on attachment 162394
patch

Attachment 162394 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/13772125</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712795</commentid>
    <comment_count>4</comment_count>
      <attachid>162394</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-09-05 19:41:34 -0700</bug_when>
    <thetext>Comment on attachment 162394
patch

Attachment 162394 did not pass win-ews (win):
Output: http://queues.webkit.org/results/13774119</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712801</commentid>
    <comment_count>5</comment_count>
      <attachid>162398</attachid>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-09-05 20:03:04 -0700</bug_when>
    <thetext>Created attachment 162398
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712820</commentid>
    <comment_count>6</comment_count>
      <attachid>162398</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-09-05 20:27:13 -0700</bug_when>
    <thetext>Comment on attachment 162398
patch

Attachment 162398 did not pass win-ews (win):
Output: http://queues.webkit.org/results/13772137</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712822</commentid>
    <comment_count>7</comment_count>
      <attachid>162403</attachid>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-09-05 20:28:58 -0700</bug_when>
    <thetext>Created attachment 162403
patch. build error fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712826</commentid>
    <comment_count>8</comment_count>
      <attachid>162403</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-09-05 20:35:20 -0700</bug_when>
    <thetext>Comment on attachment 162403
patch. build error fix.

Attachment 162403 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/13768206</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712834</commentid>
    <comment_count>9</comment_count>
      <attachid>162403</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-09-05 20:59:25 -0700</bug_when>
    <thetext>Comment on attachment 162403
patch. build error fix.

Attachment 162403 did not pass win-ews (win):
Output: http://queues.webkit.org/results/13765458</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712842</commentid>
    <comment_count>10</comment_count>
      <attachid>162403</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2012-09-05 21:19:06 -0700</bug_when>
    <thetext>Comment on attachment 162403
patch. build error fix.

View in context: https://bugs.webkit.org/attachment.cgi?id=162403&amp;action=review

&gt; Source/WebKit2/Shared/WebMemorySampler.cpp:141
&gt; +    processDetails.appendLiteral(&quot;\n&quot;);

append(&apos;\n&apos;) looks better.

&gt; Source/WebKit2/Shared/WebMemorySampler.cpp:142
&gt; +    writeToFile(m_sampleLogFile, processDetails.toString().utf8().data(), processDetails.toString().utf8().length());

I am not sure, but isn&apos;t it better to keep String reference instead of using toString twice ?

&gt; Source/WebKit2/Shared/WebMemorySampler.cpp:153
&gt; +    header.appendLiteral(&quot;\n&quot;);
&gt; +    writeToFile(m_sampleLogFile, header.toString().utf8().data(), header.toString().utf8().length());

Ditto.

&gt; Source/WebKit2/Shared/WebMemorySampler.cpp:184
&gt; +    statString.appendLiteral(&quot;\n&quot;);
&gt; +    writeToFile(m_sampleLogFile, statString.toString().utf8().data(), statString.toString().utf8().length());

Ditto.

&gt; Source/WebKit2/WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:127
&gt; +    etringBuilder result;

Typo</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712852</commentid>
    <comment_count>11</comment_count>
      <attachid>162403</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-09-05 21:41:27 -0700</bug_when>
    <thetext>Comment on attachment 162403
patch. build error fix.

Attachment 162403 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/13765470</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712866</commentid>
    <comment_count>12</comment_count>
      <attachid>162414</attachid>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-09-05 21:55:43 -0700</bug_when>
    <thetext>Created attachment 162414
fixed typo. :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712881</commentid>
    <comment_count>13</comment_count>
      <attachid>162419</attachid>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-09-05 22:17:28 -0700</bug_when>
    <thetext>Created attachment 162419
new patch. Applied ryuan&apos;s comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712887</commentid>
    <comment_count>14</comment_count>
      <attachid>162421</attachid>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-09-05 22:33:19 -0700</bug_when>
    <thetext>Created attachment 162421
patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712909</commentid>
    <comment_count>15</comment_count>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-09-05 22:58:53 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 162403 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=162403&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/Shared/WebMemorySampler.cpp:141
&gt; &gt; +    processDetails.appendLiteral(&quot;\n&quot;);
&gt; 
&gt; append(&apos;\n&apos;) looks better.
done.

&gt; 
&gt; &gt; Source/WebKit2/Shared/WebMemorySampler.cpp:142
&gt; &gt; +    writeToFile(m_sampleLogFile, processDetails.toString().utf8().data(), processDetails.toString().utf8().length());
&gt; 
&gt; I am not sure, but isn&apos;t it better to keep String reference instead of using toString twice ?
done. 
&gt; 
&gt; &gt; Source/WebKit2/Shared/WebMemorySampler.cpp:153
&gt; &gt; +    header.appendLiteral(&quot;\n&quot;);
&gt; &gt; +    writeToFile(m_sampleLogFile, header.toString().utf8().data(), header.toString().utf8().length());
&gt; 
&gt; Ditto.
done.

&gt; 
&gt; &gt; Source/WebKit2/Shared/WebMemorySampler.cpp:184
&gt; &gt; +    statString.appendLiteral(&quot;\n&quot;);
&gt; &gt; +    writeToFile(m_sampleLogFile, statString.toString().utf8().data(), statString.toString().utf8().length());
&gt; 
&gt; Ditto.
done.

&gt; 
&gt; &gt; Source/WebKit2/WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:127
&gt; &gt; +    etringBuilder result;
&gt; 
&gt; Typo
done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713209</commentid>
    <comment_count>16</comment_count>
      <attachid>162421</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2012-09-06 06:03:29 -0700</bug_when>
    <thetext>Comment on attachment 162421
patch.

View in context: https://bugs.webkit.org/attachment.cgi?id=162421&amp;action=review

It looks almost fine to me.

Below are some nit.

&gt; Source/WebKit2/ChangeLog:9
&gt; + 

one space.

&gt; Source/WebKit2/Shared/WebMemorySampler.cpp:49
&gt; +    : m_separator(ASCIILiteral(&quot;\t&quot;))  

remove spaces at end of lien.

&gt; Source/WebKit2/Shared/WebMemorySampler.cpp:151
&gt;              header.append(stats.keys[i].utf8().data());

stats.keys[i] looks enough.

&gt; Source/WebKit2/Shared/WebMemorySampler.cpp:176
&gt; +    StringBuilder statString; 

space.

&gt; Source/WebKit2/Shared/WebMemorySampler.cpp:187
&gt; +    statString.append(&apos;\n&apos;);
&gt; +    

ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713598</commentid>
    <comment_count>17</comment_count>
      <attachid>162421</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-09-06 12:56:36 -0700</bug_when>
    <thetext>Comment on attachment 162421
patch.

View in context: https://bugs.webkit.org/attachment.cgi?id=162421&amp;action=review

All the changes are good ideas, but we can do even better. Some comments:

&gt;&gt; Source/WebKit2/Shared/WebMemorySampler.cpp:49
&gt;&gt; -    : m_separator(String(&quot;\t&quot;))  
&gt;&gt; +    : m_separator(ASCIILiteral(&quot;\t&quot;))  
&gt; 
&gt; remove spaces at end of lien.

Reading WebMemorySampler, m_separator is a bad idea, you should get rid of it.

You can just have
const char separator = &apos;\t&apos;; in the cpp file.

&gt; Source/WebKit2/Shared/WebMemorySampler.cpp:141
&gt; -    String processDetails = String(&quot;Process: &quot;);
&gt; +    StringBuilder processDetails;
&gt; +    processDetails.appendLiteral(&quot;Process: &quot;);
&gt;      processDetails.append(processName());
&gt; -    processDetails.append(String(&quot;\n&quot;));
&gt; -    writeToFile(m_sampleLogFile, processDetails.utf8().data(), processDetails.utf8().length());
&gt; +    processDetails.append(&apos;\n&apos;);

Since there is no branch, it is more interesting to use the String Operators:
    String processDetails = &quot;Process: &quot; + processName() + &apos;\n&apos;;

&gt; Source/WebKit2/Shared/WebMemorySampler.cpp:186
&gt;              statString.append(String::number(memoryStats.values[i]));
&gt;          }
&gt;      }
&gt; -    statString.append(String(&quot;\n&quot;));
&gt; -    writeToFile(m_sampleLogFile, statString.utf8().data(), statString.utf8().length());
&gt; +    statString.append(&apos;\n&apos;);

This one is a big win with StringBuilder.

&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebContextMenuClient.cpp:87
&gt; -    String url(&quot;http://www.google.com/search?q=&quot;);
&gt; +    StringBuilder url;
&gt; +    url.appendLiteral(&quot;http://www.google.com/search?q=&quot;);
&gt;      url.append(encoded);
&gt; -    url.append(&quot;&amp;ie=UTF-8&amp;oe=UTF-8&quot;);
&gt; +    url.appendLiteral(&quot;&amp;ie=UTF-8&amp;oe=UTF-8&quot;);

This should use String Operators:
    url = &quot;http://www.google.com/search?q=&quot; + encoded + &quot;&amp;ie=UTF-8&amp;oe=UTF-8&quot;;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713960</commentid>
    <comment_count>18</comment_count>
      <attachid>162637</attachid>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-09-06 18:25:57 -0700</bug_when>
    <thetext>Created attachment 162637
patch applied comments from Ryuan and Benjamin</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713969</commentid>
    <comment_count>19</comment_count>
      <attachid>162640</attachid>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-09-06 18:31:53 -0700</bug_when>
    <thetext>Created attachment 162640
add ChangeLog

Applied comments by Ryuan and Benjamin. Thanks for scrupulous review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713981</commentid>
    <comment_count>20</comment_count>
      <attachid>162637</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2012-09-06 18:38:36 -0700</bug_when>
    <thetext>Comment on attachment 162637
patch applied comments from Ryuan and Benjamin

View in context: https://bugs.webkit.org/attachment.cgi?id=162637&amp;action=review

I think that this patch can be landed?

Why don&apos;t you add changelog and r?

&gt; Source/WebKit2/Shared/WebMemorySampler.cpp:39
&gt; +const char separator = &apos;\t&apos;;

nit. static const char?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714000</commentid>
    <comment_count>21</comment_count>
      <attachid>162649</attachid>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-09-06 19:06:28 -0700</bug_when>
    <thetext>Created attachment 162649
patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714002</commentid>
    <comment_count>22</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-09-06 19:08:07 -0700</bug_when>
    <thetext>&gt; &gt; Source/WebKit2/Shared/WebMemorySampler.cpp:39
&gt; &gt; +const char separator = &apos;\t&apos;;
&gt; 
&gt; nit. static const char?

Out of curiosity, why?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714071</commentid>
    <comment_count>23</comment_count>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2012-09-06 21:37:49 -0700</bug_when>
    <thetext>(In reply to comment #22)
&gt; &gt; &gt; Source/WebKit2/Shared/WebMemorySampler.cpp:39
&gt; &gt; &gt; +const char separator = &apos;\t&apos;;
&gt; &gt; 
&gt; &gt; nit. static const char?
&gt; 
&gt; Out of curiosity, why?

Just to clarify the scope.
It will be same irrespective of &apos;static&apos;

Am I right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714105</commentid>
    <comment_count>24</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-09-06 22:12:19 -0700</bug_when>
    <thetext>&gt; &gt; Out of curiosity, why?
&gt; 
&gt; Just to clarify the scope.
&gt; It will be same irrespective of &apos;static&apos;
&gt; 
&gt; Am I right?

That is right. I was thinking the value will likely end up in the __text segment anyway so why bother with static... But I see your point about making the scope explicit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714118</commentid>
    <comment_count>25</comment_count>
      <attachid>162649</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-06 22:34:10 -0700</bug_when>
    <thetext>Comment on attachment 162649
patch.

Clearing flags on attachment: 162649

Committed r127828: &lt;http://trac.webkit.org/changeset/127828&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714119</commentid>
    <comment_count>26</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-06 22:34:15 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162394</attachid>
            <date>2012-09-05 19:03:58 -0700</date>
            <delta_ts>2012-09-05 20:03:04 -0700</delta_ts>
            <desc>patch</desc>
            <filename>StringBuilder.patch</filename>
            <type>text/plain</type>
            <size>2645</size>
            <attacher name="Jinwoo Song">jinwoo7.song</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBmYTgwMzgxLi43ZTMyYWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTgg
QEAKKzIwMTItMDktMDUgIEppbndvbyBTb25nICA8amlud29vNy5zb25nQHNhbXN1bmcuY29tPgor
CisgICAgICAgIAorICAgICAgICBEZXBsb3kgU3RyaW5nQnVpbGRlciBpbiBtb3JlIHBsYWNlcyBp
biBXZWJQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD05NTkyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIERlcGxveSBTdHJpbmdCdWlsZGVyIHRvIGNvbmNhdGVuYXRlIHN0cmluZ3MgbW9yZSBlZmZp
Y2llbnRseS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2Fw
ZUJyb3dzZXJGdW5jcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OmNhcGl0YWxpemVSRkM4MjJIZWFk
ZXJGaWVsZE5hbWUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29u
dGV4dE1lbnVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudUNsaWVu
dDo6c2VhcmNoV2l0aEdvb2dsZSk6CisKIDIwMTItMDktMDUgIEthdXN0dWJoIEF0cmF3YWxrYXIg
IDxrYXVzdHViaEBtb3Rvcm9sYS5jb20+CiAKICAgICAgICAgW0RSVF0gTFRDOjogTW92ZSBwcmlu
dGluZyByZWxhdGVkIEFQSXMgZnJvbSBMYXlvdXRUZXN0Q29udHJvbGxlciB0byBJbnRlcm5hbHMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9O
ZXRzY2FwZUJyb3dzZXJGdW5jcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvTmV0c2NhcGUvTmV0c2NhcGVCcm93c2VyRnVuY3MuY3BwCmluZGV4IGQ0MGRiNzkuLmEzMmEy
YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2Fw
ZS9OZXRzY2FwZUJyb3dzZXJGdW5jcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlQnJvd3NlckZ1bmNzLmNwcApAQCAtMTIzLDcgKzEy
Myw3IEBAIHN0YXRpYyBjb25zdCBjaGFyKiBmaW5kRW5kT2ZMaW5lKGNvbnN0IGNoYXIqIGJ5dGVz
LCB1bnNpZ25lZCBsZW5ndGgpCiBzdGF0aWMgU3RyaW5nIGNhcGl0YWxpemVSRkM4MjJIZWFkZXJG
aWVsZE5hbWUoY29uc3QgU3RyaW5nJiBuYW1lKQogewogICAgIGJvb2wgY2FwaXRhbGl6ZUNoYXJh
Y3RlciA9IHRydWU7Ci0gICAgU3RyaW5nIHJlc3VsdDsKKyAgICBTdHJpbmdCdWlsZGVyIHJlc3Vs
dDsKIAogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBuYW1lLmxlbmd0aCgpOyBpKyspIHsK
ICAgICAgICAgVUNoYXIgYzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVudUNsaWVudC5jcHAKaW5kZXgg
ZTNhZjZmYy4uNTJmN2JiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVudUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVudUNsaWVudC5jcHAKQEAg
LTgxLDEzICs4MSwxNCBAQCB2b2lkIFdlYkNvbnRleHRNZW51Q2xpZW50OjpzZWFyY2hXaXRoR29v
Z2xlKGNvbnN0IEZyYW1lKiBmcmFtZSkKICAgICBTdHJpbmcgZW5jb2RlZCA9IGVuY29kZVdpdGhV
UkxFc2NhcGVTZXF1ZW5jZXMoc2VhcmNoU3RyaW5nKTsKICAgICBlbmNvZGVkLnJlcGxhY2UoIiUy
MCIsICIrIik7CiAgICAgCi0gICAgU3RyaW5nIHVybCgiaHR0cDovL3d3dy5nb29nbGUuY29tL3Nl
YXJjaD9xPSIpOworICAgIFN0cmluZ0J1aWxkZXIgdXJsOworICAgIHVybC5hcHBlbmRMaXRlcmFs
KCJodHRwOi8vd3d3Lmdvb2dsZS5jb20vc2VhcmNoP3E9Iik7CiAgICAgdXJsLmFwcGVuZChlbmNv
ZGVkKTsKLSAgICB1cmwuYXBwZW5kKCImaWU9VVRGLTgmb2U9VVRGLTgiKTsKKyAgICB1cmwuYXBw
ZW5kTGl0ZXJhbCgiJmllPVVURi04Jm9lPVVURi04Iik7CiAKICAgICBpZiAoUGFnZSogcGFnZSA9
IGZyYW1lLT5wYWdlKCkpIHsKICAgICAgICAgVXNlckdlc3R1cmVJbmRpY2F0b3IgaW5kaWNhdG9y
KERlZmluaXRlbHlQcm9jZXNzaW5nVXNlckdlc3R1cmUpOwotICAgICAgICBwYWdlLT5tYWluRnJh
bWUoKS0+bG9hZGVyKCktPnVybFNlbGVjdGVkKEtVUkwoUGFyc2VkVVJMU3RyaW5nLCB1cmwpLCBT
dHJpbmcoKSwgMCwgZmFsc2UsIGZhbHNlLCBNYXliZVNlbmRSZWZlcnJlcik7CisgICAgICAgIHBh
Z2UtPm1haW5GcmFtZSgpLT5sb2FkZXIoKS0+dXJsU2VsZWN0ZWQoS1VSTChQYXJzZWRVUkxTdHJp
bmcsIHVybC50b1N0cmluZygpKSwgU3RyaW5nKCksIDAsIGZhbHNlLCBmYWxzZSwgTWF5YmVTZW5k
UmVmZXJyZXIpOwogICAgIH0KIH0KIAo=
</data>
<flag name="commit-queue"
          id="173503"
          type_id="3"
          status="-"
          setter="gtk-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162398</attachid>
            <date>2012-09-05 20:03:04 -0700</date>
            <delta_ts>2012-09-05 20:28:58 -0700</delta_ts>
            <desc>patch</desc>
            <filename>StringBuilder.patch</filename>
            <type>text/plain</type>
            <size>6219</size>
            <attacher name="Jinwoo Song">jinwoo7.song</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBmYTgwMzgxLi4zYWEwOWJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIg
QEAKKzIwMTItMDktMDUgIEppbndvbyBTb25nICA8amlud29vNy5zb25nQHNhbXN1bmcuY29tPgor
CisgICAgICAgIERlcGxveSBTdHJpbmdCdWlsZGVyIGluIG1vcmUgcGxhY2VzIGluIFdlYktpdDIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1OTI0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRGVwbG95IFN0
cmluZ0J1aWxkZXIgdG8gY29uY2F0ZW5hdGUgc3RyaW5ncyBtb3JlIGVmZmljaWVudGx5LgorIAor
ICAgICAgICAqIFNoYXJlZC9XZWJNZW1vcnlTYW1wbGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViTWVtb3J5U2FtcGxlcjo6V2ViTWVtb3J5U2FtcGxlcik6CisgICAgICAgIChXZWJLaXQ6Oldl
Yk1lbW9yeVNhbXBsZXI6OnN0b3ApOgorICAgICAgICAoV2ViS2l0OjpXZWJNZW1vcnlTYW1wbGVy
Ojp3cml0ZUhlYWRlcnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJNZW1vcnlTYW1wbGVyOjphcHBl
bmRDdXJyZW50TWVtb3J5VXNhZ2VUb0ZpbGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9OZXRzY2FwZUJyb3dzZXJGdW5jcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OmNh
cGl0YWxpemVSRkM4MjJIZWFkZXJGaWVsZE5hbWUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJDb250ZXh0TWVudUNsaWVudDo6c2VhcmNoV2l0aEdvb2dsZSk6CisKIDIwMTItMDktMDUgIEth
dXN0dWJoIEF0cmF3YWxrYXIgIDxrYXVzdHViaEBtb3Rvcm9sYS5jb20+CiAKICAgICAgICAgW0RS
VF0gTFRDOjogTW92ZSBwcmludGluZyByZWxhdGVkIEFQSXMgZnJvbSBMYXlvdXRUZXN0Q29udHJv
bGxlciB0byBJbnRlcm5hbHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJN
ZW1vcnlTYW1wbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJNZW1vcnlTYW1wbGVy
LmNwcAppbmRleCBjMDMyNDZhLi43MDQyM2E0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViTWVtb3J5U2FtcGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
Yk1lbW9yeVNhbXBsZXIuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRlIDxzdGRpby5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJp
bmdCdWlsZGVyLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC00NSw3ICs0Niw3
IEBAIFdlYk1lbW9yeVNhbXBsZXIqIFdlYk1lbW9yeVNhbXBsZXI6OnNoYXJlZCgpCiB9CiAKIFdl
Yk1lbW9yeVNhbXBsZXI6OldlYk1lbW9yeVNhbXBsZXIoKSAKLSAgICA6IG1fc2VwYXJhdG9yKFN0
cmluZygiXHQiKSkgIAorICAgIDogbV9zZXBhcmF0b3IoQVNDSUlMaXRlcmFsKCJcdCIpKSAgCiAg
ICAgLCBtX3NhbXBsZVRpbWVyKHRoaXMsICZXZWJNZW1vcnlTYW1wbGVyOjpzYW1wbGVUaW1lckZp
cmVkKQogICAgICwgbV9zdG9wVGltZXIodGhpcywgJldlYk1lbW9yeVNhbXBsZXI6OnN0b3BUaW1l
ckZpcmVkKQogICAgICwgbV9pc1J1bm5pbmcoZmFsc2UpCkBAIC0xMDIsNyArMTAzLDcgQEAgdm9p
ZCBXZWJNZW1vcnlTYW1wbGVyOjpzdG9wKCkKICAgICBmZmx1c2goc3Rkb3V0KTsKICAgICBtX2lz
UnVubmluZyA9IGZhbHNlOwogICAgIAotICAgIGlmKG1fc3RvcFRpbWVyLmlzQWN0aXZlKCkpCisg
ICAgaWYgKG1fc3RvcFRpbWVyLmlzQWN0aXZlKCkpCiAgICAgICAgIG1fc3RvcFRpbWVyLnN0b3Ao
KTsKICAgICAKICAgICBpZiAobV9zYW1wbGVMb2dTYW5kYm94RXh0ZW5zaW9uKSB7CkBAIC0xMzQs
MTIgKzEzNSwxMyBAQCB2b2lkIFdlYk1lbW9yeVNhbXBsZXI6OmluaXRpYWxpemVTYW5kYm94ZWRM
b2dGaWxlKGNvbnN0IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZQogCiB2b2lkIFdlYk1lbW9yeVNh
bXBsZXI6OndyaXRlSGVhZGVycygpCiB7Ci0gICAgU3RyaW5nIHByb2Nlc3NEZXRhaWxzID0gU3Ry
aW5nKCJQcm9jZXNzOiAiKTsKKyAgICBTdHJpbmdCdWlsZGVyIHByb2Nlc3NEZXRhaWxzOworICAg
IHByb2Nlc3NEZXRhaWxzLmFwcGVuZExpdGVyYWwoIlByb2Nlc3M6ICIpOwogICAgIHByb2Nlc3NE
ZXRhaWxzLmFwcGVuZChwcm9jZXNzTmFtZSgpKTsKLSAgICBwcm9jZXNzRGV0YWlscy5hcHBlbmQo
U3RyaW5nKCJcbiIpKTsKLSAgICB3cml0ZVRvRmlsZShtX3NhbXBsZUxvZ0ZpbGUsIHByb2Nlc3NE
ZXRhaWxzLnV0ZjgoKS5kYXRhKCksIHByb2Nlc3NEZXRhaWxzLnV0ZjgoKS5sZW5ndGgoKSk7Cisg
ICAgcHJvY2Vzc0RldGFpbHMuYXBwZW5kTGl0ZXJhbCgiXG4iKTsKKyAgICB3cml0ZVRvRmlsZSht
X3NhbXBsZUxvZ0ZpbGUsIHByb2Nlc3NEZXRhaWxzLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSwg
cHJvY2Vzc0RldGFpbHMudG9TdHJpbmcoKS51dGY4KCkubGVuZ3RoKCkpOwogICAgIAotICAgIFN0
cmluZyBoZWFkZXI7IAorICAgIFN0cmluZ0J1aWxkZXIgaGVhZGVyOyAKICAgICBXZWJNZW1vcnlT
dGF0aXN0aWNzIHN0YXRzID0gc2FtcGxlV2ViS2l0KCk7CiAgICAgaWYgKCFzdGF0cy5rZXlzLmlz
RW1wdHkoKSkgewogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHN0YXRzLmtleXMuc2l6
ZSgpOyArK2kpIHsKQEAgLTE0Nyw4ICsxNDksOCBAQCB2b2lkIFdlYk1lbW9yeVNhbXBsZXI6Ondy
aXRlSGVhZGVycygpCiAgICAgICAgICAgICBoZWFkZXIuYXBwZW5kKHN0YXRzLmtleXNbaV0udXRm
OCgpLmRhdGEoKSk7CiAgICAgICAgIH0KICAgICB9Ci0gICAgaGVhZGVyLmFwcGVuZChTdHJpbmco
IlxuIikpOwotICAgIHdyaXRlVG9GaWxlKG1fc2FtcGxlTG9nRmlsZSwgaGVhZGVyLnV0ZjgoKS5k
YXRhKCksIGhlYWRlci51dGY4KCkubGVuZ3RoKCkpOworICAgIGhlYWRlci5hcHBlbmRMaXRlcmFs
KCJcbiIpOworICAgIHdyaXRlVG9GaWxlKG1fc2FtcGxlTG9nRmlsZSwgaGVhZGVyLnRvU3RyaW5n
KCkudXRmOCgpLmRhdGEoKSwgaGVhZGVyLnRvU3RyaW5nKCkudXRmOCgpLmxlbmd0aCgpKTsKIH0K
IAogdm9pZCBXZWJNZW1vcnlTYW1wbGVyOjpzYW1wbGVUaW1lckZpcmVkKFRpbWVyPFdlYk1lbW9y
eVNhbXBsZXI+KikKQEAgLTE2OCw3ICsxNzAsNyBAQCB2b2lkIFdlYk1lbW9yeVNhbXBsZXI6OnN0
b3BUaW1lckZpcmVkKFRpbWVyPFdlYk1lbW9yeVNhbXBsZXI+KikKIHZvaWQgV2ViTWVtb3J5U2Ft
cGxlcjo6YXBwZW5kQ3VycmVudE1lbW9yeVVzYWdlVG9GaWxlKFBsYXRmb3JtRmlsZUhhbmRsZSYg
ZmlsZSkKIHsKICAgICAvLyBDb2xsZWN0IHN0YXRpc3RpY3MgZnJvbSBhbGxvY2F0b3JzIGFuZCBn
ZXQgUlNJWkUgbWV0cmljCi0gICAgU3RyaW5nIHN0YXRTdHJpbmc7IAorICAgIFN0cmluZ0J1aWxk
ZXIgc3RhdFN0cmluZzsgCiAgICAgV2ViTWVtb3J5U3RhdGlzdGljcyBtZW1vcnlTdGF0cyA9IHNh
bXBsZVdlYktpdCgpOwogCiAgICAgaWYgKCFtZW1vcnlTdGF0cy52YWx1ZXMuaXNFbXB0eSgpKSB7
CkBAIC0xNzgsOCArMTgwLDggQEAgdm9pZCBXZWJNZW1vcnlTYW1wbGVyOjphcHBlbmRDdXJyZW50
TWVtb3J5VXNhZ2VUb0ZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlJiBmaWxlKQogICAgICAgICAgICAg
c3RhdFN0cmluZy5hcHBlbmQoU3RyaW5nOjpudW1iZXIobWVtb3J5U3RhdHMudmFsdWVzW2ldKSk7
CiAgICAgICAgIH0KICAgICB9Ci0gICAgc3RhdFN0cmluZy5hcHBlbmQoU3RyaW5nKCJcbiIpKTsK
LSAgICB3cml0ZVRvRmlsZShtX3NhbXBsZUxvZ0ZpbGUsIHN0YXRTdHJpbmcudXRmOCgpLmRhdGEo
KSwgc3RhdFN0cmluZy51dGY4KCkubGVuZ3RoKCkpOworICAgIHN0YXRTdHJpbmcuYXBwZW5kTGl0
ZXJhbCgiXG4iKTsKKyAgICB3cml0ZVRvRmlsZShtX3NhbXBsZUxvZ0ZpbGUsIHN0YXRTdHJpbmcu
dG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBzdGF0U3RyaW5nLnRvU3RyaW5nKCkudXRmOCgpLmxl
bmd0aCgpKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Q
bHVnaW5zL05ldHNjYXBlL05ldHNjYXBlQnJvd3NlckZ1bmNzLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZUJyb3dzZXJGdW5jcy5jcHAKaW5k
ZXggZDQwZGI3OS4uNDFlNzMzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlQnJvd3NlckZ1bmNzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVCcm93c2VyRnVuY3Mu
Y3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Qcm90ZWN0aW9uU3BhY2Uu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgogI2luY2x1ZGUgPHV0aWxpdHk+
CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCiAjaWYgUExBVEZPUk0oTUFD
KSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICNpbmNsdWRlICJO
ZXRzY2FwZVNhbmRib3hGdW5jdGlvbnMuaCIKQEAgLTEyMyw3ICsxMjQsNyBAQCBzdGF0aWMgY29u
c3QgY2hhciogZmluZEVuZE9mTGluZShjb25zdCBjaGFyKiBieXRlcywgdW5zaWduZWQgbGVuZ3Ro
KQogc3RhdGljIFN0cmluZyBjYXBpdGFsaXplUkZDODIySGVhZGVyRmllbGROYW1lKGNvbnN0IFN0
cmluZyYgbmFtZSkKIHsKICAgICBib29sIGNhcGl0YWxpemVDaGFyYWN0ZXIgPSB0cnVlOwotICAg
IFN0cmluZyByZXN1bHQ7CisgICAgU3RyaW5nQnVpbGRlciByZXN1bHQ7CiAKICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgbmFtZS5sZW5ndGgoKTsgaSsrKSB7CiAgICAgICAgIFVDaGFyIGM7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNvbnRleHRNZW51Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQuY3BwCmluZGV4IGUzYWY2ZmMuLjUyZjdiYjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q29udGV4dE1lbnVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQuY3BwCkBAIC04MSwxMyArODEsMTQgQEAg
dm9pZCBXZWJDb250ZXh0TWVudUNsaWVudDo6c2VhcmNoV2l0aEdvb2dsZShjb25zdCBGcmFtZSog
ZnJhbWUpCiAgICAgU3RyaW5nIGVuY29kZWQgPSBlbmNvZGVXaXRoVVJMRXNjYXBlU2VxdWVuY2Vz
KHNlYXJjaFN0cmluZyk7CiAgICAgZW5jb2RlZC5yZXBsYWNlKCIlMjAiLCAiKyIpOwogICAgIAot
ICAgIFN0cmluZyB1cmwoImh0dHA6Ly93d3cuZ29vZ2xlLmNvbS9zZWFyY2g/cT0iKTsKKyAgICBT
dHJpbmdCdWlsZGVyIHVybDsKKyAgICB1cmwuYXBwZW5kTGl0ZXJhbCgiaHR0cDovL3d3dy5nb29n
bGUuY29tL3NlYXJjaD9xPSIpOwogICAgIHVybC5hcHBlbmQoZW5jb2RlZCk7Ci0gICAgdXJsLmFw
cGVuZCgiJmllPVVURi04Jm9lPVVURi04Iik7CisgICAgdXJsLmFwcGVuZExpdGVyYWwoIiZpZT1V
VEYtOCZvZT1VVEYtOCIpOwogCiAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBmcmFtZS0+cGFnZSgpKSB7
CiAgICAgICAgIFVzZXJHZXN0dXJlSW5kaWNhdG9yIGluZGljYXRvcihEZWZpbml0ZWx5UHJvY2Vz
c2luZ1VzZXJHZXN0dXJlKTsKLSAgICAgICAgcGFnZS0+bWFpbkZyYW1lKCktPmxvYWRlcigpLT51
cmxTZWxlY3RlZChLVVJMKFBhcnNlZFVSTFN0cmluZywgdXJsKSwgU3RyaW5nKCksIDAsIGZhbHNl
LCBmYWxzZSwgTWF5YmVTZW5kUmVmZXJyZXIpOworICAgICAgICBwYWdlLT5tYWluRnJhbWUoKS0+
bG9hZGVyKCktPnVybFNlbGVjdGVkKEtVUkwoUGFyc2VkVVJMU3RyaW5nLCB1cmwudG9TdHJpbmco
KSksIFN0cmluZygpLCAwLCBmYWxzZSwgZmFsc2UsIE1heWJlU2VuZFJlZmVycmVyKTsKICAgICB9
CiB9CiAK
</data>
<flag name="commit-queue"
          id="173513"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162403</attachid>
            <date>2012-09-05 20:28:58 -0700</date>
            <delta_ts>2012-09-05 21:55:43 -0700</delta_ts>
            <desc>patch. build error fix.</desc>
            <filename>StringBuilder.patch</filename>
            <type>text/plain</type>
            <size>0</size>
            <attacher name="Jinwoo Song">jinwoo7.song</attacher>
            
              <data encoding="base64"></data>
<flag name="commit-queue"
          id="173514"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162414</attachid>
            <date>2012-09-05 21:55:43 -0700</date>
            <delta_ts>2012-09-05 22:17:28 -0700</delta_ts>
            <desc>fixed typo. :(</desc>
            <filename>StringBuilder.patch</filename>
            <type>text/plain</type>
            <size>6479</size>
            <attacher name="Jinwoo Song">jinwoo7.song</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBmYTgwMzgxLi4zYWEwOWJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIg
QEAKKzIwMTItMDktMDUgIEppbndvbyBTb25nICA8amlud29vNy5zb25nQHNhbXN1bmcuY29tPgor
CisgICAgICAgIERlcGxveSBTdHJpbmdCdWlsZGVyIGluIG1vcmUgcGxhY2VzIGluIFdlYktpdDIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1OTI0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRGVwbG95IFN0
cmluZ0J1aWxkZXIgdG8gY29uY2F0ZW5hdGUgc3RyaW5ncyBtb3JlIGVmZmljaWVudGx5LgorIAor
ICAgICAgICAqIFNoYXJlZC9XZWJNZW1vcnlTYW1wbGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViTWVtb3J5U2FtcGxlcjo6V2ViTWVtb3J5U2FtcGxlcik6CisgICAgICAgIChXZWJLaXQ6Oldl
Yk1lbW9yeVNhbXBsZXI6OnN0b3ApOgorICAgICAgICAoV2ViS2l0OjpXZWJNZW1vcnlTYW1wbGVy
Ojp3cml0ZUhlYWRlcnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJNZW1vcnlTYW1wbGVyOjphcHBl
bmRDdXJyZW50TWVtb3J5VXNhZ2VUb0ZpbGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9OZXRzY2FwZUJyb3dzZXJGdW5jcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OmNh
cGl0YWxpemVSRkM4MjJIZWFkZXJGaWVsZE5hbWUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJDb250ZXh0TWVudUNsaWVudDo6c2VhcmNoV2l0aEdvb2dsZSk6CisKIDIwMTItMDktMDUgIEth
dXN0dWJoIEF0cmF3YWxrYXIgIDxrYXVzdHViaEBtb3Rvcm9sYS5jb20+CiAKICAgICAgICAgW0RS
VF0gTFRDOjogTW92ZSBwcmludGluZyByZWxhdGVkIEFQSXMgZnJvbSBMYXlvdXRUZXN0Q29udHJv
bGxlciB0byBJbnRlcm5hbHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJN
ZW1vcnlTYW1wbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJNZW1vcnlTYW1wbGVy
LmNwcAppbmRleCBjMDMyNDZhLi43MDQyM2E0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViTWVtb3J5U2FtcGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
Yk1lbW9yeVNhbXBsZXIuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRlIDxzdGRpby5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJp
bmdCdWlsZGVyLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC00NSw3ICs0Niw3
IEBAIFdlYk1lbW9yeVNhbXBsZXIqIFdlYk1lbW9yeVNhbXBsZXI6OnNoYXJlZCgpCiB9CiAKIFdl
Yk1lbW9yeVNhbXBsZXI6OldlYk1lbW9yeVNhbXBsZXIoKSAKLSAgICA6IG1fc2VwYXJhdG9yKFN0
cmluZygiXHQiKSkgIAorICAgIDogbV9zZXBhcmF0b3IoQVNDSUlMaXRlcmFsKCJcdCIpKSAgCiAg
ICAgLCBtX3NhbXBsZVRpbWVyKHRoaXMsICZXZWJNZW1vcnlTYW1wbGVyOjpzYW1wbGVUaW1lckZp
cmVkKQogICAgICwgbV9zdG9wVGltZXIodGhpcywgJldlYk1lbW9yeVNhbXBsZXI6OnN0b3BUaW1l
ckZpcmVkKQogICAgICwgbV9pc1J1bm5pbmcoZmFsc2UpCkBAIC0xMDIsNyArMTAzLDcgQEAgdm9p
ZCBXZWJNZW1vcnlTYW1wbGVyOjpzdG9wKCkKICAgICBmZmx1c2goc3Rkb3V0KTsKICAgICBtX2lz
UnVubmluZyA9IGZhbHNlOwogICAgIAotICAgIGlmKG1fc3RvcFRpbWVyLmlzQWN0aXZlKCkpCisg
ICAgaWYgKG1fc3RvcFRpbWVyLmlzQWN0aXZlKCkpCiAgICAgICAgIG1fc3RvcFRpbWVyLnN0b3Ao
KTsKICAgICAKICAgICBpZiAobV9zYW1wbGVMb2dTYW5kYm94RXh0ZW5zaW9uKSB7CkBAIC0xMzQs
MTIgKzEzNSwxMyBAQCB2b2lkIFdlYk1lbW9yeVNhbXBsZXI6OmluaXRpYWxpemVTYW5kYm94ZWRM
b2dGaWxlKGNvbnN0IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZQogCiB2b2lkIFdlYk1lbW9yeVNh
bXBsZXI6OndyaXRlSGVhZGVycygpCiB7Ci0gICAgU3RyaW5nIHByb2Nlc3NEZXRhaWxzID0gU3Ry
aW5nKCJQcm9jZXNzOiAiKTsKKyAgICBTdHJpbmdCdWlsZGVyIHByb2Nlc3NEZXRhaWxzOworICAg
IHByb2Nlc3NEZXRhaWxzLmFwcGVuZExpdGVyYWwoIlByb2Nlc3M6ICIpOwogICAgIHByb2Nlc3NE
ZXRhaWxzLmFwcGVuZChwcm9jZXNzTmFtZSgpKTsKLSAgICBwcm9jZXNzRGV0YWlscy5hcHBlbmQo
U3RyaW5nKCJcbiIpKTsKLSAgICB3cml0ZVRvRmlsZShtX3NhbXBsZUxvZ0ZpbGUsIHByb2Nlc3NE
ZXRhaWxzLnV0ZjgoKS5kYXRhKCksIHByb2Nlc3NEZXRhaWxzLnV0ZjgoKS5sZW5ndGgoKSk7Cisg
ICAgcHJvY2Vzc0RldGFpbHMuYXBwZW5kTGl0ZXJhbCgiXG4iKTsKKyAgICB3cml0ZVRvRmlsZSht
X3NhbXBsZUxvZ0ZpbGUsIHByb2Nlc3NEZXRhaWxzLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSwg
cHJvY2Vzc0RldGFpbHMudG9TdHJpbmcoKS51dGY4KCkubGVuZ3RoKCkpOwogICAgIAotICAgIFN0
cmluZyBoZWFkZXI7IAorICAgIFN0cmluZ0J1aWxkZXIgaGVhZGVyOyAKICAgICBXZWJNZW1vcnlT
dGF0aXN0aWNzIHN0YXRzID0gc2FtcGxlV2ViS2l0KCk7CiAgICAgaWYgKCFzdGF0cy5rZXlzLmlz
RW1wdHkoKSkgewogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHN0YXRzLmtleXMuc2l6
ZSgpOyArK2kpIHsKQEAgLTE0Nyw4ICsxNDksOCBAQCB2b2lkIFdlYk1lbW9yeVNhbXBsZXI6Ondy
aXRlSGVhZGVycygpCiAgICAgICAgICAgICBoZWFkZXIuYXBwZW5kKHN0YXRzLmtleXNbaV0udXRm
OCgpLmRhdGEoKSk7CiAgICAgICAgIH0KICAgICB9Ci0gICAgaGVhZGVyLmFwcGVuZChTdHJpbmco
IlxuIikpOwotICAgIHdyaXRlVG9GaWxlKG1fc2FtcGxlTG9nRmlsZSwgaGVhZGVyLnV0ZjgoKS5k
YXRhKCksIGhlYWRlci51dGY4KCkubGVuZ3RoKCkpOworICAgIGhlYWRlci5hcHBlbmRMaXRlcmFs
KCJcbiIpOworICAgIHdyaXRlVG9GaWxlKG1fc2FtcGxlTG9nRmlsZSwgaGVhZGVyLnRvU3RyaW5n
KCkudXRmOCgpLmRhdGEoKSwgaGVhZGVyLnRvU3RyaW5nKCkudXRmOCgpLmxlbmd0aCgpKTsKIH0K
IAogdm9pZCBXZWJNZW1vcnlTYW1wbGVyOjpzYW1wbGVUaW1lckZpcmVkKFRpbWVyPFdlYk1lbW9y
eVNhbXBsZXI+KikKQEAgLTE2OCw3ICsxNzAsNyBAQCB2b2lkIFdlYk1lbW9yeVNhbXBsZXI6OnN0
b3BUaW1lckZpcmVkKFRpbWVyPFdlYk1lbW9yeVNhbXBsZXI+KikKIHZvaWQgV2ViTWVtb3J5U2Ft
cGxlcjo6YXBwZW5kQ3VycmVudE1lbW9yeVVzYWdlVG9GaWxlKFBsYXRmb3JtRmlsZUhhbmRsZSYg
ZmlsZSkKIHsKICAgICAvLyBDb2xsZWN0IHN0YXRpc3RpY3MgZnJvbSBhbGxvY2F0b3JzIGFuZCBn
ZXQgUlNJWkUgbWV0cmljCi0gICAgU3RyaW5nIHN0YXRTdHJpbmc7IAorICAgIFN0cmluZ0J1aWxk
ZXIgc3RhdFN0cmluZzsgCiAgICAgV2ViTWVtb3J5U3RhdGlzdGljcyBtZW1vcnlTdGF0cyA9IHNh
bXBsZVdlYktpdCgpOwogCiAgICAgaWYgKCFtZW1vcnlTdGF0cy52YWx1ZXMuaXNFbXB0eSgpKSB7
CkBAIC0xNzgsOCArMTgwLDggQEAgdm9pZCBXZWJNZW1vcnlTYW1wbGVyOjphcHBlbmRDdXJyZW50
TWVtb3J5VXNhZ2VUb0ZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlJiBmaWxlKQogICAgICAgICAgICAg
c3RhdFN0cmluZy5hcHBlbmQoU3RyaW5nOjpudW1iZXIobWVtb3J5U3RhdHMudmFsdWVzW2ldKSk7
CiAgICAgICAgIH0KICAgICB9Ci0gICAgc3RhdFN0cmluZy5hcHBlbmQoU3RyaW5nKCJcbiIpKTsK
LSAgICB3cml0ZVRvRmlsZShtX3NhbXBsZUxvZ0ZpbGUsIHN0YXRTdHJpbmcudXRmOCgpLmRhdGEo
KSwgc3RhdFN0cmluZy51dGY4KCkubGVuZ3RoKCkpOworICAgIHN0YXRTdHJpbmcuYXBwZW5kTGl0
ZXJhbCgiXG4iKTsKKyAgICB3cml0ZVRvRmlsZShtX3NhbXBsZUxvZ0ZpbGUsIHN0YXRTdHJpbmcu
dG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBzdGF0U3RyaW5nLnRvU3RyaW5nKCkudXRmOCgpLmxl
bmd0aCgpKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Q
bHVnaW5zL05ldHNjYXBlL05ldHNjYXBlQnJvd3NlckZ1bmNzLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZUJyb3dzZXJGdW5jcy5jcHAKaW5k
ZXggZDQwZGI3OS4uNGU0MTQ5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlQnJvd3NlckZ1bmNzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVCcm93c2VyRnVuY3Mu
Y3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Qcm90ZWN0aW9uU3BhY2Uu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgogI2luY2x1ZGUgPHV0aWxpdHk+
CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCiAjaWYgUExBVEZPUk0oTUFD
KSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICNpbmNsdWRlICJO
ZXRzY2FwZVNhbmRib3hGdW5jdGlvbnMuaCIKQEAgLTEyMyw3ICsxMjQsNyBAQCBzdGF0aWMgY29u
c3QgY2hhciogZmluZEVuZE9mTGluZShjb25zdCBjaGFyKiBieXRlcywgdW5zaWduZWQgbGVuZ3Ro
KQogc3RhdGljIFN0cmluZyBjYXBpdGFsaXplUkZDODIySGVhZGVyRmllbGROYW1lKGNvbnN0IFN0
cmluZyYgbmFtZSkKIHsKICAgICBib29sIGNhcGl0YWxpemVDaGFyYWN0ZXIgPSB0cnVlOwotICAg
IFN0cmluZyByZXN1bHQ7CisgICAgU3RyaW5nQnVpbGRlciByZXN1bHQ7CiAKICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgbmFtZS5sZW5ndGgoKTsgaSsrKSB7CiAgICAgICAgIFVDaGFyIGM7
CkBAIC0xNDMsNyArMTQ0LDcgQEAgc3RhdGljIFN0cmluZyBjYXBpdGFsaXplUkZDODIySGVhZGVy
RmllbGROYW1lKGNvbnN0IFN0cmluZyYgbmFtZSkKICAgICAgICAgcmVzdWx0LmFwcGVuZChjKTsK
ICAgICB9CiAKLSAgICByZXR1cm4gcmVzdWx0OworICAgIHJldHVybiByZXN1bHQudG9TdHJpbmco
KTsKIH0KIAogc3RhdGljIEhUVFBIZWFkZXJNYXAgcGFyc2VSRkM4MjJIZWFkZXJGaWVsZHMoY29u
c3QgY2hhciogYnl0ZXMsIHVuc2lnbmVkIGxlbmd0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVudUNs
aWVudC5jcHAKaW5kZXggZTNhZjZmYy4uNTJmN2JiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVudUNsaWVudC5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVu
dUNsaWVudC5jcHAKQEAgLTgxLDEzICs4MSwxNCBAQCB2b2lkIFdlYkNvbnRleHRNZW51Q2xpZW50
OjpzZWFyY2hXaXRoR29vZ2xlKGNvbnN0IEZyYW1lKiBmcmFtZSkKICAgICBTdHJpbmcgZW5jb2Rl
ZCA9IGVuY29kZVdpdGhVUkxFc2NhcGVTZXF1ZW5jZXMoc2VhcmNoU3RyaW5nKTsKICAgICBlbmNv
ZGVkLnJlcGxhY2UoIiUyMCIsICIrIik7CiAgICAgCi0gICAgU3RyaW5nIHVybCgiaHR0cDovL3d3
dy5nb29nbGUuY29tL3NlYXJjaD9xPSIpOworICAgIFN0cmluZ0J1aWxkZXIgdXJsOworICAgIHVy
bC5hcHBlbmRMaXRlcmFsKCJodHRwOi8vd3d3Lmdvb2dsZS5jb20vc2VhcmNoP3E9Iik7CiAgICAg
dXJsLmFwcGVuZChlbmNvZGVkKTsKLSAgICB1cmwuYXBwZW5kKCImaWU9VVRGLTgmb2U9VVRGLTgi
KTsKKyAgICB1cmwuYXBwZW5kTGl0ZXJhbCgiJmllPVVURi04Jm9lPVVURi04Iik7CiAKICAgICBp
ZiAoUGFnZSogcGFnZSA9IGZyYW1lLT5wYWdlKCkpIHsKICAgICAgICAgVXNlckdlc3R1cmVJbmRp
Y2F0b3IgaW5kaWNhdG9yKERlZmluaXRlbHlQcm9jZXNzaW5nVXNlckdlc3R1cmUpOwotICAgICAg
ICBwYWdlLT5tYWluRnJhbWUoKS0+bG9hZGVyKCktPnVybFNlbGVjdGVkKEtVUkwoUGFyc2VkVVJM
U3RyaW5nLCB1cmwpLCBTdHJpbmcoKSwgMCwgZmFsc2UsIGZhbHNlLCBNYXliZVNlbmRSZWZlcnJl
cik7CisgICAgICAgIHBhZ2UtPm1haW5GcmFtZSgpLT5sb2FkZXIoKS0+dXJsU2VsZWN0ZWQoS1VS
TChQYXJzZWRVUkxTdHJpbmcsIHVybC50b1N0cmluZygpKSwgU3RyaW5nKCksIDAsIGZhbHNlLCBm
YWxzZSwgTWF5YmVTZW5kUmVmZXJyZXIpOwogICAgIH0KIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162419</attachid>
            <date>2012-09-05 22:17:28 -0700</date>
            <delta_ts>2012-09-05 22:33:19 -0700</delta_ts>
            <desc>new patch. Applied ryuan&apos;s comments.</desc>
            <filename>StringBuilder.patch</filename>
            <type>text/plain</type>
            <size>6476</size>
            <attacher name="Jinwoo Song">jinwoo7.song</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBmYTgwMzgxLi4zYWEwOWJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIg
QEAKKzIwMTItMDktMDUgIEppbndvbyBTb25nICA8amlud29vNy5zb25nQHNhbXN1bmcuY29tPgor
CisgICAgICAgIERlcGxveSBTdHJpbmdCdWlsZGVyIGluIG1vcmUgcGxhY2VzIGluIFdlYktpdDIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1OTI0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRGVwbG95IFN0
cmluZ0J1aWxkZXIgdG8gY29uY2F0ZW5hdGUgc3RyaW5ncyBtb3JlIGVmZmljaWVudGx5LgorIAor
ICAgICAgICAqIFNoYXJlZC9XZWJNZW1vcnlTYW1wbGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViTWVtb3J5U2FtcGxlcjo6V2ViTWVtb3J5U2FtcGxlcik6CisgICAgICAgIChXZWJLaXQ6Oldl
Yk1lbW9yeVNhbXBsZXI6OnN0b3ApOgorICAgICAgICAoV2ViS2l0OjpXZWJNZW1vcnlTYW1wbGVy
Ojp3cml0ZUhlYWRlcnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJNZW1vcnlTYW1wbGVyOjphcHBl
bmRDdXJyZW50TWVtb3J5VXNhZ2VUb0ZpbGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9OZXRzY2FwZUJyb3dzZXJGdW5jcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OmNh
cGl0YWxpemVSRkM4MjJIZWFkZXJGaWVsZE5hbWUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJDb250ZXh0TWVudUNsaWVudDo6c2VhcmNoV2l0aEdvb2dsZSk6CisKIDIwMTItMDktMDUgIEth
dXN0dWJoIEF0cmF3YWxrYXIgIDxrYXVzdHViaEBtb3Rvcm9sYS5jb20+CiAKICAgICAgICAgW0RS
VF0gTFRDOjogTW92ZSBwcmludGluZyByZWxhdGVkIEFQSXMgZnJvbSBMYXlvdXRUZXN0Q29udHJv
bGxlciB0byBJbnRlcm5hbHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJN
ZW1vcnlTYW1wbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJNZW1vcnlTYW1wbGVy
LmNwcAppbmRleCBjMDMyNDZhLi5lZGVmMGVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViTWVtb3J5U2FtcGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
Yk1lbW9yeVNhbXBsZXIuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRlIDxzdGRpby5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJp
bmdCdWlsZGVyLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC00NSw3ICs0Niw3
IEBAIFdlYk1lbW9yeVNhbXBsZXIqIFdlYk1lbW9yeVNhbXBsZXI6OnNoYXJlZCgpCiB9CiAKIFdl
Yk1lbW9yeVNhbXBsZXI6OldlYk1lbW9yeVNhbXBsZXIoKSAKLSAgICA6IG1fc2VwYXJhdG9yKFN0
cmluZygiXHQiKSkgIAorICAgIDogbV9zZXBhcmF0b3IoQVNDSUlMaXRlcmFsKCJcdCIpKSAgCiAg
ICAgLCBtX3NhbXBsZVRpbWVyKHRoaXMsICZXZWJNZW1vcnlTYW1wbGVyOjpzYW1wbGVUaW1lckZp
cmVkKQogICAgICwgbV9zdG9wVGltZXIodGhpcywgJldlYk1lbW9yeVNhbXBsZXI6OnN0b3BUaW1l
ckZpcmVkKQogICAgICwgbV9pc1J1bm5pbmcoZmFsc2UpCkBAIC0xMDIsNyArMTAzLDcgQEAgdm9p
ZCBXZWJNZW1vcnlTYW1wbGVyOjpzdG9wKCkKICAgICBmZmx1c2goc3Rkb3V0KTsKICAgICBtX2lz
UnVubmluZyA9IGZhbHNlOwogICAgIAotICAgIGlmKG1fc3RvcFRpbWVyLmlzQWN0aXZlKCkpCisg
ICAgaWYgKG1fc3RvcFRpbWVyLmlzQWN0aXZlKCkpCiAgICAgICAgIG1fc3RvcFRpbWVyLnN0b3Ao
KTsKICAgICAKICAgICBpZiAobV9zYW1wbGVMb2dTYW5kYm94RXh0ZW5zaW9uKSB7CkBAIC0xMzQs
MTIgKzEzNSwxNSBAQCB2b2lkIFdlYk1lbW9yeVNhbXBsZXI6OmluaXRpYWxpemVTYW5kYm94ZWRM
b2dGaWxlKGNvbnN0IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZQogCiB2b2lkIFdlYk1lbW9yeVNh
bXBsZXI6OndyaXRlSGVhZGVycygpCiB7Ci0gICAgU3RyaW5nIHByb2Nlc3NEZXRhaWxzID0gU3Ry
aW5nKCJQcm9jZXNzOiAiKTsKKyAgICBTdHJpbmdCdWlsZGVyIHByb2Nlc3NEZXRhaWxzOworICAg
IHByb2Nlc3NEZXRhaWxzLmFwcGVuZExpdGVyYWwoIlByb2Nlc3M6ICIpOwogICAgIHByb2Nlc3NE
ZXRhaWxzLmFwcGVuZChwcm9jZXNzTmFtZSgpKTsKLSAgICBwcm9jZXNzRGV0YWlscy5hcHBlbmQo
U3RyaW5nKCJcbiIpKTsKLSAgICB3cml0ZVRvRmlsZShtX3NhbXBsZUxvZ0ZpbGUsIHByb2Nlc3NE
ZXRhaWxzLnV0ZjgoKS5kYXRhKCksIHByb2Nlc3NEZXRhaWxzLnV0ZjgoKS5sZW5ndGgoKSk7Cisg
ICAgcHJvY2Vzc0RldGFpbHMuYXBwZW5kKCdcbicpOworCisgICAgQ1N0cmluZyB1dGY4U3RyaW5n
ID0gcHJvY2Vzc0RldGFpbHMudG9TdHJpbmcoKS51dGY4KCk7CisgICAgd3JpdGVUb0ZpbGUobV9z
YW1wbGVMb2dGaWxlLCB1dGY4U3RyaW5nLmRhdGEoKSwgdXRmOFN0cmluZy5sZW5ndGgoKSk7CiAg
ICAgCi0gICAgU3RyaW5nIGhlYWRlcjsgCisgICAgU3RyaW5nQnVpbGRlciBoZWFkZXI7IAogICAg
IFdlYk1lbW9yeVN0YXRpc3RpY3Mgc3RhdHMgPSBzYW1wbGVXZWJLaXQoKTsKICAgICBpZiAoIXN0
YXRzLmtleXMuaXNFbXB0eSgpKSB7CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc3Rh
dHMua2V5cy5zaXplKCk7ICsraSkgewpAQCAtMTQ3LDggKzE1MSw4IEBAIHZvaWQgV2ViTWVtb3J5
U2FtcGxlcjo6d3JpdGVIZWFkZXJzKCkKICAgICAgICAgICAgIGhlYWRlci5hcHBlbmQoc3RhdHMu
a2V5c1tpXS51dGY4KCkuZGF0YSgpKTsKICAgICAgICAgfQogICAgIH0KLSAgICBoZWFkZXIuYXBw
ZW5kKFN0cmluZygiXG4iKSk7Ci0gICAgd3JpdGVUb0ZpbGUobV9zYW1wbGVMb2dGaWxlLCBoZWFk
ZXIudXRmOCgpLmRhdGEoKSwgaGVhZGVyLnV0ZjgoKS5sZW5ndGgoKSk7CisgICAgaGVhZGVyLmFw
cGVuZCgnXG4nKTsKKyAgICB3cml0ZVRvRmlsZShtX3NhbXBsZUxvZ0ZpbGUsIGhlYWRlci50b1N0
cmluZygpLnV0ZjgoKS5kYXRhKCksIGhlYWRlci50b1N0cmluZygpLnV0ZjgoKS5sZW5ndGgoKSk7
CiB9CiAKIHZvaWQgV2ViTWVtb3J5U2FtcGxlcjo6c2FtcGxlVGltZXJGaXJlZChUaW1lcjxXZWJN
ZW1vcnlTYW1wbGVyPiopCkBAIC0xNjgsNyArMTcyLDcgQEAgdm9pZCBXZWJNZW1vcnlTYW1wbGVy
OjpzdG9wVGltZXJGaXJlZChUaW1lcjxXZWJNZW1vcnlTYW1wbGVyPiopCiB2b2lkIFdlYk1lbW9y
eVNhbXBsZXI6OmFwcGVuZEN1cnJlbnRNZW1vcnlVc2FnZVRvRmlsZShQbGF0Zm9ybUZpbGVIYW5k
bGUmIGZpbGUpCiB7CiAgICAgLy8gQ29sbGVjdCBzdGF0aXN0aWNzIGZyb20gYWxsb2NhdG9ycyBh
bmQgZ2V0IFJTSVpFIG1ldHJpYwotICAgIFN0cmluZyBzdGF0U3RyaW5nOyAKKyAgICBTdHJpbmdC
dWlsZGVyIHN0YXRTdHJpbmc7IAogICAgIFdlYk1lbW9yeVN0YXRpc3RpY3MgbWVtb3J5U3RhdHMg
PSBzYW1wbGVXZWJLaXQoKTsKIAogICAgIGlmICghbWVtb3J5U3RhdHMudmFsdWVzLmlzRW1wdHko
KSkgewpAQCAtMTc4LDggKzE4Miw4IEBAIHZvaWQgV2ViTWVtb3J5U2FtcGxlcjo6YXBwZW5kQ3Vy
cmVudE1lbW9yeVVzYWdlVG9GaWxlKFBsYXRmb3JtRmlsZUhhbmRsZSYgZmlsZSkKICAgICAgICAg
ICAgIHN0YXRTdHJpbmcuYXBwZW5kKFN0cmluZzo6bnVtYmVyKG1lbW9yeVN0YXRzLnZhbHVlc1tp
XSkpOwogICAgICAgICB9CiAgICAgfQotICAgIHN0YXRTdHJpbmcuYXBwZW5kKFN0cmluZygiXG4i
KSk7Ci0gICAgd3JpdGVUb0ZpbGUobV9zYW1wbGVMb2dGaWxlLCBzdGF0U3RyaW5nLnV0ZjgoKS5k
YXRhKCksIHN0YXRTdHJpbmcudXRmOCgpLmxlbmd0aCgpKTsKKyAgICBzdGF0U3RyaW5nLmFwcGVu
ZCgnXG4nKTsKKyAgICB3cml0ZVRvRmlsZShtX3NhbXBsZUxvZ0ZpbGUsIHN0YXRTdHJpbmcudG9T
dHJpbmcoKS51dGY4KCkuZGF0YSgpLCBzdGF0U3RyaW5nLnRvU3RyaW5nKCkudXRmOCgpLmxlbmd0
aCgpKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL05ldHNjYXBlL05ldHNjYXBlQnJvd3NlckZ1bmNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZUJyb3dzZXJGdW5jcy5jcHAKaW5kZXgg
ZDQwZGI3OS4uNGU0MTQ5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Q
bHVnaW5zL05ldHNjYXBlL05ldHNjYXBlQnJvd3NlckZ1bmNzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVCcm93c2VyRnVuY3MuY3Bw
CkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Qcm90ZWN0aW9uU3BhY2UuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgogI2luY2x1ZGUgPHV0aWxpdHk+Cisj
aW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCiAjaWYgUExBVEZPUk0oTUFDKSAm
JiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICNpbmNsdWRlICJOZXRz
Y2FwZVNhbmRib3hGdW5jdGlvbnMuaCIKQEAgLTEyMyw3ICsxMjQsNyBAQCBzdGF0aWMgY29uc3Qg
Y2hhciogZmluZEVuZE9mTGluZShjb25zdCBjaGFyKiBieXRlcywgdW5zaWduZWQgbGVuZ3RoKQog
c3RhdGljIFN0cmluZyBjYXBpdGFsaXplUkZDODIySGVhZGVyRmllbGROYW1lKGNvbnN0IFN0cmlu
ZyYgbmFtZSkKIHsKICAgICBib29sIGNhcGl0YWxpemVDaGFyYWN0ZXIgPSB0cnVlOwotICAgIFN0
cmluZyByZXN1bHQ7CisgICAgU3RyaW5nQnVpbGRlciByZXN1bHQ7CiAKICAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgbmFtZS5sZW5ndGgoKTsgaSsrKSB7CiAgICAgICAgIFVDaGFyIGM7CkBA
IC0xNDMsNyArMTQ0LDcgQEAgc3RhdGljIFN0cmluZyBjYXBpdGFsaXplUkZDODIySGVhZGVyRmll
bGROYW1lKGNvbnN0IFN0cmluZyYgbmFtZSkKICAgICAgICAgcmVzdWx0LmFwcGVuZChjKTsKICAg
ICB9CiAKLSAgICByZXR1cm4gcmVzdWx0OworICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsK
IH0KIAogc3RhdGljIEhUVFBIZWFkZXJNYXAgcGFyc2VSRkM4MjJIZWFkZXJGaWVsZHMoY29uc3Qg
Y2hhciogYnl0ZXMsIHVuc2lnbmVkIGxlbmd0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVudUNsaWVu
dC5jcHAKaW5kZXggZTNhZjZmYy4uNTJmN2JiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVudUNsaWVudC5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVudUNs
aWVudC5jcHAKQEAgLTgxLDEzICs4MSwxNCBAQCB2b2lkIFdlYkNvbnRleHRNZW51Q2xpZW50Ojpz
ZWFyY2hXaXRoR29vZ2xlKGNvbnN0IEZyYW1lKiBmcmFtZSkKICAgICBTdHJpbmcgZW5jb2RlZCA9
IGVuY29kZVdpdGhVUkxFc2NhcGVTZXF1ZW5jZXMoc2VhcmNoU3RyaW5nKTsKICAgICBlbmNvZGVk
LnJlcGxhY2UoIiUyMCIsICIrIik7CiAgICAgCi0gICAgU3RyaW5nIHVybCgiaHR0cDovL3d3dy5n
b29nbGUuY29tL3NlYXJjaD9xPSIpOworICAgIFN0cmluZ0J1aWxkZXIgdXJsOworICAgIHVybC5h
cHBlbmRMaXRlcmFsKCJodHRwOi8vd3d3Lmdvb2dsZS5jb20vc2VhcmNoP3E9Iik7CiAgICAgdXJs
LmFwcGVuZChlbmNvZGVkKTsKLSAgICB1cmwuYXBwZW5kKCImaWU9VVRGLTgmb2U9VVRGLTgiKTsK
KyAgICB1cmwuYXBwZW5kTGl0ZXJhbCgiJmllPVVURi04Jm9lPVVURi04Iik7CiAKICAgICBpZiAo
UGFnZSogcGFnZSA9IGZyYW1lLT5wYWdlKCkpIHsKICAgICAgICAgVXNlckdlc3R1cmVJbmRpY2F0
b3IgaW5kaWNhdG9yKERlZmluaXRlbHlQcm9jZXNzaW5nVXNlckdlc3R1cmUpOwotICAgICAgICBw
YWdlLT5tYWluRnJhbWUoKS0+bG9hZGVyKCktPnVybFNlbGVjdGVkKEtVUkwoUGFyc2VkVVJMU3Ry
aW5nLCB1cmwpLCBTdHJpbmcoKSwgMCwgZmFsc2UsIGZhbHNlLCBNYXliZVNlbmRSZWZlcnJlcik7
CisgICAgICAgIHBhZ2UtPm1haW5GcmFtZSgpLT5sb2FkZXIoKS0+dXJsU2VsZWN0ZWQoS1VSTChQ
YXJzZWRVUkxTdHJpbmcsIHVybC50b1N0cmluZygpKSwgU3RyaW5nKCksIDAsIGZhbHNlLCBmYWxz
ZSwgTWF5YmVTZW5kUmVmZXJyZXIpOwogICAgIH0KIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162421</attachid>
            <date>2012-09-05 22:33:19 -0700</date>
            <delta_ts>2012-09-06 18:25:57 -0700</delta_ts>
            <desc>patch.</desc>
            <filename>StringBuilder.patch</filename>
            <type>text/plain</type>
            <size>6519</size>
            <attacher name="Jinwoo Song">jinwoo7.song</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBmYTgwMzgxLi4zYWEwOWJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIg
QEAKKzIwMTItMDktMDUgIEppbndvbyBTb25nICA8amlud29vNy5zb25nQHNhbXN1bmcuY29tPgor
CisgICAgICAgIERlcGxveSBTdHJpbmdCdWlsZGVyIGluIG1vcmUgcGxhY2VzIGluIFdlYktpdDIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1OTI0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRGVwbG95IFN0
cmluZ0J1aWxkZXIgdG8gY29uY2F0ZW5hdGUgc3RyaW5ncyBtb3JlIGVmZmljaWVudGx5LgorIAor
ICAgICAgICAqIFNoYXJlZC9XZWJNZW1vcnlTYW1wbGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViTWVtb3J5U2FtcGxlcjo6V2ViTWVtb3J5U2FtcGxlcik6CisgICAgICAgIChXZWJLaXQ6Oldl
Yk1lbW9yeVNhbXBsZXI6OnN0b3ApOgorICAgICAgICAoV2ViS2l0OjpXZWJNZW1vcnlTYW1wbGVy
Ojp3cml0ZUhlYWRlcnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJNZW1vcnlTYW1wbGVyOjphcHBl
bmRDdXJyZW50TWVtb3J5VXNhZ2VUb0ZpbGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9OZXRzY2FwZUJyb3dzZXJGdW5jcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OmNh
cGl0YWxpemVSRkM4MjJIZWFkZXJGaWVsZE5hbWUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJDb250ZXh0TWVudUNsaWVudDo6c2VhcmNoV2l0aEdvb2dsZSk6CisKIDIwMTItMDktMDUgIEth
dXN0dWJoIEF0cmF3YWxrYXIgIDxrYXVzdHViaEBtb3Rvcm9sYS5jb20+CiAKICAgICAgICAgW0RS
VF0gTFRDOjogTW92ZSBwcmludGluZyByZWxhdGVkIEFQSXMgZnJvbSBMYXlvdXRUZXN0Q29udHJv
bGxlciB0byBJbnRlcm5hbHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJN
ZW1vcnlTYW1wbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJNZW1vcnlTYW1wbGVy
LmNwcAppbmRleCBjMDMyNDZhLi43OWZmMTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViTWVtb3J5U2FtcGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
Yk1lbW9yeVNhbXBsZXIuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRlIDxzdGRpby5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJp
bmdCdWlsZGVyLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC00NSw3ICs0Niw3
IEBAIFdlYk1lbW9yeVNhbXBsZXIqIFdlYk1lbW9yeVNhbXBsZXI6OnNoYXJlZCgpCiB9CiAKIFdl
Yk1lbW9yeVNhbXBsZXI6OldlYk1lbW9yeVNhbXBsZXIoKSAKLSAgICA6IG1fc2VwYXJhdG9yKFN0
cmluZygiXHQiKSkgIAorICAgIDogbV9zZXBhcmF0b3IoQVNDSUlMaXRlcmFsKCJcdCIpKSAgCiAg
ICAgLCBtX3NhbXBsZVRpbWVyKHRoaXMsICZXZWJNZW1vcnlTYW1wbGVyOjpzYW1wbGVUaW1lckZp
cmVkKQogICAgICwgbV9zdG9wVGltZXIodGhpcywgJldlYk1lbW9yeVNhbXBsZXI6OnN0b3BUaW1l
ckZpcmVkKQogICAgICwgbV9pc1J1bm5pbmcoZmFsc2UpCkBAIC0xMDIsNyArMTAzLDcgQEAgdm9p
ZCBXZWJNZW1vcnlTYW1wbGVyOjpzdG9wKCkKICAgICBmZmx1c2goc3Rkb3V0KTsKICAgICBtX2lz
UnVubmluZyA9IGZhbHNlOwogICAgIAotICAgIGlmKG1fc3RvcFRpbWVyLmlzQWN0aXZlKCkpCisg
ICAgaWYgKG1fc3RvcFRpbWVyLmlzQWN0aXZlKCkpCiAgICAgICAgIG1fc3RvcFRpbWVyLnN0b3Ao
KTsKICAgICAKICAgICBpZiAobV9zYW1wbGVMb2dTYW5kYm94RXh0ZW5zaW9uKSB7CkBAIC0xMzQs
MTIgKzEzNSwxNSBAQCB2b2lkIFdlYk1lbW9yeVNhbXBsZXI6OmluaXRpYWxpemVTYW5kYm94ZWRM
b2dGaWxlKGNvbnN0IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZQogCiB2b2lkIFdlYk1lbW9yeVNh
bXBsZXI6OndyaXRlSGVhZGVycygpCiB7Ci0gICAgU3RyaW5nIHByb2Nlc3NEZXRhaWxzID0gU3Ry
aW5nKCJQcm9jZXNzOiAiKTsKKyAgICBTdHJpbmdCdWlsZGVyIHByb2Nlc3NEZXRhaWxzOworICAg
IHByb2Nlc3NEZXRhaWxzLmFwcGVuZExpdGVyYWwoIlByb2Nlc3M6ICIpOwogICAgIHByb2Nlc3NE
ZXRhaWxzLmFwcGVuZChwcm9jZXNzTmFtZSgpKTsKLSAgICBwcm9jZXNzRGV0YWlscy5hcHBlbmQo
U3RyaW5nKCJcbiIpKTsKLSAgICB3cml0ZVRvRmlsZShtX3NhbXBsZUxvZ0ZpbGUsIHByb2Nlc3NE
ZXRhaWxzLnV0ZjgoKS5kYXRhKCksIHByb2Nlc3NEZXRhaWxzLnV0ZjgoKS5sZW5ndGgoKSk7Cisg
ICAgcHJvY2Vzc0RldGFpbHMuYXBwZW5kKCdcbicpOworCisgICAgQ1N0cmluZyB1dGY4U3RyaW5n
ID0gcHJvY2Vzc0RldGFpbHMudG9TdHJpbmcoKS51dGY4KCk7CisgICAgd3JpdGVUb0ZpbGUobV9z
YW1wbGVMb2dGaWxlLCB1dGY4U3RyaW5nLmRhdGEoKSwgdXRmOFN0cmluZy5sZW5ndGgoKSk7CiAg
ICAgCi0gICAgU3RyaW5nIGhlYWRlcjsgCisgICAgU3RyaW5nQnVpbGRlciBoZWFkZXI7IAogICAg
IFdlYk1lbW9yeVN0YXRpc3RpY3Mgc3RhdHMgPSBzYW1wbGVXZWJLaXQoKTsKICAgICBpZiAoIXN0
YXRzLmtleXMuaXNFbXB0eSgpKSB7CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc3Rh
dHMua2V5cy5zaXplKCk7ICsraSkgewpAQCAtMTQ3LDggKzE1MSw5IEBAIHZvaWQgV2ViTWVtb3J5
U2FtcGxlcjo6d3JpdGVIZWFkZXJzKCkKICAgICAgICAgICAgIGhlYWRlci5hcHBlbmQoc3RhdHMu
a2V5c1tpXS51dGY4KCkuZGF0YSgpKTsKICAgICAgICAgfQogICAgIH0KLSAgICBoZWFkZXIuYXBw
ZW5kKFN0cmluZygiXG4iKSk7Ci0gICAgd3JpdGVUb0ZpbGUobV9zYW1wbGVMb2dGaWxlLCBoZWFk
ZXIudXRmOCgpLmRhdGEoKSwgaGVhZGVyLnV0ZjgoKS5sZW5ndGgoKSk7CisgICAgaGVhZGVyLmFw
cGVuZCgnXG4nKTsKKyAgICB1dGY4U3RyaW5nID0gaGVhZGVyLnRvU3RyaW5nKCkudXRmOCgpOwor
ICAgIHdyaXRlVG9GaWxlKG1fc2FtcGxlTG9nRmlsZSwgdXRmOFN0cmluZy5kYXRhKCksIHV0ZjhT
dHJpbmcubGVuZ3RoKCkpOwogfQogCiB2b2lkIFdlYk1lbW9yeVNhbXBsZXI6OnNhbXBsZVRpbWVy
RmlyZWQoVGltZXI8V2ViTWVtb3J5U2FtcGxlcj4qKQpAQCAtMTY4LDcgKzE3Myw3IEBAIHZvaWQg
V2ViTWVtb3J5U2FtcGxlcjo6c3RvcFRpbWVyRmlyZWQoVGltZXI8V2ViTWVtb3J5U2FtcGxlcj4q
KQogdm9pZCBXZWJNZW1vcnlTYW1wbGVyOjphcHBlbmRDdXJyZW50TWVtb3J5VXNhZ2VUb0ZpbGUo
UGxhdGZvcm1GaWxlSGFuZGxlJiBmaWxlKQogewogICAgIC8vIENvbGxlY3Qgc3RhdGlzdGljcyBm
cm9tIGFsbG9jYXRvcnMgYW5kIGdldCBSU0laRSBtZXRyaWMKLSAgICBTdHJpbmcgc3RhdFN0cmlu
ZzsgCisgICAgU3RyaW5nQnVpbGRlciBzdGF0U3RyaW5nOyAKICAgICBXZWJNZW1vcnlTdGF0aXN0
aWNzIG1lbW9yeVN0YXRzID0gc2FtcGxlV2ViS2l0KCk7CiAKICAgICBpZiAoIW1lbW9yeVN0YXRz
LnZhbHVlcy5pc0VtcHR5KCkpIHsKQEAgLTE3OCw4ICsxODMsMTAgQEAgdm9pZCBXZWJNZW1vcnlT
YW1wbGVyOjphcHBlbmRDdXJyZW50TWVtb3J5VXNhZ2VUb0ZpbGUoUGxhdGZvcm1GaWxlSGFuZGxl
JiBmaWxlKQogICAgICAgICAgICAgc3RhdFN0cmluZy5hcHBlbmQoU3RyaW5nOjpudW1iZXIobWVt
b3J5U3RhdHMudmFsdWVzW2ldKSk7CiAgICAgICAgIH0KICAgICB9Ci0gICAgc3RhdFN0cmluZy5h
cHBlbmQoU3RyaW5nKCJcbiIpKTsKLSAgICB3cml0ZVRvRmlsZShtX3NhbXBsZUxvZ0ZpbGUsIHN0
YXRTdHJpbmcudXRmOCgpLmRhdGEoKSwgc3RhdFN0cmluZy51dGY4KCkubGVuZ3RoKCkpOworICAg
IHN0YXRTdHJpbmcuYXBwZW5kKCdcbicpOworICAgIAorICAgIENTdHJpbmcgdXRmOFN0cmluZyA9
IHN0YXRTdHJpbmcudG9TdHJpbmcoKS51dGY4KCk7CisgICAgd3JpdGVUb0ZpbGUobV9zYW1wbGVM
b2dGaWxlLCB1dGY4U3RyaW5nLmRhdGEoKSwgdXRmOFN0cmluZy5sZW5ndGgoKSk7CiB9CiAKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9O
ZXRzY2FwZUJyb3dzZXJGdW5jcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvTmV0c2NhcGUvTmV0c2NhcGVCcm93c2VyRnVuY3MuY3BwCmluZGV4IGQ0MGRiNzkuLjRlNDE0
OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2Fw
ZS9OZXRzY2FwZUJyb3dzZXJGdW5jcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlQnJvd3NlckZ1bmNzLmNwcApAQCAtMzcsNiArMzcs
NyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUHJvdGVjdGlvblNwYWNlLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9TaGFyZWRCdWZmZXIuaD4KICNpbmNsdWRlIDx1dGlsaXR5PgorI2luY2x1ZGUgPHd0Zi90
ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAjaW5jbHVkZSAiTmV0c2NhcGVTYW5kYm94RnVu
Y3Rpb25zLmgiCkBAIC0xMjMsNyArMTI0LDcgQEAgc3RhdGljIGNvbnN0IGNoYXIqIGZpbmRFbmRP
ZkxpbmUoY29uc3QgY2hhciogYnl0ZXMsIHVuc2lnbmVkIGxlbmd0aCkKIHN0YXRpYyBTdHJpbmcg
Y2FwaXRhbGl6ZVJGQzgyMkhlYWRlckZpZWxkTmFtZShjb25zdCBTdHJpbmcmIG5hbWUpCiB7CiAg
ICAgYm9vbCBjYXBpdGFsaXplQ2hhcmFjdGVyID0gdHJ1ZTsKLSAgICBTdHJpbmcgcmVzdWx0Owor
ICAgIFN0cmluZ0J1aWxkZXIgcmVzdWx0OwogCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IG5hbWUubGVuZ3RoKCk7IGkrKykgewogICAgICAgICBVQ2hhciBjOwpAQCAtMTQzLDcgKzE0NCw3
IEBAIHN0YXRpYyBTdHJpbmcgY2FwaXRhbGl6ZVJGQzgyMkhlYWRlckZpZWxkTmFtZShjb25zdCBT
dHJpbmcmIG5hbWUpCiAgICAgICAgIHJlc3VsdC5hcHBlbmQoYyk7CiAgICAgfQogCi0gICAgcmV0
dXJuIHJlc3VsdDsKKyAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CiB9CiAKIHN0YXRpYyBI
VFRQSGVhZGVyTWFwIHBhcnNlUkZDODIySGVhZGVyRmllbGRzKGNvbnN0IGNoYXIqIGJ5dGVzLCB1
bnNpZ25lZCBsZW5ndGgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQuY3BwCmluZGV4IGUz
YWY2ZmMuLjUyZjdiYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQuY3BwCkBAIC04
MSwxMyArODEsMTQgQEAgdm9pZCBXZWJDb250ZXh0TWVudUNsaWVudDo6c2VhcmNoV2l0aEdvb2ds
ZShjb25zdCBGcmFtZSogZnJhbWUpCiAgICAgU3RyaW5nIGVuY29kZWQgPSBlbmNvZGVXaXRoVVJM
RXNjYXBlU2VxdWVuY2VzKHNlYXJjaFN0cmluZyk7CiAgICAgZW5jb2RlZC5yZXBsYWNlKCIlMjAi
LCAiKyIpOwogICAgIAotICAgIFN0cmluZyB1cmwoImh0dHA6Ly93d3cuZ29vZ2xlLmNvbS9zZWFy
Y2g/cT0iKTsKKyAgICBTdHJpbmdCdWlsZGVyIHVybDsKKyAgICB1cmwuYXBwZW5kTGl0ZXJhbCgi
aHR0cDovL3d3dy5nb29nbGUuY29tL3NlYXJjaD9xPSIpOwogICAgIHVybC5hcHBlbmQoZW5jb2Rl
ZCk7Ci0gICAgdXJsLmFwcGVuZCgiJmllPVVURi04Jm9lPVVURi04Iik7CisgICAgdXJsLmFwcGVu
ZExpdGVyYWwoIiZpZT1VVEYtOCZvZT1VVEYtOCIpOwogCiAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBm
cmFtZS0+cGFnZSgpKSB7CiAgICAgICAgIFVzZXJHZXN0dXJlSW5kaWNhdG9yIGluZGljYXRvcihE
ZWZpbml0ZWx5UHJvY2Vzc2luZ1VzZXJHZXN0dXJlKTsKLSAgICAgICAgcGFnZS0+bWFpbkZyYW1l
KCktPmxvYWRlcigpLT51cmxTZWxlY3RlZChLVVJMKFBhcnNlZFVSTFN0cmluZywgdXJsKSwgU3Ry
aW5nKCksIDAsIGZhbHNlLCBmYWxzZSwgTWF5YmVTZW5kUmVmZXJyZXIpOworICAgICAgICBwYWdl
LT5tYWluRnJhbWUoKS0+bG9hZGVyKCktPnVybFNlbGVjdGVkKEtVUkwoUGFyc2VkVVJMU3RyaW5n
LCB1cmwudG9TdHJpbmcoKSksIFN0cmluZygpLCAwLCBmYWxzZSwgZmFsc2UsIE1heWJlU2VuZFJl
ZmVycmVyKTsKICAgICB9CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162637</attachid>
            <date>2012-09-06 18:25:57 -0700</date>
            <delta_ts>2012-09-06 18:38:36 -0700</delta_ts>
            <desc>patch applied comments from Ryuan and Benjamin</desc>
            <filename>StringBuilder2.patch</filename>
            <type>text/plain</type>
            <size>6819</size>
            <attacher name="Jinwoo Song">jinwoo7.song</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJNZW1vcnlTYW1wbGVyLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJNZW1vcnlTYW1wbGVyLmNwcAppbmRleCBjMDMyNDZh
Li4wNjYxZWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTWVtb3J5U2Ft
cGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYk1lbW9yeVNhbXBsZXIuY3Bw
CkBAIC0zMCwxMSArMzAsMTMgQEAKIAogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvQ1N0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAog
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitjb25zdCBj
aGFyIHNlcGFyYXRvciA9ICdcdCc7CiAKIFdlYk1lbW9yeVNhbXBsZXIqIFdlYk1lbW9yeVNhbXBs
ZXI6OnNoYXJlZCgpCiB7CkBAIC00NSw4ICs0Nyw3IEBAIFdlYk1lbW9yeVNhbXBsZXIqIFdlYk1l
bW9yeVNhbXBsZXI6OnNoYXJlZCgpCiB9CiAKIFdlYk1lbW9yeVNhbXBsZXI6OldlYk1lbW9yeVNh
bXBsZXIoKSAKLSAgICA6IG1fc2VwYXJhdG9yKFN0cmluZygiXHQiKSkgIAotICAgICwgbV9zYW1w
bGVUaW1lcih0aGlzLCAmV2ViTWVtb3J5U2FtcGxlcjo6c2FtcGxlVGltZXJGaXJlZCkKKyAgICA6
IG1fc2FtcGxlVGltZXIodGhpcywgJldlYk1lbW9yeVNhbXBsZXI6OnNhbXBsZVRpbWVyRmlyZWQp
CiAgICAgLCBtX3N0b3BUaW1lcih0aGlzLCAmV2ViTWVtb3J5U2FtcGxlcjo6c3RvcFRpbWVyRmly
ZWQpCiAgICAgLCBtX2lzUnVubmluZyhmYWxzZSkKICAgICAsIG1fcnVubmluZ1RpbWUoMCkKQEAg
LTEwMiw3ICsxMDMsNyBAQCB2b2lkIFdlYk1lbW9yeVNhbXBsZXI6OnN0b3AoKQogICAgIGZmbHVz
aChzdGRvdXQpOwogICAgIG1faXNSdW5uaW5nID0gZmFsc2U7CiAgICAgCi0gICAgaWYobV9zdG9w
VGltZXIuaXNBY3RpdmUoKSkKKyAgICBpZiAobV9zdG9wVGltZXIuaXNBY3RpdmUoKSkKICAgICAg
ICAgbV9zdG9wVGltZXIuc3RvcCgpOwogICAgIAogICAgIGlmIChtX3NhbXBsZUxvZ1NhbmRib3hF
eHRlbnNpb24pIHsKQEAgLTEzNCwyMSArMTM1LDIyIEBAIHZvaWQgV2ViTWVtb3J5U2FtcGxlcjo6
aW5pdGlhbGl6ZVNhbmRib3hlZExvZ0ZpbGUoY29uc3QgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxl
CiAKIHZvaWQgV2ViTWVtb3J5U2FtcGxlcjo6d3JpdGVIZWFkZXJzKCkKIHsKLSAgICBTdHJpbmcg
cHJvY2Vzc0RldGFpbHMgPSBTdHJpbmcoIlByb2Nlc3M6ICIpOwotICAgIHByb2Nlc3NEZXRhaWxz
LmFwcGVuZChwcm9jZXNzTmFtZSgpKTsKLSAgICBwcm9jZXNzRGV0YWlscy5hcHBlbmQoU3RyaW5n
KCJcbiIpKTsKLSAgICB3cml0ZVRvRmlsZShtX3NhbXBsZUxvZ0ZpbGUsIHByb2Nlc3NEZXRhaWxz
LnV0ZjgoKS5kYXRhKCksIHByb2Nlc3NEZXRhaWxzLnV0ZjgoKS5sZW5ndGgoKSk7CisgICAgU3Ry
aW5nIHByb2Nlc3NEZXRhaWxzID0gIlByb2Nlc3M6ICIgKyBwcm9jZXNzTmFtZSgpICsgJ1xuJzsK
KworICAgIENTdHJpbmcgdXRmOFN0cmluZyA9IHByb2Nlc3NEZXRhaWxzLnV0ZjgoKTsKKyAgICB3
cml0ZVRvRmlsZShtX3NhbXBsZUxvZ0ZpbGUsIHV0ZjhTdHJpbmcuZGF0YSgpLCB1dGY4U3RyaW5n
Lmxlbmd0aCgpKTsKICAgICAKLSAgICBTdHJpbmcgaGVhZGVyOyAKKyAgICBTdHJpbmdCdWlsZGVy
IGhlYWRlcjsgCiAgICAgV2ViTWVtb3J5U3RhdGlzdGljcyBzdGF0cyA9IHNhbXBsZVdlYktpdCgp
OwogICAgIGlmICghc3RhdHMua2V5cy5pc0VtcHR5KCkpIHsKICAgICAgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBzdGF0cy5rZXlzLnNpemUoKTsgKytpKSB7Ci0gICAgICAgICAgICBoZWFkZXIu
YXBwZW5kKG1fc2VwYXJhdG9yKTsKLSAgICAgICAgICAgIGhlYWRlci5hcHBlbmQoc3RhdHMua2V5
c1tpXS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgICAgIGhlYWRlci5hcHBlbmQoc2VwYXJhdG9y
KTsKKyAgICAgICAgICAgIGhlYWRlci5hcHBlbmQoc3RhdHMua2V5c1tpXSk7CiAgICAgICAgIH0K
ICAgICB9Ci0gICAgaGVhZGVyLmFwcGVuZChTdHJpbmcoIlxuIikpOwotICAgIHdyaXRlVG9GaWxl
KG1fc2FtcGxlTG9nRmlsZSwgaGVhZGVyLnV0ZjgoKS5kYXRhKCksIGhlYWRlci51dGY4KCkubGVu
Z3RoKCkpOworICAgIGhlYWRlci5hcHBlbmQoJ1xuJyk7CisgICAgdXRmOFN0cmluZyA9IGhlYWRl
ci50b1N0cmluZygpLnV0ZjgoKTsKKyAgICB3cml0ZVRvRmlsZShtX3NhbXBsZUxvZ0ZpbGUsIHV0
ZjhTdHJpbmcuZGF0YSgpLCB1dGY4U3RyaW5nLmxlbmd0aCgpKTsKIH0KIAogdm9pZCBXZWJNZW1v
cnlTYW1wbGVyOjpzYW1wbGVUaW1lckZpcmVkKFRpbWVyPFdlYk1lbW9yeVNhbXBsZXI+KikKQEAg
LTE2OCwxOCArMTcwLDIwIEBAIHZvaWQgV2ViTWVtb3J5U2FtcGxlcjo6c3RvcFRpbWVyRmlyZWQo
VGltZXI8V2ViTWVtb3J5U2FtcGxlcj4qKQogdm9pZCBXZWJNZW1vcnlTYW1wbGVyOjphcHBlbmRD
dXJyZW50TWVtb3J5VXNhZ2VUb0ZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlJiBmaWxlKQogewogICAg
IC8vIENvbGxlY3Qgc3RhdGlzdGljcyBmcm9tIGFsbG9jYXRvcnMgYW5kIGdldCBSU0laRSBtZXRy
aWMKLSAgICBTdHJpbmcgc3RhdFN0cmluZzsgCisgICAgU3RyaW5nQnVpbGRlciBzdGF0U3RyaW5n
OwogICAgIFdlYk1lbW9yeVN0YXRpc3RpY3MgbWVtb3J5U3RhdHMgPSBzYW1wbGVXZWJLaXQoKTsK
IAogICAgIGlmICghbWVtb3J5U3RhdHMudmFsdWVzLmlzRW1wdHkoKSkgewotICAgICAgICBzdGF0
U3RyaW5nLmFwcGVuZChtX3NlcGFyYXRvcik7CisgICAgICAgIHN0YXRTdHJpbmcuYXBwZW5kKHNl
cGFyYXRvcik7CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbWVtb3J5U3RhdHMudmFs
dWVzLnNpemUoKTsgKytpKSB7Ci0gICAgICAgICAgICBzdGF0U3RyaW5nLmFwcGVuZChtX3NlcGFy
YXRvcik7CisgICAgICAgICAgICBzdGF0U3RyaW5nLmFwcGVuZChzZXBhcmF0b3IpOwogICAgICAg
ICAgICAgc3RhdFN0cmluZy5hcHBlbmQoU3RyaW5nOjpudW1iZXIobWVtb3J5U3RhdHMudmFsdWVz
W2ldKSk7CiAgICAgICAgIH0KICAgICB9Ci0gICAgc3RhdFN0cmluZy5hcHBlbmQoU3RyaW5nKCJc
biIpKTsKLSAgICB3cml0ZVRvRmlsZShtX3NhbXBsZUxvZ0ZpbGUsIHN0YXRTdHJpbmcudXRmOCgp
LmRhdGEoKSwgc3RhdFN0cmluZy51dGY4KCkubGVuZ3RoKCkpOworICAgIHN0YXRTdHJpbmcuYXBw
ZW5kKCdcbicpOworCisgICAgQ1N0cmluZyB1dGY4U3RyaW5nID0gc3RhdFN0cmluZy50b1N0cmlu
ZygpLnV0ZjgoKTsKKyAgICB3cml0ZVRvRmlsZShtX3NhbXBsZUxvZ0ZpbGUsIHV0ZjhTdHJpbmcu
ZGF0YSgpLCB1dGY4U3RyaW5nLmxlbmd0aCgpKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYk1lbW9yeVNhbXBsZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJNZW1vcnlTYW1wbGVyLmgKaW5kZXggYmM4OGIxOS4uNTQ4ZTUwNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYk1lbW9yeVNhbXBsZXIuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViTWVtb3J5U2FtcGxlci5oCkBAIC01MiwxOSArNTIsMTggQEAKICNpZiBF
TkFCTEUoTUVNT1JZX1NBTVBMRVIpCiAKICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCi0j
aW5jbHVkZSA8V2ViQ29yZS9UaW1lci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbS5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvVGltZXIuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUu
aD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogc3RydWN0IFN5c3RlbU1hbGxvY1N0YXRzOwog
Ci1zdHJ1Y3QgV2ViTWVtb3J5U3RhdGlzdGljcwoteworc3RydWN0IFdlYk1lbW9yeVN0YXRpc3Rp
Y3MgewogICAgIFZlY3RvcjxTdHJpbmc+IGtleXM7CiAgICAgVmVjdG9yPHNpemVfdD4gdmFsdWVz
OwogfTsKQEAgLTczLDggKzcyLDggQEAgY2xhc3MgV2ViTWVtb3J5U2FtcGxlciB7CiAgICAgV1RG
X01BS0VfTk9OQ09QWUFCTEUoV2ViTWVtb3J5U2FtcGxlcik7CiBwdWJsaWM6CiAgICAgc3RhdGlj
IFdlYk1lbW9yeVNhbXBsZXIqIHNoYXJlZCgpOwotICAgIHZvaWQgc3RhcnQoY29uc3QgZG91Ymxl
IGludGVydmFsPTApOwotICAgIHZvaWQgc3RhcnQoY29uc3QgU2FuZGJveEV4dGVuc2lvbjo6SGFu
ZGxlJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgZG91YmxlIGludGVydmFsPTApOworICAgIHZvaWQg
c3RhcnQoY29uc3QgZG91YmxlIGludGVydmFsID0gMCk7CisgICAgdm9pZCBzdGFydChjb25zdCBT
YW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBkb3VibGUgaW50
ZXJ2YWwgPSAwKTsKICAgICB2b2lkIHN0b3AoKTsKICAgICBib29sIGlzUnVubmluZygpIGNvbnN0
OwogICAgIApAQCAtOTgsNyArOTcsNiBAQCBwcml2YXRlOgogICAgIAogICAgIFdlYkNvcmU6OlBs
YXRmb3JtRmlsZUhhbmRsZSBtX3NhbXBsZUxvZ0ZpbGU7CiAgICAgU3RyaW5nIG1fc2FtcGxlTG9n
RmlsZVBhdGg7Ci0gICAgU3RyaW5nIG1fc2VwYXJhdG9yOwogICAgIFdlYkNvcmU6OlRpbWVyPFdl
Yk1lbW9yeVNhbXBsZXI+IG1fc2FtcGxlVGltZXI7CiAgICAgV2ViQ29yZTo6VGltZXI8V2ViTWVt
b3J5U2FtcGxlcj4gbV9zdG9wVGltZXI7CiAgICAgYm9vbCBtX2lzUnVubmluZzsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZUJy
b3dzZXJGdW5jcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2Nh
cGUvTmV0c2NhcGVCcm93c2VyRnVuY3MuY3BwCmluZGV4IGViZjRkYjguLjc1ODM4ZWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2Fw
ZUJyb3dzZXJGdW5jcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L05ldHNjYXBlL05ldHNjYXBlQnJvd3NlckZ1bmNzLmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2lu
Y2x1ZGUgPFdlYkNvcmUvUHJvdGVjdGlvblNwYWNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFy
ZWRCdWZmZXIuaD4KICNpbmNsdWRlIDx1dGlsaXR5PgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmlu
Z0J1aWxkZXIuaD4KIAogI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA+PSAxMDcwCiAjaW5jbHVkZSAiTmV0c2NhcGVTYW5kYm94RnVuY3Rpb25zLmgi
CkBAIC0xMjMsNyArMTI0LDcgQEAgc3RhdGljIGNvbnN0IGNoYXIqIGZpbmRFbmRPZkxpbmUoY29u
c3QgY2hhciogYnl0ZXMsIHVuc2lnbmVkIGxlbmd0aCkKIHN0YXRpYyBTdHJpbmcgY2FwaXRhbGl6
ZVJGQzgyMkhlYWRlckZpZWxkTmFtZShjb25zdCBTdHJpbmcmIG5hbWUpCiB7CiAgICAgYm9vbCBj
YXBpdGFsaXplQ2hhcmFjdGVyID0gdHJ1ZTsKLSAgICBTdHJpbmcgcmVzdWx0OworICAgIFN0cmlu
Z0J1aWxkZXIgcmVzdWx0OwogCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG5hbWUubGVu
Z3RoKCk7IGkrKykgewogICAgICAgICBVQ2hhciBjOwpAQCAtMTQzLDcgKzE0NCw3IEBAIHN0YXRp
YyBTdHJpbmcgY2FwaXRhbGl6ZVJGQzgyMkhlYWRlckZpZWxkTmFtZShjb25zdCBTdHJpbmcmIG5h
bWUpCiAgICAgICAgIHJlc3VsdC5hcHBlbmQoYyk7CiAgICAgfQogCi0gICAgcmV0dXJuIHJlc3Vs
dDsKKyAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CiB9CiAKIHN0YXRpYyBIVFRQSGVhZGVy
TWFwIHBhcnNlUkZDODIySGVhZGVyRmllbGRzKGNvbnN0IGNoYXIqIGJ5dGVzLCB1bnNpZ25lZCBs
ZW5ndGgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNvbnRleHRNZW51Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQuY3BwCmluZGV4IGUzYWY2ZmMuLjM2
MjRjYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ29udGV4dE1lbnVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQuY3BwCkBAIC04MSw5ICs4MSw3
IEBAIHZvaWQgV2ViQ29udGV4dE1lbnVDbGllbnQ6OnNlYXJjaFdpdGhHb29nbGUoY29uc3QgRnJh
bWUqIGZyYW1lKQogICAgIFN0cmluZyBlbmNvZGVkID0gZW5jb2RlV2l0aFVSTEVzY2FwZVNlcXVl
bmNlcyhzZWFyY2hTdHJpbmcpOwogICAgIGVuY29kZWQucmVwbGFjZSgiJTIwIiwgIisiKTsKICAg
ICAKLSAgICBTdHJpbmcgdXJsKCJodHRwOi8vd3d3Lmdvb2dsZS5jb20vc2VhcmNoP3E9Iik7Ci0g
ICAgdXJsLmFwcGVuZChlbmNvZGVkKTsKLSAgICB1cmwuYXBwZW5kKCImaWU9VVRGLTgmb2U9VVRG
LTgiKTsKKyAgICBTdHJpbmcgdXJsID0gImh0dHA6Ly93d3cuZ29vZ2xlLmNvbS9zZWFyY2g/cT0i
ICsgZW5jb2RlZCArICImaWU9VVRGLTgmb2U9VVRGLTgiOwogCiAgICAgaWYgKFBhZ2UqIHBhZ2Ug
PSBmcmFtZS0+cGFnZSgpKSB7CiAgICAgICAgIFVzZXJHZXN0dXJlSW5kaWNhdG9yIGluZGljYXRv
cihEZWZpbml0ZWx5UHJvY2Vzc2luZ1VzZXJHZXN0dXJlKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162640</attachid>
            <date>2012-09-06 18:31:53 -0700</date>
            <delta_ts>2012-09-06 19:06:28 -0700</delta_ts>
            <desc>add ChangeLog</desc>
            <filename>StringBuilder2.patch</filename>
            <type>text/plain</type>
            <size>7988</size>
            <attacher name="Jinwoo Song">jinwoo7.song</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAzYzM2ZjZjLi41MWNlMTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUg
QEAKKzIwMTItMDktMDYgIEppbndvbyBTb25nICA8amlud29vNy5zb25nQHNhbXN1bmcuY29tPgor
CisgICAgICAgIERlcGxveSBTdHJpbmdCdWlsZGVyIGluIG1vcmUgcGxhY2VzIGluIFdlYktpdDIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1OTI0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRGVwbG95IFN0
cmluZ0J1aWxkZXIgdG8gY29uY2F0ZW5hdGUgc3RyaW5ncyBtb3JlIGVmZmljaWVudGx5LgorCisg
ICAgICAgICogU2hhcmVkL1dlYk1lbW9yeVNhbXBsZXIuY3BwOgorICAgICAgICAoV2ViS2l0KToK
KyAgICAgICAgKFdlYktpdDo6V2ViTWVtb3J5U2FtcGxlcjo6V2ViTWVtb3J5U2FtcGxlcik6Cisg
ICAgICAgIChXZWJLaXQ6OldlYk1lbW9yeVNhbXBsZXI6OnN0b3ApOgorICAgICAgICAoV2ViS2l0
OjpXZWJNZW1vcnlTYW1wbGVyOjp3cml0ZUhlYWRlcnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJN
ZW1vcnlTYW1wbGVyOjphcHBlbmRDdXJyZW50TWVtb3J5VXNhZ2VUb0ZpbGUpOgorICAgICAgICAq
IFNoYXJlZC9XZWJNZW1vcnlTYW1wbGVyLmg6CisgICAgICAgIChXZWJNZW1vcnlTYW1wbGVyKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVCcm93c2VyRnVu
Y3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpjYXBpdGFsaXplUkZDODIySGVhZGVyRmllbGROYW1l
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNvbnRleHRNZW51Q2xp
ZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVDbGllbnQ6OnNlYXJjaFdp
dGhHb29nbGUpOgorCiAyMDEyLTA5LTA2ICBTaW1vbiBIYXVzbWFubiAgPHNpbW9uLmhhdXNtYW5u
QG5va2lhLmNvbT4KIAogICAgICAgICBbUXRdIEZpeCBidWlsZCB3aXRoIEFOR0xFIG9uIHBsYXRm
b3JtcyB0aGF0IHByb3ZpZGUgRUdML0dMRVN2MgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYk1lbW9yeVNhbXBsZXIuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYk1l
bW9yeVNhbXBsZXIuY3BwCmluZGV4IGMwMzI0NmEuLjA2NjFlYWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJNZW1vcnlTYW1wbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvV2ViTWVtb3J5U2FtcGxlci5jcHAKQEAgLTMwLDExICszMCwxMyBAQAogCiAjaW5j
bHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CisjaW5jbHVkZSA8
d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAog
bmFtZXNwYWNlIFdlYktpdCB7CiAKK2NvbnN0IGNoYXIgc2VwYXJhdG9yID0gJ1x0JzsKIAogV2Vi
TWVtb3J5U2FtcGxlciogV2ViTWVtb3J5U2FtcGxlcjo6c2hhcmVkKCkKIHsKQEAgLTQ1LDggKzQ3
LDcgQEAgV2ViTWVtb3J5U2FtcGxlciogV2ViTWVtb3J5U2FtcGxlcjo6c2hhcmVkKCkKIH0KIAog
V2ViTWVtb3J5U2FtcGxlcjo6V2ViTWVtb3J5U2FtcGxlcigpIAotICAgIDogbV9zZXBhcmF0b3Io
U3RyaW5nKCJcdCIpKSAgCi0gICAgLCBtX3NhbXBsZVRpbWVyKHRoaXMsICZXZWJNZW1vcnlTYW1w
bGVyOjpzYW1wbGVUaW1lckZpcmVkKQorICAgIDogbV9zYW1wbGVUaW1lcih0aGlzLCAmV2ViTWVt
b3J5U2FtcGxlcjo6c2FtcGxlVGltZXJGaXJlZCkKICAgICAsIG1fc3RvcFRpbWVyKHRoaXMsICZX
ZWJNZW1vcnlTYW1wbGVyOjpzdG9wVGltZXJGaXJlZCkKICAgICAsIG1faXNSdW5uaW5nKGZhbHNl
KQogICAgICwgbV9ydW5uaW5nVGltZSgwKQpAQCAtMTAyLDcgKzEwMyw3IEBAIHZvaWQgV2ViTWVt
b3J5U2FtcGxlcjo6c3RvcCgpCiAgICAgZmZsdXNoKHN0ZG91dCk7CiAgICAgbV9pc1J1bm5pbmcg
PSBmYWxzZTsKICAgICAKLSAgICBpZihtX3N0b3BUaW1lci5pc0FjdGl2ZSgpKQorICAgIGlmICht
X3N0b3BUaW1lci5pc0FjdGl2ZSgpKQogICAgICAgICBtX3N0b3BUaW1lci5zdG9wKCk7CiAgICAg
CiAgICAgaWYgKG1fc2FtcGxlTG9nU2FuZGJveEV4dGVuc2lvbikgewpAQCAtMTM0LDIxICsxMzUs
MjIgQEAgdm9pZCBXZWJNZW1vcnlTYW1wbGVyOjppbml0aWFsaXplU2FuZGJveGVkTG9nRmlsZShj
b25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUKIAogdm9pZCBXZWJNZW1vcnlTYW1wbGVyOjp3
cml0ZUhlYWRlcnMoKQogewotICAgIFN0cmluZyBwcm9jZXNzRGV0YWlscyA9IFN0cmluZygiUHJv
Y2VzczogIik7Ci0gICAgcHJvY2Vzc0RldGFpbHMuYXBwZW5kKHByb2Nlc3NOYW1lKCkpOwotICAg
IHByb2Nlc3NEZXRhaWxzLmFwcGVuZChTdHJpbmcoIlxuIikpOwotICAgIHdyaXRlVG9GaWxlKG1f
c2FtcGxlTG9nRmlsZSwgcHJvY2Vzc0RldGFpbHMudXRmOCgpLmRhdGEoKSwgcHJvY2Vzc0RldGFp
bHMudXRmOCgpLmxlbmd0aCgpKTsKKyAgICBTdHJpbmcgcHJvY2Vzc0RldGFpbHMgPSAiUHJvY2Vz
czogIiArIHByb2Nlc3NOYW1lKCkgKyAnXG4nOworCisgICAgQ1N0cmluZyB1dGY4U3RyaW5nID0g
cHJvY2Vzc0RldGFpbHMudXRmOCgpOworICAgIHdyaXRlVG9GaWxlKG1fc2FtcGxlTG9nRmlsZSwg
dXRmOFN0cmluZy5kYXRhKCksIHV0ZjhTdHJpbmcubGVuZ3RoKCkpOwogICAgIAotICAgIFN0cmlu
ZyBoZWFkZXI7IAorICAgIFN0cmluZ0J1aWxkZXIgaGVhZGVyOyAKICAgICBXZWJNZW1vcnlTdGF0
aXN0aWNzIHN0YXRzID0gc2FtcGxlV2ViS2l0KCk7CiAgICAgaWYgKCFzdGF0cy5rZXlzLmlzRW1w
dHkoKSkgewogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHN0YXRzLmtleXMuc2l6ZSgp
OyArK2kpIHsKLSAgICAgICAgICAgIGhlYWRlci5hcHBlbmQobV9zZXBhcmF0b3IpOwotICAgICAg
ICAgICAgaGVhZGVyLmFwcGVuZChzdGF0cy5rZXlzW2ldLnV0ZjgoKS5kYXRhKCkpOworICAgICAg
ICAgICAgaGVhZGVyLmFwcGVuZChzZXBhcmF0b3IpOworICAgICAgICAgICAgaGVhZGVyLmFwcGVu
ZChzdGF0cy5rZXlzW2ldKTsKICAgICAgICAgfQogICAgIH0KLSAgICBoZWFkZXIuYXBwZW5kKFN0
cmluZygiXG4iKSk7Ci0gICAgd3JpdGVUb0ZpbGUobV9zYW1wbGVMb2dGaWxlLCBoZWFkZXIudXRm
OCgpLmRhdGEoKSwgaGVhZGVyLnV0ZjgoKS5sZW5ndGgoKSk7CisgICAgaGVhZGVyLmFwcGVuZCgn
XG4nKTsKKyAgICB1dGY4U3RyaW5nID0gaGVhZGVyLnRvU3RyaW5nKCkudXRmOCgpOworICAgIHdy
aXRlVG9GaWxlKG1fc2FtcGxlTG9nRmlsZSwgdXRmOFN0cmluZy5kYXRhKCksIHV0ZjhTdHJpbmcu
bGVuZ3RoKCkpOwogfQogCiB2b2lkIFdlYk1lbW9yeVNhbXBsZXI6OnNhbXBsZVRpbWVyRmlyZWQo
VGltZXI8V2ViTWVtb3J5U2FtcGxlcj4qKQpAQCAtMTY4LDE4ICsxNzAsMjAgQEAgdm9pZCBXZWJN
ZW1vcnlTYW1wbGVyOjpzdG9wVGltZXJGaXJlZChUaW1lcjxXZWJNZW1vcnlTYW1wbGVyPiopCiB2
b2lkIFdlYk1lbW9yeVNhbXBsZXI6OmFwcGVuZEN1cnJlbnRNZW1vcnlVc2FnZVRvRmlsZShQbGF0
Zm9ybUZpbGVIYW5kbGUmIGZpbGUpCiB7CiAgICAgLy8gQ29sbGVjdCBzdGF0aXN0aWNzIGZyb20g
YWxsb2NhdG9ycyBhbmQgZ2V0IFJTSVpFIG1ldHJpYwotICAgIFN0cmluZyBzdGF0U3RyaW5nOyAK
KyAgICBTdHJpbmdCdWlsZGVyIHN0YXRTdHJpbmc7CiAgICAgV2ViTWVtb3J5U3RhdGlzdGljcyBt
ZW1vcnlTdGF0cyA9IHNhbXBsZVdlYktpdCgpOwogCiAgICAgaWYgKCFtZW1vcnlTdGF0cy52YWx1
ZXMuaXNFbXB0eSgpKSB7Ci0gICAgICAgIHN0YXRTdHJpbmcuYXBwZW5kKG1fc2VwYXJhdG9yKTsK
KyAgICAgICAgc3RhdFN0cmluZy5hcHBlbmQoc2VwYXJhdG9yKTsKICAgICAgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBtZW1vcnlTdGF0cy52YWx1ZXMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAg
ICAgIHN0YXRTdHJpbmcuYXBwZW5kKG1fc2VwYXJhdG9yKTsKKyAgICAgICAgICAgIHN0YXRTdHJp
bmcuYXBwZW5kKHNlcGFyYXRvcik7CiAgICAgICAgICAgICBzdGF0U3RyaW5nLmFwcGVuZChTdHJp
bmc6Om51bWJlcihtZW1vcnlTdGF0cy52YWx1ZXNbaV0pKTsKICAgICAgICAgfQogICAgIH0KLSAg
ICBzdGF0U3RyaW5nLmFwcGVuZChTdHJpbmcoIlxuIikpOwotICAgIHdyaXRlVG9GaWxlKG1fc2Ft
cGxlTG9nRmlsZSwgc3RhdFN0cmluZy51dGY4KCkuZGF0YSgpLCBzdGF0U3RyaW5nLnV0ZjgoKS5s
ZW5ndGgoKSk7CisgICAgc3RhdFN0cmluZy5hcHBlbmQoJ1xuJyk7CisKKyAgICBDU3RyaW5nIHV0
ZjhTdHJpbmcgPSBzdGF0U3RyaW5nLnRvU3RyaW5nKCkudXRmOCgpOworICAgIHdyaXRlVG9GaWxl
KG1fc2FtcGxlTG9nRmlsZSwgdXRmOFN0cmluZy5kYXRhKCksIHV0ZjhTdHJpbmcubGVuZ3RoKCkp
OwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTWVtb3J5U2Ft
cGxlci5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYk1lbW9yeVNhbXBsZXIuaAppbmRleCBi
Yzg4YjE5Li41NDhlNTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTWVt
b3J5U2FtcGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJNZW1vcnlTYW1wbGVy
LmgKQEAgLTUyLDE5ICs1MiwxOCBAQAogI2lmIEVOQUJMRShNRU1PUllfU0FNUExFUikKIAogI2lu
Y2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKLSNpbmNsdWRlIDxXZWJDb3JlL1RpbWVyLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9UaW1lci5o
PgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4K
LSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+
CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewog
CiBzdHJ1Y3QgU3lzdGVtTWFsbG9jU3RhdHM7CiAKLXN0cnVjdCBXZWJNZW1vcnlTdGF0aXN0aWNz
Ci17CitzdHJ1Y3QgV2ViTWVtb3J5U3RhdGlzdGljcyB7CiAgICAgVmVjdG9yPFN0cmluZz4ga2V5
czsKICAgICBWZWN0b3I8c2l6ZV90PiB2YWx1ZXM7CiB9OwpAQCAtNzMsOCArNzIsOCBAQCBjbGFz
cyBXZWJNZW1vcnlTYW1wbGVyIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShXZWJNZW1vcnlT
YW1wbGVyKTsKIHB1YmxpYzoKICAgICBzdGF0aWMgV2ViTWVtb3J5U2FtcGxlciogc2hhcmVkKCk7
Ci0gICAgdm9pZCBzdGFydChjb25zdCBkb3VibGUgaW50ZXJ2YWw9MCk7Ci0gICAgdm9pZCBzdGFy
dChjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBk
b3VibGUgaW50ZXJ2YWw9MCk7CisgICAgdm9pZCBzdGFydChjb25zdCBkb3VibGUgaW50ZXJ2YWwg
PSAwKTsKKyAgICB2b2lkIHN0YXJ0KGNvbnN0IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYsIGNv
bnN0IFN0cmluZyYsIGNvbnN0IGRvdWJsZSBpbnRlcnZhbCA9IDApOwogICAgIHZvaWQgc3RvcCgp
OwogICAgIGJvb2wgaXNSdW5uaW5nKCkgY29uc3Q7CiAgICAgCkBAIC05OCw3ICs5Nyw2IEBAIHBy
aXZhdGU6CiAgICAgCiAgICAgV2ViQ29yZTo6UGxhdGZvcm1GaWxlSGFuZGxlIG1fc2FtcGxlTG9n
RmlsZTsKICAgICBTdHJpbmcgbV9zYW1wbGVMb2dGaWxlUGF0aDsKLSAgICBTdHJpbmcgbV9zZXBh
cmF0b3I7CiAgICAgV2ViQ29yZTo6VGltZXI8V2ViTWVtb3J5U2FtcGxlcj4gbV9zYW1wbGVUaW1l
cjsKICAgICBXZWJDb3JlOjpUaW1lcjxXZWJNZW1vcnlTYW1wbGVyPiBtX3N0b3BUaW1lcjsKICAg
ICBib29sIG1faXNSdW5uaW5nOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlQnJvd3NlckZ1bmNzLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZUJyb3dzZXJGdW5jcy5jcHAK
aW5kZXggZWJmNGRiOC4uNzU4MzhlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlQnJvd3NlckZ1bmNzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVCcm93c2VyRnVu
Y3MuY3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Qcm90ZWN0aW9uU3Bh
Y2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgogI2luY2x1ZGUgPHV0aWxp
dHk+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCiAjaWYgUExBVEZPUk0o
TUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKICNpbmNsdWRl
ICJOZXRzY2FwZVNhbmRib3hGdW5jdGlvbnMuaCIKQEAgLTEyMyw3ICsxMjQsNyBAQCBzdGF0aWMg
Y29uc3QgY2hhciogZmluZEVuZE9mTGluZShjb25zdCBjaGFyKiBieXRlcywgdW5zaWduZWQgbGVu
Z3RoKQogc3RhdGljIFN0cmluZyBjYXBpdGFsaXplUkZDODIySGVhZGVyRmllbGROYW1lKGNvbnN0
IFN0cmluZyYgbmFtZSkKIHsKICAgICBib29sIGNhcGl0YWxpemVDaGFyYWN0ZXIgPSB0cnVlOwot
ICAgIFN0cmluZyByZXN1bHQ7CisgICAgU3RyaW5nQnVpbGRlciByZXN1bHQ7CiAKICAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgbmFtZS5sZW5ndGgoKTsgaSsrKSB7CiAgICAgICAgIFVDaGFy
IGM7CkBAIC0xNDMsNyArMTQ0LDcgQEAgc3RhdGljIFN0cmluZyBjYXBpdGFsaXplUkZDODIySGVh
ZGVyRmllbGROYW1lKGNvbnN0IFN0cmluZyYgbmFtZSkKICAgICAgICAgcmVzdWx0LmFwcGVuZChj
KTsKICAgICB9CiAKLSAgICByZXR1cm4gcmVzdWx0OworICAgIHJldHVybiByZXN1bHQudG9TdHJp
bmcoKTsKIH0KIAogc3RhdGljIEhUVFBIZWFkZXJNYXAgcGFyc2VSRkM4MjJIZWFkZXJGaWVsZHMo
Y29uc3QgY2hhciogYnl0ZXMsIHVuc2lnbmVkIGxlbmd0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQuY3Bw
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVu
dUNsaWVudC5jcHAKaW5kZXggZTNhZjZmYy4uMzYyNGNhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVudUNsaWVudC5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0
TWVudUNsaWVudC5jcHAKQEAgLTgxLDkgKzgxLDcgQEAgdm9pZCBXZWJDb250ZXh0TWVudUNsaWVu
dDo6c2VhcmNoV2l0aEdvb2dsZShjb25zdCBGcmFtZSogZnJhbWUpCiAgICAgU3RyaW5nIGVuY29k
ZWQgPSBlbmNvZGVXaXRoVVJMRXNjYXBlU2VxdWVuY2VzKHNlYXJjaFN0cmluZyk7CiAgICAgZW5j
b2RlZC5yZXBsYWNlKCIlMjAiLCAiKyIpOwogICAgIAotICAgIFN0cmluZyB1cmwoImh0dHA6Ly93
d3cuZ29vZ2xlLmNvbS9zZWFyY2g/cT0iKTsKLSAgICB1cmwuYXBwZW5kKGVuY29kZWQpOwotICAg
IHVybC5hcHBlbmQoIiZpZT1VVEYtOCZvZT1VVEYtOCIpOworICAgIFN0cmluZyB1cmwgPSAiaHR0
cDovL3d3dy5nb29nbGUuY29tL3NlYXJjaD9xPSIgKyBlbmNvZGVkICsgIiZpZT1VVEYtOCZvZT1V
VEYtOCI7CiAKICAgICBpZiAoUGFnZSogcGFnZSA9IGZyYW1lLT5wYWdlKCkpIHsKICAgICAgICAg
VXNlckdlc3R1cmVJbmRpY2F0b3IgaW5kaWNhdG9yKERlZmluaXRlbHlQcm9jZXNzaW5nVXNlckdl
c3R1cmUpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162649</attachid>
            <date>2012-09-06 19:06:28 -0700</date>
            <delta_ts>2012-09-06 22:34:10 -0700</delta_ts>
            <desc>patch.</desc>
            <filename>StringBuilder3.patch</filename>
            <type>text/plain</type>
            <size>7995</size>
            <attacher name="Jinwoo Song">jinwoo7.song</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAzYzM2ZjZjLi41MWNlMTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUg
QEAKKzIwMTItMDktMDYgIEppbndvbyBTb25nICA8amlud29vNy5zb25nQHNhbXN1bmcuY29tPgor
CisgICAgICAgIERlcGxveSBTdHJpbmdCdWlsZGVyIGluIG1vcmUgcGxhY2VzIGluIFdlYktpdDIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1OTI0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRGVwbG95IFN0
cmluZ0J1aWxkZXIgdG8gY29uY2F0ZW5hdGUgc3RyaW5ncyBtb3JlIGVmZmljaWVudGx5LgorCisg
ICAgICAgICogU2hhcmVkL1dlYk1lbW9yeVNhbXBsZXIuY3BwOgorICAgICAgICAoV2ViS2l0KToK
KyAgICAgICAgKFdlYktpdDo6V2ViTWVtb3J5U2FtcGxlcjo6V2ViTWVtb3J5U2FtcGxlcik6Cisg
ICAgICAgIChXZWJLaXQ6OldlYk1lbW9yeVNhbXBsZXI6OnN0b3ApOgorICAgICAgICAoV2ViS2l0
OjpXZWJNZW1vcnlTYW1wbGVyOjp3cml0ZUhlYWRlcnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJN
ZW1vcnlTYW1wbGVyOjphcHBlbmRDdXJyZW50TWVtb3J5VXNhZ2VUb0ZpbGUpOgorICAgICAgICAq
IFNoYXJlZC9XZWJNZW1vcnlTYW1wbGVyLmg6CisgICAgICAgIChXZWJNZW1vcnlTYW1wbGVyKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVCcm93c2VyRnVu
Y3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpjYXBpdGFsaXplUkZDODIySGVhZGVyRmllbGROYW1l
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNvbnRleHRNZW51Q2xp
ZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVDbGllbnQ6OnNlYXJjaFdp
dGhHb29nbGUpOgorCiAyMDEyLTA5LTA2ICBTaW1vbiBIYXVzbWFubiAgPHNpbW9uLmhhdXNtYW5u
QG5va2lhLmNvbT4KIAogICAgICAgICBbUXRdIEZpeCBidWlsZCB3aXRoIEFOR0xFIG9uIHBsYXRm
b3JtcyB0aGF0IHByb3ZpZGUgRUdML0dMRVN2MgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYk1lbW9yeVNhbXBsZXIuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYk1l
bW9yeVNhbXBsZXIuY3BwCmluZGV4IGMwMzI0NmEuLjZmNzc4NDMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJNZW1vcnlTYW1wbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvV2ViTWVtb3J5U2FtcGxlci5jcHAKQEAgLTMwLDExICszMCwxMyBAQAogCiAjaW5j
bHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CisjaW5jbHVkZSA8
d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAog
bmFtZXNwYWNlIFdlYktpdCB7CiAKK3N0YXRpYyBjb25zdCBjaGFyIHNlcGFyYXRvciA9ICdcdCc7
CiAKIFdlYk1lbW9yeVNhbXBsZXIqIFdlYk1lbW9yeVNhbXBsZXI6OnNoYXJlZCgpCiB7CkBAIC00
NSw4ICs0Nyw3IEBAIFdlYk1lbW9yeVNhbXBsZXIqIFdlYk1lbW9yeVNhbXBsZXI6OnNoYXJlZCgp
CiB9CiAKIFdlYk1lbW9yeVNhbXBsZXI6OldlYk1lbW9yeVNhbXBsZXIoKSAKLSAgICA6IG1fc2Vw
YXJhdG9yKFN0cmluZygiXHQiKSkgIAotICAgICwgbV9zYW1wbGVUaW1lcih0aGlzLCAmV2ViTWVt
b3J5U2FtcGxlcjo6c2FtcGxlVGltZXJGaXJlZCkKKyAgICA6IG1fc2FtcGxlVGltZXIodGhpcywg
JldlYk1lbW9yeVNhbXBsZXI6OnNhbXBsZVRpbWVyRmlyZWQpCiAgICAgLCBtX3N0b3BUaW1lcih0
aGlzLCAmV2ViTWVtb3J5U2FtcGxlcjo6c3RvcFRpbWVyRmlyZWQpCiAgICAgLCBtX2lzUnVubmlu
ZyhmYWxzZSkKICAgICAsIG1fcnVubmluZ1RpbWUoMCkKQEAgLTEwMiw3ICsxMDMsNyBAQCB2b2lk
IFdlYk1lbW9yeVNhbXBsZXI6OnN0b3AoKQogICAgIGZmbHVzaChzdGRvdXQpOwogICAgIG1faXNS
dW5uaW5nID0gZmFsc2U7CiAgICAgCi0gICAgaWYobV9zdG9wVGltZXIuaXNBY3RpdmUoKSkKKyAg
ICBpZiAobV9zdG9wVGltZXIuaXNBY3RpdmUoKSkKICAgICAgICAgbV9zdG9wVGltZXIuc3RvcCgp
OwogICAgIAogICAgIGlmIChtX3NhbXBsZUxvZ1NhbmRib3hFeHRlbnNpb24pIHsKQEAgLTEzNCwy
MSArMTM1LDIyIEBAIHZvaWQgV2ViTWVtb3J5U2FtcGxlcjo6aW5pdGlhbGl6ZVNhbmRib3hlZExv
Z0ZpbGUoY29uc3QgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlCiAKIHZvaWQgV2ViTWVtb3J5U2Ft
cGxlcjo6d3JpdGVIZWFkZXJzKCkKIHsKLSAgICBTdHJpbmcgcHJvY2Vzc0RldGFpbHMgPSBTdHJp
bmcoIlByb2Nlc3M6ICIpOwotICAgIHByb2Nlc3NEZXRhaWxzLmFwcGVuZChwcm9jZXNzTmFtZSgp
KTsKLSAgICBwcm9jZXNzRGV0YWlscy5hcHBlbmQoU3RyaW5nKCJcbiIpKTsKLSAgICB3cml0ZVRv
RmlsZShtX3NhbXBsZUxvZ0ZpbGUsIHByb2Nlc3NEZXRhaWxzLnV0ZjgoKS5kYXRhKCksIHByb2Nl
c3NEZXRhaWxzLnV0ZjgoKS5sZW5ndGgoKSk7CisgICAgU3RyaW5nIHByb2Nlc3NEZXRhaWxzID0g
IlByb2Nlc3M6ICIgKyBwcm9jZXNzTmFtZSgpICsgJ1xuJzsKKworICAgIENTdHJpbmcgdXRmOFN0
cmluZyA9IHByb2Nlc3NEZXRhaWxzLnV0ZjgoKTsKKyAgICB3cml0ZVRvRmlsZShtX3NhbXBsZUxv
Z0ZpbGUsIHV0ZjhTdHJpbmcuZGF0YSgpLCB1dGY4U3RyaW5nLmxlbmd0aCgpKTsKICAgICAKLSAg
ICBTdHJpbmcgaGVhZGVyOyAKKyAgICBTdHJpbmdCdWlsZGVyIGhlYWRlcjsgCiAgICAgV2ViTWVt
b3J5U3RhdGlzdGljcyBzdGF0cyA9IHNhbXBsZVdlYktpdCgpOwogICAgIGlmICghc3RhdHMua2V5
cy5pc0VtcHR5KCkpIHsKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzdGF0cy5rZXlz
LnNpemUoKTsgKytpKSB7Ci0gICAgICAgICAgICBoZWFkZXIuYXBwZW5kKG1fc2VwYXJhdG9yKTsK
LSAgICAgICAgICAgIGhlYWRlci5hcHBlbmQoc3RhdHMua2V5c1tpXS51dGY4KCkuZGF0YSgpKTsK
KyAgICAgICAgICAgIGhlYWRlci5hcHBlbmQoc2VwYXJhdG9yKTsKKyAgICAgICAgICAgIGhlYWRl
ci5hcHBlbmQoc3RhdHMua2V5c1tpXSk7CiAgICAgICAgIH0KICAgICB9Ci0gICAgaGVhZGVyLmFw
cGVuZChTdHJpbmcoIlxuIikpOwotICAgIHdyaXRlVG9GaWxlKG1fc2FtcGxlTG9nRmlsZSwgaGVh
ZGVyLnV0ZjgoKS5kYXRhKCksIGhlYWRlci51dGY4KCkubGVuZ3RoKCkpOworICAgIGhlYWRlci5h
cHBlbmQoJ1xuJyk7CisgICAgdXRmOFN0cmluZyA9IGhlYWRlci50b1N0cmluZygpLnV0ZjgoKTsK
KyAgICB3cml0ZVRvRmlsZShtX3NhbXBsZUxvZ0ZpbGUsIHV0ZjhTdHJpbmcuZGF0YSgpLCB1dGY4
U3RyaW5nLmxlbmd0aCgpKTsKIH0KIAogdm9pZCBXZWJNZW1vcnlTYW1wbGVyOjpzYW1wbGVUaW1l
ckZpcmVkKFRpbWVyPFdlYk1lbW9yeVNhbXBsZXI+KikKQEAgLTE2OCwxOCArMTcwLDIwIEBAIHZv
aWQgV2ViTWVtb3J5U2FtcGxlcjo6c3RvcFRpbWVyRmlyZWQoVGltZXI8V2ViTWVtb3J5U2FtcGxl
cj4qKQogdm9pZCBXZWJNZW1vcnlTYW1wbGVyOjphcHBlbmRDdXJyZW50TWVtb3J5VXNhZ2VUb0Zp
bGUoUGxhdGZvcm1GaWxlSGFuZGxlJiBmaWxlKQogewogICAgIC8vIENvbGxlY3Qgc3RhdGlzdGlj
cyBmcm9tIGFsbG9jYXRvcnMgYW5kIGdldCBSU0laRSBtZXRyaWMKLSAgICBTdHJpbmcgc3RhdFN0
cmluZzsgCisgICAgU3RyaW5nQnVpbGRlciBzdGF0U3RyaW5nOwogICAgIFdlYk1lbW9yeVN0YXRp
c3RpY3MgbWVtb3J5U3RhdHMgPSBzYW1wbGVXZWJLaXQoKTsKIAogICAgIGlmICghbWVtb3J5U3Rh
dHMudmFsdWVzLmlzRW1wdHkoKSkgewotICAgICAgICBzdGF0U3RyaW5nLmFwcGVuZChtX3NlcGFy
YXRvcik7CisgICAgICAgIHN0YXRTdHJpbmcuYXBwZW5kKHNlcGFyYXRvcik7CiAgICAgICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgbWVtb3J5U3RhdHMudmFsdWVzLnNpemUoKTsgKytpKSB7Ci0g
ICAgICAgICAgICBzdGF0U3RyaW5nLmFwcGVuZChtX3NlcGFyYXRvcik7CisgICAgICAgICAgICBz
dGF0U3RyaW5nLmFwcGVuZChzZXBhcmF0b3IpOwogICAgICAgICAgICAgc3RhdFN0cmluZy5hcHBl
bmQoU3RyaW5nOjpudW1iZXIobWVtb3J5U3RhdHMudmFsdWVzW2ldKSk7CiAgICAgICAgIH0KICAg
ICB9Ci0gICAgc3RhdFN0cmluZy5hcHBlbmQoU3RyaW5nKCJcbiIpKTsKLSAgICB3cml0ZVRvRmls
ZShtX3NhbXBsZUxvZ0ZpbGUsIHN0YXRTdHJpbmcudXRmOCgpLmRhdGEoKSwgc3RhdFN0cmluZy51
dGY4KCkubGVuZ3RoKCkpOworICAgIHN0YXRTdHJpbmcuYXBwZW5kKCdcbicpOworCisgICAgQ1N0
cmluZyB1dGY4U3RyaW5nID0gc3RhdFN0cmluZy50b1N0cmluZygpLnV0ZjgoKTsKKyAgICB3cml0
ZVRvRmlsZShtX3NhbXBsZUxvZ0ZpbGUsIHV0ZjhTdHJpbmcuZGF0YSgpLCB1dGY4U3RyaW5nLmxl
bmd0aCgpKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYk1l
bW9yeVNhbXBsZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJNZW1vcnlTYW1wbGVyLmgK
aW5kZXggYmM4OGIxOS4uNTQ4ZTUwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYk1lbW9yeVNhbXBsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTWVtb3J5
U2FtcGxlci5oCkBAIC01MiwxOSArNTIsMTggQEAKICNpZiBFTkFCTEUoTUVNT1JZX1NBTVBMRVIp
CiAKICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9UaW1l
ci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbS5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
VGltZXIuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvUmVm
UHRyLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL1Zl
Y3Rvci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAogc3RydWN0IFN5c3RlbU1hbGxvY1N0YXRzOwogCi1zdHJ1Y3QgV2ViTWVtb3J5U3Rh
dGlzdGljcwoteworc3RydWN0IFdlYk1lbW9yeVN0YXRpc3RpY3MgewogICAgIFZlY3RvcjxTdHJp
bmc+IGtleXM7CiAgICAgVmVjdG9yPHNpemVfdD4gdmFsdWVzOwogfTsKQEAgLTczLDggKzcyLDgg
QEAgY2xhc3MgV2ViTWVtb3J5U2FtcGxlciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoV2Vi
TWVtb3J5U2FtcGxlcik7CiBwdWJsaWM6CiAgICAgc3RhdGljIFdlYk1lbW9yeVNhbXBsZXIqIHNo
YXJlZCgpOwotICAgIHZvaWQgc3RhcnQoY29uc3QgZG91YmxlIGludGVydmFsPTApOwotICAgIHZv
aWQgc3RhcnQoY29uc3QgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiwgY29uc3QgU3RyaW5nJiwg
Y29uc3QgZG91YmxlIGludGVydmFsPTApOworICAgIHZvaWQgc3RhcnQoY29uc3QgZG91YmxlIGlu
dGVydmFsID0gMCk7CisgICAgdm9pZCBzdGFydChjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5k
bGUmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBkb3VibGUgaW50ZXJ2YWwgPSAwKTsKICAgICB2b2lk
IHN0b3AoKTsKICAgICBib29sIGlzUnVubmluZygpIGNvbnN0OwogICAgIApAQCAtOTgsNyArOTcs
NiBAQCBwcml2YXRlOgogICAgIAogICAgIFdlYkNvcmU6OlBsYXRmb3JtRmlsZUhhbmRsZSBtX3Nh
bXBsZUxvZ0ZpbGU7CiAgICAgU3RyaW5nIG1fc2FtcGxlTG9nRmlsZVBhdGg7Ci0gICAgU3RyaW5n
IG1fc2VwYXJhdG9yOwogICAgIFdlYkNvcmU6OlRpbWVyPFdlYk1lbW9yeVNhbXBsZXI+IG1fc2Ft
cGxlVGltZXI7CiAgICAgV2ViQ29yZTo6VGltZXI8V2ViTWVtb3J5U2FtcGxlcj4gbV9zdG9wVGlt
ZXI7CiAgICAgYm9vbCBtX2lzUnVubmluZzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZUJyb3dzZXJGdW5jcy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVCcm93c2VyRnVu
Y3MuY3BwCmluZGV4IGViZjRkYjguLjc1ODM4ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZUJyb3dzZXJGdW5jcy5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlQnJv
d3NlckZ1bmNzLmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUHJvdGVj
dGlvblNwYWNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KICNpbmNsdWRl
IDx1dGlsaXR5PgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogI2lmIFBM
QVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAj
aW5jbHVkZSAiTmV0c2NhcGVTYW5kYm94RnVuY3Rpb25zLmgiCkBAIC0xMjMsNyArMTI0LDcgQEAg
c3RhdGljIGNvbnN0IGNoYXIqIGZpbmRFbmRPZkxpbmUoY29uc3QgY2hhciogYnl0ZXMsIHVuc2ln
bmVkIGxlbmd0aCkKIHN0YXRpYyBTdHJpbmcgY2FwaXRhbGl6ZVJGQzgyMkhlYWRlckZpZWxkTmFt
ZShjb25zdCBTdHJpbmcmIG5hbWUpCiB7CiAgICAgYm9vbCBjYXBpdGFsaXplQ2hhcmFjdGVyID0g
dHJ1ZTsKLSAgICBTdHJpbmcgcmVzdWx0OworICAgIFN0cmluZ0J1aWxkZXIgcmVzdWx0OwogCiAg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG5hbWUubGVuZ3RoKCk7IGkrKykgewogICAgICAg
ICBVQ2hhciBjOwpAQCAtMTQzLDcgKzE0NCw3IEBAIHN0YXRpYyBTdHJpbmcgY2FwaXRhbGl6ZVJG
QzgyMkhlYWRlckZpZWxkTmFtZShjb25zdCBTdHJpbmcmIG5hbWUpCiAgICAgICAgIHJlc3VsdC5h
cHBlbmQoYyk7CiAgICAgfQogCi0gICAgcmV0dXJuIHJlc3VsdDsKKyAgICByZXR1cm4gcmVzdWx0
LnRvU3RyaW5nKCk7CiB9CiAKIHN0YXRpYyBIVFRQSGVhZGVyTWFwIHBhcnNlUkZDODIySGVhZGVy
RmllbGRzKGNvbnN0IGNoYXIqIGJ5dGVzLCB1bnNpZ25lZCBsZW5ndGgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNvbnRleHRNZW51Q2xp
ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29u
dGV4dE1lbnVDbGllbnQuY3BwCmluZGV4IGUzYWY2ZmMuLjM2MjRjYTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGll
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q29udGV4dE1lbnVDbGllbnQuY3BwCkBAIC04MSw5ICs4MSw3IEBAIHZvaWQgV2ViQ29udGV4dE1l
bnVDbGllbnQ6OnNlYXJjaFdpdGhHb29nbGUoY29uc3QgRnJhbWUqIGZyYW1lKQogICAgIFN0cmlu
ZyBlbmNvZGVkID0gZW5jb2RlV2l0aFVSTEVzY2FwZVNlcXVlbmNlcyhzZWFyY2hTdHJpbmcpOwog
ICAgIGVuY29kZWQucmVwbGFjZSgiJTIwIiwgIisiKTsKICAgICAKLSAgICBTdHJpbmcgdXJsKCJo
dHRwOi8vd3d3Lmdvb2dsZS5jb20vc2VhcmNoP3E9Iik7Ci0gICAgdXJsLmFwcGVuZChlbmNvZGVk
KTsKLSAgICB1cmwuYXBwZW5kKCImaWU9VVRGLTgmb2U9VVRGLTgiKTsKKyAgICBTdHJpbmcgdXJs
ID0gImh0dHA6Ly93d3cuZ29vZ2xlLmNvbS9zZWFyY2g/cT0iICsgZW5jb2RlZCArICImaWU9VVRG
LTgmb2U9VVRGLTgiOwogCiAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBmcmFtZS0+cGFnZSgpKSB7CiAg
ICAgICAgIFVzZXJHZXN0dXJlSW5kaWNhdG9yIGluZGljYXRvcihEZWZpbml0ZWx5UHJvY2Vzc2lu
Z1VzZXJHZXN0dXJlKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>