<?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>128644</bug_id>
          
          <creation_ts>2014-02-11 19:11:57 -0800</creation_ts>
          <short_desc>Remove some unintended copies in ranged for loops</short_desc>
          <delta_ts>2014-02-12 09:05:23 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Brent Fulgham">bfulgham</reporter>
          <assigned_to name="Brent Fulgham">bfulgham</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>andersca</cc>
    
    <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>979717</commentid>
    <comment_count>0</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-02-11 19:11:57 -0800</bug_when>
    <thetext>Once I noticed the handful of errors in Bug 128578, I did some more searching and turned up a few more.

Per http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2049.pdf, the ranged iterator syntax:

    for( type-speciﬁer-seq simple-declarator : expression )
        statement

is syntactically equivalent to

    typedef decltype(expression) C;
    auto&amp;&amp; rng(expression);
    for (auto begin(std::For&lt;C&gt;::begin(rng)), end(std::For&lt;C&gt;::end(rng)); begin != end; ++ begin) {
        type-speciﬁer-seq simple-declarator(∗begin);
        statement
    }

The issue here is that the type of auto (instead of &apos;auto&amp;&apos; or &apos;const auto&amp;&apos;) causes us to make a copy of each element as we pass through the loop.

When the container is just a  set of pointers, it&apos;s not much of an issue. But when we have iterate over reference-counted types, strings, or other larger objects we incur unnecessary costs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>979735</commentid>
    <comment_count>1</comment_count>
      <attachid>223932</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-02-11 19:54:49 -0800</bug_when>
    <thetext>Created attachment 223932
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>979876</commentid>
    <comment_count>2</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-02-12 09:05:23 -0800</bug_when>
    <thetext>Committed r163959: &lt;http://trac.webkit.org/changeset/163959&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223932</attachid>
            <date>2014-02-11 19:54:49 -0800</date>
            <delta_ts>2014-02-12 09:03:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-128644-20140211195448.patch</filename>
            <type>text/plain</type>
            <size>15455</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTYzOTI5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBA
CisyMDE0LTAyLTExICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAg
ICAgIFJlbW92ZSBzb21lIHVuaW50ZW5kZWQgY29waWVzIGluIHJhbmdlZCBmb3IgbG9vcHMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyODY0NAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9y
L0luamVjdGVkU2NyaXB0SG9zdC5jcHA6CisgICAgICAgIChJbnNwZWN0b3I6OkluamVjdGVkU2Ny
aXB0SG9zdDo6Y2xlYXJBbGxXcmFwcGVycyk6IEF2b2lkIGNyZWF0aW5nL2Rlc3Ryb3lpbmcKKyAg
ICAgICAgYSBzdGQ6OnBhaXI8PiBhbmQgcG9pbnRlciBlYWNoIGxvb3AgaXRlcmF0aW9uLgorICAg
ICAgICAqIHBhcnNlci9QYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpQYXJzZXI8TGV4ZXJUeXBl
Pjo6UGFyc2VyKTogQXZvaWQgY29weWluZyBvYmplY3QgY29udGFpbmluZyBhIHN0cmluZworICAg
ICAgICBlYWNoIGxvb3AgaXRlcmF0aW9uLgorCiAyMDE0LTAyLTExICBGaWxpcCBQaXpsbyAgPGZw
aXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIExMVk0ncyBkZWFkIHN0b3JlIGVsaW1pbmF0
aW9uCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0
SG9zdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9J
bmplY3RlZFNjcmlwdEhvc3QuY3BwCShyZXZpc2lvbiAxNjM5MjYpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0SG9zdC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTcyLDcgKzcyLDcgQEAgdm9pZCBJbmplY3RlZFNjcmlwdEhvc3Q6OmNsZWFyV3JhcHBlcihF
eAogCiB2b2lkIEluamVjdGVkU2NyaXB0SG9zdDo6Y2xlYXJBbGxXcmFwcGVycygpCiB7Ci0gICAg
Zm9yIChhdXRvIHdyYXBwZXIgOiBtX3dyYXBwZXJzKQorICAgIGZvciAoYXV0byYgd3JhcHBlciA6
IG1fd3JhcHBlcnMpCiAgICAgICAgIGNsZWFyV3JhcHBlckZyb21WYWx1ZSh3cmFwcGVyLnZhbHVl
LmdldCgpKTsKIAogICAgIG1fd3JhcHBlcnMuY2xlYXIoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcGFyc2VyL1BhcnNlci5jcHAJKHJldmlzaW9uIDE2MzkyNikKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjM3LDcgKzIz
Nyw3IEBAIFBhcnNlcjxMZXhlclR5cGU+OjpQYXJzZXIoVk0qIHZtLCBjb25zdCAKICAgICAgICAg
ICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgcGFyYW1ldGVyLT5jb2xsZWN0
Qm91bmRJZGVudGlmaWVycyhib3VuZFBhcmFtZXRlck5hbWVzKTsKICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIGZvciAoYXV0byBib3VuZFBhcmFtZXRlck5hbWUgOiBib3VuZFBhcmFtZXRlck5h
bWVzKQorICAgICAgICAgICAgZm9yIChhdXRvJiBib3VuZFBhcmFtZXRlck5hbWUgOiBib3VuZFBh
cmFtZXRlck5hbWVzKQogICAgICAgICAgICAgICAgIHNjb3BlLT5kZWNsYXJlVmFyaWFibGUoJmJv
dW5kUGFyYW1ldGVyTmFtZSk7CiAgICAgICAgIH0KICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZp
c2lvbiAxNjM5MjkpCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwxNCBAQAorMjAxNC0wMi0xMSAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFw
cGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgc29tZSB1bmludGVuZGVkIGNvcGllcyBpbiByYW5n
ZWQgZm9yIGxvb3BzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMjg2NDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVz
b2x2ZXI6OmxvYWRQZW5kaW5nU1ZHRG9jdW1lbnRzKTogQXZvaWQgY3JlYXRpbmcvZGVzdHJveWlu
ZworICAgICAgICBSZWZQdHJzIGluIGxvb3AuCisKIDIwMTQtMDItMTEgIEFudHRpIEtvaXZpc3Rv
ICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIEdJRiBhbmltYXRpb25zIHNob3VsZCBiZSBz
dXNwZW5kZWQgd2hlbiBvdXRzaWRlIG9mIHZpZXdwb3J0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9j
c3MvU3R5bGVSZXNvbHZlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL1N0
eWxlUmVzb2x2ZXIuY3BwCShyZXZpc2lvbiAxNjM5MjYpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVSZXNvbHZlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzMjQsNyArMzMyNCw3IEBAIHZv
aWQgU3R5bGVSZXNvbHZlcjo6bG9hZFBlbmRpbmdTVkdEb2N1bWUKICAgICAgICAgcmV0dXJuOwog
CiAgICAgQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGNhY2hlZFJlc291cmNlTG9hZGVyID0gc3RhdGUu
ZG9jdW1lbnQoKS5jYWNoZWRSZXNvdXJjZUxvYWRlcigpOwotICAgIGZvciAoYXV0byBmaWx0ZXJP
cGVyYXRpb24gOiBzdGF0ZS5maWx0ZXJzV2l0aFBlbmRpbmdTVkdEb2N1bWVudHMoKSkKKyAgICBm
b3IgKGF1dG8mIGZpbHRlck9wZXJhdGlvbiA6IHN0YXRlLmZpbHRlcnNXaXRoUGVuZGluZ1NWR0Rv
Y3VtZW50cygpKQogICAgICAgICBmaWx0ZXJPcGVyYXRpb24tPmdldE9yQ3JlYXRlQ2FjaGVkU1ZH
RG9jdW1lbnRSZWZlcmVuY2UoKS0+bG9hZChjYWNoZWRSZXNvdXJjZUxvYWRlcik7CiAKICAgICBz
dGF0ZS5maWx0ZXJzV2l0aFBlbmRpbmdTVkdEb2N1bWVudHMoKS5jbGVhcigpOwpJbmRleDogU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkocmV2aXNpb24gMTYzOTI5KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsNDQgQEAKKzIwMTQtMDItMTEgIEJyZW50IEZ1bGdoYW0gIDxi
ZnVsZ2hhbUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHNvbWUgdW5pbnRlbmRlZCBjb3Bp
ZXMgaW4gcmFuZ2VkIGZvciBsb29wcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTI4NjQ0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6VmVjdG9yPFZlY3RvcjxJREJLZXlEYXRhPj4+Ojpjb3B5KTogRWFjaCBpdGVy
YXRpb24gY29waWVzIGEgdmVjdG9yIG9mCisgICAgICAgIHZlY3RvcnMsIAorICAgICAgICAqIFNo
YXJlZC9tYWMvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW06CisgICAgICAgIChSZW1vdGVMYXll
ckJhY2tpbmdTdG9yZTo6ZW51bWVyYXRlUmVjdHNCZWluZ0RyYXduKTogQXZvaWQgY29weWluZyBh
IEZsb2F0UmVjdAorICAgICAgICBvbiBlYWNoIGl0ZXJhdGlvbi4KKyAgICAgICAgKiBTaGFyZWQv
bWFjL1JlbW90ZUxheWVyVHJlZVByb3BlcnR5QXBwbGllci5tbToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlTGF5ZXJUcmVlUHJvcGVydHlBcHBsaWVyOjphcHBseVByb3BlcnRpZXNUb0xheWVyKTog
QXZvaWQgY29weWluZworICAgICAgICBhIExheWVyUHJvcGVydHkgb2JqZWN0IGVhY2ggaXRlcmF0
aW9uLgorICAgICAgICAqIFVJUHJvY2Vzcy9HZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6R2VvbG9jYXRpb25QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eTo6aW52YWxpZGF0ZVJlcXVlc3RzKTogQXZvaWQKKyAgICAgICAgY29w
eWluZyBhIHBhaXI8aW50NjRfdCwgcG9pbnRlcj4gZWFjaCBpdGVyYXRpb24uCisgICAgICAgICog
VUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eTo6aW52YWxpZGF0ZVJlcXVlc3RzKTogRGl0dG8KKyAgICAgICAgKiBV
SVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5Ojpjb25uZWN0
U3RhdGVOb2RlTGF5ZXJzKTogRGl0dG8KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OnBvc3RNZXNzYWdlVG9JbmplY3RlZEJ1
bmRsZSk6IEF2b2lkIGNyZWF0aW5nL2Rlc3Ryb3lpbmcgYQorICAgICAgICBSZWZQdHIgZWFjaCBs
b29wIGl0ZXJhdGlvbi4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzaG91bGRTdGFydFRyYWNraW5nVG91Y2hFdmVu
dHMpOiBBdm9pZCBjb3B5aW5nIGEgV2ViUGxhdGZvcm1Ub3VjaFBvaW50CisgICAgICAgIG9iamVj
dCBlYWNoIGN5Y2xlLgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlSG9z
dC5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlSG9zdDo6dXBkYXRlTGF5ZXJU
cmVlKTogQXZvaWQgY29weWluZyBhIHBhaXIgZWFjaCBpdGVyYXRpb24uCisgICAgICAgICogVUlQ
cm9jZXNzL21hYy9XaW5kb3dTZXJ2ZXJDb25uZWN0aW9uLm1tOgorICAgICAgICAoV2ViS2l0OjpX
aW5kb3dTZXJ2ZXJDb25uZWN0aW9uOjpXaW5kb3dTZXJ2ZXJDb25uZWN0aW9uKTogQXZvaWQgY29w
eWluZyB0aGUgc3RydWN0CisgICAgICAgIG9mIG9jY2x1c2lvbk5vdGlmaWNhdGlvbkhhbmRsZXJz
IGVhY2ggaXRlcmF0aW9uLgorICAgICAgICAqIFdlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWRE
Qi9XZWJJREJTZXJ2ZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSURCU2Vy
dmVyQ29ubmVjdGlvbjo6cHV0KTogQXZvaWQgY29weWluZyBhIHZlY3Rvci1vZi12ZWN0b3JzIGVh
Y2gKKyAgICAgICAgaXRlcmF0aW9uLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMv
UGxhdGZvcm1DQUxheWVyUmVtb3RlLmNwcDoKKyAgICAgICAgKFBsYXRmb3JtQ0FMYXllclJlbW90
ZTo6cmVjdXJzaXZlQnVpbGRUcmFuc2FjdGlvbik6IEF2b2lkIGNyZWF0aW5nL2Rlc3Ryb3lpbmcg
YQorICAgICAgICBSZWZQdHIgZWFjaCBsb29wIGl0ZXJhdGlvbi4KKwogMjAxNC0wMi0xMSAgUnlv
c3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBGcmFtZTo6cmVjdEZvclNl
bGVjdGlvbiBzaG91bGRuJ3QgaW5zdGFudGlhdGUgRnJhbWVTZWxlY3Rpb24KSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJDcm9zc1RocmVhZENvcGllci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNyb3NzVGhyZWFkQ29waWVyLmNwcAkocmV2aXNpb24g
MTYzOTI2KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNyb3NzVGhyZWFkQ29waWVyLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNzAsOSArNzAsOSBAQCBWZWN0b3I8VmVjdG9yPElEQktleURh
dGE+PiBDcm9zc1RocmVhZENvCiB7CiAgICAgVmVjdG9yPFZlY3RvcjxJREJLZXlEYXRhPj4gcmVz
dWx0OwogCi0gICAgZm9yIChhdXRvIGtleXMgOiB2ZWN0b3IpIHsKKyAgICBmb3IgKGNvbnN0IGF1
dG8mIGtleXMgOiB2ZWN0b3IpIHsKICAgICAgICAgcmVzdWx0LmFwcGVuZChWZWN0b3I8SURCS2V5
RGF0YT4oKSk7Ci0gICAgICAgIGZvciAoYXV0byBrZXkgOiBrZXlzKQorICAgICAgICBmb3IgKGNv
bnN0IGF1dG8mIGtleSA6IGtleXMpCiAgICAgICAgICAgICByZXN1bHQubGFzdCgpLmFwcGVuZChX
ZWJDb3JlOjpDcm9zc1RocmVhZENvcGllcjxJREJLZXlEYXRhPjo6Y29weShrZXkpKTsKICAgICB9
CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJCYWNraW5nU3Rv
cmUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXll
ckJhY2tpbmdTdG9yZS5tbQkocmV2aXNpb24gMTYzOTI2KQorKysgU291cmNlL1dlYktpdDIvU2hh
cmVkL21hYy9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5tbQkod29ya2luZyBjb3B5KQpAQCAtMzQy
LDcgKzM0Miw3IEBAIHZvaWQgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OmVudW1lcmF0ZVIKICAg
ICBpbnZlcnNlVHJhbnNmb3JtID0gQ0dBZmZpbmVUcmFuc2Zvcm1TY2FsZShpbnZlcnNlVHJhbnNm
b3JtLCBtX3NjYWxlLCAtbV9zY2FsZSk7CiAgICAgaW52ZXJzZVRyYW5zZm9ybSA9IENHQWZmaW5l
VHJhbnNmb3JtVHJhbnNsYXRlKGludmVyc2VUcmFuc2Zvcm0sIDAsIC1tX3NpemUuaGVpZ2h0KCkp
OwogCi0gICAgZm9yIChhdXRvIHJlY3QgOiBtX3BhaW50aW5nUmVjdHMpIHsKKyAgICBmb3IgKGNv
bnN0IGF1dG8mIHJlY3QgOiBtX3BhaW50aW5nUmVjdHMpIHsKICAgICAgICAgQ0dSZWN0IHJlY3RU
b0RyYXcgPSBDR1JlY3RBcHBseUFmZmluZVRyYW5zZm9ybShyZWN0LCBpbnZlcnNlVHJhbnNmb3Jt
KTsKICAgICAgICAgYmxvY2socmVjdFRvRHJhdyk7CiAgICAgfQpJbmRleDogU291cmNlL1dlYktp
dDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFwcGxpZXIubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFw
cGxpZXIubW0JKHJldmlzaW9uIDE2MzkyNikKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMv
UmVtb3RlTGF5ZXJUcmVlUHJvcGVydHlBcHBsaWVyLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMDIs
NyArMTAyLDcgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFwcGxpZXI6OmFwcAogCiAg
ICAgaWYgKHByb3BlcnRpZXMuY2hhbmdlZFByb3BlcnRpZXMgJiBSZW1vdGVMYXllclRyZWVUcmFu
c2FjdGlvbjo6Q2hpbGRyZW5DaGFuZ2VkKSB7CiAgICAgICAgIFJldGFpblB0cjxOU011dGFibGVB
cnJheT4gY2hpbGRyZW4gPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRXaXRo
Q2FwYWNpdHk6cHJvcGVydGllcy5jaGlsZHJlbi5zaXplKCldKTsKLSAgICAgICAgZm9yIChhdXRv
IGNoaWxkIDogcHJvcGVydGllcy5jaGlsZHJlbikKKyAgICAgICAgZm9yIChhdXRvJiBjaGlsZCA6
IHByb3BlcnRpZXMuY2hpbGRyZW4pCiAgICAgICAgICAgICBbY2hpbGRyZW4gYWRkT2JqZWN0OnJl
bGF0ZWRMYXllcnMuZ2V0KGNoaWxkKV07CiAgICAgICAgIGxheWVyLnN1YmxheWVycyA9IGNoaWxk
cmVuLmdldCgpOwogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9HZW9sb2Nh
dGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eS5jcHAJKHJldmlzaW9uIDE2MzkyNikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9H
ZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzksNyArMzksNyBAQCBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5CiAKIHZvaWQgR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6aW52
YWxpZGF0ZVJlcXVlc3RzKCkKIHsKLSAgICBmb3IgKGF1dG8gcmVxdWVzdCA6IG1fcGVuZGluZ1Jl
cXVlc3RzLnZhbHVlcygpKQorICAgIGZvciAoYXV0byYgcmVxdWVzdCA6IG1fcGVuZGluZ1JlcXVl
c3RzLnZhbHVlcygpKQogICAgICAgICByZXF1ZXN0LT5pbnZhbGlkYXRlKCk7CiAKICAgICBtX3Bl
bmRpbmdSZXF1ZXN0cy5jbGVhcigpOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YkNvbnRleHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJD
b250ZXh0LmNwcAkocmV2aXNpb24gMTYzOTI2KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYkNvbnRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MTQsNyArODE0LDcgQEAgdm9pZCBX
ZWJDb250ZXh0Ojpwb3N0TWVzc2FnZVRvSW5qZWN0ZWRCdQogICAgICAgICByZXR1cm47CiAgICAg
fQogCi0gICAgZm9yIChhdXRvIHByb2Nlc3MgOiBtX3Byb2Nlc3NlcykgeworICAgIGZvciAoYXV0
byYgcHJvY2VzcyA6IG1fcHJvY2Vzc2VzKSB7CiAgICAgICAgIC8vIEZJWE1FOiBSZXR1cm4gZWFy
bHkgaWYgdGhlIG1lc3NhZ2UgYm9keSBjb250YWlucyBhbnkgcmVmZXJlbmNlcyB0byBXS1BhZ2VS
ZWZzL1dLRnJhbWVSZWZzIGV0Yy4gc2luY2UgdGhleSdyZSBsb2NhbCB0byBhIHByb2Nlc3MuCiAg
ICAgICAgIElQQzo6QXJndW1lbnRFbmNvZGVyIG1lc3NhZ2VEYXRhOwogICAgICAgICBtZXNzYWdl
RGF0YS5lbmNvZGUobWVzc2FnZU5hbWUpOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAJKHJldmlzaW9uIDE2MzkyNikKKysrIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDA0LDcgKzE0MDQs
NyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZmluZFBsdWdpbihjb25zdCBTdHJpCiBib29sIFdlYlBh
Z2VQcm94eTo6c2hvdWxkU3RhcnRUcmFja2luZ1RvdWNoRXZlbnRzKGNvbnN0IFdlYlRvdWNoRXZl
bnQmIHRvdWNoU3RhcnRFdmVudCkgY29uc3QKIHsKICNpZiBFTkFCTEUoQVNZTkNfU0NST0xMSU5H
KQotICAgIGZvciAoYXV0byB0b3VjaFBvaW50IDogdG91Y2hTdGFydEV2ZW50LnRvdWNoUG9pbnRz
KCkpIHsKKyAgICBmb3IgKGF1dG8mIHRvdWNoUG9pbnQgOiB0b3VjaFN0YXJ0RXZlbnQudG91Y2hQ
b2ludHMoKSkgewogICAgICAgICBpZiAobV9zY3JvbGxpbmdDb29yZGluYXRvclByb3h5LT5pc1Bv
aW50SW5Ob25GYXN0U2Nyb2xsYWJsZVJlZ2lvbih0b3VjaFBvaW50LmxvY2F0aW9uKCkpKQogICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRp
b25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAkocmV2aXNp
b24gMTYzOTI2KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC00MCw3ICs0MCw3IEBAIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3gKIAogdm9pZCBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6aW52
YWxpZGF0ZVJlcXVlc3RzKCkKIHsKLSAgICBmb3IgKGF1dG8gcmVxdWVzdCA6IG1fcGVuZGluZ1Jl
cXVlc3RzLnZhbHVlcygpKQorICAgIGZvciAoYXV0byYgcmVxdWVzdCA6IG1fcGVuZGluZ1JlcXVl
c3RzLnZhbHVlcygpKQogICAgICAgICByZXF1ZXN0LT5pbnZhbGlkYXRlKCk7CiAKICAgICBtX3Bl
bmRpbmdSZXF1ZXN0cy5jbGVhcigpOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Nj
cm9sbGluZy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yUHJveHkuY3BwCShyZXZpc2lvbiAxNjM5MjYpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC05MSw3ICs5MSw3IEBAIHZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0
b3JQcm94eTo6dXAKIAogdm9pZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5Ojpjb25u
ZWN0U3RhdGVOb2RlTGF5ZXJzKFNjcm9sbGluZ1N0YXRlVHJlZSYgc3RhdGVUcmVlLCBjb25zdCBS
ZW1vdGVMYXllclRyZWVIb3N0JiBsYXllclRyZWVIb3N0KQogewotICAgIGZvciAoYXV0byBpdCA6
IHN0YXRlVHJlZS5ub2RlTWFwKCkpIHsKKyAgICBmb3IgKGF1dG8mIGl0IDogc3RhdGVUcmVlLm5v
ZGVNYXAoKSkgewogICAgICAgICBTY3JvbGxpbmdTdGF0ZU5vZGUqIGN1cnJOb2RlID0gaXQudmFs
dWU7CiAgICAgICAgIHN3aXRjaCAoY3Vyck5vZGUtPm5vZGVUeXBlKCkpIHsKICAgICAgICAgY2Fz
ZSBTY3JvbGxpbmdOb2RlOiB7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1Jl
bW90ZUxheWVyVHJlZUhvc3QubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL21hYy9SZW1vdGVMYXllclRyZWVIb3N0Lm1tCShyZXZpc2lvbiAxNjM5MjYpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZUhvc3QubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTU2LDcgKzU2LDcgQEAgYm9vbCBSZW1vdGVMYXllclRyZWVIb3N0Ojp1cGRhdGVM
YXllclRyZQogewogICAgIExPRyhSZW1vdGVMYXllclRyZWUsICIlcyIsIHRyYW5zYWN0aW9uLmRl
c2NyaXB0aW9uKCkuZGF0YSgpKTsKIAotICAgIGZvciAoYXV0byBjcmVhdGVkTGF5ZXIgOiB0cmFu
c2FjdGlvbi5jcmVhdGVkTGF5ZXJzKCkpCisgICAgZm9yIChjb25zdCBhdXRvJiBjcmVhdGVkTGF5
ZXIgOiB0cmFuc2FjdGlvbi5jcmVhdGVkTGF5ZXJzKCkpCiAgICAgICAgIGNyZWF0ZUxheWVyKGNy
ZWF0ZWRMYXllcik7CiAKICAgICBib29sIHJvb3RMYXllckNoYW5nZWQgPSBmYWxzZTsKQEAgLTY2
LDcgKzY2LDcgQEAgYm9vbCBSZW1vdGVMYXllclRyZWVIb3N0Ojp1cGRhdGVMYXllclRyZQogICAg
ICAgICByb290TGF5ZXJDaGFuZ2VkID0gdHJ1ZTsKICAgICB9CiAKLSAgICBmb3IgKGF1dG8gY2hh
bmdlZExheWVyIDogdHJhbnNhY3Rpb24uY2hhbmdlZExheWVycygpKSB7CisgICAgZm9yIChhdXRv
JiBjaGFuZ2VkTGF5ZXIgOiB0cmFuc2FjdGlvbi5jaGFuZ2VkTGF5ZXJzKCkpIHsKICAgICAgICAg
YXV0byBsYXllcklEID0gY2hhbmdlZExheWVyLmtleTsKICAgICAgICAgY29uc3QgYXV0byYgcHJv
cGVydGllcyA9IGNoYW5nZWRMYXllci52YWx1ZTsKIApAQCAtNzUsNyArNzUsNyBAQCBib29sIFJl
bW90ZUxheWVyVHJlZUhvc3Q6OnVwZGF0ZUxheWVyVHJlCiAKICAgICAgICAgUmVtb3RlTGF5ZXJU
cmVlUHJvcGVydHlBcHBsaWVyOjpSZWxhdGVkTGF5ZXJNYXAgcmVsYXRlZExheWVyczsKICAgICAg
ICAgaWYgKHByb3BlcnRpZXMuY2hhbmdlZFByb3BlcnRpZXMgJiBSZW1vdGVMYXllclRyZWVUcmFu
c2FjdGlvbjo6Q2hpbGRyZW5DaGFuZ2VkKSB7Ci0gICAgICAgICAgICBmb3IgKGF1dG8gY2hpbGQg
OiBwcm9wZXJ0aWVzLmNoaWxkcmVuKQorICAgICAgICAgICAgZm9yIChhdXRvJiBjaGlsZCA6IHBy
b3BlcnRpZXMuY2hpbGRyZW4pCiAgICAgICAgICAgICAgICAgcmVsYXRlZExheWVycy5zZXQoY2hp
bGQsIGdldExheWVyKGNoaWxkKSk7CiAgICAgICAgIH0KIApJbmRleDogU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL21hYy9XaW5kb3dTZXJ2ZXJDb25uZWN0aW9uLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2luZG93U2VydmVyQ29ubmVjdGlvbi5tbQkocmV2
aXNpb24gMTYzOTI2KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XaW5kb3dTZXJ2
ZXJDb25uZWN0aW9uLm1tCSh3b3JraW5nIGNvcHkpCkBAIC04MCw3ICs4MCw3IEBAIFdpbmRvd1Nl
cnZlckNvbm5lY3Rpb246OldpbmRvd1NlcnZlckNvbm4KICAgICAgICAgeyBXS09jY2x1c2lvbk5v
dGlmaWNhdGlvblR5cGVBcHBsaWNhdGlvbldpbmRvd01vZGlmaWNhdGlvbnNTdG9wcGVkLCBhcHBs
aWNhdGlvbldpbmRvd01vZGlmaWNhdGlvbnNTdG9wcGVkLCAiQXBwbGljYXRpb24gV2luZG93IE1v
ZGlmaWNhdGlvbnMgU3RvcHBlZCIgfSwKICAgICB9OwogCi0gICAgZm9yIChhdXRvIG9jY2x1c2lv
bk5vdGlmaWNhdGlvbkhhbmRsZXIgOiBvY2NsdXNpb25Ob3RpZmljYXRpb25IYW5kbGVycykgewor
ICAgIGZvciAoY29uc3QgYXV0byYgb2NjbHVzaW9uTm90aWZpY2F0aW9uSGFuZGxlciA6IG9jY2x1
c2lvbk5vdGlmaWNhdGlvbkhhbmRsZXJzKSB7CiAgICAgICAgIGJvb2wgcmVzdWx0ID0gV0tSZWdp
c3Rlck9jY2x1c2lvbk5vdGlmaWNhdGlvbkhhbmRsZXIob2NjbHVzaW9uTm90aWZpY2F0aW9uSGFu
ZGxlci5ub3RpZmljYXRpb25UeXBlLCBvY2NsdXNpb25Ob3RpZmljYXRpb25IYW5kbGVyLmhhbmRs
ZXIpOwogICAgICAgICBVTlVTRURfUEFSQU0ocmVzdWx0KTsKICAgICAgICAgQVNTRVJUX1dJVEhf
TUVTU0FHRShyZXN1bHQsICJSZWdpc3RyYXRpb24gb2YgXCIlc1wiIG5vdGlmaWNhdGlvbiBoYW5k
bGVyIGZhaWxlZC5cbiIsIG9jY2x1c2lvbk5vdGlmaWNhdGlvbkhhbmRsZXIubmFtZSk7CkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCU2Vy
dmVyQ29ubmVjdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQlNlcnZlckNvbm5lY3Rpb24uY3BwCShyZXZpc2lv
biAxNjM5MjYpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVk
REIvV2ViSURCU2VydmVyQ29ubmVjdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQyMSw5ICs0
MjEsOSBAQCB2b2lkIFdlYklEQlNlcnZlckNvbm5lY3Rpb246OnB1dChJREJUcmFuCiAgICAgSVBD
OjpEYXRhUmVmZXJlbmNlIHZhbHVlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KG9w
ZXJhdGlvbi52YWx1ZSgpLT5kYXRhKCkpLCBvcGVyYXRpb24udmFsdWUoKS0+c2l6ZSgpKTsKIAog
ICAgIFZlY3RvcjxWZWN0b3I8SURCS2V5RGF0YT4+IGluZGV4S2V5czsKLSAgICBmb3IgKGF1dG8g
a2V5cyA6IG9wZXJhdGlvbi5pbmRleEtleXMoKSkgeworICAgIGZvciAoY29uc3QgYXV0byYga2V5
cyA6IG9wZXJhdGlvbi5pbmRleEtleXMoKSkgewogICAgICAgICBpbmRleEtleXMuYXBwZW5kKFZl
Y3RvcjxJREJLZXlEYXRhPigpKTsKLSAgICAgICAgZm9yIChhdXRvIGtleSA6IGtleXMpCisgICAg
ICAgIGZvciAoY29uc3QgYXV0byYga2V5IDoga2V5cykKICAgICAgICAgICAgIGluZGV4S2V5cy5s
YXN0KCkuYXBwZW5kKElEQktleURhdGEoa2V5LmdldCgpKSk7CiAgICAgfQogCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9Q
bGF0Zm9ybUNBTGF5ZXJSZW1vdGUuY3BwCShyZXZpc2lvbiAxNjM5MjYpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTEwMSw3ICsxMDEsNyBAQCB2b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90
ZTo6cmVjdXJzaXZlQnVpCiAgICAgaWYgKG1fcHJvcGVydGllcy5jaGFuZ2VkUHJvcGVydGllcyAh
PSBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6Tm9DaGFuZ2UpIHsKICAgICAgICAgaWYgKG1f
cHJvcGVydGllcy5jaGFuZ2VkUHJvcGVydGllcyAmIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9u
OjpDaGlsZHJlbkNoYW5nZWQpIHsKICAgICAgICAgICAgIG1fcHJvcGVydGllcy5jaGlsZHJlbi5j
bGVhcigpOwotICAgICAgICAgICAgZm9yIChhdXRvIGxheWVyIDogbV9jaGlsZHJlbikKKyAgICAg
ICAgICAgIGZvciAoY29uc3QgYXV0byYgbGF5ZXIgOiBtX2NoaWxkcmVuKQogICAgICAgICAgICAg
ICAgIG1fcHJvcGVydGllcy5jaGlsZHJlbi5hcHBlbmQobGF5ZXItPmxheWVySUQoKSk7CiAgICAg
ICAgIH0KIAo=
</data>
<flag name="review"
          id="248005"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>